Skip to content

Commit 15a807b

Browse files
e_rdy mostly done (#2324)
* e_rdy work * e_rdy work * e_rdy work * e_rdy mostly done * e_rdy fix hit direction
1 parent 3ad60c1 commit 15a807b

File tree

10 files changed

+4982
-2554
lines changed

10 files changed

+4982
-2554
lines changed

include/d/actor/d_a_e_rdy.h

Lines changed: 178 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
11
#ifndef D_A_E_RDY_H
22
#define D_A_E_RDY_H
33

4-
#include "f_op/f_op_actor_mng.h"
4+
#include "SSystem/SComponent/c_phase.h"
5+
#include "d/d_bg_s_acch.h"
6+
#include "d/d_cc_d.h"
7+
#include "d/d_cc_uty.h"
8+
#include "d/d_jnt_col.h"
9+
#include "d/d_msg_flow.h"
10+
#include "d/d_path.h"
11+
#include "f_op/f_op_actor.h"
512

613
/**
714
* @ingroup actors-enemies
@@ -15,20 +22,183 @@ class e_rdy_class : public fopEn_enemy_c {
1522
public:
1623
/* 80779340 */ e_rdy_class();
1724

18-
/* 0x05AC */ u8 field_0x5ac[0xa8f - 0x5ac];
19-
/* 0x0A8F */ u8 field_0xa8f;
20-
/* 0x0A90 */ u8 field_0xa90[0x1370 - 0xa90];
21-
/* 0x1370 */ s16 field_0x1370;
22-
/* 0x1372 */ s16 field_0x1372;
23-
/* 0x1374 */ u8 field_0x1374[0x142c - 0x1374];
25+
/* 0x05AC */ request_of_phase_process_class mPhase;
26+
/* 0x05B4 */ s16 mMode;
27+
/* 0x05B6 */ u8 field_0x5b6;
28+
/* 0x05B7 */ u8 field_0x5b7;
29+
/* 0x05B8 */ u8 field_0x5b8;
30+
/* 0x05B9 */ u8 mSwBit;
31+
/* 0x05BA */ u8 mWeaponType;
32+
/* 0x05BB */ s8 field_0x5bb;
33+
/* 0x05BC */ cXyz field_0x5bc;
34+
/* 0x05C8 */ s16 mTargetAngleY;
35+
/* 0x05CC */ mDoExt_McaMorfSO* mpMorf;
36+
/* 0x05D0 */ Z2CreatureEnemy mSound;
37+
/* 0x0674 */ char* mpArcName;
38+
/* 0x0678 */ int mAnm;
39+
/* 0x067C */ u8 field_0x67c[0x680 - 0x67c];
40+
/* 0x0680 */ dJntCol_c mJntCol;
41+
/* 0x0690 */ J3DModel* mpWeaponModel;
42+
/* 0x0694 */ mDoExt_McaMorfSO* mpBowMorf;
43+
/* 0x0698 */ J3DModel* mpHawkGrassModel;
44+
/* 0x069C */ s8 mIsHoldingGrass;
45+
/* 0x06A0 */ dKy_tevstr_c mHawkGrassTevStr;
46+
/* 0x0A28 */ J3DModel* mpEyeModel[2];
47+
/* 0x0A30 */ f32 mEyeScale;
48+
/* 0x0A34 */ f32 mTargetEyeScale;
49+
/* 0x0A38 */ s8 mIsDying;
50+
/* 0x0A3C */ f32 mDyingTevColor;
51+
/* 0x0A40 */ s16 mCounter;
52+
/* 0x0A42 */ s16 mAction;
53+
/* 0x0A44 */ s16 mPrevAction;
54+
/* 0x0A48 */ f32 mPlayerDist;
55+
/* 0x0A4C */ s16 mPlayerAngle;
56+
/* 0x0A50 */ f32 mPlayerCheckDist;
57+
/* 0x0A54 */ f32 mWaterHeight;
58+
/* 0x0A58 */ u32 mShadowKey;
59+
/* 0x0A5C */ fpc_ProcID mKargarokID;
60+
/* 0x0A60 */ s16 mTimer[4];
61+
/* 0x0A68 */ s16 mIFrameTimer;
62+
/* 0x0A6A */ u8 field_0xa6a[0xa6c - 0xa6a];
63+
/* 0x0A6C */ s16 field_0xa6c;
64+
/* 0x0A6E */ s16 field_0xa6e;
65+
/* 0x0A70 */ u8 field_0xa70;
66+
/* 0x0A71 */ s8 field_0xa71;
67+
/* 0x0A72 */ s8 mHasArrow;
68+
/* 0x0A73 */ s8 mArrowFired;
69+
/* 0x0A74 */ s8 field_0xa74;
70+
/* 0x0A76 */ s16 mBowRotationTimer;
71+
/* 0x0A78 */ s16 mBowRotation;
72+
/* 0x0A7A */ u8 field_0xa7a[0xa7b - 0xa7a];
73+
/* 0x0A7B */ s8 field_0xa7b;
74+
/* 0x0A7C */ s8 field_0xa7c;
75+
/* 0x0A7D */ s8 mCollisionEnabled;
76+
/* 0x0A7E */ u8 mFadeTimer;
77+
/* 0x0A80 */ cXyz mKargarokPos;
78+
/* 0x0A8C */ s8 mRideState;
79+
/* 0x0A8D */ u8 field_0xa8d[0xa8e - 0xa8d];
80+
/* 0x0A8E */ s8 field_0xa8e;
81+
/* 0x0A8F */ s8 field_0xa8f;
82+
/* 0x0A90 */ f32 mJumpHeight;
83+
/* 0x0A94 */ f32 mJumpSpeed;
84+
/* 0x0A98 */ s8 field_0xa98;
85+
/* 0x0A9A */ s16 field_0xa9a;
86+
/* 0x0A9C */ s16 field_0xa9c;
87+
/* 0x0A9E */ s16 field_0xa9e;
88+
/* 0x0AA0 */ s16 field_0xaa0;
89+
/* 0x0AA4 */ cXyz mArrowTarget;
90+
/* 0x0AB0 */ u8 field_0xab0[0xabc - 0xab0];
91+
/* 0x0ABC */ f32 field_0xabc;
92+
/* 0x0AC0 */ f32 mKnockback;
93+
/* 0x0AC4 */ s16 mHitDirection;
94+
/* 0x0AC6 */ s16 field_0xac6;
95+
/* 0x0AC8 */ s8 field_0xac8;
96+
/* 0x0AC9 */ u8 field_0xac9[0xadc - 0xac9];
97+
/* 0x0ADC */ csXyz field_0xadc;
98+
/* 0x0AE2 */ csXyz field_0xae2;
99+
/* 0x0AE8 */ csXyz field_0xae8;
100+
/* 0x0AEE */ s8 field_0xaee;
101+
/* 0x0AEF */ s8 mIsUpsideDown;
102+
/* 0x0AF0 */ u32 field_0xaf0;
103+
/* 0x0AF4 */ f32 field_0xaf4;
104+
/* 0x0AF8 */ s16 field_0xaf8;
105+
/* 0x0AFC */ f32 field_0xafc;
106+
/* 0x0B00 */ s16 field_0xb00;
107+
/* 0x0B02 */ csXyz field_0xb02[11];
108+
/* 0x0B44 */ csXyz field_0xb44[11];
109+
/* 0x0B88 */ f32 field_0xb88;
110+
/* 0x0B8C */ s16 field_0xb8c[11];
111+
/* 0x0BA2 */ s16 field_0xba2[4];
112+
/* 0x0BAA */ s16 field_0xbaa;
113+
/* 0x0BAC */ s16 field_0xbac;
114+
/* 0x0BAE */ s16 field_0xbae;
115+
/* 0x0BB0 */ s16 field_0xbb0;
116+
/* 0x0BB2 */ u8 field_0xbb2[0xbb4 - 0xbb2];
117+
/* 0x0BB4 */ s16 field_0xbb4;
118+
/* 0x0BB6 */ s16 field_0xbb6;
119+
/* 0x0BB8 */ u8 field_0xbb8[0xbbc - 0xbb8];
120+
/* 0x0BBC */ f32 field_0xbbc;
121+
/* 0x0BC0 */ s16 field_0xbc0;
122+
/* 0x0BC2 */ u8 field_0xbc2[0xbc8 - 0xbc2];
123+
/* 0x0BC8 */ s16 field_0xbc8;
124+
/* 0x0BCA */ s8 field_0xbca;
125+
/* 0x0BCB */ s8 mKargarokDeleteTimer;
126+
/* 0x0BCC */ dPath* mpPath;
127+
/* 0x0BD0 */ s8 mPathIndex;
128+
/* 0x0BD1 */ s8 mPathDirection;
129+
/* 0x0BD4 */ dBgS_AcchCir mAcchCir;
130+
/* 0x0C14 */ dBgS_ObjAcch mAcch;
131+
/* 0x0DEC */ dCcD_Stts mCcStts;
132+
/* 0x0E28 */ dCcD_Sph mCcSph[3];
133+
/* 0x11D0 */ dCcD_Sph mAtSph;
134+
/* 0x1308 */ dCcU_AtInfo mAtInfo;
135+
/* 0x132C */ bool mHIOInit;
136+
/* 0x132D */ s8 mGroundHit;
137+
/* 0x1330 */ u32 mSmokeKey1;
138+
/* 0x1334 */ u32 mSmokeKey2;
139+
/* 0x1338 */ u32 mWaterParticleKey[3];
140+
/* 0x1344 */ u32 mFireParticleKey[2];
141+
/* 0x134C */ cXyz field_0x134c;
142+
/* 0x1358 */ cXyz field_0x1358;
143+
/* 0x1364 */ s8 mInWater;
144+
/* 0x1365 */ s8 field_0x1365;
145+
/* 0x1366 */ s8 field_0x1366;
146+
/* 0x1367 */ s8 mDrawEyeModel;
147+
/* 0x1368 */ u8 field_0x1368;
148+
/* 0x1369 */ s8 field_0x1369;
149+
/* 0x136A */ u8 field_0x136a[0x136b - 0x136a];
150+
/* 0x136B */ s8 mParticleTimer;
151+
/* 0x136C */ int mSwBit2;
152+
/* 0x1370 */ s16 mDemoMode;
153+
/* 0x1372 */ s16 mDemoTimer;
154+
/* 0x1374 */ s16 mCamBankPhase;
155+
/* 0x1378 */ cXyz mCamEye;
156+
/* 0x1384 */ cXyz mCamCenter;
157+
/* 0x1390 */ cXyz mCamEyeTarget;
158+
/* 0x139C */ cXyz mCamCenterTarget;
159+
/* 0x13A8 */ cXyz mCamEyeSpeed;
160+
/* 0x13B4 */ cXyz mCamCenterSpeed;
161+
/* 0x13C0 */ f32 mCamDist;
162+
/* 0x13C4 */ u8 field_0x13c4[0x13c8 - 0x13c4];
163+
/* 0x13C8 */ f32 mCamFovy;
164+
/* 0x13CC */ f32 mCamBank;
165+
/* 0x13D0 */ f32 mCamSpeed;
166+
/* 0x13D4 */ s16 field_0x13d4;
167+
/* 0x13D6 */ u8 field_0x13d6[0x13e0 - 0x13d6];
168+
/* 0x13E0 */ dMsgFlow_c mMsgFlow;
24169
};
25170

