diff options
| author | Léo Lam <leo@leolam.fr> | 2020-11-07 19:06:25 +0100 |
|---|---|---|
| committer | Léo Lam <leo@leolam.fr> | 2020-11-07 23:28:51 +0100 |
| commit | 3bd9d7a599a54519ca766f2e7ae476d35d13f67a (patch) | |
| tree | 8b64cb73ee7a4327e882f4208987fa3b90c27c59 /src/Game/DLC/aoc2.cpp | |
| parent | 3f11fdb6d20e2a52581e3f2d829516efe803eb73 (diff) | |
aoc2: Implement more functions
Diffstat (limited to 'src/Game/DLC/aoc2.cpp')
| -rw-r--r-- | src/Game/DLC/aoc2.cpp | 53 |
1 files changed, 46 insertions, 7 deletions
diff --git a/src/Game/DLC/aoc2.cpp b/src/Game/DLC/aoc2.cpp index 41473d20..59076d34 100644 --- a/src/Game/DLC/aoc2.cpp +++ b/src/Game/DLC/aoc2.cpp @@ -37,6 +37,11 @@ aoc2::aoc2() setHardModeChange(HardModeChange::ApplyDamageMultiplier, true); } +void aoc2::setHardModeEnabledFlag(ksys::gdt::Manager::ResetEvent*) { + ksys::gdt::Manager::instance()->setBool(true, mAoCHardModeEnabledFlag); + mGdtResetSlot.release(); +} + void aoc2::initFlagHandles(ksys::gdt::Manager::ReinitEvent*) { auto* gdm = ksys::gdt::Manager::instance(); mHardModeHighScoreFlag = gdm->getS32Handle(sData.flag_name_HardMode_HighScore); @@ -114,6 +119,42 @@ bool aoc2::shouldApplyMasterModeDamageMultiplier(const ksys::act::ActorConstData return false; } +void aoc2::buffDamage(s32& damage) { + damage = damage * 1.5f; + if (damage == 1) { + damage = 2; + } +} + +void aoc2::loadIsLastPlayHardModeFlag() { + bool value{}; + ksys::gdt::Manager::instance()->getBool(mIsLastPlayHardModeFlag, &value); + const bool x = value; +#ifdef MATCHING_HACK_NX_CLANG + asm(""); +#endif + setFlag(Flag::EnableHardMode, x); +} + +void aoc2::loadIsHardModeFlag() { + bool value{}; + ksys::gdt::Manager::instance()->getBool(mAoCHardModeEnabledFlag, &value); + const bool x = value; +#ifdef MATCHING_HACK_NX_CLANG + asm(""); +#endif + setFlag(Flag::EnableHardMode, x); +} + +void aoc2::storeIsLastPlayHardModeFlag() { + ksys::gdt::Manager::instance()->setBool(checkFlag(Flag::EnableHardMode), + mIsLastPlayHardModeFlag); +} + +void aoc2::resetIsLastPlayHardModeFlag() { + ksys::gdt::Manager::instance()->setBool(false, "IsLastPlayHardMode"); +} + bool aoc2::isTestOfStrengthShrine() const { if (mMapType != "CDungeon") return false; @@ -129,6 +170,11 @@ bool aoc2::isTestOfStrengthShrine() const { return false; } +void aoc2::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) { if (obj.getFlags().isOn(ksys::map::Object::Flag::HasUniqueName) || @@ -267,11 +313,4 @@ bool aoc2::rankUpEnemy(const sead::SafeString& actor_name, const ksys::map::Obje return true; } -void aoc2::buffDamage(s32& damage) { - damage = damage * 1.5f; - if (damage == 1) { - damage = 2; - } -} - } // namespace uking |
