blob: d6e0fd5db202ca770771e246db4b818ac5b4dd2e (
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
|
#ifndef D_A_DOOR_KNOB00_H
#define D_A_DOOR_KNOB00_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"
/**
* @ingroup actors-doors
* @class daKnob20_c
* @brief Knob Door
*
* @details
*
*/
class daKnob20_c : public fopAc_ac_c {
public:
enum {
ACTION_INIT,
ACTION_WAIT,
ACTION_DEMO,
ACTION_TALK,
ACTION_TALK_WAIT,
ACTION_TALK_OPEN,
ACTION_DEAD,
ACTION_SPECIAL_DEMO,
};
typedef int (daKnob20_c::*actionFunc)();
char* getAlwaysArcName();
char* getEvArcName();
char* getDzb();
char* getDummyBmd();
char* getBmd();
J3DModelData* getDoorModelData();
int CreateHeap();
void calcMtx();
int CreateInit();
int create();
int checkOpenDoor(int*);
void setActionFromFlow();
void setEventId();
int checkArea(f32, f32, f32);
void setEventPrm();
int releaseBG();
int frontCheck();
int getDemoAction();
int demoProc();
void setStart(f32, f32);
void setAngle();
int adjustmentProc();
int openInit(int);
int openProc(int);
int openEnd(int);
void initOpenDemo();
void startDemoProc();
int actionWait();
int actionSpecialDemo();
int actionDemo();
int actionTalk();
int actionTalkWait();
int actionTalkOpen();
int actionInit();
int actionDead();
int execute();
int draw();
int Delete();
void setAction(u8 action) { mAction = action; }
void offFlag(u16 flag) { field_0x60c &= ~flag; }
void onFlag(u16 flag) { field_0x60c |= flag; }
int checkFlag(u16 flag) { return field_0x60c & flag; }
private:
/* 0x568 */ request_of_phase_process_class mPhase1;
/* 0x570 */ request_of_phase_process_class mPhase2;
/* 0x578 */ J3DModel* mModel1;
/* 0x57C */ mDoExt_bckAnm field_0x57c;
/* 0x598 */ J3DModel* mModel2;
/* 0x59C */ s8 mJoint;
/* 0x5A0 */ dBgW* field_0x5a0;
/* 0x5A4 */ s16 field_0x5a4[7];
/* 0x5B2 */ u8 field_0x5b2[7];
/* 0x5B9 */ u8 field_0x5b9;
/* 0x5BA */ u16 field_0x5ba;
/* 0x5BC */ int field_0x5bc;
/* 0x5C0 */ dMsgFlow_c field_0x5c0;
/* 0x60C */ u16 field_0x60c;
/* 0x60E */ u8 mAction;
/* 0x60F */ u8 field_0x60f;
/* 0x610 */ s16 field_0x610;
/* 0x612 */ s16 field_0x612;
/* 0x614 */ s16 field_0x614;
};
STATIC_ASSERT(sizeof(daKnob20_c) == 0x618);
class knob_param_c {
public:
static u32 getDoorModel(fopAc_ac_c*);
static u32 getDoorLightInf(fopAc_ac_c*);
static u16 getMsgNo(fopAc_ac_c*);
static u8 getExitNo(fopAc_ac_c*);
};
#endif /* D_A_DOOR_KNOB00_H */
|