mirror of https://github.com/zeldaret/botw.git
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:
parent
3fc1957cc2
commit
c95a79bbc1
|
@ -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.
|
|
@ -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
|
||||||
)
|
)
|
||||||
|
|
|
@ -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
|
|
@ -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
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue