summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorLagoLunatic <LagoLunatic@users.noreply.github.com>2026-08-03 17:54:03 -0400
committerLagoLunatic <LagoLunatic@users.noreply.github.com>2026-08-03 17:54:03 -0400
commit1d57f0468986987ec26a3d1800bdc1aaad3794db (patch)
treea631e7fbf333e284389eaa232960261e533cd49d /include
parent8a602cb87ff104df82502d32e6bd6cd00bbac513 (diff)
salvage_tbox demo match and fix inlinesHEADmain
Diffstat (limited to 'include')
-rw-r--r--include/JSystem/JParticle/JPAEmitter.h2
-rw-r--r--include/d/actor/d_a_salvage_tbox.h65
-rw-r--r--include/d/actor/d_a_ship.h14
-rw-r--r--include/d/d_menu_collect.h2
-rw-r--r--include/m_Do/m_Do_mtx.h4
5 files changed, 55 insertions, 32 deletions
diff --git a/include/JSystem/JParticle/JPAEmitter.h b/include/JSystem/JParticle/JPAEmitter.h
index 6ab37a64..f7d7b256 100644
--- a/include/JSystem/JParticle/JPAEmitter.h
+++ b/include/JSystem/JParticle/JPAEmitter.h
@@ -285,6 +285,7 @@ public:
void quitImmortalEmitter() { clearStatus(JPAEmtrStts_Immortal); }
void becomeContinuousParticle() { mMaxFrame = 0; }
+ bool isContinuousParticle() { return mMaxFrame == 0; }
void becomeInvalidEmitter() {
mMaxFrame = -1;
stopCreateParticle();
@@ -324,7 +325,6 @@ public:
void drawCB() {}
void drawEmitterCallBack() {}
void getgReRDirection(JGeometry::TVec3<f32>&) {}
- void isContinuousParticle() {}
void setEmitterRotation(const JGeometry::TVec3<s16>&) {}
static JPAEmitterInfo emtrInfo;
diff --git a/include/d/actor/d_a_salvage_tbox.h b/include/d/actor/d_a_salvage_tbox.h
index 60d7c4ee..eeae15ad 100644
--- a/include/d/actor/d_a_salvage_tbox.h
+++ b/include/d/actor/d_a_salvage_tbox.h
@@ -3,37 +3,48 @@
#include "f_op/f_op_actor.h"
#include "d/d_particle.h"
+#include "f_op/f_op_actor_mng.h"
class daSTBox_shadowEcallBack_c : public dPa_levelEcallBack {
public:
- void deleteCallBack() {}
JPABaseEmitter* getEmitter() { return mpEmitter; }
- void setEmitter(JPABaseEmitter* emitter) { mpEmitter = emitter; }
- void setDepth(float depth) { mpDepth = depth; }
- void setWaterFlatY(float waterFlatY) { mpWaterFlatY = waterFlatY; }
- void setWaterY(float waterY) { mpWaterY = waterY; }
- void setField0x48(float field) { field_0x48 = field; }
- void setup(JPABaseEmitter* emitter, const cXyz*, const csXyz* angle, signed char) {
+ void setWaterY(f32 waterY) { mWaterY = waterY; }
+ void setWaterFlatY(f32 waterFlatY) { mWaterFlatY = waterFlatY; }
+ void setDepth(f32 depth) { mDepth = depth; }
+ void setup(JPABaseEmitter* emitter, const cXyz*, const csXyz* angle, s8) {
field_0x4 = 0;
- mpAngle = const_cast<csXyz*>(angle);
+ mpAngle = angle;
mpEmitter = emitter;
}
+ void setIndirectTexData(f32 exTransY, f32 exScaleY) {
+ mExTransY = exTransY;
+ mExScaleY = exScaleY;
+ }
+ void setPos(cXyz& pos) { mPos = pos; }
+ void deleteCallBack() {
+ if (mpEmitter != NULL) {
+ mpEmitter->setEmitterCallBackPtr(NULL);
+ mpEmitter->becomeInvalidEmitter();
+ }
+ mpEmitter = NULL;
+ }
+
~daSTBox_shadowEcallBack_c() {}
void getMaxWaterY(JGeometry::TVec3<f32>*);
void execute(JPABaseEmitter*);
void draw(JPABaseEmitter*);
+private:
/* 0x04 */ s16 field_0x4;
- /* 0x06 */ s16 field_0x6;
- /* 0x08 */ f32 mpWaterFlatY;
- /* 0x0C */ f32 field_0x0C;
- /* 0x10 */ f32 mpWaterY;
- /* 0x14 */ JGeometry::TVec3<f32> mPos[3];
- /* 0x38 */ cXyz position;
- /* 0x44 */ csXyz* mpAngle;
- /* 0x48 */ f32 field_0x48;
- /* 0x4C */ f32 mpDepth;
+ /* 0x08 */ f32 mWaterY;
+ /* 0x0C */ f32 mWaterFlatY;
+ /* 0x10 */ f32 mDepth;
+ /* 0x14 */ JGeometry::TVec3<f32> field_0x14[3];
+ /* 0x38 */ cXyz mPos;
+ /* 0x44 */ const csXyz* mpAngle;
+ /* 0x48 */ f32 mExTransY;
+ /* 0x4C */ f32 mExScaleY;
/* 0x50 */ f32 field_0x50;
/* 0x54 */ JPABaseEmitter* mpEmitter;
}; // Size: 0x58
@@ -69,22 +80,28 @@ public:
static const f32 m_shadow_scale;
public:
- /* 0x290 */ request_of_phase_process_class field_0x290;
+ /* 0x290 */ request_of_phase_process_class mPhase;
/* 0x298 */ J3DModel* mpModel;
- /* 0x29C */ JPABaseEmitter* field_0x29C[2];
- /* 0x2A4 */ JPABaseEmitter* field_0x2A4;
+ /* 0x29C */ JPABaseEmitter* field_0x29C[3];
/* 0x2A8 */ u8 field_0x2A8[0x2AC - 0x2A8];
/* 0x2AC */ dPa_rippleEcallBack mRippleCallBack;
- /* 0x2C0 */ daSTBox_shadowEcallBack_c shadowCallback;
- /* 0x318 */ cXyz position;
+ /* 0x2C0 */ daSTBox_shadowEcallBack_c mShadowCallback;
+ /* 0x318 */ cXyz mParticlePos;
/* 0x324 */ cXyz field_0x324;
/* 0x330 */ u8 field_0x330;
/* 0x331 */ u8 field_0x331;
/* 0x332 */ s16 field_0x332;
/* 0x334 */ u8 field_0x334;
/* 0x335 */ u8 field_0x335;
+#if VERSION > VERSION_DEMO
/* 0x336 */ u8 field_0x336;
- /* 0x337 */ u8 field_0x337[0x338 - 0x337];
- /* 0x338 */ s32 field_0x338;
+ /* 0x338 */ fpc_ProcID mItemPID;
+#endif
}; // Size: 0x33C
+
+namespace daSTBox_prm {
+ inline u32 getBoxType(daSTBox_c* i_this) { return (fopAcM_GetParam(i_this) >> 8) & 0xF; }
+ inline u32 getItemNo(daSTBox_c* i_this) { return fopAcM_GetParam(i_this) & 0xFF; }
+};
+
#endif /* D_A_SALVAGE_TBOX_H */
diff --git a/include/d/actor/d_a_ship.h b/include/d/actor/d_a_ship.h
index dfcd7856..00c9a5ea 100644
--- a/include/d/actor/d_a_ship.h
+++ b/include/d/actor/d_a_ship.h
@@ -151,11 +151,11 @@ public:
s16 getCannonAngleY() const { return shape_angle.y + m0394; }
s16 getCraneAngle() const { return m0398; }
s16 getCraneBaseAngle() const { return mCraneBaseAngle; }
- void getCraneHookAngleY() const {}
- void getCraneRipplePosX() const {}
- void getCraneRipplePosY() const {}
- void getCraneRipplePosZ() const {}
- cXyz* getCraneTop() { return m0434; }
+ s16 getCraneHookAngleY() const { return shape_angle.y; }
+ cXyz* getCraneTop() { return mCraneTop; }
+ f32 getCraneRipplePosX() const { return mCraneRipplePos.x; }
+ f32 getCraneRipplePosY() const { return mCraneRipplePos.y; }
+ f32 getCraneRipplePosZ() const { return mCraneRipplePos.z; }
MtxP getHeadJntMtx() { return mpHeadAnm->getModel()->getAnmMtx(FN_HEAD_H_JNT_J_FN_ATAMA_e); }
f32 getJumpRate() { return mJumpRate; }
u8 getPart() const { return mPart; }
@@ -386,13 +386,13 @@ public:
/* 0x0428 */ cXyz* m0428;
/* 0x042C */ fpc_ProcID mTactWarpID;
/* 0x0430 */ fpc_ProcID m0430;
- /* 0x0434 */ cXyz* m0434;
+ /* 0x0434 */ cXyz* mCraneTop;
/* 0x0438 */ cXyz mTillerTopPos;
/* 0x0444 */ cXyz m0444;
/* 0x0450 */ cXyz m0450;
/* 0x045C */ cXyz m045C;
/* 0x0468 */ cXyz mRopeLineSegments[250];
- /* 0x1020 */ cXyz m1020;
+ /* 0x1020 */ cXyz mCraneRipplePos;
/* 0x102C */ cXyz m102C;
/* 0x1038 */ cXyz m1038;
/* 0x1044 */ cXyz m1044;
diff --git a/include/d/d_menu_collect.h b/include/d/d_menu_collect.h
index a303e09f..132a9fee 100644
--- a/include/d/d_menu_collect.h
+++ b/include/d/d_menu_collect.h
@@ -222,6 +222,8 @@ public:
dMc_HIO_c();
virtual ~dMc_HIO_c() {}
+ void genMessage(JORMContext* ctx) {}
+
public:
/* 0x00 */ // vtable
/* 0x04 */ u8 m04[0x44 - 0x04];
diff --git a/include/m_Do/m_Do_mtx.h b/include/m_Do/m_Do_mtx.h
index 4bca7e35..4fdaf59f 100644
--- a/include/m_Do/m_Do_mtx.h
+++ b/include/m_Do/m_Do_mtx.h
@@ -141,6 +141,10 @@ inline void mDoMtx_quat(Mtx m, const Quaternion* q) {
MTXQuat(m, q);
}
+inline void cMtx_identity(Mtx mtx) {
+ mDoMtx_identity(mtx);
+}
+
inline void cMtx_inverse(const Mtx a, Mtx b) {
mDoMtx_inverse(a, b);
}