summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEblo <7004497+Eblo@users.noreply.github.com>2025-12-30 09:22:51 -0500
committerGitHub <noreply@github.com>2025-12-30 09:22:51 -0500
commit2df11444a25a6199b570e36032b6a1c2fe552dc4 (patch)
tree05660ff911945ff78499f423433c2a8cf830f618
parentffe0a173fb8d9fb0226a80a04cb2dc5a2303a989 (diff)
Only apply fast push to skateblock, not pull (#1418)
-rw-r--r--mm/2s2h/Enhancements/Player/FasterPushAndPull.cpp8
-rw-r--r--mm/src/overlays/actors/ovl_Obj_Skateblock/z_obj_skateblock.c7
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;