blob: 1b32c7d35770ed3ffa07e0409f373cf8c1cb5e1a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
|
#ifndef D_A_DOOR_SHUTTER_H
#define D_A_DOOR_SHUTTER_H
#include <types.h>
#include "f_op/f_op_actor.h"
#include "SSystem/SComponent/c_phase.h"
#include "d/d_bg_w.h"
#include "d/d_msg_flow.h"
#include "d/d_bg_s_acch.h"
struct daDoor20_c;
class dDoor_stop_c {
public:
void calcMtx(daDoor20_c*);
void closeInit(daDoor20_c*);
int closeProc(daDoor20_c*);
void openInit(daDoor20_c*);
int openProc(daDoor20_c*);
int create(daDoor20_c*);
void draw(daDoor20_c*);
J3DModel* field_0x0;
f32 field_0x4;
u8 field_0x8;
u8 field_0x9;
u8 field_0xa;
u8 field_0xb;
};
/**
* @ingroup actors-doors
* @class daDoor20_c
* @brief Sliding Door
*
* @details Multi-purpose door actor. This actor is used for vertical sliding doors in the game.
*
*/
class daDoor20_c : public fopAc_ac_c {
public:
enum ActionType {
ACTION_INIT,
ACTION_WAIT,
ACTION_STOP_CLOSE,
ACTION_DEMO,
};
char* getStopBmdName();
J3DModelData* getStopModelData();
char* getAlwaysArcName();
char* getArcName();
char* getBmdName();
char* getBtk();
J3DModelData* getModelData();
f32 getSize2X();
int CreateHeap();
void setEventPrm();
int checkOpenMsgDoor(int*);
int adjustmentAngle();
int adjustmentProc();
void setAngle();
void openInit_0();
void openInit_1();
int openInit(int);
int openProc(int);
void openEnd_0();
void openEnd_1();
int openEnd(int);
void closeInit_0();
void closeInit_1();
int closeInit(int);
int closeProc(int);
void closeEnd_0();
void closeEnd_1();
int closeEnd(int);
void openInit2();
void closeEnd2();
void calcMtx_2();
void calcMtx();
int CreateInit();
void setKey();
int create();
int demoProc();
int orderStopEvent();
int actionWait();
int actionStopClose();
int actionDemo();
int actionInit();
int execute();
int draw();
void setDoorAngleSpec();
int _delete();
int createKey();
int deleteKey();
int adjoinPlayer();
int frontCheckOld();
int frontCheck();
int drawCheck(int);
int checkExecute();
void startDemoProc();
void makeEventId();
void initProc();
void initOpenDemo(int);
int checkArea(f32, f32, f32);
void openInitCom(int);
void closeEndCom();
void getRestartPos(cXyz*);
void setGoal();
int chkMakeStop();
int chkStopF();
int chkStopB();
void setStopDemo();
int chkStopClose();
void setStop();
int chkStopOpen();
int chkMakeKey();
virtual char* getDzbName();
virtual int getDemoAction();
void onFlag(u16 flag) { field_0x68e |= flag; }
void offFlag(u16 flag) { field_0x68e &= ~flag; }
bool checkFlag(u16 flag) { return field_0x68e & flag; }
void setAction(u8 action) { mAction = action; }
private:
/* 0x56C */ request_of_phase_process_class mPhase1;
/* 0x574 */ request_of_phase_process_class mPhase2;
/* 0x57C */ J3DModel* mModel1;
/* 0x580 */ J3DModel* mModel2;
/* 0x584 */ mDoExt_bckAnm field_0x584;
/* 0x5A0 */ mDoExt_bckAnm field_0x5a0;
/* 0x5BC */ J3DModel* field_0x5bc;
/* 0x5C0 */ mDoExt_btkAnm* field_0x5c0;
/* 0x5C4 */ dBgW* field_0x5c4;
/* 0x5C8 */ s8 field_0x5c8;
/* 0x5C9 */ bool field_0x5c9;
/* 0x5CA */ u8 field_0x5ca[0x5dd - 0x5ca];
/* 0x5DD */ u8 field_0x5dd;
/* 0x5E0 */ cXyz field_0x5e0;
/* 0x5EC */ u32 field_0x5ec;
/* 0x5F0 */ bool field_0x5f0;
/* 0x5F1 */ u8 field_0x5f1;
/* 0x5F4 */ Mtx field_0x5f4;
/* 0x624 */ dMsgFlow_c field_0x624;
/* 0x670 */ s16 field_0x670;
/* 0x672 */ bool field_0x672;
/* 0x673 */ u8 field_0x673;
/* 0x674 */ u8 field_0x674;
/* 0x678 */ int field_0x678;
/* 0x67C */ u8 field_0x67c;
/* 0x67D */ s8 field_0x67d;
/* 0x67E */ u8 field_0x67e;
/* 0x67F */ u8 field_0x67f;
/* 0x680 */ cXyz field_0x680;
/* 0x68C */ u8 field_0x68c;
/* 0x68D */ u8 field_0x68d;
/* 0x68E */ u16 field_0x68e;
/* 0x690 */ u8 mAction;
/* 0x691 */ u8 field_0x691;
/* 0x692 */ s16 field_0x692[19];
/* 0x6B8 */ u8 field_0x6b8[19];
/* 0x6CB */ u8 field_0x6cb;
/* 0x6CC */ u32 field_0x6cc;
/* 0x6D0 */ dDoor_stop_c mDoorStop;
/* 0x6DC */ s16 field_0x6dc;
/* 0x6DE */ dBgS_ObjAcch field_0x6de;
/* 0x8B8 */ dBgS_AcchCir field_0x8b8;
/* 0x8F8 */ u32 field_0x8f8;
};
STATIC_ASSERT(sizeof(daDoor20_c) == 0x8FC);
#endif /* D_A_DOOR_SHUTTER_H */
|