From ec738d06457926164816db6c81bd1e521bd3347f Mon Sep 17 00:00:00 2001 From: rozlette Date: Thu, 22 May 2025 01:52:19 -0500 Subject: [PATCH] format --- soh/soh/ActorDB.cpp | 3 +- .../Enhancements/randomizer/hook_handlers.cpp | 22 +- soh/soh/Enhancements/randomizer/logic.cpp | 174 +- .../Enhancements/timesaver_hook_handlers.cpp | 6 +- soh/soh/SaveManager.cpp | 67 +- soh/soh/SceneDB.cpp | 881 +-- soh/soh/SceneDB.h | 27 +- soh/soh/SceneDB_Table.cpp | 4954 +++++++++++------ soh/soh/z_play_otr.cpp | 3 +- soh/src/code/z_actor.c | 4 +- soh/src/code/z_demo.c | 19 +- soh/src/code/z_horse.c | 2 +- soh/src/code/z_map_data.c | 45 +- soh/src/code/z_map_exp.c | 194 +- soh/src/code/z_map_mark.c | 42 +- soh/src/code/z_parameter.c | 171 +- soh/src/code/z_play.c | 3 +- .../overlays/actors/ovl_En_Horse/z_en_horse.c | 11 +- .../actors/ovl_player_actor/z_player.c | 9 +- .../overlays/gamestates/ovl_select/z_select.c | 9 +- .../ovl_kaleido_scope/z_kaleido_map_PAL.c | 12 +- .../misc/ovl_kaleido_scope/z_lmap_mark.c | 30 +- 22 files changed, 4068 insertions(+), 2620 deletions(-) diff --git a/soh/soh/ActorDB.cpp b/soh/soh/ActorDB.cpp index beb16fc6e..61d1bd80d 100644 --- a/soh/soh/ActorDB.cpp +++ b/soh/soh/ActorDB.cpp @@ -514,7 +514,8 @@ ActorDB::Entry& ActorDB::AddEntry(const std::string& name, const std::string& de return entry; } -// Adds an actor with the new ActorDBInit struct. The id assigned to the actor is dynamic. Use the returned Entry or RetrieveId to get it. +// Adds an actor with the new ActorDBInit struct. The id assigned to the actor is dynamic. Use the returned Entry or +// RetrieveId to get it. ActorDB::Entry& ActorDB::AddEntry(const ActorDBInit& init) { Entry& entry = AddEntry(init.name, init.desc, nextFreeId); diff --git a/soh/soh/Enhancements/randomizer/hook_handlers.cpp b/soh/soh/Enhancements/randomizer/hook_handlers.cpp index 194073b77..c0cc7f52b 100644 --- a/soh/soh/Enhancements/randomizer/hook_handlers.cpp +++ b/soh/soh/Enhancements/randomizer/hook_handlers.cpp @@ -858,20 +858,18 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_l *should = !Flags_GetRandomizerInf(RAND_INF_DARUNIAS_JOY); break; case VB_BE_ELIGIBLE_FOR_LIGHT_ARROWS: - *should = - LINK_IS_ADULT && - (EntranceDB::Instance->RetrieveEntry(gSaveContext.entranceIndex).entry.sceneId == SCENE_TEMPLE_OF_TIME) && - !Flags_GetEventChkInf(EVENTCHKINF_RETURNED_TO_TEMPLE_OF_TIME_WITH_ALL_MEDALLIONS) && - MeetsLACSRequirements(); + *should = LINK_IS_ADULT && + (EntranceDB::Instance->RetrieveEntry(gSaveContext.entranceIndex).entry.sceneId == + SCENE_TEMPLE_OF_TIME) && + !Flags_GetEventChkInf(EVENTCHKINF_RETURNED_TO_TEMPLE_OF_TIME_WITH_ALL_MEDALLIONS) && + MeetsLACSRequirements(); break; case VB_BE_ELIGIBLE_FOR_NOCTURNE_OF_SHADOW: - *should = - !Flags_GetEventChkInf(EVENTCHKINF_BONGO_BONGO_ESCAPED_FROM_WELL) && - LINK_IS_ADULT && - (EntranceDB::Instance->RetrieveEntry(gSaveContext.entranceIndex).entry.sceneId == SCENE_KAKARIKO_VILLAGE) && - CHECK_QUEST_ITEM(QUEST_MEDALLION_FOREST) && - CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE) && - CHECK_QUEST_ITEM(QUEST_MEDALLION_WATER); + *should = !Flags_GetEventChkInf(EVENTCHKINF_BONGO_BONGO_ESCAPED_FROM_WELL) && LINK_IS_ADULT && + (EntranceDB::Instance->RetrieveEntry(gSaveContext.entranceIndex).entry.sceneId == + SCENE_KAKARIKO_VILLAGE) && + CHECK_QUEST_ITEM(QUEST_MEDALLION_FOREST) && CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE) && + CHECK_QUEST_ITEM(QUEST_MEDALLION_WATER); break; case VB_BE_ELIGIBLE_FOR_CHILD_ROLLING_GORON_REWARD: { // Don't require a bomb bag to get prize in rando diff --git a/soh/soh/Enhancements/randomizer/logic.cpp b/soh/soh/Enhancements/randomizer/logic.cpp index cfe8128b5..ad65cbe13 100644 --- a/soh/soh/Enhancements/randomizer/logic.cpp +++ b/soh/soh/Enhancements/randomizer/logic.cpp @@ -2027,80 +2027,80 @@ void Logic::InitSaveContext() { } mSaveContext->equips.equipment = 0; - // Inventory - size_t numScenes = SceneDB::Instance->GetNumEntries(); - for (int item = 0; item < ARRAY_COUNT(mSaveContext->inventory.items); item++) { - mSaveContext->inventory.items[item] = ITEM_NONE; - } - for (int ammo = 0; ammo < ARRAY_COUNT(mSaveContext->inventory.ammo); ammo++) { - mSaveContext->inventory.ammo[ammo] = 0; - } - mSaveContext->inventory.equipment = 0; - mSaveContext->inventory.upgrades = 0; - mSaveContext->inventory.questItems = 0; - for (int dungeon = 0; dungeon < numScenes; dungeon++) { - mSaveContext->inventory.dungeonItems[dungeon] = 0; - } - for (int dungeon = 0; dungeon < numScenes; dungeon++) { - mSaveContext->inventory.dungeonKeys[dungeon] = 0x0; - } - mSaveContext->inventory.defenseHearts = 0; - mSaveContext->inventory.gsTokens = 0; - for (int scene = 0; scene < numScenes; scene++) { - mSaveContext->sceneFlags[scene].chest = 0; - mSaveContext->sceneFlags[scene].swch = 0; - mSaveContext->sceneFlags[scene].clear = 0; - mSaveContext->sceneFlags[scene].collect = 0; - mSaveContext->sceneFlags[scene].unk = 0; - mSaveContext->sceneFlags[scene].rooms = 0; - mSaveContext->sceneFlags[scene].floors = 0; - } - mSaveContext->fw.pos.x = 0; - mSaveContext->fw.pos.y = 0; - mSaveContext->fw.pos.z = 0; - mSaveContext->fw.yaw = 0; - mSaveContext->fw.playerParams = 0; - mSaveContext->fw.entranceIndex = 0; - mSaveContext->fw.roomIndex = 0; - mSaveContext->fw.set = 0; - mSaveContext->fw.tempSwchFlags = 0; - mSaveContext->fw.tempCollectFlags = 0; - for (int flag = 0; flag < ARRAY_COUNT(mSaveContext->gsFlags); flag++) { - mSaveContext->gsFlags[flag] = 0; - } - for (int highscore = 0; highscore < ARRAY_COUNT(mSaveContext->highScores); highscore++) { - mSaveContext->highScores[highscore] = 0; - } - for (int flag = 0; flag < ARRAY_COUNT(mSaveContext->eventChkInf); flag++) { - mSaveContext->eventChkInf[flag] = 0; - } - for (int flag = 0; flag < ARRAY_COUNT(mSaveContext->itemGetInf); flag++) { - mSaveContext->itemGetInf[flag] = 0; - } - for (int flag = 0; flag < ARRAY_COUNT(mSaveContext->infTable); flag++) { - mSaveContext->infTable[flag] = 0; - } - mSaveContext->worldMapAreaData = 0; - mSaveContext->scarecrowLongSongSet = 0; - for (int i = 0; i < ARRAY_COUNT(mSaveContext->scarecrowLongSong); i++) { - mSaveContext->scarecrowLongSong[i].noteIdx = 0; - mSaveContext->scarecrowLongSong[i].unk_01 = 0; - mSaveContext->scarecrowLongSong[i].unk_02 = 0; - mSaveContext->scarecrowLongSong[i].volume = 0; - mSaveContext->scarecrowLongSong[i].vibrato = 0; - mSaveContext->scarecrowLongSong[i].tone = 0; - mSaveContext->scarecrowLongSong[i].semitone = 0; - } - mSaveContext->scarecrowSpawnSongSet = 0; - for (int i = 0; i < ARRAY_COUNT(mSaveContext->scarecrowSpawnSong); i++) { - mSaveContext->scarecrowSpawnSong[i].noteIdx = 0; - mSaveContext->scarecrowSpawnSong[i].unk_01 = 0; - mSaveContext->scarecrowSpawnSong[i].unk_02 = 0; - mSaveContext->scarecrowSpawnSong[i].volume = 0; - mSaveContext->scarecrowSpawnSong[i].vibrato = 0; - mSaveContext->scarecrowSpawnSong[i].tone = 0; - mSaveContext->scarecrowSpawnSong[i].semitone = 0; - } + // Inventory + size_t numScenes = SceneDB::Instance->GetNumEntries(); + for (int item = 0; item < ARRAY_COUNT(mSaveContext->inventory.items); item++) { + mSaveContext->inventory.items[item] = ITEM_NONE; + } + for (int ammo = 0; ammo < ARRAY_COUNT(mSaveContext->inventory.ammo); ammo++) { + mSaveContext->inventory.ammo[ammo] = 0; + } + mSaveContext->inventory.equipment = 0; + mSaveContext->inventory.upgrades = 0; + mSaveContext->inventory.questItems = 0; + for (int dungeon = 0; dungeon < numScenes; dungeon++) { + mSaveContext->inventory.dungeonItems[dungeon] = 0; + } + for (int dungeon = 0; dungeon < numScenes; dungeon++) { + mSaveContext->inventory.dungeonKeys[dungeon] = 0x0; + } + mSaveContext->inventory.defenseHearts = 0; + mSaveContext->inventory.gsTokens = 0; + for (int scene = 0; scene < numScenes; scene++) { + mSaveContext->sceneFlags[scene].chest = 0; + mSaveContext->sceneFlags[scene].swch = 0; + mSaveContext->sceneFlags[scene].clear = 0; + mSaveContext->sceneFlags[scene].collect = 0; + mSaveContext->sceneFlags[scene].unk = 0; + mSaveContext->sceneFlags[scene].rooms = 0; + mSaveContext->sceneFlags[scene].floors = 0; + } + mSaveContext->fw.pos.x = 0; + mSaveContext->fw.pos.y = 0; + mSaveContext->fw.pos.z = 0; + mSaveContext->fw.yaw = 0; + mSaveContext->fw.playerParams = 0; + mSaveContext->fw.entranceIndex = 0; + mSaveContext->fw.roomIndex = 0; + mSaveContext->fw.set = 0; + mSaveContext->fw.tempSwchFlags = 0; + mSaveContext->fw.tempCollectFlags = 0; + for (int flag = 0; flag < ARRAY_COUNT(mSaveContext->gsFlags); flag++) { + mSaveContext->gsFlags[flag] = 0; + } + for (int highscore = 0; highscore < ARRAY_COUNT(mSaveContext->highScores); highscore++) { + mSaveContext->highScores[highscore] = 0; + } + for (int flag = 0; flag < ARRAY_COUNT(mSaveContext->eventChkInf); flag++) { + mSaveContext->eventChkInf[flag] = 0; + } + for (int flag = 0; flag < ARRAY_COUNT(mSaveContext->itemGetInf); flag++) { + mSaveContext->itemGetInf[flag] = 0; + } + for (int flag = 0; flag < ARRAY_COUNT(mSaveContext->infTable); flag++) { + mSaveContext->infTable[flag] = 0; + } + mSaveContext->worldMapAreaData = 0; + mSaveContext->scarecrowLongSongSet = 0; + for (int i = 0; i < ARRAY_COUNT(mSaveContext->scarecrowLongSong); i++) { + mSaveContext->scarecrowLongSong[i].noteIdx = 0; + mSaveContext->scarecrowLongSong[i].unk_01 = 0; + mSaveContext->scarecrowLongSong[i].unk_02 = 0; + mSaveContext->scarecrowLongSong[i].volume = 0; + mSaveContext->scarecrowLongSong[i].vibrato = 0; + mSaveContext->scarecrowLongSong[i].tone = 0; + mSaveContext->scarecrowLongSong[i].semitone = 0; + } + mSaveContext->scarecrowSpawnSongSet = 0; + for (int i = 0; i < ARRAY_COUNT(mSaveContext->scarecrowSpawnSong); i++) { + mSaveContext->scarecrowSpawnSong[i].noteIdx = 0; + mSaveContext->scarecrowSpawnSong[i].unk_01 = 0; + mSaveContext->scarecrowSpawnSong[i].unk_02 = 0; + mSaveContext->scarecrowSpawnSong[i].volume = 0; + mSaveContext->scarecrowSpawnSong[i].vibrato = 0; + mSaveContext->scarecrowSpawnSong[i].tone = 0; + mSaveContext->scarecrowSpawnSong[i].semitone = 0; + } mSaveContext->horseData.scene = SCENE_HYRULE_FIELD; mSaveContext->horseData.pos.x = -1840; @@ -2123,20 +2123,20 @@ void Logic::InitSaveContext() { // RANDOTODO (ADD ITEMLOCATIONS TO GSAVECONTEXT) } - void Logic::NewSaveContext() { - if (mSaveContext != nullptr && mSaveContext != &gSaveContext) { - delete[] mSaveContext->inventory.dungeonItems; - delete[] mSaveContext->inventory.dungeonKeys; - delete[] mSaveContext->sceneFlags; - delete mSaveContext; - } - size_t numScenes = SceneDB::Instance->GetNumEntries(); - mSaveContext = new SaveContext(); - mSaveContext->inventory.dungeonItems = new u8[numScenes]; - mSaveContext->inventory.dungeonKeys = new s8[numScenes]; - mSaveContext->sceneFlags = new SavedSceneFlags[numScenes]; - InitSaveContext(); +void Logic::NewSaveContext() { + if (mSaveContext != nullptr && mSaveContext != &gSaveContext) { + delete[] mSaveContext->inventory.dungeonItems; + delete[] mSaveContext->inventory.dungeonKeys; + delete[] mSaveContext->sceneFlags; + delete mSaveContext; } + size_t numScenes = SceneDB::Instance->GetNumEntries(); + mSaveContext = new SaveContext(); + mSaveContext->inventory.dungeonItems = new u8[numScenes]; + mSaveContext->inventory.dungeonKeys = new s8[numScenes]; + mSaveContext->sceneFlags = new SavedSceneFlags[numScenes]; + InitSaveContext(); +} uint8_t Logic::InventorySlot(uint32_t item) { return gItemSlots[item]; diff --git a/soh/soh/Enhancements/timesaver_hook_handlers.cpp b/soh/soh/Enhancements/timesaver_hook_handlers.cpp index f64ce2d07..032483b03 100644 --- a/soh/soh/Enhancements/timesaver_hook_handlers.cpp +++ b/soh/soh/Enhancements/timesaver_hook_handlers.cpp @@ -182,9 +182,9 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_li // LACS u8 meetsLACSRequirements = LINK_IS_ADULT && - (EntranceDB::Instance->RetrieveEntry(gSaveContext.entranceIndex).entry.sceneId == SCENE_TEMPLE_OF_TIME) && - CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT) && - CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW) && + (EntranceDB::Instance->RetrieveEntry(gSaveContext.entranceIndex).entry.sceneId == + SCENE_TEMPLE_OF_TIME) && + CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT) && CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW) && !Flags_GetEventChkInf(EVENTCHKINF_RETURNED_TO_TEMPLE_OF_TIME_WITH_ALL_MEDALLIONS); if (GameInteractor_Should(VB_BE_ELIGIBLE_FOR_LIGHT_ARROWS, meetsLACSRequirements)) { Flags_SetEventChkInf(EVENTCHKINF_RETURNED_TO_TEMPLE_OF_TIME_WITH_ALL_MEDALLIONS); diff --git a/soh/soh/SaveManager.cpp b/soh/soh/SaveManager.cpp index 67e3f982b..14b617283 100644 --- a/soh/soh/SaveManager.cpp +++ b/soh/soh/SaveManager.cpp @@ -1173,9 +1173,9 @@ void SaveManager::AllocateSceneData() { size_t numScenes = SceneDB::Instance->GetNumEntries(); - gSaveContext.inventory.dungeonItems = new u8[numScenes]; - gSaveContext.inventory.dungeonKeys = new s8[numScenes]; - gSaveContext.sceneFlags = new SavedSceneFlags[numScenes]; + gSaveContext.inventory.dungeonItems = new u8[numScenes]; + gSaveContext.inventory.dungeonKeys = new s8[numScenes]; + gSaveContext.sceneFlags = new SavedSceneFlags[numScenes]; std::fill_n(gSaveContext.inventory.dungeonItems, numScenes, 0); std::fill_n(gSaveContext.inventory.dungeonKeys, numScenes, -1); @@ -2254,9 +2254,8 @@ void SaveManager::LoadBaseVersion5() { SaveManager::Instance->LoadData("totalDays", gSaveContext.totalDays); SaveManager::Instance->LoadData("bgsDayCount", gSaveContext.bgsDayCount); SaveManager::Instance->LoadData("deaths", gSaveContext.deaths); - SaveManager::Instance->LoadArray("playerName", ARRAY_COUNT(gSaveContext.playerName), [](size_t i) { - SaveManager::Instance->LoadData("", gSaveContext.playerName[i]); - }); + SaveManager::Instance->LoadArray("playerName", ARRAY_COUNT(gSaveContext.playerName), + [](size_t i) { SaveManager::Instance->LoadData("", gSaveContext.playerName[i]); }); int isRando = 0; SaveManager::Instance->LoadData("n64ddFlag", isRando); if (isRando) { @@ -2275,25 +2274,29 @@ void SaveManager::LoadBaseVersion5() { SaveManager::Instance->LoadData("bgsFlag", gSaveContext.bgsFlag); SaveManager::Instance->LoadData("ocarinaGameRoundNum", gSaveContext.ocarinaGameRoundNum); SaveManager::Instance->LoadStruct("childEquips", []() { - SaveManager::Instance->LoadArray("buttonItems", ARRAY_COUNT(gSaveContext.childEquips.buttonItems), [](size_t i) { - SaveManager::Instance->LoadData("", gSaveContext.childEquips.buttonItems[i], - static_cast(ITEM_NONE)); - }); - SaveManager::Instance->LoadArray("cButtonSlots", ARRAY_COUNT(gSaveContext.childEquips.cButtonSlots), [](size_t i) { - SaveManager::Instance->LoadData("", gSaveContext.childEquips.cButtonSlots[i], - static_cast(SLOT_NONE)); - }); + SaveManager::Instance->LoadArray( + "buttonItems", ARRAY_COUNT(gSaveContext.childEquips.buttonItems), [](size_t i) { + SaveManager::Instance->LoadData("", gSaveContext.childEquips.buttonItems[i], + static_cast(ITEM_NONE)); + }); + SaveManager::Instance->LoadArray( + "cButtonSlots", ARRAY_COUNT(gSaveContext.childEquips.cButtonSlots), [](size_t i) { + SaveManager::Instance->LoadData("", gSaveContext.childEquips.cButtonSlots[i], + static_cast(SLOT_NONE)); + }); SaveManager::Instance->LoadData("equipment", gSaveContext.childEquips.equipment); }); SaveManager::Instance->LoadStruct("adultEquips", []() { - SaveManager::Instance->LoadArray("buttonItems", ARRAY_COUNT(gSaveContext.adultEquips.buttonItems), [](size_t i) { - SaveManager::Instance->LoadData("", gSaveContext.adultEquips.buttonItems[i], - static_cast(ITEM_NONE)); - }); - SaveManager::Instance->LoadArray("cButtonSlots", ARRAY_COUNT(gSaveContext.adultEquips.cButtonSlots), [](size_t i) { - SaveManager::Instance->LoadData("", gSaveContext.adultEquips.cButtonSlots[i], - static_cast(SLOT_NONE)); - }); + SaveManager::Instance->LoadArray( + "buttonItems", ARRAY_COUNT(gSaveContext.adultEquips.buttonItems), [](size_t i) { + SaveManager::Instance->LoadData("", gSaveContext.adultEquips.buttonItems[i], + static_cast(ITEM_NONE)); + }); + SaveManager::Instance->LoadArray( + "cButtonSlots", ARRAY_COUNT(gSaveContext.adultEquips.cButtonSlots), [](size_t i) { + SaveManager::Instance->LoadData("", gSaveContext.adultEquips.cButtonSlots[i], + static_cast(SLOT_NONE)); + }); SaveManager::Instance->LoadData("equipment", gSaveContext.adultEquips.equipment); }); SaveManager::Instance->LoadData("unk_54", gSaveContext.unk_54); @@ -2350,21 +2353,17 @@ void SaveManager::LoadBaseVersion5() { SaveManager::Instance->LoadData("tempSwchFlags", gSaveContext.fw.tempSwchFlags); SaveManager::Instance->LoadData("tempCollectFlags", gSaveContext.fw.tempCollectFlags); }); - SaveManager::Instance->LoadArray("gsFlags", ARRAY_COUNT(gSaveContext.gsFlags), [](size_t i) { - SaveManager::Instance->LoadData("", gSaveContext.gsFlags[i]); - }); - SaveManager::Instance->LoadArray("highScores", ARRAY_COUNT(gSaveContext.highScores), [](size_t i) { - SaveManager::Instance->LoadData("", gSaveContext.highScores[i]); - }); + SaveManager::Instance->LoadArray("gsFlags", ARRAY_COUNT(gSaveContext.gsFlags), + [](size_t i) { SaveManager::Instance->LoadData("", gSaveContext.gsFlags[i]); }); + SaveManager::Instance->LoadArray("highScores", ARRAY_COUNT(gSaveContext.highScores), + [](size_t i) { SaveManager::Instance->LoadData("", gSaveContext.highScores[i]); }); SaveManager::Instance->LoadArray("eventChkInf", ARRAY_COUNT(gSaveContext.eventChkInf), [](size_t i) { SaveManager::Instance->LoadData("", gSaveContext.eventChkInf[i]); }); - SaveManager::Instance->LoadArray("itemGetInf", ARRAY_COUNT(gSaveContext.itemGetInf), [](size_t i) { - SaveManager::Instance->LoadData("", gSaveContext.itemGetInf[i]); - }); - SaveManager::Instance->LoadArray("infTable", ARRAY_COUNT(gSaveContext.infTable), [](size_t i) { - SaveManager::Instance->LoadData("", gSaveContext.infTable[i]); - }); + SaveManager::Instance->LoadArray("itemGetInf", ARRAY_COUNT(gSaveContext.itemGetInf), + [](size_t i) { SaveManager::Instance->LoadData("", gSaveContext.itemGetInf[i]); }); + SaveManager::Instance->LoadArray("infTable", ARRAY_COUNT(gSaveContext.infTable), + [](size_t i) { SaveManager::Instance->LoadData("", gSaveContext.infTable[i]); }); SaveManager::Instance->LoadData("worldMapAreaData", gSaveContext.worldMapAreaData); SaveManager::Instance->LoadData("scarecrowLongSongSet", gSaveContext.scarecrowLongSongSet); SaveManager::Instance->LoadArray("scarecrowLongSong", ARRAY_COUNT(gSaveContext.scarecrowLongSong), [](size_t i) { diff --git a/soh/soh/SceneDB.cpp b/soh/soh/SceneDB.cpp index b7e61640c..4d44e34d5 100644 --- a/soh/soh/SceneDB.cpp +++ b/soh/soh/SceneDB.cpp @@ -11,8 +11,8 @@ EntranceDB* EntranceDB::Instance; extern const std::vector sceneDBInit; -// We need a different struct than EntranceDB::Init (scene is a int not a string) because tables/entrance_table.h has the scene -// as an enum, which we do not have a compile-time way to convert to a string +// We need a different struct than EntranceDB::Init (scene is a int not a string) because tables/entrance_table.h has +// the scene as an enum, which we do not have a compile-time way to convert to a string struct EntranceTableInit { std::string name; std::string desc; @@ -41,7 +41,7 @@ SceneDB::SceneDB() { SceneDB::Entry& entry = RetrieveEntry(SCENE_BOTTOM_OF_THE_WELL); entry.entry.epona.allowed = true; - entry.SetEponaSpawnPos({ { -630, 0, 53} }); + entry.SetEponaSpawnPos({ { -630, 0, 53 } }); } // Adds an scene at the given index. The name must be unique. @@ -107,7 +107,8 @@ SceneDB::Entry& SceneDB::AddEntry(const Init& init) { } entry.entry.dungeonData.bossFloor = init.dungeonData.bossFloor; entry.SetDungeonPalettes(init.dungeonData.palettes); - entry.SetDungeonNameTextures(init.dungeonData.nameEngTexture, init.dungeonData.nameGerTexture, init.dungeonData.nameFraTexture); + entry.SetDungeonNameTextures(init.dungeonData.nameEngTexture, init.dungeonData.nameGerTexture, + init.dungeonData.nameFraTexture); entry.SetDungeonFloors(init.dungeonData.floors); entry.SetDungeonRooms(init.dungeonData.rooms); entry.SetDungeonIntraRoomTransitions(init.dungeonData.intraRoomTransitions); @@ -257,7 +258,8 @@ void SceneDB::Entry::SetDungeonPalettes(const std::vector& newDungeonPalett entry.dungeonData.numPalettes = dungeonPalettes.size(); } -void SceneDB::Entry::SetDungeonNameTextures(const std::string& newNameEngTexture, const std::string& newNameGerTexture, const std::string& newNameFraTexture) { +void SceneDB::Entry::SetDungeonNameTextures(const std::string& newNameEngTexture, const std::string& newNameGerTexture, + const std::string& newNameFraTexture) { nameEngTexture = newNameEngTexture; nameGerTexture = newNameGerTexture; nameFraTexture = newNameFraTexture; @@ -276,8 +278,11 @@ void SceneDB::Entry::SetDungeonFloors(const std::vector& newDun dungeonFloorInfo.reserve(newDungeonFloors.size()); for (size_t i = 0; i < newDungeonFloors.size(); i++) { - dungeonFloors.push_back(SceneDBFloor{ static_cast(newDungeonFloors[i].id), newDungeonFloors[i].height, nullptr, 0, nullptr, nullptr, nullptr, 0, nullptr, 0 }); - dungeonFloorInfo.push_back(FloorInfo{ newDungeonFloors[i].palettes, newDungeonFloors[i].mapLeftTexture, newDungeonFloors[i].mapRightTexture, newDungeonFloors[i].chestMarks, newDungeonFloors[i].bossMarks }); + dungeonFloors.push_back(SceneDBFloor{ static_cast(newDungeonFloors[i].id), newDungeonFloors[i].height, + nullptr, 0, nullptr, nullptr, nullptr, 0, nullptr, 0 }); + dungeonFloorInfo.push_back(FloorInfo{ newDungeonFloors[i].palettes, newDungeonFloors[i].mapLeftTexture, + newDungeonFloors[i].mapRightTexture, newDungeonFloors[i].chestMarks, + newDungeonFloors[i].bossMarks }); } for (size_t i = 0; i < dungeonFloors.size(); i++) { @@ -293,7 +298,8 @@ void SceneDB::Entry::SetDungeonFloors(const std::vector& newDun std::copy(dungeonFloors.begin(), dungeonFloors.end(), entry.dungeonData.floors); } -void SceneDB::Entry::SetDungeonFloors(const std::vector& newDungeonFloors, const std::vector& newDungeonFloorInfo) { +void SceneDB::Entry::SetDungeonFloors(const std::vector& newDungeonFloors, + const std::vector& newDungeonFloorInfo) { assert(newDungeonFloors.size() == 8 || newDungeonFloors.size() == 0); assert(newDungeonFloorInfo.size() == 8 || newDungeonFloorInfo.size() == 0); assert(newDungeonFloors.size() == newDungeonFloorInfo.size()); @@ -320,8 +326,10 @@ void SceneDB::Entry::SetDungeonRooms(const std::vector& newDunge dungeonRoomInfo.reserve(newDungeonRooms.size()); for (size_t i = 0; i < newDungeonRooms.size(); i++) { - dungeonRooms.push_back(SceneDBRoom{ newDungeonRooms[i].compassOffsetX, newDungeonRooms[i].compassOffsetY, nullptr, nullptr, 0, nullptr, 0 }); - dungeonRoomInfo.push_back(RoomInfo{ newDungeonRooms[i].minimapTexture, newDungeonRooms[i].chestMarks, newDungeonRooms[i].bossMarks }); + dungeonRooms.push_back(SceneDBRoom{ newDungeonRooms[i].compassOffsetX, newDungeonRooms[i].compassOffsetY, + nullptr, nullptr, 0, nullptr, 0 }); + dungeonRoomInfo.push_back( + RoomInfo{ newDungeonRooms[i].minimapTexture, newDungeonRooms[i].chestMarks, newDungeonRooms[i].bossMarks }); } for (size_t i = 0; i < dungeonRooms.size(); i++) { @@ -335,7 +343,8 @@ void SceneDB::Entry::SetDungeonRooms(const std::vector& newDunge entry.dungeonData.numRooms = dungeonRooms.size(); } -void SceneDB::Entry::SetDungeonRooms(const std::vector& newDungeonRooms, const std::vector& newDungeonRoomInfo) { +void SceneDB::Entry::SetDungeonRooms(const std::vector& newDungeonRooms, + const std::vector& newDungeonRoomInfo) { dungeonRooms = newDungeonRooms; dungeonRoomInfo = newDungeonRoomInfo; for (size_t i = 0; i < dungeonRooms.size(); i++) { @@ -349,19 +358,23 @@ void SceneDB::Entry::SetDungeonRooms(const std::vector& newDungeonR entry.dungeonData.numRooms = dungeonRooms.size(); } -void SceneDB::Entry::SetDungeonIntraRoomTransitions(const std::vector& newDungeonIntraRoomTransitions) { +void SceneDB::Entry::SetDungeonIntraRoomTransitions( + const std::vector& newDungeonIntraRoomTransitions) { dungeonIntraRoomTransitions.clear(); dungeonIntraRoomTransitions.reserve(newDungeonIntraRoomTransitions.size()); for (size_t i = 0; i < newDungeonIntraRoomTransitions.size(); i++) { - dungeonIntraRoomTransitions.push_back(SceneDBIntraRoomTransition{ newDungeonIntraRoomTransitions[i].fromRoom, newDungeonIntraRoomTransitions[i].toRoom, newDungeonIntraRoomTransitions[i].toFloor }); + dungeonIntraRoomTransitions.push_back(SceneDBIntraRoomTransition{ newDungeonIntraRoomTransitions[i].fromRoom, + newDungeonIntraRoomTransitions[i].toRoom, + newDungeonIntraRoomTransitions[i].toFloor }); } entry.dungeonData.intraRoomTransitions = dungeonIntraRoomTransitions.data(); entry.dungeonData.numIntraRoomTransitions = dungeonIntraRoomTransitions.size(); } -void SceneDB::Entry::SetDungeonIntraRoomTransitions(const std::vector& newDungeonIntraRoomTransitions) { +void SceneDB::Entry::SetDungeonIntraRoomTransitions( + const std::vector& newDungeonIntraRoomTransitions) { dungeonIntraRoomTransitions = newDungeonIntraRoomTransitions; entry.dungeonData.intraRoomTransitions = dungeonIntraRoomTransitions.data(); entry.dungeonData.numIntraRoomTransitions = dungeonIntraRoomTransitions.size(); @@ -384,298 +397,278 @@ struct MqMapMarkInit { std::vector mqMapMarkInit = { // Deku Tree { - { - { { { 3, 71, 50 } }, {} }, - { {}, {} }, - { { { 1, 64, 62 } }, {} }, - { { { 4, 76, 37 } }, {} }, - { {}, {} }, - { { { 0, 46, 50 }, { 5, 76, 52 } }, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, { { -1, 50, 23 } } }, - { { { 2, 46, 50 }, { 6, 58, 60 } }, {} }, - { {}, {} }, - { {}, {} } - }, + { { { { 3, 71, 50 } }, {} }, + { {}, {} }, + { { { 1, 64, 62 } }, {} }, + { { { 4, 76, 37 } }, {} }, + { {}, {} }, + { { { 0, 46, 50 }, { 5, 76, 52 } }, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, { { -1, 50, 23 } } }, + { { { 2, 46, 50 }, { 6, 58, 60 } }, {} }, + { {}, {} }, + { {}, {} } }, }, // Dodongo's Cavern - { - { - { { { 0, 69, 14 }, { 4, 69, 30 } }, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { { { 5, 54, 54 } }, {} }, - { { { 2, 69, 54 } }, {} }, - { {}, { { -1, 37, 49 } } }, - { {}, {} }, - { { { 3, 59, 53 } }, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { { { 1, 68, 54 } }, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - } - }, + { { + { { { 0, 69, 14 }, { 4, 69, 30 } }, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { { { 5, 54, 54 } }, {} }, + { { { 2, 69, 54 } }, {} }, + { {}, { { -1, 37, 49 } } }, + { {}, {} }, + { { { 3, 59, 53 } }, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { { { 1, 68, 54 } }, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + } }, // Jabu-Jabu's Belly - { - { - { { { 3, 66, 50 }, { 5, 72, 47 } }, {} }, - { { { 7, 72, 54 } }, {} }, - { {}, {} }, - { { { 4, 64, 62 }, { 8, 79, 38 } }, {} }, - { {}, {} }, - { { { 10, 64, 45 } }, { { -1, 67, 32 } } }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { { { 9, 68, 45 } }, {} }, - { {}, {} }, - { {}, {} }, - { { { 1, 79, 33 }, { 6, 61, 41 } }, {} }, - { { { 0, 48, 57 }, { 2, 77, 55 } }, {} }, - // Jabu-Jabu's Belly minimap 16 - // SoH [General] - This entry corresponds to Big Octorok's room and is missing in the MQ game - // N64 hardware does an OoB read and lands on MQ Forest Temple room 0 - // To avoid UB with OoB for SoH, the correct entry is now added below - { {}, {} }, - } - }, + { { + { { { 3, 66, 50 }, { 5, 72, 47 } }, {} }, + { { { 7, 72, 54 } }, {} }, + { {}, {} }, + { { { 4, 64, 62 }, { 8, 79, 38 } }, {} }, + { {}, {} }, + { { { 10, 64, 45 } }, { { -1, 67, 32 } } }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { { { 9, 68, 45 } }, {} }, + { {}, {} }, + { {}, {} }, + { { { 1, 79, 33 }, { 6, 61, 41 } }, {} }, + { { { 0, 48, 57 }, { 2, 77, 55 } }, {} }, + // Jabu-Jabu's Belly minimap 16 + // SoH [General] - This entry corresponds to Big Octorok's room and is missing in the MQ game + // N64 hardware does an OoB read and lands on MQ Forest Temple room 0 + // To avoid UB with OoB for SoH, the correct entry is now added below + { {}, {} }, + } }, // Forest Temple - { - { - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { { { 0, 72, 57 } }, {} }, - { { { 1, 69, 39 }, { 9, 62, 65 } }, {} }, - { {}, {} }, - { { { 9, 71, 59 } }, {} }, - { {}, {} }, - { {}, {} }, - { { { 13, 80, 53 } }, {} }, - { { { 15, 49, 50 } }, {} }, - { {}, {} }, - { { { 6, 65, 53 } }, {} }, - { {}, {} }, - { { { 11, 39, 35 } }, { { -1, 53, 5 } } }, - { { { 2, 65, 54 } }, {} }, - { { { 14, 64, 31 } }, {} }, - { {}, {} }, - { {}, {} }, - { { { 3, 75, 53 } }, {} }, - { { { 12, 69, 52 } }, {} }, - { { { 5, 58, 27 } }, {} }, - { {}, {} }, - { {}, {} }, - } - }, + { { + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { { { 0, 72, 57 } }, {} }, + { { { 1, 69, 39 }, { 9, 62, 65 } }, {} }, + { {}, {} }, + { { { 9, 71, 59 } }, {} }, + { {}, {} }, + { {}, {} }, + { { { 13, 80, 53 } }, {} }, + { { { 15, 49, 50 } }, {} }, + { {}, {} }, + { { { 6, 65, 53 } }, {} }, + { {}, {} }, + { { { 11, 39, 35 } }, { { -1, 53, 5 } } }, + { { { 2, 65, 54 } }, {} }, + { { { 14, 64, 31 } }, {} }, + { {}, {} }, + { {}, {} }, + { { { 3, 75, 53 } }, {} }, + { { { 12, 69, 52 } }, {} }, + { { { 5, 58, 27 } }, {} }, + { {}, {} }, + { {}, {} }, + } }, // Fire Temple - { - { - { {}, {} }, - { {}, {} }, - { { { 7, 53, 70 } }, { { -1, 40, 47 } } }, - { {}, {} }, - { { { 11, 57, 48 } }, {} }, - { { { 3, 67, 73 }, { 6, 58, 76 } }, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { { { 2, 78, 62 }, { 12, 77, 58 } }, {} }, - { {}, {} }, - { { { 4, 60, 54 } }, {} }, - { {}, {} }, - { {}, {} }, - { { { 1, 72, 68 } }, {} }, - { { { 8, 66, 57 } }, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { { { 5, 51, 61 } }, {} }, - { {}, {} }, - { {}, {} }, - } - }, + { { + { {}, {} }, + { {}, {} }, + { { { 7, 53, 70 } }, { { -1, 40, 47 } } }, + { {}, {} }, + { { { 11, 57, 48 } }, {} }, + { { { 3, 67, 73 }, { 6, 58, 76 } }, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { { { 2, 78, 62 }, { 12, 77, 58 } }, {} }, + { {}, {} }, + { { { 4, 60, 54 } }, {} }, + { {}, {} }, + { {}, {} }, + { { { 1, 72, 68 } }, {} }, + { { { 8, 66, 57 } }, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { { { 5, 51, 61 } }, {} }, + { {}, {} }, + { {}, {} }, + } }, // Water Temple - { - { - { {}, {} }, - { {}, {} }, - { { { 6, 81, 68 } }, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { { { 5, 75, 55 } }, {} }, - { {}, {} }, - { {}, { { -1, 77, 40 } } }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { { { 1, 74, 61 } }, {} }, - { { { 2, 73, 65 } }, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { { { 0, 73, 63 } }, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - } - }, + { { + { {}, {} }, + { {}, {} }, + { { { 6, 81, 68 } }, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { { { 5, 75, 55 } }, {} }, + { {}, {} }, + { {}, { { -1, 77, 40 } } }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { { { 1, 74, 61 } }, {} }, + { { { 2, 73, 65 } }, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { { { 0, 73, 63 } }, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + } }, // Spirit Temple - { - { - { { { 26, 27, 35 }, { 27, 36, 35 }, { 30, 27, 28 }, { 31, 36, 28 } }, {} }, - { { { 29, 67, 63 } }, {} }, - { {}, {} }, - { { { 0, 71, 62 }, { 8, 71, 48 } }, {} }, - { {}, {} }, - { { { 3, 56, 54 }, { 15, 69, 42 } }, {} }, - { { { 28, 60, 54 } }, {} }, - { {}, {} }, - { { { 1, 76, 40 } }, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { { { 7, 70, 53 } }, {} }, - { {}, {} }, - { { { 4, 68, 42 } }, {} }, - { {}, {} }, - { {}, {} }, - { { { 25, 78, 58 } }, {} }, - { { { 24, 78, 58 } }, {} }, - { {}, {} }, - { {}, {} }, - { { { 5, 71, 55 } }, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { { { 18, 75, 54 } }, {} }, - { {}, {} }, - { { { 6, 78, 55 }, { 12, 70, 70 } }, {} }, - { { { 2, 76, 37 } }, { { -1, 57, 23 } } }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - } - }, + { { + { { { 26, 27, 35 }, { 27, 36, 35 }, { 30, 27, 28 }, { 31, 36, 28 } }, {} }, + { { { 29, 67, 63 } }, {} }, + { {}, {} }, + { { { 0, 71, 62 }, { 8, 71, 48 } }, {} }, + { {}, {} }, + { { { 3, 56, 54 }, { 15, 69, 42 } }, {} }, + { { { 28, 60, 54 } }, {} }, + { {}, {} }, + { { { 1, 76, 40 } }, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { { { 7, 70, 53 } }, {} }, + { {}, {} }, + { { { 4, 68, 42 } }, {} }, + { {}, {} }, + { {}, {} }, + { { { 25, 78, 58 } }, {} }, + { { { 24, 78, 58 } }, {} }, + { {}, {} }, + { {}, {} }, + { { { 5, 71, 55 } }, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { { { 18, 75, 54 } }, {} }, + { {}, {} }, + { { { 6, 78, 55 }, { 12, 70, 70 } }, {} }, + { { { 2, 76, 37 } }, { { -1, 57, 23 } } }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + } }, // Shadow Temple - { - { - { {}, {} }, - { { { 1, 77, 64 } }, {} }, - { {}, {} }, - { {}, { { -1, 77, 76 } } }, - { { { 7, 76, 65 } }, {} }, - { {}, {} }, - { { { 2, 83, 67 }, { 14, 84, 59 } }, {} }, - { { { 3, 76, 67 } }, {} }, - { {}, {} }, - { {}, {} }, - { { { 4, 78, 62 }, { 5, 74, 62 }, { 6, 71, 68 } }, {} }, - { { { 9, 77, 64 } }, {} }, - { {}, {} }, - { { { 10, 71, 65 }, { 11, 80, 65 } }, {} }, - { { { 16, 73, 64 } }, {} }, - { {}, {} }, - { { { 12, 87, 64 }, { 22, 87, 68 } }, {} }, - { { { 13, 77, 66 } }, {} }, - { {}, {} }, - { { { 21, 78, 66 } }, {} }, - { { { 8, 76, 66 }, { 20, 78, 68 } }, {} }, - { { { 14, 77, 62 } }, {} }, - { {}, {} }, - { { { 15, 56, 67 } }, {} }, - { {}, {} }, - { { { 16, 73, 64 } }, {} }, - { { { 14, 77, 62 } }, {} }, - } - }, + { { + { {}, {} }, + { { { 1, 77, 64 } }, {} }, + { {}, {} }, + { {}, { { -1, 77, 76 } } }, + { { { 7, 76, 65 } }, {} }, + { {}, {} }, + { { { 2, 83, 67 }, { 14, 84, 59 } }, {} }, + { { { 3, 76, 67 } }, {} }, + { {}, {} }, + { {}, {} }, + { { { 4, 78, 62 }, { 5, 74, 62 }, { 6, 71, 68 } }, {} }, + { { { 9, 77, 64 } }, {} }, + { {}, {} }, + { { { 10, 71, 65 }, { 11, 80, 65 } }, {} }, + { { { 16, 73, 64 } }, {} }, + { {}, {} }, + { { { 12, 87, 64 }, { 22, 87, 68 } }, {} }, + { { { 13, 77, 66 } }, {} }, + { {}, {} }, + { { { 21, 78, 66 } }, {} }, + { { { 8, 76, 66 }, { 20, 78, 68 } }, {} }, + { { { 14, 77, 62 } }, {} }, + { {}, {} }, + { { { 15, 56, 67 } }, {} }, + { {}, {} }, + { { { 16, 73, 64 } }, {} }, + { { { 14, 77, 62 } }, {} }, + } }, // Bottom of the Well - { - { - { { { 3, 60, 18 } }, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { { { 2, 73, 61 } }, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { { { 1, 74, 66 } }, {} }, - } - }, + { { + { { { 3, 60, 18 } }, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { { { 2, 73, 61 } }, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { { { 1, 74, 66 } }, {} }, + } }, // Ice Cavern - { - { - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { { { 2, 71, 59 } }, {} }, - { {}, {} }, - { { { 0, 48, 36 } }, {} }, - { {}, {} }, - { { { 1, 73, 67 } }, {} }, - } - }, + { { + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { { { 2, 71, 59 } }, {} }, + { {}, {} }, + { { { 0, 48, 36 } }, {} }, + { {}, {} }, + { { { 1, 73, 67 } }, {} }, + } }, }; // Sets a scene's dungeon map marks based on whether it should be MQ or not @@ -707,138 +700,170 @@ struct MqPauseMapMarkInit { Floor floors[8]; }; -std::vector mqPauseMapMarkInit = -{ +std::vector mqPauseMapMarkInit = { // Deku Tree - { - { - { {}, {} }, - { {}, {} }, - { {}, {} }, - { { { 2, 40.0f, -33.0f }, { 6, 49.0f, -42.0f } }, {} }, // 3F - { { { 1, 48.0f, -63.0f } }, {} }, // 2F - { { { 3, 84.0f, -39.0f } }, {} }, // 1F - { { { 0, 46.0f, -59.0f }, { 4, 77.0f, -26.0f }, { 5, 65.0f, -61.0f } }, {} }, // B1 - { {}, { { -1, 55.0f, 0.0f } } }, // B2 - } - }, + { { + { {}, {} }, + { {}, {} }, + { {}, {} }, + { { { 2, 40.0f, -33.0f }, { 6, 49.0f, -42.0f } }, {} }, // 3F + { { { 1, 48.0f, -63.0f } }, {} }, // 2F + { { { 3, 84.0f, -39.0f } }, {} }, // 1F + { { { 0, 46.0f, -59.0f }, { 4, 77.0f, -26.0f }, { 5, 65.0f, -61.0f } }, {} }, // B1 + { {}, { { -1, 55.0f, 0.0f } } }, // B2 + } }, // Dodongo's Cavern - { - { - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { { { 2, 55.0f, -36.0f }, { 3, 54.0f, -51.0f }, { 5, 13.0f, -61.0f } }, {} }, // 2F - { { { 0, 47.0f, -40.0f }, { 1, 51.0f, -3.0f }, { 4, 47.0f, -47.0f } }, { { -1, 23.0f, -25.0f } } }, // 1F - } - }, + { { + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { { { 2, 55.0f, -36.0f }, { 3, 54.0f, -51.0f }, { 5, 13.0f, -61.0f } }, {} }, // 2F + { { { 0, 47.0f, -40.0f }, { 1, 51.0f, -3.0f }, { 4, 47.0f, -47.0f } }, { { -1, 23.0f, -25.0f } } }, // 1F + } }, // Jabu-Jabu's Belly - { - { - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { { { 3, 48.0f, -68.0f }, { 5, 50.0f, -66.0f }, { 7, 55.0f, -50.0f }, { 9, 58.0f, 1.0f }, { 10, 62.0f, -45.0f } }, { { -1, 65.0f, -37.0f } } }, // 1F - { { { 0, 37.0f, -49.0f }, { 1, 65.0f, -38.0f }, { 2, 52.0f, -48.0f }, { 4, 46.0f, -36.0f }, { 6, 59.0f, -41.0f }, { 8, 52.0f, -26.0f } }, {} }, // B1 - } - }, + { { + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { { { 3, 48.0f, -68.0f }, + { 5, 50.0f, -66.0f }, + { 7, 55.0f, -50.0f }, + { 9, 58.0f, 1.0f }, + { 10, 62.0f, -45.0f } }, + { { -1, 65.0f, -37.0f } } }, // 1F + { { { 0, 37.0f, -49.0f }, + { 1, 65.0f, -38.0f }, + { 2, 52.0f, -48.0f }, + { 4, 46.0f, -36.0f }, + { 6, 59.0f, -41.0f }, + { 8, 52.0f, -26.0f } }, + {} }, // B1 + } }, // Forest Temple - { - { - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { { { 3, 53.0f, -64.0f }, { 5, 65.0f, -9.0f }, { 12, 49.0f, -1.0f }, { 13, 40.0f, 0.0f }, { 14, 18.0f, -2.0f }, { 15, 59.0f, 0.0f } }, {} }, // 2F - { { { 0, 49.0f, -1.0f }, { 1, 71.0f, -13.0f }, { 2, 11.0f, -25.0f }, { 6, 84.0f, -16.0f } }, {} }, // 1F - { { { 9, 65.0f, -30.0f } }, {} }, // B1 - { { { 11, 41.0f, -24.0f } }, { { -1, 50.0f, -11.0f } } }, // B2 - } - }, + { { + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { { { 3, 53.0f, -64.0f }, + { 5, 65.0f, -9.0f }, + { 12, 49.0f, -1.0f }, + { 13, 40.0f, 0.0f }, + { 14, 18.0f, -2.0f }, + { 15, 59.0f, 0.0f } }, + {} }, // 2F + { { { 0, 49.0f, -1.0f }, { 1, 71.0f, -13.0f }, { 2, 11.0f, -25.0f }, { 6, 84.0f, -16.0f } }, {} }, // 1F + { { { 9, 65.0f, -30.0f } }, {} }, // B1 + { { { 11, 41.0f, -24.0f } }, { { -1, 50.0f, -11.0f } } }, // B2 + } }, // Fire Temple - { - { - { {}, {} }, - { {}, {} }, - { {}, {} }, - { { { 5, 24.0f, -40.0f } }, {} }, // 5F - { {}, {} }, // 4F - { { { 3, 75.0f, -47.0f }, { 6, 72.0f, -51.0f }, { 8, 65.0f, -12.0f } }, {} }, // 3F - { { { 11, 78.0f, -35.0f } }, {} }, // 2F - { { { 1, 67.0f, -58.0f }, { 2, 48.0f, -30.0f }, { 4, 63.0f, -14.0f }, { 7, 36.0f, -45.0f }, { 12, 47.0f, -26.0f } }, { { -1, 26.0f, -34.0f } } }, // 1F - } - }, + { { + { {}, {} }, + { {}, {} }, + { {}, {} }, + { { { 5, 24.0f, -40.0f } }, {} }, // 5F + { {}, {} }, // 4F + { { { 3, 75.0f, -47.0f }, { 6, 72.0f, -51.0f }, { 8, 65.0f, -12.0f } }, {} }, // 3F + { { { 11, 78.0f, -35.0f } }, {} }, // 2F + { { { 1, 67.0f, -58.0f }, + { 2, 48.0f, -30.0f }, + { 4, 63.0f, -14.0f }, + { 7, 36.0f, -45.0f }, + { 12, 47.0f, -26.0f } }, + { { -1, 26.0f, -34.0f } } }, // 1F + } }, // Water Temple - { - { - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { { { 2, 88.0f, -60.0f } }, { { -1, 62.0f, -23.0f } } }, // 3F - { { { 0, 88.0f, -60.0f } }, {} }, // 2F - { { { 1, 88.0f, -60.0f }, { 5, 49.0f, -43.0f } }, {} }, // 1F - { { { 6, 75.0f, -65.0f } }, {} }, // B1 - } - }, + { { + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { { { 2, 88.0f, -60.0f } }, { { -1, 62.0f, -23.0f } } }, // 3F + { { { 0, 88.0f, -60.0f } }, {} }, // 2F + { { { 1, 88.0f, -60.0f }, { 5, 49.0f, -43.0f } }, {} }, // 1F + { { { 6, 75.0f, -65.0f } }, {} }, // B1 + } }, // Spirit Temple - { - { - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { { { 18, 46.0f, -30.0f } }, {} }, // 4F - { { { 1, 23.0f, -33.0f }, { 2, 56.0f, -11.0f }, { 5, 83.0f, -25.0f }, { 24, 84.0f, -39.0f }, { 25, 74.0f, -37.0f } }, { { -1, 47.0f, 0.0f } } }, // 3F - { { { 3, 46.0f, -20.0f }, { 6, 28.0f, -19.0f }, { 12, 25.0f, -25.0f }, { 15, 50.0f, -13.0f }, { 28, 48.0f, -29.0f } }, {} }, // 2F - { { { 0, 14.0f, -24.0f }, { 4, 55.0f, -14.0f }, { 7, 78.0f, -2.0f }, { 8, 14.0f, -16.0f }, { 26, 42.0f, -43.0f }, { 27, 50.0f, -43.0f }, { 29, 25.0f, -35.0f }, { 30, 42.0f, -36.0f }, { 31, 50.0f, -36.0f } }, {} }, // 1F - } - }, + { { + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { { { 18, 46.0f, -30.0f } }, {} }, // 4F + { { { 1, 23.0f, -33.0f }, + { 2, 56.0f, -11.0f }, + { 5, 83.0f, -25.0f }, + { 24, 84.0f, -39.0f }, + { 25, 74.0f, -37.0f } }, + { { -1, 47.0f, 0.0f } } }, // 3F + { { { 3, 46.0f, -20.0f }, + { 6, 28.0f, -19.0f }, + { 12, 25.0f, -25.0f }, + { 15, 50.0f, -13.0f }, + { 28, 48.0f, -29.0f } }, + {} }, // 2F + { { { 0, 14.0f, -24.0f }, + { 4, 55.0f, -14.0f }, + { 7, 78.0f, -2.0f }, + { 8, 14.0f, -16.0f }, + { 26, 42.0f, -43.0f }, + { 27, 50.0f, -43.0f }, + { 29, 25.0f, -35.0f }, + { 30, 42.0f, -36.0f }, + { 31, 50.0f, -36.0f } }, + {} }, // 1F + } }, // Shadow Temple - { - { - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { { { 1, 41.0f, -17.0f }, { 7, 27.0f, -24.0f } }, {} }, // B1 - { { { 2, 81.0f, -20.0f }, { 3, 74.0f, -37.0f } }, {} }, // B2 - { { { 12, 96.0f, -51.0f }, { 16, 46.0f, -42.0f }, { 22, 96.0f, -55.0f } }, {} }, // B3 - { { { 4, 43.0f, -66.0f }, { 5, 37.0f, -66.0f }, { 6, 33.0f, -72.0f }, { 8, 85.0f, -18.0f }, { 9, 61.0f, -42.0f }, { 10, 15.0f, -4.0f }, { 11, 25.0f, -4.0f }, { 13, 19.0f, -29.0f }, { 14, 78.0f, -15.0f }, { 15, 60.0f, -70.0f }, { 21, 92.0f, -29.0f }, { 20, 87.0f, -20.0f } }, { { -1, 31.0f, -45.0f } } }, // B4 - } - }, + { { + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { { { 1, 41.0f, -17.0f }, { 7, 27.0f, -24.0f } }, {} }, // B1 + { { { 2, 81.0f, -20.0f }, { 3, 74.0f, -37.0f } }, {} }, // B2 + { { { 12, 96.0f, -51.0f }, { 16, 46.0f, -42.0f }, { 22, 96.0f, -55.0f } }, {} }, // B3 + { { { 4, 43.0f, -66.0f }, + { 5, 37.0f, -66.0f }, + { 6, 33.0f, -72.0f }, + { 8, 85.0f, -18.0f }, + { 9, 61.0f, -42.0f }, + { 10, 15.0f, -4.0f }, + { 11, 25.0f, -4.0f }, + { 13, 19.0f, -29.0f }, + { 14, 78.0f, -15.0f }, + { 15, 60.0f, -70.0f }, + { 21, 92.0f, -29.0f }, + { 20, 87.0f, -20.0f } }, + { { -1, 31.0f, -45.0f } } }, // B4 + } }, // Bottom of the Well - { - { - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { { { 2, 84.0f, -38.0f }, { 3, 57.0f, -18.0f } }, {} }, // B1 - { {}, {} }, // B2 - { { { 1, 72.0f, -32.0f } }, {} }, // B3 - } - }, + { { + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { { { 2, 84.0f, -38.0f }, { 3, 57.0f, -18.0f } }, {} }, // B1 + { {}, {} }, // B2 + { { { 1, 72.0f, -32.0f } }, {} }, // B3 + } }, // Ice Cavern - { - { - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { {}, {} }, - { { { 0, 66.0f, -2.0f }, { 1, 77.0f, -46.0f }, { 2, 27.0f, -45.0f } }, {} }, // 1F - } - }, + { { + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { {}, {} }, + { { { 0, 66.0f, -2.0f }, { 1, 77.0f, -46.0f }, { 2, 27.0f, -45.0f } }, {} }, // 1F + } }, }; // Sets a scene's pause map marks based on whether it should be MQ or not @@ -879,20 +904,12 @@ bool SceneDB::Entry::isOverworld() { return SCENEDB_ISOVERWORLD(&this->entry); } - EntranceDB::EntranceDB() { db.reserve(ENTR_MAX); // reserve size for all initial entries so we don't do it for each for (const EntranceTableInit& init : entranceDBInit) { - Init nativeInit{ - init.name, - init.desc, - SceneDB::Instance->RetrieveEntry(init.scene).name, - init.spawn, - init.continueBgm, - init.displayTitleCard, - init.endTransition, - init.startTransition - }; + Init nativeInit{ init.name, init.desc, SceneDB::Instance->RetrieveEntry(init.scene).name, + init.spawn, init.continueBgm, init.displayTitleCard, + init.endTransition, init.startTransition }; AddEntry(nativeInit); } @@ -987,9 +1004,9 @@ s32 EntranceDB::CalcId(const s32 entrance, const s32 newLayer) { void EntranceDB::ResetVanillaEntrances() { // Erase all instances of vanilla entrances in the lookup tables for (size_t i = 0; i < ENTR_MAX; i++) { - // For this entrance, reset the next layer. This will cause problems with mods that add a new layer (like for a cutscene) - // However, we will treat this as fine for now because we don't have such mods - // A more robust solution is to use a local nextLayerLookupTable to reestablish the vanilla layers + // For this entrance, reset the next layer. This will cause problems with mods that add a new layer (like for a + // cutscene) However, we will treat this as fine for now because we don't have such mods A more robust solution + // is to use a local nextLayerLookupTable to reestablish the vanilla layers NextLayerLookupKey nextLayerKey{ entranceDBInit[i].scene, entranceDBInit[i].spawn }; nextLayerLookupTable.erase(nextLayerKey); diff --git a/soh/soh/SceneDB.h b/soh/soh/SceneDB.h index 9480ff907..7b85d03b4 100644 --- a/soh/soh/SceneDB.h +++ b/soh/soh/SceneDB.h @@ -120,7 +120,7 @@ typedef struct { #include class SceneDB { -public: + public: static SceneDB* Instance; struct Init { @@ -230,13 +230,18 @@ public: void SetTitleCard(const std::string& newTitleCard); void SetEponaSpawnPos(const std::vector& newSpawnPos); void SetDungeonPalettes(const std::vector& newDungeonPalettes); - void SetDungeonNameTextures(const std::string& newNameEngTexture, const std::string& newNameGerTexture, const std::string& newNameFraTexture); + void SetDungeonNameTextures(const std::string& newNameEngTexture, const std::string& newNameGerTexture, + const std::string& newNameFraTexture); void SetDungeonFloors(const std::vector& newDungeonFloors); - void SetDungeonFloors(const std::vector& newDungeonFloors, const std::vector& newDungeonFloorInfo); + void SetDungeonFloors(const std::vector& newDungeonFloors, + const std::vector& newDungeonFloorInfo); void SetDungeonRooms(const std::vector& newDungeonRooms); - void SetDungeonRooms(const std::vector& newDungeonRooms, const std::vector& newDungeonRoomInfo); - void SetDungeonIntraRoomTransitions(const std::vector& newDungeonIntraRoomTransitions); - void SetDungeonIntraRoomTransitions(const std::vector& newDungeonIntraRoomTransitions); + void SetDungeonRooms(const std::vector& newDungeonRooms, + const std::vector& newDungeonRoomInfo); + void SetDungeonIntraRoomTransitions( + const std::vector& newDungeonIntraRoomTransitions); + void + SetDungeonIntraRoomTransitions(const std::vector& newDungeonIntraRoomTransitions); void SetWorldMinimapTexture(const std::string& newWorldMinimapTexture); void SetMapMarkData(const bool isMQ); void SetPauseMapMarkData(const bool isMQ); @@ -268,7 +273,7 @@ public: size_t GetNumEntries(); -private: + private: Entry& AddEntry(const std::string& name, const std::string& desc, size_t index); std::vector db; @@ -277,7 +282,7 @@ private: }; class EntranceDB { -public: + public: static EntranceDB* Instance; struct Init { @@ -320,14 +325,16 @@ public: s32 CalcId(s32 entrance, s32 newLayer); void Copy(s32 from, s32 to); -private: + + private: Entry& AddEntry(const std::string& name, const std::string& desc, size_t index); std::vector db; std::unordered_map nameTable; size_t nextFreeId = 0; - // This keeps a mapping of a scene, spawn, and layer to the resulting entrance ID, since we can assume no order about them + // This keeps a mapping of a scene, spawn, and layer to the resulting entrance ID, since we can assume no order + // about them struct IdLookupKey { s32 sceneId; s32 spawn; diff --git a/soh/soh/SceneDB_Table.cpp b/soh/soh/SceneDB_Table.cpp index 9c67a4f77..3db6edc99 100644 --- a/soh/soh/SceneDB_Table.cpp +++ b/soh/soh/SceneDB_Table.cpp @@ -11,1902 +11,3278 @@ extern const std::vector sceneDBInit{ { // SCENE_DEKU_TREE - "ydan_scene", - "Inside the Deku Tree", - "g_pn_06", - SDC_DEKU_TREE, - { false, false, false, false, false, false, false, false, false, false, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 3, 3, 1070, -690 }, - {}, - { - 7, - { 10, 1, 2, 10, 4, 5, 6, 7, 8, 10, 11 }, - std::string{gPauseDekuTitleENGTex}, - std::string{gPauseDekuTitleGERTex}, - std::string{gPauseDekuTitleFRATex}, - { - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_3F, 760.0f, { 0, 10, }, std::string{gDekuTreePauseScreenMapFloor3LeftTex}, std::string{gDekuTreePauseScreenMapFloor3RightTex}, { { 2, 40.0f, -33.0f }, { 6, 49.0f, -42.0f } }, {}, }, - { F_2F, 360.0f, { 0, 1, 2, }, std::string{gDekuTreePauseScreenMapFloor2LeftTex}, std::string{gDekuTreePauseScreenMapFloor2RightTex}, { { 1, 48.0f, -63.0f }, { 5, 52.0f, -68.0f } }, {}, }, - { F_1F, -40.0f, { 0, }, std::string{gDekuTreePauseScreenMapFloor1LeftTex}, std::string{gDekuTreePauseScreenMapFloor1RightTex}, { { 3, 84.0f, -39.0f } }, {}, }, - { F_B1, -1000.0f, { 3, 4, 5, 6, 7, 8, }, std::string{gDekuTreePauseScreenMapBasement1LeftTex}, std::string{gDekuTreePauseScreenMapBasement1RightTex}, { { 4, 77.0f, -26.0f } }, {}, }, - { F_B2, -2000.0f, { 9, }, std::string{gDekuTreePauseScreenMapBasement2LeftTex}, std::string{gDekuTreePauseScreenMapBasement2RightTex}, {}, { { -1, 55.0f, 0.0f } }, }, - }, - { - { 1090, -660, std::string{gDekuTreeRoom0Floor1MinimapTex}, { { 3, 71, 50 }, }, {} }, - { 1390, -570, std::string{gDekuTreeRoom1MinimapTex}, {}, {} }, - { 1560, -410, std::string{gDekuTreeRoom2MinimapTex}, { { 1, 64, 62 }, { 5, 71, 69 }, }, {} }, - { 1220, -690, std::string{gDekuTreeRoom3MinimapTex}, { { 4, 76, 37 }, }, {} }, - { 1200, -500, std::string{gDekuTreeRoom4MinimapTex}, {}, {} }, - { 1390, -380, std::string{gDekuTreeRoom5MinimapTex}, {}, {} }, - { 1770, -470, std::string{gDekuTreeRoom6MinimapTex}, {}, {} }, - { 1610, -630, std::string{gDekuTreeRoom7MinimapTex}, {}, {} }, - { 2000, -990, std::string{gDekuTreeRoom8MinimapTex}, {}, {} }, - { 1290, -870, std::string{gDekuTreeRoom9MinimapTex}, {}, { { -1, 50, 23 }, } }, - { 1420, -720, std::string{gDekuTreeRoom10MinimapTex}, { { 2, 46, 50 }, { 6, 58, 60 }, }, {} }, - { 1110, -630, std::string{gDekuTreeRoom0Floor2MinimapTex}, {}, {} }, - { 1040, -660, std::string{gDekuTreeRoom0Floor3MinimapTex}, {}, {} }, - }, - { - { 11, 12, 3 }, - { 0, 11, 4 }, - { 0, 12, 3 }, - { 12, 11, 4 }, - { 11, 0, 5 }, - }, - }, - {} - }, + "ydan_scene", + "Inside the Deku Tree", + "g_pn_06", + SDC_DEKU_TREE, + { false, false, false, false, false, false, false, false, false, false, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 3, 3, 1070, -690 }, + {}, + { + 7, + { 10, 1, 2, 10, 4, 5, 6, 7, 8, 10, 11 }, + std::string{ gPauseDekuTitleENGTex }, + std::string{ gPauseDekuTitleGERTex }, + std::string{ gPauseDekuTitleFRATex }, + { + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_3F, + 760.0f, + { + 0, + 10, + }, + std::string{ gDekuTreePauseScreenMapFloor3LeftTex }, + std::string{ gDekuTreePauseScreenMapFloor3RightTex }, + { { 2, 40.0f, -33.0f }, { 6, 49.0f, -42.0f } }, + {}, + }, + { + F_2F, + 360.0f, + { + 0, + 1, + 2, + }, + std::string{ gDekuTreePauseScreenMapFloor2LeftTex }, + std::string{ gDekuTreePauseScreenMapFloor2RightTex }, + { { 1, 48.0f, -63.0f }, { 5, 52.0f, -68.0f } }, + {}, + }, + { + F_1F, + -40.0f, + { + 0, + }, + std::string{ gDekuTreePauseScreenMapFloor1LeftTex }, + std::string{ gDekuTreePauseScreenMapFloor1RightTex }, + { { 3, 84.0f, -39.0f } }, + {}, + }, + { + F_B1, + -1000.0f, + { + 3, + 4, + 5, + 6, + 7, + 8, + }, + std::string{ gDekuTreePauseScreenMapBasement1LeftTex }, + std::string{ gDekuTreePauseScreenMapBasement1RightTex }, + { { 4, 77.0f, -26.0f } }, + {}, + }, + { + F_B2, + -2000.0f, + { + 9, + }, + std::string{ gDekuTreePauseScreenMapBasement2LeftTex }, + std::string{ gDekuTreePauseScreenMapBasement2RightTex }, + {}, + { { -1, 55.0f, 0.0f } }, + }, + }, + { + { 1090, + -660, + std::string{ gDekuTreeRoom0Floor1MinimapTex }, + { + { 3, 71, 50 }, + }, + {} }, + { 1390, -570, std::string{ gDekuTreeRoom1MinimapTex }, {}, {} }, + { 1560, + -410, + std::string{ gDekuTreeRoom2MinimapTex }, + { + { 1, 64, 62 }, + { 5, 71, 69 }, + }, + {} }, + { 1220, + -690, + std::string{ gDekuTreeRoom3MinimapTex }, + { + { 4, 76, 37 }, + }, + {} }, + { 1200, -500, std::string{ gDekuTreeRoom4MinimapTex }, {}, {} }, + { 1390, -380, std::string{ gDekuTreeRoom5MinimapTex }, {}, {} }, + { 1770, -470, std::string{ gDekuTreeRoom6MinimapTex }, {}, {} }, + { 1610, -630, std::string{ gDekuTreeRoom7MinimapTex }, {}, {} }, + { 2000, -990, std::string{ gDekuTreeRoom8MinimapTex }, {}, {} }, + { 1290, + -870, + std::string{ gDekuTreeRoom9MinimapTex }, + {}, + { + { -1, 50, 23 }, + } }, + { 1420, + -720, + std::string{ gDekuTreeRoom10MinimapTex }, + { + { 2, 46, 50 }, + { 6, 58, 60 }, + }, + {} }, + { 1110, -630, std::string{ gDekuTreeRoom0Floor2MinimapTex }, {}, {} }, + { 1040, -660, std::string{ gDekuTreeRoom0Floor3MinimapTex }, {}, {} }, + }, + { + { 11, 12, 3 }, + { 0, 11, 4 }, + { 0, 12, 3 }, + { 12, 11, 4 }, + { 11, 0, 5 }, + }, + }, + {} }, { // SCENE_DODONGOS_CAVERN - "ddan_scene", - "Dodongo's Cavern", - "g_pn_08", - SDC_DODONGOS_CAVERN, - { false, false, false, false, false, false, false, false, false, false, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 4, 4, 1070, -690 }, - {}, - { - 7, - { 1, 3, 5, 6, 10, 3, 9, 2, 4, 2, 4, 7, 7, 8, 13, 11 }, - std::string{gPauseDodongoTitleENGTex}, - std::string{gPauseDodongoTitleGERTex}, - std::string{gPauseDodongoTitleFRATex}, - { - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_2F, 280.0f, { 0, 2, 3, 5, 6, 9, 10, 12, }, std::string{gDodongosCavernPauseScreenMapFloor2LeftTex}, std::string{gDodongosCavernPauseScreenMapFloor2RightTex}, { { 10, 25.0f, -41.0f }, { 4, 53.0f, -47.0f }, { 6, 58.0f, -59.0f } }, {}, }, - { F_1F, -440.0f, { 0, 1, 2, 3, 4, 7, 8, 11, 13, 14, 15, }, std::string{gDodongosCavernPauseScreenMapFloor1LeftTex}, std::string{gDodongosCavernPauseScreenMapFloor1RightTex}, { { 5, 13.0f, -60.0f }, { 8, 20.0f, -49.0f } }, { { -1, 23.0f, -25.0f } }, }, - }, - { - { 940, -780, std::string{gDodongosCavernRoom0MinimapTex}, { { 8, 22, 32 }, }, {} }, - { 320, -800, std::string{gDodongosCavernRoom1MinimapTex}, {}, {} }, - { 1500, -1090, std::string{gDodongosCavernRoom2MinimapTex}, {}, {} }, - { 240, -1230, std::string{gDodongosCavernRoom3MinimapTex}, {}, {} }, - { 580, -1140, std::string{gDodongosCavernRoom4MinimapTex}, {}, {} }, - { 1510, -820, std::string{gDodongosCavernRoom5MinimapTex}, {}, {} }, - { 720, -1210, std::string{gDodongosCavernRoom6MinimapTex}, {}, {} }, - { 1030, -1430, std::string{gDodongosCavernRoom7MinimapTex}, {}, { { -1, 37, 49 }, } }, - { 800, -1580, std::string{gDodongosCavernRoom8MinimapTex}, {}, {} }, - { 660, -920, std::string{gDodongosCavernRoom9MinimapTex}, { { 4, 58, 40 }, { 6, 65, 64 }, }, {} }, - { 180, -830, std::string{gDodongosCavernRoom10MinimapTex}, {}, {} }, - { 520, -730, std::string{gDodongosCavernRoom11MinimapTex}, {}, {} }, - { 310, -950, std::string{gDodongosCavernRoom12MinimapTex}, {}, {} }, - { 550, -1580, std::string{gDodongosCavernRoom13MinimapTex}, {}, {} }, - { 790, -1910, std::string{gDodongosCavernRoom14MinimapTex}, {}, {} }, - { 1650, -950, std::string{gDodongosCavernRoom15MinimapTex}, { { 5, 68, 64 }, }, {} }, - { 1000, -860, std::string{gDodongosCavernRoom0Floor3MinimapTex}, { { 10, 31, 27 }, }, {} }, - { 1570, -1070, std::string{gDodongosCavernRoom2Floor3MinimapTex}, {}, {} }, - { 80, -1070, std::string{gDodongosCavernRoom3Floor3MinimapTex}, {}, {} }, - }, - { - { 0, 16, 6 }, - { 2, 17, 6 }, - { 3, 18, 6 }, - { 16, 0, 7 }, - { 17, 2, 7 }, - { 18, 3, 7 }, - }, - }, - {} - }, + "ddan_scene", + "Dodongo's Cavern", + "g_pn_08", + SDC_DODONGOS_CAVERN, + { false, false, false, false, false, false, false, false, false, false, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 4, 4, 1070, -690 }, + {}, + { + 7, + { 1, 3, 5, 6, 10, 3, 9, 2, 4, 2, 4, 7, 7, 8, 13, 11 }, + std::string{ gPauseDodongoTitleENGTex }, + std::string{ gPauseDodongoTitleGERTex }, + std::string{ gPauseDodongoTitleFRATex }, + { + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_2F, + 280.0f, + { + 0, + 2, + 3, + 5, + 6, + 9, + 10, + 12, + }, + std::string{ gDodongosCavernPauseScreenMapFloor2LeftTex }, + std::string{ gDodongosCavernPauseScreenMapFloor2RightTex }, + { { 10, 25.0f, -41.0f }, { 4, 53.0f, -47.0f }, { 6, 58.0f, -59.0f } }, + {}, + }, + { + F_1F, + -440.0f, + { + 0, + 1, + 2, + 3, + 4, + 7, + 8, + 11, + 13, + 14, + 15, + }, + std::string{ gDodongosCavernPauseScreenMapFloor1LeftTex }, + std::string{ gDodongosCavernPauseScreenMapFloor1RightTex }, + { { 5, 13.0f, -60.0f }, { 8, 20.0f, -49.0f } }, + { { -1, 23.0f, -25.0f } }, + }, + }, + { + { 940, + -780, + std::string{ gDodongosCavernRoom0MinimapTex }, + { + { 8, 22, 32 }, + }, + {} }, + { 320, -800, std::string{ gDodongosCavernRoom1MinimapTex }, {}, {} }, + { 1500, -1090, std::string{ gDodongosCavernRoom2MinimapTex }, {}, {} }, + { 240, -1230, std::string{ gDodongosCavernRoom3MinimapTex }, {}, {} }, + { 580, -1140, std::string{ gDodongosCavernRoom4MinimapTex }, {}, {} }, + { 1510, -820, std::string{ gDodongosCavernRoom5MinimapTex }, {}, {} }, + { 720, -1210, std::string{ gDodongosCavernRoom6MinimapTex }, {}, {} }, + { 1030, + -1430, + std::string{ gDodongosCavernRoom7MinimapTex }, + {}, + { + { -1, 37, 49 }, + } }, + { 800, -1580, std::string{ gDodongosCavernRoom8MinimapTex }, {}, {} }, + { 660, + -920, + std::string{ gDodongosCavernRoom9MinimapTex }, + { + { 4, 58, 40 }, + { 6, 65, 64 }, + }, + {} }, + { 180, -830, std::string{ gDodongosCavernRoom10MinimapTex }, {}, {} }, + { 520, -730, std::string{ gDodongosCavernRoom11MinimapTex }, {}, {} }, + { 310, -950, std::string{ gDodongosCavernRoom12MinimapTex }, {}, {} }, + { 550, -1580, std::string{ gDodongosCavernRoom13MinimapTex }, {}, {} }, + { 790, -1910, std::string{ gDodongosCavernRoom14MinimapTex }, {}, {} }, + { 1650, + -950, + std::string{ gDodongosCavernRoom15MinimapTex }, + { + { 5, 68, 64 }, + }, + {} }, + { 1000, + -860, + std::string{ gDodongosCavernRoom0Floor3MinimapTex }, + { + { 10, 31, 27 }, + }, + {} }, + { 1570, -1070, std::string{ gDodongosCavernRoom2Floor3MinimapTex }, {}, {} }, + { 80, -1070, std::string{ gDodongosCavernRoom3Floor3MinimapTex }, {}, {} }, + }, + { + { 0, 16, 6 }, + { 2, 17, 6 }, + { 3, 18, 6 }, + { 16, 0, 7 }, + { 17, 2, 7 }, + { 18, 3, 7 }, + }, + }, + {} }, { // SCENE_JABU_JABU - "bdan_scene", - "Inside Jabu-Jabu's Belly", - "g_pn_07", - SDC_JABU_JABU, - { false, false, false, false, false, false, false, false, false, false, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 3, 3, 1070, -690 }, - {}, - { - 6, - { 3, 1, 2, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3 }, - std::string{gPauseJabuTitleENGTex}, - std::string{gPauseJabuTitleGERTex}, - std::string{gPauseJabuTitleFRATex}, - { - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_1F, -640.0f, { 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, }, std::string{gJabuPauseScreenMapFloor1LeftTex}, std::string{gJabuPauseScreenMapFloor1RightTex}, { { 1, 67.0f, -13.0f }, { 2, 28.0f, -13.0f }, { 4, 38.0f, 0.0f } }, { { -1, 65.0f, -37.0f } }, }, - { F_B1, -3000.0f, { 1, 3, 6, 13, 14, }, std::string{gJabuPauseScreenMapBasement1LeftTex}, std::string{gJabuPauseScreenMapBasement1RightTex}, {}, {}, }, - }, - { - { 1130, -770, std::string{gJabuRoom0MinimapTex}, {}, {} }, - { 1070, -1320, std::string{gJabuRoom1MinimapTex}, {}, {} }, - { 1090, -1750, std::string{gJabuRoom2MinimapTex}, {}, {} }, - { 1160, -1800, std::string{gJabuRoom3MinimapTex}, {}, {} }, - { 1500, -1360, std::string{gJabuRoom4MinimapTex}, {}, {} }, - { 690, -1330, std::string{gJabuRoom5MinimapTex}, {}, { { -1, 67, 32 }, } }, - { 1540, -1700, std::string{gJabuRoom6MinimapTex}, {}, {} }, - { 920, -2280, std::string{gJabuRoom7MinimapTex}, {}, {} }, - { 1160, -2700, std::string{gJabuRoom8MinimapTex}, {}, {} }, - { 700, -2360, std::string{gJabuRoom9MinimapTex}, { { 1, 74, 57 }, }, {} }, - { 1650, -2360, std::string{gJabuRoom10MinimapTex}, { { 2, 59, 57 }, }, {} }, - { 950, -2650, std::string{gJabuRoom11MinimapTex}, {}, {} }, - { 1380, -2650, std::string{gJabuRoom12MinimapTex}, { { 4, 68, 51 }, }, {} }, - { 1460, -1600, std::string{gJabuRoom13MinimapTex}, {}, {} }, - { 830, -1445, std::string{gJabuRoom14MinimapTex}, {}, {} }, - { 1170, -1370, std::string{gJabuRoom1Basement1MinimapTex}, {}, {} }, - { 1620, -1910, std::string{gJabuRoom6Basement1MinimapTex}, {}, {} }, - }, - { - { 1, 15, 7 }, - { 6, 16, 7 }, - { 15, 1, 6 }, - { 16, 6, 6 }, - }, - }, - {} - }, + "bdan_scene", + "Inside Jabu-Jabu's Belly", + "g_pn_07", + SDC_JABU_JABU, + { false, false, false, false, false, false, false, false, false, false, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 3, 3, 1070, -690 }, + {}, + { + 6, + { 3, 1, 2, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3 }, + std::string{ gPauseJabuTitleENGTex }, + std::string{ gPauseJabuTitleGERTex }, + std::string{ gPauseJabuTitleFRATex }, + { + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_1F, + -640.0f, + { + 0, + 1, + 2, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + }, + std::string{ gJabuPauseScreenMapFloor1LeftTex }, + std::string{ gJabuPauseScreenMapFloor1RightTex }, + { { 1, 67.0f, -13.0f }, { 2, 28.0f, -13.0f }, { 4, 38.0f, 0.0f } }, + { { -1, 65.0f, -37.0f } }, + }, + { + F_B1, + -3000.0f, + { + 1, + 3, + 6, + 13, + 14, + }, + std::string{ gJabuPauseScreenMapBasement1LeftTex }, + std::string{ gJabuPauseScreenMapBasement1RightTex }, + {}, + {}, + }, + }, + { + { 1130, -770, std::string{ gJabuRoom0MinimapTex }, {}, {} }, + { 1070, -1320, std::string{ gJabuRoom1MinimapTex }, {}, {} }, + { 1090, -1750, std::string{ gJabuRoom2MinimapTex }, {}, {} }, + { 1160, -1800, std::string{ gJabuRoom3MinimapTex }, {}, {} }, + { 1500, -1360, std::string{ gJabuRoom4MinimapTex }, {}, {} }, + { 690, + -1330, + std::string{ gJabuRoom5MinimapTex }, + {}, + { + { -1, 67, 32 }, + } }, + { 1540, -1700, std::string{ gJabuRoom6MinimapTex }, {}, {} }, + { 920, -2280, std::string{ gJabuRoom7MinimapTex }, {}, {} }, + { 1160, -2700, std::string{ gJabuRoom8MinimapTex }, {}, {} }, + { 700, + -2360, + std::string{ gJabuRoom9MinimapTex }, + { + { 1, 74, 57 }, + }, + {} }, + { 1650, + -2360, + std::string{ gJabuRoom10MinimapTex }, + { + { 2, 59, 57 }, + }, + {} }, + { 950, -2650, std::string{ gJabuRoom11MinimapTex }, {}, {} }, + { 1380, + -2650, + std::string{ gJabuRoom12MinimapTex }, + { + { 4, 68, 51 }, + }, + {} }, + { 1460, -1600, std::string{ gJabuRoom13MinimapTex }, {}, {} }, + { 830, -1445, std::string{ gJabuRoom14MinimapTex }, {}, {} }, + { 1170, -1370, std::string{ gJabuRoom1Basement1MinimapTex }, {}, {} }, + { 1620, -1910, std::string{ gJabuRoom6Basement1MinimapTex }, {}, {} }, + }, + { + { 1, 15, 7 }, + { 6, 16, 7 }, + { 15, 1, 6 }, + { 16, 6, 6 }, + }, + }, + {} }, { // SCENE_FOREST_TEMPLE - "Bmori1_scene", - "Forest Temple", - "g_pn_01", - SDC_FOREST_TEMPLE, - { false, false, false, false, false, false, false, false, false, false, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 4, 4, 1070, -690 }, - {}, - { - 7, - { 9, 1, 2, 3, 6, 5, 6, 7, 8, 8, 5, 4, 3, 13, 11, 10, 11, 2, 13, 12, 10, 12, 13 }, - std::string{gPauseForestTitleENGTex}, - std::string{gPauseForestTitleGERTex}, - std::string{gPauseForestTitleFRATex}, - { - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_2F, 760.0f, { 0, 6, 7, 8, 10, 11, 12, 13, 14, 19, 20, }, std::string{gForestTemplePauseScreenMapFloor2LeftTex}, std::string{gForestTemplePauseScreenMapFloor2RightTex}, { { 0, 49.0f, -3.0f }, { 2, 12.0f, -26.0f }, { 5, 74.0f, -13.0f }, { 7, 82.0f, -22.0f } }, {}, }, - { F_1F, -40.0f, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 15, 16, 18, 21, }, std::string{gForestTemplePauseScreenMapFloor1LeftTex}, std::string{gForestTemplePauseScreenMapFloor1RightTex}, { { 0, 49.0f, -3.0f }, { 2, 12.0f, -26.0f }, { 5, 74.0f, -13.0f }, { 7, 82.0f, -22.0f } }, {}, }, - { F_B1, -440.0f, { 9, }, std::string{gForestTemplePauseScreenMapBasement1LeftTex}, std::string{gForestTemplePauseScreenMapBasement1RightTex}, { { 9, 31.0f, -29.0f } }, {}, }, - { F_B2, -3000.0f, { 17, }, std::string{gForestTemplePauseScreenMapBasement2LeftTex}, std::string{gForestTemplePauseScreenMapBasement2RightTex}, { { 11, 40.0f, -41.0f } }, { { -1, 50.0f, -11.0f } }, }, - }, - { - { 1130, -660, std::string{gForestTempleRoom0Floor1MinimapTex}, {}, {} }, - { 1170, -900, std::string{gForestTempleRoom1MinimapTex}, {}, {} }, - { 965, -1040, std::string{gForestTempleRoom2MinimapTex}, {}, {} }, - { 890, -1210, std::string{gForestTempleRoom3MinimapTex}, {}, {} }, - { 1170, -1520, std::string{gForestTempleRoom4MinimapTex}, {}, {} }, - { 1460, -1190, std::string{gForestTempleRoom5MinimapTex}, {}, {} }, - { 1170, -1670, std::string{gForestTempleRoom6Floor1MinimapTex}, { { 0, 72, 60 }, }, {} }, - { 800, -1320, std::string{gForestTempleRoom7Floor1MinimapTex}, { { 5, 76, 38 }, }, {} }, - { 1320, -1310, std::string{gForestTempleRoom8Floor1MinimapTex}, { { 9, 59, 66 }, }, {} }, - { 880, -1260, std::string{gForestTempleRoom9MinimapTex}, { { 9, 15, 58 }, }, {} }, - { 1130, -1500, std::string{gForestTempleRoom10MinimapTex}, { { 1, 69, 56 }, }, {} }, - { 1590, -1080, std::string{gForestTempleRoom11Floor1MinimapTex}, {}, {} }, - { 1390, -1650, std::string{gForestTempleRoom12MinimapTex}, { { 13, 80, 54 }, }, {} }, - { 830, -1620, std::string{gForestTempleRoom13MinimapTex}, { { 15, 49, 50 }, }, {} }, - { 610, -1090, std::string{gForestTempleRoom14MinimapTex}, {}, {} }, - { 580, -1390, std::string{gForestTempleRoom15MinimapTex}, { { 7, 61, 61 }, }, {} }, - { 710, -1220, std::string{gForestTempleRoom16MinimapTex}, {}, {} }, - { 980, -1090, std::string{gForestTempleRoom17MinimapTex}, { { 11, 39, 63 }, }, { { -1, 53, 5 }, } }, - { 1640, -1290, std::string{gForestTempleRoom18MinimapTex}, { { 2, 66, 57 }, }, {} }, - { 1510, -1410, std::string{gForestTempleRoom19MinimapTex}, { { 14, 64, 31 }, }, {} }, - { 590, -1390, std::string{gForestTempleRoom20MinimapTex}, {}, {} }, - { 1610, -1600, std::string{gForestTempleRoom21MinimapTex}, {}, {} }, - { 1130, -660, std::string{gForestTempleRoom0Floor3MinimapTex}, { { 3, 63, 56 }, }, {} }, - { 1130, -1630, std::string{gForestTempleRoom6Floor3MinimapTex}, { { 12, 69, 59 }, }, {} }, - { 820, -1290, std::string{gForestTempleRoom7Floor3MinimapTex}, {}, {} }, - { 1320, -1290, std::string{gForestTempleRoom8Floor3MinimapTex}, {}, {} }, - { 1620, -1080, std::string{gForestTempleRoom11Floor3MinimapTex}, { { 4, 73, 54 }, }, {} }, - }, - { - { 0, 22, 4 }, - { 6, 23, 4 }, - { 7, 24, 4 }, - { 8, 25, 4 }, - { 11, 26, 4 }, - { 22, 0, 5 }, - { 23, 6, 5 }, - { 24, 7, 5 }, - { 25, 8, 5 }, - { 26, 11, 5 }, - }, - }, - {} - }, + "Bmori1_scene", + "Forest Temple", + "g_pn_01", + SDC_FOREST_TEMPLE, + { false, false, false, false, false, false, false, false, false, false, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 4, 4, 1070, -690 }, + {}, + { + 7, + { 9, 1, 2, 3, 6, 5, 6, 7, 8, 8, 5, 4, 3, 13, 11, 10, 11, 2, 13, 12, 10, 12, 13 }, + std::string{ gPauseForestTitleENGTex }, + std::string{ gPauseForestTitleGERTex }, + std::string{ gPauseForestTitleFRATex }, + { + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_2F, + 760.0f, + { + 0, + 6, + 7, + 8, + 10, + 11, + 12, + 13, + 14, + 19, + 20, + }, + std::string{ gForestTemplePauseScreenMapFloor2LeftTex }, + std::string{ gForestTemplePauseScreenMapFloor2RightTex }, + { { 0, 49.0f, -3.0f }, { 2, 12.0f, -26.0f }, { 5, 74.0f, -13.0f }, { 7, 82.0f, -22.0f } }, + {}, + }, + { + F_1F, + -40.0f, + { + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 11, + 15, + 16, + 18, + 21, + }, + std::string{ gForestTemplePauseScreenMapFloor1LeftTex }, + std::string{ gForestTemplePauseScreenMapFloor1RightTex }, + { { 0, 49.0f, -3.0f }, { 2, 12.0f, -26.0f }, { 5, 74.0f, -13.0f }, { 7, 82.0f, -22.0f } }, + {}, + }, + { + F_B1, + -440.0f, + { + 9, + }, + std::string{ gForestTemplePauseScreenMapBasement1LeftTex }, + std::string{ gForestTemplePauseScreenMapBasement1RightTex }, + { { 9, 31.0f, -29.0f } }, + {}, + }, + { + F_B2, + -3000.0f, + { + 17, + }, + std::string{ gForestTemplePauseScreenMapBasement2LeftTex }, + std::string{ gForestTemplePauseScreenMapBasement2RightTex }, + { { 11, 40.0f, -41.0f } }, + { { -1, 50.0f, -11.0f } }, + }, + }, + { + { 1130, -660, std::string{ gForestTempleRoom0Floor1MinimapTex }, {}, {} }, + { 1170, -900, std::string{ gForestTempleRoom1MinimapTex }, {}, {} }, + { 965, -1040, std::string{ gForestTempleRoom2MinimapTex }, {}, {} }, + { 890, -1210, std::string{ gForestTempleRoom3MinimapTex }, {}, {} }, + { 1170, -1520, std::string{ gForestTempleRoom4MinimapTex }, {}, {} }, + { 1460, -1190, std::string{ gForestTempleRoom5MinimapTex }, {}, {} }, + { 1170, + -1670, + std::string{ gForestTempleRoom6Floor1MinimapTex }, + { + { 0, 72, 60 }, + }, + {} }, + { 800, + -1320, + std::string{ gForestTempleRoom7Floor1MinimapTex }, + { + { 5, 76, 38 }, + }, + {} }, + { 1320, + -1310, + std::string{ gForestTempleRoom8Floor1MinimapTex }, + { + { 9, 59, 66 }, + }, + {} }, + { 880, + -1260, + std::string{ gForestTempleRoom9MinimapTex }, + { + { 9, 15, 58 }, + }, + {} }, + { 1130, + -1500, + std::string{ gForestTempleRoom10MinimapTex }, + { + { 1, 69, 56 }, + }, + {} }, + { 1590, -1080, std::string{ gForestTempleRoom11Floor1MinimapTex }, {}, {} }, + { 1390, + -1650, + std::string{ gForestTempleRoom12MinimapTex }, + { + { 13, 80, 54 }, + }, + {} }, + { 830, + -1620, + std::string{ gForestTempleRoom13MinimapTex }, + { + { 15, 49, 50 }, + }, + {} }, + { 610, -1090, std::string{ gForestTempleRoom14MinimapTex }, {}, {} }, + { 580, + -1390, + std::string{ gForestTempleRoom15MinimapTex }, + { + { 7, 61, 61 }, + }, + {} }, + { 710, -1220, std::string{ gForestTempleRoom16MinimapTex }, {}, {} }, + { 980, + -1090, + std::string{ gForestTempleRoom17MinimapTex }, + { + { 11, 39, 63 }, + }, + { + { -1, 53, 5 }, + } }, + { 1640, + -1290, + std::string{ gForestTempleRoom18MinimapTex }, + { + { 2, 66, 57 }, + }, + {} }, + { 1510, + -1410, + std::string{ gForestTempleRoom19MinimapTex }, + { + { 14, 64, 31 }, + }, + {} }, + { 590, -1390, std::string{ gForestTempleRoom20MinimapTex }, {}, {} }, + { 1610, -1600, std::string{ gForestTempleRoom21MinimapTex }, {}, {} }, + { 1130, + -660, + std::string{ gForestTempleRoom0Floor3MinimapTex }, + { + { 3, 63, 56 }, + }, + {} }, + { 1130, + -1630, + std::string{ gForestTempleRoom6Floor3MinimapTex }, + { + { 12, 69, 59 }, + }, + {} }, + { 820, -1290, std::string{ gForestTempleRoom7Floor3MinimapTex }, {}, {} }, + { 1320, -1290, std::string{ gForestTempleRoom8Floor3MinimapTex }, {}, {} }, + { 1620, + -1080, + std::string{ gForestTempleRoom11Floor3MinimapTex }, + { + { 4, 73, 54 }, + }, + {} }, + }, + { + { 0, 22, 4 }, + { 6, 23, 4 }, + { 7, 24, 4 }, + { 8, 25, 4 }, + { 11, 26, 4 }, + { 22, 0, 5 }, + { 23, 6, 5 }, + { 24, 7, 5 }, + { 25, 8, 5 }, + { 26, 11, 5 }, + }, + }, + {} }, { // SCENE_FIRE_TEMPLE - "HIDAN_scene", - "Fire Temple", - "g_pn_03", - SDC_FIRE_TEMPLE, - { false, false, false, false, false, false, false, false, false, false, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 4, 4, 1070, -690 }, - {}, - { - 7, - { 1, 6, 7, 2, 3, 4, 6, 10, 6, 10, 7, 9, 11, 1, 12, 3, 11, 4, 5, 8, 9, 10, 11, 12, 13, 2 }, - std::string{gPauseFireTitleENGTex}, - std::string{gPauseFireTitleGERTex}, - std::string{gPauseFireTitleFRATex}, - { - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_5F, 4360.0f, { 7, 8, 12, 13, }, std::string{gFireTemplePauseScreenMapFloor5LeftTex}, std::string{gFireTemplePauseScreenMapFloor5RightTex}, { { 5, 22.0f, -41.0f }, { 13, 74.0f, -29.0f } }, {}, }, - { F_4F, 3640.0f, { 5, 6, 7, 10, 11, 12, 13, 14, 24, }, std::string{gFireTemplePauseScreenMapFloor4LeftTex}, std::string{gFireTemplePauseScreenMapFloor4RightTex}, {}, {}, }, - { F_3F, 2760.0f, { 4, 5, 6, 9, 10, 11, 16, 23, 24, 25, }, std::string{gFireTemplePauseScreenMapFloor3LeftTex}, std::string{gFireTemplePauseScreenMapFloor3RightTex}, { { 3, 76.0f, -48.0f }, { 6, 72.0f, -50.0f }, { 7, 44.0f, -17.0f }, { 8, 63.0f, -12.0f }, { 9, 30.0f, -34.0f }, { 10, 61.0f, -31.0f } }, {}, }, - { F_2F, 2020.0f, { 4, 6, 10, 21, }, std::string{gFireTemplePauseScreenMapFloor2LeftTex}, std::string{gFireTemplePauseScreenMapFloor2RightTex}, { { 11, 78.0f, -34.0f } }, {}, }, - { F_1F, -140.0f, { 0, 1, 2, 3, 15, 17, 18, 19, 20, 21, 22, }, std::string{gFireTemplePauseScreenMapFloor1LeftTex}, std::string{gFireTemplePauseScreenMapFloor1RightTex}, { { 0, 48.0f, -17.0f }, { 1, 35.0f, -45.0f }, { 2, 67.0f, -58.0f }, { 4, 74.0f, -15.0f }, { 12, 47.0f, -27.0f } }, { { -1, 26.0f, -34.0f } }, }, - }, - { - { 1160, -580, std::string{gFireTempleRoom0MinimapTex}, {}, {} }, - { 620, -620, std::string{gFireTempleRoom1MinimapTex}, {}, {} }, - { 1330, -700, std::string{gFireTempleRoom2MinimapTex}, { { 1, 53, 70 }, }, { { -1, 40, 47 }, } }, - { 1280, -1150, std::string{gFireTempleRoom3MinimapTex}, { { 0, 71, 60 }, }, {} }, - { 440, -710, std::string{gFireTempleRoom4Floor1MinimapTex}, { { 11, 59, 46 }, }, {} }, - { 600, -670, std::string{gFireTempleRoom5Floor1MinimapTex}, { { 6, 57, 73 }, { 3, 66, 71 }, }, {} }, - { 810, -850, std::string{gFireTempleRoom6Floor1MinimapTex}, {}, {} }, - { 830, -1000, std::string{gFireTempleRoom7Floor1MinimapTex}, {}, {} }, - { 720, -720, std::string{gFireTempleRoom8MinimapTex}, { { 13, 72, 38 }, }, {} }, - { 1170, -840, std::string{gFireTempleRoom9MinimapTex}, {}, {} }, - { 1490, -870, std::string{gFireTempleRoom10Floor1MinimapTex}, {}, {} }, - { 1640, -840, std::string{gFireTempleRoom11Floor1MinimapTex}, { { 9, 80, 61 }, }, {} }, - { 1870, -790, std::string{gFireTempleRoom12Floor1MinimapTex}, {}, {} }, - { 1800, -1000, std::string{gFireTempleRoom13Floor1MinimapTex}, {}, {} }, - { 1610, -980, std::string{gFireTempleRoom14MinimapTex}, {}, {} }, - { 1130, -900, std::string{gFireTempleRoom15MinimapTex}, {}, {} }, - { 860, -660, std::string{gFireTempleRoom16MinimapTex}, { { 10, 71, 36 }, }, {} }, - { 1310, -910, std::string{gFireTempleRoom17MinimapTex}, { { 12, 77, 58 }, }, {} }, - { 1140, -1130, std::string{gFireTempleRoom18MinimapTex}, {}, {} }, - { 850, -1230, std::string{gFireTempleRoom19MinimapTex}, {}, {} }, - { 760, -1300, std::string{gFireTempleRoom20MinimapTex}, { { 4, 78, 59 }, }, {} }, - { 380, -810, std::string{gFireTempleRoom21Floor1MinimapTex}, {}, {} }, - { 800, -380, std::string{gFireTempleRoom22MinimapTex}, { { 2, 71, 68 }, }, {} }, - { 800, -1270, std::string{gFireTempleRoom23MinimapTex}, { { 8, 66, 58 }, }, {} }, - { 1930, -820, std::string{gFireTempleRoom24Floor1MinimapTex}, {}, {} }, - { 1410, -1120, std::string{gFireTempleRoom25MinimapTex}, { { 7, 77, 54 }, }, {} }, - { 640, -880, std::string{gFireTempleRoom4Floor3MinimapTex}, {}, {} }, - { 845, -1070, std::string{gFireTempleRoom5Floor3MinimapTex}, {}, {} }, - { 810, -850, std::string{gFireTempleRoom6Floor2MinimapTex}, {}, {} }, - { 810, -850, std::string{gFireTempleRoom6Floor3MinimapTex}, {}, {} }, - { 850, -1060, std::string{gFireTempleRoom7Floor3MinimapTex}, {}, {} }, - { 1390, -640, std::string{gFireTempleRoom10Floor2MinimapTex}, {}, {} }, - { 1540, -900, std::string{gFireTempleRoom10Floor3MinimapTex}, {}, {} }, - { 1650, -850, std::string{gFireTempleRoom11Floor3MinimapTex}, {}, {} }, - { 1880, -890, std::string{gFireTempleRoom12Floor3MinimapTex}, {}, {} }, - { 1530, -740, std::string{gFireTempleRoom13Floor3MinimapTex}, { { 5, 49, 62 }, }, {} }, - { 420, -880, std::string{gFireTempleRoom21Floor3MinimapTex}, {}, {} }, - { 1950, -840, std::string{gFireTempleRoom24Floor3MinimapTex}, {}, {} }, - }, - { - { 21, 36, 6 }, - { 4, 26, 5 }, - { 6, 28, 5 }, - { 10, 31, 5 }, - { 5, 27, 4 }, - { 11, 33, 4 }, - { 24, 37, 4 }, - { 28, 29, 4 }, - { 31, 32, 4 }, - { 10, 32, 4 }, - { 7, 30, 3 }, - { 12, 34, 3 }, - { 13, 35, 3 }, - { 30, 7, 4 }, - { 34, 12, 4 }, - { 35, 13, 4 }, - { 27, 5, 5 }, - { 33, 11, 5 }, - { 37, 24, 5 }, - { 29, 28, 5 }, - { 32, 31, 5 }, - { 26, 4, 6 }, - { 28, 6, 6 }, - { 31, 10, 6 }, - { 36, 21, 7 }, - }, - }, - {} - }, + "HIDAN_scene", + "Fire Temple", + "g_pn_03", + SDC_FIRE_TEMPLE, + { false, false, false, false, false, false, false, false, false, false, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 4, 4, 1070, -690 }, + {}, + { + 7, + { 1, 6, 7, 2, 3, 4, 6, 10, 6, 10, 7, 9, 11, 1, 12, 3, 11, 4, 5, 8, 9, 10, 11, 12, 13, 2 }, + std::string{ gPauseFireTitleENGTex }, + std::string{ gPauseFireTitleGERTex }, + std::string{ gPauseFireTitleFRATex }, + { + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_5F, + 4360.0f, + { + 7, + 8, + 12, + 13, + }, + std::string{ gFireTemplePauseScreenMapFloor5LeftTex }, + std::string{ gFireTemplePauseScreenMapFloor5RightTex }, + { { 5, 22.0f, -41.0f }, { 13, 74.0f, -29.0f } }, + {}, + }, + { + F_4F, + 3640.0f, + { + 5, + 6, + 7, + 10, + 11, + 12, + 13, + 14, + 24, + }, + std::string{ gFireTemplePauseScreenMapFloor4LeftTex }, + std::string{ gFireTemplePauseScreenMapFloor4RightTex }, + {}, + {}, + }, + { + F_3F, + 2760.0f, + { + 4, + 5, + 6, + 9, + 10, + 11, + 16, + 23, + 24, + 25, + }, + std::string{ gFireTemplePauseScreenMapFloor3LeftTex }, + std::string{ gFireTemplePauseScreenMapFloor3RightTex }, + { { 3, 76.0f, -48.0f }, + { 6, 72.0f, -50.0f }, + { 7, 44.0f, -17.0f }, + { 8, 63.0f, -12.0f }, + { 9, 30.0f, -34.0f }, + { 10, 61.0f, -31.0f } }, + {}, + }, + { + F_2F, + 2020.0f, + { + 4, + 6, + 10, + 21, + }, + std::string{ gFireTemplePauseScreenMapFloor2LeftTex }, + std::string{ gFireTemplePauseScreenMapFloor2RightTex }, + { { 11, 78.0f, -34.0f } }, + {}, + }, + { + F_1F, + -140.0f, + { + 0, + 1, + 2, + 3, + 15, + 17, + 18, + 19, + 20, + 21, + 22, + }, + std::string{ gFireTemplePauseScreenMapFloor1LeftTex }, + std::string{ gFireTemplePauseScreenMapFloor1RightTex }, + { { 0, 48.0f, -17.0f }, + { 1, 35.0f, -45.0f }, + { 2, 67.0f, -58.0f }, + { 4, 74.0f, -15.0f }, + { 12, 47.0f, -27.0f } }, + { { -1, 26.0f, -34.0f } }, + }, + }, + { + { 1160, -580, std::string{ gFireTempleRoom0MinimapTex }, {}, {} }, + { 620, -620, std::string{ gFireTempleRoom1MinimapTex }, {}, {} }, + { 1330, + -700, + std::string{ gFireTempleRoom2MinimapTex }, + { + { 1, 53, 70 }, + }, + { + { -1, 40, 47 }, + } }, + { 1280, + -1150, + std::string{ gFireTempleRoom3MinimapTex }, + { + { 0, 71, 60 }, + }, + {} }, + { 440, + -710, + std::string{ gFireTempleRoom4Floor1MinimapTex }, + { + { 11, 59, 46 }, + }, + {} }, + { 600, + -670, + std::string{ gFireTempleRoom5Floor1MinimapTex }, + { + { 6, 57, 73 }, + { 3, 66, 71 }, + }, + {} }, + { 810, -850, std::string{ gFireTempleRoom6Floor1MinimapTex }, {}, {} }, + { 830, -1000, std::string{ gFireTempleRoom7Floor1MinimapTex }, {}, {} }, + { 720, + -720, + std::string{ gFireTempleRoom8MinimapTex }, + { + { 13, 72, 38 }, + }, + {} }, + { 1170, -840, std::string{ gFireTempleRoom9MinimapTex }, {}, {} }, + { 1490, -870, std::string{ gFireTempleRoom10Floor1MinimapTex }, {}, {} }, + { 1640, + -840, + std::string{ gFireTempleRoom11Floor1MinimapTex }, + { + { 9, 80, 61 }, + }, + {} }, + { 1870, -790, std::string{ gFireTempleRoom12Floor1MinimapTex }, {}, {} }, + { 1800, -1000, std::string{ gFireTempleRoom13Floor1MinimapTex }, {}, {} }, + { 1610, -980, std::string{ gFireTempleRoom14MinimapTex }, {}, {} }, + { 1130, -900, std::string{ gFireTempleRoom15MinimapTex }, {}, {} }, + { 860, + -660, + std::string{ gFireTempleRoom16MinimapTex }, + { + { 10, 71, 36 }, + }, + {} }, + { 1310, + -910, + std::string{ gFireTempleRoom17MinimapTex }, + { + { 12, 77, 58 }, + }, + {} }, + { 1140, -1130, std::string{ gFireTempleRoom18MinimapTex }, {}, {} }, + { 850, -1230, std::string{ gFireTempleRoom19MinimapTex }, {}, {} }, + { 760, + -1300, + std::string{ gFireTempleRoom20MinimapTex }, + { + { 4, 78, 59 }, + }, + {} }, + { 380, -810, std::string{ gFireTempleRoom21Floor1MinimapTex }, {}, {} }, + { 800, + -380, + std::string{ gFireTempleRoom22MinimapTex }, + { + { 2, 71, 68 }, + }, + {} }, + { 800, + -1270, + std::string{ gFireTempleRoom23MinimapTex }, + { + { 8, 66, 58 }, + }, + {} }, + { 1930, -820, std::string{ gFireTempleRoom24Floor1MinimapTex }, {}, {} }, + { 1410, + -1120, + std::string{ gFireTempleRoom25MinimapTex }, + { + { 7, 77, 54 }, + }, + {} }, + { 640, -880, std::string{ gFireTempleRoom4Floor3MinimapTex }, {}, {} }, + { 845, -1070, std::string{ gFireTempleRoom5Floor3MinimapTex }, {}, {} }, + { 810, -850, std::string{ gFireTempleRoom6Floor2MinimapTex }, {}, {} }, + { 810, -850, std::string{ gFireTempleRoom6Floor3MinimapTex }, {}, {} }, + { 850, -1060, std::string{ gFireTempleRoom7Floor3MinimapTex }, {}, {} }, + { 1390, -640, std::string{ gFireTempleRoom10Floor2MinimapTex }, {}, {} }, + { 1540, -900, std::string{ gFireTempleRoom10Floor3MinimapTex }, {}, {} }, + { 1650, -850, std::string{ gFireTempleRoom11Floor3MinimapTex }, {}, {} }, + { 1880, -890, std::string{ gFireTempleRoom12Floor3MinimapTex }, {}, {} }, + { 1530, + -740, + std::string{ gFireTempleRoom13Floor3MinimapTex }, + { + { 5, 49, 62 }, + }, + {} }, + { 420, -880, std::string{ gFireTempleRoom21Floor3MinimapTex }, {}, {} }, + { 1950, -840, std::string{ gFireTempleRoom24Floor3MinimapTex }, {}, {} }, + }, + { + { 21, 36, 6 }, { 4, 26, 5 }, { 6, 28, 5 }, { 10, 31, 5 }, { 5, 27, 4 }, { 11, 33, 4 }, { 24, 37, 4 }, + { 28, 29, 4 }, { 31, 32, 4 }, { 10, 32, 4 }, { 7, 30, 3 }, { 12, 34, 3 }, { 13, 35, 3 }, { 30, 7, 4 }, + { 34, 12, 4 }, { 35, 13, 4 }, { 27, 5, 5 }, { 33, 11, 5 }, { 37, 24, 5 }, { 29, 28, 5 }, { 32, 31, 5 }, + { 26, 4, 6 }, { 28, 6, 6 }, { 31, 10, 6 }, { 36, 21, 7 }, + }, + }, + {} }, { // SCENE_WATER_TEMPLE - "MIZUsin_scene", - "Water Temple", - "g_pn_04", - SDC_WATER_TEMPLE, - { false, false, false, false, false, false, false, false, false, false, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 4, 4, 900, -640 }, - {}, - { - 4, - { 1, 2, 10, 3, 3, 4, 5, 13, 5, 6, 7, 8, 7, 9, 8, 9, 11, 10, 12, 11, 12, 13, 9, 7, 8, 12 }, - std::string{gPauseWaterTitleENGTex}, - std::string{gPauseWaterTitleGERTex}, - std::string{gPauseWaterTitleFRATex}, - { - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_3F, 690.0f, { 0, 1, 4, 5, 6, 7, 10, 11, 13, 17, 19, 20, }, std::string{gWaterTemplePauseScreenMapFloor3LeftTex}, std::string{gWaterTemplePauseScreenMapFloor3RightTex}, { { 2, 88.0f, -60.0f }, { 7, 23.0f, -2.0f }, { 9, 84.0f, -45.0f } }, { { -1, 62.0f, -23.0f } }, }, - { F_2F, 330.0f, { 0, 1, 4, 5, 6, 10, 17, 20, 21, }, std::string{gWaterTemplePauseScreenMapFloor2LeftTex}, std::string{gWaterTemplePauseScreenMapFloor2RightTex}, { { 0, 86.0f, -60.0f }, { 8, 76.0f, -72.0f } }, {}, }, - { F_1F, -160.0f, { 0, 1, 3, 5, 8, 9, 12, 14, 15, 16, 17, 18, 21, }, std::string{gWaterTemplePauseScreenMapFloor1LeftTex}, std::string{gWaterTemplePauseScreenMapFloor1RightTex}, { { 1, 88.0f, -60.0f }, { 3, 42.0f, -21.0f }, { 5, 47.0f, -15.0f }, { 10, 33.0f, -31.0f } }, {}, }, - { F_B1, -3000.0f, { 0, 1, 2, 3, 5, 8, 9, 12, 14, 15, }, std::string{gWaterTemplePauseScreenMapBasement1LeftTex}, std::string{gWaterTemplePauseScreenMapBasement1RightTex}, { { 6, 77.0f, -66.0f } }, {}, }, - }, - { - { 1120, -610, std::string{gWaterTempleRoom0Floor3MinimapTex}, {}, {} }, - { 1290, -930, std::string{gWaterTempleRoom1Floor3MinimapTex}, {}, {} }, - { 1120, -770, std::string{gWaterTempleRoom2MinimapTex}, { { 6, 79, 68 }, }, {} }, - { 1380, -680, std::string{gWaterTempleRoom3Floor3MinimapTex}, {}, {} }, - { 930, -1060, std::string{gWaterTempleRoom4Floor3MinimapTex}, { { 9, 81, 62 }, }, {} }, - { 1520, -930, std::string{gWaterTempleRoom5Floor3MinimapTex}, {}, {} }, - { 1980, -980, std::string{gWaterTempleRoom6MinimapTex}, {}, {} }, - { 2010, -1860, std::string{gWaterTempleRoom7MinimapTex}, { { 7, 74, 62 }, }, {} }, - { 1590, -1380, std::string{gWaterTempleRoom8Floor3MinimapTex}, { { 10, 57, 66 }, }, {} }, - { 1510, -1050, std::string{gWaterTempleRoom9Floor3MinimapTex}, {}, {} }, - { 1500, -830, std::string{gWaterTempleRoom10Floor3MinimapTex}, {}, {} }, - { 1300, -1230, std::string{gWaterTempleRoom11MinimapTex}, {}, { { -1, 77, 40 }, } }, - { 1240, -1380, std::string{gWaterTempleRoom12Floor3MinimapTex}, {}, {} }, - { 1800, -1330, std::string{gWaterTempleRoom13MinimapTex}, {}, {} }, - { 1290, -1750, std::string{gWaterTempleRoom14Floor3MinimapTex}, {}, {} }, - { 1450, -1610, std::string{gWaterTempleRoom15Floor3MinimapTex}, {}, {} }, - { 1560, -1600, std::string{gWaterTempleRoom16MinimapTex}, { { 5, 76, 64 }, }, {} }, - { 880, -830, std::string{gWaterTempleRoom17Floor3MinimapTex}, {}, {} }, - { 820, -800, std::string{gWaterTempleRoom18MinimapTex}, { { 1, 74, 61 }, }, {} }, - { 820, -820, std::string{gWaterTempleRoom19MinimapTex}, { { 2, 74, 63 }, }, {} }, - { 1060, -690, std::string{gWaterTempleRoom20Floor3MinimapTex}, {}, {} }, - { 1670, -1540, std::string{gWaterTempleRoom21Floor3MinimapTex}, {}, {} }, - { 1120, -620, std::string{gWaterTempleRoom0Floor2MinimapTex}, {}, {} }, - { 1130, -790, std::string{gWaterTempleRoom0Floor1MinimapTex}, {}, {} }, - { 1130, -780, std::string{gWaterTempleRoom0Basement1MinimapTex}, {}, {} }, - { 1290, -930, std::string{gWaterTempleRoom1Floor2MinimapTex}, {}, {} }, - { 1290, -930, std::string{gWaterTempleRoom1Floor1MinimapTex}, {}, {} }, - { 1280, -870, std::string{gWaterTempleRoom1Basement1MinimapTex}, {}, {} }, - { 1390, -690, std::string{gWaterTempleRoom3Basement1MinimapTex}, {}, {} }, - { 940, -1050, std::string{gWaterTempleRoom4Floor2MinimapTex}, {}, {} }, - { 1520, -930, std::string{gWaterTempleRoom5Floor2MinimapTex}, {}, {} }, - { 1520, -930, std::string{gWaterTempleRoom5Floor1MinimapTex}, {}, {} }, - { 1980, -980, std::string{gWaterTempleRoom6Floor2MinimapTex}, {}, {} }, - { 1620, -1370, std::string{gWaterTempleRoom8Basement1MinimapTex}, {}, {} }, - { 1510, -1050, std::string{gWaterTempleRoom9Basement1MinimapTex}, {}, {} }, - { 1490, -800, std::string{gWaterTempleRoom10Floor2MinimapTex}, {}, {} }, - { 1240, -1380, std::string{gWaterTempleRoom12Basement1MinimapTex}, {}, {} }, - { 1290, -1750, std::string{gWaterTempleRoom14Basement1MinimapTex}, {}, {} }, - { 1450, -1610, std::string{gWaterTempleRoom15Basement1MinimapTex}, {}, {} }, - { 880, -840, std::string{gWaterTempleRoom17Floor2MinimapTex}, { { 0, 74, 64 }, }, {} }, - { 880, -830, std::string{gWaterTempleRoom17Floor1MinimapTex}, {}, {} }, - { 1060, -690, std::string{gWaterTempleRoom20Floor2MinimapTex}, { { 8, 75, 67 }, }, {} }, - { 1670, -1540, std::string{gWaterTempleRoom21Floor1MinimapTex}, { { 3, 82, 65 }, }, {} }, - { 1520, -930, std::string{gWaterTempleRoom5Basement1MinimapTex}, {}, {} }, - }, - { - { 0, 22, 5 }, - { 1, 25, 5 }, - { 4, 29, 5 }, - { 5, 30, 5 }, - { 6, 32, 5 }, - { 10, 35, 5 }, - { 17, 39, 5 }, - { 20, 41, 5 }, - { 0, 23, 6 }, - { 1, 26, 6 }, - { 22, 23, 6 }, - { 25, 26, 6 }, - { 30, 31, 6 }, - { 39, 40, 6 }, - { 21, 42, 6 }, - { 17, 40, 6 }, - { 0, 24, 7 }, - { 1, 27, 7 }, - { 23, 24, 7 }, - { 26, 27, 7 }, - { 3, 28, 7 }, - { 9, 34, 7 }, - { 12, 36, 7 }, - { 14, 37, 7 }, - { 15, 38, 7 }, - { 31, 43, 7 }, - { 8, 33, 7 }, - { 24, 23, 6 }, - { 27, 26, 6 }, - { 28, 3, 6 }, - { 33, 8, 6 }, - { 36, 12, 6 }, - { 37, 14, 6 }, - { 38, 15, 6 }, - { 43, 31, 6 }, - { 34, 9, 6 }, - { 23, 22, 5 }, - { 26, 25, 5 }, - { 31, 30, 5 }, - { 40, 39, 5 }, - { 42, 21, 5 }, - { 17, 39, 5 }, - { 22, 0, 4 }, - { 25, 1, 4 }, - { 29, 4, 4 }, - { 30, 5, 4 }, - { 32, 6, 4 }, - { 35, 10, 4 }, - { 39, 17, 4 }, - { 41, 20, 4 }, - }, - }, - {} - }, + "MIZUsin_scene", + "Water Temple", + "g_pn_04", + SDC_WATER_TEMPLE, + { false, false, false, false, false, false, false, false, false, false, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 4, 4, 900, -640 }, + {}, + { + 4, + { 1, 2, 10, 3, 3, 4, 5, 13, 5, 6, 7, 8, 7, 9, 8, 9, 11, 10, 12, 11, 12, 13, 9, 7, 8, 12 }, + std::string{ gPauseWaterTitleENGTex }, + std::string{ gPauseWaterTitleGERTex }, + std::string{ gPauseWaterTitleFRATex }, + { + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_3F, + 690.0f, + { + 0, + 1, + 4, + 5, + 6, + 7, + 10, + 11, + 13, + 17, + 19, + 20, + }, + std::string{ gWaterTemplePauseScreenMapFloor3LeftTex }, + std::string{ gWaterTemplePauseScreenMapFloor3RightTex }, + { { 2, 88.0f, -60.0f }, { 7, 23.0f, -2.0f }, { 9, 84.0f, -45.0f } }, + { { -1, 62.0f, -23.0f } }, + }, + { + F_2F, + 330.0f, + { + 0, + 1, + 4, + 5, + 6, + 10, + 17, + 20, + 21, + }, + std::string{ gWaterTemplePauseScreenMapFloor2LeftTex }, + std::string{ gWaterTemplePauseScreenMapFloor2RightTex }, + { { 0, 86.0f, -60.0f }, { 8, 76.0f, -72.0f } }, + {}, + }, + { + F_1F, + -160.0f, + { + 0, + 1, + 3, + 5, + 8, + 9, + 12, + 14, + 15, + 16, + 17, + 18, + 21, + }, + std::string{ gWaterTemplePauseScreenMapFloor1LeftTex }, + std::string{ gWaterTemplePauseScreenMapFloor1RightTex }, + { { 1, 88.0f, -60.0f }, { 3, 42.0f, -21.0f }, { 5, 47.0f, -15.0f }, { 10, 33.0f, -31.0f } }, + {}, + }, + { + F_B1, + -3000.0f, + { + 0, + 1, + 2, + 3, + 5, + 8, + 9, + 12, + 14, + 15, + }, + std::string{ gWaterTemplePauseScreenMapBasement1LeftTex }, + std::string{ gWaterTemplePauseScreenMapBasement1RightTex }, + { { 6, 77.0f, -66.0f } }, + {}, + }, + }, + { + { 1120, -610, std::string{ gWaterTempleRoom0Floor3MinimapTex }, {}, {} }, + { 1290, -930, std::string{ gWaterTempleRoom1Floor3MinimapTex }, {}, {} }, + { 1120, + -770, + std::string{ gWaterTempleRoom2MinimapTex }, + { + { 6, 79, 68 }, + }, + {} }, + { 1380, -680, std::string{ gWaterTempleRoom3Floor3MinimapTex }, {}, {} }, + { 930, + -1060, + std::string{ gWaterTempleRoom4Floor3MinimapTex }, + { + { 9, 81, 62 }, + }, + {} }, + { 1520, -930, std::string{ gWaterTempleRoom5Floor3MinimapTex }, {}, {} }, + { 1980, -980, std::string{ gWaterTempleRoom6MinimapTex }, {}, {} }, + { 2010, + -1860, + std::string{ gWaterTempleRoom7MinimapTex }, + { + { 7, 74, 62 }, + }, + {} }, + { 1590, + -1380, + std::string{ gWaterTempleRoom8Floor3MinimapTex }, + { + { 10, 57, 66 }, + }, + {} }, + { 1510, -1050, std::string{ gWaterTempleRoom9Floor3MinimapTex }, {}, {} }, + { 1500, -830, std::string{ gWaterTempleRoom10Floor3MinimapTex }, {}, {} }, + { 1300, + -1230, + std::string{ gWaterTempleRoom11MinimapTex }, + {}, + { + { -1, 77, 40 }, + } }, + { 1240, -1380, std::string{ gWaterTempleRoom12Floor3MinimapTex }, {}, {} }, + { 1800, -1330, std::string{ gWaterTempleRoom13MinimapTex }, {}, {} }, + { 1290, -1750, std::string{ gWaterTempleRoom14Floor3MinimapTex }, {}, {} }, + { 1450, -1610, std::string{ gWaterTempleRoom15Floor3MinimapTex }, {}, {} }, + { 1560, + -1600, + std::string{ gWaterTempleRoom16MinimapTex }, + { + { 5, 76, 64 }, + }, + {} }, + { 880, -830, std::string{ gWaterTempleRoom17Floor3MinimapTex }, {}, {} }, + { 820, + -800, + std::string{ gWaterTempleRoom18MinimapTex }, + { + { 1, 74, 61 }, + }, + {} }, + { 820, + -820, + std::string{ gWaterTempleRoom19MinimapTex }, + { + { 2, 74, 63 }, + }, + {} }, + { 1060, -690, std::string{ gWaterTempleRoom20Floor3MinimapTex }, {}, {} }, + { 1670, -1540, std::string{ gWaterTempleRoom21Floor3MinimapTex }, {}, {} }, + { 1120, -620, std::string{ gWaterTempleRoom0Floor2MinimapTex }, {}, {} }, + { 1130, -790, std::string{ gWaterTempleRoom0Floor1MinimapTex }, {}, {} }, + { 1130, -780, std::string{ gWaterTempleRoom0Basement1MinimapTex }, {}, {} }, + { 1290, -930, std::string{ gWaterTempleRoom1Floor2MinimapTex }, {}, {} }, + { 1290, -930, std::string{ gWaterTempleRoom1Floor1MinimapTex }, {}, {} }, + { 1280, -870, std::string{ gWaterTempleRoom1Basement1MinimapTex }, {}, {} }, + { 1390, -690, std::string{ gWaterTempleRoom3Basement1MinimapTex }, {}, {} }, + { 940, -1050, std::string{ gWaterTempleRoom4Floor2MinimapTex }, {}, {} }, + { 1520, -930, std::string{ gWaterTempleRoom5Floor2MinimapTex }, {}, {} }, + { 1520, -930, std::string{ gWaterTempleRoom5Floor1MinimapTex }, {}, {} }, + { 1980, -980, std::string{ gWaterTempleRoom6Floor2MinimapTex }, {}, {} }, + { 1620, -1370, std::string{ gWaterTempleRoom8Basement1MinimapTex }, {}, {} }, + { 1510, -1050, std::string{ gWaterTempleRoom9Basement1MinimapTex }, {}, {} }, + { 1490, -800, std::string{ gWaterTempleRoom10Floor2MinimapTex }, {}, {} }, + { 1240, -1380, std::string{ gWaterTempleRoom12Basement1MinimapTex }, {}, {} }, + { 1290, -1750, std::string{ gWaterTempleRoom14Basement1MinimapTex }, {}, {} }, + { 1450, -1610, std::string{ gWaterTempleRoom15Basement1MinimapTex }, {}, {} }, + { 880, + -840, + std::string{ gWaterTempleRoom17Floor2MinimapTex }, + { + { 0, 74, 64 }, + }, + {} }, + { 880, -830, std::string{ gWaterTempleRoom17Floor1MinimapTex }, {}, {} }, + { 1060, + -690, + std::string{ gWaterTempleRoom20Floor2MinimapTex }, + { + { 8, 75, 67 }, + }, + {} }, + { 1670, + -1540, + std::string{ gWaterTempleRoom21Floor1MinimapTex }, + { + { 3, 82, 65 }, + }, + {} }, + { 1520, -930, std::string{ gWaterTempleRoom5Basement1MinimapTex }, {}, {} }, + }, + { + { 0, 22, 5 }, { 1, 25, 5 }, { 4, 29, 5 }, { 5, 30, 5 }, { 6, 32, 5 }, { 10, 35, 5 }, { 17, 39, 5 }, + { 20, 41, 5 }, { 0, 23, 6 }, { 1, 26, 6 }, { 22, 23, 6 }, { 25, 26, 6 }, { 30, 31, 6 }, { 39, 40, 6 }, + { 21, 42, 6 }, { 17, 40, 6 }, { 0, 24, 7 }, { 1, 27, 7 }, { 23, 24, 7 }, { 26, 27, 7 }, { 3, 28, 7 }, + { 9, 34, 7 }, { 12, 36, 7 }, { 14, 37, 7 }, { 15, 38, 7 }, { 31, 43, 7 }, { 8, 33, 7 }, { 24, 23, 6 }, + { 27, 26, 6 }, { 28, 3, 6 }, { 33, 8, 6 }, { 36, 12, 6 }, { 37, 14, 6 }, { 38, 15, 6 }, { 43, 31, 6 }, + { 34, 9, 6 }, { 23, 22, 5 }, { 26, 25, 5 }, { 31, 30, 5 }, { 40, 39, 5 }, { 42, 21, 5 }, { 17, 39, 5 }, + { 22, 0, 4 }, { 25, 1, 4 }, { 29, 4, 4 }, { 30, 5, 4 }, { 32, 6, 4 }, { 35, 10, 4 }, { 39, 17, 4 }, + { 41, 20, 4 }, + }, + }, + {} }, { // SCENE_SPIRIT_TEMPLE - "jyasinzou_scene", - "Spirit Temple", - "g_pn_05", - SDC_SPIRIT_TEMPLE, - { false, false, false, false, false, false, false, false, false, false, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 3, 3, 900, -640 }, - {}, - { - 5, - { 10, 1, 2, 3, 4, 5, 10, 7, 8, 9, 10, 6, 12, 13, 11, 8, 13, 1, 2, 3, 4, 11, 6, 12, 8, 5, 10, 9, 6 }, - std::string{gPauseSpiritTitleENGTex}, - std::string{gPauseSpiritTitleGERTex}, - std::string{gPauseSpiritTitleFRATex}, - { - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_4F, 1480.0f, { 22, 23, 24, 25, 26, }, std::string{gSpiritTemplePauseScreenMapFloor4LeftTex}, std::string{gSpiritTemplePauseScreenMapFloor4RightTex}, { { 10, 59.0f, -9.0f }, { 18, 32.0f, -20.0f } }, {}, }, - { F_3F, 760.0f, { 5, 7, 8, 9, 10, 11, 16, 17, 18, 19, 20, 21, 23, }, std::string{gSpiritTemplePauseScreenMapFloor3LeftTex}, std::string{gSpiritTemplePauseScreenMapFloor3RightTex}, { { 1, 20.0f, -43.0f }, { 5, 83.0f, -26.0f }, { 15, 57.0f, -14.0f }, { 20, 81.0f, -55.0f }, { 21, 87.0f, -55.0f } }, { { -1, 47.0f, 0.0f } }, }, - { F_2F, 280.0f, { 4, 5, 6, 15, }, std::string{gSpiritTemplePauseScreenMapFloor2LeftTex}, std::string{gSpiritTemplePauseScreenMapFloor2RightTex}, { { 2, 41.0f, -16.0f }, { 3, 47.0f, -17.0f }, { 6, 27.0f, -16.0f }, { 12, 29.0f, -20.0f }, { 13, 70.0f, -22.0f }, { 14, 70.0f, -25.0f } }, {}, }, - { F_1F, -3000.0f, { 0, 1, 2, 3, 4, 12, 13, 14, 15, 27, }, std::string{gSpiritTemplePauseScreenMapFloor1LeftTex}, std::string{gSpiritTemplePauseScreenMapFloor1RightTex}, { { 0, 38.0f, -17.0f }, { 4, 55.0f, -14.0f }, { 8, 15.0f, -14.0f }, { 7, 78.0f, -3.0f } }, {}, }, - }, - { - { 800, -570, std::string{gSpiritTempleRoom0MinimapTex}, {}, {} }, - { 1500, -900, std::string{gSpiritTempleRoom1MinimapTex}, {}, {} }, - { 1370, -1070, std::string{gSpiritTempleRoom2MinimapTex}, { { 0, 78, 43 }, }, {} }, - { 1730, -1090, std::string{gSpiritTempleRoom3MinimapTex}, { { 8, 69, 40 }, }, {} }, - { 1590, -1280, std::string{gSpiritTempleRoom4Floor1MinimapTex}, {}, {} }, - { 1020, -1160, std::string{gSpiritTempleRoom5Floor2MinimapTex}, { { 2, 43, 50 }, { 3, 56, 54 }, }, {} }, - { 1060, -920, std::string{gSpiritTempleRoom6MinimapTex}, {}, {} }, - { 1470, -980, std::string{gSpiritTempleRoom7MinimapTex}, {}, {} }, - { 1600, -780, std::string{gSpiritTempleRoom8MinimapTex}, { { 1, 70, 67 }, }, {} }, - { 1830, -530, std::string{gSpiritTempleRoom9MinimapTex}, {}, {} }, - { 1630, -350, std::string{gSpiritTempleRoom10MinimapTex}, {}, {} }, - { 2000, -1000, std::string{gBlankSpiritTempleRoom11MinimapTex}, {}, {} }, - { 650, -1440, std::string{gSpiritTempleRoom12MinimapTex}, { { 7, 70, 58 }, }, {} }, - { 660, -1080, std::string{gSpiritTempleRoom13MinimapTex}, {}, {} }, - { 1020, -1100, std::string{gSpiritTempleRoom14MinimapTex}, { { 4, 68, 42 }, }, {} }, - { 880, -1110, std::string{gSpiritTempleRoom15Floor1MinimapTex}, {}, {} }, - { 940, -980, std::string{gSpiritTempleRoom16MinimapTex}, {}, {} }, - { 720, -860, std::string{gSpiritTempleRoom17MinimapTex}, {}, {} }, - { 570, -790, std::string{gSpiritTempleRoom18MinimapTex}, {}, {} }, - { 620, -540, std::string{gSpiritTempleRoom19MinimapTex}, { { 20, 75, 58 }, { 21, 83, 58 }, }, {} }, - { 570, -350, std::string{gSpiritTempleRoom20MinimapTex}, {}, {} }, - { 550, -1000, std::string{gSpiritTempleRoom21MinimapTex}, { { 5, 71, 55 }, }, {} }, - { 970, -1250, std::string{gSpiritTempleRoom22MinimapTex}, { { 10, 72, 49 }, }, {} }, - { 920, -820, std::string{gSpiritTempleRoom23Floor3MinimapTex}, {}, {} }, - { 1040, -1070, std::string{gSpiritTempleRoom24MinimapTex}, {}, {} }, - { 1150, -1180, std::string{gSpiritTempleRoom25MinimapTex}, {}, {} }, - { 1200, -950, std::string{gSpiritTempleRoom26MinimapTex}, { { 18, 50, 41 }, }, {} }, - { 1550, -1380, std::string{gSpiritTempleRoom27MinimapTex}, {}, {} }, - { 1520, -1160, std::string{gSpiritTempleRoom4Floor2MinimapTex}, { { 6, 73, 49 }, { 12, 79, 55 }, }, {} }, - { 1020, -1100, std::string{gSpiritTempleRoom5Floor3MinimapTex}, { { 15, 77, 42 }, }, { { -1, 57, 23 }, } }, - { 820, -1150, std::string{gSpiritTempleRoom15Floor2MinimapTex}, { { 13, 77, 63 }, { 14, 77, 68 }, }, {} }, - { 1010, -830, std::string{gSpiritTempleRoom23Floor4MinimapTex}, {}, {} }, - }, - { - { 4, 28, 6 }, - { 15, 30, 6 }, - { 5, 29, 5 }, - { 23, 31, 4 }, - { 31, 23, 5 }, - { 29, 5, 6 }, - { 28, 4, 7 }, - { 30, 15, 7 }, - }, - }, - {} - }, + "jyasinzou_scene", + "Spirit Temple", + "g_pn_05", + SDC_SPIRIT_TEMPLE, + { false, false, false, false, false, false, false, false, false, false, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 3, 3, 900, -640 }, + {}, + { + 5, + { 10, 1, 2, 3, 4, 5, 10, 7, 8, 9, 10, 6, 12, 13, 11, 8, 13, 1, 2, 3, 4, 11, 6, 12, 8, 5, 10, 9, 6 }, + std::string{ gPauseSpiritTitleENGTex }, + std::string{ gPauseSpiritTitleGERTex }, + std::string{ gPauseSpiritTitleFRATex }, + { + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_4F, + 1480.0f, + { + 22, + 23, + 24, + 25, + 26, + }, + std::string{ gSpiritTemplePauseScreenMapFloor4LeftTex }, + std::string{ gSpiritTemplePauseScreenMapFloor4RightTex }, + { { 10, 59.0f, -9.0f }, { 18, 32.0f, -20.0f } }, + {}, + }, + { + F_3F, + 760.0f, + { + 5, + 7, + 8, + 9, + 10, + 11, + 16, + 17, + 18, + 19, + 20, + 21, + 23, + }, + std::string{ gSpiritTemplePauseScreenMapFloor3LeftTex }, + std::string{ gSpiritTemplePauseScreenMapFloor3RightTex }, + { { 1, 20.0f, -43.0f }, + { 5, 83.0f, -26.0f }, + { 15, 57.0f, -14.0f }, + { 20, 81.0f, -55.0f }, + { 21, 87.0f, -55.0f } }, + { { -1, 47.0f, 0.0f } }, + }, + { + F_2F, + 280.0f, + { + 4, + 5, + 6, + 15, + }, + std::string{ gSpiritTemplePauseScreenMapFloor2LeftTex }, + std::string{ gSpiritTemplePauseScreenMapFloor2RightTex }, + { { 2, 41.0f, -16.0f }, + { 3, 47.0f, -17.0f }, + { 6, 27.0f, -16.0f }, + { 12, 29.0f, -20.0f }, + { 13, 70.0f, -22.0f }, + { 14, 70.0f, -25.0f } }, + {}, + }, + { + F_1F, + -3000.0f, + { + 0, + 1, + 2, + 3, + 4, + 12, + 13, + 14, + 15, + 27, + }, + std::string{ gSpiritTemplePauseScreenMapFloor1LeftTex }, + std::string{ gSpiritTemplePauseScreenMapFloor1RightTex }, + { { 0, 38.0f, -17.0f }, { 4, 55.0f, -14.0f }, { 8, 15.0f, -14.0f }, { 7, 78.0f, -3.0f } }, + {}, + }, + }, + { + { 800, -570, std::string{ gSpiritTempleRoom0MinimapTex }, {}, {} }, + { 1500, -900, std::string{ gSpiritTempleRoom1MinimapTex }, {}, {} }, + { 1370, + -1070, + std::string{ gSpiritTempleRoom2MinimapTex }, + { + { 0, 78, 43 }, + }, + {} }, + { 1730, + -1090, + std::string{ gSpiritTempleRoom3MinimapTex }, + { + { 8, 69, 40 }, + }, + {} }, + { 1590, -1280, std::string{ gSpiritTempleRoom4Floor1MinimapTex }, {}, {} }, + { 1020, + -1160, + std::string{ gSpiritTempleRoom5Floor2MinimapTex }, + { + { 2, 43, 50 }, + { 3, 56, 54 }, + }, + {} }, + { 1060, -920, std::string{ gSpiritTempleRoom6MinimapTex }, {}, {} }, + { 1470, -980, std::string{ gSpiritTempleRoom7MinimapTex }, {}, {} }, + { 1600, + -780, + std::string{ gSpiritTempleRoom8MinimapTex }, + { + { 1, 70, 67 }, + }, + {} }, + { 1830, -530, std::string{ gSpiritTempleRoom9MinimapTex }, {}, {} }, + { 1630, -350, std::string{ gSpiritTempleRoom10MinimapTex }, {}, {} }, + { 2000, -1000, std::string{ gBlankSpiritTempleRoom11MinimapTex }, {}, {} }, + { 650, + -1440, + std::string{ gSpiritTempleRoom12MinimapTex }, + { + { 7, 70, 58 }, + }, + {} }, + { 660, -1080, std::string{ gSpiritTempleRoom13MinimapTex }, {}, {} }, + { 1020, + -1100, + std::string{ gSpiritTempleRoom14MinimapTex }, + { + { 4, 68, 42 }, + }, + {} }, + { 880, -1110, std::string{ gSpiritTempleRoom15Floor1MinimapTex }, {}, {} }, + { 940, -980, std::string{ gSpiritTempleRoom16MinimapTex }, {}, {} }, + { 720, -860, std::string{ gSpiritTempleRoom17MinimapTex }, {}, {} }, + { 570, -790, std::string{ gSpiritTempleRoom18MinimapTex }, {}, {} }, + { 620, + -540, + std::string{ gSpiritTempleRoom19MinimapTex }, + { + { 20, 75, 58 }, + { 21, 83, 58 }, + }, + {} }, + { 570, -350, std::string{ gSpiritTempleRoom20MinimapTex }, {}, {} }, + { 550, + -1000, + std::string{ gSpiritTempleRoom21MinimapTex }, + { + { 5, 71, 55 }, + }, + {} }, + { 970, + -1250, + std::string{ gSpiritTempleRoom22MinimapTex }, + { + { 10, 72, 49 }, + }, + {} }, + { 920, -820, std::string{ gSpiritTempleRoom23Floor3MinimapTex }, {}, {} }, + { 1040, -1070, std::string{ gSpiritTempleRoom24MinimapTex }, {}, {} }, + { 1150, -1180, std::string{ gSpiritTempleRoom25MinimapTex }, {}, {} }, + { 1200, + -950, + std::string{ gSpiritTempleRoom26MinimapTex }, + { + { 18, 50, 41 }, + }, + {} }, + { 1550, -1380, std::string{ gSpiritTempleRoom27MinimapTex }, {}, {} }, + { 1520, + -1160, + std::string{ gSpiritTempleRoom4Floor2MinimapTex }, + { + { 6, 73, 49 }, + { 12, 79, 55 }, + }, + {} }, + { 1020, + -1100, + std::string{ gSpiritTempleRoom5Floor3MinimapTex }, + { + { 15, 77, 42 }, + }, + { + { -1, 57, 23 }, + } }, + { 820, + -1150, + std::string{ gSpiritTempleRoom15Floor2MinimapTex }, + { + { 13, 77, 63 }, + { 14, 77, 68 }, + }, + {} }, + { 1010, -830, std::string{ gSpiritTempleRoom23Floor4MinimapTex }, {}, {} }, + }, + { + { 4, 28, 6 }, + { 15, 30, 6 }, + { 5, 29, 5 }, + { 23, 31, 4 }, + { 31, 23, 5 }, + { 29, 5, 6 }, + { 28, 4, 7 }, + { 30, 15, 7 }, + }, + }, + {} }, { // SCENE_SHADOW_TEMPLE - "HAKAdan_scene", - "Shadow Temple", - "g_pn_02", - SDC_SHADOW_TEMPLE_AND_WELL, - { false, false, false, false, false, false, false, false, false, false, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 10, 10, 900, -640 }, - {}, - { - 7, - { 13, 1, 5, 4, 4, 5, 3, 7, 8, 9, 10, 11, 12, 13, 2, 5, 1, 1, 6, 7, 8, 3, 9, 7, 8, 12 }, - std::string{gPauseShadowTitleENGTex}, - std::string{gPauseShadowTitleGERTex}, - std::string{gPauseShadowTitleFRATex}, - { - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_B1, -343.3f, { 0, 1, 2, 4, }, std::string{gShadowTemplePauseScreenMapBasement1LeftTex}, std::string{gShadowTemplePauseScreenMapBasement1RightTex}, { { 1, 41.0f, -17.0f }, { 7, 27.0f, -24.0f } }, {}, }, - { F_B2, -863.3f, { 5, 6, 7, 8, }, std::string{gShadowTemplePauseScreenMapBasement2LeftTex}, std::string{gShadowTemplePauseScreenMapBasement2RightTex}, { { 2, 81.0f, -20.0f }, { 3, 74.0f, -37.0f } }, {}, }, - { F_B3, -1143.3f, { 8, 9, 12, 14, 16, 21, }, std::string{gShadowTemplePauseScreenMapBasement3LeftTex}, std::string{gShadowTemplePauseScreenMapBasement3RightTex}, { { 12, 96.0f, -51.0f }, { 22, 96.0f, -55.0f } }, {}, }, - { F_B4, -3000.0f, { 3, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, }, std::string{gShadowTemplePauseScreenMapBasement4LeftTex}, std::string{gShadowTemplePauseScreenMapBasement4RightTex}, { { 4, 43.0f, -66.0f }, { 5, 37.0f, -66.0f }, { 6, 33.0f, -72.0f }, { 8, 85.0f, -18.0f }, { 9, 61.0f, -42.0f }, { 10, 15.0f, -4.0f }, { 11, 25.0f, -4.0f }, { 13, 19.0f, -29.0f }, { 21, 92.0f, -29.0f }, { 20, 87.0f, -20.0f } }, { { -1, 31.0f, -45.0f } }, }, - }, - { - { 1320, -940, std::string{gShadowTempleRoom0MinimapTex}, {}, {} }, - { 1320, -960, std::string{gShadowTempleRoom1MinimapTex}, { { 1, 77, 64 }, }, {} }, - { 1090, -860, std::string{gShadowTempleRoom2MinimapTex}, {}, {} }, - { 1510, -870, std::string{gShadowTempleRoom3MinimapTex}, {}, { { -1, 77, 76 }, } }, - { 1480, -920, std::string{gShadowTempleRoom4MinimapTex}, { { 7, 76, 65 }, }, {} }, - { 940, -870, std::string{gShadowTempleRoom5MinimapTex}, {}, {} }, - { 920, -980, std::string{gShadowTempleRoom6MinimapTex}, { { 2, 83, 67 }, }, {} }, - { 910, -820, std::string{gShadowTempleRoom7MinimapTex}, { { 3, 76, 67 }, }, {} }, - { 800, -860, std::string{gShadowTempleRoom8Basement2MinimapTex}, {}, {} }, - { 820, -520, std::string{gShadowTempleRoom9Basement3MinimapTex}, {}, {} }, - { 1150, -500, std::string{gShadowTempleRoom10MinimapTex}, { { 4, 78, 62 }, { 5, 74, 62 }, { 6, 71, 68 }, }, {} }, - { 1000, -780, std::string{gShadowTempleRoom11MinimapTex}, { { 9, 77, 64 }, }, {} }, - { 1800, -1050, std::string{gShadowTempleRoom12Basement3MinimapTex}, {}, {} }, - { 1660, -1130, std::string{gShadowTempleRoom13MinimapTex}, { { 10, 71, 65 }, { 11, 80, 65 }, }, {} }, - { 1090, -770, std::string{gShadowTempleRoom14Basement3MinimapTex}, {}, {} }, - { 1630, -1010, std::string{gShadowTempleRoom15MinimapTex}, {}, {} }, - { 710, -680, std::string{gShadowTempleRoom16MinimapTex}, { { 12, 87, 64 }, { 22, 87, 68 }, }, {} }, - { 1670, -930, std::string{gShadowTempleRoom17MinimapTex}, { { 13, 77, 66 }, }, {} }, - { 830, -880, std::string{gShadowTempleRoom18MinimapTex}, {}, {} }, - { 770, -900, std::string{gShadowTempleRoom19MinimapTex}, { { 21, 78, 66 }, }, {} }, - { 800, -980, std::string{gShadowTempleRoom20MinimapTex}, { { 8, 76, 66 }, { 20, 78, 68 }, }, {} }, - { 850, -990, std::string{gShadowTempleRoom21Basement3MinimapTex}, {}, {} }, - { 830, -770, std::string{gShadowTempleRoom8Basement3MinimapTex}, {}, {} }, - { 820, -520, std::string{gShadowTempleRoom9Basement4MinimapTex}, {}, {} }, - { 1800, -1050, std::string{gShadowTempleRoom12Basement4MinimapTex}, {}, {} }, - { 1090, -770, std::string{gShadowTempleRoom14Basement4MinimapTex}, {}, {} }, - { 850, -990, std::string{gShadowTempleRoom21Basement4MinimapTex}, {}, {} }, - }, - { - { 8, 22, 6 }, - { 9, 23, 7 }, - { 12, 24, 7 }, - { 14, 25, 7 }, - { 21, 26, 7 }, - { 23, 9, 6 }, - { 24, 12, 6 }, - { 25, 14, 6 }, - { 26, 21, 6 }, - { 22, 8, 5 }, - }, - }, - {} - }, + "HAKAdan_scene", + "Shadow Temple", + "g_pn_02", + SDC_SHADOW_TEMPLE_AND_WELL, + { false, false, false, false, false, false, false, false, false, false, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 10, 10, 900, -640 }, + {}, + { + 7, + { 13, 1, 5, 4, 4, 5, 3, 7, 8, 9, 10, 11, 12, 13, 2, 5, 1, 1, 6, 7, 8, 3, 9, 7, 8, 12 }, + std::string{ gPauseShadowTitleENGTex }, + std::string{ gPauseShadowTitleGERTex }, + std::string{ gPauseShadowTitleFRATex }, + { + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_B1, + -343.3f, + { + 0, + 1, + 2, + 4, + }, + std::string{ gShadowTemplePauseScreenMapBasement1LeftTex }, + std::string{ gShadowTemplePauseScreenMapBasement1RightTex }, + { { 1, 41.0f, -17.0f }, { 7, 27.0f, -24.0f } }, + {}, + }, + { + F_B2, + -863.3f, + { + 5, + 6, + 7, + 8, + }, + std::string{ gShadowTemplePauseScreenMapBasement2LeftTex }, + std::string{ gShadowTemplePauseScreenMapBasement2RightTex }, + { { 2, 81.0f, -20.0f }, { 3, 74.0f, -37.0f } }, + {}, + }, + { + F_B3, + -1143.3f, + { + 8, + 9, + 12, + 14, + 16, + 21, + }, + std::string{ gShadowTemplePauseScreenMapBasement3LeftTex }, + std::string{ gShadowTemplePauseScreenMapBasement3RightTex }, + { { 12, 96.0f, -51.0f }, { 22, 96.0f, -55.0f } }, + {}, + }, + { + F_B4, + -3000.0f, + { + 3, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 17, + 18, + 19, + 20, + 21, + }, + std::string{ gShadowTemplePauseScreenMapBasement4LeftTex }, + std::string{ gShadowTemplePauseScreenMapBasement4RightTex }, + { { 4, 43.0f, -66.0f }, + { 5, 37.0f, -66.0f }, + { 6, 33.0f, -72.0f }, + { 8, 85.0f, -18.0f }, + { 9, 61.0f, -42.0f }, + { 10, 15.0f, -4.0f }, + { 11, 25.0f, -4.0f }, + { 13, 19.0f, -29.0f }, + { 21, 92.0f, -29.0f }, + { 20, 87.0f, -20.0f } }, + { { -1, 31.0f, -45.0f } }, + }, + }, + { + { 1320, -940, std::string{ gShadowTempleRoom0MinimapTex }, {}, {} }, + { 1320, + -960, + std::string{ gShadowTempleRoom1MinimapTex }, + { + { 1, 77, 64 }, + }, + {} }, + { 1090, -860, std::string{ gShadowTempleRoom2MinimapTex }, {}, {} }, + { 1510, + -870, + std::string{ gShadowTempleRoom3MinimapTex }, + {}, + { + { -1, 77, 76 }, + } }, + { 1480, + -920, + std::string{ gShadowTempleRoom4MinimapTex }, + { + { 7, 76, 65 }, + }, + {} }, + { 940, -870, std::string{ gShadowTempleRoom5MinimapTex }, {}, {} }, + { 920, + -980, + std::string{ gShadowTempleRoom6MinimapTex }, + { + { 2, 83, 67 }, + }, + {} }, + { 910, + -820, + std::string{ gShadowTempleRoom7MinimapTex }, + { + { 3, 76, 67 }, + }, + {} }, + { 800, -860, std::string{ gShadowTempleRoom8Basement2MinimapTex }, {}, {} }, + { 820, -520, std::string{ gShadowTempleRoom9Basement3MinimapTex }, {}, {} }, + { 1150, + -500, + std::string{ gShadowTempleRoom10MinimapTex }, + { + { 4, 78, 62 }, + { 5, 74, 62 }, + { 6, 71, 68 }, + }, + {} }, + { 1000, + -780, + std::string{ gShadowTempleRoom11MinimapTex }, + { + { 9, 77, 64 }, + }, + {} }, + { 1800, -1050, std::string{ gShadowTempleRoom12Basement3MinimapTex }, {}, {} }, + { 1660, + -1130, + std::string{ gShadowTempleRoom13MinimapTex }, + { + { 10, 71, 65 }, + { 11, 80, 65 }, + }, + {} }, + { 1090, -770, std::string{ gShadowTempleRoom14Basement3MinimapTex }, {}, {} }, + { 1630, -1010, std::string{ gShadowTempleRoom15MinimapTex }, {}, {} }, + { 710, + -680, + std::string{ gShadowTempleRoom16MinimapTex }, + { + { 12, 87, 64 }, + { 22, 87, 68 }, + }, + {} }, + { 1670, + -930, + std::string{ gShadowTempleRoom17MinimapTex }, + { + { 13, 77, 66 }, + }, + {} }, + { 830, -880, std::string{ gShadowTempleRoom18MinimapTex }, {}, {} }, + { 770, + -900, + std::string{ gShadowTempleRoom19MinimapTex }, + { + { 21, 78, 66 }, + }, + {} }, + { 800, + -980, + std::string{ gShadowTempleRoom20MinimapTex }, + { + { 8, 76, 66 }, + { 20, 78, 68 }, + }, + {} }, + { 850, -990, std::string{ gShadowTempleRoom21Basement3MinimapTex }, {}, {} }, + { 830, -770, std::string{ gShadowTempleRoom8Basement3MinimapTex }, {}, {} }, + { 820, -520, std::string{ gShadowTempleRoom9Basement4MinimapTex }, {}, {} }, + { 1800, -1050, std::string{ gShadowTempleRoom12Basement4MinimapTex }, {}, {} }, + { 1090, -770, std::string{ gShadowTempleRoom14Basement4MinimapTex }, {}, {} }, + { 850, -990, std::string{ gShadowTempleRoom21Basement4MinimapTex }, {}, {} }, + }, + { + { 8, 22, 6 }, + { 9, 23, 7 }, + { 12, 24, 7 }, + { 14, 25, 7 }, + { 21, 26, 7 }, + { 23, 9, 6 }, + { 24, 12, 6 }, + { 25, 14, 6 }, + { 26, 21, 6 }, + { 22, 8, 5 }, + }, + }, + {} }, { // SCENE_BOTTOM_OF_THE_WELL - "HAKAdanCH_scene", - "Bottom of the Well", - "g_pn_54", - SDC_SHADOW_TEMPLE_AND_WELL, - { false, false, false, false, false, false, false, false, false, false, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 5, 5, 900, -640 }, - {}, - { - -1, - { 13, 1, 2, 3, 4, 5, 6 }, - std::string{gPauseBotWTitleENGTex}, - std::string{gPauseBotWTitleGERTex}, - std::string{gPauseBotWTitleFRATex}, - { - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_B1, -100.0f, { 0, 1, 2, 3, 4, 5, 6, }, std::string{gBottomOfTheWellPauseScreenMapBasement1LeftTex}, std::string{gBottomOfTheWellPauseScreenMapBasement1RightTex}, { { 1, 51.0f, -24.0f }, { 3, 84.0f, -38.0f }, { 4, 31.0f, -2.0f }, { 5, 67.0f, -27.0f }, { 8, 46.0f, -27.0f }, { 10, 82.0f, -12.0f }, { 12, 80.0f, -16.0f }, { 14, 62.0f, -24.0f }, { 20, 89.0f, -38.0f } }, {}, }, - { F_B2, -520.0f, { 0, 1, }, std::string{gBottomOfTheWellPauseScreenMapBasement2LeftTex}, std::string{gBottomOfTheWellPauseScreenMapBasement2RightTex}, { { 2, 54.0f, -27.0f }, { 9, 28.0f, -17.0f }, { 16, 56.0f, -38.0f } }, {}, }, - { F_B3, -3000.0f, { 1, }, std::string{gBottomOfTheWellPauseScreenMapBasement3LeftTex}, std::string{gBottomOfTheWellPauseScreenMapBasement3RightTex}, { { 7, 71.0f, -33.0f } }, {}, }, - }, - { - { 1080, -570, std::string{gBottomOfTheWellRoom0Basement1MinimapTex}, { { 1, 56, 26 }, { 4, 39, 3 }, { 5, 69, 30 }, { 8, 53, 30 }, { 12, 83, 16 }, { 14, 67, 26 }, }, {} }, - { 1420, -930, std::string{gBottomOfTheWellRoom1Basement1MinimapTex}, {}, {} }, - { 1620, -1040, std::string{gBottomOfTheWellRoom2MinimapTex}, {}, {} }, - { 1040, -1100, std::string{gBottomOfTheWellRoom3MinimapTex}, { { 10, 79, 67 }, }, {} }, - { 940, -800, std::string{gBottomOfTheWellRoom4MinimapTex}, { { 3, 73, 62 }, { 20, 81, 62 }, }, {} }, - { 1190, -1100, std::string{gBottomOfTheWellRoom5MinimapTex}, {}, {} }, - { 1310, -1100, std::string{gBottomOfTheWellRoom6MinimapTex}, {}, {} }, - { 1090, -570, std::string{gBottomOfTheWellRoom0Basement2MinimapTex}, { { 2, 59, 28 }, { 9, 36, 19 }, { 16, 62, 38 }, }, {} }, - { 1380, -930, std::string{gBottomOfTheWellRoom1Basement2MinimapTex}, {}, {} }, - { 1080, -890, std::string{gBottomOfTheWellRoom1Basement3MinimapTex}, { { 7, 75, 66 }, }, {} }, - }, - { - { 0, 7, 6 }, - { 1, 8, 6 }, - { 8, 9, 7 }, - { 9, 8, 6 }, - { 7, 0, 5 }, - { 8, 1, 5 }, - }, - }, - {} - }, + "HAKAdanCH_scene", + "Bottom of the Well", + "g_pn_54", + SDC_SHADOW_TEMPLE_AND_WELL, + { false, false, false, false, false, false, false, false, false, false, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 5, 5, 900, -640 }, + {}, + { + -1, + { 13, 1, 2, 3, 4, 5, 6 }, + std::string{ gPauseBotWTitleENGTex }, + std::string{ gPauseBotWTitleGERTex }, + std::string{ gPauseBotWTitleFRATex }, + { + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_B1, + -100.0f, + { + 0, + 1, + 2, + 3, + 4, + 5, + 6, + }, + std::string{ gBottomOfTheWellPauseScreenMapBasement1LeftTex }, + std::string{ gBottomOfTheWellPauseScreenMapBasement1RightTex }, + { { 1, 51.0f, -24.0f }, + { 3, 84.0f, -38.0f }, + { 4, 31.0f, -2.0f }, + { 5, 67.0f, -27.0f }, + { 8, 46.0f, -27.0f }, + { 10, 82.0f, -12.0f }, + { 12, 80.0f, -16.0f }, + { 14, 62.0f, -24.0f }, + { 20, 89.0f, -38.0f } }, + {}, + }, + { + F_B2, + -520.0f, + { + 0, + 1, + }, + std::string{ gBottomOfTheWellPauseScreenMapBasement2LeftTex }, + std::string{ gBottomOfTheWellPauseScreenMapBasement2RightTex }, + { { 2, 54.0f, -27.0f }, { 9, 28.0f, -17.0f }, { 16, 56.0f, -38.0f } }, + {}, + }, + { + F_B3, + -3000.0f, + { + 1, + }, + std::string{ gBottomOfTheWellPauseScreenMapBasement3LeftTex }, + std::string{ gBottomOfTheWellPauseScreenMapBasement3RightTex }, + { { 7, 71.0f, -33.0f } }, + {}, + }, + }, + { + { 1080, + -570, + std::string{ gBottomOfTheWellRoom0Basement1MinimapTex }, + { + { 1, 56, 26 }, + { 4, 39, 3 }, + { 5, 69, 30 }, + { 8, 53, 30 }, + { 12, 83, 16 }, + { 14, 67, 26 }, + }, + {} }, + { 1420, -930, std::string{ gBottomOfTheWellRoom1Basement1MinimapTex }, {}, {} }, + { 1620, -1040, std::string{ gBottomOfTheWellRoom2MinimapTex }, {}, {} }, + { 1040, + -1100, + std::string{ gBottomOfTheWellRoom3MinimapTex }, + { + { 10, 79, 67 }, + }, + {} }, + { 940, + -800, + std::string{ gBottomOfTheWellRoom4MinimapTex }, + { + { 3, 73, 62 }, + { 20, 81, 62 }, + }, + {} }, + { 1190, -1100, std::string{ gBottomOfTheWellRoom5MinimapTex }, {}, {} }, + { 1310, -1100, std::string{ gBottomOfTheWellRoom6MinimapTex }, {}, {} }, + { 1090, + -570, + std::string{ gBottomOfTheWellRoom0Basement2MinimapTex }, + { + { 2, 59, 28 }, + { 9, 36, 19 }, + { 16, 62, 38 }, + }, + {} }, + { 1380, -930, std::string{ gBottomOfTheWellRoom1Basement2MinimapTex }, {}, {} }, + { 1080, + -890, + std::string{ gBottomOfTheWellRoom1Basement3MinimapTex }, + { + { 7, 75, 66 }, + }, + {} }, + }, + { + { 0, 7, 6 }, + { 1, 8, 6 }, + { 8, 9, 7 }, + { 9, 8, 6 }, + { 7, 0, 5 }, + { 8, 1, 5 }, + }, + }, + {} }, { // SCENE_ICE_CAVERN - "ice_doukutu_scene", - "Ice Cavern", - "g_pn_10", - SDC_ICE_CAVERN, - { false, false, false, false, false, false, false, false, true, false, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 3, 3, 900, -640 }, - {}, - { - -1, - { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }, - std::string{gPauseIceCavernTitleENGTex}, - std::string{gPauseIceCavernTitleGERTex}, - std::string{gPauseIceCavernTitleFRATex}, - { - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_NA, 9999.0f, { }, std::string{}, std::string{}, {}, {}, }, - { F_1F, -3000.0f, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, }, std::string{gIceCavernPauseScreenMapFloor1LeftTex}, std::string{gIceCavernPauseScreenMapFloor1RightTex}, { { 0, 66.0f, -2.0f }, { 1, 77.0f, -46.0f }, { 2, 27.0f, -45.0f } }, {}, }, - }, - { - { 1070, 100, std::string{gIceCavernRoom0MinimapTex}, {}, {} }, - { 1180, -280, std::string{gIceCavernRoom1MinimapTex}, {}, {} }, - { 1270, -690, std::string{gIceCavernRoom2MinimapTex}, {}, {} }, - { 990, -840, std::string{gIceCavernRoom3MinimapTex}, {}, {} }, - { 1280, -1010, std::string{gIceCavernRoom4MinimapTex}, {}, {} }, - { 1450, -950, std::string{gIceCavernRoom5MinimapTex}, {}, {} }, - { 1680, -730, std::string{gIceCavernRoom6MinimapTex}, {}, {} }, - { 1530, -470, std::string{gIceCavernRoom7MinimapTex}, { { 2, 71, 59 }, }, {} }, - { 760, -1130, std::string{gIceCavernRoom8MinimapTex}, {}, {} }, - { 860, -1440, std::string{gIceCavernRoom9MinimapTex}, { { 0, 48, 36 }, }, {} }, - { 1500, -420, std::string{gIceCavernRoom10MinimapTex}, {}, {} }, - { 800, -700, std::string{gIceCavernRoom11MinimapTex}, { { 1, 73, 67 }, }, {} }, - }, - {}, - }, - {} - }, + "ice_doukutu_scene", + "Ice Cavern", + "g_pn_10", + SDC_ICE_CAVERN, + { false, false, false, false, false, false, false, false, true, false, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 3, 3, 900, -640 }, + {}, + { + -1, + { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }, + std::string{ gPauseIceCavernTitleENGTex }, + std::string{ gPauseIceCavernTitleGERTex }, + std::string{ gPauseIceCavernTitleFRATex }, + { + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_NA, + 9999.0f, + {}, + std::string{}, + std::string{}, + {}, + {}, + }, + { + F_1F, + -3000.0f, + { + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + }, + std::string{ gIceCavernPauseScreenMapFloor1LeftTex }, + std::string{ gIceCavernPauseScreenMapFloor1RightTex }, + { { 0, 66.0f, -2.0f }, { 1, 77.0f, -46.0f }, { 2, 27.0f, -45.0f } }, + {}, + }, + }, + { + { 1070, 100, std::string{ gIceCavernRoom0MinimapTex }, {}, {} }, + { 1180, -280, std::string{ gIceCavernRoom1MinimapTex }, {}, {} }, + { 1270, -690, std::string{ gIceCavernRoom2MinimapTex }, {}, {} }, + { 990, -840, std::string{ gIceCavernRoom3MinimapTex }, {}, {} }, + { 1280, -1010, std::string{ gIceCavernRoom4MinimapTex }, {}, {} }, + { 1450, -950, std::string{ gIceCavernRoom5MinimapTex }, {}, {} }, + { 1680, -730, std::string{ gIceCavernRoom6MinimapTex }, {}, {} }, + { 1530, + -470, + std::string{ gIceCavernRoom7MinimapTex }, + { + { 2, 71, 59 }, + }, + {} }, + { 760, -1130, std::string{ gIceCavernRoom8MinimapTex }, {}, {} }, + { 860, + -1440, + std::string{ gIceCavernRoom9MinimapTex }, + { + { 0, 48, 36 }, + }, + {} }, + { 1500, -420, std::string{ gIceCavernRoom10MinimapTex }, {}, {} }, + { 800, + -700, + std::string{ gIceCavernRoom11MinimapTex }, + { + { 1, 73, 67 }, + }, + {} }, + }, + {}, + }, + {} }, { // SCENE_GANONS_TOWER - "ganon_scene", - "Ganon's Tower", - "none", - SDC_DEFAULT, - { false, false, false, false, false, false, false, false, false, false, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "ganon_scene", + "Ganon's Tower", + "none", + SDC_DEFAULT, + { false, false, false, false, false, false, false, false, false, false, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_GERUDO_TRAINING_GROUND - "men_scene", - "Gerudo Training Ground", - "g_pn_11", - SDC_GERUDO_TRAINING_GROUND, - { false, false, false, false, false, false, false, true, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "men_scene", + "Gerudo Training Ground", + "g_pn_11", + SDC_GERUDO_TRAINING_GROUND, + { false, false, false, false, false, false, false, true, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_THIEVES_HIDEOUT - "gerudoway_scene", - "Thieves' Hideout", - "g_pn_49", - SDC_THIEVES_HIDEOUT, - { false, false, false, false, false, false, false, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "gerudoway_scene", + "Thieves' Hideout", + "g_pn_49", + SDC_THIEVES_HIDEOUT, + { false, false, false, false, false, false, false, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_INSIDE_GANONS_CASTLE - "ganontika_scene", - "Inside Ganon's Castle", - "g_pn_09", - SDC_INSIDE_GANONS_CASTLE, - { false, false, false, false, false, false, false, true, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "ganontika_scene", + "Inside Ganon's Castle", + "g_pn_09", + SDC_INSIDE_GANONS_CASTLE, + { false, false, false, false, false, false, false, true, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_GANONS_TOWER_COLLAPSE_INTERIOR - "ganon_sonogo_scene", - "Ganon's Tower (Collapsing)", - "none", - SDC_GANONS_TOWER_COLLAPSE_INTERIOR, - { false, false, false, false, false, false, true, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "ganon_sonogo_scene", + "Ganon's Tower (Collapsing)", + "none", + SDC_GANONS_TOWER_COLLAPSE_INTERIOR, + { false, false, false, false, false, false, true, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_INSIDE_GANONS_CASTLE_COLLAPSE - "ganontikasonogo_scene", - "Inside Ganon's Castle (Collapsing)", - "none", - SDC_INSIDE_GANONS_CASTLE_COLLAPSE, - { false, false, false, false, false, false, true, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "ganontikasonogo_scene", + "Inside Ganon's Castle (Collapsing)", + "none", + SDC_INSIDE_GANONS_CASTLE_COLLAPSE, + { false, false, false, false, false, false, true, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_TREASURE_BOX_SHOP - "takaraya_scene", - "Treasure Box Shop", - "g_pn_51", - SDC_DEFAULT, - { false, true, false, false, false, true, true, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "takaraya_scene", + "Treasure Box Shop", + "g_pn_51", + SDC_DEFAULT, + { false, true, false, false, false, true, true, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_DEKU_TREE_BOSS - "ydan_boss_scene", - "Gohma's Lair", - "none", - SDC_DEKU_TREE_BOSS, - { false, false, false, false, true, false, true, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - { "ydan_scene" }, - {}, - {} - }, + "ydan_boss_scene", + "Gohma's Lair", + "none", + SDC_DEKU_TREE_BOSS, + { false, false, false, false, true, false, true, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + { "ydan_scene" }, + {}, + {} }, { // SCENE_DODONGOS_CAVERN_BOSS - "ddan_boss_scene", - "King Dodongo's Lair", - "none", - SDC_DEFAULT, - { false, false, false, false, true, false, true, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - { "ddan_scene" }, - {}, - {} - }, + "ddan_boss_scene", + "King Dodongo's Lair", + "none", + SDC_DEFAULT, + { false, false, false, false, true, false, true, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + { "ddan_scene" }, + {}, + {} }, { // SCENE_JABU_JABU_BOSS - "bdan_boss_scene", - "Barinade's Lair", - "none", - SDC_JABU_JABU, - { false, false, false, false, true, false, true, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - { "bdan_scene" }, - {}, - {} - }, + "bdan_boss_scene", + "Barinade's Lair", + "none", + SDC_JABU_JABU, + { false, false, false, false, true, false, true, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + { "bdan_scene" }, + {}, + {} }, { // SCENE_FOREST_TEMPLE_BOSS - "moribossroom_scene", - "Phantom Ganon's Lair", - "none", - SDC_DEFAULT, - { false, false, false, false, true, false, true, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - { "Bmori1_scene" }, - {}, - {} - }, + "moribossroom_scene", + "Phantom Ganon's Lair", + "none", + SDC_DEFAULT, + { false, false, false, false, true, false, true, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + { "Bmori1_scene" }, + {}, + {} }, { // SCENE_FIRE_TEMPLE_BOSS - "FIRE_bs_scene", - "Volvagia's Lair", - "none", - SDC_FIRE_TEMPLE, - { false, false, false, false, true, false, true, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - { "HIDAN_scene" }, - {}, - {} - }, + "FIRE_bs_scene", + "Volvagia's Lair", + "none", + SDC_FIRE_TEMPLE, + { false, false, false, false, true, false, true, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + { "HIDAN_scene" }, + {}, + {} }, { // SCENE_WATER_TEMPLE_BOSS - "MIZUsin_bs_scene", - "Morpha's Lair", - "none", - SDC_WATER_TEMPLE_BOSS, - { false, false, false, false, true, false, true, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - { "MIZUsin_scene" }, - {}, - {} - }, + "MIZUsin_bs_scene", + "Morpha's Lair", + "none", + SDC_WATER_TEMPLE_BOSS, + { false, false, false, false, true, false, true, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + { "MIZUsin_scene" }, + {}, + {} }, { // SCENE_SPIRIT_TEMPLE_BOSS - "jyasinboss_scene", - "Twinrova's Lair & Nabooru's Mini-Boss Room", - "none", - SDC_DEFAULT, - { false, false, false, false, true, false, true, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - { "jyasinzou_scene" }, - {}, - {} - }, + "jyasinboss_scene", + "Twinrova's Lair & Nabooru's Mini-Boss Room", + "none", + SDC_DEFAULT, + { false, false, false, false, true, false, true, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + { "jyasinzou_scene" }, + {}, + {} }, { // SCENE_SHADOW_TEMPLE_BOSS - "HAKAdan_bs_scene", - "Bongo Bongo's Lair", - "none", - SDC_SHADOW_TEMPLE_AND_WELL, - { false, false, false, false, true, false, true, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - { "HAKAdan_scene" }, - {}, - {} - }, + "HAKAdan_bs_scene", + "Bongo Bongo's Lair", + "none", + SDC_SHADOW_TEMPLE_AND_WELL, + { false, false, false, false, true, false, true, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + { "HAKAdan_scene" }, + {}, + {} }, { // SCENE_GANONDORF_BOSS - "ganon_boss_scene", - "Ganondorf's Lair", - "none", - SDC_DEFAULT, - { false, false, false, false, true, false, true, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - { "" }, - {}, - {} - }, + "ganon_boss_scene", + "Ganondorf's Lair", + "none", + SDC_DEFAULT, + { false, false, false, false, true, false, true, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + { "" }, + {}, + {} }, { // SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR - "ganon_final_scene", - "Tower Collapse Exterior", - "none", - SDC_GANONS_TOWER_COLLAPSE_EXTERIOR, - { false, false, false, false, false, false, true, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - { "" }, - {}, - {} - }, + "ganon_final_scene", + "Tower Collapse Exterior", + "none", + SDC_GANONS_TOWER_COLLAPSE_EXTERIOR, + { false, false, false, false, false, false, true, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + { "" }, + {}, + {} }, { // SCENE_MARKET_ENTRANCE_DAY - "entra_scene", - "Market Entrance (Child - Day)", - "none", - SDC_DEFAULT, - { false, false, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "entra_scene", + "Market Entrance (Child - Day)", + "none", + SDC_DEFAULT, + { false, false, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_MARKET_ENTRANCE_NIGHT - "entra_n_scene", - "Market Entrance (Child - Night)", - "none", - SDC_DEFAULT, - { false, false, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "entra_n_scene", + "Market Entrance (Child - Night)", + "none", + SDC_DEFAULT, + { false, false, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_MARKET_ENTRANCE_RUINS - "enrui_scene", - "Market Entrance (Ruins)", - "none", - SDC_DEFAULT, - { false, false, false, false, false, true, false, false, true, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "enrui_scene", + "Market Entrance (Ruins)", + "none", + SDC_DEFAULT, + { false, false, false, false, false, true, false, false, true, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_BACK_ALLEY_DAY - "market_alley_scene", - "Back Alley (Child - Day)", - "g_pn_18", - SDC_DEFAULT, - { false, false, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "market_alley_scene", + "Back Alley (Child - Day)", + "g_pn_18", + SDC_DEFAULT, + { false, false, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_BACK_ALLEY_NIGHT - "market_alley_n_scene", - "Back Alley (Child - Night)", - "g_pn_18", - SDC_DEFAULT, - { false, false, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "market_alley_n_scene", + "Back Alley (Child - Night)", + "g_pn_18", + SDC_DEFAULT, + { false, false, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_MARKET_DAY - "market_day_scene", - "Market (Child - Day)", - "g_pn_17", - SDC_DEFAULT, - { false, false, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "market_day_scene", + "Market (Child - Day)", + "g_pn_17", + SDC_DEFAULT, + { false, false, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_MARKET_NIGHT - "market_night_scene", - "Market (Child - Night)", - "g_pn_17", - SDC_DEFAULT, - { false, false, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "market_night_scene", + "Market (Child - Night)", + "g_pn_17", + SDC_DEFAULT, + { false, false, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_MARKET_RUINS - "market_ruins_scene", - "Market (Ruins)", - "g_pn_17", - SDC_DEFAULT, - { false, false, false, false, false, true, false, false, true, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "market_ruins_scene", + "Market (Ruins)", + "g_pn_17", + SDC_DEFAULT, + { false, false, false, false, false, true, false, false, true, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_TEMPLE_OF_TIME_EXTERIOR_DAY - "shrine_scene", - "Temple of Time Exterior (Child - Day)", - "none", - SDC_DEFAULT, - { false, false, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "shrine_scene", + "Temple of Time Exterior (Child - Day)", + "none", + SDC_DEFAULT, + { false, false, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_TEMPLE_OF_TIME_EXTERIOR_NIGHT - "shrine_n_scene", - "Temple of Time Exterior (Child - Night)", - "none", - SDC_DEFAULT, - { false, false, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "shrine_n_scene", + "Temple of Time Exterior (Child - Night)", + "none", + SDC_DEFAULT, + { false, false, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_TEMPLE_OF_TIME_EXTERIOR_RUINS - "shrine_r_scene", - "Temple of Time Exterior (Ruins)", - "none", - SDC_DEFAULT, - { false, false, false, false, false, true, false, false, true, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "shrine_r_scene", + "Temple of Time Exterior (Ruins)", + "none", + SDC_DEFAULT, + { false, false, false, false, false, true, false, false, true, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_KNOW_IT_ALL_BROS_HOUSE - "kokiri_home_scene", - "Know-It-All Brothers' House", - "none", - SDC_DEFAULT, - { false, true, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "kokiri_home_scene", + "Know-It-All Brothers' House", + "none", + SDC_DEFAULT, + { false, true, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_TWINS_HOUSE - "kokiri_home3_scene", - "House of Twins", - "none", - SDC_DEFAULT, - { false, true, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "kokiri_home3_scene", + "House of Twins", + "none", + SDC_DEFAULT, + { false, true, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_MIDOS_HOUSE - "kokiri_home4_scene", - "Mido's House", - "none", - SDC_DEFAULT, - { false, true, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "kokiri_home4_scene", + "Mido's House", + "none", + SDC_DEFAULT, + { false, true, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_SARIAS_HOUSE - "kokiri_home5_scene", - "Saria's House", - "none", - SDC_DEFAULT, - { false, true, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "kokiri_home5_scene", + "Saria's House", + "none", + SDC_DEFAULT, + { false, true, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_KAKARIKO_CENTER_GUEST_HOUSE - "kakariko_scene", - "Carpenter Boss's House", - "none", - SDC_DEFAULT, - { false, true, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "kakariko_scene", + "Carpenter Boss's House", + "none", + SDC_DEFAULT, + { false, true, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_BACK_ALLEY_HOUSE - "kakariko3_scene", - "Back Alley House (Man in Green)", - "none", - SDC_DEFAULT, - { false, true, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "kakariko3_scene", + "Back Alley House (Man in Green)", + "none", + SDC_DEFAULT, + { false, true, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_BAZAAR - "shop1_scene", - "Bazaar", - "g_pn_23", - SDC_DEFAULT, - { false, true, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "shop1_scene", + "Bazaar", + "g_pn_23", + SDC_DEFAULT, + { false, true, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_KOKIRI_SHOP - "kokiri_shop_scene", - "Kokiri Shop", - "g_pn_19", - SDC_DEFAULT, - { false, true, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "kokiri_shop_scene", + "Kokiri Shop", + "g_pn_19", + SDC_DEFAULT, + { false, true, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_GORON_SHOP - "golon_scene", - "Goron Shop", - "g_pn_20", - SDC_DEFAULT, - { false, true, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "golon_scene", + "Goron Shop", + "g_pn_20", + SDC_DEFAULT, + { false, true, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_ZORA_SHOP - "zoora_scene", - "Zora Shop", - "g_pn_21", - SDC_DEFAULT, - { false, true, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "zoora_scene", + "Zora Shop", + "g_pn_21", + SDC_DEFAULT, + { false, true, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_POTION_SHOP_KAKARIKO - "drag_scene", - "Kakariko Potion Shop", - "g_pn_24", - SDC_DEFAULT, - { false, true, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "drag_scene", + "Kakariko Potion Shop", + "g_pn_24", + SDC_DEFAULT, + { false, true, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_POTION_SHOP_MARKET - "alley_shop_scene", - "Market Potion Shop", - "g_pn_24", - SDC_DEFAULT, - { false, true, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "alley_shop_scene", + "Market Potion Shop", + "g_pn_24", + SDC_DEFAULT, + { false, true, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_BOMBCHU_SHOP - "night_shop_scene", - "Bombchu Shop", - "g_pn_56", - SDC_DEFAULT, - { false, true, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "night_shop_scene", + "Bombchu Shop", + "g_pn_56", + SDC_DEFAULT, + { false, true, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_HAPPY_MASK_SHOP - "face_shop_scene", - "Happy Mask Shop", - "g_pn_50", - SDC_DEFAULT, - { false, true, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "face_shop_scene", + "Happy Mask Shop", + "g_pn_50", + SDC_DEFAULT, + { false, true, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_LINKS_HOUSE - "link_home_scene", - "Link's House", - "none", - SDC_DEFAULT, - { false, true, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "link_home_scene", + "Link's House", + "none", + SDC_DEFAULT, + { false, true, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_DOG_LADY_HOUSE - "impa_scene", - "Back Alley House (Dog Lady)", - "none", - SDC_DEFAULT, - { false, true, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "impa_scene", + "Back Alley House (Dog Lady)", + "none", + SDC_DEFAULT, + { false, true, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_STABLE - "malon_stable_scene", - "Stable", - "g_pn_48", - SDC_DEFAULT, - { false, true, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "malon_stable_scene", + "Stable", + "g_pn_48", + SDC_DEFAULT, + { false, true, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_IMPAS_HOUSE - "labo_scene", - "Impa's House", - "none", - SDC_DEFAULT, - { false, true, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "labo_scene", + "Impa's House", + "none", + SDC_DEFAULT, + { false, true, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_LAKESIDE_LABORATORY - "hylia_labo_scene", - "Lakeside Laboratory", - "g_pn_26", - SDC_LAKESIDE_LABORATORY, - { false, false, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "hylia_labo_scene", + "Lakeside Laboratory", + "g_pn_26", + SDC_LAKESIDE_LABORATORY, + { false, false, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_CARPENTERS_TENT - "tent_scene", - "Carpenters' Tent", - "none", - SDC_DEFAULT, - { false, true, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "tent_scene", + "Carpenters' Tent", + "none", + SDC_DEFAULT, + { false, true, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_GRAVEKEEPERS_HUT - "hut_scene", - "Gravekeeper's Hut", - "g_pn_25", - SDC_DEFAULT, - { false, true, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "hut_scene", + "Gravekeeper's Hut", + "g_pn_25", + SDC_DEFAULT, + { false, true, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC - "daiyousei_izumi_scene", - "Great Fairy's Fountain (Upgrades)", - "g_pn_13", - SDC_GREAT_FAIRYS_FOUNTAIN, - { false, false, false, false, false, false, false, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "daiyousei_izumi_scene", + "Great Fairy's Fountain (Upgrades)", + "g_pn_13", + SDC_GREAT_FAIRYS_FOUNTAIN, + { false, false, false, false, false, false, false, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_FAIRYS_FOUNTAIN - "yousei_izumi_tate_scene", - "Fairy's Fountain", - "g_pn_45", - SDC_FAIRYS_FOUNTAIN, - { false, false, false, false, false, false, false, false, true, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "yousei_izumi_tate_scene", + "Fairy's Fountain", + "g_pn_45", + SDC_FAIRYS_FOUNTAIN, + { false, false, false, false, false, false, false, false, true, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_GREAT_FAIRYS_FOUNTAIN_SPELLS - "yousei_izumi_yoko_scene", - "Great Fairy's Fountain (Spells)", - "g_pn_13", - SDC_GREAT_FAIRYS_FOUNTAIN, - { false, false, false, false, false, false, false, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "yousei_izumi_yoko_scene", + "Great Fairy's Fountain (Spells)", + "g_pn_13", + SDC_GREAT_FAIRYS_FOUNTAIN, + { false, false, false, false, false, false, false, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_GROTTOS - "kakusiana_scene", - "Grottos", - "none", - SDC_GROTTOS, - { false, false, false, false, false, false, false, false, true, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "kakusiana_scene", + "Grottos", + "none", + SDC_GROTTOS, + { false, false, false, false, false, false, false, false, true, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_REDEAD_GRAVE - "hakaana_scene", - "Grave (Redead)", - "none", - SDC_GRAVE_EXIT_LIGHT_SHINING, - { false, false, false, false, false, false, false, false, true, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "hakaana_scene", + "Grave (Redead)", + "none", + SDC_GRAVE_EXIT_LIGHT_SHINING, + { false, false, false, false, false, false, false, false, true, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_GRAVE_WITH_FAIRYS_FOUNTAIN - "hakaana2_scene", - "Grave (Fairy's Fountain)", - "none", - SDC_FAIRYS_FOUNTAIN, - { false, false, false, false, false, false, false, false, true, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "hakaana2_scene", + "Grave (Fairy's Fountain)", + "none", + SDC_FAIRYS_FOUNTAIN, + { false, false, false, false, false, false, false, false, true, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_ROYAL_FAMILYS_TOMB - "hakaana_ouke_scene", - "Royal Family's Tomb", - "g_pn_44", - SDC_ROYAL_FAMILYS_TOMB, - { false, false, false, false, false, false, false, false, true, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "hakaana_ouke_scene", + "Royal Family's Tomb", + "g_pn_44", + SDC_ROYAL_FAMILYS_TOMB, + { false, false, false, false, false, false, false, false, true, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_SHOOTING_GALLERY - "syatekijyou_scene", - "Shooting Gallery", - "g_pn_15", - SDC_SHOOTING_GALLERY, - { false, true, false, true, true, true, true, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "syatekijyou_scene", + "Shooting Gallery", + "g_pn_15", + SDC_SHOOTING_GALLERY, + { false, true, false, true, true, true, true, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_TEMPLE_OF_TIME - "tokinoma_scene", - "Temple of Time", - "g_pn_16", - SDC_TEMPLE_OF_TIME, - { false, false, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "tokinoma_scene", + "Temple of Time", + "g_pn_16", + SDC_TEMPLE_OF_TIME, + { false, false, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_CHAMBER_OF_THE_SAGES - "kenjyanoma_scene", - "Chamber of the Sages", - "g_pn_14", - SDC_CHAMBER_OF_THE_SAGES, - { true, true, false, true, true, true, true, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "kenjyanoma_scene", + "Chamber of the Sages", + "g_pn_14", + SDC_CHAMBER_OF_THE_SAGES, + { true, true, false, true, true, true, true, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_CASTLE_COURTYARD_GUARDS_DAY - "hairal_niwa_scene", - "Castle Hedge Maze (Day)", - "g_pn_12", - SDC_CASTLE_COURTYARD_GUARDS, - { false, true, false, true, true, true, true, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "hairal_niwa_scene", + "Castle Hedge Maze (Day)", + "g_pn_12", + SDC_CASTLE_COURTYARD_GUARDS, + { false, true, false, true, true, true, true, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_CASTLE_COURTYARD_GUARDS_NIGHT - "hairal_niwa_n_scene", - "Castle Hedge Maze (Night)", - "g_pn_12", - SDC_CASTLE_COURTYARD_GUARDS, - { false, true, false, true, true, true, true, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "hairal_niwa_n_scene", + "Castle Hedge Maze (Night)", + "g_pn_12", + SDC_CASTLE_COURTYARD_GUARDS, + { false, true, false, true, true, true, true, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_CUTSCENE_MAP - "hiral_demo_scene", - "Cutscene Map", - "none", - SDC_DEFAULT, - { false, false, false, false, false, false, false, false, false, false, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "hiral_demo_scene", + "Cutscene Map", + "none", + SDC_DEFAULT, + { false, false, false, false, false, false, false, false, false, false, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_WINDMILL_AND_DAMPES_GRAVE - "hakasitarelay_scene", - "Damp's Grave & Windmill", - "g_pn_57", - SDC_GRAVE_EXIT_LIGHT_SHINING, - { false, false, false, false, false, false, false, true, false, true, true, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "hakasitarelay_scene", + "Damp's Grave & Windmill", + "g_pn_57", + SDC_GRAVE_EXIT_LIGHT_SHINING, + { false, false, false, false, false, false, false, true, false, true, true, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_FISHING_POND - "turibori_scene", - "Fishing Pond", - "g_pn_46", - SDC_FISHING_POND, - { false, true, false, true, true, true, true, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "turibori_scene", + "Fishing Pond", + "g_pn_46", + SDC_FISHING_POND, + { false, true, false, true, true, true, true, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_CASTLE_COURTYARD_ZELDA - "nakaniwa_scene", - "Castle Courtyard", - "g_pn_12", - SDC_CALM_WATER, - { false, false, false, false, false, false, true, false, false, true, true, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "nakaniwa_scene", + "Castle Courtyard", + "g_pn_12", + SDC_CALM_WATER, + { false, false, false, false, false, false, true, false, false, true, true, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_BOMBCHU_BOWLING_ALLEY - "bowling_scene", - "Bombchu Bowling Alley", - "g_pn_47", - SDC_BOMBCHU_BOWLING_ALLEY, - { false, true, false, true, true, true, true, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "bowling_scene", + "Bombchu Bowling Alley", + "g_pn_47", + SDC_BOMBCHU_BOWLING_ALLEY, + { false, true, false, true, true, true, true, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_LON_LON_BUILDINGS - "souko_scene", - "Ranch House & Silo", - "none", - SDC_LON_LON_BUILDINGS, - { false, false, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "souko_scene", + "Ranch House & Silo", + "none", + SDC_LON_LON_BUILDINGS, + { false, false, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_MARKET_GUARD_HOUSE - "miharigoya_scene", - "Guard House", - "none", - SDC_MARKET_GUARD_HOUSE, - { false, false, false, false, false, true, false, false, false, true, true, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "miharigoya_scene", + "Guard House", + "none", + SDC_MARKET_GUARD_HOUSE, + { false, false, false, false, false, true, false, false, false, true, true, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_POTION_SHOP_GRANNY - "mahouya_scene", - "Granny's Potion Shop", - "g_pn_24", - SDC_POTION_SHOP_GRANNY, - { false, true, false, false, false, true, true, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "mahouya_scene", + "Granny's Potion Shop", + "g_pn_24", + SDC_POTION_SHOP_GRANNY, + { false, true, false, false, false, true, true, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_GANON_BOSS - "ganon_demo_scene", - "Ganon's Tower Collapse & Battle Arena", - "none", - SDC_OUTSIDE_GANONS_CASTLE, - { false, false, false, false, true, false, true, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "ganon_demo_scene", + "Ganon's Tower Collapse & Battle Arena", + "none", + SDC_OUTSIDE_GANONS_CASTLE, + { false, false, false, false, true, false, true, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_HOUSE_OF_SKULLTULA - "kinsuta_scene", - "House of Skulltula", - "g_pn_22", - SDC_DEFAULT, - { false, false, false, false, false, true, false, false, false, true, true, true }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "kinsuta_scene", + "House of Skulltula", + "g_pn_22", + SDC_DEFAULT, + { false, false, false, false, false, true, false, false, false, true, true, true }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_HYRULE_FIELD - "spot00_scene", - "Spot 00 - Hyrule Field", - "g_pn_27", - SDC_HYRULE_FIELD, - { false, false, false, false, false, false, false, false, false, true, false, false }, - { true, {-460, 100, 6640}, 0, - { { 16, 0, 1341 }, { -1297, 0, 1459 }, { -5416, -300, 1296 }, { -4667, -300, 3620 }, { -3837, 81, 5537 }, { -5093, -226, 6661 }, { -6588, -79, 5053 }, { -7072, -500, 7538 }, { -6139, -500, 8910 }, { -8497, -300, 7802 }, { -5481, -499, 12127 }, { -4808, -700, 13583 }, { -3416, -490, 12092 }, { -2915, 100, 8339 }, { -2277, -500, 13247 }, { -1026, -500, 12101 }, { 1427, -500, 13341 }, { -200, -486, 10205 }, { -1469, 100, 7496 }, { -995, 168, 5652 }, { 1938, 89, 6232 }, { 1387, -105, 9206 }, { 1571, -223, 7701 }, { 3893, -121, 7068 }, { 3179, 373, 5221 }, { 4678, -20, 3869 }, { 3460, 246, 4207 }, { 3686, 128, 2366 }, { 1791, 18, 152 }, { 3667, -16, 1399 }, { 1827, -15, 983 }, { 1574, 399, 4318 }, { 716, 95, 3391 }, { -1189, -41, 4739 }, { -1976, -171, 4172 }, { 1314, 391, 5665 }, { 112, 0, 1959 }, { -3011, -111, 9397 }, { -5674, -270, 8585 }, { -8861, -300, 7836 }, { -6056, -500, 7810 }, { -7306, -500, 5994 }, { -7305, -500, 7605 }, { -7439, -300, 7600 }, { -7464, -300, 6268 }, { -8080, -300, 7553 }, { -8091, -300, 7349 }, { -8785, -300, 7383 }, { -8745, -300, 7508 }, { -8777, -300, 7788 }, { -8048, -299, 7738 }, { -7341, -184, 7730 }, { -6410, -288, 7824 }, { -6326, -290, 8205 }, { -6546, -292, 8400 }, { -7533, -180, 8459 }, { -8024, -295, 7903 }, { -8078, -308, 7994 }, { -9425, -287, 7696 }, { -9322, -292, 7577 }, { -9602, -199, 7160 }, { -9307, -300, 7758 }, { -9230, -300, 7642 }, { -7556, -499, 8695 }, { -6438, -500, 8606 }, { -6078, -500, 8258 }, { -6233, -500, 7613 }, { -5035, -205, 7814 }, { -5971, -500, 8501 }, { -5724, -498, 10123 }, { -5094, -392, 11106 }, { -5105, -393, 11312 }, { -4477, -314, 11132 }, { -3867, -380, 11419 }, { -2952, -500, 11944 }, { -2871, -488, 11743 }, { -3829, -372, 11327 }, { -4439, -293, 10989 }, { -5014, -381, 11086 }, { -5113, -188, 10968 }, { -5269, -188, 11156 }, { -5596, -178, 9972 }, { -5801, -288, 8518 }, { -4910, -178, 7931 }, { -3586, 73, 8140 }, { -4487, -106, 9362 }, { -4339, -112, 6412 }, { -3417, 105, 8194 }, { -4505, -20, 6608 }, { -5038, -199, 6603 }, { -4481, 1, 6448 }, { -5032, -168, 6418 }, { -5256, -700, 14329 }, { -5749, -820, 15380 }, { -3122, -700, 13608 }, { -3758, -525, 13228 }, { -3670, -500, 13123 }, { -2924, -500, 13526 }, { 1389, -115, 9370 }, { 548, -116, 8889 }, { -106, -107, 8530 }, { -1608, 85, 7646 }, { -5300, -700, 13772 }, { -5114, -700, 13400 }, { -4561, -700, 13700 }, { -4762, -700, 14084 }, { -2954, 100, 8216 }, { 1460, -104, 9246 }, { 629, -105, 8791 }, { -10, -90, 8419 }, { -1462, 100, 7504 }, { -3018, -500, 12493 }, { -2994, -311, 10331 }, { -4006, -700, 14152 }, { -4341, -500, 12743 }, { -5879, -497, 6799 }, { 22, -473, 10103 }, { -1389, -192, 8874 }, { -4, 92, 6866 }, { 483, 104, 6637 }, { 1580, 183, 5987 }, { 1548, 308, 5077 }, { 1511, 399, 4267 }, { 1358, 385, 4271 }, { 1379, 395, 5063 }, { 1360, 394, 5870 }, { 813, 283, 6194 }, { -57, 101, 6743 }, { 91, 325, 5143 }, { 1425, -214, 7659 }, { 3487, -19, 880 }, { 2933, 152, 2094 }, { 2888, -145, 6862 }, { 1511, 67, 6471 }, { 4051, -47, 1722 }, { -7335, -500, 8627 }, { -7728, -462, 8498 }, { -7791, -446, 8832 }, { -2915, -435, 11334 }, { 165, -278, 3352 } } }, - { 25, 25, 1080, -360 }, - {}, - {}, - { 216, 150, 80, 73, 1, 0, -1, std::string{gHyruleFieldMinimapTex} } - }, + "spot00_scene", + "Spot 00 - Hyrule Field", + "g_pn_27", + SDC_HYRULE_FIELD, + { false, false, false, false, false, false, false, false, false, true, false, false }, + { true, + { -460, 100, 6640 }, + 0, + { { 16, 0, 1341 }, { -1297, 0, 1459 }, { -5416, -300, 1296 }, { -4667, -300, 3620 }, + { -3837, 81, 5537 }, { -5093, -226, 6661 }, { -6588, -79, 5053 }, { -7072, -500, 7538 }, + { -6139, -500, 8910 }, { -8497, -300, 7802 }, { -5481, -499, 12127 }, { -4808, -700, 13583 }, + { -3416, -490, 12092 }, { -2915, 100, 8339 }, { -2277, -500, 13247 }, { -1026, -500, 12101 }, + { 1427, -500, 13341 }, { -200, -486, 10205 }, { -1469, 100, 7496 }, { -995, 168, 5652 }, + { 1938, 89, 6232 }, { 1387, -105, 9206 }, { 1571, -223, 7701 }, { 3893, -121, 7068 }, + { 3179, 373, 5221 }, { 4678, -20, 3869 }, { 3460, 246, 4207 }, { 3686, 128, 2366 }, + { 1791, 18, 152 }, { 3667, -16, 1399 }, { 1827, -15, 983 }, { 1574, 399, 4318 }, + { 716, 95, 3391 }, { -1189, -41, 4739 }, { -1976, -171, 4172 }, { 1314, 391, 5665 }, + { 112, 0, 1959 }, { -3011, -111, 9397 }, { -5674, -270, 8585 }, { -8861, -300, 7836 }, + { -6056, -500, 7810 }, { -7306, -500, 5994 }, { -7305, -500, 7605 }, { -7439, -300, 7600 }, + { -7464, -300, 6268 }, { -8080, -300, 7553 }, { -8091, -300, 7349 }, { -8785, -300, 7383 }, + { -8745, -300, 7508 }, { -8777, -300, 7788 }, { -8048, -299, 7738 }, { -7341, -184, 7730 }, + { -6410, -288, 7824 }, { -6326, -290, 8205 }, { -6546, -292, 8400 }, { -7533, -180, 8459 }, + { -8024, -295, 7903 }, { -8078, -308, 7994 }, { -9425, -287, 7696 }, { -9322, -292, 7577 }, + { -9602, -199, 7160 }, { -9307, -300, 7758 }, { -9230, -300, 7642 }, { -7556, -499, 8695 }, + { -6438, -500, 8606 }, { -6078, -500, 8258 }, { -6233, -500, 7613 }, { -5035, -205, 7814 }, + { -5971, -500, 8501 }, { -5724, -498, 10123 }, { -5094, -392, 11106 }, { -5105, -393, 11312 }, + { -4477, -314, 11132 }, { -3867, -380, 11419 }, { -2952, -500, 11944 }, { -2871, -488, 11743 }, + { -3829, -372, 11327 }, { -4439, -293, 10989 }, { -5014, -381, 11086 }, { -5113, -188, 10968 }, + { -5269, -188, 11156 }, { -5596, -178, 9972 }, { -5801, -288, 8518 }, { -4910, -178, 7931 }, + { -3586, 73, 8140 }, { -4487, -106, 9362 }, { -4339, -112, 6412 }, { -3417, 105, 8194 }, + { -4505, -20, 6608 }, { -5038, -199, 6603 }, { -4481, 1, 6448 }, { -5032, -168, 6418 }, + { -5256, -700, 14329 }, { -5749, -820, 15380 }, { -3122, -700, 13608 }, { -3758, -525, 13228 }, + { -3670, -500, 13123 }, { -2924, -500, 13526 }, { 1389, -115, 9370 }, { 548, -116, 8889 }, + { -106, -107, 8530 }, { -1608, 85, 7646 }, { -5300, -700, 13772 }, { -5114, -700, 13400 }, + { -4561, -700, 13700 }, { -4762, -700, 14084 }, { -2954, 100, 8216 }, { 1460, -104, 9246 }, + { 629, -105, 8791 }, { -10, -90, 8419 }, { -1462, 100, 7504 }, { -3018, -500, 12493 }, + { -2994, -311, 10331 }, { -4006, -700, 14152 }, { -4341, -500, 12743 }, { -5879, -497, 6799 }, + { 22, -473, 10103 }, { -1389, -192, 8874 }, { -4, 92, 6866 }, { 483, 104, 6637 }, + { 1580, 183, 5987 }, { 1548, 308, 5077 }, { 1511, 399, 4267 }, { 1358, 385, 4271 }, + { 1379, 395, 5063 }, { 1360, 394, 5870 }, { 813, 283, 6194 }, { -57, 101, 6743 }, + { 91, 325, 5143 }, { 1425, -214, 7659 }, { 3487, -19, 880 }, { 2933, 152, 2094 }, + { 2888, -145, 6862 }, { 1511, 67, 6471 }, { 4051, -47, 1722 }, { -7335, -500, 8627 }, + { -7728, -462, 8498 }, { -7791, -446, 8832 }, { -2915, -435, 11334 }, { 165, -278, 3352 } } }, + { 25, 25, 1080, -360 }, + {}, + {}, + { 216, 150, 80, 73, 1, 0, -1, std::string{ gHyruleFieldMinimapTex } } }, { // SCENE_KAKARIKO_VILLAGE - "spot01_scene", - "Spot 01 - Kakariko Village", - "g_pn_28", - SDC_KAKARIKO_VILLAGE, - { false, false, false, false, false, false, false, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 7, 6, 1000, -650 }, - {}, - {}, - { 216, 158, 80, 64, 269, -833, 8, std::string{gKakarikoVillageMinimapTex} } - }, + "spot01_scene", + "Spot 01 - Kakariko Village", + "g_pn_28", + SDC_KAKARIKO_VILLAGE, + { false, false, false, false, false, false, false, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 7, 6, 1000, -650 }, + {}, + {}, + { 216, 158, 80, 64, 269, -833, 8, std::string{ gKakarikoVillageMinimapTex } } }, { // SCENE_GRAVEYARD - "spot02_scene", - "Spot 02 - Graveyard", - "g_pn_29", - SDC_DEFAULT, - { false, false, false, false, false, false, false, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 6, 6, 890, -800 }, - {}, - {}, - { 218, 184, 80, 39, 1, 0, 7, std::string{gGraveyardMinimapTex} } - }, + "spot02_scene", + "Spot 02 - Graveyard", + "g_pn_29", + SDC_DEFAULT, + { false, false, false, false, false, false, false, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 6, 6, 890, -800 }, + {}, + {}, + { 218, 184, 80, 39, 1, 0, 7, std::string{ gGraveyardMinimapTex } } }, { // SCENE_ZORAS_RIVER - "spot03_scene", - "Spot 03 - Zora's River", - "g_pn_30", - SDC_ZORAS_RIVER, - { false, false, false, false, false, false, false, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 7, 7, 720, -730 }, - {}, - {}, - { 202, 164, 96, 58, 1, 0, -1, std::string{gZorasRiverMinimapTex} } - }, + "spot03_scene", + "Spot 03 - Zora's River", + "g_pn_30", + SDC_ZORAS_RIVER, + { false, false, false, false, false, false, false, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 7, 7, 720, -730 }, + {}, + {}, + { 202, 164, 96, 58, 1, 0, -1, std::string{ gZorasRiverMinimapTex } } }, { // SCENE_KOKIRI_FOREST - "spot04_scene", - "Spot 04 - Kokiri Forest", - "g_pn_31", - SDC_KOKIRI_FOREST, - { false, false, false, false, false, false, false, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 8, 8, 660, -730 }, - {}, - {}, - { 202, 160, 96, 62, 273, -850, 0, std::string{gKokiriForestMinimapTex} } - }, + "spot04_scene", + "Spot 04 - Kokiri Forest", + "g_pn_31", + SDC_KOKIRI_FOREST, + { false, false, false, false, false, false, false, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 8, 8, 660, -730 }, + {}, + {}, + { 202, 160, 96, 62, 273, -850, 0, std::string{ gKokiriForestMinimapTex } } }, { // SCENE_SACRED_FOREST_MEADOW - "spot05_scene", - "Spot 05 - Sacred Forest Meadow", - "g_pn_52", - SDC_CALM_WATER, - { false, false, false, false, false, false, false, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 5, 7, 1220, -660 }, - {}, - {}, - { 250, 138, 48, 85, 279, -889, 3, std::string{gSacredMeadowMinimapTex} } - }, + "spot05_scene", + "Spot 05 - Sacred Forest Meadow", + "g_pn_52", + SDC_CALM_WATER, + { false, false, false, false, false, false, false, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 5, 7, 1220, -660 }, + {}, + {}, + { 250, 138, 48, 85, 279, -889, 3, std::string{ gSacredMeadowMinimapTex } } }, { // SCENE_LAKE_HYLIA - "spot06_scene", - "Spot 06 - Lake Hylia", - "g_pn_32", - SDC_LAKE_HYLIA, - { false, false, false, false, false, false, false, false, false, true, false, false }, - { true, {-1929, -1025, 768}, 0, - { { -2109, -882, 1724 }, { -328, -1238, 2705 }, { -3092, -1033, 3527 } } }, - { 13, 13, 1080, -260 }, - {}, - {}, - { 216, 140, 80, 81, 259, -829, 5, std::string{gLakeHyliaMinimapTex} } - }, + "spot06_scene", + "Spot 06 - Lake Hylia", + "g_pn_32", + SDC_LAKE_HYLIA, + { false, false, false, false, false, false, false, false, false, true, false, false }, + { true, { -1929, -1025, 768 }, 0, { { -2109, -882, 1724 }, { -328, -1238, 2705 }, { -3092, -1033, 3527 } } }, + { 13, 13, 1080, -260 }, + {}, + {}, + { 216, 140, 80, 81, 259, -829, 5, std::string{ gLakeHyliaMinimapTex } } }, { // SCENE_ZORAS_DOMAIN - "spot07_scene", - "Spot 07 - Zora's Domain", - "g_pn_33", - SDC_ZORAS_DOMAIN, - { false, false, false, false, false, false, false, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 5, 5, 1120, -880 }, - {}, - {}, - { 234, 150, 64, 73, 1, 0, -1, std::string{gZorasDomainMinimapTex} } - }, + "spot07_scene", + "Spot 07 - Zora's Domain", + "g_pn_33", + SDC_ZORAS_DOMAIN, + { false, false, false, false, false, false, false, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 5, 5, 1120, -880 }, + {}, + {}, + { 234, 150, 64, 73, 1, 0, -1, std::string{ gZorasDomainMinimapTex } } }, { // SCENE_ZORAS_FOUNTAIN - "spot08_scene", - "Spot 08 - Zora's Fountain", - "g_pn_34", - SDC_ZORAS_FOUNTAIN, - { false, false, false, false, false, false, false, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 8, 8, 1150, -630 }, - {}, - {}, - { 234, 156, 64, 65, 260, -844, 2, std::string{gZorasFountainMinimapTex} } - }, + "spot08_scene", + "Spot 08 - Zora's Fountain", + "g_pn_34", + SDC_ZORAS_FOUNTAIN, + { false, false, false, false, false, false, false, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 8, 8, 1150, -630 }, + {}, + {}, + { 234, 156, 64, 65, 260, -844, 2, std::string{ gZorasFountainMinimapTex } } }, { // SCENE_GERUDO_VALLEY - "spot09_scene", - "Spot 09 - Gerudo Valley", - "g_pn_35", - SDC_GERUDO_VALLEY, - { false, false, false, false, false, false, false, false, false, true, false, false }, - { true, {2566, -259, 767}, 0, - { { 2687, -269, 753 }, { 2066, -132, 317 }, { 523, -8, 635 }, { 558, 36, -323 }, { 615, 51, -839 }, { -614, 32, 29 }, { -639, -3, 553 }, { -540, 10, -889 }, { -1666, 58, 378 }, { -3044, 210, -648 } } }, - { 11, 11, 1060, -680 }, - {}, - {}, - { 216, 158, 80, 65, 1, 0, -1, std::string{gGerudoValleyMinimapTex} } - }, + "spot09_scene", + "Spot 09 - Gerudo Valley", + "g_pn_35", + SDC_GERUDO_VALLEY, + { false, false, false, false, false, false, false, false, false, true, false, false }, + { true, + { 2566, -259, 767 }, + 0, + { { 2687, -269, 753 }, + { 2066, -132, 317 }, + { 523, -8, 635 }, + { 558, 36, -323 }, + { 615, 51, -839 }, + { -614, 32, 29 }, + { -639, -3, 553 }, + { -540, 10, -889 }, + { -1666, 58, 378 }, + { -3044, 210, -648 } } }, + { 11, 11, 1060, -680 }, + {}, + {}, + { 216, 158, 80, 65, 1, 0, -1, std::string{ gGerudoValleyMinimapTex } } }, { // SCENE_LOST_WOODS - "spot10_scene", - "Spot 10 - Lost Woods", - "g_pn_36", - SDC_LOST_WOODS, - { false, false, false, false, false, false, false, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 12, 12, 1100, -720 }, - {}, - {}, - { 234, 168, 64, 56, 1, 0, -1, std::string{gHauntedWastelandMinimapTex} } - }, + "spot10_scene", + "Spot 10 - Lost Woods", + "g_pn_36", + SDC_LOST_WOODS, + { false, false, false, false, false, false, false, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 12, 12, 1100, -720 }, + {}, + {}, + { 234, 168, 64, 56, 1, 0, -1, std::string{ gHauntedWastelandMinimapTex } } }, { // SCENE_DESERT_COLOSSUS - "spot11_scene", - "Spot 11 - Desert Colossus", - "g_pn_55", - SDC_DESERT_COLOSSUS, - { false, false, false, false, false, false, false, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 11, 11, 930, -710 }, - {}, - {}, - { 234, 162, 64, 59, 235, -836, 6, std::string{gDesertColossusMinimapTex} } - }, + "spot11_scene", + "Spot 11 - Desert Colossus", + "g_pn_55", + SDC_DESERT_COLOSSUS, + { false, false, false, false, false, false, false, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 11, 11, 930, -710 }, + {}, + {}, + { 234, 162, 64, 59, 235, -836, 6, std::string{ gDesertColossusMinimapTex } } }, { // SCENE_GERUDOS_FORTRESS - "spot12_scene", - "Spot 12 - Gerudo's Fortress", - "g_pn_53", - SDC_GERUDOS_FORTRESS, - { false, false, false, false, false, false, false, false, false, true, false, false }, - { true, {-328, 10, 953}, 0, - { { -678, 21, -623 }, { 149, 333, -2499 }, { 499, 581, -547 }, { 3187, 1413, -3775 }, { 3198, 1413, 307 }, { 3380, 1413, -1200 }, { -966, 1, -56 }, { -966, 24, -761 }, { -694, 174, -2820 } } }, - { 9, 9, 850, -830 }, - {}, - {}, - { 216, 138, 80, 85, 1, 0, 11, std::string{gGerudosFortessMinimapTex} } - }, + "spot12_scene", + "Spot 12 - Gerudo's Fortress", + "g_pn_53", + SDC_GERUDOS_FORTRESS, + { false, false, false, false, false, false, false, false, false, true, false, false }, + { true, + { -328, 10, 953 }, + 0, + { { -678, 21, -623 }, + { 149, 333, -2499 }, + { 499, 581, -547 }, + { 3187, 1413, -3775 }, + { 3198, 1413, 307 }, + { 3380, 1413, -1200 }, + { -966, 1, -56 }, + { -966, 24, -761 }, + { -694, 174, -2820 } } }, + { 9, 9, 850, -830 }, + {}, + {}, + { 216, 138, 80, 85, 1, 0, 11, std::string{ gGerudosFortessMinimapTex } } }, { // SCENE_HAUNTED_WASTELAND - "spot13_scene", - "Spot 13 - Haunted Wasteland", - "g_pn_37", - SDC_HAUNTED_WASTELAND, - { false, false, false, false, false, false, false, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 15, 15, 1100, -780 }, - {}, - {}, - { 234, 168, 64, 56, 1, 0, -1, std::string{gLostWoodsMinimapTex} } - }, + "spot13_scene", + "Spot 13 - Haunted Wasteland", + "g_pn_37", + SDC_HAUNTED_WASTELAND, + { false, false, false, false, false, false, false, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 15, 15, 1100, -780 }, + {}, + {}, + { 234, 168, 64, 56, 1, 0, -1, std::string{ gLostWoodsMinimapTex } } }, { // SCENE_HYRULE_CASTLE - "spot15_scene", - "Spot 15 - Hyrule Castle", - "g_pn_38", - SDC_HYRULE_CASTLE, - { false, false, false, false, false, false, false, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 10, 10, 1030, -540 }, - {}, - {}, - { 234, 162, 64, 59, 1, 0, -1, std::string{gHyruleCastleAreaMinimapTex} } - }, + "spot15_scene", + "Spot 15 - Hyrule Castle", + "g_pn_38", + SDC_HYRULE_CASTLE, + { false, false, false, false, false, false, false, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 10, 10, 1030, -540 }, + {}, + {}, + { 234, 162, 64, 59, 1, 0, -1, std::string{ gHyruleCastleAreaMinimapTex } } }, { // SCENE_DEATH_MOUNTAIN_TRAIL - "spot16_scene", - "Spot 16 - Death Mountain Trail", - "g_pn_39", - SDC_DEATH_MOUNTAIN_TRAIL, - { false, false, false, false, false, false, false, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 10, 9, 1240, -700 }, - {}, - {}, - { 250, 138, 48, 85, 267, -852, 1, std::string{gDeathMountainTrailMinimapTex} } - }, + "spot16_scene", + "Spot 16 - Death Mountain Trail", + "g_pn_39", + SDC_DEATH_MOUNTAIN_TRAIL, + { false, false, false, false, false, false, false, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 10, 9, 1240, -700 }, + {}, + {}, + { 250, 138, 48, 85, 267, -852, 1, std::string{ gDeathMountainTrailMinimapTex } } }, { // SCENE_DEATH_MOUNTAIN_CRATER - "spot17_scene", - "Spot 17 - Death Mountain Crater", - "g_pn_40", - SDC_DEATH_MOUNTAIN_CRATER, - { false, false, false, false, false, false, false, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 6, 6, 1030, -620 }, - {}, - {}, - { 216, 146, 80, 78, 261, -873, 4, std::string{gDeathMountainCraterMinimapTex} } - }, + "spot17_scene", + "Spot 17 - Death Mountain Crater", + "g_pn_40", + SDC_DEATH_MOUNTAIN_CRATER, + { false, false, false, false, false, false, false, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 6, 6, 1030, -620 }, + {}, + {}, + { 216, 146, 80, 78, 261, -873, 4, std::string{ gDeathMountainCraterMinimapTex } } }, { // SCENE_GORON_CITY - "spot18_scene", - "Spot 18 - Goron City", - "g_pn_41", - SDC_GORON_CITY, - { false, false, false, false, false, false, false, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 5, 5, 1100, -660 }, - {}, - {}, - { 234, 150, 64, 72, 1, 0, -1, std::string{gGoronCityMinimapTex} } - }, + "spot18_scene", + "Spot 18 - Goron City", + "g_pn_41", + SDC_GORON_CITY, + { false, false, false, false, false, false, false, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 5, 5, 1100, -660 }, + {}, + {}, + { 234, 150, 64, 72, 1, 0, -1, std::string{ gGoronCityMinimapTex } } }, { // SCENE_LON_LON_RANCH - "spot20_scene", - "Spot 20 - Lon Lon Ranch", - "g_pn_42", - SDC_LON_LON_RANCH, - { false, false, false, false, false, false, false, false, false, true, false, false }, - { true, {928, 0, -2280}, 0, - { { 1039, 0, 2051 }, { -1443, 0, 1429 }, { 856, 0, -918 }, { 882, 0, -2256 }, { -1003, 0, -755 }, { -2254, 0, -629 }, { 907, 0, -2336 } } }, - { 11, 11, 1120, -750 }, - {}, - {}, - { 234, 154, 64, 68, 1, 0, -1, std::string{gLonLonRanchMinimapTex} } - }, + "spot20_scene", + "Spot 20 - Lon Lon Ranch", + "g_pn_42", + SDC_LON_LON_RANCH, + { false, false, false, false, false, false, false, false, false, true, false, false }, + { true, + { 928, 0, -2280 }, + 0, + { { 1039, 0, 2051 }, + { -1443, 0, 1429 }, + { 856, 0, -918 }, + { 882, 0, -2256 }, + { -1003, 0, -755 }, + { -2254, 0, -629 }, + { 907, 0, -2336 } } }, + { 11, 11, 1120, -750 }, + {}, + {}, + { 234, 154, 64, 68, 1, 0, -1, std::string{ gLonLonRanchMinimapTex } } }, { // SCENE_OUTSIDE_GANONS_CASTLE - "ganon_tou_scene", - "Ganon's Castle Exterior", - "g_pn_43", - SDC_OUTSIDE_GANONS_CASTLE, - { false, false, false, false, false, false, false, false, false, true, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 10, 10, 1070, -580 }, - {}, - {}, - {} - }, + "ganon_tou_scene", + "Ganon's Castle Exterior", + "g_pn_43", + SDC_OUTSIDE_GANONS_CASTLE, + { false, false, false, false, false, false, false, false, false, true, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 10, 10, 1070, -580 }, + {}, + {}, + {} }, { // SCENE_TEST01 - "test01_scene", - "Jungle Gym", - "none", - SDC_CALM_WATER, - { false, false, false, false, false, false, false, false, false, false, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "test01_scene", + "Jungle Gym", + "none", + SDC_CALM_WATER, + { false, false, false, false, false, false, false, false, false, false, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_BESITU - "besitu_scene", - "Ganondorf Test Room", - "none", - SDC_BESITU, - { false, false, false, false, false, false, false, false, false, false, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "besitu_scene", + "Ganondorf Test Room", + "none", + SDC_BESITU, + { false, false, false, false, false, false, false, false, false, false, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_DEPTH_TEST - "depth_test_scene", - "Depth Test", - "none", - SDC_DEFAULT, - { false, false, false, false, false, false, false, false, false, false, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "depth_test_scene", + "Depth Test", + "none", + SDC_DEFAULT, + { false, false, false, false, false, false, false, false, false, false, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_SYOTES - "syotes_scene", - "Stalfos Mini-Boss Room", - "none", - SDC_DEFAULT, - { false, false, false, false, false, false, false, false, false, false, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "syotes_scene", + "Stalfos Mini-Boss Room", + "none", + SDC_DEFAULT, + { false, false, false, false, false, false, false, false, false, false, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_SYOTES2 - "syotes2_scene", - "Stalfos Boss Room", - "none", - SDC_DEFAULT, - { false, false, false, false, false, false, false, false, false, false, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "syotes2_scene", + "Stalfos Boss Room", + "none", + SDC_DEFAULT, + { false, false, false, false, false, false, false, false, false, false, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_SUTARU - "sutaru_scene", - "Sutaru", - "none", - SDC_DEFAULT, - { false, false, false, false, false, false, false, false, false, false, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "sutaru_scene", + "Sutaru", + "none", + SDC_DEFAULT, + { false, false, false, false, false, false, false, false, false, false, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_HAIRAL_NIWA2 - "hairal_niwa2_scene", - "Castle Hedge Maze (Early)", - "g_pn_12", - SDC_CASTLE_COURTYARD_GUARDS, - { false, false, false, false, false, false, false, false, false, false, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "hairal_niwa2_scene", + "Castle Hedge Maze (Early)", + "g_pn_12", + SDC_CASTLE_COURTYARD_GUARDS, + { false, false, false, false, false, false, false, false, false, false, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_SASATEST - "sasatest_scene", - "Sasa Test", - "none", - SDC_DEFAULT, - { false, false, false, false, false, false, false, false, false, false, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "sasatest_scene", + "Sasa Test", + "none", + SDC_DEFAULT, + { false, false, false, false, false, false, false, false, false, false, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, { // SCENE_TESTROOM - "testroom_scene", - "Treasure Chest Room", - "none", - SDC_DEFAULT, - { false, false, false, false, false, false, false, false, false, false, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, - { // The entrance table has an entrance for a scene that does not exist. This entry makes a scene that they can be accounted to it. - "SCENE_UNUSED_6E", - "Unused scene that has an entrance for it", - "none", - SDC_DEFAULT, - { false, false, false, false, false, false, false, false, false, false, false, false }, - { false, {0, 0, 0}, 0, {} }, - { 0, 0, 0, 0 }, - {}, - {}, - {} - }, + "testroom_scene", + "Treasure Chest Room", + "none", + SDC_DEFAULT, + { false, false, false, false, false, false, false, false, false, false, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, + { // The entrance table has an entrance for a scene that does not exist. This entry makes a scene that they can be + // accounted to it. + "SCENE_UNUSED_6E", + "Unused scene that has an entrance for it", + "none", + SDC_DEFAULT, + { false, false, false, false, false, false, false, false, false, false, false, false }, + { false, { 0, 0, 0 }, 0, {} }, + { 0, 0, 0, 0 }, + {}, + {}, + {} }, }; \ No newline at end of file diff --git a/soh/soh/z_play_otr.cpp b/soh/soh/z_play_otr.cpp index 0eca59954..1e46ce1e7 100644 --- a/soh/soh/z_play_otr.cpp +++ b/soh/soh/z_play_otr.cpp @@ -34,7 +34,8 @@ extern "C" void OTRPlay_SpawnScene(PlayState* play, s32 sceneId, s32 spawn) { if (inNonSharedScene) { sceneVersion = ResourceMgr_IsGameMasterQuest() ? "mq" : "nonmq"; } - std::string scenePath = StringHelper::Sprintf("scenes/%s/%s/%s", sceneVersion.c_str(), entry.name.c_str(), entry.name.c_str()); + std::string scenePath = + StringHelper::Sprintf("scenes/%s/%s/%s", sceneVersion.c_str(), entry.name.c_str(), entry.name.c_str()); play->sceneSegment = OTRPlay_LoadFile(play, scenePath.c_str()); diff --git a/soh/src/code/z_actor.c b/soh/src/code/z_actor.c index 39e3f6d44..bf78a3413 100644 --- a/soh/src/code/z_actor.c +++ b/soh/src/code/z_actor.c @@ -874,8 +874,8 @@ void TitleCard_InitBossName(PlayState* play, TitleCardContext* titleCtx, void* t } // SceneDB TODO: this needs to be parameterized with a good multi-language solution for the textures -void TitleCard_InitPlaceName(PlayState* play, TitleCardContext* titleCtx, void* texture, s32 x, s32 y, - s32 width, s32 height, s32 delay) { +void TitleCard_InitPlaceName(PlayState* play, TitleCardContext* titleCtx, void* texture, s32 x, s32 y, s32 width, + s32 height, s32 delay) { SceneTableEntry* loadedScene = play->loadedScene; // size_t size = loadedScene->titleFile.vromEnd - loadedScene->titleFile.vromStart; switch (play->sceneNum) { diff --git a/soh/src/code/z_demo.c b/soh/src/code/z_demo.c index 315a8e513..815cce272 100644 --- a/soh/src/code/z_demo.c +++ b/soh/src/code/z_demo.c @@ -2220,8 +2220,10 @@ void Cutscene_HandleConditionalTriggers(PlayState* play) { } s32 scene = EntranceDB_Retrieve(gSaveContext.entranceIndex)->sceneId; - if ((gSaveContext.gameMode == GAMEMODE_NORMAL) && (gSaveContext.respawnFlag <= 0) && (gSaveContext.cutsceneIndex < 0xFFF0)) { - if ((gSaveContext.entranceIndex == ENTR_DESERT_COLOSSUS_OUTSIDE_TEMPLE) && !Flags_GetEventChkInf(EVENTCHKINF_LEARNED_REQUIEM_OF_SPIRIT)) { + if ((gSaveContext.gameMode == GAMEMODE_NORMAL) && (gSaveContext.respawnFlag <= 0) && + (gSaveContext.cutsceneIndex < 0xFFF0)) { + if ((gSaveContext.entranceIndex == ENTR_DESERT_COLOSSUS_OUTSIDE_TEMPLE) && + !Flags_GetEventChkInf(EVENTCHKINF_LEARNED_REQUIEM_OF_SPIRIT)) { Flags_SetEventChkInf(EVENTCHKINF_LEARNED_REQUIEM_OF_SPIRIT); gSaveContext.entranceIndex = ENTR_DESERT_COLOSSUS_EAST_EXIT; gSaveContext.cutsceneIndex = 0xFFF0; @@ -2242,13 +2244,12 @@ void Cutscene_HandleConditionalTriggers(PlayState* play) { } gSaveContext.entranceIndex = ENTR_LOST_WOODS_SOUTH_EXIT; gSaveContext.cutsceneIndex = 0xFFF0; - } else if (GameInteractor_Should(VB_BE_ELIGIBLE_FOR_LIGHT_ARROWS, ( - CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT) && - CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW) && - LINK_IS_ADULT && - !Flags_GetEventChkInf(EVENTCHKINF_RETURNED_TO_TEMPLE_OF_TIME_WITH_ALL_MEDALLIONS) && - (scene == SCENE_TEMPLE_OF_TIME) - ))) { + } else if (GameInteractor_Should( + VB_BE_ELIGIBLE_FOR_LIGHT_ARROWS, + (CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT) && CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW) && + LINK_IS_ADULT && + !Flags_GetEventChkInf(EVENTCHKINF_RETURNED_TO_TEMPLE_OF_TIME_WITH_ALL_MEDALLIONS) && + (scene == SCENE_TEMPLE_OF_TIME)))) { Flags_SetEventChkInf(EVENTCHKINF_RETURNED_TO_TEMPLE_OF_TIME_WITH_ALL_MEDALLIONS); gSaveContext.entranceIndex = ENTR_TEMPLE_OF_TIME_ENTRANCE; gSaveContext.cutsceneIndex = 0xFFF8; diff --git a/soh/src/code/z_horse.c b/soh/src/code/z_horse.c index 41b231fab..40f145e35 100644 --- a/soh/src/code/z_horse.c +++ b/soh/src/code/z_horse.c @@ -114,7 +114,7 @@ void func_8006D0EC(PlayState* play, Player* player) { SceneDBEntry* entry = SceneDB_Retrieve(play->sceneNum); Actor* horseActor = Actor_Spawn(&play->actorCtx, play, ACTOR_EN_HORSE, entry->epona.startingPos.x, entry->epona.startingPos.y, - entry->epona.startingPos.z, 0, entry->epona.angle, 0, 2, true); + entry->epona.startingPos.z, 0, entry->epona.angle, 0, 2, true); assert(horseActor != NULL); if (play->sceneNum == SCENE_GERUDOS_FORTRESS) { horseActor->room = -1; diff --git a/soh/src/code/z_map_data.c b/soh/src/code/z_map_data.c index 2af932ec8..47b5da862 100644 --- a/soh/src/code/z_map_data.c +++ b/soh/src/code/z_map_data.c @@ -132,25 +132,32 @@ static s16 sPaletteRoom[10][8][14] = { }, }; -static s16 sRoomCompassOffsetX[10][44] = { - { 1090, 1390, 1560, 1220, 1200, 1390, 1770, 1610, 2000, 1290, 1420, - 1110, 1040, 470, 790, 1570, 720, 1000, 1580, 70 }, - { 940, 320, 1500, 240, 580, 1510, 720, 1030, 800, 660, 180, 520, 310, 550, 790, 1650, 1000, 1570, 80, 70 }, - { 1130, 1070, 1090, 1160, 1500, 690, 1540, 920, 1160, 700, 1650, 950, 1380, 1460, 830, 1170, 1620 }, - { 1130, 1170, 965, 890, 1170, 1460, 1170, 800, 1320, 880, 1130, 1590, 1390, 830, 610, 580, 710, - 980, 1640, 1510, 590, 1610, 1130, 1130, 820, 1320, 1620, 0, 0, 0, 0, 1300, 1270 }, - { 1160, 620, 1330, 1280, 440, 600, 810, 830, 720, 1170, 1490, 1640, 1870, 1800, 1610, 1130, 860, 1310, 1140, - 850, 760, 380, 800, 800, 1930, 1410, 640, 845, 810, 810, 850, 1390, 1540, 1650, 1880, 1530, 420, 1950 }, - { 1120, 1290, 1120, 1380, 930, 1520, 1980, 2010, 1590, 1510, 1500, 1300, 1240, 1800, 1290, - 1450, 1560, 880, 820, 820, 1060, 1670, 1120, 1130, 1130, 1290, 1290, 1280, 1390, 940, - 1520, 1520, 1980, 1620, 1510, 1490, 1240, 1290, 1450, 880, 880, 1060, 1670, 1520 }, - { 800, 1500, 1370, 1730, 1590, 1020, 1060, 1470, 1600, 1830, 1630, 2000, 650, 660, 1020, 880, - 940, 720, 570, 620, 570, 550, 970, 920, 1040, 1150, 1200, 1550, 1520, 1020, 820, 1010 }, - { 1320, 1320, 1090, 1510, 1480, 940, 920, 910, 800, 820, 1150, 1000, 1800, 1660, - 1090, 1630, 710, 1670, 830, 770, 800, 850, 830, 820, 1800, 1090, 850 }, - { 1080, 1420, 1620, 1040, 940, 1190, 1310, 1090, 1380, 1080 }, - { 1070, 1180, 1270, 990, 1280, 1450, 1680, 1530, 760, 860, 1500, 800 }, -}; +static s16 sRoomCompassOffsetX[10] + [44] = { + { 1090, 1390, 1560, 1220, 1200, 1390, 1770, 1610, 2000, 1290, + 1420, 1110, 1040, 470, 790, 1570, 720, 1000, 1580, 70 }, + { 940, 320, 1500, 240, 580, 1510, 720, 1030, 800, 660, + 180, 520, 310, 550, 790, 1650, 1000, 1570, 80, 70 }, + { 1130, 1070, 1090, 1160, 1500, 690, 1540, 920, 1160, 700, 1650, 950, 1380, 1460, 830, + 1170, 1620 }, + { 1130, 1170, 965, 890, 1170, 1460, 1170, 800, 1320, 880, 1130, + 1590, 1390, 830, 610, 580, 710, 980, 1640, 1510, 590, 1610, + 1130, 1130, 820, 1320, 1620, 0, 0, 0, 0, 1300, 1270 }, + { 1160, 620, 1330, 1280, 440, 600, 810, 830, 720, 1170, 1490, 1640, 1870, + 1800, 1610, 1130, 860, 1310, 1140, 850, 760, 380, 800, 800, 1930, 1410, + 640, 845, 810, 810, 850, 1390, 1540, 1650, 1880, 1530, 420, 1950 }, + { 1120, 1290, 1120, 1380, 930, 1520, 1980, 2010, 1590, 1510, 1500, + 1300, 1240, 1800, 1290, 1450, 1560, 880, 820, 820, 1060, 1670, + 1120, 1130, 1130, 1290, 1290, 1280, 1390, 940, 1520, 1520, 1980, + 1620, 1510, 1490, 1240, 1290, 1450, 880, 880, 1060, 1670, 1520 }, + { 800, 1500, 1370, 1730, 1590, 1020, 1060, 1470, 1600, 1830, 1630, + 2000, 650, 660, 1020, 880, 940, 720, 570, 620, 570, 550, + 970, 920, 1040, 1150, 1200, 1550, 1520, 1020, 820, 1010 }, + { 1320, 1320, 1090, 1510, 1480, 940, 920, 910, 800, 820, 1150, 1000, 1800, 1660, + 1090, 1630, 710, 1670, 830, 770, 800, 850, 830, 820, 1800, 1090, 850 }, + { 1080, 1420, 1620, 1040, 940, 1190, 1310, 1090, 1380, 1080 }, + { 1070, 1180, 1270, 990, 1280, 1450, 1680, 1530, 760, 860, 1500, 800 }, + }; static s16 sRoomCompassOffsetY[10][44] = { { -660, -570, -410, -690, -500, -380, -470, -630, -990, -870, diff --git a/soh/src/code/z_map_exp.c b/soh/src/code/z_map_exp.c index ffb31c30f..2a0c90d99 100644 --- a/soh/src/code/z_map_exp.c +++ b/soh/src/code/z_map_exp.c @@ -360,17 +360,18 @@ void Map_InitData(PlayState* play, s16 room) { sOwEntranceIconPosY = -825; play->interfaceCtx.mapSegmentName[0] = gExploredShadowGraveyardMinimapTex; } else if (play->sceneNum == SCENE_LAKE_HYLIA && (LINK_AGE_IN_YEARS == YEARS_ADULT) && - ((!IS_RANDO && !CHECK_QUEST_ITEM(QUEST_MEDALLION_WATER)) || + ((!IS_RANDO && !CHECK_QUEST_ITEM(QUEST_MEDALLION_WATER)) || (IS_RANDO && !Flags_GetEventChkInf(EVENTCHKINF_USED_WATER_TEMPLE_BLUE_WARP)))) { sOwEntranceIconPosX = 259; sOwEntranceIconPosY = -829; play->interfaceCtx.mapSegmentName[0] = gDrainedLakeHyliaMinimapTex; - } else if (play->sceneNum == SCENE_GERUDO_VALLEY && (LINK_AGE_IN_YEARS == YEARS_ADULT) && !GET_EVENTCHKINF_CARPENTERS_FREE_ALL()) { + } else if (play->sceneNum == SCENE_GERUDO_VALLEY && (LINK_AGE_IN_YEARS == YEARS_ADULT) && + !GET_EVENTCHKINF_CARPENTERS_FREE_ALL()) { sOwEntranceIconPosX = 1; sOwEntranceIconPosY = 0; play->interfaceCtx.mapSegmentName[0] = gGerudoValleyWithBrokenBridgeMinimapTex; } else if (play->sceneNum == SCENE_GERUDOS_FORTRESS && (!IS_RANDO && GET_EVENTCHKINF_CARPENTERS_FREE_ALL()) || - (IS_RANDO && CHECK_QUEST_ITEM(QUEST_GERUDO_CARD))) { + (IS_RANDO && CHECK_QUEST_ITEM(QUEST_GERUDO_CARD))) { sOwEntranceIconPosX = 243; sOwEntranceIconPosY = -833; play->interfaceCtx.mapSegmentName[0] = gGerudosFortressMinimapTex; @@ -385,8 +386,8 @@ void Map_InitData(PlayState* play, s16 room) { } else if (SCENEDB_ISDUNGEON(entry)) { osSyncPrintf(VT_FGCOL(YELLOW)); // "Deku Tree Dungeon MAP Texture DMA" - osSyncPrintf("デクの樹ダンジョンMAP テクスチャDMA(%x) scene_id_offset=%d VREG(30)=%d\n", room, - mapIndex, VREG(30)); + osSyncPrintf("デクの樹ダンジョンMAP テクスチャDMA(%x) scene_id_offset=%d VREG(30)=%d\n", room, mapIndex, + VREG(30)); osSyncPrintf(VT_RST); play->interfaceCtx.mapSegmentName[0] = entry->dungeonData.rooms[room].minimapTexture; @@ -446,7 +447,6 @@ void Map_Init(PlayState* play) { interfaceCtx->mapSegment, play); assert(interfaceCtx->mapSegment != NULL); - SceneDBEntry* entry = SceneDB_Retrieve(play->sceneNum); if (SCENEDB_ISBOSS(entry)) { @@ -640,7 +640,7 @@ void Minimap_Draw(PlayState* play) { InterfaceContext* interfaceCtx = &play->interfaceCtx; s32 mapIndex = gSaveContext.mapIndex; SceneDBEntry* entry = SceneDB_Retrieve(play->sceneNum); - Color_RGB8 minimapColor = {0, 255, 255}; + Color_RGB8 minimapColor = { 0, 255, 255 }; if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.Changed"), 0)) { minimapColor = CVarGetColor24(CVAR_COSMETIC("HUD.Minimap.Value"), minimapColor); } @@ -667,42 +667,44 @@ void Minimap_Draw(PlayState* play) { } if (SCENEDB_ISDUNGEON(entry)) { - if (!R_MINIMAP_DISABLED && CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosType"), 0) != HIDDEN) { // Not Hidden + if (!R_MINIMAP_DISABLED && + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosType"), 0) != HIDDEN) { // Not Hidden Gfx_SetupDL_39Overlay(play->state.gfxCtx); gDPSetCombineLERP(OVERLAY_DISP++, 1, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, 1, 0, PRIMITIVE, 0, - TEXEL0, 0, PRIMITIVE, 0); + TEXEL0, 0, PRIMITIVE, 0); if (CHECK_DUNGEON_ITEM(DUNGEON_MAP, mapIndex)) { - gDPSetPrimColor(OVERLAY_DISP++, 0, 0, minimapColor.r, minimapColor.g, minimapColor.b, interfaceCtx->minimapAlpha); + gDPSetPrimColor(OVERLAY_DISP++, 0, 0, minimapColor.r, minimapColor.g, minimapColor.b, + interfaceCtx->minimapAlpha); u8 mirrorMode = CVarGetInteger(CVAR_ENHANCEMENT("MirroredWorld"), 0) ? G_TX_MIRROR : G_TX_NOMIRROR; gDPLoadTextureBlock_4b(OVERLAY_DISP++, interfaceCtx->mapSegmentName[0], G_IM_FMT_I, 96, 85, 0, - mirrorMode | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, - G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + mirrorMode | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, + G_TX_NOLOD, G_TX_NOLOD); - s16 dgnMiniMapX = OTRGetRectDimensionFromRightEdge(R_DGN_MINIMAP_X + X_Margins_Minimap); - s16 dgnMiniMapY = R_DGN_MINIMAP_Y + Y_Margins_Minimap; - if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosType"), 0) != ORIGINAL_LOCATION) { - dgnMiniMapY = R_DGN_MINIMAP_Y + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosY"), 0) + - Y_Margins_Minimap; - if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosType"), 0) == ANCHOR_LEFT) { - if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.UseMargins"), 0) != 0) { - X_Margins_Minimap = Left_MM_Margin; - }; - dgnMiniMapX = OTRGetDimensionFromLeftEdge( - R_DGN_MINIMAP_X + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosX"), 0) + - X_Margins_Minimap); - } else if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosType"), 0) == ANCHOR_RIGHT) { - if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.UseMargins"), 0) != 0) { - X_Margins_Minimap = Right_MM_Margin; - }; - dgnMiniMapX = OTRGetDimensionFromRightEdge( - R_DGN_MINIMAP_X + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosX"), 0) + - X_Margins_Minimap); - } else if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosType"), 0) == ANCHOR_NONE) { - dgnMiniMapX = CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosX"), 0); - } + s16 dgnMiniMapX = OTRGetRectDimensionFromRightEdge(R_DGN_MINIMAP_X + X_Margins_Minimap); + s16 dgnMiniMapY = R_DGN_MINIMAP_Y + Y_Margins_Minimap; + if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosType"), 0) != ORIGINAL_LOCATION) { + dgnMiniMapY = + R_DGN_MINIMAP_Y + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosY"), 0) + Y_Margins_Minimap; + if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosType"), 0) == ANCHOR_LEFT) { + if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.UseMargins"), 0) != 0) { + X_Margins_Minimap = Left_MM_Margin; + }; + dgnMiniMapX = OTRGetDimensionFromLeftEdge( + R_DGN_MINIMAP_X + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosX"), 0) + + X_Margins_Minimap); + } else if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosType"), 0) == ANCHOR_RIGHT) { + if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.UseMargins"), 0) != 0) { + X_Margins_Minimap = Right_MM_Margin; + }; + dgnMiniMapX = OTRGetDimensionFromRightEdge( + R_DGN_MINIMAP_X + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosX"), 0) + + X_Margins_Minimap); + } else if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosType"), 0) == ANCHOR_NONE) { + dgnMiniMapX = CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosX"), 0); } + } s32 sValue = 0; if (CVarGetInteger(CVAR_ENHANCEMENT("MirroredWorld"), 0)) { @@ -710,10 +712,9 @@ void Minimap_Draw(PlayState* play) { sValue = 96 << 5; } - gSPWideTextureRectangle(OVERLAY_DISP++, dgnMiniMapX << 2, dgnMiniMapY << 2, - (dgnMiniMapX + 96) << 2, (dgnMiniMapY + 85) << 2, G_TX_RENDERTILE, - sValue, 0, 1 << 10, 1 << 10); - } + gSPWideTextureRectangle(OVERLAY_DISP++, dgnMiniMapX << 2, dgnMiniMapY << 2, (dgnMiniMapX + 96) << 2, + (dgnMiniMapY + 85) << 2, G_TX_RENDERTILE, sValue, 0, 1 << 10, 1 << 10); + } if (CHECK_DUNGEON_ITEM(DUNGEON_COMPASS, mapIndex)) { Minimap_DrawCompassIcons(play); // Draw icons for the player spawn and current position @@ -737,24 +738,34 @@ void Minimap_Draw(PlayState* play) { Gfx_SetupDL_39Overlay(play->state.gfxCtx); gDPSetCombineMode(OVERLAY_DISP++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM); - gDPSetPrimColor(OVERLAY_DISP++, 0, 0, minimapColor.r, minimapColor.g, minimapColor.b, interfaceCtx->minimapAlpha); + gDPSetPrimColor(OVERLAY_DISP++, 0, 0, minimapColor.r, minimapColor.g, minimapColor.b, + interfaceCtx->minimapAlpha); u8 mirrorMode = CVarGetInteger(CVAR_ENHANCEMENT("MirroredWorld"), 0) ? G_TX_MIRROR : G_TX_NOMIRROR; gDPLoadTextureBlock_4b(OVERLAY_DISP++, interfaceCtx->mapSegmentName[0], G_IM_FMT_IA, - entry->worldData.minimapWidth, entry->worldData.minimapHeight, 0, - mirrorMode | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, - G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + entry->worldData.minimapWidth, entry->worldData.minimapHeight, 0, + mirrorMode | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, + G_TX_NOLOD, G_TX_NOLOD); s16 oWMiniMapX = OTRGetRectDimensionFromRightEdge(entry->worldData.minimapX + X_Margins_Minimap); s16 oWMiniMapY = entry->worldData.minimapY + Y_Margins_Minimap; if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosType"), 0) != ORIGINAL_LOCATION) { - oWMiniMapY = entry->worldData.minimapY + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosY"), 0) + Y_Margins_Minimap; + oWMiniMapY = entry->worldData.minimapY + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosY"), 0) + + Y_Margins_Minimap; if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosType"), 0) == ANCHOR_LEFT) { - if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.UseMargins"), 0) != 0) { X_Margins_Minimap = Left_MM_Margin; }; - oWMiniMapX = OTRGetDimensionFromLeftEdge(entry->worldData.minimapX + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosX"), 0) + X_Margins_Minimap); + if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.UseMargins"), 0) != 0) { + X_Margins_Minimap = Left_MM_Margin; + }; + oWMiniMapX = OTRGetDimensionFromLeftEdge(entry->worldData.minimapX + + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosX"), 0) + + X_Margins_Minimap); } else if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosType"), 0) == ANCHOR_RIGHT) { - if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.UseMargins"), 0) != 0) { X_Margins_Minimap = Right_MM_Margin; }; - oWMiniMapX = OTRGetDimensionFromRightEdge(entry->worldData.minimapX + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosX"), 0) + X_Margins_Minimap); + if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.UseMargins"), 0) != 0) { + X_Margins_Minimap = Right_MM_Margin; + }; + oWMiniMapX = OTRGetDimensionFromRightEdge(entry->worldData.minimapX + + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosX"), 0) + + X_Margins_Minimap); } else if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosType"), 0) == ANCHOR_NONE) { oWMiniMapX = CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosX"), 0); } @@ -766,31 +777,34 @@ void Minimap_Draw(PlayState* play) { sValue = entry->worldData.minimapWidth << 5; } - gSPWideTextureRectangle(OVERLAY_DISP++, oWMiniMapX << 2, oWMiniMapY << 2, - (oWMiniMapX + entry->worldData.minimapWidth) << 2, - (oWMiniMapY + entry->worldData.minimapHeight) << 2, G_TX_RENDERTILE, sValue, - 0, 1 << 10, 1 << 10); + gSPWideTextureRectangle( + OVERLAY_DISP++, oWMiniMapX << 2, oWMiniMapY << 2, (oWMiniMapX + entry->worldData.minimapWidth) << 2, + (oWMiniMapY + entry->worldData.minimapHeight) << 2, G_TX_RENDERTILE, sValue, 0, 1 << 10, 1 << 10); - gDPSetPrimColor(OVERLAY_DISP++, 0, 0, minimapColor.r, minimapColor.g, minimapColor.b, interfaceCtx->minimapAlpha); + gDPSetPrimColor(OVERLAY_DISP++, 0, 0, minimapColor.r, minimapColor.g, minimapColor.b, + interfaceCtx->minimapAlpha); s16 iconSize = 8; if (((play->sceneNum != SCENE_KAKARIKO_VILLAGE) && (play->sceneNum != SCENE_KOKIRI_FOREST) && - (play->sceneNum != SCENE_ZORAS_FOUNTAIN)) || + (play->sceneNum != SCENE_ZORAS_FOUNTAIN)) || (LINK_AGE_IN_YEARS != YEARS_ADULT)) { s16 origX = R_OW_MINIMAP_X; // Compute the distance of the center of the original texture location to the center of the map - // Then duplicate that and right-align the texture (extra 2 pixels are due to the texture being a 6px left-aligned in a 8px tex) - s16 distFromCenter = (entry->worldData.minimapX + (entry->worldData.minimapWidth / 2)) - (origX + (iconSize / 2)); + // Then duplicate that and right-align the texture (extra 2 pixels are due to the texture being a + // 6px left-aligned in a 8px tex) + s16 distFromCenter = + (entry->worldData.minimapX + (entry->worldData.minimapWidth / 2)) - (origX + (iconSize / 2)); s16 mirrorOffset = distFromCenter * 2 + (iconSize / 2) - 2; s16 newX = origX + (CVarGetInteger(CVAR_ENHANCEMENT("MirroredWorld"), 0) ? mirrorOffset : 0); - // The game authentically uses larger negative values for the entrance icon Y pos value. Normally only the first 12 bits - // would be read when the final value is passed into `gSPTextureRectangle`, but our cosmetic hud placements requires using - // `gSPWideTextureRectangle` which reads the first 24 bits instead. This caused the icon to be placed off screen. - // To address this, we take only the first 10 bits (which are later left-shifted by 2 to get our final 12 bits) - // to fix the entrance icon position when used with `gSPWideTextureRectangle` + // The game authentically uses larger negative values for the entrance icon Y pos value. Normally + // only the first 12 bits would be read when the final value is passed into `gSPTextureRectangle`, + // but our cosmetic hud placements requires using `gSPWideTextureRectangle` which reads the first 24 + // bits instead. This caused the icon to be placed off screen. To address this, we take only the + // first 10 bits (which are later left-shifted by 2 to get our final 12 bits) to fix the entrance + // icon position when used with `gSPWideTextureRectangle` s16 newY = R_OW_MINIMAP_Y & 0x3FF; s16 entranceX = OTRGetRectDimensionFromRightEdge(newX + X_Margins_Minimap); @@ -798,11 +812,17 @@ void Minimap_Draw(PlayState* play) { if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosType"), 0) != ORIGINAL_LOCATION) { entranceY = newY + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosY"), 0) + Y_Margins_Minimap; if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosType"), 0) == ANCHOR_LEFT) { - if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.UseMargins"), 0) != 0) { X_Margins_Minimap = Left_MM_Margin; }; - entranceX = OTRGetRectDimensionFromLeftEdge(newX + X_Margins_Minimap + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosX"), 0)); + if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.UseMargins"), 0) != 0) { + X_Margins_Minimap = Left_MM_Margin; + }; + entranceX = OTRGetRectDimensionFromLeftEdge( + newX + X_Margins_Minimap + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosX"), 0)); } else if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosType"), 0) == ANCHOR_RIGHT) { - if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.UseMargins"), 0) != 0) { X_Margins_Minimap = Right_MM_Margin; }; - entranceX = OTRGetRectDimensionFromRightEdge(newX + X_Margins_Minimap + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosX"), 0)); + if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.UseMargins"), 0) != 0) { + X_Margins_Minimap = Right_MM_Margin; + }; + entranceX = OTRGetRectDimensionFromRightEdge( + newX + X_Margins_Minimap + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosX"), 0)); } else if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosType"), 0) == ANCHOR_NONE) { entranceX = newX + X_Margins_Minimap + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosX"), 0); } @@ -812,18 +832,21 @@ void Minimap_Draw(PlayState* play) { // or hide them entirely if the fix is applied if (R_OW_MINIMAP_Y == 0) { entranceY = 0; - entranceX = CVarGetInteger(CVAR_ENHANCEMENT("FixDungeonMinimapIcon"), 0) ? -9999 : OTRGetRectDimensionFromLeftEdge(0); + entranceX = CVarGetInteger(CVAR_ENHANCEMENT("FixDungeonMinimapIcon"), 0) + ? -9999 + : OTRGetRectDimensionFromLeftEdge(0); } if ((entry->worldData.entranceFlag == -1) || ((entry->worldData.entranceFlag != -1) && - ((gSaveContext.infTable[26] & gBitFlags[entry->worldData.entranceFlag]) || - CVarGetInteger(CVAR_ENHANCEMENT("AlwaysShowDungeonMinimapIcon"), 0)))) { + ((gSaveContext.infTable[26] & gBitFlags[entry->worldData.entranceFlag]) || + CVarGetInteger(CVAR_ENHANCEMENT("AlwaysShowDungeonMinimapIcon"), 0)))) { gDPLoadTextureBlock(OVERLAY_DISP++, gMapDungeonEntranceIconTex, G_IM_FMT_RGBA, G_IM_SIZ_16b, - iconSize, iconSize, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, - G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - gSPWideTextureRectangle(OVERLAY_DISP++, entranceX << 2, entranceY << 2, (entranceX + iconSize) << 2, - (entranceY + iconSize) << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); + iconSize, iconSize, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + gSPWideTextureRectangle(OVERLAY_DISP++, entranceX << 2, entranceY << 2, + (entranceX + iconSize) << 2, (entranceY + iconSize) << 2, + G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); } } @@ -833,24 +856,31 @@ void Minimap_Draw(PlayState* play) { if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosType"), 0) != ORIGINAL_LOCATION) { entranceY = 154 + Y_Margins_Minimap + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosY"), 0); if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosType"), 0) == ANCHOR_LEFT) { - if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.UseMargins"), 0) != 0) { X_Margins_Minimap = Left_MM_Margin; }; - entranceX = OTRGetRectDimensionFromLeftEdge(origX + X_Margins_Minimap + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosX"), 0)); + if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.UseMargins"), 0) != 0) { + X_Margins_Minimap = Left_MM_Margin; + }; + entranceX = OTRGetRectDimensionFromLeftEdge( + origX + X_Margins_Minimap + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosX"), 0)); } else if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosType"), 0) == ANCHOR_RIGHT) { - if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.UseMargins"), 0) != 0) { X_Margins_Minimap = Right_MM_Margin; }; - entranceX = OTRGetRectDimensionFromRightEdge(origX + X_Margins_Minimap + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosX"), 0)); + if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.UseMargins"), 0) != 0) { + X_Margins_Minimap = Right_MM_Margin; + }; + entranceX = OTRGetRectDimensionFromRightEdge( + origX + X_Margins_Minimap + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosX"), 0)); } else if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosType"), 0) == ANCHOR_NONE) { entranceX = origX + X_Margins_Minimap + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosX"), 0); } } // Ice Cavern entrance icon - if ((play->sceneNum == SCENE_ZORAS_FOUNTAIN) && ((gSaveContext.infTable[26] & gBitFlags[9]) || - CVarGetInteger(CVAR_ENHANCEMENT("AlwaysShowDungeonMinimapIcon"), 0))) { - gDPLoadTextureBlock(OVERLAY_DISP++, gMapDungeonEntranceIconTex, G_IM_FMT_RGBA, G_IM_SIZ_16b, iconSize, - iconSize, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, - G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + if ((play->sceneNum == SCENE_ZORAS_FOUNTAIN) && + ((gSaveContext.infTable[26] & gBitFlags[9]) || + CVarGetInteger(CVAR_ENHANCEMENT("AlwaysShowDungeonMinimapIcon"), 0))) { + gDPLoadTextureBlock(OVERLAY_DISP++, gMapDungeonEntranceIconTex, G_IM_FMT_RGBA, G_IM_SIZ_16b, + iconSize, iconSize, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSPWideTextureRectangle(OVERLAY_DISP++, entranceX << 2, entranceY << 2, (entranceX + iconSize) << 2, - (entranceY + iconSize) << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); + (entranceY + iconSize) << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); } Minimap_DrawCompassIcons(play); // Draw icons for the player spawn and current position @@ -910,7 +940,7 @@ void Map_Update(PlayState* play) { if (interfaceCtx->mapRoomNum != sLastRoomNum) { // "Current floor = %d Current room = %x Number of rooms = %d" osSyncPrintf("現在階=%d 現在部屋=%x 部屋数=%d\n", floor, interfaceCtx->mapRoomNum, - entry->dungeonData.numRooms); + entry->dungeonData.numRooms); sLastRoomNum = interfaceCtx->mapRoomNum; } diff --git a/soh/src/code/z_map_mark.c b/soh/src/code/z_map_mark.c index a8fd7d9a5..4d62bf9e2 100644 --- a/soh/src/code/z_map_mark.c +++ b/soh/src/code/z_map_mark.c @@ -107,7 +107,9 @@ void MapMark_DrawForDungeon(PlayState* play) { s32 X_Margins_Minimap_ic; s32 Y_Margins_Minimap_ic; if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.UseMargins"), 0) != 0) { - if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosType"), 0) == ORIGINAL_LOCATION) { X_Margins_Minimap_ic = Right_MC_Margin; }; + if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosType"), 0) == ORIGINAL_LOCATION) { + X_Margins_Minimap_ic = Right_MC_Margin; + }; Y_Margins_Minimap_ic = Bottom_MC_Margin; } else { X_Margins_Minimap_ic = 0; @@ -135,22 +137,24 @@ void MapMark_DrawForDungeon(PlayState* play) { markInfo = &sMapMarkInfoTable[MAP_MARK_BOSS]; } - int height = markInfo->textureHeight * 1.0f; //Adjust Height with scale - int width = markInfo->textureWidth * 1.0f; //Adjust Width with scale + int height = markInfo->textureHeight * 1.0f; // Adjust Height with scale + int width = markInfo->textureWidth * 1.0f; // Adjust Width with scale int height_factor = (1 << 10) * markInfo->textureHeight / height; int width_factor = (1 << 10) * markInfo->textureWidth / width; // The original mark point X originates from the left edge of the map // For mirror mode, we compute the new mark point X by subtracting it from the right side of the // dungeon map and the textures width - s16 markPointX = CVarGetInteger(CVAR_ENHANCEMENT("MirroredWorld"), 0) ? 96 - markPoint->x - width : markPoint->x; + s16 markPointX = + CVarGetInteger(CVAR_ENHANCEMENT("MirroredWorld"), 0) ? 96 - markPoint->x - width : markPoint->x; - //Minimap chest / boss icon - const s32 PosX_Minimap_ori = GREG(94) + OTRGetRectDimensionFromRightEdge(markPointX + X_Margins_Minimap_ic) + 204; + // Minimap chest / boss icon + const s32 PosX_Minimap_ori = + GREG(94) + OTRGetRectDimensionFromRightEdge(markPointX + X_Margins_Minimap_ic) + 204; const s32 PosY_Minimap_ori = GREG(95) + markPoint->y + Y_Margins_Minimap_ic + 140; if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosType"), 0) != ORIGINAL_LOCATION) { - rectTop = (markPoint->y + Y_Margins_Minimap_ic + 140 + - CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosY"), 0)); + rectTop = + (markPoint->y + Y_Margins_Minimap_ic + 140 + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosY"), 0)); if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosType"), 0) == ANCHOR_LEFT) { if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.UseMargins"), 0) != 0) { X_Margins_Minimap_ic = Left_MC_Margin; @@ -161,23 +165,20 @@ void MapMark_DrawForDungeon(PlayState* play) { play->sceneNum == SCENE_SPIRIT_TEMPLE || play->sceneNum == SCENE_SHADOW_TEMPLE || play->sceneNum == SCENE_BOTTOM_OF_THE_WELL || play->sceneNum == SCENE_ICE_CAVERN) { rectLeft = OTRGetRectDimensionFromLeftEdge( - markPointX + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosX"), 0) + 204 + - X_Margins_Minimap_ic); + markPointX + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosX"), 0) + 204 + X_Margins_Minimap_ic); } else { rectLeft = OTRGetRectDimensionFromLeftEdge( - markPointX + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosX"), 0) + 204 + - X_Margins_Minimap_ic); + markPointX + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosX"), 0) + 204 + X_Margins_Minimap_ic); } } else if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosType"), 0) == ANCHOR_RIGHT) { if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.UseMargins"), 0) != 0) { X_Margins_Minimap_ic = Right_MC_Margin; }; rectLeft = OTRGetRectDimensionFromRightEdge( - markPointX + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosX"), 0) + 204 + - X_Margins_Minimap_ic); + markPointX + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosX"), 0) + 204 + X_Margins_Minimap_ic); } else if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosType"), 0) == ANCHOR_NONE) { - rectLeft = markPointX + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosX"), 0) + 204 + - X_Margins_Minimap_ic; + rectLeft = + markPointX + CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosX"), 0) + 204 + X_Margins_Minimap_ic; } else if (CVarGetInteger(CVAR_COSMETIC("HUD.Minimap.PosType"), 0) == HIDDEN) { rectLeft = -9999; } @@ -189,12 +190,11 @@ void MapMark_DrawForDungeon(PlayState* play) { gDPPipeSync(OVERLAY_DISP++); gDPLoadTextureBlock(OVERLAY_DISP++, markInfo->texture, markInfo->imageFormat, G_IM_SIZ_MARK, - markInfo->textureWidth, markInfo->textureHeight, 0, G_TX_NOMIRROR | G_TX_WRAP, - G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - //Changed to a Wide texture to support Left anchor. + markInfo->textureWidth, markInfo->textureHeight, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + // Changed to a Wide texture to support Left anchor. gSPWideTextureRectangle(OVERLAY_DISP++, rectLeft << 2, rectTop << 2, rectLeft + width << 2, - rectTop + height << 2, G_TX_RENDERTILE, 0, 0, width_factor, - height_factor); + rectTop + height << 2, G_TX_RENDERTILE, 0, 0, width_factor, height_factor); } CLOSE_DISPS(play->state.gfxCtx); diff --git a/soh/src/code/z_parameter.c b/soh/src/code/z_parameter.c index 3868ade85..b643ee2e0 100644 --- a/soh/src/code/z_parameter.c +++ b/soh/src/code/z_parameter.c @@ -1434,94 +1434,95 @@ void Inventory_DoBA(u8 cRight) { // ITEM_SONG_NOCTURNE and ITEM_SONG_PRELUDE land in padding bytes gSaveContext.equips.buttonItems[0] = 0; } else if (cRight >= ITEM_SONG_LULLABY) { - // The rest of the items fall into the saved scene flags. Let's calculate the scene and which field it pulls from + // The rest of the items fall into the saved scene flags. Let's calculate the scene and which field it pulls + // from u32 offset = cRight - ITEM_SONG_LULLABY; u32 scene = offset / sizeof(SavedSceneFlags); switch (offset % sizeof(SavedSceneFlags)) { - case 0: - gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].chest >> 24) & 0xFF; - break; - case 1: - gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].chest >> 16) & 0xFF; - break; - case 2: - gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].chest >> 8) & 0xFF; - break; - case 3: - gSaveContext.equips.buttonItems[0] = gSaveContext.sceneFlags[scene].chest & 0xFF; - break; - case 4: - gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].swch >> 24) & 0xFF; - break; - case 5: - gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].swch >> 16) & 0xFF; - break; - case 6: - gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].swch >> 8) & 0xFF; - break; - case 7: - gSaveContext.equips.buttonItems[0] = gSaveContext.sceneFlags[scene].swch & 0xFF; - break; - case 8: - gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].clear >> 24) & 0xFF; - break; - case 9: - gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].clear >> 16) & 0xFF; - break; - case 10: - gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].clear >> 8) & 0xFF; - break; - case 11: - gSaveContext.equips.buttonItems[0] = gSaveContext.sceneFlags[scene].clear & 0xFF; - break; - case 12: - gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].collect >> 24) & 0xFF; - break; - case 13: - gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].collect >> 16) & 0xFF; - break; - case 14: - gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].collect >> 8) & 0xFF; - break; - case 15: - gSaveContext.equips.buttonItems[0] = gSaveContext.sceneFlags[scene].collect & 0xFF; - break; - case 16: - gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].unk >> 24) & 0xFF; - break; - case 17: - gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].unk >> 16) & 0xFF; - break; - case 18: - gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].unk >> 8) & 0xFF; - break; - case 19: - gSaveContext.equips.buttonItems[0] = gSaveContext.sceneFlags[scene].unk & 0xFF; - break; - case 20: - gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].rooms >> 24) & 0xFF; - break; - case 21: - gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].rooms >> 16) & 0xFF; - break; - case 22: - gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].rooms >> 8) & 0xFF; - break; - case 23: - gSaveContext.equips.buttonItems[0] = gSaveContext.sceneFlags[scene].rooms & 0xFF; - break; - case 24: - gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].floors >> 24) & 0xFF; - break; - case 25: - gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].floors >> 16) & 0xFF; - break; - case 26: - gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].floors >> 8) & 0xFF; - break; - case 27: - gSaveContext.equips.buttonItems[0] = gSaveContext.sceneFlags[scene].floors & 0xFF; - break; + case 0: + gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].chest >> 24) & 0xFF; + break; + case 1: + gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].chest >> 16) & 0xFF; + break; + case 2: + gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].chest >> 8) & 0xFF; + break; + case 3: + gSaveContext.equips.buttonItems[0] = gSaveContext.sceneFlags[scene].chest & 0xFF; + break; + case 4: + gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].swch >> 24) & 0xFF; + break; + case 5: + gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].swch >> 16) & 0xFF; + break; + case 6: + gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].swch >> 8) & 0xFF; + break; + case 7: + gSaveContext.equips.buttonItems[0] = gSaveContext.sceneFlags[scene].swch & 0xFF; + break; + case 8: + gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].clear >> 24) & 0xFF; + break; + case 9: + gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].clear >> 16) & 0xFF; + break; + case 10: + gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].clear >> 8) & 0xFF; + break; + case 11: + gSaveContext.equips.buttonItems[0] = gSaveContext.sceneFlags[scene].clear & 0xFF; + break; + case 12: + gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].collect >> 24) & 0xFF; + break; + case 13: + gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].collect >> 16) & 0xFF; + break; + case 14: + gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].collect >> 8) & 0xFF; + break; + case 15: + gSaveContext.equips.buttonItems[0] = gSaveContext.sceneFlags[scene].collect & 0xFF; + break; + case 16: + gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].unk >> 24) & 0xFF; + break; + case 17: + gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].unk >> 16) & 0xFF; + break; + case 18: + gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].unk >> 8) & 0xFF; + break; + case 19: + gSaveContext.equips.buttonItems[0] = gSaveContext.sceneFlags[scene].unk & 0xFF; + break; + case 20: + gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].rooms >> 24) & 0xFF; + break; + case 21: + gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].rooms >> 16) & 0xFF; + break; + case 22: + gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].rooms >> 8) & 0xFF; + break; + case 23: + gSaveContext.equips.buttonItems[0] = gSaveContext.sceneFlags[scene].rooms & 0xFF; + break; + case 24: + gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].floors >> 24) & 0xFF; + break; + case 25: + gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].floors >> 16) & 0xFF; + break; + case 26: + gSaveContext.equips.buttonItems[0] = (gSaveContext.sceneFlags[scene].floors >> 8) & 0xFF; + break; + case 27: + gSaveContext.equips.buttonItems[0] = gSaveContext.sceneFlags[scene].floors & 0xFF; + break; } } } diff --git a/soh/src/code/z_play.c b/soh/src/code/z_play.c index b669fdcf7..1859769fd 100644 --- a/soh/src/code/z_play.c +++ b/soh/src/code/z_play.c @@ -491,7 +491,8 @@ void Play_Init(GameState* thisx) { gSaveContext.sceneSetupIndex = (Flags_GetEventChkInf(EVENTCHKINF_USED_FOREST_TEMPLE_BLUE_WARP)) ? 3 : 2; } - EntranceDBEntry* adjustedEntrance = EntranceDB_RetrieveLayer(gSaveContext.entranceIndex, gSaveContext.sceneSetupIndex); + EntranceDBEntry* adjustedEntrance = + EntranceDB_RetrieveLayer(gSaveContext.entranceIndex, gSaveContext.sceneSetupIndex); Play_SpawnScene(play, adjustedEntrance->sceneId, adjustedEntrance->spawn); osSyncPrintf("\nSCENE_NO=%d COUNTER=%d\n", ((void)0, gSaveContext.entranceIndex), gSaveContext.sceneSetupIndex); diff --git a/soh/src/overlays/actors/ovl_En_Horse/z_en_horse.c b/soh/src/overlays/actors/ovl_En_Horse/z_en_horse.c index 56a536a84..2611d555e 100644 --- a/soh/src/overlays/actors/ovl_En_Horse/z_en_horse.c +++ b/soh/src/overlays/actors/ovl_En_Horse/z_en_horse.c @@ -689,10 +689,13 @@ s32 EnHorse_Spawn(EnHorse* this, PlayState* play) { player = GET_PLAYER(play); if (play->sceneNum != SCENE_LON_LON_RANCH || //! Same flag checked twice - (Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) && ((gSaveContext.eventInf[0] & 0xF) != 6 || Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED))) || + (Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) && + ((gSaveContext.eventInf[0] & 0xF) != 6 || Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED))) || // always load two spawns inside lon lon - ((entry->epona.spawnPos[i].x == 856 && entry->epona.spawnPos[i].y == 0 && entry->epona.spawnPos[i].z == -918) || - (entry->epona.spawnPos[i].x == -1003 && entry->epona.spawnPos[i].y == 0 && entry->epona.spawnPos[i].z == -755))) { + ((entry->epona.spawnPos[i].x == 856 && entry->epona.spawnPos[i].y == 0 && + entry->epona.spawnPos[i].z == -918) || + (entry->epona.spawnPos[i].x == -1003 && entry->epona.spawnPos[i].y == 0 && + entry->epona.spawnPos[i].z == -755))) { spawnPos.x = entry->epona.spawnPos[i].x; spawnPos.y = entry->epona.spawnPos[i].y; @@ -709,7 +712,7 @@ s32 EnHorse_Spawn(EnHorse* this, PlayState* play) { this->actor.shape.rot.y = Actor_WorldYawTowardActor(&this->actor, &GET_PLAYER(play)->actor); spawn = true; SkinMatrix_Vec3fMtxFMultXYZW(&play->viewProjectionMtxF, &this->actor.world.pos, - &this->actor.projectedPos, &this->actor.projectedW); + &this->actor.projectedPos, &this->actor.projectedW); } } } diff --git a/soh/src/overlays/actors/ovl_player_actor/z_player.c b/soh/src/overlays/actors/ovl_player_actor/z_player.c index 396fc79e0..4c94ec631 100644 --- a/soh/src/overlays/actors/ovl_player_actor/z_player.c +++ b/soh/src/overlays/actors/ovl_player_actor/z_player.c @@ -10870,10 +10870,11 @@ void Player_Init(Actor* thisx, PlayState* play2) { if (GameInteractor_Should(VB_SHOW_TITLE_CARD, gSaveContext.showTitleCard)) { if ((gSaveContext.sceneSetupIndex < 4) && EntranceDB_RetrieveLayer(gSaveContext.entranceIndex, gSaveContext.sceneSetupIndex)->displayTitleCard && - ((play->sceneNum != SCENE_DODONGOS_CAVERN) || (Flags_GetEventChkInf(EVENTCHKINF_ENTERED_DODONGOS_CAVERN))) && - ((play->sceneNum != SCENE_BOMBCHU_SHOP) || (Flags_GetEventChkInf(EVENTCHKINF_USED_DODONGOS_CAVERN_BLUE_WARP)))) { - TitleCard_InitPlaceName(play, &play->actorCtx.titleCtx, this->giObjectSegment, 160, 120, 144, - 24, 20); + ((play->sceneNum != SCENE_DODONGOS_CAVERN) || + (Flags_GetEventChkInf(EVENTCHKINF_ENTERED_DODONGOS_CAVERN))) && + ((play->sceneNum != SCENE_BOMBCHU_SHOP) || + (Flags_GetEventChkInf(EVENTCHKINF_USED_DODONGOS_CAVERN_BLUE_WARP)))) { + TitleCard_InitPlaceName(play, &play->actorCtx.titleCtx, this->giObjectSegment, 160, 120, 144, 24, 20); } } gSaveContext.showTitleCard = true; diff --git a/soh/src/overlays/gamestates/ovl_select/z_select.c b/soh/src/overlays/gamestates/ovl_select/z_select.c index 6e9d038a0..49eaba7c8 100644 --- a/soh/src/overlays/gamestates/ovl_select/z_select.c +++ b/soh/src/overlays/gamestates/ovl_select/z_select.c @@ -1213,7 +1213,8 @@ void Better_Select_UpdateMenu(SelectContext* this) { BetterSceneSelectEntrancePair entrancePair = this->betterScenes[this->currentScene].entrancePairs[this->pageDownIndex]; // Update the MQ status to match the new scene - if (entrancePair.canBeMQ && ResourceMgr_IsSceneMasterQuest(EntranceDB_Retrieve(entrancePair.entranceIndex)->sceneId)) { + if (entrancePair.canBeMQ && + ResourceMgr_IsSceneMasterQuest(EntranceDB_Retrieve(entrancePair.entranceIndex)->sceneId)) { this->opt = 1; } else { this->opt = 0; @@ -1793,8 +1794,10 @@ void Select_SwitchBetterWarpMode(SelectContext* this, u8 isBetterWarpMode) { this->topDisplayedScene = CVarGetInteger(CVAR_GENERAL("BetterDebugWarpScreenTopDisplayedScene"), 0); this->pageDownIndex = CVarGetInteger(CVAR_GENERAL("BetterDebugWarpScreenPageDownIndex"), 0); - BetterSceneSelectEntrancePair entrancePair = this->betterScenes[this->currentScene].entrancePairs[this->pageDownIndex]; - if (entrancePair.canBeMQ && ResourceMgr_IsSceneMasterQuest(EntranceDB_Retrieve(entrancePair.entranceIndex)->sceneId)) { + BetterSceneSelectEntrancePair entrancePair = + this->betterScenes[this->currentScene].entrancePairs[this->pageDownIndex]; + if (entrancePair.canBeMQ && + ResourceMgr_IsSceneMasterQuest(EntranceDB_Retrieve(entrancePair.entranceIndex)->sceneId)) { this->opt = 1; } } diff --git a/soh/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map_PAL.c b/soh/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map_PAL.c index cb7235c0a..20e0dc996 100644 --- a/soh/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map_PAL.c +++ b/soh/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map_PAL.c @@ -254,9 +254,9 @@ void KaleidoScope_DrawDungeonMap(PlayState* play, GraphicsContext* gfxCtx) { if ((gSaveContext.sceneFlags[gSaveContext.mapIndex].floors & gBitFlags[i]) || CHECK_DUNGEON_ITEM(DUNGEON_MAP, gSaveContext.mapIndex)) { if (i != (pauseCtx->dungeonMapSlot - 3)) { - gDPLoadTextureBlock(POLY_OPA_DISP++, floorIconTexs[entry->dungeonData.floors[i].id], - G_IM_FMT_IA, G_IM_SIZ_8b, 24, 16, 0, G_TX_WRAP | G_TX_NOMIRROR, - G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + gDPLoadTextureBlock(POLY_OPA_DISP++, floorIconTexs[entry->dungeonData.floors[i].id], G_IM_FMT_IA, + G_IM_SIZ_8b, 24, 16, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, + G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSP1Quadrangle(POLY_OPA_DISP++, j, j + 2, j + 3, j + 1, 0); } @@ -268,8 +268,7 @@ void KaleidoScope_DrawDungeonMap(PlayState* play, GraphicsContext* gfxCtx) { gDPPipeSync(POLY_OPA_DISP++); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 150, 150, 255, pauseCtx->alpha); - gDPLoadTextureBlock(POLY_OPA_DISP++, - floorIconTexs[entry->dungeonData.floors[pauseCtx->dungeonMapSlot - 3].id], + gDPLoadTextureBlock(POLY_OPA_DISP++, floorIconTexs[entry->dungeonData.floors[pauseCtx->dungeonMapSlot - 3].id], G_IM_FMT_IA, G_IM_SIZ_8b, 24, 16, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); @@ -294,8 +293,7 @@ void KaleidoScope_DrawDungeonMap(PlayState* play, GraphicsContext* gfxCtx) { gSP1Quadrangle(POLY_OPA_DISP++, 0, 2, 3, 1, 0); - if (CHECK_DUNGEON_ITEM(DUNGEON_COMPASS, gSaveContext.mapIndex) && - (entry->dungeonData.bossFloor != -1)) { + if (CHECK_DUNGEON_ITEM(DUNGEON_COMPASS, gSaveContext.mapIndex) && (entry->dungeonData.bossFloor != -1)) { s16 skullFloorIconY = 51 - 14 * entry->dungeonData.bossFloor; pauseCtx->mapPageVtx[120].v.ob[1] = pauseCtx->mapPageVtx[121].v.ob[1] = skullFloorIconY + pauseCtx->offsetY; pauseCtx->mapPageVtx[122].v.ob[1] = pauseCtx->mapPageVtx[123].v.ob[1] = pauseCtx->mapPageVtx[120].v.ob[1] - 16; diff --git a/soh/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark.c b/soh/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark.c index 7e1d483fb..301039dec 100644 --- a/soh/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark.c +++ b/soh/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark.c @@ -100,8 +100,8 @@ void PauseMapMark_DrawForDungeon(PlayState* play) { markInfo = &sMapMarkInfoTable[MAP_MARK_CHEST]; gDPLoadTextureBlock(POLY_OPA_DISP++, markInfo->texture, markInfo->imageFormat, G_IM_SIZ_MARK, - markInfo->textureWidth, markInfo->textureHeight, 0, G_TX_NOMIRROR | G_TX_WRAP, - G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + markInfo->textureWidth, markInfo->textureHeight, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); for (s32 i = 0; i < floor->numChestMarks; i++) { s32 display; @@ -113,13 +113,14 @@ void PauseMapMark_DrawForDungeon(PlayState* play) { if (display) { // Compute the offset to mirror icons over the map center (48) as an axis line - s16 mirrorOffset = CVarGetInteger("gMirroredWorld", 0) ? mirrorOffset = (48 - floor->chestMarks[i].x) * 2 + 1 : 0; + s16 mirrorOffset = + CVarGetInteger("gMirroredWorld", 0) ? mirrorOffset = (48 - floor->chestMarks[i].x) * 2 + 1 : 0; Matrix_Push(); - Matrix_Translate(GREG(92) + floor->chestMarks[i].x + mirrorOffset, GREG(93) + floor->chestMarks[i].y, 0.0f, MTXMODE_APPLY); + Matrix_Translate(GREG(92) + floor->chestMarks[i].x + mirrorOffset, GREG(93) + floor->chestMarks[i].y, 0.0f, + MTXMODE_APPLY); Matrix_Scale(1.0f, 1.0f, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_KAL_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPMatrix(POLY_KAL_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); Matrix_Pop(); gSPVertex(POLY_KAL_DISP++, sMarkChestVtx, 4, 0); @@ -129,17 +130,19 @@ void PauseMapMark_DrawForDungeon(PlayState* play) { markInfo = &sMapMarkInfoTable[MAP_MARK_BOSS]; gDPLoadTextureBlock(POLY_OPA_DISP++, markInfo->texture, markInfo->imageFormat, G_IM_SIZ_MARK, - markInfo->textureWidth, markInfo->textureHeight, 0, G_TX_NOMIRROR | G_TX_WRAP, - G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + markInfo->textureWidth, markInfo->textureHeight, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); for (s32 i = 0; i < floor->numBossMarks; i++) { // Compute the offset to mirror icons over the map center (48) as an axis line - s16 mirrorOffset = CVarGetInteger(CVAR_ENHANCEMENT("MirroredWorld"), 0) ? mirrorOffset = (48 - floor->bossMarks[i].x) * 2 + 1 : 0; + s16 mirrorOffset = CVarGetInteger(CVAR_ENHANCEMENT("MirroredWorld"), 0) + ? mirrorOffset = (48 - floor->bossMarks[i].x) * 2 + 1 + : 0; Matrix_Push(); - Matrix_Translate(GREG(92) + floor->bossMarks[i].x + mirrorOffset, GREG(93) + floor->bossMarks[i].y, 0.0f, MTXMODE_APPLY); + Matrix_Translate(GREG(92) + floor->bossMarks[i].x + mirrorOffset, GREG(93) + floor->bossMarks[i].y, 0.0f, + MTXMODE_APPLY); Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); Matrix_Pop(); gSPVertex(POLY_OPA_DISP++, sMarkBossVtx, 4, 0); @@ -154,7 +157,8 @@ void PauseMapMark_DrawForDungeon(PlayState* play) { void PauseMapMark_Draw(PlayState* play) { PauseMapMark_Init(play); - if (SceneDB_IsDungeon(play->sceneNum) || (CVarGetInteger(CVAR_ENHANCEMENT("PulsateBossIcon"), 0) != 0 && SceneDB_IsBoss(play->sceneNum))) { + if (SceneDB_IsDungeon(play->sceneNum) || + (CVarGetInteger(CVAR_ENHANCEMENT("PulsateBossIcon"), 0) != 0 && SceneDB_IsBoss(play->sceneNum))) { PauseMapMark_DrawForDungeon(play); }