Add fixes for power crouch stab to the Enhancements menu (#874)

* Add optional fixes for power crouch stab

* Add line break in "Fix Megaton Hammer" tooltip

Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>

Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>
This commit is contained in:
lilDavid 2022-07-21 18:22:09 -05:00 committed by Kenix3
parent 1160fb2b15
commit 4a15e113f7
2 changed files with 34 additions and 6 deletions

View File

@ -1194,6 +1194,14 @@ namespace SohImGui {
Tooltip("Correctly centers the Navi text prompt on the HUD's C-Up button"); Tooltip("Correctly centers the Navi text prompt on the HUD's C-Up button");
EnhancementCheckbox("Fix Anubis fireballs", "gAnubisFix"); EnhancementCheckbox("Fix Anubis fireballs", "gAnubisFix");
Tooltip("Make Anubis fireballs do fire damage when reflected\nback at them with the Mirror Shield"); Tooltip("Make Anubis fireballs do fire damage when reflected\nback at them with the Mirror Shield");
EnhancementCheckbox("Fix Megaton Hammer crouch stab", "gCrouchStabHammerFix");
Tooltip("Make the Megaton Hammer's crouch stab able to destroy\nrocks without first swinging it normally");
if (CVar_GetS32("gCrouchStabHammerFix", 0) == 0) {
CVar_SetS32("gCrouchStabFix", 0);
} else {
EnhancementCheckbox("Remove power crouch stab", "gCrouchStabFix");
Tooltip("Make crouch stabbing always do the same damage as a regular slash");
}
ImGui::EndMenu(); ImGui::EndMenu();
} }

View File

@ -7847,15 +7847,35 @@ s32 func_8084285C(Player* this, f32 arg1, f32 arg2, f32 arg3) {
} }
s32 func_808428D8(Player* this, GlobalContext* globalCtx) { s32 func_808428D8(Player* this, GlobalContext* globalCtx) {
if (!Player_IsChildWithHylianShield(this) && Player_GetSwordHeld(this) && D_80853614) { if (Player_IsChildWithHylianShield(this) || !Player_GetSwordHeld(this) || !D_80853614) {
return 0;
}
func_80832264(globalCtx, this, &gPlayerAnim_002EC8); func_80832264(globalCtx, this, &gPlayerAnim_002EC8);
this->unk_84F = 1; this->unk_84F = 1;
this->swordAnimation = 0xC; this->swordAnimation = 0xC;
this->currentYaw = this->actor.shape.rot.y + this->unk_6BE; this->currentYaw = this->actor.shape.rot.y + this->unk_6BE;
if (!CVar_GetS32("gCrouchStabHammerFix", 0)) {
return 1; return 1;
} }
return 0; u32 swordId;
if (Player_HoldsBrokenKnife(this)) {
swordId = 1;
} else {
swordId = Player_GetSwordHeld(this) - 1;
}
if (swordId != 4 && !CVar_GetS32("gCrouchStabFix", 0)) { // 4 = Megaton Hammer
return 1;
}
u32 flags = D_80854488[swordId][0];
func_80837918(this, 0, flags);
func_80837918(this, 1, flags);
return 1;
} }
s32 func_80842964(Player* this, GlobalContext* globalCtx) { s32 func_80842964(Player* this, GlobalContext* globalCtx) {