From c95a79bbc15d6b20e17acfe4a7299961fd299a65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Tue, 20 Apr 2021 12:02:24 +0200 Subject: [PATCH] Rename aoc2 to HardModeManager It seems to have been called HardModeManager according to a leftover context name for loading Aoc/0010/Ecosystem/HardMode.byml (which also doesn't exist anymore). --- data/uking_functions.csv | 52 +++++++++--------- src/Game/DLC/CMakeLists.txt | 4 +- .../DLC/{aoc2.cpp => aocHardModeManager.cpp} | 53 ++++++++++--------- src/Game/DLC/{aoc2.h => aocHardModeManager.h} | 15 +++--- src/Game/Damage/dmgDamageManagerBase.cpp | 22 ++++---- src/Game/UI/uiUtils.cpp | 10 ++-- 6 files changed, 79 insertions(+), 77 deletions(-) rename src/Game/DLC/{aoc2.cpp => aocHardModeManager.cpp} (87%) rename src/Game/DLC/{aoc2.h => aocHardModeManager.h} (92%) diff --git a/data/uking_functions.csv b/data/uking_functions.csv index c2b7c933..8768793a 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -74445,33 +74445,33 @@ 0x0000007100d6cb94,sub_7100D6CB94,92,_ZNK4sead9Delegate1IN5uking3aoc7ManagerEPN4ksys3gdt7Manager11ReinitEventEE5cloneEPNS_4HeapE 0x0000007100d6cbf0,j__ZdlPv_859,4,_ZN4sead15FixedSafeStringILi4EED0Ev 0x0000007100d6cbf4,_ZN4sead15FixedSafeStringILi153EEaSERKNS_14SafeStringBaseIcEE,240,_ZN4sead15FixedSafeStringILi4EEaSERKNS_14SafeStringBaseIcEE -0x0000007100d6cce4,aoc2::Instance::dtor,92,_ZN5uking4aoc218SingletonDisposer_D2Ev -0x0000007100d6cd40,aoc2::Instance::dtorDelete,100,_ZN5uking4aoc218SingletonDisposer_D0Ev -0x0000007100d6cda4,aoc2::createInstance,136,_ZN5uking4aoc214createInstanceEPN4sead4HeapE -0x0000007100d6ce2c,aoc2::ctor,524,_ZN5uking4aoc2C1Ev -0x0000007100d6d038,aoc2::setAocHardModeEnabledFlag,96,_ZN5uking4aoc222setHardModeEnabledFlagEPN4ksys3gdt7Manager10ResetEventE -0x0000007100d6d098,aoc2::initGameDataIters,212,_ZN5uking4aoc215initFlagHandlesEPN4ksys3gdt7Manager11ReinitEventE -0x0000007100d6d16c,aoc2::dtor,228,_ZN5uking4aoc2D1Ev -0x0000007100d6d250,aoc2::dtorDelete,36,_ZN5uking4aoc2D0Ev -0x0000007100d6d274,aoc2::init,4,_ZN5uking4aoc24initEPN4sead4HeapE -0x0000007100d6d278,aoc2::init,228,_ZN5uking4aoc25init_Ev -0x0000007100d6d35c,aoc2::nerfCooking,56,_ZNK5uking4aoc213nerfHpRestoreEPf -0x0000007100d6d394,aoc2::nerfCookCureItemHitPointRecover,64,_ZNK5uking4aoc213nerfHpRestoreEPi -0x0000007100d6d3d4,aoc2::modifyEnemyNoticeDuration,60,_ZNK5uking4aoc225modifyEnemyNoticeDurationEPf +0x0000007100d6cce4,aoc2::Instance::dtor,92,_ZN5uking3aoc15HardModeManager18SingletonDisposer_D2Ev +0x0000007100d6cd40,aoc2::Instance::dtorDelete,100,_ZN5uking3aoc15HardModeManager18SingletonDisposer_D0Ev +0x0000007100d6cda4,aoc2::createInstance,136,_ZN5uking3aoc15HardModeManager14createInstanceEPN4sead4HeapE +0x0000007100d6ce2c,aoc2::ctor,524,_ZN5uking3aoc15HardModeManagerC1Ev +0x0000007100d6d038,aoc2::setAocHardModeEnabledFlag,96,_ZN5uking3aoc15HardModeManager22setHardModeEnabledFlagEPN4ksys3gdt7Manager10ResetEventE +0x0000007100d6d098,aoc2::initGameDataIters,212,_ZN5uking3aoc15HardModeManager15initFlagHandlesEPN4ksys3gdt7Manager11ReinitEventE +0x0000007100d6d16c,aoc2::dtor,228,_ZN5uking3aoc15HardModeManagerD1Ev +0x0000007100d6d250,aoc2::dtorDelete,36,_ZN5uking3aoc15HardModeManagerD0Ev +0x0000007100d6d274,aoc2::init,4,_ZN5uking3aoc15HardModeManager4initEPN4sead4HeapE +0x0000007100d6d278,aoc2::init,228,_ZN5uking3aoc15HardModeManager5init_Ev +0x0000007100d6d35c,aoc2::nerfCooking,56,_ZNK5uking3aoc15HardModeManager13nerfHpRestoreEPf +0x0000007100d6d394,aoc2::nerfCookCureItemHitPointRecover,64,_ZNK5uking3aoc15HardModeManager13nerfHpRestoreEPi +0x0000007100d6d3d4,aoc2::modifyEnemyNoticeDuration,60,_ZNK5uking3aoc15HardModeManager25modifyEnemyNoticeDurationEPf 0x0000007100d6d410,sub_7100D6D410,304, -0x0000007100d6d540,aoc2::shouldApplyMasterModeDamageMultiplier,6164,_ZN5uking4aoc237shouldApplyMasterModeDamageMultiplierERKN4ksys3act20ActorConstDataAccessE -0x0000007100d6ed54,aoc2::buffDamage,40,_ZN5uking4aoc210buffDamageERi -0x0000007100d6ed7c,aoc2::initHardModeFlag,172,_ZN5uking4aoc226loadIsLastPlayHardModeFlagEv -0x0000007100d6ee28,aoc2::setAocFlag2,172,_ZN5uking4aoc218loadIsHardModeFlagEv -0x0000007100d6eed4,aoc2::setIsLastPlayHardMode,60,_ZN5uking4aoc227storeIsLastPlayHardModeFlagEv -0x0000007100d6ef10,aoc2::setIsLastPlayHardModeToFalse,76,_ZN5uking4aoc227resetIsLastPlayHardModeFlagEv -0x0000007100d6ef5c,aoc2::isTestOfStrengthDungeon,396,_ZNK5uking4aoc222isTestOfStrengthShrineEv -0x0000007100d6f0e8,aoc2::calc,20,_ZN5uking4aoc24calcEv -0x0000007100d6f0fc,aoc2::rankUpEnemy,7780,_ZN5uking4aoc211rankUpEnemyERKN4sead14SafeStringBaseIcEERKN4ksys3map6ObjectEPPKc -0x0000007100d70f60,sub_7100D70F60,48,_ZN4sead9Delegate1IN5uking4aoc2EPN4ksys3gdt7Manager10ResetEventEE6invokeES7_ -0x0000007100d70f90,sub_7100D70F90,92,_ZNK4sead9Delegate1IN5uking4aoc2EPN4ksys3gdt7Manager10ResetEventEE5cloneEPNS_4HeapE -0x0000007100d70fec,sub_7100D70FEC,48,_ZN4sead9Delegate1IN5uking4aoc2EPN4ksys3gdt7Manager11ReinitEventEE6invokeES7_ -0x0000007100d7101c,sub_7100D7101C,92,_ZNK4sead9Delegate1IN5uking4aoc2EPN4ksys3gdt7Manager11ReinitEventEE5cloneEPNS_4HeapE +0x0000007100d6d540,aoc2::shouldApplyMasterModeDamageMultiplier,6164,_ZN5uking3aoc15HardModeManager37shouldApplyMasterModeDamageMultiplierERKN4ksys3act20ActorConstDataAccessE +0x0000007100d6ed54,aoc2::buffDamage,40,_ZN5uking3aoc15HardModeManager10buffDamageERi +0x0000007100d6ed7c,aoc2::initHardModeFlag,172,_ZN5uking3aoc15HardModeManager26loadIsLastPlayHardModeFlagEv +0x0000007100d6ee28,aoc2::setAocFlag2,172,_ZN5uking3aoc15HardModeManager18loadIsHardModeFlagEv +0x0000007100d6eed4,aoc2::setIsLastPlayHardMode,60,_ZN5uking3aoc15HardModeManager27storeIsLastPlayHardModeFlagEv +0x0000007100d6ef10,aoc2::setIsLastPlayHardModeToFalse,76,_ZN5uking3aoc15HardModeManager27resetIsLastPlayHardModeFlagEv +0x0000007100d6ef5c,aoc2::isTestOfStrengthDungeon,396,_ZNK5uking3aoc15HardModeManager22isTestOfStrengthShrineEv +0x0000007100d6f0e8,aoc2::calc,20,_ZN5uking3aoc15HardModeManager4calcEv +0x0000007100d6f0fc,aoc2::rankUpEnemy,7780,_ZN5uking3aoc15HardModeManager11rankUpEnemyERKN4sead14SafeStringBaseIcEERKN4ksys3map6ObjectEPPKc +0x0000007100d70f60,sub_7100D70F60,48,_ZN4sead9Delegate1IN5uking3aoc15HardModeManagerEPN4ksys3gdt7Manager10ResetEventEE6invokeES8_ +0x0000007100d70f90,sub_7100D70F90,92,_ZNK4sead9Delegate1IN5uking3aoc15HardModeManagerEPN4ksys3gdt7Manager10ResetEventEE5cloneEPNS_4HeapE +0x0000007100d70fec,sub_7100D70FEC,48,_ZN4sead9Delegate1IN5uking3aoc15HardModeManagerEPN4ksys3gdt7Manager11ReinitEventEE6invokeES8_ +0x0000007100d7101c,sub_7100D7101C,92,_ZNK4sead9Delegate1IN5uking3aoc15HardModeManagerEPN4ksys3gdt7Manager11ReinitEventEE5cloneEPNS_4HeapE 0x0000007100d71078,sub_7100D71078,248,_GLOBAL__sub_I_aoc2.cpp 0x0000007100d71170,AttClient::ctor,216, 0x0000007100d71248,sub_7100D71248,48, diff --git a/src/Game/DLC/CMakeLists.txt b/src/Game/DLC/CMakeLists.txt index 27f64e8c..aec47721 100644 --- a/src/Game/DLC/CMakeLists.txt +++ b/src/Game/DLC/CMakeLists.txt @@ -1,6 +1,6 @@ target_sources(uking PRIVATE - aoc2.cpp - aoc2.h + aocHardModeManager.cpp + aocHardModeManager.h aocManager.cpp aocManager.h ) diff --git a/src/Game/DLC/aoc2.cpp b/src/Game/DLC/aocHardModeManager.cpp similarity index 87% rename from src/Game/DLC/aoc2.cpp rename to src/Game/DLC/aocHardModeManager.cpp index 5e8e6d07..cf4233e0 100644 --- a/src/Game/DLC/aoc2.cpp +++ b/src/Game/DLC/aocHardModeManager.cpp @@ -1,11 +1,11 @@ -#include "Game/DLC/aoc2.h" +#include "Game/DLC/aocHardModeManager.h" #include #include "KingSystem/ActorSystem/actTag.h" #include "KingSystem/Utils/InitTimeInfo.h" -namespace uking { +namespace uking::aoc { -SEAD_SINGLETON_DISPOSER_IMPL(aoc2) +SEAD_SINGLETON_DISPOSER_IMPL(HardModeManager) namespace { struct aoc2StaticData { @@ -19,9 +19,9 @@ aoc2StaticData sData; sead::FixedSafeString<64> sStr{""}; } // namespace -aoc2::aoc2() - : mGdtResetSlot(this, &aoc2::setHardModeEnabledFlag), - mGdtReinitSlot(this, &aoc2::initFlagHandles) { +HardModeManager::HardModeManager() + : mGdtResetSlot(this, &HardModeManager::setHardModeEnabledFlag), + mGdtReinitSlot(this, &HardModeManager::initFlagHandles) { mMultipliers.fill(0.5); setHardModeChange(HardModeChange::IsLastPlayHardMode, true); @@ -33,19 +33,19 @@ aoc2::aoc2() setHardModeChange(HardModeChange::ApplyDamageMultiplier, true); } -void aoc2::setHardModeEnabledFlag(ksys::gdt::Manager::ResetEvent*) { +void HardModeManager::setHardModeEnabledFlag(ksys::gdt::Manager::ResetEvent*) { ksys::gdt::Manager::instance()->setBool(true, mAoCHardModeEnabledFlag); mGdtResetSlot.release(); } -void aoc2::initFlagHandles(ksys::gdt::Manager::ReinitEvent*) { +void HardModeManager::initFlagHandles(ksys::gdt::Manager::ReinitEvent*) { auto* gdm = ksys::gdt::Manager::instance(); mHardModeHighScoreFlag = gdm->getS32Handle(sData.flag_name_HardMode_HighScore); mAoCHardModeEnabledFlag = gdm->getBoolHandle(sData.flag_name_AoC_HardMode_Enabled); mIsLastPlayHardModeFlag = gdm->getBoolHandle(sData.flag_name_IsLastPlayHardMode); } -aoc2::~aoc2() { +HardModeManager::~HardModeManager() { mFileHandle.requestUnload2(); if (_120) { // TODO: use the normal operator delete once we figure out what _120 is @@ -54,28 +54,29 @@ aoc2::~aoc2() { } } -void aoc2::init(sead::Heap*) { +void HardModeManager::init(sead::Heap*) { init_(); } -void aoc2::init_() { +void HardModeManager::init_() { initFlagHandles(); ksys::gdt::Manager::instance()->addReinitCallback(mGdtReinitSlot); } -void aoc2::nerfHpRestore(f32* hp) const { +void HardModeManager::nerfHpRestore(f32* hp) const { *hp = sead::Mathf::max(*hp * getMultiplier(MultiplierType::HpRestore), 1.0f); } -void aoc2::nerfHpRestore(s32* hp) const { +void HardModeManager::nerfHpRestore(s32* hp) const { *hp = sead::Mathi::max(*hp * getMultiplier(MultiplierType::HpRestore), 1); } -void aoc2::modifyEnemyNoticeDuration(f32* value) const { +void HardModeManager::modifyEnemyNoticeDuration(f32* value) const { *value = sead::Mathf::max(*value * getMultiplier(MultiplierType::EnemyNoticeDuration), 0); } -bool aoc2::shouldApplyMasterModeDamageMultiplier(const ksys::act::ActorConstDataAccess& accessor) { +bool HardModeManager::shouldApplyMasterModeDamageMultiplier( + const ksys::act::ActorConstDataAccess& accessor) { if (!accessor.hasProc()) return false; @@ -84,7 +85,7 @@ bool aoc2::shouldApplyMasterModeDamageMultiplier(const ksys::act::ActorConstData return shouldApplyMasterModeDamageMultiplier(parent); if (accessor.hasTag(ksys::act::tags::IsMasterModeDamageMultiplierActor) || - (aoc2::instance() && aoc2::instance()->isTestOfStrengthShrine() && + (HardModeManager::instance() && HardModeManager::instance()->isTestOfStrengthShrine() && accessor.hasTag(ksys::act::tags::AncientGuardTarget))) { return true; } @@ -115,14 +116,14 @@ bool aoc2::shouldApplyMasterModeDamageMultiplier(const ksys::act::ActorConstData return false; } -void aoc2::buffDamage(s32& damage) { +void HardModeManager::buffDamage(s32& damage) { damage = damage * 1.5f; if (damage == 1) { damage = 2; } } -void aoc2::loadIsLastPlayHardModeFlag() { +void HardModeManager::loadIsLastPlayHardModeFlag() { bool value{}; ksys::gdt::Manager::instance()->getBool(mIsLastPlayHardModeFlag, &value); const bool x = value; @@ -132,7 +133,7 @@ void aoc2::loadIsLastPlayHardModeFlag() { setFlag(Flag::EnableHardMode, x); } -void aoc2::loadIsHardModeFlag() { +void HardModeManager::loadIsHardModeFlag() { bool value{}; ksys::gdt::Manager::instance()->getBool(mAoCHardModeEnabledFlag, &value); const bool x = value; @@ -142,16 +143,16 @@ void aoc2::loadIsHardModeFlag() { setFlag(Flag::EnableHardMode, x); } -void aoc2::storeIsLastPlayHardModeFlag() { +void HardModeManager::storeIsLastPlayHardModeFlag() { ksys::gdt::Manager::instance()->setBool(checkFlag(Flag::EnableHardMode), mIsLastPlayHardModeFlag); } -void aoc2::resetIsLastPlayHardModeFlag() { +void HardModeManager::resetIsLastPlayHardModeFlag() { ksys::gdt::Manager::instance()->setBool(false, "IsLastPlayHardMode"); } -bool aoc2::isTestOfStrengthShrine() const { +bool HardModeManager::isTestOfStrengthShrine() const { if (mMapType != "CDungeon") return false; @@ -166,13 +167,13 @@ bool aoc2::isTestOfStrengthShrine() const { return false; } -void aoc2::calc() { +void HardModeManager::calc() { volatile u32 unused = 0; static_cast(unused); } -bool aoc2::rankUpEnemy(const sead::SafeString& actor_name, const ksys::map::Object& obj, - const char** new_name) { +bool HardModeManager::rankUpEnemy(const sead::SafeString& actor_name, const ksys::map::Object& obj, + const char** new_name) { if (obj.getFlags().isOn(ksys::map::Object::Flag::HasUniqueName) || obj.getHardModeFlags().isOn(ksys::map::Object::HardModeFlag::DisableRankup)) { return false; @@ -309,4 +310,4 @@ bool aoc2::rankUpEnemy(const sead::SafeString& actor_name, const ksys::map::Obje return true; } -} // namespace uking +} // namespace uking::aoc diff --git a/src/Game/DLC/aoc2.h b/src/Game/DLC/aocHardModeManager.h similarity index 92% rename from src/Game/DLC/aoc2.h rename to src/Game/DLC/aocHardModeManager.h index 3d6c612c..26127c2a 100644 --- a/src/Game/DLC/aoc2.h +++ b/src/Game/DLC/aocHardModeManager.h @@ -10,14 +10,13 @@ #include "KingSystem/Resource/resHandle.h" #include "KingSystem/Utils/Types.h" -namespace uking { +namespace uking::aoc { -// FIXME: incomplete -class aoc2 final { - SEAD_SINGLETON_DISPOSER(aoc2) +class HardModeManager final { + SEAD_SINGLETON_DISPOSER(HardModeManager) - aoc2(); - virtual ~aoc2(); + HardModeManager(); + virtual ~HardModeManager(); public: SEAD_ENUM(HardModeChange, IsLastPlayHardMode = 0, NerfHpRestore = 1, _2 = 2, @@ -76,6 +75,6 @@ private: sead::FixedSafeString<256> mMapType; sead::FixedSafeString<256> mMapName; }; -KSYS_CHECK_SIZE_NX150(aoc2, 0x3b8); +KSYS_CHECK_SIZE_NX150(HardModeManager, 0x3b8); -} // namespace uking +} // namespace uking::aoc diff --git a/src/Game/Damage/dmgDamageManagerBase.cpp b/src/Game/Damage/dmgDamageManagerBase.cpp index 3738cf4e..47035177 100644 --- a/src/Game/Damage/dmgDamageManagerBase.cpp +++ b/src/Game/Damage/dmgDamageManagerBase.cpp @@ -1,5 +1,5 @@ #include "Game/Damage/dmgDamageManagerBase.h" -#include "Game/DLC/aoc2.h" +#include "Game/DLC/aocHardModeManager.h" #include "Game/Damage/dmgDamageCallback.h" #include "KingSystem/ActorSystem/actActor.h" #include "KingSystem/ActorSystem/actActorConstDataAccess.h" @@ -139,37 +139,37 @@ bool DamageManagerBase::applyDamage(s32& life) { } void DamageManagerBase::tryBuffDamage(s32& damage) { - if (!uking::aoc2::instance()) { + if (!aoc::HardModeManager::instance()) { return; } - if (!uking::aoc2::instance()->checkFlag(uking::aoc2::Flag::EnableHardMode)) { + if (!aoc::HardModeManager::instance()->checkFlag(aoc::HardModeManager::Flag::EnableHardMode)) { return; } - if (!uking::aoc2::instance()->isHardModeChangeOn( - uking::aoc2::HardModeChange::ApplyDamageMultiplier)) { + if (!aoc::HardModeManager::instance()->isHardModeChangeOn( + aoc::HardModeManager::HardModeChange::ApplyDamageMultiplier)) { return; } ksys::act::ActorConstDataAccess acc; ksys::act::acquireActor(getAttacker(), &acc); - if (uking::aoc2::shouldApplyMasterModeDamageMultiplier(acc)) { - uking::aoc2::buffDamage(damage); + if (aoc::HardModeManager::shouldApplyMasterModeDamageMultiplier(acc)) { + aoc::HardModeManager::buffDamage(damage); } } void DamageManagerBase::tryApplyDamageRecovery(s32& damage) { - if (!uking::aoc2::instance()) { + if (!aoc::HardModeManager::instance()) { return; } - if (!uking::aoc2::instance()->checkFlag(uking::aoc2::Flag::EnableHardMode)) { + if (!aoc::HardModeManager::instance()->checkFlag(aoc::HardModeManager::Flag::EnableHardMode)) { return; } - if (!uking::aoc2::instance()->isHardModeChangeOn( - uking::aoc2::HardModeChange::EnableLifeRegen)) { + if (!aoc::HardModeManager::instance()->isHardModeChangeOn( + uking::aoc::HardModeManager::HardModeChange::EnableLifeRegen)) { return; } diff --git a/src/Game/UI/uiUtils.cpp b/src/Game/UI/uiUtils.cpp index d8655602..c26117fa 100644 --- a/src/Game/UI/uiUtils.cpp +++ b/src/Game/UI/uiUtils.cpp @@ -1,6 +1,6 @@ #include "Game/UI/uiUtils.h" #include "Game/Actor/actWeapon.h" -#include "Game/DLC/aoc2.h" +#include "Game/DLC/aocHardModeManager.h" #include "Game/Damage/dmgInfoManager.h" #include "Game/UI/uiPauseMenuDataMgr.h" #include "KingSystem/ActorSystem/actInfoCommon.h" @@ -29,9 +29,11 @@ int getItemHitPointRecover(const sead::SafeString& name) { int value = ksys::act::getCureItemHitPointRecover(iter); - if (aoc2::instance() && aoc2::instance()->checkFlag(aoc2::Flag::EnableHardMode) && - aoc2::instance()->isHardModeChangeOn(aoc2::HardModeChange::NerfHpRestore)) { - aoc2::instance()->nerfHpRestore(&value); + using HardModeMgr = uking::aoc::HardModeManager; + if (HardModeMgr::instance() && + HardModeMgr::instance()->checkFlag(HardModeMgr::Flag::EnableHardMode) && + HardModeMgr::instance()->isHardModeChangeOn(HardModeMgr::HardModeChange::NerfHpRestore)) { + HardModeMgr::instance()->nerfHpRestore(&value); } return value;