d_a_tn - 99% matching (#994)

Co-authored-by: ‎ ‎ ‎ <‎ ‎ ‎>
This commit is contained in:
123456789758
2026-05-28 13:59:57 -04:00
committed by GitHub
parent 8b46c357e4
commit ce8aa593df
5 changed files with 4334 additions and 161 deletions
+15 -1
View File
@@ -22,11 +22,25 @@ public:
};
class mant_class : public fopAc_ac_c {
public:
enum CapeType {
/* 0x0 */ Type_DARKNUT_e = 0x0,
/* 0x1 */ Type_PHANTOM_GANON_e = 0x1,
};
public:
/* 0x0290 */ u8 m0290[0x1BE0 - 0x0290];
/* 0x1BE0 */ cXyz m1BE0;
/* 0x1BEC */ cXyz m1BEC;
/* 0x1BF8 */ u8 m1BF8[0x283C - 0x1BF8];
/* 0x1BF8 */ f32 m1BF8;
/* 0x1BFC */ f32 m1BFC;
/* 0x1C00 */ u8 m1C00[0x1C0E - 0x1C00];
/* 0x1C0E */ s16 m1C0E;
/* 0x1C10 */ u8 m1C10[0x2834 - 0x1C10];
/* 0x2834 */ s8 m2834;
/* 0x2835 */ s8 m2835[0x2836 - 0x2835];
/* 0x2836 */ s16 m2836;
/* 0x2838 */ u8 m2838[0x283C - 0x2838];
};
#endif /* D_A_MANT_H */
+278 -39
View File
@@ -1,66 +1,305 @@
#ifndef D_A_TN_H
#define D_A_TN_H
#include "d/d_jnt_hit.h"
#include "d/d_path.h"
#include "f_op/f_op_actor.h"
#include "d/d_cc_d.h"
#include "d/d_particle.h"
#include "c/c_damagereaction.h"
#include "m_Do/m_Do_hostIO.h"
struct tn_p {
/* 0x00 */ u8 m00[0x4C - 0x00];
/* 0x00 */ J3DModel* mpPartModel;
/* 0x04 */ mDoExt_brkAnm* mpPartBrkAnm;
/* 0x08 */ s8 m08;
/* 0x09 */ s8 m09;
/* 0x0A */ u8 m0A[0x0C - 0x0A];
/* 0x0C */ cXyz m0C;
/* 0x18 */ cXyz m18;
/* 0x24 */ cXyz m24;
/* 0x30 */ csXyz m30;
/* 0x36 */ csXyz m36;
/* 0x3C */ u8 m3C[0x42 - 0x3C];
/* 0x42 */ s16 m42;
/* 0x44 */ s8 m44;
/* 0x45 */ u8 m45[0x4C - 0x45];
};
class tn_class : public fopEn_enemy_c {
public:
/* 0x02AC */ u8 m02AC[0x02BC - 0x02AC];
struct tn_class {
/* 0x0000 */ fopEn_enemy_c actor;
/* 0x02AC */ request_of_phase_process_class mPhaseTn;
/* 0x02B4 */ request_of_phase_process_class mPhaseTkwn;
/* 0x02BC */ u8 mBehaviorType;
/* 0x02BD */ u8 mRangeOrFrozenAnim;
/* 0x02BE */ u8 mPathIndex;
/* 0x02BF */ u8 mEnableSpawnSwitch;
/* 0x02C0 */ u8 mDisableSpawnOnDeathSwitch;
/* 0x02C1 */ u8 m02C1[0x02D0 - 0x02C1];
/* 0x02C1 */ u8 m02C1;
/* 0x02C2 */ u8 m02C2[0x02C4 - 0x02C2];
/* 0x02C4 */ mDoExt_McaMorf* mpBodyMorf;
/* 0x02C8 */ mDoExt_McaMorf* mpShieldMorf;
/* 0x02CC */ mDoExt_McaMorf* mpArmorMorf;
/* 0x02D0 */ u8 mRemainingEquipmentPieces;
/* 0x02D1 */ u8 m02D1[0x02E0 - 0x02D1];
/* 0x02E0 */ tn_p parts[3];
/* 0x02D1 */ u8 m02D1[0x02D4 - 0x02D1];
/* 0x02D4 */ u32 mShadowId;
/* 0x02D8 */ mDoExt_brkAnm* mpBrkAnm;
/* 0x02DC */ u8 m02DC;
/* 0x02DD */ s8 m02DD;
/* 0x02DE */ u8 m02DE[0x02E0 - 0x02DE];
/* 0x02E0 */ tn_p mParts[3];
/* 0x03C4 */ u8 mArmorColorIndex;
/* 0x03C5 */ u8 mEquipmentType;
/* 0x03C6 */ u8 m03C6[0x03E2 - 0x03C6];
/* 0x03E2 */ s16 m03E2;
/* 0x03E4 */ u8 m03E4[0x03EE - 0x03E4];
/* 0x03C6 */ u8 m03C6[0x03D8 - 0x03C6];
/* 0x03D8 */ u32 m03D8;
/* 0x03DC */ u8 m03DC[0x03E0 - 0x03DC];
/* 0x03E0 */ s16 mCountDownTimers[5]; // 4 = mAttackIfCloseTimer
/* 0x03EA */ s16 m03EA;
/* 0x03EC */ s16 m03EC;
/* 0x03EE */ s16 m03EE;
/* 0x03F0 */ s16 m03F0;
/* 0x03F2 */ u8 m03F2[0x041A - 0x03F2];
/* 0x03F2 */ s16 m03F2;
/* 0x03F4 */ u8 m03F4[0x03FC - 0x03F4];
/* 0x03FC */ s16 m03FC;
/* 0x03FE */ u8 m03FE;
/* 0x03FF */ u8 m03FF[0x0400 - 0x03FF];
/* 0x0400 */ f32 mPlayerDistance;
/* 0x0404 */ cXyz mPathXyz;
/* 0x0410 */ u8 m0410[0x0414 - 0x0410];
#if VERSION == VERSION_DEMO
/* 0x0414 */ s16 m0414_demo;
#endif
/* 0x0414 */ s16 m0414;
/* 0x0416 */ s16 mTargetAngle;
/* 0x0418 */ s16 m0418;
/* 0x041A */ s16 m041A;
/* 0x041C */ u8 m041C[0x0428 - 0x041C];
/* 0x0428 */ s16 m0428;
/* 0x042A */ u8 m042A[0x0430 - 0x042A];
/* 0x041C */ cXyz m041C;
/* 0x0428 */ csXyz m0428;
/* 0x042E */ s16 m042E;
/* 0x0430 */ s16 m0430;
/* 0x0432 */ u8 m0432[0x0474 - 0x0432];
/* 0x0432 */ u8 m0432;
/* 0x0433 */ u8 m0433;
/* 0x0434 */ dPa_smokeEcallBack mSmokeCb1;
/* 0x0454 */ dPa_smokeEcallBack mSmokeCb2;
/* 0x0474 */ damagereaction mDamageReaction;
/* 0x0C30 */ u8 m0C30[0x0C5C - 0x0C30];
/* 0x0C5C */ dCcD_GObjInf m0C5C;
/* 0x0D54 */ u8 m0D54[0x0D8C - 0x0D54];
/* 0x0D8C */ dCcD_GObjInf m0D8C;
/* 0x0E84 */ u8 m0E84[0x0EBC - 0x0E84];
/* 0x0EBC */ dCcD_GObjInf m0EBC;
/* 0x0FB4 */ u8 m0FB4[0x0FE8 - 0x0FB4];
/* 0x0FE8 */ dCcD_GObjInf m0FE8;
/* 0x10E0 */ u8 m10E0[0x1114 - 0x10E0];
/* 0x1114 */ dCcD_GObjInf m1114;
/* 0x120C */ u8 m120C[0x1240 - 0x120C];
/* 0x1240 */ dCcD_GObjInf m1240;
/* 0x1338 */ u8 m1338[0x1384 - 0x1338];
/* 0x0C30 */ u8 m0C30[0x0C34 - 0x0C30];
/* 0x0C34 */ int m0C34;
/* 0x0C38 */ int m0C38;
/* 0x0C3C */ cXyz m0C3C;
/* 0x0C48 */ int m0C48;
/* 0x0C4C */ u8 m0C4C[0x0C66 - 0x0C4C];
/* 0x0C66 */ s8 m0C66;
/* 0x0C67 */ s8 m0C67;
/* 0x0C68 */ u8 m0C68[0x0C74 - 0x0C68];
/* 0x0C74 */ dCcD_Cyl mCoCyl;
/* 0x0DA4 */ dCcD_Cyl mTgCyl;
/* 0x0ED4 */ dCcD_Sph mHeadSph;
/* 0x1000 */ dCcD_Sph mDefenceSph;
/* 0x112C */ dCcD_Sph mWeponSph;
/* 0x1258 */ dCcD_Sph mWepon2Sph;
/* 0x1384 */ cXyz m1384;
/* 0x1390 */ u8 m1390[0x1408 - 0x1390];
/* 0x1408 */ int m1408;
/* 0x140C */ u8 m140C[0x1430 - 0x140C];
/* 0x1430 */ fpc_ProcID mCapeEntityId;
/* 0x1434 */ dPa_cutTurnEcallBack_c m1434[3];
/* 0x1464 */ cXyz m1464[10];
/* 0x14DC */ u8 m14DC[0x150C - 0x14DC];
/* 0x150C */ enemyice mEnemyIce;
/* 0x18C4 */ enemyfire mEnemyFire;
/* 0x1AEC */ u8 m1AEC[0x1AF0 - 0x1AEC];
};
/* 0x1390 */ cXyz m1390;
/* 0x139C */ cXyz m139C;
/* 0x13A8 */ cXyz m13A8;
/* 0x13B4 */ cXyz m13B4;
/* 0x13C0 */ cXyz mWeponSphMove;
/* 0x13CC */ cXyz mWepon2SphMove;
/* 0x13D8 */ cXyz m13D8;
/* 0x13E4 */ cXyz m13E4;
/* 0x13F0 */ u8 m13F0[0x13FC - 0x13F0];
/* 0x13FC */ u8 m13FC;
/* 0x13FD */ u8 m13FD;
/* 0x13FE */ u8 m13FE[0x13FF - 0x13FE];
/* 0x13FF */ u8 m13FF;
/* 0x1400 */ s8 m1400;
/* 0x1401 */ u8 m1401[0x1402 - 0x1401];
/* 0x1402 */ s16 m1402;
/* 0x1404 */ s16 m1404;
/* 0x1406 */ u8 m1406[0x1408 - 0x1406];
/* 0x1408 */ fpc_ProcID m1408;
/* 0x140C */ s8 m140C;
/* 0x140C */ u8 m140D[0x1410 - 0x140D];
/* 0x1410 */ fpc_ProcID mBokoPcId;
/* 0x1414 */ u8 m1414[0x1418 - 0x1414];
/* 0x1418 */ fopAc_ac_c* m1418;
/* 0x141C */ u16 m141C;
/* 0x141E */ u8 m141E[0x1420 - 0x141E];
/* 0x1420 */ s32 m1420;
/* 0x1424 */ s8 m1424;
/* 0x1425 */ s8 m1425;
/* 0x1426 */ s8 m1426;
/* 0x1427 */ u8 m1427[0x1428 - 0x1427];
/* 0x1428 */ dPath* ppd;
/* 0x142C */ u8 m142C[0x1430 - 0x142C];
/* 0x1430 */ u8 mCapeEntityId;
/* 0x1431 */ u8 m1431[0x1433 - 0x1431];
/* 0x1433 */ u8 m1433;
/* 0x1434 */ s8 m1434;
/* 0x1435 */ u8 m1435[0x1436 - 0x1435];
/* 0x1436 */ s16 m1436;
/* 0x1438 */ cXyz m1438;
/* 0x1444 */ s8 m1444;
/* 0x1445 */ u8 m1445[0x1448 - 0x1445];
/* 0x1448 */ fpc_ProcID mMantPcId;
/* 0x144C */ dPa_cutTurnEcallBack_c m144C[3];
/* 0x147C */ cXyz m147C[10];
/* 0x14F4 */ s16 m14F4;
/* 0x14F6 */ s16 m14F6;
/* 0x14F8 */ s8 m14F8;
/* 0x14F9 */ u8 m14F9[0x14FA - 0x14F9];
/* 0x14FA */ s16 m14FA;
/* 0x14FC */ cXyz mCameraEyePos;
/* 0x1508 */ cXyz mCenterPos;
/* 0x1514 */ f32 m1514;
/* 0x1518 */ s8 m1518;
/* 0x1519 */ s8 m1519;
/* 0x151A */ u8 m151A[0x151C - 0x151A];
/* 0x151C */ f32 m151C;
#if VERSION > VERSION_DEMO
/* 0x1520 */ s8 m1520;
/* 0x1521 */ u8 m1521[0x1524 - 0x1521];
#endif
/* 0x1524 */ enemyice mEnemyIce;
/* 0x18DC */ enemyfire mEnemyFire;
/* 0x1B04 */ JntHit_c* mpJntHit;
}; // Size: 0x1B08
class tnHIO_c : public JORReflexible {
public:
tnHIO_c() {
m005 = 0;
m006 = 0;
m007 = 0;
m008 = 0;
m014 = 1.0f;
m018 = 25.0f;
m01E = 0xb9;
m020 = 0xc;
m01C = 0;
m00A = 0x32;
m00C = 1.0f;
m024 = 50.0f;
m028 = 1000.0f;
m02C = 400.0f;
m030 = 250.0f;
m034 = 23000;
m036 = 11000;
m038 = 400.0f;
m03C = 500.0f;
m040 = 130.0f;
m044 = 500.0f;
m048 = -125.0f;
m04C = 20.0f;
m050 = 20.0f;
m054 = 70.0f;
m058 = 90.0f;
m05C = 10.0f;
m060 = 10.0f;
m064 = 70.0f;
m068 = 1.0f;
m06C = 0x1e;
m070 = 75.0f;
m074 = 40.0f;
m078 = 40.0f;
m07C = 70.0f;
m080 = 0x1e;
m082 = 300;
m084 = 0.9f;
m088 = 1.0f;
m08C = 1.0f;
m0C4 = 0xe;
m090 = 1.0f;
m094 = 1.0f;
m098 = 1.0f;
m0C6 = 0x18;
m09C = 1.1f;
m0A0 = 1.0f;
m0A4 = 1.0f;
m0C8 = 0x16;
m0A8 = 0.5f;
m0AC = 1.0f;
m0B0 = 1.2f;
m0CA = 5;
m0B4 = 1.0f;
m0CC = 100;
m0B8 = 1.0f;
m0BC = 1.0f;
m0C0 = 1.0f;
m0CE = 0x1c;
m0D0 = 0.0f;
m0D4 = 500.0f;
};
virtual ~tnHIO_c() {};
void genMessage(JORMContext*) {}
public:
/* 0x004 */ s8 mNo;
/* 0x005 */ u8 m005;
/* 0x006 */ u8 m006;
/* 0x007 */ u8 m007;
/* 0x008 */ u8 m008;
/* 0x009 */ u8 m009[0x00A - 0x009];
/* 0x00A */ s16 m00A;
/* 0x00C */ f32 m00C;
/* 0x010 */ u8 m010[0x014 - 0x010];
/* 0x014 */ f32 m014;
/* 0x018 */ f32 m018;
/* 0x01C */ s16 m01C;
/* 0x01E */ s16 m01E;
/* 0x020 */ s16 m020;
/* 0x022 */ u8 m022[0x024 - 0x022];
/* 0x024 */ f32 m024;
/* 0x028 */ f32 m028;
/* 0x02C */ f32 m02C;
/* 0x030 */ f32 m030;
/* 0x034 */ s16 m034;
/* 0x036 */ s16 m036;
/* 0x038 */ f32 m038;
/* 0x03C */ f32 m03C;
/* 0x040 */ f32 m040;
/* 0x040 */ f32 m044;
/* 0x040 */ f32 m048;
/* 0x04C */ f32 m04C;
/* 0x050 */ f32 m050;
/* 0x054 */ f32 m054;
/* 0x058 */ f32 m058;
/* 0x05C */ f32 m05C;
/* 0x060 */ f32 m060;
/* 0x064 */ f32 m064;
/* 0x068 */ f32 m068;
/* 0x06C */ s16 m06C;
/* 0x06E */ u8 m06E[0x070 - 0x06E];
/* 0x070 */ f32 m070;
/* 0x074 */ f32 m074;
/* 0x078 */ f32 m078;
/* 0x07C */ f32 m07C;
/* 0x080 */ s16 m080;
/* 0x082 */ s16 m082;
/* 0x084 */ f32 m084;
/* 0x088 */ f32 m088;
/* 0x08C */ f32 m08C;
/* 0x090 */ f32 m090;
/* 0x094 */ f32 m094;
/* 0x098 */ f32 m098;
/* 0x09C */ f32 m09C;
/* 0x0A0 */ f32 m0A0;
/* 0x0A4 */ f32 m0A4;
/* 0x0A8 */ f32 m0A8;
/* 0x0AC */ f32 m0AC;
/* 0x0B0 */ f32 m0B0;
/* 0x0B4 */ f32 m0B4;
/* 0x0B8 */ f32 m0B8;
/* 0x0BC */ f32 m0BC;
/* 0x0C0 */ f32 m0C0;
/* 0x0C4 */ s16 m0C4;
/* 0x0C6 */ s16 m0C6;
/* 0x0C8 */ s16 m0C8;
/* 0x0CA */ s16 m0CA;
/* 0x0CC */ s16 m0CC;
/* 0x0CE */ s16 m0CE;
/* 0x0D0 */ f32 m0D0;
/* 0x0D4 */ f32 m0D4;
/* 0x0D8 */ JntHit_HIO_c mJntHitHIO;
}; // Size: 0x104
#endif /* D_A_TN_H */
+3 -3
View File
@@ -196,9 +196,9 @@ enum {
/* 0xBC */ DSNAP_TYPE_UNKBC,
/* 0xBD */ DSNAP_TYPE_MO2,
/* 0xBE */ DSNAP_TYPE_UNKBE,
/* 0xBF */ DSNAP_TYPE_UNKBF,
/* 0xC0 */ DSNAP_TYPE_UNKC0,
/* 0xC1 */ DSNAP_TYPE_UNKC1,
/* 0xBF */ DSNAP_TYPE_TN_NO_SHIELD,
/* 0xC0 */ DSNAP_TYPE_TN_SHIELD,
/* 0xC1 */ DSNAP_TYPE_TN_MIGHTY,
/* 0xC2 */ DSNAP_TYPE_FGANON,
/* 0xC3 */ DSNAP_TYPE_ST,
/* 0xC4 */ DSNAP_TYPE_UNKC4,
+1 -1
View File
@@ -2945,7 +2945,7 @@ static cPhs_State daFganon_Create(fopAc_ac_c* a_this) {
deru_brk(i_this);
}
e_this->initBt(REG8_F(8) + 300.0f, 300.0f);
i_this->mCapeID = fopAcM_create(fpcNm_MANT_e, 1, &a_this->current.pos, fopAcM_GetRoomNo(a_this));
i_this->mCapeID = fopAcM_create(fpcNm_MANT_e, mant_class::Type_PHANTOM_GANON_e, &a_this->current.pos, fopAcM_GetRoomNo(a_this));
daFganon_Execute(i_this);
}
return res2;
+4037 -117
View File
File diff suppressed because it is too large Load Diff