Skip to content

Commit 476c893

Browse files
authored
l7demo_dr, l7low_dr, l7op_demo_dr done / hozelda almost (#2414)
* l7demo_dr, l7low_dr, l7op_demo_dr * hozelda mostly done
1 parent 497c9c4 commit 476c893

File tree

14 files changed

+2264
-2466
lines changed

14 files changed

+2264
-2466
lines changed

configure.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1598,9 +1598,9 @@ def MatchingFor(*versions) -> bool:
15981598
ActorRel(MatchingFor("GZ2E01"), "d_a_tag_spring"),
15991599
ActorRel(MatchingFor("GZ2E01"), "d_a_tag_statue_evt"),
16001600
ActorRel(NonMatching, "d_a_ykgr"),
1601-
ActorRel(NonMatching, "d_a_L7demo_dr"),
1602-
ActorRel(NonMatching, "d_a_L7low_dr"),
1603-
ActorRel(NonMatching, "d_a_L7op_demo_dr"),
1601+
ActorRel(MatchingFor("GZ2E01"), "d_a_L7demo_dr"),
1602+
ActorRel(MatchingFor("GZ2E01"), "d_a_L7low_dr"),
1603+
ActorRel(Equivalent, "d_a_L7op_demo_dr"), # weak func order
16041604
ActorRel(MatchingFor("GZ2E01"), "d_a_b_bh"),
16051605
ActorRel(NonMatching, "d_a_b_bq"),
16061606
ActorRel(Equivalent, "d_a_b_dr"), # weak func order

include/d/actor/d_a_L7demo_dr.h

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

4-
#include "dolphin/types.h"
54
#include "f_op/f_op_actor_mng.h"
65

76
/**
@@ -14,23 +13,35 @@
1413
*/
1514
class daDr_c : public fopAc_ac_c {
1615
public:
17-
/* 805A9238 */ void setAction(void (daDr_c::*)());
16+
typedef void (daDr_c::*actionFn)();
17+
18+
/* 805A9238 */ void setAction(actionFn);
1819
/* 805A92DC */ void action();
1920
/* 805A9304 */ void mtx_set();
20-
/* 805A93D4 */ void draw();
21+
/* 805A93D4 */ int draw();
2122
/* 805A9478 */ void wait();
2223
/* 805A963C */ void pl_walk();
2324
/* 805A9914 */ void pl_turn();
2425
/* 805A9A34 */ void bridge_destroy();
2526
/* 805A9D10 */ void bridge_destroy2();
26-
/* 805A9EE4 */ void execute();
27-
/* 805A9FFC */ void _delete();
28-
/* 805AA084 */ void CreateHeap();
29-
/* 805AA19C */ void check_start();
30-
/* 805AA224 */ void create();
27+
/* 805A9EE4 */ int execute();
28+
/* 805A9FFC */ int _delete();
29+
/* 805AA084 */ int CreateHeap();
30+
/* 805AA19C */ BOOL check_start();
31+
/* 805AA224 */ int create();
3132

32-
private:
33-
/* 0x568 */ u8 field_0x568[0x65c - 0x568];
33+
/* 0x568 */ request_of_phase_process_class mPhase;
34+
/* 0x570 */ mDoExt_McaMorfSO* mpModelMorf;
35+
/* 0x574 */ Z2CreatureEnemy mSound;
36+
/* 0x618 */ cXyz field_0x618;
37+
/* 0x624 */ cXyz mDemoCamEye;
38+
/* 0x630 */ cXyz mDemoCamCenter;
39+
/* 0x63C */ actionFn mAction;
40+
/* 0x648 */ actionFn mPrevAction;
41+
/* 0x654 */ int field_0x654;
42+
/* 0x658 */ u8 mIsHide;
43+
/* 0x659 */ u8 mTimer;
44+
/* 0x65A */ u8 field_0x65a;
3445
};
3546

3647
STATIC_ASSERT(sizeof(daDr_c) == 0x65c);

include/d/actor/d_a_L7low_dr.h

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

4-
#include "dolphin/types.h"
54
#include "f_op/f_op_actor_mng.h"
65

76
/**
@@ -14,18 +13,26 @@
1413
*/
1514
class daL7lowDr_c : public fopAc_ac_c {
1615
public:
17-
/* 805AA5F8 */ void setAction(void (daL7lowDr_c::*)());
16+
typedef void (daL7lowDr_c::*actionFn)();
17+
18+
/* 805AA5F8 */ void setAction(actionFn);
1819
/* 805AA69C */ void action();
19-
/* 805AA748 */ void _delete();
20+
/* 805AA748 */ int _delete();
2021
/* 805AA7B8 */ void mtx_set();
2122
/* 805AA828 */ void fly();
22-
/* 805AABF8 */ void execute();
23-
/* 805AAC5C */ void CreateHeap();
24-
/* 805AAD58 */ void create();
25-
/* 805AAEA8 */ void draw();
23+
/* 805AABF8 */ int execute();
24+
/* 805AAC5C */ int CreateHeap();
25+
/* 805AAD58 */ int create();
26+
/* 805AAEA8 */ int draw();
2627

27-
private:
28-
/* 0x568 */ u8 field_0x568[0x644 - 0x568];
28+
/* 0x568 */ request_of_phase_process_class mPhase;
29+
/* 0x570 */ mDoExt_McaMorfSO* mpModelMorf;
30+
/* 0x574 */ Z2CreatureEnemy mSound;
31+
/* 0x618 */ u8 field_0x618[0x624 - 0x618];
32+
/* 0x624 */ actionFn mAction;
33+
/* 0x630 */ actionFn field_0x630;
34+
/* 0x63C */ int field_0x63c;
35+
/* 0x640 */ u16 field_0x640;
2936
};
3037

3138
STATIC_ASSERT(sizeof(daL7lowDr_c) == 0x644);

include/d/actor/d_a_L7op_demo_dr.h

Lines changed: 37 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
#ifndef D_A_L7OP_DEMO_DR_H
22
#define D_A_L7OP_DEMO_DR_H
33

4-
#include "dolphin/types.h"
54
#include "f_op/f_op_actor_mng.h"
5+
#include "d/d_bg_s_acch.h"
66

77
/**
88
* @ingroup actors-unsorted
@@ -14,25 +14,51 @@
1414
*/
1515
class daL7ODR_c : public fopAc_ac_c {
1616
public:
17-
/* 805AB098 */ void setAction(void (daL7ODR_c::*)());
17+
typedef void (daL7ODR_c::*actionFn)();
18+
19+
/* 805AB098 */ void setAction(actionFn);
1820
/* 805AB13C */ void action();
19-
/* 805AB164 */ void setDrAction(void (daL7ODR_c::*)());
21+
/* 805AB164 */ void setDrAction(actionFn);
2022
/* 805AB208 */ void dr_action();
2123
/* 805AB230 */ void mtx_set();
22-
/* 805AB2E8 */ void draw();
24+
/* 805AB2E8 */ int draw();
2325
/* 805AB3F0 */ void wait();
2426
/* 805AB520 */ void pl_walk();
2527
/* 805ABC2C */ void setZoomOutCamPos(cXyz&, cXyz&, f32);
2628
/* 805ABCF8 */ void dr_wait();
2729
/* 805ABE0C */ void dr_fly();
28-
/* 805AD7B4 */ void execute();
29-
/* 805AD87C */ void _delete();
30-
/* 805AD90C */ void CreateHeap();
31-
/* 805ADA2C */ void check_start();
32-
/* 805ADAC0 */ void create();
30+
/* 805AD7B4 */ int execute();
31+
/* 805AD87C */ int _delete();
32+
/* 805AD90C */ int CreateHeap();
33+
/* 805ADA2C */ BOOL check_start();
34+
/* 805ADAC0 */ int create();
3335

34-
private:
35-
/* 0x568 */ u8 field_0x568[0x8b8 - 0x568];
36+
/* 0x568 */ dBgS_AcchCir mAcchCir;
37+
/* 0x5A8 */ dBgS_ObjAcch mAcch;
38+
/* 0x780 */ request_of_phase_process_class mPhase;
39+
/* 0x788 */ mDoExt_McaMorfSO* mpModelMorf;
40+
/* 0x78C */ Z2CreatureEnemy mSound;
41+
/* 0x830 */ cXyz field_0x830;
42+
/* 0x83C */ cXyz mDemoCamEye;
43+
/* 0x848 */ cXyz mDemoCamCenter;
44+
/* 0x854 */ u8 field_0x854[0x858 - 0x854];
45+
/* 0x858 */ actionFn mAction;
46+
/* 0x864 */ actionFn mPrevAction;
47+
/* 0x870 */ actionFn mDrAction;
48+
/* 0x87C */ actionFn mPrevDrAction;
49+
/* 0x888 */ int field_0x888;
50+
/* 0x88C */ int field_0x88c;
51+
/* 0x890 */ int field_0x890;
52+
/* 0x894 */ u32 mShadowKey;
53+
/* 0x898 */ f32 field_0x898;
54+
/* 0x89C */ f32 field_0x89c;
55+
/* 0x8A0 */ f32 field_0x8a0;
56+
/* 0x8A4 */ f32 field_0x8a4;
57+
/* 0x8A8 */ u8 field_0x8A8[0x8B4 - 0x8A8];
58+
/* 0x8B4 */ u8 field_0x8b4;
59+
/* 0x8B5 */ u8 field_0x8b5;
60+
/* 0x8B6 */ u8 field_0x8b6;
61+
/* 0x8B7 */ u8 field_0x8b7;
3662
};
3763

3864
STATIC_ASSERT(sizeof(daL7ODR_c) == 0x8b8);

include/d/actor/d_a_arrow.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@ class daArrow_c : public fopAc_ac_c {
7171
void setShoot() { fopAcM_SetParam(this, 1); }
7272
void setChargeShoot() { fopAcM_SetParam(this, 2); }
7373

74+
void deleteArrow() { field_0x93f = 1; }
75+
7476
static fopAc_ac_c* makeArrow(fopAc_ac_c* i_actor, u16 param_1) {
7577
return (fopAc_ac_c*)fopAcM_fastCreate(PROC_ARROW,
7678
param_1 << 8,

include/d/actor/d_a_b_gnd.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ class b_gnd_class : public fopEn_enemy_c {
2626
/* 80601960 */ b_gnd_class();
2727

2828
bool checkAttackChance() { return field_0x2740 != 0; }
29+
bool checkPiyo() { return field_0x1e08 != 0; }
30+
bool checkRide() { return mDrawHorse != 0; }
31+
BOOL checkZeldaEndDemoCut() { return FALSE; }
2932

3033
/* 0x05AC */ request_of_phase_process_class mPhaseReq;
3134
/* 0x05B4 */ request_of_phase_process_class mHorsePhaseReq;

include/d/actor/d_a_horse.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,7 @@ class daHorse_c : public fopAc_ac_c {
255255
int callHorse(const cXyz* param_0) { return (this->*m_callHorse)(param_0); }
256256

257257
daHoZelda_c* getZeldaActor() { return (daHoZelda_c*)m_zeldaActorKeep.getActor(); }
258+
void setZeldaActor(fopAc_ac_c* i_actor) { m_zeldaActorKeep.setData(i_actor); }
258259

259260
bool checkTurnStandCamera() const { return checkResetStateFlg0(RFLG0_TURN_STAND_CAMERA); }
260261
bool checkTurnStand() const { return checkResetStateFlg0(RFLG0_TURN_STAND); }
@@ -325,6 +326,14 @@ class daHorse_c : public fopAc_ac_c {
325326

326327
bool checkInputOnR() const { return m_padStickValue > 0.05f; }
327328

329+
void onBagMaterial() {
330+
m_modelData->getMaterialNodePointer(5)->getShape()->show();
331+
}
332+
333+
void offBagMaterial() {
334+
m_modelData->getMaterialNodePointer(5)->getShape()->hide();
335+
}
336+
328337
static u16 const m_footJointTable[];
329338
static f32 const m_callLimitDistance2;
330339

include/d/actor/d_a_hozelda.h

Lines changed: 47 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,33 @@
22
#define D_A_HOZELDA_H
33

44
#include "f_op/f_op_actor_mng.h"
5+
#include "d/actor/d_a_player.h"
56
#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h"
67

78
class daHoZelda_matAnm_c : public J3DMaterialAnm {
89
public:
10+
daHoZelda_matAnm_c() {
11+
init();
12+
}
13+
914
/* 80845EAC */ void init();
1015

11-
/* 80848D54 */ virtual ~daHoZelda_matAnm_c();
16+
void setNowOffsetX(f32 i_offsetX) { mNowOffsetX = i_offsetX; }
17+
void setNowOffsetY(f32 i_offsetY) { mNowOffsetY = i_offsetY; }
18+
f32* getNowOffsetXP() { return &mNowOffsetX; }
19+
f32* getNowOffsetYP() { return &mNowOffsetY; }
20+
21+
/* 80848D54 */ virtual ~daHoZelda_matAnm_c() {}
1222
/* 80845EDC */ virtual void calc(J3DMaterial*) const;
1323

24+
static bool getEyeMoveFlg() { return mEyeMoveFlg; }
25+
static void offEyeMoveFlg() { mEyeMoveFlg = false; }
26+
static void onEyeMoveFlg() { mEyeMoveFlg = true; }
27+
28+
static u8 getMorfFrame() { return mMorfFrame; }
29+
static void setMorfFrame(u8 i_frame) { mMorfFrame = i_frame; }
30+
static void decMorfFrame() { cLib_calcTimer<u8>(&mMorfFrame); }
31+
1432
static bool mEyeMoveFlg;
1533
static u8 mMorfFrame;
1634

@@ -20,7 +38,9 @@ class daHoZelda_matAnm_c : public J3DMaterialAnm {
2038
/* 0x100 */ f32 mNowOffsetY;
2139
};
2240

23-
class daHoZelda_hio_c;
41+
class daHoZelda_hio_c {
42+
public:
43+
};
2444

2545
/**
2646
* @ingroup actors-unsorted
@@ -32,14 +52,14 @@ class daHoZelda_hio_c;
3252
*/
3353
class daHoZelda_c : public fopAc_ac_c {
3454
public:
35-
/* 80846000 */ void createHeap();
55+
/* 80846000 */ int createHeap();
3656
/* 80846718 */ void modelCallBack(u16);
37-
/* 808469B0 */ void create();
57+
/* 808469B0 */ int create();
3858
/* 80846DB0 */ ~daHoZelda_c();
39-
/* 80846F4C */ void setDoubleAnime(f32, f32, f32, u16, u16, f32);
40-
/* 8084718C */ void setUpperAnime(u16);
59+
/* 80846F4C */ int setDoubleAnime(f32, f32, f32, u16, u16, f32);
60+
/* 8084718C */ int setUpperAnime(u16);
4161
/* 80847234 */ void resetUpperAnime();
42-
/* 808472C0 */ void setSingleAnime(u16, f32, f32, s16, f32);
62+
/* 808472C0 */ int setSingleAnime(u16, f32, f32, s16, f32);
4363
/* 80847430 */ void animePlay();
4464
/* 80847574 */ void setEyeBtp(u16);
4565
/* 808475F0 */ void setEyeBtk(u16, u8);
@@ -55,53 +75,48 @@ class daHoZelda_c : public fopAc_ac_c {
5575
/* 80848254 */ void setEyeMove(cXyz const*, s16, s16);
5676
/* 808484B8 */ void setNeckAngle();
5777
/* 80848774 */ void searchBodyAngle();
58-
/* 808489CC */ void execute();
59-
/* 80848B64 */ void draw();
78+
/* 808489CC */ int execute();
79+
/* 80848B64 */ int draw();
6080

6181
MtxP getRightHandMtx() { return mpZeldaModel->getAnmMtx(22); }
6282
MtxP getRightFingerMtx() { return mpZeldaModel->getAnmMtx(23); }
6383

64-
u8 checkBowMode() const { return field_0x6d8; }
65-
void setDamageInit() { field_0x6db = 1; }
66-
u8 checkSingleRide() const { return field_0x6df; }
84+
u8 checkBowMode() const { return mBowMode; }
85+
void setDamageInit() { mDamageInit = 1; }
86+
u8 checkSingleRide() const { return mIsSingleRide; }
6787

6888
/* 0x568 */ request_of_phase_process_class mPhase;
6989
/* 0x570 */ J3DModel* mpZeldaModel;
7090
/* 0x574 */ J3DModel* mpBowModel;
7191
/* 0x578 */ mDoExt_btpAnm mEyeBtp;
7292
/* 0x590 */ mDoExt_btkAnm mEyeBtk;
7393
/* 0x5A8 */ mDoExt_MtxCalcAnmBlendTblOld* field_0x5a8;
74-
/* 0x5AC */ mDoExt_AnmRatioPack field_0x5ac[3];
94+
/* 0x5AC */ mDoExt_AnmRatioPack mAnmRatioPack[3];
7595
/* 0x5C4 */ mDoExt_MtxCalcOldFrame* field_0x5c4;
76-
/* 0x5C8 */ daPy_frameCtrl_c field_0x5c8[3];
77-
/* 0x610 */ daHoZelda_matAnm_c* field_0x610[2];
96+
/* 0x5C8 */ daPy_frameCtrl_c mFrameCtrl[3];
97+
/* 0x610 */ daHoZelda_matAnm_c* mpMatAnm[2];
7898
/* 0x618 */ Z2Creature mSound;
7999
/* 0x6A8 */ mDoExt_bckAnm mBowBck;
80100
/* 0x6C4 */ daPy_actorKeep_c mArrowAcKeep;
81-
/* 0x6CC */ daPy_actorKeep_c field_0x6cc;
101+
/* 0x6CC */ daPy_actorKeep_c mGndAcKeep;
82102
/* 0x6D4 */ daHoZelda_hio_c* mpHIO;
83-
/* 0x6D8 */ u8 field_0x6d8;
84-
/* 0x6D9 */ u8 field_0x6d9;
103+
/* 0x6D8 */ u8 mBowMode;
104+
/* 0x6D9 */ u8 mAnmTimer;
85105
/* 0x6DA */ u8 field_0x6da;
86-
/* 0x6DB */ u8 field_0x6db;
87-
/* 0x6DC */ u8 field_0x6DC[0x6DD - 0x6DC];
106+
/* 0x6DB */ u8 mDamageInit;
107+
/* 0x6DC */ u8 field_0x6dc;
88108
/* 0x6DD */ u8 field_0x6dd;
89109
/* 0x6DE */ u8 field_0x6de;
90-
/* 0x6DF */ u8 field_0x6df;
110+
/* 0x6DF */ u8 mIsSingleRide;
91111
/* 0x6E0 */ s8 mReverb;
92112
/* 0x6E1 */ u8 field_0x6E1[0x6E4 - 0x6E1];
93-
/* 0x6E4 */ u16 field_0x6e4;
94-
/* 0x6E6 */ u16 field_0x6e6;
113+
/* 0x6E4 */ u16 field_0x6e4[2];
95114
/* 0x6E8 */ u16 mUpperAnmID;
96-
/* 0x6EA */ s16 mBowAnmID;
97-
/* 0x6EC */ s16 field_0x6ec;
98-
/* 0x6EE */ s16 field_0x6ee;
99-
/* 0x6F0 */ u8 field_0x6F0[0x6F2 - 0x6F0];
100-
/* 0x6F2 */ s16 field_0x6f2;
101-
/* 0x6F4 */ s16 field_0x6f4;
102-
/* 0x6F6 */ u8 field_0x6F6[0x6F8 - 0x6F6];
103-
/* 0x6F8 */ Vec field_0x6f8;
104-
/* 0x704 */ Vec* mpRideOffset;
115+
/* 0x6EA */ u16 mBowAnmID;
116+
/* 0x6EC */ csXyz mNeckAngle;
117+
/* 0x6F2 */ csXyz mBodyAngle;
118+
/* 0x6F8 */ cXyz field_0x6f8;
119+
/* 0x704 */ const Vec* mpRideOffset;
105120
};
106121

107122
#endif /* D_A_HOZELDA_H */

include/d/actor/d_a_obj_lv7bridge.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,13 @@ class daObjLv7Brg_c : public fopAc_ac_c {
2727
/* 80C87304 */ void Draw();
2828
/* 80C87458 */ void Delete();
2929

30+
void setDestroyAnmA() { field_0xa94 = 0; }
31+
void setDestroyAnmB() { field_0xa94 = 1; }
32+
3033
private:
31-
/* 0x568 */ u8 field_0x568[0xaa4 - 0x568];
34+
/* 0x568 */ u8 field_0x568[0xa94 - 0x568];
35+
/* 0xA94 */ u8 field_0xa94;
36+
/* 0xA95 */ u8 field_0xa95[0xaa4 - 0xA95];
3237
};
3338

3439
STATIC_ASSERT(sizeof(daObjLv7Brg_c) == 0xaa4);

0 commit comments

Comments
 (0)