Add scene table (#3131)

* Add scene table

* Re-add accidentally deleted entry

* Update CrashHandlerExt.cpp

* Update CrashHandlerExt.cpp
This commit is contained in:
Pepe20129
2023-09-01 18:46:19 +02:00
committed by GitHub
parent 0e7c658523
commit 45b7520dcb
109 changed files with 2407 additions and 2521 deletions
+1 -1
View File
@@ -619,7 +619,7 @@ s32 AudioLoad_SyncInitSeqPlayerInternal(s32 playerIdx, s32 seqId, s32 arg2) {
// this is not noticeable if the sequence is authentic, since the "Boss Battle"
// sequence begins with some silence
if (gPlayState != NULL &&
gPlayState->sceneNum == SCENE_BDAN_BOSS &&
gPlayState->sceneNum == SCENE_JABU_JABU_BOSS &&
playerIdx == SEQ_PLAYER_BGM_MAIN &&
seqId != NA_BGM_BOSS) {
+110 -110
View File
@@ -834,53 +834,53 @@ void TitleCard_InitPlaceName(PlayState* play, TitleCardContext* titleCtx, void*
SceneTableEntry* loadedScene = play->loadedScene;
// size_t size = loadedScene->titleFile.vromEnd - loadedScene->titleFile.vromStart;
switch (play->sceneNum) {
case SCENE_YDAN:
case SCENE_DEKU_TREE:
texture = gDekuTreeTitleCardENGTex;
break;
case SCENE_DDAN:
case SCENE_DODONGOS_CAVERN:
texture = gDodongosCavernTitleCardENGTex;
break;
case SCENE_BDAN:
case SCENE_JABU_JABU:
texture = gJabuJabuTitleCardENGTex;
break;
case SCENE_BMORI1:
case SCENE_FOREST_TEMPLE:
texture = gForestTempleTitleCardENGTex;
break;
case SCENE_HIDAN:
case SCENE_FIRE_TEMPLE:
texture = gFireTempleTitleCardENGTex;
break;
case SCENE_MIZUSIN:
case SCENE_WATER_TEMPLE:
texture = gWaterTempleTitleCardENGTex;
break;
case SCENE_JYASINZOU:
case SCENE_SPIRIT_TEMPLE:
texture = gSpiritTempleTitleCardENGTex;
break;
case SCENE_HAKADAN:
case SCENE_SHADOW_TEMPLE:
texture = gShadowTempleTitleCardENGTex;
break;
case SCENE_HAKADANCH:
case SCENE_BOTTOM_OF_THE_WELL:
texture = gBottomOfTheWellTitleCardENGTex;
break;
case SCENE_ICE_DOUKUTO:
case SCENE_ICE_CAVERN:
texture = gIceCavernTitleCardENGTex;
break;
case SCENE_MEN:
case SCENE_GERUDO_TRAINING_GROUND:
texture = gGERudoTrainingGroundTitleCardENGTex;
break;
case SCENE_GERUDOWAY:
case SCENE_THIEVES_HIDEOUT:
texture = gThievesHideoutTitleCardENGTex;
break;
case SCENE_GANON_TOU:
case SCENE_OUTSIDE_GANONS_CASTLE:
texture = gGanonsCastleTitleCardENGTex;
break;
case SCENE_GANONTIKA:
case SCENE_INSIDE_GANONS_CASTLE:
texture = gInsideGanonsCastleTitleCardENGTex;
break;
case SCENE_TAKARAYA:
case SCENE_TREASURE_BOX_SHOP:
texture = gTreasureBoxShopTitleCardENGTex;
break;
case SCENE_MARKET_ALLEY:
case SCENE_MARKET_ALLEY_N:
case SCENE_BACK_ALLEY_DAY:
case SCENE_BACK_ALLEY_NIGHT:
texture = gBackAlleyTitleCardENGTex;
break;
case SCENE_MARKET_DAY:
@@ -888,130 +888,130 @@ void TitleCard_InitPlaceName(PlayState* play, TitleCardContext* titleCtx, void*
case SCENE_MARKET_RUINS:
texture = gMarketTitleCardENGTex;
break;
case SCENE_SHOP1:
case SCENE_BAZAAR:
texture = gBazaarTitleCardENGTex;
break;
case SCENE_KOKIRI_SHOP:
texture = gKokiriShopTitleCardENGTex;
break;
case SCENE_GOLON:
case SCENE_GORON_SHOP:
texture = gGoronShopTitleCardENGTex;
break;
case SCENE_ZOORA:
case SCENE_ZORA_SHOP:
texture = gZoraShopTitleCardENGTex;
break;
case SCENE_NIGHT_SHOP:
case SCENE_BOMBCHU_SHOP:
texture = gBombchuShopTitleCardENGTex;
break;
case SCENE_DRAG:
case SCENE_MAHOUYA:
case SCENE_ALLEY_SHOP:
case SCENE_POTION_SHOP_KAKARIKO:
case SCENE_POTION_SHOP_GRANNY:
case SCENE_POTION_SHOP_MARKET:
texture = gPotionShopTitleCardENGTex;
break;
case SCENE_FACE_SHOP:
case SCENE_HAPPY_MASK_SHOP:
texture = gHappyMaskShopTitleCardENGTex;
break;
case SCENE_MALON_STABLE:
case SCENE_STABLE:
texture = gStableTitleCardENGTex;
break;
case SCENE_HYLIA_LABO:
case SCENE_LAKESIDE_LABORATORY:
texture = gLakesideLaboratoryTitleCardENGTex;
break;
case SCENE_HUT:
case SCENE_GRAVEKEEPERS_HUT:
texture = gGravekeepersHutTitleCardENGTex;
break;
case SCENE_DAIYOUSEI_IZUMI:
case SCENE_YOUSEI_IZUMI_YOKO:
case SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC:
case SCENE_GREAT_FAIRYS_FOUNTAIN_SPELLS:
texture = gGreatFairysFountainTitleCardENGTex;
break;
case SCENE_YOUSEI_IZUMI_TATE:
case SCENE_FAIRYS_FOUNTAIN:
texture = gFairysFountainTitleCardENGTex;
break;
case SCENE_HAKAANA_OUKE:
case SCENE_ROYAL_FAMILYS_TOMB:
texture = gRoyalFamilysTombTitleCardENGTex;
break;
case SCENE_SYATEKIJYOU:
case SCENE_SHOOTING_GALLERY:
texture = gShootingGalleryTitleCardENGTex;
break;
case SCENE_TOKINOMA:
case SCENE_TEMPLE_OF_TIME:
texture = gTempleOfTimeTitleCardENGTex;
break;
case SCENE_KENJYANOMA:
case SCENE_CHAMBER_OF_THE_SAGES:
texture = gChamberOfTheSagesTitleCardENGTex;
break;
case SCENE_HAIRAL_NIWA:
case SCENE_HAIRAL_NIWA_N:
case SCENE_NAKANIWA:
case SCENE_CASTLE_COURTYARD_GUARDS_DAY:
case SCENE_CASTLE_COURTYARD_GUARDS_NIGHT:
case SCENE_CASTLE_COURTYARD_ZELDA:
case SCENE_HAIRAL_NIWA2:
texture = gCastleCourtyardTitleCardENGTex;
break;
case SCENE_HAKASITARELAY:
case SCENE_WINDMILL_AND_DAMPES_GRAVE:
texture = gQuestionMarkTitleCardENGTex;
break;
case SCENE_TURIBORI:
case SCENE_FISHING_POND:
texture = gFishingPondTitleCardENGTex;
break;
case SCENE_BOWLING:
case SCENE_BOMBCHU_BOWLING_ALLEY:
texture = gBombchuBowlingAlleyCardENGTex;
break;
case SCENE_KINSUTA:
case SCENE_HOUSE_OF_SKULLTULA:
texture = gHouseOfSkulltulaTitleCardENGTex;
break;
case SCENE_SPOT00:
case SCENE_HYRULE_FIELD:
texture = gHyruleFieldTitleCardENGTex;
break;
case SCENE_SPOT01:
case SCENE_KAKARIKO_VILLAGE:
texture = gKakarikoVillageTitleCardENGTex;
break;
case SCENE_SPOT02:
case SCENE_GRAVEYARD:
texture = gGraveyardTitleCardENGTex;
break;
case SCENE_SPOT03:
case SCENE_ZORAS_RIVER:
texture = gZorasRiverTitleCardENGTex;
break;
case SCENE_SPOT04:
case SCENE_KOKIRI_FOREST:
texture = gKokiriForestTitleCardENGTex;
break;
case SCENE_SPOT05:
case SCENE_SACRED_FOREST_MEADOW:
texture = gSacredForestMeadowTitleCardENGTex;
break;
case SCENE_SPOT06:
case SCENE_LAKE_HYLIA:
texture = gLakeHyliaTitleCardENGTex;
break;
case SCENE_SPOT07:
case SCENE_ZORAS_DOMAIN:
texture = gZorasDomainTitleCardENGTex;
break;
case SCENE_SPOT08:
case SCENE_ZORAS_FOUNTAIN:
texture = gZorasFountainTitleCardENGTex;
break;
case SCENE_SPOT09:
case SCENE_GERUDO_VALLEY:
texture = gGERudoValleyTitleCardENGTex;
break;
case SCENE_SPOT10:
case SCENE_LOST_WOODS:
texture = gLostWoodsTitleCardENGTex;
break;
case SCENE_SPOT11:
case SCENE_DESERT_COLOSSUS:
texture = gDesertColossusTitleCardENGTex;
break;
case SCENE_SPOT12:
case SCENE_GERUDOS_FORTRESS:
texture = gGERudosFortressTitleCardENGTex;
break;
case SCENE_SPOT13:
case SCENE_HAUNTED_WASTELAND:
texture = gHauntedWastelandTitleCardENGTex;
break;
case SCENE_SPOT15:
case SCENE_HYRULE_CASTLE:
texture = gHyruleCastleTitleCardENGTex;
break;
case SCENE_SPOT16:
case SCENE_DEATH_MOUNTAIN_TRAIL:
texture = gDeathMountainTrailTitleCardENGTex;
break;
case SCENE_SPOT17:
case SCENE_DEATH_MOUNTAIN_CRATER:
texture = gDeathMountainCraterTitleCardENGTex;
break;
case SCENE_SPOT18:
case SCENE_GORON_CITY:
texture = gGoronCityTitleCardENGTex;
break;
case SCENE_SPOT20:
case SCENE_LON_LON_RANCH:
texture = gLonLonRanchTitleCardENGTex;
break;
default:
@@ -1200,7 +1200,7 @@ void Actor_Init(Actor* actor, PlayState* play) {
if (CVarGetInteger("gDisableDrawDistance", 0) != 0 && actor->id != ACTOR_EN_TORCH2 && actor->id != ACTOR_EN_BLKOBJ // Extra check for Dark Link and his room
&& actor->id != ACTOR_EN_HORSE // Check for Epona, else if we call her she will spawn at the other side of the map + we can hear her during the title screen sequence
&& actor->id != ACTOR_EN_HORSE_GANON && actor->id != ACTOR_EN_HORSE_ZELDA // check for Zelda's and Ganondorf's horses that will always be scene during cinematic whith camera paning
&& (play->sceneNum != SCENE_DDAN && actor->id != ACTOR_EN_ZF)) { // Check for DC and Lizalfos for the case where the miniboss music would still play under certains conditions and changing room
&& (play->sceneNum != SCENE_DODONGOS_CAVERN && actor->id != ACTOR_EN_ZF)) { // Check for DC and Lizalfos for the case where the miniboss music would still play under certains conditions and changing room
actor->uncullZoneForward = 32767.0f;
actor->uncullZoneScale = 32767.0f;
actor->uncullZoneDownward = 32767.0f;
@@ -2843,7 +2843,7 @@ s32 func_800314D4(PlayState* play, Actor* actor, Vec3f* arg2, f32 arg3) {
if (CVarGetInteger("gDisableDrawDistance", 0) != 0 && actor->id != ACTOR_EN_TORCH2 && actor->id != ACTOR_EN_BLKOBJ // Extra check for Dark Link and his room
&& actor->id != ACTOR_EN_HORSE // Check for Epona, else if we call her she will spawn at the other side of the map + we can hear her during the title screen sequence
&& actor->id != ACTOR_EN_HORSE_GANON && actor->id != ACTOR_EN_HORSE_ZELDA // check for Zelda's and Ganondorf's horses that will always be scene during cinematic whith camera paning
&& (play->sceneNum != SCENE_DDAN && actor->id != ACTOR_EN_ZF)) { // Check for DC and Lizalfos for the case where the miniboss music would still play under certains conditions and changing room
&& (play->sceneNum != SCENE_DODONGOS_CAVERN && actor->id != ACTOR_EN_ZF)) { // Check for DC and Lizalfos for the case where the miniboss music would still play under certains conditions and changing room
return true;
}
@@ -3740,69 +3740,69 @@ void Actor_SetTextWithPrefix(PlayState* play, Actor* actor, s16 baseTextId) {
s16 prefix;
switch (play->sceneNum) {
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:
@@ -5096,7 +5096,7 @@ u32 func_80035BFC(PlayState* play, s16 arg1) {
}
break;
case 16:
if (play->sceneNum == SCENE_SPOT15) {
if (play->sceneNum == SCENE_HYRULE_CASTLE) {
retTextId = 0x7002;
} else if (Flags_GetInfTable(INFTABLE_6A)) {
retTextId = 0x7004;
+13 -10
View File
@@ -1441,9 +1441,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;
@@ -1465,9 +1467,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;
@@ -1504,8 +1507,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;
@@ -1523,7 +1526,7 @@ void BgCheck_Allocate(CollisionContext* colCtx, PlayState* play, CollisionHeader
osSyncPrintf("/*---------------- BGCheck バッファーメモリサイズ -------------*/\n");
if (YREG(15) == 0x10 || YREG(15) == 0x20 || YREG(15) == 0x30 || YREG(15) == 0x40) {
if (play->sceneNum == SCENE_MALON_STABLE) {
if (play->sceneNum == SCENE_STABLE) {
// "/* BGCheck LonLon Size %dbyte */\n"
osSyncPrintf("/* BGCheck LonLonサイズ %dbyte */\n", 0x3520);
colCtx->memSize = 0x3520;
@@ -4208,7 +4211,7 @@ f32 zdWaterBoxMaxZ = -967.0f;
*/
s32 WaterBox_GetSurface1(PlayState* play, CollisionContext* colCtx, f32 x, f32 z, f32* ySurface,
WaterBox** outWaterBox) {
if (play->sceneNum == SCENE_SPOT07) {
if (play->sceneNum == SCENE_ZORAS_DOMAIN) {
if (zdWaterBoxMinX < x && x < zdWaterBoxMaxX && zdWaterBoxMinY < *ySurface && *ySurface < zdWaterBoxMaxY &&
zdWaterBoxMinZ < z && z < zdWaterBoxMaxZ) {
*outWaterBox = &zdWaterBox;
+4 -4
View File
@@ -6631,7 +6631,7 @@ s32 Camera_Special7(Camera* camera) {
yOffset = Player_GetHeight(camera->player);
if (camera->animState == 0) {
if (camera->play->sceneNum == SCENE_JYASINZOU) {
if (camera->play->sceneNum == SCENE_SPIRIT_TEMPLE) {
// Spirit Temple
spec7->idx = 3;
} else if (playerPosRot->pos.x < 1500.0f) {
@@ -7326,7 +7326,7 @@ s32 Camera_UpdateWater(Camera* camera) {
if (camera->waterDistortionTimer > 0) {
camera->waterDistortionTimer--;
camera->distortionFlags |= DISTORTION_UNDERWATER_STRONG;
} else if (camera->play->sceneNum == SCENE_TURIBORI) {
} else if (camera->play->sceneNum == SCENE_FISHING_POND) {
camera->distortionFlags |= DISTORTION_UNDERWATER_FISHING;
} else {
camera->distortionFlags |= DISTORTION_UNDERWATER_WEAK;
@@ -7677,7 +7677,7 @@ Vec3s Camera_Update(Camera* camera) {
Camera_UpdateDistortion(camera);
if ((camera->play->sceneNum == SCENE_SPOT00) && (camera->fov < 59.0f)) {
if ((camera->play->sceneNum == SCENE_HYRULE_FIELD) && (camera->fov < 59.0f)) {
View_SetScale(&camera->play->view, 0.79f);
} else {
View_SetScale(&camera->play->view, 1.0f);
@@ -7921,7 +7921,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->sceneNum == SCENE_SPOT05)) {
(camera->play->sceneNum == SCENE_SACRED_FOREST_MEADOW)) {
camera->unk_14A |= 0x10;
return -5;
}
+5 -5
View File
@@ -501,7 +501,7 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB
bool debugCsSkip = (CHECK_BTN_ALL(play->state.input[0].press.button, BTN_START) &&
(gSaveContext.fileNum != 0xFEDC) && CVarGetInteger("gDebugEnabled", 0));
if ((gSaveContext.gameMode != 0) && (gSaveContext.gameMode != 3) && (play->sceneNum != SCENE_SPOT00) &&
if ((gSaveContext.gameMode != 0) && (gSaveContext.gameMode != 3) && (play->sceneNum != 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) ||
@@ -1322,7 +1322,7 @@ void Cutscene_Command_TransitionFX(PlayState* play, CutsceneContext* csCtx, CsCm
(gSaveContext.entranceIndex == 0x0371))) {
Audio_PlaySoundGeneral(NA_SE_EV_WHITE_OUT, &D_801333D4, 4, &D_801333E0, &D_801333E0,
&D_801333E8);
} else if ((temp == 0.0f) && (play->sceneNum == SCENE_GANONTIKA)) {
} else if ((temp == 0.0f) && (play->sceneNum == SCENE_INSIDE_GANONS_CASTLE)) {
func_800788CC(NA_SE_EV_WHITE_OUT);
}
} else {
@@ -2174,16 +2174,16 @@ void Cutscene_HandleConditionalTriggers(PlayState* play) {
}
} else if (CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT) && CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW) &&
LINK_IS_ADULT && !Flags_GetEventChkInf(EVENTCHKINF_RETURNED_TO_TEMPLE_OF_TIME_WITH_ALL_MEDALLIONS) &&
(gEntranceTable[((void)0, gSaveContext.entranceIndex)].scene == SCENE_TOKINOMA)) {
(gEntranceTable[((void)0, gSaveContext.entranceIndex)].scene == SCENE_TEMPLE_OF_TIME)) {
if (!gSaveContext.n64ddFlag) {
Flags_SetEventChkInf(EVENTCHKINF_RETURNED_TO_TEMPLE_OF_TIME_WITH_ALL_MEDALLIONS);
gSaveContext.entranceIndex = 0x0053;
gSaveContext.cutsceneIndex = 0xFFF8;
}
} else if ((!Flags_GetEventChkInf(EVENTCHKINF_WATCHED_GANONS_CASTLE_COLLAPSE_CAUGHT_BY_GERUDO) &&
gEntranceTable[((void)0, gSaveContext.entranceIndex)].scene == SCENE_GANON_DEMO) ||
gEntranceTable[((void)0, gSaveContext.entranceIndex)].scene == SCENE_GANON_BOSS) ||
(bShouldTowerRandoSkip &&
gEntranceTable[((void)0, gSaveContext.entranceIndex)].scene == SCENE_GANON_FINAL)) {
gEntranceTable[((void)0, gSaveContext.entranceIndex)].scene == SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR)) {
Flags_SetEventChkInf(EVENTCHKINF_WATCHED_GANONS_CASTLE_COLLAPSE_CAUGHT_BY_GERUDO);
gSaveContext.entranceIndex = 0x0517;
// In rando, skip the cutscene for the tower falling down after the escape.
+25 -21
View File
@@ -3,7 +3,7 @@
#include <assert.h>
s32 func_8006CFC0(s32 scene) {
s32 validScenes[] = { SCENE_SPOT00, SCENE_SPOT06, SCENE_SPOT09, SCENE_SPOT12, SCENE_SPOT20 };
s32 validScenes[] = { SCENE_HYRULE_FIELD, SCENE_LAKE_HYLIA, SCENE_GERUDO_VALLEY, SCENE_GERUDOS_FORTRESS, SCENE_LON_LON_RANCH };
s32 i;
for (i = 0; i < ARRAY_COUNT(validScenes); i++) {
@@ -16,7 +16,7 @@ s32 func_8006CFC0(s32 scene) {
}
void func_8006D074(PlayState* play) {
gSaveContext.horseData.scene = SCENE_SPOT00;
gSaveContext.horseData.scene = SCENE_HYRULE_FIELD;
gSaveContext.horseData.pos.x = -1840;
gSaveContext.horseData.pos.y = 72;
gSaveContext.horseData.pos.z = 5497;
@@ -24,8 +24,8 @@ void func_8006D074(PlayState* play) {
}
void func_8006D0AC(PlayState* play) {
if (gSaveContext.horseData.scene == SCENE_SPOT06) {
gSaveContext.horseData.scene = SCENE_SPOT06;
if (gSaveContext.horseData.scene == SCENE_LAKE_HYLIA) {
gSaveContext.horseData.scene = SCENE_LAKE_HYLIA;
gSaveContext.horseData.pos.x = -2065;
gSaveContext.horseData.pos.y = -863;
gSaveContext.horseData.pos.z = 1839;
@@ -43,9 +43,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,10 +59,10 @@ void func_8006D0EC(PlayState* play, Player* player) {
func_8002DE74(play, player);
gSaveContext.horseData.scene = play->sceneNum;
if (play->sceneNum == SCENE_SPOT12) {
if (play->sceneNum == SCENE_GERUDOS_FORTRESS) {
player->rideActor->room = -1;
}
} else if ((play->sceneNum == SCENE_SPOT12) && (gSaveContext.minigameState == 3)) {
} else if ((play->sceneNum == SCENE_GERUDOS_FORTRESS) && (gSaveContext.minigameState == 3)) {
Actor* horseActor;
gSaveContext.minigameState = 0;
horseActor =
@@ -85,7 +85,7 @@ void func_8006D0EC(PlayState* play, Player* player) {
gSaveContext.horseData.pos.x, gSaveContext.horseData.pos.y,
gSaveContext.horseData.pos.z, 0, gSaveContext.horseData.angle, 0, 1, true);
assert(horseActor != NULL);
if (play->sceneNum == SCENE_SPOT12) {
if (play->sceneNum == SCENE_GERUDOS_FORTRESS) {
horseActor->room = -1;
}
} else {
@@ -95,7 +95,7 @@ void func_8006D0EC(PlayState* play, Player* player) {
osSyncPrintf(VT_RST);
func_8006D074(play);
}
} else if ((play->sceneNum == SCENE_SPOT20) && !Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) && (DREG(1) == 0)) {
} else if ((play->sceneNum == 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, true);
assert(horseActor != NULL);
@@ -107,7 +107,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, true);
assert(horseActor != NULL);
if (play->sceneNum == SCENE_SPOT12) {
if (play->sceneNum == SCENE_GERUDOS_FORTRESS) {
horseActor->room = -1;
}
@@ -115,7 +115,7 @@ void func_8006D0EC(PlayState* play, Player* player) {
}
}
} else if (!Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED)) {
if ((DREG(1) == 0) && (play->sceneNum == SCENE_SOUKO) && !IS_DAY) {
if ((DREG(1) == 0) && (play->sceneNum == SCENE_LON_LON_BUILDINGS) && !IS_DAY) {
Actor_Spawn(&play->actorCtx, play, ACTOR_EN_HORSE, 0.0f, 0.0f, -60.0f, 0, 0x7360, 0, 1, true);
}
}
@@ -161,7 +161,7 @@ void func_8006D684(PlayState* play, Player* player) {
Actor_MountHorse(play, player, player->rideActor);
func_8002DE74(play, player);
gSaveContext.horseData.scene = play->sceneNum;
} else if ((play->sceneNum == SCENE_SPOT20) && ((gSaveContext.eventInf[0] & 0xF) == 6) &&
} else if ((play->sceneNum == SCENE_LON_LON_RANCH) && ((gSaveContext.eventInf[0] & 0xF) == 6) &&
(Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) == 0) && (DREG(1) == 0)) {
player->rideActor =
Actor_Spawn(&play->actorCtx, play, ACTOR_EN_HORSE, 894.0f, 0.0f, -2084.0f, 0, -0x7FFF, 0, 5, true);
@@ -171,22 +171,26 @@ void func_8006D684(PlayState* play, Player* player) {
func_8002DE74(play, player);
gSaveContext.horseData.scene = play->sceneNum;
if (play->sceneNum == SCENE_SPOT12) {
if (play->sceneNum == SCENE_GERUDOS_FORTRESS) {
player->rideActor->room = -1;
}
} else {
static struct_8011F9B8 D_8011F9B8[] = {
{ 93, 0xFFF0, 0x0E10, 0x0585, 0x0168, 0x8001, 8 }, { 99, 0xFFF0, 0xFF06, 0x0001, 0xF9D4, 0x4000, 6 },
{ 99, 0xFFF1, 0x0000, 0x0000, 0x0000, 0x0000, 5 }, { 99, 0xFFF5, 0x0000, 0x0000, 0x0000, 0x0000, 7 },
{ 81, 0xFFF3, 0xF46F, 0x0139, 0x1E14, 0x0000, 7 }, { 81, 0xFFF4, 0xF894, 0x0139, 0x1B67, 0x0000, 7 },
{ 81, 0xFFF5, 0xF035, 0x0139, 0x1B15, 0x0000, 7 }, { 81, 0xFFF6, 0xF035, 0x0139, 0x1B15, 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->sceneNum == D_8011F9B8[i].scene) &&
(((void)0, gSaveContext.cutsceneIndex) == D_8011F9B8[i].cutsceneIndex)) {
if (D_8011F9B8[i].type == 7) {
if ((play->sceneNum == 99) && (((void)0, gSaveContext.cutsceneIndex) == 0xFFF1)) {
if ((play->sceneNum == 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;
@@ -252,7 +256,7 @@ void func_8006DC68(PlayState* play, Player* player) {
((gSaveContext.entranceIndex == 0x028A || gSaveContext.entranceIndex == 0x028E ||
gSaveContext.entranceIndex == 0x0292 || gSaveContext.entranceIndex == 0x0476) &&
(gSaveContext.respawnFlag == 0)) ||
((play->sceneNum == SCENE_SPOT20) && ((gSaveContext.eventInf[0] & 0xF) == 6) &&
((play->sceneNum == SCENE_LON_LON_RANCH) && ((gSaveContext.eventInf[0] & 0xF) == 6) &&
!Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) && (DREG(1) == 0))) {
func_8006D684(play, player);
} else {
+1 -1
View File
@@ -16,7 +16,7 @@ void KaleidoSetup_Update(PlayState* play) {
play->sceneLoadFlag == 0 && play->transitionMode == 0 && gSaveContext.cutsceneIndex < 0xFFF0 &&
gSaveContext.nextCutsceneIndex < 0xFFF0 && !Play_InCsMode(play) &&
play->shootingGalleryStatus <= 1 && gSaveContext.magicState != 8 && gSaveContext.magicState != 9 &&
(play->sceneNum != SCENE_BOWLING || !Flags_GetSwitch(play, 0x38))) {
(play->sceneNum != SCENE_BOMBCHU_BOWLING_ALLEY || !Flags_GetSwitch(play, 0x38))) {
u8 easyPauseBufferEnabled = CVarGetInteger("gCheatEasyPauseBufferEnabled", 0);
u8 easyPauseBufferTimer = CVarGetInteger("gCheatEasyPauseBufferTimer", 0);
+1 -1
View File
@@ -2337,7 +2337,7 @@ void Environment_DrawSandstorm(PlayState* play, u8 sandstormState) {
switch (sandstormState) {
case 3:
if ((play->sceneNum == SCENE_SPOT13) && (play->roomCtx.curRoom.num == 0)) {
if ((play->sceneNum == SCENE_HAUNTED_WASTELAND) && (play->roomCtx.curRoom.num == 0)) {
envA1 = 0;
primA1 = (play->envCtx.sandstormEnvA > 128) ? 255 : play->envCtx.sandstormEnvA >> 1;
} else {
+181 -181
View File
@@ -62,24 +62,24 @@ void Map_SetFloorPalettesData(PlayState* play, s16 floor) {
}
switch (play->sceneNum) {
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])) {
@@ -367,42 +367,42 @@ void Map_InitData(PlayState* play, s16 room) {
s16 extendedMapIndex;
switch (play->sceneNum) {
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->sceneNum == SCENE_SPOT02) {
if (play->sceneNum == SCENE_GRAVEYARD) {
if (CHECK_QUEST_ITEM(QUEST_SONG_NOCTURNE)) {
extendedMapIndex = 0x14;
}
} else if (play->sceneNum == SCENE_SPOT06) {
} else if (play->sceneNum == SCENE_LAKE_HYLIA) {
if ((LINK_AGE_IN_YEARS == YEARS_ADULT) &&
((!gSaveContext.n64ddFlag && !CHECK_QUEST_ITEM(QUEST_MEDALLION_WATER)) ||
(gSaveContext.n64ddFlag && !Flags_GetRandomizerInf(RAND_INF_DUNGEONS_DONE_WATER_TEMPLE)))) {
extendedMapIndex = 0x15;
}
} else if (play->sceneNum == SCENE_SPOT09) {
} else if (play->sceneNum == SCENE_GERUDO_VALLEY) {
if ((LINK_AGE_IN_YEARS == YEARS_ADULT) && !GET_EVENTCHKINF_CARPENTERS_FREE_ALL()) {
extendedMapIndex = 0x16;
}
} else if (play->sceneNum == SCENE_SPOT12) {
} else if (play->sceneNum == SCENE_GERUDOS_FORTRESS) {
if ((!gSaveContext.n64ddFlag && GET_EVENTCHKINF_CARPENTERS_FREE_ALL()) ||
(gSaveContext.n64ddFlag && CHECK_QUEST_ITEM(QUEST_GERUDO_CARD))) {
extendedMapIndex = 0x17;
@@ -423,24 +423,24 @@ void Map_InitData(PlayState* play, s16 room) {
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,
@@ -471,24 +471,24 @@ void Map_InitRoomData(PlayState* play, s16 room) {
if (room >= 0) {
switch (play->sceneNum) {
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;
@@ -531,27 +531,27 @@ void Map_Init(PlayState* play) {
assert(interfaceCtx->mapSegment != NULL);
switch (play->sceneNum) {
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->sceneNum - 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->sceneNum - 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];
@@ -561,35 +561,35 @@ 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:
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->sceneNum >= SCENE_YDAN_BOSS) ? play->sceneNum - SCENE_YDAN_BOSS : play->sceneNum;
(play->sceneNum >= SCENE_DEKU_TREE_BOSS) ? play->sceneNum - SCENE_DEKU_TREE_BOSS : play->sceneNum;
R_MAP_INDEX = gSaveContext.mapIndex = mapIndex;
if ((play->sceneNum <= SCENE_ICE_DOUKUTO) || (play->sceneNum >= SCENE_YDAN_BOSS)) {
if ((play->sceneNum <= SCENE_ICE_CAVERN) || (play->sceneNum >= 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];
@@ -638,10 +638,10 @@ void Minimap_DrawCompassIcons(PlayState* play) {
s16 mapWidth = 0;
s16 mapStartPosX = 0;
if (play->sceneNum >= SCENE_SPOT00 && play->sceneNum <= SCENE_GANON_TOU) { // Overworld
if (play->sceneNum >= SCENE_HYRULE_FIELD && play->sceneNum <= SCENE_OUTSIDE_GANONS_CASTLE) { // Overworld
mapStartPosX = R_OW_MINIMAP_X;
mapWidth = gMapData->owMinimapWidth[R_MAP_INDEX];
} else if (play->sceneNum >= SCENE_YDAN && play->sceneNum <= SCENE_ICE_DOUKUTO) { // Dungeons
} else if (play->sceneNum >= SCENE_DEKU_TREE && play->sceneNum <= SCENE_ICE_CAVERN) { // Dungeons
mapStartPosX = R_DGN_MINIMAP_X;
mapWidth = 96;
}
@@ -752,16 +752,16 @@ void Minimap_Draw(PlayState* play) {
}
switch (play->sceneNum) {
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 && CVarGetInteger("gMinimapPosType", 0) != 4) { // Not Hidden
Gfx_SetupDL_39Overlay(play->state.gfxCtx);
gDPSetCombineLERP(OVERLAY_DISP++, 1, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, 1, 0, PRIMITIVE, 0,
@@ -820,26 +820,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 && CVarGetInteger("gMinimapPosType", 0) != 4) { // Not Hidden
Gfx_SetupDL_39Overlay(play->state.gfxCtx);
@@ -882,8 +882,8 @@ void Minimap_Draw(PlayState* play) {
s16 iconSize = 8;
if (((play->sceneNum != SCENE_SPOT01) && (play->sceneNum != SCENE_SPOT04) &&
(play->sceneNum != SCENE_SPOT08)) ||
if (((play->sceneNum != SCENE_KAKARIKO_VILLAGE) && (play->sceneNum != SCENE_KOKIRI_FOREST) &&
(play->sceneNum != SCENE_ZORAS_FOUNTAIN)) ||
(LINK_AGE_IN_YEARS != YEARS_ADULT)) {
s16 origX = gMapData->owEntranceIconPosX[sEntranceIconMapIndex];
@@ -952,7 +952,7 @@ void Minimap_Draw(PlayState* play) {
}
// Ice Cavern entrance icon
if ((play->sceneNum == SCENE_SPOT08) && ((gSaveContext.infTable[26] & gBitFlags[9]) ||
if ((play->sceneNum == SCENE_ZORAS_FOUNTAIN) && ((gSaveContext.infTable[26] & gBitFlags[9]) ||
CVarGetInteger("gAlwaysShowDungeonMinimapIcon", 0))) {
gDPLoadTextureBlock(OVERLAY_DISP++, gMapDungeonEntranceIconTex, G_IM_FMT_RGBA, G_IM_SIZ_16b, iconSize,
iconSize, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK,
@@ -1000,16 +1000,16 @@ void Map_Update(PlayState* play) {
if ((play->pauseCtx.state == 0) && (play->pauseCtx.debugState == 0)) {
switch (play->sceneNum) {
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;
@@ -1052,17 +1052,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->sceneNum - SCENE_YDAN_BOSS];
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->sceneNum - SCENE_DEKU_TREE_BOSS];
R_MAP_TEX_INDEX = R_MAP_TEX_INDEX_BASE +
gMapData->floorTexIndexOffset[play->sceneNum - SCENE_YDAN_BOSS][VREG(30)];
gMapData->floorTexIndexOffset[play->sceneNum - SCENE_DEKU_TREE_BOSS][VREG(30)];
break;
}
}
+19 -19
View File
@@ -150,10 +150,10 @@ void MapMark_DrawForDungeon(PlayState* play) {
rectTop = (markPoint->y + Y_Margins_Minimap_ic + 140 + CVarGetInteger("gMinimapPosY", 0));
if (CVarGetInteger("gMinimapPosType", 0) == 1) {//Anchor Left
if (CVarGetInteger("gMinimapUseMargins", 0) != 0) {X_Margins_Minimap_ic = Left_MC_Margin;};
if (play->sceneNum == SCENE_YDAN || play->sceneNum == SCENE_DDAN || play->sceneNum == SCENE_BDAN ||
play->sceneNum == SCENE_BMORI1 || play->sceneNum == SCENE_HIDAN || play->sceneNum == SCENE_MIZUSIN ||
play->sceneNum == SCENE_JYASINZOU || play->sceneNum == SCENE_HAKADAN || play->sceneNum == SCENE_HAKADANCH ||
play->sceneNum == SCENE_ICE_DOUKUTO) {
if (play->sceneNum == SCENE_DEKU_TREE || play->sceneNum == SCENE_DODONGOS_CAVERN || play->sceneNum == SCENE_JABU_JABU ||
play->sceneNum == SCENE_FOREST_TEMPLE || play->sceneNum == SCENE_FIRE_TEMPLE || play->sceneNum == SCENE_WATER_TEMPLE ||
play->sceneNum == SCENE_SPIRIT_TEMPLE || play->sceneNum == SCENE_SHADOW_TEMPLE || play->sceneNum == SCENE_BOTTOM_OF_THE_WELL ||
play->sceneNum == SCENE_ICE_CAVERN) {
rectLeft = OTRGetRectDimensionFromLeftEdge(markPointX+CVarGetInteger("gMinimapPosX", 0)+204+X_Margins_Minimap_ic);
} else {
rectLeft = OTRGetRectDimensionFromLeftEdge(markPointX+CVarGetInteger("gMinimapPosX", 0)+204+X_Margins_Minimap_ic);
@@ -192,21 +192,21 @@ void MapMark_DrawForDungeon(PlayState* play) {
void MapMark_Draw(PlayState* play) {
switch (play->sceneNum) {
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;
}
+2 -2
View File
@@ -3153,7 +3153,7 @@ void Message_Update(PlayState* play) {
if (D_8014B2F4 >= 4) {
var = true;
}
} else if (YREG(15) != 0 || play->sceneNum == SCENE_HAIRAL_NIWA) {
} else if (YREG(15) != 0 || play->sceneNum == SCENE_CASTLE_COURTYARD_GUARDS_DAY) {
var = true;
} else if (D_8014B2F4 >= 4 || msgCtx->talkActor == NULL) {
var = true;
@@ -3180,7 +3180,7 @@ void Message_Update(PlayState* play) {
var = msgCtx->textBoxType;
if (!msgCtx->textBoxPos) { // variable position
if (YREG(15) != 0 || play->sceneNum == SCENE_HAIRAL_NIWA) {
if (YREG(15) != 0 || play->sceneNum == SCENE_CASTLE_COURTYARD_GUARDS_DAY) {
if (averageY < XREG(92)) {
R_TEXTBOX_Y_TARGET = sTextboxLowerYPositions[var];
} else {
+181 -181
View File
@@ -43,106 +43,106 @@ typedef struct {
} RestrictionFlags;
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 },
};
@@ -537,26 +537,26 @@ void func_80082850(PlayState* play, s16 maxAlpha) {
}
switch (play->sceneNum) {
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 = alpha;
} else {
@@ -821,11 +821,11 @@ void func_80083108(PlayState* play) {
s16 sp28 = 0;
if ((gSaveContext.cutsceneIndex < 0xFFF0) ||
((play->sceneNum == SCENE_SPOT20) && (gSaveContext.cutsceneIndex == 0xFFF0))) {
((play->sceneNum == SCENE_LON_LON_RANCH) && (gSaveContext.cutsceneIndex == 0xFFF0))) {
gSaveContext.unk_13E7 = 0;
if ((player->stateFlags1 & 0x00800000) || (play->shootingGalleryStatus > 1) ||
((play->sceneNum == SCENE_BOWLING) && Flags_GetSwitch(play, 0x38))) {
((play->sceneNum == SCENE_BOMBCHU_BOWLING_ALLEY) && Flags_GetSwitch(play, 0x38))) {
if (gSaveContext.equips.buttonItems[0] != ITEM_NONE) {
gSaveContext.unk_13E7 = 1;
@@ -842,7 +842,7 @@ void func_80083108(PlayState* play) {
(gSaveContext.equips.buttonItems[0] != ITEM_NONE)) {
gSaveContext.buttonStatus[0] = gSaveContext.equips.buttonItems[0];
if ((play->sceneNum == SCENE_BOWLING) && Flags_GetSwitch(play, 0x38)) {
if ((play->sceneNum == SCENE_BOMBCHU_BOWLING_ALLEY) && Flags_GetSwitch(play, 0x38)) {
gSaveContext.equips.buttonItems[0] = ITEM_BOMBCHU;
Interface_LoadItemIcon1(play, 0);
} else {
@@ -875,7 +875,7 @@ void func_80083108(PlayState* play) {
Interface_ChangeAlpha(8);
} else if (play->shootingGalleryStatus > 1) {
Interface_ChangeAlpha(8);
} else if ((play->sceneNum == SCENE_BOWLING) && Flags_GetSwitch(play, 0x38)) {
} else if ((play->sceneNum == SCENE_BOMBCHU_BOWLING_ALLEY) && Flags_GetSwitch(play, 0x38)) {
Interface_ChangeAlpha(8);
} else if (player->stateFlags1 & 0x00800000) {
Interface_ChangeAlpha(12);
@@ -886,9 +886,9 @@ void func_80083108(PlayState* play) {
}
}
// Don't hide the HUD in the Chamber of Sages when in Boss Rush.
} else if (play->sceneNum == SCENE_KENJYANOMA && !gSaveContext.isBossRush) {
} else if (play->sceneNum == SCENE_CHAMBER_OF_THE_SAGES && !gSaveContext.isBossRush) {
Interface_ChangeAlpha(1);
} else if (play->sceneNum == SCENE_TURIBORI) {
} else if (play->sceneNum == SCENE_FISHING_POND) {
gSaveContext.unk_13E7 = 2;
if (play->interfaceCtx.unk_260 != 0) {
if (gSaveContext.equips.buttonItems[0] != ITEM_FISHING_POLE) {
@@ -1259,7 +1259,7 @@ void func_80083108(PlayState* play) {
(gSaveContext.equips.buttonItems[i] <= ITEM_BOOTS_HOVER)) && // (tunics/boots) on C-buttons
!((gSaveContext.equips.buttonItems[i] >= ITEM_WEIRD_EGG) &&
(gSaveContext.equips.buttonItems[i] <= ITEM_CLAIM_CHECK))) {
if ((play->sceneNum != SCENE_TAKARAYA) ||
if ((play->sceneNum != SCENE_TREASURE_BOX_SHOP) ||
(gSaveContext.equips.buttonItems[i] != ITEM_LENS)) {
if (gSaveContext.buttonStatus[BUTTON_STATUS_INDEX(i)] == BTN_ENABLED) {
sp28 = 1;
@@ -1360,7 +1360,7 @@ void Interface_SetSceneRestrictions(PlayState* play) {
interfaceCtx->restrictions.all);
osSyncPrintf(VT_RST);
if (CVarGetInteger("gBetterFW", 0)) {
if (currentScene == SCENE_MEN || currentScene == SCENE_GANONTIKA) {
if (currentScene == SCENE_GERUDO_TRAINING_GROUND || currentScene == SCENE_INSIDE_GANONS_CASTLE) {
interfaceCtx->restrictions.farores = 0;
}
}
@@ -2406,22 +2406,22 @@ u16 Randomizer_Item_Give(PlayState* play, GetItemEntry giEntry) {
switch (item) {
case RG_DEKU_TREE_MAP:
case RG_DEKU_TREE_COMPASS:
mapIndex = SCENE_YDAN;
mapIndex = SCENE_DEKU_TREE;
break;
case RG_DODONGOS_CAVERN_MAP:
case RG_DODONGOS_CAVERN_COMPASS:
mapIndex = SCENE_DDAN;
mapIndex = SCENE_DODONGOS_CAVERN;
break;
case RG_JABU_JABUS_BELLY_MAP:
case RG_JABU_JABUS_BELLY_COMPASS:
mapIndex = SCENE_BDAN;
mapIndex = SCENE_JABU_JABU;
break;
case RG_FOREST_TEMPLE_MAP:
case RG_FOREST_TEMPLE_COMPASS:
case RG_FOREST_TEMPLE_SMALL_KEY:
case RG_FOREST_TEMPLE_KEY_RING:
case RG_FOREST_TEMPLE_BOSS_KEY:
mapIndex = SCENE_BMORI1;
mapIndex = SCENE_FOREST_TEMPLE;
numOfKeysOnKeyring = FOREST_TEMPLE_SMALL_KEY_MAX;
break;
case RG_FIRE_TEMPLE_MAP:
@@ -2429,7 +2429,7 @@ u16 Randomizer_Item_Give(PlayState* play, GetItemEntry giEntry) {
case RG_FIRE_TEMPLE_SMALL_KEY:
case RG_FIRE_TEMPLE_KEY_RING:
case RG_FIRE_TEMPLE_BOSS_KEY:
mapIndex = SCENE_HIDAN;
mapIndex = SCENE_FIRE_TEMPLE;
numOfKeysOnKeyring = FIRE_TEMPLE_SMALL_KEY_MAX;
break;
case RG_WATER_TEMPLE_MAP:
@@ -2437,7 +2437,7 @@ u16 Randomizer_Item_Give(PlayState* play, GetItemEntry giEntry) {
case RG_WATER_TEMPLE_SMALL_KEY:
case RG_WATER_TEMPLE_KEY_RING:
case RG_WATER_TEMPLE_BOSS_KEY:
mapIndex = SCENE_MIZUSIN;
mapIndex = SCENE_WATER_TEMPLE;
numOfKeysOnKeyring = WATER_TEMPLE_SMALL_KEY_MAX;
break;
case RG_SPIRIT_TEMPLE_MAP:
@@ -2445,7 +2445,7 @@ u16 Randomizer_Item_Give(PlayState* play, GetItemEntry giEntry) {
case RG_SPIRIT_TEMPLE_SMALL_KEY:
case RG_SPIRIT_TEMPLE_KEY_RING:
case RG_SPIRIT_TEMPLE_BOSS_KEY:
mapIndex = SCENE_JYASINZOU;
mapIndex = SCENE_SPIRIT_TEMPLE;
numOfKeysOnKeyring = SPIRIT_TEMPLE_SMALL_KEY_MAX;
break;
case RG_SHADOW_TEMPLE_MAP:
@@ -2453,36 +2453,36 @@ u16 Randomizer_Item_Give(PlayState* play, GetItemEntry giEntry) {
case RG_SHADOW_TEMPLE_SMALL_KEY:
case RG_SHADOW_TEMPLE_KEY_RING:
case RG_SHADOW_TEMPLE_BOSS_KEY:
mapIndex = SCENE_HAKADAN;
mapIndex = SCENE_SHADOW_TEMPLE;
numOfKeysOnKeyring = SHADOW_TEMPLE_SMALL_KEY_MAX;
break;
case RG_BOTTOM_OF_THE_WELL_MAP:
case RG_BOTTOM_OF_THE_WELL_COMPASS:
case RG_BOTTOM_OF_THE_WELL_SMALL_KEY:
case RG_BOTTOM_OF_THE_WELL_KEY_RING:
mapIndex = SCENE_HAKADANCH;
mapIndex = SCENE_BOTTOM_OF_THE_WELL;
numOfKeysOnKeyring = BOTTOM_OF_THE_WELL_SMALL_KEY_MAX;
break;
case RG_ICE_CAVERN_MAP:
case RG_ICE_CAVERN_COMPASS:
mapIndex = SCENE_ICE_DOUKUTO;
mapIndex = SCENE_ICE_CAVERN;
break;
case RG_GANONS_CASTLE_BOSS_KEY:
mapIndex = SCENE_GANON;
mapIndex = SCENE_GANONS_TOWER;
break;
case RG_GERUDO_TRAINING_GROUNDS_SMALL_KEY:
case RG_GERUDO_TRAINING_GROUNDS_KEY_RING:
mapIndex = SCENE_MEN;
mapIndex = SCENE_GERUDO_TRAINING_GROUND;
numOfKeysOnKeyring = GERUDO_TRAINING_GROUNDS_SMALL_KEY_MAX;
break;
case RG_GERUDO_FORTRESS_SMALL_KEY:
case RG_GERUDO_FORTRESS_KEY_RING:
mapIndex = SCENE_GERUDOWAY;
mapIndex = SCENE_THIEVES_HIDEOUT;
numOfKeysOnKeyring = GERUDO_FORTRESS_SMALL_KEY_MAX;
break;
case RG_GANONS_CASTLE_SMALL_KEY:
case RG_GANONS_CASTLE_KEY_RING:
mapIndex = SCENE_GANONTIKA;
mapIndex = SCENE_INSIDE_GANONS_CASTLE;
numOfKeysOnKeyring = GANONS_CASTLE_SMALL_KEY_MAX;
break;
}
@@ -4751,7 +4751,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->sceneNum == SCENE_BOWLING) && Flags_GetSwitch(play, 0x38)) {
} else if ((button == 0) && (play->sceneNum == SCENE_BOMBCHU_BOWLING_ALLEY) && Flags_GetSwitch(play, 0x38)) {
ammo = play->bombchuBowlingStatus;
if (ammo < 0) {
ammo = 0;
@@ -5087,20 +5087,20 @@ void Interface_Draw(PlayState* play) {
}
switch (play->sceneNum) {
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) {
s16 X_Margins_SKC;
s16 Y_Margins_SKC;
@@ -5257,7 +5257,7 @@ void Interface_Draw(PlayState* play) {
}
if ((player->stateFlags1 & 0x00800000) || (play->shootingGalleryStatus > 1) ||
((play->sceneNum == SCENE_BOWLING) && Flags_GetSwitch(play, 0x38))) {
((play->sceneNum == SCENE_BOMBCHU_BOWLING_ALLEY) && Flags_GetSwitch(play, 0x38))) {
if (!fullUi) {
Interface_DrawItemIconTexture(play, gItemIcons[gSaveContext.equips.buttonItems[0]], 0);
@@ -5723,7 +5723,7 @@ void Interface_Draw(PlayState* play) {
!(player->stateFlags2 & 0x01000000) && (play->sceneLoadFlag == 0) &&
(play->transitionMode == 0) && !Play_InCsMode(play) && (gSaveContext.minigameState != 1) &&
(play->shootingGalleryStatus <= 1) &&
!((play->sceneNum == SCENE_BOWLING) && Flags_GetSwitch(play, 0x38))) {
!((play->sceneNum == SCENE_BOMBCHU_BOWLING_ALLEY) && Flags_GetSwitch(play, 0x38))) {
svar6 = 0;
switch (gSaveContext.timer1State) {
case 1:
@@ -5978,10 +5978,10 @@ void Interface_Draw(PlayState* play) {
if (gSaveContext.timer2Value <= 0) {
if (!Flags_GetSwitch(play, 0x37) ||
((play->sceneNum != SCENE_GANON_DEMO) &&
(play->sceneNum != SCENE_GANON_FINAL) &&
(play->sceneNum != SCENE_GANON_SONOGO) &&
(play->sceneNum != SCENE_GANONTIKA_SONOGO))) {
((play->sceneNum != SCENE_GANON_BOSS) &&
(play->sceneNum != SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR) &&
(play->sceneNum != SCENE_GANONS_TOWER_COLLAPSE_INTERIOR) &&
(play->sceneNum != SCENE_INSIDE_GANONS_CASTLE_COLLAPSE))) {
D_8015FFE6 = 40;
gSaveContext.timer2State = 5;
gSaveContext.cutsceneIndex = 0;
@@ -6270,9 +6270,9 @@ void Interface_Update(PlayState* play) {
if ((play->pauseCtx.state == 0) && (play->pauseCtx.debugState == 0)) {
if ((gSaveContext.minigameState == 1) || (gSaveContext.sceneSetupIndex < 4) ||
((play->sceneNum == SCENE_SPOT20) && (gSaveContext.sceneSetupIndex == 4))) {
((play->sceneNum == SCENE_LON_LON_RANCH) && (gSaveContext.sceneSetupIndex == 4))) {
if ((msgCtx->msgMode == MSGMODE_NONE) ||
((msgCtx->msgMode != MSGMODE_NONE) && (play->sceneNum == SCENE_BOWLING))) {
((msgCtx->msgMode != MSGMODE_NONE) && (play->sceneNum == SCENE_BOMBCHU_BOWLING_ALLEY))) {
if (play->gameOverCtx.state == GAMEOVER_INACTIVE) {
func_80083108(play);
}
@@ -6329,26 +6329,26 @@ void Interface_Update(PlayState* play) {
}
switch (play->sceneNum) {
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 = alpha1;
} else {
@@ -6616,7 +6616,7 @@ void Interface_Update(PlayState* play) {
play->unk_11DE9 = 1;
}
if (play->sceneNum == SCENE_SPOT13) {
if (play->sceneNum == SCENE_HAUNTED_WASTELAND) {
play->fadeTransition = 14;
gSaveContext.nextTransitionType = 14;
}
+7 -7
View File
@@ -425,7 +425,7 @@ void GivePlayerRandoRewardZeldaLightArrowsGift(PlayState* play, RandomizerCheck
}
if (meetsRequirements && LINK_IS_ADULT &&
(gEntranceTable[((void)0, gSaveContext.entranceIndex)].scene == SCENE_TOKINOMA) &&
(gEntranceTable[((void)0, gSaveContext.entranceIndex)].scene == SCENE_TEMPLE_OF_TIME) &&
!Flags_GetTreasure(play, 0x1E) && player != NULL && !Player_InBlockingCsMode(play, player) &&
play->sceneLoadFlag == 0) {
GetItemEntry getItem = Randomizer_GetItemFromKnownCheck(check, GI_ARROW_LIGHT);
@@ -558,7 +558,7 @@ void Play_Init(GameState* thisx) {
}
tempSetupIndex = gSaveContext.sceneSetupIndex;
if ((gEntranceTable[((void)0, gSaveContext.entranceIndex)].scene == SCENE_SPOT00) && !LINK_IS_ADULT &&
if ((gEntranceTable[((void)0, gSaveContext.entranceIndex)].scene == SCENE_HYRULE_FIELD) && !LINK_IS_ADULT &&
gSaveContext.sceneSetupIndex < 4) {
if (CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD) && CHECK_QUEST_ITEM(QUEST_GORON_RUBY) &&
CHECK_QUEST_ITEM(QUEST_ZORA_SAPPHIRE)) {
@@ -566,7 +566,7 @@ void Play_Init(GameState* thisx) {
} else {
gSaveContext.sceneSetupIndex = 0;
}
} else if ((gEntranceTable[((void)0, gSaveContext.entranceIndex)].scene == SCENE_SPOT04) && LINK_IS_ADULT &&
} else if ((gEntranceTable[((void)0, gSaveContext.entranceIndex)].scene == SCENE_KOKIRI_FOREST) && LINK_IS_ADULT &&
gSaveContext.sceneSetupIndex < 4) {
gSaveContext.sceneSetupIndex = (Flags_GetEventChkInf(EVENTCHKINF_USED_FOREST_TEMPLE_BLUE_WARP)) ? 3 : 2;
}
@@ -2212,7 +2212,7 @@ void Play_SetupRespawnPoint(PlayState* play, s32 respawnMode, s32 playerParams)
s32 entranceIndex;
s8 roomIndex;
if ((play->sceneNum != SCENE_YOUSEI_IZUMI_TATE) && (play->sceneNum != SCENE_KAKUSIANA)) {
if ((play->sceneNum != SCENE_FAIRYS_FOUNTAIN) && (play->sceneNum != SCENE_GROTTOS)) {
roomIndex = play->roomCtx.curRoom.num;
entranceIndex = gSaveContext.entranceIndex;
Play_SetRespawnData(play, respawnMode, entranceIndex, roomIndex, playerParams,
@@ -2233,8 +2233,8 @@ void Play_LoadToLastEntrance(PlayState* play) {
gSaveContext.respawnFlag = -1;
play->sceneLoadFlag = 0x14;
if ((play->sceneNum == SCENE_GANON_SONOGO) || (play->sceneNum == SCENE_GANON_FINAL) ||
(play->sceneNum == SCENE_GANONTIKA_SONOGO) || (play->sceneNum == SCENE_GANON_DEMO)) {
if ((play->sceneNum == SCENE_GANONS_TOWER_COLLAPSE_INTERIOR) || (play->sceneNum == SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR) ||
(play->sceneNum == SCENE_INSIDE_GANONS_CASTLE_COLLAPSE) || (play->sceneNum == SCENE_GANON_BOSS)) {
play->nextEntranceIndex = 0x043F;
Item_Give(play, ITEM_SWORD_MASTER);
} else if ((gSaveContext.entranceIndex == 0x028A) || (gSaveContext.entranceIndex == 0x028E) ||
@@ -2254,7 +2254,7 @@ void Play_TriggerRespawn(PlayState* play) {
s32 func_800C0CB8(PlayState* play) {
return (play->roomCtx.curRoom.meshHeader->base.type != 1) && (YREG(15) != 0x20) && (YREG(15) != 0x30) &&
(YREG(15) != 0x40) && (play->sceneNum != SCENE_HAIRAL_NIWA);
(YREG(15) != 0x40) && (play->sceneNum != SCENE_CASTLE_COURTYARD_GUARDS_DAY);
}
s32 FrameAdvance_IsEnabled(PlayState* play) {
+1 -1
View File
@@ -645,7 +645,7 @@ void func_80097534(PlayState* play, RoomContext* roomCtx) {
func_80031B14(play, &play->actorCtx); //kills all actors without room num set to -1
Actor_SpawnTransitionActors(play, &play->actorCtx);
Map_InitRoomData(play, roomCtx->curRoom.num);
if (!((play->sceneNum >= SCENE_SPOT00) && (play->sceneNum <= SCENE_SPOT20))) {
if (!((play->sceneNum >= SCENE_HYRULE_FIELD) && (play->sceneNum <= SCENE_LON_LON_RANCH))) {
Map_SavePlayerInitialInfo(play);
}
Audio_SetEnvReverb(play->roomCtx.curRoom.echo);
+8 -8
View File
@@ -38,19 +38,19 @@ void Object_InitBank(PlayState* play, ObjectContext* objectCtx) {
size_t spaceSize;
s32 i;
if (play2->sceneNum == SCENE_SPOT00) {
if (play2->sceneNum == SCENE_HYRULE_FIELD) {
spaceSize = 1024000;
} else if (play2->sceneNum == SCENE_GANON_DEMO) {
} else if (play2->sceneNum == SCENE_GANON_BOSS) {
if (gSaveContext.sceneSetupIndex != 4) {
spaceSize = 1177600;
} else {
spaceSize = 1024000;
}
} else if (play2->sceneNum == SCENE_JYASINBOSS) {
} else if (play2->sceneNum == SCENE_SPIRIT_TEMPLE_BOSS) {
spaceSize = 1075200;
} else if (play2->sceneNum == SCENE_KENJYANOMA) {
} else if (play2->sceneNum == SCENE_CHAMBER_OF_THE_SAGES) {
spaceSize = 1075200;
} else if (play2->sceneNum == SCENE_GANON_BOSS) {
} else if (play2->sceneNum == SCENE_GANONDORF_BOSS) {
spaceSize = 1075200;
} else {
spaceSize = 1024000;
@@ -450,14 +450,14 @@ void Scene_CommandMiscSettings(PlayState* play, SceneCmd* cmd) {
YREG(15) = cmd->miscSettings.cameraMovement;
gSaveContext.worldMapArea = cmd->miscSettings.area;
if ((play->sceneNum == SCENE_SHOP1) || (play->sceneNum == SCENE_SYATEKIJYOU)) {
if ((play->sceneNum == SCENE_BAZAAR) || (play->sceneNum == SCENE_SHOOTING_GALLERY)) {
if (LINK_AGE_IN_YEARS == YEARS_ADULT) {
gSaveContext.worldMapArea = 1;
}
}
if (((play->sceneNum >= SCENE_SPOT00) && (play->sceneNum <= SCENE_GANON_TOU)) ||
((play->sceneNum >= SCENE_ENTRA) && (play->sceneNum <= SCENE_SHRINE_R))) {
if (((play->sceneNum >= SCENE_HYRULE_FIELD) && (play->sceneNum <= SCENE_OUTSIDE_GANONS_CASTLE)) ||
((play->sceneNum >= SCENE_MARKET_ENTRANCE_DAY) && (play->sceneNum <= SCENE_TEMPLE_OF_TIME_EXTERIOR_RUINS))) {
if (gSaveContext.cutsceneIndex < 0xFFF0) {
gSaveContext.worldMapAreaData |= gBitFlags[gSaveContext.worldMapArea];
osSyncPrintf("000 area_arrival=%x (%d)\n", gSaveContext.worldMapAreaData,
+23 -122
View File
@@ -819,130 +819,31 @@ EntranceInfo gEntranceTable[] = {
// (u32)_##title##SegmentRomEnd, unk_10, config, unk_12, 0 \
// }
#define TITLED_SCENE(name, title, unk_10, config, unk_12) \
{ \
{0, 0, #name}, {0, 0, #title}, unk_10, config, unk_12, 0 \
}
//#define TITLED_SCENE(name, title, unk_10, config, unk_12) \
// { \
// {0, 0, #name}, {0, 0, #title}, unk_10, config, unk_12, 0 \
// }
//#define UNTITLED_SCENE(name, unk_10, config, unk_12) \
//{ (u32) _##name##SegmentRomStart, (u32)_##name##SegmentRomEnd, 0, 0, unk_10, config, unk_12, 0 }
#define UNTITLED_SCENE(name, unk_10, config, unk_12) \
{ { 0, 0, #name }, (u32)0, 0, 0, unk_10, config, unk_12, 0 }
//#define UNTITLED_SCENE(name, unk_10, config, unk_12) \
// { { 0, 0, #name }, (u32)0, 0, 0, unk_10, config, unk_12, 0 }
#define DEFINE_SCENE(name, title, _2, config, unk_10, unk_12) \
{ { 0, 0, #name }, {0, 0, #title}, unk_10, config, unk_12, 0 },
// Handle `none` as a special case for scenes without a title card
#define none ""
SceneTableEntry gSceneTable[] = {
TITLED_SCENE(ydan_scene, g_pn_06, 1, 19, 2),
TITLED_SCENE(ddan_scene, g_pn_08, 1, 20, 3),
TITLED_SCENE(bdan_scene, g_pn_07, 1, 21, 4),
TITLED_SCENE(Bmori1_scene, g_pn_01, 2, 22, 5),
TITLED_SCENE(HIDAN_scene, g_pn_03, 2, 18, 6),
TITLED_SCENE(MIZUsin_scene, g_pn_04, 1, 23, 7),
TITLED_SCENE(jyasinzou_scene, g_pn_05, 1, 25, 8),
TITLED_SCENE(HAKAdan_scene, g_pn_02, 2, 24, 9),
TITLED_SCENE(HAKAdanCH_scene, g_pn_54, 2, 24, 10),
TITLED_SCENE(ice_doukutu_scene, g_pn_10, 0, 37, 0),
UNTITLED_SCENE(ganon_scene, 2, 0, 0),
TITLED_SCENE(men_scene, g_pn_11, 0, 27, 0),
TITLED_SCENE(gerudoway_scene, g_pn_49, 0, 40, 0),
TITLED_SCENE(ganontika_scene, g_pn_09, 0, 26, 0),
UNTITLED_SCENE(ganon_sonogo_scene, 0, 51, 0),
UNTITLED_SCENE(ganontikasonogo_scene, 0, 52, 0),
TITLED_SCENE(takaraya_scene, g_pn_51, 0, 0, 0),
UNTITLED_SCENE(ydan_boss_scene, 0, 28, 0),
UNTITLED_SCENE(ddan_boss_scene, 0, 0, 0),
UNTITLED_SCENE(bdan_boss_scene, 0, 21, 0),
UNTITLED_SCENE(moribossroom_scene, 1, 0, 0),
UNTITLED_SCENE(FIRE_bs_scene, 0, 18, 0),
UNTITLED_SCENE(MIZUsin_bs_scene, 0, 29, 0),
UNTITLED_SCENE(jyasinboss_scene, 0, 0, 0),
UNTITLED_SCENE(HAKAdan_bs_scene, 0, 24, 0),
UNTITLED_SCENE(ganon_boss_scene, 0, 0, 0),
UNTITLED_SCENE(ganon_final_scene, 0, 38, 0),
UNTITLED_SCENE(entra_scene, 0, 0, 0),
UNTITLED_SCENE(entra_n_scene, 0, 0, 0),
UNTITLED_SCENE(enrui_scene, 0, 0, 0),
TITLED_SCENE(market_alley_scene, g_pn_18, 0, 0, 0),
TITLED_SCENE(market_alley_n_scene, g_pn_18, 0, 0, 0),
TITLED_SCENE(market_day_scene, g_pn_17, 0, 0, 0),
TITLED_SCENE(market_night_scene, g_pn_17, 0, 0, 0),
TITLED_SCENE(market_ruins_scene, g_pn_17, 0, 0, 0),
UNTITLED_SCENE(shrine_scene, 0, 0, 0),
UNTITLED_SCENE(shrine_n_scene, 0, 0, 0),
UNTITLED_SCENE(shrine_r_scene, 0, 0, 0),
UNTITLED_SCENE(kokiri_home_scene, 0, 0, 0),
UNTITLED_SCENE(kokiri_home3_scene, 0, 0, 0),
UNTITLED_SCENE(kokiri_home4_scene, 0, 0, 0),
UNTITLED_SCENE(kokiri_home5_scene, 0, 0, 0),
UNTITLED_SCENE(kakariko_scene, 0, 0, 0),
UNTITLED_SCENE(kakariko3_scene, 0, 0, 0),
TITLED_SCENE(shop1_scene, g_pn_23, 0, 0, 0),
TITLED_SCENE(kokiri_shop_scene, g_pn_19, 0, 0, 0),
TITLED_SCENE(golon_scene, g_pn_20, 0, 0, 0),
TITLED_SCENE(zoora_scene, g_pn_21, 0, 0, 0),
TITLED_SCENE(drag_scene, g_pn_24, 0, 0, 0),
TITLED_SCENE(alley_shop_scene, g_pn_24, 0, 0, 0),
TITLED_SCENE(night_shop_scene, g_pn_56, 0, 0, 0),
TITLED_SCENE(face_shop_scene, g_pn_50, 0, 0, 0),
UNTITLED_SCENE(link_home_scene, 0, 0, 0),
UNTITLED_SCENE(impa_scene, 0, 0, 0),
TITLED_SCENE(malon_stable_scene, g_pn_48, 0, 0, 0),
UNTITLED_SCENE(labo_scene, 0, 0, 0),
TITLED_SCENE(hylia_labo_scene, g_pn_26, 0, 43, 0),
UNTITLED_SCENE(tent_scene, 0, 0, 0),
TITLED_SCENE(hut_scene, g_pn_25, 0, 0, 0),
TITLED_SCENE(daiyousei_izumi_scene, g_pn_13, 0, 33, 0),
TITLED_SCENE(yousei_izumi_tate_scene, g_pn_45, 0, 39, 0),
TITLED_SCENE(yousei_izumi_yoko_scene, g_pn_13, 0, 33, 0),
UNTITLED_SCENE(kakusiana_scene, 0, 31, 0),
UNTITLED_SCENE(hakaana_scene, 0, 48, 0),
UNTITLED_SCENE(hakaana2_scene, 0, 39, 0),
TITLED_SCENE(hakaana_ouke_scene, g_pn_44, 0, 42, 0),
TITLED_SCENE(syatekijyou_scene, g_pn_15, 0, 34, 0),
TITLED_SCENE(tokinoma_scene, g_pn_16, 0, 30, 0),
TITLED_SCENE(kenjyanoma_scene, g_pn_14, 0, 32, 0),
TITLED_SCENE(hairal_niwa_scene, g_pn_12, 0, 35, 0),
TITLED_SCENE(hairal_niwa_n_scene, g_pn_12, 0, 35, 0),
UNTITLED_SCENE(hiral_demo_scene, 0, 0, 0),
TITLED_SCENE(hakasitarelay_scene, g_pn_57, 0, 48, 0),
TITLED_SCENE(turibori_scene, g_pn_46, 0, 50, 0),
TITLED_SCENE(nakaniwa_scene, g_pn_12, 0, 47, 0),
TITLED_SCENE(bowling_scene, g_pn_47, 0, 41, 0),
UNTITLED_SCENE(souko_scene, 0, 44, 0),
UNTITLED_SCENE(miharigoya_scene, 0, 45, 0),
TITLED_SCENE(mahouya_scene, g_pn_24, 0, 46, 0),
UNTITLED_SCENE(ganon_demo_scene, 0, 36, 0),
TITLED_SCENE(kinsuta_scene, g_pn_22, 0, 0, 0),
TITLED_SCENE(spot00_scene, g_pn_27, 0, 1, 0),
TITLED_SCENE(spot01_scene, g_pn_28, 0, 2, 0),
TITLED_SCENE(spot02_scene, g_pn_29, 0, 0, 0),
TITLED_SCENE(spot03_scene, g_pn_30, 0, 3, 0),
TITLED_SCENE(spot04_scene, g_pn_31, 0, 4, 0),
TITLED_SCENE(spot05_scene, g_pn_52, 0, 47, 0),
TITLED_SCENE(spot06_scene, g_pn_32, 0, 5, 0),
TITLED_SCENE(spot07_scene, g_pn_33, 0, 6, 0),
TITLED_SCENE(spot08_scene, g_pn_34, 0, 7, 0),
TITLED_SCENE(spot09_scene, g_pn_35, 0, 8, 0),
TITLED_SCENE(spot10_scene, g_pn_36, 0, 9, 0),
TITLED_SCENE(spot11_scene, g_pn_55, 0, 10, 0),
TITLED_SCENE(spot12_scene, g_pn_53, 0, 11, 0),
TITLED_SCENE(spot13_scene, g_pn_37, 0, 12, 0),
TITLED_SCENE(spot15_scene, g_pn_38, 0, 13, 0),
TITLED_SCENE(spot16_scene, g_pn_39, 0, 14, 0),
TITLED_SCENE(spot17_scene, g_pn_40, 0, 15, 0),
TITLED_SCENE(spot18_scene, g_pn_41, 0, 16, 0),
TITLED_SCENE(spot20_scene, g_pn_42, 0, 17, 0),
TITLED_SCENE(ganon_tou_scene, g_pn_43, 0, 36, 0),
UNTITLED_SCENE(test01_scene, 0, 47, 0),
UNTITLED_SCENE(besitu_scene, 0, 49, 0),
UNTITLED_SCENE(depth_test_scene, 0, 0, 0),
UNTITLED_SCENE(syotes_scene, 0, 0, 0),
UNTITLED_SCENE(syotes2_scene, 0, 0, 0),
UNTITLED_SCENE(sutaru_scene, 0, 0, 0),
TITLED_SCENE(hairal_niwa2_scene, g_pn_12, 0, 35, 0),
UNTITLED_SCENE(sasatest_scene, 0, 0, 0),
UNTITLED_SCENE(testroom_scene, 0, 0, 0),
#include "tables/scene_table.h"
};
#undef none
#undef DEFINE_SCENE
Gfx sDefaultDisplayList[] = {
gsSPSegment(0x08, gEmptyDL),
gsSPSegment(0x09, gEmptyDL),
@@ -1276,7 +1177,7 @@ void func_8009AE30(PlayState* play) {
gameplayFrames = play->gameplayFrames;
if (play->sceneNum == SCENE_HAKADAN_BS) {
if (play->sceneNum == SCENE_SHADOW_TEMPLE_BOSS) {
gSPSegment(POLY_OPA_DISP++, 0x08,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, (gameplayFrames * 2) % 128, 0, 32, 32, 1,
(gameplayFrames * 2) % 128, 0, 32, 32));
@@ -1444,7 +1345,7 @@ void func_8009BAA4(PlayState* play) {
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 3) % 128, 32,
32, 1, gameplayFrames % 128, (gameplayFrames * 3) % 128, 32, 32));
if (play->sceneNum == SCENE_HAIRAL_NIWA) {
if (play->sceneNum == SCENE_CASTLE_COURTYARD_GUARDS_DAY) {
gSPSegment(POLY_XLU_DISP++, 0x09,
Gfx_TexScroll(play->state.gfxCtx, 0, (gameplayFrames * 10) % 256, 32, 64));
}
@@ -1469,7 +1370,7 @@ void func_8009BC44(PlayState* play) {
gameplayFrames = play->gameplayFrames;
if (play->sceneNum == SCENE_GANON_TOU) {
if (play->sceneNum == 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,
@@ -1547,8 +1448,8 @@ void func_8009C0AC(PlayState* play) {
CLOSE_DISPS(play->state.gfxCtx);
if (Flags_GetSwitch(play, 0x37)) {
if ((play->sceneNum == SCENE_GANON_DEMO) || (play->sceneNum == SCENE_GANON_FINAL) ||
(play->sceneNum == SCENE_GANON_SONOGO) || (play->sceneNum == SCENE_GANONTIKA_SONOGO)) {
if ((play->sceneNum == SCENE_GANON_BOSS) || (play->sceneNum == SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR) ||
(play->sceneNum == SCENE_GANONS_TOWER_COLLAPSE_INTERIOR) || (play->sceneNum == SCENE_INSIDE_GANONS_CASTLE_COLLAPSE)) {
func_8009BEEC(play);
}
}
@@ -2444,7 +2345,7 @@ void func_8009FE58(PlayState* play) {
OPEN_DISPS(play->state.gfxCtx);
gameplayFrames = play->gameplayFrames;
if (play->sceneNum == SCENE_BDAN) {
if (play->sceneNum == SCENE_JABU_JABU) {
gSPSegment(POLY_OPA_DISP++, 0x08,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, gameplayFrames % 128, (gameplayFrames * 2) % 128, 32,
32, 1, 127 - gameplayFrames % 128, (gameplayFrames * 2) % 128, 32, 32));
+29 -29
View File
@@ -56,59 +56,59 @@ void Sram_OpenSave() {
Save_LoadFile();
if (!CVarGetInteger("gRememberSaveLocation", 0) || gSaveContext.savedSceneNum == SCENE_YOUSEI_IZUMI_TATE ||
gSaveContext.savedSceneNum == SCENE_KAKUSIANA) {
if (!CVarGetInteger("gRememberSaveLocation", 0) || gSaveContext.savedSceneNum == SCENE_FAIRYS_FOUNTAIN ||
gSaveContext.savedSceneNum == SCENE_GROTTOS) {
switch (gSaveContext.savedSceneNum) {
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 = dungeonEntrances[gSaveContext.savedSceneNum];
break;
case SCENE_YDAN_BOSS:
case SCENE_DEKU_TREE_BOSS:
gSaveContext.entranceIndex = 0;
break;
case SCENE_DDAN_BOSS:
case SCENE_DODONGOS_CAVERN_BOSS:
gSaveContext.entranceIndex = 4;
break;
case SCENE_BDAN_BOSS:
case SCENE_JABU_JABU_BOSS:
gSaveContext.entranceIndex = 0x28;
break;
case SCENE_MORIBOSSROOM:
case SCENE_FOREST_TEMPLE_BOSS:
gSaveContext.entranceIndex = 0x169;
break;
case SCENE_FIRE_BS:
case SCENE_FIRE_TEMPLE_BOSS:
gSaveContext.entranceIndex = 0x165;
break;
case SCENE_MIZUSIN_BS:
case SCENE_WATER_TEMPLE_BOSS:
gSaveContext.entranceIndex = 0x10;
break;
case SCENE_JYASINBOSS:
case SCENE_SPIRIT_TEMPLE_BOSS:
gSaveContext.entranceIndex = 0x82;
break;
case SCENE_HAKADAN_BS:
case SCENE_SHADOW_TEMPLE_BOSS:
gSaveContext.entranceIndex = 0x37;
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 = 0x41B;
break;
default:
if (gSaveContext.savedSceneNum != SCENE_LINK_HOME) {
if (gSaveContext.savedSceneNum != SCENE_LINKS_HOUSE) {
gSaveContext.entranceIndex = (LINK_AGE_IN_YEARS == YEARS_CHILD) ? 0xBB : 0x5F4;
} else {
gSaveContext.entranceIndex = 0xBB;
@@ -95,7 +95,7 @@ void BgDyYoseizo_Init(Actor* thisx, PlayState* play2) {
this->grownHeight = this->vanishHeight + 40.0f;
this->actor.focus.pos = this->actor.world.pos;
if (play->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
if (play->sceneNum == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) {
// "Great Fairy Fountain"
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 大妖精の泉 ☆☆☆☆☆ %d\n" VT_RST, play->curSpawn);
SkelAnime_InitFlex(play, &this->skelAnime, &gGreatFairySkel, &gGreatFairySittingTransitionAnim,
@@ -156,7 +156,7 @@ void BgDyYoseizo_SpawnParticles(BgDyYoseizo* this, PlayState* play, s16 type) {
particleScale = 0.2f;
particleInitPos.x = this->actor.world.pos.x + Rand_CenteredFloat(10.0f);
if (play->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
if (play->sceneNum == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) {
particleInitPos.y = this->actor.world.pos.y + spawnPosVariation + 50.0f +
((Rand_ZeroOne() - 0.5f) * (spawnPosVariation * 0.1f));
particleInitPos.z = this->actor.world.pos.z + 30.0f;
@@ -210,7 +210,7 @@ void BgDyYoseizo_CheckMagicAcquired(BgDyYoseizo* this, PlayState* play) {
return;
}
if (play->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
if (play->sceneNum == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) {
if (!gSaveContext.isMagicAcquired && (this->fountainType != FAIRY_UPGRADE_MAGIC)) {
Actor_Kill(&this->actor);
return;
@@ -234,7 +234,7 @@ void BgDyYoseizo_ChooseType(BgDyYoseizo* this, PlayState* play) {
osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ もうど ☆☆☆☆☆ %d\n" VT_RST, play->msgCtx.ocarinaMode);
givingReward = false;
if (play->sceneNum != SCENE_DAIYOUSEI_IZUMI) {
if (play->sceneNum != SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) {
switch (this->fountainType) {
case FAIRY_SPELL_FARORES_WIND:
if (!Flags_GetItemGetInf(ITEMGETINF_18)) {
@@ -283,7 +283,7 @@ void BgDyYoseizo_ChooseType(BgDyYoseizo* this, PlayState* play) {
if (givingReward) {
if (gSaveContext.sceneSetupIndex < 4) {
if (play->sceneNum != SCENE_DAIYOUSEI_IZUMI) {
if (play->sceneNum != SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) {
switch (this->fountainType) {
case FAIRY_SPELL_FARORES_WIND:
play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gGreatFairyFaroresWindCs);
@@ -321,7 +321,7 @@ void BgDyYoseizo_ChooseType(BgDyYoseizo* this, PlayState* play) {
play->envCtx.unk_BF = 2;
if (play->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
if (play->sceneNum == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) {
OnePointCutscene_Init(play, 8603, -99, NULL, MAIN_CAM);
} else {
OnePointCutscene_Init(play, 8604, -99, NULL, MAIN_CAM);
@@ -334,7 +334,7 @@ void BgDyYoseizo_ChooseType(BgDyYoseizo* this, PlayState* play) {
// Sets animations for spingrow
void BgDyYoseizo_SetupSpinGrow_NoReward(BgDyYoseizo* this, PlayState* play) {
if (play->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
if (play->sceneNum == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) {
this->frameCount = Animation_GetLastFrame(&gGreatFairySittingTransitionAnim);
Animation_Change(&this->skelAnime, &gGreatFairySittingTransitionAnim, 1.0f, 0.0f, this->frameCount,
ANIMMODE_ONCE, -10.0f);
@@ -392,7 +392,7 @@ void BgDyYoseizo_CompleteSpinGrow_NoReward(BgDyYoseizo* this, PlayState* play) {
void BgDyYoseizo_SetupGreetPlayer_NoReward(BgDyYoseizo* this, PlayState* play) {
func_8002DF54(play, &this->actor, 1);
if (play->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
if (play->sceneNum == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) {
this->frameCount = Animation_GetLastFrame(&gGreatFairySittingAnim);
Animation_Change(&this->skelAnime, &gGreatFairySittingAnim, 1.0f, 0.0f, this->frameCount, ANIMMODE_LOOP,
-10.0f);
@@ -430,7 +430,7 @@ void BgDyYoseizo_GreetPlayer_NoReward(BgDyYoseizo* this, PlayState* play) {
}
void BgDyYoseizo_SetupHealPlayer_NoReward(BgDyYoseizo* this, PlayState* play) {
if (play->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
if (play->sceneNum == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) {
this->frameCount = Animation_GetLastFrame(&gGreatFairyGivingUpgradeAnim);
Animation_Change(&this->skelAnime, &gGreatFairyGivingUpgradeAnim, 1.0f, 0.0f, this->frameCount, ANIMMODE_ONCE,
-10.0f);
@@ -460,7 +460,7 @@ void BgDyYoseizo_HealPlayer_NoReward(BgDyYoseizo* this, PlayState* play) {
SkelAnime_Update(&this->skelAnime);
if ((this->frameCount <= curFrame) && !(this->animationChanged)) {
if (play->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
if (play->sceneNum == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) {
this->frameCount = Animation_GetLastFrame(&gGreatFairyAfterUpgradeAnim);
Animation_Change(&this->skelAnime, &gGreatFairyAfterUpgradeAnim, 1.0f, 0.0f, this->frameCount,
ANIMMODE_LOOP, -10.0f);
@@ -476,7 +476,7 @@ void BgDyYoseizo_HealPlayer_NoReward(BgDyYoseizo* this, PlayState* play) {
beamPos.y = player->actor.world.pos.y + 200.0f;
beamPos.z = player->actor.world.pos.z;
beamParams = ((play->sceneNum == SCENE_DAIYOUSEI_IZUMI) ? 0 : 1);
beamParams = ((play->sceneNum == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) ? 0 : 1);
this->beam =
(EnDyExtra*)Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_EN_DY_EXTRA,
@@ -539,7 +539,7 @@ void BgDyYoseizo_SayFarewell_NoReward(BgDyYoseizo* this, PlayState* play) {
}
void BgDyYoseizo_SetupSpinShrink(BgDyYoseizo* this, PlayState* play) {
if (play->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
if (play->sceneNum == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) {
this->frameCount = Animation_GetLastFrame(&gGreatFairyJewelFountainSpinShrinkAnim);
Animation_Change(&this->skelAnime, &gGreatFairyJewelFountainSpinShrinkAnim, 1.0f, 0.0f, this->frameCount,
ANIMMODE_ONCE, -10.0f);
@@ -603,7 +603,7 @@ void BgDyYoseizo_SetupSpinGrow_Reward(BgDyYoseizo* this, PlayState* play) {
func_8002DF54(play, &this->actor, 1);
this->finishedSpinGrow = false;
if (play->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
if (play->sceneNum == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) {
this->frameCount = Animation_GetLastFrame(&gGreatFairySittingTransitionAnim);
Animation_Change(&this->skelAnime, &gGreatFairySittingTransitionAnim, 1.0f, 0.0f, this->frameCount,
ANIMMODE_ONCE, -10.0f);
@@ -646,7 +646,7 @@ void BgDyYoseizo_SpinGrowSetupGive_Reward(BgDyYoseizo* this, PlayState* play) {
SkelAnime_Update(&this->skelAnime);
if ((this->frameCount <= curFrame) && !this->animationChanged) {
if (play->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
if (play->sceneNum == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) {
this->frameCount = Animation_GetLastFrame(&gGreatFairySittingAnim);
Animation_Change(&this->skelAnime, &gGreatFairySittingAnim, 1.0f, 0.0f, this->frameCount, ANIMMODE_LOOP,
-10.0f);
@@ -661,7 +661,7 @@ void BgDyYoseizo_SpinGrowSetupGive_Reward(BgDyYoseizo* this, PlayState* play) {
if ((play->csCtx.state != CS_STATE_IDLE) &&
((play->csCtx.npcActions[0] != NULL) && (play->csCtx.npcActions[0]->action == 3))) {
this->finishedSpinGrow = this->animationChanged = false;
if (play->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
if (play->sceneNum == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) {
this->frameCount = Animation_GetLastFrame(&gGreatFairyGivingUpgradeAnim);
Animation_Change(&this->skelAnime, &gGreatFairyGivingUpgradeAnim, 1.0f, 0.0f, this->frameCount,
ANIMMODE_ONCE, -10.0f);
@@ -701,7 +701,7 @@ void BgDyYoseizo_Give_Reward(BgDyYoseizo* this, PlayState* play) {
SkelAnime_Update(&this->skelAnime);
if ((this->frameCount <= curFrame) && !this->animationChanged) {
if (play->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
if (play->sceneNum == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) {
this->frameCount = Animation_GetLastFrame(&gGreatFairyAfterUpgradeAnim);
Animation_Change(&this->skelAnime, &gGreatFairyAfterUpgradeAnim, 1.0f, 0.0f, this->frameCount,
ANIMMODE_LOOP, -10.0f);
@@ -720,7 +720,7 @@ void BgDyYoseizo_Give_Reward(BgDyYoseizo* this, PlayState* play) {
if ((play->csCtx.npcActions[0]->action >= 4) && (play->csCtx.npcActions[0]->action < 7)) {
actionIndex = play->csCtx.npcActions[0]->action - 4;
if (play->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
if (play->sceneNum == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) {
actionIndex++;
BgDyYoseizo_SpawnParticles(this, play, actionIndex);
@@ -734,7 +734,7 @@ void BgDyYoseizo_Give_Reward(BgDyYoseizo* this, PlayState* play) {
BgDyYoseizo_SpawnParticles(this, play, 0);
}
if ((play->sceneNum == SCENE_DAIYOUSEI_IZUMI) && (play->csCtx.npcActions[0]->action >= 10) &&
if ((play->sceneNum == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) && (play->csCtx.npcActions[0]->action >= 10) &&
(play->csCtx.npcActions[0]->action < 13)) {
actionIndex = play->csCtx.npcActions[0]->action - 10;
@@ -768,7 +768,7 @@ void BgDyYoseizo_Give_Reward(BgDyYoseizo* this, PlayState* play) {
}
}
if ((play->sceneNum != SCENE_DAIYOUSEI_IZUMI) && (play->csCtx.npcActions[0]->action >= 14) &&
if ((play->sceneNum != SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) && (play->csCtx.npcActions[0]->action >= 14) &&
(play->csCtx.npcActions[0]->action < 17)) {
actionIndex = play->csCtx.npcActions[0]->action - 14;
@@ -803,13 +803,13 @@ void BgDyYoseizo_Give_Reward(BgDyYoseizo* this, PlayState* play) {
}
}
if ((play->sceneNum != SCENE_DAIYOUSEI_IZUMI) && (play->csCtx.npcActions[0]->action == 17) &&
if ((play->sceneNum != SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) && (play->csCtx.npcActions[0]->action == 17) &&
(this->item != NULL)) {
Actor_Kill(&this->item->actor);
this->item = NULL;
}
if ((play->sceneNum == SCENE_DAIYOUSEI_IZUMI) && (play->csCtx.npcActions[0]->action == 18)) {
if ((play->sceneNum == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) && (play->csCtx.npcActions[0]->action == 18)) {
this->giveDefenseHearts = true;
}
@@ -850,7 +850,7 @@ void BgDyYoseizo_Update(Actor* thisx, PlayState* play2) {
if (play->csCtx.state != CS_STATE_IDLE) {
phi_v1 = 0;
if (play->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
if (play->sceneNum == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) {
if ((play->csCtx.frames == 32) || (play->csCtx.frames == 291) ||
(play->csCtx.frames == 426) || (play->csCtx.frames == 851)) {
phi_v1 = 1;
@@ -47,7 +47,7 @@ void BgGateShutter_Init(Actor* thisx, PlayState* play) {
if (((Flags_GetInfTable(INFTABLE_SHOWED_ZELDAS_LETTER_TO_GATE_GUARD)) ||
(!gSaveContext.n64ddFlag && (Flags_GetEventChkInf(EVENTCHKINF_PULLED_MASTER_SWORD_FROM_PEDESTAL))) ||
(gSaveContext.n64ddFlag && (Randomizer_GetSettingValue(RSK_KAK_GATE) == RO_KAK_GATE_OPEN))) &&
(play->sceneNum == SCENE_SPOT01)) {
(play->sceneNum == SCENE_KAKARIKO_VILLAGE)) {
thisx->world.pos.x = -89.0f;
thisx->world.pos.z = -1375.0f;
}
@@ -69,7 +69,7 @@ void func_8087B7E8(BgHaka* this, PlayState* play) {
Player* player = GET_PLAYER(play);
if (this->dyna.unk_150 != 0.0f) {
if (play->sceneNum == SCENE_SPOT02 && !LINK_IS_ADULT && IS_DAY && !CVarGetInteger("gDayGravePull", 0)) {
if (play->sceneNum == SCENE_GRAVEYARD && !LINK_IS_ADULT && IS_DAY && !CVarGetInteger("gDayGravePull", 0)) {
this->dyna.unk_150 = 0.0f;
player->stateFlags2 &= ~0x10;
if (!Play_InCsMode(play)) {
@@ -78,7 +78,7 @@ void func_8087B7E8(BgHaka* this, PlayState* play) {
this->actionFunc = func_8087BAE4;
}
} else if (0.0f < this->dyna.unk_150 ||
(play->sceneNum == SCENE_SPOT06 && !LINK_IS_ADULT && !Flags_GetSwitch(play, 0x23))) {
(play->sceneNum == SCENE_LAKE_HYLIA && !LINK_IS_ADULT && !Flags_GetSwitch(play, 0x23))) {
this->dyna.unk_150 = 0.0f;
player->stateFlags2 &= ~0x10;
} else {
@@ -116,14 +116,14 @@ void func_8087B938(BgHaka* this, PlayState* play) {
if (this->dyna.actor.params == 1) {
func_80078884(NA_SE_SY_CORRECT_CHIME);
} else if (!IS_DAY && play->sceneNum == SCENE_SPOT02) {
} else if (!IS_DAY && play->sceneNum == SCENE_GRAVEYARD) {
Actor_Spawn(&play->actorCtx, play, ACTOR_EN_POH, this->dyna.actor.home.pos.x,
this->dyna.actor.home.pos.y, this->dyna.actor.home.pos.z, 0, this->dyna.actor.shape.rot.y, 0,
1, true);
}
// un tss un tss
if (play->sceneNum == SCENE_SPOT02 && allPulled) {
if (play->sceneNum == SCENE_GRAVEYARD && allPulled) {
func_80078884(NA_SE_SY_CORRECT_CHIME);
func_800F5ACC(NA_BGM_STAFF_2);
Actor* actor2 = play->actorCtx.actorLists[ACTORCAT_BG].head;
@@ -89,7 +89,7 @@ void BgHeavyBlock_Init(Actor* thisx, PlayState* play) {
ActorShape_Init(&thisx->shape, 0.0f, NULL, 0.0f);
this->pieceFlags = 0;
if (play->sceneNum == SCENE_GANON_TOU) {
if (play->sceneNum == SCENE_OUTSIDE_GANONS_CASTLE) {
thisx->params &= 0xFF00;
thisx->params |= 4;
}
@@ -45,7 +45,7 @@ void BgInGate_Init(Actor* thisx, PlayState* play) {
this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, colHeader);
if ((play->sceneNum != SCENE_SPOT20 || !LINK_IS_ADULT) ||
if ((play->sceneNum != SCENE_LON_LON_RANCH || !LINK_IS_ADULT) ||
(((Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED))) && (gSaveContext.cutsceneIndex != 0xFFF0))) {
Actor_Kill(&this->dyna.actor);
return;
@@ -212,7 +212,7 @@ void BgSpot00Hanebasi_Update(Actor* thisx, PlayState* play) {
this->actionFunc(this, play);
if (this->dyna.actor.params == DT_DRAWBRIDGE) {
if (play->sceneNum == SCENE_SPOT00) {
if (play->sceneNum == SCENE_HYRULE_FIELD) {
if (CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD) && CHECK_QUEST_ITEM(QUEST_GORON_RUBY) &&
CHECK_QUEST_ITEM(QUEST_ZORA_SAPPHIRE) && !Flags_GetEventChkInf(EVENTCHKINF_ZELDA_FLED_HYRULE_CASTLE) && LINK_IS_CHILD) {
Player* player = GET_PLAYER(play);
@@ -77,7 +77,7 @@ void BgSpot02Objects_Init(Actor* thisx, PlayState* play) {
CollisionHeader_GetVirtual(&object_spot02_objects_Col_0128D8, &colHeader);
thisx->flags |= ACTOR_FLAG_IGNORE_POINTLIGHTS;
} else {
if (play->sceneNum == SCENE_SPOT02) {
if (play->sceneNum == SCENE_GRAVEYARD) {
this->actionFunc = func_808AC908;
} else {
this->actionFunc = func_808AC8FC;
@@ -88,7 +88,7 @@ void BgSpot02Objects_Init(Actor* thisx, PlayState* play) {
this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, thisx, colHeader);
if (((Flags_GetEventChkInf(EVENTCHKINF_DESTROYED_ROYAL_FAMILY_TOMB)) && (play->sceneNum == SCENE_SPOT02) &&
if (((Flags_GetEventChkInf(EVENTCHKINF_DESTROYED_ROYAL_FAMILY_TOMB)) && (play->sceneNum == SCENE_GRAVEYARD) &&
(thisx->params == 2)) ||
(LINK_IS_ADULT && (thisx->params == 1))) {
Actor_Kill(thisx);
@@ -96,7 +96,7 @@ s32 func_808B3AAC(BgSpot15Rrbox* this, PlayState* play) {
s16 rotY;
Actor* actor = &this->dyna.actor;
if (play->sceneNum == SCENE_SOUKO) {
if (play->sceneNum == SCENE_LON_LON_BUILDINGS) {
return true;
} else if (func_808B3A40(this, play)) {
return false;
@@ -58,12 +58,12 @@ void BgSpot16Doughnut_Init(Actor* thisx, PlayState* play) {
// Scales this actor for scenes where it is featured in the background,
// Death Mountain itself falls into the default case.
switch (play->sceneNum) {
case SCENE_SPOT01:
case SCENE_KAKARIKO_VILLAGE:
Actor_SetScale(&this->actor, 0.04f);
break;
case SCENE_SHRINE:
case SCENE_SHRINE_N:
case SCENE_SHRINE_R:
case SCENE_TEMPLE_OF_TIME_EXTERIOR_DAY:
case SCENE_TEMPLE_OF_TIME_EXTERIOR_NIGHT:
case SCENE_TEMPLE_OF_TIME_EXTERIOR_RUINS:
Actor_SetScale(&this->actor, 0.018f);
break;
default:
@@ -365,8 +365,8 @@ void BossGanon_Init(Actor* thisx, PlayState* play2) {
this->organAlpha = 255;
} else {
cond = Flags_GetSwitch(play, 0x37) &&
((play->sceneNum == SCENE_GANON_DEMO) || (play->sceneNum == SCENE_GANON_FINAL) ||
(play->sceneNum == SCENE_GANON_SONOGO) || (play->sceneNum == SCENE_GANONTIKA_SONOGO));
((play->sceneNum == SCENE_GANON_BOSS) || (play->sceneNum == SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR) ||
(play->sceneNum == SCENE_GANONS_TOWER_COLLAPSE_INTERIOR) || (play->sceneNum == SCENE_INSIDE_GANONS_CASTLE_COLLAPSE));
if (!cond) {
BossGanon_SetupTowerCutscene(this, play);
@@ -304,7 +304,7 @@ void func_8096712C(Demo6K* this, PlayState* play) {
this->timer2++;
if ((play->sceneNum == SCENE_GANONTIKA) && (play->csCtx.frames < D_8096932C[this->actor.params - 3])) {
if ((play->sceneNum == SCENE_INSIDE_GANONS_CASTLE) && (play->csCtx.frames < D_8096932C[this->actor.params - 3])) {
func_8002F974(&this->actor, NA_SE_EV_LIGHT_GATHER - SFX_FLAG);
}
}
@@ -336,7 +336,7 @@ void func_80967244(Demo6K* this, PlayState* play) {
envColor.g = sEnvColors[this->unk_293].g;
envColor.b = sEnvColors[this->unk_293].b;
if (play->sceneNum == SCENE_TOKINOMA) {
if (play->sceneNum == SCENE_TEMPLE_OF_TIME) {
scale = 6000;
} else if (play->csCtx.frames < 419) {
scale = 6000;
@@ -142,7 +142,7 @@ f32 DemoEffect_InterpolateCsFrames(PlayState* play, s32 csActionId) {
*/
void DemoEffect_InitJewel(PlayState* play, DemoEffect* this) {
this->initDrawFunc = DemoEffect_DrawJewel;
if (gSaveContext.n64ddFlag && play->sceneNum == SCENE_BDAN) {
if (gSaveContext.n64ddFlag && play->sceneNum == SCENE_JABU_JABU) {
this->initDrawFunc = DemoEffect_DrawGetItem;
}
if (!LINK_IS_ADULT) {
@@ -150,13 +150,13 @@ void DemoEffect_InitJewel(PlayState* play, DemoEffect* this) {
} else {
this->initUpdateFunc = DemoEffect_UpdateJewelAdult;
}
if (play->sceneNum == SCENE_TOKINOMA) {
if (play->sceneNum == SCENE_TEMPLE_OF_TIME) {
Actor_SetScale(&this->actor, 0.35f);
} else {
Actor_SetScale(&this->actor, 0.10f);
}
this->csActionId = 1;
this->actor.shape.rot.x = (gSaveContext.n64ddFlag && play->sceneNum == SCENE_BDAN) ? 0 : 16384;
this->actor.shape.rot.x = (gSaveContext.n64ddFlag && play->sceneNum == SCENE_JABU_JABU) ? 0 : 16384;
DemoEffect_InitJewelColor(this);
this->jewel.alpha = 0;
this->jewelCsRotation.x = this->jewelCsRotation.y = this->jewelCsRotation.z = 0;
@@ -496,7 +496,7 @@ void DemoEffect_Init(Actor* thisx, PlayState* play2) {
this->jewel.isPositionInit = 0;
DemoEffect_InitJewel(play, this);
Actor_ChangeCategory(play, &play->actorCtx, &this->actor, ACTOR_EN_DOOR);
if ((play->sceneNum == SCENE_BDAN) && (Flags_GetInfTable(INFTABLE_145))) {
if ((play->sceneNum == SCENE_JABU_JABU) && (Flags_GetInfTable(INFTABLE_145))) {
Actor_Kill(&this->actor);
return;
}
@@ -1075,12 +1075,12 @@ void DemoEffect_UpdateLightEffect(DemoEffect* this, PlayState* play) {
break;
}
if (play->sceneNum == SCENE_SPOT04 && gSaveContext.sceneSetupIndex == 6 &&
if (play->sceneNum == SCENE_KOKIRI_FOREST && gSaveContext.sceneSetupIndex == 6 &&
play->csCtx.frames == 197) {
Audio_PlayActorSound2(&this->actor, NA_SE_EV_WHITE_OUT);
}
if (play->sceneNum == SCENE_SPOT16 && gSaveContext.sceneSetupIndex == 5) {
if (play->sceneNum == SCENE_DEATH_MOUNTAIN_TRAIL && gSaveContext.sceneSetupIndex == 5) {
if (!DemoEffect_CheckCsAction(this, play, 1)) {
Audio_PlayActorSound2(&this->actor, NA_SE_EV_LIGHT_GATHER - SFX_FLAG);
}
@@ -1089,7 +1089,7 @@ void DemoEffect_UpdateLightEffect(DemoEffect* this, PlayState* play) {
}
}
if (play->sceneNum == SCENE_SPOT08 && gSaveContext.sceneSetupIndex == 4) {
if (play->sceneNum == SCENE_ZORAS_FOUNTAIN && gSaveContext.sceneSetupIndex == 4) {
if (!DemoEffect_CheckCsAction(this, play, 1)) {
Audio_PlayActorSound2(&this->actor, NA_SE_EV_LIGHT_GATHER - SFX_FLAG);
}
@@ -1098,14 +1098,14 @@ void DemoEffect_UpdateLightEffect(DemoEffect* this, PlayState* play) {
}
}
if (play->sceneNum == SCENE_TOKINOMA && gSaveContext.sceneSetupIndex == 14) {
if (play->sceneNum == SCENE_TEMPLE_OF_TIME && gSaveContext.sceneSetupIndex == 14) {
if (play->csCtx.npcActions[this->csActionId]->action == 2) {
Audio_PlayActorSound2(&this->actor, NA_SE_EV_LIGHT_GATHER - SFX_FLAG);
}
}
if (play->sceneNum == SCENE_DAIYOUSEI_IZUMI || play->sceneNum == SCENE_YOUSEI_IZUMI_YOKO) {
if (play->sceneNum == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC || play->sceneNum == SCENE_GREAT_FAIRYS_FOUNTAIN_SPELLS) {
if (play->csCtx.npcActions[this->csActionId]->action == 2) {
Audio_PlayActorSound2(&this->actor, NA_SE_EV_LIGHT_GATHER - SFX_FLAG);
}
@@ -2087,7 +2087,7 @@ void DemoEffect_DrawGetItem(Actor* thisx, PlayState* play) {
this->getItem.isLoaded = 1;
return;
}
if (gSaveContext.n64ddFlag && play->sceneNum == SCENE_BDAN) {
if (gSaveContext.n64ddFlag && play->sceneNum == SCENE_JABU_JABU) {
GetItemEntry getItemEntry = Randomizer_GetItemFromKnownCheck(RC_BARINADE, RG_ZORA_SAPPHIRE);
this->getItem.drawId = getItemEntry.gid;
func_8002EBCC(thisx, play, 0);
@@ -197,16 +197,16 @@ void DemoKankyo_Init(Actor* thisx, PlayState* play) {
case DEMOKANKYO_BLUE_RAIN:
case DEMOKANKYO_BLUE_RAIN_2:
switch (play->sceneNum) {
case SCENE_HIRAL_DEMO:
case SCENE_CUTSCENE_MAP:
play->roomCtx.curRoom.segment = NULL;
D_8098CF80 = 10;
sRainScale = 8;
break;
case SCENE_TOKINOMA:
case SCENE_TEMPLE_OF_TIME:
D_8098CF80 = 14;
sRainScale = 8;
break;
case SCENE_SPOT00:
case SCENE_HYRULE_FIELD:
D_8098CF80 = 1;
sRainScale = 5;
break;
@@ -321,7 +321,7 @@ void DemoKankyo_SetupType(DemoKankyo* this, PlayState* play) {
this->warpTimer--;
}
if (this->warpTimer == 1) {
if (play->sceneNum == SCENE_TOKINOMA) {
if (play->sceneNum == SCENE_TEMPLE_OF_TIME) {
D_8098CF84 = 25;
if (!LINK_IS_ADULT) {
play->csCtx.segment = gChildWarpInToTCS;
@@ -343,7 +343,7 @@ void DemoKankyo_SetupType(DemoKankyo* this, PlayState* play) {
}
break;
case DEMOKANKYO_WARP_IN:
if (play->sceneNum == SCENE_TOKINOMA) {
if (play->sceneNum == SCENE_TEMPLE_OF_TIME) {
if (!LINK_IS_ADULT) {
play->csCtx.segment = gChildWarpOutToTCS;
} else {
@@ -441,7 +441,7 @@ void DemoKankyo_Draw(Actor* thisx, PlayState* play) {
switch (this->actor.params) {
case DEMOKANKYO_BLUE_RAIN:
case DEMOKANKYO_BLUE_RAIN_2:
if (play->sceneNum == SCENE_TOKINOMA) {
if (play->sceneNum == SCENE_TEMPLE_OF_TIME) {
if (!Flags_GetEnv(play, 1)) {
break;
} else if (!Actor_IsFacingAndNearPlayer(&this->actor, 300.0f, 0x7530)) {
@@ -495,12 +495,12 @@ void func_80989B54(Actor* thisx, PlayState* play, s16 i) {
DemoKankyo* this = (DemoKankyo*)thisx;
switch (play->sceneNum) {
case SCENE_HIRAL_DEMO:
case SCENE_CUTSCENE_MAP:
this->unk_150[i].unk_0.x = (Rand_ZeroOne() - 0.5f) * 500.0f;
this->unk_150[i].unk_0.y = 500.0f;
this->unk_150[i].unk_0.z = (Rand_ZeroOne() - 0.5f) * 500.0f;
break;
case SCENE_TOKINOMA:
case SCENE_TEMPLE_OF_TIME:
this->unk_150[i].unk_C.x = 0.0f;
this->unk_150[i].unk_C.y = 0.0f;
this->unk_150[i].unk_C.z = 0.0f;
@@ -508,7 +508,7 @@ void func_80989B54(Actor* thisx, PlayState* play, s16 i) {
this->unk_150[i].unk_0.y = 10.0f;
this->unk_150[i].unk_0.z = (Rand_ZeroOne() - 0.5f) * 180.0f;
break;
case SCENE_SPOT00:
case SCENE_HYRULE_FIELD:
this->unk_150[i].unk_0.x = (Rand_ZeroOne() - 0.5f) * 600.0f;
this->unk_150[i].unk_0.y = -500.0f;
this->unk_150[i].unk_0.z = (Rand_ZeroOne() - 0.5f) * 600.0f;
@@ -540,7 +540,7 @@ void DemoKankyo_DrawRain(Actor* thisx, PlayState* play) {
dz = play->view.lookAt.z - play->view.eye.z;
norm = sqrtf(SQ(dx) + SQ(dy) + SQ(dz));
if (play->sceneNum != SCENE_TOKINOMA) {
if (play->sceneNum != SCENE_TEMPLE_OF_TIME) {
this->unk_150[i].unk_C.x = play->view.eye.x + (dx / norm) * 350.0f;
this->unk_150[i].unk_C.y = play->view.eye.y + (dy / norm) * 80.0f;
this->unk_150[i].unk_C.z = play->view.eye.z + (dz / norm) * 350.0f;
@@ -606,7 +606,7 @@ void DemoKankyo_DrawRain(Actor* thisx, PlayState* play) {
s32 pad1;
if (play->sceneNum != SCENE_TOKINOMA) {
if (play->sceneNum != SCENE_TEMPLE_OF_TIME) {
if (this->unk_150[i].unk_0.x >= 0.0f) {
translateX = -j * 1500.0f;
} else {
@@ -820,7 +820,7 @@ void DemoKankyo_DrawWarpSparkles(Actor* thisx, PlayState* play) {
&this->unk_150[i].unk_1C) != 0) {
this->unk_150[i].unk_22++;
}
if (play->sceneNum == SCENE_TOKINOMA && play->csCtx.frames == 25) {
if (play->sceneNum == SCENE_TEMPLE_OF_TIME && play->csCtx.frames == 25) {
this->unk_150[i].unk_22++;
}
} else {
@@ -114,14 +114,14 @@ void DoorKiller_Init(Actor* thisx, PlayState* play2) {
// For SoH where all objects are loaded, hardcode the index to match the current map.
switch (play->sceneNum) {
case SCENE_HIDAN:
case SCENE_FIRE_TEMPLE:
this->textureEntryIndex = 0;
break;
case SCENE_MIZUSIN:
case SCENE_WATER_TEMPLE:
this->textureEntryIndex = 1;
break;
case SCENE_HAKADAN:
case SCENE_HAKADANCH:
case SCENE_SHADOW_TEMPLE:
case SCENE_BOTTOM_OF_THE_WELL:
this->textureEntryIndex = 2;
break;
default:
@@ -135,12 +135,12 @@ typedef struct {
} ShutterSceneInfo;
static ShutterSceneInfo sSceneInfo[] = {
{ SCENE_YDAN, 0x02 }, { SCENE_DDAN, 0x03 }, { SCENE_DDAN_BOSS, 0x03 },
{ SCENE_BDAN, 0x04 }, { SCENE_BMORI1, 0x05 }, { SCENE_HIDAN, 0x08 },
{ SCENE_GANON, 0x09 }, { SCENE_GANON_BOSS, 0x09 }, { SCENE_JYASINZOU, 0x0A },
{ SCENE_JYASINBOSS, 0x0A }, { SCENE_MIZUSIN, 0x0B }, { SCENE_HAKADAN, 0x0C },
{ SCENE_HAKADANCH, 0x0C }, { SCENE_ICE_DOUKUTO, 0x0D }, { SCENE_MEN, 0x0E },
{ SCENE_GANONTIKA, 0x0F }, { SCENE_HAKAANA_OUKE, 0x10 }, { -1, 0x07 },
{ SCENE_DEKU_TREE, 0x02 }, { SCENE_DODONGOS_CAVERN, 0x03 }, { SCENE_DODONGOS_CAVERN_BOSS, 0x03 },
{ SCENE_JABU_JABU, 0x04 }, { SCENE_FOREST_TEMPLE, 0x05 }, { SCENE_FIRE_TEMPLE, 0x08 },
{ SCENE_GANONS_TOWER, 0x09 }, { SCENE_GANONDORF_BOSS, 0x09 }, { SCENE_SPIRIT_TEMPLE, 0x0A },
{ SCENE_SPIRIT_TEMPLE_BOSS, 0x0A }, { SCENE_WATER_TEMPLE, 0x0B }, { SCENE_SHADOW_TEMPLE, 0x0C },
{ SCENE_BOTTOM_OF_THE_WELL, 0x0C }, { SCENE_ICE_CAVERN, 0x0D }, { SCENE_GERUDO_TRAINING_GROUND, 0x0E },
{ SCENE_INSIDE_GANONS_CASTLE, 0x0F }, { SCENE_ROYAL_FAMILYS_TOMB, 0x10 }, { -1, 0x07 },
};
typedef struct {
@@ -150,12 +150,12 @@ typedef struct {
} BossDoorInfo;
static BossDoorInfo D_80998288[] = {
{ SCENE_HIDAN, SCENE_FIRE_BS, 0x01 },
{ SCENE_MIZUSIN, SCENE_MIZUSIN_BS, 0x02 },
{ SCENE_HAKADAN, SCENE_HAKADAN_BS, 0x03 },
{ SCENE_GANON, SCENE_GANON_BOSS, 0x04 },
{ SCENE_BMORI1, SCENE_MORIBOSSROOM, 0x05 },
{ SCENE_JYASINZOU, SCENE_JYASINBOSS, 0x06 },
{ SCENE_FIRE_TEMPLE, SCENE_FIRE_TEMPLE_BOSS, 0x01 },
{ SCENE_WATER_TEMPLE, SCENE_WATER_TEMPLE_BOSS, 0x02 },
{ SCENE_SHADOW_TEMPLE, SCENE_SHADOW_TEMPLE_BOSS, 0x03 },
{ SCENE_GANONS_TOWER, SCENE_GANONDORF_BOSS, 0x04 },
{ SCENE_FOREST_TEMPLE, SCENE_FOREST_TEMPLE_BOSS, 0x05 },
{ SCENE_SPIRIT_TEMPLE, SCENE_SPIRIT_TEMPLE_BOSS, 0x06 },
{ -1, -1, 0x00 },
};
@@ -475,7 +475,7 @@ void func_80996EE8(DoorShutter* this, PlayState* play) {
} else if (func_809968D4(this, play)) {
Player* player = GET_PLAYER(play);
// Jabu navi text for switch doors is different
player->naviTextId = (play->sceneNum == SCENE_BDAN) ? -0x20B : -0x202;
player->naviTextId = (play->sceneNum == SCENE_JABU_JABU) ? -0x20B : -0x202;
}
}
}
@@ -569,7 +569,7 @@ void DoorWarp1_ChildWarpOut(DoorWarp1* this, PlayState* play) {
if (sWarpTimerTarget < this->warpTimer && gSaveContext.nextCutsceneIndex == 0xFFEF) {
osSyncPrintf("\n\n\nじかんがきたからおーしまい fade_direction=[%d]", play->sceneLoadFlag, 0x14);
if (play->sceneNum == SCENE_DDAN_BOSS) {
if (play->sceneNum == SCENE_DODONGOS_CAVERN_BOSS) {
if (!Flags_GetEventChkInf(EVENTCHKINF_USED_DODONGOS_CAVERN_BLUE_WARP)) {
Flags_SetEventChkInf(EVENTCHKINF_USED_DODONGOS_CAVERN_BLUE_WARP);
Flags_SetRandomizerInf(RAND_INF_DUNGEONS_DONE_DODONGOS_CAVERN);
@@ -585,7 +585,7 @@ void DoorWarp1_ChildWarpOut(DoorWarp1* this, PlayState* play) {
play->nextEntranceIndex = 0x47A;
gSaveContext.nextCutsceneIndex = 0;
}
} else if (play->sceneNum == SCENE_YDAN_BOSS) {
} else if (play->sceneNum == SCENE_DEKU_TREE_BOSS) {
if (!Flags_GetEventChkInf(EVENTCHKINF_OBTAINED_KOKIRI_EMERALD_DEKU_TREE_DEAD) || gSaveContext.n64ddFlag) {
Flags_SetEventChkInf(EVENTCHKINF_OBTAINED_KOKIRI_EMERALD_DEKU_TREE_DEAD);
Flags_SetEventChkInf(EVENTCHKINF_USED_DEKU_TREE_BLUE_WARP);
@@ -604,7 +604,7 @@ void DoorWarp1_ChildWarpOut(DoorWarp1* this, PlayState* play) {
play->nextEntranceIndex = 0x457;
gSaveContext.nextCutsceneIndex = 0;
}
} else if (play->sceneNum == SCENE_BDAN_BOSS) {
} else if (play->sceneNum == SCENE_JABU_JABU_BOSS) {
play->nextEntranceIndex = 0x10E;
gSaveContext.nextCutsceneIndex = 0;
}
@@ -828,7 +828,7 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) {
if (this->warpTimer > sWarpTimerTarget && gSaveContext.nextCutsceneIndex == 0xFFEF) {
if (gSaveContext.isBossRush) {
BossRush_HandleBlueWarp(play, this->actor.world.pos.x, this->actor.world.pos.z);
} else if (play->sceneNum == SCENE_MORIBOSSROOM) {
} else if (play->sceneNum == SCENE_FOREST_TEMPLE_BOSS) {
if (!Flags_GetEventChkInf(EVENTCHKINF_USED_FOREST_TEMPLE_BLUE_WARP)) {
Flags_SetEventChkInf(EVENTCHKINF_USED_FOREST_TEMPLE_BLUE_WARP);
Flags_SetRandomizerInf(RAND_INF_DUNGEONS_DONE_FOREST_TEMPLE);
@@ -850,7 +850,7 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) {
}
gSaveContext.nextCutsceneIndex = 0;
}
} else if (play->sceneNum == SCENE_FIRE_BS) {
} else if (play->sceneNum == SCENE_FIRE_TEMPLE_BOSS) {
if (!Flags_GetEventChkInf(EVENTCHKINF_USED_FIRE_TEMPLE_BLUE_WARP)) {
Flags_SetEventChkInf(EVENTCHKINF_USED_FIRE_TEMPLE_BLUE_WARP);
Flags_SetRandomizerInf(RAND_INF_DUNGEONS_DONE_FIRE_TEMPLE);
@@ -873,7 +873,7 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) {
}
gSaveContext.nextCutsceneIndex = 0;
}
} else if (play->sceneNum == SCENE_MIZUSIN_BS) {
} else if (play->sceneNum == SCENE_WATER_TEMPLE_BOSS) {
if (!Flags_GetEventChkInf(EVENTCHKINF_USED_WATER_TEMPLE_BLUE_WARP)) {
Flags_SetEventChkInf(EVENTCHKINF_USED_WATER_TEMPLE_BLUE_WARP);
Flags_SetRandomizerInf(RAND_INF_DUNGEONS_DONE_WATER_TEMPLE);
@@ -897,7 +897,7 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) {
}
gSaveContext.nextCutsceneIndex = 0;
}
} else if (play->sceneNum == SCENE_JYASINBOSS) {
} else if (play->sceneNum == SCENE_SPIRIT_TEMPLE_BOSS) {
if (!CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT) || gSaveContext.n64ddFlag) {
Flags_SetRandomizerInf(RAND_INF_DUNGEONS_DONE_SPIRIT_TEMPLE);
@@ -918,7 +918,7 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) {
}
gSaveContext.nextCutsceneIndex = 0;
}
} else if (play->sceneNum == SCENE_HAKADAN_BS) {
} else if (play->sceneNum == SCENE_SHADOW_TEMPLE_BOSS) {
if (!CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW) || gSaveContext.n64ddFlag) {
Flags_SetRandomizerInf(RAND_INF_DUNGEONS_DONE_SHADOW_TEMPLE);
@@ -201,7 +201,7 @@ void EnBox_Init(Actor* thisx, PlayState* play2) {
EnBox_UpdateSizeAndTexture(this, play);
// For SOH we spawn a chest actor instead of rendering the object from scratch for forest boss
// key chest, and it's up on the wall so disable gravity for it.
if (play->sceneNum == SCENE_BMORI1 && this->dyna.actor.params == 10222) {
if (play->sceneNum == SCENE_FOREST_TEMPLE && this->dyna.actor.params == 10222) {
this->movementFlags = ENBOX_MOVE_IMMOBILE;
}
@@ -642,7 +642,7 @@ void EnBox_UpdateSizeAndTexture(EnBox* this, PlayState* play) {
GetItemCategory getItemCategory;
int isVanilla = csmc == CSMC_DISABLED || (requiresStoneAgony && !CHECK_QUEST_ITEM(QUEST_STONE_OF_AGONY)) ||
(play->sceneNum == SCENE_TAKARAYA && this->dyna.actor.room != 6); // Exclude treasure game chests except for the final room
(play->sceneNum == SCENE_TREASURE_BOX_SHOP && this->dyna.actor.room != 6); // Exclude treasure game chests except for the final room
if (!isVanilla) {
getItemCategory = this->getItemEntry.getItemCategory;
@@ -744,24 +744,24 @@ void EnBox_UpdateSizeAndTexture(EnBox* this, PlayState* play) {
s16 isLarge = this->dyna.actor.scale.x == 0.01f;
// Make Ganon's Castle Zelda's Lullaby chest reachable when large.
if ((params & 0xF000) == 0x8000 && sceneNum == SCENE_GANONTIKA && room == 9) {
if ((params & 0xF000) == 0x8000 && sceneNum == SCENE_INSIDE_GANONS_CASTLE && room == 9) {
this->dyna.actor.world.pos.z = isLarge ? -962.0f : -952.0f;
}
// Make MQ Deku Tree Song of Time chest reachable when large.
if (params == 0x5AA0 && sceneNum == SCENE_YDAN && room == 5) {
if (params == 0x5AA0 && sceneNum == SCENE_DEKU_TREE && room == 5) {
this->dyna.actor.world.pos.x = isLarge ? -1380.0f : -1376.0f;
}
// Make Ganon's Castle Gold Gauntlets chest reachable with hookshot from the
// switch platform when small.
if (params == 0x36C5 && sceneNum == SCENE_GANONTIKA && room == 12) {
if (params == 0x36C5 && sceneNum == SCENE_INSIDE_GANONS_CASTLE && room == 12) {
this->dyna.actor.world.pos.x = isLarge ? 1757.0f : 1777.0f;
this->dyna.actor.world.pos.z = isLarge ? -3595.0f : -3626.0f;
}
// Make Spirit Temple Compass Chest reachable with hookshot when small.
if (params == 0x3804 && sceneNum == SCENE_JYASINZOU && room == 14) {
if (params == 0x3804 && sceneNum == SCENE_SPIRIT_TEMPLE && room == 14) {
this->dyna.actor.world.pos.x = isLarge ? 358.0f : 400.0f;
}
}
@@ -122,7 +122,7 @@ void EnCow_Init(Actor* thisx, PlayState* play) {
Collider_SetCylinder(play, &this->colliders[1], &this->actor, &sCylinderInit);
func_809DEE9C(this);
this->actionFunc = func_809DF96C;
if (play->sceneNum == SCENE_LINK_HOME) {
if (play->sceneNum == SCENE_LINKS_HOUSE) {
if (!LINK_IS_ADULT && !CVarGetInteger("gCowOfTime", 0)) {
Actor_Kill(&this->actor);
return;
@@ -223,12 +223,12 @@ void EnCow_MoveForRandomizer(EnCow* this, PlayState* play) {
}
// Move left cow in lon lon tower
if (play->sceneNum == SCENE_SOUKO && this->actor.world.pos.x == -108 && this->actor.world.pos.z == -65) {
if (play->sceneNum == SCENE_LON_LON_BUILDINGS && this->actor.world.pos.x == -108 && this->actor.world.pos.z == -65) {
this->actor.world.pos.x = -229.0f;
this->actor.world.pos.z = 157.0f;
this->actor.shape.rot.y = 15783.0f;
// Move right cow in lon lon stable
} else if (play->sceneNum == SCENE_MALON_STABLE && this->actor.world.pos.x == -3 && this->actor.world.pos.z == -254) {
} else if (play->sceneNum == SCENE_STABLE && this->actor.world.pos.x == -3 && this->actor.world.pos.z == -254) {
this->actor.world.pos.x += 119.0f;
}
}
@@ -163,9 +163,9 @@ void EnDaiku_Init(Actor* thisx, PlayState* play) {
isFree = true;
}
if (isFree == true && play->sceneNum == SCENE_GERUDOWAY) {
if (isFree == true && play->sceneNum == SCENE_THIEVES_HIDEOUT) {
noKill = false;
} else if (isFree == false && play->sceneNum == SCENE_TENT) {
} else if (isFree == false && play->sceneNum == SCENE_CARPENTERS_TENT) {
noKill = false;
}
@@ -197,7 +197,7 @@ void EnDaiku_Init(Actor* thisx, PlayState* play) {
this->initRot = this->actor.world.rot;
this->initPos = this->actor.world.pos;
if (play->sceneNum == SCENE_GERUDOWAY) {
if (play->sceneNum == SCENE_THIEVES_HIDEOUT) {
EnDaiku_ChangeAnim(this, ENDAIKU_ANIM_STAND, &this->currentAnimIndex);
this->stateFlags |= ENDAIKU_STATEFLAG_1 | ENDAIKU_STATEFLAG_2;
this->actionFunc = EnDaiku_Jailed;
@@ -227,7 +227,7 @@ s32 EnDaiku_UpdateTalking(EnDaiku* this, PlayState* play) {
s32 newTalkState = ENDAIKU_STATE_TALKING;
if (Message_GetState(&play->msgCtx) == TEXT_STATE_DONE) {
if (play->sceneNum == SCENE_GERUDOWAY) {
if (play->sceneNum == SCENE_THIEVES_HIDEOUT) {
if (Message_ShouldAdvance(play)) {
if (this->actor.textId == 0x6007) {
Flags_SetSwitch(play, this->startFightSwitchFlag);
@@ -237,7 +237,7 @@ s32 EnDaiku_UpdateTalking(EnDaiku* this, PlayState* play) {
newTalkState = ENDAIKU_STATE_NO_TALK;
}
}
} else if (play->sceneNum == SCENE_TENT) {
} else if (play->sceneNum == SCENE_CARPENTERS_TENT) {
if (Message_ShouldAdvance(play)) {
switch (this->actor.textId) {
case 0x6061:
@@ -270,7 +270,7 @@ void EnDaiku_UpdateText(EnDaiku* this, PlayState* play) {
Actor_GetScreenPos(play, &this->actor, &sp2E, &sp2C);
if (sp2E >= 0 && sp2E <= 320 && sp2C >= 0 && sp2C <= 240 && this->talkState == ENDAIKU_STATE_CAN_TALK &&
func_8002F2CC(&this->actor, play, 100.0f) == 1) {
if (play->sceneNum == SCENE_GERUDOWAY) {
if (play->sceneNum == SCENE_THIEVES_HIDEOUT) {
if (this->stateFlags & ENDAIKU_STATEFLAG_GERUDODEFEATED) {
freedCount = 0;
for (carpenterType = 0; carpenterType < 4; carpenterType++) {
@@ -297,7 +297,7 @@ void EnDaiku_UpdateText(EnDaiku* this, PlayState* play) {
(ENDAIKU_STATEFLAG_GERUDOFIGHTING | ENDAIKU_STATEFLAG_GERUDODEFEATED))) {
this->actor.textId = 0x6007;
}
} else if (play->sceneNum == SCENE_TENT) {
} else if (play->sceneNum == SCENE_CARPENTERS_TENT) {
switch (this->actor.params & 3) {
case 0:
if (CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT)) {
@@ -131,18 +131,18 @@ void EnDaikuKakariko_Init(Actor* thisx, PlayState* play) {
if (LINK_AGE_IN_YEARS == YEARS_CHILD) {
switch (play->sceneNum) {
case SCENE_SPOT01:
case SCENE_KAKARIKO_VILLAGE:
if (IS_DAY) {
this->flags |= 1;
this->flags |= initFlags[this->actor.params & 3];
}
break;
case SCENE_KAKARIKO:
case SCENE_KAKARIKO_CENTER_GUEST_HOUSE:
if (IS_NIGHT) {
this->flags |= 2;
}
break;
case SCENE_DRAG:
case SCENE_POTION_SHOP_KAKARIKO:
this->flags |= 4;
break;
}
@@ -273,7 +273,7 @@ void EnDog_Init(Actor* thisx, PlayState* play) {
Actor_Kill(&this->actor);
}
break;
case SCENE_IMPA: // Richard's Home
case SCENE_DOG_LADY_HOUSE: // Richard's Home
if (!(this->actor.params & 0x8000)) {
if (!gSaveContext.dogIsLost) {
this->nextBehavior = DOG_SIT;
@@ -49,11 +49,11 @@ const ActorInit En_Door_InitVars = {
* Controls which object and display lists to use in a given scene
*/
static EnDoorInfo sDoorInfo[] = {
{ SCENE_HIDAN, 1, OBJECT_HIDAN_OBJECTS },
{ SCENE_MIZUSIN, 2, OBJECT_MIZU_OBJECTS },
{ SCENE_HAKADAN, 3, OBJECT_HAKA_DOOR },
{ SCENE_HAKADANCH, 3, OBJECT_HAKA_DOOR },
{ SCENE_BMORI1, 0, OBJECT_GAMEPLAY_KEEP }, // Hacky fix, but behavior same as console.
{ SCENE_FIRE_TEMPLE, 1, OBJECT_HIDAN_OBJECTS },
{ SCENE_WATER_TEMPLE, 2, OBJECT_MIZU_OBJECTS },
{ SCENE_SHADOW_TEMPLE, 3, OBJECT_HAKA_DOOR },
{ SCENE_BOTTOM_OF_THE_WELL, 3, OBJECT_HAKA_DOOR },
{ SCENE_FOREST_TEMPLE, 0, OBJECT_GAMEPLAY_KEEP }, // Hacky fix, but behavior same as console.
// KEEP objects should remain last and in this order
{ -1, 0, OBJECT_GAMEPLAY_KEEP },
{ -1, 4, OBJECT_GAMEPLAY_FIELD_KEEP },
@@ -276,8 +276,8 @@ void EnDoor_Open(EnDoor* this, PlayState* play) {
this->playerIsOpening = 0;
} else if (Animation_OnFrame(&this->skelAnime, sDoorAnimOpenFrames[this->animStyle])) {
Audio_PlayActorSound2(&this->actor,
(play->sceneNum == SCENE_HAKADAN || play->sceneNum == SCENE_HAKADANCH ||
play->sceneNum == SCENE_HIDAN)
(play->sceneNum == SCENE_SHADOW_TEMPLE || play->sceneNum == SCENE_BOTTOM_OF_THE_WELL ||
play->sceneNum == SCENE_FIRE_TEMPLE)
? NA_SE_EV_IRON_DOOR_OPEN
: NA_SE_OC_DOOR_OPEN);
if (this->skelAnime.playSpeed < 1.5f) {
@@ -288,8 +288,8 @@ void EnDoor_Open(EnDoor* this, PlayState* play) {
}
} else if (Animation_OnFrame(&this->skelAnime, sDoorAnimCloseFrames[this->animStyle])) {
Audio_PlayActorSound2(&this->actor,
(play->sceneNum == SCENE_HAKADAN || play->sceneNum == SCENE_HAKADANCH ||
play->sceneNum == SCENE_HIDAN)
(play->sceneNum == SCENE_SHADOW_TEMPLE || play->sceneNum == SCENE_BOTTOM_OF_THE_WELL ||
play->sceneNum == SCENE_FIRE_TEMPLE)
? NA_SE_EV_IRON_DOOR_CLOSE
: NA_SE_EV_DOOR_CLOSE);
}
+2 -2
View File
@@ -155,9 +155,9 @@ s16 func_809FDCDC(PlayState* play, Actor* actor) {
}
s32 func_809FDDB4(EnDu* this, PlayState* play) {
if (play->sceneNum == SCENE_SPOT18 && LINK_IS_CHILD) {
if (play->sceneNum == SCENE_GORON_CITY && LINK_IS_CHILD) {
return 1;
} else if (play->sceneNum == SCENE_HIDAN && !Flags_GetInfTable(INFTABLE_SPOKE_TO_DARUNIA_IN_FIRE_TEMPLE) && LINK_IS_ADULT) {
} else if (play->sceneNum == SCENE_FIRE_TEMPLE && !Flags_GetInfTable(INFTABLE_SPOKE_TO_DARUNIA_IN_FIRE_TEMPLE) && LINK_IS_ADULT) {
return 1;
}
return 0;
@@ -877,7 +877,7 @@ void func_80A03CF8(EnElf* this, PlayState* play) {
func_80A02C98(this, &nextPos, 0.2f);
}
if ((play->sceneNum == SCENE_LINK_HOME) && (gSaveContext.sceneSetupIndex == 4)) {
if ((play->sceneNum == SCENE_LINKS_HOUSE) && (gSaveContext.sceneSetupIndex == 4)) {
// play dash sound as Navi enters Links house in the intro
if (play->csCtx.frames == 55) {
Audio_PlayActorSound2(&this->actor, NA_SE_EV_FAIRY_DASH);
@@ -70,7 +70,7 @@ void EnEncount1_Init(Actor* thisx, PlayState* play) {
case SPAWNER_LEEVER:
this->timer = 30;
this->maxCurSpawns = 5;
if (play->sceneNum == SCENE_SPOT13) { // Haunted Wasteland
if (play->sceneNum == SCENE_HAUNTED_WASTELAND) { // Haunted Wasteland
this->reduceLeevers = true;
this->maxCurSpawns = 3;
}
@@ -82,7 +82,7 @@ void EnEncount1_Init(Actor* thisx, PlayState* play) {
break;
case SPAWNER_STALCHILDREN:
case SPAWNER_WOLFOS:
if (play->sceneNum == SCENE_SPOT00) { // Hyrule Field
if (play->sceneNum == SCENE_HYRULE_FIELD) { // Hyrule Field
this->maxTotalSpawns = 10000;
}
this->updateFunc = EnEncount1_SpawnStalchildOrWolfos;
@@ -224,7 +224,7 @@ void EnEncount1_SpawnStalchildOrWolfos(EnEncount1* this, PlayState* play) {
s32 bgId;
f32 floorY;
if (play->sceneNum != SCENE_SPOT00) {
if (play->sceneNum != SCENE_HYRULE_FIELD) {
if ((fabsf(player->actor.world.pos.y - this->actor.world.pos.y) > 100.0f) ||
(this->actor.xzDistToPlayer > this->spawnRange)) {
this->outOfRangeTimer++;
@@ -247,7 +247,7 @@ void EnEncount1_SpawnStalchildOrWolfos(EnEncount1* this, PlayState* play) {
(CVarGetInteger("gRandomizedEnemies", 0) && enemyCount < 15)) {
while ((this->curNumSpawn < this->maxCurSpawns && this->totalNumSpawn < this->maxTotalSpawns) ||
(CVarGetInteger("gRandomizedEnemies", 0) && enemyCount < 15)) {
if (play->sceneNum == SCENE_SPOT00) {
if (play->sceneNum == SCENE_HYRULE_FIELD) {
if ((player->unk_89E == 0) || (player->actor.floorBgId != BGCHECK_SCENE) ||
!(player->actor.bgCheckFlags & 1) || (player->stateFlags1 & 0x08000000)) {
@@ -305,7 +305,7 @@ void EnEncount1_SpawnStalchildOrWolfos(EnEncount1* this, PlayState* play) {
if (this->curNumSpawn >= this->maxCurSpawns) {
this->fieldSpawnTimer = 100;
}
if (play->sceneNum != SCENE_SPOT00) {
if (play->sceneNum != SCENE_HYRULE_FIELD) {
this->totalNumSpawn++;
}
} else {
@@ -39,7 +39,7 @@ const ActorInit En_Encount2_InitVars = {
void EnEncount2_Init(Actor* thisx, PlayState* play) {
EnEncount2* this = (EnEncount2*)thisx;
if (play->sceneNum != SCENE_SPOT16) {
if (play->sceneNum != SCENE_DEATH_MOUNTAIN_TRAIL) {
this->isNotDeathMountain = true;
}
@@ -77,8 +77,8 @@ void EnEncount2_Wait(EnEncount2* this, PlayState* play) {
} else if ((this->actor.xzDistToPlayer < 700.0f) && (Flags_GetSwitch(play, 0x37))) {
s16 scene = play->sceneNum;
if (((scene == SCENE_GANON_DEMO) || (scene == SCENE_GANON_FINAL) || (scene == SCENE_GANON_SONOGO) ||
(scene == SCENE_GANONTIKA_SONOGO)) &&
if (((scene == SCENE_GANON_BOSS) || (scene == SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR) || (scene == SCENE_GANONS_TOWER_COLLAPSE_INTERIOR) ||
(scene == SCENE_INSIDE_GANONS_CASTLE_COLLAPSE)) &&
(!this->collapseSpawnerInactive)) {
spawnerState = ENCOUNT2_ACTIVE_GANONS_TOWER;
}
@@ -157,8 +157,8 @@ void EnEncount2_SpawnRocks(EnEncount2* this, PlayState* play) {
} else if ((this->actor.xzDistToPlayer < 700.0f) && (Flags_GetSwitch(play, 0x37) != 0)) {
s16 scene = play->sceneNum;
if (((scene == SCENE_GANON_DEMO) || (scene == SCENE_GANON_FINAL) || (scene == SCENE_GANON_SONOGO) ||
(scene == SCENE_GANONTIKA_SONOGO)) &&
if (((scene == SCENE_GANON_BOSS) || (scene == SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR) || (scene == SCENE_GANONS_TOWER_COLLAPSE_INTERIOR) ||
(scene == SCENE_INSIDE_GANONS_CASTLE_COLLAPSE)) &&
(!this->collapseSpawnerInactive)) {
maxRocks = 1;
spawnerState = ENCOUNT2_ACTIVE_GANONS_TOWER;
@@ -329,7 +329,7 @@ void EnEncount2_ParticleUpdate(EnEncount2* this, PlayState* play) {
Math_ApproachF(&particle->pos.z, targetPos.z, 0.3f, 30.0f);
Math_ApproachF(&particle->moveDirection.y, -20.0f, 0.9f, 1.0f);
if (play->sceneNum != SCENE_SPOT16) {
if (play->sceneNum != SCENE_DEATH_MOUNTAIN_TRAIL) {
if (particle->pos.y < (player->actor.floorHeight - 50.0f)) {
particle->isAlive = 0;
}
@@ -225,7 +225,7 @@ void EnGSwitch_SilverRupeeTracker(EnGSwitch* this, PlayState* play) {
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 時はまさに世紀末〜 ☆☆☆☆☆ %d\n" VT_RST, this->switchFlag);
// "Last!"
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ らすとぉ! ☆☆☆☆☆ \n" VT_RST);
if ((play->sceneNum == SCENE_MEN) && (this->actor.room == 2)) {
if ((play->sceneNum == SCENE_GERUDO_TRAINING_GROUND) && (this->actor.room == 2)) {
Flags_SetTempClear(play, this->actor.room);
} else {
func_80078884(NA_SE_SY_CORRECT_CHIME);
@@ -121,7 +121,7 @@ void EnGe1_Init(Actor* thisx, PlayState* play) {
Actor_SetScale(&this->actor, 0.01f);
// In Gerudo Valley
this->actor.uncullZoneForward = ((play->sceneNum == SCENE_SPOT09) ? 1000.0f : 1200.0f);
this->actor.uncullZoneForward = ((play->sceneNum == SCENE_GERUDO_VALLEY) ? 1000.0f : 1200.0f);
switch (this->actor.params & 0xFF) {
@@ -126,7 +126,7 @@ void EnGe2_Init(Actor* thisx, PlayState* play) {
this->actor.colChkInfo.mass = MASS_IMMOVABLE;
Actor_SetScale(&this->actor, 0.01f);
if (play->sceneNum == SCENE_SPOT09) {
if (play->sceneNum == SCENE_GERUDO_VALLEY) {
this->actor.uncullZoneForward = 1000.0f;
} else {
this->actor.uncullZoneForward = 1200.0f;
+4 -4
View File
@@ -361,16 +361,16 @@ void EnGo_ChangeAnim(EnGo* this, s32 index) {
s32 EnGo_IsActorSpawned(EnGo* this, PlayState* play) {
if (((this->actor.params) & 0xF0) == 0x90) {
return true;
} else if (play->sceneNum == SCENE_HIDAN && !Flags_GetSwitch(play, (this->actor.params) >> 8) &&
} else if (play->sceneNum == SCENE_FIRE_TEMPLE && !Flags_GetSwitch(play, (this->actor.params) >> 8) &&
LINK_IS_ADULT && (this->actor.params & 0xF0) == 0x10) {
return true;
} else if (play->sceneNum == SCENE_SPOT18 && LINK_IS_ADULT && (this->actor.params & 0xF0) == 0x00) {
} else if (play->sceneNum == SCENE_GORON_CITY && LINK_IS_ADULT && (this->actor.params & 0xF0) == 0x00) {
return true;
} else if (play->sceneNum == SCENE_SPOT16 && LINK_IS_CHILD &&
} else if (play->sceneNum == SCENE_DEATH_MOUNTAIN_TRAIL && LINK_IS_CHILD &&
((this->actor.params & 0xF0) == 0x20 || (this->actor.params & 0xF0) == 0x30 ||
(this->actor.params & 0xF0) == 0x40)) {
return true;
} else if (play->sceneNum == SCENE_SPOT18 && LINK_IS_CHILD &&
} else if (play->sceneNum == SCENE_GORON_CITY && LINK_IS_CHILD &&
((this->actor.params & 0xF0) == 0x50 || (this->actor.params & 0xF0) == 0x60 ||
(this->actor.params & 0xF0) == 0x70)) {
return true;
@@ -127,7 +127,7 @@ s32 EnGoroiwa_Vec3fNormalize(Vec3f* ret, Vec3f* a) {
}
void EnGoroiwa_SetSpeed(EnGoroiwa* this, PlayState* play) {
if (play->sceneNum == SCENE_SPOT04) {
if (play->sceneNum == SCENE_KOKIRI_FOREST) {
this->isInKokiri = true;
R_EN_GOROIWA_SPEED = 920;
} else {
@@ -195,7 +195,7 @@ void func_80A56614(EnHeishi4* this, PlayState* play) {
this->actionFunc = func_80A56B40;
return;
}
if (play->sceneNum == SCENE_MIHARIGOYA) {
if (play->sceneNum == SCENE_MARKET_GUARD_HOUSE) {
if (IS_DAY) {
this->actor.textId = 0x7004;
} else {
@@ -120,7 +120,7 @@ void EnHoll_SwapRooms(PlayState* play) {
// Horizontal Planes
void func_80A58DD4(EnHoll* this, PlayState* play) {
Player* player = GET_PLAYER(play);
s32 phi_t0 = ((play->sceneNum == SCENE_JYASINZOU) ? 1 : 0) & 0xFFFFFFFF;
s32 phi_t0 = ((play->sceneNum == SCENE_SPIRIT_TEMPLE) ? 1 : 0) & 0xFFFFFFFF;
Vec3f vec;
f32 absZ;
s32 transitionActorIdx;
+184 -184
View File
@@ -157,183 +157,183 @@ typedef struct {
static EnHorseSpawnpoint sHorseSpawns[] = {
// Hyrule Field
{ SCENE_SPOT00, 16, 0, 1341, 0 },
{ SCENE_SPOT00, -1297, 0, 1459, 0 },
{ SCENE_SPOT00, -5416, -300, 1296, 0 },
{ SCENE_SPOT00, -4667, -300, 3620, 0 },
{ SCENE_SPOT00, -3837, 81, 5537, 0 },
{ SCENE_SPOT00, -5093, -226, 6661, 0 },
{ SCENE_SPOT00, -6588, -79, 5053, 0 },
{ SCENE_SPOT00, -7072, -500, 7538, 0 },
{ SCENE_SPOT00, -6139, -500, 8910, 0 },
{ SCENE_SPOT00, -8497, -300, 7802, 0 },
{ SCENE_SPOT00, -5481, -499, 12127, 0 },
{ SCENE_SPOT00, -4808, -700, 13583, 0 },
{ SCENE_SPOT00, -3416, -490, 12092, 0 },
{ SCENE_SPOT00, -2915, 100, 8339, 0 },
{ SCENE_SPOT00, -2277, -500, 13247, 0 },
{ SCENE_SPOT00, -1026, -500, 12101, 0 },
{ SCENE_SPOT00, 1427, -500, 13341, 0 },
{ SCENE_SPOT00, -200, -486, 10205, 0 },
{ SCENE_SPOT00, -1469, 100, 7496, 0 },
{ SCENE_SPOT00, -995, 168, 5652, 0 },
{ SCENE_SPOT00, 1938, 89, 6232, 0 },
{ SCENE_SPOT00, 1387, -105, 9206, 0 },
{ SCENE_SPOT00, 1571, -223, 7701, 0 },
{ SCENE_SPOT00, 3893, -121, 7068, 0 },
{ SCENE_SPOT00, 3179, 373, 5221, 0 },
{ SCENE_SPOT00, 4678, -20, 3869, 0 },
{ SCENE_SPOT00, 3460, 246, 4207, 0 },
{ SCENE_SPOT00, 3686, 128, 2366, 0 },
{ SCENE_SPOT00, 1791, 18, 152, 0 },
{ SCENE_SPOT00, 3667, -16, 1399, 0 },
{ SCENE_SPOT00, 1827, -15, 983, 0 },
{ SCENE_SPOT00, 1574, 399, 4318, 0 },
{ SCENE_SPOT00, 716, 95, 3391, 0 },
{ SCENE_SPOT00, -1189, -41, 4739, 0 },
{ SCENE_SPOT00, -1976, -171, 4172, 0 },
{ SCENE_SPOT00, 1314, 391, 5665, 0 },
{ SCENE_SPOT00, 112, 0, 1959, 0 },
{ SCENE_SPOT00, -3011, -111, 9397, 0 },
{ SCENE_SPOT00, -5674, -270, 8585, 0 },
{ SCENE_SPOT00, -8861, -300, 7836, 0 },
{ SCENE_SPOT00, -6056, -500, 7810, 0 },
{ SCENE_SPOT00, -7306, -500, 5994, 0 },
{ SCENE_SPOT00, -7305, -500, 7605, 0 },
{ SCENE_SPOT00, -7439, -300, 7600, 0 },
{ SCENE_SPOT00, -7464, -300, 6268, 0 },
{ SCENE_SPOT00, -8080, -300, 7553, 0 },
{ SCENE_SPOT00, -8091, -300, 7349, 0 },
{ SCENE_SPOT00, -8785, -300, 7383, 0 },
{ SCENE_SPOT00, -8745, -300, 7508, 0 },
{ SCENE_SPOT00, -8777, -300, 7788, 0 },
{ SCENE_SPOT00, -8048, -299, 7738, 0 },
{ SCENE_SPOT00, -7341, -184, 7730, 0 },
{ SCENE_SPOT00, -6410, -288, 7824, 0 },
{ SCENE_SPOT00, -6326, -290, 8205, 0 },
{ SCENE_SPOT00, -6546, -292, 8400, 0 },
{ SCENE_SPOT00, -7533, -180, 8459, 0 },
{ SCENE_SPOT00, -8024, -295, 7903, 0 },
{ SCENE_SPOT00, -8078, -308, 7994, 0 },
{ SCENE_SPOT00, -9425, -287, 7696, 0 },
{ SCENE_SPOT00, -9322, -292, 7577, 0 },
{ SCENE_SPOT00, -9602, -199, 7160, 0 },
{ SCENE_SPOT00, -9307, -300, 7758, 0 },
{ SCENE_SPOT00, -9230, -300, 7642, 0 },
{ SCENE_SPOT00, -7556, -499, 8695, 0 },
{ SCENE_SPOT00, -6438, -500, 8606, 0 },
{ SCENE_SPOT00, -6078, -500, 8258, 0 },
{ SCENE_SPOT00, -6233, -500, 7613, 0 },
{ SCENE_SPOT00, -5035, -205, 7814, 0 },
{ SCENE_SPOT00, -5971, -500, 8501, 0 },
{ SCENE_SPOT00, -5724, -498, 10123, 0 },
{ SCENE_SPOT00, -5094, -392, 11106, 0 },
{ SCENE_SPOT00, -5105, -393, 11312, 0 },
{ SCENE_SPOT00, -4477, -314, 11132, 0 },
{ SCENE_SPOT00, -3867, -380, 11419, 0 },
{ SCENE_SPOT00, -2952, -500, 11944, 0 },
{ SCENE_SPOT00, -2871, -488, 11743, 0 },
{ SCENE_SPOT00, -3829, -372, 11327, 0 },
{ SCENE_SPOT00, -4439, -293, 10989, 0 },
{ SCENE_SPOT00, -5014, -381, 11086, 0 },
{ SCENE_SPOT00, -5113, -188, 10968, 0 },
{ SCENE_SPOT00, -5269, -188, 11156, 0 },
{ SCENE_SPOT00, -5596, -178, 9972, 0 },
{ SCENE_SPOT00, -5801, -288, 8518, 0 },
{ SCENE_SPOT00, -4910, -178, 7931, 0 },
{ SCENE_SPOT00, -3586, 73, 8140, 0 },
{ SCENE_SPOT00, -4487, -106, 9362, 0 },
{ SCENE_SPOT00, -4339, -112, 6412, 0 },
{ SCENE_SPOT00, -3417, 105, 8194, 0 },
{ SCENE_SPOT00, -4505, -20, 6608, 0 },
{ SCENE_SPOT00, -5038, -199, 6603, 0 },
{ SCENE_SPOT00, -4481, 1, 6448, 0 },
{ SCENE_SPOT00, -5032, -168, 6418, 0 },
{ SCENE_SPOT00, -5256, -700, 14329, 0 },
{ SCENE_SPOT00, -5749, -820, 15380, 0 },
{ SCENE_SPOT00, -3122, -700, 13608, 0 },
{ SCENE_SPOT00, -3758, -525, 13228, 0 },
{ SCENE_SPOT00, -3670, -500, 13123, 0 },
{ SCENE_SPOT00, -2924, -500, 13526, 0 },
{ SCENE_SPOT00, 1389, -115, 9370, 0 },
{ SCENE_SPOT00, 548, -116, 8889, 0 },
{ SCENE_SPOT00, -106, -107, 8530, 0 },
{ SCENE_SPOT00, -1608, 85, 7646, 0 },
{ SCENE_SPOT00, -5300, -700, 13772, 0 },
{ SCENE_SPOT00, -5114, -700, 13400, 0 },
{ SCENE_SPOT00, -4561, -700, 13700, 0 },
{ SCENE_SPOT00, -4762, -700, 14084, 0 },
{ SCENE_SPOT00, -2954, 100, 8216, 0 },
{ SCENE_SPOT00, 1460, -104, 9246, 0 },
{ SCENE_SPOT00, 629, -105, 8791, 0 },
{ SCENE_SPOT00, -10, -90, 8419, 0 },
{ SCENE_SPOT00, -1462, 100, 7504, 0 },
{ SCENE_SPOT00, -3018, -500, 12493, 0 },
{ SCENE_SPOT00, -2994, -311, 10331, 0 },
{ SCENE_SPOT00, -4006, -700, 14152, 0 },
{ SCENE_SPOT00, -4341, -500, 12743, 0 },
{ SCENE_SPOT00, -5879, -497, 6799, 0 },
{ SCENE_SPOT00, 22, -473, 10103, 0 },
{ SCENE_SPOT00, -1389, -192, 8874, 0 },
{ SCENE_SPOT00, -4, 92, 6866, 0 },
{ SCENE_SPOT00, 483, 104, 6637, 0 },
{ SCENE_SPOT00, 1580, 183, 5987, 0 },
{ SCENE_SPOT00, 1548, 308, 5077, 0 },
{ SCENE_SPOT00, 1511, 399, 4267, 0 },
{ SCENE_SPOT00, 1358, 385, 4271, 0 },
{ SCENE_SPOT00, 1379, 395, 5063, 0 },
{ SCENE_SPOT00, 1360, 394, 5870, 0 },
{ SCENE_SPOT00, 813, 283, 6194, 0 },
{ SCENE_SPOT00, -57, 101, 6743, 0 },
{ SCENE_SPOT00, 91, 325, 5143, 0 },
{ SCENE_SPOT00, 1425, -214, 7659, 0 },
{ SCENE_SPOT00, 3487, -19, 880, 0 },
{ SCENE_SPOT00, 2933, 152, 2094, 0 },
{ SCENE_SPOT00, 2888, -145, 6862, 0 },
{ SCENE_SPOT00, 1511, 67, 6471, 0 },
{ SCENE_SPOT00, 4051, -47, 1722, 0 },
{ SCENE_SPOT00, -7335, -500, 8627, 0 },
{ SCENE_SPOT00, -7728, -462, 8498, 0 },
{ SCENE_SPOT00, -7791, -446, 8832, 0 },
{ SCENE_SPOT00, -2915, -435, 11334, 0 },
{ SCENE_SPOT00, 165, -278, 3352, 0 },
{ SCENE_HYRULE_FIELD, 16, 0, 1341, 0 },
{ SCENE_HYRULE_FIELD, -1297, 0, 1459, 0 },
{ SCENE_HYRULE_FIELD, -5416, -300, 1296, 0 },
{ SCENE_HYRULE_FIELD, -4667, -300, 3620, 0 },
{ SCENE_HYRULE_FIELD, -3837, 81, 5537, 0 },
{ SCENE_HYRULE_FIELD, -5093, -226, 6661, 0 },
{ SCENE_HYRULE_FIELD, -6588, -79, 5053, 0 },
{ SCENE_HYRULE_FIELD, -7072, -500, 7538, 0 },
{ SCENE_HYRULE_FIELD, -6139, -500, 8910, 0 },
{ SCENE_HYRULE_FIELD, -8497, -300, 7802, 0 },
{ SCENE_HYRULE_FIELD, -5481, -499, 12127, 0 },
{ SCENE_HYRULE_FIELD, -4808, -700, 13583, 0 },
{ SCENE_HYRULE_FIELD, -3416, -490, 12092, 0 },
{ SCENE_HYRULE_FIELD, -2915, 100, 8339, 0 },
{ SCENE_HYRULE_FIELD, -2277, -500, 13247, 0 },
{ SCENE_HYRULE_FIELD, -1026, -500, 12101, 0 },
{ SCENE_HYRULE_FIELD, 1427, -500, 13341, 0 },
{ SCENE_HYRULE_FIELD, -200, -486, 10205, 0 },
{ SCENE_HYRULE_FIELD, -1469, 100, 7496, 0 },
{ SCENE_HYRULE_FIELD, -995, 168, 5652, 0 },
{ SCENE_HYRULE_FIELD, 1938, 89, 6232, 0 },
{ SCENE_HYRULE_FIELD, 1387, -105, 9206, 0 },
{ SCENE_HYRULE_FIELD, 1571, -223, 7701, 0 },
{ SCENE_HYRULE_FIELD, 3893, -121, 7068, 0 },
{ SCENE_HYRULE_FIELD, 3179, 373, 5221, 0 },
{ SCENE_HYRULE_FIELD, 4678, -20, 3869, 0 },
{ SCENE_HYRULE_FIELD, 3460, 246, 4207, 0 },
{ SCENE_HYRULE_FIELD, 3686, 128, 2366, 0 },
{ SCENE_HYRULE_FIELD, 1791, 18, 152, 0 },
{ SCENE_HYRULE_FIELD, 3667, -16, 1399, 0 },
{ SCENE_HYRULE_FIELD, 1827, -15, 983, 0 },
{ SCENE_HYRULE_FIELD, 1574, 399, 4318, 0 },
{ SCENE_HYRULE_FIELD, 716, 95, 3391, 0 },
{ SCENE_HYRULE_FIELD, -1189, -41, 4739, 0 },
{ SCENE_HYRULE_FIELD, -1976, -171, 4172, 0 },
{ SCENE_HYRULE_FIELD, 1314, 391, 5665, 0 },
{ SCENE_HYRULE_FIELD, 112, 0, 1959, 0 },
{ SCENE_HYRULE_FIELD, -3011, -111, 9397, 0 },
{ SCENE_HYRULE_FIELD, -5674, -270, 8585, 0 },
{ SCENE_HYRULE_FIELD, -8861, -300, 7836, 0 },
{ SCENE_HYRULE_FIELD, -6056, -500, 7810, 0 },
{ SCENE_HYRULE_FIELD, -7306, -500, 5994, 0 },
{ SCENE_HYRULE_FIELD, -7305, -500, 7605, 0 },
{ SCENE_HYRULE_FIELD, -7439, -300, 7600, 0 },
{ SCENE_HYRULE_FIELD, -7464, -300, 6268, 0 },
{ SCENE_HYRULE_FIELD, -8080, -300, 7553, 0 },
{ SCENE_HYRULE_FIELD, -8091, -300, 7349, 0 },
{ SCENE_HYRULE_FIELD, -8785, -300, 7383, 0 },
{ SCENE_HYRULE_FIELD, -8745, -300, 7508, 0 },
{ SCENE_HYRULE_FIELD, -8777, -300, 7788, 0 },
{ SCENE_HYRULE_FIELD, -8048, -299, 7738, 0 },
{ SCENE_HYRULE_FIELD, -7341, -184, 7730, 0 },
{ SCENE_HYRULE_FIELD, -6410, -288, 7824, 0 },
{ SCENE_HYRULE_FIELD, -6326, -290, 8205, 0 },
{ SCENE_HYRULE_FIELD, -6546, -292, 8400, 0 },
{ SCENE_HYRULE_FIELD, -7533, -180, 8459, 0 },
{ SCENE_HYRULE_FIELD, -8024, -295, 7903, 0 },
{ SCENE_HYRULE_FIELD, -8078, -308, 7994, 0 },
{ SCENE_HYRULE_FIELD, -9425, -287, 7696, 0 },
{ SCENE_HYRULE_FIELD, -9322, -292, 7577, 0 },
{ SCENE_HYRULE_FIELD, -9602, -199, 7160, 0 },
{ SCENE_HYRULE_FIELD, -9307, -300, 7758, 0 },
{ SCENE_HYRULE_FIELD, -9230, -300, 7642, 0 },
{ SCENE_HYRULE_FIELD, -7556, -499, 8695, 0 },
{ SCENE_HYRULE_FIELD, -6438, -500, 8606, 0 },
{ SCENE_HYRULE_FIELD, -6078, -500, 8258, 0 },
{ SCENE_HYRULE_FIELD, -6233, -500, 7613, 0 },
{ SCENE_HYRULE_FIELD, -5035, -205, 7814, 0 },
{ SCENE_HYRULE_FIELD, -5971, -500, 8501, 0 },
{ SCENE_HYRULE_FIELD, -5724, -498, 10123, 0 },
{ SCENE_HYRULE_FIELD, -5094, -392, 11106, 0 },
{ SCENE_HYRULE_FIELD, -5105, -393, 11312, 0 },
{ SCENE_HYRULE_FIELD, -4477, -314, 11132, 0 },
{ SCENE_HYRULE_FIELD, -3867, -380, 11419, 0 },
{ SCENE_HYRULE_FIELD, -2952, -500, 11944, 0 },
{ SCENE_HYRULE_FIELD, -2871, -488, 11743, 0 },
{ SCENE_HYRULE_FIELD, -3829, -372, 11327, 0 },
{ SCENE_HYRULE_FIELD, -4439, -293, 10989, 0 },
{ SCENE_HYRULE_FIELD, -5014, -381, 11086, 0 },
{ SCENE_HYRULE_FIELD, -5113, -188, 10968, 0 },
{ SCENE_HYRULE_FIELD, -5269, -188, 11156, 0 },
{ SCENE_HYRULE_FIELD, -5596, -178, 9972, 0 },
{ SCENE_HYRULE_FIELD, -5801, -288, 8518, 0 },
{ SCENE_HYRULE_FIELD, -4910, -178, 7931, 0 },
{ SCENE_HYRULE_FIELD, -3586, 73, 8140, 0 },
{ SCENE_HYRULE_FIELD, -4487, -106, 9362, 0 },
{ SCENE_HYRULE_FIELD, -4339, -112, 6412, 0 },
{ SCENE_HYRULE_FIELD, -3417, 105, 8194, 0 },
{ SCENE_HYRULE_FIELD, -4505, -20, 6608, 0 },
{ SCENE_HYRULE_FIELD, -5038, -199, 6603, 0 },
{ SCENE_HYRULE_FIELD, -4481, 1, 6448, 0 },
{ SCENE_HYRULE_FIELD, -5032, -168, 6418, 0 },
{ SCENE_HYRULE_FIELD, -5256, -700, 14329, 0 },
{ SCENE_HYRULE_FIELD, -5749, -820, 15380, 0 },
{ SCENE_HYRULE_FIELD, -3122, -700, 13608, 0 },
{ SCENE_HYRULE_FIELD, -3758, -525, 13228, 0 },
{ SCENE_HYRULE_FIELD, -3670, -500, 13123, 0 },
{ SCENE_HYRULE_FIELD, -2924, -500, 13526, 0 },
{ SCENE_HYRULE_FIELD, 1389, -115, 9370, 0 },
{ SCENE_HYRULE_FIELD, 548, -116, 8889, 0 },
{ SCENE_HYRULE_FIELD, -106, -107, 8530, 0 },
{ SCENE_HYRULE_FIELD, -1608, 85, 7646, 0 },
{ SCENE_HYRULE_FIELD, -5300, -700, 13772, 0 },
{ SCENE_HYRULE_FIELD, -5114, -700, 13400, 0 },
{ SCENE_HYRULE_FIELD, -4561, -700, 13700, 0 },
{ SCENE_HYRULE_FIELD, -4762, -700, 14084, 0 },
{ SCENE_HYRULE_FIELD, -2954, 100, 8216, 0 },
{ SCENE_HYRULE_FIELD, 1460, -104, 9246, 0 },
{ SCENE_HYRULE_FIELD, 629, -105, 8791, 0 },
{ SCENE_HYRULE_FIELD, -10, -90, 8419, 0 },
{ SCENE_HYRULE_FIELD, -1462, 100, 7504, 0 },
{ SCENE_HYRULE_FIELD, -3018, -500, 12493, 0 },
{ SCENE_HYRULE_FIELD, -2994, -311, 10331, 0 },
{ SCENE_HYRULE_FIELD, -4006, -700, 14152, 0 },
{ SCENE_HYRULE_FIELD, -4341, -500, 12743, 0 },
{ SCENE_HYRULE_FIELD, -5879, -497, 6799, 0 },
{ SCENE_HYRULE_FIELD, 22, -473, 10103, 0 },
{ SCENE_HYRULE_FIELD, -1389, -192, 8874, 0 },
{ SCENE_HYRULE_FIELD, -4, 92, 6866, 0 },
{ SCENE_HYRULE_FIELD, 483, 104, 6637, 0 },
{ SCENE_HYRULE_FIELD, 1580, 183, 5987, 0 },
{ SCENE_HYRULE_FIELD, 1548, 308, 5077, 0 },
{ SCENE_HYRULE_FIELD, 1511, 399, 4267, 0 },
{ SCENE_HYRULE_FIELD, 1358, 385, 4271, 0 },
{ SCENE_HYRULE_FIELD, 1379, 395, 5063, 0 },
{ SCENE_HYRULE_FIELD, 1360, 394, 5870, 0 },
{ SCENE_HYRULE_FIELD, 813, 283, 6194, 0 },
{ SCENE_HYRULE_FIELD, -57, 101, 6743, 0 },
{ SCENE_HYRULE_FIELD, 91, 325, 5143, 0 },
{ SCENE_HYRULE_FIELD, 1425, -214, 7659, 0 },
{ SCENE_HYRULE_FIELD, 3487, -19, 880, 0 },
{ SCENE_HYRULE_FIELD, 2933, 152, 2094, 0 },
{ SCENE_HYRULE_FIELD, 2888, -145, 6862, 0 },
{ SCENE_HYRULE_FIELD, 1511, 67, 6471, 0 },
{ SCENE_HYRULE_FIELD, 4051, -47, 1722, 0 },
{ SCENE_HYRULE_FIELD, -7335, -500, 8627, 0 },
{ SCENE_HYRULE_FIELD, -7728, -462, 8498, 0 },
{ SCENE_HYRULE_FIELD, -7791, -446, 8832, 0 },
{ SCENE_HYRULE_FIELD, -2915, -435, 11334, 0 },
{ SCENE_HYRULE_FIELD, 165, -278, 3352, 0 },
// Lake Hylia
{ SCENE_SPOT06, -2109, -882, 1724, 0 },
{ SCENE_SPOT06, -328, -1238, 2705, 0 },
{ SCENE_SPOT06, -3092, -1033, 3527, 0 },
{ SCENE_LAKE_HYLIA, -2109, -882, 1724, 0 },
{ SCENE_LAKE_HYLIA, -328, -1238, 2705, 0 },
{ SCENE_LAKE_HYLIA, -3092, -1033, 3527, 0 },
// Gerudo Valley
{ SCENE_SPOT09, 2687, -269, 753, 0 },
{ SCENE_SPOT09, 2066, -132, 317, 0 },
{ SCENE_SPOT09, 523, -8, 635, 0 },
{ SCENE_SPOT09, 558, 36, -323, 0 },
{ SCENE_SPOT09, 615, 51, -839, 0 },
{ SCENE_SPOT09, -614, 32, 29, 0 },
{ SCENE_SPOT09, -639, -3, 553, 0 },
{ SCENE_SPOT09, -540, 10, -889, 0 },
{ SCENE_SPOT09, -1666, 58, 378, 0 },
{ SCENE_SPOT09, -3044, 210, -648, 0 },
{ SCENE_GERUDO_VALLEY, 2687, -269, 753, 0 },
{ SCENE_GERUDO_VALLEY, 2066, -132, 317, 0 },
{ SCENE_GERUDO_VALLEY, 523, -8, 635, 0 },
{ SCENE_GERUDO_VALLEY, 558, 36, -323, 0 },
{ SCENE_GERUDO_VALLEY, 615, 51, -839, 0 },
{ SCENE_GERUDO_VALLEY, -614, 32, 29, 0 },
{ SCENE_GERUDO_VALLEY, -639, -3, 553, 0 },
{ SCENE_GERUDO_VALLEY, -540, 10, -889, 0 },
{ SCENE_GERUDO_VALLEY, -1666, 58, 378, 0 },
{ SCENE_GERUDO_VALLEY, -3044, 210, -648, 0 },
// Gerudo's Fortress
{ SCENE_SPOT12, -678, 21, -623, 0 },
{ SCENE_SPOT12, 149, 333, -2499, 0 },
{ SCENE_SPOT12, 499, 581, -547, 0 },
{ SCENE_SPOT12, 3187, 1413, -3775, 0 },
{ SCENE_SPOT12, 3198, 1413, 307, 0 },
{ SCENE_SPOT12, 3380, 1413, -1200, 0 },
{ SCENE_SPOT12, -966, 1, -56, 0 },
{ SCENE_SPOT12, -966, 24, -761, 0 },
{ SCENE_SPOT12, -694, 174, -2820, 0 },
{ SCENE_GERUDOS_FORTRESS, -678, 21, -623, 0 },
{ SCENE_GERUDOS_FORTRESS, 149, 333, -2499, 0 },
{ SCENE_GERUDOS_FORTRESS, 499, 581, -547, 0 },
{ SCENE_GERUDOS_FORTRESS, 3187, 1413, -3775, 0 },
{ SCENE_GERUDOS_FORTRESS, 3198, 1413, 307, 0 },
{ SCENE_GERUDOS_FORTRESS, 3380, 1413, -1200, 0 },
{ SCENE_GERUDOS_FORTRESS, -966, 1, -56, 0 },
{ SCENE_GERUDOS_FORTRESS, -966, 24, -761, 0 },
{ SCENE_GERUDOS_FORTRESS, -694, 174, -2820, 0 },
// Lon Lon Ranch
{ SCENE_SPOT20, 1039, 0, 2051, 0 },
{ SCENE_SPOT20, -1443, 0, 1429, 0 },
{ SCENE_SPOT20, 856, 0, -918, 0 }, // Hardcoded to always load in lon lon
{ SCENE_SPOT20, 882, 0, -2256, 0 },
{ SCENE_SPOT20, -1003, 0, -755, 0 }, // Hardcoded to always load in lon lon
{ SCENE_SPOT20, -2254, 0, -629, 0 },
{ SCENE_SPOT20, 907, 0, -2336, 0 },
{ SCENE_LON_LON_RANCH, 1039, 0, 2051, 0 },
{ SCENE_LON_LON_RANCH, -1443, 0, 1429, 0 },
{ SCENE_LON_LON_RANCH, 856, 0, -918, 0 }, // Hardcoded to always load in lon lon
{ SCENE_LON_LON_RANCH, 882, 0, -2256, 0 },
{ SCENE_LON_LON_RANCH, -1003, 0, -755, 0 }, // Hardcoded to always load in lon lon
{ SCENE_LON_LON_RANCH, -2254, 0, -629, 0 },
{ SCENE_LON_LON_RANCH, 907, 0, -2336, 0 },
};
typedef struct {
@@ -457,7 +457,7 @@ s32 EnHorse_BgCheckBridgeJumpPoint(EnHorse* this, PlayState* play) {
f32 xMax;
s32 i;
if (play->sceneNum != SCENE_SPOT09) {
if (play->sceneNum != SCENE_GERUDO_VALLEY) {
return false;
}
if (this->actor.speedXZ < 12.8f) {
@@ -680,7 +680,7 @@ s32 EnHorse_Spawn(EnHorse* this, PlayState* play) {
for (i = 0; i < 169; i++) {
if (sHorseSpawns[i].scene == play->sceneNum) {
player = GET_PLAYER(play);
if (play->sceneNum != SCENE_SPOT20 ||
if (play->sceneNum != SCENE_LON_LON_RANCH ||
//! Same flag checked twice
(Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) && ((gSaveContext.eventInf[0] & 0xF) != 6 || Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED))) ||
// always load two spawns inside lon lon
@@ -784,9 +784,9 @@ void EnHorse_Init(Actor* thisx, PlayState* play2) {
this->actor.params = 1;
}
if (play->sceneNum == SCENE_SOUKO) {
if (play->sceneNum == SCENE_LON_LON_BUILDINGS) {
this->stateFlags = ENHORSE_UNRIDEABLE;
} else if (play->sceneNum == SCENE_SPOT12 && this->type == HORSE_HNI) {
} else if (play->sceneNum == SCENE_GERUDOS_FORTRESS && this->type == HORSE_HNI) {
this->stateFlags = ENHORSE_FLAG_18 | ENHORSE_UNRIDEABLE;
} else {
if (this->actor.params == 3) {
@@ -806,7 +806,7 @@ void EnHorse_Init(Actor* thisx, PlayState* play2) {
}
}
if (play->sceneNum == SCENE_SPOT20 && (gSaveContext.eventInf[0] & 0xF) == 6 &&
if (play->sceneNum == SCENE_LON_LON_RANCH && (gSaveContext.eventInf[0] & 0xF) == 6 &&
Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) == 0 && !DREG(1)) {
this->stateFlags |= ENHORSE_FLAG_25;
}
@@ -827,7 +827,7 @@ void EnHorse_Init(Actor* thisx, PlayState* play2) {
this->actor.focus.pos.y += 70.0f;
this->playerControlled = false;
if ((play->sceneNum == SCENE_SPOT20) && (gSaveContext.sceneSetupIndex < 4)) {
if ((play->sceneNum == SCENE_LON_LON_RANCH) && (gSaveContext.sceneSetupIndex < 4)) {
if (this->type == HORSE_HNI) {
if (this->actor.world.rot.z == 0 || !IS_DAY) {
Actor_Kill(&this->actor);
@@ -845,7 +845,7 @@ void EnHorse_Init(Actor* thisx, PlayState* play2) {
Actor_Kill(&this->actor);
return;
}
} else if (play->sceneNum == SCENE_MALON_STABLE) {
} else if (play->sceneNum == SCENE_STABLE) {
if (IS_DAY || Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) || DREG(1) != 0 || !LINK_IS_ADULT) {
Actor_Kill(&this->actor);
return;
@@ -882,12 +882,12 @@ void EnHorse_Init(Actor* thisx, PlayState* play2) {
} else if (this->actor.params == 8) {
EnHorse_InitHorsebackArchery(this);
Interface_InitHorsebackArchery(play);
} else if (play->sceneNum == SCENE_SPOT20 && !Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) && !DREG(1)) {
} else if (play->sceneNum == SCENE_LON_LON_RANCH && !Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) && !DREG(1)) {
EnHorse_InitFleePlayer(this);
} else {
if (play->sceneNum == SCENE_SOUKO) {
if (play->sceneNum == SCENE_LON_LON_BUILDINGS) {
EnHorse_ResetIdleAnimation(this);
} else if (play->sceneNum == SCENE_SPOT12 && this->type == HORSE_HNI) {
} else if (play->sceneNum == SCENE_GERUDOS_FORTRESS && this->type == HORSE_HNI) {
EnHorse_ResetIdleAnimation(this);
} else {
EnHorse_StartIdleRidable(this);
@@ -3075,7 +3075,7 @@ void EnHorse_BgCheckSlowMoving(EnHorse* this, PlayState* play) {
CollisionPoly* colPoly;
s32 bgId;
if (play->sceneNum == SCENE_SPOT20) {
if (play->sceneNum == SCENE_LON_LON_RANCH) {
yOffset = 19.0f;
} else {
yOffset = 40.0f;
@@ -3116,7 +3116,7 @@ void EnHorse_UpdateBgCheckInfo(EnHorse* this, PlayState* play) {
Vec3f intersect;
Vec3f obstacleTop;
Actor_UpdateBgCheckInfo(play, &this->actor, play->sceneNum == SCENE_SPOT20 ? 19.0f : 40.0f, 35.0f, 100.0f,
Actor_UpdateBgCheckInfo(play, &this->actor, play->sceneNum == SCENE_LON_LON_RANCH ? 19.0f : 40.0f, 35.0f, 100.0f,
29);
if (EnHorse_BgCheckBridgeJumpPoint(this, play)) {
@@ -3534,8 +3534,8 @@ void EnHorse_Update(Actor* thisx, PlayState* play2) {
CollisionCheck_SetOC(play, &play->colChkCtx, &this->cyl1.base);
CollisionCheck_SetOC(play, &play->colChkCtx, &this->cyl2.base);
if ((player->stateFlags1 & 1) && player->rideActor != NULL) {
if (play->sceneNum != SCENE_SPOT20 ||
(play->sceneNum == SCENE_SPOT20 && (thisx->world.pos.z < -2400.0f))) {
if (play->sceneNum != SCENE_LON_LON_RANCH ||
(play->sceneNum == SCENE_LON_LON_RANCH && (thisx->world.pos.z < -2400.0f))) {
EnHorse_UpdateConveyors(this, play);
}
}
@@ -3554,7 +3554,7 @@ void EnHorse_Update(Actor* thisx, PlayState* play2) {
this->stateFlags &= ~ENHORSE_FLAG_24;
}
if (play->sceneNum == SCENE_SPOT09 && !GET_EVENTCHKINF_CARPENTERS_FREE_ALL()) {
if (play->sceneNum == SCENE_GERUDO_VALLEY && !GET_EVENTCHKINF_CARPENTERS_FREE_ALL()) {
EnHorse_CheckBridgeJumps(this, play);
}
@@ -441,7 +441,7 @@ void EnHorseGameCheck_Init(Actor* thisx, PlayState* play) {
s32 pad;
EnHorseGameCheckBase* this = (EnHorseGameCheckBase*)thisx;
if ((play->sceneNum == SCENE_SPOT20) && (Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) || DREG(1))) {
if ((play->sceneNum == SCENE_LON_LON_RANCH) && (Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) || DREG(1))) {
this->actor.params = HORSEGAME_MALON_RACE;
}
if (sInitFuncs[this->actor.params] != NULL) {
@@ -165,7 +165,7 @@ void EnHorseLinkChild_Init(Actor* thisx, PlayState* play) {
if (gSaveContext.sceneSetupIndex > 3) {
func_80A69EC0(this);
} else if (play->sceneNum == SCENE_SPOT20) {
} else if (play->sceneNum == SCENE_LON_LON_RANCH) {
if (!Flags_GetEventChkInf(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE)) {
Actor_Kill(&this->actor);
return;
@@ -360,7 +360,7 @@ void func_80A6A068(EnHorseLinkChild* this, PlayState* play) {
}
if (((Flags_GetEventChkInf(EVENTCHKINF_INVITED_TO_SING_WITH_CHILD_MALON)) && (DREG(53) != 0)) ||
((play->sceneNum == SCENE_SPOT20) && (gSaveContext.cutsceneIndex == 0xFFF1))) {
((play->sceneNum == SCENE_LON_LON_RANCH) && (gSaveContext.cutsceneIndex == 0xFFF1))) {
func_80A6A4DC(this);
} else {
this->unk_2A0 = Flags_GetEventChkInf(EVENTCHKINF_INVITED_TO_SING_WITH_CHILD_MALON);
@@ -558,7 +558,7 @@ void EnHorseLinkChild_Update(Actor* thisx, PlayState* play) {
Actor_MoveForward(&this->actor);
Actor_UpdateBgCheckInfo(play, &this->actor, 20.0f, 55.0f, 100.0f, 0x1D);
if ((play->sceneNum == SCENE_SPOT20) && (this->actor.world.pos.z < -2400.0f)) {
if ((play->sceneNum == SCENE_LON_LON_RANCH) && (this->actor.world.pos.z < -2400.0f)) {
this->actor.world.pos.z = -2400.0f;
}
@@ -202,7 +202,7 @@ void EnHorseNormal_Init(Actor* thisx, PlayState* play) {
Collider_InitCylinder(play, &this->cloneCollider);
Collider_SetCylinder(play, &this->cloneCollider, &this->actor, &sCylinderInit2);
CollisionCheck_SetInfo(&this->actor.colChkInfo, NULL, &sColChkInfoInit);
if (play->sceneNum == SCENE_SPOT20) {
if (play->sceneNum == SCENE_LON_LON_RANCH) {
if (this->actor.world.rot.z == 0 || !IS_DAY) {
Actor_Kill(&this->actor);
return;
@@ -236,7 +236,7 @@ void EnHorseNormal_Init(Actor* thisx, PlayState* play) {
func_80A6C6B0(this);
return;
}
} else if (play->sceneNum == SCENE_MALON_STABLE) {
} else if (play->sceneNum == SCENE_STABLE) {
if (IS_DAY) {
Actor_Kill(&this->actor);
return;
@@ -246,7 +246,7 @@ void EnHorseNormal_Init(Actor* thisx, PlayState* play) {
func_80A6C6B0(this);
return;
}
} else if (play->sceneNum == SCENE_SPOT12) {
} else if (play->sceneNum == SCENE_GERUDOS_FORTRESS) {
if (this->actor.world.pos.x == 3707.0f && this->actor.world.pos.y == 1413.0f &&
this->actor.world.pos.z == -665.0f) {
Skin_Init(play, &this->skin, &gHorseNormalSkel, &gHorseNormalIdleAnim);
@@ -572,7 +572,7 @@ void EnHorseNormal_Update(Actor* thisx, PlayState* play) {
sActionFuncs[this->action](this, play);
Actor_MoveForward(&this->actor);
Actor_UpdateBgCheckInfo(play, &this->actor, 20.0f, 35.0f, 100.0f, 0x1D);
if (play->sceneNum == SCENE_SPOT20 && this->actor.world.pos.z < -2400.0f) {
if (play->sceneNum == SCENE_LON_LON_RANCH && this->actor.world.pos.z < -2400.0f) {
this->actor.world.pos.z = -2400.0f;
}
this->actor.focus.pos = this->actor.world.pos;
@@ -639,7 +639,7 @@ void EnHorseNormal_Draw(Actor* thisx, PlayState* play) {
OPEN_DISPS(play->state.gfxCtx);
if (play->sceneNum != SCENE_SPOT20 || play->sceneNum != SCENE_MALON_STABLE) {
if (play->sceneNum != SCENE_LON_LON_RANCH || play->sceneNum != SCENE_STABLE) {
func_80A6C8E0(this, play);
}
Gfx_SetupDL_25Opa(play->state.gfxCtx);
@@ -653,7 +653,7 @@ void EnHorseNormal_Draw(Actor* thisx, PlayState* play) {
f32 distFromGround = this->actor.world.pos.y - this->actor.floorHeight;
f32 temp_f0_4;
if (play->sceneNum == SCENE_MALON_STABLE) {
if (play->sceneNum == SCENE_STABLE) {
if (this->actor.world.pos.x == 355.0f && this->actor.world.pos.y == 0.0f &&
this->actor.world.pos.z == -245.0f) {
clonePos.x = 235.0f;
@@ -667,7 +667,7 @@ void EnHorseNormal_Draw(Actor* thisx, PlayState* play) {
clonePos.z = 100.0f;
cloneRotY = 0x7FFF;
}
} else if (play->sceneNum == SCENE_SPOT20) {
} else if (play->sceneNum == SCENE_LON_LON_RANCH) {
if (this->actor.world.pos.x == -730.0f && this->actor.world.pos.y == 0.0f &&
this->actor.world.pos.z == -1100.0f) {
clonePos.x = 780.0f;
+18 -18
View File
@@ -429,7 +429,7 @@ u16 func_80A6F810(PlayState* play, Actor* thisx) {
switch (this->actor.params & 0x7F) {
case ENHY_TYPE_AOB:
if (play->sceneNum == SCENE_KAKARIKO) {
if (play->sceneNum == SCENE_KAKARIKO_CENTER_GUEST_HOUSE) {
return (this->unk_330 & 0x800) ? 0x508D : ((Flags_GetInfTable(INFTABLE_CB)) ? 0x508C : 0x508B);
} else if (play->sceneNum == SCENE_MARKET_DAY) {
return (gSaveContext.eventInf[3] & 1) ? 0x709B : 0x709C;
@@ -452,9 +452,9 @@ u16 func_80A6F810(PlayState* play, Actor* thisx) {
return (Flags_GetInfTable(INFTABLE_C0)) ? 0x7017 : 0x7016;
}
case ENHY_TYPE_AHG_2:
if (play->sceneNum == SCENE_KAKARIKO) {
if (play->sceneNum == SCENE_KAKARIKO_CENTER_GUEST_HOUSE) {
return 0x5086;
} else if (play->sceneNum == SCENE_SPOT01) {
} else if (play->sceneNum == SCENE_KAKARIKO_VILLAGE) {
return 0x5085;
} else if (Flags_GetEventChkInf(EVENTCHKINF_ZELDA_FLED_HYRULE_CASTLE)) {
return (Flags_GetInfTable(INFTABLE_C3)) ? 0x701A : 0x7047;
@@ -477,9 +477,9 @@ u16 func_80A6F810(PlayState* play, Actor* thisx) {
case ENHY_TYPE_BBA:
return (Flags_GetEventChkInf(EVENTCHKINF_ZELDA_FLED_HYRULE_CASTLE)) ? 0x704A : ((Flags_GetInfTable(INFTABLE_C6)) ? 0x7022 : 0x7021);
case ENHY_TYPE_BJI_7:
if (play->sceneNum == SCENE_KAKARIKO) {
if (play->sceneNum == SCENE_KAKARIKO_CENTER_GUEST_HOUSE) {
return 0x5088;
} else if (play->sceneNum == SCENE_SPOT01) {
} else if (play->sceneNum == SCENE_KAKARIKO_VILLAGE) {
return 0x5087;
} else {
return (Flags_GetEventChkInf(EVENTCHKINF_ZELDA_FLED_HYRULE_CASTLE)) ? 0x704D
@@ -492,18 +492,18 @@ u16 func_80A6F810(PlayState* play, Actor* thisx) {
return (Flags_GetInfTable(INFTABLE_C8)) ? 0x701E : 0x701D;
}
case ENHY_TYPE_BOJ_9:
if (play->sceneNum == SCENE_KAKARIKO) {
if (play->sceneNum == SCENE_KAKARIKO_CENTER_GUEST_HOUSE) {
return (Flags_GetEventChkInf(EVENTCHKINF_BONGO_BONGO_ESCAPED_FROM_WELL)) ? 0x5082 : 0x5081;
} else if (play->sceneNum == SCENE_SPOT01) {
} else if (play->sceneNum == SCENE_KAKARIKO_VILLAGE) {
return CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW) ? 0x5080 : 0x507F;
} else {
return (Flags_GetEventChkInf(EVENTCHKINF_ZELDA_FLED_HYRULE_CASTLE)) ? 0x7049
: ((Flags_GetInfTable(INFTABLE_CA)) ? 0x7020 : 0x701F);
}
case ENHY_TYPE_BOJ_10:
if (play->sceneNum == SCENE_LABO) {
if (play->sceneNum == SCENE_IMPAS_HOUSE) {
return (Flags_GetEventChkInf(EVENTCHKINF_BONGO_BONGO_ESCAPED_FROM_WELL)) ? 0x507E : 0x507D;
} else if (play->sceneNum == SCENE_SPOT01) {
} else if (play->sceneNum == SCENE_KAKARIKO_VILLAGE) {
return CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW) ? 0x507C : 0x507B;
} else {
return (Flags_GetEventChkInf(EVENTCHKINF_ZELDA_FLED_HYRULE_CASTLE)) ? 0x7046
@@ -513,7 +513,7 @@ u16 func_80A6F810(PlayState* play, Actor* thisx) {
return (Flags_GetInfTable(INFTABLE_ENTERED_HYRULE_CASTLE)) ? ((Flags_GetInfTable(INFTABLE_CC)) ? 0x7014 : 0x70A4)
: 0x7014;
case ENHY_TYPE_BOJ_12:
if (play->sceneNum == SCENE_SPOT01) {
if (play->sceneNum == SCENE_KAKARIKO_VILLAGE) {
return !IS_DAY ? 0x5084 : 0x5083;
} else {
return (Flags_GetEventChkInf(EVENTCHKINF_ZELDA_FLED_HYRULE_CASTLE)) ? 0x7044 : 0x7015;
@@ -819,7 +819,7 @@ void func_80A70978(EnHy* this, PlayState* play) {
s32 EnHy_ShouldSpawn(EnHy* this, PlayState* play) {
switch (play->sceneNum) {
case SCENE_SPOT01:
case SCENE_KAKARIKO_VILLAGE:
if (!((this->actor.params & 0x7F) == ENHY_TYPE_BOJ_9 || (this->actor.params & 0x7F) == ENHY_TYPE_BOJ_10 ||
(this->actor.params & 0x7F) == ENHY_TYPE_BOJ_12 || (this->actor.params & 0x7F) == ENHY_TYPE_AHG_2 ||
(this->actor.params & 0x7F) == ENHY_TYPE_BJI_7)) {
@@ -831,7 +831,7 @@ s32 EnHy_ShouldSpawn(EnHy* this, PlayState* play) {
} else {
return true;
}
case SCENE_LABO:
case SCENE_IMPAS_HOUSE:
if ((this->actor.params & 0x7F) != ENHY_TYPE_BOJ_10) {
return true;
} else if (LINK_IS_CHILD) {
@@ -841,7 +841,7 @@ s32 EnHy_ShouldSpawn(EnHy* this, PlayState* play) {
} else {
return true;
}
case SCENE_IMPA:
case SCENE_DOG_LADY_HOUSE:
if ((this->actor.params & 0x7F) != ENHY_TYPE_AOB) {
return true;
} else if (IS_DAY) {
@@ -849,7 +849,7 @@ s32 EnHy_ShouldSpawn(EnHy* this, PlayState* play) {
} else {
return true;
}
case SCENE_KAKARIKO:
case SCENE_KAKARIKO_CENTER_GUEST_HOUSE:
if ((this->actor.params & 0x7F) == ENHY_TYPE_AOB) {
return !LINK_IS_ADULT ? false : true;
} else if (!((this->actor.params & 0x7F) == ENHY_TYPE_BOJ_9 ||
@@ -863,8 +863,8 @@ s32 EnHy_ShouldSpawn(EnHy* this, PlayState* play) {
} else {
return true;
}
case SCENE_MARKET_ALLEY:
case SCENE_MARKET_ALLEY_N:
case SCENE_BACK_ALLEY_DAY:
case SCENE_BACK_ALLEY_NIGHT:
if ((this->actor.params & 0x7F) != ENHY_TYPE_BOJ_14) {
return true;
} else if (IS_NIGHT) {
@@ -925,12 +925,12 @@ void EnHy_InitImpl(EnHy* this, PlayState* play) {
CollisionCheck_SetInfo2(&this->actor.colChkInfo, NULL, &sColChkInfoInit);
Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, sModelInfo[this->actor.params & 0x7F].animInfoIndex);
if ((play->sceneNum == SCENE_MARKET_ALLEY) || (play->sceneNum == SCENE_MARKET_DAY)) {
if ((play->sceneNum == SCENE_BACK_ALLEY_DAY) || (play->sceneNum == SCENE_MARKET_DAY)) {
this->actor.flags &= ~ACTOR_FLAG_UPDATE_WHILE_CULLED;
this->actor.uncullZoneScale = 0.0f;
}
if (play->sceneNum == SCENE_KAKARIKO) {
if (play->sceneNum == SCENE_KAKARIKO_CENTER_GUEST_HOUSE) {
this->unk_330 = gSaveContext.eventChkInf[6];
}
+5 -5
View File
@@ -365,15 +365,15 @@ s32 func_80A7975C(EnIn* this, PlayState* play) {
}
s32 func_80A79830(EnIn* this, PlayState* play) {
if (play->sceneNum == SCENE_SPOT20 && LINK_IS_CHILD && IS_DAY && this->actor.shape.rot.z == 1 &&
if (play->sceneNum == SCENE_LON_LON_RANCH && LINK_IS_CHILD && IS_DAY && this->actor.shape.rot.z == 1 &&
!Flags_GetEventChkInf(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE)) {
return 1;
}
if (play->sceneNum == SCENE_MALON_STABLE && LINK_IS_CHILD && IS_DAY && this->actor.shape.rot.z == 3 &&
if (play->sceneNum == SCENE_STABLE && LINK_IS_CHILD && IS_DAY && this->actor.shape.rot.z == 3 &&
(Flags_GetEventChkInf(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE))) {
return 1;
}
if (play->sceneNum == SCENE_MALON_STABLE && LINK_IS_CHILD && IS_NIGHT) {
if (play->sceneNum == SCENE_STABLE && LINK_IS_CHILD && IS_NIGHT) {
if ((this->actor.shape.rot.z == 2) && !Flags_GetEventChkInf(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE)) {
return 1;
}
@@ -381,7 +381,7 @@ s32 func_80A79830(EnIn* this, PlayState* play) {
return 1;
}
}
if (play->sceneNum == SCENE_SPOT20 && LINK_IS_ADULT && IS_DAY) {
if (play->sceneNum == SCENE_LON_LON_RANCH && LINK_IS_ADULT && IS_DAY) {
if ((this->actor.shape.rot.z == 5) && !Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED)) {
return 2;
}
@@ -389,7 +389,7 @@ s32 func_80A79830(EnIn* this, PlayState* play) {
return 4;
}
}
if (play->sceneNum == SCENE_SOUKO && LINK_IS_ADULT && IS_NIGHT) {
if (play->sceneNum == SCENE_LON_LON_BUILDINGS && LINK_IS_ADULT && IS_NIGHT) {
if (this->actor.shape.rot.z == 6 && !Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED)) {
return 3;
}
+9 -9
View File
@@ -951,7 +951,7 @@ void func_80A9877C(EnKo* this, PlayState* play) {
}
}
if (Npc_UpdateTalking(play, &this->actor, &this->interactInfo.talkState, this->lookDist, func_80A97610, func_80A97738) &&
ENKO_TYPE == ENKO_TYPE_CHILD_FADO && play->sceneNum == SCENE_SPOT10) {
ENKO_TYPE == ENKO_TYPE_CHILD_FADO && play->sceneNum == SCENE_LOST_WOODS) {
this->actor.textId = INV_CONTENT(ITEM_TRADE_ADULT) > ITEM_ODD_POTION ? 0x10B9 : 0x10DF;
if (func_8002F368(play) == ENKO_TYPE_CHILD_9) {
@@ -965,7 +965,7 @@ void func_80A9877C(EnKo* this, PlayState* play) {
// Checks if the Kokiri should spawn based on quest progress
s32 EnKo_CanSpawn(EnKo* this, PlayState* play) {
switch (play->sceneNum) {
case SCENE_SPOT04:
case SCENE_KOKIRI_FOREST:
if (ENKO_TYPE >= ENKO_TYPE_CHILD_7 && ENKO_TYPE != ENKO_TYPE_CHILD_FADO) {
return false;
}
@@ -973,13 +973,13 @@ s32 EnKo_CanSpawn(EnKo* this, PlayState* play) {
return false;
}
return true;
case SCENE_KOKIRI_HOME:
case SCENE_KNOW_IT_ALL_BROS_HOUSE:
if (ENKO_TYPE != ENKO_TYPE_CHILD_7 && ENKO_TYPE != ENKO_TYPE_CHILD_8 && ENKO_TYPE != ENKO_TYPE_CHILD_11) {
return false;
} else {
return true;
}
case SCENE_KOKIRI_HOME3:
case SCENE_TWINS_HOUSE:
if (LINK_IS_ADULT && !CHECK_QUEST_ITEM(QUEST_MEDALLION_FOREST)) {
if (ENKO_TYPE != ENKO_TYPE_CHILD_1 && ENKO_TYPE != ENKO_TYPE_CHILD_9) {
return false;
@@ -992,7 +992,7 @@ s32 EnKo_CanSpawn(EnKo* this, PlayState* play) {
} else {
return true;
}
case SCENE_KOKIRI_HOME4:
case SCENE_MIDOS_HOUSE:
if (LINK_IS_ADULT && !CHECK_QUEST_ITEM(QUEST_MEDALLION_FOREST)) {
if (ENKO_TYPE != ENKO_TYPE_CHILD_0 && ENKO_TYPE != ENKO_TYPE_CHILD_4) {
return false;
@@ -1002,7 +1002,7 @@ s32 EnKo_CanSpawn(EnKo* this, PlayState* play) {
} else {
return false;
}
case SCENE_KOKIRI_HOME5:
case SCENE_SARIAS_HOUSE:
if (LINK_IS_ADULT && !CHECK_QUEST_ITEM(QUEST_MEDALLION_FOREST)) {
if (ENKO_TYPE != ENKO_TYPE_CHILD_6) {
return false;
@@ -1026,7 +1026,7 @@ s32 EnKo_CanSpawn(EnKo* this, PlayState* play) {
return true;
}
case SCENE_SPOT10:
case SCENE_LOST_WOODS:
if (gSaveContext.n64ddFlag && Randomizer_GetSettingValue(RSK_SHUFFLE_ADULT_TRADE)) {
// To explain the logic because Fado and Grog are linked:
// - If you have Cojiro, then spawn Grog and not Fado.
@@ -1085,7 +1085,7 @@ s32 EnKo_GetForestQuestState2(EnKo* this) {
void func_80A98DB4(EnKo* this, PlayState* play) {
f32 dist;
if (play->sceneNum != SCENE_SPOT10 && play->sceneNum != SCENE_SPOT04) {
if (play->sceneNum != SCENE_LOST_WOODS && play->sceneNum != SCENE_KOKIRI_FOREST) {
this->modelAlpha = 255.0f;
return;
}
@@ -1112,7 +1112,7 @@ void func_80A98DB4(EnKo* this, PlayState* play) {
}
s32 func_80A98ECC(EnKo* this, PlayState* play) {
if (play->sceneNum == SCENE_SPOT10 && ENKO_TYPE == ENKO_TYPE_CHILD_FADO) {
if (play->sceneNum == SCENE_LOST_WOODS && ENKO_TYPE == ENKO_TYPE_CHILD_FADO) {
return func_80A97E18(this, play);
}
switch (EnKo_GetForestQuestState(this)) {
@@ -97,7 +97,7 @@ bool Randomizer_ObtainedMalonHCReward() {
u16 EnMa1_GetText(PlayState* play, Actor* thisx) {
// Special case for Malon Hyrule Castle Text. Placing it here at the beginning
// has the added benefit of circumventing mask text if wearing bunny hood.
if (gSaveContext.n64ddFlag && play->sceneNum == SCENE_SPOT15) {
if (gSaveContext.n64ddFlag && play->sceneNum == SCENE_HYRULE_CASTLE) {
return Randomizer_ObtainedMalonHCReward() ? 0x2044 : 0x2043;
}
u16 faceReaction = Text_GetFaceReaction(play, 0x17);
@@ -205,7 +205,7 @@ s32 func_80AA08C4(EnMa1* this, PlayState* play) {
!Flags_GetEventChkInf(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE) && !Flags_GetInfTable(INFTABLE_ENTERED_HYRULE_CASTLE)) {
return 1;
}
if ((play->sceneNum == SCENE_SPOT15) && // if we're at hyrule castle
if ((play->sceneNum == SCENE_HYRULE_CASTLE) && // if we're at hyrule castle
(!Flags_GetEventChkInf(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE) || // and talon hasn't left
(gSaveContext.n64ddFlag &&
!Randomizer_ObtainedMalonHCReward()))) { // or we're rando'd and haven't gotten malon's HC check
@@ -217,11 +217,11 @@ s32 func_80AA08C4(EnMa1* this, PlayState* play) {
}
}
// Malon asleep in her bed if Talon has left Hyrule Castle and it is nighttime.
if ((play->sceneNum == SCENE_SOUKO) && IS_NIGHT && (Flags_GetEventChkInf(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE))) {
if ((play->sceneNum == SCENE_LON_LON_BUILDINGS) && IS_NIGHT && (Flags_GetEventChkInf(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE))) {
return 1;
}
// Don't spawn Malon if none of the above are true and we are not in Lon Lon Ranch.
if (play->sceneNum != SCENE_SPOT20) {
if (play->sceneNum != SCENE_LON_LON_RANCH) {
return 0;
}
// If we've gotten this far, we're in Lon Lon Ranch. Spawn Malon if it is daytime, Talon has left Hyrule Castle, and
@@ -349,7 +349,7 @@ void func_80AA0D88(EnMa1* this, PlayState* play) {
// We want to Kill Malon's Actor outside of randomizer when Talon is freed. In Randomizer we don't kill Malon's
// Actor here, otherwise if we wake up Talon first and then get her check she will spontaneously
// disappear.
if ((play->sceneNum == SCENE_SPOT15) && (!gSaveContext.n64ddFlag && Flags_GetEventChkInf(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE))) {
if ((play->sceneNum == SCENE_HYRULE_CASTLE) && (!gSaveContext.n64ddFlag && Flags_GetEventChkInf(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE))) {
Actor_Kill(&this->actor);
// We want Malon to give the Weird Egg Check (see function below) in the following situations:
// 1. Talon as not left Hyrule Castle (Vanilla) OR
@@ -142,15 +142,15 @@ u16 func_80AA1B58(EnMa2* this, PlayState* play) {
if (LINK_IS_CHILD) {
return 0;
}
if (!Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) && (play->sceneNum == SCENE_MALON_STABLE) && IS_DAY &&
if (!Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) && (play->sceneNum == SCENE_STABLE) && IS_DAY &&
(this->actor.shape.rot.z == 5)) {
return 1;
}
if (!Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) && (play->sceneNum == SCENE_SPOT20) && IS_NIGHT &&
if (!Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) && (play->sceneNum == SCENE_LON_LON_RANCH) && IS_NIGHT &&
(this->actor.shape.rot.z == 6)) {
return 2;
}
if (!Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) || (play->sceneNum != SCENE_SPOT20)) {
if (!Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) || (play->sceneNum != SCENE_LON_LON_RANCH)) {
return 0;
}
if ((this->actor.shape.rot.z == 7) && IS_DAY) {
+21 -21
View File
@@ -432,11 +432,11 @@ u16 EnMd_GetText(PlayState* play, Actor* thisx) {
EnMd* this = (EnMd*)thisx;
switch (play->sceneNum) {
case SCENE_SPOT04:
case SCENE_KOKIRI_FOREST:
return EnMd_GetTextKokiriForest(play, this);
case SCENE_KOKIRI_HOME4:
case SCENE_MIDOS_HOUSE:
return EnMd_GetTextKokiriHome(play, this);
case SCENE_SPOT10:
case SCENE_LOST_WOODS:
return EnMd_GetTextLostWoods(play, this);
default:
return 0;
@@ -490,7 +490,7 @@ u8 EnMd_ShouldSpawn(EnMd* this, PlayState* play) {
// in the forest until you've obtained Zelda's letter or Deku Tree dies
// This is to ensure Deku Tree can still be opened in dungeon entrance rando even if Ghoma is defeated
if (gSaveContext.n64ddFlag) {
if (play->sceneNum == SCENE_SPOT10) {
if (play->sceneNum == SCENE_LOST_WOODS) {
return 1;
}
@@ -498,19 +498,19 @@ u8 EnMd_ShouldSpawn(EnMd* this, PlayState* play) {
Flags_GetEventChkInf(EVENTCHKINF_SPOKE_TO_MIDO_AFTER_DEKU_TREES_DEATH) &&
(Flags_GetEventChkInf(EVENTCHKINF_OBTAINED_ZELDAS_LETTER) ||
Flags_GetEventChkInf(EVENTCHKINF_OBTAINED_KOKIRI_EMERALD_DEKU_TREE_DEAD))) {
return play->sceneNum == SCENE_KOKIRI_HOME4 && !LINK_IS_ADULT;
return play->sceneNum == SCENE_MIDOS_HOUSE && !LINK_IS_ADULT;
}
return play->sceneNum == SCENE_SPOT04;
return play->sceneNum == SCENE_KOKIRI_FOREST;
}
if (play->sceneNum == SCENE_SPOT04) {
if (play->sceneNum == SCENE_KOKIRI_FOREST) {
if (!Flags_GetEventChkInf(EVENTCHKINF_SPOKE_TO_MIDO_AFTER_DEKU_TREES_DEATH) && !Flags_GetEventChkInf(EVENTCHKINF_OBTAINED_ZELDAS_LETTER)) {
return 1;
}
}
if (play->sceneNum == SCENE_KOKIRI_HOME4) {
if (play->sceneNum == SCENE_MIDOS_HOUSE) {
if (((Flags_GetEventChkInf(EVENTCHKINF_SPOKE_TO_MIDO_AFTER_DEKU_TREES_DEATH)) != 0) || ((Flags_GetEventChkInf(EVENTCHKINF_OBTAINED_ZELDAS_LETTER)) != 0)) {
if (!LINK_IS_ADULT) {
return 1;
@@ -518,7 +518,7 @@ u8 EnMd_ShouldSpawn(EnMd* this, PlayState* play) {
}
}
if (play->sceneNum == SCENE_SPOT10) {
if (play->sceneNum == SCENE_LOST_WOODS) {
return 1;
}
@@ -636,15 +636,15 @@ u8 EnMd_SetMovedPos(EnMd* this, PlayState* play) {
void func_80AAB5A4(EnMd* this, PlayState* play) {
f32 temp;
if (play->sceneNum != SCENE_KOKIRI_HOME4) {
if (play->sceneNum != SCENE_MIDOS_HOUSE) {
if (CVarGetInteger("gDisableKokiriDrawDistance", 0) != 0) {
temp = (CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD) && !Flags_GetEventChkInf(EVENTCHKINF_SPOKE_TO_MIDO_AFTER_DEKU_TREES_DEATH) &&
(play->sceneNum == SCENE_SPOT04))
(play->sceneNum == SCENE_KOKIRI_FOREST))
? 100.0f
: 32767.0f;
} else {
temp = (CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD) && !Flags_GetEventChkInf(EVENTCHKINF_SPOKE_TO_MIDO_AFTER_DEKU_TREES_DEATH) &&
(play->sceneNum == SCENE_SPOT04))
(play->sceneNum == SCENE_KOKIRI_FOREST))
? 100.0f
: 400.0f;
}
@@ -679,17 +679,17 @@ void EnMd_Init(Actor* thisx, PlayState* play) {
Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_EN_ELF, this->actor.world.pos.x,
this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, FAIRY_KOKIRI);
if (((play->sceneNum == SCENE_SPOT04) && !Flags_GetEventChkInf(EVENTCHKINF_SHOWED_MIDO_SWORD_SHIELD)) ||
((play->sceneNum == SCENE_SPOT04) && (Flags_GetEventChkInf(EVENTCHKINF_SHOWED_MIDO_SWORD_SHIELD)) &&
if (((play->sceneNum == SCENE_KOKIRI_FOREST) && !Flags_GetEventChkInf(EVENTCHKINF_SHOWED_MIDO_SWORD_SHIELD)) ||
((play->sceneNum == SCENE_KOKIRI_FOREST) && (Flags_GetEventChkInf(EVENTCHKINF_SHOWED_MIDO_SWORD_SHIELD)) &&
((!gSaveContext.n64ddFlag && CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD)) ||
(gSaveContext.n64ddFlag && Flags_GetRandomizerInf(RAND_INF_DUNGEONS_DONE_DEKU_TREE)))) ||
((play->sceneNum == SCENE_SPOT10) && !Flags_GetEventChkInf(EVENTCHKINF_PLAYED_SARIAS_SONG_FOR_MIDO_AS_ADULT))) {
((play->sceneNum == SCENE_LOST_WOODS) && !Flags_GetEventChkInf(EVENTCHKINF_PLAYED_SARIAS_SONG_FOR_MIDO_AS_ADULT))) {
this->actor.home.pos = this->actor.world.pos;
this->actionFunc = func_80AAB948;
return;
}
if (play->sceneNum != SCENE_KOKIRI_HOME4) {
if (play->sceneNum != SCENE_MIDOS_HOUSE) {
EnMd_SetMovedPos(this, play);
}
@@ -748,14 +748,14 @@ void func_80AAB948(EnMd* this, PlayState* play) {
if ((!gSaveContext.n64ddFlag && CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD) ||
gSaveContext.n64ddFlag && Flags_GetRandomizerInf(RAND_INF_DUNGEONS_DONE_DEKU_TREE) &&
Flags_GetEventChkInf(EVENTCHKINF_SHOWED_MIDO_SWORD_SHIELD)) && !Flags_GetEventChkInf(EVENTCHKINF_SPOKE_TO_MIDO_AFTER_DEKU_TREES_DEATH) &&
(play->sceneNum == SCENE_SPOT04)) {
(play->sceneNum == SCENE_KOKIRI_FOREST)) {
play->msgCtx.msgMode = MSGMODE_PAUSED;
}
if (play->sceneNum == SCENE_SPOT04) {
if (play->sceneNum == SCENE_KOKIRI_FOREST) {
Flags_SetEventChkInf(EVENTCHKINF_SHOWED_MIDO_SWORD_SHIELD);
}
if (play->sceneNum == SCENE_SPOT10) {
if (play->sceneNum == SCENE_LOST_WOODS) {
Flags_SetEventChkInf(EVENTCHKINF_PLAYED_SARIAS_SONG_FOR_MIDO_AS_ADULT);
}
@@ -772,7 +772,7 @@ void func_80AAB948(EnMd* this, PlayState* play) {
func_80034F54(play, this->unk_214, this->unk_236, 17);
}
if ((this->interactInfo.talkState == NPC_TALK_STATE_IDLE) && (play->sceneNum == SCENE_SPOT10)) {
if ((this->interactInfo.talkState == NPC_TALK_STATE_IDLE) && (play->sceneNum == SCENE_LOST_WOODS)) {
if (player->stateFlags2 & 0x1000000) {
player->stateFlags2 |= 0x2000000;
player->unk_6A8 = &this->actor;
@@ -817,7 +817,7 @@ void func_80AABD0C(EnMd* this, PlayState* play) {
if ((!gSaveContext.n64ddFlag && CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD) ||
gSaveContext.n64ddFlag && Flags_GetRandomizerInf(RAND_INF_DUNGEONS_DONE_DEKU_TREE) &&
Flags_GetEventChkInf(EVENTCHKINF_SHOWED_MIDO_SWORD_SHIELD)) && !Flags_GetEventChkInf(EVENTCHKINF_SPOKE_TO_MIDO_AFTER_DEKU_TREES_DEATH) &&
(play->sceneNum == SCENE_SPOT04)) {
(play->sceneNum == SCENE_KOKIRI_FOREST)) {
Message_CloseTextbox(play);
Flags_SetEventChkInf(EVENTCHKINF_SPOKE_TO_MIDO_AFTER_DEKU_TREES_DEATH);
Actor_Kill(&this->actor);
@@ -157,7 +157,7 @@ void EnNiw_Init(Actor* thisx, PlayState* play) {
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 25.0f);
SkelAnime_InitFlex(play, &this->skelAnime, &gCuccoSkel, &gCuccoAnim, this->jointTable, this->morphTable, 16);
if (play->sceneNum == SCENE_SPOT01) {
if (play->sceneNum == SCENE_KAKARIKO_VILLAGE) {
for (i = 0; i < ARRAY_COUNT(sKakarikoPosList); i++) {
if (fabsf(this->actor.world.pos.x - sKakarikoPosList[i].x) < 40.0f &&
fabsf(this->actor.world.pos.z - sKakarikoPosList[i].z) < 40.0f) {
@@ -228,7 +228,7 @@ void EnNiw_Init(Actor* thisx, PlayState* play) {
case 0xD:
case 0xE:
Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit2);
if (play->sceneNum == SCENE_LINK_HOME && !Flags_GetEventChkInf(EVENTCHKINF_WON_COW_IN_MALONS_RACE)) {
if (play->sceneNum == SCENE_LINKS_HOUSE && !Flags_GetEventChkInf(EVENTCHKINF_WON_COW_IN_MALONS_RACE)) {
Actor_Kill(&this->actor);
}
break;
@@ -975,10 +975,10 @@ void EnNiw_Update(Actor* thisx, PlayState* play) {
Actor_SetFocus(&this->actor, this->unk_304);
Actor_MoveForward(&this->actor);
if (this->actionFunc != func_80AB6EB4 && this->actionFunc != func_80AB6450 && play->sceneNum != SCENE_SPOT03) {
if (this->actionFunc != func_80AB6EB4 && this->actionFunc != func_80AB6450 && play->sceneNum != SCENE_ZORAS_RIVER) {
Actor_UpdateBgCheckInfo(play, &this->actor, 20.0f, 20.0f, 60.0f, 31);
}
if (play->sceneNum == SCENE_SPOT03) {
if (play->sceneNum == SCENE_ZORAS_RIVER) {
Actor_UpdateBgCheckInfo(play, &this->actor, 20.0f, 20.0f, 60.0f, 29);
}
if (thisx->floorHeight <= BGCHECK_Y_MIN || thisx->floorHeight >= 32000.0f) {
@@ -78,7 +78,7 @@ void EnNiwLady_Init(Actor* thisx, PlayState* play) {
return;
}
this->unk_278 = 0;
if (play->sceneNum == SCENE_LABO) {
if (play->sceneNum == SCENE_IMPAS_HOUSE) {
this->unk_278 = 1;
}
if ((this->unk_278 != 0) && IS_DAY) {
@@ -149,10 +149,10 @@ void func_80ABF0CC(EnOkarinaTag* this, PlayState* play) {
if (this->switchFlag >= 0) {
Flags_SetSwitch(play, this->switchFlag);
}
if (play->sceneNum == SCENE_MIZUSIN) {
if (play->sceneNum == SCENE_WATER_TEMPLE) {
play->msgCtx.msgMode = MSGMODE_PAUSED;
}
if ((play->sceneNum != SCENE_DAIYOUSEI_IZUMI) && (play->sceneNum != SCENE_YOUSEI_IZUMI_YOKO)) {
if ((play->sceneNum != SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) && (play->sceneNum != SCENE_GREAT_FAIRYS_FOUNTAIN_SPELLS)) {
play->msgCtx.ocarinaMode = OCARINA_MODE_04;
}
func_80078884(NA_SE_SY_CORRECT_CHIME);
@@ -139,7 +139,7 @@ void EnOwl_Init(Actor* thisx, PlayState* play) {
if (((owlType != OWL_DEFAULT) && (switchFlag < 0x20) && Flags_GetSwitch(play, switchFlag)) ||
// Owl shortcuts at SPOT06: Lake Hylia and SPOT16: Death Mountain Trail
(gSaveContext.n64ddFlag && !(play->sceneNum == SCENE_SPOT06 || play->sceneNum == SCENE_SPOT16))) {
(gSaveContext.n64ddFlag && !(play->sceneNum == SCENE_LAKE_HYLIA || play->sceneNum == SCENE_DEATH_MOUNTAIN_TRAIL))) {
osSyncPrintf("savebitでフクロウ退避\n"); // "Save owl with savebit"
Actor_Kill(&this->actor);
return;
@@ -1105,7 +1105,7 @@ s32 func_80ACC5CC(EnOwl* this) {
s32 func_80ACC624(EnOwl* this, PlayState* play) {
s32 switchFlag = (this->actor.params & 0xFC0) >> 6;
if (play->sceneNum != SCENE_SPOT11) {
if (play->sceneNum != SCENE_DESERT_COLOSSUS) {
return true;
} else if (switchFlag == 0xA) {
return true;
@@ -199,7 +199,7 @@ void EnRiverSound_Update(Actor* thisx, PlayState* play) {
}
} else if ((thisx->params == RS_UNK_13) || (thisx->params == RS_UNK_19)) {
func_8002DBD0(&player->actor, &thisx->home.pos, &thisx->world.pos);
} else if (play->sceneNum == SCENE_DDAN_BOSS && Flags_GetClear(play, thisx->room)) {
} else if (play->sceneNum == SCENE_DODONGOS_CAVERN_BOSS && Flags_GetClear(play, thisx->room)) {
Actor_Kill(thisx);
}
}
+1 -1
View File
@@ -118,7 +118,7 @@ void func_80AE7590(EnRl* this, PlayState* play) {
Vec3f pos;
s16 sceneNum = play->sceneNum;
if (gSaveContext.sceneSetupIndex == 4 && sceneNum == SCENE_KENJYANOMA && play->csCtx.state != CS_STATE_IDLE &&
if (gSaveContext.sceneSetupIndex == 4 && sceneNum == SCENE_CHAMBER_OF_THE_SAGES && play->csCtx.state != CS_STATE_IDLE &&
play->csCtx.npcActions[6] != NULL && play->csCtx.npcActions[6]->action == 2 &&
!this->lightMedallionGiven) {
player = GET_PLAYER(play);
+17 -17
View File
@@ -218,7 +218,7 @@ s16 func_80AF56F4(PlayState* play, Actor* thisx) {
}
void func_80AF57D8(EnSa* this, PlayState* play) {
if (play->sceneNum != SCENE_SPOT05 ||
if (play->sceneNum != SCENE_SACRED_FOREST_MEADOW ||
ABS((s16)(this->actor.yawTowardsPlayer - this->actor.shape.rot.y)) < 0x1555 || this->interactInfo.talkState != NPC_TALK_STATE_IDLE) {
Npc_UpdateTalking(play, &this->actor, &this->interactInfo.talkState, this->collider.dim.radius + 30.0f,
func_80AF55E0, func_80AF56F4);
@@ -375,24 +375,24 @@ void EnSa_ChangeAnim(EnSa* this, s32 index) {
s32 func_80AF5DFC(EnSa* this, PlayState* play) {
if (gSaveContext.cutsceneIndex >= 0xFFF0 && gSaveContext.cutsceneIndex != 0xFFFD) {
if (play->sceneNum == SCENE_SPOT04) {
if (play->sceneNum == SCENE_KOKIRI_FOREST) {
return 4;
}
if (play->sceneNum == SCENE_SPOT05) {
if (play->sceneNum == SCENE_SACRED_FOREST_MEADOW) {
return 5;
}
}
if (play->sceneNum == SCENE_KOKIRI_HOME5 && !LINK_IS_ADULT &&
if (play->sceneNum == SCENE_SARIAS_HOUSE && !LINK_IS_ADULT &&
INV_CONTENT(ITEM_OCARINA_FAIRY) == ITEM_OCARINA_FAIRY && !Flags_GetEventChkInf(EVENTCHKINF_OBTAINED_ZELDAS_LETTER)) {
return 1;
}
if (play->sceneNum == SCENE_SPOT05 && (Flags_GetEventChkInf(EVENTCHKINF_OBTAINED_ZELDAS_LETTER))) {
if (play->sceneNum == SCENE_SACRED_FOREST_MEADOW && (Flags_GetEventChkInf(EVENTCHKINF_OBTAINED_ZELDAS_LETTER))) {
if (gSaveContext.n64ddFlag) {
return 5;
}
return CHECK_QUEST_ITEM(QUEST_SONG_SARIA) ? 2 : 5;
}
if (play->sceneNum == SCENE_SPOT04 && !CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD)) {
if (play->sceneNum == SCENE_KOKIRI_FOREST && !CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD)) {
if (Flags_GetInfTable(INFTABLE_GREETED_BY_SARIA)) {
return 1;
}
@@ -405,17 +405,17 @@ void func_80AF5F34(EnSa* this, PlayState* play) {
Player* player = GET_PLAYER(play);
s16 trackingMode = NPC_TRACKING_PLAYER_AUTO_TURN;
if (play->sceneNum == SCENE_SPOT04) {
if (play->sceneNum == SCENE_KOKIRI_FOREST) {
trackingMode = (this->actionFunc == func_80AF68E4) ? NPC_TRACKING_NONE : NPC_TRACKING_FULL_BODY;
}
if (play->sceneNum == SCENE_SPOT05) {
if (play->sceneNum == SCENE_SACRED_FOREST_MEADOW) {
trackingMode = (this->skelAnime.animation == &gSariaPlayingOcarinaAnim) ? NPC_TRACKING_NONE : NPC_TRACKING_HEAD;
}
if (play->sceneNum == SCENE_SPOT05 && this->actionFunc == func_80AF6448 &&
if (play->sceneNum == SCENE_SACRED_FOREST_MEADOW && this->actionFunc == func_80AF6448 &&
this->skelAnime.animation == &gSariaStopPlayingOcarinaAnim) {
trackingMode = NPC_TRACKING_NONE;
}
if (play->sceneNum == SCENE_SPOT05 && this->actionFunc == func_80AF68E4 &&
if (play->sceneNum == SCENE_SACRED_FOREST_MEADOW && this->actionFunc == func_80AF68E4 &&
this->skelAnime.animation == &gSariaOcarinaToMouthAnim) {
trackingMode = NPC_TRACKING_NONE;
}
@@ -537,7 +537,7 @@ void EnSa_Destroy(Actor* thisx, PlayState* play) {
}
void func_80AF6448(EnSa* this, PlayState* play) {
if (play->sceneNum == SCENE_SPOT04) {
if (play->sceneNum == SCENE_KOKIRI_FOREST) {
if (this->interactInfo.talkState != NPC_TALK_STATE_IDLE) {
switch (this->actor.textId) {
case 0x1002:
@@ -606,7 +606,7 @@ void func_80AF6448(EnSa* this, PlayState* play) {
EnSa_ChangeAnim(this, ENSA_ANIM1_6);
}
}
if (this->interactInfo.talkState != NPC_TALK_STATE_IDLE && play->sceneNum == SCENE_SPOT05) {
if (this->interactInfo.talkState != NPC_TALK_STATE_IDLE && play->sceneNum == SCENE_SACRED_FOREST_MEADOW) {
Animation_Change(&this->skelAnime, &gSariaStopPlayingOcarinaAnim, 1.0f, 0.0f, 10.0f, ANIMMODE_ONCE, -10.0f);
this->actionFunc = func_80AF67D0;
}
@@ -704,7 +704,7 @@ void func_80AF68E4(EnSa* this, PlayState* play) {
this->actor.velocity.x = (endPos.x - startPos.x) / temp_f0;
this->actor.velocity.y = (endPos.y - startPos.y) / temp_f0;
gravity = this->actor.gravity;
if (play->sceneNum == SCENE_SPOT05) {
if (play->sceneNum == SCENE_SACRED_FOREST_MEADOW) {
gravity = 0.0f;
}
this->actor.velocity.y += gravity;
@@ -717,12 +717,12 @@ void func_80AF68E4(EnSa* this, PlayState* play) {
}
void func_80AF6B20(EnSa* this, PlayState* play) {
if (play->sceneNum == SCENE_SPOT05) {
if (play->sceneNum == SCENE_SACRED_FOREST_MEADOW) {
Item_Give(play, ITEM_SONG_SARIA);
EnSa_ChangeAnim(this, ENSA_ANIM1_6);
}
if (play->sceneNum == SCENE_SPOT04) {
if (play->sceneNum == SCENE_KOKIRI_FOREST) {
EnSa_ChangeAnim(this, ENSA_ANIM1_4);
this->actor.world.pos = this->actor.home.pos;
this->actor.world.rot = this->unk_21A;
@@ -767,7 +767,7 @@ void EnSa_Update(Actor* thisx, PlayState* play) {
func_8002D7EC(&this->actor);
}
if (play->sceneNum != SCENE_SPOT05) {
if (play->sceneNum != SCENE_SACRED_FOREST_MEADOW) {
Actor_UpdateBgCheckInfo(play, &this->actor, 0.0f, 0.0f, 0.0f, 4);
}
@@ -797,7 +797,7 @@ s32 EnSa_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* po
Matrix_RotateX(BINANG_TO_RAD(sp18.x), MTXMODE_APPLY);
}
if (play->sceneNum == SCENE_SPOT05 && limbIndex == 15) {
if (play->sceneNum == SCENE_SACRED_FOREST_MEADOW && limbIndex == 15) {
*dList = gSariaRightHandAndOcarinaDL;
}
@@ -157,8 +157,8 @@ void EnSyatekiMan_Init(Actor* thisx, PlayState* play) {
if (gSaveContext.n64ddFlag && Randomizer_GetSettingValue(RSK_SHUFFLE_INTERIOR_ENTRANCES)) {
// If child is in the adult shooting gallery or adult in the child shooting gallery, then despawn the shooting gallery man
if ((LINK_IS_CHILD && Entrance_SceneAndSpawnAre(SCENE_SYATEKIJYOU, 0x00)) || //Kakariko Village -> Adult Shooting Gallery, index 003B in the entrance table
(LINK_IS_ADULT && Entrance_SceneAndSpawnAre(SCENE_SYATEKIJYOU, 0x01))) { //Market -> Child Shooting Gallery, index 016D in the entrance table
if ((LINK_IS_CHILD && Entrance_SceneAndSpawnAre(SCENE_SHOOTING_GALLERY, 0x00)) || //Kakariko Village -> Adult Shooting Gallery, index 003B in the entrance table
(LINK_IS_ADULT && Entrance_SceneAndSpawnAre(SCENE_SHOOTING_GALLERY, 0x01))) { //Market -> Child Shooting Gallery, index 016D in the entrance table
Actor_Kill(thisx);
return;
}
+4 -4
View File
@@ -146,7 +146,7 @@ void EnTa_Init(Actor* thisx, PlayState* play2) {
Actor_Kill(&this->actor);
} else if (!LINK_IS_ADULT) {
Actor_Kill(&this->actor);
} else if (play->sceneNum == SCENE_MALON_STABLE && !IS_DAY) {
} else if (play->sceneNum == SCENE_STABLE && !IS_DAY) {
Actor_Kill(&this->actor);
osSyncPrintf(VT_FGCOL(CYAN) " 夜はいない \n" VT_RST);
} else {
@@ -158,7 +158,7 @@ void EnTa_Init(Actor* thisx, PlayState* play2) {
break;
default:
osSyncPrintf(VT_FGCOL(CYAN) " その他のタロン \n" VT_RST);
if (play->sceneNum == SCENE_SPOT15) {
if (play->sceneNum == SCENE_HYRULE_CASTLE) {
if (Flags_GetEventChkInf(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE)) {
Actor_Kill(&this->actor);
} else if (Flags_GetEventChkInf(EVENTCHKINF_TALON_WOKEN_IN_CASTLE)) {
@@ -173,7 +173,7 @@ void EnTa_Init(Actor* thisx, PlayState* play2) {
this->currentAnimation = &gTalonSleepAnim;
this->actor.shape.shadowScale = 54.0f;
}
} else if (play->sceneNum == SCENE_SOUKO) {
} else if (play->sceneNum == SCENE_LON_LON_BUILDINGS) {
osSyncPrintf(VT_FGCOL(CYAN) " ロンロン牧場の倉庫 の タロン\n" VT_RST);
if (!Flags_GetEventChkInf(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE)) {
Actor_Kill(&this->actor);
@@ -236,7 +236,7 @@ void EnTa_Destroy(Actor* thisx, PlayState* play) {
Collider_DestroyCylinder(play, &this->collider);
if (this->actor.params != 1 && this->actor.params != 2 && play->sceneNum == SCENE_SOUKO) {
if (this->actor.params != 1 && this->actor.params != 2 && play->sceneNum == SCENE_LON_LON_BUILDINGS) {
gSaveContext.timer1State = 0;
}
+1 -1
View File
@@ -62,7 +62,7 @@ u16 EnTg_GetTextId(PlayState* play, Actor* thisx) {
return temp;
}
// Use a different set of dialogue in Kakariko Village (Adult)
if (play->sceneNum == SCENE_SPOT01) {
if (play->sceneNum == SCENE_KAKARIKO_VILLAGE) {
if (this->nextDialogue % 2 != 0) {
phi = 0x5089;
} else {
+2 -2
View File
@@ -503,11 +503,11 @@ void EnTk_Init(Actor* thisx, PlayState* play) {
CollisionCheck_SetInfo2(&this->actor.colChkInfo, NULL, &sColChkInfoInit);
if (CVarGetInteger("gDampeAllNight", 0)) {
if (!!LINK_IS_ADULT || play->sceneNum != SCENE_SPOT02) {
if (!!LINK_IS_ADULT || play->sceneNum != SCENE_GRAVEYARD) {
Actor_Kill(&this->actor);
return;
}
} else if (gSaveContext.dayTime <= 0xC000 || gSaveContext.dayTime >= 0xE000 || !!LINK_IS_ADULT || play->sceneNum != SCENE_SPOT02) {
} else if (gSaveContext.dayTime <= 0xC000 || gSaveContext.dayTime >= 0xE000 || !!LINK_IS_ADULT || play->sceneNum != SCENE_GRAVEYARD) {
Actor_Kill(&this->actor);
return;
}
@@ -98,17 +98,17 @@ void EnToryo_Init(Actor* thisx, PlayState* play) {
s32 pad;
switch (play->sceneNum) {
case SCENE_SPOT09:
case SCENE_GERUDO_VALLEY:
if (LINK_AGE_IN_YEARS == YEARS_ADULT) {
this->stateFlags |= 1;
}
break;
case SCENE_SPOT01:
case SCENE_KAKARIKO_VILLAGE:
if ((LINK_AGE_IN_YEARS == YEARS_CHILD) && IS_DAY) {
this->stateFlags |= 2;
}
break;
case SCENE_KAKARIKO:
case SCENE_KAKARIKO_CENTER_GUEST_HOUSE:
if ((LINK_AGE_IN_YEARS == YEARS_CHILD) && IS_NIGHT) {
this->stateFlags |= 4;
}
@@ -383,7 +383,7 @@ void EnViewer_UpdateImpl(EnViewer* this, PlayState* play) {
break;
}
} else if (type == ENVIEWER_TYPE_2_ZELDA) {
if (play->sceneNum == SCENE_SPOT00) { // Hyrule Field
if (play->sceneNum == SCENE_HYRULE_FIELD) { // Hyrule Field
switch (this->state) {
case 0:
if (play->csCtx.state != CS_STATE_IDLE) {
@@ -584,7 +584,7 @@ void EnViewer_DrawHorse(EnViewer* this, PlayState* play) {
s32 EnViewer_ZeldaOverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot,
void* thisx) {
if (play->sceneNum == SCENE_SPOT00) { // Hyrule Field
if (play->sceneNum == SCENE_HYRULE_FIELD) { // Hyrule Field
if (limbIndex == 2) {
*dList = gChildZeldaCutsceneDressDL;
}
@@ -610,7 +610,7 @@ s32 EnViewer_ZeldaOverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList,
void EnViewer_ZeldaPostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
s32 pad;
if (play->sceneNum == SCENE_TOKINOMA) {
if (play->sceneNum == SCENE_TEMPLE_OF_TIME) {
if (limbIndex == 16) {
OPEN_DISPS(play->state.gfxCtx);
gSPDisplayList(POLY_OPA_DISP++, gChildZeldaOcarinaOfTimeDL);
@@ -621,7 +621,7 @@ void EnViewer_ZeldaPostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec
void EnViewer_DrawZelda(EnViewer* this, PlayState* play) {
OPEN_DISPS(play->state.gfxCtx);
if (play->sceneNum == SCENE_SPOT00) { // Hyrule Field
if (play->sceneNum == SCENE_HYRULE_FIELD) { // Hyrule Field
if (play->csCtx.frames < 771) {
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(gChildZeldaEyeInTex));
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(gChildZeldaEyeOutTex));
@@ -85,7 +85,7 @@ void EnWonderTalk2_Init(Actor* thisx, PlayState* play) {
Actor_Kill(&this->actor);
return;
}
if ((this->talkMode == 1) && (play->sceneNum == SCENE_MEN) && (this->switchFlag != 0x08) &&
if ((this->talkMode == 1) && (play->sceneNum == SCENE_GERUDO_TRAINING_GROUND) && (this->switchFlag != 0x08) &&
(this->switchFlag != 0x16) && (this->switchFlag != 0x2F)) {
this->unk_15A = false;
@@ -177,7 +177,7 @@ void EnWood02_Init(Actor* thisx, PlayState* play2) {
// as the night scene, For the always spawn GS enhancement we apply the needed
// params to have the GS drop when bonking
if ((this->actor.params & 0xFF) == WOOD_TREE_CONICAL_MEDIUM && IS_DAY &&
play->sceneNum == SCENE_SPOT01 && CVarGetInteger("gNightGSAlwaysSpawn", 0)) {
play->sceneNum == SCENE_KAKARIKO_VILLAGE && CVarGetInteger("gNightGSAlwaysSpawn", 0)) {
this->actor.params = 0x2001;
this->actor.home.rot.z = 0x71;
}
+6 -6
View File
@@ -447,7 +447,7 @@ void EnXc_SetLandingSFX(EnXc* this, PlayState* play) {
u32 sfxId;
s16 sceneNum = play->sceneNum;
if ((gSaveContext.sceneSetupIndex != 4) || (sceneNum != SCENE_SPOT11)) {
if ((gSaveContext.sceneSetupIndex != 4) || (sceneNum != SCENE_DESERT_COLOSSUS)) {
if (Animation_OnFrame(&this->skelAnime, 11.0f)) {
sfxId = SFX_FLAG;
sfxId += SurfaceType_GetSfx(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId);
@@ -462,7 +462,7 @@ void EnXc_SetColossusAppearSFX(EnXc* this, PlayState* play) {
if (gSaveContext.sceneSetupIndex == 4) {
sceneNum = play->sceneNum;
if (sceneNum == SCENE_SPOT11) {
if (sceneNum == SCENE_DESERT_COLOSSUS) {
CutsceneContext* csCtx = &play->csCtx;
u16 frameCount = csCtx->frames;
f32 wDest[2];
@@ -486,7 +486,7 @@ void EnXc_SetColossusAppearSFX(EnXc* this, PlayState* play) {
void func_80B3D118(PlayState* play) {
s16 sceneNum;
if ((gSaveContext.sceneSetupIndex != 4) || (sceneNum = play->sceneNum, sceneNum != SCENE_SPOT11)) {
if ((gSaveContext.sceneSetupIndex != 4) || (sceneNum = play->sceneNum, sceneNum != SCENE_DESERT_COLOSSUS)) {
func_800788CC(NA_SE_PL_SKIP);
}
}
@@ -502,7 +502,7 @@ void EnXc_SetColossusWindSFX(PlayState* play) {
s32 pad;
s16 sceneNum = play->sceneNum;
if (sceneNum == SCENE_SPOT11) {
if (sceneNum == SCENE_DESERT_COLOSSUS) {
CutsceneContext* csCtx = &play->csCtx;
u16 frameCount = csCtx->frames;
@@ -570,7 +570,7 @@ void EnXc_InitFlame(EnXc* this, PlayState* play) {
s32 pad;
s16 sceneNum = play->sceneNum;
if (sceneNum == SCENE_SPOT17) {
if (sceneNum == SCENE_DEATH_MOUNTAIN_CRATER) {
CsCmdActorAction* npcAction = EnXc_GetCsCmd(play, 0);
if (npcAction != NULL) {
s32 action = npcAction->action;
@@ -912,7 +912,7 @@ void EnXc_SetupDisappear(EnXc* this, PlayState* play) {
s16 sceneNum = play->sceneNum;
// Sheik fades away if end of Bolero CS, kill actor otherwise
if (sceneNum == SCENE_SPOT17) {
if (sceneNum == SCENE_DEATH_MOUNTAIN_CRATER) {
this->action = SHEIK_ACTION_FADE;
this->drawMode = SHEIK_DRAW_NOTHING;
this->actor.shape.shadowAlpha = 0;
+15 -15
View File
@@ -1674,9 +1674,9 @@ u16 func_80B572F0(PlayState* play) {
s16 sceneNum = play->sceneNum;
u16 ret;
if (sceneNum == SCENE_GANON_SONOGO) {
if (sceneNum == SCENE_GANONS_TOWER_COLLAPSE_INTERIOR) {
ret = 0x71A8;
} else if (sceneNum == SCENE_GANON_FINAL) {
} else if (sceneNum == SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR) {
ret = 0x71A9;
} else {
ret = 0x71AB;
@@ -1768,7 +1768,7 @@ s32 func_80B575D0(EnZl3* this, PlayState* play) {
s32 func_80B575F0(EnZl3* this, PlayState* play) {
s16 sceneNum = play->sceneNum;
if ((sceneNum == SCENE_GANON_SONOGO) && (func_80B54DB4(this) == 0x26)) {
if ((sceneNum == SCENE_GANONS_TOWER_COLLAPSE_INTERIOR) && (func_80B54DB4(this) == 0x26)) {
s32 unk_314 = this->unk_314;
if (unk_314 == 1) {
@@ -1781,7 +1781,7 @@ s32 func_80B575F0(EnZl3* this, PlayState* play) {
void func_80B5764C(EnZl3* this, PlayState* play) {
s16 sceneNum = play->sceneNum;
if ((sceneNum == SCENE_GANON_SONOGO) && (func_80B54DB4(this) == 0x26)) {
if ((sceneNum == SCENE_GANONS_TOWER_COLLAPSE_INTERIOR) && (func_80B54DB4(this) == 0x26)) {
s32 unk_314 = this->unk_314 + 1;
if ((unk_314 == 1) && !Play_InCsMode(play)) {
@@ -1842,7 +1842,7 @@ s32 func_80B57890(EnZl3* this, PlayState* play) {
if (play) {} // Needed to match, this if can be almost anywhere and it still matches
if (sceneNum == SCENE_GANON_SONOGO) {
if (sceneNum == SCENE_GANONS_TOWER_COLLAPSE_INTERIOR) {
if ((result == 0x24) && (curSpawn == 0)) {
return 1;
}
@@ -1858,10 +1858,10 @@ s32 func_80B57890(EnZl3* this, PlayState* play) {
if ((result == 0x28) && (curSpawn == 6)) {
return 1;
}
} else if (sceneNum == SCENE_GANON_FINAL) {
} else if (sceneNum == SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR) {
if ((result == 0x20) && (curSpawn == 0) && Flags_GetSwitch(play, 0x37)) {
if ((play->sceneNum == SCENE_GANON_DEMO) || (play->sceneNum == SCENE_GANON_FINAL) ||
(play->sceneNum == SCENE_GANON_SONOGO) || (play->sceneNum == SCENE_GANONTIKA_SONOGO)) {
if ((play->sceneNum == SCENE_GANON_BOSS) || (play->sceneNum == SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR) ||
(play->sceneNum == SCENE_GANONS_TOWER_COLLAPSE_INTERIOR) || (play->sceneNum == SCENE_INSIDE_GANONS_CASTLE_COLLAPSE)) {
return 1;
}
}
@@ -1874,7 +1874,7 @@ s32 func_80B57890(EnZl3* this, PlayState* play) {
if ((result == 0x23) && (curSpawn == 6)) {
return 1;
}
} else if (sceneNum == SCENE_GANONTIKA_SONOGO) {
} else if (sceneNum == SCENE_INSIDE_GANONS_CASTLE_COLLAPSE) {
if ((result == 0x29) && (curSpawn == 0)) {
return 1;
}
@@ -2484,8 +2484,8 @@ s32 func_80B5944C(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s
s32 func_80B59698(EnZl3* this, PlayState* play) {
s32 cond = Flags_GetSwitch(play, 0x37) &&
((play->sceneNum == SCENE_GANON_DEMO) || (play->sceneNum == SCENE_GANON_FINAL) ||
(play->sceneNum == SCENE_GANON_SONOGO) || (play->sceneNum == SCENE_GANONTIKA_SONOGO));
((play->sceneNum == SCENE_GANON_BOSS) || (play->sceneNum == SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR) ||
(play->sceneNum == SCENE_GANONS_TOWER_COLLAPSE_INTERIOR) || (play->sceneNum == SCENE_INSIDE_GANONS_CASTLE_COLLAPSE));
if (cond) {
u8 curSpawn = play->curSpawn;
@@ -2500,8 +2500,8 @@ s32 func_80B59698(EnZl3* this, PlayState* play) {
s32 func_80B59768(EnZl3* this, PlayState* play) {
s32 cond = Flags_GetSwitch(play, 0x37) &&
((play->sceneNum == SCENE_GANON_DEMO) || (play->sceneNum == SCENE_GANON_FINAL) ||
(play->sceneNum == SCENE_GANON_SONOGO) || (play->sceneNum == SCENE_GANONTIKA_SONOGO));
((play->sceneNum == SCENE_GANON_BOSS) || (play->sceneNum == SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR) ||
(play->sceneNum == SCENE_GANONS_TOWER_COLLAPSE_INTERIOR) || (play->sceneNum == SCENE_INSIDE_GANONS_CASTLE_COLLAPSE));
if (cond) {
u8 curSpawn = play->curSpawn;
@@ -2558,8 +2558,8 @@ void func_80B59828(EnZl3* this, PlayState* play) {
func_80B54EA4(this, play);
cond = Flags_GetSwitch(play, 0x37) &&
((play->sceneNum == SCENE_GANON_DEMO) || (play->sceneNum == SCENE_GANON_FINAL) ||
(play->sceneNum == SCENE_GANON_SONOGO) || (play->sceneNum == SCENE_GANONTIKA_SONOGO));
((play->sceneNum == SCENE_GANON_BOSS) || (play->sceneNum == SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR) ||
(play->sceneNum == SCENE_GANONS_TOWER_COLLAPSE_INTERIOR) || (play->sceneNum == SCENE_INSIDE_GANONS_CASTLE_COLLAPSE));
if (cond) {
func_80B53614(this, play);
}
@@ -754,7 +754,7 @@ void ObjBean_SetupWaitForPlayer(ObjBean* this) {
void ObjBean_WaitForPlayer(ObjBean* this, PlayState* play) {
if (func_8004356C(&this->dyna)) { // Player is standing on
ObjBean_SetupFly(this);
if (play->sceneNum == SCENE_SPOT10) { // Lost woods
if (play->sceneNum == SCENE_LOST_WOODS) { // Lost woods
Camera_ChangeSetting(play->cameraPtrs[MAIN_CAM], CAM_SET_BEAN_LOST_WOODS);
} else {
Camera_ChangeSetting(play->cameraPtrs[MAIN_CAM], CAM_SET_BEAN_GENERIC);
@@ -790,7 +790,7 @@ void ObjBean_Fly(ObjBean* this, PlayState* play) {
func_8002F974(&this->dyna.actor, NA_SE_PL_PLANT_MOVE - SFX_FLAG);
if (play->sceneNum == SCENE_SPOT10) {
if (play->sceneNum == SCENE_LOST_WOODS) {
Camera_ChangeSetting(play->cameraPtrs[MAIN_CAM], CAM_SET_BEAN_LOST_WOODS);
} else {
Camera_ChangeSetting(play->cameraPtrs[MAIN_CAM], CAM_SET_BEAN_GENERIC);
@@ -156,7 +156,7 @@ void ObjHsblock_Draw(Actor* thisx, PlayState* play) {
gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
if (play->sceneNum == SCENE_HIDAN) {
if (play->sceneNum == SCENE_FIRE_TEMPLE) {
color = &sFireTempleColor;
} else {
defaultColor.r = mREG(13);
@@ -54,8 +54,9 @@ static Color_RGB8 sColors[][4] = {
};
static s16 sScenes[] = {
SCENE_YDAN, SCENE_DDAN, SCENE_BMORI1, SCENE_HIDAN, SCENE_MIZUSIN,
SCENE_JYASINZOU, SCENE_HAKADAN, SCENE_GANON, SCENE_MEN,
SCENE_DEKU_TREE, SCENE_DODONGOS_CAVERN, SCENE_FOREST_TEMPLE,
SCENE_FIRE_TEMPLE, SCENE_WATER_TEMPLE, SCENE_SPIRIT_TEMPLE,
SCENE_SHADOW_TEMPLE, SCENE_GANONS_TOWER, SCENE_GERUDO_TRAINING_GROUND,
};
static InitChainEntry sInitChain[] = {
@@ -275,7 +276,7 @@ void ObjOshihiki_Init(Actor* thisx, PlayState* play2) {
// In MQ Spirit, remove the large silver block in the hole as child so the chest in the silver block hallway
// can be guaranteed accessible
if (gSaveContext.n64ddFlag && LINK_IS_CHILD && ResourceMgr_IsGameMasterQuest() &&
play->sceneNum == SCENE_JYASINZOU && thisx->room == 6 && // Spirit Temple silver block hallway
play->sceneNum == SCENE_SPIRIT_TEMPLE && thisx->room == 6 && // Spirit Temple silver block hallway
thisx->params == 0x9C7) { // Silver block that is marked as in the hole
Actor_Kill(thisx);
return;
@@ -675,14 +676,14 @@ void ObjOshihiki_Draw(Actor* thisx, PlayState* play) {
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
switch (play->sceneNum) {
case SCENE_YDAN:
case SCENE_DDAN:
case SCENE_BMORI1:
case SCENE_HIDAN:
case SCENE_MIZUSIN:
case SCENE_JYASINZOU:
case SCENE_HAKADAN:
case SCENE_MEN:
case SCENE_DEKU_TREE:
case SCENE_DODONGOS_CAVERN:
case SCENE_FOREST_TEMPLE:
case SCENE_FIRE_TEMPLE:
case SCENE_WATER_TEMPLE:
case SCENE_SPIRIT_TEMPLE:
case SCENE_SHADOW_TEMPLE:
case SCENE_GERUDO_TRAINING_GROUND:
gDPSetEnvColor(POLY_OPA_DISP++, this->color.r, this->color.g, this->color.b, 255);
break;
default:
@@ -34,7 +34,7 @@ void ObjRoomtimer_Init(Actor* thisx, PlayState* play) {
// Shabom room in Jabu Jabu has a lengthened timer in Enemy Randomizer. Flag doesn't match what the game
// expects. Instead set it back to the same flag as what it would be in vanilla.
if (CVarGetInteger("gRandomizedEnemies", 0) && play->sceneNum == SCENE_BDAN && play->roomCtx.curRoom.num == 12) {
if (CVarGetInteger("gRandomizedEnemies", 0) && play->sceneNum == SCENE_JABU_JABU && play->roomCtx.curRoom.num == 12) {
this->switchFlag = 30;
} else {
this->switchFlag = (params >> 10) & 0x3F;
@@ -214,7 +214,7 @@ void ObjectKankyo_Fairies(ObjectKankyo* this, PlayState* play) {
player = GET_PLAYER(play);
if (play->sceneNum == SCENE_SPOT04 && gSaveContext.sceneSetupIndex == 7) {
if (play->sceneNum == SCENE_KOKIRI_FOREST && gSaveContext.sceneSetupIndex == 7) {
dist = Math3D_Vec3f_DistXYZ(&this->prevEyePos, &play->view.eye);
this->prevEyePos.x = play->view.eye.x;
@@ -3930,13 +3930,13 @@ s32 func_808382DC(Player* this, PlayState* play) {
} else {
// Special case for getting crushed in Forest Temple's Checkboard Ceiling Hall or Shadow Temple's
// Falling Spike Trap Room, to respawn the player in a specific place
if (((play->sceneNum == SCENE_BMORI1) && (play->roomCtx.curRoom.num == 15)) ||
((play->sceneNum == SCENE_HAKADAN) && (play->roomCtx.curRoom.num == 10))) {
if (((play->sceneNum == SCENE_FOREST_TEMPLE) && (play->roomCtx.curRoom.num == 15)) ||
((play->sceneNum == SCENE_SHADOW_TEMPLE) && (play->roomCtx.curRoom.num == 10))) {
static SpecialRespawnInfo checkboardCeilingRespawn = { { 1992.0f, 403.0f, -3432.0f }, 0 };
static SpecialRespawnInfo fallingSpikeTrapRespawn = { { 1200.0f, -1343.0f, 3850.0f }, 0 };
SpecialRespawnInfo* respawnInfo;
if (play->sceneNum == SCENE_BMORI1) {
if (play->sceneNum == SCENE_FOREST_TEMPLE) {
respawnInfo = &checkboardCeilingRespawn;
} else {
respawnInfo = &fallingSpikeTrapRespawn;
@@ -4354,8 +4354,8 @@ s32 func_80839034(PlayState* play, Player* this, CollisionPoly* poly, u32 bgId)
if ((this->actor.world.pos.y < -4000.0f) ||
(((this->unk_A7A == 5) || (this->unk_A7A == 12)) &&
((D_80853600 < 100.0f) || (this->fallDistance > 400.0f) ||
((play->sceneNum != SCENE_HAKADAN) && (this->fallDistance > 200.0f)))) ||
((play->sceneNum == SCENE_GANON_FINAL) && (this->fallDistance > 320.0f))) {
((play->sceneNum != SCENE_SHADOW_TEMPLE) && (this->fallDistance > 200.0f)))) ||
((play->sceneNum == SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR) && (this->fallDistance > 320.0f))) {
if (this->actor.bgCheckFlags & 1) {
if (this->unk_A7A == 5) {
@@ -6370,7 +6370,7 @@ s32 func_8083E5A8(Player* this, PlayState* play) {
// Show the cutscene for picking up an item. In vanilla, this happens in bombchu bowling alley (because getting bombchus need to show the cutscene)
// and whenever the player doesn't have the item yet. In rando, we're overruling this because we need to keep showing the cutscene
// because those items can be randomized and thus it's important to keep showing the cutscene.
uint8_t showItemCutscene = play->sceneNum == SCENE_BOWLING || Item_CheckObtainability(giEntry.itemId) == ITEM_NONE || gSaveContext.n64ddFlag;
uint8_t showItemCutscene = play->sceneNum == SCENE_BOMBCHU_BOWLING_ALLEY || Item_CheckObtainability(giEntry.itemId) == ITEM_NONE || gSaveContext.n64ddFlag;
// Only skip cutscenes for drops when they're items/consumables from bushes/rocks/enemies.
uint8_t isDropToSkip = (interactedActor->id == ACTOR_EN_ITEM00 && interactedActor->params != 6 && interactedActor->params != 17) ||
@@ -9518,7 +9518,7 @@ void func_80846648(PlayState* play, Player* this) {
void func_80846660(PlayState* play, Player* this) {
func_80835C58(play, this, func_8084F710, 0);
if ((play->sceneNum == SCENE_SPOT06) && (gSaveContext.sceneSetupIndex >= 4)) {
if ((play->sceneNum == SCENE_LAKE_HYLIA) && (gSaveContext.sceneSetupIndex >= 4)) {
this->unk_84F = 1;
}
this->stateFlags1 |= PLAYER_STATE1_IN_CUTSCENE;
@@ -9732,8 +9732,8 @@ void Player_Init(Actor* thisx, PlayState* play2) {
if ((gSaveContext.sceneSetupIndex < 4) &&
(gEntranceTable[((void)0, gSaveContext.entranceIndex) + ((void)0, gSaveContext.sceneSetupIndex)].field &
0x4000) &&
((play->sceneNum != SCENE_DDAN) || (Flags_GetEventChkInf(EVENTCHKINF_ENTERED_DODONGOS_CAVERN))) &&
((play->sceneNum != SCENE_NIGHT_SHOP) || (Flags_GetEventChkInf(EVENTCHKINF_USED_DODONGOS_CAVERN_BLUE_WARP)))) {
((play->sceneNum != SCENE_DODONGOS_CAVERN) || (Flags_GetEventChkInf(EVENTCHKINF_ENTERED_DODONGOS_CAVERN))) &&
((play->sceneNum != SCENE_BOMBCHU_SHOP) || (Flags_GetEventChkInf(EVENTCHKINF_USED_DODONGOS_CAVERN_BLUE_WARP)))) {
TitleCard_InitPlaceName(play, &play->actorCtx.titleCtx, this->giObjectSegment, 160, 120, 144,
24, 20);
}
@@ -9747,7 +9747,7 @@ void Player_Init(Actor* thisx, PlayState* play2) {
gSaveContext.respawn[RESPAWN_MODE_DOWN].data = 1;
if (play->sceneNum <= SCENE_GANONTIKA_SONOGO) {
if (play->sceneNum <= SCENE_INSIDE_GANONS_CASTLE_COLLAPSE) {
gSaveContext.infTable[26] |= gBitFlags[play->sceneNum];
}
@@ -10345,7 +10345,7 @@ void Player_UpdateCamAndSeqModes(PlayState* play, Player* this) {
Audio_SetBgmEnemyVolume(sqrtf(play->actorCtx.targetCtx.bgmEnemy->xyzDistToPlayerSq));
}
if (play->sceneNum != SCENE_TURIBORI) {
if (play->sceneNum != SCENE_FISHING_POND) {
Audio_SetSequenceMode(seqMode);
}
}
@@ -10461,7 +10461,7 @@ void func_80848C74(PlayState* play, Player* this) {
if (spawnedFlame) {
func_8002F7DC(&this->actor, NA_SE_EV_TORCH - SFX_FLAG);
if (play->sceneNum == SCENE_JYASINBOSS) {
if (play->sceneNum == SCENE_SPIRIT_TEMPLE_BOSS) {
dmgCooldown = 0;
} else {
dmgCooldown = 7;
@@ -13466,7 +13466,7 @@ void func_8084F710(Player* this, PlayState* play) {
this->unk_850 = 1;
}
} else {
if ((play->sceneNum == SCENE_SPOT04) && func_8083ADD4(play, this)) {
if ((play->sceneNum == SCENE_KOKIRI_FOREST) && func_8083ADD4(play, this)) {
return;
}
func_80853080(this, play);
@@ -13475,7 +13475,7 @@ void func_8084F710(Player* this, PlayState* play) {
Math_SmoothStepToF(&this->actor.velocity.y, 2.0f, 0.3f, 8.0f, 0.5f);
}
if ((play->sceneNum == SCENE_KENJYANOMA) && func_8083ADD4(play, this)) {
if ((play->sceneNum == SCENE_CHAMBER_OF_THE_SAGES) && func_8083ADD4(play, this)) {
return;
}
@@ -13492,7 +13492,7 @@ void func_8084F88C(Player* this, PlayState* play) {
if ((this->unk_850++ > 8) && (play->sceneLoadFlag == 0)) {
if (this->unk_84F != 0) {
if (play->sceneNum == 9) {
if (play->sceneNum == SCENE_ICE_CAVERN) {
Play_TriggerRespawn(play);
play->nextEntranceIndex = 0x0088;
} else if (this->unk_84F < 0) {
@@ -14528,7 +14528,7 @@ void func_80851828(PlayState* play, Player* this, CsCmdActorAction* arg2) {
func_80845BA0(play, this, &sp1C, 10);
if (play->sceneNum == SCENE_BDAN_BOSS) {
if (play->sceneNum == SCENE_JABU_JABU_BOSS) {
if (this->unk_850 == 0) {
if (Message_GetState(&play->msgCtx) == TEXT_STATE_NONE) {
return;
@@ -15006,7 +15006,7 @@ void func_80852944(PlayState* play, Player* this, CsCmdActorAction* arg2) {
void func_808529D0(PlayState* play, Player* this, CsCmdActorAction* arg2) {
this->actor.world.pos.x = arg2->startPos.x;
this->actor.world.pos.y = arg2->startPos.y;
if ((play->sceneNum == SCENE_SPOT04) && !LINK_IS_ADULT) {
if ((play->sceneNum == SCENE_KOKIRI_FOREST) && !LINK_IS_ADULT) {
this->actor.world.pos.y -= 1.0f;
}
this->actor.world.pos.z = arg2->startPos.z;
@@ -3059,7 +3059,7 @@ void FileChoose_LoadGame(GameState* thisx) {
// When remeber save location is on, set save warp if the save was in an a grotto, or
// the entrance index is -1 from shuffle overwarld spawn
if (Randomizer_GetSettingValue(RSK_SHUFFLE_ENTRANCES) && ((!CVarGetInteger("gRememberSaveLocation", 0) ||
gSaveContext.savedSceneNum == SCENE_YOUSEI_IZUMI_TATE || gSaveContext.savedSceneNum == SCENE_KAKUSIANA) ||
gSaveContext.savedSceneNum == SCENE_FAIRYS_FOUNTAIN || gSaveContext.savedSceneNum == SCENE_GROTTOS) ||
(CVarGetInteger("gRememberSaveLocation", 0) && Randomizer_GetSettingValue(RSK_SHUFFLE_OVERWORLD_SPAWNS) && gSaveContext.entranceIndex == -1))) {
Entrance_SetSavewarpEntrance();
}
@@ -312,7 +312,7 @@ void KaleidoScope_DrawDungeonMap(PlayState* play, GraphicsContext* gfxCtx) {
KaleidoScope_DrawQuadTextureRGBA32(gfxCtx, gGoldSkulltulaIconTex, 24, 24, 8);
}
if ((play->sceneNum >= SCENE_YDAN) && (play->sceneNum <= SCENE_TAKARAYA)) {
if ((play->sceneNum >= SCENE_DEKU_TREE) && (play->sceneNum <= SCENE_TREASURE_BOX_SHOP)) {
stepR = (mapBgPulseR - mapBgPulseColors[mapBgPulseStage][0]) / mapBgPulseTimer;
stepG = (mapBgPulseG - mapBgPulseColors[mapBgPulseStage][1]) / mapBgPulseTimer;
stepB = (mapBgPulseB - mapBgPulseColors[mapBgPulseStage][2]) / mapBgPulseTimer;
@@ -3206,14 +3206,14 @@ void KaleidoScope_UpdateDungeonMap(PlayState* play) {
KaleidoScope_LoadDungeonMap(play);
Map_SetFloorPalettesData(play, pauseCtx->dungeonMapSlot - 3);
if ((play->sceneNum >= SCENE_YDAN) && (play->sceneNum <= SCENE_TAKARAYA)) {
if ((play->sceneNum >= SCENE_DEKU_TREE) && (play->sceneNum <= SCENE_TREASURE_BOX_SHOP)) {
if ((VREG(30) + 3) == pauseCtx->cursorPoint[PAUSE_MAP]) {
// HDTODO: Handle Runtime Modified Textures (HD)
KaleidoScope_OverridePalIndexCI4(interfaceCtx->mapSegment[0], 2040, interfaceCtx->mapPaletteIndex, 14);
}
}
if ((play->sceneNum >= SCENE_YDAN) && (play->sceneNum <= SCENE_TAKARAYA)) {
if ((play->sceneNum >= SCENE_DEKU_TREE) && (play->sceneNum <= SCENE_TREASURE_BOX_SHOP)) {
if ((VREG(30) + 3) == pauseCtx->cursorPoint[PAUSE_MAP]) {
// HDTODO: Handle Runtime Modified Textures (HD)
KaleidoScope_OverridePalIndexCI4(interfaceCtx->mapSegment[1], 2040, interfaceCtx->mapPaletteIndex, 14);
@@ -3300,24 +3300,24 @@ void KaleidoScope_Update(PlayState* play)
#endif
switch (play->sceneNum) {
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:
#if 1
sInDungeonScene = true;
//size2 = (uintptr_t)_icon_item_dungeon_staticSegmentRomEnd - (uintptr_t)_icon_item_dungeon_staticSegmentRomStart;
@@ -4223,24 +4223,24 @@ void KaleidoScope_Update(PlayState* play)
func_800418D0(&play->colCtx, play);
switch (play->sceneNum) {
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:
Map_InitData(play, play->interfaceCtx.mapRoomNum);
break;
}
@@ -65,8 +65,8 @@ void PauseMapMark_DrawForDungeon(PlayState* play) {
break;
}
if ((mapMarkData->markType == PAUSE_MAP_MARK_BOSS) && (play->sceneNum >= SCENE_YDAN_BOSS) &&
(play->sceneNum <= SCENE_GANON_FINAL)) {
if ((mapMarkData->markType == PAUSE_MAP_MARK_BOSS) && (play->sceneNum >= SCENE_DEKU_TREE_BOSS) &&
(play->sceneNum <= SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR)) {
if (gBossMarkState == 0) {
Math_ApproachF(&gBossMarkScale, 1.5f, 1.0f, 0.041f);
if (gBossMarkScale == 1.5f) {
@@ -104,14 +104,14 @@ void PauseMapMark_DrawForDungeon(PlayState* play) {
display = false;
} else {
switch (play->sceneNum) {
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_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:
display = false;
break;
default:
@@ -159,16 +159,16 @@ void PauseMapMark_Draw(PlayState* play) {
PauseMapMark_Init(play);
switch (play->sceneNum) {
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:
PauseMapMark_DrawForDungeon(play);
break;
}