aoc: Manager is ksys, the DLC managers stay game-side

aoc::Manager is created during engine start-up and called by gdt, map
and StarterPackMgr; only game code uses HardModeManager and
ChampionBalladManager.

(AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
This commit is contained in:
Léo Lam
2026-09-28 03:39:31 +02:00
parent 38905c8c07
commit c4c7c00e85
22 changed files with 153 additions and 147 deletions
@@ -3,6 +3,4 @@ target_sources(uking PRIVATE
aocChampionBalladManager.h
aocHardModeManager.cpp
aocHardModeManager.h
aocManager.cpp
aocManager.h
)
@@ -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
@@ -4,7 +4,7 @@
#include <container/seadSafeArray.h>
#include <heap/seadDisposer.h>
namespace uking {
namespace uking::aoc {
enum class BlightType : u32 { Wind, Electric, Fire, Water };
@@ -23,4 +23,4 @@ private:
sead::SafeArray<u8, 4> mBlightCounts;
};
} // namespace uking
} // namespace uking::aoc
@@ -1,4 +1,4 @@
#include "Game/DLC/aocHardModeManager.h"
#include "Game/AOC/aocHardModeManager.h"
#include <math/seadMathCalcCommon.h>
#include "KingSystem/ActorSystem/actActor.h"
#include "KingSystem/ActorSystem/actActorUtil.h"
+1 -1
View File
@@ -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"
@@ -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)
@@ -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"
@@ -1,6 +1,6 @@
#include "Game/Actor/Query/queryCheckCurseRRetryEverOnce.h"
#include <evfl/Query.h>
#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;
}
+1 -1
View File
@@ -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)
+11 -8
View File
@@ -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 {
+1 -1
View File
@@ -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"
+4
View File
@@ -0,0 +1,4 @@
target_sources(uking PRIVATE
aocManager.cpp
aocManager.h
)
@@ -1,4 +1,4 @@
#include "Game/DLC/aocManager.h"
#include "KingSystem/AOC/aocManager.h"
#include <container/seadBuffer.h>
#include <filedevice/seadFileDeviceMgr.h>
#include <prim/seadStringBuilder.h>
@@ -15,7 +15,7 @@
#include <prim/seadStringUtil.h>
#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
@@ -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<DLCPosition, 20> 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
+1
View File
@@ -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)
+2 -2
View File
@@ -8,7 +8,7 @@
#include <thread/seadThreadUtil.h>
#include <time/seadTickTime.h>
#include <type_traits>
#include "Game/DLC/aocManager.h"
#include "KingSystem/AOC/aocManager.h"
#include "KingSystem/GameData/gdtSaveMgr.h"
#include "KingSystem/GameData/gdtTriggerParam.h"
#include "KingSystem/Map/mapMubinIter.h"
@@ -426,7 +426,7 @@ void Manager::fixQuestFlags() {
}
void Manager::fixQuestFlagsDlc2() {
if (uking::aoc::Manager::instance()->hasAoc3())
if (aoc::Manager::instance()->hasAoc3())
return;
enum {
+4 -4
View File
@@ -1,6 +1,6 @@
#include "KingSystem/Map/mapLazyTraverseList.h"
#include "Game/DLC/aocManager.h"
#include "KingSystem/AOC/aocManager.h"
#include "KingSystem/GameData/gdtManager.h"
namespace ksys::map {
@@ -10,9 +10,9 @@ LazyTraverseList::LazyTraverseList(sead::Heap* heap) {
sead::SafeString path = "Map/MainField/LazyTraverseList.mubin";
ksys::res::LoadRequest request;
if (uking::aoc::Manager::instance())
uking::aoc::Manager::instance()->getFileDeviceForMap(&request.mAocFileDevice,
&request.mPackHandle, path);
if (aoc::Manager::instance())
aoc::Manager::instance()->getFileDeviceForMap(&request.mAocFileDevice, &request.mPackHandle,
path);
handle.load(path, &request);
+5 -5
View File
@@ -1,7 +1,7 @@
#include "KingSystem/Map/mapPlacementMap.h"
#include <prim/seadScopedLock.h>
#include <thread/seadReadWriteLock.h>
#include "Game/DLC/aocManager.h"
#include "KingSystem/AOC/aocManager.h"
#include "KingSystem/Map/mapObject.h"
#include "KingSystem/Physics/StaticCompound/physStaticCompound.h"
#include "KingSystem/Physics/StaticCompound/physStaticCompoundRigidBodyGroup.h"
@@ -201,8 +201,8 @@ bool PlacementMap::loadDynamicMap() {
} else {
path.append("_Dynamic_NoGrudgeMerge.mubin");
}
if (uking::aoc::Manager::instance()) {
arg.mAocFileDevice = uking::aoc::Manager::instance()->getFileDeviceForMapFile(path);
if (aoc::Manager::instance()) {
arg.mAocFileDevice = aoc::Manager::instance()->getFileDeviceForMapFile(path);
}
return mDynamicMubinRes.requestLoad(path, &arg, 0);
}
@@ -288,8 +288,8 @@ bool PlacementMap::loadStaticCompound(int hksc_idx, bool auto_gen_mu, bool req_a
path.format("Physics/StaticCompound/%s-%d.hksc", mFolderAndFile.cstr(), hksc_idx);
}
}
if (uking::aoc::Manager::instance()) {
arg.mAocFileDevice = uking::aoc::Manager::instance()->getFileDeviceForStaticCompound(path);
if (aoc::Manager::instance()) {
arg.mAocFileDevice = aoc::Manager::instance()->getFileDeviceForStaticCompound(path);
}
return mRes[hksc_idx].mRes.requestLoad(path, &arg, 0);
+6 -6
View File
@@ -117,8 +117,8 @@ void StarterPackMgr::loadTitleBGPacks() {
}
void StarterPackMgr::loadAocMainFieldPack() {
if (uking::aoc::Manager::instance())
uking::aoc::Manager::instance()->loadAocMainFieldPack(mOverlayArena);
if (aoc::Manager::instance())
aoc::Manager::instance()->loadAocMainFieldPack(mOverlayArena);
}
void StarterPackMgr::unloadBootupGraphicsPack() {
@@ -192,8 +192,8 @@ void StarterPackMgr::setPackToTitleBGPack() {
mTitleBGLangPack.waitForReady();
mTitleBGLangPack.parseResource(nullptr);
if (uking::aoc::Manager::instance())
uking::aoc::Manager::instance()->registerAocMainFieldPack();
if (aoc::Manager::instance())
aoc::Manager::instance()->registerAocMainFieldPack();
res::registerPackExtension(false, "");
res::setResourceMgrPack(&mTitleBGPack);
@@ -207,8 +207,8 @@ void StarterPackMgr::unloadTitleBGAndAocMainFieldPacksAndStuff() {
mTitleBGPack.requestUnload();
mTitleBGLangPack.requestUnload();
if (uking::aoc::Manager::instance())
uking::aoc::Manager::instance()->unloadAocMainFieldPack();
if (aoc::Manager::instance())
aoc::Manager::instance()->unloadAocMainFieldPack();
for (int x = 0; x < 5; x++)
res::ResourceMgrTask::instance()->waitForTaskQueuesToEmpty();
+1 -1
View File
@@ -3,7 +3,7 @@
#include <devenv/seadEnvUtil.h>
#include <heap/seadExpHeap.h>
#include <prim/seadSafeString.h>
#include "Game/DLC/aocManager.h"
#include "KingSystem/AOC/aocManager.h"
#include "KingSystem/Resource/resEntryFactory.h"
#include "KingSystem/Resource/resHandle.h"
#include "KingSystem/Resource/resLoadRequest.h"