mirror of https://github.com/zeldaret/tp.git
e_fm equivalent (#2395)
This commit is contained in:
parent
c1845e9e09
commit
59ff71c355
|
|
@ -1502,7 +1502,7 @@ config.libs = [
|
|||
ActorRel(NonMatching, "d_a_demo_item"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_door_bossL1"),
|
||||
ActorRel(NonMatching, "d_a_e_dn"),
|
||||
ActorRel(NonMatching, "d_a_e_fm"),
|
||||
ActorRel(Equivalent, "d_a_e_fm"),
|
||||
ActorRel(NonMatching, "d_a_e_ga"),
|
||||
ActorRel(NonMatching, "d_a_e_hb"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_e_nest"),
|
||||
|
|
|
|||
|
|
@ -2,8 +2,39 @@
|
|||
#define D_A_E_FM_H
|
||||
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "d/d_cc_uty.h"
|
||||
#include "d/d_bg_s_acch.h"
|
||||
#include "Z2AudioLib/Z2Creature.h"
|
||||
|
||||
struct chain_s {
|
||||
/* 0x0000 */ J3DModel* model[26];
|
||||
/* 0x0068 */ cXyz field_0x68;
|
||||
/* 0x0074 */ cXyz pos[26];
|
||||
/* 0x01AC */ cXyz field_0x1ac[26];
|
||||
/* 0x02E4 */ cXyz field_0x2e4[26];
|
||||
/* 0x041C */ csXyz rot[26];
|
||||
/* 0x04B8 */ dKy_tevstr_c tevstr[26];
|
||||
/* 0x6088 */ cXyz sound_pos;
|
||||
/* 0x6094 */ cXyz field_0x6094;
|
||||
/* 0x60A0 */ u8 field_0x60A0[0x6170 - 0x60A0];
|
||||
/* 0x6170 */ int field_0x6170;
|
||||
/* 0x6174 */ f32 field_0x6174;
|
||||
/* 0x6178 */ f32 field_0x6178;
|
||||
/* 0x617C */ s8 field_0x617c;
|
||||
/* 0x617D */ s8 field_0x617d;
|
||||
/* 0x617E */ s8 field_0x617e;
|
||||
/* 0x6180 */ cXyz field_0x6180;
|
||||
/* 0x618C */ cXyz field_0x618c;
|
||||
/* 0x6198 */ f32 field_0x6198;
|
||||
/* 0x619C */ s8 field_0x619c;
|
||||
/* 0x619E */ s16 field_0x619e;
|
||||
/* 0x61A0 */ f32 field_0x61a0;
|
||||
/* 0x61A4 */ f32 field_0x61a4;
|
||||
/* 0x61A8 */ u8 field_0x61A8[0x61D0 - 0x61A8];
|
||||
/* 0x61D0 */ int field_0x61d0;
|
||||
};
|
||||
|
||||
/**
|
||||
* @ingroup actors-enemies
|
||||
* @class e_fm_class
|
||||
|
|
@ -15,23 +46,192 @@
|
|||
class e_fm_class : public fopEn_enemy_c {
|
||||
public:
|
||||
/* 804F9B64 */ e_fm_class();
|
||||
/* 0x005AC */ u8 field_0x5ac[0x63c - 0x5ac];
|
||||
/* 0x0063C */ Z2CreatureFM field_0x63c;
|
||||
/* 0x00760 */ u8 field_0x760[0x1828 - 0x760];
|
||||
/* 0x01828 */ u8 field_0x1828;
|
||||
/* 0x01829 */ u8 field_0x1829[0x1b084 - 0x1829];
|
||||
|
||||
BOOL checkCameraFree() { return field_0x1b07c; }
|
||||
|
||||
/* 0x005AC */ request_of_phase_process_class mPhase;
|
||||
/* 0x005B4 */ u8 arg0;
|
||||
/* 0x005B5 */ u8 arg1;
|
||||
/* 0x005B6 */ u8 arg3;
|
||||
/* 0x005B7 */ u8 field_0x5B7[0x005C4 - 0x005B7];
|
||||
/* 0x005C4 */ s16 field_0x5c4;
|
||||
/* 0x005C6 */ s16 mAngleToPlayer;
|
||||
/* 0x005C8 */ int field_0x5c8;
|
||||
/* 0x005CC */ f32 mKankyoBlend;
|
||||
/* 0x005D0 */ mDoExt_McaMorf* mpFmModelMorf;
|
||||
/* 0x005D4 */ mDoExt_btkAnm* mpFmBtk[9];
|
||||
/* 0x005F8 */ mDoExt_brkAnm* mpFmBrk[9];
|
||||
/* 0x0061C */ int mPlayTexAnmNo;
|
||||
/* 0x00620 */ int mAnm;
|
||||
/* 0x00624 */ s8 mDrawDemoModel;
|
||||
/* 0x00628 */ mDoExt_McaMorf* mpDemoFmModelMorf;
|
||||
/* 0x0062C */ u8 field_0x62C[0x00630 - 0x0062C];
|
||||
/* 0x00630 */ mDoExt_brkAnm* mpDemoFmBrk;
|
||||
/* 0x00634 */ f32 mDemoModelSize;
|
||||
/* 0x00638 */ f32 mDemoModelSizeStep;
|
||||
/* 0x0063C */ Z2CreatureFM mSound;
|
||||
/* 0x00760 */ J3DModel* mpCoreModel;
|
||||
/* 0x00764 */ mDoExt_btkAnm* mpCoreBtk;
|
||||
/* 0x00768 */ mDoExt_brkAnm* mpCoreBrk;
|
||||
/* 0x0076C */ f32 mCoreBrkFrame;
|
||||
/* 0x00770 */ s16 field_0x770;
|
||||
/* 0x00772 */ s8 mDoCreateBa;
|
||||
/* 0x00773 */ u8 field_0x773;
|
||||
/* 0x00774 */ f32 mChainColorR;
|
||||
/* 0x00778 */ f32 field_0x778;
|
||||
/* 0x0077C */ mDoExt_McaMorf* mpAttackEfModelMorf[2];
|
||||
/* 0x00784 */ mDoExt_btkAnm* mpAttackEfBtk[2];
|
||||
/* 0x0078C */ mDoExt_brkAnm* mpAttackEfBrk;
|
||||
/* 0x00790 */ s16 field_0x790;
|
||||
/* 0x00792 */ s8 field_0x792;
|
||||
/* 0x00794 */ f32 field_0x794;
|
||||
/* 0x00798 */ f32 field_0x798;
|
||||
/* 0x0079C */ f32 field_0x79c;
|
||||
/* 0x007A0 */ s16 mCounter;
|
||||
/* 0x007A2 */ s16 mAction;
|
||||
/* 0x007A4 */ s16 mMode;
|
||||
/* 0x007A8 */ u32 mShadowKey;
|
||||
/* 0x007AC */ s16 mTimers[4];
|
||||
/* 0x007B4 */ s16 mDamageInvulnerabilityTimer;
|
||||
/* 0x007B6 */ s8 field_0x7b6;
|
||||
/* 0x007B8 */ f32 field_0x7b8;
|
||||
/* 0x007BC */ u8 field_0x7BC[0x007C0 - 0x007BC];
|
||||
/* 0x007C0 */ s8 field_0x7c0;
|
||||
/* 0x007C2 */ s16 mBodyRotX;
|
||||
/* 0x007C4 */ s16 mHeadRotZ;
|
||||
/* 0x007C8 */ cXyz mFootPos[2];
|
||||
/* 0x007E0 */ int field_0x7e0;
|
||||
/* 0x007E4 */ cXyz field_0x7e4[2];
|
||||
/* 0x007FC */ f32 field_0x7fc;
|
||||
/* 0x00800 */ s16 field_0x800;
|
||||
/* 0x00802 */ s8 mDownCnt;
|
||||
/* 0x00804 */ s16 field_0x804;
|
||||
/* 0x00806 */ s16 field_0x806;
|
||||
/* 0x00808 */ s8 field_0x808;
|
||||
/* 0x00809 */ s8 field_0x809;
|
||||
/* 0x0080C */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x0084C */ dBgS_ObjAcch mAcch;
|
||||
/* 0x00A24 */ dCcD_Stts field_0xa24;
|
||||
/* 0x00A60 */ dCcD_Stts field_0xa60;
|
||||
/* 0x00A9C */ dCcD_Sph mCcSph[8];
|
||||
/* 0x0145C */ dCcD_Sph mAtSph;
|
||||
/* 0x01594 */ dCcD_Sph mCoreSph;
|
||||
/* 0x016CC */ dCcD_Sph mEffAtSph;
|
||||
/* 0x01804 */ dCcU_AtInfo mAtInfo;
|
||||
/* 0x01828 */ s8 field_0x1828;
|
||||
/* 0x01829 */ s8 field_0x1829;
|
||||
/* 0x0182A */ s8 field_0x182a;
|
||||
/* 0x0182B */ s8 field_0x182b;
|
||||
/* 0x0182C */ s8 field_0x182c;
|
||||
/* 0x0182D */ s8 mHideCore;
|
||||
/* 0x01830 */ f32 field_0x1830;
|
||||
/* 0x01834 */ f32 field_0x1834;
|
||||
/* 0x01838 */ u32 field_0x1838[14];
|
||||
/* 0x01870 */ u32 field_0x1870;
|
||||
/* 0x01874 */ u32 field_0x1874;
|
||||
/* 0x01878 */ u32 field_0x1878;
|
||||
/* 0x0187C */ u32 field_0x187c[2];
|
||||
/* 0x01884 */ u32 field_0x1884;
|
||||
/* 0x01888 */ u32 field_0x1888[4];
|
||||
/* 0x01898 */ fopAc_ac_c* mHashiraActors[10];
|
||||
/* 0x018C0 */ u8 field_0x18c0[0x018D0 - 0x018C0];
|
||||
/* 0x018D0 */ cXyz field_0x18d0[8];
|
||||
/* 0x01930 */ u8 field_0x1930[0x1990 - 0x01930];
|
||||
/* 0x01990 */ dCcD_Sph mFEffAtSph[8];
|
||||
/* 0x02350 */ u32 field_0x2350;
|
||||
/* 0x02354 */ u32 field_0x2354[8];
|
||||
/* 0x02374 */ u32 field_0x2374[6];
|
||||
/* 0x0238C */ u32 field_0x238c[3];
|
||||
/* 0x02398 */ s8 field_0x2398;
|
||||
/* 0x02399 */ s8 field_0x2399;
|
||||
/* 0x0239C */ LIGHT_INFLUENCE mPlight;
|
||||
/* 0x023BC */ chain_s mChain[4];
|
||||
/* 0x1AB0C */ s8 field_0x1ab0c[4];
|
||||
/* 0x1AB10 */ dCcD_Sph mChainAtSph[4];
|
||||
/* 0x1AFF0 */ u8 field_0x1aff0;
|
||||
/* 0x1AFF2 */ s16 mDemoCamMode;
|
||||
/* 0x1AFF4 */ s16 mDemoCamTimer;
|
||||
/* 0x1AFF6 */ s16 field_0x1aff6;
|
||||
/* 0x1AFF8 */ cXyz mDemoCamEye;
|
||||
/* 0x1B004 */ cXyz mDemoCamCenter;
|
||||
/* 0x1B010 */ cXyz mDemoCamEyeTarget;
|
||||
/* 0x1B01C */ cXyz mDemoCamCenterTarget;
|
||||
/* 0x1B028 */ cXyz mDemoCamEyeSpd;
|
||||
/* 0x1B034 */ cXyz mDemoCamCenterSpd;
|
||||
/* 0x1B040 */ cXyz field_0x1b040;
|
||||
/* 0x1B04C */ f32 mDemoCamFovy;
|
||||
/* 0x1B050 */ f32 field_0x1b050;
|
||||
/* 0x1B054 */ f32 field_0x1b054;
|
||||
/* 0x1B058 */ u8 field_0x1B058[0x1B05C - 0x1B058];
|
||||
/* 0x1B05C */ f32 field_0x1b05c;
|
||||
/* 0x1B060 */ u8 field_0x1B060[0x1B064 - 0x1B060];
|
||||
/* 0x1B064 */ f32 field_0x1b064;
|
||||
/* 0x1B068 */ f32 field_0x1b068;
|
||||
/* 0x1B06C */ f32 field_0x1b06c;
|
||||
/* 0x1B070 */ f32 field_0x1b070;
|
||||
/* 0x1B074 */ f32 field_0x1b074;
|
||||
/* 0x1B078 */ s8 field_0x1b078;
|
||||
/* 0x1B07C */ int field_0x1b07c;
|
||||
/* 0x1B080 */ s8 field_0x1b080;
|
||||
/* 0x1B081 */ u8 mInitHIO;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(e_fm_class) == 0x1b084);
|
||||
|
||||
class daE_FM_HIO_c {
|
||||
class daE_FM_HIO_c : public JORReflexible {
|
||||
public:
|
||||
/* 804EF0EC */ daE_FM_HIO_c();
|
||||
/* 804FA3D8 */ ~daE_FM_HIO_c();
|
||||
};
|
||||
|
||||
struct chain_s {
|
||||
/* 804F9E14 */ ~chain_s();
|
||||
/* 804F9F14 */ chain_s();
|
||||
void genMessage(JORMContext*);
|
||||
/* 804FA3D8 */ virtual ~daE_FM_HIO_c() {}
|
||||
|
||||
/* 0x04 */ s8 no;
|
||||
/* 0x08 */ f32 base_size;
|
||||
/* 0x0C */ f32 field_0xc;
|
||||
/* 0x10 */ f32 field_0x10;
|
||||
/* 0x14 */ f32 field_0x14;
|
||||
/* 0x18 */ f32 field_0x18;
|
||||
/* 0x1C */ f32 field_0x1c;
|
||||
/* 0x20 */ f32 field_0x20;
|
||||
/* 0x24 */ f32 field_0x24;
|
||||
/* 0x28 */ f32 field_0x28;
|
||||
/* 0x2C */ f32 field_0x2c;
|
||||
/* 0x30 */ f32 field_0x30;
|
||||
/* 0x34 */ s16 field_0x34;
|
||||
/* 0x36 */ s16 field_0x36;
|
||||
/* 0x38 */ s16 field_0x38;
|
||||
/* 0x3C */ f32 field_0x3c;
|
||||
/* 0x40 */ f32 field_0x40;
|
||||
/* 0x44 */ f32 field_0x44;
|
||||
/* 0x48 */ f32 chain_size;
|
||||
/* 0x4C */ f32 field_0x4c;
|
||||
/* 0x50 */ f32 field_0x50;
|
||||
/* 0x54 */ f32 field_0x54;
|
||||
/* 0x58 */ f32 field_0x58;
|
||||
/* 0x5C */ f32 field_0x5c;
|
||||
/* 0x60 */ u8 field_0x60;
|
||||
/* 0x61 */ u8 field_0x61;
|
||||
/* 0x64 */ f32 field_0x64;
|
||||
/* 0x68 */ f32 field_0x68;
|
||||
/* 0x6C */ f32 field_0x6c;
|
||||
/* 0x70 */ f32 field_0x70;
|
||||
/* 0x74 */ f32 field_0x74;
|
||||
/* 0x78 */ f32 field_0x78;
|
||||
/* 0x7C */ f32 field_0x7c;
|
||||
/* 0x80 */ f32 field_0x80;
|
||||
/* 0x84 */ f32 field_0x84;
|
||||
/* 0x88 */ f32 field_0x88;
|
||||
/* 0x8C */ f32 field_0x8c;
|
||||
/* 0x90 */ f32 field_0x90;
|
||||
/* 0x94 */ s16 field_0x94;
|
||||
/* 0x96 */ s16 field_0x96;
|
||||
/* 0x98 */ s16 field_0x98;
|
||||
/* 0x9A */ s16 field_0x9a;
|
||||
/* 0x9C */ s16 field_0x9c;
|
||||
/* 0xA0 */ f32 field_0xa0;
|
||||
/* 0xA4 */ f32 field_0xa4;
|
||||
/* 0xA8 */ f32 field_0xa8;
|
||||
/* 0xAC */ u8 field_0xac;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -34,7 +34,6 @@ public:
|
|||
/* 805812BC */ int Draw();
|
||||
/* 8058140C */ int Delete();
|
||||
|
||||
private:
|
||||
/* 0x05A0 */ int field_0x5a0;
|
||||
/* 0x05A4 */ int field_0x5a4;
|
||||
/* 0x05A8 */ s8 field_0x5a8;
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -150,7 +150,7 @@ void daObjHHASHI_c::Obj_Damage() {
|
|||
mCyl.ResetTgHit();
|
||||
// !@bug: I'm not quite sure but it seems like the access to tgActor fields is outside
|
||||
// proc name check so it might not be the right type of actor
|
||||
tgActor->field_0x63c.startChainSound(
|
||||
tgActor->mSound.startChainSound(
|
||||
Z2SE_EN_FM_CHAIN_HIT, tgActor->field_0x1828, 100.0f, 0,
|
||||
dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue