summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2026-03-18 02:57:37 -0700
committerGitHub <noreply@github.com>2026-03-18 02:57:37 -0700
commitbc7503cb70fff0dfcea72c4df0ddc3e492e6b160 (patch)
tree83387b95f5df062b723fa4c8bb7a771ca867a384
parentf64015ea383cc3ba93a90918ac3dd1d2f66e1e17 (diff)
fix push pull callback UB in other compilers (#3134)
-rw-r--r--include/d/actor/d_a_obj_iceblock.h2
-rw-r--r--src/d/actor/d_a_door_push.cpp8
-rw-r--r--src/d/actor/d_a_obj_iceblock.cpp3
3 files changed, 9 insertions, 4 deletions
diff --git a/include/d/actor/d_a_obj_iceblock.h b/include/d/actor/d_a_obj_iceblock.h
index 42b7b41c7e..ba74c43e0e 100644
--- a/include/d/actor/d_a_obj_iceblock.h
+++ b/include/d/actor/d_a_obj_iceblock.h
@@ -37,7 +37,7 @@ public:
ACTION_DEAD_e,
};
- static void PPCallBack(fopAc_ac_c*, fopAc_ac_c*, s16, dBgW_Base::PushPullLabel);
+ static fopAc_ac_c* PPCallBack(fopAc_ac_c*, fopAc_ac_c*, s16, dBgW_Base::PushPullLabel);
void initBaseMtx();
void setBaseMtx();
u16 getPointNo();
diff --git a/src/d/actor/d_a_door_push.cpp b/src/d/actor/d_a_door_push.cpp
index 07074c2ff7..23fafaf9bd 100644
--- a/src/d/actor/d_a_door_push.cpp
+++ b/src/d/actor/d_a_door_push.cpp
@@ -11,7 +11,7 @@
#include "f_pc/f_pc_name.h"
#include "f_op/f_op_actor_mng.h"
-static void PPCallBack(fopAc_ac_c* i_this, fopAc_ac_c* i_unused, s16 i_unused2,
+static fopAc_ac_c* PPCallBack(fopAc_ac_c* i_this, fopAc_ac_c* i_unused, s16 i_unused2,
dBgW_Base::PushPullLabel param_3) {
if (cLib_checkBit(param_3, dBgW_Base::PPLABEL_PUSH) != 0) {
daDoorPush_c* l_this = (daDoorPush_c*)i_this;
@@ -19,9 +19,11 @@ static void PPCallBack(fopAc_ac_c* i_this, fopAc_ac_c* i_unused, s16 i_unused2,
l_this->field_0x62e[1] = 0;
l_this->field_0x62c[0] = 1;
}
+
+ return i_this;
}
-static void PPCallBack2(fopAc_ac_c* i_this, fopAc_ac_c* i_unused, s16 i_unused2,
+static fopAc_ac_c* PPCallBack2(fopAc_ac_c* i_this, fopAc_ac_c* i_unused, s16 i_unused2,
dBgW_Base::PushPullLabel param_3) {
if (cLib_checkBit(param_3, dBgW_Base::PPLABEL_PUSH) != 0) {
daDoorPush_c* l_this = (daDoorPush_c*)i_this;
@@ -29,6 +31,8 @@ static void PPCallBack2(fopAc_ac_c* i_this, fopAc_ac_c* i_unused, s16 i_unused2,
l_this->field_0x62e[0] = 0;
l_this->field_0x62c[1] = 1;
}
+
+ return i_this;
}
void daDoorPush_c::initBaseMtx() {
diff --git a/src/d/actor/d_a_obj_iceblock.cpp b/src/d/actor/d_a_obj_iceblock.cpp
index 439864dc8e..6fc06f4860 100644
--- a/src/d/actor/d_a_obj_iceblock.cpp
+++ b/src/d/actor/d_a_obj_iceblock.cpp
@@ -25,7 +25,7 @@ enum WALK_TYPE {
WALK_IRON_BALL_HIT,
};
-void daObjIceBlk_c::PPCallBack(fopAc_ac_c* i_bgActor, fopAc_ac_c* i_pushActor, s16 i_angle,
+fopAc_ac_c* daObjIceBlk_c::PPCallBack(fopAc_ac_c* i_bgActor, fopAc_ac_c* i_pushActor, s16 i_angle,
dBgW_Base::PushPullLabel i_label) {
bool temp_r3 = cLib_checkBit<u8>(i_label, dBgW::PPLABEL_PUSH) != 0;
bool temp_r3_2 = cLib_checkBit<u8>(i_label, dBgW::PPLABEL_PUSH) != 0;
@@ -54,6 +54,7 @@ void daObjIceBlk_c::PPCallBack(fopAc_ac_c* i_bgActor, fopAc_ac_c* i_pushActor, s
}
((daObjIceBlk_c*)i_bgActor)->mPPLabel = i_label;
+ return i_bgActor;
}
static void rideCallBack(dBgW* i_bgw, fopAc_ac_c* i_bgActor, fopAc_ac_c* i_rideActor) {