26171
STATIC_ASSERT(sizeof(e_rdy_class) == 0x142C);
27172

28173
class daE_RDY_HIO_c {
174+
public:
29175
/* 8076BDCC */ daE_RDY_HIO_c();
30-
/* 80779880 */ ~daE_RDY_HIO_c();
176+
/* 80779880 */ virtual ~daE_RDY_HIO_c() {}
177+
178+
/* 0x04 */ s8 field_0x4;
179+
/* 0x08 */ f32 mScale;
180+
/* 0x0C */ f32 field_0xc;
181+
/* 0x10 */ f32 mWalkSpeed;
182+
/* 0x14 */ f32 mRunSpeed;
183+
/* 0x18 */ f32 field_0x18;
184+
/* 0x1C */ f32 field_0x1c;
185+
/* 0x20 */ f32 mAttackAnmSpeed;
186+
/* 0x24 */ s16 field_0x24;
187+
/* 0x28 */ f32 field_0x28;
188+
/* 0x2C */ f32 field_0x2c;
189+
/* 0x30 */ f32 field_0x30;
190+
/* 0x34 */ f32 field_0x34;
191+
/* 0x38 */ u8 field_0x38;
192+
/* 0x39 */ u8 field_0x39;
193+
/* 0x3A */ u8 mDrawEyeModel;
194+
/* 0x3B */ u8 field_0x3b;
195+
/* 0x3C */ f32 field_0x3c;
196+
/* 0x40 */ f32 field_0x40;
197+
/* 0x44 */ f32 field_0x44;
198+
/* 0x48 */ f32 field_0x48;
199+
/* 0x4C */ f32 field_0x4c;
31200
};
32201

