#include "global.h" #include "main.h" #include "common.h" #include "functions.h" #include "sound.h" #include "effects.h" #include "screen.h" #include "flags.h" #include "item.h" #include "save.h" #include "area.h" #include "game.h" #include "npc.h" #include "kinstone.h" extern u32 sub_08060354(void); extern void sub_08057E64(void); extern void sub_0809F814(u32); extern void sub_080300E8(void); extern void sub_08058D34(void); extern void sub_0807BB98(u32, u32, u32, u32); extern void sub_080AF2E4(void); extern void sub_08059994(void); static void sub_0804E150(void); static void sub_0804D0B4(void); static void sub_0804D9B0(void); static void sub_0804ED18(void); static void sub_0804F578(void); u32 sub_unk3_ArmosInteriors_RuinsEntranceNorth(u32 arg0) { return 1; } void sub_StateChange_ArmosInteriors_RuinsEntranceNorth(void) { sub_08030118(0); } u32 sub_unk3_ArmosInteriors_RuinsEntranceSouth(void) { return 1; } void sub_StateChange_ArmosInteriors_RuinsEntranceSouth(void) { sub_08030118(1); } u32 sub_unk3_ArmosInteriors_RuinsLeft(void) { return 1; } void sub_StateChange_ArmosInteriors_RuinsLeft(void) { sub_08030118(2); } u32 sub_unk3_ArmosInteriors_RuinsMiddleLeft(void) { return 1; } void sub_StateChange_ArmosInteriors_RuinsMiddleLeft(void) { sub_08030118(3); } u32 sub_unk3_ArmosInteriors_RuinsMiddleRight(void) { return 1; } void sub_StateChange_ArmosInteriors_RuinsMiddleRight(void) { sub_08030118(4); } u32 sub_unk3_ArmosInteriors_RuinsRight(void) { return 1; } void sub_StateChange_ArmosInteriors_RuinsRight(void) { sub_08030118(5); } u32 sub_unk3_ArmosInteriors_6(void) { return 1; } void sub_StateChange_ArmosInteriors_6(void) { sub_08030118(6); } u32 sub_unk3_ArmosInteriors_RuinsGrassPath(void) { return 1; } void sub_StateChange_ArmosInteriors_RuinsGrassPath(void) { sub_08030118(7); } u32 sub_unk3_ArmosInteriors_8(void) { return 1; } void sub_StateChange_ArmosInteriors_8(void) { sub_08030118(8); } u32 sub_unk3_ArmosInteriors_FortressOfWindsLeft(void) { return 1; } void sub_StateChange_ArmosInteriors_FortressOfWindsLeft(void) { sub_08030118(9); gArea.dungeon_idx = 3; gArea.areaMetadata = 0x4e; } u32 sub_unk3_ArmosInteriors_FortressOfWindsRight(void) { return 1; } void sub_StateChange_ArmosInteriors_FortressOfWindsRight(void) { sub_08030118(10); gArea.dungeon_idx = 3; gArea.areaMetadata = 0x4e; } u32 sub_unk3_CrenelMinishPaths_CrenelBean(void) { return 1; } void sub_StateChange_CrenelMinishPaths_CrenelBean(void) { sub_080575C8(35); sub_08057688(); } u32 sub_unk3_CrenelMinishPaths_CrenelWater(void) { return 1; } void sub_StateChange_CrenelMinishPaths_CrenelWater(void) { sub_080575C8(35); } void sub_unk1_CrenelMinishPaths_CrenelWater(void) { sub_080575C8(35); } u32 sub_unk3_CrenelMinishPaths_Rainfall(void) { return 1; } void sub_StateChange_CrenelMinishPaths_Rainfall(void) { sub_080580B0(34); } void sub_unk1_CrenelMinishPaths_Rainfall(void) { sub_080580B0(34); } u32 sub_unk3_CrenelMinishPaths_MelarisMine(void) { return 1; } void sub_StateChange_CrenelMinishPaths_MelarisMine(void) { sub_080580B0(0x22); // white sword if (GetInventoryValue(0x2)) SetGlobalFlag(WHITE_SWORD_END); } void sub_unk1_CrenelMinishPaths_MelarisMine(void) { sub_080580B0(34); } u32 sub_unk3_MinishPaths1_ToMinishVillage(void) { return 1; } void sub_StateChange_MinishPaths1_ToMinishVillage(void) { sub_080575C8(30); } void sub_unk1_MinishPaths1_ToMinishVillage(void) { sub_080575C8(30); } u32 sub_unk3_MinishPaths1_CastorWilds(void) { return 1; } void sub_StateChange_MinishPaths1_CastorWilds(void) { sub_080575C8(33); } void sub_unk1_MinishPaths1_CastorWilds(void) { sub_080575C8(33); } u32 sub_unk3_MinishPaths1_HyruleTown(void) { return 1; } void sub_StateChange_MinishPaths1_HyruleTown(void) { sub_080575C8(31); } void sub_unk1_MinishPaths1_HyruleTown(void) { sub_080575C8(31); } u32 sub_unk3_MinishPaths1_LonLonRanch(void) { return 1; } void sub_StateChange_MinishPaths1_LonLonRanch(void) { sub_080575C8(32); } void sub_unk1_MinishPaths1_LonLonRanch(void) { sub_080575C8(32); } u32 sub_unk3_MinishPaths1_MayorsCabin(void) { return 1; } extern EntityData Entities_MinishPaths1_MayorsCabin_gUnk_080D6138; void sub_StateChange_MinishPaths1_MayorsCabin(void) { sub_080575C8(0x20); if (gPlayerEntity.y.HALF.HI - gRoomControls.origin_y > 0x40) LoadRoomEntityList(&Entities_MinishPaths1_MayorsCabin_gUnk_080D6138); } void sub_unk1_MinishPaths1_MayorsCabin(void) { sub_080575C8(32); } u32 sub_unk3_HouseInteriors1_Mayor(void) { return 1; } extern EntityData Entities_HouseInteriors1_Mayor_080D6210; void sub_StateChange_HouseInteriors1_Mayor(void) { if ((u16)gRoomTransition.player_status.start_pos_y > 0x40) LoadRoomEntityList(&Entities_HouseInteriors1_Mayor_080D6210); } u32 sub_unk3_HouseInteriors1_PostOffice(void) { return 1; } extern EntityData gUnk_080D6340; extern EntityData gUnk_080D6360; extern EntityData gUnk_080D6380; extern EntityData gUnk_080D63A0; extern EntityData gUnk_080D63C0; extern EntityData gUnk_080D63E0; extern EntityData gUnk_080D6400; extern EntityData gUnk_080D6420; extern EntityData gUnk_080D6440; extern u16 gUnk_080D64F8; extern u16 gUnk_080D6508; void sub_StateChange_HouseInteriors1_PostOffice(void) { u16 itemID; s32 i; u16* itemArr; u16* flagArr; s32 j; if (CheckKinstoneFused(0x2c)) { LoadRoomEntityList(&gUnk_080D6340); } j = 0; itemArr = &gUnk_080D64F8; for (i = 7; i >= 0; i--) { itemID = *itemArr; itemArr++; if (GetInventoryValue(itemID)) { j++; } } if (CheckLocalFlag(BILL01_TESSIN_RESERVED)) { flagArr = &gUnk_080D6508; i = 0; while (i < j) { if (CheckLocalFlag(*flagArr) == 0) { SetLocalFlag(*flagArr); ClearLocalFlag(BILL01_TESSIN_RESERVED); SetLocalFlag(BILL01_TESSIN_BRANDNEW); break; } i++; flagArr++; } } if (CheckLocalFlag(BILL01_TESSIN_1)) LoadRoomEntityList(&gUnk_080D6360); if (CheckLocalFlag(BILL01_TESSIN_2)) LoadRoomEntityList(&gUnk_080D6380); if (CheckLocalFlag(BILL01_TESSIN_3)) LoadRoomEntityList(&gUnk_080D63A0); if (CheckLocalFlag(BILL01_TESSIN_4)) LoadRoomEntityList(&gUnk_080D63C0); if (CheckLocalFlag(BILL01_TESSIN_5)) LoadRoomEntityList(&gUnk_080D63E0); if (CheckLocalFlag(BILL01_TESSIN_6)) LoadRoomEntityList(&gUnk_080D6400); if (CheckLocalFlag(BILL01_TESSIN_7)) LoadRoomEntityList(&gUnk_080D6420); if (CheckLocalFlag(BILL01_TESSIN_8)) LoadRoomEntityList(&gUnk_080D6440); } u32 sub_unk3_HouseInteriors1_Library2F(void) { return 1; } extern EntityData gUnk_080D6578; extern EntityData gUnk_080D6638; extern EntityData gUnk_080D6558; extern EntityData gUnk_080D6618; void sub_StateChange_HouseInteriors1_Library2F(void) { // flippers if (GetInventoryValue(0x46) == 0) { LoadRoomEntityList(&gUnk_080D6578); if (CheckLocalFlag(MIZUKAKI_BOOK_ALLBACK) == 0) { LoadRoomEntityList(&gUnk_080D6638); return; } } else { LoadRoomEntityList(&gUnk_080D6558); } LoadRoomEntityList(&gUnk_080D6618); } u32 sub_unk3_HouseInteriors1_Library1F(void) { return 1; } extern EntityData gUnk_080D6714; extern EntityData gUnk_additional_9_HouseInteriors1_Library1F; extern EntityData gUnk_additional_8_HouseInteriors1_Library1F; void sub_StateChange_HouseInteriors1_Library1F(void) { if (gSave.global_progress > 4) { LoadRoomEntityList(&gUnk_080D6714); } // flippers if (!GetInventoryValue(0x46) && CheckGlobalFlag(MIZUKAKI_START) && CheckLocalFlag(MIZUKAKI_KOBITO)) { LoadRoomEntityList(&gUnk_additional_9_HouseInteriors1_Library1F); } else { LoadRoomEntityList(&gUnk_additional_8_HouseInteriors1_Library1F); } } u32 sub_unk3_HouseInteriors1_Inn1F(void) { return 1; } extern EntityData gUnk_080D6924; void sub_StateChange_HouseInteriors1_Inn1F(void) { if (gSave.global_progress > 7) { LoadRoomEntityList(&gUnk_080D6924); } } extern u32* gUnk_080D6A74[]; u32 sub_unk3_HouseInteriors1_InnWestRoom(void) { u32 index; if (CheckLocalFlag(YADO_CHECKIN)) { index = (s32)Random() % 3; ClearLocalFlag(BILL05_YADO1F_MATSU_T0); } else { index = 0; SetLocalFlag(BILL05_YADO1F_MATSU_T0); } gRoomVars.field_0x6c[3] = gUnk_080D6A74[index]; return 1; } extern void* script_PlayerSleepingInn[]; void sub_StateChange_HouseInteriors1_InnWestRoom(void) { if (CheckLocalFlag(YADO_CHECKIN)) { ClearLocalFlag(YADO_CHECKIN); SetFade(5, 256); gPlayerEntity.x.HALF.HI = gRoomControls.origin_x + 0x50; gPlayerEntity.y.HALF.HI = gRoomControls.origin_y + 0x38; sub_080751E8(1, 2, &script_PlayerSleepingInn); } } extern u32* gUnk_080D6B18[]; u32 sub_unk3_HouseInteriors1_InnMiddleRoom(void) { u32 index; if (CheckLocalFlag(YADO_CHECKIN) != 0) { index = Random() & 1; ClearLocalFlag(BILL06_YADO1F_TAKE_T0); } else { index = 0; SetLocalFlag(BILL06_YADO1F_TAKE_T0); } gRoomVars.field_0x6c[3] = gUnk_080D6B18[index]; return 1; } void sub_StateChange_HouseInteriors1_InnMiddleRoom(void) { if (CheckLocalFlag(YADO_CHECKIN) != 0) { ClearLocalFlag(YADO_CHECKIN); SetFade(5, 256); gPlayerEntity.x.HALF.HI = gRoomControls.origin_x + 0x50; gPlayerEntity.y.HALF.HI = gRoomControls.origin_y + 0x38; sub_080751E8(1, 2, &script_PlayerSleepingInn); } } extern u32* gUnk_080D6BB8[]; u32 sub_unk3_HouseInteriors1_InnEastRoom(void) { s32 index; if (CheckLocalFlag(YADO_CHECKIN) != 0) { index = (s32)Random() % 3; ClearLocalFlag(BILL07_YADO1F_UME_T0); } else { index = 0; SetLocalFlag(BILL07_YADO1F_UME_T0); } gRoomVars.field_0x6c[3] = gUnk_080D6BB8[index]; return 1; } void sub_StateChange_HouseInteriors1_InnEastRoom(void) { if (CheckLocalFlag(YADO_CHECKIN)) { ClearLocalFlag(YADO_CHECKIN); SetFade(5, 256); gPlayerEntity.x.HALF.HI = gRoomControls.origin_x + 0x60; gPlayerEntity.y.HALF.HI = gRoomControls.origin_y + 0x38; sub_080751E8(1, 2, &script_PlayerSleepingInn); } } u32 sub_unk3_HouseInteriors1_InnWest2F(void) { return 1; } extern EntityData UpperInn_Oracles; extern EntityData UpperInn_NoFarore; extern EntityData UpperInn_NoNayru; extern EntityData UpperInn_NoDin; extern EntityData UpperInn_Farore; extern EntityData UpperInn_Nayru; extern EntityData UpperInn_Din; void sub_StateChange_HouseInteriors1_InnWest2F(void) { int iVar1; if (gSave.global_progress < 4) return; if (CheckGlobalFlag(RENTED_HOUSE_DIN)) { if (!CheckGlobalFlag(NEW_HOUSE_NAYRU)) if (!CheckGlobalFlag(NEW_HOUSE_FARORE)) LoadRoomEntityList(&UpperInn_NoDin); else LoadRoomEntityList(&UpperInn_Nayru); else LoadRoomEntityList(&UpperInn_Farore); } else if (CheckGlobalFlag(RENTED_HOUSE_NAYRU)) { if (CheckGlobalFlag(NEW_HOUSE_DIN)) LoadRoomEntityList(&UpperInn_Farore); else if (!CheckGlobalFlag(NEW_HOUSE_FARORE)) LoadRoomEntityList(&UpperInn_NoNayru); else LoadRoomEntityList(&UpperInn_Din); } else if (CheckGlobalFlag(RENTED_HOUSE_FARORE)) { if (CheckGlobalFlag(NEW_HOUSE_DIN)) LoadRoomEntityList(&UpperInn_Nayru); else if (CheckGlobalFlag(NEW_HOUSE_NAYRU)) LoadRoomEntityList(&UpperInn_Din); else LoadRoomEntityList(&UpperInn_NoFarore); } else LoadRoomEntityList(&UpperInn_Oracles); } u32 sub_unk3_HouseInteriors1_InnEast2F(void) { return 1; } void sub_StateChange_HouseInteriors1_InnEast2F(void) { } u32 sub_unk3_HouseInteriors1_InnMinishHeartPiece(void) { return 1; } void sub_StateChange_HouseInteriors1_InnMinishHeartPiece(void) { } u32 sub_unk3_HouseInteriors1_SchoolWest(void) { return 1; } extern EntityData gUnk_080D7038; void sub_StateChange_HouseInteriors1_SchoolWest(void) { if (gSave.global_progress < 8) { LoadRoomEntityList(&gUnk_080D7038); } if (gRoomVars.field_0x0 == 0) { SetWorldMapPos(2, 0, 0x2c8, 0xa8); } } u32 sub_unk3_HouseInteriors1_SchoolEast(void) { return 1; } extern EntityData gUnk_080D7140; extern EntityData gUnk_080D7170; extern EntityData gUnk_080D71A0; extern EntityData gUnk_080D71D0; extern EntityData gUnk_080D71F0; void sub_StateChange_HouseInteriors1_SchoolEast(void) { if (gSave.global_progress == 6) LoadRoomEntityList(&gUnk_080D7140); if (gSave.global_progress == 7) LoadRoomEntityList(&gUnk_080D7170); if ((gSave.global_progress < 8) || (LoadRoomEntityList(&gUnk_080D71A0), gSave.global_progress < 8)) LoadRoomEntityList(&gUnk_080D71D0); else LoadRoomEntityList(&gUnk_080D71F0); } extern u32 gUnk_080D7348; u32 sub_unk3_HyruleCastle_0(void) { if (CheckGlobalFlag(ENDING)) { gRoomVars.field_0x6c[0] = &gUnk_080D7348; gRoomVars.field_0x6c[2] = 0; } return 1; } extern EntityData gUnk_080D7328; void sub_StateChange_HyruleCastle_0(void) { if (!CheckGlobalFlag(LV2_CLEAR)) { LoadRoomEntityList(&gUnk_080D7328); } #if defined(JP) || defined(DEMO_JP) if (CheckGlobalFlag(CASTLE_BGM) || CheckGlobalFlag(ENDING)) { gArea.queued_bgm = gArea.bgm; } #elif defined(EU) if (CheckGlobalFlag(ENDING)) { gArea.queued_bgm = gArea.bgm; } #else if (CheckGlobalFlag(CASTLE_BGM)) { gArea.queued_bgm = BGM_HYRULE_CASTLE_NOINTRO; } else if (CheckGlobalFlag(ENDING)) { gArea.queued_bgm = gArea.bgm; } #endif } extern u32 gUnk_080D7410; u32 sub_unk3_HyruleCastle_1(void) { if (CheckGlobalFlag(ENDING)) { gRoomVars.field_0x6c[0] = &gUnk_080D7410; gRoomVars.field_0x6c[2] = 0; } return 1; } extern EntityData gUnk_080D73B0; extern EntityData gUnk_080D73E0; void sub_StateChange_HyruleCastle_1(void) { if (CheckGlobalFlag(ENDING)) { gArea.queued_bgm = gArea.bgm; } else { if (!CheckGlobalFlag(LV2_CLEAR)) { LoadRoomEntityList(&gUnk_080D73B0); } if (!CheckGlobalFlag(LV1_CLEAR) && CheckGlobalFlag(TABIDACHI)) { LoadRoomEntityList(&gUnk_080D73E0); } #ifndef EU if (CheckGlobalFlag(CASTLE_BGM)) { gArea.queued_bgm = gArea.bgm; } #endif } } u32 sub_unk3_HyruleCastle_2(void) { return 1; } extern EntityData gUnk_080D74C8; extern EntityData gUnk_080D7588; extern EntityData gUnk_080D75D8; extern EntityData gUnk_080D7618; void sub_StateChange_HyruleCastle_2(void) { #ifndef EU if (CheckGlobalFlag(CASTLE_BGM)) { gArea.queued_bgm = gArea.bgm; } #endif if (CheckGlobalFlag(ENDING)) { LoadRoomEntityList(&gUnk_080D7618); gArea.queued_bgm = gArea.bgm; } else if (CheckGlobalFlag(TABIDACHI) == 0) { LoadRoomEntityList(&gUnk_080D74C8); gArea.queued_bgm = BGM_HYRULE_CASTLE_NOINTRO; } else if (CheckGlobalFlag(LV1_CLEAR) == 0) { LoadRoomEntityList(&gUnk_080D7588); } else { LoadRoomEntityList(&gUnk_080D75D8); } } u32 sub_unk3_HyruleCastle_3(void) { return 1; } extern EntityData gUnk_additional_8_HyruleCastle_3; void sub_StateChange_HyruleCastle_3(void) { if (CheckLocalFlag(SOUGEN_08_TORITSUKI)) { LoadRoomEntityList(&gUnk_additional_8_HyruleCastle_3); } } u32 sub_unk3_HyruleCastle_4(void) { if (!CheckLocalFlag(CASTLE_04_MEZAME)) { gRoomTransition.player_status.spawn_type = PL_SPAWN_SPECIAL; ClearGlobalFlag(ZELDA_CHASE); } return 1; } extern u32 script_PlayerWakingUpInHyruleCastle; void sub_StateChange_HyruleCastle_4(void) { if (!CheckLocalFlag(CASTLE_04_MEZAME)) { SetFade(5, 256); gPlayerEntity.x.HALF.HI = gRoomControls.origin_x + 0xb0; gPlayerEntity.y.HALF.HI = gRoomControls.origin_y + 0x40; sub_080751E8(0, 6, &script_PlayerWakingUpInHyruleCastle); #ifdef EU SoundReq(SONG_STOP_ALL); gArea.bgm = gArea.queued_bgm; } #else } if (!CheckGlobalFlag(TABIDACHI)) { sub_08052878(); #if !(defined(JP) || defined(DEMO_JP)) } else { #else } #endif if (CheckGlobalFlag(CASTLE_BGM)) { #if defined(JP) || defined(DEMO_JP) gArea.queued_bgm = gArea.bgm; #else gArea.queued_bgm = BGM_HYRULE_CASTLE_NOINTRO; #endif } #if !(defined(JP) || defined(DEMO_JP)) } #endif #endif } extern ScreenTransitionData gUnk_0813AB80; void sub_0804BCDC(void) { sub_0808091C(&gUnk_0813AB80, TRANSITION_FADE_BLACK_SLOW); } u32 sub_unk3_HyruleCastle_5(void) { return 1; } void sub_StateChange_HyruleCastle_5(void) { } u32 sub_unk3_87_Main(void) { return 1; } void sub_StateChange_87_Main(void) { } u32 sub_unk3_45_Main(void) { return 1; } void sub_StateChange_45_Main(void) { } u32 sub_unk3_4D_Main(void) { return 1; } void sub_StateChange_4D_Main(void) { } u32 sub_unk3_57_Main(void) { return 1; } void sub_StateChange_57_Main(void) { } u32 sub_unk3_5F_Main(void) { return 1; } void sub_StateChange_5F_Main(void) { } u32 sub_unk3_67_Main(void) { return 1; } void sub_StateChange_67_Main(void) { } u32 sub_unk3_6F_Main(void) { return 1; } void sub_StateChange_6F_Main(void) { } u32 sub_unk3_77_Main(void) { return 1; } void sub_StateChange_77_Main(void) { } u32 sub_unk3_7F_Main(void) { return 1; } void sub_StateChange_7F_Main(void) { } u32 sub_unk3_8F_Main(void) { return 1; } void sub_StateChange_8F_Main(void) { } u32 sub_unk3_GreatFairies_Entrance(void) { return 1; } void sub_StateChange_GreatFairies_Entrance(void) { } u32 sub_unk3_GreatFairies_Exit(void) { return 1; } extern EntityData gUnk_080D7D34; void sub_StateChange_GreatFairies_Exit(void) { // four sword if (GetInventoryValue(0x6)) { SetTile(0x4072, 0x14d, 1); SetTile(0x4072, 0x10c, 1); SetTile(0x4090, 0x14c, 1); SetTile(0x4090, 0x18c, 1); LoadRoomEntityList(&gUnk_080D7D34); } } u32 sub_unk3_Dojos_Grayblade(void) { return 1; } void sub_StateChange_Dojos_Grayblade(void) { } u32 sub_unk3_Dojos_Splitblade(void) { return 1; } void sub_StateChange_Dojos_Splitblade(void) { } u32 sub_unk3_Dojos_Greatblade(void) { return 1; } void sub_StateChange_Dojos_Greatblade(void) { } u32 sub_unk3_Dojos_Scarblade(void) { return 1; } void sub_StateChange_Dojos_Scarblade(void) { } u32 sub_unk3_Dojos_Swiftblade(void) { return 1; } void sub_StateChange_Dojos_Swiftblade(void) { } u32 sub_unk3_Dojos_Grimblade(void) { return 1; } extern EntityData gUnk_080D827C; void sub_StateChange_Dojos_Grimblade(void) { if (!CheckLocalFlag(3)) { LoadRoomEntityList(&gUnk_080D827C); } else { sub_0805BC4C(); SetTileType(0x76, 0x82, 2); SetTileType(0x76, 0x8c, 2); } } u32 sub_unk3_Dojos_Waveblade(void) { return 1; } void sub_StateChange_Dojos_Waveblade(void) { } u32 sub_unk3_Dojos_7(void) { return 1; } void sub_StateChange_Dojos_7(void) { } u32 sub_unk3_Dojos_8(void) { return 1; } void sub_StateChange_Dojos_8(void) { } u32 sub_unk3_Dojos_9(void) { return 1; } void sub_StateChange_Dojos_9(void) { } u32 sub_unk3_Dojos_ToGrimblade(void) { return 1; } void sub_StateChange_Dojos_ToGrimblade(void) { } u32 sub_unk3_Dojos_ToSplitblade(void) { return 1; } void sub_StateChange_Dojos_ToSplitblade(void) { } u32 sub_unk3_Dojos_ToGreatblade(void) { return 1; } void sub_StateChange_Dojos_ToGreatblade(void) { } u32 sub_unk3_Dojos_ToScarblade(void) { return 1; } void sub_StateChange_Dojos_ToScarblade(void) { } u32 sub_unk3_GoronCave_StairsToCave(void) { return 1; } void sub_StateChange_GoronCave_StairsToCave(void) { } u32 sub_unk3_GoronCave_Main(void) { return 1; } extern EntityData gUnk_080D8B24; extern EntityData gUnk_080D8AC4; extern EntityData gUnk_080D8A74; extern EntityData gUnk_080D8A34; extern EntityData gUnk_080D8A04; extern EntityData gUnk_080D89E4; extern u32 gUnk_080D8BBC; extern u32 gUnk_080D8BFA; extern u32 gUnk_080D8C68; void sub_StateChange_GoronCave_Main(void) { if (!CheckLocalFlag(GORON_DOUKUTU_APPEAR)) SetLocalFlag(GORON_DOUKUTU_APPEAR); if (CheckKinstoneFused(0x2f)) LoadRoomEntityList(&gUnk_080D8B24); else if (CheckKinstoneFused(0x2b)) LoadRoomEntityList(&gUnk_080D8AC4); else if (CheckKinstoneFused(0x26)) LoadRoomEntityList(&gUnk_080D8A74); else if (CheckKinstoneFused(0x2a)) LoadRoomEntityList(&gUnk_080D8A34); else if (CheckKinstoneFused(0x25)) LoadRoomEntityList(&gUnk_080D8A04); else LoadRoomEntityList(&gUnk_080D89E4); if (CheckKinstoneFused(0x25)) sub_0807BB68(&gUnk_080D8BBC, 0x7c5, 1); if (CheckKinstoneFused(0x26)) sub_0807BB68(&gUnk_080D8BFA, 0x503, 1); if (CheckKinstoneFused(0x2f)) sub_0807BB68(&gUnk_080D8C68, 0x281, 1); } #if 0 typedef struct { u32 a; u16 x, y; u16 entCnt; u16 shakeTime, shakeMag, sfx; } struct_080D8E54; typedef struct { u32 field_0x0; u32 field_0x4; } struct_0804BF38; extern struct_080D8E54 gUnk_080D8E50[]; void sub_0804BF38(u32 arg0, struct_0804BF38* arg1) { u32 numEnts; u32 iVar2; u32 iVar3; Entity *fx; u32 entCnt; u32 xOff; iVar2 = arg1->field_0x4; iVar3 = iVar2 * 0x10; sub_0807BB68(gUnk_080D8E50[iVar2].a, ((gUnk_080D8E50[iVar3].x >> 4) & 0x3f | (gUnk_080D8E50[iVar3].y >> 4) & 0x3f) << 6, 1); numEnts = gUnk_080D8E50[iVar3].entCnt; entCnt = 0; if (numEnts != 0) { for (xOff = 0; entCnt < numEnts; xOff += 0x10, entCnt++) { fx = CreateObject(SPECIAL_FX, 0xf, 0); if (fx != NULL) { fx->x.HALF.HI = gUnk_080D8E50[iVar3].x + gRoomControls.origin_x + xOff; fx->y.HALF.HI = gUnk_080D8E50[iVar3].y + gRoomControls.origin_y + (entCnt & 1) * 8; } fx = CreateObject(SPECIAL_FX, 0x54, 0); if (fx != NULL) { fx->x.HALF.HI = gUnk_080D8E50[iVar3].x + gRoomControls.origin_x + xOff; fx->y.HALF.HI = gUnk_080D8E50[iVar3].y + gRoomControls.origin_y + -0xc + (entCnt & 1) * 8; fx->direction = 0; fx->speed = 0x100; } } } InitScreenShake(gUnk_080D8E50[iVar3].shakeTime, gUnk_080D8E50[iVar3].shakeMag); SoundReq(gUnk_080D8E50[iVar2].sfx); } #else ASM_FUNC("asm/non_matching/sub_0804BF38.inc", void sub_0804BF38(Entity* this, ScriptExecutionContext* context)) #endif u32 sub_unk3_EzloAuxCutscene_Main(void) { return 1; } void sub_StateChange_EzloAuxCutscene_Main(void) { } u32 sub_unk3_RoyalValley_Main(void) { return 1; } extern EntityData gUnk_080D90C8; extern EntityData gUnk_080D9108; extern EntityData gUnk_080D9098; void sub_StateChange_RoyalValley_Main(void) { if (!CheckGlobalFlag(HAKA_KEY_LOST)) { if (GetInventoryValue(ITEM_QST_GRAVEYARD_KEY) == 1) { LoadRoomEntityList(&gUnk_080D90C8); LoadRoomEntityList(&gUnk_080D9108); } } else if (!CheckGlobalFlag(HAKA_KEY_FOUND)) LoadRoomEntityList(&gUnk_080D9108); if (GetInventoryValue(ITEM_QST_GRAVEYARD_KEY) != 2) { LoadRoomEntityList(&gUnk_080D9098); SetTileType(0x17a, 0x58e, 1); SetTileType(0x17b, 0x58f, 1); SetTileType(0x17c, 0x5ce, 1); SetTileType(0x17d, 0x5cf, 1); } sub_08054570(); sub_08059278(); SetTile(0x4072, 0xa47, 1); SetTile(0x4072, 0xc47, 1); if (CheckGlobalFlag(MAZE_CLEAR)) if (gRoomTransition.player_status.start_pos_x == 0x78 && gRoomTransition.player_status.start_pos_y == 0x278) SoundReq(SFX_SECRET); ClearGlobalFlag(MAZE_CLEAR); } u32 sub_unk3_RoyalValley_ForestMaze(void) { return 1; } void sub_StateChange_RoyalValley_ForestMaze(void) { gArea.areaMetadata |= 0x40; sub_0804C128(gArea.filler[7] |= 1); } ASM_FUNC("asm/non_matching/sub_0804C128.inc", void sub_0804C128(u32 arg0)) ASM_FUNC("asm/non_matching/sub_0804C258.inc", void sub_0804C258(void)) ASM_FUNC("asm/non_matching/sub_0804C290.inc", void sub_0804C290(void)) u32 sub_unk3_RoyalValleyGraves_HeartPiece(void) { return 1; } void sub_StateChange_RoyalValleyGraves_HeartPiece(void) { } u32 sub_unk3_RoyalValleyGraves_Gina(void) { return 1; } void sub_StateChange_RoyalValleyGraves_Gina(void) { } u32 sub_unk3_MinishRafters_Cafe(void) { return 1; } void sub_StateChange_MinishRafters_Cafe(void) { sub_08058324(0); } u32 sub_unk3_MinishRafters_Stockwell(void) { return 1; } void sub_StateChange_MinishRafters_Stockwell(void) { sub_08058324(1); } u32 sub_unk3_MinishRafters_DrLeft(void) { return 1; } extern EntityData gUnk_080D9800; void sub_StateChange_MinishRafters_DrLeft(void) { sub_08058324(2); if (CheckGlobalFlag(MIZUKAKI_START) && !CheckGlobalFlag(MIZUKAKI_HARIFALL)) LoadRoomEntityList(&gUnk_080D9800); } void sub_unk1_MinishRafters_DrLeft(void) { sub_StateChange_MinishRafters_DrLeft(); } u32 sub_unk3_MinishRafters_Bakery(void) { return 1; } void sub_StateChange_MinishRafters_Bakery(void) { sub_08058324(3); } u32 sub_unk3_CastorWilds_Main(void) { return 1; } extern EntityData gUnk_080D9CC8; extern EntityData gUnk_080D9CE8; extern EntityData gUnk_080D9C38; void sub_StateChange_CastorWilds_Main(void) { SetGlobalFlag(DASHBOOTS); if (CheckKinstoneFused(0x5b)) LoadRoomEntityList(&gUnk_080D9CC8); if ((gSave.windcrests & 0x20000000) == 0) LoadRoomEntityList(&gUnk_080D9CE8); if (!GetInventoryValue(ITEM_PEGASUS_BOOTS)) LoadRoomEntityList(&gUnk_080D9C38); } void sub_unk1_CastorWilds_Main(void) { if ((gSave.windcrests & 0x20000000) == 0) LoadRoomEntityList(&gUnk_080D9CE8); } u32 sub_unk3_CastorCaves_South(void) { return 1; } void sub_StateChange_CastorCaves_South(void) { } u32 sub_unk3_CastorCaves_North(void) { return 1; } void sub_StateChange_CastorCaves_North(void) { } u32 sub_unk3_CastorCaves_WindRuins(void) { return 1; } void sub_StateChange_CastorCaves_WindRuins(void) { } u32 sub_unk3_CastorCaves_Darknut(void) { return 1; } void sub_StateChange_CastorCaves_Darknut(void) { } u32 sub_unk3_CastorCaves_HeartPiece(void) { return 1; } void sub_StateChange_CastorCaves_HeartPiece(void) { } extern u32 gUnk_080DA230; u32 sub_unk3_CastorDarknut_Main(void) { if (!CheckLocalFlag(LV4_0a_TSUBO)) gRoomVars.field_0x6c[0] = &gUnk_080DA230; return 1; } void sub_StateChange_CastorDarknut_Main(void) { } u32 sub_unk3_CastorDarknut_Hall(void) { return 1; } void sub_StateChange_CastorDarknut_Hall(void) { } u32 sub_unk3_GreatFairies_Graveyard(void) { return 1; } void sub_StateChange_GreatFairies_Graveyard(void) { } u32 sub_unk3_GreatFairies_MinishWoods(void) { return 1; } void sub_StateChange_GreatFairies_MinishWoods(void) { } u32 sub_unk3_GreatFairies_MtCrenel(void) { return 1; } void sub_StateChange_GreatFairies_MtCrenel(void) { } u32 sub_unk3_GardenFountains_East(void) { return 1; } void sub_StateChange_GardenFountains_East(void) { } u32 sub_unk3_GardenFountains_West(void) { return 1; } void sub_StateChange_GardenFountains_West(void) { } u32 sub_unk3_MinishHouseInteriors_GentariMain(void) { return 1; } void sub_StateChange_MinishHouseInteriors_GentariMain(void) { sub_0801AFE4(); } u32 sub_unk3_MinishHouseInteriors_GentariExit(void) { return 1; } void sub_StateChange_MinishHouseInteriors_GentariExit(void) { sub_0801AFE4(); } u32 sub_unk3_MinishHouseInteriors_Festari(void) { return 1; } void sub_StateChange_MinishHouseInteriors_Festari(void) { sub_0801AFE4(); } u32 sub_unk3_MinishHouseInteriors_Red(void) { return 1; } void sub_StateChange_MinishHouseInteriors_Red(void) { sub_0801AFE4(); } u32 sub_unk3_MinishHouseInteriors_Green(void) { return 1; } void sub_StateChange_MinishHouseInteriors_Green(void) { sub_0801AFE4(); } u32 sub_unk3_MinishHouseInteriors_Blue(void) { return 1; } void sub_StateChange_MinishHouseInteriors_Blue(void) { sub_0801AFE4(); } u32 sub_unk3_MinishHouseInteriors_SideArea(void) { return 1; } void sub_StateChange_MinishHouseInteriors_SideArea(void) { sub_0801AFE4(); } u32 sub_unk3_MinishHouseInteriors_ShoeMinish(void) { return 1; } void sub_StateChange_MinishHouseInteriors_ShoeMinish(void) { sub_0801AFE4(); } u32 sub_unk3_MinishHouseInteriors_PotMinish(void) { return 1; } void sub_StateChange_MinishHouseInteriors_PotMinish(void) { sub_0801AFE4(); } u32 sub_unk3_MinishHouseInteriors_BarrelMinish(void) { return 1; } extern EntityData gUnk_080DAB44; extern EntityData gUnk_080DAB64; extern EntityData gUnk_080DAB84; extern EntityData gUnk_080DAC54; extern EntityData gUnk_080DAD24; extern EntityData gUnk_080DABC4; extern EntityData gUnk_080DAC94; extern EntityData gUnk_080DAD64; extern EntityData gUnk_080DAC04; extern EntityData gUnk_080DACD4; extern EntityData gUnk_080DADA4; void sub_StateChange_MinishHouseInteriors_BarrelMinish(void) { u32 uVar1; if (!GetInventoryValue(ITEM_JABBERNUT)) LoadRoomEntityList(&gUnk_080DAB44); else LoadRoomEntityList(&gUnk_080DAB64); if (CheckGlobalFlag(DRUG_COUNT) && sub_08060354()) { SetRoomFlag(0); if (!CheckGlobalFlag(DRUG_1)) uVar1 = 0x3200; else if (!CheckGlobalFlag(DRUG_2)) uVar1 = 0x4600; else uVar1 = 0x4880; } else { if (CheckGlobalFlag(DRUG_3)) uVar1 = 0x4900; else if (CheckGlobalFlag(DRUG_2)) uVar1 = 0x4a00; else if (CheckGlobalFlag(DRUG_1)) uVar1 = 0x5200; else uVar1 = 0x9200; } if (uVar1 & 0x8000) LoadRoomEntityList(&gUnk_080DAB84); if (uVar1 & 0x4000) LoadRoomEntityList(&gUnk_080DAC54); if (uVar1 & 0x2000) LoadRoomEntityList(&gUnk_080DAD24); if (uVar1 & 0x1000) LoadRoomEntityList(&gUnk_080DABC4); if (uVar1 & 0x800) LoadRoomEntityList(&gUnk_080DAC94); if (uVar1 & 0x400) LoadRoomEntityList(&gUnk_080DAD64); if (uVar1 & 0x200) LoadRoomEntityList(&gUnk_080DAC04); if (uVar1 & 0x100) LoadRoomEntityList(&gUnk_080DACD4); if (uVar1 & 0x80) LoadRoomEntityList(&gUnk_080DADA4); sub_0801AFE4(); } u32 sub_unk3_MinishHouseInteriors_MelariMinesSouthwest(void) { return 1; } extern EntityData gUnk_080DAEE8; void sub_StateChange_MinishHouseInteriors_MelariMinesSouthwest(void) { if (CheckGlobalFlag(WHITE_SWORD_END)) LoadRoomEntityList(&gUnk_080DAEE8); sub_0801AFE4(); } u32 sub_unk3_MinishHouseInteriors_MelariMinesSoutheast(void) { return 1; } extern EntityData gUnk_080DAF80; void sub_StateChange_MinishHouseInteriors_MelariMinesSoutheast(void) { if (CheckGlobalFlag(WHITE_SWORD_END)) LoadRoomEntityList(&gUnk_080DAF80); sub_0801AFE4(); } u32 sub_unk3_MinishHouseInteriors_MelariMinesEast(void) { return 1; } extern EntityData gUnk_080DB018; void sub_StateChange_MinishHouseInteriors_MelariMinesEast(void) { if (CheckGlobalFlag(WHITE_SWORD_END)) LoadRoomEntityList(&gUnk_080DB018); sub_0801AFE4(); } u32 sub_unk3_MinishHouseInteriors_HyruleFieldSouthwest(void) { return 1; } void sub_StateChange_MinishHouseInteriors_HyruleFieldSouthwest(void) { sub_0801AFE4(); } u32 sub_unk3_MinishHouseInteriors_HyruleFieldOutsideLinksHouse(void) { return 1; } void sub_StateChange_MinishHouseInteriors_HyruleFieldOutsideLinksHouse(void) { sub_0801AFE4(); } u32 sub_unk3_MinishHouseInteriors_NextToKnuckle(void) { return 1; } void sub_StateChange_MinishHouseInteriors_NextToKnuckle(void) { sub_0801AFE4(); } u32 sub_unk3_MinishHouseInteriors_Librari(void) { return 1; } extern EntityData gUnk_080DB238; void sub_StateChange_MinishHouseInteriors_Librari(void) { if (gSave.global_progress > 8) LoadRoomEntityList(&gUnk_080DB238); sub_0801AFE4(); } u32 sub_unk3_MinishHouseInteriors_HyruleFieldExit(void) { return 1; } void sub_StateChange_MinishHouseInteriors_HyruleFieldExit(void) { sub_0801AFE4(); } u32 sub_unk3_MinishHouseInteriors_HyruleTown(void) { return 1; } void sub_StateChange_MinishHouseInteriors_HyruleTown(void) { sub_0801AFE4(); } u32 sub_unk3_MinishHouseInteriors_MinishWoodsBomb(void) { return 1; } void sub_StateChange_MinishHouseInteriors_MinishWoodsBomb(void) { sub_0801AFE4(); } u32 sub_unk3_MinishHouseInteriors_LakeHyliaOcarina(void) { return 1; } void sub_StateChange_MinishHouseInteriors_LakeHyliaOcarina(void) { sub_0801AFE4(); } u32 sub_unk3_TownMinishHoles_MayorsHouse(void) { return 1; } extern EntityData gUnk_080DB4D0; extern EntityData gUnk_080DB4A0; void sub_StateChange_TownMinishHoles_MayorsHouse(void) { if (!GetInventoryValue(ITEM_FLIPPERS) && !GetInventoryValue(ITEM_QST_BOOK3) && CheckLocalFlag(KOBITO_DOUKUTU_04_T0)) LoadRoomEntityList(&gUnk_080DB4D0); else LoadRoomEntityList(&gUnk_080DB4A0); sub_0801AFE4(); } u32 sub_unk3_TownMinishHoles_WestOracle(void) { return 1; } void sub_StateChange_TownMinishHoles_WestOracle(void) { sub_0801AFE4(); } u32 sub_unk3_TownMinishHoles_DrLeft(void) { return 1; } void sub_StateChange_TownMinishHoles_DrLeft(void) { sub_0801AFE4(); } u32 sub_unk3_TownMinishHoles_Carpenter(void) { return 1; } void sub_StateChange_TownMinishHoles_Carpenter(void) { sub_0801AFE4(); } u32 sub_unk3_TownMinishHoles_Cafe(void) { return 1; } void sub_StateChange_TownMinishHoles_Cafe(void) { sub_0801AFE4(); } u32 sub_unk3_TownMinishHoles_5(void) { return 1; } void sub_StateChange_TownMinishHoles_5(void) { sub_0801AFE4(); } extern u32 gUnk_080DB910; u32 sub_unk3_TownMinishHoles_LibraryBookshelf(void) { if (CheckGlobalFlag(MIZUKAKI_START) && !CheckLocalFlag(KOBITO_DOUKUTU_09_T0)) { gRoomVars.field_0x6c[1] = &gUnk_080DB910; } return 1; } extern EntityData gUnk_080DB8F0; extern EntityData gUnk_additional_a_TownMinishHoles_LibraryBookshelf; void sub_StateChange_TownMinishHoles_LibraryBookshelf(void) { LoadRoomEntityList(&gUnk_080DB8F0); if (!GetInventoryValue(ITEM_FLIPPERS) && CheckGlobalFlag(MIZUKAKI_START)) { LoadRoomEntityList(&gUnk_additional_a_TownMinishHoles_LibraryBookshelf); } sub_0801AFE4(); } u32 sub_unk3_TownMinishHoles_LibrariBookHouse(void) { return 1; } extern EntityData gUnk_080DBA08; void sub_StateChange_TownMinishHoles_LibrariBookHouse(void) { if (GetInventoryValue(ITEM_FLIPPERS) || !CheckLocalFlag(KOBITO_DOUKUTU_09_T0)) { LoadRoomEntityList(&gUnk_080DBA08); } sub_0801AFE4(); } u32 sub_unk3_TownMinishHoles_RemShoeShop(void) { return 1; } extern EntityData gUnk_080DBB50; extern EntityData gUnk_080DBB70; extern EntityData gUnk_080DBB10; extern EntityData gUnk_080DBAD0; extern EntityData gUnk_080DBB90; void sub_StateChange_TownMinishHoles_RemShoeShop(void) { u32 tilePos; u32 i; if (!CheckLocalFlag(KOBITO_DOUKUTU_00_T0)) { LoadRoomEntityList(&gUnk_080DBB50); } if (GetInventoryValue(ITEM_PEGASUS_BOOTS) == 1) { LoadRoomEntityList(&gUnk_080DBB70); LoadRoomEntityList(&gUnk_080DBB10); } else { LoadRoomEntityList(&gUnk_080DBAD0); } if (!CheckLocalFlag(KOBITO_DOUKUTU_05_T0)) { tilePos = 0x140; for (i = 0; i < 0x13; i++, tilePos++) { SetTileType(0x4072, tilePos, 1); } } LoadRoomEntityList(&gUnk_080DBB90); sub_0801AFE4(); } u32 sub_unk3_MinishCaves_BeanPesto(void) { return 1; } void sub_StateChange_MinishCaves_BeanPesto(void) { } u32 sub_unk3_MinishCaves_SoutheastWater1(void) { return 1; } void sub_StateChange_MinishCaves_SoutheastWater1(void) { } u32 sub_unk3_MinishCaves_SoutheastWater2(void) { return 1; } void sub_StateChange_MinishCaves_SoutheastWater2(void) { } u32 sub_unk3_MinishCaves_Ruins(void) { return 1; } void sub_StateChange_MinishCaves_Ruins(void) { } u32 sub_unk3_MinishCaves_OutsideLinksHouse(void) { return 1; } void sub_StateChange_MinishCaves_OutsideLinksHouse(void) { } u32 sub_unk3_MinishCaves_MinishWoodsNorth1(void) { return 1; } void sub_StateChange_MinishCaves_MinishWoodsNorth1(void) { } u32 sub_unk3_MinishCaves_MinishWoodsNorth2(void) { return 1; } void sub_StateChange_MinishCaves_MinishWoodsNorth2(void) { } u32 sub_unk3_MinishCaves_LakeHyliaNorth(void) { return 1; } void sub_StateChange_MinishCaves_LakeHyliaNorth(void) { } u32 sub_unk3_MinishCaves_LakeHyliaLibrari(void) { return 1; } void sub_StateChange_MinishCaves_LakeHyliaLibrari(void) { } u32 sub_unk3_MinishCaves_MinishWoodsSouthwest(void) { return 1; } void sub_StateChange_MinishCaves_MinishWoodsSouthwest(void) { } u32 sub_unk3_MinishVillage_Main(void) { return 1; } extern EntityData gUnk_080DC390; extern EntityData gUnk_080DC3F0; extern EntityData gUnk_080DC430; extern EntityData gUnk_080DC530; extern EntityData gUnk_080DC470; extern EntityData gUnk_080DC4C0; void sub_StateChange_MinishVillage_Main(void) { if (!GetInventoryValue(ITEM_JABBERNUT)) { LoadRoomEntityList(&gUnk_080DC390); if (!CheckLocalFlagByBank(0x200, 0x80)) { LoadRoomEntityList(&gUnk_080DC3F0); } } else { LoadRoomEntityList(&gUnk_080DC430); if (!GetInventoryValue(ITEM_GUST_JAR)) { LoadRoomEntityList(&gUnk_080DC530); } } if ((!CheckLocalFlagByBank(FLAG_BANK_2, M_ELDER_TALK2ND)) && GetInventoryValue(ITEM_GUST_JAR)) { LoadRoomEntityList(&gUnk_080DC470); } if (!CheckLocalFlag(0x8d)) { LoadRoomEntityList(&gUnk_080DC4C0); } sub_08057E64(); } u32 sub_unk3_MinishVillage_SideHouse(void) { return 1; } void sub_StateChange_MinishVillage_SideHouse(void) { } typedef struct { u8 LO[0x4000]; u8 HI[0x4000]; } struct_086D4460; extern struct_086D4460 gUnk_086D4460; void sub_unk2_MinishVillage_SideHouse(void) { LoadResourceAsync(&gUnk_086D4460.LO, 0x6000000, 0x4000); LoadResourceAsync(&gUnk_086D4460.HI, 0x6008000, 0x4000); LoadPaletteGroup(0x19); } u32 sub_unk3_CastleGardenMinishHoles_East(void) { return 1; } void sub_StateChange_CastleGardenMinishHoles_East(void) { } u32 sub_unk3_CastleGardenMinishHoles_West(void) { return 1; } void sub_StateChange_CastleGardenMinishHoles_West(void) { } u32 sub_unk3_37_0(void) { return 1; } void sub_StateChange_37_0(void) { } u32 sub_unk3_37_1(void) { return 1; } void sub_StateChange_37_1(void) { } u32 sub_unk3_MinishCracks_LonLonRanchNorth(void) { return 1; } void sub_StateChange_MinishCracks_LonLonRanchNorth(void) { } u32 sub_unk3_MinishCracks_LakeHyliaEast(void) { return 1; } void sub_StateChange_MinishCracks_LakeHyliaEast(void) { } u32 sub_unk3_MinishCracks_HyruleCastleGarden(void) { return 1; } void sub_StateChange_MinishCracks_HyruleCastleGarden(void) { } u32 sub_unk3_MinishCracks_MtCrenel(void) { return 1; } void sub_StateChange_MinishCracks_MtCrenel(void) { } u32 sub_unk3_MinishCracks_EastHyruleCastle(void) { return 1; } void sub_StateChange_MinishCracks_EastHyruleCastle(void) { } u32 sub_unk3_MinishCracks_5(void) { return 1; } void sub_StateChange_MinishCracks_5(void) { } u32 sub_unk3_MinishCracks_CastleWildsBowHole(void) { return 1; } extern EntityData gUnk_080DCB10; void sub_StateChange_MinishCracks_CastleWildsBowHole(void) { if (!GetInventoryValue(ITEM_BOW)) { LoadRoomEntityList(&gUnk_080DCB10); } } u32 sub_unk3_MinishCracks_RuinsEntrance(void) { return 1; } void sub_StateChange_MinishCracks_RuinsEntrance(void) { } u32 sub_unk3_MinishCracks_MinishWoodsSouth(void) { return 1; } void sub_StateChange_MinishCracks_MinishWoodsSouth(void) { } u32 sub_unk3_MinishCracks_CastorWildsNorth(void) { return 1; } void sub_StateChange_MinishCracks_CastorWildsNorth(void) { } u32 sub_unk3_MinishCracks_CastorWildsWest(void) { return 1; } void sub_StateChange_MinishCracks_CastorWildsWest(void) { } u32 sub_unk3_MinishCracks_CastorWildsMiddle(void) { return 1; } void sub_StateChange_MinishCracks_CastorWildsMiddle(void) { } u32 sub_unk3_MinishCracks_RuinsTektite(void) { return 1; } void sub_StateChange_MinishCracks_RuinsTektite(void) { } u32 sub_unk3_MinishCracks_CastorWildsNextToBow(void) { return 1; } void sub_StateChange_MinishCracks_CastorWildsNextToBow(void) { } u32 sub_unk3_MinishCracks_E(void) { return 1; } void sub_StateChange_MinishCracks_E(void) { } u32 sub_unk3_MinishCracks_F(void) { return 1; } void sub_StateChange_MinishCracks_F(void) { } u32 sub_unk3_MinishCracks_10(void) { return 1; } void sub_StateChange_MinishCracks_10(void) { } u32 sub_unk3_MinishCracks_11(void) { return 1; } void sub_StateChange_MinishCracks_11(void) { } u32 sub_unk3_MelarisMine_Main(void) { return 1; } extern EntityData gUnk_additional_8_MelarisMine_Main; extern EntityData gUnk_additional_9_MelarisMine_Main; extern EntityData gUnk_080DD294; void sub_StateChange_MelarisMine_Main(void) { if (!CheckGlobalFlag(WHITE_SWORD_END)) { LoadRoomEntityList(&gUnk_additional_8_MelarisMine_Main); } if (!CheckLocalFlag(0x7f)) { LoadRoomEntityList(&gUnk_additional_9_MelarisMine_Main); } else { LoadRoomEntityList(&gUnk_080DD294); } SetLocalFlag(0x8e); } u32 sub_unk3_CloudTops_House(void) { return 1; } extern EntityData gUnk_080DD364; void sub_StateChange_CloudTops_House(void) { if (!(gSave.windcrests & 0x4000000)) { LoadRoomEntityList(&gUnk_080DD364); } } void sub_unk1_CloudTops_House(void) { if (!(gSave.windcrests & 0x4000000)) { LoadRoomEntityList(&gUnk_080DD364); } } u32 sub_unk3_CloudTops_Middle(void) { return 1; } void sub_StateChange_CloudTops_Middle(void) { } u32 sub_unk3_CloudTops_Bottom(void) { return 1; } extern EntityData gUnk_080DD7E0; extern EntityData gUnk_080DD840; void sub_StateChange_CloudTops_Bottom(void) { if (CheckGlobalFlag(KUMOTATSUMAKI)) { sub_0809F814(0x6de); } #if defined(JP) || defined(EU) || defined(DEMO_JP) if (CheckLocalFlag(0xf0)) { #else if (CheckLocalFlag(0xf3)) { #endif sub_0809F814(0xe0); } else { LoadRoomEntityList(&gUnk_080DD7E0); } #if defined(JP) || defined(EU) || defined(DEMO_JP) if (CheckLocalFlag(0xf2)) { #else if (CheckLocalFlag(0xf5)) { #endif sub_0809F814(0xba3); } else { LoadRoomEntityList(&gUnk_080DD840); } } u32 sub_unk3_Ruins_Entrance(void) { return 1; } void sub_StateChange_Ruins_Entrance(void) { sub_080300E8(); #if defined(JP) || defined(EU) || defined(DEMO_JP) SetLocalFlag(0x25); #else SetLocalFlag(0x24); #endif } u32 sub_unk3_Ruins_Beanstalk(void) { return 1; } void sub_StateChange_Ruins_Beanstalk(void) { } u32 sub_unk3_Ruins_TripleTektites(void) { return 1; } extern EntityData gUnk_080DDE88; void sub_StateChange_Ruins_TripleTektites(void) { if (CheckKinstoneFused(0x41)) { LoadRoomEntityList(&gUnk_080DDE88); } } void sub_unk1_Ruins_TripleTektites(void) { if (CheckLocalFlagByBank(FLAG_BANK_1, LOST_02_00)) { SetDirtTile(0x85); } } u32 sub_unk3_Ruins_LadderToTektites(void) { return 1; } void sub_StateChange_Ruins_LadderToTektites(void) { } u32 sub_unk3_Ruins_FortressEntrance(void) { return 1; } extern EntityData gUnk_080DE008; void sub_StateChange_Ruins_FortressEntrance(void) { sub_080300E8(); if (CheckGlobalFlag(LV3_CLEAR) && !CheckLocalFlag(3)) { LoadRoomEntityList(&gUnk_080DE008); } } u32 sub_unk3_Ruins_Armos(void) { return 1; } extern EntityData gUnk_080DE1E0; extern EntityData gUnk_080DE200; void sub_StateChange_Ruins_Armos(void) { sub_080300E8(); #if defined(JP) || defined(EU) || defined(DEMO_JP) if (!CheckLocalFlag(0x31)) { #else if (!CheckLocalFlag(0x30)) { #endif LoadRoomEntityList(&gUnk_080DE1E0); } #if defined(JP) || defined(EU) || defined(DEMO_JP) if (!CheckLocalFlag(0x32)) { #else if (!CheckLocalFlag(0x31)) { #endif LoadRoomEntityList(&gUnk_080DE200); } } u32 sub_unk3_DeepwoodShrine_Madderpillar(void) { return 1; } extern EntityData gUnk_080DE4C8; void sub_StateChange_DeepwoodShrine_Madderpillar(void) { if ((gPlayerEntity.y.HALF.HI - gRoomControls.origin_y) < (gRoomControls.height >> 1)) { if (!CheckLocalFlag(0x17)) { LoadRoomEntityList(&gUnk_080DE4C8); } } } u32 sub_unk3_DeepwoodShrine_BluePortal(void) { return 1; } void sub_StateChange_DeepwoodShrine_BluePortal(void) { } u32 sub_unk3_DeepwoodShrine_StairsToB1(void) { return 1; } extern EntityData gUnk_080DE814; extern EntityData gUnk_additional_8_DeepwoodShrine_StairsToB1; void sub_StateChange_DeepwoodShrine_StairsToB1(void) { if (!CheckLocalFlag(0x4b)) { LoadRoomEntityList(&gUnk_080DE814); } else { if (!CheckLocalFlag(0x4c)) { LoadRoomEntityList(&gUnk_additional_8_DeepwoodShrine_StairsToB1); SetTileType(0x79, 0x285, 1); } else { SetTileType(0x7a, 0x285, 1); if (!CheckLocalFlag(0x24)) { SetTileType(0x73, 0x205, 1); } } } } u32 sub_unk3_DeepwoodShrine_PotBridge(void) { return 1; } void sub_StateChange_DeepwoodShrine_PotBridge(void) { } u32 sub_unk3_DeepwoodShrine_DoubleStatue(void) { return 1; } void sub_StateChange_DeepwoodShrine_DoubleStatue(void) { } u32 sub_unk3_DeepwoodShrine_Map(void) { return 1; } void sub_StateChange_DeepwoodShrine_Map(void) { } u32 sub_unk3_DeepwoodShrine_Barrel(void) { return 1; } void sub_StateChange_DeepwoodShrine_Barrel(void) { if (gSave.unk7 == 0) { goto a; } if (gSave.unk7 != 2) { a: SetTileType(0x90, 0x20b, 1); SetTileType(0x90, 0x411, 1); } else { SetTileType(0x90, 0x211, 1); SetTileType(0x90, 0x40b, 1); } if (CheckLocalFlag(0x15)) { SetTileType(0x76, 0x304, 2); } if (CheckLocalFlag(0x16)) { SetTileType(0x76, 0x318, 2); } } u32 sub_unk3_DeepwoodShrine_Button(void) { return 1; } void sub_StateChange_DeepwoodShrine_Button(void) { } u32 sub_unk3_DeepwoodShrine_Mulldozer(void) { return 1; } void sub_StateChange_DeepwoodShrine_Mulldozer(void) { } u32 sub_unk3_DeepwoodShrine_Pillars(void) { return 1; } void sub_StateChange_DeepwoodShrine_Pillars(void) { } u32 sub_unk3_DeepwoodShrine_Lever(void) { return 1; } void sub_StateChange_DeepwoodShrine_Lever(void) { } u32 sub_unk3_DeepwoodShrine_Entrance(void) { return 1; } #if defined(DEMO_USA) || defined(DEMO_JP) void sub_StateChange_DeepwoodShrine_Entrance(void) { #ifdef DEMO_USA if (gSaveHeader->saveFileId != 0 && GetInventoryValue(ITEM_EARTH_ELEMENT) == 0) { #else #ifdef DEMO_JP if (GetInventoryValue(ITEM_EARTH_ELEMENT) == 0) { #endif #endif SetTileType(0x365, 0x349, 1); SetTileType(0x365, 0x34a, 1); SetTileType(0x365, 0x34b, 1); } } #else void sub_StateChange_DeepwoodShrine_Entrance(void) { } #endif u32 sub_unk3_DeepwoodShrine_Torch(void) { return 1; } void sub_StateChange_DeepwoodShrine_Torch(void) { } u32 sub_unk3_DeepwoodShrine_BossKey(void) { return 1; } void sub_StateChange_DeepwoodShrine_BossKey(void) { } u32 sub_unk3_DeepwoodShrine_Compass(void) { return 1; } void sub_StateChange_DeepwoodShrine_Compass(void) { } u32 sub_unk3_DeepwoodShrine_13(void) { return 1; } void sub_StateChange_DeepwoodShrine_13(void) { } u32 sub_unk3_DeepwoodShrine_LilyPadWest(void) { return 1; } void sub_StateChange_DeepwoodShrine_LilyPadWest(void) { } u32 sub_unk3_DeepwoodShrine_LilyPadEast(void) { return 1; } void sub_StateChange_DeepwoodShrine_LilyPadEast(void) { } u32 sub_unk3_DeepwoodShrineBoss_Main(void) { return 1; } extern EntityData gUnk_additional_a_DeepwoodShrineBoss_Main; extern u8 gUpdateVisibleTiles; extern u32 gUsedPalettes; void sub_StateChange_DeepwoodShrineBoss_Main(void) { if (!CheckLocalFlag(0x48)) { SetLocalFlag(0x48); MenuFadeIn(5, 0); gUpdateVisibleTiles = 0; gFadeControl.active = 0; gUsedPalettes = 0; *(u16*)0x5000000 = 0x7fff; DispReset(1); } if (CheckGlobalFlag(LV1_CLEAR)) { LoadRoomEntityList(&gUnk_additional_a_DeepwoodShrineBoss_Main); } else { SoundReq(SONG_STOP_BGM); gArea.bgm = gArea.queued_bgm; } } u32 sub_unk3_DeepwoodShrine_PreBoss(void) { return 1; } void sub_StateChange_DeepwoodShrine_PreBoss(void) { } u32 sub_unk3_DeepwoodShrine_InsideBarrel(void) { return 1; } void sub_StateChange_DeepwoodShrine_InsideBarrel(void) { sub_08058D34(); gArea.areaMetadata |= 0x40; gMain.substate = 5; } u32 sub_unk3_DeepwoodShrineEntry_Main(void) { return 1; } extern EntityData gUnk_080DFB78; void sub_StateChange_DeepwoodShrineEntry_Main(void) { if (CheckGlobalFlag(LV1_CLEAR) && !CheckLocalFlagByBank(FLAG_BANK_1, LV1_CLEAR_MES)) { LoadRoomEntityList(&gUnk_080DFB78); } } u32 sub_unk3_CaveOfFlames_AfterCane(void) { return 1; } void sub_StateChange_CaveOfFlames_AfterCane(void) { } u32 sub_unk3_CaveOfFlames_SpinyChus(void) { return 1; } void sub_StateChange_CaveOfFlames_SpinyChus(void) { } u32 sub_unk3_CaveOfFlames_CartToSpinyChus(void) { return 1; } void sub_StateChange_CaveOfFlames_CartToSpinyChus(void) { } u32 sub_unk3_CaveOfFlames_Entrance(void) { return 1; } #ifdef DEMO_USA void sub_StateChange_CaveOfFlames_Entrance(void) { if (GetInventoryValue(ITEM_FIRE_ELEMENT) == 0) { SetTileType(0x365, 0x287, 2); SetTileType(0x365, 0x288, 2); SetTileType(0x365, 0x289, 2); } } #else void sub_StateChange_CaveOfFlames_Entrance(void) { } #endif u32 sub_unk3_CaveOfFlames_MainCart(void) { return 1; } void sub_StateChange_CaveOfFlames_MainCart(void) { } u32 sub_unk3_CaveOfFlames_NorthEntrance(void) { return 1; } void sub_StateChange_CaveOfFlames_NorthEntrance(void) { } u32 sub_unk3_CaveOfFlames_CartWest(void) { return 1; } void sub_StateChange_CaveOfFlames_CartWest(void) { } u32 sub_unk3_CaveOfFlames_Helmasaur(void) { return 1; } void sub_StateChange_CaveOfFlames_Helmasaur(void) { } u32 sub_unk3_CaveOfFlames_Rollobite(void) { return 1; } void sub_StateChange_CaveOfFlames_Rollobite(void) { } u32 sub_unk3_CaveOfFlames_MinishLava(void) { return 1; } void sub_StateChange_CaveOfFlames_MinishLava(void) { } u32 sub_unk3_CaveOfFlames_MinishSpikes(void) { return 1; } void sub_StateChange_CaveOfFlames_MinishSpikes(void) { } u32 sub_unk3_CaveOfFlames_RollobiteSwitch(void) { return 1; } void sub_StateChange_CaveOfFlames_RollobiteSwitch(void) { } extern u32 gUnk_080E103C; u32 sub_unk3_CaveOfFlames_BeforeGleerok(void) { if (CheckGlobalFlag(LV2_CLEAR)) { gRoomVars.field_0x6c[1] = &gUnk_080E103C; } return 1; } void sub_StateChange_CaveOfFlames_BeforeGleerok(void) { } u32 sub_unk3_CaveOfFlames_PathBossKey(void) { return 1; } void sub_StateChange_CaveOfFlames_PathBossKey(void) { } u32 sub_unk3_CaveOfFlames_PathBossKey2(void) { return 1; } void sub_StateChange_CaveOfFlames_PathBossKey2(void) { } u32 sub_unk3_CaveOfFlames_Compass(void) { return 1; } void sub_StateChange_CaveOfFlames_Compass(void) { } u32 sub_unk3_CaveOfFlames_Bobomb(void) { return 1; } void sub_StateChange_CaveOfFlames_Bobomb(void) { } u32 sub_unk3_CaveOfFlames_BossDoor(void) { return 1; } void sub_StateChange_CaveOfFlames_BossDoor(void) { } u32 sub_unk3_CaveOfFlames_18(void) { return 1; } void sub_StateChange_CaveOfFlames_18(void) { } u32 sub_unk3_CaveOfFlamesBoss_Main(void) { return 1; } extern EntityData gUnk_additional_a_CaveOfFlamesBoss_Main; extern u32 gUnk_0200B650; void sub_StateChange_CaveOfFlamesBoss_Main(void) { if (CheckGlobalFlag(LV2_CLEAR)) { gUnk_0200B650 = 0; gScreen.lcd.displayControl &= ~DISPCNT_BG1_ON; sub_0807AABC(&gPlayerEntity); LoadRoomEntityList(&gUnk_additional_a_CaveOfFlamesBoss_Main); } else { SoundReq(SONG_STOP_BGM); gArea.bgm = gArea.queued_bgm; } } u32 sub_unk3_FortressOfWinds_Eyegore(void) { return 1; } void sub_StateChange_FortressOfWinds_Eyegore(void) { } u32 sub_unk3_FortressOfWinds_BeforeMazaal(void) { return 1; } void sub_StateChange_FortressOfWinds_BeforeMazaal(void) { gRoomTransition.field_0x38 = 0; gRoomTransition.field_0x39 = 0x5a; } u32 sub_unk3_FortressOfWinds_EastKeyLever(void) { return 1; } void sub_StateChange_FortressOfWinds_EastKeyLever(void) { sub_080300E8(); } u32 sub_unk3_FortressOfWinds_PitPlatforms(void) { return 1; } void sub_StateChange_FortressOfWinds_PitPlatforms(void) { } u32 sub_unk3_FortressOfWinds_WestKeyLever(void) { return 1; } void sub_StateChange_FortressOfWinds_WestKeyLever(void) { sub_080300E8(); } u32 sub_unk3_FortressOfWinds_Darknut(void) { return 1; } void sub_StateChange_FortressOfWinds_Darknut(void) { } u32 sub_unk3_FortressOfWinds_EyeBridge(void) { return 1; } void sub_StateChange_FortressOfWinds_EyeBridge(void) { } u32 sub_unk3_FortressOfWinds_Pit(void) { return 1; } void sub_StateChange_FortressOfWinds_Pit(void) { } u32 sub_unk3_FortressOfWinds_Wallmaster(void) { return 1; } void sub_StateChange_FortressOfWinds_Wallmaster(void) { } u32 sub_unk3_FortressOfWinds_Clone(void) { return 1; } void sub_StateChange_FortressOfWinds_Clone(void) { } u32 sub_unk3_FortressOfWinds_SpikeTraps(void) { return 1; } void sub_StateChange_FortressOfWinds_SpikeTraps(void) { } u32 sub_unk3_FortressOfWinds_Mazaal(void) { return 1; } void sub_StateChange_FortressOfWinds_Mazaal(void) { if (!CheckFlags(0x31)) { if (gRoomTransition.field_0x38 == 0) { SoundReq(SONG_STOP_BGM); } else { if (gRoomTransition.field_0x39 == 0) { SoundReq(SONG_STOP); SetPlayerControl(3); } } gArea.bgm = gArea.queued_bgm; } } u32 sub_unk3_FortressOfWinds_Stalfos(void) { return 1; } void sub_StateChange_FortressOfWinds_Stalfos(void) { } u32 sub_unk3_FortressOfWinds_EntranceMoleMitts(void) { return 1; } void sub_StateChange_Dojos_Waveblade0(void) { } u32 sub_unk3_FortressOfWinds_Main2F(void) { return 1; } void sub_StateChange_Dojos_Waveblade1(void) { } u32 sub_unk3_FortressOfWinds_MinishHole(void) { return 1; } void sub_StateChange_Dojos_Waveblade2(void) { } u32 sub_unk3_FortressOfWinds_BossKey(void) { return 1; } void sub_StateChange_Dojos_Waveblade3(void) { } u32 sub_unk3_FortressOfWinds_WestStairs2F(void) { return 1; } void sub_StateChange_Dojos_Waveblade4(void) { } u32 sub_unk3_FortressOfWinds_EastStairs2F(void) { return 1; } void sub_StateChange_Dojos_Waveblade5(void) { } u32 sub_unk3_FortressOfWinds_WestStairs1F(void) { return 1; } void sub_StateChange_Dojos_Waveblade6(void) { } u32 sub_unk3_FortressOfWinds_CenterStairs1F(void) { return 1; } void sub_StateChange_Dojos_Waveblade7(void) { } u32 sub_unk3_FortressOfWinds_EastStairs1F(void) { return 1; } void sub_StateChange_Dojos_Waveblade8(void) { } u32 sub_unk3_FortressOfWinds_Wizzrobe(void) { return 1; } void sub_StateChange_Dojos_Waveblade9(void) { } u32 sub_unk3_FortressOfWinds_HeartPiece(void) { return 1; } void sub_StateChange_Dojos_70(void) { } u32 sub_unk3_InnerMazaal_Main(void) { return 1; } void sub_StateChange_Dojos_71(void) { } u32 sub_unk3_FortressOfWindsTop_Main(void) { return 1; } extern EntityData gUnk_080E3850; void sub_StateChange_FortressOfWindsTop_Main(void) { SetGlobalFlag(LV3_CLEAR); UpdateGlobalProgress(); sub_0805B4D0(3); if (!GetInventoryValue(ITEM_OCARINA) && CheckLocalFlag(0x45)) { LoadRoomEntityList(&gUnk_080E3850); } } u32 sub_unk3_TempleOfDroplets_WestHole(void) { return 1; } void sub_StateChange_TempleOfDroplets_WestHole(void) { sub_0804D0B4(); } static void sub_0804D0B4(void) { if (!CheckLocalFlag(0x29)) { SetLocalFlag(0x29); SetLocalFlag(0x4b); SetLocalFlag(0x4e); } } u32 sub_unk3_TempleOfDroplets_NorthSplit(void) { return 1; } void sub_StateChange_TempleOfDroplets_NorthSplit(void) { } u32 sub_unk3_TempleOfDroplets_EastHole(void) { return 1; } void sub_StateChange_TempleOfDroplets_EastHole(void) { } u32 sub_unk3_TempleOfDroplets_Entrance(void) { return 1; } void sub_StateChange_TempleOfDroplets_Entrance(void) { } u32 sub_unk3_TempleOfDroplets_NorthwestStairs(void) { return 1; } void sub_StateChange_TempleOfDroplets_NorthwestStairs(void) { } u32 sub_unk3_TempleOfDroplets_ScissorsMiniboss(void) { return 1; } void sub_StateChange_TempleOfDroplets_ScissorsMiniboss(void) { } u32 sub_unk3_TempleOfDroplets_WaterfallNorthwest(void) { return 1; } void sub_StateChange_TempleOfDroplets_WaterfallNorthwest(void) { } u32 sub_unk3_TempleOfDroplets_WaterfallNortheast(void) { return 1; } void sub_StateChange_TempleOfDroplets_WaterfallNortheast(void) { } u32 sub_unk3_TempleOfDroplets_Element(void) { return 1; } void sub_StateChange_TempleOfDroplets_Element(void) { } u32 sub_unk3_TempleOfDroplets_IceCorner(void) { return 1; } void sub_StateChange_TempleOfDroplets_IceCorner(void) { } u32 sub_unk3_TempleOfDroplets_IcePitMaze(void) { return 1; } void sub_StateChange_TempleOfDroplets_IcePitMaze(void) { } u32 sub_unk3_TempleOfDroplets_HoleToBlueChuchu(void) { return 1; } void sub_StateChange_TempleOfDroplets_HoleToBlueChuchu(void) { } u32 sub_unk3_TempleOfDroplets_WaterfallSoutheast(void) { return 1; } void sub_StateChange_TempleOfDroplets_WaterfallSoutheast(void) { } u32 sub_unk3_TempleOfDroplets_WaterfallSouthwest(void) { return 1; } void sub_StateChange_TempleOfDroplets_WaterfallSouthwest(void) { } u32 sub_unk3_TempleOfDroplets_BigOcto(void) { return 1; } extern EntityData gUnk_additional_a_TempleOfDroplets_BigOcto; void sub_StateChange_TempleOfDroplets_BigOcto(void) { ChangeLightLevel(0x100); if (CheckGlobalFlag(LV4_CLEAR)) { LoadRoomEntityList(&gUnk_additional_a_TempleOfDroplets_BigOcto); } else { SoundReq(SONG_STOP_BGM); gArea.bgm = gArea.queued_bgm; } } u32 sub_unk3_TempleOfDroplets_ToBigBlueChuchu(void) { return 1; } void sub_StateChange_Dojos_72(void) { } u32 sub_unk3_TempleOfDroplets_BigBlueChuchu(void) { return 1; } extern EntityData gUnk_080E4BD8; void sub_StateChange_TempleOfDroplets_BigBlueChuchu(void) { if (!CheckLocalFlag(0x48)) { ClearLocalFlag(0x46); LoadRoomEntityList(&gUnk_080E4BD8); } } u32 sub_unk3_TempleOfDroplets_BigBlueChuchuKey(void) { return 1; } extern EntityData gUnk_080E4CF8; extern EntityData gUnk_080E4CD8; void sub_StateChange_TempleOfDroplets_BigBlueChuchuKey(void) { sub_0804D0B4(); if (CheckLocalFlag(0x6c)) { LoadRoomEntityList(&gUnk_080E4CD8); } else { LoadRoomEntityList(&gUnk_080E4CF8); } if (!CheckLocalFlag(0x4b)) { ClearLocalFlag(0x49); } } u32 sub_unk3_TempleOfDroplets_BossKey(void) { return 1; } void sub_StateChange_Dojos_73(void) { } u32 sub_unk3_TempleOfDroplets_NorthSmallKey(void) { return 1; } void sub_StateChange_Dojos_74(void) { } u32 sub_unk3_TempleOfDroplets_BlockCloneButtonPuzzle(void) { return 1; } void sub_StateChange_Dojos_75(void) { } u32 sub_unk3_TempleOfDroplets_BlockClonePuzzle(void) { return 1; } void sub_StateChange_Dojos_76(void) { } u32 sub_unk3_TempleOfDroplets_BlockCloneIceBridge(void) { return 1; } void sub_StateChange_Dojos_77(void) { } u32 sub_unk3_TempleOfDroplets_StairsToScissorsMiniboss(void) { return 1; } void sub_StateChange_Dojos_78(void) { } u32 sub_unk3_TempleOfDroplets_SpikeBar(void) { return 1; } void sub_StateChange_Dojos_79(void) { } u32 sub_unk3_TempleOfDroplets_Lanterns(void) { return 1; } void sub_StateChange_Dojos_80(void) { } u32 sub_unk3_TempleOfDroplets_LilypadIceBlocks(void) { return 1; } extern EntityData gUnk_080E5660; extern EntityData gUnk_080E5680; void sub_StateChange_TempleOfDroplets_LilypadIceBlocks(void) { if (!CheckLocalFlag(0x59)) { LoadRoomEntityList(&gUnk_080E5660); } else { LoadRoomEntityList(&gUnk_080E5680); } } u32 sub_unk3_TempleOfDroplets_Pit(void) { return 1; } void sub_StateChange_Dojos_81(void) { } u32 sub_unk3_TempleOfDroplets_FireBars(void) { return 1; } void sub_StateChange_Dojos_82(void) { } u32 sub_unk3_TempleOfDroplets_LanternMaze(void) { return 1; } void sub_StateChange_Dojos_83(void) { } u32 sub_unk3_TempleOfDroplets_Madderpillars(void) { return 1; } void sub_StateChange_Dojos_84(void) { } u32 sub_unk3_TempleOfDroplets_AfterMadderpillars(void) { return 1; } void sub_StateChange_Dojos_85(void) { } u32 sub_unk3_TempleOfDroplets_BlueChuchuKeyLever(void) { return 1; } extern EntityData gUnk_080E5E3C; extern EntityData gUnk_080E5E5C; void sub_StateChange_TempleOfDroplets_BlueChuchuKeyLever(void) { sub_0804D0B4(); if (!CheckLocalFlag(0x4b)) { LoadRoomEntityList(&gUnk_080E5E3C); } else { LoadRoomEntityList(&gUnk_080E5E5C); } } u32 sub_unk3_TempleOfDroplets_MulldozerKey(void) { return 1; } void sub_StateChange_Dojos_86(void) { } u32 sub_unk3_TempleOfDroplets_BombWall(void) { return 1; } void sub_StateChange_Dojos_87(void) { } u32 sub_unk3_TempleOfDroplets_LilypadWestB2(void) { return 1; } void sub_StateChange_Dojos_88(void) { } u32 sub_unk3_TempleOfDroplets_CompassRoom(void) { return 1; } void sub_StateChange_Dojos_89(void) { } u32 sub_unk3_TempleOfDroplets_LanternScissors(void) { return 1; } void sub_StateChange_Dojos_90(void) { } u32 sub_unk3_TempleOfDroplets_LilypadMiddleB2(void) { return 1; } void sub_StateChange_Dojos_91(void) { } u32 sub_unk3_TempleOfDroplets_LilypadEastB2(void) { return 1; } void sub_StateChange_Dojos_92(void) { } u32 sub_unk3_TempleOfDroplets_FlameBarBlockPuzzle(void) { return 1; } void sub_StateChange_Dojos_93(void) { } u32 sub_unk3_RoyalCrypt_KingGustaf(void) { return 1; } extern EntityData gUnk_080E693C; void sub_StateChange_RoyalCrypt_KingGustaf(void) { if (!CheckLocalFlag(0x32)) { LoadRoomEntityList(&gUnk_080E693C); } } u32 sub_unk3_RoyalCrypt_WaterRope(void) { return 1; } void sub_StateChange_Dojos_94(void) { } u32 sub_unk3_RoyalCrypt_Gibdo(void) { return 1; } void sub_StateChange_Dojos_95(void) { } u32 sub_unk3_RoyalCrypt_3(void) { return 1; } void sub_StateChange_Dojos_96(void) { } u32 sub_unk3_RoyalCrypt_KeyBlock(void) { return 1; } void sub_StateChange_Dojos_97(void) { } u32 sub_unk3_RoyalCrypt_5(void) { return 1; } void sub_StateChange_Dojos_98(void) { } u32 sub_unk3_RoyalCrypt_6(void) { return 1; } void sub_StateChange_Dojos_99(void) { } u32 sub_unk3_RoyalCrypt_MushroomPit(void) { return 1; } void sub_StateChange_RoyalCrypt_MushroomPit(void) { sub_08054570(); } u32 sub_unk3_RoyalCrypt_Entrance(void) { return 1; } extern EntityData gUnk_080E718C; extern EntityData gUnk_080E71AC; void sub_StateChange_RoyalCrypt_Entrance(void) { SetTileType(0x312, 0x108, 1); sub_08054570(); if (!CheckLocalFlag(0xc4)) { LoadRoomEntityList(&gUnk_080E718C); } if (!CheckLocalFlag(0xc5)) { LoadRoomEntityList(&gUnk_080E71AC); } } u32 sub_unk3_PalaceOfWinds_0(void) { return 1; } extern EntityData gUnk_additional_9_PalaceOfWinds_0; extern EntityData gUnk_080E72C4; extern EntityData gUnk_additional_8_PalaceOfWinds_0; void sub_StateChange_PalaceOfWinds_0(void) { Manager19_Main(NULL); if (CheckGlobalFlag(LV5_CLEAR)) { LoadRoomEntityList(&gUnk_additional_9_PalaceOfWinds_0); } if (!CheckLocalFlag(0x7b)) { LoadRoomEntityList(&gUnk_080E72C4); } else { SetGlobalFlag(LV5_CLEAR); if (!GetInventoryValue(ITEM_WIND_ELEMENT)) { SetPlayerControl(3); LoadRoomEntityList(&gUnk_additional_8_PalaceOfWinds_0); gArea.bgm = gArea.queued_bgm; SoundReq(SONG_STOP_BGM); } } } u32 sub_unk3_PalaceOfWinds_1(void) { return 1; } void sub_StateChange_PalaceOfWinds_1(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_2(void) { return 1; } void sub_StateChange_PalaceOfWinds_2(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_3(void) { return 1; } void sub_StateChange_PalaceOfWinds_3(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_4(void) { return 1; } void sub_StateChange_PalaceOfWinds_4(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_5(void) { return 1; } void sub_StateChange_PalaceOfWinds_5(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_6(void) { return 1; } void sub_StateChange_PalaceOfWinds_6(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_7(void) { return 1; } void sub_StateChange_PalaceOfWinds_7(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_8(void) { return 1; } void sub_StateChange_PalaceOfWinds_8(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_9(void) { return 1; } void sub_StateChange_PalaceOfWinds_9(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_10(void) { return 1; } void sub_StateChange_PalaceOfWinds_10(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_11(void) { return 1; } void sub_StateChange_PalaceOfWinds_11(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_12(void) { return 1; } void sub_StateChange_PalaceOfWinds_12(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_13(void) { return 1; } void sub_StateChange_PalaceOfWinds_13(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_14(void) { return 1; } void sub_StateChange_PalaceOfWinds_14(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_15(void) { return 1; } void sub_StateChange_PalaceOfWinds_15(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_16(void) { return 1; } void sub_StateChange_PalaceOfWinds_16(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_17(void) { return 1; } void sub_StateChange_PalaceOfWinds_17(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_18(void) { return 1; } void sub_StateChange_PalaceOfWinds_18(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_19(void) { return 1; } void sub_StateChange_PalaceOfWinds_19(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_20(void) { return 1; } void sub_StateChange_PalaceOfWinds_20(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_21(void) { return 1; } void sub_StateChange_PalaceOfWinds_21(void) { } u32 sub_unk3_PalaceOfWinds_22(void) { return 1; } void sub_StateChange_PalaceOfWinds_22(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_23(void) { return 1; } void sub_StateChange_PalaceOfWinds_23(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_24(void) { return 1; } void sub_StateChange_PalaceOfWinds_24(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_25(void) { return 1; } void sub_StateChange_PalaceOfWinds_25(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_26(void) { return 1; } void sub_StateChange_PalaceOfWinds_26(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_27(void) { return 1; } void sub_StateChange_PalaceOfWinds_27(void) { } u32 sub_unk3_PalaceOfWinds_28(void) { return 1; } void sub_StateChange_PalaceOfWinds_28(void) { } u32 sub_unk3_PalaceOfWinds_29(void) { return 1; } void sub_StateChange_PalaceOfWinds_29(void) { } u32 sub_unk3_PalaceOfWinds_30(void) { return 1; } void sub_StateChange_PalaceOfWinds_30(void) { } u32 sub_unk3_PalaceOfWinds_31(void) { return 1; } void sub_StateChange_PalaceOfWinds_31(void) { } u32 sub_unk3_PalaceOfWinds_32(void) { return 1; } void sub_StateChange_PalaceOfWinds_32(void) { } u32 sub_unk3_PalaceOfWinds_33(void) { return 1; } void sub_StateChange_PalaceOfWinds_33(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_34(void) { return 1; } void sub_StateChange_PalaceOfWinds_34(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_35(void) { return 1; } void sub_StateChange_PalaceOfWinds_35(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_36(void) { return 1; } void sub_StateChange_PalaceOfWinds_36(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_37(void) { return 1; } void sub_StateChange_PalaceOfWinds_37(void) { } u32 sub_unk3_PalaceOfWinds_38(void) { return 1; } void sub_StateChange_PalaceOfWinds_38(void) { } u32 sub_unk3_PalaceOfWinds_39(void) { return 1; } void sub_StateChange_PalaceOfWinds_39(void) { } u32 sub_unk3_PalaceOfWinds_40(void) { return 1; } void sub_StateChange_PalaceOfWinds_40(void) { } u32 sub_unk3_PalaceOfWinds_41(void) { return 1; } void sub_StateChange_PalaceOfWinds_41(void) { } u32 sub_unk3_PalaceOfWinds_42(void) { return 1; } void sub_StateChange_PalaceOfWinds_42(void) { } u32 sub_unk3_PalaceOfWinds_43(void) { return 1; } void sub_StateChange_PalaceOfWinds_43(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_44(void) { return 1; } extern EntityData gUnk_080EA09C; void sub_StateChange_PalaceOfWinds_44(void) { Manager19_Main(NULL); if (!CheckLocalFlag(0x70)) { LoadRoomEntityList(&gUnk_080EA09C); } } u32 sub_unk3_PalaceOfWinds_45(void) { return 1; } void sub_StateChange_PalaceOfWinds_45(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_46(void) { return 1; } void sub_StateChange_PalaceOfWinds_46(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_47(void) { return 1; } void sub_StateChange_PalaceOfWinds_47(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_48(void) { return 1; } void sub_StateChange_PalaceOfWinds_48(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_49(void) { return 1; } void sub_StateChange_PalaceOfWinds_49(void) { Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_50(void) { return 1; } void sub_StateChange_PalaceOfWinds_50(void) { } u32 sub_unk3_PalaceOfWindsBoss_Main(void) { return 1; } void sub_StateChange_PalaceOfWindsBoss_Main(void) { } u32 sub_unk3_Vaati2_Main(void) { return 1; } void sub_StateChange_Vaati2_Main(void) { SoundReq(SONG_STOP_BGM); gArea.bgm = gArea.queued_bgm; } u32 sub_unk3_Vaati3_Main(void) { return 1; } void sub_StateChange_Vaati3_Main(void) { Manager2F_Main(NULL); if ((gRoomTransition.field_0x38 & 1) && gRoomTransition.field_0x39) { if (gRoomTransition.field_0x3c == 1) { gPlayerEntity.x.HALF.HI = gRoomTransition.field_0x48; gPlayerEntity.y.HALF.HI = gRoomTransition.field_0x4a + 8; } else { if (gRoomTransition.field_0x3c) { return; } gPlayerEntity.x.HALF.HI = gRoomTransition.field_0x44; gPlayerEntity.y.HALF.HI = gRoomTransition.field_0x46 + 8; } } } u32 sub_unk3_DarkHyruleCastleBridge_Main(void) { return 1; } void sub_StateChange_DarkHyruleCastleBridge_Main(void) { sub_0805B4D0(6); } u32 sub_unk3_VaatisArms_First(void) { return 1; } void sub_StateChange_VaatisArms_First(void) { } u32 sub_unk3_VaatisArms_Second(void) { return 1; } void sub_StateChange_VaatisArms_Second(void) { } u32 sub_unk3_DarkHyruleCastleOutside_ZeldaStatuePlatform(void) { sub_080534AC(); return 1; } extern EntityData gUnk_080EAD68; extern EntityData gUnk_080EADB8; void sub_StateChange_DarkHyruleCastleOutside_ZeldaStatuePlatform(void) { sub_0805B4D0(4); if (!CheckLocalFlag(0x77)) { LoadRoomEntityList(&gUnk_080EAD68); } else if (!CheckLocalFlag(0x79)) { LoadRoomEntityList(&gUnk_080EADB8); SetTileType(0x4072, 0x145, 1); SetTileType(0x4072, 0x149, 1); gArea.queued_bgm = 0; } } extern u16 gUnk_080EAE00; void sub_0804D7EC(void) { u16 temp; u16* tilePos; tilePos = &gUnk_080EAE00; while (*tilePos != 0) { temp = *tilePos; tilePos++; SetTileType(0x4072, temp, 1); } } void sub_0804D810(void) { u16 uVar1; u16* puVar2; puVar2 = &gUnk_080EAE00; while (*puVar2 != 0) { uVar1 = *puVar2; puVar2++; sub_0807BA8C(uVar1, 1); } } u32 sub_unk3_DarkHyruleCastleOutside_Garden(void) { return 1; } extern EntityData gUnk_080EAE60; extern EntityData gUnk_080EAEC0; extern EntityData gUnk_080EAF20; void sub_StateChange_DarkHyruleCastleOutside_Garden(void) { gArea.areaMetadata = 0x40; gArea.locationIndex = 0; if (CheckGlobalFlag(ENDING)) { if (!CheckLocalFlag(0x7f)) { LoadRoomEntityList(&gUnk_080EAEC0); SetLocalFlag(0x7f); gArea.queued_bgm = 0x11; } else { LoadRoomEntityList(&gUnk_080EAF20); gArea.queued_bgm = gArea.bgm; } } else { if (CheckLocalFlag(0x79)) { gArea.queued_bgm = gArea.bgm; } if (!CheckLocalFlag(1)) { LoadRoomEntityList(&gUnk_080EAE60); } } ClearGlobalFlag(0x5d); } u32 sub_unk3_DarkHyruleCastleOutside_OutsideNorthwest(void) { return 1; } void sub_StateChange_Dojos_ToGrimblade0(void) { } u32 sub_unk3_DarkHyruleCastleOutside_OutsideNortheast(void) { return 1; } void sub_StateChange_Dojos_ToGrimblade1(void) { } u32 sub_unk3_DarkHyruleCastleOutside_OutsideEast(void) { return 1; } void sub_StateChange_Dojos_ToGrimblade2(void) { } u32 sub_unk3_DarkHyruleCastleOutside_OutsideSouthwest(void) { return 1; } void sub_StateChange_Dojos_ToGrimblade3(void) { } u32 sub_unk3_DarkHyruleCastleOutside_OutsideSouth(void) { return 1; } void sub_StateChange_Dojos_ToGrimblade4(void) { } u32 sub_unk3_DarkHyruleCastleOutside_OutsideSoutheast(void) { return 1; } void sub_StateChange_Dojos_ToGrimblade5(void) { } u32 sub_unk3_DarkHyruleCastleOutside_8(void) { return 1; } void sub_StateChange_Dojos_ToGrimblade6(void) { } extern u32 gUnk_080EB604; extern u32 gUnk_080EB5D4; u32 sub_unk3_DarkHyruleCastle_0(void) { if (CheckGlobalFlag(ENDING)) { gRoomVars.field_0x6c[0] = &gUnk_080EB604; gRoomVars.field_0x6c[2] = 0; gArea.bgm = gArea.queued_bgm = BGM_BEAT_VAATI; } else if (CheckLocalFlag(0x79)) { gRoomVars.field_0x6c[0] = NULL; if (!CheckLocalFlag(0x7a)) { SetGlobalFlag(ZELDA_CHASE); gRoomVars.field_0x6c[0] = &gUnk_080EB5D4; gRoomVars.field_0x6c[7] = sub_0804D9B0; gRoomVars.field_0x6c[2] = 0; } } return 1; } void sub_StateChange_DarkHyruleCastle_0(void) { if (CheckGlobalFlag(ENDING)) { gArea.queued_bgm = gArea.bgm; } if (CheckLocalFlag(0x79)) { sub_0804D9B0(); } } extern EntityData gUnk_080EB684; static void sub_0804D9B0(void) { sub_0807BB98(0x797, 1, 5, 1); sub_0807BB98(0x357, 1, 5, 1); sub_0807BB98(0x55f, 1, 2, 1); LoadRoomEntityList(&gUnk_080EB684); gArea.queued_bgm = gArea.bgm; } u32 sub_unk3_DarkHyruleCastle_1(void) { return 1; } void sub_StateChange_Dojos_ToGrimblade7(void) { } u32 sub_unk3_DarkHyruleCastle_2(void) { return 1; } void sub_StateChange_Dojos_ToGrimblade8(void) { } u32 sub_unk3_DarkHyruleCastle_3(void) { return 1; } void sub_StateChange_Dojos_ToGrimblade9(void) { } u32 sub_unk3_DarkHyruleCastle_4(void) { return 1; } void sub_StateChange_Dojos_ToSplitblade0(void) { } u32 sub_unk3_DarkHyruleCastle_5(void) { return 1; } void sub_StateChange_Dojos_ToSplitblade1(void) { } u32 sub_unk3_DarkHyruleCastle_6(void) { if (!CheckLocalFlag(0x77)) { gRoomVars.field_0x6c[0] = 0; gRoomVars.field_0x6c[2] = 0; } return 1; } extern EntityData gUnk_080EB9F4; extern EntityData gUnk_080EBAA4; extern EntityData gUnk_080EBAF4; void sub_StateChange_DarkHyruleCastle_6(void) { if (!CheckLocalFlag(0x77)) { LoadRoomEntityList(&gUnk_080EB9F4); } else { if (!CheckLocalFlag(0x78)) { LoadRoomEntityList(&gUnk_080EBAA4); SetLocalFlag(0x75); } if (CheckLocalFlag(0x7b)) { LoadRoomEntityList(&gUnk_080EBAF4); SetLocalFlag(0x76); } } } u32 sub_unk3_DarkHyruleCastle_7(void) { return 1; } void sub_StateChange_Dojos_ToSplitblade2(void) { } u32 sub_unk3_DarkHyruleCastle_8(void) { return 1; } void sub_StateChange_Dojos_ToSplitblade3(void) { } u32 sub_unk3_DarkHyruleCastle_9(void) { return 1; } void sub_StateChange_Dojos_ToSplitblade4(void) { } u32 sub_unk3_DarkHyruleCastle_10(void) { return 1; } void sub_StateChange_Dojos_ToSplitblade5(void) { } u32 sub_unk3_DarkHyruleCastle_11(void) { return 1; } void sub_StateChange_Dojos_ToSplitblade6(void) { } u32 sub_unk3_DarkHyruleCastle_12(void) { return 1; } void sub_StateChange_Dojos_ToSplitblade7(void) { } u32 sub_unk3_DarkHyruleCastle_13(void) { return 1; } void sub_StateChange_Dojos_ToSplitblade8(void) { } u32 sub_unk3_DarkHyruleCastle_14(void) { return 1; } extern EntityData gUnk_080EC2CC; void sub_StateChange_DarkHyruleCastle_14(void) { if (CheckLocalFlag(0x86) && !CheckLocalFlag(0x4c)) { LoadRoomEntityList(&gUnk_080EC2CC); } } u32 sub_unk3_DarkHyruleCastle_15(void) { return 1; } void sub_StateChange_Dojos_ToSplitblade9(void) { } u32 sub_unk3_DarkHyruleCastle_16(void) { return 1; } extern EntityData gUnk_080EC4E8; void sub_StateChange_DarkHyruleCastle_16(void) { if (CheckLocalFlag(0x86) && !CheckLocalFlag(0x4d)) { LoadRoomEntityList(&gUnk_080EC4E8); } } u32 sub_unk3_DarkHyruleCastle_17(void) { return 1; } void sub_StateChange_Dojos_ToGreatblade0(void) { } u32 sub_unk3_DarkHyruleCastle_18(void) { return 1; } void sub_StateChange_Dojos_ToGreatblade1(void) { } u32 sub_unk3_DarkHyruleCastle_19(void) { return 1; } extern EntityData gUnk_080EC820; void sub_StateChange_DarkHyruleCastle_19(void) { if (CheckLocalFlag(0x86) && !CheckLocalFlag(0x53)) { LoadRoomEntityList(&gUnk_080EC820); } } u32 sub_unk3_DarkHyruleCastle_20(void) { return 1; } void sub_StateChange_Dojos_ToGreatblade2(void) { } u32 sub_unk3_DarkHyruleCastle_21(void) { return 1; } extern EntityData gUnk_080ECA60; void sub_StateChange_DarkHyruleCastle_21(void) { if (CheckLocalFlag(0x86) && !CheckLocalFlag(0x56)) { LoadRoomEntityList(&gUnk_080ECA60); } } u32 sub_unk3_DarkHyruleCastle_22(void) { return 1; } void sub_StateChange_Dojos_ToGreatblade3(void) { } u32 sub_unk3_DarkHyruleCastle_23(void) { return 1; } void sub_StateChange_Dojos_ToGreatblade4(void) { } u32 sub_unk3_DarkHyruleCastle_24(void) { return 1; } void sub_StateChange_Dojos_ToGreatblade5(void) { } u32 sub_unk3_DarkHyruleCastle_25(void) { return 1; } void sub_StateChange_Dojos_ToGreatblade6(void) { } u32 sub_unk3_DarkHyruleCastle_26(void) { return 1; } void sub_StateChange_Dojos_ToGreatblade7(void) { } u32 sub_unk3_DarkHyruleCastle_27(void) { return 1; } void sub_StateChange_Dojos_ToGreatblade8(void) { } u32 sub_unk3_DarkHyruleCastle_28(void) { if (CheckLocalFlag(0x79)) { gRoomVars.field_0x6c[2] = 0; } return 1; } extern EntityData gUnk_080ECFCC; void sub_StateChange_DarkHyruleCastle_28(void) { if (CheckLocalFlag(0x79)) { sub_0807BB98(0x90, 1, 1, 5); LoadRoomEntityList(&gUnk_080ECFCC); gArea.queued_bgm = gArea.bgm; } } u32 sub_unk3_DarkHyruleCastle_29(void) { return 1; } void sub_StateChange_Dojos_ToGreatblade9(void) { } u32 sub_unk3_DarkHyruleCastle_30(void) { return 1; } void sub_StateChange_Dojos_ToScarblade0(void) { } extern u32 gUnk_080ED1E4; u32 sub_unk3_DarkHyruleCastle_31(void) { if (CheckGlobalFlag(ENDING)) { gRoomVars.field_0x6c[0] = &gUnk_080ED1E4; gRoomVars.field_0x6c[2] = 0; } return 1; } void sub_StateChange_DarkHyruleCastle_31(void) { if (CheckGlobalFlag(ENDING)) { gArea.queued_bgm = gArea.bgm; } } u32 sub_unk3_DarkHyruleCastle_32(void) { return 1; } void sub_StateChange_Dojos_ToScarblade1(void) { } u32 sub_unk3_DarkHyruleCastle_33(void) { return 1; } void sub_StateChange_Dojos_ToScarblade2(void) { } u32 sub_unk3_DarkHyruleCastle_34(void) { return 1; } void sub_StateChange_Dojos_ToScarblade3(void) { } u32 sub_unk3_DarkHyruleCastle_35(void) { return 1; } void sub_StateChange_Dojos_ToScarblade4(void) { } u32 sub_unk3_DarkHyruleCastle_36(void) { return 1; } void sub_StateChange_Dojos_ToScarblade5(void) { } u32 sub_unk3_DarkHyruleCastle_37(void) { return 1; } void sub_StateChange_Dojos_ToScarblade6(void) { } u32 sub_unk3_DarkHyruleCastle_38(void) { return 1; } void sub_StateChange_Dojos_ToScarblade7(void) { } u32 sub_unk3_DarkHyruleCastle_39(void) { return 1; } void sub_StateChange_Dojos_ToScarblade8(void) { } u32 sub_unk3_DarkHyruleCastle_40(void) { return 1; } void sub_StateChange_Dojos_ToScarblade9(void) { } u32 sub_unk3_DarkHyruleCastle_41(void) { return 1; } void sub_StateChange_GoronCave_StairsToCave0(void) { } u32 sub_unk3_DarkHyruleCastle_42(void) { return 1; } void sub_StateChange_GoronCave_StairsToCave1(void) { } u32 sub_unk3_DarkHyruleCastle_43(void) { return 1; } void sub_StateChange_GoronCave_StairsToCave2(void) { } u32 sub_unk3_DarkHyruleCastle_44(void) { return 1; } void sub_StateChange_GoronCave_StairsToCave3(void) { } u32 sub_unk3_DarkHyruleCastle_45(void) { return 1; } void sub_StateChange_GoronCave_StairsToCave4(void) { } u32 sub_unk3_DarkHyruleCastle_46(void) { return 1; } void sub_StateChange_GoronCave_StairsToCave5(void) { } u32 sub_unk3_DarkHyruleCastle_47(void) { return 1; } void sub_StateChange_GoronCave_StairsToCave6(void) { } u32 sub_unk3_DarkHyruleCastle_48(void) { return 1; } void sub_StateChange_GoronCave_StairsToCave7(void) { } u32 sub_unk3_DarkHyruleCastle_49(void) { return 1; } void sub_StateChange_GoronCave_StairsToCave8(void) { } u32 sub_unk3_DarkHyruleCastle_50(void) { return 1; } void sub_StateChange_GoronCave_StairsToCave9(void) { } u32 sub_unk3_DarkHyruleCastle_51(void) { return 1; } void sub_StateChange_Ruins_Beanstalk0(void) { } u32 sub_unk3_DarkHyruleCastle_52(void) { return 1; } void sub_StateChange_Ruins_Beanstalk1(void) { } u32 sub_unk3_DarkHyruleCastle_53(void) { if (CheckLocalFlag(0x79)) { gRoomVars.field_0x6c[2] = 0; gRoomVars.field_0x6c[0] = 0; } return 1; } extern EntityData gUnk_080EE314; void sub_StateChange_DarkHyruleCastle_53(void) { if (CheckLocalFlag(0x79)) { sub_0807BB98(3, 2, 5, 1); LoadRoomEntityList(&gUnk_080EE314); gArea.queued_bgm = gArea.bgm; } } u32 sub_unk3_DarkHyruleCastle_54(void) { return 1; } void sub_StateChange_Ruins_Beanstalk2(void) { } u32 sub_unk3_DarkHyruleCastle_55(void) { if (CheckLocalFlag(0x79)) { gRoomVars.field_0x6c[2] = 0; } return 1; } extern EntityData gUnk_080EE5DC; void sub_StateChange_DarkHyruleCastle_55(void) { if (CheckLocalFlag(0x79)) { sub_0807BB98(0x392, 2, 2, 5); LoadRoomEntityList(&gUnk_080EE5DC); gArea.queued_bgm = gArea.bgm; } } u32 sub_unk3_DarkHyruleCastle_56(void) { return 1; } void sub_StateChange_Ruins_Beanstalk3(void) { } u32 sub_unk3_DarkHyruleCastle_57(void) { return 1; } extern EntityData gUnk_080EE71C; void sub_StateChange_DarkHyruleCastle_57(void) { if (CheckLocalFlag(1)) { LoadRoomEntityList(&gUnk_080EE71C); } } u32 sub_unk3_DarkHyruleCastle_58(void) { return 1; } void sub_StateChange_Ruins_Beanstalk4(void) { } ASM_FUNC("asm/non_matching/sub_unk3_HyruleTown_0.inc", u32 sub_unk3_HyruleTown_0(void)) extern EntityData gUnk_080EEB6C; extern EntityData gUnk_080EEB8C; extern EntityData gUnk_080EE88C; extern EntityData gUnk_080EE8FC; extern EntityData gUnk_080EE91C; extern EntityData gUnk_080EECBC; extern EntityData gUnk_080EE93C; extern EntityData gUnk_080EE95C; extern EntityData gUnk_080EE97C; extern EntityData gUnk_080EE9BC; extern EntityData gUnk_080EE99C; extern EntityData gUnk_080EE9DC; extern EntityData gUnk_080EEA3C; extern EntityData gUnk_080EEA1C; extern EntityData gUnk_080EE9FC; extern EntityData gUnk_080EEA5C; extern EntityData gUnk_080EEABC; extern EntityData gUnk_080EEA7C; extern EntityData gUnk_080EEA9C; extern EntityData gUnk_080EEBAC; void sub_StateChange_HyruleTown_0(void) { sub_08054570(); TryLoadPrologueHyruleTown(); #if defined(USA) || defined(DEMO_USA) || defined(DEMO_JP) SetTileType(0x176, 0x66b, 1); #endif if (gSave.global_progress == 1) { sub_0801D000(0); } else { sub_08018C58(0xdb4); if (!CheckLocalFlagByBank(FLAG_BANK_2, MHOUSE04_DANRO)) { LoadRoomEntityList(&gUnk_080EEB6C); } if (!CheckLocalFlagByBank(FLAG_BANK_2, MHOUSE06_DANRO)) { LoadRoomEntityList(&gUnk_080EEB8C); } if ((!GetInventoryValue(ITEM_KINSTONE_BAG)) && CheckGlobalFlag(LV1_CLEAR)) { LoadRoomEntityList(&gUnk_080EE88C); } if (!CheckKinstoneFused(0x28)) { LoadRoomEntityList(&gUnk_080EE8FC); } if (CheckKinstoneFused(0x33)) { LoadRoomEntityList(&gUnk_080EE91C); } if (CheckGlobalFlag(MACHI_MACHIHOKORI)) { LoadRoomEntityList(&gUnk_080EE93C); } else { LoadRoomEntityList(&gUnk_080EECBC); } if (CheckKinstoneFused(0x1b) && (gSave.global_progress > 3)) { if (!(CheckGlobalFlag(NEW_HOUSE_DIN) || CheckGlobalFlag(NEW_HOUSE_NAYRU) || CheckGlobalFlag(NEW_HOUSE_FARORE))) { if (!(CheckGlobalFlag(RENTED_HOUSE_DIN) || CheckGlobalFlag(RENTED_HOUSE_NAYRU) || CheckGlobalFlag(RENTED_HOUSE_FARORE))) { LoadRoomEntityList(&gUnk_080EE95C); } else { if (!CheckGlobalFlag(TATEKAKE_HOUSE)) { LoadRoomEntityList(&gUnk_080EE97C); } else { LoadRoomEntityList(&gUnk_080EE9BC); } } } else { LoadRoomEntityList(&gUnk_080EE99C); } } if (CheckGlobalFlag(RENTED_HOUSE_DIN)) { LoadRoomEntityList(&gUnk_080EE9FC); } else if (CheckGlobalFlag(RENTED_HOUSE_NAYRU)) { LoadRoomEntityList(&gUnk_080EEA1C); } else if (CheckGlobalFlag(RENTED_HOUSE_FARORE)) { LoadRoomEntityList(&gUnk_080EEA3C); } else { LoadRoomEntityList(&gUnk_080EE9DC); } if ((gSave.global_progress > 4) && !CheckKinstoneFused(0xb) && (CheckGlobalFlag(RENTED_HOUSE_DIN) || CheckGlobalFlag(RENTED_HOUSE_NAYRU) || CheckGlobalFlag(RENTED_HOUSE_FARORE))) { LoadRoomEntityList(&gUnk_080EEA5C); } // rocs cape #if defined(JP) || defined(EU) || defined(DEMO_JP) if (!CheckLocalFlag(0xcd) && GetInventoryValue(ITEM_ROCS_CAPE)) { #else if (!CheckLocalFlag(0xd0) && GetInventoryValue(ITEM_ROCS_CAPE)) { #endif LoadRoomEntityList(&gUnk_080EEABC); } if ((gSave.global_progress > 3) && CheckGlobalFlag(INLOCK)) { LoadRoomEntityList(&gUnk_080EEA7C); } if ((gSave.global_progress < 6) && !CheckGlobalFlag(MIZUKAKI_START)) { LoadRoomEntityList(&gUnk_080EEA9C); } if ((gSave.windcrests & 0x8000000) == 0) { LoadRoomEntityList(&gUnk_080EEBAC); } sub_0804E150(); } } void sub_unk1_HyruleTown_8(void) { if ((gSave.windcrests & 0x8000000) == 0) { LoadRoomEntityList(&gUnk_080EEBAC); } } ASM_FUNC("asm/non_matching/sub_0804E150.inc", void sub_0804E150(void)) u32 sub_unk3_HyruleTownMinishCaves_Entrance(void) { return 1; } void sub_StateChange_HyruleTownMinishCaves_Entrance(void) { } u32 sub_unk3_HyruleTownMinishCaves_NorthRoom(void) { return 1; } void sub_StateChange_HyruleTownMinishCaves_NorthRoom(void) { } u32 sub_unk3_HyruleTownMinishCaves_PacciJump(void) { return 1; } void sub_StateChange_HyruleTownMinishCaves_PacciJump(void) { } u32 sub_unk3_HyruleTownMinishCaves_MulldozerFight(void) { return 1; } void sub_StateChange_HyruleTownMinishCaves_MulldozerFight(void) { } u32 sub_unk3_HyruleTownMinishCaves_WestChest(void) { return 1; } void sub_StateChange_HyruleTownMinishCaves_WestChest(void) { } u32 sub_unk3_HyruleTownMinishCaves_Flippers(void) { return 1; } void sub_StateChange_HyruleTownMinishCaves_Flippers(void) { } u32 sub_unk3_HyruleTownMinishCaves_Librari(void) { return 1; } void sub_StateChange_HyruleTownMinishCaves_Librari(void) { } u32 sub_unk3_HyruleTownMinishCaves_WestFrozenChest(void) { return 1; } void sub_StateChange_HyruleTownMinishCaves_WestFrozenChest(void) { } u32 sub_unk3_HyruleTownMinishCaves_CrossIntersection(void) { return 1; } void sub_StateChange_HyruleTownMinishCaves_CrossIntersection(void) { } u32 sub_unk3_HyruleTownMinishCaves_SoutheastCorner(void) { return 1; } void sub_StateChange_HyruleTownMinishCaves_SoutheastCorner(void) { } u32 sub_unk3_HyruleTownMinishCaves_Entrance2(void) { return 1; } void sub_StateChange_HyruleTownMinishCaves_Entrance2(void) { } u32 sub_unk3_HyruleTownUnderground_Main(void) { return 1; } void sub_StateChange_HyruleTownUnderground_Main(void) { } u32 sub_unk3_HyruleTownUnderground_Well(void) { return 1; } void sub_StateChange_HyruleTownUnderground_Well(void) { } extern u32 gUnk_080F09A0; u32 sub_unk3_CastleGarden_Main(void) { if (GetInventoryValue(ITEM_FOURSWORD)) { gRoomVars.field_0x6c[1] = &gUnk_080F09A0; } return 1; } extern EntityData gUnk_080F0650; extern EntityData gUnk_080F0800; extern EntityData gUnk_080F08F0; extern EntityData gUnk_080F0850; extern EntityData gUnk_080F0870; extern EntityData gUnk_080F0890; extern EntityData gUnk_080F0920; void sub_StateChange_CastleGarden_Main(void) { if (!CheckGlobalFlag(TABIDACHI)) { LoadRoomEntityList(&gUnk_080F0650); #ifdef EU gArea.queued_bgm = BGM_FESTIVAL_APPROACH; #else gArea.queued_bgm = BGM_BEANSTALK; SetGlobalFlag(CASTLE_BGM); } else { if (CheckGlobalFlag(CASTLE_BGM)) { #if defined(JP) || defined(DEMO_JP) gArea.queued_bgm = gArea.bgm; #else gArea.queued_bgm = BGM_HYRULE_CASTLE_NOINTRO; #endif } #endif } #if defined(JP) || defined(DEMO_JP) || defined(EU) if (!CheckLocalFlag(0x9b)) { #else if (!CheckLocalFlag(0x9c)) { #endif LoadRoomEntityList(&gUnk_080F0800); SetTileType(0x4072, 600, 1); SetTileType(0x4072, 0x298, 1); SetTileType(0x4072, 0x266, 1); SetTileType(0x4072, 0x2a6, 1); } else { if (!GetInventoryValue(ITEM_FOURSWORD)) { LoadRoomEntityList(&gUnk_080F08F0); SetTileType(0x4072, 0x9e, 1); SetTileType(0x4072, 0x9f, 1); SetTileType(0x4072, 0xa0, 1); } LoadRoomEntityList(&gUnk_080F0850); if (!GetInventoryValue(ITEM_WATER_ELEMENT)) { LoadRoomEntityList(&gUnk_080F0870); } else { LoadRoomEntityList(&gUnk_080F0890); } SetTileType(0x4072, 600, 1); SetTileType(0x4072, 0x298, 1); #if defined(JP) || defined(DEMO_JP) || defined(EU) if (CheckLocalFlag(0x11)) { #else if (CheckLocalFlag(0x10)) { #endif LoadRoomEntityList(&gUnk_080F0920); #if defined(JP) || defined(DEMO_JP) || defined(EU) ClearLocalFlag(0x11); #else ClearLocalFlag(0x10); #endif } } sub_080AF284(); } u32 sub_unk3_SimonsSimulation_Main(void) { ClearLocalFlag(1); return 1; } extern u8* gUnk_080F0D58[4]; extern Entity* gUnk_080F0CB8[15]; extern u8* gUnk_080F0E08[]; extern struct { u32 unk_00; u32 unk_04; } gUnk_080F0E1C[]; void sub_StateChange_SimonsSimulation_Main(void) { u32 r; u32 index; u32 tmp; tmp = CheckGlobalFlag(LV4_CLEAR); index = BOOLCAST(tmp); if (CheckGlobalFlag(LV5_CLEAR)) { index = 2; } if (CheckGlobalFlag(GAMECLEAR)) { index = 3; } r = Random(); index = gUnk_080F0D58[index][r & 0x1f]; LoadRoomEntityList((EntityData*)gUnk_080F0CB8[index & 0xF]); index >>= 4; r >>= 8; index = gUnk_080F0E08[index][r & 0x1F]; if (!CheckLocalFlag(0xC6)) { SetLocalFlag(0xC6); index = 0xE; } sub_0804B3C4(&gUnk_080F0E1C[index]); SoundReq(SONG_STOP_BGM); } u32 sub_unk3_HouseInteriors2_Stranger(void) { return 1; } extern EntityData gUnk_080F1C68; extern EntityData gUnk_080F1C88; void sub_StateChange_HouseInteriors2_Stranger(void) { if (!CheckGlobalFlag(POWERGLOVE_HINT)) { LoadRoomEntityList(&gUnk_080F1C68); } else { LoadRoomEntityList(&gUnk_080F1C88); } } u32 sub_unk3_HouseInteriors2_WestOracle(void) { return 1; } extern EntityData gUnk_080F1D90; extern EntityData gUnk_080F1DB0; extern EntityData gUnk_080F1DD0; void sub_StateChange_HouseInteriors2_WestOracle(void) { if (CheckGlobalFlag(NEW_HOUSE_DIN)) { LoadRoomEntityList(&gUnk_080F1D90); } else if (CheckGlobalFlag(NEW_HOUSE_NAYRU)) { LoadRoomEntityList(&gUnk_080F1DB0); } else if (CheckGlobalFlag(NEW_HOUSE_FARORE)) { LoadRoomEntityList(&gUnk_080F1DD0); } } u32 sub_unk3_HouseInteriors2_2(void) { return 1; } void sub_StateChange_Ruins_Beanstalk5(void) { } u32 sub_unk3_HouseInteriors2_3(void) { return 1; } void sub_StateChange_Ruins_Beanstalk6(void) { } u32 sub_unk3_HouseInteriors2_DrLeft(void) { return 1; } extern EntityData gUnk_080F2174; extern EntityData gUnk_080F2194; extern EntityData gUnk_080F21B4; void sub_StateChange_HouseInteriors2_DrLeft(void) { LoadRoomEntityList(&gUnk_080F2174); if (!GetInventoryValue(ITEM_QST_BOOK2) && CheckGlobalFlag(MIZUKAKI_HARIFALL)) { LoadRoomEntityList(&gUnk_080F2194); } if (gRoomTransition.player_status.spawn_type == PL_SPAWN_MINISH) { LoadRoomEntityList(&gUnk_080F21B4); } } u32 sub_unk3_HouseInteriors2_Romio(void) { return 1; } extern EntityData gUnk_080F23BC; extern EntityData gUnk_080F238C; extern EntityData gUnk_additional_c_HouseInteriors2_Romio; void sub_StateChange_HouseInteriors2_Romio(void) { if (gSave.global_progress > 7) { LoadRoomEntityList(&gUnk_080F23BC); } if (!GetInventoryValue(ITEM_FLIPPERS) && CheckGlobalFlag(MIZUKAKI_START)) { LoadRoomEntityList(&gUnk_080F238C); } else { LoadRoomEntityList(&gUnk_additional_c_HouseInteriors2_Romio); } } u32 sub_unk3_HouseInteriors2_Julietta(void) { return 1; } extern EntityData gUnk_080F2570; extern EntityData gUnk_080F2590; extern EntityData gUnk_080F25C0; extern EntityData gUnk_080F2600; void sub_StateChange_HouseInteriors2_Julietta(void) { switch (gSave.global_progress) { case 0: case 2: case 4: LoadRoomEntityList(&gUnk_080F2570); break; case 1: case 3: break; case 5: if (!GetInventoryValue(ITEM_FLIPPERS)) { if (!CheckGlobalFlag(MIZUKAKI_START)) { LoadRoomEntityList(&gUnk_080F2570); break; } if (!GetInventoryValue(0x39)) { LoadRoomEntityList(&gUnk_080F25C0); } } else { LoadRoomEntityList(&gUnk_080F2590); } break; case 8: case 9: LoadRoomEntityList(&gUnk_080F2600); case 6: case 7: LoadRoomEntityList(&gUnk_080F2590); } } u32 sub_unk3_HouseInteriors2_Percy(void) { return 1; } extern EntityData gUnk_additional_9_HouseInteriors2_Percy; extern EntityData gUnk_080F2860; extern EntityData gUnk_additional_a_HouseInteriors2_Percy; extern EntityData gUnk_080F27D8; extern EntityData gUnk_080F2798; void sub_StateChange_HouseInteriors2_Percy(void) { if (CheckKinstoneFused(0x21)) { if (!CheckLocalFlag(0x42)) { if (!CheckLocalFlag(0x43)) { LoadRoomEntityList(&gUnk_additional_9_HouseInteriors2_Percy); LoadRoomTileEntities(&gUnk_080F2860); } else { LoadRoomEntityList(&gUnk_additional_a_HouseInteriors2_Percy); } } else if (!CheckLocalFlag(0x3f)) { LoadRoomEntityList(&gUnk_080F27D8); } else { LoadRoomEntityList(&gUnk_080F2798); } } } u32 sub_unk3_HouseInteriors2_EastOracle(void) { return 1; } extern EntityData gUnk_080F28D4; extern EntityData gUnk_080F28F4; extern EntityData gUnk_080F2914; void sub_StateChange_HouseInteriors2_EastOracle(void) { if (CheckGlobalFlag(RENTED_HOUSE_DIN)) { LoadRoomEntityList(&gUnk_080F28D4); } else if (CheckGlobalFlag(RENTED_HOUSE_NAYRU)) { LoadRoomEntityList(&gUnk_080F28F4); } else if (CheckGlobalFlag(RENTED_HOUSE_FARORE)) { LoadRoomEntityList(&gUnk_080F2914); } } u32 sub_unk3_HouseInteriors2_A(void) { return 1; } void sub_StateChange_Ruins_Beanstalk7(void) { } u32 sub_unk3_HouseInteriors2_B(void) { return 1; } void sub_StateChange_Ruins_Beanstalk8(void) { } u32 sub_unk3_HouseInteriors2_Cucco(void) { return 1; } void sub_StateChange_Ruins_Beanstalk9(void) { } u32 sub_unk3_HouseInteriors2_LinksHouseEntrance(void) { return 1; } extern EntityData gUnk_080F2E2C; void sub_StateChange_HouseInteriors2_LinksHouseEntrance(void) { if (!CheckGlobalFlag(OUTDOOR)) { gArea.bgm = gArea.queued_bgm; SoundReq(SONG_PLAY_VOL_RESET | BGM_MINISH_CAP); } if (!CheckGlobalFlag(START)) { LoadRoomEntityList(&gUnk_080F2E2C); } } u32 sub_unk3_HouseInteriors2_LinksHouseSmith(void) { return 1; } extern EntityData gUnk_080F2E94; extern EntityData gUnk_080F2EC4; void sub_StateChange_HouseInteriors2_LinksHouseSmith(void) { if (!CheckGlobalFlag(OUTDOOR)) { gArea.bgm = gArea.queued_bgm; SoundReq(SONG_PLAY_VOL_RESET | BGM_MINISH_CAP); } if (!CheckGlobalFlag(START)) { LoadRoomEntityList(&gUnk_080F2E94); } else { LoadRoomEntityList(&gUnk_080F2EC4); } } u32 sub_unk3_HouseInteriors2_Dampe(void) { return 1; } extern EntityData gUnk_080F2FD4; void sub_StateChange_HouseInteriors2_Dampe(void) { if (!CheckLocalFlag(0x69) || GetInventoryValue(ITEM_QST_GRAVEYARD_KEY) > 1) { LoadRoomEntityList(&gUnk_080F2FD4); } } u32 sub_unk3_HouseInteriors2_Stockwell(void) { return 1; } extern EntityData gUnk_080F30CC; void sub_StateChange_HouseInteriors2_Stockwell(void) { if ((GetInventoryValue(ITEM_QST_DOGFOOD) == 1) && !CheckGlobalFlag(BIN_DOGFOOD) && (gPlayerState.flags & PL_MINISH) == 0) { LoadRoomEntityList(&gUnk_080F30CC); } } u32 sub_unk3_HouseInteriors2_LinksHouseBedroom(void) { return 1; } extern EntityData gUnk_080F31D8; extern u32 script_PlayerIntro; void sub_StateChange_HouseInteriors2_LinksHouseBedroom(void) { if (!CheckGlobalFlag(START) && !CheckLocalFlag(0x46)) { sub_080A71C4(5, 1, 4, 4); gUpdateVisibleTiles = 0; SetFade(5, 256); sub_080751E8(0, 6, &script_PlayerIntro); } if (!CheckGlobalFlag(OUTDOOR)) { gArea.bgm = gArea.queued_bgm; SoundReq(SONG_PLAY_VOL_RESET | BGM_MINISH_CAP); } if ((gPlayerState.flags & PL_NO_CAP) == 0) { LoadRoomEntityList(&gUnk_080F31D8); } } extern u32 script_PlayerWakeAfterRest; void sub_0804E864(void) { gPlayerEntity.x.HALF.HI = gRoomControls.origin_x + 0x90; gPlayerEntity.y.HALF.HI = gRoomControls.origin_y + 0x38; sub_080751E8(1, 6, &script_PlayerWakeAfterRest); ModHealth(0xa0); } u32 sub_unk3_HouseInteriors4_Carpenter(void) { return 1; } extern EntityData gUnk_080F3260; void sub_StateChange_HouseInteriors4_Carpenter(void) { if (GetInventoryValue(ITEM_PACCI_CANE)) { LoadRoomEntityList(&gUnk_080F3260); SetTileType(0x4072, 0x202, 1); SetTileType(0x4072, 0x242, 1); SetTileType(0x4072, 0x204, 1); SetTileType(0x4072, 0x244, 1); } } u32 sub_unk3_HouseInteriors4_Swiftblade(void) { return 1; } void sub_StateChange_HouseInteriors4_Swiftblade(void) { sub_08054564(); } u32 sub_unk3_HouseInteriors4_RanchHouseWest(void) { return 1; } extern EntityData gUnk_080F36FC; extern EntityData gUnk_080F3604; void sub_StateChange_HouseInteriors4_RanchHouseWest(void) { if (!CheckGlobalFlag(INLOCK)) { LoadRoomEntityList(&gUnk_080F36FC); } else if (gSave.global_progress < 4) { LoadRoomEntityList(&gUnk_080F3604); } } u32 sub_unk3_HouseInteriors4_RanchHouseEast(void) { return 1; } extern EntityData gUnk_080F37D0; void sub_StateChange_HouseInteriors4_RanchHouseEast(void) { if (CheckGlobalFlag(INLOCK)) { LoadRoomEntityList(&gUnk_080F37D0); } } u32 sub_unk3_HouseInteriors4_FarmHouse(void) { return 1; } void sub_StateChange_Ruins_LadderToTektites0(void) { } u32 sub_unk3_HouseInteriors4_Mayor(void) { return 1; } extern EntityData gUnk_080F3A48; void sub_StateChange_HouseInteriors4_Mayor(void) { if (!GetInventoryValue(ITEM_FLIPPERS) && CheckGlobalFlag(MIZUKAKI_START) && !GetInventoryValue(ITEM_QST_BOOK3)) { LoadRoomEntityList(&gUnk_080F3A48); } gRoomTransition.player_status.overworld_map_x = 0xf28; gRoomTransition.player_status.overworld_map_y = 0x82d; } extern u32 Enemies_LakeHylia_Main; extern u32 gUnk_080F3EA4; u32 sub_unk3_LakeHylia_Main(void) { if (CheckGlobalFlag(LV4_CLEAR) && !CheckLocalFlag(4)) { gRoomVars.field_0x6c[2] = &gUnk_080F3EA4; } else { gRoomVars.field_0x6c[2] = &Enemies_LakeHylia_Main; } return 1; } extern EntityData gUnk_080F3C64; extern EntityData gUnk_080F3C94; extern EntityData gUnk_080F3C44; void sub_StateChange_LakeHylia_Main(void) { if (CheckGlobalFlag(LV4_CLEAR) && !CheckLocalFlag(4)) { LoadRoomEntityList(&gUnk_080F3C64); } if (CheckKinstoneFused(0x12)) { LoadRoomEntityList(&gUnk_080F3C94); } if ((gSave.global_progress > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { LoadRoomEntityList(&gUnk_080F3C44); } SetTile(0x4091, 0x590, 1); SetTile(0x4091, 0x591, 1); SetTile(0x4091, 0x592, 1); SetTile(0x4091, 0x593, 1); SetTile(0x4091, 0x594, 1); SetTile(0x4091, 0x5d0, 1); SetTile(0x4091, 0x610, 1); SetTile(0x4091, 0x650, 1); SetTile(0x4091, 0x5d4, 1); SetTile(0x4091, 0x614, 1); SetTile(0x4091, 0x654, 1); SetTile(0x4091, 0x690, 1); SetTile(0x4091, 0x691, 1); SetTile(0x4091, 0x692, 1); SetTile(0x4091, 0x693, 1); SetTile(0x4091, 0x694, 1); } u32 sub_unk3_LakeHylia_Beanstalk(void) { return 1; } void sub_StateChange_Ruins_LadderToTektites1(void) { } u32 sub_unk3_LakeWoodsCave_Main(void) { return 1; } void sub_StateChange_Ruins_LadderToTektites2(void) { } u32 sub_unk3_HyliaDigCaves_Middle(void) { return 1; } void sub_StateChange_Ruins_LadderToTektites3(void) { } u32 sub_unk3_HyliaDigCaves_North(void) { return 1; } void sub_StateChange_Ruins_LadderToTektites4(void) { } u32 sub_unk3_CastorWildsDigCave_Main(void) { return 1; } void sub_StateChange_Ruins_LadderToTektites5(void) { } u32 sub_unk3_HyruleDigCaves_Main(void) { return 1; } void sub_StateChange_Ruins_LadderToTektites6(void) { } u32 sub_unk3_CrenelDigCave_Main(void) { return 1; } void sub_StateChange_Ruins_LadderToTektites7(void) { } u32 sub_unk3_DigCaves1_HyruleFieldFarm(void) { return 1; } void sub_StateChange_Ruins_LadderToTektites8(void) { } u32 sub_unk3_DigCaves1_TrilbyHighlands(void) { return 1; } void sub_StateChange_Ruins_LadderToTektites9(void) { } u32 sub_unk3_VeilFallsDigCave_Main(void) { return 1; } void sub_StateChange_VeilFallsDigCave_Main(void) { } u32 sub_unk3_OuterFortressOfWinds_EntranceHall(void) { gArea.areaMetadata |= 0x48; return 1; } void sub_StateChange_OuterFortressOfWinds_EntranceHall(void) { } u32 sub_unk3_OuterFortressOfWinds_2F(void) { gArea.areaMetadata |= 0x48; return 1; } void sub_StateChange_OuterFortressOfWinds_2F(void) { } u32 sub_unk3_OuterFortressOfWinds_3F(void) { gArea.areaMetadata |= 0x48; return 1; } void sub_StateChange_OuterFortressOfWinds_3F(void) { } u32 sub_unk3_OuterFortressOfWinds_MoleMitts(void) { sub_0801DD58(0x58, 5); gArea.areaMetadata |= 0x48; return 1; } void sub_StateChange_OuterFortressOfWinds_MoleMitts(void) { } u32 sub_unk3_OuterFortressOfWinds_SmallKey(void) { sub_0801DD58(0x58, 6); gArea.areaMetadata |= 0x48; return 1; } void sub_StateChange_OuterFortressOfWinds_SmallKey(void) { } extern u32 gUnk_080F4EB0; u32 sub_unk3_MinishWoods_Main(void) { if (CheckGlobalFlag(ENDING)) { gRoomVars.field_0x6c[0] = &gUnk_080F4EB0; gRoomVars.field_0x6c[2] = NULL; } return 1; } extern EntityData gUnk_080F4D50; extern EntityData gUnk_080F4DB0; extern EntityData gUnk_080F4DD0; extern EntityData gUnk_080F4DF0; extern EntityData gUnk_080F4F10; extern EntityData gUnk_080F4E10; void sub_StateChange_MinishWoods_Main(void) { if (CheckGlobalFlag(ENDING)) { gArea.queued_bgm = gArea.bgm; } if (!CheckGlobalFlag(EZERO_1ST)) { LoadRoomEntityList(&gUnk_080F4D50); } #if defined(JP) || defined(EU) || defined(DEMO_JP) if (!CheckLocalFlag(0x3d)) { if (!CheckLocalFlag(0x3a)) { #else if (!CheckLocalFlag(0x3e)) { if (!CheckLocalFlag(0x3b)) { #endif LoadRoomEntityList(&gUnk_080F4DB0); } else { LoadRoomEntityList(&gUnk_080F4DD0); } LoadRoomEntityList(&gUnk_080F4DF0); } if (CheckKinstoneFused(0x4e)) { LoadRoomEntityList(&gUnk_080F4F10); } if ((s32)gSave.windcrests > -1) { LoadRoomEntityList(&gUnk_080F4E10); } #ifdef DEMO_USA SetTileType(0x177, 0x5b4, 1); SetTileType(0x177, 0x5f4, 1); #endif } void sub_unk1_MinishWoods_Main(void) { if ((s32)gSave.windcrests > -1) { LoadRoomEntityList(&gUnk_080F4E10); } } u32 sub_unk3_Empty_Main(void) { return 1; } void sub_StateChange_Empty_Main(void) { } extern u32 gUnk_080F5348; u32 sub_unk3_SanctuaryEntrance_Main(void) { if (CheckGlobalFlag(ENDING)) { gRoomVars.field_0x6c[0] = &gUnk_080F5348; gRoomVars.field_0x6c[7] = sub_0804ED18; gRoomVars.field_0x6c[2] = NULL; } return 1; } extern EntityData gUnk_080F5328; extern EntityData gUnk_080F5308; void sub_StateChange_SanctuaryEntrance_Main(void) { if (GetInventoryValue(ITEM_GREEN_SWORD)) { LoadRoomEntityList(&gUnk_080F5328); #if defined(JP) || defined(EU) || defined(DEMO_JP) if (!CheckLocalFlag(0x15)) { #else if (!CheckLocalFlag(0x14)) { #endif LoadRoomEntityList(&gUnk_080F5308); } } } static void sub_0804ED18(void) { gArea.queued_bgm = gArea.bgm; } u32 sub_unk3_Sanctuary_Hall(void) { return 1; } void sub_StateChange_Sanctuary_Hall(void) { sub_080AF2E4(); if (CheckGlobalFlag(SEIIKI_BGM)) { gArea.queued_bgm = BGM_CASTLE_COLLAPSE; } } u32 sub_unk3_Sanctuary_Main(void) { return 1; } extern EntityData gUnk_080F54E8; extern EntityData gUnk_080F5508; extern EntityData gUnk_080F5558; extern EntityData gUnk_080F5598; extern EntityData gUnk_080F55D8; extern EntityData gUnk_080F5528; extern EntityData gUnk_080F5578; extern EntityData gUnk_080F55B8; void sub_StateChange_Sanctuary_Main(void) { if (!CheckLocalFlag(0x79)) { LoadRoomEntityList(&gUnk_080F54E8); } if (!CheckLocalFlag(0x7a)) { if (GetInventoryValue(ITEM_GREEN_SWORD) && !GetInventoryValue(ITEM_RED_SWORD) && GetInventoryValue(ITEM_EARTH_ELEMENT) && GetInventoryValue(ITEM_FIRE_ELEMENT)) { LoadRoomEntityList(&gUnk_080F5508); } } else { if (!CheckLocalFlag(0x7b)) { if (GetInventoryValue(ITEM_RED_SWORD) && !GetInventoryValue(ITEM_BLUE_SWORD) && GetInventoryValue(ITEM_WATER_ELEMENT)) { LoadRoomEntityList(&gUnk_080F5558); } } else { if (!CheckLocalFlag(0x7c)) { if (!GetInventoryValue(ITEM_FOURSWORD) && GetInventoryValue(ITEM_WIND_ELEMENT)) { LoadRoomEntityList(&gUnk_080F5598); } } else { LoadRoomEntityList(&gUnk_080F55D8); } } } if (CheckLocalFlag(0x7a)) { LoadRoomEntityList(&gUnk_080F5528); } if (CheckLocalFlag(0x7b)) { LoadRoomEntityList(&gUnk_080F5578); } if (CheckLocalFlag(0x7c)) { LoadRoomEntityList(&gUnk_080F55B8); } if (CheckGlobalFlag(SEIIKI_BGM)) { gArea.queued_bgm = BGM_CASTLE_COLLAPSE; } } u32 sub_unk3_Sanctuary_StainedGlass(void) { return 1; } extern EntityData gUnk_080F5660; void sub_StateChange_Sanctuary_StainedGlass(void) { if (!CheckLocalFlag(0x78) && CheckLocalFlag(0x7c)) { LoadRoomEntityList(&gUnk_080F5660); } if (CheckGlobalFlag(SEIIKI_BGM)) { gArea.queued_bgm = BGM_CASTLE_COLLAPSE; } } u32 sub_unk3_HouseInteriors3_StockwellShop(void) { return 1; } extern EntityData gUnk_080F5758; extern EntityData gUnk_080F57E8; extern EntityData gUnk_080F57A8; extern EntityData gUnk_080F57C8; extern EntityData gUnk_080F5888; extern EntityData gUnk_080F58A8; extern EntityData gUnk_080F5868; extern EntityData gUnk_080F5828; extern EntityData gUnk_080F5848; extern EntityData gUnk_080F5788; void sub_StateChange_HouseInteriors3_StockwellShop(void) { LoadRoomEntityList(&gUnk_080F5758); if (!GetInventoryValue(0x36) && CheckLocalFlagByBank(0x200, 0x8f)) { LoadRoomEntityList(&gUnk_080F57E8); } if (!CheckLocalFlag(0x55)) { LoadRoomEntityList(&gUnk_080F57A8); } else { if (gBombBagSizes[gSave.stats.bombBagType] >= 30) { LoadRoomEntityList(&gUnk_080F57C8); } if (!GetInventoryValue(ITEM_BOOMERANG) && !GetInventoryValue(ITEM_MAGIC_BOOMERANG)) { LoadRoomEntityList(&gUnk_080F5888); #ifndef EU } else { if (!CheckLocalFlag(0xcd)) { LoadRoomEntityList(&gUnk_080F58A8); } #endif } } if (GetInventoryValue(ITEM_BOW) || CheckGlobalFlag(LV3_CLEAR)) { LoadRoomEntityList(&gUnk_080F5868); if (!CheckLocalFlag(0x56)) { LoadRoomEntityList(&gUnk_080F5828); } else { LoadRoomEntityList(&gUnk_080F5848); } } if (gSave.stats.hasAllFigurines == 0) { LoadRoomEntityList(&gUnk_080F5788); } } u32 sub_unk3_HouseInteriors3_Cafe(void) { return 1; } void sub_StateChange_HouseInteriors3_Cafe(void) { } u32 sub_unk3_HouseInteriors3_RemShoeShop(void) { return 1; } extern EntityData gUnk_080F5B3C; void sub_StateChange_HouseInteriors3_RemShoeShop(void) { #ifndef EU if (GetInventoryValue(0x38) == 1) { LoadRoomEntityList(&gUnk_080F5B3C); } #endif } u32 sub_unk3_HouseInteriors3_Bakery(void) { return 1; } void sub_StateChange_HouseInteriors3_Bakery(void) { } u32 sub_unk3_HouseInteriors3_Simon(void) { if (CheckGlobalFlag(MAROYA_WAKEUP)) { gRoomTransition.player_status.spawn_type = PL_SPAWN_SPECIAL; } return 1; } extern EntityData gUnk_080F5DD0; extern u32 script_PlayerWakingUpAtSimons; void sub_StateChange_HouseInteriors3_Simon(void) { if (gSave.global_progress > 7) { LoadRoomEntityList(&gUnk_080F5DD0); } if (CheckGlobalFlag(MAROYA_WAKEUP)) { sub_080751E8(1, 2, &script_PlayerWakingUpAtSimons); } } u32 sub_unk3_HouseInteriors3_FigurineHouse(void) { return 1; } extern EntityData gUnk_080F5E68; void sub_StateChange_HouseInteriors3_FigurineHouse(void) { #if defined(JP) || defined(EU) || defined(DEMO_JP) if (!CheckLocalFlagByBank(0x100, 0xce)) { #else if (!CheckLocalFlagByBank(0x100, 0xd1)) { #endif LoadRoomEntityList(&gUnk_080F5E68); } } u32 sub_unk3_HouseInteriors3_BorlovEntrance(void) { return 1; } extern EntityData gUnk_additional_8_HouseInteriors3_BorlovEntrance; extern EntityData gUnk_additional_9_HouseInteriors3_BorlovEntrance; extern EntityData gUnk_additional_a_HouseInteriors3_BorlovEntrance; void sub_StateChange_HouseInteriors3_BorlovEntrance(void) { if (gSave.global_progress > 4) { LoadRoomEntityList(&gUnk_additional_8_HouseInteriors3_BorlovEntrance); } if (!CheckLocalFlag(0x92)) { LoadRoomEntityList(&gUnk_additional_9_HouseInteriors3_BorlovEntrance); } else { LoadRoomEntityList(&gUnk_additional_a_HouseInteriors3_BorlovEntrance); } } u32 sub_unk3_HouseInteriors3_Carlov(void) { return 1; } void sub_StateChange_HouseInteriors3_Carlov(void) { } u32 sub_unk3_HouseInteriors3_Borlov(void) { return 1; } void sub_StateChange_HouseInteriors3_Borlov(void) { } u32 sub_unk3_WindTribeTower_Entrance(void) { #if defined(JP) || defined(EU) || defined(DEMO_JP) if (CheckGlobalFlag(KUMOTATSUMAKI) && CheckLocalFlagByBank(0x100, 0xd9)) { #else if (CheckGlobalFlag(KUMOTATSUMAKI) && CheckLocalFlagByBank(0x100, 0xdc)) { #endif SetGlobalFlag(WARP_EVENT_END); } return 1; } extern EntityData gUnk_080F61BC; void sub_StateChange_WindTribeTower_Entrance(void) { #if defined(JP) || defined(EU) || defined(DEMO_JP) if (CheckLocalFlagByBank(0x100, 0xd9)) { #else if (CheckLocalFlagByBank(0x100, 0xdc)) { #endif SetLocalFlag(0x90); } if (CheckKinstoneFused(0xf)) { LoadRoomEntityList(&gUnk_080F61BC); } if (!CheckGlobalFlag(WARP_EVENT_END)) { SetTileType(0x4072, 0x4c7, 1); SetTileType(0x4072, 0x507, 1); } SetWorldMapPos(8, 0, 0x1e8, 0x158); } u32 sub_unk3_WindTribeTower_Floor2(void) { return 1; } extern EntityData gUnk_080F62E4; extern EntityData gUnk_080F6324; void sub_StateChange_WindTribeTower_Floor2(void) { if (!CheckGlobalFlag(WARP_EVENT_END)) { LoadRoomEntityList(&gUnk_080F62E4); } else { if (CheckLocalFlag(99)) { LoadRoomEntityList(&gUnk_080F6324); } } } u32 sub_unk3_WindTribeTower_Floor3(void) { return 1; } void sub_StateChange_WindTribeTower_Floor3(void) { } u32 sub_unk3_WindTribeTower_Floor4(void) { return 1; } extern EntityData gUnk_080F6564; extern EntityData gUnk_080F6584; void sub_StateChange_WindTribeTower_Floor4(void) { if (!CheckLocalFlag(0xb1)) { LoadRoomEntityList(&gUnk_080F6564); } else { LoadRoomEntityList(&gUnk_080F6584); } } u32 sub_unk3_WindTribeTowerRoof_Main(void) { return 1; } extern EntityData gUnk_080F66AC; void sub_StateChange_WindTribeTowerRoof_Main(void) { sub_0805B4D0(5); if (CheckGlobalFlag(LV5_CLEAR) && !CheckLocalFlagByBank(0x100, 5)) { LoadRoomEntityList(&gUnk_080F66AC); } SetWorldMapPos(8, 0, 0x1e8, 0x158); #ifndef EU gArea.areaMetadata |= 0x80; #endif } u32 sub_unk3_Beanstalks_MountCrenel(void) { return 1; } void sub_StateChange_Beanstalks_MountCrenel(void) { } u32 sub_unk3_Beanstalks_LakeHylia(void) { return 1; } void sub_StateChange_Beanstalks_LakeHylia(void) { } u32 sub_unk3_Beanstalks_Ruins(void) { return 1; } void sub_StateChange_Beanstalks_Ruins(void) { } u32 sub_unk3_Beanstalks_EasternHills(void) { return 1; } void sub_StateChange_Beanstalks_EasternHills(void) { } u32 sub_unk3_Beanstalks_WesternWoods(void) { return 1; } void sub_StateChange_Beanstalks_WesternWoods(void) { } u32 sub_unk3_Beanstalks_MountCrenelClimb(void) { return 1; } void sub_StateChange_Beanstalks_MountCrenelClimb(void) { } u32 sub_unk3_Beanstalks_LakeHyliaClimb(void) { return 1; } void sub_StateChange_Beanstalks_LakeHyliaClimb(void) { } u32 sub_unk3_Beanstalks_RuinsClimb(void) { return 1; } void sub_StateChange_Beanstalks_RuinsClimb(void) { } u32 sub_unk3_Beanstalks_EasternHillsClimb(void) { return 1; } void sub_StateChange_Beanstalks_EasternHillsClimb(void) { } u32 sub_unk3_Beanstalks_WesternWoodsClimb(void) { return 1; } void sub_StateChange_Beanstalks_WesternWoodsClimb(void) { } u32 sub_unk3_HyruleField_WesternWoodSouth(void) { return 1; } void sub_StateChange_HyruleField_WesternWoodSouth(void) { Manager18_Main(0); } u32 sub_unk3_HyruleField_LinksHouseExterior(void) { #if defined(JP) || defined(EU) || defined(DEMO_JP) if (!CheckLocalFlag(0x6b)) { #else if (!CheckLocalFlag(0x6d)) { #endif SetFade(7, 256); } SetGlobalFlag(OUTDOOR); return 1; } extern EntityData gUnk_080F70A8; extern EntityData gUnk_080F70D8; extern EntityData gUnk_080F7088; void sub_StateChange_HyruleField_LinksHouseExterior(void) { Manager18_Main(NULL); #if defined(JP) || defined(EU) || defined(DEMO_JP) if (!CheckLocalFlag(0x6b)) { #else if (!CheckLocalFlag(0x6d)) { #endif LoadRoomEntityList(&gUnk_080F70A8); ClearGlobalFlag(ZELDA_CHASE); } if (!CheckGlobalFlag(TABIDACHI)) { gArea.queued_bgm = BGM_FESTIVAL_APPROACH; } if ((gSave.windcrests & 0x40000000) == 0) { LoadRoomEntityList(&gUnk_080F70D8); } if (gSave.global_progress > 3) { LoadRoomEntityList(&gUnk_080F7088); } } void sub_unk1_HyruleField_LinksHouseExterior(void) { if ((gSave.windcrests & 0x40000000) == 0) { LoadRoomEntityList(&gUnk_080F70D8); } } u32 sub_unk3_HyruleField_FromMinishWoods(void) { return 1; } void sub_StateChange_HyruleField_FromMinishWoods(void) { Manager18_Main(NULL); } u32 sub_unk3_HyruleField_FromMinishWoodsNorth(void) { return 1; } void sub_StateChange_HyruleField_FromMinishWoodsNorth(void) { Manager18_Main(NULL); } extern u32 gUnk_080F7680; u32 sub_unk3_HyruleField_Farmers(void) { if (GetInventoryValue(ITEM_GUST_JAR) && !GetInventoryValue(ITEM_PACCI_CANE)) { gRoomVars.field_0x6c[2] = &gUnk_080F7680; } return 1; } extern EntityData gUnk_080F7500; extern EntityData gUnk_080F7550; void sub_StateChange_HyruleField_Farmers(void) { Manager18_Main(NULL); if (gSave.global_progress > 3) { LoadRoomEntityList(&gUnk_080F7500); } if (GetInventoryValue(ITEM_GUST_JAR) && !GetInventoryValue(ITEM_PACCI_CANE)) { LoadRoomEntityList(&gUnk_080F7550); SetTileType(0x4072, 0x311, 1); SetTileType(0x4072, 0x351, 1); SetTileType(0x4072, 0x3d9, 1); SetTileType(0x4072, 0x419, 1); } } u32 sub_unk3_HyruleField_LonLonRanch(void) { return 1; } extern EntityData gUnk_080F77F0; extern EntityData gUnk_080F77C0; extern EntityData gUnk_080F7810; extern EntityData gUnk_080F7860; extern EntityData gUnk_080F78A0; void sub_StateChange_HyruleField_LonLonRanch(void) { Manager18_Main(0); if (CheckLocalFlagByBank(0x200, 0x8f)) { if (!CheckGlobalFlag(INLOCK)) { LoadRoomEntityList(&gUnk_080F77C0); } } else if (GetInventoryValue(ITEM_EARTH_ELEMENT)) { LoadRoomEntityList(&gUnk_080F77F0); } if (CheckGlobalFlag(TABIDACHI) && !GetInventoryValue(ITEM_EARTH_ELEMENT)) { LoadRoomEntityList(&gUnk_080F7810); } if (!CheckKinstoneFused(0x29)) { LoadRoomEntityList(&gUnk_080F7860); SetTile(0x4072, 0xd88, 1); SetTile(0x4096, 0xdc8, 1); } if ((gSave.global_progress > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { LoadRoomEntityList(&gUnk_080F78A0); } } extern u32 gUnk_080F7CD0; extern void sub_0804F5E8(void); extern u32 gUnk_080F7C80; extern void sub_0804F4E4(void); u32 sub_unk3_HyruleField_OutsideCastle(void) { if (CheckGlobalFlag(TABIDACHI) && !GetInventoryValue(0x11)) { gRoomVars.field_0x6c[0] = &gUnk_080F7CD0; gRoomVars.field_0x6c[7] = sub_0804F5E8; } #if defined(JP) || defined(EU) || defined(DEMO_JP) if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(0x3) && !CheckLocalFlag(0x8a)) { #else if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(0x3) && !CheckLocalFlag(0x8c)) { #endif gRoomVars.field_0x6c[0] = &gUnk_080F7C80; gRoomVars.field_0x6c[7] = sub_0804F4E4; gRoomVars.field_0x6c[2] = NULL; } #ifndef EU if (CheckGlobalFlag(TABIDACHI)) { ClearGlobalFlag(CASTLE_BGM); } #endif return 1; } void sub_0804F4E4(void) { Manager18_Main(NULL); sub_0804F578(); } extern EntityData gUnk_080F7D70; void sub_StateChange_HyruleField_OutsideCastle(void) { sub_0804F4E4(); #if defined(JP) || defined(EU) || defined(DEMO_JP) if (!CheckLocalFlag(0x89)) { #else if (!CheckLocalFlag(0x8b)) { #endif LoadRoomEntityList(&gUnk_080F7D70); SetTileType(0x174, 0x7a2, 1); SetTileType(0x174, 0x7a3, 1); SetTileType(0x174, 0x7a5, 1); SetTileType(0x174, 0x7a6, 1); SetTileType(0x174, 0x7a7, 1); } if (!CheckGlobalFlag(TABIDACHI)) { #ifdef EU gArea.queued_bgm = 0x10; #else gArea.queued_bgm = 0x13; #endif } } extern EntityData gUnk_080F7DC0; static void sub_0804F578(void) { #if defined(JP) || defined(EU) || defined(DEMO_JP) if (!CheckLocalFlag(0x8c)) { #else if (!CheckLocalFlag(0x8e)) { #endif LoadRoomEntityList(&gUnk_080F7DC0); } else { SetTileType(0x37, 0x94a, 1); SetTileType(0x37, 0x94b, 1); SetTileType(0x37, 0x94c, 1); SetTileType(0x37, 0x98a, 1); SetTileType(0x37, 0x98b, 1); SetTileType(0x37, 0x98c, 1); } } void sub_0804F5E8(void) { sub_0804F4E4(); SetTileType(0x1d3, 0xbde, 1); SetTileType(0x1d6, 0xbe2, 1); SetTileType(0x1d4, 0xc1f, 1); SetTileType(0x1d5, 0xc20, 1); SetTileType(0x1d6, 0xc5e, 1); SetTileType(0x4072, 0xb9b, 1); SetTileType(0x4072, 0xbdb, 1); SetTileType(0x4072, 0xaa4, 1); SetTileType(0x4072, 0xae4, 1); } void sub_0804F680(Entity* parent, s32 x, s32 y) { Entity* fx; fx = CreateFx(parent, FX_DEATH, 0); if (fx != NULL) { fx->x.HALF.HI = gRoomControls.origin_x + x; fx->y.HALF.HI = gRoomControls.origin_y + y; } } void sub_0804F6A8(Entity* this) { sub_0804F680(this, 0x1d8, 0x108); sub_0804F680(this, 0x218, 0x188); } void sub_0804F6C8(Entity* this) { sub_0804F680(this, 0x1e8, 0x108); sub_0804F680(this, 0x208, 0x188); } void sub_0804F6E8(Entity* this) { sub_0804F680(this, 0x1f8, 0x108); sub_0804F680(this, 0x258, 0x138); sub_0804F680(this, 0x1f8, 0x188); sub_0804F680(this, 0x198, 0x158); } void sub_0804F724(Entity* this) { sub_0804F680(this, 0x208, 0x108); sub_0804F680(this, 0x258, 0x148); sub_0804F680(this, 0x1e8, 0x188); sub_0804F680(this, 0x198, 0x148); } void sub_0804F760(Entity* this) { sub_0804F680(this, 0x218, 0x108); sub_0804F680(this, 0x258, 0x158); sub_0804F680(this, 0x1d8, 0x188); sub_0804F680(this, 0x198, 0x138); } void sub_0804F79C(Entity* parent) { Entity* fx; fx = CreateFx(parent, FX_BIG_EXPLOSION, 0); if (fx != NULL) { fx->spriteRendering.b3 = 0; fx->x.HALF.HI = gRoomControls.origin_x + Q_8_8(1.72); fx->y.HALF.HI = gRoomControls.origin_y + Q_8_8(1.285); } fx = CreateFx(parent, FX_BIG_EXPLOSION, 0); if (fx != NULL) { fx->spriteRendering.b3 = 0; fx->x.HALF.HI = gRoomControls.origin_x + Q_8_8(2.22); fx->y.HALF.HI = gRoomControls.origin_y + Q_8_8(1.285); } } void sub_0804F808(void) { SetTileType(0x1d3, 0x41d, 1); SetTileType(0x1d3, 0x621, 1); } void sub_0804F830(void) { SetTileType(0x1d4, 0x41e, 1); SetTileType(0x1d4, 0x620, 1); } void sub_0804F854(void) { SetTileType(0x1d5, 0x41f, 1); SetTileType(0x1d4, 0x4e5, 1); SetTileType(0x1d5, 0x61f, 1); SetTileType(0x1d4, 0x559, 1); } void sub_0804F89C(void) { SetTileType(0x1d6, 0x420, 1); SetTileType(0x1d5, 0x525, 1); SetTileType(0x1d6, 0x61e, 1); SetTileType(0x1d5, 0x519, 1); } void sub_0804F8E0(void) { SetTileType(0x1d3, 0x421, 1); SetTileType(0x1d6, 0x565, 1); SetTileType(0x1d3, 0x61d, 1); SetTileType(0x1d6, 0x4d9, 1); } void sub_0804F928(void) { sub_0807BA8C(0x41d, 1); sub_0807BA8C(0x621, 1); } void sub_0804F944(void) { sub_0807BA8C(0x41e, 1); sub_0807BA8C(0x620, 1); } void sub_0804F960(void) { sub_0807BA8C(0x41f, 1); sub_0807BA8C(0x4e5, 1); sub_0807BA8C(0x61f, 1); sub_0807BA8C(0x559, 1); } void sub_0804F994(void) { sub_0807BA8C(0x420, 1); sub_0807BA8C(0x525, 1); sub_0807BA8C(0x61e, 1); sub_0807BA8C(0x519, 1); } void sub_0804F9C8(void) { sub_0807BA8C(0x421, 1); sub_0807BA8C(0x565, 1); sub_0807BA8C(0x61d, 1); sub_0807BA8C(0x4d9, 1); } u32 sub_unk3_HyruleField_OutsideCastleWest(void) { return 1; } extern EntityData gUnk_080F806C; void sub_StateChange_HyruleField_OutsideCastleWest(void) { Manager18_Main(NULL); if ((gSave.global_progress > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { LoadRoomEntityList(&gUnk_080F806C); } } u32 sub_unk3_HyruleField_TrilbyHighlands(void) { return 1; } extern EntityData gUnk_080F82E0; void sub_StateChange_HyruleField_TrilbyHighlands(void) { Manager18_Main(NULL); #if defined(JP) || defined(EU) || defined(DEMO_JP) if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(ITEM_RED_SWORD) && !CheckLocalFlag(0x9b)) { #else if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(ITEM_RED_SWORD) && !CheckLocalFlag(0x9c)) { #endif LoadRoomEntityList(&gUnk_080F82E0); } } u32 sub_unk3_HyruleField_PercysHouse(void) { return 1; } extern EntityData gUnk_080F8430; void sub_StateChange_HyruleField_PercysHouse(void) { Manager18_Main(NULL); if (CheckKinstoneFused(0x21) && !CheckLocalFlagByBank(0x200, 0x42)) { LoadRoomEntityList(&gUnk_080F8430); } } u32 sub_unk3_Caves_Boomerang(void) { return 1; } extern EntityData gUnk_080F85F8; extern EntityData gUnk_080F85D8; void sub_StateChange_Caves_Boomerang(void) { if (CheckGlobalFlag(SOUGEN_06_HASHIGO)) { LoadRoomEntityList(&gUnk_080F85D8); } else { LoadRoomEntityList(&gUnk_080F85F8); } if (!GetInventoryValue(0xc)) { ClearLocalFlag(8); } } u32 sub_unk3_Caves_ToGraveyard(void) { return 1; } void sub_StateChange_Caves_ToGraveyard(void) { } u32 sub_unk3_Caves_2(void) { return 1; } void sub_StateChange_Caves_2(void) { } u32 sub_unk3_Caves_3(void) { return 1; } void sub_StateChange_Caves_3(void) { } u32 sub_unk3_Caves_4(void) { return 1; } void sub_StateChange_Caves_4(void) { } u32 sub_unk3_Caves_5(void) { return 1; } void sub_StateChange_Caves_5(void) { } u32 sub_unk3_Caves_6(void) { return 1; } void sub_StateChange_Caves_6(void) { } u32 sub_unk3_Caves_KeeseChest(void) { return 1; } void sub_StateChange_Caves_KeeseChest(void) { } u32 sub_unk3_Caves_FairyFountainTrilbyHighlands(void) { return 1; } void sub_StateChange_Caves_FairyFountainTrilbyHighlands(void) { } u32 sub_unk3_Caves_FairyFountainLinksHouse(void) { return 1; } void sub_StateChange_Caves_FairyFountainLinksHouse(void) { } u32 sub_unk3_Caves_A(void) { return 1; } void sub_StateChange_Caves_A(void) { } u32 sub_unk3_Caves_HyruleTownWaterfall(void) { return 1; } void sub_StateChange_Caves_HyruleTownWaterfall(void) { } u32 sub_unk3_Caves_LonLonRanch(void) { return 1; } void sub_StateChange_Caves_LonLonRanch(void) { } u32 sub_unk3_Caves_LonLonRanchSecret(void) { return 1; } void sub_StateChange_Caves_LonLonRanchSecret(void) { if (CheckLocalFlag(0x11)) { SetRoomFlag(0); SetRoomFlag(1); ChangeLightLevel(0x100); if (!CheckLocalFlag(0x12)) { SetTileType(0x73, 0xcb, 1); } } } u32 sub_unk3_Caves_TrilbyHighlands(void) { return 1; } void sub_StateChange_Caves_TrilbyHighlands(void) { } u32 sub_unk3_Caves_LonLonRanchWallet(void) { return 1; } void sub_StateChange_Caves_LonLonRanchWallet(void) { } u32 sub_unk3_Caves_RupeeLinksHouse(void) { return 1; } void sub_StateChange_Caves_RupeeLinksHouse(void) { } u32 sub_unk3_Caves_RupeeTrilbyHighlands(void) { return 1; } void sub_StateChange_Caves_RupeeTrilbyHighlands(void) { } u32 sub_unk3_Caves_FairyFountainMoleMitts(void) { return 1; } void sub_StateChange_Caves_FairyFountainMoleMitts(void) { } u32 sub_unk3_Caves_KeeseChestSoutheastHyrule(void) { return 1; } void sub_StateChange_Caves_KeeseChestSoutheastHyrule(void) { } u32 sub_unk3_Caves_BottleBusinessScrub(void) { return 1; } void sub_StateChange_Caves_BottleBusinessScrub(void) { } u32 sub_unk3_Caves_HeartPieceHallway(void) { return 1; } void sub_StateChange_Caves_HeartPieceHallway(void) { } u32 sub_unk3_Caves_FairyFountainBoomerang(void) { return 1; } void sub_StateChange_Caves_FairyFountainBoomerang(void) { } u32 sub_unk3_Caves_KinstoneBusinessScrub(void) { return 1; } void sub_StateChange_Caves_KinstoneBusinessScrub(void) { } u32 sub_unk3_VeilFalls_Main(void) { return 1; } extern EntityData gUnk_080F9304; void sub_StateChange_VeilFalls_Main(void) { if ((gSave.windcrests & 0x2000000) == 0) { LoadRoomEntityList(&gUnk_080F9304); } } void sub_unk1_VeilFalls_Main(void) { if ((gSave.windcrests & 0x2000000) == 0) { LoadRoomEntityList(&gUnk_080F9304); } } u32 sub_unk3_VeilFallsCaves_Hallway2F(void) { return 1; } void sub_StateChange_VeilFallsCaves_Hallway2F(void) { } u32 sub_unk3_VeilFallsCaves_Hallway1F(void) { return 1; } void sub_StateChange_VeilFallsCaves_Hallway1F(void) { } u32 sub_unk3_VeilFallsCaves_SecretRoom(void) { return 1; } void sub_StateChange_VeilFallsCaves_SecretRoom(void) { } u32 sub_unk3_VeilFallsCaves_Entrance(void) { return 1; } void sub_StateChange_VeilFallsCaves_Entrance(void) { } u32 sub_unk3_VeilFallsCaves_Exit(void) { return 1; } void sub_StateChange_VeilFallsCaves_Exit(void) { } u32 sub_unk3_VeilFallsCaves_SecretChest(void) { return 1; } void sub_StateChange_VeilFallsCaves_SecretChest(void) { } u32 sub_unk3_VeilFallsCaves_SecretStaircases(void) { return 1; } void sub_StateChange_VeilFallsCaves_SecretStaircases(void) { } u32 sub_unk3_VeilFallsCaves_BlockPuzzle(void) { return 1; } void sub_StateChange_VeilFallsCaves_BlockPuzzle(void) { } u32 sub_unk3_VeilFallsCaves_RupeePath(void) { return 1; } void sub_StateChange_VeilFallsCaves_RupeePath(void) { } u32 sub_unk3_VeilFallsCaves_HeartPiece(void) { return 1; } void sub_StateChange_VeilFallsCaves_HeartPiece(void) { } extern u32 gUnk_080F9BF8; u32 sub_unk3_VeilFallsTop_Main(void) { if (!CheckKinstoneFused(0xe)) { gRoomVars.field_0x6c[0] = &gUnk_080F9BF8; } return 1; } void sub_StateChange_VeilFallsTop_Main(void) { sub_0805B4D0(2); sub_0806D0B0(0); } u32 sub_unk3_47_0(void) { return 1; } void sub_StateChange_47_0(void) { } u32 sub_unk3_47_1(void) { return 1; } void sub_StateChange_47_1(void) { } u32 sub_unk3_47_2(void) { return 1; } void sub_StateChange_47_2(void) { } u32 sub_unk3_47_3(void) { return 1; } void sub_StateChange_47_3(void) { } u32 sub_unk3_47_4(void) { return 1; } void sub_StateChange_47_4(void) { } u32 sub_unk3_TreeInteriors_WitchHut(void) { return 1; } extern EntityData gUnk_080F9FA8; extern EntityData gUnk_080F9F88; void sub_StateChange_TreeInteriors_WitchHut(void) { if (CheckKinstoneFused(0x14)) { LoadRoomEntityList(&gUnk_080F9FA8); } if (!GetInventoryValue(ITEM_QST_MUSHROOM)) { LoadRoomEntityList(&gUnk_080F9F88); } } u32 sub_0804FCD4(void) { return 1; } void nullsub_434(void) { } u32 sub_0804FCDC(void) { return 1; } void nullsub_435(void) { } u32 sub_0804FCE4(void) { return 1; } void nullsub_436(void) { } u32 sub_0804FCEC(void) { return 1; } void nullsub_437(void) { } u32 sub_0804FCF4(void) { return 1; } void nullsub_438(void) { } u32 sub_0804FCFC(void) { return 1; } void nullsub_439(void) { } u32 sub_0804FD04(void) { return 1; } void nullsub_440(void) { } u32 sub_0804FD0C(void) { return 1; } void nullsub_441(void) { } u32 sub_0804FD14(void) { return 1; } void nullsub_442(void) { } u32 sub_0804FD1C(void) { return 1; } void nullsub_443(void) { } u32 sub_0804FD24(void) { return 1; } void nullsub_444(void) { } u32 sub_0804FD2C(void) { return 1; } void nullsub_445(void) { } u32 sub_0804FD34(void) { return 1; } void nullsub_446(void) { } u32 sub_0804FD3C(void) { return 1; } void nullsub_447(void) { } u32 sub_0804FD44(void) { return 1; } void nullsub_448(void) { } u32 sub_unk3_TreeInteriors_StairsToCarlov(void) { return 1; } void sub_StateChange_TreeInteriors_StairsToCarlov(void) { } u32 sub_unk3_TreeInteriors_PercysTreehouse(void) { return 1; } extern EntityData gUnk_080FA5D0; void sub_StateChange_TreeInteriors_PercysTreehouse(void) { if (!CheckKinstoneFused(0x21)) { LoadRoomEntityList(&gUnk_080FA5D0); } } u32 sub_unk3_TreeInteriors_HeartPiece(void) { return 1; } void sub_StateChange_TreeInteriors_HeartPiece(void) { } u32 sub_unk3_TreeInteriors_StairsToBladeBrother(void) { return 1; } void sub_StateChange_TreeInteriors_StairsToBladeBrother(void) { } u32 sub_unk3_TreeInteriors_14(void) { return 1; } void sub_StateChange_TreeInteriors_14(void) { } u32 sub_unk3_TreeInteriors_BoomerangNorthwest(void) { return 1; } void sub_StateChange_TreeInteriors_BoomerangNorthwest(void) { } u32 sub_unk3_TreeInteriors_BoomerangNortheast(void) { return 1; } void sub_StateChange_TreeInteriors_BoomerangNortheast(void) { } u32 sub_unk3_TreeInteriors_BoomerangSouthwest(void) { return 1; } void sub_StateChange_TreeInteriors_BoomerangSouthwest(void) { } u32 sub_unk3_TreeInteriors_BoomerangSoutheast(void) { return 1; } void sub_StateChange_TreeInteriors_BoomerangSoutheast(void) { } u32 sub_unk3_TreeInteriors_HeartPieceSouthwestField(void) { return 1; } void sub_StateChange_TreeInteriors_HeartPieceSouthwestField(void) { } u32 sub_unk3_TreeInteriors_StairsToFairyFountain(void) { return 1; } void sub_StateChange_TreeInteriors_StairsToFairyFountain(void) { } u32 sub_unk3_TreeInteriors_StairsToWalletFairy(void) { return 1; } void sub_StateChange_TreeInteriors_StairsToWalletFairy(void) { } u32 sub_unk3_TreeInteriors_1C(void) { return 1; } void sub_StateChange_TreeInteriors_1C(void) { } u32 sub_unk3_TreeInteriors_StairsToBusinessScrub(void) { return 1; } void sub_StateChange_TreeInteriors_StairsToBusinessScrub(void) { } u32 sub_unk3_TreeInteriors_1E(void) { return 1; } void sub_StateChange_TreeInteriors_1E(void) { } u32 sub_unk3_TreeInteriors_1F(void) { return 1; } void sub_StateChange_TreeInteriors_1F(void) { } extern u32 gUnk_080FAD48; u32 sub_unk3_MtCrenel_MountainTop(void) { if (CheckGlobalFlag(ENDING)) { gRoomVars.field_0x6c[0] = &gUnk_080FAD48; gRoomVars.field_0x6c[2] = NULL; } return 1; } extern EntityData gUnk_080FACB8; void sub_StateChange_MtCrenel_MountainTop(void) { if (CheckGlobalFlag(ENDING)) { gArea.queued_bgm = gArea.bgm; } else { LoadRoomEntityList(&gUnk_080FACB8); } sub_0805B4D0(0); sub_08059994(); } void sub_unk1_MtCrenel_MountainTop(void) { sub_0805B4D0(0); } u32 sub_unk3_MtCrenel_WallClimb(void) { return 1; } void sub_StateChange_MtCrenel_WallClimb(void) { } u32 sub_unk3_MtCrenel_CaveOfFlamesEntrance(void) { return 1; } extern EntityData gUnk_080FAFE4; extern EntityData gUnk_080FB004; void sub_StateChange_MtCrenel_CaveOfFlamesEntrance(void) { sub_0805B4D0(1); if (CheckGlobalFlag(LV2_CLEAR) && !CheckLocalFlag(LV1_CLEAR)) { LoadRoomEntityList(&gUnk_080FAFE4); } if ((gSave.windcrests & 0x1000000) == 0) { LoadRoomEntityList(&gUnk_080FB004); } if (GetInventoryValue(0x2)) { SetGlobalFlag(WHITE_SWORD_END); } } void sub_unk1_MtCrenel_CaveOfFlamesEntrance(void) { if ((gSave.windcrests & 0x1000000) == 0) { LoadRoomEntityList(&gUnk_080FB004); } } u32 sub_unk3_MtCrenel_GustJarShortcut(void) { return 1; } void sub_StateChange_MtCrenel_GustJarShortcut(void) { } u32 sub_unk3_MtCrenel_Entrance(void) { return 1; } void sub_StateChange_MtCrenel_Entrance(void) { #if defined(USA) || defined(DEMO_USA) || defined(DEMO_JP) SetTileType(0x176, 0x66f, 1); #endif } u32 sub_unk3_CrenelCaves_BlockPushing(void) { return 1; } void sub_StateChange_CrenelCaves_BlockPushing(void) { } u32 sub_unk3_CrenelCaves_PillarCave(void) { return 1; } void sub_StateChange_CrenelCaves_PillarCave(void) { } u32 sub_unk3_CrenelCaves_BridgeSwitch(void) { return 1; } void sub_StateChange_CrenelCaves_BridgeSwitch(void) { } u32 sub_unk3_CrenelCaves_ExitToMines(void) { return 1; } void sub_StateChange_CrenelCaves_ExitToMines(void) { } u32 sub_unk3_CrenelCaves_GripRing(void) { return 1; } void sub_StateChange_CrenelCaves_GripRing(void) { } u32 sub_unk3_CrenelCaves_FairyFountain(void) { return 1; } void sub_StateChange_CrenelCaves_FairyFountain(void) { } u32 sub_unk3_CrenelCaves_SpinyChuPuzzle(void) { return 1; } void sub_StateChange_CrenelCaves_SpinyChuPuzzle(void) { } u32 sub_unk3_CrenelCaves_ChuchuPotChest(void) { return 1; } void sub_StateChange_CrenelCaves_ChuchuPotChest(void) { } u32 sub_unk3_CrenelCaves_WaterHeartPiece(void) { return 1; } void sub_StateChange_CrenelCaves_WaterHeartPiece(void) { } u32 sub_unk3_CrenelCaves_RupeeFairyFountain(void) { return 1; } void sub_StateChange_CrenelCaves_RupeeFairyFountain(void) { } u32 sub_unk3_CrenelCaves_HelmasaurHallway(void) { return 1; } void sub_StateChange_CrenelCaves_HelmasaurHallway(void) { } u32 sub_unk3_CrenelCaves_MushroomKeese(void) { return 1; } void sub_StateChange_CrenelCaves_MushroomKeese(void) { } u32 sub_unk3_CrenelCaves_LadderToGreenWater(void) { return 1; } void sub_StateChange_CrenelCaves_LadderToGreenWater(void) { } u32 sub_unk3_CrenelCaves_BombBusinessScrub(void) { return 1; } void sub_StateChange_CrenelCaves_BombBusinessScrub(void) { } u32 sub_unk3_CrenelCaves_Hermit(void) { return 1; } void sub_StateChange_CrenelCaves_Hermit(void) { if (!CheckLocalFlag(0x70)) { SetLocalFlag(0x70); } } u32 sub_unk3_CrenelCaves_HintScrub(void) { return 1; } void sub_StateChange_CrenelCaves_HintScrub(void) { } u32 sub_unk3_CrenelCaves_ToGrayblade(void) { return 1; } void sub_StateChange_CrenelCaves_ToGrayblade(void) { }