summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2024-10-28 04:00:15 -0700
committerGitHub <noreply@github.com>2024-10-28 13:00:15 +0200
commitb1d7bc9cc42699a20dd84e8db0d1d768346ebae3 (patch)
tree8f3fdfa4ab69da7bb93833f16d51be9bc8801a74 /include
parentf5e80cf9fda54894e97af8629386e2a7c562479a (diff)
d_a_alink_effect mostly done (#2227)
* d_a_alink_effect work * more d_a_alink_effect work * some d_a_alink data cleanup * d_a_alink_effect mostly done
Diffstat (limited to 'include')
-rw-r--r--include/JSystem/JParticle/JPAEmitter.h7
-rw-r--r--include/JSystem/JStudio/JStudio/stb.h5
-rw-r--r--include/d/actor/d_a_alink.h87
-rw-r--r--include/d/actor/d_a_npc_tkc.h6
-rw-r--r--include/d/actor/d_a_npc_zra.h2
-rw-r--r--include/d/actor/d_a_obj_tks.h6
-rw-r--r--include/d/actor/d_a_player.h14
-rw-r--r--include/d/d_jnt_col.h1
-rw-r--r--include/d/d_particle.h14
9 files changed, 109 insertions, 33 deletions
diff --git a/include/JSystem/JParticle/JPAEmitter.h b/include/JSystem/JParticle/JPAEmitter.h
index 807f22d075..c7dc059086 100644
--- a/include/JSystem/JParticle/JPAEmitter.h
+++ b/include/JSystem/JParticle/JPAEmitter.h
@@ -132,6 +132,7 @@ public:
void setGlobalRotation(const JGeometry::TVec3<s16>& rot) {
JPAGetXYZRotateMtx(rot.x, rot.y, rot.z, mGlobalRot);
}
+ void getGlobalTranslation(JGeometry::TVec3<f32>* out) const { out->set(mGlobalTrs); }
void setGlobalDynamicsScale(const JGeometry::TVec3<f32>& i_scale) { mGlobalScl.set(i_scale); }
void setGlobalAlpha(u8 alpha) { mGlobalPrmClr.a = alpha; }
u8 getGlobalAlpha() { return mGlobalPrmClr.a; }
@@ -140,6 +141,12 @@ public:
void setGlobalEnvColor(u8 r, u8 g, u8 b) { mGlobalEnvClr.r = r; mGlobalEnvClr.g = g; mGlobalEnvClr.b = b; }
void setVolumeSize(u16 size) { mVolumeSize = size; }
void setLifeTime(s16 lifetime) { mLifeTime = lifetime; }
+ void setAwayFromCenterSpeed(f32 i_speed) { mAwayFromCenterSpeed = i_speed; }
+ void setAwayFromAxisSpeed(f32 i_speed) { mAwayFromAxisSpeed = i_speed; }
+ void setSpread(f32 i_spread) { mSpread = i_spread; }
+ void setLocalTranslation(const JGeometry::TVec3<f32>& i_trans) { mLocalTrs.set(i_trans); }
+ void setLocalRotation(const JGeometry::TVec3<s16>& i_rot) { mLocalRot.set(i_rot.x * 0.005493248f, i_rot.y * 0.005493248f, i_rot.z * 0.005493248f); }
+ void setRateStep(u8 i_step) { mRateStep = i_step; }
void setGlobalParticleHeightScale(f32 height) {
mGlobalPScl.y = height;
diff --git a/include/JSystem/JStudio/JStudio/stb.h b/include/JSystem/JStudio/JStudio/stb.h
index ea299a709c..a4ee1a7e76 100644
--- a/include/JSystem/JStudio/JStudio/stb.h
+++ b/include/JSystem/JStudio/JStudio/stb.h
@@ -163,6 +163,10 @@ struct TParseData : public data::TParse_TParagraph_data::TData {
set(data);
}
+ TParseData() {
+ set(NULL);
+ }
+
void set(const data::TParse_TParagraph_data& data) {
data.getData(this);
}
@@ -183,6 +187,7 @@ struct TParseData : public data::TParse_TParagraph_data::TData {
template <int T, class Iterator=JGadget::binary::TValueIterator_raw<u8> >
struct TParseData_fixed : public TParseData<T> {
TParseData_fixed(const void* pContent) : TParseData<T>(pContent) {}
+ TParseData_fixed() : TParseData<T>() {}
const void* getNext() const {
return fileCount;
diff --git a/include/d/actor/d_a_alink.h b/include/d/actor/d_a_alink.h
index 3419656f72..b5d58ad8f9 100644
--- a/include/d/actor/d_a_alink.h
+++ b/include/d/actor/d_a_alink.h
@@ -35,13 +35,18 @@ public:
/* 800CFE68 */ virtual ~daAlink_lockCursor_c() {}
void initFrame() {
- field_0x4 = false;
+ field_0x4 = 0;
field_0x2c = 4.0f;
field_0x30 = 0.0f;
}
+ void setPos(f32 i_posX, f32 i_posY) {
+ mPosX = i_posX;
+ mPosY = i_posY;
+ }
+
private:
- /* 0x04 */ bool field_0x4;
+ /* 0x04 */ u8 field_0x4;
/* 0x05 */ u8 field_0x5[3];
/* 0x08 */ J2DScreen* mScrn;
/* 0x0C */ J2DPane* field_0xc;
@@ -54,8 +59,8 @@ private:
/* 0x28 */ J2DAnmTransformKey* field_0x28;
/* 0x2C */ f32 field_0x2c;
/* 0x30 */ f32 field_0x30;
- /* 0x34 */ f32 field_0x34;
- /* 0x38 */ f32 field_0x38;
+ /* 0x34 */ f32 mPosX;
+ /* 0x38 */ f32 mPosY;
};
class daAlink_sight_c : public daPy_sightPacket_c {
@@ -86,16 +91,16 @@ public:
/* 800CFD58 */ virtual ~daAlink_blur_c() {}
// private:
- /* 0x010 */ void* m_blurTex;
+ /* 0x010 */ ResTIMG* m_blurTex;
/* 0x014 */ int field_0x14;
/* 0x018 */ u8 field_0x18[4];
/* 0x01C */ int field_0x1c;
- /* 0x020 */ u8 field_0x20[4];
+ /* 0x020 */ int field_0x20;
/* 0x024 */ f32 field_0x24;
/* 0x028 */ u8 field_0x28[4];
/* 0x02C */ cXyz field_0x2c;
- /* 0x038 */ cXyz field_0x38[0x3C];
- /* 0x308 */ cXyz field_0x308[0x3C];
+ /* 0x038 */ cXyz field_0x38[60];
+ /* 0x308 */ cXyz field_0x308[60];
}; // Size = 0x5D8
class dAlink_bottleWaterPcallBack_c : public JPAParticleCallBack {
@@ -110,6 +115,12 @@ public:
mKeepMinY = minY;
}
+ s16 getAppearFlg() const { return mAppearFlg; }
+ s16 getHitFlg() const { return mHitFlg; }
+ cXyz& getHitPos() { return mHitPos; }
+
+ void onAppearFlg() { mAppearFlg = true; }
+
private:
/* 0x04 */ s16 mHitFlg;
/* 0x06 */ s16 mAppearFlg;
@@ -218,6 +229,7 @@ public:
class daAlink_c;
typedef int (daAlink_c::*daAlink_procFunc)();
+typedef void (daAlink_c::*EffParamProc)();
struct daAlink_procInitTable {
/* 0x0 */ daAlink_procFunc m_procFunc;
@@ -1257,11 +1269,22 @@ public:
/* 0x4 */ DIR_NONE,
};
+ enum daAlink_EFFPROC {
+ EFFPROC_FRONT_ROLL,
+ EFFPROC_SLIP,
+ EFFPROC_SMALL_LAND,
+ EFFPROC_RUN,
+ EFFPROC_LAND,
+ EFFPROC_SUMOU,
+ EFFPROC_NONE,
+ };
+
class firePointEff_c {
public:
/* 800CFC3C */ ~firePointEff_c();
/* 800CFC78 */ firePointEff_c();
/* 0x00 */ u8 field_0x0;
+ /* 0x02 */ u16 field_0x2;
/* 0x04 */ u32 field_0x4;
/* 0x08 */ u32 field_0x8;
/* 0x0C */ cXyz field_0xc;
@@ -1277,7 +1300,7 @@ public:
}; // Size: 0x10
/* 8009D87C */ bool getE3Zhint();
- /* 8009D884 */ static char* getAlinkArcName();
+ /* 8009D884 */ static const char* getAlinkArcName();
/* 8009DA60 */ static bool checkStageName(char const*);
/* 8009DA98 */ void tgHitCallback(fopAc_ac_c*, dCcD_GObjInf*, dCcD_GObjInf*);
/* 8009DB64 */ void coHitCallback(fopAc_ac_c*, dCcD_GObjInf*);
@@ -3442,22 +3465,21 @@ public:
static daAlink_AnmData const m_anmDataTable[414];
static daAlink_WlAnmData const m_wlAnmDataTable[147];
static daAlink_FaceTexData const m_faceTexDataTable[];
- static u8 const m_handLeftOutSidePos[12];
- static u8 const m_handRightOutSidePos[12];
- static u8 const m_handLeftInSidePos[12];
- static u8 const m_handRightInSidePos[12];
+ static Vec const m_handLeftOutSidePos;
+ static Vec const m_handRightOutSidePos;
+ static Vec const m_handLeftInSidePos;
+ static Vec const m_handRightInSidePos;
static daAlink_procInitTable m_procInitTable[];
static daAlink_procFunc m_demoInitTable[];
-
- static u8 m_fEffParamProc[72];
+ static EffParamProc m_fEffParamProc[];
/* 0x0062C */ request_of_phase_process_class mPhaseReq;
- /* 0x00634 */ char* mArcName;
+ /* 0x00634 */ const char* mArcName;
/* 0x00638 */ JKRExpHeap* mpArcHeap;
/* 0x0063C */ request_of_phase_process_class mShieldPhaseReq;
- /* 0x00644 */ char* mShieldArcName;
+ /* 0x00644 */ const char* mShieldArcName;
/* 0x00648 */ JKRExpHeap* mpShieldArcHeap;
/* 0x0064C */ J3DModelData* field_0x064C;
/* 0x00650 */ J3DModel* mpLinkModel;
@@ -3666,7 +3688,7 @@ public:
/* 0x02F9B */ u8 field_0x2f9b;
/* 0x02F9C */ u8 mSelectItemId;
/* 0x02F9D */ u8 field_0x2f9d;
- /* 0x02F9E */ u8 field_0x2f9e;
+ /* 0x02F9E */ u8 mEffProc;
/* 0x02F9F */ u8 field_0x2f9f;
/* 0x02FA0 */ u8 field_0x2fa0;
/* 0x02FA1 */ u8 mRunCutComboCount;
@@ -3905,8 +3927,7 @@ public:
/* 0x031A0 */ u32 mModeFlg;
/* 0x031A4 */ int field_0x31a4;
/* 0x031A8 */ u8 field_0x31a8[8];
- /* 0x031B0 */ int field_0x31b0;
- /* 0x031B4 */ u8 field_0x31b4[8];
+ /* 0x031B0 */ u32 field_0x31b0[3];
/* 0x031BC */ u32 field_0x31bc;
/* 0x031C0 */ u32 field_0x31c0;
/* 0x031C4 */ u32 field_0x31c4;
@@ -3914,15 +3935,13 @@ public:
/* 0x031CC */ u32 field_0x31cc;
/* 0x031D0 */ u32 field_0x31d0;
/* 0x031D4 */ u32 field_0x31d4;
- /* 0x031D8 */ u8 field_0x31d8[12];
+ /* 0x031D8 */ u32 field_0x31d8[3];
/* 0x031E4 */ u32 field_0x31e4;
- /* 0x031E8 */ u8 field_0x31e8[16];
+ /* 0x031E8 */ u32 field_0x31e8[4];
/* 0x031F8 */ u32 field_0x31f8;
/* 0x031FC */ u32 field_0x31fc;
/* 0x03200 */ u32 field_0x3200;
- /* 0x03204 */ u32 field_0x3204;
- /* 0x03208 */ u32 field_0x3208;
- /* 0x0320C */ u8 field_0x320c[16];
+ /* 0x03204 */ u32 field_0x3204[6];
/* 0x0321C */ u32 field_0x321c;
/* 0x03220 */ u32 field_0x3220;
/* 0x03224 */ u32 field_0x3224;
@@ -3931,17 +3950,18 @@ public:
/* 0x03258 */ u32 field_0x3258;
/* 0x0325C */ u32 field_0x325c;
/* 0x03260 */ u32 field_0x3260[2];
- /* 0x03268 */ u8 field_0x3268[0x3288 - 0x3268];
+ /* 0x03268 */ u32 field_0x3268;
+ /* 0x0326C */ u32 field_0x326c[4];
+ /* 0x0327C */ u32 field_0x327c[3];
/* 0x03288 */ u32 field_0x3288;
/* 0x0328C */ u32 field_0x328c;
/* 0x03290 */ u32 field_0x3290;
/* 0x03294 */ u32 field_0x3294;
- /* 0x03298 */ u8 field_0x3298[8];
+ /* 0x03298 */ u32 field_0x3298[2];
/* 0x032A0 */ J3DGXColorS10 field_0x32a0[2];
/* 0x032B0 */ J3DGXColorS10 field_0x32b0[2];
/* 0x032C0 */ s16 field_0x32c0[2];
- /* 0x032C4 */ u16 field_0x32c4;
- /* 0x032C6 */ u16 field_0x32c6;
+ /* 0x032C4 */ u16 field_0x32c4[2];
/* 0x032C8 */ u32 field_0x32c8;
/* 0x032CC */ u32 field_0x32cc;
/* 0x032D0 */ u32 field_0x32d0;
@@ -4094,6 +4114,15 @@ struct daAlink_cutParamTbl {
/* 0xC */ f32 m_morf;
}; // Size: 0x10
+struct daAlink_cutHorseParamTbl {
+ /* 0x0 */ int field_0x0;
+ /* 0x4 */ u16 field_0x4;
+ /* 0x6 */ u16 field_0x6;
+ /* 0x8 */ u8 field_0x8;
+ /* 0x9 */ u8 field_0x9;
+ /* 0xA */ u8 field_0xa;
+}; // Size: 0xC
+
struct daAlinkHIO_anm_c {
/* 0x00 */ s16 mEndFrame;
/* 0x04 */ f32 mSpeed;
diff --git a/include/d/actor/d_a_npc_tkc.h b/include/d/actor/d_a_npc_tkc.h
index 9f28c8b474..d2520b4ada 100644
--- a/include/d/actor/d_a_npc_tkc.h
+++ b/include/d/actor/d_a_npc_tkc.h
@@ -50,10 +50,14 @@ public:
/* 80B0FDE4 */ void setAttnPos();
/* 80B0FFD4 */ bool drawDbgInfo();
+ void setStart() { field_0xd7a = 1; }
+
static u8 mEvtSeqList[48];
private:
- /* 0x568 */ u8 field_0x568[0xd7c - 0x568];
+ /* 0x568 */ u8 field_0x568[0xd7a - 0x568];
+ /* 0xD7A */ u8 field_0xd7a;
+ /* 0xD7B */ u8 field_0xd7b[0xd7c - 0xd7b];
};
STATIC_ASSERT(sizeof(daNpcTkc_c) == 0xd7c);
diff --git a/include/d/actor/d_a_npc_zra.h b/include/d/actor/d_a_npc_zra.h
index f261b6fc43..8e734ec0e5 100644
--- a/include/d/actor/d_a_npc_zra.h
+++ b/include/d/actor/d_a_npc_zra.h
@@ -317,9 +317,11 @@ public:
/* 80B8B530 */ BOOL ECut_searchPrince1(int);
/* 80B8BCE8 */ BOOL ECut_searchPrince2(int);
/* 80B8C3E8 */ void adjustShapeAngle() {}
+
int getType() { return mType; }
u32 getAngleNoFromParam() { return (u8)(fopAcM_GetParam(this) >> 8); }
void setBlastFlag(u8 i_flag) { mBlastFlag = i_flag; }
+ MtxP getHeadMtx() { return mpMorf->getModel()->getAnmMtx(4); }
/* 0x0B48 */ Z2Creature mCreatureSound;
/* 0x0BD8 */ J3DModel* mpObjectModel[3];
diff --git a/include/d/actor/d_a_obj_tks.h b/include/d/actor/d_a_obj_tks.h
index e20f9cba35..d18338afed 100644
--- a/include/d/actor/d_a_obj_tks.h
+++ b/include/d/actor/d_a_obj_tks.h
@@ -43,8 +43,12 @@ public:
/* 80D11E94 */ bool drawDbgInfo();
/* 80D11E9C */ void drawOtherMdls();
+ void setStart() { field_0xde0 = 1; }
+
private:
- /* 0x568 */ u8 field_0x568[0xDE4 - 0x568];
+ /* 0x568 */ u8 field_0x568[0xDE0 - 0x568];
+ /* 0xDE0 */ u8 field_0xde0;
+ /* 0xDE1 */ u8 field_0xde1[0xDE4 - 0xDE1];
};
STATIC_ASSERT(sizeof(daObjTks_c) == 0xDE4);
diff --git a/include/d/actor/d_a_player.h b/include/d/actor/d_a_player.h
index a47eecb73b..577af4bc9a 100644
--- a/include/d/actor/d_a_player.h
+++ b/include/d/actor/d_a_player.h
@@ -20,7 +20,6 @@ public:
void offDrawFlg() { mDrawFlag = false; }
void setPos(const cXyz* i_pos) { mPos = *i_pos; }
-private:
/* 0x04 */ bool mDrawFlag;
/* 0x05 */ u8 field_0x5[3];
/* 0x08 */ cXyz mPos;
@@ -289,7 +288,9 @@ public:
FLG2_UNK_20000000 = 0x20000000,
FLG2_UNK_10000000 = 0x10000000,
FLG2_UNK_4080000 = 0x4080000,
+ FLG2_UNK_4000000 = 0x4000000,
FLG2_UNK_2080000 = 0x2080000,
+ FLG2_UNK_2000000 = 0x2000000,
FLG2_BOAR_SINGLE_BATTLE = 0x1800000,
FLG2_UNK_8000000 = 0x8000000,
FLG2_UNK_1000000 = 0x1000000,
@@ -341,6 +342,7 @@ public:
FLG3_UNK_4000 = 0x4000,
FLG3_UNK_2000 = 0x2000,
FLG3_UNK_1000 = 0x1000,
+ FLG3_UNK_800 = 0x800,
FLG3_UNK_400 = 0x400,
FLG3_UNK_200 = 0x200,
FLG3_UNK_100 = 0x100,
@@ -350,6 +352,7 @@ public:
FLG3_UNK_10 = 0x10,
FLG3_UNK_8 = 8,
FLG3_UNK_4 = 4,
+ FLG3_UNK_1 = 1,
};
enum daPy_ERFLG0 {
@@ -391,9 +394,12 @@ public:
ERFLG1_UNK_4000000 = 0x4000000,
ERFLG1_UNK_2000000 = 0x2000000,
ERFLG1_UNK_1000000 = 0x1000000,
+ ERFLG1_UNK_400000 = 0x400000,
ERFLG1_UNK_200000 = 0x200000,
ERFLG1_UNK_100000 = 0x100000,
+ ERFLG1_UNK_80000 = 0x80000,
ERFLG1_UNK_40000 = 0x40000,
+ ERFLG1_UNK_20000 = 0x20000,
ERFLG1_UNK_10000 = 0x10000,
ERFLG1_UNK_8000 = 0x8000,
ERFLG1_UNK_4000 = 0x4000,
@@ -459,6 +465,10 @@ public:
RFLG1_UNK_80 = 0x80,
RFLG1_UNK_40 = 0x40,
RFLG1_UNK_30 = 0x30,
+ RFLG1_UNK_20 = 0x20,
+ RFLG1_UNK_10 = 0x10,
+ RFLG1_UNK_8 = 0x8,
+ RFLG1_UNK_4 = 0x4,
RFLG1_UNK_2 = 0x2,
RFLG1_WOLF_ATTACK_REVERSE = 0x1,
@@ -802,6 +812,7 @@ public:
void onWolfEyeKeep() { onEndResetFlg1(ERFLG1_WOLF_EYE_KEEP); }
void onFogFade() { onNoResetFlg2(FLG2_UNK_4000); }
BOOL checkStickArrowReset() const { return checkResetFlg0(RFLG0_UNK_1); }
+ u32 getCutAtFlg() const { return checkNoResetFlg0(FLG0_UNK_40); }
void offWolfEnemyHangBite() { offNoResetFlg2(FLG2_WOLF_ENEMY_HANG_BITE); }
bool onWolfEnemyHangBite(fopAc_ac_c* param_0) { return onWolfEnemyBiteAll(param_0, FLG2_WOLF_ENEMY_HANG_BITE); }
@@ -870,6 +881,7 @@ public:
cXyz* getLeftHandPosP() { return &mLeftHandPos; }
cXyz* getRightHandPosP() { return &mRightHandPos; }
+ cXyz* getHeadTopPosP() { return &mHeadTopPos; }
u32 checkWolf() const { return checkNoResetFlg1(FLG1_IS_WOLF); }
u32 checkEquipHeavyBoots() const { return checkNoResetFlg0(FLG0_EQUIP_HVY_BOOTS); }
diff --git a/include/d/d_jnt_col.h b/include/d/d_jnt_col.h
index 41bc9b7dc3..bdc3a71fac 100644
--- a/include/d/d_jnt_col.h
+++ b/include/d/d_jnt_col.h
@@ -32,6 +32,7 @@ public:
bool checkShieldType(int i) { return getType(i) == 3; }
s8 getType(int i) { return mData[i].mType; }
+ int getJntNum(int i) { return mData[i].mJntNum; }
/* 0x00 */ const dJntColData_c* mData;
/* 0x04 */ J3DModel* mModel;
diff --git a/include/d/d_particle.h b/include/d/d_particle.h
index 82b49c07c2..6171193961 100644
--- a/include/d/d_particle.h
+++ b/include/d/d_particle.h
@@ -414,36 +414,48 @@ public:
}
static JPAEmitterManager* getEmitterManager() { return mEmitterMng; }
+
static JPAParticleCallBack* getLight8PcallBack() {
return &mLight8PcallBack;
}
+
static JPAParticleCallBack* getGen_b_Light8PcallBack() {
return &m_b_Light8PcallBack;
}
+
static JPAParticleCallBack* getGen_d_Light8PcallBack() {
return &m_d_Light8PcallBack;
}
+
static dPa_gen_b_light8EcallBack* getGen_b_Light8EcallBack() {
return &m_b_Light8EcallBack;
}
+
static dPa_gen_d_light8EcallBack* getGen_d_Light8EcallBack() {
return &m_d_Light8EcallBack;
}
+
static dPa_light8EcallBack* getLight8EcallBack() {
return &mLight8EcallBack;
}
+
static JPAParticleCallBack* getParticleTracePCB() {
return &mParticleTracePCB;
}
+
static JPAParticleCallBack* getFsenthPcallBack() {
return &mFsenthPcallBack;
}
+ static JPAParticleCallBack* getWaterBubblePcallBack() {
+ return &mWaterBubblePcallBack;
+ }
+
static dPa_selectTexEcallBack mTsubo[8];
static u8 mLifeBall[24];
static Mtx mWindViewMatrix;
static JPAEmitterManager* mEmitterMng;
- static u8 mWaterBubblePcallBack[4];
+ static JPAParticleCallBack mWaterBubblePcallBack;
static JPAParticleCallBack mFsenthPcallBack;
static dPa_light8EcallBack mLight8EcallBack;
static JPAParticleCallBack mLight8PcallBack;