202+
STATIC_ASSERT(sizeof(daE_RDY_HIO_c) == 0x50);
33203

34204
#endif /* D_A_E_RDY_H */

include/d/actor/d_a_e_yc.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ class e_yc_class : public fopEn_enemy_c {
4343
/* 0x6A2 */ s16 mTimer[4];
4444
/* 0x6AA */ s16 mCcDisableTimer;
4545
/* 0x6AC */ u32 mRiderID;
46-
/* 0x6B0 */ u8 field_0x6b0[2];
46+
/* 0x6B0 */ u8 field_0x6b0;
47+
/* 0x6B1 */ u8 field_0x6b1;
4748
/* 0x6B2 */ s8 mNoDrawFlag;
4849
/* 0x6B3 */ s8 mWolfBiteDamageCount;
4950
/* 0x6B4 */ dBgS_AcchCir mAcchCir;

include/d/actor/d_a_kago.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,12 @@ class daKago_c : public fopAc_ac_c {
9393
field_0x744 = 0;
9494
}
9595

96+
void setEvent2() {
97+
mIsFlying = 0;
98+
field_0x740 = 6;
99+
field_0x744 = 0;
100+
}
101+
96102
void setKagoPath(u8 i_pathNo) {
97103
if (i_pathNo != 0xFF) {
98104
field_0x76c = dPath_GetRoomPath(i_pathNo, fopAcM_GetRoomNo(this));

include/d/actor/d_a_player.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,7 @@ class daPy_py_c : public fopAc_ac_c {
469469
ERFLG0_UNK_8000000 = 0x8000000,
470470
ERFLG0_UNK_4000000 = 0x4000000,
471471
ERFLG0_BOSS_ROOM_WAIT = 0x2000000,
472-
ERFLG0_UNK_1000000 = 0x1000000,
472+
ERFLG0_ENEMY_DEAD = 0x1000000,
473473
ERFLG0_UNK_800000 = 0x800000,
474474
ERFLG0_BEE_FOLLOW = 0x400000,
475475
ERFLG0_UNK_200000 = 0x200000,
@@ -1037,6 +1037,7 @@ class daPy_py_c : public fopAc_ac_c {
10371037
void onNeckSearchWide() { onEndResetFlg0(ERFLG0_UNK_400); }
10381038
void offPressedDamage() { offNoResetFlg2(FLG2_PRESSED_DAMAGE); }
10391039
void onForceSubjectCancel() { onEndResetFlg0(ERFLG0_FORCE_SUBJECT_CANCEL); }
1040+
void onEnemyDead() { onEndResetFlg0(ERFLG0_ENEMY_DEAD); }
10401041

10411042
u32 checkBoarSingleBattle() const { return checkNoResetFlg2(daPy_FLG2(FLG2_UNK_1000000 | FLG2_BOAR_SINGLE_BATTLE)); }
10421043
u32 checkWolfDashAutoJump() const { return checkNoResetFlg2(FLG2_WOLF_DASH_AUTO_JUMP); }

include/f_op/f_op_actor.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,7 @@ class fopEn_enemy_c : public fopAc_ac_c {
261261
bool checkWolfNoLock() const { return mFlags & 0x200; }
262262
bool checkHeadLockFlg() const { return mFlags & 0x80; }
263263
bool checkWolfBiteDamage() const { return mFlags & 0x40; }
264+
bool checkWolfDownPullFlg() const { return mFlags & 0x10; }
264265
bool checkDownFlg() const { return mFlags & 0x1; }
265266
bool checkCutDownHitFlg() const { return mFlags & 0x2; }
266267
bool checkDeadFlg() const { return mFlags & 0x8; }

include/m_Do/m_Do_graphic.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,9 @@ class mDoGph_gInf_c {
4545
/* 80007F90 */ static void beginRender();
4646
/* 800080D0 */ static void fadeOut(f32);
4747
/* 80007FD8 */ static void fadeOut(f32, _GXColor&);
48-
/* 807DFAB4 */ static void fadeIn(f32, _GXColor&);
48+
/* 807DFAB4 */ static void fadeIn(f32 fadeSpeed, _GXColor& fadeColor) {
49+
fadeOut(-fadeSpeed, fadeColor);
50+
}
4951
/* 80008028 */ static void fadeOut_f(f32, _GXColor&);
5052
/* 800080A0 */ static void onBlure(const Mtx);
5153
/* 80008078 */ static void onBlure();

src/d/actor/d_a_alink_link.inc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2709,7 +2709,7 @@ int daAlink_c::execute() {
27092709
}
27102710
}
27112711

2712-
if (checkEndResetFlg0(ERFLG0_UNK_1000000) && mEquipItem == 0x103) {
2712+
if (checkEndResetFlg0(ERFLG0_ENEMY_DEAD) && mEquipItem == 0x103) {
27132713
mSwordFlourishTimer = daAlinkHIO_cut_c0::m.mFlourishTime;
27142714
}
27152715

0 commit comments

Comments
 (0)