Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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 @@ -500,7 +500,7 @@ def MatchingFor(*versions):
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"),
Expand Down Expand Up @@ -1586,7 +1586,7 @@ def MatchingFor(*versions):
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"),
Expand Down
140 changes: 71 additions & 69 deletions include/d/actor/d_a_b_mgn.h
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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();
Expand All @@ -56,7 +68,7 @@ class daB_MGN_c : public fopEn_enemy_c {
/* 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();
Expand All @@ -68,7 +80,7 @@ class daB_MGN_c : public fopEn_enemy_c {
/* 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();
Expand Down Expand Up @@ -97,57 +109,55 @@ class daB_MGN_c : public fopEn_enemy_c {
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;
/* 0x0AE2 */ s16 field_0xae2;
/* 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;
/* 0x0AFE */ u8 field_0xafe;
/* 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;
Expand All @@ -158,45 +168,37 @@ class daB_MGN_c : public fopEn_enemy_c {
/* 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);
Expand Down
2 changes: 1 addition & 1 deletion include/f_op/f_op_actor.h
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,7 @@ class fopEn_enemy_c : public fopAc_ac_c {
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; }
Expand Down
Loading