mirror of
https://github.com/zeldaret/botw
synced 2026-10-10 05:51:51 -04:00
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:
@@ -3,6 +3,4 @@ target_sources(uking PRIVATE
|
||||
aocChampionBalladManager.h
|
||||
aocHardModeManager.cpp
|
||||
aocHardModeManager.h
|
||||
aocManager.cpp
|
||||
aocManager.h
|
||||
)
|
||||
+3
-3
@@ -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,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,7 +1,7 @@
|
||||
add_subdirectory(Actor)
|
||||
add_subdirectory(AOC)
|
||||
add_subdirectory(AutoPlacement)
|
||||
add_subdirectory(Cooking)
|
||||
add_subdirectory(DLC)
|
||||
add_subdirectory(Scene)
|
||||
add_subdirectory(UI)
|
||||
|
||||
|
||||
@@ -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,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"
|
||||
|
||||
@@ -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
|
||||
@@ -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)
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user