d_a_b_mgn equivalent (#2363)

This commit is contained in:
TakaRikka 2025-03-31 09:43:11 -07:00 committed by GitHub
parent 59848baf81
commit d7a8fb9d83
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 2425 additions and 2584 deletions

View File

@ -500,7 +500,7 @@ config.libs = [
Object(MatchingFor("GZ2E01"), "d/d_com_inf_actor.cpp"),
Object(MatchingFor("GZ2E01"), "d/d_bomb.cpp"),
Object(MatchingFor("GZ2E01"), "d/d_lib.cpp"),
Object(NonMatching, "d/d_save.cpp"),
Object(MatchingFor("GZ2E01"), "d/d_save.cpp"),
Object(MatchingFor("GZ2E01"), "d/d_save_init.cpp"),
Object(MatchingFor("GZ2E01"), "d/d_jnt_col.cpp", extra_cflags=['-pragma "nosyminline on"']),
Object(NonMatching, "d/d_a_obj.cpp"),
@ -1586,7 +1586,7 @@ config.libs = [
ActorRel(NonMatching, "d_a_b_gnd"),
ActorRel(MatchingFor("GZ2E01"), "d_a_b_go"),
ActorRel(MatchingFor("GZ2E01"), "d_a_b_gos"),
ActorRel(NonMatching, "d_a_b_mgn"),
ActorRel(Equivalent, "d_a_b_mgn"),
ActorRel(NonMatching, "d_a_b_ob"),
ActorRel(NonMatching, "d_a_b_oh"),
ActorRel(MatchingFor("GZ2E01"), "d_a_b_oh2"),

View File

@ -1,11 +1,11 @@
#ifndef D_A_B_MGN_H
#define D_A_B_MGN_H
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
#include "JSystem/JHostIO/JORReflexible.h"
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
#include "d/d_cc_uty.h"
/**
* @ingroup actors-enemies
@ -19,24 +19,36 @@
class daB_MGN_HIO_c : public JORReflexible {
public:
/* 8060572C */ daB_MGN_HIO_c();
/* 8060F8D0 */ ~daB_MGN_HIO_c();
/* 8060F8D0 */ virtual ~daB_MGN_HIO_c() {}
void genMessage(JORMContext*);
/* 0x08 */ f32 field_0x08; // 1.2f
/* 0x0C */ f32 field_0x0c; // 50.0f
/* 0x10 */ f32 field_0x10; // 70.0f
/* 0x14 */ f32 field_0x14; // 1.0f
/* 0x18 */ f32 field_0x18; // 100.0f
/* 0x1C */ f32 field_0x1c; // 100.0f
/* 0x20 */ f32 field_0x20; // 100.0f
/* 0x24 */ f32 field_0x24;
/* 0x28 */ f32 field_0x28;
/* 0x2C */ f32 field_0x2c;
/* 0x04 */ s8 no;
/* 0x08 */ f32 base_size;
/* 0x0C */ f32 dash_speed;
/* 0x10 */ f32 turn_speed;
/* 0x14 */ f32 dash_anim;
/* 0x18 */ f32 jewel_R;
/* 0x1C */ f32 jewel_G;
/* 0x20 */ f32 jewel_B;
};
class daB_MGN_c : public fopEn_enemy_c {
public:
enum daB_MGN_ACTION {
ACTION_OPENING_e,
ACTION_CIRCLE_e,
ACTION_DASH_e,
ACTION_THROWN_e,
ACTION_DOWN_e,
ACTION_DOWN_DAMAGE_e,
ACTION_DOWN_BITE_DAMAGE_e,
ACTION_WARP_e,
ACTION_FALL_e,
ACTION_DEATH_e,
ACTION_JUMP_e,
};
/* 8060577C */ int ctrlJoint(J3DJoint*, J3DModel*);
/* 8060584C */ static int JointCallBack(J3DJoint*, int);
/* 80605898 */ int draw();
@ -56,7 +68,7 @@ public:
/* 80607498 */ void calcBloodMove();
/* 8060778C */ void checkDownBeforeBG();
/* 80607924 */ void setBck(int, u8, f32, f32);
/* 806079CC */ BOOL checkBck(int);
/* 806079CC */ bool checkBck(int);
/* 80607A2C */ void setActionMode(int, int);
/* 80607A80 */ void setExitMode(int);
/* 80607B50 */ void onBodyShield();
@ -68,7 +80,7 @@ public:
/* 80607CE4 */ void offBodyFallAt();
/* 80607D08 */ void onBodyCo();
/* 80607D44 */ void offBodyCo();
/* 80607D7C */ void getNearHitPos(cXyz*);
/* 80607D7C */ cXyz getNearHitPos(cXyz*);
/* 8060819C */ void damage_check();
/* 80608738 */ void calcJointAngle(s16);
/* 806087A8 */ void executeCircle();
@ -97,37 +109,35 @@ public:
bool isDown() { return field_0xb01 != 0; }
private:
/* 0x05AC */ request_of_phase_process_class field_0x5ac;
/* 0x05B4 */ request_of_phase_process_class field_0x5b4;
/* 0x05BC */ mDoExt_McaMorfSO* mpModelMorf;
/* 0x05C0 */ mDoExt_brkAnm* field_0x5c0;
/* 0x05C4 */ mDoExt_btkAnm* field_0x5c4;
/* 0x05C8 */ f32 field_0x5c8;
/* 0x05CC */ u8 field_0x5cc;
/* 0x05CD */ u8 field_0x5cd[0x5cf - 0x5cd];
/* 0x05D0 */ J3DModel* field_0x5d0[20];
/* 0x0620 */ cXyz field_0x620[20];
/* 0x05AC */ request_of_phase_process_class mMgnPhase;
/* 0x05B4 */ request_of_phase_process_class mMgnePhase;
/* 0x05BC */ mDoExt_McaMorfSO* mpMgnModelMorf;
/* 0x05C0 */ mDoExt_brkAnm* mpMgnCoreBrk;
/* 0x05C4 */ mDoExt_btkAnm* mpMgnBtk;
/* 0x05C8 */ f32 mJewelColorStrength;
/* 0x05CC */ u8 mJewelColorMode;
/* 0x05D0 */ J3DModel* mpMgnTaiekiModel[20];
/* 0x0620 */ cXyz mBloodEffPos[20];
/* 0x0714 */ cXyz field_0x710[20];
/* 0x0800 */ cXyz field_0x800[20];
/* 0x0800 */ cXyz mBloodEffSize[20];
/* 0x08F0 */ f32 field_0x8f0[20];
/* 0x0940 */ u8 field_0x940[0x990 - 0x940];
/* 0x0990 */ int field_0x990[20];
/* 0x0940 */ f32 field_0x940[20];
/* 0x0990 */ int mBloodEffMode[20];
/* 0x09E0 */ Z2CreatureEnemy mSound;
/* 0x0A84 */ cXyz field_0xa84;
/* 0x0A90 */ s16 field_0xa90;
/* 0x0A92 */ s16 field_0xa92;
/* 0x0A94 */ u32 field_0xa94;
/* 0x0A98 */ u16 field_0xa98;
/* 0x0A9A */ u8 field_0xa9a[0xa9c - 0xa9a];
/* 0x0A98 */ u16 mDamageInvulnerabilityTimer;
/* 0x0A9C */ int field_0xa9c;
/* 0x0AA0 */ int field_0xaa0;
/* 0x0AA4 */ int field_0xaa4;
/* 0x0AA8 */ int field_0xaa8;
/* 0x0AAC */ int field_0xaac;
/* 0x0AB0 */ cXyz field_0xab0;
/* 0x0ABC */ cXyz field_0xabc;
/* 0x0AC8 */ cXyz field_0xac8;
/* 0x0AD4 */ f32 field_0xad4;
/* 0x0AB0 */ cXyz mNextGdgatePos;
/* 0x0ABC */ cXyz mDemoCamEye;
/* 0x0AC8 */ cXyz mDemoCamCenter;
/* 0x0AD4 */ f32 mDemoCamFovy;
/* 0x0AD4 */ f32 field_0xad8;
/* 0x0ADC */ f32 field_0xadc;
/* 0x0AE0 */ s16 field_0xae0;
@ -135,11 +145,11 @@ private:
/* 0x0AE4 */ u8 field_0xae4[0xae8 - 0xae4];
/* 0x0AE8 */ f32 field_0xae8;
/* 0x0AEC */ u8 field_0xaec[0xaf0 - 0xaec];
/* 0x0AF0 */ f32 field_0xaf0;
/* 0x0AF4 */ f32 field_0xaf4;
/* 0x0AF8 */ u8 field_0xaf8;
/* 0x0AF9 */ u8 field_0xaf9;
/* 0x0AFA */ u8 field_0xafa;
/* 0x0AF0 */ f32 mBlurRate;
/* 0x0AF4 */ f32 mKankyoBlend;
/* 0x0AF8 */ u8 mKankyoColMode;
/* 0x0AF9 */ u8 mActionMode;
/* 0x0AFA */ u8 mMoveMode;
/* 0x0AFB */ u8 field_0xafb;
/* 0x0AFC */ u8 field_0xafc;
/* 0x0AFD */ u8 field_0xafd;
@ -147,7 +157,7 @@ private:
/* 0x0AFF */ u8 field_0xaff;
/* 0x0B00 */ u8 field_0xb00;
/* 0x0B01 */ u8 field_0xb01;
/* 0x0B02 */ u8 field_0xb02;
/* 0x0B02 */ u8 mGdgateNum;
/* 0x0B03 */ u8 field_0xb03;
/* 0x0B04 */ u8 field_0xb04;
/* 0x0B05 */ u8 field_0xb05;
@ -158,45 +168,37 @@ private:
/* 0x0B0A */ u8 field_0xb0a;
/* 0x0B0B */ u8 field_0xb0b;
/* 0x0B0C */ u8 field_0xb0c;
/* 0x0B0D */ u8 field_0xb0d[0xB10 - 0xB0d];
/* 0x0B10 */ int field_0xb10;
/* 0x0B14 */ s16 field_0xb14;
/* 0x0B16 */ s16 field_0xb16;
/* 0x0B18 */ s16 field_0xb18;
/* 0x0B1A */ u8 field_0xb1a;
/* 0x0B1C */ dBgS_AcchCir field_0xb1c;
/* 0x0B5C */ dBgS_ObjAcch field_0xb5c;
/* 0x0D34 */ dCcD_Stts field_0xd34;
/* 0x0D70 */ dCcD_Sph field_0xd70[15];
/* 0x0B1C */ dBgS_AcchCir mAcchCir;
/* 0x0B5C */ dBgS_ObjAcch mAcch;
/* 0x0D34 */ dCcD_Stts mCcStts;
/* 0x0D70 */ dCcD_Sph mBodyCcSph[15];
/* 0x1FB8 */ u32 field_0x1fb8;
/* 0x1FBC */ dCcD_Sph field_0x1fbc;
/* 0x1FBC */ dCcD_Sph mAtSph;
/* 0x20F4 */ dCcD_Sph field_0x20f4[2];
/* 0x2364 */ dCcD_Sph field_0x2364[2];
/* 0x25D4 */ u32 field_0x25d4;
/* 0x25D4 */ u8 field_0x25d8[0x25dc - 0x25d8];
/* 0x25DC */ Z2CreatureEnemy* field_0x25dc;
/* 0x25E0 */ u8 field_0x25e0[0x25f0 - 0x25e0];
/* 0x25F0 */ u16 field_0x25f0;
/* 0x25F2 */ u8 field_0x25f2;
/* 0x25F3 */ u8 field_0x25f3;
/* 0x25F4 */ u8 field_0x25f4[0x25f8 - 0x25f4];
/* 0x25D4 */ dCcU_AtInfo mAtInfo;
/* 0x25F8 */ u32 field_0x25f8[4];
/* 0x2608 */ u32 field_0x2608[4];
/* 0x2618 */ u32 field_0x2618;
/* 0x261C */ u32 field_0x261c;
/* 0x2620 */ u32 field_0x2620;
/* 0x2624 */ mDoExt_McaMorfSO* field_0x2624[4];
/* 0x2634 */ mDoExt_brkAnm* field_0x2634[4];
/* 0x2644 */ mDoExt_brkAnm* field_0x2644[4];
/* 0x2654 */ mDoExt_btkAnm* field_0x2654[4];
/* 0x2664 */ cXyz field_0x2664[4];
/* 0x2670 */ u8 field_0x2694[0x26b4 - 0x2694];
/* 0x2618 */ u32 mHeadLightEmitterID;
/* 0x261C */ u32 mHeadHitEmitterID;
/* 0x2620 */ u32 mHeadHitEmitter2ID;
/* 0x2624 */ mDoExt_McaMorfSO* mpGdgateModelMorf[4];
/* 0x2634 */ mDoExt_brkAnm* mpGdgateStartBrk[4];
/* 0x2644 */ mDoExt_brkAnm* mpGdgateAppearBrk[4];
/* 0x2654 */ mDoExt_btkAnm* mpGdgateBtk[4];
/* 0x2664 */ cXyz mGdgatePos[4];
/* 0x2670 */ u8 field_0x2694[0x26a4 - 0x2694];
/* 0x26A4 */ u32 field_0x26a4[4];
/* 0x26B4 */ u8 field_0x26b4[4];
/* 0x26B8 */ u8 field_0x26b8[4];
/* 0x26BC */ u8 field_0x26bc[4];
/* 0x26C0 */ s16 field_0x26c0[4];
/* 0x26C8 */ u8 field_0x26c8;
/* 0x26C9 */ u8 field_0x26c9[0x26cc - 0x26c9];
/* 0x26B8 */ u8 mGdgateStatus[4];
/* 0x26BC */ u8 mGdgateType[4];
/* 0x26C0 */ s16 mGdgateAngle[4];
/* 0x26C8 */ u8 mInitHIO;
};
STATIC_ASSERT(sizeof(daB_MGN_c) == 0x26cc);

View File

@ -286,7 +286,7 @@ public:
void offDownFlg() { mFlags &= ~0x17; }
void offWolfNoLock() { mFlags &= ~0x200; }
void offHeadLockFlg() { mFlags &= ~0x80; }
void offThrowMode(u8 throwMode) { mThrowMode &= throwMode; }
void offThrowMode(u8 throwMode) { mThrowMode &= ~throwMode; }
void setMidnaBindMode(u8 i_bindMode) { mMidnaBindMode = i_bindMode; }
void setMidnaBindID(u8 i_idx, u32 i_bindID) { mMidnaBindID[i_idx] = i_bindID; }

File diff suppressed because it is too large Load Diff

View File

@ -1650,7 +1650,6 @@ BOOL dSv_info_c::isActor(int i_id, int i_roomNo) const {
}
/* 80035798-80035A04 0300D8 026C+00 0/0 1/1 0/0 .text memory_to_card__10dSv_info_cFPci */
// NONMATCHING regalloc
int dSv_info_c::memory_to_card(char* card_ptr, int dataNum) {
BOOL lantern_stolen;
BOOL lantern_dropped;