Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions mm/2s2h/BenGui/BenMenu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1384,6 +1384,11 @@ void BenMenu::AddEnhancements() {
.Options(CheckboxOptions().Tooltip(
"Fixes a bug that results in the wrong audio playing upon receiving a 4th piece of heart to "
"fill a new heart container."));
AddWidget(path, "Fix Deku Butler Shock Animation", WIDGET_CVAR_CHECKBOX)
.CVar("gEnhancements.Fixes.DekuButlerFixShockLoopAnimation")
.Options(CheckboxOptions().Tooltip(
"Fixes a bug where the Deku Butler loops the incorrect animation in the cutscene that plays after "
"freeing the Deku Princess."));

// Restorations
path = { "Enhancements", "Restorations", SECTION_COLUMN_1 };
Expand Down
17 changes: 17 additions & 0 deletions mm/2s2h/Enhancements/Fixes/FixDekuButlerShockLoopAnimation.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#include <libultraship/bridge/consolevariablebridge.h>
#include "2s2h/GameInteractor/GameInteractor.h"
#include "2s2h/ShipInit.hpp"

extern "C" {
#include "variables.h"
#include "functions.h"
}

#define CVAR_NAME "gEnhancements.Fixes.DekuButlerFixShockLoopAnimation"
#define CVAR CVarGetInteger(CVAR_NAME, 0)

void RegisterDekuButlerFixShockLoopAnimation() {
COND_VB_SHOULD(VB_DEKU_BUTLER_FIX_SHOCK_ANIM, CVAR, { *should = false; });
}

static RegisterShipInitFunc initFunc(RegisterDekuButlerFixShockLoopAnimation, { CVAR_NAME });
1 change: 1 addition & 0 deletions mm/2s2h/GameInteractor/GameInteractor.h
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,7 @@ typedef enum {
VB_FISH2_SPAWN_HEART_PIECE,
VB_PLAY_DEFEAT_CAPTAIN_SEQUENCE,
VB_CLAMP_ANIMATION_SPEED,
VB_DEKU_BUTLER_FIX_SHOCK_ANIM,
VB_LINK_DIVE_OVER_WATER,
VB_GIBDO_TRADE_SEQUENCE_SUFFICIENT_QUANTITY_PRESENTED,
VB_GIBDO_TRADE_SEQUENCE_ACCEPT_RED_POTION,
Expand Down
6 changes: 6 additions & 0 deletions mm/src/overlays/actors/ovl_En_Dno/z_en_dno.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#include "z_en_dno.h"
#include "overlays/actors/ovl_Bg_Crace_Movebg/z_bg_crace_movebg.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#include "2s2h/GameInteractor/GameInteractor.h"

#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \
Expand Down Expand Up @@ -961,6 +962,11 @@ void func_80A73408(EnDno* this, PlayState* play) {
break;

case 2:
if (!GameInteractor_Should(VB_DEKU_BUTLER_FIX_SHOCK_ANIM, true)) {
if (this->animIndex == EN_DNO_ANIM_SHOCK_LOOP) {
changeAnim = false;
}
}
nextAnimIndex = EN_DNO_ANIM_SHOCK_START;
break;

Expand Down
Loading