diff --git a/src/Game/DLC/aoc2.cpp b/src/Game/DLC/aoc2.cpp index 59076d34..ed21fe6b 100644 --- a/src/Game/DLC/aoc2.cpp +++ b/src/Game/DLC/aoc2.cpp @@ -45,8 +45,8 @@ void aoc2::setHardModeEnabledFlag(ksys::gdt::Manager::ResetEvent*) { void aoc2::initFlagHandles(ksys::gdt::Manager::ReinitEvent*) { auto* gdm = ksys::gdt::Manager::instance(); mHardModeHighScoreFlag = gdm->getS32Handle(sData.flag_name_HardMode_HighScore); - mAoCHardModeEnabledFlag = gdm->getS32Handle(sData.flag_name_AoC_HardMode_Enabled); - mIsLastPlayHardModeFlag = gdm->getS32Handle(sData.flag_name_IsLastPlayHardMode); + mAoCHardModeEnabledFlag = gdm->getBoolHandle(sData.flag_name_AoC_HardMode_Enabled); + mIsLastPlayHardModeFlag = gdm->getBoolHandle(sData.flag_name_IsLastPlayHardMode); } aoc2::~aoc2() { diff --git a/src/KingSystem/ActorSystem/actBaseProcMgr.cpp b/src/KingSystem/ActorSystem/actBaseProcMgr.cpp index 81ebe6a2..2c4a9f74 100644 --- a/src/KingSystem/ActorSystem/actBaseProcMgr.cpp +++ b/src/KingSystem/ActorSystem/actBaseProcMgr.cpp @@ -26,7 +26,7 @@ void BaseProcMgr::unregisterProc(BaseProc& proc) { void BaseProcMgr::addToPreDeleteList(BaseProc& proc) { auto lock = sead::makeScopedLock(mProcPreDeleteListCS); - mProcPreDeleteList.pushBack(&proc); + mProcPreDeleteList.pushFront(&proc); } void BaseProcMgr::doAddToUpdateStateList_(BaseProc& proc) { diff --git a/src/KingSystem/GameData/gdtCommonFlagsUtils.cpp b/src/KingSystem/GameData/gdtCommonFlagsUtils.cpp index 0363fbe6..ae11e4c2 100644 --- a/src/KingSystem/GameData/gdtCommonFlagsUtils.cpp +++ b/src/KingSystem/GameData/gdtCommonFlagsUtils.cpp @@ -141,8 +141,8 @@ bool getFlag_AoC_DragonFireChallengeRing_Advent(bool debug) { return getBool(fla void setFlag_AoC_DragonFireChallengeRing_Advent(bool value, bool debug) { setBool(value, flag_AoC_DragonFireChallengeRing_Advent(), debug); } bool getFlag_AoC_HardMode_Enabled(bool debug) { return getBool(flag_AoC_HardMode_Enabled(), debug); } void setFlag_AoC_HardMode_Enabled(bool value, bool debug) { setBool(value, flag_AoC_HardMode_Enabled(), debug); } -void getFlag_AoC_RandomSpawnTreasure_Contents(char const** value, bool debug) { getStr64(flag_AoC_RandomSpawnTreasure_Contents(), value, debug); } -void setFlag_AoC_RandomSpawnTreasure_Contents(const sead::SafeString& value, bool debug) { setStr64(value, flag_AoC_RandomSpawnTreasure_Contents(), debug); } +void getFlag_AoC_RandomSpawnTreasure_Contents(char const** value, s32 idx, bool debug) { getStr64(flag_AoC_RandomSpawnTreasure_Contents(), value, idx, debug); } +void setFlag_AoC_RandomSpawnTreasure_Contents(const sead::SafeString& value, s32 idx, bool debug) { setStr64(value, flag_AoC_RandomSpawnTreasure_Contents(), idx, debug); } bool getFlag_AoC_RandomSpawnTreasure_IsRandomized(bool debug) { return getBool(flag_AoC_RandomSpawnTreasure_IsRandomized(), debug); } void setFlag_AoC_RandomSpawnTreasure_IsRandomized(bool value, bool debug) { setBool(value, flag_AoC_RandomSpawnTreasure_IsRandomized(), debug); } bool getFlag_AoC_TestProg_Imoto_Flag_00(bool debug) { return getBool(flag_AoC_TestProg_Imoto_Flag_00(), debug); } diff --git a/src/KingSystem/GameData/gdtCommonFlagsUtils.h b/src/KingSystem/GameData/gdtCommonFlagsUtils.h index e0104d69..377de94a 100644 --- a/src/KingSystem/GameData/gdtCommonFlagsUtils.h +++ b/src/KingSystem/GameData/gdtCommonFlagsUtils.h @@ -144,8 +144,8 @@ bool getFlag_AoC_DragonFireChallengeRing_Advent(bool debug = false); void setFlag_AoC_DragonFireChallengeRing_Advent(bool value, bool debug = false); bool getFlag_AoC_HardMode_Enabled(bool debug = false); void setFlag_AoC_HardMode_Enabled(bool value, bool debug = false); -void getFlag_AoC_RandomSpawnTreasure_Contents(char const** value, bool debug = false); -void setFlag_AoC_RandomSpawnTreasure_Contents(const sead::SafeString& value, bool debug = false); +void getFlag_AoC_RandomSpawnTreasure_Contents(char const** value, s32 idx, bool debug = false); +void setFlag_AoC_RandomSpawnTreasure_Contents(const sead::SafeString& value, s32 idx, bool debug = false); bool getFlag_AoC_RandomSpawnTreasure_IsRandomized(bool debug = false); void setFlag_AoC_RandomSpawnTreasure_IsRandomized(bool value, bool debug = false); bool getFlag_AoC_TestProg_Imoto_Flag_00(bool debug = false); diff --git a/src/KingSystem/GameData/gdtManager.h b/src/KingSystem/GameData/gdtManager.h index 6a14dba2..cd8d31dc 100644 --- a/src/KingSystem/GameData/gdtManager.h +++ b/src/KingSystem/GameData/gdtManager.h @@ -7,6 +7,7 @@ #include #include #include +#include #include #include "KingSystem/GameData/gdtTriggerParam.h" #include "KingSystem/Resource/resHandle.h" @@ -510,7 +511,7 @@ private: sead::FixedSafeString<64> mStr; // TODO: rename u32 mTrackerBlockSaveNumberFlagCrc32 = 0; u32 mSyncStep = 0; - sead::CriticalSection mCriticalSection; + sead::Mutex mMutex; }; KSYS_CHECK_SIZE_NX150(Manager, 0xdc8); diff --git a/src/KingSystem/Resource/resResourceMgrTask.cpp b/src/KingSystem/Resource/resResourceMgrTask.cpp index d0a96b21..5b5d39ed 100644 --- a/src/KingSystem/Resource/resResourceMgrTask.cpp +++ b/src/KingSystem/Resource/resResourceMgrTask.cpp @@ -69,7 +69,7 @@ ResourceMgrTask::~ResourceMgrTask() { } util::safeDeleteArray(mCompactedHeapMainBuffer2); - util::safeDeleteArray(mOffsetReadBuf); + util::safeDelete(mOffsetReadBuf); mExtensions2.freeBuffer(); mExtensions1.freeBuffer(); @@ -547,7 +547,7 @@ ResourceUnit* ResourceMgrTask::clearCachesAndGetUnit(const GetUnitArg& arg) { ++it; } - unit = mUnitPool.tryAlloc(); + unit = mUnitPool.alloc(); } if (!unit->init(*arg.unit_init_arg)) diff --git a/tools/generate_gdt_common_flags.py b/tools/generate_gdt_common_flags.py index d45bf675..ead492ad 100755 --- a/tools/generate_gdt_common_flags.py +++ b/tools/generate_gdt_common_flags.py @@ -61,7 +61,7 @@ flag_type_info = { def add_development_remnant_flags(flags: tp.Dict[str, str]): _flags = { "AoC_DragonFireChallengeRing_Advent": "bool_data", - "AoC_RandomSpawnTreasure_Contents": "string64_data", + "AoC_RandomSpawnTreasure_Contents": "string64_array_data", "AoC_RandomSpawnTreasure_IsRandomized": "bool_data", "AoC_TestProg_Imoto_Flag_00": "bool_data", "AoC_TestProg_Imoto_TagCount_00": "s32_data",