diff --git a/mm/2s2h/BenGui/BenMenuBar.cpp b/mm/2s2h/BenGui/BenMenuBar.cpp index 264f04744..849364462 100644 --- a/mm/2s2h/BenGui/BenMenuBar.cpp +++ b/mm/2s2h/BenGui/BenMenuBar.cpp @@ -591,10 +591,11 @@ void DrawEnhancementsMenu() { } ImGui::EndMenu(); } - if (UIWidgets::BeginMenu("Player Movement")) { - UIWidgets::CVarSliderInt("Climb speed", "gEnhancements.PlayerMovement.ClimbSpeed", 1, 5, 1, + if (UIWidgets::BeginMenu("Player")) { + UIWidgets::CVarSliderInt("Climb speed", "gEnhancements.Player.ClimbSpeed", 1, 5, 1, { .tooltip = "Increases the speed at which Link climbs vines and ladders." }); - + UIWidgets::CVarCheckbox("Instant Putaway", "gEnhancements.Player.InstantPutaway", + { .tooltip = "Allows Link to instantly puts away held item without waiting." }); ImGui::EndMenu(); } diff --git a/mm/2s2h/Enhancements/Enhancements.cpp b/mm/2s2h/Enhancements/Enhancements.cpp index 0b2d2f794..c15ba3a85 100644 --- a/mm/2s2h/Enhancements/Enhancements.cpp +++ b/mm/2s2h/Enhancements/Enhancements.cpp @@ -38,6 +38,10 @@ void InitEnhancements() { // Minigames RegisterAlwaysWinDoggyRace(); + // Player + RegisterClimbSpeed(); + RegisterInstantPutaway(); + // Songs RegisterEnableSunsSong(); @@ -53,7 +57,4 @@ void InitEnhancements() { // Modes RegisterPlayAsKafei(); RegisterTimeMovesWhenYouMove(); - - // Player Movement - RegisterClimbSpeed(); } diff --git a/mm/2s2h/Enhancements/Enhancements.h b/mm/2s2h/Enhancements/Enhancements.h index 5ad8cfb4a..f3d7c5d8d 100644 --- a/mm/2s2h/Enhancements/Enhancements.h +++ b/mm/2s2h/Enhancements/Enhancements.h @@ -23,7 +23,7 @@ #include "Restorations/SideRoll.h" #include "Restorations/TatlISG.h" #include "Graphics/PlayAsKafei.h" -#include "PlayerMovement/ClimbSpeed.h" +#include "Player/Player.h" #include "Songs/EnableSunsSong.h" #include "Saving/SavingEnhancements.h" #include "Graphics/DisableBlackBars.h" diff --git a/mm/2s2h/Enhancements/GameInteractor/GameInteractor.h b/mm/2s2h/Enhancements/GameInteractor/GameInteractor.h index fe10c1f29..8da2e5ea6 100644 --- a/mm/2s2h/Enhancements/GameInteractor/GameInteractor.h +++ b/mm/2s2h/Enhancements/GameInteractor/GameInteractor.h @@ -42,6 +42,7 @@ typedef enum { GI_VB_PATCH_SIDEROLL, GI_VB_TATL_CONVERSATION_AVAILABLE, GI_VB_PREVENT_MASK_TRANSFORMATION_CS, + GI_VB_RESET_PUTAWAY_TIMER, GI_VB_SET_CLIMB_SPEED, GI_VB_PREVENT_CLOCK_DISPLAY, GI_VB_SONG_AVAILABLE_TO_PLAY, diff --git a/mm/2s2h/Enhancements/PlayerMovement/ClimbSpeed.cpp b/mm/2s2h/Enhancements/Player/ClimbSpeed.cpp similarity index 58% rename from mm/2s2h/Enhancements/PlayerMovement/ClimbSpeed.cpp rename to mm/2s2h/Enhancements/Player/ClimbSpeed.cpp index 60296c423..1a6c624d1 100644 --- a/mm/2s2h/Enhancements/PlayerMovement/ClimbSpeed.cpp +++ b/mm/2s2h/Enhancements/Player/ClimbSpeed.cpp @@ -3,9 +3,9 @@ void RegisterClimbSpeed() { REGISTER_VB_SHOULD(GI_VB_SET_CLIMB_SPEED, { - if (CVarGetInteger("gEnhancements.PlayerMovement.ClimbSpeed", 1) > 1) { + if (CVarGetInteger("gEnhancements.Player.ClimbSpeed", 1) > 1) { f32* speed = static_cast(opt); - *speed *= CVarGetInteger("gEnhancements.PlayerMovement.ClimbSpeed", 1); + *speed *= CVarGetInteger("gEnhancements.Player.ClimbSpeed", 1); } }); } diff --git a/mm/2s2h/Enhancements/Player/InstantPutaway.cpp b/mm/2s2h/Enhancements/Player/InstantPutaway.cpp new file mode 100644 index 000000000..24530aca7 --- /dev/null +++ b/mm/2s2h/Enhancements/Player/InstantPutaway.cpp @@ -0,0 +1,10 @@ +#include +#include "Enhancements/GameInteractor/GameInteractor.h" + +void RegisterInstantPutaway() { + REGISTER_VB_SHOULD(GI_VB_RESET_PUTAWAY_TIMER, { + if (CVarGetInteger("gEnhancements.Player.InstantPutaway", 0)) { + *should = false; + } + }); +} diff --git a/mm/2s2h/Enhancements/Player/Player.h b/mm/2s2h/Enhancements/Player/Player.h new file mode 100644 index 000000000..c2a23827f --- /dev/null +++ b/mm/2s2h/Enhancements/Player/Player.h @@ -0,0 +1,7 @@ +#ifndef PLAYER_H +#define PLAYER_H + +void RegisterClimbSpeed(); +void RegisterInstantPutaway(); + +#endif // PLAYER_H diff --git a/mm/2s2h/Enhancements/PlayerMovement/ClimbSpeed.h b/mm/2s2h/Enhancements/PlayerMovement/ClimbSpeed.h deleted file mode 100644 index b0596a4f9..000000000 --- a/mm/2s2h/Enhancements/PlayerMovement/ClimbSpeed.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef PLAYER_MOVEMENT_CLIMB_SPEED_H -#define PLAYER_MOVEMENT_CLIMB_SPEED_H - -void RegisterClimbSpeed(); - -#endif // PLAYER_MOVEMENT_CLIMB_SPEED_H diff --git a/mm/src/overlays/actors/ovl_player_actor/z_player.c b/mm/src/overlays/actors/ovl_player_actor/z_player.c index 7dfdc0419..f3a173303 100644 --- a/mm/src/overlays/actors/ovl_player_actor/z_player.c +++ b/mm/src/overlays/actors/ovl_player_actor/z_player.c @@ -11247,7 +11247,9 @@ void Player_SetDoAction(PlayState* play, Player* this) { } if (doActionA != DO_ACTION_PUTAWAY) { - this->putAwayCountdown = 20; + if (GameInteractor_Should(GI_VB_RESET_PUTAWAY_TIMER, true, NULL)) { + this->putAwayCountdown = 20; + } } else if (this->putAwayCountdown != 0) { doActionA = DO_ACTION_NONE; this->putAwayCountdown--;