diff options
| author | LagoLunatic <LagoLunatic@users.noreply.github.com> | 2026-05-21 19:18:46 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-05-21 19:18:46 -0400 |
| commit | ab5659b2016b4040424198f2f33080e125182f21 (patch) | |
| tree | 5c0faf528ecf13a22347b3ccc1e9d939ed636282 /include | |
| parent | d10eaa3ef8b258d5edc4eb8756280155ec342481 (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.h | 2 | ||||
| -rw-r--r-- | include/d/actor/d_a_himo2.h | 2 | ||||
| -rw-r--r-- | include/d/actor/d_a_player_main.h | 56 | ||||
| -rw-r--r-- | include/d/d_com_inf_game.h | 4 | ||||
| -rw-r--r-- | include/d/d_particle.h | 34 | ||||
| -rw-r--r-- | include/d/d_save.h | 12 | ||||
| -rw-r--r-- | include/m_Do/m_Do_ext.h | 4 |
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; } |
