diff --git a/data/uking_functions.csv b/data/uking_functions.csv index 6bf482b0..d9322b37 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -40586,15 +40586,15 @@ Address,Quality,Size,Name 0x000000710067ef10,U,000472, 0x000000710067f0e8,U,000004,j__ZdlPv_290 0x000000710067f0ec,U,000008, -0x000000710067f0f4,O,000100,_ZN5uking21ChampionBalladManager18SingletonDisposer_D1Ev -0x000000710067f158,O,000108,_ZN5uking21ChampionBalladManager18SingletonDisposer_D0Ev -0x000000710067f1c4,O,000144,_ZN5uking21ChampionBalladManager14createInstanceEPN4sead4HeapE -0x000000710067f254,O,000004,_ZN5uking21ChampionBalladManagerD2Ev -0x000000710067f258,O,000004,_ZN5uking21ChampionBalladManagerD0Ev -0x000000710067f25c,O,000008,_ZN5uking21ChampionBalladManager4initEv -0x000000710067f264,O,000040,_ZN5uking21ChampionBalladManager21setBlightRematchCountEaNS_10BlightTypeE -0x000000710067f28c,O,000048,_ZN5uking21ChampionBalladManager27incrementBlightRematchCountENS_10BlightTypeE -0x000000710067f2bc,O,000028,_ZNK5uking21ChampionBalladManager21getBlightRematchCountENS_10BlightTypeE +0x000000710067f0f4,O,000100,_ZN5uking3aoc21ChampionBalladManager18SingletonDisposer_D1Ev +0x000000710067f158,O,000108,_ZN5uking3aoc21ChampionBalladManager18SingletonDisposer_D0Ev +0x000000710067f1c4,O,000144,_ZN5uking3aoc21ChampionBalladManager14createInstanceEPN4sead4HeapE +0x000000710067f254,O,000004,_ZN5uking3aoc21ChampionBalladManagerD2Ev +0x000000710067f258,O,000004,_ZN5uking3aoc21ChampionBalladManagerD0Ev +0x000000710067f25c,O,000008,_ZN5uking3aoc21ChampionBalladManager4initEv +0x000000710067f264,O,000040,_ZN5uking3aoc21ChampionBalladManager21setBlightRematchCountEaNS0_10BlightTypeE +0x000000710067f28c,O,000048,_ZN5uking3aoc21ChampionBalladManager27incrementBlightRematchCountENS0_10BlightTypeE +0x000000710067f2bc,O,000028,_ZNK5uking3aoc21ChampionBalladManager21getBlightRematchCountENS0_10BlightTypeE 0x000000710067f2d8,U,000100,StasisMgr::deleteInstance 0x000000710067f33c,U,000108,StasisMgr::deleteInstanceDelete 0x000000710067f3a8,U,000136,StasisMgr::createInstance @@ -74880,45 +74880,45 @@ Address,Quality,Size,Name 0x0000007100d68e54,U,000188, 0x0000007100d68f10,U,000004, 0x0000007100d68f14,O,000412,_GLOBAL__sub_I_aocManager.cpp -0x0000007100d690b0,O,000092,_ZN5uking3aoc7Manager18SingletonDisposer_D1Ev -0x0000007100d6910c,O,000100,_ZN5uking3aoc7Manager18SingletonDisposer_D0Ev -0x0000007100d69170,O,000128,_ZN5uking3aoc7Manager14createInstanceEPN4sead4HeapE -0x0000007100d691f0,O,001560,_ZN5uking3aoc7ManagerC1Ev -0x0000007100d69808,O,000004,_ZN5uking3aoc7Manager11onGdtReinitEPN4ksys3gdt7Manager11ReinitEventE -0x0000007100d6980c,O,000380,_ZN5uking3aoc7ManagerD1Ev -0x0000007100d69988,O,000256,_ZN5uking3aoc7Manager4initEPN4sead4HeapE -0x0000007100d69a88,O,000204,_ZN5uking3aoc7Manager15loadVersionFileEv -0x0000007100d69b54,O,000180,_ZN5uking3aoc7Manager20loadAocMainFieldPackEPN4ksys12OverlayArenaE -0x0000007100d69c08,O,000152,_ZN5uking3aoc7Manager24registerAocMainFieldPackEv -0x0000007100d69ca0,O,000068,_ZN5uking3aoc7Manager22unloadAocMainFieldPackEv -0x0000007100d69ce4,O,000324,_ZNK5uking3aoc7Manager23getFileDeviceForMapFileERKN4sead14SafeStringBaseIcEE -0x0000007100d69e28,O,000292,_ZNK5uking3aoc7Manager14aocPackHasFileERKN4sead14SafeStringBaseIcEE -0x0000007100d69f4c,O,001064,_ZNK5uking3aoc7Manager9isAocFileERKN4sead14SafeStringBaseIcEES6_S6_S6_S6_ -0x0000007100d6a374,O,000376,_ZN5uking3aoc7Manager19getFileDeviceForMapEPPN4sead10FileDeviceEPPN4ksys3res6HandleERKNS2_14SafeStringBaseIcEE -0x0000007100d6a4ec,O,000168,_ZNK5uking3aoc7Manager30getFileDeviceForStaticCompoundERKN4sead14SafeStringBaseIcEE -0x0000007100d6a594,O,000104,_ZNK5uking3aoc7Manager24getFileDeviceForTeraMeshERKN4sead14SafeStringBaseIcEE -0x0000007100d6a5fc,O,000168,_ZNK5uking3aoc7Manager23getFileDeviceForNavMeshERKN4sead14SafeStringBaseIcEE -0x0000007100d6a6a4,O,000104,_ZNK5uking3aoc7Manager23getFileDeviceForTerrainERKN4sead14SafeStringBaseIcEE -0x0000007100d6a70c,O,000104,_ZNK5uking3aoc7Manager20getFileDeviceForGameERKN4sead14SafeStringBaseIcEE -0x0000007100d6a774,O,000104,_ZNK5uking3aoc7Manager18getFileDeviceForUIERKN4sead14SafeStringBaseIcEE -0x0000007100d6a7dc,O,000516,_ZN5uking3aoc7Manager12isAocDungeonERKN4sead14SafeStringBaseIcEE -0x0000007100d6a9e0,O,000748,_ZN5uking3aoc7Manager8isAocMapERKN4sead14SafeStringBaseIcEES6_ -0x0000007100d6accc,O,000140,_ZN5uking3aoc7Manager10isAocFieldERKN4sead14SafeStringBaseIcEE -0x0000007100d6ad58,O,000448,_ZNK5uking3aoc7Manager27getFileDeviceForDungeonPackERKN4sead14SafeStringBaseIcEE -0x0000007100d6af18,O,000172,_ZN5uking3aoc7Manager15registerAocPackEPN4ksys3res6HandleE -0x0000007100d6afc4,O,000660,_ZNK5uking3aoc7Manager15changeMoviePathERN4sead22BufferedSafeStringBaseIcEE +0x0000007100d690b0,O,000092,_ZN4ksys3aoc7Manager18SingletonDisposer_D1Ev +0x0000007100d6910c,O,000100,_ZN4ksys3aoc7Manager18SingletonDisposer_D0Ev +0x0000007100d69170,O,000128,_ZN4ksys3aoc7Manager14createInstanceEPN4sead4HeapE +0x0000007100d691f0,O,001560,_ZN4ksys3aoc7ManagerC1Ev +0x0000007100d69808,O,000004,_ZN4ksys3aoc7Manager11onGdtReinitEPNS_3gdt7Manager11ReinitEventE +0x0000007100d6980c,O,000380,_ZN4ksys3aoc7ManagerD1Ev +0x0000007100d69988,O,000256,_ZN4ksys3aoc7Manager4initEPN4sead4HeapE +0x0000007100d69a88,O,000204,_ZN4ksys3aoc7Manager15loadVersionFileEv +0x0000007100d69b54,O,000180,_ZN4ksys3aoc7Manager20loadAocMainFieldPackEPNS_12OverlayArenaE +0x0000007100d69c08,O,000152,_ZN4ksys3aoc7Manager24registerAocMainFieldPackEv +0x0000007100d69ca0,O,000068,_ZN4ksys3aoc7Manager22unloadAocMainFieldPackEv +0x0000007100d69ce4,O,000324,_ZNK4ksys3aoc7Manager23getFileDeviceForMapFileERKN4sead14SafeStringBaseIcEE +0x0000007100d69e28,O,000292,_ZNK4ksys3aoc7Manager14aocPackHasFileERKN4sead14SafeStringBaseIcEE +0x0000007100d69f4c,O,001064,_ZNK4ksys3aoc7Manager9isAocFileERKN4sead14SafeStringBaseIcEES6_S6_S6_S6_ +0x0000007100d6a374,O,000376,_ZN4ksys3aoc7Manager19getFileDeviceForMapEPPN4sead10FileDeviceEPPNS_3res6HandleERKNS2_14SafeStringBaseIcEE +0x0000007100d6a4ec,O,000168,_ZNK4ksys3aoc7Manager30getFileDeviceForStaticCompoundERKN4sead14SafeStringBaseIcEE +0x0000007100d6a594,O,000104,_ZNK4ksys3aoc7Manager24getFileDeviceForTeraMeshERKN4sead14SafeStringBaseIcEE +0x0000007100d6a5fc,O,000168,_ZNK4ksys3aoc7Manager23getFileDeviceForNavMeshERKN4sead14SafeStringBaseIcEE +0x0000007100d6a6a4,O,000104,_ZNK4ksys3aoc7Manager23getFileDeviceForTerrainERKN4sead14SafeStringBaseIcEE +0x0000007100d6a70c,O,000104,_ZNK4ksys3aoc7Manager20getFileDeviceForGameERKN4sead14SafeStringBaseIcEE +0x0000007100d6a774,O,000104,_ZNK4ksys3aoc7Manager18getFileDeviceForUIERKN4sead14SafeStringBaseIcEE +0x0000007100d6a7dc,O,000516,_ZN4ksys3aoc7Manager12isAocDungeonERKN4sead14SafeStringBaseIcEE +0x0000007100d6a9e0,O,000748,_ZN4ksys3aoc7Manager8isAocMapERKN4sead14SafeStringBaseIcEES6_ +0x0000007100d6accc,O,000140,_ZN4ksys3aoc7Manager10isAocFieldERKN4sead14SafeStringBaseIcEE +0x0000007100d6ad58,O,000448,_ZNK4ksys3aoc7Manager27getFileDeviceForDungeonPackERKN4sead14SafeStringBaseIcEE +0x0000007100d6af18,O,000172,_ZN4ksys3aoc7Manager15registerAocPackEPNS_3res6HandleE +0x0000007100d6afc4,O,000660,_ZNK4ksys3aoc7Manager15changeMoviePathERN4sead22BufferedSafeStringBaseIcEE 0x0000007100d6b258,U,002488,aocManager::parseMainFieldStaticForDlc 0x0000007100d6bc10,U,001224,aocManager::x -0x0000007100d6c0d8,m,000916,_ZN5uking3aoc7Manager12parseVersionEv -0x0000007100d6c46c,O,000384,_ZN5uking3aoc7Manager11VersionFile11readVersionEv -0x0000007100d6c5ec,O,000048,_ZN5uking3aoc7Manager12initGameDataEv -0x0000007100d6c61c,O,000460,_ZN5uking3aoc7Manager11reinitFlagsEv -0x0000007100d6c7e8,O,000220,_ZNK5uking3aoc7Manager16setGameDataFlagsEv -0x0000007100d6c8c4,O,000428,_ZN5uking3aoc7Manager12GameDataFlag5text_Ei +0x0000007100d6c0d8,m,000916,_ZN4ksys3aoc7Manager12parseVersionEv +0x0000007100d6c46c,O,000384,_ZN4ksys3aoc7Manager11VersionFile11readVersionEv +0x0000007100d6c5ec,O,000048,_ZN4ksys3aoc7Manager12initGameDataEv +0x0000007100d6c61c,O,000460,_ZN4ksys3aoc7Manager11reinitFlagsEv +0x0000007100d6c7e8,O,000220,_ZNK4ksys3aoc7Manager16setGameDataFlagsEv +0x0000007100d6c8c4,O,000428,_ZN4ksys3aoc7Manager12GameDataFlag5text_Ei 0x0000007100d6ca70,O,000004,_ZN4sead19FixedSafeStringBaseIcLi73EED0Ev 0x0000007100d6ca74,O,000240,_ZN4sead19FixedSafeStringBaseIcLi73EEaSERKNS_14SafeStringBaseIcEE -0x0000007100d6cb64,O,000048,_ZN4sead9Delegate1IN5uking3aoc7ManagerEPN4ksys3gdt7Manager11ReinitEventEE6invokeES8_ -0x0000007100d6cb94,O,000092,_ZNK4sead9Delegate1IN5uking3aoc7ManagerEPN4ksys3gdt7Manager11ReinitEventEE5cloneEPNS_4HeapE +0x0000007100d6cb64,O,000048,_ZN4sead9Delegate1IN4ksys3aoc7ManagerEPNS1_3gdt7Manager11ReinitEventEE6invokeES7_ +0x0000007100d6cb94,O,000092,_ZNK4sead9Delegate1IN4ksys3aoc7ManagerEPNS1_3gdt7Manager11ReinitEventEE5cloneEPNS_4HeapE 0x0000007100d6cbf0,O,000004,_ZN4sead15FixedSafeStringILi4EED0Ev 0x0000007100d6cbf4,O,000240,_ZN4sead15FixedSafeStringILi4EEaSERKNS_14SafeStringBaseIcEE 0x0000007100d6cce4,O,000092,_ZN5uking3aoc15HardModeManager18SingletonDisposer_D1Ev diff --git a/src/Game/DLC/CMakeLists.txt b/src/Game/AOC/CMakeLists.txt similarity index 81% rename from src/Game/DLC/CMakeLists.txt rename to src/Game/AOC/CMakeLists.txt index 0b0579b0..20388b21 100644 --- a/src/Game/DLC/CMakeLists.txt +++ b/src/Game/AOC/CMakeLists.txt @@ -3,6 +3,4 @@ target_sources(uking PRIVATE aocChampionBalladManager.h aocHardModeManager.cpp aocHardModeManager.h - aocManager.cpp - aocManager.h ) diff --git a/src/Game/DLC/aocChampionBalladManager.cpp b/src/Game/AOC/aocChampionBalladManager.cpp similarity index 89% rename from src/Game/DLC/aocChampionBalladManager.cpp rename to src/Game/AOC/aocChampionBalladManager.cpp index 0a0833a0..1600a6f9 100644 --- a/src/Game/DLC/aocChampionBalladManager.cpp +++ b/src/Game/AOC/aocChampionBalladManager.cpp @@ -1,6 +1,6 @@ -#include "Game/DLC/aocChampionBalladManager.h" +#include "Game/AOC/aocChampionBalladManager.h" -namespace uking { +namespace uking::aoc { SEAD_SINGLETON_DISPOSER_IMPL(ChampionBalladManager) @@ -29,4 +29,4 @@ s8 ChampionBalladManager::getBlightRematchCount(BlightType blight_type) const { return mBlightCounts[u32(blight_type)]; return 0; } -} // namespace uking +} // namespace uking::aoc diff --git a/src/Game/DLC/aocChampionBalladManager.h b/src/Game/AOC/aocChampionBalladManager.h similarity index 92% rename from src/Game/DLC/aocChampionBalladManager.h rename to src/Game/AOC/aocChampionBalladManager.h index 22c07b60..4fa8e268 100644 --- a/src/Game/DLC/aocChampionBalladManager.h +++ b/src/Game/AOC/aocChampionBalladManager.h @@ -4,7 +4,7 @@ #include #include -namespace uking { +namespace uking::aoc { enum class BlightType : u32 { Wind, Electric, Fire, Water }; @@ -23,4 +23,4 @@ private: sead::SafeArray mBlightCounts; }; -} // namespace uking +} // namespace uking::aoc diff --git a/src/Game/DLC/aocHardModeManager.cpp b/src/Game/AOC/aocHardModeManager.cpp similarity index 99% rename from src/Game/DLC/aocHardModeManager.cpp rename to src/Game/AOC/aocHardModeManager.cpp index 9d8faef9..479fef42 100644 --- a/src/Game/DLC/aocHardModeManager.cpp +++ b/src/Game/AOC/aocHardModeManager.cpp @@ -1,4 +1,4 @@ -#include "Game/DLC/aocHardModeManager.h" +#include "Game/AOC/aocHardModeManager.h" #include #include "KingSystem/ActorSystem/actActor.h" #include "KingSystem/ActorSystem/actActorUtil.h" diff --git a/src/Game/DLC/aocHardModeManager.h b/src/Game/AOC/aocHardModeManager.h similarity index 100% rename from src/Game/DLC/aocHardModeManager.h rename to src/Game/AOC/aocHardModeManager.h diff --git a/src/Game/Actor/AI/aiCookPotRoot.cpp b/src/Game/Actor/AI/aiCookPotRoot.cpp index da09eec4..0482daf6 100644 --- a/src/Game/Actor/AI/aiCookPotRoot.cpp +++ b/src/Game/Actor/AI/aiCookPotRoot.cpp @@ -1,5 +1,5 @@ #include "Game/Actor/AI/aiCookPotRoot.h" -#include "Game/DLC/aocHardModeManager.h" +#include "Game/AOC/aocHardModeManager.h" #include "Game/UI/uiPauseMenuDataMgr.h" #include "KingSystem/ActorSystem/Attention/actAttention.h" #include "KingSystem/ActorSystem/actActor.h" diff --git a/src/Game/Actor/Action/actionCurseRRematchCount.cpp b/src/Game/Actor/Action/actionCurseRRematchCount.cpp index 2838007a..a1d70ca1 100644 --- a/src/Game/Actor/Action/actionCurseRRematchCount.cpp +++ b/src/Game/Actor/Action/actionCurseRRematchCount.cpp @@ -1,5 +1,5 @@ #include "Game/Actor/Action/actionCurseRRematchCount.h" -#include "Game/DLC/aocChampionBalladManager.h" +#include "Game/AOC/aocChampionBalladManager.h" #include "KingSystem/GameData/gdtManager.h" namespace uking::action { @@ -19,12 +19,12 @@ void CurseRRematchCount::loadParams_() { } bool CurseRRematchCount::oneShot_() { - auto* manager = ChampionBalladManager::instance(); + auto* manager = aoc::ChampionBalladManager::instance(); if (!manager) return false; - auto blight = BlightType(*mCurseRType_d); - if (blight > BlightType::Water) + auto blight = aoc::BlightType(*mCurseRType_d); + if (blight > aoc::BlightType::Water) return false; if (*mRematchCount_d == 0) diff --git a/src/Game/Actor/Damage/dmgDamageManagerBase.cpp b/src/Game/Actor/Damage/dmgDamageManagerBase.cpp index b99cac50..08557ba6 100644 --- a/src/Game/Actor/Damage/dmgDamageManagerBase.cpp +++ b/src/Game/Actor/Damage/dmgDamageManagerBase.cpp @@ -1,6 +1,6 @@ #include "Game/Actor/Damage/dmgDamageManagerBase.h" +#include "Game/AOC/aocHardModeManager.h" #include "Game/Actor/Damage/dmgDamageCallback.h" -#include "Game/DLC/aocHardModeManager.h" #include "KingSystem/ActorSystem/actActor.h" #include "KingSystem/ActorSystem/actActorConstDataAccess.h" #include "KingSystem/ActorSystem/actActorParam.h" diff --git a/src/Game/Actor/Query/queryCheckCurseRRetryEverOnce.cpp b/src/Game/Actor/Query/queryCheckCurseRRetryEverOnce.cpp index 57f4377d..c66c959a 100644 --- a/src/Game/Actor/Query/queryCheckCurseRRetryEverOnce.cpp +++ b/src/Game/Actor/Query/queryCheckCurseRRetryEverOnce.cpp @@ -1,6 +1,6 @@ #include "Game/Actor/Query/queryCheckCurseRRetryEverOnce.h" #include -#include "Game/DLC/aocChampionBalladManager.h" +#include "Game/AOC/aocChampionBalladManager.h" namespace uking::query { @@ -10,12 +10,12 @@ CheckCurseRRetryEverOnce::CheckCurseRRetryEverOnce(const InitArg& arg) CheckCurseRRetryEverOnce::~CheckCurseRRetryEverOnce() = default; int CheckCurseRRetryEverOnce::doQuery() { - auto* manager = ChampionBalladManager::instance(); + auto* manager = aoc::ChampionBalladManager::instance(); if (!manager) return 0; - auto blight = BlightType(*mCurseRType); - if (blight <= BlightType::Water) + auto blight = aoc::BlightType(*mCurseRType); + if (blight <= aoc::BlightType::Water) return manager->getBlightRematchCount(blight) > 0; return 0; } diff --git a/src/Game/CMakeLists.txt b/src/Game/CMakeLists.txt index 702f626f..e7a19dc2 100644 --- a/src/Game/CMakeLists.txt +++ b/src/Game/CMakeLists.txt @@ -1,7 +1,7 @@ add_subdirectory(Actor) +add_subdirectory(AOC) add_subdirectory(AutoPlacement) add_subdirectory(Cooking) -add_subdirectory(DLC) add_subdirectory(Scene) add_subdirectory(UI) diff --git a/src/Game/UI/uiPauseMenuDataMgr.cpp b/src/Game/UI/uiPauseMenuDataMgr.cpp index 53a87310..ec352d31 100644 --- a/src/Game/UI/uiPauseMenuDataMgr.cpp +++ b/src/Game/UI/uiPauseMenuDataMgr.cpp @@ -10,10 +10,10 @@ #include "Game/Actor/actPlayerCreateUtils.h" #include "Game/Actor/actWeapon.h" #include "Game/Cooking/cookManager.h" -#include "Game/DLC/aocManager.h" #include "Game/Scene/gameScene.h" #include "Game/UI/uiUtils.h" #include "Game/gameItemUtils.h" +#include "KingSystem/AOC/aocManager.h" #include "KingSystem/ActorSystem/actActorConstDataAccess.h" #include "KingSystem/ActorSystem/actActorHeapUtil.h" #include "KingSystem/ActorSystem/actActorUtil.h" @@ -450,7 +450,7 @@ void PauseMenuDataMgr::doLoadFromGameData() { } // Add the Travel Medallion (Obj_WarpDLC) to the inventory if it is missing for some reason - if (aoc::Manager::instance()->hasAoc2() && + if (ksys::aoc::Manager::instance()->hasAoc2() && !(found_travel_medallion | !gdt::getFlag_IsGet_Obj_WarpDLC())) { addToPouch(sValues.Obj_WarpDLC.cstr(), PouchItemType::KeyItem, lists, 1, false, nullptr, true); @@ -986,12 +986,12 @@ void PauseMenuDataMgr::doAddToPouch(PouchItemType type, const sead::SafeString& } if (item_name_to_add == sValues.Obj_WarpDLC) { - if (!aoc::Manager::instance()->hasAoc2()) { + if (!ksys::aoc::Manager::instance()->hasAoc2()) { return; } } - if (!aoc::Manager::instance()->hasAoc3()) { + if (!ksys::aoc::Manager::instance()->hasAoc3()) { if (item_name_to_add == sValues.Obj_DLC_HeroSoul_Zora) { item_name_to_add = sValues.Obj_HeroSoul_Zora; } else if (item_name_to_add == sValues.Obj_DLC_HeroSoul_Rito) { @@ -2621,23 +2621,26 @@ bool PauseMenuDataMgr::isHeroSoulEnabled(const sead::SafeString& name) const { // NOLINTNEXTLINE(readability-convert-member-functions-to-static) bool PauseMenuDataMgr::hasRitoSoulPlus() const { - return ksys::gdt::getFlag_IsGet_Obj_DLC_HeroSoul_Rito() && aoc::Manager::instance()->hasAoc3(); + return ksys::gdt::getFlag_IsGet_Obj_DLC_HeroSoul_Rito() && + ksys::aoc::Manager::instance()->hasAoc3(); } // NOLINTNEXTLINE(readability-convert-member-functions-to-static) bool PauseMenuDataMgr::hasGoronSoulPlus() const { - return ksys::gdt::getFlag_IsGet_Obj_DLC_HeroSoul_Goron() && aoc::Manager::instance()->hasAoc3(); + return ksys::gdt::getFlag_IsGet_Obj_DLC_HeroSoul_Goron() && + ksys::aoc::Manager::instance()->hasAoc3(); } // NOLINTNEXTLINE(readability-convert-member-functions-to-static) bool PauseMenuDataMgr::hasGerudoSoulPlus() const { return ksys::gdt::getFlag_IsGet_Obj_DLC_HeroSoul_Gerudo() && - aoc::Manager::instance()->hasAoc3(); + ksys::aoc::Manager::instance()->hasAoc3(); } // NOLINTNEXTLINE(readability-convert-member-functions-to-static) bool PauseMenuDataMgr::hasZoraSoulPlus() const { - return ksys::gdt::getFlag_IsGet_Obj_DLC_HeroSoul_Zora() && aoc::Manager::instance()->hasAoc3(); + return ksys::gdt::getFlag_IsGet_Obj_DLC_HeroSoul_Zora() && + ksys::aoc::Manager::instance()->hasAoc3(); } int PauseMenuDataMgr::countItemsWithCategoryByType(PouchCategory category) const { diff --git a/src/Game/UI/uiUtils.cpp b/src/Game/UI/uiUtils.cpp index 06462c7b..3d4e4979 100644 --- a/src/Game/UI/uiUtils.cpp +++ b/src/Game/UI/uiUtils.cpp @@ -1,8 +1,8 @@ #include "Game/UI/uiUtils.h" +#include "Game/AOC/aocHardModeManager.h" #include "Game/Actor/Damage/dmgInfoManager.h" #include "Game/Actor/actPlayerCreateMgr.h" #include "Game/Actor/actWeapon.h" -#include "Game/DLC/aocHardModeManager.h" #include "Game/UI/uiPauseMenuDataMgr.h" #include "KingSystem/ActorSystem/actInfoCommon.h" #include "KingSystem/ActorSystem/actInfoData.h" diff --git a/src/KingSystem/AOC/CMakeLists.txt b/src/KingSystem/AOC/CMakeLists.txt new file mode 100644 index 00000000..4badc13f --- /dev/null +++ b/src/KingSystem/AOC/CMakeLists.txt @@ -0,0 +1,4 @@ +target_sources(uking PRIVATE + aocManager.cpp + aocManager.h +) diff --git a/src/Game/DLC/aocManager.cpp b/src/KingSystem/AOC/aocManager.cpp similarity index 86% rename from src/Game/DLC/aocManager.cpp rename to src/KingSystem/AOC/aocManager.cpp index bb7ca50c..c0c13f77 100644 --- a/src/Game/DLC/aocManager.cpp +++ b/src/KingSystem/AOC/aocManager.cpp @@ -1,4 +1,4 @@ -#include "Game/DLC/aocManager.h" +#include "KingSystem/AOC/aocManager.h" #include #include #include @@ -15,7 +15,7 @@ #include #endif -namespace uking::aoc { +namespace ksys::aoc { namespace { @@ -24,7 +24,7 @@ struct DungeonInfo { sead::SafeString flag; }; -ksys::util::InitConstants sInitConstants; +util::InitConstants sInitConstants; DungeonInfo sDungeonInfoData[] = { {120, "Defeat_OneHitDungeon001"}, {121, "BalladOfHeroGerudo_AppearDungeon03"}, @@ -55,7 +55,7 @@ Manager::Manager() : mVersionFile(), mGdtReinitSlot{this, &Manager::onGdtReinit} } Manager::~Manager() { - if (auto* gdm = ksys::gdt::Manager::instance()) + if (auto* gdm = gdt::Manager::instance()) gdm->removeReinitCallback(mGdtReinitSlot); mAocMainFieldPackPrefix.deregister(); @@ -64,23 +64,23 @@ Manager::~Manager() { if (mFileDevice) { sead::FileDeviceMgr::instance()->unmount("aoc"); - ksys::util::safeDelete(mFileDevice); + util::safeDelete(mFileDevice); } #ifdef NNSDK if (mAocFsCache) { nn::fs::Unmount("aoc"); - ksys::util::safeDelete(mAocFsCache); + util::safeDelete(mAocFsCache); } #endif } void Manager::resetFlags() { - mFlagAocVerAtLastPlay = ksys::gdt::InvalidHandle; - mFlagLatestAocVerPlayed = ksys::gdt::InvalidHandle; - mFlagHasAocVer1 = ksys::gdt::InvalidHandle; - mFlagHasAocVer2 = ksys::gdt::InvalidHandle; - mFlagHasAocVer3 = ksys::gdt::InvalidHandle; + mFlagAocVerAtLastPlay = gdt::InvalidHandle; + mFlagLatestAocVerPlayed = gdt::InvalidHandle; + mFlagHasAocVer1 = gdt::InvalidHandle; + mFlagHasAocVer2 = gdt::InvalidHandle; + mFlagHasAocVer3 = gdt::InvalidHandle; } void Manager::init(sead::Heap* heap) { @@ -108,7 +108,7 @@ void Manager::loadVersionFile() { mVersionFileDevPrefix.registerPrefix("Aoc/0010/", mFileDevice, false); - ksys::res::LoadRequest req; + res::LoadRequest req; req.mRequester = "aocManager"; req._26 = false; req.mAocFileDevice = mFileDevice; @@ -116,7 +116,7 @@ void Manager::loadVersionFile() { mVersionFile.file_handle.requestLoad(path, &req); } -void Manager::loadAocMainFieldPack(ksys::OverlayArena* arena) { +void Manager::loadAocMainFieldPack(OverlayArena* arena) { if (!hasAoc3()) return; @@ -124,7 +124,7 @@ void Manager::loadAocMainFieldPack(ksys::OverlayArena* arena) { if (!device) return; - ksys::res::LoadRequest req; + res::LoadRequest req; req.mRequester = "aocManager"; req._8 = true; req._26 = false; @@ -166,7 +166,7 @@ sead::FileDevice* Manager::getFileDeviceForMapFile(const sead::SafeString& path) return nullptr; } -bool Manager::getFileDeviceForMap(sead::FileDevice** p_file_device, ksys::res::Handle** p_handle, +bool Manager::getFileDeviceForMap(sead::FileDevice** p_file_device, res::Handle** p_handle, const sead::SafeString& path) { if (!hasAoc2()) return false; @@ -363,7 +363,7 @@ sead::FileDevice* Manager::getFileDeviceForDungeonPack(const sead::SafeString& p return device; } -void Manager::registerAocPack(ksys::res::Handle* pack) { +void Manager::registerAocPack(res::Handle* pack) { mAocPack = pack; if (pack) { mAocPackPrefix.registerPrefix("Aoc/0010/", pack->getResource(), true); @@ -382,7 +382,7 @@ bool Manager::aocPackHasFile(const sead::SafeString& path) const { sead::FixedStringBuilder<0x81> builder; builder.copy(path.cstr()); - ksys::res::ResourceMgrTask::instance()->addSExtensionPrefix(builder); + res::ResourceMgrTask::instance()->addSExtensionPrefix(builder); return res->isExistFile(builder); } @@ -489,7 +489,7 @@ bool Manager::VersionFile::readVersion() { void Manager::initGameData() { reinitFlags(); - ksys::gdt::Manager::instance()->addReinitCallback(mGdtReinitSlot); + gdt::Manager::instance()->addReinitCallback(mGdtReinitSlot); } static const sead::SafeString& getDungeonFlag(int number) { @@ -501,23 +501,23 @@ static const sead::SafeString& getDungeonFlag(int number) { } void Manager::reinitFlags() { - mFlagAocVerAtLastPlay = ksys::gdt::Manager::instance()->getS32Handle("AoCVerAtLastPlay"); - mFlagLatestAocVerPlayed = ksys::gdt::Manager::instance()->getS32Handle("LatestAoCVerPlayed"); + mFlagAocVerAtLastPlay = gdt::Manager::instance()->getS32Handle("AoCVerAtLastPlay"); + mFlagLatestAocVerPlayed = gdt::Manager::instance()->getS32Handle("LatestAoCVerPlayed"); mFlagHasAocVer1 = - ksys::gdt::Manager::instance()->getBoolHandle(GameDataFlag::text(GameDataFlag::HasAoCVer1)); + gdt::Manager::instance()->getBoolHandle(GameDataFlag::text(GameDataFlag::HasAoCVer1)); mFlagHasAocVer2 = - ksys::gdt::Manager::instance()->getBoolHandle(GameDataFlag::text(GameDataFlag::HasAoCVer2)); + gdt::Manager::instance()->getBoolHandle(GameDataFlag::text(GameDataFlag::HasAoCVer2)); mFlagHasAocVer3 = - ksys::gdt::Manager::instance()->getBoolHandle(GameDataFlag::text(GameDataFlag::HasAoCVer3)); + gdt::Manager::instance()->getBoolHandle(GameDataFlag::text(GameDataFlag::HasAoCVer3)); for (int i = 0; i < mDLCPositions.size(); ++i) { - ksys::gdt::FlagHandle handle = ksys::gdt::InvalidHandle; + gdt::FlagHandle handle = gdt::InvalidHandle; if (i < NumDungeons) { - if (mDLCPositions[i].flag_handle == ksys::gdt::InvalidHandle) + if (mDLCPositions[i].flag_handle == gdt::InvalidHandle) continue; - handle = ksys::gdt::Manager::instance()->getBoolHandle(getDungeonFlag(i + 120)); + handle = gdt::Manager::instance()->getBoolHandle(getDungeonFlag(i + 120)); } mDLCPositions[i].flag_handle = handle; @@ -525,22 +525,22 @@ void Manager::reinitFlags() { } void Manager::setGameDataFlags() const { - ksys::gdt::Manager::instance()->setS32(mVersion, mFlagAocVerAtLastPlay); + gdt::Manager::instance()->setS32(mVersion, mFlagAocVerAtLastPlay); s32 latest_ver; - if (ksys::gdt::Manager::instance()->getS32(mFlagLatestAocVerPlayed, &latest_ver)) { + if (gdt::Manager::instance()->getS32(mFlagLatestAocVerPlayed, &latest_ver)) { if (u32(latest_ver) < mVersion) - ksys::gdt::Manager::instance()->setS32(mVersion, mFlagLatestAocVerPlayed); + gdt::Manager::instance()->setS32(mVersion, mFlagLatestAocVerPlayed); } const auto ver = mVersion; - ksys::gdt::Manager::instance()->setBool(ver >= 0x100, mFlagHasAocVer1); - ksys::gdt::Manager::instance()->setBool(ver >= 0x200, mFlagHasAocVer2); - ksys::gdt::Manager::instance()->setBool(ver >= 0x300, mFlagHasAocVer3); + gdt::Manager::instance()->setBool(ver >= 0x100, mFlagHasAocVer1); + gdt::Manager::instance()->setBool(ver >= 0x200, mFlagHasAocVer2); + gdt::Manager::instance()->setBool(ver >= 0x300, mFlagHasAocVer3); } -void Manager::onGdtReinit(ksys::gdt::Manager::ReinitEvent* event) { +void Manager::onGdtReinit(gdt::Manager::ReinitEvent* event) { reinitFlags(); } -} // namespace uking::aoc +} // namespace ksys::aoc diff --git a/src/Game/DLC/aocManager.h b/src/KingSystem/AOC/aocManager.h similarity index 78% rename from src/Game/DLC/aocManager.h rename to src/KingSystem/AOC/aocManager.h index 9dd19636..9f1623f3 100644 --- a/src/Game/DLC/aocManager.h +++ b/src/KingSystem/AOC/aocManager.h @@ -11,15 +11,15 @@ #include "KingSystem/Resource/resResourceMgrTask.h" #include "KingSystem/Utils/Types.h" -namespace ksys { -class OverlayArena; -} - namespace sead { class FileDevice; } -namespace uking::aoc { +namespace ksys { +class OverlayArena; +} + +namespace ksys::aoc { // TODO class Manager { @@ -38,12 +38,12 @@ public: /// @return Whether the Champion's Ballad DLC is supported. bool hasAoc3() const { return mVersion >= 0x300; } - void loadAocMainFieldPack(ksys::OverlayArena* arena); + void loadAocMainFieldPack(OverlayArena* arena); void registerAocMainFieldPack(); void unloadAocMainFieldPack(); sead::FileDevice* getFileDeviceForMapFile(const sead::SafeString& path) const; - bool getFileDeviceForMap(sead::FileDevice** p_file_device, ksys::res::Handle** p_handle, + bool getFileDeviceForMap(sead::FileDevice** p_file_device, res::Handle** p_handle, const sead::SafeString& path); sead::FileDevice* getFileDeviceForStaticCompound(const sead::SafeString& path) const; sead::FileDevice* getFileDeviceForTeraMesh(const sead::SafeString& path) const; @@ -61,7 +61,7 @@ public: static bool isAocField(const sead::SafeString& map_type); sead::FileDevice* getFileDeviceForDungeonPack(const sead::SafeString& path) const; - void registerAocPack(ksys::res::Handle* pack); + void registerAocPack(res::Handle* pack); bool aocPackHasFile(const sead::SafeString& path) const; bool changeMoviePath(sead::BufferedSafeString& path) const; @@ -82,14 +82,14 @@ private: sead::Vector3f rotate = sead::Vector3f::zero; sead::Vector3f translate2 = sead::Vector3f::zero; float scale = 0.0; - ksys::gdt::FlagHandle flag_handle = ksys::gdt::InvalidHandle; + gdt::FlagHandle flag_handle = gdt::InvalidHandle; }; KSYS_CHECK_SIZE_NX150(DLCPosition, 0x2c); struct VersionFile { bool readVersion(); - ksys::res::Handle file_handle; + res::Handle file_handle; sead::FixedSafeString<16> string; }; KSYS_CHECK_SIZE_NX150(VersionFile, 0x78); @@ -100,27 +100,27 @@ private: void resetFlags(); void initGameData(); void reinitFlags(); - void onGdtReinit(ksys::gdt::Manager::ReinitEvent* event); + void onGdtReinit(gdt::Manager::ReinitEvent* event); sead::FileDevice* mFileDevice{}; - ksys::res::FileDevicePrefix mVersionFileDevPrefix; + res::FileDevicePrefix mVersionFileDevPrefix; VersionFile mVersionFile{}; u32 mVersion{}; - ksys::res::Handle mAocMainFieldPack; - ksys::res::FileDevicePrefix mAocMainFieldPackPrefix; - ksys::res::Handle* mAocPack{}; - ksys::res::FileDevicePrefix mAocPackPrefix; + res::Handle mAocMainFieldPack; + res::FileDevicePrefix mAocMainFieldPackPrefix; + res::Handle* mAocPack{}; + res::FileDevicePrefix mAocPackPrefix; sead::SafeArray mDLCPositions; - ksys::gdt::FlagHandle mFlagAocVerAtLastPlay{}; - ksys::gdt::FlagHandle mFlagLatestAocVerPlayed{}; - ksys::gdt::FlagHandle mFlagHasAocVer1{}; - ksys::gdt::FlagHandle mFlagHasAocVer2{}; - ksys::gdt::FlagHandle mFlagHasAocVer3{}; - ksys::gdt::Manager::ReinitSignal::Slot mGdtReinitSlot; + gdt::FlagHandle mFlagAocVerAtLastPlay{}; + gdt::FlagHandle mFlagLatestAocVerPlayed{}; + gdt::FlagHandle mFlagHasAocVer1{}; + gdt::FlagHandle mFlagHasAocVer2{}; + gdt::FlagHandle mFlagHasAocVer3{}; + gdt::Manager::ReinitSignal::Slot mGdtReinitSlot; sead::BitFlag8 mVersionFlags{}; #ifdef NNSDK @@ -129,4 +129,4 @@ private: }; KSYS_CHECK_SIZE_NX150(Manager, 0x598); -} // namespace uking::aoc +} // namespace ksys::aoc diff --git a/src/KingSystem/CMakeLists.txt b/src/KingSystem/CMakeLists.txt index f1d8fddc..93a1d8db 100644 --- a/src/KingSystem/CMakeLists.txt +++ b/src/KingSystem/CMakeLists.txt @@ -3,6 +3,7 @@ add_subdirectory(GameData) add_subdirectory(Resource) add_subdirectory(ActorSystem) +add_subdirectory(AOC) add_subdirectory(Camera) add_subdirectory(Chemical) add_subdirectory(Ecosystem) diff --git a/src/KingSystem/GameData/gdtManager.cpp b/src/KingSystem/GameData/gdtManager.cpp index c067801d..ff628407 100644 --- a/src/KingSystem/GameData/gdtManager.cpp +++ b/src/KingSystem/GameData/gdtManager.cpp @@ -8,7 +8,7 @@ #include #include