Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_a_obj_magne_arm.h
Go to the documentation of this file.
1#ifndef D_A_OBJ_MAGNE_ARM_H
2#define D_A_OBJ_MAGNE_ARM_H
3
4#include "d/d_bg_s_acch.h"
6#include "d/d_cc_d.h"
8
26public:
33
42
43 void getBpartsOffset(cXyz*);
44 void getDpartsOffset(cXyz*);
45 void getEpartsOffset(cXyz*);
46 void getFpartsOffset(cXyz*);
47 void getRopeStartPos(cXyz*);
48 void initBaseMtx();
49 void setBaseMtx();
50 int Create();
51 int CreateHeap();
55 int create1st();
56 int Execute(Mtx**);
57 void action();
59 void typeA_modeWait();
61 void typeA_modeMholeOn();
62 void typeA_modeLiftUp();
63 void typeA_modeLiftDown();
65 void typeA_modeRotate();
66 void typeA_modeEnd();
68 void typeB_modeWait();
70 void typeB_modeMholeOn();
72 void typeB_modeLiftUp();
73 void typeB_modeLiftDown();
75 void typeB_modeRotate();
76 void typeB_modeEnd();
78 void typeC_modeWait();
80 void typeC_modeMholeOn();
82 void typeC_modeLiftUp();
84 void typeC_modeLiftDown();
86 void typeC_modeRotate();
87 void typeC_modeEnd();
89 void typeD_modeWait();
91 void typeD_modeMholeOn();
93 void typeD_modeLiftUp();
95 void typeD_modeLiftDown();
97 void typeD_modeRotate();
98 void typeD_modeEnd();
99 void setMagneHoleEffect();
100 void endMagneHoleEffect();
101 void calcHimo();
102 void seStart_MOVESTART();
103 void seStartLevel_MOVE();
104 void seStart_STOP();
105 void seStartLevel_UP();
106 void seStartLevel_DOWN();
107 void seStart_SWING();
108 int Draw();
109 void debugDraw();
110 int Delete();
111
112 u32 getMoveType() { return fopAcM_GetParamBit(this, 8, 4); }
113 u32 getSwNo() { return fopAcM_GetParamBit(this, 0, 8); }
114
116 /* 0x5A8 */ J3DModel* mpModel[6];
120 /* 0x5CC */ dBgW* mpBgW1;
121 /* 0x5D0 */ Mtx mBgMtx1;
122 /* 0x600 */ Mtx mBgMtx2;
123 /* 0x630 */ dBgW* mpBgW2;
124 /* 0x634 */ Mtx mBgMtx3;
125 /* 0x664 */ dBgS_ObjAcch mAcch;
127 /* 0x87C */ dCcD_Stts unused_0x87C; // Declaration needed to generate vtables
128 /* 0x8B8 */ dCcD_Cyl unused_0x8B8; // Declaration needed to generate vtables
129 /* 0x9F4 */ s32 mRotOffsetSwing; // Stop animation swing rotation
130 /* 0x9F8 */ u8 unused_0x9F8[0x4];
131 /* 0x9FC */ s16 mBPartsXRot;
132 /* 0x9FE */ s16 mCPartsYRot;
133 /* 0xA00 */ s16 mDPartsXRot;
134 /* 0xA02 */ s16 mEPartsXRot;
135 /* 0xA04 */ f32 mLiftTotal;
136 /* 0xA08 */ u8 mIsYRotForward;
137 /* 0xA09 */ s8 mYRotDirection;
138 /* 0xA0A */ s16 mRotationAngle;
139 /* 0xA0C */ s16 mLiftRotation;
140 /* 0xA10 */ s32 mRotationTotal;
141 /* 0xA14 */ u8 mMode;
142 /* 0xA15 */ u8 mMoveType;
143 /* 0xA16 */ u8 unused_0xA16;
144 /* 0xA17 */ u8 mStopTimer;
145 /* 0xA18 */ fpc_ProcID mID;
146 /* 0xA1C */ u8 mPhaseIndex;
147 /* 0xA1D */ u8 mPlayerRide;
150 /* 0xA28 */ u8 field_0xA28; // mpRope1 Segment Count?
151 /* 0xA29 */ u8 field_0xA29; // mpRope2 Segment Count?
152 /* 0xA2C */ f32 mRotOffsetForce; // Swing Force applied during stop animation
153 /* 0xA30 */ s16 mYRotOffset; // Y rot Offset on stop animation
154 /* 0xA32 */ s16 mFPartsZRot; // F Parts Z rot on stop animation
155 /* 0xA34 */ u8 unused_0xA34[0x4];
156 /* 0xA38 */ s16 mZRotOffset;
157 /* 0xA3C */ f32 mZRotForce; // Swing Force applied during stop animation
158 /* 0xA40 */ s16 mZRotSwing; // Stop animation swing rotation
159 /* 0xA44 */ Vec mSeMarmPos;
160 /* 0xA50 */ Vec mSeMarmLiftPos;
161 /* 0xA5C */ Vec mSeMarmSwingPos;
162 /* 0xA68 */ u32 mShadowKey;
163};
164
165STATIC_ASSERT(sizeof(daObjMarm_c) == 0xa6c);
166
167
168#endif /* D_A_OBJ_MAGNE_ARM_H */
cPhs__Step
Definition c_phase.h:8
Definition J3DModel.h:43
Definition JPAEmitter.h:101
Definition d_bg_s_acch.h:15
Definition d_bg_s_movebg_actor.h:11
Definition d_bg_s_acch.h:247
Definition d_bg_w.h:257
Definition d_cc_d.h:461
Definition d_cc_d.h:269
Magnetic Arm.
Definition d_a_obj_magne_arm.h:25
void init_typeA_modeMholeOn()
Definition d_a_obj_magne_arm.cpp:508
void typeA_modeMholeOn()
Definition d_a_obj_magne_arm.cpp:519
void getRopeStartPos(cXyz *)
Definition d_a_obj_magne_arm.cpp:67
u8 field_0xA29
Definition d_a_obj_magne_arm.h:151
u8 field_0xA28
Definition d_a_obj_magne_arm.h:150
void typeB_modeEnd()
Definition d_a_obj_magne_arm.cpp:691
u8 mPlayerRide
Definition d_a_obj_magne_arm.h:147
Vec mSeMarmPos
Definition d_a_obj_magne_arm.h:159
void init_typeD_modeWait()
Definition d_a_obj_magne_arm.cpp:813
u32 getSwNo()
Definition d_a_obj_magne_arm.h:113
void seStartLevel_MOVE()
Definition d_a_obj_magne_arm.cpp:987
void init_typeC_modeRotate()
Definition d_a_obj_magne_arm.cpp:759
u8 mStopTimer
Definition d_a_obj_magne_arm.h:144
void typeA_modeLiftDown()
Definition d_a_obj_magne_arm.cpp:527
u8 mMoveType
Definition d_a_obj_magne_arm.h:142
void typeD_modeEnd()
Definition d_a_obj_magne_arm.cpp:928
mDoExt_3DlineMat1_c * mpRope1
Definition d_a_obj_magne_arm.h:148
dBgW * mpBgW2
Definition d_a_obj_magne_arm.h:123
void typeA_modeWait()
Definition d_a_obj_magne_arm.cpp:502
void getBpartsOffset(cXyz *)
Definition d_a_obj_magne_arm.cpp:29
void init_typeD_modeLiftUp()
Definition d_a_obj_magne_arm.cpp:839
s16 mBPartsXRot
Definition d_a_obj_magne_arm.h:131
void init_typeA_modeWait()
Definition d_a_obj_magne_arm.cpp:497
void typeA_modeRotate()
Definition d_a_obj_magne_arm.cpp:542
mDoExt_3DlineMat1_c * mpRope2
Definition d_a_obj_magne_arm.h:149
dBgW * mpBgW1
Definition d_a_obj_magne_arm.h:120
void typeC_modeEnd()
Definition d_a_obj_magne_arm.cpp:809
Vec mSeMarmLiftPos
Definition d_a_obj_magne_arm.h:160
f32 mLiftTotal
Definition d_a_obj_magne_arm.h:135
dBgS_ObjAcch mAcch
Definition d_a_obj_magne_arm.h:125
void typeB_modeLiftUp()
Definition d_a_obj_magne_arm.cpp:615
s16 mLiftRotation
Definition d_a_obj_magne_arm.h:139
void seStartLevel_UP()
Definition d_a_obj_magne_arm.cpp:995
void typeD_modeMholeOn()
Definition d_a_obj_magne_arm.cpp:835
void typeC_modeMholeOn()
Definition d_a_obj_magne_arm.cpp:717
int Execute(Mtx **)
Definition d_a_obj_magne_arm.cpp:387
s32 mRotOffsetSwing
Definition d_a_obj_magne_arm.h:129
void action()
Definition d_a_obj_magne_arm.cpp:441
s16 mCPartsYRot
Definition d_a_obj_magne_arm.h:132
cPhs__Step phase_1()
Definition d_a_obj_magne_arm.cpp:348
void typeD_modeWait()
Definition d_a_obj_magne_arm.cpp:818
Mtx mBgMtx2
Definition d_a_obj_magne_arm.h:122
void getDpartsOffset(cXyz *)
Definition d_a_obj_magne_arm.cpp:37
request_of_phase_process_class mPhase
Definition d_a_obj_magne_arm.h:115
void setMagneHoleEffect()
Definition d_a_obj_magne_arm.cpp:932
int create1st()
Definition d_a_obj_magne_arm.cpp:377
u8 unused_0xA16
Definition d_a_obj_magne_arm.h:143
void typeC_modeWait()
Definition d_a_obj_magne_arm.cpp:700
int Create()
Definition d_a_obj_magne_arm.cpp:162
void typeC_modeLiftDown()
Definition d_a_obj_magne_arm.cpp:746
u8 unused_0x9F8[0x4]
Definition d_a_obj_magne_arm.h:130
Vec mSeMarmSwingPos
Definition d_a_obj_magne_arm.h:161
void endMagneHoleEffect()
Definition d_a_obj_magne_arm.cpp:936
void typeB_modeRotate()
Definition d_a_obj_magne_arm.cpp:652
u8 mIsYRotForward
Definition d_a_obj_magne_arm.h:136
s16 mZRotOffset
Definition d_a_obj_magne_arm.h:156
void init_typeC_modeMholeOn()
Definition d_a_obj_magne_arm.cpp:706
void setBaseMtx()
Definition d_a_obj_magne_arm.cpp:86
void init_typeC_modeLiftUp()
Definition d_a_obj_magne_arm.cpp:721
u32 mShadowKey
Definition d_a_obj_magne_arm.h:162
void init_typeB_modeMholeOn()
Definition d_a_obj_magne_arm.cpp:594
s16 mRotationAngle
Definition d_a_obj_magne_arm.h:138
u8 mMode
Definition d_a_obj_magne_arm.h:141
s8 mYRotDirection
Definition d_a_obj_magne_arm.h:137
void getEpartsOffset(cXyz *)
Definition d_a_obj_magne_arm.cpp:46
s16 mFPartsZRot
Definition d_a_obj_magne_arm.h:154
s16 mZRotSwing
Definition d_a_obj_magne_arm.h:158
u32 getMoveType()
Definition d_a_obj_magne_arm.h:112
cPhs__Step phase_0()
Definition d_a_obj_magne_arm.cpp:335
void seStart_SWING()
Definition d_a_obj_magne_arm.cpp:1003
Mtx mBgMtx3
Definition d_a_obj_magne_arm.h:124
void initBaseMtx()
Definition d_a_obj_magne_arm.cpp:76
mDoExt_btkAnm * mpBtkAnm
Definition d_a_obj_magne_arm.h:118
void typeA_modeLiftUp()
Definition d_a_obj_magne_arm.cpp:523
void typeC_modeLiftUp()
Definition d_a_obj_magne_arm.cpp:727
Mtx mBgMtx1
Definition d_a_obj_magne_arm.h:121
void init_typeB_modeLiftUp()
Definition d_a_obj_magne_arm.cpp:609
fpc_ProcID mID
Definition d_a_obj_magne_arm.h:145
void init_typeA_modeRotate()
Definition d_a_obj_magne_arm.cpp:531
void seStart_STOP()
Definition d_a_obj_magne_arm.cpp:991
int Delete()
Definition d_a_obj_magne_arm.cpp:1062
void init_typeC_modeLiftDown()
Definition d_a_obj_magne_arm.cpp:740
MODE_e
Definition d_a_obj_magne_arm.h:34
@ MODE_ROTATE_e
Definition d_a_obj_magne_arm.h:39
@ MODE_END_e
Definition d_a_obj_magne_arm.h:40
@ MODE_WAIT_e
Definition d_a_obj_magne_arm.h:35
@ MODE_MHOLE_ON_e
Definition d_a_obj_magne_arm.h:36
@ MODE_LIFT_UP_e
Definition d_a_obj_magne_arm.h:37
@ MODE_LIFT_DOWN_e
Definition d_a_obj_magne_arm.h:38
void init_typeD_modeMholeOn()
Definition d_a_obj_magne_arm.cpp:824
dCcD_Stts unused_0x87C
Definition d_a_obj_magne_arm.h:127
JPABaseEmitter * mpEmitter
Definition d_a_obj_magne_arm.h:119
void typeB_modeMholeOn()
Definition d_a_obj_magne_arm.cpp:605
s16 mYRotOffset
Definition d_a_obj_magne_arm.h:153
u8 mPhaseIndex
Definition d_a_obj_magne_arm.h:146
f32 mZRotForce
Definition d_a_obj_magne_arm.h:157
void typeD_modeLiftUp()
Definition d_a_obj_magne_arm.cpp:845
MOVETYPE_e
Definition d_a_obj_magne_arm.h:27
@ MOVETYPE_C_e
Definition d_a_obj_magne_arm.h:30
@ MOVETYPE_A_e
Definition d_a_obj_magne_arm.h:28
@ MOVETYPE_D_e
Definition d_a_obj_magne_arm.h:31
@ MOVETYPE_B_e
Definition d_a_obj_magne_arm.h:29
int Draw()
Definition d_a_obj_magne_arm.cpp:1007
void debugDraw()
Definition d_a_obj_magne_arm.cpp:1058
u8 unused_0xA34[0x4]
Definition d_a_obj_magne_arm.h:155
void typeC_modeRotate()
Definition d_a_obj_magne_arm.cpp:770
s16 mEPartsXRot
Definition d_a_obj_magne_arm.h:134
J3DModel * mpModel[6]
Definition d_a_obj_magne_arm.h:116
void init_typeB_modeWait()
Definition d_a_obj_magne_arm.cpp:583
void typeA_modeEnd()
Definition d_a_obj_magne_arm.cpp:579
void typeB_modeWait()
Definition d_a_obj_magne_arm.cpp:588
void init_typeC_modeWait()
Definition d_a_obj_magne_arm.cpp:695
int CreateHeap()
Definition d_a_obj_magne_arm.cpp:245
void init_typeD_modeLiftDown()
Definition d_a_obj_magne_arm.cpp:858
void calcHimo()
Definition d_a_obj_magne_arm.cpp:944
void init_typeB_modeRotate()
Definition d_a_obj_magne_arm.cpp:641
mDoExt_brkAnm * mpBrkAnm
Definition d_a_obj_magne_arm.h:117
dBgS_AcchCir mAcchCir
Definition d_a_obj_magne_arm.h:126
void typeD_modeLiftDown()
Definition d_a_obj_magne_arm.cpp:864
void init_typeD_modeRotate()
Definition d_a_obj_magne_arm.cpp:878
void typeD_modeRotate()
Definition d_a_obj_magne_arm.cpp:889
void typeB_modeLiftDown()
Definition d_a_obj_magne_arm.cpp:628
s32 mRotationTotal
Definition d_a_obj_magne_arm.h:140
void seStart_MOVESTART()
Definition d_a_obj_magne_arm.cpp:983
s16 mDPartsXRot
Definition d_a_obj_magne_arm.h:133
dCcD_Cyl unused_0x8B8
Definition d_a_obj_magne_arm.h:128
cPhs__Step phase_2()
Definition d_a_obj_magne_arm.cpp:360
f32 mRotOffsetForce
Definition d_a_obj_magne_arm.h:152
void seStartLevel_DOWN()
Definition d_a_obj_magne_arm.cpp:999
void getFpartsOffset(cXyz *)
Definition d_a_obj_magne_arm.cpp:55
Definition m_Do_ext.h:561
Definition m_Do_ext.h:94
Definition m_Do_ext.h:65
STATIC_ASSERT(sizeof(daObjMarm_c)==0xa6c)
f32 Mtx[3][4]
Definition mtx.h:25
signed char s8
Definition types.h:7
unsigned long u32
Definition types.h:12
signed short int s16
Definition types.h:9
float f32
Definition types.h:25
signed long s32
Definition types.h:11
unsigned char u8
Definition types.h:8
u32 fopAcM_GetParamBit(void *ac, u8 shift, u8 bit)
Definition f_op_actor_mng.h:196
unsigned int fpc_ProcID
Definition f_pc_base.h:10
Definition mtx.h:13
Definition c_xyz.h:7
Definition c_phase.h:17