blob: 7b1b556cbcd35cff81331a23a23651bcf0528f35 (
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
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
|
#ifndef D_A_OBJ_IKADA_H
#define D_A_OBJ_IKADA_H
#include "f_op/f_op_actor.h"
#include "d/d_cc_d.h"
#include "d/d_bg_s_acch.h"
#include "d/d_bg_w.h"
#include "d/d_particle.h"
#include "m_Do/m_Do_ext.h"
#include "SSystem/SComponent/c_phase.h"
#include "d/d_path.h"
#include "d/d_lib.h"
#include "m_Do/m_Do_hostIO.h"
class daObj_Ikada_c : public fopAc_ac_c {
public:
enum Proc_e {
PROC_INIT_e = 0,
PROC_EXEC_e = 1,
};
void getCranePos() {}
void getFrame() {}
void getMode() {}
void getSvDirection() {}
bool isBonbori() { return mType == 3 || mType == 1; }
bool isCrane() {return mType == 4; }
bool isFlag() { return mType == 0 || mType == 4; }
bool isWave() { return mType == 4 || mType == 3 || mType == 1; }
void modeProcInit(int idx) { modeProc(PROC_INIT_e, idx); }
void setInitPos() {}
void setStart() {}
void setStop() {}
void _nodeControl(J3DNode*, J3DModel*);
BOOL _pathMove(cXyz*, cXyz*, cXyz*);
void _ride(fopAc_ac_c*);
void setCollision();
bool checkTgHit();
void pathMove();
void HandleRight();
void HandleLeft();
void createWave();
void setWave();
void incRopeCnt(int, int);
void setRopePos();
void setMtx();
void modeProc(Proc_e, int);
void modeWaitInit();
void modeWait();
void modeCraneUpInit();
void modeCraneUp();
void modeCraneUpWaitInit();
void modeCraneUpWait();
void modeCraneDownInit();
void modeCraneDown();
void modeCraneDownWaitInit();
void modeCraneDownWait();
void modeCraneTurnInit();
void modeCraneTurn();
void modeCraneResetInit();
void modeCraneReset();
void modeCraneWaitInit();
void modeCraneWait();
void modePathMoveInit();
void modePathMove();
void modeStopInit();
void modeStop();
void modePathMoveTerryInit();
void modePathMoveTerry();
void modeStopTerryInit();
void modeStopTerry();
void modeStopBombTerryInit();
void modeStopBombTerry();
void epProc();
bool _execute();
void debugDraw();
bool _draw();
void getArg();
void createInit();
BOOL _createHeap();
cPhs_State _create();
bool _delete();
static cXyz m_rope_base_vec;
static cXyz m_crane_offset;
static const dCcD_SrcSph m_sph_src;
static const u32 m_heapsize[];
static const char m_arc_name[];
static const f32 m_rope_joint_len;
static const s32 m_rope_min_cnt;
public:
/* 0x0290 */ s32 mType;
/* 0x0294 */ u32 m0294;
/* 0x0298 */ u32 m0298;
/* 0x029C */ u32 m029C;
/* 0x02A0 */ u32 m02A0;
/* 0x02A4 */ u8 mPathId;
/* 0x02A5 */ u8 m02A5[0x02A8 - 0x02A5];
/* 0x02A8 */ cXyz mCurPathP0;
/* 0x02B4 */ s8 mCurPathPoint;
/* 0x02B5 */ u8 m02B5[0x02B8 - 0x02B5];
/* 0x02B8 */ dPath* mpPath;
/* 0x02BC */ u8 m02BC[0x02C0 - 0x02BC];
/* 0x02C0 */ cXyz mCurPathP1;
/* 0x02CC */ cXyz m02CC;
/* 0x02D8 */ f32 mVelocityFwdTarget;
/* 0x02DC */ cXyz mPathPosTarget;
/* 0x02E8 */ u8 m02E8[0x02EC - 0x02E8];
/* 0x02EC */ u8 mbCraneMode;
/* 0x02ED */ u8 m02ED[0x02F0 - 0x02ED];
/* 0x02F0 */ s32 mCurMode;
/* 0x02F4 */ s32 m02F4;
/* 0x02F8 */ dPa_waveEcallBack mWaveLCallback;
/* 0x035C */ dPa_waveEcallBack mWaveRCallback;
/* 0x03C0 */ dPa_splashEcallBack mSplashCallBack;
/* 0x03DC */ dPa_trackEcallBack mTrackCallBack;
/* 0x042C */ dPa_rippleEcallBack mRippleCallBack;
/* 0x0440 */ u8 m0440;
/* 0x0444 */ cXyz m0444;
/* 0x0450 */ cXyz mWavePos;
/* 0x045C */ csXyz mWaveRot;
/* 0x0462 */ u8 m0462[0x0464 - 0x0462];
/* 0x0464 */ f32 mSplashScaleTimer;
/* 0x0468 */ cXyz mTrackPos;
/* 0x0474 */ cXyz m0474;
/* 0x0480 */ dPa_followEcallBack mBombSmokeEasterEgg;
/* 0x0494 */ csXyz mBombSmokeRot;
/* 0x049A */ u8 m049A[0x049C - 0x049A];
/* 0x049C */ cXyz mBombSmokePos;
/* 0x04A8 */ int m04A8;
/* 0x04AC */ s16 mBombSmokeAngle;
/* 0x04AE */ u8 m04AE[0x04B0 - 0x04AE];
/* 0x04B0 */ dPa_followEcallBack mFireParticle;
/* 0x04C4 */ cXyz mFirePos;
/* 0x04D0 */ Mtx mLightMtx;
/* 0x0500 */ f32 mLightPower;
/* 0x0504 */ f32 mLightPowerTarget;
/* 0x0508 */ f32 m0508;
/* 0x050C */ f32 m050C;
/* 0x0510 */ int mEpTimer0;
/* 0x0514 */ int mEpTimer1;
/* 0x0518 */ u8 m0518[0x051C - 0x0518];
/* 0x051C */ int mTimer;
/* 0x0520 */ u8 m0520[0x0528 - 0x0520];
/* 0x0528 */ s16 mLightRotX;
/* 0x052A */ s16 mLightRotY;
/* 0x052C */ request_of_phase_process_class mPhase;
/* 0x0534 */ J3DModel* mpModel;
/* 0x0538 */ mDoExt_bckAnm mBckAnm;
/* 0x0548 */ bool mbIsLinkRiding;
/* 0x054C */ dBgW* mpBgW;
/* 0x0550 */ Mtx mMtx;
/* 0x0580 */ dBgS_ObjAcch mObjAcch;
/* 0x0744 */ dBgS_AcchCir mAcchCir;
/* 0x0784 */ fpc_ProcID mFlagPcId;
/* 0x0788 */ cXyz mFlagOffset;
/* 0x0794 */ f32 mFlagScale;
/* 0x0798 */ J3DModel* mpRopeEnd;
/* 0x079C */ mDoExt_3DlineMat1_c mRopeLine;
/* 0x07D8 */ s32 m07D8;
/* 0x07DC */ cXyz m07DC[200];
/* 0x113C */ csXyz mJointRot[4];
/* 0x1154 */ s32 m1154;
/* 0x1158 */ s16 m1158;
/* 0x115A */ s16 m115A;
/* 0x115C */ s16 m115C;
/* 0x115E */ s16 m115E;
/* 0x1160 */ s16 mLinkRideRockTimer;
/* 0x1162 */ s16 mLinkRideRockAmpl;
/* 0x1164 */ s16 mWaveAnimTimer;
/* 0x1166 */ u8 m1166;
/* 0x1167 */ u8 m1167[0x1168 - 0x1167];
/* 0x1168 */ s32 m1168;
/* 0x116C */ s32 mSvId[4];
/* 0x117C */ dCcD_Sph mSph;
/* 0x12A8 */ dCcD_Stts mStts;
/* 0x12E4 */ int m12E4;
/* 0x12E8 */ cXyz mSePos;
/* 0x12F4 */ int mStopTimer;
/* 0x12F8 */ dLib_wave_c mWave;
/* 0x1304 */ u8 m1304[0x1308 - 0x1304];
/* 0x1308 */ LIGHT_INFLUENCE mPLight;
/* 0x1328 */ cXyz mInitPos;
};
class daObj_Ikada_HIO_c : public mDoHIO_entry_c {
public:
daObj_Ikada_HIO_c();
virtual ~daObj_Ikada_HIO_c() {}
void genMessage(JORMContext* ctx) {}
public:
/* 0x04 */ u8 mbDebugDraw;
/* 0x05 */ u8 m05;
/* 0x06 */ u8 m06;
/* 0x07 */ u8 mbNoRotAnim;
/* 0x08 */ u8 m08;
/* 0x09 */ u8 m09[0x0C - 0x09];
/* 0x0C */ Vec mFlagOffset;
/* 0x18 */ f32 mFlagScale;
/* 0x1C */ s16 m1C;
/* 0x1E */ s16 m1E;
/* 0x20 */ f32 m20;
/* 0x24 */ s16 m24;
/* 0x26 */ u8 m26[0x28 - 0x26];
/* 0x28 */ f32 m28;
/* 0x2C */ f32 mShipOffsY_Attention;
/* 0x30 */ f32 mShipOffsY_Eye;
/* 0x34 */ f32 mTerryWaveOffsZ;
/* 0x38 */ f32 mTerryWaveOffsY;
/* 0x3C */ f32 mTerryTrackOffsZ;
/* 0x40 */ f32 mSvWaveOffsX;
/* 0x44 */ f32 mSvTrackOffsX;
/* 0x48 */ f32 mSvOffsX[4];
/* 0x58 */ f32 mTrackIndTransY;
/* 0x5C */ f32 mTrackIndScaleY;
/* 0x60 */ f32 mSplashScaleMax;
/* 0x64 */ f32 mSplashMaxScaleTimer;
/* 0x68 */ f32 mWaveVelFade;
/* 0x6C */ f32 mTrackVel;
/* 0x70 */ f32 mWaveVelSpeed;
/* 0x74 */ f32 mWaveVelOffs;
/* 0x78 */ f32 mWaveMaxVelocity;
/* 0x7C */ Vec mWaveCollapsePos[2];
/* 0x94 */ s16 m94;
/* 0x96 */ s16 mPlayerStopDistance;
/* 0x98 */ s16 m98;
/* 0x9A */ s16 m9A;
/* 0x9C */ f32 m9C;
/* 0xA0 */ f32 mVelocityTargetTerry1;
/* 0xA4 */ f32 mVelocityTargetTerry3;
/* 0xA8 */ f32 mA8;
}; // size = 0xAC
#endif /* D_A_OBJ_IKADA_H */
|