Loading [MathJax]/extensions/MathZoom.js
Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
d_a_obj_bky_rock.h
Go to the documentation of this file.
1#ifndef D_A_OBJ_BKY_ROCK_H
2#define D_A_OBJ_BKY_ROCK_H
3
4#include "d/d_cc_d.h"
5#include "d/d_model.h"
7
17public:
18 struct _pieceData {
19 public:
20 /* 0x00 */ dMdl_obj_c mMdlObj;
21 /* 0x34 */ Vec position;
22 /* 0x40 */ f32 targetX;
23 /* 0x44 */ f32 targetZ;
24 /* 0x48 */ f32 scale;
25 /* 0x4C */ f32 speedY;
26 /* 0x50 */ s16 rotationX;
27 /* 0x52 */ s16 rotationZ;
28 /* 0x54 */ s16 rotationSpeed;
29 };
30
31 typedef void (daBkyRock_c::*exeProc)();
32
38
39 /* 80BB6858 */ daBkyRock_c();
40 /* 80BB6B5C */ virtual ~daBkyRock_c();
41 /* 80BB6C4C */ int create();
42 /* 80BB6D60 */ int execute();
43 /* 80BB6D84 */ int draw();
44 /* 80BB6EB8 */ int Delete();
45 /* 80BB6F64 */ void setModelMtx();
46 /* 80BB6FD4 */ int createHeap();
47 /* 80BB7144 */ void init();
48 /* 80BB72FC */ void middleExe();
49 /* 80BB7364 */ void exeModeNoDamage();
50 /* 80BB7458 */ void exeModeDamage();
51 /* 80BB75D8 */ void exeModePiece();
52 /* 80BB7690 */ bool chkHitBombArrow();
53 /* 80BB776C */ void initChangeModeBefore();
54 /* 80BB77FC */ void initChangeModeAfter();
55 /* 80BB7818 */ void pieceMove();
56 /* 80BB7988 */ void pieceMoveInit();
57 /* 80BB7C18 */ void callBombEmt(int, u16 const*);
58
59 u8 getSwBit0() { return fopAcM_GetParamBit(this, 4, 8); }
60 u8 getSwBit1() { return fopAcM_GetParamBit(this, 12, 8); }
61 s8 getNameNo() { return fopAcM_GetParamBit(this, 0, 4); }
62
63 static dCcD_SrcCyl const s_CcDCyl;
64 static exeProc s_exeProc[3];
65
66private:
67 /* 0x568 */ int mVibrationTimer;
68 /* 0x578 */ u8 mMode;
69 /* 0x579 */ bool field_0x579;
70 /* 0x57A */ bool field_0x57a;
71 /* 0x57B */ Mtx mMtx;
72 /* 0x5AC */ dBgW* mBgW;
73 /* 0x5B0 */ dCcD_Stts mStts;
74 /* 0x5EC */ dCcD_Cyl mCyls[2];
75 /* 0x864 */ J3DModel* mModels[3];
76 /* 0x870 */ _pieceData mPieces[20];
77};
78
79//STATIC_ASSERT(sizeof(daBkyRock_c) == 0xf50);
80
81
82#endif /* D_A_OBJ_BKY_ROCK_H */
Definition d_bg_w.h:254
Definition d_model.h:10
Bomb Shack Rock.
Definition d_a_obj_bky_rock.h:16
int createHeap()
Definition d_a_obj_bky_rock.cpp:180
int Delete()
Definition d_a_obj_bky_rock.cpp:115
void setModelMtx()
Definition d_a_obj_bky_rock.cpp:127
_pieceData mPieces[20]
Definition d_a_obj_bky_rock.h:76
dCcD_Stts mStts
Definition d_a_obj_bky_rock.h:73
int create()
Definition d_a_obj_bky_rock.cpp:59
int mVibrationTimer
Definition d_a_obj_bky_rock.h:67
dBgW * mBgW
Definition d_a_obj_bky_rock.h:72
bool chkHitBombArrow()
Definition d_a_obj_bky_rock.cpp:317
void init()
Definition d_a_obj_bky_rock.cpp:225
static dCcD_SrcCyl const s_CcDCyl
Definition d_a_obj_bky_rock.h:159
u8 mMode
Definition d_a_obj_bky_rock.h:68
int execute()
Definition d_a_obj_bky_rock.cpp:82
dCcD_Cyl mCyls[2]
Definition d_a_obj_bky_rock.h:74
virtual ~daBkyRock_c()
Definition d_a_obj_bky_rock.cpp:54
void initChangeModeBefore()
Definition d_a_obj_bky_rock.cpp:343
u8 getSwBit0()
Definition d_a_obj_bky_rock.h:59
void pieceMoveInit()
Definition d_a_obj_bky_rock.cpp:411
void exeModeNoDamage()
Definition d_a_obj_bky_rock.cpp:257
void middleExe()
Definition d_a_obj_bky_rock.cpp:250
Mode
Definition d_a_obj_bky_rock.h:33
@ MODE_1
Definition d_a_obj_bky_rock.h:35
@ MODE_0
Definition d_a_obj_bky_rock.h:34
@ MODE_2
Definition d_a_obj_bky_rock.h:36
s8 getNameNo()
Definition d_a_obj_bky_rock.h:61
void callBombEmt(int, u16 const *)
Definition d_a_obj_bky_rock.cpp:446
J3DModel * mModels[3]
Definition d_a_obj_bky_rock.h:75
void exeModeDamage()
Definition d_a_obj_bky_rock.cpp:272
int draw()
Definition d_a_obj_bky_rock.cpp:88
bool field_0x57a
Definition d_a_obj_bky_rock.h:70
void pieceMove()
Definition d_a_obj_bky_rock.cpp:355
static exeProc s_exeProc[3]
Definition d_a_obj_bky_rock.h:40
u8 getSwBit1()
Definition d_a_obj_bky_rock.h:60
bool field_0x579
Definition d_a_obj_bky_rock.h:69
void(daBkyRock_c::*) exeProc()
Definition d_a_obj_bky_rock.h:31
void exeModePiece()
Definition d_a_obj_bky_rock.cpp:302
Mtx mMtx
Definition d_a_obj_bky_rock.h:71
void initChangeModeAfter()
Definition d_a_obj_bky_rock.cpp:350
daBkyRock_c()
Definition d_a_obj_bky_rock.cpp:47
u32 fopAcM_GetParamBit(void *ac, u8 shift, u8 bit)
Definition f_op_actor_mng.h:186
f32 Mtx[3][4]
Definition mtx.h:22
Definition d_a_hozelda.cpp:146
Definition d_a_hozelda.cpp:18
Definition d_a_npc_fguard.cpp:86
Definition d_a_npc_fguard.cpp:74
Definition d_a_npc_fguard.cpp:70
Definition d_a_obj_bky_rock.h:18
f32 speedY
Definition d_a_obj_bky_rock.h:25
f32 scale
Definition d_a_obj_bky_rock.h:24
f32 targetZ
Definition d_a_obj_bky_rock.h:23
f32 targetX
Definition d_a_obj_bky_rock.h:22
s16 rotationX
Definition d_a_obj_bky_rock.h:26
s16 rotationZ
Definition d_a_obj_bky_rock.h:27
Vec position
Definition d_a_obj_bky_rock.h:21
dMdl_obj_c mMdlObj
Definition d_a_obj_bky_rock.h:20
s16 rotationSpeed
Definition d_a_obj_bky_rock.h:28
Definition d_a_hozelda.cpp:74
Definition d_a_hozelda.cpp:14
signed char s8
Definition types.h:4
signed short int s16
Definition types.h:6
float f32
Definition types.h:22
unsigned short int u16
Definition types.h:7
unsigned char u8
Definition types.h:5