mirror of
https://github.com/zeldaret/botw
synced 2026-07-26 14:31:32 -04:00
aoc2: Implement more functions
This commit is contained in:
+46
-7
@@ -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
|
||||
|
||||
@@ -29,6 +29,14 @@ public:
|
||||
|
||||
void init(sead::Heap* heap);
|
||||
|
||||
void loadIsLastPlayHardModeFlag();
|
||||
void loadIsHardModeFlag();
|
||||
|
||||
void storeIsLastPlayHardModeFlag();
|
||||
void resetIsLastPlayHardModeFlag();
|
||||
|
||||
void calc();
|
||||
|
||||
void nerfHpRestore(f32* hp) const;
|
||||
void nerfHpRestore(s32* hp) const;
|
||||
void modifyEnemyNoticeDuration(f32* value) const;
|
||||
@@ -44,7 +52,10 @@ public:
|
||||
|
||||
void setHardModeChange(HardModeChange flag, bool on) { mHardModeChanges.changeBit(flag, on); }
|
||||
bool isHardModeChangeOn(HardModeChange flag) const { return mHardModeChanges.isOnBit(flag); }
|
||||
|
||||
void setFlag(Flag flag, bool on) { mFlags.changeBit(flag, on); }
|
||||
bool checkFlag(Flag flag) const { return mFlags.isOnBit(flag); }
|
||||
|
||||
f32 getMultiplier(MultiplierType type) const { return mMultipliers[type]; }
|
||||
|
||||
private:
|
||||
|
||||
Reference in New Issue
Block a user