Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -1624,7 +1624,7 @@ def MatchingFor(*versions) -> bool:
ActorRel(MatchingFor("GZ2E01"), "d_a_b_zant_sima"),
ActorRel(NonMatching, "d_a_balloon_2D"),
ActorRel(NonMatching, "d_a_bullet"),
ActorRel(NonMatching, "d_a_coach_2D"),
ActorRel(Equivalent, "d_a_coach_2D"), # weak func order
ActorRel(MatchingFor("GZ2E01"), "d_a_coach_fire"),
ActorRel(Equivalent, "d_a_cow"),
ActorRel(NonMatching, "d_a_cstatue"),
Expand Down Expand Up @@ -1671,7 +1671,7 @@ def MatchingFor(*versions) -> bool:
ActorRel(Equivalent, "d_a_e_kk"), # weak func order
ActorRel(NonMatching, "d_a_e_kr"),
ActorRel(MatchingFor("GZ2E01"), "d_a_e_mb"),
ActorRel(NonMatching, "d_a_e_md"),
ActorRel(MatchingFor("GZ2E01"), "d_a_e_md"),
ActorRel(NonMatching, "d_a_e_mf"),
ActorRel(NonMatching, "d_a_e_mk"),
ActorRel(NonMatching, "d_a_e_mk_bo"),
Expand Down
5 changes: 5 additions & 0 deletions include/JSystem/J2DGraph/J2DPane.h
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,11 @@ class J2DPane {
calcMtx();
}

void rotateY(f32 rotate) {
mRotateY = rotate;
calcMtx();
}

int getKind() const { return mKind; }

bool isVisible() const { return mVisible; }
Expand Down
143 changes: 128 additions & 15 deletions include/d/actor/d_a_coach_2D.h
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
#ifndef D_A_COACH_2D_H
#define D_A_COACH_2D_H

#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
#include "d/d_pane_class.h"
#include "d/d_msg_scrn_light.h"
#include "d/d_drawlist.h"

/**
* @ingroup actors-unsorted
Expand All @@ -12,33 +14,144 @@
* @details
*
*/
class daCoach2D_c : public fopAc_ac_c {
class daCoach2D_c : public fopAc_ac_c, public request_of_phase_process_class {
public:
struct c_list {
/* 806569CC */ void draw();
/* 806577DC */ ~c_list();
class c_list : public dDlst_base_c {
public:
c_list() { mpCoach2D = NULL; }

/* 806569CC */ virtual void draw();
/* 806577DC */ virtual ~c_list() {}

void set(daCoach2D_c* i_coach2D) {
mpCoach2D = i_coach2D;
}

/* 0x4 */ daCoach2D_c* mpCoach2D;
};

/* 80656A38 */ void createHeap();
/* 80656D18 */ void create();
/* 80656D94 */ void destroy();
/* 80656DE4 */ void draw();
/* 80656E94 */ void execute();
/* 80656A38 */ int createHeap();
/* 80656D18 */ int create();
/* 80656D94 */ int destroy();
/* 80656DE4 */ int draw();
/* 80656E94 */ int execute();
/* 80656ED0 */ void drawMeter();
/* 8065722C */ void initiate();
/* 80657260 */ void update();
/* 80657490 */ void setBrkAnime(bool);
/* 80657824 */ ~daCoach2D_c();

private:
/* 0x568 */ u8 field_0x568[0x784 - 0x568];
daCoach2D_c() { initiate(); }
/* 80657824 */ virtual ~daCoach2D_c() {}

void show() { mIsVisible = true; }
void hide() { mIsVisible = false; }
bool isVisible() { return mIsVisible ? true : false; }

/* 0x574 */ J2DScreen* mpScrn;
/* 0x578 */ J2DAnmTevRegKey* mpFireIconBrk;
/* 0x57C */ dMsgScrnLight_c* mMsgLight;
/* 0x580 */ CPaneMgr* mpPaneAll;
/* 0x584 */ CPaneMgr* mpPaneBasha;
/* 0x588 */ CPaneMgr* mpPaneFire;
/* 0x58C */ CPaneMgr* mpPaneFireB;
struct {
/* 0x00 */ f32 pos_x;
/* 0x04 */ f32 pos_y;
/* 0x08 */ f32 pikari_pos_x;
/* 0x0C */ f32 pikari_pos_y;
/* 0x10 */ f32 pikari_anm_frame;
/* 0x14 */ u8 field_0x14;
/* 0x15 */ u8 field_0x15;
}
/* 0x590 */ mIconInfo[20];
/* 0x770 */ c_list mList;
/* 0x778 */ f32 mBrkFrame;
/* 0x77C */ f32 mBrkSpeed;
/* 0x780 */ u8 mHitCount;
/* 0x781 */ u8 mMaxHitCount;
/* 0x782 */ u8 mIsVisible;
};

STATIC_ASSERT(sizeof(daCoach2D_c) == 0x784);

class daCoach2D_HIO_c {
class daCoach2D_HIO_c : public mDoHIO_entry_c {
public:
/* 80657738 */ ~daCoach2D_HIO_c();
struct Param {
/* 0x00 */ f32 pos_x;
/* 0x04 */ f32 pos_y;
/* 0x08 */ f32 size;
/* 0x0C */ f32 alpha;
/* 0x10 */ f32 icon_space_x;
/* 0x14 */ f32 icon_pos_x;
/* 0x18 */ f32 icon_pos_y;
/* 0x1C */ f32 icon_size;
/* 0x20 */ f32 icon_alpha;
/* 0x24 */ f32 coach_pos_x;
/* 0x28 */ f32 coach_pos_y;
/* 0x2C */ f32 coach_size;
/* 0x30 */ f32 coach_alpha;
/* 0x34 */ f32 blink_speed_min;
/* 0x38 */ f32 blink_speed_max;
/* 0x3C */ f32 pikari_scale;
/* 0x40 */ f32 pikari_anim_speed;
/* 0x44 */ u8 pikari_moyaR0_R;
/* 0x45 */ u8 pikari_moyaR0_G;
/* 0x46 */ u8 pikari_moyaR0_B;
/* 0x47 */ u8 pikari_moyaR0_A;
/* 0x48 */ u8 pikari_moyaR1_R;
/* 0x49 */ u8 pikari_moyaR1_G;
/* 0x4A */ u8 pikari_moyaR1_B;
/* 0x4B */ u8 pikari_moyaR1_A;
/* 0x4C */ u8 unk_0x4C;
/* 0x4D */ u8 unk_0x4D;
/* 0x4E */ u8 unk_0x4E;
/* 0x4F */ u8 unk_0x4F;
/* 0x50 */ u8 unk_0x50;
/* 0x51 */ u8 unk_0x51;
/* 0x52 */ u8 unk_0x52;
/* 0x53 */ u8 unk_0x53;
/* 0x54 */ u8 debug_ON;
/* 0x55 */ u8 max_damage_num;
/* 0x56 */ u8 now_damage_num;
/* 0x57 */ u8 reverse_flag;
};

daCoach2D_HIO_c() {
static Param aParam = {
45.0f,
-15.0f,
1.0f,
1.0f,
7.5f,
-6.5f,
0.0f,
0.5f,
1.0f,
0.0f,
0.0f,
1.0f,
1.0f,
1.0f,
5.0f,
3.0f,
8.0f,
0xFF, 0xFF, 0xFF, 0xB9,
0x00, 0x9B, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0x57,
0x00, 0x73, 0x00, 0x00,
false,
20,
0,
1,
};

memcpy(&param, &aParam, sizeof(Param));
}

/* 80657738 */ virtual ~daCoach2D_HIO_c() {}
void genMessage(JORMContext*) {}

/* 0x4 */ Param param;
};

#endif /* D_A_COACH_2D_H */
45 changes: 39 additions & 6 deletions include/d/actor/d_a_e_md.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
#ifndef D_A_E_MD_H
#define D_A_E_MD_H

#include "f_op/f_op_actor_mng.h"
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
#include "d/d_cc_uty.h"

/**
* @ingroup actors-enemies
Expand All @@ -11,23 +15,52 @@
*
*/
class daE_MD_c : public fopEn_enemy_c {
public:
/* 80708DF8 */ void initCcCylinder();
/* 80708E70 */ void setCcCylinder(f32);
/* 807091F0 */ void SetAnm(mDoExt_McaMorfSO*, int, int, f32, f32);
/* 807092C8 */ void At_Check();
/* 80709378 */ void CheckHit();
/* 8070992C */ void WaitAction();
/* 8070994C */ void HalfBreakAction();
/* 80709A04 */ void VibAction();
/* 80709A04 */ bool VibAction();
/* 80709ABC */ void DummyAction();
/* 80709BB4 */ void RealAction();
/* 80709C3C */ void Action();
/* 80709CFC */ void Execute();
/* 80709D58 */ void Delete();
/* 80709CFC */ int Execute();
/* 80709D58 */ int Delete();
/* 80709DA8 */ void setBaseMtx();
/* 8070A044 */ void create();
private:
/* 0x5ac */ u8 field_0x5ac[0xa50 - 0x5ac];
/* 8070A044 */ int create();

inline int CreateHeap();
inline int Draw();

/* 0x5AC */ int mAction;
/* 0x5B0 */ int mType;
/* 0x5B4 */ int mInvulnerabilityTimer;
/* 0x5B8 */ int mAnm;
/* 0x5BC */ f32 field_0x5bc;
/* 0x5C0 */ u8 field_0x5C0[0x5C8 - 0x5C0];
/* 0x5C8 */ s16 field_0x5c8;
/* 0x5CA */ s16 field_0x5ca;
/* 0x5CC */ s16 field_0x5cc;
/* 0x5CE */ s16 field_0x5ce;
/* 0x5D0 */ u8 mSwbit;
/* 0x5D4 */ int mBreakTimer;
/* 0x5D8 */ u8 mHalfBreakMode;
/* 0x5D9 */ u8 mCanCreateBu;
/* 0x5DC */ request_of_phase_process_class mPhase;
/* 0x5E4 */ Z2CreatureEnemy mSound;
/* 0x688 */ u32 mShadowId;
/* 0x68C */ mDoExt_McaMorfSO* mpModelMorf;
/* 0x690 */ mDoExt_McaMorfSO* mpYariModelMorf;
/* 0x694 */ J3DModel* mpTbModel;
/* 0x698 */ dBgS_AcchCir mAcchCir;
/* 0x6D8 */ dBgS_ObjAcch mAcch;
/* 0x8B0 */ dCcD_Stts mCcStts;
/* 0x8EC */ dCcD_Cyl mCyl;
/* 0xA28 */ dCcU_AtInfo mAtInfo;
/* 0xA4C */ u8 field_0xa4c[0xA50 - 0xA4C];
};

STATIC_ASSERT(sizeof(daE_MD_c) == 0xa50);
Expand Down
Loading