diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/SSystem/SComponent/c_lib.h | 2 | ||||
| -rw-r--r-- | include/d/a/d_a_player.h | 4 | ||||
| -rw-r--r-- | include/d/bg/d_bg_w_base.h | 5 | ||||
| -rw-r--r-- | include/d/com/d_com_inf_game.h | 4 | ||||
| -rw-r--r-- | include/rel/d/a/door/d_a_door_push/d_a_door_push.h | 66 |
5 files changed, 78 insertions, 3 deletions
diff --git a/include/SSystem/SComponent/c_lib.h b/include/SSystem/SComponent/c_lib.h index 252defbfdd..9e6ce9c990 100644 --- a/include/SSystem/SComponent/c_lib.h +++ b/include/SSystem/SComponent/c_lib.h @@ -46,7 +46,7 @@ inline void cLib_onBit(T& value, u8 bit) { } template <typename T> -inline T cLib_checkBit(T& value, u8 bit) { +inline u8 cLib_checkBit(T& value, u8 bit) { return value & bit; } diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h index 3a429f737a..7784bf909a 100644 --- a/include/d/a/d_a_player.h +++ b/include/d/a/d_a_player.h @@ -222,6 +222,7 @@ public: FLG0_UNK_4000 = 0x4000, FLG0_UNK_2000 = 0x2000, FLG0_MAGNE_BOOTS_ON = 0x1000, + FLG0_PUSH_PULL_KEEP = 0x800, FLG0_UNK_100 = 0x100, FLG0_UNK_80 = 0x80, FLG0_UNK_40 = 0x40, @@ -764,6 +765,9 @@ public: bool i_checkMidnaRide() const { return i_checkNoResetFlg0(FLG0_MIDNA_RIDE); } void i_onPlayerNoDraw() { i_onNoResetFlg0(FLG0_PLAYER_NO_DRAW); } void i_offPlayerNoDraw() { i_offNoResetFlg0(FLG0_PLAYER_NO_DRAW); } + void i_onPushPullKeep() { i_onNoResetFlg0(FLG0_PUSH_PULL_KEEP); } + void i_offPushPullKeep() { i_offNoResetFlg0(FLG0_PUSH_PULL_KEEP); } + u32 i_checkBoarSingleBattle() const { return i_checkNoResetFlg2(FLG2_BOAR_SINGLE_BATTLE); } diff --git a/include/d/bg/d_bg_w_base.h b/include/d/bg/d_bg_w_base.h index 59c3efed8b..c8260c2b83 100644 --- a/include/d/bg/d_bg_w_base.h +++ b/include/d/bg/d_bg_w_base.h @@ -17,7 +17,9 @@ class fopAc_ac_c; class dBgW_Base : public cBgW_BgId { public: - enum PushPullLabel {}; + enum PushPullLabel { + PUSHPULL_LABEL1 = 1, + }; enum PRIORITY { PRIORITY_0, @@ -95,6 +97,7 @@ public: bool chkStickWall() { return field_0xb & 1; } bool chkStickRoof() { return field_0xb & 2; } bool ChkPushPullOk() const { return m_pushPull_Ok; } + void SetPushPullCallback(PushPull_CallBack i_callBack) { m_pushPull_Callback = i_callBack; } void SetRoomId(int id) { m_roomId = id; } bool ChkPriority(int prio) { return m_priority == prio; } void SetPriority(PRIORITY priority) { m_priority = priority; } diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index c24fda060e..afb1db2c3a 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -3082,6 +3082,10 @@ inline int dComIfGp_evmng_getMySubstanceNum(int index, char* name) { return dComIfGp_getPEvtManager()->getMySubstanceNum(index, name); } +inline void dComIfGp_evmng_setGoal(cXyz* i_goal) { + dComIfGp_getPEvtManager()->setGoal(i_goal); +} + inline BOOL dComIfGp_evmng_ChkPresentEnd() { return dComIfGp_getPEvtManager()->ChkPresentEnd(); } diff --git a/include/rel/d/a/door/d_a_door_push/d_a_door_push.h b/include/rel/d/a/door/d_a_door_push/d_a_door_push.h index 4eab94e2ac..2a104dfeb8 100644 --- a/include/rel/d/a/door/d_a_door_push/d_a_door_push.h +++ b/include/rel/d/a/door/d_a_door_push/d_a_door_push.h @@ -1,6 +1,70 @@ #ifndef D_A_DOOR_PUSH_H #define D_A_DOOR_PUSH_H -#include "dolphin/types.h" +#include "d/a/d_a_player.h" +#include "d/bg/d_bg_s_movebg_actor.h" +#include "d/com/d_com_inf_game.h" +#include "f_op/f_op_actor_mng.h" + +class daDoorPush_c : public dBgS_MoveBgActor { +public: + enum act_e { + WAIT_e, + OPEN_e, + SCENE_CHG_e, + }; + + enum action_e { + ACTION_OPEN_WAIT_e = 1, + ACTION_ORDER_EVENT_e, + }; + + /* 80677E08 */ void initBaseMtx(); + /* 80677F38 */ void setBaseMtx(); + /* 8067809C */ int Create(); + /* 806781FC */ int CreateHeap(); + /* 80678318 */ int create1st(); + /* 8067839C */ int Execute(Mtx**); + /* 8067840C */ void action(); + /* 80678488 */ void init_modeWait(); + /* 806784B4 */ void modeWait(); + /* 80678664 */ void event_proc_call(); + /* 80678708 */ void actionOpenWait(); + /* 8067877C */ void actionOrderEvent(); + /* 806787F8 */ void actionEvent(); + /* 80678818 */ int demoProc(); + /* 80678AEC */ void rotateInit(); + /* 80678B10 */ int rotate(); + /* 80678BC0 */ void setGoal(); + /* 80678C70 */ int Draw(); + /* 80678D2C */ int Delete(); + + void setAction(u8 i_action) { mAction = i_action; } + u32 getSceneNo() { return fopAcM_GetParamBit(this, 4, 6); } + + /* 0x5A0 */ request_of_phase_process_class mPhaseReq; + /* 0x5A8 */ J3DModel* mpModel[2]; + /* 0x5B0 */ dBgW* mpDoorBgW; + /* 0x5B4 */ Mtx mDoorMtx; + /* 0x5E4 */ Mtx mActorMtx; + /* 0x614 */ cXyz mXyz[2]; + /* 0x62C */ u8 field_0x62c[2]; + /* 0x62E */ u8 field_0x62e[2]; + /* 0x630 */ s16 field_0x630[2]; + /* 0x634 */ s16 field_0x634[2]; + /* 0x638 */ u8 field_0x638; + /* 0x639 */ u8 mIndex; + /* 0x63A */ s16 field_0x63a[2]; + /* 0x63E */ u8 field_0x63e[2]; + /* 0x640 */ u8 mAction; + /* 0x641 */ u8 field_0x641; + /* 0x644 */ s32 field_0x644; + /* 0x648 */ u8 field_0x648; + /* 0x649 */ u8 field_0x649; + /* 0x64A */ s16 field_0x64a; + /* 0x64C */ s16 field_0x64c; + /* 0x64E */ s16 field_0x64e[2]; + /* 0x654 */ cXyz mPosition; +}; // Size: 0x660 #endif /* D_A_DOOR_PUSH_H */ |
