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).
This commit is contained in:
Léo Lam 2021-04-20 12:02:24 +02:00
parent 3fc1957cc2
commit c95a79bbc1
No known key found for this signature in database
GPG Key ID: 0DF30F9081000741
6 changed files with 79 additions and 77 deletions

View File

@ -74445,33 +74445,33 @@
0x0000007100d6cb94,sub_7100D6CB94,92,_ZNK4sead9Delegate1IN5uking3aoc7ManagerEPN4ksys3gdt7Manager11ReinitEventEE5cloneEPNS_4HeapE 0x0000007100d6cb94,sub_7100D6CB94,92,_ZNK4sead9Delegate1IN5uking3aoc7ManagerEPN4ksys3gdt7Manager11ReinitEventEE5cloneEPNS_4HeapE
0x0000007100d6cbf0,j__ZdlPv_859,4,_ZN4sead15FixedSafeStringILi4EED0Ev 0x0000007100d6cbf0,j__ZdlPv_859,4,_ZN4sead15FixedSafeStringILi4EED0Ev
0x0000007100d6cbf4,_ZN4sead15FixedSafeStringILi153EEaSERKNS_14SafeStringBaseIcEE,240,_ZN4sead15FixedSafeStringILi4EEaSERKNS_14SafeStringBaseIcEE 0x0000007100d6cbf4,_ZN4sead15FixedSafeStringILi153EEaSERKNS_14SafeStringBaseIcEE,240,_ZN4sead15FixedSafeStringILi4EEaSERKNS_14SafeStringBaseIcEE
0x0000007100d6cce4,aoc2::Instance::dtor,92,_ZN5uking4aoc218SingletonDisposer_D2Ev 0x0000007100d6cce4,aoc2::Instance::dtor,92,_ZN5uking3aoc15HardModeManager18SingletonDisposer_D2Ev
0x0000007100d6cd40,aoc2::Instance::dtorDelete,100,_ZN5uking4aoc218SingletonDisposer_D0Ev 0x0000007100d6cd40,aoc2::Instance::dtorDelete,100,_ZN5uking3aoc15HardModeManager18SingletonDisposer_D0Ev
0x0000007100d6cda4,aoc2::createInstance,136,_ZN5uking4aoc214createInstanceEPN4sead4HeapE 0x0000007100d6cda4,aoc2::createInstance,136,_ZN5uking3aoc15HardModeManager14createInstanceEPN4sead4HeapE
0x0000007100d6ce2c,aoc2::ctor,524,_ZN5uking4aoc2C1Ev 0x0000007100d6ce2c,aoc2::ctor,524,_ZN5uking3aoc15HardModeManagerC1Ev
0x0000007100d6d038,aoc2::setAocHardModeEnabledFlag,96,_ZN5uking4aoc222setHardModeEnabledFlagEPN4ksys3gdt7Manager10ResetEventE 0x0000007100d6d038,aoc2::setAocHardModeEnabledFlag,96,_ZN5uking3aoc15HardModeManager22setHardModeEnabledFlagEPN4ksys3gdt7Manager10ResetEventE
0x0000007100d6d098,aoc2::initGameDataIters,212,_ZN5uking4aoc215initFlagHandlesEPN4ksys3gdt7Manager11ReinitEventE 0x0000007100d6d098,aoc2::initGameDataIters,212,_ZN5uking3aoc15HardModeManager15initFlagHandlesEPN4ksys3gdt7Manager11ReinitEventE
0x0000007100d6d16c,aoc2::dtor,228,_ZN5uking4aoc2D1Ev 0x0000007100d6d16c,aoc2::dtor,228,_ZN5uking3aoc15HardModeManagerD1Ev
0x0000007100d6d250,aoc2::dtorDelete,36,_ZN5uking4aoc2D0Ev 0x0000007100d6d250,aoc2::dtorDelete,36,_ZN5uking3aoc15HardModeManagerD0Ev
0x0000007100d6d274,aoc2::init,4,_ZN5uking4aoc24initEPN4sead4HeapE 0x0000007100d6d274,aoc2::init,4,_ZN5uking3aoc15HardModeManager4initEPN4sead4HeapE
0x0000007100d6d278,aoc2::init,228,_ZN5uking4aoc25init_Ev 0x0000007100d6d278,aoc2::init,228,_ZN5uking3aoc15HardModeManager5init_Ev
0x0000007100d6d35c,aoc2::nerfCooking,56,_ZNK5uking4aoc213nerfHpRestoreEPf 0x0000007100d6d35c,aoc2::nerfCooking,56,_ZNK5uking3aoc15HardModeManager13nerfHpRestoreEPf
0x0000007100d6d394,aoc2::nerfCookCureItemHitPointRecover,64,_ZNK5uking4aoc213nerfHpRestoreEPi 0x0000007100d6d394,aoc2::nerfCookCureItemHitPointRecover,64,_ZNK5uking3aoc15HardModeManager13nerfHpRestoreEPi
0x0000007100d6d3d4,aoc2::modifyEnemyNoticeDuration,60,_ZNK5uking4aoc225modifyEnemyNoticeDurationEPf 0x0000007100d6d3d4,aoc2::modifyEnemyNoticeDuration,60,_ZNK5uking3aoc15HardModeManager25modifyEnemyNoticeDurationEPf
0x0000007100d6d410,sub_7100D6D410,304, 0x0000007100d6d410,sub_7100D6D410,304,
0x0000007100d6d540,aoc2::shouldApplyMasterModeDamageMultiplier,6164,_ZN5uking4aoc237shouldApplyMasterModeDamageMultiplierERKN4ksys3act20ActorConstDataAccessE 0x0000007100d6d540,aoc2::shouldApplyMasterModeDamageMultiplier,6164,_ZN5uking3aoc15HardModeManager37shouldApplyMasterModeDamageMultiplierERKN4ksys3act20ActorConstDataAccessE
0x0000007100d6ed54,aoc2::buffDamage,40,_ZN5uking4aoc210buffDamageERi 0x0000007100d6ed54,aoc2::buffDamage,40,_ZN5uking3aoc15HardModeManager10buffDamageERi
0x0000007100d6ed7c,aoc2::initHardModeFlag,172,_ZN5uking4aoc226loadIsLastPlayHardModeFlagEv 0x0000007100d6ed7c,aoc2::initHardModeFlag,172,_ZN5uking3aoc15HardModeManager26loadIsLastPlayHardModeFlagEv
0x0000007100d6ee28,aoc2::setAocFlag2,172,_ZN5uking4aoc218loadIsHardModeFlagEv 0x0000007100d6ee28,aoc2::setAocFlag2,172,_ZN5uking3aoc15HardModeManager18loadIsHardModeFlagEv
0x0000007100d6eed4,aoc2::setIsLastPlayHardMode,60,_ZN5uking4aoc227storeIsLastPlayHardModeFlagEv 0x0000007100d6eed4,aoc2::setIsLastPlayHardMode,60,_ZN5uking3aoc15HardModeManager27storeIsLastPlayHardModeFlagEv
0x0000007100d6ef10,aoc2::setIsLastPlayHardModeToFalse,76,_ZN5uking4aoc227resetIsLastPlayHardModeFlagEv 0x0000007100d6ef10,aoc2::setIsLastPlayHardModeToFalse,76,_ZN5uking3aoc15HardModeManager27resetIsLastPlayHardModeFlagEv
0x0000007100d6ef5c,aoc2::isTestOfStrengthDungeon,396,_ZNK5uking4aoc222isTestOfStrengthShrineEv 0x0000007100d6ef5c,aoc2::isTestOfStrengthDungeon,396,_ZNK5uking3aoc15HardModeManager22isTestOfStrengthShrineEv
0x0000007100d6f0e8,aoc2::calc,20,_ZN5uking4aoc24calcEv 0x0000007100d6f0e8,aoc2::calc,20,_ZN5uking3aoc15HardModeManager4calcEv
0x0000007100d6f0fc,aoc2::rankUpEnemy,7780,_ZN5uking4aoc211rankUpEnemyERKN4sead14SafeStringBaseIcEERKN4ksys3map6ObjectEPPKc 0x0000007100d6f0fc,aoc2::rankUpEnemy,7780,_ZN5uking3aoc15HardModeManager11rankUpEnemyERKN4sead14SafeStringBaseIcEERKN4ksys3map6ObjectEPPKc
0x0000007100d70f60,sub_7100D70F60,48,_ZN4sead9Delegate1IN5uking4aoc2EPN4ksys3gdt7Manager10ResetEventEE6invokeES7_ 0x0000007100d70f60,sub_7100D70F60,48,_ZN4sead9Delegate1IN5uking3aoc15HardModeManagerEPN4ksys3gdt7Manager10ResetEventEE6invokeES8_
0x0000007100d70f90,sub_7100D70F90,92,_ZNK4sead9Delegate1IN5uking4aoc2EPN4ksys3gdt7Manager10ResetEventEE5cloneEPNS_4HeapE 0x0000007100d70f90,sub_7100D70F90,92,_ZNK4sead9Delegate1IN5uking3aoc15HardModeManagerEPN4ksys3gdt7Manager10ResetEventEE5cloneEPNS_4HeapE
0x0000007100d70fec,sub_7100D70FEC,48,_ZN4sead9Delegate1IN5uking4aoc2EPN4ksys3gdt7Manager11ReinitEventEE6invokeES7_ 0x0000007100d70fec,sub_7100D70FEC,48,_ZN4sead9Delegate1IN5uking3aoc15HardModeManagerEPN4ksys3gdt7Manager11ReinitEventEE6invokeES8_
0x0000007100d7101c,sub_7100D7101C,92,_ZNK4sead9Delegate1IN5uking4aoc2EPN4ksys3gdt7Manager11ReinitEventEE5cloneEPNS_4HeapE 0x0000007100d7101c,sub_7100D7101C,92,_ZNK4sead9Delegate1IN5uking3aoc15HardModeManagerEPN4ksys3gdt7Manager11ReinitEventEE5cloneEPNS_4HeapE
0x0000007100d71078,sub_7100D71078,248,_GLOBAL__sub_I_aoc2.cpp 0x0000007100d71078,sub_7100D71078,248,_GLOBAL__sub_I_aoc2.cpp
0x0000007100d71170,AttClient::ctor,216, 0x0000007100d71170,AttClient::ctor,216,
0x0000007100d71248,sub_7100D71248,48, 0x0000007100d71248,sub_7100D71248,48,

