d_a_am 50%

This commit is contained in:
LagoLunatic
2023-10-03 04:07:42 -04:00
parent b83f5a71fd
commit 7824fb54c0
22 changed files with 962 additions and 567 deletions
+2 -2
View File
@@ -140,7 +140,7 @@ private:
friend struct J3DJointFactory;
friend class J3DJointTree;
/* 0x14 */ u16 mJntNo;
/* 0x18 */ u16 mJntNo;
/* 0x1A */ u8 mKind;
/* 0x1B */ u8 mScaleCompensate;
/* 0x1C */ J3DTransformInfo mTransformInfo;
@@ -150,6 +150,6 @@ private:
/* 0x58 */ J3DMtxCalc* mMtxCalc;
/* 0x5C */ J3DMtxCalc* mOldMtxCalc;
/* 0x60 */ J3DMaterial* mMesh;
}; // Size: 0x54
}; // Size: 0x64
#endif /* J3DJOINT_H */
+1 -1
View File
@@ -28,7 +28,7 @@ template<typename T>
class JPACallBackBase {
public:
JPACallBackBase() {}
virtual ~JPACallBackBase();
virtual ~JPACallBackBase() {}
virtual void init(JPABaseEmitter*);
virtual void execute(JPABaseEmitter*);
+17 -7
View File
@@ -23,13 +23,23 @@ class cCcD_CylAttr;
class cCcD_SphAttr;
enum cCcD_ObjAtType {
/* 0x00000002 */ AT_TYPE_SWORD = (1 << 1),
/* 0x00000020 */ AT_TYPE_BOMB = (1 << 5),
/* 0x00000040 */ AT_TYPE_BOOMERANG = (1 << 6),
/* 0x00004000 */ AT_TYPE_NORMAL_ARROW = (1 << 14),
/* 0x00040000 */ AT_TYPE_FIRE_ARROW = (1 << 18),
/* 0x00080000 */ AT_TYPE_ICE_ARROW = (1 << 19),
/* 0x00100000 */ AT_TYPE_LIGHT_ARROW = (1 << 20),
/* 0x00000002 */ AT_TYPE_SWORD = (1 << 1),
/* 0x00000020 */ AT_TYPE_BOMB = (1 << 5),
/* 0x00000040 */ AT_TYPE_BOOMERANG = (1 << 6),
/* 0x00000080 */ AT_TYPE_BOKO_STICK = (1 << 7),
/* 0x00000100 */ AT_TYPE_WATER = (1 << 8),
/* 0x00000200 */ AT_TYPE_FIRE = (1 << 9),
/* 0x00000400 */ AT_TYPE_MACHETE = (1 << 10),
/* 0x00004000 */ AT_TYPE_NORMAL_ARROW = (1 << 14),
/* 0x00010000 */ AT_TYPE_SKULL_HAMMER = (1 << 16),
/* 0x00040000 */ AT_TYPE_FIRE_ARROW = (1 << 18),
/* 0x00080000 */ AT_TYPE_ICE_ARROW = (1 << 19),
/* 0x00100000 */ AT_TYPE_LIGHT_ARROW = (1 << 20),
/* 0x00200000 */ AT_TYPE_LEAF_WIND = (1 << 21),
/* 0x01000000 */ AT_TYPE_STALFOS_MACE = (1 << 24),
/* 0x04000000 */ AT_TYPE_DARKNUT_SWORD = (1 << 26),
/* 0x08000000 */ AT_TYPE_GRAPPLING_HOOK = (1 << 27),
/* 0x10000000 */ AT_TYPE_MOBLIN_SPEAR = (1 << 28),
};
class cCcD_ShapeAttr {
+2
View File
@@ -41,6 +41,8 @@ public:
u8 GetInf(int row, int col) const;
void Set(u32 fmtNum, char **pFmt, u32 nameNum, char **pName, u8* pData);
int GetNameIndex(const char* pName, int start) const { return mName.GetIndex(pName, start); }
cDT_Format mFmt;
cDT_Name mName;
+194
View File
@@ -0,0 +1,194 @@
#ifndef C_DAMAGEREACTION_H
#define C_DAMAGEREACTION_H
#include "d/d_cc_d.h"
#include "d/d_bg_s_acch.h"
#include "d/d_kankyo.h"
#include "m_Do/m_Do_ext.h"
struct enemyice {
public:
/* 0x000 */ fopAc_ac_c* mpActor;
/* 0x004 */ s16 mTotalNumFramesToRemainFrozen;
/* 0x006 */ u8 mNumFramesDyingToLightArrowsSoFar;
/* 0x007 */ u8 m007[0x008 - 0x007];
/* 0x008 */ f32 mYOffset;
/* 0x00C */ u8 m00C;
/* 0x00D */ u8 mState;
/* 0x00E */ s16 mNumFramesLeftToRemainFrozen;
/* 0x010 */ s16 m010;
/* 0x012 */ s16 m012;
/* 0x014 */ s16 m014;
/* 0x016 */ u8 m016[0x018 - 0x016];
/* 0x018 */ cXyz m018;
/* 0x024 */ f32 m024;
/* 0x028 */ f32 m028;
/* 0x02C */ f32 m02C;
/* 0x030 */ dCcD_Stts mStts;
/* 0x06C */ dCcD_Cyl mCyl;
/* 0x19C */ f32 mCylHeight;
/* 0x1A0 */ f32 mWallRadius;
/* 0x1A4 */ f32 mScaleXZ;
/* 0x1A8 */ f32 mScaleY;
/* 0x1AC */ f32 m1AC;
/* 0x1B0 */ u8 m1B0;
/* 0x1B1 */ u8 mDeathSwitch;
/* 0x1B2 */ u8 m1B2[0x1B4 - 0x1B2];
/* 0x1B4 */ dBgS_AcchCir mBgAcchCir;
/* 0x1F4 */ dBgS_ObjAcch mBgAcch;
};
STATIC_ASSERT(sizeof(enemyice) == 0x3B8);
struct enemyfire {
public:
/* 0x000 */ fopAc_ac_c* mpActor;
/* 0x004 */ s16 m004;
/* 0x006 */ u8 m006;
/* 0x007 */ u8 m007[0x008 - 0x007];
/* 0x008 */ s16 m008;
/* 0x00A */ u8 m00A[0x00C - 0x00A];
/* 0x00C */ mDoExt_McaMorf* mpMcaMorf;
/* 0x010 */ u8 m010[10];
/* 0x01A */ u8 m01A[0x01C - 0x01A];
/* 0x01C */ f32 m01C[10];
/* 0x044 */ u8 m044[0x080 - 0x044];
/* 0x080 */ cXyz m080;
/* 0x08C */ f32 m08C;
/* 0x090 */ f32 m090;
/* 0x094 */ f32 m094;
/* 0x098 */ f32 m098;
/* 0x09C */ u8 m09C[0x09D - 0x09C];
/* 0x09D */ char m09D;
/* 0x09E */ u8 m09E[0x0A0 - 0x09E];
/* 0x0A0 */ dCcD_Stts mStts;
/* 0x0DC */ dCcD_Sph mSph;
/* 0x208 */ LIGHT_INFLUENCE mLight;
};
STATIC_ASSERT(sizeof(enemyfire) == 0x228);
struct damagereaction {
/* 0x000 */ fopEn_enemy_c* mpEnemy;
/* 0x004 */ s16 m004;
/* 0x006 */ s16 mState;
/* 0x008 */ u16 mEnemyType;
/* 0x00A */ u8 m00A[0x00C - 0x00A];
/* 0x00C */ s32 mTimer;
/* 0x010 */ csXyz m010[20];
/* 0x088 */ csXyz m088[20];
/* 0x100 */ cXyz m100[20];
/* 0x1F0 */ cXyz m1F0[20];
/* 0x2E0 */ cXyz m2E0[20];
/* 0x3D0 */ u8 m3D0[0x410 - 0x3D0];
/* 0x410 */ s32 m410;
/* 0x414 */ u8 m414[0x418 - 0x414];
/* 0x418 */ s32 m418;
/* 0x41C */ u8 m41C[0x420 - 0x41C];
/* 0x420 */ s32 m420;
/* 0x424 */ s32 m424;
/* 0x428 */ f32 m428;
/* 0x42C */ cXyz m42C;
/* 0x438 */ s32 m438;
/* 0x43C */ u8 m43C[0x440 - 0x43C];
/* 0x440 */ s16 m440;
/* 0x442 */ s16 m442;
/* 0x444 */ s16 m444;
/* 0x446 */ u8 m446[0x448 - 0x446];
/* 0x448 */ s16 m448;
/* 0x44A */ u8 m44A[0x44C - 0x44A];
/* 0x44C */ cXyz m44C;
/* 0x458 */ cXyz m458;
/* 0x464 */ u8 m464[0x468 - 0x464];
/* 0x468 */ f32 m468;
/* 0x46C */ f32 m46C;
/* 0x470 */ f32 m470;
/* 0x474 */ f32 m474;
/* 0x478 */ f32 m478;
/* 0x47C */ s32 m47C;
/* 0x480 */ s16 m480;
/* 0x482 */ s16 m482;
/* 0x484 */ s16 m484;
/* 0x486 */ s16 m486;
/* 0x488 */ s16 m488;
/* 0x48A */ s16 m48A;
/* 0x48C */ csXyz m48C;
/* 0x492 */ u8 m492[0x496 - 0x492];
/* 0x496 */ s16 m496;
/* 0x498 */ s16 m498;
/* 0x49A */ s16 m49A;
/* 0x49C */ s16 m49C;
/* 0x49E */ s16 m49E;
/* 0x4A0 */ s16 m4A0;
/* 0x4A2 */ s16 m4A2;
/* 0x4A4 */ s16 m4A4;
/* 0x4A6 */ s16 m4A6;
/* 0x4A8 */ s16 m4A8;
/* 0x4AA */ s16 m4AA;
/* 0x4AC */ s16 m4AC;
/* 0x4AE */ s16 m4AE;
/* 0x4B0 */ s16 m4B0;
/* 0x4B2 */ s16 m4B2;
/* 0x4B4 */ s16 m4B4;
/* 0x4B6 */ s16 m4B6;
/* 0x4B8 */ s16 m4B8;
/* 0x4BA */ s16 m4BA;
/* 0x4BC */ s16 m4BC;
/* 0x4BE */ s16 m4BE;
/* 0x4C0 */ s16 m4C0;
/* 0x4C2 */ u8 m4C2[0x4C8 - 0x4C2];
/* 0x4C8 */ s16 m4C8[3];
/* 0x4CE */ s16 mInvincibleTimer;
/* 0x4D0 */ s16 m4D0;
/* 0x4D2 */ u8 m4D2[0x4D4 - 0x4D2];
/* 0x4D4 */ f32 m4D4;
/* 0x4D8 */ u8 m4D8[0x4DC - 0x4D8];
/* 0x4DC */ dBgS_AcchCir mAcchCir;
/* 0x51C */ dBgS_Acch mAcch;
/* 0x6E0 */ s32 m6E0;
/* 0x6E4 */ f32 mSpawnY;
/* 0x6E8 */ cXyz m6E8;
/* 0x6F4 */ cXyz m6F4[2];
/* 0x70C */ u8 m70C;
/* 0x70D */ u8 m70D;
/* 0x70E */ u8 m70E;
/* 0x70F */ u8 m70F[0x710 - 0x70F];
/* 0x710 */ u8 m710;
/* 0x711 */ u8 m711[0x712 - 0x711];
/* 0x712 */ u8 m712;
/* 0x713 */ u8 m713;
/* 0x714 */ u8 m714[0x71E - 0x714];
/* 0x71E */ s16 m71E;
/* 0x720 */ f32 mMaxFallDistance;
/* 0x724 */ dCcD_Stts mStts;
/* 0x760 */ cXyz mParticlePos;
/* 0x76C */ csXyz mParticleAngle;
/* 0x772 */ u8 m772[0x774 - 0x772];
/* 0x774 */ dPa_levelEcallBack mParticleCallBack;
/* 0x778 */ u8 m778[0x794 - 0x778];
/* 0x794 */ s16 m794;
/* 0x796 */ u8 m796[0x7A0 - 0x796];
/* 0x7A0 */ cXyz m7A0;
/* 0x7AC */ u8 m7AC[0x7AE - 0x7AC];
/* 0x7AE */ s16 m7AE;
/* 0x7B0 */ u8 m7B0[0x7B2 - 0x7B0];
/* 0x7B2 */ s16 m7B2;
/* 0x7B4 */ u8 m7B4[0x7B8 - 0x7B4];
/* 0x7B8 */ s32 m7B8;
};
// STATIC_ASSERT(sizeof(damagereaction) == 0x7BC);
void ice_bg_check(enemyice*);
BOOL enemy_ice(enemyice*);
void enemy_fire(enemyfire*);
void enemy_fire_remove(enemyfire*);
void enemy_piyo_set(fopAc_ac_c*);
void wall_angle_get(fopAc_ac_c*, short);
void dr_body_bg_check(damagereaction*);
void dr_joint_bg_check(damagereaction*);
void kado_check(damagereaction*);
void hang_ang_get(damagereaction*);
void dr_damage_set(damagereaction*);
void dr_damage_anime(damagereaction*);
void dr_matrix_set(damagereaction*);
void damage_reaction(damagereaction*);
#endif /* C_DAMAGEREACTION_H */
-2
View File
@@ -9,8 +9,6 @@ class daItem_c : public daItemBase_c {
public:
typedef void (daItem_c::*daItem_c_ModeFunc)();
daItem_c() : mPtclFollowCb(0, 0), mPtclSmokeCb(1) {}
float getYOffset();
void set_mtx();
void set_mtx_base(J3DModel*, cXyz, csXyz);
+1
View File
@@ -94,6 +94,7 @@ public:
s16 getBodyAngleX() { return mBodyAngle.x; }
s16 getBodyAngleY() { return mBodyAngle.y; }
void changeDemoMoveAngle(s16 angle) { mDemo.setMoveAngle(angle); }
u8 getCutType() const { return mAttackState; }
virtual MtxP getLeftHandMatrix() = 0;
virtual MtxP getRightHandMatrix() = 0;
+1 -1
View File
@@ -33,7 +33,7 @@ public:
void ClrWallHit();
void SetWallR(f32);
void CalcWallRR();
void SetWall(f32, f32);
void SetWall(f32 i_halfHeight, f32 i_radius);
void SetWallHDirect(f32);
virtual ~dBgS_AcchCir() {}
+37 -1
View File
@@ -18,6 +18,7 @@
#include "d/d_wood.h"
#include "d/d_demo.h"
#include "d/d_timer.h"
#include "SSystem/SComponent/c_data_tbl.h"
class JKRArchive;
class JKRExpHeap;
@@ -54,11 +55,42 @@ public:
/* 0x10 */ u8 mTimerType;
};
class dADM_CharTbl : public cDT {
public:
/* 0x28 */ s32 mIndex_ARG;
/* 0x2C */ s32 mIndex_N_ITEM0;
/* 0x30 */ s32 mIndex_N_ITEM1;
/* 0x34 */ s32 mIndex_N_ITEM2;
/* 0x38 */ s32 mIndex_N_ITEM3;
/* 0x3C */ s32 mIndex_N_ITEM4;
/* 0x40 */ s32 mIndex_N_ITEM5;
/* 0x44 */ s32 mIndex_N_ITEM6;
/* 0x48 */ s32 mIndex_N_ITEM7;
/* 0x4C */ s32 mIndex_N_ITEM8;
/* 0x50 */ s32 mIndex_N_ITEM9;
/* 0x54 */ s32 mIndex_N_ITEM10;
/* 0x58 */ s32 mIndex_N_ITEM11;
/* 0x5C */ s32 mIndex_N_ITEM12;
/* 0x60 */ s32 mIndex_N_ITEM13;
/* 0x64 */ s32 mIndex_N_ITEM14;
/* 0x68 */ s32 mIndex_N_ITEM15;
/* 0x6C */ s32 mIndex_percent;
/* 0x70 */ s32 mIndex_ITEM0;
/* 0x74 */ s32 mIndex_ITEM1;
/* 0x78 */ s32 mIndex_ITEM2;
/* 0x7C */ s32 mIndex_ITEM3;
/* 0x80 */ s32 mIndex_ITEM4;
/* 0x84 */ s32 mIndex_ITEM5;
/* 0x88 */ s32 mIndex_ITEM6;
/* 0x8C */ s32 mIndex_ITEM7;
};
STATIC_ASSERT(sizeof(dADM_CharTbl) == 0x90);
class dADM {
public:
/* 0x00 */ int mBlockCount;
/* 0x04 */ void* mpData;
/* 0x08 */ u8 mCharTbl[0x90];
/* 0x08 */ dADM_CharTbl mCharTbl;
public:
dADM();
@@ -1186,6 +1218,10 @@ inline u8 dComIfGp_getMiniGameType() {
inline dDlst_window_c * dComIfGp_getWindow(int idx) { return &g_dComIfG_gameInfo.play.mDlstWindow[idx]; }
inline dADM_CharTbl* dComIfGp_CharTbl() {
return &g_dComIfG_gameInfo.play.mADM.mCharTbl;
}
/**
* === EVENT ===*/
+14 -5
View File
@@ -3,12 +3,13 @@
#include "global.h"
#include "SSystem/SComponent/c_xyz.h"
#include "SSystem/SComponent/c_sxyz.h"
#include "JSystem/J3DGraphAnimator/J3DModel.h"
struct __jnt_hit_data_c {
public:
/* 0x0 */ s16 mJointIndex;
/* 0x2 */ s16 field_0x2;
/* 0x0 */ s16 field_0x0;
/* 0x2 */ s16 mJointIndex;
/* 0x4 */ f32 field_0x4;
/* 0x8 */ cXyz* field_0x8;
};
@@ -16,9 +17,9 @@ public:
class JntHit_c {
public:
void CreateInit();
void CylHitPosAngleOffset(cXyz*, csXyz*, cXyz*, csXyz*, cXyz, cXyz, float);
void Cyl2HitPosAngleOffset(cXyz*, csXyz*, cXyz*, csXyz*, cXyz, cXyz, float);
void SphHitPosAngleOffset(cXyz*, csXyz*, cXyz*, csXyz*, cXyz, float);
void CylHitPosAngleOffset(cXyz*, csXyz*, cXyz*, csXyz*, cXyz, cXyz, f32);
void Cyl2HitPosAngleOffset(cXyz*, csXyz*, cXyz*, csXyz*, cXyz, cXyz, f32);
void SphHitPosAngleOffset(cXyz*, csXyz*, cXyz*, csXyz*, cXyz, f32);
void HitBufferUpdate(int*, cXyz*, int, csXyz*, cXyz*);
s32 searchJntHitPosAngleOffset(cXyz*, csXyz*, cXyz*, csXyz*);
@@ -34,4 +35,12 @@ public:
/* 0x1A */ u8 field_0x1A[0x20 - 0x1A];
};
class JntHit_HIO_c {
public:
JntHit_HIO_c();
virtual ~JntHit_HIO_c();
};
JntHit_c* JntHit_create(J3DModel* model, __jnt_hit_data_c* jntHitData, s16 hitDataCount);
#endif /* D_JNT_HIT_H */
+4 -3
View File
@@ -36,7 +36,7 @@ public:
class dPa_followEcallBack : public dPa_levelEcallBack {
public:
dPa_followEcallBack(u8, u8);
dPa_followEcallBack(u8=0, u8=0);
virtual ~dPa_followEcallBack();
virtual void execute(JPABaseEmitter*);
@@ -45,6 +45,7 @@ public:
virtual void end();
JPABaseEmitter* getEmitter() { return mpEmitter; }
void setRateOff(u8 param_0) { field_0x11 = param_0; }
/* 0x04 */ JPABaseEmitter* mpEmitter;
/* 0x08 */ u8 field_0x08[0x10 - 0x08];
@@ -58,8 +59,8 @@ STATIC_ASSERT(sizeof(dPa_followEcallBack) == 0x14);
class dPa_smokeEcallBack : public dPa_followEcallBack {
public:
dPa_smokeEcallBack(u8);
virtual ~dPa_smokeEcallBack();
dPa_smokeEcallBack(u8=1);
virtual ~dPa_smokeEcallBack() {}
/* 0x14 */ s8 field_0x14;
/* 0x15 */ u8 field_0x15;
+17 -1
View File
@@ -1,7 +1,23 @@
#ifndef D_SNAP_H
#define D_SNAP_H
void dSnap_DebugDraw();
#include "f_op/f_op_actor.h"
class dSnap_Obj;
void dSnap_PhotoIndex2TableIndex(int);
void dSnap_GetFigRoomId(int);
void dSnap_MatDl();
void dSnap_AlphaClearDL();
void dSnap_Create();
void dSnap_ReleaseShutter();
void dSnap_Execute();
void dSnap_GetResult();
void dSnap_GetResultDetail();
void dSnap_RegistSnapObj(dSnap_Obj&);
void dSnap_RegistFig(unsigned char, fopAc_ac_c*, float, float, float);
void dSnap_RegistFig(unsigned char, fopAc_ac_c*, const Vec&, short, float, float, float);
void dSnap_DebugDraw();
void dSnap_Delete();
#endif /* D_SNAP_H */
+13 -1
View File
@@ -249,7 +249,19 @@ public:
STATIC_ASSERT(sizeof(fopAc_ac_c) == 0x290);
class fopEn_enemy_c;
class fopEn_enemy_c : public fopAc_ac_c {
public:
/* 0x290 */ f32 m290;
/* 0x294 */ f32 m294;
/* 0x298 */ f32 m298;
/* 0x29C */ f32 m29C;
/* 0x2A0 */ f32 m2A0;
/* 0x2A4 */ f32 m2A4;
/* 0x2A8 */ u8 mCurrParryOpeningType;
/* 0x2A9 */ u8 field_2A9[0x2AC - 0x2A9];
};
STATIC_ASSERT(sizeof(fopEn_enemy_c) == 0x2AC);
s32 fopAc_IsActor(void* actor);
+2
View File
@@ -498,6 +498,8 @@ fopAc_ac_c* fopAcM_searchFromName4Event(char* name, s16 eventID);
s32 fopAcM_getWaterY(const cXyz*, f32*);
void fpoAcM_relativePos(fopAc_ac_c* actor, cXyz* p_inPos, cXyz* p_outPos);
void fopAcM_setGbaName(fopAc_ac_c* i_this, u8 itemNo, u8 gbaName0, u8 gbaName1);
inline void make_prm_warp_hole(u32* actorParams, u8 p1, u8 p2, u8 p3) {
u32 pp1 = (p3 << 0x8);
u32 pp2 = (p2 << 0x10);
+1 -1
View File
@@ -279,7 +279,7 @@ public:
void calc();
void calc(u16);
void setAnm(J3DAnmTransform*, int, f32, f32, f32, f32, void*);
void setAnm(J3DAnmTransform* bckAnm, int loopMode, f32 morf, f32 speed, f32, f32, void* soundAnm);
void setMorf(f32);
J3DModel* getModel() { return mpModel; }
void setFrame(f32 frame) { mFrameCtrl.setFrame(frame); }
+12
View File
@@ -65,6 +65,18 @@ inline void cMtx_ZrotM(Mtx mtx, s16 z) {
mDoMtx_ZrotM(mtx, z);
}
inline void cMtx_XrotS(Mtx mtx, s16 x) {
mDoMtx_XrotS(mtx, x);
}
inline void cMtx_YrotS(Mtx mtx, s16 y) {
mDoMtx_YrotS(mtx, y);
}
inline void cMtx_ZrotS(Mtx mtx, s16 z) {
mDoMtx_ZrotS(mtx, z);
}
inline void cMtx_lookAt(Mtx param_0, const Vec* param_1, const Vec* param_2, s16 param_3) {
mDoMtx_lookAt(param_0, param_1, param_2, param_3);
}