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
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,

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

View File

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

View File

@ -1,11 +1,11 @@
#include "Game/DLC/aoc2.h"
#include "Game/DLC/aocHardModeManager.h"
#include <math/seadMathCalcCommon.h>
#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<void>(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

View File

@ -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

View File

@ -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;
}

View File

@ -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;