Skip to content

Commit 4df9e0c

Browse files
authored
d_a_e_ymb work (#2538)
* initial work * functions over halfway decompiled * ymb almost equivalent * PR cleanup
1 parent 9f65aa9 commit 4df9e0c

File tree

3 files changed

+3165
-2312
lines changed

3 files changed

+3165
-2312
lines changed

include/d/actor/d_a_e_ymb.h

Lines changed: 106 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
#ifndef D_A_E_YMB_H
22
#define D_A_E_YMB_H
33

4+
#include "d/d_cc_d.h"
5+
#include "d/d_cc_uty.h"
46
#include "f_op/f_op_actor_mng.h"
7+
#include "d/d_bg_w.h"
58

69
/**
710
* @ingroup actors-enemies
@@ -13,11 +16,11 @@
1316
*/
1417
class daE_YMB_c : public fopEn_enemy_c {
1518
public:
16-
/* 8081615C */ void ctrlJoint(J3DJoint*, J3DModel*);
17-
/* 808164F0 */ void JointCallBack(J3DJoint*, int);
18-
/* 80816554 */ void draw();
19+
/* 8081615C */ int ctrlJoint(J3DJoint*, J3DModel*);
20+
/* 808164F0 */ static int JointCallBack(J3DJoint*, int);
21+
/* 80816554 */ int draw();
1922
/* 8081697C */ void setBck(int, u8, f32, f32);
20-
/* 80816A20 */ void checkBck(int);
23+
/* 80816A20 */ BOOL checkBck(int);
2124
/* 80816A7C */ void setActionMode(int, int);
2225
/* 80816A88 */ void setLastDamage();
2326
/* 80816B7C */ void damage_check();
@@ -41,7 +44,7 @@ class daE_YMB_c : public fopEn_enemy_c {
4144
/* 80818328 */ void setBitePos(int);
4245
/* 80818370 */ void setInclination();
4346
/* 80818518 */ void setBodyAngle();
44-
/* 80818930 */ void checkWolfLockIn();
47+
/* 80818930 */ bool checkWolfLockIn();
4548
/* 80818AE8 */ void executeFly();
4649
/* 80819610 */ void executeFlyAttack();
4750
/* 80819FD0 */ void executeRunAway();
@@ -59,36 +62,123 @@ class daE_YMB_c : public fopEn_enemy_c {
5962
/* 8081D4D8 */ void setCreateDrop();
6063
/* 8081D594 */ void executeDeath();
6164
/* 8081DBD0 */ void demo_skip(int);
62-
/* 8081DDE0 */ void DemoSkipCallBack(void*, int);
65+
/* 8081DDE0 */ static int DemoSkipCallBack(void*, int);
6366
/* 8081DE14 */ void calcLakeDemoPlayerPos();
6467
/* 8081DE84 */ void executeLakeDemo();
6568
/* 8081E5B4 */ void executeStartDemo();
66-
/* 8081F140 */ void checkStartBattleDemo();
69+
/* 8081F140 */ bool checkStartBattleDemo();
6770
/* 8081F2E0 */ void executeBattleDemo();
6871
/* 8081FAC8 */ void action();
6972
/* 8081FF88 */ void mtx_set();
7073
/* 808200A0 */ void getBellyBitePos(cXyz*);
71-
/* 80820128 */ void getDownLockPoint();
74+
/* 80820128 */ int getDownLockPoint();
7275
/* 808203D8 */ void setAttentionPos();
7376
/* 80820668 */ void cc_set();
74-
/* 808207AC */ void execute();
75-
/* 80820A40 */ void _delete();
76-
/* 80820AF0 */ void CreateHeap();
77-
/* 80820DD0 */ void create();
77+
/* 808207AC */ int execute();
78+
/* 80820A40 */ int _delete();
79+
/* 80820AF0 */ int CreateHeap();
80+
/* 80820DD0 */ cPhs__Step create();
7881

7982
int getMaxLockAttack() { return 6; }
8083
u8 getSwitchBit() { return mSwitchBit; }
8184

82-
/* 0x5AC */ u8 field_0x5ac[0x6C0 - 0x5ac];
83-
/* 0x6C0 */ u8 mSwitchBit;
84-
/* 0x6C1 */ u8 field_0x6c1[0x1524 - 0x6C1];
85+
/* 0x05AC */ request_of_phase_process_class mPhase;
86+
/* 0x05B4 */ mDoExt_invisibleModel mInvisModel;
87+
/* 0x05BC */ mDoExt_McaMorfSO* mpModelMorf;
88+
/* 0x05C0 */ mDoExt_brkAnm* mpBrkAnm;
89+
/* 0x05C4 */ Z2CreatureEnemy mSound;
90+
/* 0x0668 */ f32 field_0x668[6];
91+
/* 0x0680 */ int field_0x680[6];
92+
/* 0x0698 */ int field_0x698;
93+
/* 0x069C */ cXyz field_0x69c;
94+
/* 0x06A8 */ cXyz field_0x6a8;
95+
/* 0x06B4 */ int mAction;
96+
/* 0x06B8 */ int mMode;
97+
/* 0x06BC */ u32 mShadowKey;
98+
/* 0x06C0 */ u8 mSwitchBit;
99+
/* 0x06C1 */ u8 field_0x6c1;
100+
/* 0x06C4 */ f32 field_0x6c4;
101+
/* 0x06C8 */ f32 field_0x6c8;
102+
/* 0x06CC */ f32 field_0x6cc;
103+
/* 0x06D0 */ f32 field_0x6d0;
104+
/* 0x06D4 */ f32 field_0x6d4;
105+
/* 0x06D8 */ f32 field_0x6d8;
106+
/* 0x06DC */ f32 field_0x6dc;
107+
/* 0x06E0 */ f32 field_0x6e0;
108+
/* 0x06E4 */ s16 field_0x6e4;
109+
/* 0x06E6 */ s16 field_0x6e6;
110+
/* 0x06E8 */ s16 field_0x6e8;
111+
/* 0x06EA */ s16 field_0x6ea;
112+
/* 0x06EC */ int field_0x6ec;
113+
/* 0x06F0 */ int field_0x6f0;
114+
/* 0x06F4 */ int field_0x6f4;
115+
/* 0x06F8 */ int field_0x6f8;
116+
/* 0x06FC */ int field_0x6fc;
117+
/* 0x0700 */ int field_0x700;
118+
/* 0x0704 */ int field_0x704;
119+
/* 0x0708 */ int field_0x708;
120+
/* 0x070C */ int field_0x70c;
121+
/* 0x0710 */ u8 field_0x710;
122+
/* 0x0711 */ u8 field_0x711;
123+
/* 0x0712 */ u8 field_0x712;
124+
/* 0x0713 */ u8 field_0x713;
125+
/* 0x0714 */ u8 field_0x714;
126+
/* 0x0715 */ u8 field_0x715;
127+
/* 0x0716 */ u8 field_0x716;
128+
/* 0x0717 */ u8 field_0x717;
129+
/* 0x0718 */ u8 field_0x718;
130+
/* 0x0719 */ u8 field_0x719[0x71f - 0x719];
131+
/* 0x071F */ u8 field_0x71f;
132+
/* 0x0720 */ u8 field_0x720;
133+
/* 0x0721 */ u8 field_0x721;
134+
/* 0x0722 */ u8 field_0x722;
135+
/* 0x0723 */ u8 field_0x723;
136+
/* 0x0724 */ u8 field_0x724;
137+
/* 0x0725 */ u8 field_0x725;
138+
/* 0x0728 */ cXyz mDemoCamEye;
139+
/* 0x0734 */ cXyz mDemoCamCenter;
140+
/* 0x0740 */ cXyz field_0x740;
141+
/* 0x074C */ cXyz field_0x74c;
142+
/* 0x0758 */ f32 mDemoCamFovy;
143+
/* 0x075C */ f32 field_0x75c;
144+
/* 0x0760 */ s16 field_0x760;
145+
/* 0x0762 */ s16 field_0x762;
146+
/* 0x0764 */ u8 field_0x764;
147+
/* 0x0765 */ u8 field_0x765;
148+
/* 0x0768 */ Mtx field_0x768;
149+
/* 0x0798 */ dBgW* mpBgW;
150+
/* 0x079C */ dBgS_GndChk mGndChk;
151+
/* 0x07F0 */ dCcD_Stts mStts;
152+
/* 0x082C */ dCcD_Sph field_0x82c[2];
153+
/* 0x0A9C */ dCcD_Sph field_0xa9c;
154+
/* 0x0BD4 */ dCcD_Sph field_0xbd4[6];
155+
/* 0x1324 */ dCcD_Sph field_0x1324;
156+
/* 0x145C */ dCcU_AtInfo mAtInfo;
157+
/* 0x1480 */ u32 mElecParticles[4];
158+
/* 0x1490 */ u32 mMidnaBindParticles[3];
159+
/* 0x149C */ u8 field_0x149c[0x14d8 - 0x149c];
160+
/* 0x14D8 */ u32 mWaterParticles1[6];
161+
/* 0x14F0 */ u32 mWaterParticles2[7];
162+
/* 0x150C */ u32 mDownHamonParticles[2];
163+
/* 0x1514 */ u32 mBlurParticles[2];
164+
/* 0x151C */ u32 mDamageParticle;
165+
/* 0x1520 */ u8 field_0x1520;
85166
};
86167

87168
STATIC_ASSERT(sizeof(daE_YMB_c) == 0x1524);
88169

89170
struct daE_YMB_HIO_c {
171+
public:
90172
/* 8081610C */ daE_YMB_HIO_c();
91-
/* 80821460 */ ~daE_YMB_HIO_c();
173+
/* 80821460 */ virtual ~daE_YMB_HIO_c() {}
174+
175+
/* 0x04 */ s8 field_0x4;
176+
/* 0x08 */ f32 model_size; // モデルサイズ (Model Size)
177+
/* 0x0C */ f32 fly_movement_speed; // 飛行移動速度 (Fly Movement Speed)
178+
/* 0x10 */ f32 swim_attack_speed; // 泳ぎ攻撃速度 (Swim Attack Speed)
179+
/* 0x14 */ f32 fly_attack_speed; // 飛行攻撃速度 (Fly Attack Speed)
180+
/* 0x18 */ f32 rollover_time; // ひっくり返り時間 (Rollover Time)
181+
/* 0x1C */ f32 fly_height_adjust; // 飛行高度-加減値 (Fly Height Adjust)
92182
};
93183

94184
#endif /* D_A_E_YMB_H */

include/d/actor/d_a_obj_drop.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,10 @@ class daObjDrop_c : public fopAc_ac_c {
5555
u8 getYmSwbit() { return fopAcM_GetParamBit(this, 8, 8); }
5656
u8 getSave() { return fopAcM_GetParamBit(this, 0, 6); }
5757

58+
void setPos(cXyz i_pos) { current.pos = i_pos; }
5859
void setDemoMode(u8 i_mode) { mDemoMode = i_mode; }
5960
void setMode(u8 i_mode) { mMode = i_mode; }
61+
void setAppear() { mAppear = 1; }
6062
u8 chkDemoMode() { return mDemoMode; }
6163

6264
/* 0x568 */ cXyz mLinePos[3];

0 commit comments

Comments
 (0)