Can't render this file because it is too large.

View File

@ -1,6 +1,6 @@
target_sources(uking PRIVATE target_sources(uking PRIVATE
aoc2.cpp aocHardModeManager.cpp
aoc2.h aocHardModeManager.h
aocManager.cpp aocManager.cpp
aocManager.h aocManager.h
) )

View File

@ -1,11 +1,11 @@
#include "Game/DLC/aoc2.h" #include "Game/DLC/aocHardModeManager.h"
#include <math/seadMathCalcCommon.h> #include <math/seadMathCalcCommon.h>
#include "KingSystem/ActorSystem/actTag.h" #include "KingSystem/ActorSystem/actTag.h"
#include "KingSystem/Utils/InitTimeInfo.h" #include "KingSystem/Utils/InitTimeInfo.h"
namespace uking { namespace uking::aoc {
SEAD_SINGLETON_DISPOSER_IMPL(aoc2) SEAD_SINGLETON_DISPOSER_IMPL(HardModeManager)
namespace { namespace {
struct aoc2StaticData { struct aoc2StaticData {
@ -19,9 +19,9 @@ aoc2StaticData sData;
sead::FixedSafeString<64> sStr{""}; sead::FixedSafeString<64> sStr{""};
} // namespace } // namespace
aoc2::aoc2() HardModeManager::HardModeManager()
: mGdtResetSlot(this, &aoc2::setHardModeEnabledFlag), : mGdtResetSlot(this, &HardModeManager::setHardModeEnabledFlag),
mGdtReinitSlot(this, &aoc2::initFlagHandles) { mGdtReinitSlot(this, &HardModeManager::initFlagHandles) {
mMultipliers.fill(0.5); mMultipliers.fill(0.5);
setHardModeChange(HardModeChange::IsLastPlayHardMode, true); setHardModeChange(HardModeChange::IsLastPlayHardMode, true);
@ -33,19 +33,19 @@ aoc2::aoc2()
setHardModeChange(HardModeChange::ApplyDamageMultiplier, true); 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); ksys::gdt::Manager::instance()->setBool(true, mAoCHardModeEnabledFlag);
mGdtResetSlot.release(); mGdtResetSlot.release();
} }
void aoc2::initFlagHandles(ksys::gdt::Manager::ReinitEvent*) { void HardModeManager::initFlagHandles(ksys::gdt::Manager::ReinitEvent*) {
auto* gdm = ksys::gdt::Manager::instance(); auto* gdm = ksys::gdt::Manager::instance();
mHardModeHighScoreFlag = gdm->getS32Handle(sData.flag_name_HardMode_HighScore); mHardModeHighScoreFlag = gdm->getS32Handle(sData.flag_name_HardMode_HighScore);
mAoCHardModeEnabledFlag = gdm->getBoolHandle(sData.flag_name_AoC_HardMode_Enabled); mAoCHardModeEnabledFlag = gdm->getBoolHandle(sData.flag_name_AoC_HardMode_Enabled);
mIsLastPlayHardModeFlag = gdm->getBoolHandle(sData.flag_name_IsLastPlayHardMode); mIsLastPlayHardModeFlag = gdm->getBoolHandle(sData.flag_name_IsLastPlayHardMode);
} }
aoc2::~aoc2() { HardModeManager::~HardModeManager() {
mFileHandle.requestUnload2(); mFileHandle.requestUnload2();
if (_120) { if (_120) {
// TODO: use the normal operator delete once we figure out what _120 is // 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_(); init_();
} }
void aoc2::init_() { void HardModeManager::init_() {
initFlagHandles(); initFlagHandles();
ksys::gdt::Manager::instance()->addReinitCallback(mGdtReinitSlot); 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); *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); *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); *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()) if (!accessor.hasProc())
return false; return false;
@ -84,7 +85,7 @@ bool aoc2::shouldApplyMasterModeDamageMultiplier(const ksys::act::ActorConstData
return shouldApplyMasterModeDamageMultiplier(parent); return shouldApplyMasterModeDamageMultiplier(parent);
if (accessor.hasTag(ksys::act::tags::IsMasterModeDamageMultiplierActor) || if (accessor.hasTag(ksys::act::tags::IsMasterModeDamageMultiplierActor) ||
(aoc2::instance() && aoc2::instance()->isTestOfStrengthShrine() && (HardModeManager::instance() && HardModeManager::instance()->isTestOfStrengthShrine() &&
accessor.hasTag(ksys::act::tags::AncientGuardTarget))) { accessor.hasTag(ksys::act::tags::AncientGuardTarget))) {
return true; return true;
} }
@ -115,14 +116,14 @@ bool aoc2::shouldApplyMasterModeDamageMultiplier(const ksys::act::ActorConstData
return false; return false;
} }
void aoc2::buffDamage(s32& damage) { void HardModeManager::buffDamage(s32& damage) {
damage = damage * 1.5f; damage = damage * 1.5f;
if (damage == 1) { if (damage == 1) {
damage = 2; damage = 2;
} }
} }
void aoc2::loadIsLastPlayHardModeFlag() { void HardModeManager::loadIsLastPlayHardModeFlag() {
bool value{}; bool value{};
ksys::gdt::Manager::instance()->getBool(mIsLastPlayHardModeFlag, &value); ksys::gdt::Manager::instance()->getBool(mIsLastPlayHardModeFlag, &value);
const bool x = value; const bool x = value;
@ -132,7 +133,7 @@ void aoc2::loadIsLastPlayHardModeFlag() {
setFlag(Flag::EnableHardMode, x); setFlag(Flag::EnableHardMode, x);
} }
void aoc2::loadIsHardModeFlag() { void HardModeManager::loadIsHardModeFlag() {
bool value{}; bool value{};
ksys::gdt::Manager::instance()->getBool(mAoCHardModeEnabledFlag, &value); ksys::gdt::Manager::instance()->getBool(mAoCHardModeEnabledFlag, &value);
const bool x = value; const bool x = value;
@ -142,16 +143,16 @@ void aoc2::loadIsHardModeFlag() {
setFlag(Flag::EnableHardMode, x); setFlag(Flag::EnableHardMode, x);
} }
void aoc2::storeIsLastPlayHardModeFlag() { void HardModeManager::storeIsLastPlayHardModeFlag() {
ksys::gdt::Manager::instance()->setBool(checkFlag(Flag::EnableHardMode), ksys::gdt::Manager::instance()->setBool(checkFlag(Flag::EnableHardMode),
mIsLastPlayHardModeFlag); mIsLastPlayHardModeFlag);
} }
void aoc2::resetIsLastPlayHardModeFlag() { void HardModeManager::resetIsLastPlayHardModeFlag() {
ksys::gdt::Manager::instance()->setBool(false, "IsLastPlayHardMode"); ksys::gdt::Manager::instance()->setBool(false, "IsLastPlayHardMode");
} }
bool aoc2::isTestOfStrengthShrine() const { bool HardModeManager::isTestOfStrengthShrine() const {
if (mMapType != "CDungeon") if (mMapType != "CDungeon")
return false; return false;
@ -166,13 +167,13 @@ bool aoc2::isTestOfStrengthShrine() const {
return false; return false;
} }
void aoc2::calc() { void HardModeManager::calc() {
volatile u32 unused = 0; volatile u32 unused = 0;
static_cast<void>(unused); static_cast<void>(unused);
} }
bool aoc2::rankUpEnemy(const sead::SafeString& actor_name, const ksys::map::Object& obj, bool HardModeManager::rankUpEnemy(const sead::SafeString& actor_name, const ksys::map::Object& obj,
const char** new_name) { const char** new_name) {
if (obj.getFlags().isOn(ksys::map::Object::Flag::HasUniqueName) || if (obj.getFlags().isOn(ksys::map::Object::Flag::HasUniqueName) ||
obj.getHardModeFlags().isOn(ksys::map::Object::HardModeFlag::DisableRankup)) { obj.getHardModeFlags().isOn(ksys::map::Object::HardModeFlag::DisableRankup)) {
return false; return false;
@ -309,4 +310,4 @@ bool aoc2::rankUpEnemy(const sead::SafeString& actor_name, const ksys::map::Obje
return true; return true;
} }
} // namespace uking } // namespace uking::aoc

View File

@ -10,14 +10,13 @@
#include "KingSystem/Resource/resHandle.h" #include "KingSystem/Resource/resHandle.h"
#include "KingSystem/Utils/Types.h" #include "KingSystem/Utils/Types.h"
namespace uking { namespace uking::aoc {
// FIXME: incomplete class HardModeManager final {
class aoc2 final { SEAD_SINGLETON_DISPOSER(HardModeManager)
SEAD_SINGLETON_DISPOSER(aoc2)
aoc2(); HardModeManager();
virtual ~aoc2(); virtual ~HardModeManager();
public: public:
SEAD_ENUM(HardModeChange, IsLastPlayHardMode = 0, NerfHpRestore = 1, _2 = 2, SEAD_ENUM(HardModeChange, IsLastPlayHardMode = 0, NerfHpRestore = 1, _2 = 2,
@ -76,6 +75,6 @@ private:
sead::FixedSafeString<256> mMapType; sead::FixedSafeString<256> mMapType;
sead::FixedSafeString<256> mMapName; sead::FixedSafeString<256> mMapName;
}; };
KSYS_CHECK_SIZE_NX150(aoc2, 0x3b8); KSYS_CHECK_SIZE_NX150(HardModeManager, 0x3b8);
} // namespace uking } // namespace uking::aoc

View File

@ -1,5 +1,5 @@
#include "Game/Damage/dmgDamageManagerBase.h" #include "Game/Damage/dmgDamageManagerBase.h"
#include "Game/DLC/aoc2.h" #include "Game/DLC/aocHardModeManager.h"
#include "Game/Damage/dmgDamageCallback.h" #include "Game/Damage/dmgDamageCallback.h"
#include "KingSystem/ActorSystem/actActor.h" #include "KingSystem/ActorSystem/actActor.h"
#include "KingSystem/ActorSystem/actActorConstDataAccess.h" #include "KingSystem/ActorSystem/actActorConstDataAccess.h"
@ -139,37 +139,37 @@ bool DamageManagerBase::applyDamage(s32& life) {
} }
void DamageManagerBase::tryBuffDamage(s32& damage) { void DamageManagerBase::tryBuffDamage(s32& damage) {
if (!uking::aoc2::instance()) { if (!aoc::HardModeManager::instance()) {
return; return;
} }
if (!uking::aoc2::instance()->checkFlag(uking::aoc2::Flag::EnableHardMode)) { if (!aoc::HardModeManager::instance()->checkFlag(aoc::HardModeManager::Flag::EnableHardMode)) {
return; return;
} }
if (!uking::aoc2::instance()->isHardModeChangeOn( if (!aoc::HardModeManager::instance()->isHardModeChangeOn(
uking::aoc2::HardModeChange::ApplyDamageMultiplier)) { aoc::HardModeManager::HardModeChange::ApplyDamageMultiplier)) {
return; return;
} }
ksys::act::ActorConstDataAccess acc; ksys::act::ActorConstDataAccess acc;
ksys::act::acquireActor(getAttacker(), &acc); ksys::act::acquireActor(getAttacker(), &acc);
if (uking::aoc2::shouldApplyMasterModeDamageMultiplier(acc)) { if (aoc::HardModeManager::shouldApplyMasterModeDamageMultiplier(acc)) {
uking::aoc2::buffDamage(damage); aoc::HardModeManager::buffDamage(damage);
} }
} }
void DamageManagerBase::tryApplyDamageRecovery(s32& damage) { void DamageManagerBase::tryApplyDamageRecovery(s32& damage) {
if (!uking::aoc2::instance()) { if (!aoc::HardModeManager::instance()) {
return; return;
} }
if (!uking::aoc2::instance()->checkFlag(uking::aoc2::Flag::EnableHardMode)) { if (!aoc::HardModeManager::instance()->checkFlag(aoc::HardModeManager::Flag::EnableHardMode)) {
return; return;
} }
if (!uking::aoc2::instance()->isHardModeChangeOn( if (!aoc::HardModeManager::instance()->isHardModeChangeOn(
uking::aoc2::HardModeChange::EnableLifeRegen)) { uking::aoc::HardModeManager::HardModeChange::EnableLifeRegen)) {
return; return;
} }

View File

@ -1,6 +1,6 @@
#include "Game/UI/uiUtils.h" #include "Game/UI/uiUtils.h"
#include "Game/Actor/actWeapon.h" #include "Game/Actor/actWeapon.h"
#include "Game/DLC/aoc2.h" #include "Game/DLC/aocHardModeManager.h"
#include "Game/Damage/dmgInfoManager.h" #include "Game/Damage/dmgInfoManager.h"
#include "Game/UI/uiPauseMenuDataMgr.h" #include "Game/UI/uiPauseMenuDataMgr.h"
#include "KingSystem/ActorSystem/actInfoCommon.h" #include "KingSystem/ActorSystem/actInfoCommon.h"
@ -29,9 +29,11 @@ int getItemHitPointRecover(const sead::SafeString& name) {
int value = ksys::act::getCureItemHitPointRecover(iter); int value = ksys::act::getCureItemHitPointRecover(iter);
if (aoc2::instance() && aoc2::instance()->checkFlag(aoc2::Flag::EnableHardMode) && using HardModeMgr = uking::aoc::HardModeManager;
aoc2::instance()->isHardModeChangeOn(aoc2::HardModeChange::NerfHpRestore)) { if (HardModeMgr::instance() &&
aoc2::instance()->nerfHpRestore(&value); HardModeMgr::instance()->checkFlag(HardModeMgr::Flag::EnableHardMode) &&
HardModeMgr::instance()->isHardModeChangeOn(HardModeMgr::HardModeChange::NerfHpRestore)) {
HardModeMgr::instance()->nerfHpRestore(&value);
} }
return value; return value;