Skip to content

Commit 9cc471a

Browse files
committed
isHitWallKinopioWalk and checkBGCrossWall matching
Also use the BgCross enums across the file
1 parent 0632aea commit 9cc471a

3 files changed

Lines changed: 304 additions & 242 deletions

File tree

include/game/bases/d_a_player_base.hpp

Lines changed: 84 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,72 @@ class daPlBase_c : public dActor_c {
311311
POWER_CHANGE_2 = 2
312312
};
313313

314+
315+
/// @unofficial
316+
enum BgCross1_e {
317+
BGC_IS_FOOT = BIT_FLAG(0),
318+
BGC_IS_HEAD = BIT_FLAG(1),
319+
BGC_IS_WALL = BIT_FLAG(2),
320+
BGC_WALL_TOUCH_L = BIT_FLAG(3),
321+
BGC_WALL_TOUCH_R = BIT_FLAG(4),
322+
BGC_WALL_TOUCH_L_2 = BIT_FLAG(5),
323+
BGC_WALL_TOUCH_R_2 = BIT_FLAG(6),
324+
BGC_CARRY_RELATED_L = BIT_FLAG(7),
325+
BGC_CARRY_RELATED_R = BIT_FLAG(8),
326+
BGC_OBJBG_CARRY_RELATED_L = BIT_FLAG(9),
327+
BGC_OBJBG_CARRY_RELATED_R = BIT_FLAG(10),
328+
BGC_11 = BIT_FLAG(11),
329+
BGC_12 = BIT_FLAG(12),
330+
BGC_13 = BIT_FLAG(13),
331+
BGC_14 = BIT_FLAG(14),
332+
BGC_15 = BIT_FLAG(15),
333+
BGC_16 = BIT_FLAG(16),
334+
BGC_17 = BIT_FLAG(17),
335+
BGC_WATER_BUBBLE = BIT_FLAG(18),
336+
BGC_SIDE_LIMIT_L = BIT_FLAG(19),
337+
BGC_SIDE_LIMIT_R = BIT_FLAG(20),
338+
BGC_21 = BIT_FLAG(21),
339+
BGC_ON_SNOW = BIT_FLAG(22),
340+
BGC_ON_ICE = BIT_FLAG(23),
341+
BGC_ON_ICE_LOW_SLIP = BIT_FLAG(24),
342+
BGC_25 = BIT_FLAG(25),
343+
BGC_ON_SAND = BIT_FLAG(26),
344+
BGC_ON_SINK_SAND = BIT_FLAG(27),
345+
BGC_IN_SINK_SAND = BIT_FLAG(28),
346+
BGC_INSIDE_SINK_SAND = BIT_FLAG(29),
347+
BGC_ON_BELT_L = BIT_FLAG(30),
348+
BGC_ON_BELT_R = BIT_FLAG(31)
349+
};
350+
351+
/// @unofficial
352+
enum BgCross2_e {
353+
BGC_32 = BIT_FLAG(0),
354+
BGC_IS_LIFT = BIT_FLAG(1),
355+
BGC_34 = BIT_FLAG(2),
356+
BGC_IS_SLIP = BIT_FLAG(3),
357+
BGC_36 = BIT_FLAG(4),
358+
BGC_37 = BIT_FLAG(5),
359+
BGC_38 = BIT_FLAG(6),
360+
BGC_IS_SAKA = BIT_FLAG(7),
361+
BGC_40 = BIT_FLAG(8),
362+
BGC_41 = BIT_FLAG(9),
363+
BGC_42 = BIT_FLAG(10),
364+
BGC_51 = BIT_FLAG(19),
365+
BGC_52 = BIT_FLAG(20),
366+
BGC_53 = BIT_FLAG(21),
367+
BGC_54 = BIT_FLAG(22),
368+
BGC_55 = BIT_FLAG(23),
369+
BGC_56 = BIT_FLAG(24),
370+
BGC_57 = BIT_FLAG(25),
371+
BGC_58 = BIT_FLAG(26),
372+
BGC_59 = BIT_FLAG(27),
373+
BGC_60 = BIT_FLAG(28),
374+
BGC_61 = BIT_FLAG(29),
375+
BGC_62 = BIT_FLAG(30),
376+
BGC_63 = BIT_FLAG(31)
377+
};
378+
379+
/// @unofficial
314380
enum Status_e {
315381
STATUS_01 = 0x01,
316382
STATUS_02 = 0x02,
@@ -932,34 +998,9 @@ class daPlBase_c : public dActor_c {
932998
mStateMgr.getOldStateID();
933999
}
9341000

935-
bool checkD40Status(int bit) const {
936-
if (m_d40 & (1 << bit)) {
937-
return true;
938-
} else {
939-
return false;
940-
}
941-
}
942-
9431001
float get_1064() const { return m_1064; }
9441002
float get_106c() const { return m_106c; }
9451003

946-
947-
bool checkD44Status(int bit) const {
948-
if (m_d44 & (1 << bit)) {
949-
return true;
950-
} else {
951-
return false;
952-
}
953-
}
954-
955-
void setD40Status(int bit) {
956-
m_d40 |= (1 << bit);
957-
}
958-
959-
void setD44Status(int bit) {
960-
m_d44 |= (1 << bit);
961-
}
962-
9631004
void setStatus(int);
9641005
void calcTimerProc();
9651006
dPyMdlBase_c *getModel();
@@ -987,6 +1028,20 @@ class daPlBase_c : public dActor_c {
9871028

9881029
int getTreadCount() { return mTreadCount; }
9891030

1031+
u32 isNowBgCross(BgCross1_e m) { return mNowBgCross1 & m; }
1032+
u32 isNowBgCross(BgCross2_e m) { return mNowBgCross2 & m; }
1033+
void onNowBgCross(BgCross1_e m) { mNowBgCross1 |= m; }
1034+
void onNowBgCross(BgCross2_e m) { mNowBgCross2 |= m; }
1035+
void offNowBgCross(BgCross1_e m) { mNowBgCross1 &= ~m; }
1036+
void offNowBgCross(BgCross2_e m) { mNowBgCross2 &= ~m; }
1037+
1038+
u32 isOldBgCross(BgCross1_e m) { return mOldBgCross1 & m; }
1039+
u32 isOldBgCross(BgCross2_e m) { return mOldBgCross2 & m; }
1040+
void onOldBgCross(BgCross1_e m) { mOldBgCross1 |= m; }
1041+
void onOldBgCross(BgCross2_e m) { mOldBgCross2 |= m; }
1042+
void offOldBgCross(BgCross1_e m) { mOldBgCross1 &= ~m; }
1043+
void offOldBgCross(BgCross2_e m) { mOldBgCross2 &= ~m; }
1044+
9901045
int m_00;
9911046
int m_04;
9921047
float m_08;
@@ -1083,10 +1138,10 @@ class daPlBase_c : public dActor_c {
10831138
int m_d2c;
10841139
mVec3_c m_d30;
10851140
float m_d3c;
1086-
u32 m_d40;
1087-
u32 m_d44;
1088-
u32 m_d48;
1089-
u32 m_d4c;
1141+
u32 mNowBgCross1;
1142+
u32 mNowBgCross2;
1143+
u32 mOldBgCross1;
1144+
u32 mOldBgCross2;
10901145
u32 mBgCrossHistory[10];
10911146
u32 m_d78;
10921147
u32 m_d7c;

0 commit comments

Comments
 (0)