diff options
| author | Eblo <7004497+Eblo@users.noreply.github.com> | 2025-12-30 09:22:51 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-30 09:22:51 -0500 |
| commit | 2df11444a25a6199b570e36032b6a1c2fe552dc4 (patch) | |
| tree | 05660ff911945ff78499f423433c2a8cf830f618 | |
| parent | ffe0a173fb8d9fb0226a80a04cb2dc5a2303a989 (diff) | |
Only apply fast push to skateblock, not pull (#1418)
| -rw-r--r-- | mm/2s2h/Enhancements/Player/FasterPushAndPull.cpp | 8 | ||||
| -rw-r--r-- | mm/src/overlays/actors/ovl_Obj_Skateblock/z_obj_skateblock.c | 7 |
2 files changed, 10 insertions, 5 deletions
diff --git a/mm/2s2h/Enhancements/Player/FasterPushAndPull.cpp b/mm/2s2h/Enhancements/Player/FasterPushAndPull.cpp index 84bc6c4ff..323bc4bb3 100644 --- a/mm/2s2h/Enhancements/Player/FasterPushAndPull.cpp +++ b/mm/2s2h/Enhancements/Player/FasterPushAndPull.cpp @@ -6,6 +6,7 @@ extern "C" { #include "overlays/actors/ovl_Bg_Dblue_Movebg/z_bg_dblue_movebg.h" #include "overlays/actors/ovl_Bg_Ikana_Block/z_bg_ikana_block.h" #include "overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.h" +#include "overlays/actors/ovl_Obj_Skateblock/z_obj_skateblock.h" } #define CVAR_NAME "gEnhancements.Player.FasterPushAndPull" @@ -34,7 +35,12 @@ void RegisterFasterPushAndPull() { *should = false; }); - COND_VB_SHOULD(VB_SKATE_BLOCK_BEGIN_MOVE, CVAR, { *should = true; }); + COND_VB_SHOULD(VB_SKATE_BLOCK_BEGIN_MOVE, CVAR, { + // These blocks can only be pushed, not pulled + ObjSkateblock* objSkateblock = va_arg(args, ObjSkateblock*); + s32 directionIndex = va_arg(args, s32); + *should = objSkateblock->unk_172[directionIndex] > 0; + }); COND_VB_SHOULD(VB_BLOCK_BEGIN_MOVE, CVAR, { *should = true; }); diff --git a/mm/src/overlays/actors/ovl_Obj_Skateblock/z_obj_skateblock.c b/mm/src/overlays/actors/ovl_Obj_Skateblock/z_obj_skateblock.c index a37a4c3ba..0c7c558b4 100644 --- a/mm/src/overlays/actors/ovl_Obj_Skateblock/z_obj_skateblock.c +++ b/mm/src/overlays/actors/ovl_Obj_Skateblock/z_obj_skateblock.c @@ -529,10 +529,9 @@ void func_80A22334(ObjSkateblock* this, PlayState* play) { if (sp2C == -1) { sp30 = false; - } else if (GameInteractor_Should(VB_SKATE_BLOCK_BEGIN_MOVE, - !(this->unk_1C1 & 2) && (this->unk_172[sp2C] > 10) && (D_80A22A10 == 0) && - !func_80A216D4(this, play, 2.0f, &sp20) && !Player_InCsMode(play), - this)) { + } else if (!(this->unk_1C1 & 2) && + GameInteractor_Should(VB_SKATE_BLOCK_BEGIN_MOVE, (this->unk_172[sp2C] > 10), this, sp2C) && + (D_80A22A10 == 0) && !func_80A216D4(this, play, 2.0f, &sp20) && !Player_InCsMode(play)) { func_80A21C88(this, sp2C); func_80A2244C(this); sp30 = false; |
