summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorLagoLunatic <LagoLunatic@users.noreply.github.com>2026-05-21 19:18:46 -0400
committerGitHub <noreply@github.com>2026-05-21 19:18:46 -0400
commitab5659b2016b4040424198f2f33080e125182f21 (patch)
tree5c0faf528ecf13a22347b3ccc1e9d939ed636282 /include
parentd10eaa3ef8b258d5edc4eb8756280155ec342481 (diff)
d_a_player_main cleanup and some demo matches (#1016)
* d_a_player_main cleanup and some demo matches * Add unions for player_main procvars * Make d_a_player_main fields private
Diffstat (limited to 'include')
-rw-r--r--include/SSystem/SComponent/c_bg_s_lin_chk.h2
-rw-r--r--include/d/actor/d_a_himo2.h2
-rw-r--r--include/d/actor/d_a_player_main.h56
-rw-r--r--include/d/d_com_inf_game.h4
-rw-r--r--include/d/d_particle.h34
-rw-r--r--include/d/d_save.h12
-rw-r--r--include/m_Do/m_Do_ext.h4
7 files changed, 78 insertions, 36 deletions
diff --git a/include/SSystem/SComponent/c_bg_s_lin_chk.h b/include/SSystem/SComponent/c_bg_s_lin_chk.h
index ac67b09e..bd458156 100644
--- a/include/SSystem/SComponent/c_bg_s_lin_chk.h
+++ b/include/SSystem/SComponent/c_bg_s_lin_chk.h
@@ -20,7 +20,7 @@ public:
public:
cBgS_LinChk() { ct(); }
void ct();
- void Set2(cXyz* pStart, cXyz* pEnd, fpc_ProcID actorPid);
+ void Set2(cXyz* pi_start, cXyz* pi_end, fpc_ProcID pi_actor);
virtual ~cBgS_LinChk() {}
diff --git a/include/d/actor/d_a_himo2.h b/include/d/actor/d_a_himo2.h
index 95928667..98284246 100644
--- a/include/d/actor/d_a_himo2.h
+++ b/include/d/actor/d_a_himo2.h
@@ -17,7 +17,7 @@ struct himo2_s {
}; // Size: 0x24
struct himo2_class {
- BOOL setTargetPos(cXyz*, float*, float*);
+ BOOL setTargetPos(cXyz*, f32*, f32*);
/* 0x0000 */ fopAc_ac_c actor;
/* 0x0290 */ u8 m0290[0x029C - 0x0290];
diff --git a/include/d/actor/d_a_player_main.h b/include/d/actor/d_a_player_main.h
index 4096cc6e..aee7dc0c 100644
--- a/include/d/actor/d_a_player_main.h
+++ b/include/d/actor/d_a_player_main.h
@@ -1257,10 +1257,10 @@ public:
void setSeAnime(daPy_anmHeap_c const*, J3DFrameCtrl*);
void initSeAnime();
void resetSeAnime();
- int setMoveAnime(f32, f32, f32, daPy_ANM, daPy_ANM, int, f32);
- BOOL setSingleMoveAnime(daPy_ANM, f32, f32, s16, f32);
- BOOL setActAnimeUpper(u16, daPy_UPPER, f32, f32, s16, f32);
- BOOL resetActAnimeUpper(daPy_UPPER, f32);
+ int setMoveAnime(f32, f32, f32, daPy_ANM, daPy_ANM, int, f32 i_morf);
+ BOOL setSingleMoveAnime(daPy_ANM, f32, f32, s16, f32 i_morf);
+ BOOL setActAnimeUpper(u16, daPy_UPPER, f32, f32, s16, f32 i_morf);
+ BOOL resetActAnimeUpper(daPy_UPPER, f32 i_morf);
void animeUpdate();
void simpleAnmPlay(J3DAnmBase*);
void setHandModel(daPy_ANM);
@@ -1584,7 +1584,9 @@ public:
f32 checkRopeRoofHit(s16);
int changeRopeSwingProc();
int changeRopeEndProc(int);
+#if VERSION > VERSION_DEMO
BOOL checkSpecialRope();
+#endif
int changeRopeToHangProc();
BOOL checkRopeSwingWall(cXyz*, cXyz*, s16*, f32*);
void setBlendRopeMoveAnime(int);
@@ -1782,7 +1784,7 @@ public:
BOOL procCutExA();
BOOL procCutExB_init();
BOOL procCutExB();
- BOOL procCutTurn_init(int);
+ BOOL procCutTurn_init(BOOL);
BOOL procCutTurn();
BOOL procCutRoll_init();
BOOL procCutRoll();
@@ -1929,13 +1931,13 @@ public:
BOOL checkFaceTypeNot() const { return mFace == daPyFace_NONE; }
BOOL checkCrawlWaterIn() { return mWaterY > current.pos.y + 15.0f; }
void setFootEffectPosType(u8 type) { mFootEffectPosType = type; }
+ int checkIsland() const { return mRestartPoint; }
+ const s16 getTactLeftHandPos() const { return mProcVar3.m34D6; }
void checkBothItemEquipAnime() const {}
void checkDoubleItemEquipAnime() const {}
- void checkIsland() const {}
void checkRopeThrowAnime() const {}
void checkSwordEquipAnime() const {}
- void getTactLeftHandPos() const {}
void setSpeedAndAngleBoomerang() {}
void setSpeedAndAngleBow() {}
void setSpeedAndAngleHookshot() {}
@@ -1989,10 +1991,10 @@ public:
virtual MtxP getModelJointMtx(u16 idx) { return mpCLModel->getAnmMtx(idx); }
virtual f32 getOldSpeedY() { return mOldSpeed.y; }
virtual BOOL setHookshotCarryOffset(fpc_ProcID, const cXyz*);
- virtual BOOL checkComboCutTurn() const { return mCurProc == daPyProc_CUT_TURN_e && mProcVar0.m3570 != 0; }
+ virtual BOOL checkComboCutTurn() const { return mCurProc == daPyProc_CUT_TURN_e && mProcVar6.m3570 != 0; }
virtual void cancelChangeTextureAnime() { resetDemoTextureAnime(); }
-public:
+private:
/* 0x0320 */ request_of_phase_process_class mPhase;
/* 0x0328 */ J3DModelData* mpCLModelData;
/* 0x032C */ J3DModel* mpCLModel;
@@ -2155,12 +2157,26 @@ public:
/* 0x34CC */ u8 m34CC;
/* 0x34CD */ u8 m34CD;
/* 0x34CE */ u8 m34CE;
- /* 0x34D0 */ s16 m34D0; // TODO: procvar
- /* 0x34D2 */ s16 m34D2; // TODO: procvar
- /* 0x34D4 */ s16 m34D4; // TODO: procvar
- /* 0x34D6 */ s16 m34D6; // TODO: procvar
- /* 0x34D8 */ s16 m34D8; // TODO: procvar
- /* 0x34DA */ s16 m34DA; // TODO: procvar
+ // `mProcVar`'s are variables that are context dependent for each `PROC` action.
+ // (The exact setup may need to be simplified later)
+ /* 0x34D0 */ union {
+ s16 m34D0;
+ } mProcVar0;
+ /* 0x34D2 */ union {
+ s16 m34D2;
+ } mProcVar1;
+ /* 0x34D4 */ union {
+ s16 m34D4;
+ } mProcVar2;
+ /* 0x34D6 */ union {
+ s16 m34D6;
+ } mProcVar3;
+ /* 0x34D8 */ union {
+ s16 m34D8;
+ } mProcVar4;
+ /* 0x34DA */ union {
+ s16 m34DA;
+ } mProcVar5;
/* 0x34DC */ s16 m34DC;
/* 0x34DE */ s16 m34DE;
/* 0x34E0 */ s16 m34E0;
@@ -2233,12 +2249,14 @@ public:
/* 0x356C */ int mCameraInfoIdx;
// `mProcVar`'s are variables that are context dependent for each `PROC` action.
// (The exact setup may need to be simplified later)
- union {
+ /* 0x3570 */ union {
s32 m3570;
daPy_ANM mDamageAnm;
int mBottleItem;
- } /* 0x3570 */ mProcVar0;
- /* 0x3574 */ s32 m3574; // TODO: procvar
+ } mProcVar6;
+ /* 0x3574 */ union {
+ s32 m3574;
+ } mProcVar7;
/* 0x3578 */ int m3578;
/* 0x357C */ int m357C;
/* 0x3580 */ int m3580;
@@ -2256,7 +2274,7 @@ public:
/* 0x35B0 */ f32 mStickDistance;
/* 0x35B4 */ f32 m35B4;
/* 0x35B8 */ f32 m35B8;
- /* 0x35BC */ f32 mVelocity;
+ /* 0x35BC */ f32 mNormalSpeed;
/* 0x35C0 */ u8 m35C0[0x35C4 - 0x35C0];
/* 0x35C4 */ f32 m35C4;
/* 0x35C8 */ f32 m35C8;
diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h
index fb2773c9..1e555227 100644
--- a/include/d/d_com_inf_game.h
+++ b/include/d/d_com_inf_game.h
@@ -4109,8 +4109,8 @@ inline void dComIfGp_particle_swapFrameBufferTexture() {
g_dComIfG_gameInfo.play.getParticle()->swapFrameBufferTexture();
}
-inline void dComIfGp_particle_draw(JPADrawInfo* inf) { if (g_dComIfG_gameInfo.play.getParticle() != NULL) g_dComIfG_gameInfo.play.getParticle()->draw(inf); }
-inline void dComIfGp_particle_drawP1(JPADrawInfo* inf) { if (g_dComIfG_gameInfo.play.getParticle() != NULL) g_dComIfG_gameInfo.play.getParticle()->drawP1(inf); }
+inline void dComIfGp_particle_draw(JPADrawInfo* inf) { if (g_dComIfG_gameInfo.play.getParticle() != NULL) g_dComIfG_gameInfo.play.getParticle()->drawNormal(inf); }
+inline void dComIfGp_particle_drawP1(JPADrawInfo* inf) { if (g_dComIfG_gameInfo.play.getParticle() != NULL) g_dComIfG_gameInfo.play.getParticle()->drawNormalP1(inf); }
inline void dComIfGp_particle_drawToon(JPADrawInfo* inf) { if (g_dComIfG_gameInfo.play.getParticle() != NULL) g_dComIfG_gameInfo.play.getParticle()->drawToon(inf); }
inline void dComIfGp_particle_drawToonP1(JPADrawInfo* inf) { if (g_dComIfG_gameInfo.play.getParticle() != NULL) g_dComIfG_gameInfo.play.getParticle()->drawToonP1(inf); }
inline void dComIfGp_particle_drawProjection(JPADrawInfo* inf) { if (g_dComIfG_gameInfo.play.getParticle() != NULL) g_dComIfG_gameInfo.play.getParticle()->drawProjection(inf); }
diff --git a/include/d/d_particle.h b/include/d/d_particle.h
index c6dbc707..9c84f345 100644
--- a/include/d/d_particle.h
+++ b/include/d/d_particle.h
@@ -491,8 +491,8 @@ public:
return set(dPtclGroup_ShipTail_e, particleID, pos, angle, scale, alpha, &mSingleRippleEcallBack, -1, NULL, NULL, NULL);
}
- void draw(JPADrawInfo* inf) { draw(inf, dPtclGroup_Normal_e); }
- void drawP1(JPADrawInfo* inf) { draw(inf, dPtclGroup_NormalP1_e); }
+ void drawNormal(JPADrawInfo* inf) { draw(inf, dPtclGroup_Normal_e); }
+ void drawNormalP1(JPADrawInfo* inf) { draw(inf, dPtclGroup_NormalP1_e); }
void drawToon(JPADrawInfo* inf) { draw(inf, dPtclGroup_Toon_e); }
void drawToonP1(JPADrawInfo* inf) { draw(inf, dPtclGroup_ToonP1_e); }
void drawProjection(JPADrawInfo* inf) { draw(inf, dPtclGroup_Projection_e); }
@@ -503,39 +503,51 @@ public:
void draw2DmenuFore(JPADrawInfo* inf) { draw(inf, dPtclGroup_2DmenuFore_e); }
void draw2DmenuBack(JPADrawInfo* inf) { draw(inf, dPtclGroup_2DmenuBack_e); }
- u32 getParticleNum() { return mEmitterMng->getParticleNumber(); }
- u32 getEmitterNum() { return mEmitterMng->getEmitterNumber(); }
-
int addModelEmitter(dPa_modelEmitter_c *emitter) { return mModelControl->add(emitter); }
void drawModelParticle() { mModelControl->draw(); }
+
JKRHeap * getHeap() { return mHeap; }
+ void getHeapSize() {}
+ void getSceneHeap() {}
+ void getSceneHeapSize() {}
+ static dPa_selectTexEcallBack* getTsuboSelectTexEcallBack(int index) { return &mTsubo[index]; }
static dPa_selectTexEcallBack mTsubo[4];
static dPa_setColorEcallBack* getLifeBallSetColorEcallBack(int idx) { return &mLifeBall[idx]; }
static dPa_setColorEcallBack mLifeBall[3];
- static bool isStatus(u8 status) { return mStatus & status; }
- static void onStatus(u8 status) { mStatus |= status; }
- static void offStatus(u8 status) { mStatus &= ~status; }
- static u8 mStatus;
-
static JPAEmitterManager* getEmitterManager() { return mEmitterMng; }
static void forceDeleteEmitter(JPABaseEmitter* emitter) { mEmitterMng->forceDeleteEmitter(emitter); }
+ u32 getParticleNum() { return mEmitterMng->getParticleNumber(); }
+ u32 getEmitterNum() { return mEmitterMng->getEmitterNumber(); }
static JPAEmitterManager* mEmitterMng;
static dPa_stripesEcallBack mStripes;
+
+ static dPa_kageroEcallBack* getKageroEcallBack() { return &mKagero; }
static dPa_kageroEcallBack mKagero;
+
+ static dPa_smokeEcallBack* getSmokeEcallback() { return &mSmokeEcallback; }
static dPa_smokeEcallBack mSmokeEcallback;
+
+ static dPa_smokePcallBack* getSmokePcallback() { return &mSmokePcallback; }
static dPa_smokePcallBack mSmokePcallback;
+
static dPa_singleRippleEcallBack mSingleRippleEcallBack;
+
+ static dPa_ripplePcallBack* getRipplePcallBack() { return &mRipplePcallBack; }
static dPa_ripplePcallBack mRipplePcallBack;
+
static dPa_bombSmokeEcallBack mBombSmokeEcallBack;
static MtxP getWindViewMatrix() { return mWindViewMatrix; }
static Mtx mWindViewMatrix;
- static dPa_selectTexEcallBack* getTsuboSelectTexEcallBack(int index) { return &mTsubo[index]; }
+ static bool isStatus(u8 status) { return mStatus & status; }
+ static void onStatus(u8 status) { mStatus |= status; }
+ static void offStatus(u8 status) { mStatus &= ~status; }
+ static u8 mStatus;
/* 0x0000 */ JKRSolidHeap* mHeap;
/* 0x0004 */ JPAResourceManager* mCommonResMng;
diff --git a/include/d/d_save.h b/include/d/d_save.h
index 7c52b3fa..77bd5a32 100644
--- a/include/d/d_save.h
+++ b/include/d/d_save.h
@@ -17,7 +17,17 @@ public:
void setWalletSize(u8 size) { mWalletSize = size; }
int getRupee() { return mRupee; }
void setRupee(u16 rupee) { mRupee = rupee; }
- u16 getRupeeMax() { return 0; } // TODO
+ u16 getRupeeMax() {
+ switch (mWalletSize) {
+ case 0:
+ return 200;
+ case 1:
+ return 1000;
+ case 2:
+ default:
+ return 5000;
+ }
+ }
u8 getMagic() { return mMagic; }
void setMagic(u8 magic) { mMagic = magic; }
u8 getMaxMagic() { return mMaxMagic; }
diff --git a/include/m_Do/m_Do_ext.h b/include/m_Do/m_Do_ext.h
index 5a9cc007..7c0756e8 100644
--- a/include/m_Do/m_Do_ext.h
+++ b/include/m_Do/m_Do_ext.h
@@ -224,11 +224,13 @@ public:
mOldFrameEndJoint = 0;
mOldFrameMorfCounter = 0.0f;
field_0x8 = 0.0f;
+#if VERSION > VERSION_DEMO
field_0x10 = 0.0f;
field_0x14 = 0.0f;
+#endif
}
- void initOldFrameMorf(f32, u16, u16);
+ void initOldFrameMorf(f32 i_morf, u16 i_frameStartJoint, u16 i_frameEndJoint);
void decOldFrameMorfCounter();
bool getOldFrameFlg() { return mOldFrameFlg; }