mirror of
https://github.com/zeldaret/oot.git
synced 2025-07-05 15:34:41 +00:00
Name scenes (scene enum, entrance enum, various identifiers) (#1343)
* Comment names on titled scenes
* Comment some more scene names
* Comment some map assets symbol prefixes
* Name collapse sequence scenes (from the non-collapse equivalent scene's name + `_COLLAPSE`)
* Name ganon/ganondorf boss scenes (symbol prefix suffixed with `Scene` to prevent confusion with boss actors)
* Fix symbol prefix for back alley night scene
* Name the two grave scenes (normal and fairy's fountain variant)
* Name most houses, name/update misc scenes
Co-authored-by: fig02 <fig02srl@gmail.com>
* (hakaana) `GRAVE` -> `REDEAD_GRAVE` to be more specific
Co-authored-by: fig02 <fig02srl@gmail.com>
* `miharigoya_scene`: `market_guard_house`
* `kakariko_scene` -> `kakariko_center_house`
* `richards_house` -> `dog_lady_house` (for localization differences)
* Revert "Comment some map assets symbol prefixes"
This reverts commit 210a38a628
.
* remove other xml prefixes
* ganon_boss, ganondorf_boss
* comments to namefixer
* `KAKARIKO_CENTER_HOUSE` -> `KAKARIKO_CENTER_GUEST_HOUSE`
* two collapse sequence scenes -> `GANONS_TOWER_COLLAPSE_`interior/exterior
* Run namefixer
`find src include -type f -exec ./tools/namefixer.py {} \;`
* run formatter
Co-authored-by: fig02 <fig02srl@gmail.com>
This commit is contained in:
parent
eb0a82c513
commit
186ecc72b5
96 changed files with 3577 additions and 3274 deletions
|
@ -3341,69 +3341,69 @@ void Actor_SetTextWithPrefix(PlayState* play, Actor* actor, s16 baseTextId) {
|
|||
s16 prefix;
|
||||
|
||||
switch (play->sceneId) {
|
||||
case SCENE_YDAN:
|
||||
case SCENE_YDAN_BOSS:
|
||||
case SCENE_MORIBOSSROOM:
|
||||
case SCENE_KOKIRI_HOME:
|
||||
case SCENE_KOKIRI_HOME3:
|
||||
case SCENE_KOKIRI_HOME4:
|
||||
case SCENE_KOKIRI_HOME5:
|
||||
case SCENE_DEKU_TREE:
|
||||
case SCENE_DEKU_TREE_BOSS:
|
||||
case SCENE_FOREST_TEMPLE_BOSS:
|
||||
case SCENE_KNOW_IT_ALL_BROS_HOUSE:
|
||||
case SCENE_TWINS_HOUSE:
|
||||
case SCENE_MIDOS_HOUSE:
|
||||
case SCENE_SARIAS_HOUSE:
|
||||
case SCENE_KOKIRI_SHOP:
|
||||
case SCENE_LINK_HOME:
|
||||
case SCENE_SPOT04:
|
||||
case SCENE_SPOT05:
|
||||
case SCENE_SPOT10:
|
||||
case SCENE_LINKS_HOUSE:
|
||||
case SCENE_KOKIRI_FOREST:
|
||||
case SCENE_SACRED_FOREST_MEADOW:
|
||||
case SCENE_LOST_WOODS:
|
||||
case 112:
|
||||
prefix = 0x1000;
|
||||
break;
|
||||
case SCENE_MALON_STABLE:
|
||||
case SCENE_SPOT00:
|
||||
case SCENE_SPOT20:
|
||||
case SCENE_STABLE:
|
||||
case SCENE_HYRULE_FIELD:
|
||||
case SCENE_LON_LON_RANCH:
|
||||
prefix = 0x2000;
|
||||
break;
|
||||
case SCENE_HIDAN:
|
||||
case SCENE_DDAN_BOSS:
|
||||
case SCENE_FIRE_BS:
|
||||
case SCENE_SPOT16:
|
||||
case SCENE_SPOT17:
|
||||
case SCENE_SPOT18:
|
||||
case SCENE_FIRE_TEMPLE:
|
||||
case SCENE_DODONGOS_CAVERN_BOSS:
|
||||
case SCENE_FIRE_TEMPLE_BOSS:
|
||||
case SCENE_DEATH_MOUNTAIN_TRAIL:
|
||||
case SCENE_DEATH_MOUNTAIN_CRATER:
|
||||
case SCENE_GORON_CITY:
|
||||
prefix = 0x3000;
|
||||
break;
|
||||
case SCENE_BDAN:
|
||||
case SCENE_BDAN_BOSS:
|
||||
case SCENE_SPOT03:
|
||||
case SCENE_SPOT07:
|
||||
case SCENE_SPOT08:
|
||||
case SCENE_JABU_JABU:
|
||||
case SCENE_JABU_JABU_BOSS:
|
||||
case SCENE_ZORAS_RIVER:
|
||||
case SCENE_ZORAS_DOMAIN:
|
||||
case SCENE_ZORAS_FOUNTAIN:
|
||||
prefix = 0x4000;
|
||||
break;
|
||||
case SCENE_HAKADAN:
|
||||
case SCENE_HAKADAN_BS:
|
||||
case SCENE_KAKARIKO:
|
||||
case SCENE_KAKARIKO3:
|
||||
case SCENE_IMPA:
|
||||
case SCENE_HUT:
|
||||
case SCENE_HAKAANA:
|
||||
case SCENE_HAKASITARELAY:
|
||||
case SCENE_SPOT01:
|
||||
case SCENE_SPOT02:
|
||||
case SCENE_SHADOW_TEMPLE:
|
||||
case SCENE_SHADOW_TEMPLE_BOSS:
|
||||
case SCENE_KAKARIKO_CENTER_GUEST_HOUSE:
|
||||
case SCENE_BACK_ALLEY_HOUSE:
|
||||
case SCENE_DOG_LADY_HOUSE:
|
||||
case SCENE_GRAVEKEEPERS_HUT:
|
||||
case SCENE_REDEAD_GRAVE:
|
||||
case SCENE_WINDMILL_AND_DAMPES_GRAVE:
|
||||
case SCENE_KAKARIKO_VILLAGE:
|
||||
case SCENE_GRAVEYARD:
|
||||
prefix = 0x5000;
|
||||
break;
|
||||
case SCENE_JYASINZOU:
|
||||
case SCENE_JYASINBOSS:
|
||||
case SCENE_LABO:
|
||||
case SCENE_TENT:
|
||||
case SCENE_SPOT06:
|
||||
case SCENE_SPOT09:
|
||||
case SCENE_SPOT11:
|
||||
case SCENE_SPIRIT_TEMPLE:
|
||||
case SCENE_SPIRIT_TEMPLE_BOSS:
|
||||
case SCENE_IMPAS_HOUSE:
|
||||
case SCENE_CARPENTERS_TENT:
|
||||
case SCENE_LAKE_HYLIA:
|
||||
case SCENE_GERUDO_VALLEY:
|
||||
case SCENE_DESERT_COLOSSUS:
|
||||
prefix = 0x6000;
|
||||
break;
|
||||
case SCENE_ENTRA:
|
||||
case SCENE_MARKET_ALLEY:
|
||||
case SCENE_MARKET_ALLEY_N:
|
||||
case SCENE_MARKET_ENTRANCE_DAY:
|
||||
case SCENE_BACK_ALLEY_DAY:
|
||||
case SCENE_BACK_ALLEY_NIGHT:
|
||||
case SCENE_MARKET_DAY:
|
||||
case SCENE_MARKET_NIGHT:
|
||||
case SCENE_MARKET_RUINS:
|
||||
case SCENE_SPOT15:
|
||||
case SCENE_HYRULE_CASTLE:
|
||||
prefix = 0x7000;
|
||||
break;
|
||||
default:
|
||||
|
@ -4627,7 +4627,7 @@ u32 func_80035BFC(PlayState* play, s16 arg1) {
|
|||
}
|
||||
break;
|
||||
case 16:
|
||||
if (play->sceneId == SCENE_SPOT15) {
|
||||
if (play->sceneId == SCENE_HYRULE_CASTLE) {
|
||||
retTextId = 0x7002;
|
||||
} else if (Flags_GetInfTable(INFTABLE_6A)) {
|
||||
retTextId = 0x7004;
|
||||
|
@ -5673,7 +5673,8 @@ s32 Actor_TrackPlayerSetFocusHeight(PlayState* play, Actor* actor, Vec3s* headRo
|
|||
actor->focus.pos = actor->world.pos;
|
||||
actor->focus.pos.y += focusHeight;
|
||||
|
||||
if (!(((play->csCtx.state != CS_STATE_IDLE) || gDbgCamEnabled) && (gSaveContext.entranceIndex == ENTR_SPOT04_0))) {
|
||||
if (!(((play->csCtx.state != CS_STATE_IDLE) || gDbgCamEnabled) &&
|
||||
(gSaveContext.entranceIndex == ENTR_KOKIRI_FOREST_0))) {
|
||||
yaw = ABS((s16)(actor->yawTowardsPlayer - actor->shape.rot.y));
|
||||
if (yaw >= 0x4300) {
|
||||
Actor_TrackNone(headRot, torsoRot);
|
||||
|
@ -5681,7 +5682,8 @@ s32 Actor_TrackPlayerSetFocusHeight(PlayState* play, Actor* actor, Vec3s* headRo
|
|||
}
|
||||
}
|
||||
|
||||
if (((play->csCtx.state != CS_STATE_IDLE) || gDbgCamEnabled) && (gSaveContext.entranceIndex == ENTR_SPOT04_0)) {
|
||||
if (((play->csCtx.state != CS_STATE_IDLE) || gDbgCamEnabled) &&
|
||||
(gSaveContext.entranceIndex == ENTR_KOKIRI_FOREST_0)) {
|
||||
target = play->view.eye;
|
||||
} else {
|
||||
target = player->actor.focus.pos;
|
||||
|
@ -5715,7 +5717,8 @@ s32 Actor_TrackPlayer(PlayState* play, Actor* actor, Vec3s* headRot, Vec3s* tors
|
|||
|
||||
actor->focus.pos = focusPos;
|
||||
|
||||
if (!(((play->csCtx.state != CS_STATE_IDLE) || gDbgCamEnabled) && (gSaveContext.entranceIndex == ENTR_SPOT04_0))) {
|
||||
if (!(((play->csCtx.state != CS_STATE_IDLE) || gDbgCamEnabled) &&
|
||||
(gSaveContext.entranceIndex == ENTR_KOKIRI_FOREST_0))) {
|
||||
yaw = ABS((s16)(actor->yawTowardsPlayer - actor->shape.rot.y));
|
||||
if (yaw >= 0x4300) {
|
||||
Actor_TrackNone(headRot, torsoRot);
|
||||
|
@ -5723,7 +5726,8 @@ s32 Actor_TrackPlayer(PlayState* play, Actor* actor, Vec3s* headRot, Vec3s* tors
|
|||
}
|
||||
}
|
||||
|
||||
if (((play->csCtx.state != CS_STATE_IDLE) || gDbgCamEnabled) && (gSaveContext.entranceIndex == ENTR_SPOT04_0)) {
|
||||
if (((play->csCtx.state != CS_STATE_IDLE) || gDbgCamEnabled) &&
|
||||
(gSaveContext.entranceIndex == ENTR_KOKIRI_FOREST_0)) {
|
||||
target = play->view.eye;
|
||||
} else {
|
||||
target = player->actor.focus.pos;
|
||||
|
|
|
@ -1476,9 +1476,11 @@ u32 BgCheck_InitializeStaticLookup(CollisionContext* colCtx, PlayState* play, St
|
|||
*/
|
||||
s32 BgCheck_IsSpotScene(PlayState* play) {
|
||||
static s16 spotScenes[] = {
|
||||
SCENE_SPOT00, SCENE_SPOT01, SCENE_SPOT02, SCENE_SPOT03, SCENE_SPOT04, SCENE_SPOT05, SCENE_SPOT06,
|
||||
SCENE_SPOT07, SCENE_SPOT08, SCENE_SPOT09, SCENE_SPOT10, SCENE_SPOT11, SCENE_SPOT12, SCENE_SPOT13,
|
||||
SCENE_SPOT15, SCENE_SPOT16, SCENE_SPOT17, SCENE_SPOT18, SCENE_SPOT20,
|
||||
SCENE_HYRULE_FIELD, SCENE_KAKARIKO_VILLAGE, SCENE_GRAVEYARD, SCENE_ZORAS_RIVER,
|
||||
SCENE_KOKIRI_FOREST, SCENE_SACRED_FOREST_MEADOW, SCENE_LAKE_HYLIA, SCENE_ZORAS_DOMAIN,
|
||||
SCENE_ZORAS_FOUNTAIN, SCENE_GERUDO_VALLEY, SCENE_LOST_WOODS, SCENE_DESERT_COLOSSUS,
|
||||
SCENE_GERUDOS_FORTRESS, SCENE_HAUNTED_WASTELAND, SCENE_HYRULE_CASTLE, SCENE_DEATH_MOUNTAIN_TRAIL,
|
||||
SCENE_DEATH_MOUNTAIN_CRATER, SCENE_GORON_CITY, SCENE_LON_LON_RANCH,
|
||||
};
|
||||
s16* i;
|
||||
|
||||
|
@ -1500,9 +1502,10 @@ typedef struct {
|
|||
*/
|
||||
s32 BgCheck_TryGetCustomMemsize(s32 sceneId, u32* memSize) {
|
||||
static BgCheckSceneMemEntry sceneMemList[] = {
|
||||
{ SCENE_SPOT00, 0xB798 }, { SCENE_GANON_FINAL, 0x78C8 }, { SCENE_GANON_DEMO, 0x70C8 },
|
||||
{ SCENE_JYASINBOSS, 0xACC8 }, { SCENE_KENJYANOMA, 0x70C8 }, { SCENE_JYASINZOU, 0x16CC8 },
|
||||
{ SCENE_HIDAN, 0x198C8 }, { SCENE_GANON_BOSS, 0x84C8 },
|
||||
{ SCENE_HYRULE_FIELD, 0xB798 }, { SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR, 0x78C8 },
|
||||
{ SCENE_GANON_BOSS, 0x70C8 }, { SCENE_SPIRIT_TEMPLE_BOSS, 0xACC8 },
|
||||
{ SCENE_CHAMBER_OF_THE_SAGES, 0x70C8 }, { SCENE_SPIRIT_TEMPLE, 0x16CC8 },
|
||||
{ SCENE_FIRE_TEMPLE, 0x198C8 }, { SCENE_GANONDORF_BOSS, 0x84C8 },
|
||||
};
|
||||
s32 i;
|
||||
|
||||
|
@ -1539,8 +1542,8 @@ typedef struct {
|
|||
*/
|
||||
void BgCheck_Allocate(CollisionContext* colCtx, PlayState* play, CollisionHeader* colHeader) {
|
||||
static BgCheckSceneSubdivisionEntry sceneSubdivisionList[] = {
|
||||
{ SCENE_HAKADAN, { 23, 7, 14 }, -1 },
|
||||
{ SCENE_BMORI1, { 38, 1, 38 }, -1 },
|
||||
{ SCENE_SHADOW_TEMPLE, { 23, 7, 14 }, -1 },
|
||||
{ SCENE_FOREST_TEMPLE, { 38, 1, 38 }, -1 },
|
||||
};
|
||||
u32 tblMax;
|
||||
u32 memSize;
|
||||
|
@ -1560,7 +1563,7 @@ void BgCheck_Allocate(CollisionContext* colCtx, PlayState* play, CollisionHeader
|
|||
if ((R_SCENE_CAM_TYPE == SCENE_CAM_TYPE_FIXED_SHOP_VIEWPOINT) ||
|
||||
(R_SCENE_CAM_TYPE == SCENE_CAM_TYPE_FIXED_TOGGLE_VIEWPOINT) || (R_SCENE_CAM_TYPE == SCENE_CAM_TYPE_FIXED) ||
|
||||
(R_SCENE_CAM_TYPE == SCENE_CAM_TYPE_FIXED_MARKET)) {
|
||||
if (play->sceneId == SCENE_MALON_STABLE) {
|
||||
if (play->sceneId == SCENE_STABLE) {
|
||||
// "/* BGCheck LonLon Size %dbyte */\n"
|
||||
osSyncPrintf("/* BGCheck LonLonサイズ %dbyte */\n", 0x3520);
|
||||
colCtx->memSize = 0x3520;
|
||||
|
@ -4221,7 +4224,7 @@ f32 sZorasDomainWaterBoxMaxZ = -967.0f;
|
|||
*/
|
||||
s32 WaterBox_GetSurface1(PlayState* play, CollisionContext* colCtx, f32 x, f32 z, f32* ySurface,
|
||||
WaterBox** outWaterBox) {
|
||||
if (play->sceneId == SCENE_SPOT07) {
|
||||
if (play->sceneId == SCENE_ZORAS_DOMAIN) {
|
||||
if (sZorasDomainWaterBoxMinX < x && x < sZorasDomainWaterBoxMaxX && sZorasDomainWaterBoxMinY < *ySurface &&
|
||||
*ySurface < sZorasDomainWaterBoxMaxY && sZorasDomainWaterBoxMinZ < z && z < sZorasDomainWaterBoxMaxZ) {
|
||||
*outWaterBox = &sZorasDomainWaterBox;
|
||||
|
|
|
@ -6646,7 +6646,7 @@ s32 Camera_Special7(Camera* camera) {
|
|||
|
||||
yOffset = Player_GetHeight(camera->player);
|
||||
if (camera->animState == 0) {
|
||||
if (camera->play->sceneId == SCENE_JYASINZOU) {
|
||||
if (camera->play->sceneId == SCENE_SPIRIT_TEMPLE) {
|
||||
// Spirit Temple
|
||||
rwData->index = 3;
|
||||
} else if (playerPosRot->pos.x < 1500.0f) {
|
||||
|
@ -7351,7 +7351,7 @@ s32 Camera_UpdateWater(Camera* camera) {
|
|||
if (camera->waterDistortionTimer > 0) {
|
||||
camera->waterDistortionTimer--;
|
||||
camera->distortionFlags |= DISTORTION_UNDERWATER_STRONG;
|
||||
} else if (camera->play->sceneId == SCENE_TURIBORI) {
|
||||
} else if (camera->play->sceneId == SCENE_FISHING_POND) {
|
||||
camera->distortionFlags |= DISTORTION_UNDERWATER_FISHING;
|
||||
} else {
|
||||
camera->distortionFlags |= DISTORTION_UNDERWATER_WEAK;
|
||||
|
@ -7708,7 +7708,7 @@ Vec3s Camera_Update(Camera* camera) {
|
|||
|
||||
Camera_UpdateDistortion(camera);
|
||||
|
||||
if ((camera->play->sceneId == SCENE_SPOT00) && (camera->fov < 59.0f)) {
|
||||
if ((camera->play->sceneId == SCENE_HYRULE_FIELD) && (camera->fov < 59.0f)) {
|
||||
View_SetScale(&camera->play->view, 0.79f);
|
||||
} else {
|
||||
View_SetScale(&camera->play->view, 1.0f);
|
||||
|
@ -7952,7 +7952,7 @@ s16 Camera_ChangeSettingFlags(Camera* camera, s16 setting, s16 flags) {
|
|||
}
|
||||
}
|
||||
if (((setting == CAM_SET_MEADOW_BIRDS_EYE) || (setting == CAM_SET_MEADOW_UNUSED)) && LINK_IS_ADULT &&
|
||||
(camera->play->sceneId == SCENE_SPOT05)) {
|
||||
(camera->play->sceneId == SCENE_SACRED_FOREST_MEADOW)) {
|
||||
camera->unk_14A |= 0x10;
|
||||
return -5;
|
||||
}
|
||||
|
|
|
@ -53,40 +53,40 @@ CutsceneStateHandler sCsStateHandlers2[] = {
|
|||
u8 sTitleCsState = 0;
|
||||
|
||||
EntranceCutscene sEntranceCutsceneTable[] = {
|
||||
{ ENTR_SPOT00_3, 2, EVENTCHKINF_A0, gHyruleFieldIntroCs },
|
||||
{ ENTR_SPOT16_0, 2, EVENTCHKINF_A1, gDMTIntroCs },
|
||||
{ ENTR_SPOT01_0, 2, EVENTCHKINF_A3, gKakarikoVillageIntroCs },
|
||||
{ ENTR_SPOT07_0, 2, EVENTCHKINF_A4, gZorasDomainIntroCs },
|
||||
{ ENTR_SPOT15_0, 1, EVENTCHKINF_A5, gHyruleCastleIntroCs },
|
||||
{ ENTR_SPOT18_0, 2, EVENTCHKINF_A6, gGoronCityIntroCs },
|
||||
{ ENTR_TOKINOMA_0, 2, EVENTCHKINF_A7, gTempleOfTimeIntroCs },
|
||||
{ ENTR_YDAN_0, 2, EVENTCHKINF_A8, gDekuTreeIntroCs },
|
||||
{ ENTR_SPOT00_11, 0, EVENTCHKINF_EPONA_OBTAINED, gHyruleFieldSouthEponaJumpCs },
|
||||
{ ENTR_SPOT00_13, 0, EVENTCHKINF_EPONA_OBTAINED, gHyruleFieldEastEponaJumpCs },
|
||||
{ ENTR_SPOT00_12, 0, EVENTCHKINF_EPONA_OBTAINED, gHyruleFieldWestEponaJumpCs },
|
||||
{ ENTR_SPOT00_15, 0, EVENTCHKINF_EPONA_OBTAINED, gHyruleFieldGateEponaJumpCs },
|
||||
{ ENTR_SPOT00_16, 1, EVENTCHKINF_A9, gHyruleFieldGetOoTCs },
|
||||
{ ENTR_SPOT06_0, 2, EVENTCHKINF_B1, gLakeHyliaIntroCs },
|
||||
{ ENTR_SPOT09_0, 2, EVENTCHKINF_B2, gGerudoValleyIntroCs },
|
||||
{ ENTR_SPOT12_0, 2, EVENTCHKINF_B3, gGerudoFortressIntroCs },
|
||||
{ ENTR_SPOT20_0, 2, EVENTCHKINF_B4, gLonLonRanchIntroCs },
|
||||
{ ENTR_BDAN_0, 2, EVENTCHKINF_B5, gJabuJabuIntroCs },
|
||||
{ ENTR_SPOT02_0, 2, EVENTCHKINF_B6, gGraveyardIntroCs },
|
||||
{ ENTR_SPOT08_2, 2, EVENTCHKINF_B7, gZorasFountainIntroCs },
|
||||
{ ENTR_SPOT11_0, 2, EVENTCHKINF_B8, gDesertColossusIntroCs },
|
||||
{ ENTR_SPOT17_0, 2, EVENTCHKINF_B9, gDeathMountainCraterIntroCs },
|
||||
{ ENTR_SPOT15_0, 0, EVENTCHKINF_BA, gGanonsCastleIntroCs },
|
||||
{ ENTR_HAKAANA_OUKE_1, 2, EVENTCHKINF_5A, gSunSongGraveSunSongTeachPart2Cs },
|
||||
{ ENTR_GANONTIKA_2, 2, EVENTCHKINF_BB, gForestBarrierCs },
|
||||
{ ENTR_GANONTIKA_3, 2, EVENTCHKINF_BC, gWaterBarrierCs },
|
||||
{ ENTR_GANONTIKA_4, 2, EVENTCHKINF_BD, gShadowBarrierCs },
|
||||
{ ENTR_GANONTIKA_5, 2, EVENTCHKINF_BE, gFireBarrierCs },
|
||||
{ ENTR_GANONTIKA_6, 2, EVENTCHKINF_BF, gLightBarrierCs },
|
||||
{ ENTR_GANONTIKA_7, 2, EVENTCHKINF_AD, gSpiritBarrierCs },
|
||||
{ ENTR_JYASINBOSS_0, 0, EVENTCHKINF_C0, gSpiritBossNabooruKnuckleIntroCs },
|
||||
{ ENTR_SPOT12_17, 0, EVENTCHKINF_C7, gGerudoFortressFirstCaptureCs },
|
||||
{ ENTR_SPOT17_1, 2, EVENTCHKINF_B9, gDeathMountainCraterIntroCs },
|
||||
{ ENTR_SPOT04_12, 2, EVENTCHKINF_C6, gKokiriForestDekuSproutCs },
|
||||
{ ENTR_HYRULE_FIELD_3, 2, EVENTCHKINF_A0, gHyruleFieldIntroCs },
|
||||
{ ENTR_DEATH_MOUNTAIN_TRAIL_0, 2, EVENTCHKINF_A1, gDMTIntroCs },
|
||||
{ ENTR_KAKARIKO_VILLAGE_0, 2, EVENTCHKINF_A3, gKakarikoVillageIntroCs },
|
||||
{ ENTR_ZORAS_DOMAIN_0, 2, EVENTCHKINF_A4, gZorasDomainIntroCs },
|
||||
{ ENTR_HYRULE_CASTLE_0, 1, EVENTCHKINF_A5, gHyruleCastleIntroCs },
|
||||
{ ENTR_GORON_CITY_0, 2, EVENTCHKINF_A6, gGoronCityIntroCs },
|
||||
{ ENTR_TEMPLE_OF_TIME_0, 2, EVENTCHKINF_A7, gTempleOfTimeIntroCs },
|
||||
{ ENTR_DEKU_TREE_0, 2, EVENTCHKINF_A8, gDekuTreeIntroCs },
|
||||
{ ENTR_HYRULE_FIELD_11, 0, EVENTCHKINF_EPONA_OBTAINED, gHyruleFieldSouthEponaJumpCs },
|
||||
{ ENTR_HYRULE_FIELD_13, 0, EVENTCHKINF_EPONA_OBTAINED, gHyruleFieldEastEponaJumpCs },
|
||||
{ ENTR_HYRULE_FIELD_12, 0, EVENTCHKINF_EPONA_OBTAINED, gHyruleFieldWestEponaJumpCs },
|
||||
{ ENTR_HYRULE_FIELD_15, 0, EVENTCHKINF_EPONA_OBTAINED, gHyruleFieldGateEponaJumpCs },
|
||||
{ ENTR_HYRULE_FIELD_16, 1, EVENTCHKINF_A9, gHyruleFieldGetOoTCs },
|
||||
{ ENTR_LAKE_HYLIA_0, 2, EVENTCHKINF_B1, gLakeHyliaIntroCs },
|
||||
{ ENTR_GERUDO_VALLEY_0, 2, EVENTCHKINF_B2, gGerudoValleyIntroCs },
|
||||
{ ENTR_GERUDOS_FORTRESS_0, 2, EVENTCHKINF_B3, gGerudoFortressIntroCs },
|
||||
{ ENTR_LON_LON_RANCH_0, 2, EVENTCHKINF_B4, gLonLonRanchIntroCs },
|
||||
{ ENTR_JABU_JABU_0, 2, EVENTCHKINF_B5, gJabuJabuIntroCs },
|
||||
{ ENTR_GRAVEYARD_0, 2, EVENTCHKINF_B6, gGraveyardIntroCs },
|
||||
{ ENTR_ZORAS_FOUNTAIN_2, 2, EVENTCHKINF_B7, gZorasFountainIntroCs },
|
||||
{ ENTR_DESERT_COLOSSUS_0, 2, EVENTCHKINF_B8, gDesertColossusIntroCs },
|
||||
{ ENTR_DEATH_MOUNTAIN_CRATER_0, 2, EVENTCHKINF_B9, gDeathMountainCraterIntroCs },
|
||||
{ ENTR_HYRULE_CASTLE_0, 0, EVENTCHKINF_BA, gGanonsCastleIntroCs },
|
||||
{ ENTR_ROYAL_FAMILYS_TOMB_1, 2, EVENTCHKINF_5A, gSunSongGraveSunSongTeachPart2Cs },
|
||||
{ ENTR_INSIDE_GANONS_CASTLE_2, 2, EVENTCHKINF_BB, gForestBarrierCs },
|
||||
{ ENTR_INSIDE_GANONS_CASTLE_3, 2, EVENTCHKINF_BC, gWaterBarrierCs },
|
||||
{ ENTR_INSIDE_GANONS_CASTLE_4, 2, EVENTCHKINF_BD, gShadowBarrierCs },
|
||||
{ ENTR_INSIDE_GANONS_CASTLE_5, 2, EVENTCHKINF_BE, gFireBarrierCs },
|
||||
{ ENTR_INSIDE_GANONS_CASTLE_6, 2, EVENTCHKINF_BF, gLightBarrierCs },
|
||||
{ ENTR_INSIDE_GANONS_CASTLE_7, 2, EVENTCHKINF_AD, gSpiritBarrierCs },
|
||||
{ ENTR_SPIRIT_TEMPLE_BOSS_0, 0, EVENTCHKINF_C0, gSpiritBossNabooruKnuckleIntroCs },
|
||||
{ ENTR_GERUDOS_FORTRESS_17, 0, EVENTCHKINF_C7, gGerudoFortressFirstCaptureCs },
|
||||
{ ENTR_DEATH_MOUNTAIN_CRATER_1, 2, EVENTCHKINF_B9, gDeathMountainCraterIntroCs },
|
||||
{ ENTR_KOKIRI_FOREST_12, 2, EVENTCHKINF_C6, gKokiriForestDekuSproutCs },
|
||||
};
|
||||
|
||||
// Unused, seems to be an early list of dungeon entrance cutscene locations
|
||||
|
@ -242,7 +242,7 @@ void func_80064824(PlayState* play, CutsceneContext* csCtx, CsCmdBase* cmd) {
|
|||
case 3:
|
||||
if (sp3F != 0) {
|
||||
Flags_SetEnv(play, 0);
|
||||
if (gSaveContext.entranceIndex == ENTR_TOKINOMA_0) {
|
||||
if (gSaveContext.entranceIndex == ENTR_TEMPLE_OF_TIME_0) {
|
||||
Flags_SetEnv(play, 2);
|
||||
}
|
||||
}
|
||||
|
@ -490,7 +490,7 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB
|
|||
s32 temp = 0;
|
||||
|
||||
if ((gSaveContext.gameMode != GAMEMODE_NORMAL) && (gSaveContext.gameMode != GAMEMODE_END_CREDITS) &&
|
||||
(play->sceneId != SCENE_SPOT00) && (csCtx->frames > 20) &&
|
||||
(play->sceneId != SCENE_HYRULE_FIELD) && (csCtx->frames > 20) &&
|
||||
(CHECK_BTN_ALL(play->state.input[0].press.button, BTN_A) ||
|
||||
CHECK_BTN_ALL(play->state.input[0].press.button, BTN_B) ||
|
||||
CHECK_BTN_ALL(play->state.input[0].press.button, BTN_START)) &&
|
||||
|
@ -517,43 +517,43 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB
|
|||
|
||||
switch (cmd->base) {
|
||||
case 1:
|
||||
play->nextEntranceIndex = ENTR_HIRAL_DEMO_0;
|
||||
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
|
||||
gSaveContext.cutsceneIndex = 0xFFF1;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 2:
|
||||
play->nextEntranceIndex = ENTR_HIRAL_DEMO_0;
|
||||
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
|
||||
gSaveContext.cutsceneIndex = 0xFFF0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FILL_WHITE;
|
||||
break;
|
||||
case 3:
|
||||
play->nextEntranceIndex = ENTR_SPOT09_0;
|
||||
play->nextEntranceIndex = ENTR_GERUDO_VALLEY_0;
|
||||
gSaveContext.cutsceneIndex = 0xFFF1;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FILL_WHITE;
|
||||
break;
|
||||
case 4:
|
||||
play->nextEntranceIndex = ENTR_SPOT16_0;
|
||||
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_0;
|
||||
gSaveContext.cutsceneIndex = 0xFFF0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FILL_WHITE;
|
||||
break;
|
||||
case 5:
|
||||
play->nextEntranceIndex = ENTR_SPOT04_0;
|
||||
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
|
||||
gSaveContext.cutsceneIndex = 0xFFF0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FILL_WHITE;
|
||||
break;
|
||||
case 6:
|
||||
play->nextEntranceIndex = ENTR_HIRAL_DEMO_0;
|
||||
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
|
||||
gSaveContext.cutsceneIndex = 0xFFF2;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FILL_WHITE;
|
||||
break;
|
||||
case 7:
|
||||
play->nextEntranceIndex = ENTR_SPOT04_0;
|
||||
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
|
||||
gSaveContext.cutsceneIndex = 0xFFF2;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_INSTANT;
|
||||
|
@ -563,7 +563,7 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB
|
|||
gSaveContext.respawn[RESPAWN_MODE_TOP].data = 0;
|
||||
if (!GET_EVENTCHKINF(EVENTCHKINF_45)) {
|
||||
SET_EVENTCHKINF(EVENTCHKINF_45);
|
||||
play->nextEntranceIndex = ENTR_HIRAL_DEMO_0;
|
||||
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF3;
|
||||
play->transitionType = TRANS_TYPE_INSTANT;
|
||||
|
@ -575,253 +575,253 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB
|
|||
play->linkAgeOnLoad = LINK_AGE_CHILD;
|
||||
}
|
||||
}
|
||||
play->nextEntranceIndex = ENTR_TOKINOMA_2;
|
||||
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_2;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_WHITE;
|
||||
}
|
||||
break;
|
||||
case 9:
|
||||
play->nextEntranceIndex = ENTR_SPOT09_0;
|
||||
play->nextEntranceIndex = ENTR_GERUDO_VALLEY_0;
|
||||
gSaveContext.cutsceneIndex = 0xFFF0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FILL_BROWN;
|
||||
break;
|
||||
case 10:
|
||||
play->nextEntranceIndex = ENTR_LINK_HOME_0;
|
||||
play->nextEntranceIndex = ENTR_LINKS_HOUSE_0;
|
||||
gSaveContext.cutsceneIndex = 0xFFF0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 11:
|
||||
play->nextEntranceIndex = ENTR_SPOT04_0;
|
||||
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
|
||||
gSaveContext.cutsceneIndex = 0xFFF3;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
case 12:
|
||||
play->nextEntranceIndex = ENTR_SPOT16_5;
|
||||
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_5;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 13:
|
||||
play->nextEntranceIndex = ENTR_SPOT08_0;
|
||||
play->nextEntranceIndex = ENTR_ZORAS_FOUNTAIN_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 14:
|
||||
play->nextEntranceIndex = ENTR_SPOT04_11;
|
||||
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_11;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 15:
|
||||
play->nextEntranceIndex = ENTR_TOKINOMA_0;
|
||||
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF4;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
case 16:
|
||||
play->nextEntranceIndex = ENTR_TOKINOMA_0;
|
||||
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF5;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
case 17:
|
||||
play->nextEntranceIndex = ENTR_TOKINOMA_0;
|
||||
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF6;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
case 18:
|
||||
SET_EVENTCHKINF(EVENTCHKINF_4F);
|
||||
play->nextEntranceIndex = ENTR_TOKINOMA_4;
|
||||
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_4;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 19:
|
||||
play->nextEntranceIndex = ENTR_SPOT16_0;
|
||||
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
|
||||
gSaveContext.cutsceneIndex = 0x8000;
|
||||
break;
|
||||
case 21:
|
||||
play->nextEntranceIndex = ENTR_SPOT06_0;
|
||||
play->nextEntranceIndex = ENTR_LAKE_HYLIA_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF0;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
case 22:
|
||||
Item_Give(play, ITEM_SONG_REQUIEM);
|
||||
play->nextEntranceIndex = ENTR_SPOT11_0;
|
||||
play->nextEntranceIndex = ENTR_DESERT_COLOSSUS_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF0;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
case 23:
|
||||
play->nextEntranceIndex = ENTR_HIRAL_DEMO_0;
|
||||
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF8;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
case 24:
|
||||
play->nextEntranceIndex = ENTR_BDAN_0;
|
||||
play->nextEntranceIndex = ENTR_JABU_JABU_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 25:
|
||||
play->linkAgeOnLoad = LINK_AGE_ADULT;
|
||||
play->nextEntranceIndex = ENTR_KENJYANOMA_0;
|
||||
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF0;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
case 26:
|
||||
play->nextEntranceIndex = ENTR_TOKINOMA_0;
|
||||
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF4;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
case 27:
|
||||
play->nextEntranceIndex = ENTR_TOKINOMA_0;
|
||||
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF5;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
case 28:
|
||||
play->nextEntranceIndex = ENTR_TOKINOMA_0;
|
||||
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF6;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
case 29:
|
||||
play->nextEntranceIndex = ENTR_KENJYANOMA_0;
|
||||
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.chamberCutsceneNum = 0;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
case 30:
|
||||
play->nextEntranceIndex = ENTR_KENJYANOMA_0;
|
||||
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
Item_Give(play, ITEM_MEDALLION_FIRE);
|
||||
gSaveContext.chamberCutsceneNum = 1;
|
||||
break;
|
||||
case 31:
|
||||
play->nextEntranceIndex = ENTR_KENJYANOMA_0;
|
||||
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
gSaveContext.chamberCutsceneNum = 2;
|
||||
break;
|
||||
case 32:
|
||||
play->linkAgeOnLoad = LINK_AGE_CHILD;
|
||||
play->nextEntranceIndex = ENTR_SPOT00_0;
|
||||
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF2;
|
||||
play->transitionType = TRANS_TYPE_INSTANT;
|
||||
break;
|
||||
case 33:
|
||||
play->nextEntranceIndex = ENTR_SPOT00_0;
|
||||
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
case 34:
|
||||
play->nextEntranceIndex = ENTR_HIRAL_DEMO_0;
|
||||
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF3;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
case 35:
|
||||
play->nextEntranceIndex = ENTR_SPOT00_0;
|
||||
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF0;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
|
||||
break;
|
||||
case 38:
|
||||
play->nextEntranceIndex = ENTR_HIRAL_DEMO_0;
|
||||
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF4;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
|
||||
break;
|
||||
case 39:
|
||||
play->nextEntranceIndex = ENTR_TOKINOMA_0;
|
||||
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF9;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
|
||||
break;
|
||||
case 40:
|
||||
play->linkAgeOnLoad = LINK_AGE_ADULT;
|
||||
play->nextEntranceIndex = ENTR_TOKINOMA_0;
|
||||
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFFA;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
|
||||
break;
|
||||
case 41:
|
||||
play->nextEntranceIndex = ENTR_SPOT06_5;
|
||||
play->nextEntranceIndex = ENTR_LAKE_HYLIA_5;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 42:
|
||||
play->nextEntranceIndex = ENTR_SPOT01_0;
|
||||
play->nextEntranceIndex = ENTR_KAKARIKO_VILLAGE_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF2;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
|
||||
break;
|
||||
case 43:
|
||||
play->nextEntranceIndex = ENTR_HAKASITARELAY_2;
|
||||
play->nextEntranceIndex = ENTR_WINDMILL_AND_DAMPES_GRAVE_2;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
|
||||
break;
|
||||
case 44:
|
||||
play->nextEntranceIndex = ENTR_TOKINOMA_3;
|
||||
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_3;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE_INSTANT;
|
||||
break;
|
||||
case 46:
|
||||
SET_EVENTCHKINF(EVENTCHKINF_4F);
|
||||
play->nextEntranceIndex = ENTR_TOKINOMA_4;
|
||||
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_4;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
|
||||
break;
|
||||
case 47:
|
||||
Item_Give(play, ITEM_SONG_NOCTURNE);
|
||||
SET_EVENTCHKINF(EVENTCHKINF_54);
|
||||
play->nextEntranceIndex = ENTR_SPOT01_0;
|
||||
play->nextEntranceIndex = ENTR_KAKARIKO_VILLAGE_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF1;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
|
||||
break;
|
||||
case 48:
|
||||
play->nextEntranceIndex = ENTR_SPOT11_4;
|
||||
play->nextEntranceIndex = ENTR_DESERT_COLOSSUS_4;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_SANDSTORM_END;
|
||||
gSaveContext.nextTransitionType = TRANS_TYPE_SANDSTORM_END;
|
||||
break;
|
||||
case 49:
|
||||
play->nextEntranceIndex = ENTR_TOKINOMA_5;
|
||||
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_5;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
|
||||
break;
|
||||
case 50:
|
||||
play->nextEntranceIndex = ENTR_SPOT01_13;
|
||||
play->nextEntranceIndex = ENTR_KAKARIKO_VILLAGE_13;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE_INSTANT;
|
||||
break;
|
||||
case 51:
|
||||
play->nextEntranceIndex = ENTR_SPOT00_0;
|
||||
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
|
||||
gSaveContext.cutsceneIndex = 0xFFF8;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_CIRCLE(TCA_NORMAL, TCC_WHITE, TCS_SLOW);
|
||||
break;
|
||||
case 52:
|
||||
play->nextEntranceIndex = ENTR_TOKINOMA_0;
|
||||
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
|
||||
gSaveContext.cutsceneIndex = 0xFFF7;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_INSTANT;
|
||||
break;
|
||||
case 53:
|
||||
play->nextEntranceIndex = ENTR_SPOT00_16;
|
||||
play->nextEntranceIndex = ENTR_HYRULE_FIELD_16;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
|
@ -829,102 +829,102 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB
|
|||
gSaveContext.gameMode = GAMEMODE_END_CREDITS;
|
||||
Audio_SetSfxBanksMute(0x6F);
|
||||
play->linkAgeOnLoad = LINK_AGE_CHILD;
|
||||
play->nextEntranceIndex = ENTR_SPOT09_0;
|
||||
play->nextEntranceIndex = ENTR_GERUDO_VALLEY_0;
|
||||
gSaveContext.cutsceneIndex = 0xFFF2;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 55:
|
||||
play->nextEntranceIndex = ENTR_SPOT12_0;
|
||||
play->nextEntranceIndex = ENTR_GERUDOS_FORTRESS_0;
|
||||
gSaveContext.cutsceneIndex = 0xFFF1;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 56:
|
||||
play->nextEntranceIndex = ENTR_SPOT01_0;
|
||||
play->nextEntranceIndex = ENTR_KAKARIKO_VILLAGE_0;
|
||||
gSaveContext.cutsceneIndex = 0xFFF4;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 57:
|
||||
play->nextEntranceIndex = ENTR_SPOT16_0;
|
||||
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_0;
|
||||
gSaveContext.cutsceneIndex = 0xFFF3;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 58:
|
||||
play->nextEntranceIndex = ENTR_SPOT18_0;
|
||||
play->nextEntranceIndex = ENTR_GORON_CITY_0;
|
||||
gSaveContext.cutsceneIndex = 0xFFF1;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 59:
|
||||
play->nextEntranceIndex = ENTR_SPOT06_0;
|
||||
play->nextEntranceIndex = ENTR_LAKE_HYLIA_0;
|
||||
gSaveContext.cutsceneIndex = 0xFFF1;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 60:
|
||||
play->nextEntranceIndex = ENTR_SPOT08_0;
|
||||
play->nextEntranceIndex = ENTR_ZORAS_FOUNTAIN_0;
|
||||
gSaveContext.cutsceneIndex = 0xFFF2;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 61:
|
||||
play->nextEntranceIndex = ENTR_SPOT07_0;
|
||||
play->nextEntranceIndex = ENTR_ZORAS_DOMAIN_0;
|
||||
gSaveContext.cutsceneIndex = 0xFFF0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 62:
|
||||
play->linkAgeOnLoad = LINK_AGE_ADULT;
|
||||
play->nextEntranceIndex = ENTR_SPOT04_0;
|
||||
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
|
||||
gSaveContext.cutsceneIndex = 0xFFF6;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 63:
|
||||
play->nextEntranceIndex = ENTR_SPOT04_0;
|
||||
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
|
||||
gSaveContext.cutsceneIndex = 0xFFF7;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 64:
|
||||
play->nextEntranceIndex = ENTR_SPOT00_0;
|
||||
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
|
||||
gSaveContext.cutsceneIndex = 0xFFF5;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 65:
|
||||
play->linkAgeOnLoad = LINK_AGE_CHILD;
|
||||
play->nextEntranceIndex = ENTR_SPOT20_0;
|
||||
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
|
||||
gSaveContext.cutsceneIndex = 0xFFF2;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 66:
|
||||
play->nextEntranceIndex = ENTR_SPOT01_14;
|
||||
play->nextEntranceIndex = ENTR_KAKARIKO_VILLAGE_14;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 67:
|
||||
play->nextEntranceIndex = ENTR_SPOT00_9;
|
||||
play->nextEntranceIndex = ENTR_HYRULE_FIELD_9;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 68:
|
||||
play->nextEntranceIndex = ENTR_HIRAL_DEMO_0;
|
||||
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF5;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 69:
|
||||
play->nextEntranceIndex = ENTR_SPOT04_12;
|
||||
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_12;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 70:
|
||||
play->nextEntranceIndex = ENTR_SPOT16_0;
|
||||
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF4;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
|
@ -936,13 +936,13 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB
|
|||
gSaveContext.equips.equipment |= EQUIP_VALUE_BOOTS_KOKIRI << (EQUIP_TYPE_BOOTS * 4);
|
||||
Player_SetEquipmentData(play, player);
|
||||
play->linkAgeOnLoad = LINK_AGE_CHILD;
|
||||
play->nextEntranceIndex = ENTR_TOKINOMA_0;
|
||||
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF1;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 72:
|
||||
play->nextEntranceIndex = ENTR_NAKANIWA_0;
|
||||
play->nextEntranceIndex = ENTR_CASTLE_COURTYARD_ZELDA_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF0;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
|
@ -950,13 +950,13 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB
|
|||
break;
|
||||
case 73:
|
||||
play->linkAgeOnLoad = LINK_AGE_CHILD;
|
||||
play->nextEntranceIndex = ENTR_SPOT20_0;
|
||||
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF2;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 74:
|
||||
play->nextEntranceIndex = ENTR_SPOT20_0;
|
||||
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF3;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
|
@ -964,27 +964,27 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB
|
|||
break;
|
||||
case 75:
|
||||
play->linkAgeOnLoad = LINK_AGE_CHILD;
|
||||
play->nextEntranceIndex = ENTR_SPOT20_0;
|
||||
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF4;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 76:
|
||||
play->linkAgeOnLoad = LINK_AGE_ADULT;
|
||||
play->nextEntranceIndex = ENTR_SPOT20_0;
|
||||
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF5;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 77:
|
||||
play->linkAgeOnLoad = LINK_AGE_CHILD;
|
||||
play->nextEntranceIndex = ENTR_SPOT20_0;
|
||||
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF6;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 78:
|
||||
play->nextEntranceIndex = ENTR_SPOT20_0;
|
||||
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF7;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
|
@ -1004,36 +1004,36 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB
|
|||
case 91:
|
||||
case 92:
|
||||
case 93:
|
||||
play->nextEntranceIndex = ENTR_SPOT20_0;
|
||||
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 94:
|
||||
play->nextEntranceIndex = ENTR_SPOT20_1;
|
||||
play->nextEntranceIndex = ENTR_LON_LON_RANCH_1;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
case 95:
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_48) && GET_EVENTCHKINF(EVENTCHKINF_49) &&
|
||||
GET_EVENTCHKINF(EVENTCHKINF_4A)) {
|
||||
play->nextEntranceIndex = ENTR_TOKINOMA_0;
|
||||
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF3;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
} else {
|
||||
switch (gSaveContext.sceneLayer) {
|
||||
case 8:
|
||||
play->nextEntranceIndex = ENTR_SPOT05_0;
|
||||
play->nextEntranceIndex = ENTR_SACRED_FOREST_MEADOW_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 9:
|
||||
play->nextEntranceIndex = ENTR_SPOT17_0;
|
||||
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_CRATER_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 10:
|
||||
play->nextEntranceIndex = ENTR_SPOT06_0;
|
||||
play->nextEntranceIndex = ENTR_LAKE_HYLIA_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF0;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
|
@ -1043,13 +1043,13 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB
|
|||
break;
|
||||
case 96:
|
||||
if (CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW)) {
|
||||
play->nextEntranceIndex = ENTR_KENJYANOMA_0;
|
||||
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF1;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE_FAST;
|
||||
} else {
|
||||
SET_EVENTCHKINF(EVENTCHKINF_C8);
|
||||
play->nextEntranceIndex = ENTR_SPOT11_8;
|
||||
play->nextEntranceIndex = ENTR_DESERT_COLOSSUS_8;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_WHITE;
|
||||
|
@ -1057,48 +1057,48 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB
|
|||
break;
|
||||
case 97:
|
||||
if (CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT)) {
|
||||
play->nextEntranceIndex = ENTR_KENJYANOMA_0;
|
||||
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF1;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE_FAST;
|
||||
} else {
|
||||
play->nextEntranceIndex = ENTR_SPOT02_8;
|
||||
play->nextEntranceIndex = ENTR_GRAVEYARD_8;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_WHITE;
|
||||
}
|
||||
break;
|
||||
case 98:
|
||||
play->nextEntranceIndex = ENTR_SPOT17_5;
|
||||
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_CRATER_5;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
case 99:
|
||||
play->nextEntranceIndex = ENTR_SPOT05_3;
|
||||
play->nextEntranceIndex = ENTR_SACRED_FOREST_MEADOW_3;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 100:
|
||||
play->nextEntranceIndex = ENTR_SPOT04_0;
|
||||
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
|
||||
gSaveContext.cutsceneIndex = 0xFFF8;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
case 101:
|
||||
play->nextEntranceIndex = ENTR_SPOT11_6;
|
||||
play->nextEntranceIndex = ENTR_DESERT_COLOSSUS_6;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_SANDSTORM_END;
|
||||
break;
|
||||
case 102:
|
||||
play->nextEntranceIndex = ENTR_TOKINOMA_6;
|
||||
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_6;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 103:
|
||||
play->nextEntranceIndex = ENTR_SPOT00_0;
|
||||
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF3;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
|
@ -1106,21 +1106,21 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB
|
|||
case 104:
|
||||
switch (sTitleCsState) {
|
||||
case 0:
|
||||
play->nextEntranceIndex = ENTR_JYASINBOSS_0;
|
||||
play->nextEntranceIndex = ENTR_SPIRIT_TEMPLE_BOSS_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF2;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
sTitleCsState++;
|
||||
break;
|
||||
case 1:
|
||||
play->nextEntranceIndex = ENTR_SPOT17_0;
|
||||
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_CRATER_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF1;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
sTitleCsState++;
|
||||
break;
|
||||
case 2:
|
||||
play->nextEntranceIndex = ENTR_HIRAL_DEMO_0;
|
||||
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF6;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
|
@ -1129,43 +1129,43 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB
|
|||
}
|
||||
break;
|
||||
case 105:
|
||||
play->nextEntranceIndex = ENTR_SPOT02_0;
|
||||
play->nextEntranceIndex = ENTR_GRAVEYARD_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.cutsceneIndex = 0xFFF1;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 106:
|
||||
play->nextEntranceIndex = ENTR_HAKAANA_OUKE_1;
|
||||
play->nextEntranceIndex = ENTR_ROYAL_FAMILYS_TOMB_1;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 107:
|
||||
play->nextEntranceIndex = ENTR_GANONTIKA_2;
|
||||
play->nextEntranceIndex = ENTR_INSIDE_GANONS_CASTLE_2;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 108:
|
||||
play->nextEntranceIndex = ENTR_GANONTIKA_3;
|
||||
play->nextEntranceIndex = ENTR_INSIDE_GANONS_CASTLE_3;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 109:
|
||||
play->nextEntranceIndex = ENTR_GANONTIKA_4;
|
||||
play->nextEntranceIndex = ENTR_INSIDE_GANONS_CASTLE_4;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 110:
|
||||
play->nextEntranceIndex = ENTR_GANONTIKA_5;
|
||||
play->nextEntranceIndex = ENTR_INSIDE_GANONS_CASTLE_5;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 111:
|
||||
play->nextEntranceIndex = ENTR_GANONTIKA_6;
|
||||
play->nextEntranceIndex = ENTR_INSIDE_GANONS_CASTLE_6;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 112:
|
||||
play->nextEntranceIndex = ENTR_GANONTIKA_7;
|
||||
play->nextEntranceIndex = ENTR_INSIDE_GANONS_CASTLE_7;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
|
@ -1184,23 +1184,23 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB
|
|||
}
|
||||
break;
|
||||
case 114:
|
||||
play->nextEntranceIndex = ENTR_SPOT00_3;
|
||||
play->nextEntranceIndex = ENTR_HYRULE_FIELD_3;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 115:
|
||||
play->nextEntranceIndex = ENTR_SPOT00_17;
|
||||
play->nextEntranceIndex = ENTR_HYRULE_FIELD_17;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
case 116:
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_C8)) {
|
||||
play->nextEntranceIndex = ENTR_SPOT02_8;
|
||||
play->nextEntranceIndex = ENTR_GRAVEYARD_8;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
} else {
|
||||
play->nextEntranceIndex = ENTR_SPOT11_8;
|
||||
play->nextEntranceIndex = ENTR_DESERT_COLOSSUS_8;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
}
|
||||
|
@ -1210,13 +1210,13 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB
|
|||
gSaveContext.gameMode = GAMEMODE_END_CREDITS;
|
||||
Audio_SetSfxBanksMute(0x6F);
|
||||
play->linkAgeOnLoad = LINK_AGE_ADULT;
|
||||
play->nextEntranceIndex = ENTR_SPOT00_0;
|
||||
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
|
||||
gSaveContext.cutsceneIndex = 0xFFF7;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
case 118:
|
||||
gSaveContext.respawn[RESPAWN_MODE_DOWN].entranceIndex = ENTR_GANON_DEMO_0;
|
||||
gSaveContext.respawn[RESPAWN_MODE_DOWN].entranceIndex = ENTR_GANON_BOSS_0;
|
||||
Play_TriggerVoidOut(play);
|
||||
gSaveContext.respawnFlag = -2;
|
||||
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK;
|
||||
|
@ -1224,7 +1224,7 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB
|
|||
case 119:
|
||||
gSaveContext.dayTime = CLOCK_TIME(12, 0);
|
||||
gSaveContext.skyboxTime = CLOCK_TIME(12, 0);
|
||||
play->nextEntranceIndex = ENTR_NAKANIWA_1;
|
||||
play->nextEntranceIndex = ENTR_CASTLE_COURTYARD_ZELDA_1;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
|
@ -1248,15 +1248,16 @@ void Cutscene_Command_TransitionFX(PlayState* play, CutsceneContext* csCtx, CsCm
|
|||
play->envCtx.screenFillColor[2] = 160;
|
||||
if (cmd->base == 1) {
|
||||
play->envCtx.screenFillColor[3] = 255.0f * temp;
|
||||
if ((temp == 0.0f) && (gSaveContext.entranceIndex == ENTR_KENJYANOMA_0)) {
|
||||
if ((temp == 0.0f) && (gSaveContext.entranceIndex == ENTR_CHAMBER_OF_THE_SAGES_0)) {
|
||||
Audio_PlaySfxGeneral(NA_SE_SY_WHITE_OUT_S, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
|
||||
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
|
||||
} else if ((temp == 0.0f) && ((gSaveContext.entranceIndex == ENTR_TOKINOMA_0) ||
|
||||
(gSaveContext.entranceIndex == ENTR_SPOT15_0) ||
|
||||
(gSaveContext.entranceIndex == ENTR_YOUSEI_IZUMI_YOKO_0))) {
|
||||
} else if ((temp == 0.0f) &&
|
||||
((gSaveContext.entranceIndex == ENTR_TEMPLE_OF_TIME_0) ||
|
||||
(gSaveContext.entranceIndex == ENTR_HYRULE_CASTLE_0) ||
|
||||
(gSaveContext.entranceIndex == ENTR_GREAT_FAIRYS_FOUNTAIN_SPELLS_0))) {
|
||||
Audio_PlaySfxGeneral(NA_SE_EV_WHITE_OUT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
|
||||
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
|
||||
} else if ((temp == 0.0f) && (play->sceneId == SCENE_GANONTIKA)) {
|
||||
} else if ((temp == 0.0f) && (play->sceneId == SCENE_INSIDE_GANONS_CASTLE)) {
|
||||
func_800788CC(NA_SE_EV_WHITE_OUT);
|
||||
}
|
||||
} else {
|
||||
|
@ -2078,30 +2079,30 @@ void Cutscene_HandleConditionalTriggers(PlayState* play) {
|
|||
|
||||
if ((gSaveContext.gameMode == GAMEMODE_NORMAL) && (gSaveContext.respawnFlag <= 0) &&
|
||||
(gSaveContext.cutsceneIndex < 0xFFF0)) {
|
||||
if ((gSaveContext.entranceIndex == ENTR_SPOT11_1) && !Flags_GetEventChkInf(EVENTCHKINF_AC)) {
|
||||
if ((gSaveContext.entranceIndex == ENTR_DESERT_COLOSSUS_1) && !Flags_GetEventChkInf(EVENTCHKINF_AC)) {
|
||||
Flags_SetEventChkInf(EVENTCHKINF_AC);
|
||||
gSaveContext.entranceIndex = ENTR_SPOT11_0;
|
||||
gSaveContext.entranceIndex = ENTR_DESERT_COLOSSUS_0;
|
||||
gSaveContext.cutsceneIndex = 0xFFF0;
|
||||
} else if ((gSaveContext.entranceIndex == ENTR_SPOT01_0) && LINK_IS_ADULT && GET_EVENTCHKINF(EVENTCHKINF_48) &&
|
||||
GET_EVENTCHKINF(EVENTCHKINF_49) && GET_EVENTCHKINF(EVENTCHKINF_4A) &&
|
||||
!Flags_GetEventChkInf(EVENTCHKINF_AA)) {
|
||||
} else if ((gSaveContext.entranceIndex == ENTR_KAKARIKO_VILLAGE_0) && LINK_IS_ADULT &&
|
||||
GET_EVENTCHKINF(EVENTCHKINF_48) && GET_EVENTCHKINF(EVENTCHKINF_49) &&
|
||||
GET_EVENTCHKINF(EVENTCHKINF_4A) && !Flags_GetEventChkInf(EVENTCHKINF_AA)) {
|
||||
Flags_SetEventChkInf(EVENTCHKINF_AA);
|
||||
gSaveContext.cutsceneIndex = 0xFFF0;
|
||||
} else if ((gSaveContext.entranceIndex == ENTR_SPOT10_9) && !Flags_GetEventChkInf(EVENTCHKINF_C1)) {
|
||||
} else if ((gSaveContext.entranceIndex == ENTR_LOST_WOODS_9) && !Flags_GetEventChkInf(EVENTCHKINF_C1)) {
|
||||
Flags_SetEventChkInf(EVENTCHKINF_C1);
|
||||
Item_Give(play, ITEM_OCARINA_FAIRY);
|
||||
gSaveContext.entranceIndex = ENTR_SPOT10_0;
|
||||
gSaveContext.entranceIndex = ENTR_LOST_WOODS_0;
|
||||
gSaveContext.cutsceneIndex = 0xFFF0;
|
||||
} else if (CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT) && CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW) &&
|
||||
LINK_IS_ADULT && !Flags_GetEventChkInf(EVENTCHKINF_C4) &&
|
||||
(gEntranceTable[((void)0, gSaveContext.entranceIndex)].sceneId == SCENE_TOKINOMA)) {
|
||||
(gEntranceTable[((void)0, gSaveContext.entranceIndex)].sceneId == SCENE_TEMPLE_OF_TIME)) {
|
||||
Flags_SetEventChkInf(EVENTCHKINF_C4);
|
||||
gSaveContext.entranceIndex = ENTR_TOKINOMA_0;
|
||||
gSaveContext.entranceIndex = ENTR_TEMPLE_OF_TIME_0;
|
||||
gSaveContext.cutsceneIndex = 0xFFF8;
|
||||
} else if (!Flags_GetEventChkInf(EVENTCHKINF_C7) &&
|
||||
(gEntranceTable[((void)0, gSaveContext.entranceIndex)].sceneId == SCENE_GANON_DEMO)) {
|
||||
(gEntranceTable[((void)0, gSaveContext.entranceIndex)].sceneId == SCENE_GANON_BOSS)) {
|
||||
Flags_SetEventChkInf(EVENTCHKINF_C7);
|
||||
gSaveContext.entranceIndex = ENTR_GANON_DEMO_0;
|
||||
gSaveContext.entranceIndex = ENTR_GANON_BOSS_0;
|
||||
gSaveContext.cutsceneIndex = 0xFFF0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,8 @@
|
|||
#include "src/overlays/actors/ovl_En_Horse/z_en_horse.h"
|
||||
|
||||
s32 func_8006CFC0(s32 sceneId) {
|
||||
s32 validSceneIds[] = { SCENE_SPOT00, SCENE_SPOT06, SCENE_SPOT09, SCENE_SPOT12, SCENE_SPOT20 };
|
||||
s32 validSceneIds[] = { SCENE_HYRULE_FIELD, SCENE_LAKE_HYLIA, SCENE_GERUDO_VALLEY, SCENE_GERUDOS_FORTRESS,
|
||||
SCENE_LON_LON_RANCH };
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(validSceneIds); i++) {
|
||||
|
@ -16,7 +17,7 @@ s32 func_8006CFC0(s32 sceneId) {
|
|||
}
|
||||
|
||||
void func_8006D074(PlayState* play) {
|
||||
gSaveContext.horseData.sceneId = SCENE_SPOT00;
|
||||
gSaveContext.horseData.sceneId = SCENE_HYRULE_FIELD;
|
||||
gSaveContext.horseData.pos.x = -1840;
|
||||
gSaveContext.horseData.pos.y = 72;
|
||||
gSaveContext.horseData.pos.z = 5497;
|
||||
|
@ -24,8 +25,8 @@ void func_8006D074(PlayState* play) {
|
|||
}
|
||||
|
||||
void func_8006D0AC(PlayState* play) {
|
||||
if (gSaveContext.horseData.sceneId == SCENE_SPOT06) {
|
||||
gSaveContext.horseData.sceneId = SCENE_SPOT06;
|
||||
if (gSaveContext.horseData.sceneId == SCENE_LAKE_HYLIA) {
|
||||
gSaveContext.horseData.sceneId = SCENE_LAKE_HYLIA;
|
||||
gSaveContext.horseData.pos.x = -2065;
|
||||
gSaveContext.horseData.pos.y = -863;
|
||||
gSaveContext.horseData.pos.z = 1839;
|
||||
|
@ -43,9 +44,9 @@ typedef struct {
|
|||
void func_8006D0EC(PlayState* play, Player* player) {
|
||||
s32 i;
|
||||
HorseSpawn horseSpawns[] = {
|
||||
{ SCENE_SPOT00, -460, 100, 6640, 0, 2 }, { SCENE_SPOT06, -1929, -1025, 768, 0, 2 },
|
||||
{ SCENE_SPOT09, 2566, -259, 767, 0, 2 }, { SCENE_SPOT12, -328, 10, 953, 0, 2 },
|
||||
{ SCENE_SPOT20, 928, 0, -2280, 0, 2 },
|
||||
{ SCENE_HYRULE_FIELD, -460, 100, 6640, 0, 2 }, { SCENE_LAKE_HYLIA, -1929, -1025, 768, 0, 2 },
|
||||
{ SCENE_GERUDO_VALLEY, 2566, -259, 767, 0, 2 }, { SCENE_GERUDOS_FORTRESS, -328, 10, 953, 0, 2 },
|
||||
{ SCENE_LON_LON_RANCH, 928, 0, -2280, 0, 2 },
|
||||
};
|
||||
|
||||
if ((AREG(6) != 0) && (Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) || (DREG(1) != 0))) {
|
||||
|
@ -59,15 +60,15 @@ void func_8006D0EC(PlayState* play, Player* player) {
|
|||
func_8002DE74(play, player);
|
||||
gSaveContext.horseData.sceneId = play->sceneId;
|
||||
|
||||
if (play->sceneId == SCENE_SPOT12) {
|
||||
if (play->sceneId == SCENE_GERUDOS_FORTRESS) {
|
||||
player->rideActor->room = -1;
|
||||
}
|
||||
} else if ((play->sceneId == SCENE_SPOT12) && (gSaveContext.minigameState == 3)) {
|
||||
} else if ((play->sceneId == SCENE_GERUDOS_FORTRESS) && (gSaveContext.minigameState == 3)) {
|
||||
Actor* horseActor;
|
||||
gSaveContext.minigameState = 0;
|
||||
horseActor = Actor_Spawn(&play->actorCtx, play, ACTOR_EN_HORSE, 3586.0f, 1413.0f, -402.0f, 0, 0x4000, 0, 1);
|
||||
horseActor->room = -1;
|
||||
} else if ((gSaveContext.entranceIndex == ENTR_SPOT20_7) && GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED)) {
|
||||
} else if ((gSaveContext.entranceIndex == ENTR_LON_LON_RANCH_7) && GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED)) {
|
||||
Actor* horseActor =
|
||||
Actor_Spawn(&play->actorCtx, play, ACTOR_EN_HORSE, -25.0f, 0.0f, -1600.0f, 0, -0x4000, 0, 1);
|
||||
ASSERT(horseActor != NULL, "horse_actor != NULL", "../z_horse.c", 389);
|
||||
|
@ -82,7 +83,7 @@ void func_8006D0EC(PlayState* play, Player* player) {
|
|||
gSaveContext.horseData.pos.y, gSaveContext.horseData.pos.z, 0,
|
||||
gSaveContext.horseData.angle, 0, 1);
|
||||
ASSERT(horseActor != NULL, "horse_actor != NULL", "../z_horse.c", 414);
|
||||
if (play->sceneId == SCENE_SPOT12) {
|
||||
if (play->sceneId == SCENE_GERUDOS_FORTRESS) {
|
||||
horseActor->room = -1;
|
||||
}
|
||||
} else {
|
||||
|
@ -92,7 +93,8 @@ void func_8006D0EC(PlayState* play, Player* player) {
|
|||
osSyncPrintf(VT_RST);
|
||||
func_8006D074(play);
|
||||
}
|
||||
} else if ((play->sceneId == SCENE_SPOT20) && !Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) && (DREG(1) == 0)) {
|
||||
} else if ((play->sceneId == SCENE_LON_LON_RANCH) && !Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) &&
|
||||
(DREG(1) == 0)) {
|
||||
Actor* horseActor = Actor_Spawn(&play->actorCtx, play, ACTOR_EN_HORSE, 0.0f, 0.0f, -500.0f, 0, 0, 0, 1);
|
||||
ASSERT(horseActor != NULL, "horse_actor != NULL", "../z_horse.c", 443);
|
||||
} else if (Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) || (DREG(1) != 0)) {
|
||||
|
@ -103,7 +105,7 @@ void func_8006D0EC(PlayState* play, Player* player) {
|
|||
Actor_Spawn(&play->actorCtx, play, ACTOR_EN_HORSE, horseSpawn->pos.x, horseSpawn->pos.y,
|
||||
horseSpawn->pos.z, 0, horseSpawn->angle, 0, horseSpawn->type);
|
||||
ASSERT(horseActor != NULL, "horse_actor != NULL", "../z_horse.c", 466);
|
||||
if (play->sceneId == SCENE_SPOT12) {
|
||||
if (play->sceneId == SCENE_GERUDOS_FORTRESS) {
|
||||
horseActor->room = -1;
|
||||
}
|
||||
|
||||
|
@ -111,7 +113,7 @@ void func_8006D0EC(PlayState* play, Player* player) {
|
|||
}
|
||||
}
|
||||
} else if (!Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED)) {
|
||||
if ((DREG(1) == 0) && (play->sceneId == SCENE_SOUKO) && !IS_DAY) {
|
||||
if ((DREG(1) == 0) && (play->sceneId == SCENE_LON_LON_BUILDINGS) && !IS_DAY) {
|
||||
Actor_Spawn(&play->actorCtx, play, ACTOR_EN_HORSE, 0.0f, 0.0f, -60.0f, 0, 0x7360, 0, 1);
|
||||
}
|
||||
}
|
||||
|
@ -130,8 +132,8 @@ void func_8006D684(PlayState* play, Player* player) {
|
|||
s32 i;
|
||||
Vec3s spawnPos;
|
||||
|
||||
if ((gSaveContext.entranceIndex == ENTR_SPOT00_11 || gSaveContext.entranceIndex == ENTR_SPOT00_12 ||
|
||||
gSaveContext.entranceIndex == ENTR_SPOT00_13 || gSaveContext.entranceIndex == ENTR_SPOT00_15) &&
|
||||
if ((gSaveContext.entranceIndex == ENTR_HYRULE_FIELD_11 || gSaveContext.entranceIndex == ENTR_HYRULE_FIELD_12 ||
|
||||
gSaveContext.entranceIndex == ENTR_HYRULE_FIELD_13 || gSaveContext.entranceIndex == ENTR_HYRULE_FIELD_15) &&
|
||||
(gSaveContext.respawnFlag == 0)) {
|
||||
Vec3s spawnPositions[] = {
|
||||
{ -2961, 313, 7700 },
|
||||
|
@ -140,11 +142,11 @@ void func_8006D684(PlayState* play, Player* player) {
|
|||
{ -2313, 313, 5990 },
|
||||
};
|
||||
|
||||
if (gSaveContext.entranceIndex == ENTR_SPOT00_11) {
|
||||
if (gSaveContext.entranceIndex == ENTR_HYRULE_FIELD_11) {
|
||||
spawnPos = spawnPositions[0];
|
||||
} else if (gSaveContext.entranceIndex == ENTR_SPOT00_12) {
|
||||
} else if (gSaveContext.entranceIndex == ENTR_HYRULE_FIELD_12) {
|
||||
spawnPos = spawnPositions[1];
|
||||
} else if (gSaveContext.entranceIndex == ENTR_SPOT00_13) {
|
||||
} else if (gSaveContext.entranceIndex == ENTR_HYRULE_FIELD_13) {
|
||||
spawnPos = spawnPositions[2];
|
||||
} else {
|
||||
spawnPos = spawnPositions[3];
|
||||
|
@ -157,7 +159,7 @@ void func_8006D684(PlayState* play, Player* player) {
|
|||
Actor_MountHorse(play, player, player->rideActor);
|
||||
func_8002DE74(play, player);
|
||||
gSaveContext.horseData.sceneId = play->sceneId;
|
||||
} else if ((play->sceneId == SCENE_SPOT20) && (GET_EVENTINF_HORSES_STATE() == EVENTINF_HORSES_STATE_6) &&
|
||||
} else if ((play->sceneId == SCENE_LON_LON_RANCH) && (GET_EVENTINF_HORSES_STATE() == EVENTINF_HORSES_STATE_6) &&
|
||||
!Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) && (DREG(1) == 0)) {
|
||||
player->rideActor =
|
||||
Actor_Spawn(&play->actorCtx, play, ACTOR_EN_HORSE, 894.0f, 0.0f, -2084.0f, 0, -0x7FFF, 0, 5);
|
||||
|
@ -167,26 +169,26 @@ void func_8006D684(PlayState* play, Player* player) {
|
|||
func_8002DE74(play, player);
|
||||
gSaveContext.horseData.sceneId = play->sceneId;
|
||||
|
||||
if (play->sceneId == SCENE_SPOT12) {
|
||||
if (play->sceneId == SCENE_GERUDOS_FORTRESS) {
|
||||
player->rideActor->room = -1;
|
||||
}
|
||||
} else {
|
||||
static struct_8011F9B8 D_8011F9B8[] = {
|
||||
{ SCENE_SPOT12, 0xFFF0, { 3600, 1413, 360 }, 0x8001, 8 },
|
||||
{ SCENE_SPOT20, 0xFFF0, { -250, 1, -1580 }, 0x4000, 6 },
|
||||
{ SCENE_SPOT20, 0xFFF1, { 0, 0, 0 }, 0x0000, 5 },
|
||||
{ SCENE_SPOT20, 0xFFF5, { 0, 0, 0 }, 0x0000, 7 },
|
||||
{ SCENE_SPOT00, 0xFFF3, { -2961, 313, 7700 }, 0x0000, 7 },
|
||||
{ SCENE_SPOT00, 0xFFF4, { -1900, 313, 7015 }, 0x0000, 7 },
|
||||
{ SCENE_SPOT00, 0xFFF5, { -4043, 313, 6933 }, 0x0000, 7 },
|
||||
{ SCENE_SPOT00, 0xFFF6, { -4043, 313, 6933 }, 0x0000, 7 },
|
||||
{ SCENE_GERUDOS_FORTRESS, 0xFFF0, { 3600, 1413, 360 }, 0x8001, 8 },
|
||||
{ SCENE_LON_LON_RANCH, 0xFFF0, { -250, 1, -1580 }, 0x4000, 6 },
|
||||
{ SCENE_LON_LON_RANCH, 0xFFF1, { 0, 0, 0 }, 0x0000, 5 },
|
||||
{ SCENE_LON_LON_RANCH, 0xFFF5, { 0, 0, 0 }, 0x0000, 7 },
|
||||
{ SCENE_HYRULE_FIELD, 0xFFF3, { -2961, 313, 7700 }, 0x0000, 7 },
|
||||
{ SCENE_HYRULE_FIELD, 0xFFF4, { -1900, 313, 7015 }, 0x0000, 7 },
|
||||
{ SCENE_HYRULE_FIELD, 0xFFF5, { -4043, 313, 6933 }, 0x0000, 7 },
|
||||
{ SCENE_HYRULE_FIELD, 0xFFF6, { -4043, 313, 6933 }, 0x0000, 7 },
|
||||
};
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(D_8011F9B8); i++) {
|
||||
if ((play->sceneId == D_8011F9B8[i].sceneId) &&
|
||||
(((void)0, gSaveContext.cutsceneIndex) == D_8011F9B8[i].cutsceneIndex)) {
|
||||
if (D_8011F9B8[i].type == 7) {
|
||||
if ((play->sceneId == SCENE_SPOT20) && (((void)0, gSaveContext.cutsceneIndex) == 0xFFF1)) {
|
||||
if ((play->sceneId == SCENE_LON_LON_RANCH) && (((void)0, gSaveContext.cutsceneIndex) == 0xFFF1)) {
|
||||
D_8011F9B8[i].pos.x = player->actor.world.pos.x;
|
||||
D_8011F9B8[i].pos.y = player->actor.world.pos.y;
|
||||
D_8011F9B8[i].pos.z = player->actor.world.pos.z;
|
||||
|
@ -248,10 +250,12 @@ void func_8006DC68(PlayState* play, Player* player) {
|
|||
|
||||
if (func_8006CFC0(play->sceneId)) {
|
||||
if (IS_CUTSCENE_LAYER ||
|
||||
((gSaveContext.entranceIndex == ENTR_SPOT00_11 || gSaveContext.entranceIndex == ENTR_SPOT00_12 ||
|
||||
gSaveContext.entranceIndex == ENTR_SPOT00_13 || gSaveContext.entranceIndex == ENTR_SPOT00_15) &&
|
||||
((gSaveContext.entranceIndex == ENTR_HYRULE_FIELD_11 ||
|
||||
gSaveContext.entranceIndex == ENTR_HYRULE_FIELD_12 ||
|
||||
gSaveContext.entranceIndex == ENTR_HYRULE_FIELD_13 ||
|
||||
gSaveContext.entranceIndex == ENTR_HYRULE_FIELD_15) &&
|
||||
(gSaveContext.respawnFlag == 0)) ||
|
||||
((play->sceneId == SCENE_SPOT20) && (GET_EVENTINF_HORSES_STATE() == EVENTINF_HORSES_STATE_6) &&
|
||||
((play->sceneId == SCENE_LON_LON_RANCH) && (GET_EVENTINF_HORSES_STATE() == EVENTINF_HORSES_STATE_6) &&
|
||||
!Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) && (DREG(1) == 0))) {
|
||||
func_8006D684(play, player);
|
||||
} else {
|
||||
|
|
|
@ -17,7 +17,7 @@ void KaleidoSetup_Update(PlayState* play) {
|
|||
gSaveContext.cutsceneIndex < 0xFFF0 && gSaveContext.nextCutsceneIndex < 0xFFF0 && !Play_InCsMode(play) &&
|
||||
play->shootingGalleryStatus <= 1 && gSaveContext.magicState != MAGIC_STATE_STEP_CAPACITY &&
|
||||
gSaveContext.magicState != MAGIC_STATE_FILL &&
|
||||
(play->sceneId != SCENE_BOWLING || !Flags_GetSwitch(play, 0x38))) {
|
||||
(play->sceneId != SCENE_BOMBCHU_BOWLING_ALLEY || !Flags_GetSwitch(play, 0x38))) {
|
||||
|
||||
if (CHECK_BTN_ALL(input->cur.button, BTN_L) && CHECK_BTN_ALL(input->press.button, BTN_CUP)) {
|
||||
if (BREG(0)) {
|
||||
|
|
|
@ -1394,7 +1394,7 @@ void Environment_DrawSunAndMoon(PlayState* play) {
|
|||
play->envCtx.sunPos.z = +(Math_CosS(((void)0, gSaveContext.dayTime) - CLOCK_TIME(12, 0)) * 20.0f) * 25.0f;
|
||||
}
|
||||
|
||||
if (gSaveContext.entranceIndex != ENTR_SPOT00_0 || ((void)0, gSaveContext.sceneLayer) != 5) {
|
||||
if (gSaveContext.entranceIndex != ENTR_HYRULE_FIELD_0 || ((void)0, gSaveContext.sceneLayer) != 5) {
|
||||
Matrix_Translate(play->view.eye.x + play->envCtx.sunPos.x, play->view.eye.y + play->envCtx.sunPos.y,
|
||||
play->view.eye.z + play->envCtx.sunPos.z, MTXMODE_NEW);
|
||||
|
||||
|
@ -2037,8 +2037,8 @@ void Environment_PlaySceneSequence(PlayState* play) {
|
|||
play->envCtx.timeSeqState = TIMESEQ_DISABLED;
|
||||
|
||||
// both lost woods exits on the bridge from kokiri to hyrule field
|
||||
if (((void)0, gSaveContext.entranceIndex) == ENTR_SPOT10_8 ||
|
||||
((void)0, gSaveContext.entranceIndex) == ENTR_SPOT10_9) {
|
||||
if (((void)0, gSaveContext.entranceIndex) == ENTR_LOST_WOODS_8 ||
|
||||
((void)0, gSaveContext.entranceIndex) == ENTR_LOST_WOODS_9) {
|
||||
Audio_PlayNatureAmbienceSequence(NATURE_ID_KOKIRI_REGION);
|
||||
} else if (((void)0, gSaveContext.forcedSeqId) != NA_BGM_GENERAL_SFX) {
|
||||
if (!Environment_IsForcedSequenceDisabled()) {
|
||||
|
@ -2368,7 +2368,7 @@ void Environment_DrawSandstorm(PlayState* play, u8 sandstormState) {
|
|||
|
||||
switch (sandstormState) {
|
||||
case SANDSTORM_ACTIVE:
|
||||
if ((play->sceneId == SCENE_SPOT13) && (play->roomCtx.curRoom.num == 0)) {
|
||||
if ((play->sceneId == SCENE_HAUNTED_WASTELAND) && (play->roomCtx.curRoom.num == 0)) {
|
||||
envA1 = 0;
|
||||
primA1 = (play->envCtx.sandstormEnvA > 128) ? 255 : play->envCtx.sandstormEnvA >> 1;
|
||||
} else {
|
||||
|
@ -2593,27 +2593,27 @@ void Environment_WarpSongLeave(PlayState* play) {
|
|||
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_WHITE;
|
||||
|
||||
switch (play->nextEntranceIndex) {
|
||||
case ENTR_SPOT17_0:
|
||||
case ENTR_DEATH_MOUNTAIN_CRATER_0:
|
||||
Flags_SetEventChkInf(EVENTCHKINF_B9);
|
||||
break;
|
||||
|
||||
case ENTR_SPOT06_0:
|
||||
case ENTR_LAKE_HYLIA_0:
|
||||
Flags_SetEventChkInf(EVENTCHKINF_B1);
|
||||
break;
|
||||
|
||||
case ENTR_SPOT11_0:
|
||||
case ENTR_DESERT_COLOSSUS_0:
|
||||
Flags_SetEventChkInf(EVENTCHKINF_B8);
|
||||
break;
|
||||
|
||||
case ENTR_SPOT02_0:
|
||||
case ENTR_GRAVEYARD_0:
|
||||
Flags_SetEventChkInf(EVENTCHKINF_B6);
|
||||
break;
|
||||
|
||||
case ENTR_TOKINOMA_0:
|
||||
case ENTR_TEMPLE_OF_TIME_0:
|
||||
Flags_SetEventChkInf(EVENTCHKINF_A7);
|
||||
break;
|
||||
|
||||
case ENTR_SPOT05_0:
|
||||
case ENTR_SACRED_FOREST_MEADOW_0:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -54,24 +54,24 @@ void Map_SetFloorPalettesData(PlayState* play, s16 floor) {
|
|||
}
|
||||
|
||||
switch (play->sceneId) {
|
||||
case SCENE_YDAN:
|
||||
case SCENE_DDAN:
|
||||
case SCENE_BDAN:
|
||||
case SCENE_BMORI1:
|
||||
case SCENE_HIDAN:
|
||||
case SCENE_MIZUSIN:
|
||||
case SCENE_JYASINZOU:
|
||||
case SCENE_HAKADAN:
|
||||
case SCENE_HAKADANCH:
|
||||
case SCENE_ICE_DOUKUTO:
|
||||
case SCENE_YDAN_BOSS:
|
||||
case SCENE_DDAN_BOSS:
|
||||
case SCENE_BDAN_BOSS:
|
||||
case SCENE_MORIBOSSROOM:
|
||||
case SCENE_FIRE_BS:
|
||||
case SCENE_MIZUSIN_BS:
|
||||
case SCENE_JYASINBOSS:
|
||||
case SCENE_HAKADAN_BS:
|
||||
case SCENE_DEKU_TREE:
|
||||
case SCENE_DODONGOS_CAVERN:
|
||||
case SCENE_JABU_JABU:
|
||||
case SCENE_FOREST_TEMPLE:
|
||||
case SCENE_FIRE_TEMPLE:
|
||||
case SCENE_WATER_TEMPLE:
|
||||
case SCENE_SPIRIT_TEMPLE:
|
||||
case SCENE_SHADOW_TEMPLE:
|
||||
case SCENE_BOTTOM_OF_THE_WELL:
|
||||
case SCENE_ICE_CAVERN:
|
||||
case SCENE_DEKU_TREE_BOSS:
|
||||
case SCENE_DODONGOS_CAVERN_BOSS:
|
||||
case SCENE_JABU_JABU_BOSS:
|
||||
case SCENE_FOREST_TEMPLE_BOSS:
|
||||
case SCENE_FIRE_TEMPLE_BOSS:
|
||||
case SCENE_WATER_TEMPLE_BOSS:
|
||||
case SCENE_SPIRIT_TEMPLE_BOSS:
|
||||
case SCENE_SHADOW_TEMPLE_BOSS:
|
||||
for (i = 0; i < gMapData->maxPaletteCount[mapIndex]; i++) {
|
||||
room = gMapData->paletteRoom[mapIndex][floor][i];
|
||||
if ((room != 0xFF) && (gSaveContext.sceneFlags[mapIndex].rooms & gBitFlags[room])) {
|
||||
|
@ -88,40 +88,40 @@ void Map_InitData(PlayState* play, s16 room) {
|
|||
s16 extendedMapIndex;
|
||||
|
||||
switch (play->sceneId) {
|
||||
case SCENE_SPOT00:
|
||||
case SCENE_SPOT01:
|
||||
case SCENE_SPOT02:
|
||||
case SCENE_SPOT03:
|
||||
case SCENE_SPOT04:
|
||||
case SCENE_SPOT05:
|
||||
case SCENE_SPOT06:
|
||||
case SCENE_SPOT07:
|
||||
case SCENE_SPOT08:
|
||||
case SCENE_SPOT09:
|
||||
case SCENE_SPOT10:
|
||||
case SCENE_SPOT11:
|
||||
case SCENE_SPOT12:
|
||||
case SCENE_SPOT13:
|
||||
case SCENE_SPOT15:
|
||||
case SCENE_SPOT16:
|
||||
case SCENE_SPOT17:
|
||||
case SCENE_SPOT18:
|
||||
case SCENE_SPOT20:
|
||||
case SCENE_GANON_TOU:
|
||||
case SCENE_HYRULE_FIELD:
|
||||
case SCENE_KAKARIKO_VILLAGE:
|
||||
case SCENE_GRAVEYARD:
|
||||
case SCENE_ZORAS_RIVER:
|
||||
case SCENE_KOKIRI_FOREST:
|
||||
case SCENE_SACRED_FOREST_MEADOW:
|
||||
case SCENE_LAKE_HYLIA:
|
||||
case SCENE_ZORAS_DOMAIN:
|
||||
case SCENE_ZORAS_FOUNTAIN:
|
||||
case SCENE_GERUDO_VALLEY:
|
||||
case SCENE_LOST_WOODS:
|
||||
case SCENE_DESERT_COLOSSUS:
|
||||
case SCENE_GERUDOS_FORTRESS:
|
||||
case SCENE_HAUNTED_WASTELAND:
|
||||
case SCENE_HYRULE_CASTLE:
|
||||
case SCENE_DEATH_MOUNTAIN_TRAIL:
|
||||
case SCENE_DEATH_MOUNTAIN_CRATER:
|
||||
case SCENE_GORON_CITY:
|
||||
case SCENE_LON_LON_RANCH:
|
||||
case SCENE_OUTSIDE_GANONS_CASTLE:
|
||||
extendedMapIndex = mapIndex;
|
||||
if (play->sceneId == SCENE_SPOT02) {
|
||||
if (play->sceneId == SCENE_GRAVEYARD) {
|
||||
if (CHECK_QUEST_ITEM(QUEST_SONG_NOCTURNE)) {
|
||||
extendedMapIndex = 0x14;
|
||||
}
|
||||
} else if (play->sceneId == SCENE_SPOT06) {
|
||||
} else if (play->sceneId == SCENE_LAKE_HYLIA) {
|
||||
if ((LINK_AGE_IN_YEARS == YEARS_ADULT) && !CHECK_QUEST_ITEM(QUEST_MEDALLION_WATER)) {
|
||||
extendedMapIndex = 0x15;
|
||||
}
|
||||
} else if (play->sceneId == SCENE_SPOT09) {
|
||||
} else if (play->sceneId == SCENE_GERUDO_VALLEY) {
|
||||
if ((LINK_AGE_IN_YEARS == YEARS_ADULT) && !GET_EVENTCHKINF_CARPENTERS_FREE_ALL()) {
|
||||
extendedMapIndex = 0x16;
|
||||
}
|
||||
} else if (play->sceneId == SCENE_SPOT12) {
|
||||
} else if (play->sceneId == SCENE_GERUDOS_FORTRESS) {
|
||||
if (GET_EVENTCHKINF_CARPENTERS_FREE_ALL()) {
|
||||
extendedMapIndex = 0x17;
|
||||
}
|
||||
|
@ -136,24 +136,24 @@ void Map_InitData(PlayState* play, s16 room) {
|
|||
gMapData->owMinimapTexSize[mapIndex], "../z_map_exp.c", 309);
|
||||
interfaceCtx->unk_258 = mapIndex;
|
||||
break;
|
||||
case SCENE_YDAN:
|
||||
case SCENE_DDAN:
|
||||
case SCENE_BDAN:
|
||||
case SCENE_BMORI1:
|
||||
case SCENE_HIDAN:
|
||||
case SCENE_MIZUSIN:
|
||||
case SCENE_JYASINZOU:
|
||||
case SCENE_HAKADAN:
|
||||
case SCENE_HAKADANCH:
|
||||
case SCENE_ICE_DOUKUTO:
|
||||
case SCENE_YDAN_BOSS:
|
||||
case SCENE_DDAN_BOSS:
|
||||
case SCENE_BDAN_BOSS:
|
||||
case SCENE_MORIBOSSROOM:
|
||||
case SCENE_FIRE_BS:
|
||||
case SCENE_MIZUSIN_BS:
|
||||
case SCENE_JYASINBOSS:
|
||||
case SCENE_HAKADAN_BS:
|
||||
case SCENE_DEKU_TREE:
|
||||
case SCENE_DODONGOS_CAVERN:
|
||||
case SCENE_JABU_JABU:
|
||||
case SCENE_FOREST_TEMPLE:
|
||||
case SCENE_FIRE_TEMPLE:
|
||||
case SCENE_WATER_TEMPLE:
|
||||
case SCENE_SPIRIT_TEMPLE:
|
||||
case SCENE_SHADOW_TEMPLE:
|
||||
case SCENE_BOTTOM_OF_THE_WELL:
|
||||
case SCENE_ICE_CAVERN:
|
||||
case SCENE_DEKU_TREE_BOSS:
|
||||
case SCENE_DODONGOS_CAVERN_BOSS:
|
||||
case SCENE_JABU_JABU_BOSS:
|
||||
case SCENE_FOREST_TEMPLE_BOSS:
|
||||
case SCENE_FIRE_TEMPLE_BOSS:
|
||||
case SCENE_WATER_TEMPLE_BOSS:
|
||||
case SCENE_SPIRIT_TEMPLE_BOSS:
|
||||
case SCENE_SHADOW_TEMPLE_BOSS:
|
||||
osSyncPrintf(VT_FGCOL(YELLOW));
|
||||
// "Deku Tree Dungeon MAP Texture DMA"
|
||||
osSyncPrintf("デクの樹ダンジョンMAP テクスチャDMA(%x) scene_id_offset=%d VREG(30)=%d\n", room,
|
||||
|
@ -180,24 +180,24 @@ void Map_InitRoomData(PlayState* play, s16 room) {
|
|||
|
||||
if (room >= 0) {
|
||||
switch (play->sceneId) {
|
||||
case SCENE_YDAN:
|
||||
case SCENE_DDAN:
|
||||
case SCENE_BDAN:
|
||||
case SCENE_BMORI1:
|
||||
case SCENE_HIDAN:
|
||||
case SCENE_MIZUSIN:
|
||||
case SCENE_JYASINZOU:
|
||||
case SCENE_HAKADAN:
|
||||
case SCENE_HAKADANCH:
|
||||
case SCENE_ICE_DOUKUTO:
|
||||
case SCENE_YDAN_BOSS:
|
||||
case SCENE_DDAN_BOSS:
|
||||
case SCENE_BDAN_BOSS:
|
||||
case SCENE_MORIBOSSROOM:
|
||||
case SCENE_FIRE_BS:
|
||||
case SCENE_MIZUSIN_BS:
|
||||
case SCENE_JYASINBOSS:
|
||||
case SCENE_HAKADAN_BS:
|
||||
case SCENE_DEKU_TREE:
|
||||
case SCENE_DODONGOS_CAVERN:
|
||||
case SCENE_JABU_JABU:
|
||||
case SCENE_FOREST_TEMPLE:
|
||||
case SCENE_FIRE_TEMPLE:
|
||||
case SCENE_WATER_TEMPLE:
|
||||
case SCENE_SPIRIT_TEMPLE:
|
||||
case SCENE_SHADOW_TEMPLE:
|
||||
case SCENE_BOTTOM_OF_THE_WELL:
|
||||
case SCENE_ICE_CAVERN:
|
||||
case SCENE_DEKU_TREE_BOSS:
|
||||
case SCENE_DODONGOS_CAVERN_BOSS:
|
||||
case SCENE_JABU_JABU_BOSS:
|
||||
case SCENE_FOREST_TEMPLE_BOSS:
|
||||
case SCENE_FIRE_TEMPLE_BOSS:
|
||||
case SCENE_WATER_TEMPLE_BOSS:
|
||||
case SCENE_SPIRIT_TEMPLE_BOSS:
|
||||
case SCENE_SHADOW_TEMPLE_BOSS:
|
||||
gSaveContext.sceneFlags[mapIndex].rooms |= gBitFlags[room];
|
||||
osSyncPrintf("ROOM_INF=%d\n", gSaveContext.sceneFlags[mapIndex].rooms);
|
||||
interfaceCtx->mapRoomNum = room;
|
||||
|
@ -239,27 +239,27 @@ void Map_Init(PlayState* play) {
|
|||
ASSERT(interfaceCtx->mapSegment != NULL, "parameter->mapSegment != NULL", "../z_map_exp.c", 459);
|
||||
|
||||
switch (play->sceneId) {
|
||||
case SCENE_SPOT00:
|
||||
case SCENE_SPOT01:
|
||||
case SCENE_SPOT02:
|
||||
case SCENE_SPOT03:
|
||||
case SCENE_SPOT04:
|
||||
case SCENE_SPOT05:
|
||||
case SCENE_SPOT06:
|
||||
case SCENE_SPOT07:
|
||||
case SCENE_SPOT08:
|
||||
case SCENE_SPOT09:
|
||||
case SCENE_SPOT10:
|
||||
case SCENE_SPOT11:
|
||||
case SCENE_SPOT12:
|
||||
case SCENE_SPOT13:
|
||||
case SCENE_SPOT15:
|
||||
case SCENE_SPOT16:
|
||||
case SCENE_SPOT17:
|
||||
case SCENE_SPOT18:
|
||||
case SCENE_SPOT20:
|
||||
case SCENE_GANON_TOU:
|
||||
mapIndex = play->sceneId - SCENE_SPOT00;
|
||||
case SCENE_HYRULE_FIELD:
|
||||
case SCENE_KAKARIKO_VILLAGE:
|
||||
case SCENE_GRAVEYARD:
|
||||
case SCENE_ZORAS_RIVER:
|
||||
case SCENE_KOKIRI_FOREST:
|
||||
case SCENE_SACRED_FOREST_MEADOW:
|
||||
case SCENE_LAKE_HYLIA:
|
||||
case SCENE_ZORAS_DOMAIN:
|
||||
case SCENE_ZORAS_FOUNTAIN:
|
||||
case SCENE_GERUDO_VALLEY:
|
||||
case SCENE_LOST_WOODS:
|
||||
case SCENE_DESERT_COLOSSUS:
|
||||
case SCENE_GERUDOS_FORTRESS:
|
||||
case SCENE_HAUNTED_WASTELAND:
|
||||
case SCENE_HYRULE_CASTLE:
|
||||
case SCENE_DEATH_MOUNTAIN_TRAIL:
|
||||
case SCENE_DEATH_MOUNTAIN_CRATER:
|
||||
case SCENE_GORON_CITY:
|
||||
case SCENE_LON_LON_RANCH:
|
||||
case SCENE_OUTSIDE_GANONS_CASTLE:
|
||||
mapIndex = play->sceneId - SCENE_HYRULE_FIELD;
|
||||
R_MAP_INDEX = gSaveContext.mapIndex = mapIndex;
|
||||
R_COMPASS_SCALE_X = gMapData->owCompassInfo[mapIndex][0];
|
||||
R_COMPASS_SCALE_Y = gMapData->owCompassInfo[mapIndex][1];
|
||||
|
@ -269,34 +269,34 @@ void Map_Init(PlayState* play) {
|
|||
R_OW_MINIMAP_X = gMapData->owMinimapPosX[mapIndex];
|
||||
R_OW_MINIMAP_Y = gMapData->owMinimapPosY[mapIndex];
|
||||
break;
|
||||
case SCENE_YDAN:
|
||||
case SCENE_DDAN:
|
||||
case SCENE_BDAN:
|
||||
case SCENE_BMORI1:
|
||||
case SCENE_HIDAN:
|
||||
case SCENE_MIZUSIN:
|
||||
case SCENE_JYASINZOU:
|
||||
case SCENE_HAKADAN:
|
||||
case SCENE_HAKADANCH:
|
||||
case SCENE_ICE_DOUKUTO:
|
||||
case SCENE_GANON:
|
||||
case SCENE_MEN:
|
||||
case SCENE_GERUDOWAY:
|
||||
case SCENE_GANONTIKA:
|
||||
case SCENE_GANON_SONOGO:
|
||||
case SCENE_GANONTIKA_SONOGO:
|
||||
case SCENE_TAKARAYA:
|
||||
case SCENE_YDAN_BOSS:
|
||||
case SCENE_DDAN_BOSS:
|
||||
case SCENE_BDAN_BOSS:
|
||||
case SCENE_MORIBOSSROOM:
|
||||
case SCENE_FIRE_BS:
|
||||
case SCENE_MIZUSIN_BS:
|
||||
case SCENE_JYASINBOSS:
|
||||
case SCENE_HAKADAN_BS:
|
||||
mapIndex = (play->sceneId >= SCENE_YDAN_BOSS) ? play->sceneId - SCENE_YDAN_BOSS : play->sceneId;
|
||||
case SCENE_DEKU_TREE:
|
||||
case SCENE_DODONGOS_CAVERN:
|
||||
case SCENE_JABU_JABU:
|
||||
case SCENE_FOREST_TEMPLE:
|
||||
case SCENE_FIRE_TEMPLE:
|
||||
case SCENE_WATER_TEMPLE:
|
||||
case SCENE_SPIRIT_TEMPLE:
|
||||
case SCENE_SHADOW_TEMPLE:
|
||||
case SCENE_BOTTOM_OF_THE_WELL:
|
||||
case SCENE_ICE_CAVERN:
|
||||
case SCENE_GANONS_TOWER:
|
||||
case SCENE_GERUDO_TRAINING_GROUND:
|
||||
case SCENE_THIEVES_HIDEOUT:
|
||||
case SCENE_INSIDE_GANONS_CASTLE:
|
||||
case SCENE_GANONS_TOWER_COLLAPSE_INTERIOR:
|
||||
case SCENE_INSIDE_GANONS_CASTLE_COLLAPSE:
|
||||
case SCENE_TREASURE_BOX_SHOP:
|
||||
case SCENE_DEKU_TREE_BOSS:
|
||||
case SCENE_DODONGOS_CAVERN_BOSS:
|
||||
case SCENE_JABU_JABU_BOSS:
|
||||
case SCENE_FOREST_TEMPLE_BOSS:
|
||||
case SCENE_FIRE_TEMPLE_BOSS:
|
||||
case SCENE_WATER_TEMPLE_BOSS:
|
||||
case SCENE_SPIRIT_TEMPLE_BOSS:
|
||||
case SCENE_SHADOW_TEMPLE_BOSS:
|
||||
mapIndex = (play->sceneId >= SCENE_DEKU_TREE_BOSS) ? play->sceneId - SCENE_DEKU_TREE_BOSS : play->sceneId;
|
||||
R_MAP_INDEX = gSaveContext.mapIndex = mapIndex;
|
||||
if ((play->sceneId <= SCENE_ICE_DOUKUTO) || (play->sceneId >= SCENE_YDAN_BOSS)) {
|
||||
if ((play->sceneId <= SCENE_ICE_CAVERN) || (play->sceneId >= SCENE_DEKU_TREE_BOSS)) {
|
||||
R_COMPASS_SCALE_X = gMapData->dgnCompassInfo[mapIndex][0];
|
||||
R_COMPASS_SCALE_Y = gMapData->dgnCompassInfo[mapIndex][1];
|
||||
R_COMPASS_OFFSET_X = gMapData->dgnCompassInfo[mapIndex][2];
|
||||
|
@ -367,16 +367,16 @@ void Minimap_Draw(PlayState* play) {
|
|||
|
||||
if (play->pauseCtx.state < 4) {
|
||||
switch (play->sceneId) {
|
||||
case SCENE_YDAN:
|
||||
case SCENE_DDAN:
|
||||
case SCENE_BDAN:
|
||||
case SCENE_BMORI1:
|
||||
case SCENE_HIDAN:
|
||||
case SCENE_MIZUSIN:
|
||||
case SCENE_JYASINZOU:
|
||||
case SCENE_HAKADAN:
|
||||
case SCENE_HAKADANCH:
|
||||
case SCENE_ICE_DOUKUTO:
|
||||
case SCENE_DEKU_TREE:
|
||||
case SCENE_DODONGOS_CAVERN:
|
||||
case SCENE_JABU_JABU:
|
||||
case SCENE_FOREST_TEMPLE:
|
||||
case SCENE_FIRE_TEMPLE:
|
||||
case SCENE_WATER_TEMPLE:
|
||||
case SCENE_SPIRIT_TEMPLE:
|
||||
case SCENE_SHADOW_TEMPLE:
|
||||
case SCENE_BOTTOM_OF_THE_WELL:
|
||||
case SCENE_ICE_CAVERN:
|
||||
if (!R_MINIMAP_DISABLED) {
|
||||
Gfx_SetupDL_39Overlay(play->state.gfxCtx);
|
||||
gDPSetCombineLERP(OVERLAY_DISP++, 1, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, 1, 0, PRIMITIVE, 0,
|
||||
|
@ -419,26 +419,26 @@ void Minimap_Draw(PlayState* play) {
|
|||
}
|
||||
|
||||
break;
|
||||
case SCENE_SPOT00:
|
||||
case SCENE_SPOT01:
|
||||
case SCENE_SPOT02:
|
||||
case SCENE_SPOT03:
|
||||
case SCENE_SPOT04:
|
||||
case SCENE_SPOT05:
|
||||
case SCENE_SPOT06:
|
||||
case SCENE_SPOT07:
|
||||
case SCENE_SPOT08:
|
||||
case SCENE_SPOT09:
|
||||
case SCENE_SPOT10:
|
||||
case SCENE_SPOT11:
|
||||
case SCENE_SPOT12:
|
||||
case SCENE_SPOT13:
|
||||
case SCENE_SPOT15:
|
||||
case SCENE_SPOT16:
|
||||
case SCENE_SPOT17:
|
||||
case SCENE_SPOT18:
|
||||
case SCENE_SPOT20:
|
||||
case SCENE_GANON_TOU:
|
||||
case SCENE_HYRULE_FIELD:
|
||||
case SCENE_KAKARIKO_VILLAGE:
|
||||
case SCENE_GRAVEYARD:
|
||||
case SCENE_ZORAS_RIVER:
|
||||
case SCENE_KOKIRI_FOREST:
|
||||
case SCENE_SACRED_FOREST_MEADOW:
|
||||
case SCENE_LAKE_HYLIA:
|
||||
case SCENE_ZORAS_DOMAIN:
|
||||
case SCENE_ZORAS_FOUNTAIN:
|
||||
case SCENE_GERUDO_VALLEY:
|
||||
case SCENE_LOST_WOODS:
|
||||
case SCENE_DESERT_COLOSSUS:
|
||||
case SCENE_GERUDOS_FORTRESS:
|
||||
case SCENE_HAUNTED_WASTELAND:
|
||||
case SCENE_HYRULE_CASTLE:
|
||||
case SCENE_DEATH_MOUNTAIN_TRAIL:
|
||||
case SCENE_DEATH_MOUNTAIN_CRATER:
|
||||
case SCENE_GORON_CITY:
|
||||
case SCENE_LON_LON_RANCH:
|
||||
case SCENE_OUTSIDE_GANONS_CASTLE:
|
||||
if (!R_MINIMAP_DISABLED) {
|
||||
Gfx_SetupDL_39Overlay(play->state.gfxCtx);
|
||||
|
||||
|
@ -456,8 +456,8 @@ void Minimap_Draw(PlayState* play) {
|
|||
(R_OW_MINIMAP_Y + gMapData->owMinimapHeight[mapIndex]) << 2, G_TX_RENDERTILE, 0,
|
||||
0, 1 << 10, 1 << 10);
|
||||
|
||||
if (((play->sceneId != SCENE_SPOT01) && (play->sceneId != SCENE_SPOT04) &&
|
||||
(play->sceneId != SCENE_SPOT08)) ||
|
||||
if (((play->sceneId != SCENE_KAKARIKO_VILLAGE) && (play->sceneId != SCENE_KOKIRI_FOREST) &&
|
||||
(play->sceneId != SCENE_ZORAS_FOUNTAIN)) ||
|
||||
(LINK_AGE_IN_YEARS != YEARS_ADULT)) {
|
||||
if ((gMapData->owEntranceFlag[sEntranceIconMapIndex] == 0xFFFF) ||
|
||||
((gMapData->owEntranceFlag[sEntranceIconMapIndex] != 0xFFFF) &&
|
||||
|
@ -477,7 +477,7 @@ void Minimap_Draw(PlayState* play) {
|
|||
}
|
||||
}
|
||||
|
||||
if ((play->sceneId == SCENE_SPOT08) &&
|
||||
if ((play->sceneId == SCENE_ZORAS_FOUNTAIN) &&
|
||||
(gSaveContext.infTable[INFTABLE_1AX_INDEX] & gBitFlags[INFTABLE_1A9_SHIFT])) {
|
||||
gDPLoadTextureBlock(OVERLAY_DISP++, gMapDungeonEntranceIconTex, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8,
|
||||
8, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK,
|
||||
|
@ -525,16 +525,16 @@ void Map_Update(PlayState* play) {
|
|||
|
||||
if ((play->pauseCtx.state == 0) && (play->pauseCtx.debugState == 0)) {
|
||||
switch (play->sceneId) {
|
||||
case SCENE_YDAN:
|
||||
case SCENE_DDAN:
|
||||
case SCENE_BDAN:
|
||||
case SCENE_BMORI1:
|
||||
case SCENE_HIDAN:
|
||||
case SCENE_MIZUSIN:
|
||||
case SCENE_JYASINZOU:
|
||||
case SCENE_HAKADAN:
|
||||
case SCENE_HAKADANCH:
|
||||
case SCENE_ICE_DOUKUTO:
|
||||
case SCENE_DEKU_TREE:
|
||||
case SCENE_DODONGOS_CAVERN:
|
||||
case SCENE_JABU_JABU:
|
||||
case SCENE_FOREST_TEMPLE:
|
||||
case SCENE_FIRE_TEMPLE:
|
||||
case SCENE_WATER_TEMPLE:
|
||||
case SCENE_SPIRIT_TEMPLE:
|
||||
case SCENE_SHADOW_TEMPLE:
|
||||
case SCENE_BOTTOM_OF_THE_WELL:
|
||||
case SCENE_ICE_CAVERN:
|
||||
interfaceCtx->mapPalette[30] = 0;
|
||||
if (CHECK_DUNGEON_ITEM(DUNGEON_MAP, mapIndex)) {
|
||||
interfaceCtx->mapPalette[31] = 1;
|
||||
|
@ -577,17 +577,17 @@ void Map_Update(PlayState* play) {
|
|||
|
||||
VREG(10) = interfaceCtx->mapRoomNum;
|
||||
break;
|
||||
case SCENE_YDAN_BOSS:
|
||||
case SCENE_DDAN_BOSS:
|
||||
case SCENE_BDAN_BOSS:
|
||||
case SCENE_MORIBOSSROOM:
|
||||
case SCENE_FIRE_BS:
|
||||
case SCENE_MIZUSIN_BS:
|
||||
case SCENE_JYASINBOSS:
|
||||
case SCENE_HAKADAN_BS:
|
||||
VREG(30) = gMapData->bossFloor[play->sceneId - SCENE_YDAN_BOSS];
|
||||
R_MAP_TEX_INDEX =
|
||||
R_MAP_TEX_INDEX_BASE + gMapData->floorTexIndexOffset[play->sceneId - SCENE_YDAN_BOSS][VREG(30)];
|
||||
case SCENE_DEKU_TREE_BOSS:
|
||||
case SCENE_DODONGOS_CAVERN_BOSS:
|
||||
case SCENE_JABU_JABU_BOSS:
|
||||
case SCENE_FOREST_TEMPLE_BOSS:
|
||||
case SCENE_FIRE_TEMPLE_BOSS:
|
||||
case SCENE_WATER_TEMPLE_BOSS:
|
||||
case SCENE_SPIRIT_TEMPLE_BOSS:
|
||||
case SCENE_SHADOW_TEMPLE_BOSS:
|
||||
VREG(30) = gMapData->bossFloor[play->sceneId - SCENE_DEKU_TREE_BOSS];
|
||||
R_MAP_TEX_INDEX = R_MAP_TEX_INDEX_BASE +
|
||||
gMapData->floorTexIndexOffset[play->sceneId - SCENE_DEKU_TREE_BOSS][VREG(30)];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -133,21 +133,21 @@ void MapMark_DrawForDungeon(PlayState* play) {
|
|||
|
||||
void MapMark_Draw(PlayState* play) {
|
||||
switch (play->sceneId) {
|
||||
case SCENE_YDAN:
|
||||
case SCENE_DDAN:
|
||||
case SCENE_BDAN:
|
||||
case SCENE_BMORI1:
|
||||
case SCENE_HIDAN:
|
||||
case SCENE_MIZUSIN:
|
||||
case SCENE_JYASINZOU:
|
||||
case SCENE_HAKADAN:
|
||||
case SCENE_HAKADANCH:
|
||||
case SCENE_ICE_DOUKUTO:
|
||||
case SCENE_YDAN_BOSS:
|
||||
case SCENE_DDAN_BOSS:
|
||||
case SCENE_BDAN_BOSS:
|
||||
case SCENE_MORIBOSSROOM:
|
||||
case SCENE_FIRE_BS:
|
||||
case SCENE_DEKU_TREE:
|
||||
case SCENE_DODONGOS_CAVERN:
|
||||
case SCENE_JABU_JABU:
|
||||
case SCENE_FOREST_TEMPLE:
|
||||
case SCENE_FIRE_TEMPLE:
|
||||
case SCENE_WATER_TEMPLE:
|
||||
case SCENE_SPIRIT_TEMPLE:
|
||||
case SCENE_SHADOW_TEMPLE:
|
||||
case SCENE_BOTTOM_OF_THE_WELL:
|
||||
case SCENE_ICE_CAVERN:
|
||||
case SCENE_DEKU_TREE_BOSS:
|
||||
case SCENE_DODONGOS_CAVERN_BOSS:
|
||||
case SCENE_JABU_JABU_BOSS:
|
||||
case SCENE_FOREST_TEMPLE_BOSS:
|
||||
case SCENE_FIRE_TEMPLE_BOSS:
|
||||
MapMark_DrawForDungeon(play);
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -3099,7 +3099,8 @@ void Message_Update(PlayState* play) {
|
|||
if (D_8014B2F4 >= 4) {
|
||||
var = true;
|
||||
}
|
||||
} else if (R_SCENE_CAM_TYPE != SCENE_CAM_TYPE_DEFAULT || play->sceneId == SCENE_HAIRAL_NIWA) {
|
||||
} else if (R_SCENE_CAM_TYPE != SCENE_CAM_TYPE_DEFAULT ||
|
||||
play->sceneId == SCENE_CASTLE_COURTYARD_GUARDS_DAY) {
|
||||
var = true;
|
||||
} else if (D_8014B2F4 >= 4 || msgCtx->talkActor == NULL) {
|
||||
var = true;
|
||||
|
@ -3125,7 +3126,8 @@ void Message_Update(PlayState* play) {
|
|||
var = msgCtx->textBoxType;
|
||||
|
||||
if (!msgCtx->textBoxPos) { // variable position
|
||||
if (R_SCENE_CAM_TYPE != SCENE_CAM_TYPE_DEFAULT || play->sceneId == SCENE_HAIRAL_NIWA) {
|
||||
if (R_SCENE_CAM_TYPE != SCENE_CAM_TYPE_DEFAULT ||
|
||||
play->sceneId == SCENE_CASTLE_COURTYARD_GUARDS_DAY) {
|
||||
if (averageY < XREG(92)) {
|
||||
R_TEXTBOX_Y_TARGET = sTextboxLowerYPositions[var];
|
||||
} else {
|
||||
|
|
|
@ -12,106 +12,106 @@ typedef struct {
|
|||
} RestrictionFlags; // size = 0x4
|
||||
|
||||
static RestrictionFlags sRestrictionFlags[] = {
|
||||
{ SCENE_SPOT00, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_SPOT01, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_SPOT02, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_SPOT03, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_SPOT04, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_SPOT05, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_SPOT06, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_SPOT07, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_SPOT08, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_SPOT09, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_SPOT10, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_SPOT11, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_SPOT12, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_SPOT13, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_SPOT15, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_GANON_TOU, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_SPOT16, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_SPOT17, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_SPOT18, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_SPOT20, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_TOKINOMA, 0x00, 0x10, 0x15 },
|
||||
{ SCENE_KENJYANOMA, 0xA2, 0xAA, 0xAA },
|
||||
{ SCENE_SYATEKIJYOU, 0x11, 0x55, 0x55 },
|
||||
{ SCENE_HAIRAL_NIWA, 0x11, 0x55, 0x55 },
|
||||
{ SCENE_HAIRAL_NIWA_N, 0x11, 0x55, 0x55 },
|
||||
{ SCENE_HAKAANA, 0x00, 0x00, 0xD0 },
|
||||
{ SCENE_HAKAANA2, 0x00, 0x00, 0xD0 },
|
||||
{ SCENE_HAKAANA_OUKE, 0x00, 0x00, 0xD0 },
|
||||
{ SCENE_DAIYOUSEI_IZUMI, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_YOUSEI_IZUMI_TATE, 0x00, 0x00, 0xD0 },
|
||||
{ SCENE_YOUSEI_IZUMI_YOKO, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_GANON_FINAL, 0x00, 0x05, 0x50 },
|
||||
{ SCENE_NAKANIWA, 0x00, 0x05, 0x54 },
|
||||
{ SCENE_TURIBORI, 0x11, 0x55, 0x55 },
|
||||
{ SCENE_BOWLING, 0x11, 0x55, 0x55 },
|
||||
{ SCENE_SOUKO, 0x00, 0x10, 0x15 },
|
||||
{ SCENE_MIHARIGOYA, 0x00, 0x10, 0x14 },
|
||||
{ SCENE_MAHOUYA, 0x10, 0x15, 0x55 },
|
||||
{ SCENE_TAKARAYA, 0x10, 0x15, 0x55 },
|
||||
{ SCENE_KINSUTA, 0x00, 0x10, 0x15 },
|
||||
{ SCENE_ENTRA, 0x00, 0x10, 0x15 },
|
||||
{ SCENE_ENTRA_N, 0x00, 0x10, 0x15 },
|
||||
{ SCENE_ENRUI, 0x00, 0x10, 0xD5 },
|
||||
{ SCENE_HYRULE_FIELD, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_KAKARIKO_VILLAGE, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_GRAVEYARD, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_ZORAS_RIVER, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_KOKIRI_FOREST, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_SACRED_FOREST_MEADOW, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_LAKE_HYLIA, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_ZORAS_DOMAIN, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_ZORAS_FOUNTAIN, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_GERUDO_VALLEY, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_LOST_WOODS, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_DESERT_COLOSSUS, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_GERUDOS_FORTRESS, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_HAUNTED_WASTELAND, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_HYRULE_CASTLE, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_OUTSIDE_GANONS_CASTLE, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_DEATH_MOUNTAIN_TRAIL, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_DEATH_MOUNTAIN_CRATER, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_GORON_CITY, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_LON_LON_RANCH, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_TEMPLE_OF_TIME, 0x00, 0x10, 0x15 },
|
||||
{ SCENE_CHAMBER_OF_THE_SAGES, 0xA2, 0xAA, 0xAA },
|
||||
{ SCENE_SHOOTING_GALLERY, 0x11, 0x55, 0x55 },
|
||||
{ SCENE_CASTLE_COURTYARD_GUARDS_DAY, 0x11, 0x55, 0x55 },
|
||||
{ SCENE_CASTLE_COURTYARD_GUARDS_NIGHT, 0x11, 0x55, 0x55 },
|
||||
{ SCENE_REDEAD_GRAVE, 0x00, 0x00, 0xD0 },
|
||||
{ SCENE_GRAVE_WITH_FAIRYS_FOUNTAIN, 0x00, 0x00, 0xD0 },
|
||||
{ SCENE_ROYAL_FAMILYS_TOMB, 0x00, 0x00, 0xD0 },
|
||||
{ SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_FAIRYS_FOUNTAIN, 0x00, 0x00, 0xD0 },
|
||||
{ SCENE_GREAT_FAIRYS_FOUNTAIN_SPELLS, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR, 0x00, 0x05, 0x50 },
|
||||
{ SCENE_CASTLE_COURTYARD_ZELDA, 0x00, 0x05, 0x54 },
|
||||
{ SCENE_FISHING_POND, 0x11, 0x55, 0x55 },
|
||||
{ SCENE_BOMBCHU_BOWLING_ALLEY, 0x11, 0x55, 0x55 },
|
||||
{ SCENE_LON_LON_BUILDINGS, 0x00, 0x10, 0x15 },
|
||||
{ SCENE_MARKET_GUARD_HOUSE, 0x00, 0x10, 0x14 },
|
||||
{ SCENE_POTION_SHOP_GRANNY, 0x10, 0x15, 0x55 },
|
||||
{ SCENE_TREASURE_BOX_SHOP, 0x10, 0x15, 0x55 },
|
||||
{ SCENE_HOUSE_OF_SKULLTULA, 0x00, 0x10, 0x15 },
|
||||
{ SCENE_MARKET_ENTRANCE_DAY, 0x00, 0x10, 0x15 },
|
||||
{ SCENE_MARKET_ENTRANCE_NIGHT, 0x00, 0x10, 0x15 },
|
||||
{ SCENE_MARKET_ENTRANCE_RUINS, 0x00, 0x10, 0xD5 },
|
||||
{ SCENE_MARKET_DAY, 0x00, 0x10, 0x15 },
|
||||
{ SCENE_MARKET_NIGHT, 0x00, 0x10, 0x15 },
|
||||
{ SCENE_MARKET_RUINS, 0x00, 0x10, 0xD5 },
|
||||
{ SCENE_MARKET_ALLEY, 0x00, 0x10, 0x15 },
|
||||
{ SCENE_MARKET_ALLEY_N, 0x00, 0x10, 0x15 },
|
||||
{ SCENE_SHRINE, 0x00, 0x10, 0x15 },
|
||||
{ SCENE_SHRINE_N, 0x00, 0x10, 0x15 },
|
||||
{ SCENE_SHRINE_R, 0x00, 0x10, 0xD5 },
|
||||
{ SCENE_LINK_HOME, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_KAKARIKO, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_KAKARIKO3, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_KOKIRI_HOME, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_KOKIRI_HOME3, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_KOKIRI_HOME4, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_KOKIRI_HOME5, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_MALON_STABLE, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_HUT, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_IMPA, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_LABO, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_HYLIA_LABO, 0x00, 0x10, 0x15 },
|
||||
{ SCENE_TENT, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_SHOP1, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_BACK_ALLEY_DAY, 0x00, 0x10, 0x15 },
|
||||
{ SCENE_BACK_ALLEY_NIGHT, 0x00, 0x10, 0x15 },
|
||||
{ SCENE_TEMPLE_OF_TIME_EXTERIOR_DAY, 0x00, 0x10, 0x15 },
|
||||
{ SCENE_TEMPLE_OF_TIME_EXTERIOR_NIGHT, 0x00, 0x10, 0x15 },
|
||||
{ SCENE_TEMPLE_OF_TIME_EXTERIOR_RUINS, 0x00, 0x10, 0xD5 },
|
||||
{ SCENE_LINKS_HOUSE, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_KAKARIKO_CENTER_GUEST_HOUSE, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_BACK_ALLEY_HOUSE, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_KNOW_IT_ALL_BROS_HOUSE, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_TWINS_HOUSE, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_MIDOS_HOUSE, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_SARIAS_HOUSE, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_STABLE, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_GRAVEKEEPERS_HUT, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_DOG_LADY_HOUSE, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_IMPAS_HOUSE, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_LAKESIDE_LABORATORY, 0x00, 0x10, 0x15 },
|
||||
{ SCENE_CARPENTERS_TENT, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_BAZAAR, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_KOKIRI_SHOP, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_GOLON, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_ZOORA, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_DRAG, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_ALLEY_SHOP, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_NIGHT_SHOP, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_FACE_SHOP, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_MEN, 0x00, 0x03, 0x10 },
|
||||
{ SCENE_YDAN, 0x00, 0x00, 0x00 },
|
||||
{ SCENE_YDAN_BOSS, 0x00, 0x45, 0x50 },
|
||||
{ SCENE_DDAN, 0x00, 0x00, 0x00 },
|
||||
{ SCENE_DDAN_BOSS, 0x00, 0x45, 0x50 },
|
||||
{ SCENE_BDAN, 0x00, 0x00, 0x00 },
|
||||
{ SCENE_BDAN_BOSS, 0x00, 0x45, 0x50 },
|
||||
{ SCENE_BMORI1, 0x00, 0x00, 0x00 },
|
||||
{ SCENE_MORIBOSSROOM, 0x00, 0x45, 0x50 },
|
||||
{ SCENE_HAKADANCH, 0x00, 0x00, 0x00 },
|
||||
{ SCENE_HAKADAN, 0x00, 0x00, 0x00 },
|
||||
{ SCENE_HAKADAN_BS, 0x00, 0x45, 0x50 },
|
||||
{ SCENE_HIDAN, 0x00, 0x00, 0x00 },
|
||||
{ SCENE_FIRE_BS, 0x00, 0x45, 0x50 },
|
||||
{ SCENE_MIZUSIN, 0x00, 0x00, 0x00 },
|
||||
{ SCENE_MIZUSIN_BS, 0x00, 0x45, 0x50 },
|
||||
{ SCENE_JYASINZOU, 0x00, 0x00, 0x00 },
|
||||
{ SCENE_JYASINBOSS, 0x00, 0x45, 0x50 },
|
||||
{ SCENE_GANON, 0x00, 0x00, 0x00 },
|
||||
{ SCENE_GORON_SHOP, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_ZORA_SHOP, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_POTION_SHOP_KAKARIKO, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_POTION_SHOP_MARKET, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_BOMBCHU_SHOP, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_HAPPY_MASK_SHOP, 0x10, 0x10, 0x15 },
|
||||
{ SCENE_GERUDO_TRAINING_GROUND, 0x00, 0x03, 0x10 },
|
||||
{ SCENE_DEKU_TREE, 0x00, 0x00, 0x00 },
|
||||
{ SCENE_DEKU_TREE_BOSS, 0x00, 0x45, 0x50 },
|
||||
{ SCENE_DODONGOS_CAVERN, 0x00, 0x00, 0x00 },
|
||||
{ SCENE_DODONGOS_CAVERN_BOSS, 0x00, 0x45, 0x50 },
|
||||
{ SCENE_JABU_JABU, 0x00, 0x00, 0x00 },
|
||||
{ SCENE_JABU_JABU_BOSS, 0x00, 0x45, 0x50 },
|
||||
{ SCENE_FOREST_TEMPLE, 0x00, 0x00, 0x00 },
|
||||
{ SCENE_FOREST_TEMPLE_BOSS, 0x00, 0x45, 0x50 },
|
||||
{ SCENE_BOTTOM_OF_THE_WELL, 0x00, 0x00, 0x00 },
|
||||
{ SCENE_SHADOW_TEMPLE, 0x00, 0x00, 0x00 },
|
||||
{ SCENE_SHADOW_TEMPLE_BOSS, 0x00, 0x45, 0x50 },
|
||||
{ SCENE_FIRE_TEMPLE, 0x00, 0x00, 0x00 },
|
||||
{ SCENE_FIRE_TEMPLE_BOSS, 0x00, 0x45, 0x50 },
|
||||
{ SCENE_WATER_TEMPLE, 0x00, 0x00, 0x00 },
|
||||
{ SCENE_WATER_TEMPLE_BOSS, 0x00, 0x45, 0x50 },
|
||||
{ SCENE_SPIRIT_TEMPLE, 0x00, 0x00, 0x00 },
|
||||
{ SCENE_SPIRIT_TEMPLE_BOSS, 0x00, 0x45, 0x50 },
|
||||
{ SCENE_GANONS_TOWER, 0x00, 0x00, 0x00 },
|
||||
{ SCENE_GANONDORF_BOSS, 0x00, 0x45, 0x50 },
|
||||
{ SCENE_ICE_CAVERN, 0x00, 0x00, 0xC0 },
|
||||
{ SCENE_WINDMILL_AND_DAMPES_GRAVE, 0x00, 0x03, 0x14 },
|
||||
{ SCENE_INSIDE_GANONS_CASTLE, 0x00, 0x03, 0x10 },
|
||||
{ SCENE_GANON_BOSS, 0x00, 0x45, 0x50 },
|
||||
{ SCENE_ICE_DOUKUTO, 0x00, 0x00, 0xC0 },
|
||||
{ SCENE_HAKASITARELAY, 0x00, 0x03, 0x14 },
|
||||
{ SCENE_GANONTIKA, 0x00, 0x03, 0x10 },
|
||||
{ SCENE_GANON_DEMO, 0x00, 0x45, 0x50 },
|
||||
{ SCENE_GANON_SONOGO, 0x00, 0x05, 0x50 },
|
||||
{ SCENE_GANONTIKA_SONOGO, 0x00, 0x05, 0x50 },
|
||||
{ SCENE_GERUDOWAY, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_KAKUSIANA, 0x00, 0x00, 0xD0 },
|
||||
{ SCENE_GANONS_TOWER_COLLAPSE_INTERIOR, 0x00, 0x05, 0x50 },
|
||||
{ SCENE_INSIDE_GANONS_CASTLE_COLLAPSE, 0x00, 0x05, 0x50 },
|
||||
{ SCENE_THIEVES_HIDEOUT, 0x00, 0x00, 0x10 },
|
||||
{ SCENE_GROTTOS, 0x00, 0x00, 0xD0 },
|
||||
{ 0xFF, 0x00, 0x00, 0x00 },
|
||||
};
|
||||
|
||||
|
@ -417,26 +417,26 @@ void Interface_UpdateHudAlphas(PlayState* play, s16 dimmingAlpha) {
|
|||
}
|
||||
|
||||
switch (play->sceneId) {
|
||||
case SCENE_SPOT00:
|
||||
case SCENE_SPOT01:
|
||||
case SCENE_SPOT02:
|
||||
case SCENE_SPOT03:
|
||||
case SCENE_SPOT04:
|
||||
case SCENE_SPOT05:
|
||||
case SCENE_SPOT06:
|
||||
case SCENE_SPOT07:
|
||||
case SCENE_SPOT08:
|
||||
case SCENE_SPOT09:
|
||||
case SCENE_SPOT10:
|
||||
case SCENE_SPOT11:
|
||||
case SCENE_SPOT12:
|
||||
case SCENE_SPOT13:
|
||||
case SCENE_SPOT15:
|
||||
case SCENE_SPOT16:
|
||||
case SCENE_SPOT17:
|
||||
case SCENE_SPOT18:
|
||||
case SCENE_SPOT20:
|
||||
case SCENE_GANON_TOU:
|
||||
case SCENE_HYRULE_FIELD:
|
||||
case SCENE_KAKARIKO_VILLAGE:
|
||||
case SCENE_GRAVEYARD:
|
||||
case SCENE_ZORAS_RIVER:
|
||||
case SCENE_KOKIRI_FOREST:
|
||||
case SCENE_SACRED_FOREST_MEADOW:
|
||||
case SCENE_LAKE_HYLIA:
|
||||
case SCENE_ZORAS_DOMAIN:
|
||||
case SCENE_ZORAS_FOUNTAIN:
|
||||
case SCENE_GERUDO_VALLEY:
|
||||
case SCENE_LOST_WOODS:
|
||||
case SCENE_DESERT_COLOSSUS:
|
||||
case SCENE_GERUDOS_FORTRESS:
|
||||
case SCENE_HAUNTED_WASTELAND:
|
||||
case SCENE_HYRULE_CASTLE:
|
||||
case SCENE_DEATH_MOUNTAIN_TRAIL:
|
||||
case SCENE_DEATH_MOUNTAIN_CRATER:
|
||||
case SCENE_GORON_CITY:
|
||||
case SCENE_LON_LON_RANCH:
|
||||
case SCENE_OUTSIDE_GANONS_CASTLE:
|
||||
if (interfaceCtx->minimapAlpha < 170) {
|
||||
interfaceCtx->minimapAlpha = risingAlpha;
|
||||
} else {
|
||||
|
@ -645,11 +645,11 @@ void func_80083108(PlayState* play) {
|
|||
s16 sp28 = false;
|
||||
|
||||
if ((gSaveContext.cutsceneIndex < 0xFFF0) ||
|
||||
((play->sceneId == SCENE_SPOT20) && (gSaveContext.cutsceneIndex == 0xFFF0))) {
|
||||
((play->sceneId == SCENE_LON_LON_RANCH) && (gSaveContext.cutsceneIndex == 0xFFF0))) {
|
||||
gSaveContext.forceRisingButtonAlphas = false;
|
||||
|
||||
if ((player->stateFlags1 & PLAYER_STATE1_23) || (play->shootingGalleryStatus > 1) ||
|
||||
((play->sceneId == SCENE_BOWLING) && Flags_GetSwitch(play, 0x38))) {
|
||||
((play->sceneId == SCENE_BOMBCHU_BOWLING_ALLEY) && Flags_GetSwitch(play, 0x38))) {
|
||||
if (gSaveContext.equips.buttonItems[0] != ITEM_NONE) {
|
||||
gSaveContext.forceRisingButtonAlphas = true;
|
||||
|
||||
|
@ -664,7 +664,7 @@ void func_80083108(PlayState* play) {
|
|||
(gSaveContext.equips.buttonItems[0] != ITEM_NONE)) {
|
||||
gSaveContext.buttonStatus[0] = gSaveContext.equips.buttonItems[0];
|
||||
|
||||
if ((play->sceneId == SCENE_BOWLING) && Flags_GetSwitch(play, 0x38)) {
|
||||
if ((play->sceneId == SCENE_BOMBCHU_BOWLING_ALLEY) && Flags_GetSwitch(play, 0x38)) {
|
||||
gSaveContext.equips.buttonItems[0] = ITEM_BOMBCHU;
|
||||
Interface_LoadItemIcon1(play, 0);
|
||||
} else {
|
||||
|
@ -695,7 +695,7 @@ void func_80083108(PlayState* play) {
|
|||
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_B);
|
||||
} else if (play->shootingGalleryStatus > 1) {
|
||||
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_B);
|
||||
} else if ((play->sceneId == SCENE_BOWLING) && Flags_GetSwitch(play, 0x38)) {
|
||||
} else if ((play->sceneId == SCENE_BOMBCHU_BOWLING_ALLEY) && Flags_GetSwitch(play, 0x38)) {
|
||||
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_B);
|
||||
} else if (player->stateFlags1 & PLAYER_STATE1_23) {
|
||||
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_A_B_MINIMAP);
|
||||
|
@ -705,9 +705,9 @@ void func_80083108(PlayState* play) {
|
|||
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_A_B_MINIMAP);
|
||||
}
|
||||
}
|
||||
} else if (play->sceneId == SCENE_KENJYANOMA) {
|
||||
} else if (play->sceneId == SCENE_CHAMBER_OF_THE_SAGES) {
|
||||
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING);
|
||||
} else if (play->sceneId == SCENE_TURIBORI) {
|
||||
} else if (play->sceneId == SCENE_FISHING_POND) {
|
||||
// should likely be set to true
|
||||
gSaveContext.forceRisingButtonAlphas = 2;
|
||||
if (play->interfaceCtx.unk_260 != 0) {
|
||||
|
@ -1043,7 +1043,7 @@ void func_80083108(PlayState* play) {
|
|||
(gSaveContext.equips.buttonItems[i] <= ITEM_BOTTLE_POE)) &&
|
||||
!((gSaveContext.equips.buttonItems[i] >= ITEM_WEIRD_EGG) &&
|
||||
(gSaveContext.equips.buttonItems[i] <= ITEM_CLAIM_CHECK))) {
|
||||
if ((play->sceneId != SCENE_TAKARAYA) ||
|
||||
if ((play->sceneId != SCENE_TREASURE_BOX_SHOP) ||
|
||||
(gSaveContext.equips.buttonItems[i] != ITEM_LENS_OF_TRUTH)) {
|
||||
if (gSaveContext.buttonStatus[i] == BTN_ENABLED) {
|
||||
sp28 = true;
|
||||
|
@ -2932,7 +2932,7 @@ void Interface_DrawAmmoCount(PlayState* play, s16 button, s16 alpha) {
|
|||
ammo = play->interfaceCtx.hbaAmmo;
|
||||
} else if ((button == 0) && (play->shootingGalleryStatus > 1)) {
|
||||
ammo = play->shootingGalleryStatus - 1;
|
||||
} else if ((button == 0) && (play->sceneId == SCENE_BOWLING) && Flags_GetSwitch(play, 0x38)) {
|
||||
} else if ((button == 0) && (play->sceneId == SCENE_BOMBCHU_BOWLING_ALLEY) && Flags_GetSwitch(play, 0x38)) {
|
||||
ammo = play->bombchuBowlingStatus;
|
||||
if (ammo < 0) {
|
||||
ammo = 0;
|
||||
|
@ -3104,7 +3104,7 @@ void Interface_Draw(PlayState* play) {
|
|||
};
|
||||
static s16 rupeeDigitsFirst[] = { 1, 0, 0 };
|
||||
static s16 rupeeDigitsCount[] = { 2, 3, 3 };
|
||||
static s16 spoilingItemEntrances[] = { ENTR_SPOT10_2, ENTR_SPOT07_3, ENTR_SPOT07_3 };
|
||||
static s16 spoilingItemEntrances[] = { ENTR_LOST_WOODS_2, ENTR_ZORAS_DOMAIN_3, ENTR_ZORAS_DOMAIN_3 };
|
||||
static f32 D_80125B54[] = { -40.0f, -35.0f }; // unused
|
||||
static s16 D_80125B5C[] = { 91, 91 }; // unused
|
||||
static s16 sTimerNextSecondTimer;
|
||||
|
@ -3143,20 +3143,20 @@ void Interface_Draw(PlayState* play) {
|
|||
OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, gRupeeCounterIconTex, 16, 16, 26, 206, 16, 16, 1 << 10, 1 << 10);
|
||||
|
||||
switch (play->sceneId) {
|
||||
case SCENE_BMORI1:
|
||||
case SCENE_HIDAN:
|
||||
case SCENE_MIZUSIN:
|
||||
case SCENE_JYASINZOU:
|
||||
case SCENE_HAKADAN:
|
||||
case SCENE_HAKADANCH:
|
||||
case SCENE_ICE_DOUKUTO:
|
||||
case SCENE_GANON:
|
||||
case SCENE_MEN:
|
||||
case SCENE_GERUDOWAY:
|
||||
case SCENE_GANONTIKA:
|
||||
case SCENE_GANON_SONOGO:
|
||||
case SCENE_GANONTIKA_SONOGO:
|
||||
case SCENE_TAKARAYA:
|
||||
case SCENE_FOREST_TEMPLE:
|
||||
case SCENE_FIRE_TEMPLE:
|
||||
case SCENE_WATER_TEMPLE:
|
||||
case SCENE_SPIRIT_TEMPLE:
|
||||
case SCENE_SHADOW_TEMPLE:
|
||||
case SCENE_BOTTOM_OF_THE_WELL:
|
||||
case SCENE_ICE_CAVERN:
|
||||
case SCENE_GANONS_TOWER:
|
||||
case SCENE_GERUDO_TRAINING_GROUND:
|
||||
case SCENE_THIEVES_HIDEOUT:
|
||||
case SCENE_INSIDE_GANONS_CASTLE:
|
||||
case SCENE_GANONS_TOWER_COLLAPSE_INTERIOR:
|
||||
case SCENE_INSIDE_GANONS_CASTLE_COLLAPSE:
|
||||
case SCENE_TREASURE_BOX_SHOP:
|
||||
if (gSaveContext.inventory.dungeonKeys[gSaveContext.mapIndex] >= 0) {
|
||||
// Small Key Icon
|
||||
gDPPipeSync(OVERLAY_DISP++);
|
||||
|
@ -3258,7 +3258,7 @@ void Interface_Draw(PlayState* play) {
|
|||
Interface_DrawItemIconTexture(play, interfaceCtx->iconItemSegment, 0);
|
||||
|
||||
if ((player->stateFlags1 & PLAYER_STATE1_23) || (play->shootingGalleryStatus > 1) ||
|
||||
((play->sceneId == SCENE_BOWLING) && Flags_GetSwitch(play, 0x38))) {
|
||||
((play->sceneId == SCENE_BOMBCHU_BOWLING_ALLEY) && Flags_GetSwitch(play, 0x38))) {
|
||||
gDPPipeSync(OVERLAY_DISP++);
|
||||
gDPSetCombineLERP(OVERLAY_DISP++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE,
|
||||
0, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0);
|
||||
|
@ -3507,7 +3507,8 @@ void Interface_Draw(PlayState* play) {
|
|||
(play->gameOverCtx.state == GAMEOVER_INACTIVE) && (msgCtx->msgMode == MSGMODE_NONE) &&
|
||||
!(player->stateFlags2 & PLAYER_STATE2_24) && (play->transitionTrigger == TRANS_TRIGGER_OFF) &&
|
||||
(play->transitionMode == TRANS_MODE_OFF) && !Play_InCsMode(play) && (gSaveContext.minigameState != 1) &&
|
||||
(play->shootingGalleryStatus <= 1) && !((play->sceneId == SCENE_BOWLING) && Flags_GetSwitch(play, 0x38))) {
|
||||
(play->shootingGalleryStatus <= 1) &&
|
||||
!((play->sceneId == SCENE_BOMBCHU_BOWLING_ALLEY) && Flags_GetSwitch(play, 0x38))) {
|
||||
|
||||
timerId = TIMER_ID_MAIN;
|
||||
|
||||
|
@ -3792,10 +3793,10 @@ void Interface_Draw(PlayState* play) {
|
|||
if (gSaveContext.subTimerSeconds <= 0) {
|
||||
// Out of time
|
||||
if (!Flags_GetSwitch(play, 0x37) ||
|
||||
((play->sceneId != SCENE_GANON_DEMO) &&
|
||||
(play->sceneId != SCENE_GANON_FINAL) &&
|
||||
(play->sceneId != SCENE_GANON_SONOGO) &&
|
||||
(play->sceneId != SCENE_GANONTIKA_SONOGO))) {
|
||||
((play->sceneId != SCENE_GANON_BOSS) &&
|
||||
(play->sceneId != SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR) &&
|
||||
(play->sceneId != SCENE_GANONS_TOWER_COLLAPSE_INTERIOR) &&
|
||||
(play->sceneId != SCENE_INSIDE_GANONS_CASTLE_COLLAPSE))) {
|
||||
sSubTimerStateTimer = 40;
|
||||
gSaveContext.subTimerState = SUBTIMER_STATE_RESPAWN;
|
||||
gSaveContext.cutsceneIndex = 0;
|
||||
|
@ -3961,9 +3962,9 @@ void Interface_Update(PlayState* play) {
|
|||
|
||||
if ((play->pauseCtx.state == 0) && (play->pauseCtx.debugState == 0)) {
|
||||
if ((gSaveContext.minigameState == 1) || !IS_CUTSCENE_LAYER ||
|
||||
((play->sceneId == SCENE_SPOT20) && (gSaveContext.sceneLayer == 4))) {
|
||||
((play->sceneId == SCENE_LON_LON_RANCH) && (gSaveContext.sceneLayer == 4))) {
|
||||
if ((msgCtx->msgMode == MSGMODE_NONE) ||
|
||||
((msgCtx->msgMode != MSGMODE_NONE) && (play->sceneId == SCENE_BOWLING))) {
|
||||
((msgCtx->msgMode != MSGMODE_NONE) && (play->sceneId == SCENE_BOMBCHU_BOWLING_ALLEY))) {
|
||||
if (play->gameOverCtx.state == GAMEOVER_INACTIVE) {
|
||||
func_80083108(play);
|
||||
}
|
||||
|
@ -4023,26 +4024,26 @@ void Interface_Update(PlayState* play) {
|
|||
}
|
||||
|
||||
switch (play->sceneId) {
|
||||
case SCENE_SPOT00:
|
||||
case SCENE_SPOT01:
|
||||
case SCENE_SPOT02:
|
||||
case SCENE_SPOT03:
|
||||
case SCENE_SPOT04:
|
||||
case SCENE_SPOT05:
|
||||
case SCENE_SPOT06:
|
||||
case SCENE_SPOT07:
|
||||
case SCENE_SPOT08:
|
||||
case SCENE_SPOT09:
|
||||
case SCENE_SPOT10:
|
||||
case SCENE_SPOT11:
|
||||
case SCENE_SPOT12:
|
||||
case SCENE_SPOT13:
|
||||
case SCENE_SPOT15:
|
||||
case SCENE_SPOT16:
|
||||
case SCENE_SPOT17:
|
||||
case SCENE_SPOT18:
|
||||
case SCENE_SPOT20:
|
||||
case SCENE_GANON_TOU:
|
||||
case SCENE_HYRULE_FIELD:
|
||||
case SCENE_KAKARIKO_VILLAGE:
|
||||
case SCENE_GRAVEYARD:
|
||||
case SCENE_ZORAS_RIVER:
|
||||
case SCENE_KOKIRI_FOREST:
|
||||
case SCENE_SACRED_FOREST_MEADOW:
|
||||
case SCENE_LAKE_HYLIA:
|
||||
case SCENE_ZORAS_DOMAIN:
|
||||
case SCENE_ZORAS_FOUNTAIN:
|
||||
case SCENE_GERUDO_VALLEY:
|
||||
case SCENE_LOST_WOODS:
|
||||
case SCENE_DESERT_COLOSSUS:
|
||||
case SCENE_GERUDOS_FORTRESS:
|
||||
case SCENE_HAUNTED_WASTELAND:
|
||||
case SCENE_HYRULE_CASTLE:
|
||||
case SCENE_DEATH_MOUNTAIN_TRAIL:
|
||||
case SCENE_DEATH_MOUNTAIN_CRATER:
|
||||
case SCENE_GORON_CITY:
|
||||
case SCENE_LON_LON_RANCH:
|
||||
case SCENE_OUTSIDE_GANONS_CASTLE:
|
||||
if (interfaceCtx->minimapAlpha < 170) {
|
||||
interfaceCtx->minimapAlpha = risingAlpha;
|
||||
} else {
|
||||
|
@ -4309,7 +4310,7 @@ void Interface_Update(PlayState* play) {
|
|||
play->unk_11DE9 = true;
|
||||
}
|
||||
|
||||
if (play->sceneId == SCENE_SPOT13) {
|
||||
if (play->sceneId == SCENE_HAUNTED_WASTELAND) {
|
||||
play->transitionType = TRANS_TYPE_SANDSTORM_PERSIST;
|
||||
gSaveContext.nextTransitionType = TRANS_TYPE_SANDSTORM_PERSIST;
|
||||
}
|
||||
|
|
|
@ -306,7 +306,7 @@ void Play_Init(GameState* thisx) {
|
|||
// save the base scene layer (before accounting for the special cases below) to use later for the transition type
|
||||
baseSceneLayer = gSaveContext.sceneLayer;
|
||||
|
||||
if ((gEntranceTable[((void)0, gSaveContext.entranceIndex)].sceneId == SCENE_SPOT00) && !LINK_IS_ADULT &&
|
||||
if ((gEntranceTable[((void)0, gSaveContext.entranceIndex)].sceneId == SCENE_HYRULE_FIELD) && !LINK_IS_ADULT &&
|
||||
!IS_CUTSCENE_LAYER) {
|
||||
if (CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD) && CHECK_QUEST_ITEM(QUEST_GORON_RUBY) &&
|
||||
CHECK_QUEST_ITEM(QUEST_ZORA_SAPPHIRE)) {
|
||||
|
@ -314,8 +314,8 @@ void Play_Init(GameState* thisx) {
|
|||
} else {
|
||||
gSaveContext.sceneLayer = 0;
|
||||
}
|
||||
} else if ((gEntranceTable[((void)0, gSaveContext.entranceIndex)].sceneId == SCENE_SPOT04) && LINK_IS_ADULT &&
|
||||
!IS_CUTSCENE_LAYER) {
|
||||
} else if ((gEntranceTable[((void)0, gSaveContext.entranceIndex)].sceneId == SCENE_KOKIRI_FOREST) &&
|
||||
LINK_IS_ADULT && !IS_CUTSCENE_LAYER) {
|
||||
gSaveContext.sceneLayer = GET_EVENTCHKINF(EVENTCHKINF_48) ? 3 : 2;
|
||||
}
|
||||
|
||||
|
@ -327,7 +327,7 @@ void Play_Init(GameState* thisx) {
|
|||
|
||||
// When entering Gerudo Valley in the credits, trigger the GC emulator to play the ending movie.
|
||||
// The emulator constantly checks whether PC is 0x81000000, so this works even though it's not a valid address.
|
||||
if ((gEntranceTable[((void)0, gSaveContext.entranceIndex)].sceneId == SCENE_SPOT09) &&
|
||||
if ((gEntranceTable[((void)0, gSaveContext.entranceIndex)].sceneId == SCENE_GERUDO_VALLEY) &&
|
||||
gSaveContext.sceneLayer == 6) {
|
||||
osSyncPrintf("エンディングはじまるよー\n"); // "The ending starts"
|
||||
((void (*)(void))0x81000000)();
|
||||
|
@ -1697,7 +1697,7 @@ void Play_SetupRespawnPoint(PlayState* this, s32 respawnMode, s32 playerParams)
|
|||
s32 entranceIndex;
|
||||
s8 roomIndex;
|
||||
|
||||
if ((this->sceneId != SCENE_YOUSEI_IZUMI_TATE) && (this->sceneId != SCENE_KAKUSIANA)) {
|
||||
if ((this->sceneId != SCENE_FAIRYS_FOUNTAIN) && (this->sceneId != SCENE_GROTTOS)) {
|
||||
roomIndex = this->roomCtx.curRoom.num;
|
||||
entranceIndex = gSaveContext.entranceIndex;
|
||||
Play_SetRespawnData(this, respawnMode, entranceIndex, roomIndex, playerParams, &player->actor.world.pos,
|
||||
|
@ -1718,13 +1718,16 @@ void Play_LoadToLastEntrance(PlayState* this) {
|
|||
gSaveContext.respawnFlag = -1;
|
||||
this->transitionTrigger = TRANS_TRIGGER_START;
|
||||
|
||||
if ((this->sceneId == SCENE_GANON_SONOGO) || (this->sceneId == SCENE_GANON_FINAL) ||
|
||||
(this->sceneId == SCENE_GANONTIKA_SONOGO) || (this->sceneId == SCENE_GANON_DEMO)) {
|
||||
this->nextEntranceIndex = ENTR_GANON_FINAL_0;
|
||||
if ((this->sceneId == SCENE_GANONS_TOWER_COLLAPSE_INTERIOR) ||
|
||||
(this->sceneId == SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR) ||
|
||||
(this->sceneId == SCENE_INSIDE_GANONS_CASTLE_COLLAPSE) || (this->sceneId == SCENE_GANON_BOSS)) {
|
||||
this->nextEntranceIndex = ENTR_GANONS_TOWER_COLLAPSE_EXTERIOR_0;
|
||||
Item_Give(this, ITEM_SWORD_MASTER);
|
||||
} else if ((gSaveContext.entranceIndex == ENTR_SPOT00_11) || (gSaveContext.entranceIndex == ENTR_SPOT00_12) ||
|
||||
(gSaveContext.entranceIndex == ENTR_SPOT00_13) || (gSaveContext.entranceIndex == ENTR_SPOT00_15)) {
|
||||
this->nextEntranceIndex = ENTR_SPOT00_6;
|
||||
} else if ((gSaveContext.entranceIndex == ENTR_HYRULE_FIELD_11) ||
|
||||
(gSaveContext.entranceIndex == ENTR_HYRULE_FIELD_12) ||
|
||||
(gSaveContext.entranceIndex == ENTR_HYRULE_FIELD_13) ||
|
||||
(gSaveContext.entranceIndex == ENTR_HYRULE_FIELD_15)) {
|
||||
this->nextEntranceIndex = ENTR_HYRULE_FIELD_6;
|
||||
} else {
|
||||
this->nextEntranceIndex = gSaveContext.entranceIndex;
|
||||
}
|
||||
|
@ -1742,7 +1745,7 @@ s32 Play_CamIsNotFixed(PlayState* this) {
|
|||
// but the room shape type check handles all shop cases regardless
|
||||
return (this->roomCtx.curRoom.roomShape->base.type != ROOM_SHAPE_TYPE_IMAGE) &&
|
||||
(R_SCENE_CAM_TYPE != SCENE_CAM_TYPE_FIXED_TOGGLE_VIEWPOINT) && (R_SCENE_CAM_TYPE != SCENE_CAM_TYPE_FIXED) &&
|
||||
(R_SCENE_CAM_TYPE != SCENE_CAM_TYPE_FIXED_MARKET) && (this->sceneId != SCENE_HAIRAL_NIWA);
|
||||
(R_SCENE_CAM_TYPE != SCENE_CAM_TYPE_FIXED_MARKET) && (this->sceneId != SCENE_CASTLE_COURTYARD_GUARDS_DAY);
|
||||
}
|
||||
|
||||
s32 FrameAdvance_IsEnabled(PlayState* this) {
|
||||
|
|
|
@ -648,7 +648,7 @@ void func_80097534(PlayState* play, RoomContext* roomCtx) {
|
|||
func_80031B14(play, &play->actorCtx);
|
||||
Actor_SpawnTransitionActors(play, &play->actorCtx);
|
||||
Map_InitRoomData(play, roomCtx->curRoom.num);
|
||||
if (!((play->sceneId >= SCENE_SPOT00) && (play->sceneId <= SCENE_SPOT20))) {
|
||||
if (!((play->sceneId >= SCENE_HYRULE_FIELD) && (play->sceneId <= SCENE_LON_LON_RANCH))) {
|
||||
Map_SavePlayerInitialInfo(play);
|
||||
}
|
||||
Audio_SetEnvReverb(play->roomCtx.curRoom.echo);
|
||||
|
|
|
@ -38,19 +38,19 @@ void Object_InitBank(PlayState* play, ObjectContext* objectCtx) {
|
|||
u32 spaceSize;
|
||||
s32 i;
|
||||
|
||||
if (play2->sceneId == SCENE_SPOT00) {
|
||||
if (play2->sceneId == SCENE_HYRULE_FIELD) {
|
||||
spaceSize = 1024000;
|
||||
} else if (play2->sceneId == SCENE_GANON_DEMO) {
|
||||
} else if (play2->sceneId == SCENE_GANON_BOSS) {
|
||||
if (gSaveContext.sceneLayer != 4) {
|
||||
spaceSize = 1177600;
|
||||
} else {
|
||||
spaceSize = 1024000;
|
||||
}
|
||||
} else if (play2->sceneId == SCENE_JYASINBOSS) {
|
||||
} else if (play2->sceneId == SCENE_SPIRIT_TEMPLE_BOSS) {
|
||||
spaceSize = 1075200;
|
||||
} else if (play2->sceneId == SCENE_KENJYANOMA) {
|
||||
} else if (play2->sceneId == SCENE_CHAMBER_OF_THE_SAGES) {
|
||||
spaceSize = 1075200;
|
||||
} else if (play2->sceneId == SCENE_GANON_BOSS) {
|
||||
} else if (play2->sceneId == SCENE_GANONDORF_BOSS) {
|
||||
spaceSize = 1075200;
|
||||
} else {
|
||||
spaceSize = 1024000;
|
||||
|
@ -356,7 +356,7 @@ void Scene_CommandTimeSettings(PlayState* play, SceneCmd* cmd) {
|
|||
play->envCtx.sunPos.z = (Math_CosS(((void)0, gSaveContext.dayTime) - CLOCK_TIME(12, 0)) * 20.0f) * 25.0f;
|
||||
|
||||
if (((play->envCtx.sceneTimeSpeed == 0) && (gSaveContext.cutsceneIndex < 0xFFF0)) ||
|
||||
(gSaveContext.entranceIndex == ENTR_SPOT06_8)) {
|
||||
(gSaveContext.entranceIndex == ENTR_LAKE_HYLIA_8)) {
|
||||
gSaveContext.skyboxTime = ((void)0, gSaveContext.dayTime);
|
||||
|
||||
if ((gSaveContext.skyboxTime > CLOCK_TIME(4, 0)) && (gSaveContext.skyboxTime < CLOCK_TIME(6, 30))) {
|
||||
|
@ -452,14 +452,14 @@ void Scene_CommandMiscSettings(PlayState* play, SceneCmd* cmd) {
|
|||
R_SCENE_CAM_TYPE = cmd->miscSettings.sceneCamType;
|
||||
gSaveContext.worldMapArea = cmd->miscSettings.area;
|
||||
|
||||
if ((play->sceneId == SCENE_SHOP1) || (play->sceneId == SCENE_SYATEKIJYOU)) {
|
||||
if ((play->sceneId == SCENE_BAZAAR) || (play->sceneId == SCENE_SHOOTING_GALLERY)) {
|
||||
if (LINK_AGE_IN_YEARS == YEARS_ADULT) {
|
||||
gSaveContext.worldMapArea = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (((play->sceneId >= SCENE_SPOT00) && (play->sceneId <= SCENE_GANON_TOU)) ||
|
||||
((play->sceneId >= SCENE_ENTRA) && (play->sceneId <= SCENE_SHRINE_R))) {
|
||||
if (((play->sceneId >= SCENE_HYRULE_FIELD) && (play->sceneId <= SCENE_OUTSIDE_GANONS_CASTLE)) ||
|
||||
((play->sceneId >= SCENE_MARKET_ENTRANCE_DAY) && (play->sceneId <= SCENE_TEMPLE_OF_TIME_EXTERIOR_RUINS))) {
|
||||
if (gSaveContext.cutsceneIndex < 0xFFF0) {
|
||||
gSaveContext.worldMapAreaData |= gBitFlags[gSaveContext.worldMapArea];
|
||||
osSyncPrintf("000 area_arrival=%x (%d)\n", gSaveContext.worldMapAreaData,
|
||||
|
|
|
@ -379,7 +379,7 @@ void Scene_DrawConfigHakadan(PlayState* play) {
|
|||
|
||||
gameplayFrames = play->gameplayFrames;
|
||||
|
||||
if (play->sceneId == SCENE_HAKADAN_BS) {
|
||||
if (play->sceneId == SCENE_SHADOW_TEMPLE_BOSS) {
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08,
|
||||
Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, (gameplayFrames * 2) % 128, 0, 32, 32, 1,
|
||||
(gameplayFrames * 2) % 128, 0, 32, 32));
|
||||
|
@ -534,7 +534,7 @@ void Scene_DrawConfigHairalNiwa(PlayState* play) {
|
|||
(gameplayFrames * 3) % 128, 32, 32, 1, gameplayFrames % 128, (gameplayFrames * 3) % 128,
|
||||
32, 32));
|
||||
|
||||
if (play->sceneId == SCENE_HAIRAL_NIWA) {
|
||||
if (play->sceneId == SCENE_CASTLE_COURTYARD_GUARDS_DAY) {
|
||||
gSPSegment(POLY_XLU_DISP++, 0x09, Gfx_TexScroll(play->state.gfxCtx, 0, (gameplayFrames * 10) % 256, 32, 64));
|
||||
}
|
||||
|
||||
|
@ -559,7 +559,7 @@ void Scene_DrawConfigGanonCastleExterior(PlayState* play) {
|
|||
|
||||
gameplayFrames = play->gameplayFrames;
|
||||
|
||||
if (play->sceneId == SCENE_GANON_TOU) {
|
||||
if (play->sceneId == SCENE_OUTSIDE_GANONS_CASTLE) {
|
||||
gSPSegment(POLY_XLU_DISP++, 0x09, Gfx_TexScroll(play->state.gfxCtx, 0, (gameplayFrames * 1) % 256, 64, 64));
|
||||
gSPSegment(POLY_XLU_DISP++, 0x08,
|
||||
Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 0, 255 - (gameplayFrames * 1) % 256, 64, 64, 1,
|
||||
|
@ -637,8 +637,9 @@ void Scene_DrawConfigGanonFinal(PlayState* play) {
|
|||
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6004);
|
||||
|
||||
if (Flags_GetSwitch(play, 0x37)) {
|
||||
if ((play->sceneId == SCENE_GANON_DEMO) || (play->sceneId == SCENE_GANON_FINAL) ||
|
||||
(play->sceneId == SCENE_GANON_SONOGO) || (play->sceneId == SCENE_GANONTIKA_SONOGO)) {
|
||||
if ((play->sceneId == SCENE_GANON_BOSS) || (play->sceneId == SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR) ||
|
||||
(play->sceneId == SCENE_GANONS_TOWER_COLLAPSE_INTERIOR) ||
|
||||
(play->sceneId == SCENE_INSIDE_GANONS_CASTLE_COLLAPSE)) {
|
||||
func_8009BEEC(play);
|
||||
}
|
||||
}
|
||||
|
@ -1469,7 +1470,7 @@ void Scene_DrawConfigBdan(PlayState* play) {
|
|||
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7712);
|
||||
|
||||
gameplayFrames = play->gameplayFrames;
|
||||
if (play->sceneId == SCENE_BDAN) {
|
||||
if (play->sceneId == SCENE_JABU_JABU) {
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08,
|
||||
Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, gameplayFrames % 128,
|
||||
(gameplayFrames * 2) % 128, 32, 32, 1, 127 - gameplayFrames % 128,
|
||||
|
@ -1594,58 +1595,58 @@ void Scene_DrawConfigBesitu(PlayState* play) {
|
|||
|
||||
void (*sSceneDrawConfigs[SDC_MAX])(PlayState*) = {
|
||||
Scene_DrawConfigDefault, // SDC_DEFAULT
|
||||
Scene_DrawConfigSpot00, // SDC_SPOT00
|
||||
Scene_DrawConfigSpot01, // SDC_SPOT01
|
||||
Scene_DrawConfigSpot03, // SDC_SPOT03
|
||||
Scene_DrawConfigSpot04, // SDC_SPOT04
|
||||
Scene_DrawConfigSpot06, // SDC_SPOT06
|
||||
Scene_DrawConfigSpot07, // SDC_SPOT07
|
||||
Scene_DrawConfigSpot08, // SDC_SPOT08
|
||||
Scene_DrawConfigSpot09, // SDC_SPOT09
|
||||
Scene_DrawConfigSpot10, // SDC_SPOT10
|
||||
Scene_DrawConfigSpot11, // SDC_SPOT11
|
||||
Scene_DrawConfigSpot12, // SDC_SPOT12
|
||||
Scene_DrawConfigSpot13, // SDC_SPOT13
|
||||
Scene_DrawConfigSpot15, // SDC_SPOT15
|
||||
Scene_DrawConfigSpot16, // SDC_SPOT16
|
||||
Scene_DrawConfigSpot17, // SDC_SPOT17
|
||||
Scene_DrawConfigSpot18, // SDC_SPOT18
|
||||
Scene_DrawConfigSpot20, // SDC_SPOT20
|
||||
Scene_DrawConfigHidan, // SDC_HIDAN
|
||||
Scene_DrawConfigYdan, // SDC_YDAN
|
||||
Scene_DrawConfigDdan, // SDC_DDAN
|
||||
Scene_DrawConfigBdan, // SDC_BDAN
|
||||
Scene_DrawConfigBmori1, // SDC_BMORI1
|
||||
Scene_DrawConfigMizusin, // SDC_MIZUSIN
|
||||
Scene_DrawConfigHakadan, // SDC_HAKADAN
|
||||
Scene_DrawConfigJyasinzou, // SDC_JYASINZOU
|
||||
Scene_DrawConfigGanontika, // SDC_GANONTIKA
|
||||
Scene_DrawConfigMen, // SDC_MEN
|
||||
Scene_DrawConfigYdanBoss, // SDC_YDAN_BOSS
|
||||
Scene_DrawConfigMizusinBs, // SDC_MIZUSIN_BS
|
||||
Scene_DrawConfigTokinoma, // SDC_TOKINOMA
|
||||
Scene_DrawConfigKakusiana, // SDC_KAKUSIANA
|
||||
Scene_DrawConfigKenjyanoma, // SDC_KENJYANOMA
|
||||
Scene_DrawConfigGreatFairyFountain, // SDC_GREAT_FAIRY_FOUNTAIN
|
||||
Scene_DrawConfigSyatekijyou, // SDC_SYATEKIJYOU
|
||||
Scene_DrawConfigHairalNiwa, // SDC_HAIRAL_NIWA
|
||||
Scene_DrawConfigGanonCastleExterior, // SDC_GANON_CASTLE_EXTERIOR
|
||||
Scene_DrawConfigIceDoukuto, // SDC_ICE_DOUKUTO
|
||||
Scene_DrawConfigGanonFinal, // SDC_GANON_FINAL
|
||||
Scene_DrawConfigFairyFountain, // SDC_FAIRY_FOUNTAIN
|
||||
Scene_DrawConfigGerudoway, // SDC_GERUDOWAY
|
||||
Scene_DrawConfigBowling, // SDC_BOWLING
|
||||
Scene_DrawConfigHakaanaOuke, // SDC_HAKAANA_OUKE
|
||||
Scene_DrawConfigHyliaLabo, // SDC_HYLIA_LABO
|
||||
Scene_DrawConfigSouko, // SDC_SOUKO
|
||||
Scene_DrawConfigMiharigoya, // SDC_MIHARIGOYA
|
||||
Scene_DrawConfigMahouya, // SDC_MAHOUYA
|
||||
Scene_DrawConfigSpot00, // SDC_HYRULE_FIELD
|
||||
Scene_DrawConfigSpot01, // SDC_KAKARIKO_VILLAGE
|
||||
Scene_DrawConfigSpot03, // SDC_ZORAS_RIVER
|
||||
Scene_DrawConfigSpot04, // SDC_KOKIRI_FOREST
|
||||
Scene_DrawConfigSpot06, // SDC_LAKE_HYLIA
|
||||
Scene_DrawConfigSpot07, // SDC_ZORAS_DOMAIN
|
||||
Scene_DrawConfigSpot08, // SDC_ZORAS_FOUNTAIN
|
||||
Scene_DrawConfigSpot09, // SDC_GERUDO_VALLEY
|
||||
Scene_DrawConfigSpot10, // SDC_LOST_WOODS
|
||||
Scene_DrawConfigSpot11, // SDC_DESERT_COLOSSUS
|
||||
Scene_DrawConfigSpot12, // SDC_GERUDOS_FORTRESS
|
||||
Scene_DrawConfigSpot13, // SDC_HAUNTED_WASTELAND
|
||||
Scene_DrawConfigSpot15, // SDC_HYRULE_CASTLE
|
||||
Scene_DrawConfigSpot16, // SDC_DEATH_MOUNTAIN_TRAIL
|
||||
Scene_DrawConfigSpot17, // SDC_DEATH_MOUNTAIN_CRATER
|
||||
Scene_DrawConfigSpot18, // SDC_GORON_CITY
|
||||
Scene_DrawConfigSpot20, // SDC_LON_LON_RANCH
|
||||
Scene_DrawConfigHidan, // SDC_FIRE_TEMPLE
|
||||
Scene_DrawConfigYdan, // SDC_DEKU_TREE
|
||||
Scene_DrawConfigDdan, // SDC_DODONGOS_CAVERN
|
||||
Scene_DrawConfigBdan, // SDC_JABU_JABU
|
||||
Scene_DrawConfigBmori1, // SDC_FOREST_TEMPLE
|
||||
Scene_DrawConfigMizusin, // SDC_WATER_TEMPLE
|
||||
Scene_DrawConfigHakadan, // SDC_SHADOW_TEMPLE
|
||||
Scene_DrawConfigJyasinzou, // SDC_SPIRIT_TEMPLE
|
||||
Scene_DrawConfigGanontika, // SDC_INSIDE_GANONS_CASTLE
|
||||
Scene_DrawConfigMen, // SDC_GERUDO_TRAINING_GROUND
|
||||
Scene_DrawConfigYdanBoss, // SDC_DEKU_TREE_BOSS
|
||||
Scene_DrawConfigMizusinBs, // SDC_WATER_TEMPLE_BOSS
|
||||
Scene_DrawConfigTokinoma, // SDC_TEMPLE_OF_TIME
|
||||
Scene_DrawConfigKakusiana, // SDC_GROTTOS
|
||||
Scene_DrawConfigKenjyanoma, // SDC_CHAMBER_OF_THE_SAGES
|
||||
Scene_DrawConfigGreatFairyFountain, // SDC_GREAT_FAIRYS_FOUNTAIN
|
||||
Scene_DrawConfigSyatekijyou, // SDC_SHOOTING_GALLERY
|
||||
Scene_DrawConfigHairalNiwa, // SDC_CASTLE_COURTYARD_GUARDS
|
||||
Scene_DrawConfigGanonCastleExterior, // SDC_OUTSIDE_GANONS_CASTLE
|
||||
Scene_DrawConfigIceDoukuto, // SDC_ICE_CAVERN
|
||||
Scene_DrawConfigGanonFinal, // SDC_GANONS_TOWER_COLLAPSE_EXTERIOR
|
||||
Scene_DrawConfigFairyFountain, // SDC_FAIRYS_FOUNTAIN
|
||||
Scene_DrawConfigGerudoway, // SDC_THIEVES_HIDEOUT
|
||||
Scene_DrawConfigBowling, // SDC_BOMBCHU_BOWLING_ALLEY
|
||||
Scene_DrawConfigHakaanaOuke, // SDC_ROYAL_FAMILYS_TOMB
|
||||
Scene_DrawConfigHyliaLabo, // SDC_LAKESIDE_LABORATORY
|
||||
Scene_DrawConfigSouko, // SDC_LON_LON_BUILDINGS
|
||||
Scene_DrawConfigMiharigoya, // SDC_MARKET_GUARD_HOUSE
|
||||
Scene_DrawConfigMahouya, // SDC_POTION_SHOP_GRANNY
|
||||
Scene_DrawConfigCalmWater, // SDC_CALM_WATER
|
||||
Scene_DrawConfigGraveExitLightShining, // SDC_GRAVE_EXIT_LIGHT_SHINING
|
||||
Scene_DrawConfigBesitu, // SDC_BESITU
|
||||
Scene_DrawConfigTuribori, // SDC_TURIBORI
|
||||
Scene_DrawConfigGanonSonogo, // SDC_GANON_SONOGO
|
||||
Scene_DrawConfigGanontikaSonogo, // SDC_GANONTIKA_SONOGO
|
||||
Scene_DrawConfigTuribori, // SDC_FISHING_POND
|
||||
Scene_DrawConfigGanonSonogo, // SDC_GANONS_TOWER_COLLAPSE_INTERIOR
|
||||
Scene_DrawConfigGanontikaSonogo, // SDC_INSIDE_GANONS_CASTLE_COLLAPSE
|
||||
};
|
||||
|
||||
void Scene_Draw(PlayState* play) {
|
||||
|
|
|
@ -126,7 +126,7 @@ static SavePlayerData sNewSavePlayerData = {
|
|||
}, // adultEquips
|
||||
0, // unk_38
|
||||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // unk_3C
|
||||
SCENE_LINK_HOME, // savedSceneId
|
||||
SCENE_LINKS_HOUSE, // savedSceneId
|
||||
};
|
||||
|
||||
static ItemEquips sNewSaveEquips = {
|
||||
|
@ -214,7 +214,7 @@ void Sram_InitNewSave(void) {
|
|||
gSaveContext.inventory = sNewSaveInventory;
|
||||
|
||||
temp->checksum = sNewSaveChecksum;
|
||||
gSaveContext.horseData.sceneId = SCENE_SPOT00;
|
||||
gSaveContext.horseData.sceneId = SCENE_HYRULE_FIELD;
|
||||
gSaveContext.horseData.pos.x = -1840;
|
||||
gSaveContext.horseData.pos.y = 72;
|
||||
gSaveContext.horseData.pos.z = 5497;
|
||||
|
@ -254,7 +254,7 @@ static SavePlayerData sDebugSavePlayerData = {
|
|||
}, // adultEquips
|
||||
0, // unk_38
|
||||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // unk_3C
|
||||
SCENE_SPOT00, // savedSceneId
|
||||
SCENE_HYRULE_FIELD, // savedSceneId
|
||||
};
|
||||
|
||||
static ItemEquips sDebugSaveEquips = {
|
||||
|
@ -356,7 +356,7 @@ void Sram_InitDebugSave(void) {
|
|||
gSaveContext.inventory = sDebugSaveInventory;
|
||||
|
||||
temp->checksum = sDebugSaveChecksum;
|
||||
gSaveContext.horseData.sceneId = SCENE_SPOT00;
|
||||
gSaveContext.horseData.sceneId = SCENE_HYRULE_FIELD;
|
||||
gSaveContext.horseData.pos.x = -1840;
|
||||
gSaveContext.horseData.pos.y = 72;
|
||||
gSaveContext.horseData.pos.z = 5497;
|
||||
|
@ -376,28 +376,28 @@ void Sram_InitDebugSave(void) {
|
|||
}
|
||||
}
|
||||
|
||||
gSaveContext.entranceIndex = ENTR_SPOT00_0;
|
||||
gSaveContext.entranceIndex = ENTR_HYRULE_FIELD_0;
|
||||
gSaveContext.magicLevel = 0;
|
||||
gSaveContext.sceneFlags[5].swch = 0x40000000;
|
||||
}
|
||||
|
||||
static s16 sDungeonEntrances[] = {
|
||||
ENTR_YDAN_0, // SCENE_YDAN
|
||||
ENTR_DDAN_0, // SCENE_DDAN
|
||||
ENTR_BDAN_0, // SCENE_BDAN
|
||||
ENTR_BMORI1_0, // SCENE_BMORI1
|
||||
ENTR_HIDAN_0, // SCENE_HIDAN
|
||||
ENTR_MIZUSIN_0, // SCENE_MIZUSIN
|
||||
ENTR_JYASINZOU_0, // SCENE_JYASINZOU
|
||||
ENTR_HAKADAN_0, // SCENE_HAKADAN
|
||||
ENTR_HAKADANCH_0, // SCENE_HAKADANCH
|
||||
ENTR_ICE_DOUKUTO_0, // SCENE_ICE_DOUKUTO
|
||||
ENTR_GANON_0, // SCENE_GANON
|
||||
ENTR_MEN_0, // SCENE_MEN
|
||||
ENTR_GERUDOWAY_0, // SCENE_GERUDOWAY
|
||||
ENTR_GANONTIKA_0, // SCENE_GANONTIKA
|
||||
ENTR_GANON_SONOGO_0, // SCENE_GANON_SONOGO
|
||||
ENTR_GANONTIKA_SONOGO_0, // SCENE_GANONTIKA_SONOGO
|
||||
ENTR_DEKU_TREE_0, // SCENE_DEKU_TREE
|
||||
ENTR_DODONGOS_CAVERN_0, // SCENE_DODONGOS_CAVERN
|
||||
ENTR_JABU_JABU_0, // SCENE_JABU_JABU
|
||||
ENTR_FOREST_TEMPLE_0, // SCENE_FOREST_TEMPLE
|
||||
ENTR_FIRE_TEMPLE_0, // SCENE_FIRE_TEMPLE
|
||||
ENTR_WATER_TEMPLE_0, // SCENE_WATER_TEMPLE
|
||||
ENTR_SPIRIT_TEMPLE_0, // SCENE_SPIRIT_TEMPLE
|
||||
ENTR_SHADOW_TEMPLE_0, // SCENE_SHADOW_TEMPLE
|
||||
ENTR_BOTTOM_OF_THE_WELL_0, // SCENE_BOTTOM_OF_THE_WELL
|
||||
ENTR_ICE_CAVERN_0, // SCENE_ICE_CAVERN
|
||||
ENTR_GANONS_TOWER_0, // SCENE_GANONS_TOWER
|
||||
ENTR_GERUDO_TRAINING_GROUND_0, // SCENE_GERUDO_TRAINING_GROUND
|
||||
ENTR_THIEVES_HIDEOUT_0, // SCENE_THIEVES_HIDEOUT
|
||||
ENTR_INSIDE_GANONS_CASTLE_0, // SCENE_INSIDE_GANONS_CASTLE
|
||||
ENTR_GANONS_TOWER_COLLAPSE_INTERIOR_0, // SCENE_GANONS_TOWER_COLLAPSE_INTERIOR
|
||||
ENTR_INSIDE_GANONS_CASTLE_COLLAPSE_0, // SCENE_INSIDE_GANONS_CASTLE_COLLAPSE
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -426,68 +426,69 @@ void Sram_OpenSave(SramContext* sramCtx) {
|
|||
((void)0, gSaveContext.entranceIndex));
|
||||
|
||||
switch (gSaveContext.savedSceneId) {
|
||||
case SCENE_YDAN:
|
||||
case SCENE_DDAN:
|
||||
case SCENE_BDAN:
|
||||
case SCENE_BMORI1:
|
||||
case SCENE_HIDAN:
|
||||
case SCENE_MIZUSIN:
|
||||
case SCENE_JYASINZOU:
|
||||
case SCENE_HAKADAN:
|
||||
case SCENE_HAKADANCH:
|
||||
case SCENE_ICE_DOUKUTO:
|
||||
case SCENE_GANON:
|
||||
case SCENE_MEN:
|
||||
case SCENE_GERUDOWAY:
|
||||
case SCENE_GANONTIKA:
|
||||
case SCENE_DEKU_TREE:
|
||||
case SCENE_DODONGOS_CAVERN:
|
||||
case SCENE_JABU_JABU:
|
||||
case SCENE_FOREST_TEMPLE:
|
||||
case SCENE_FIRE_TEMPLE:
|
||||
case SCENE_WATER_TEMPLE:
|
||||
case SCENE_SPIRIT_TEMPLE:
|
||||
case SCENE_SHADOW_TEMPLE:
|
||||
case SCENE_BOTTOM_OF_THE_WELL:
|
||||
case SCENE_ICE_CAVERN:
|
||||
case SCENE_GANONS_TOWER:
|
||||
case SCENE_GERUDO_TRAINING_GROUND:
|
||||
case SCENE_THIEVES_HIDEOUT:
|
||||
case SCENE_INSIDE_GANONS_CASTLE:
|
||||
gSaveContext.entranceIndex = sDungeonEntrances[gSaveContext.savedSceneId];
|
||||
break;
|
||||
|
||||
case SCENE_YDAN_BOSS:
|
||||
gSaveContext.entranceIndex = ENTR_YDAN_0;
|
||||
case SCENE_DEKU_TREE_BOSS:
|
||||
gSaveContext.entranceIndex = ENTR_DEKU_TREE_0;
|
||||
break;
|
||||
|
||||
case SCENE_DDAN_BOSS:
|
||||
gSaveContext.entranceIndex = ENTR_DDAN_0;
|
||||
case SCENE_DODONGOS_CAVERN_BOSS:
|
||||
gSaveContext.entranceIndex = ENTR_DODONGOS_CAVERN_0;
|
||||
break;
|
||||
|
||||
case SCENE_BDAN_BOSS:
|
||||
gSaveContext.entranceIndex = ENTR_BDAN_0;
|
||||
case SCENE_JABU_JABU_BOSS:
|
||||
gSaveContext.entranceIndex = ENTR_JABU_JABU_0;
|
||||
break;
|
||||
|
||||
case SCENE_MORIBOSSROOM:
|
||||
gSaveContext.entranceIndex = ENTR_BMORI1_0;
|
||||
case SCENE_FOREST_TEMPLE_BOSS:
|
||||
gSaveContext.entranceIndex = ENTR_FOREST_TEMPLE_0;
|
||||
break;
|
||||
|
||||
case SCENE_FIRE_BS:
|
||||
gSaveContext.entranceIndex = ENTR_HIDAN_0;
|
||||
case SCENE_FIRE_TEMPLE_BOSS:
|
||||
gSaveContext.entranceIndex = ENTR_FIRE_TEMPLE_0;
|
||||
break;
|
||||
|
||||
case SCENE_MIZUSIN_BS:
|
||||
gSaveContext.entranceIndex = ENTR_MIZUSIN_0;
|
||||
case SCENE_WATER_TEMPLE_BOSS:
|
||||
gSaveContext.entranceIndex = ENTR_WATER_TEMPLE_0;
|
||||
break;
|
||||
|
||||
case SCENE_JYASINBOSS:
|
||||
gSaveContext.entranceIndex = ENTR_JYASINZOU_0;
|
||||
case SCENE_SPIRIT_TEMPLE_BOSS:
|
||||
gSaveContext.entranceIndex = ENTR_SPIRIT_TEMPLE_0;
|
||||
break;
|
||||
|
||||
case SCENE_HAKADAN_BS:
|
||||
gSaveContext.entranceIndex = ENTR_HAKADAN_0;
|
||||
case SCENE_SHADOW_TEMPLE_BOSS:
|
||||
gSaveContext.entranceIndex = ENTR_SHADOW_TEMPLE_0;
|
||||
break;
|
||||
|
||||
case SCENE_GANON_SONOGO:
|
||||
case SCENE_GANONTIKA_SONOGO:
|
||||
case SCENE_GANONS_TOWER_COLLAPSE_INTERIOR:
|
||||
case SCENE_INSIDE_GANONS_CASTLE_COLLAPSE:
|
||||
case SCENE_GANONDORF_BOSS:
|
||||
case SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR:
|
||||
case SCENE_GANON_BOSS:
|
||||
case SCENE_GANON_FINAL:
|
||||
case SCENE_GANON_DEMO:
|
||||
gSaveContext.entranceIndex = ENTR_GANON_0;
|
||||
gSaveContext.entranceIndex = ENTR_GANONS_TOWER_0;
|
||||
break;
|
||||
|
||||
default:
|
||||
if (gSaveContext.savedSceneId != SCENE_LINK_HOME) {
|
||||
gSaveContext.entranceIndex = (LINK_AGE_IN_YEARS == YEARS_CHILD) ? ENTR_LINK_HOME_0 : ENTR_TOKINOMA_7;
|
||||
if (gSaveContext.savedSceneId != SCENE_LINKS_HOUSE) {
|
||||
gSaveContext.entranceIndex =
|
||||
(LINK_AGE_IN_YEARS == YEARS_CHILD) ? ENTR_LINKS_HOUSE_0 : ENTR_TEMPLE_OF_TIME_7;
|
||||
} else {
|
||||
gSaveContext.entranceIndex = ENTR_LINK_HOME_0;
|
||||
gSaveContext.entranceIndex = ENTR_LINKS_HOUSE_0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -789,7 +790,7 @@ void Sram_InitSave(FileSelectState* fileSelect, SramContext* sramCtx) {
|
|||
Sram_InitDebugSave();
|
||||
}
|
||||
|
||||
gSaveContext.entranceIndex = ENTR_LINK_HOME_0;
|
||||
gSaveContext.entranceIndex = ENTR_LINKS_HOUSE_0;
|
||||
gSaveContext.linkAge = LINK_AGE_CHILD;
|
||||
gSaveContext.dayTime = CLOCK_TIME(10, 0);
|
||||
gSaveContext.cutsceneIndex = 0xFFF1;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue