summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2025-05-04 07:52:18 -0700
committerGitHub <noreply@github.com>2025-05-04 17:52:18 +0300
commit6637765454bdcf65bfbe9808ee8cf2cf2892aa61 (patch)
tree080ec7bc0be83f898ed6006a4fc9547e9ac8de14 /include
parent211e5f13c78e3a6653b341312b115d390ac847a6 (diff)
e_md / coach2D done (#2418)
* e_md / coach2D done * Update d_a_e_md.cpp --------- Co-authored-by: hatal175 <hatal175@users.noreply.github.com>
Diffstat (limited to 'include')
-rw-r--r--include/JSystem/J2DGraph/J2DPane.h5
-rw-r--r--include/d/actor/d_a_coach_2D.h143
-rw-r--r--include/d/actor/d_a_e_md.h45
3 files changed, 172 insertions, 21 deletions
diff --git a/include/JSystem/J2DGraph/J2DPane.h b/include/JSystem/J2DGraph/J2DPane.h
index 00724f14a3..2ef48562d0 100644
--- a/include/JSystem/J2DGraph/J2DPane.h
+++ b/include/JSystem/J2DGraph/J2DPane.h
@@ -160,6 +160,11 @@ public:
calcMtx();
}
+ void rotateY(f32 rotate) {
+ mRotateY = rotate;
+ calcMtx();
+ }
+
int getKind() const { return mKind; }
bool isVisible() const { return mVisible; }
diff --git a/include/d/actor/d_a_coach_2D.h b/include/d/actor/d_a_coach_2D.h
index 998b7a1204..aa281afaab 100644
--- a/include/d/actor/d_a_coach_2D.h
+++ b/include/d/actor/d_a_coach_2D.h
@@ -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
@@ -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 */
diff --git a/include/d/actor/d_a_e_md.h b/include/d/actor/d_a_e_md.h
index e78651edf7..d43a9199ea 100644
--- a/include/d/actor/d_a_e_md.h
+++ b/include/d/actor/d_a_e_md.h
@@ -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
@@ -11,6 +15,7 @@
*
*/
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);
@@ -18,16 +23,44 @@ class daE_MD_c : public fopEn_enemy_c {
/* 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);