Add scene table (#3131)
* Add scene table * Re-add accidentally deleted entry * Update CrashHandlerExt.cpp * Update CrashHandlerExt.cpp
This commit is contained in:
@@ -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) {
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user