11#ifndef D_A_OBJ_STOPPER_H
22#define D_A_OBJ_STOPPER_H
33
4+ #include " d/d_bg_s_acch.h"
5+ #include " d/d_bg_s_movebg_actor.h"
6+ #include " d/d_cc_d.h"
7+ #include " d/d_particle.h"
48#include " dolphin/types.h"
5- #include " f_op/f_op_actor .h"
9+ #include " f_op/f_op_actor_mng .h"
610
711/* *
812 * @ingroup actors-objects
1216 * @details
1317 *
1418 */
15- class daObjStopper_c : public fopAc_ac_c {
19+ class daObjStopper_c : public dBgS_MoveBgActor {
1620public:
1721 enum ActionType {
1822 ACTION_WAIT,
@@ -27,10 +31,10 @@ class daObjStopper_c : public fopAc_ac_c {
2731
2832 /* 80CECF34 */ void initBaseMtx ();
2933 /* 80CED024 */ void setBaseMtx ();
30- /* 80CED0B8 */ void Create ();
31- /* 80CED20C */ void CreateHeap ();
32- /* 80CED258 */ void create ();
33- /* 80CED6BC */ void Execute (f32 (**)[3][4]);
34+ /* 80CED0B8 */ int Create ();
35+ /* 80CED20C */ int CreateHeap ();
36+ /* 80CED258 */ int create ();
37+ /* 80CED6BC */ int Execute (f32 (**)[3][4]);
3438 /* 80CED708 */ void action ();
3539 /* 80CED824 */ void actionWait ();
3640 /* 80CEDA24 */ void actionWaitOrderEvent ();
@@ -43,17 +47,65 @@ class daObjStopper_c : public fopAc_ac_c {
4347 /* 80CEE148 */ void hint_action1 ();
4448 /* 80CEE5D0 */ void hint_action2 ();
4549 /* 80CEEA28 */ void hint_action3 ();
46- /* 80CEECFC */ void Draw ();
47- /* 80CEED60 */ void Delete ();
50+ /* 80CEECFC */ int Draw ();
51+ /* 80CEED60 */ int Delete ();
4852
4953 void setOpen () { mAction = ACTION_WAIT_CLOSE; }
50- void setAction (u8 action) { mAction = action; }
54+ void setAction (ActionType action) { mAction = action; }
5155 void startClose () { setAction (ACTION_CLOSE_INIT); }
56+ u8 getEventNo () { return fopAcM_GetParamBit (this , 16 , 8 ); }
57+ u8 getEventNo2 () { return fopAcM_GetParamBit (this , 24 , 8 ); }
58+ u16 getEventNo3 () { return field_0x9f8 & 0xff ; }
59+ u8 getSwNo () { return fopAcM_GetParamBit (this , 0 , 8 ); }
60+ u8 getSwNo2 () { return fopAcM_GetParamBit (this , 8 , 8 ); }
5261
5362private:
54- /* 0x568 */ u8 field_0x568[0x93c - 0x568 ];
63+ /* 0x5A0 */ u8 field_0x5a0[8 ]; // unused
64+ /* 0x5A8 */ J3DModel* mpModel;
65+ /* 0x5AC */ dBgS_ObjAcch mAcch ;
66+ /* 0x784 */ dBgS_AcchCir mAcchCir ;
67+ /* 0x7C4 */ dCcD_Stts field_0x7c4; // unused
68+ /* 0x800 */ dCcD_Cyl field_0x800; // unused
5569 /* 0x93C */ u8 mAction ;
56- /* 0x93D */ u8 field_0x93d[0xa00 - 0x93d ];
70+ /* 0x93D */ u8 field_0x93d;
71+ /* 0x93E */ u8 field_0x93e[6 ]; // unused
72+ /* 0x944 */ s16 mEventIDs [3 ];
73+ /* 0x94A */ u8 mMapToolIDs [3 ];
74+ /* 0x94D */ u8 field_0x94d;
75+ /* 0x94E */ u8 field_0x94e;
76+ /* 0x94F */ u8 field_0x94f; // unused
77+ /* 0x950 */ f32 field_0x950;
78+ /* 0x954 */ u16 field_0x954;
79+ /* 0x956 */ u16 field_0x956;
80+ /* 0x958 */ f32 field_0x958;
81+ /* 0x95C */ u8 field_0x95c;
82+ /* 0x95D */ u8 field_0x95d;
83+ /* 0x95E */ u8 field_0x95e;
84+ /* 0x95F */ u8 field_0x95f;
85+ /* 0x960 */ s16 field_0x960;
86+ /* 0x962 */ u8 field_0x962[2 ]; // unused
87+ /* 0x964 */ f32 field_0x964;
88+ /* 0x968 */ f32 field_0x968;
89+ /* 0x96C */ f32 field_0x96c;
90+ /* 0x970 */ f32 field_0x970;
91+ /* 0x974 */ f32 field_0x974;
92+ /* 0x978 */ f32 field_0x978;
93+ /* 0x97C */ s16 field_0x97c;
94+ /* 0x97E */ s16 field_0x97e;
95+ /* 0x980 */ s16 field_0x980;
96+ /* 0x982 */ s16 field_0x982;
97+ /* 0x984 */ dPa_followEcallBack field_0x984[2 ];
98+ /* 0x9AC */ dPa_followEcallBack field_0x9ac[1 ];
99+ /* 0x9C0 */ dPa_followEcallBack field_0x9c0[2 ];
100+ /* 0x9E8 */ s16 field_0x9e8;
101+ /* 0x9EA */ s16 field_0x9ea;
102+ /* 0x9EC */ s16 field_0x9ec;
103+ /* 0x9EE */ s16 field_0x9ee;
104+ /* 0x9F0 */ csXyz field_0x9f0;
105+ /* 0x9F6 */ s16 field_0x9f6;
106+ /* 0x9F8 */ u16 field_0x9f8;
107+ /* 0x9FA */ s16 field_0x9fa;
108+ /* 0x9FC */ u8 field_0x9fc;
57109};
58110
59111STATIC_ASSERT (sizeof (daObjStopper_c) == 0xA00);
0 commit comments