diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2022-02-06 06:23:54 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-02-06 09:23:54 -0500 |
| commit | 3a79e96e8b033e26a3970da68d0633010fac0f03 (patch) | |
| tree | 4f96139d922bc2af03685bca121fb327723447f2 /include/d | |
| parent | 612f26c132280da43ecfa5fa8c8cc32966f06eb6 (diff) | |
d_meter2 wip / d_s_play / d_file_sel_info (#179)
* d_meter2 wip
* d_s_play
* d_file_sel_info
* format
* tag_lv5soup / tag_setBall / fix dKyeff
* d_cc_uty
Diffstat (limited to 'include/d')
| -rw-r--r-- | include/d/a/d_a_alink.h | 6 | ||||
| -rw-r--r-- | include/d/a/d_a_player.h | 15 | ||||
| -rw-r--r-- | include/d/cc/d_cc_d.h | 6 | ||||
| -rw-r--r-- | include/d/cc/d_cc_uty.h | 17 | ||||
| -rw-r--r-- | include/d/com/d_com_inf_game.h | 226 | ||||
| -rw-r--r-- | include/d/d_attention.h | 3 | ||||
| -rw-r--r-- | include/d/d_drawlist.h | 37 | ||||
| -rw-r--r-- | include/d/d_item.h | 2 | ||||
| -rw-r--r-- | include/d/d_kyeff.h | 2 | ||||
| -rw-r--r-- | include/d/d_resorce.h | 6 | ||||
| -rw-r--r-- | include/d/d_stage.h | 17 | ||||
| -rw-r--r-- | include/d/d_timer.h | 2 | ||||
| -rw-r--r-- | include/d/file/d_file_sel_info.h | 32 | ||||
| -rw-r--r-- | include/d/kankyo/d_kankyo.h | 4 | ||||
| -rw-r--r-- | include/d/kankyo/d_kankyo_wether.h | 3 | ||||
| -rw-r--r-- | include/d/meter/d_meter2.h | 231 | ||||
| -rw-r--r-- | include/d/meter/d_meter2_draw.h | 1 | ||||
| -rw-r--r-- | include/d/meter/d_meter2_info.h | 30 | ||||
| -rw-r--r-- | include/d/meter/d_meter_HIO.h | 8 | ||||
| -rw-r--r-- | include/d/msg/d_msg_object.h | 6 | ||||
| -rw-r--r-- | include/d/particle/d_particle.h | 5 | ||||
| -rw-r--r-- | include/d/s/d_s_play.h | 65 | ||||
| -rw-r--r-- | include/d/save/d_save.h | 27 |
23 files changed, 690 insertions, 61 deletions
diff --git a/include/d/a/d_a_alink.h b/include/d/a/d_a_alink.h index 1fd1e895d9..00f1a7861b 100644 --- a/include/d/a/d_a_alink.h +++ b/include/d/a/d_a_alink.h @@ -2130,6 +2130,12 @@ public: /* 80140888 */ void statusWindowExecute(cXyz const*, s16); /* 80140984 */ void statusWindowDraw(); /* 80140AC8 */ void resetStatusWindow(); + /* 8018280C */ void getChainGrabActor(); + /* 80182814 */ void checkCokkoGlide() const; + /* 8018283C */ void checkCameraLargeDamage() const; + /* 80182870 */ void getHsSubChainTopPos() const; + /* 80182888 */ void checkCutHeadProc() const; + /* 8018289C */ void getRideActor(); virtual cXyz* getMidnaAtnPos() const; virtual void setMidnaMsgNum(fopAc_ac_c*, u16); diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h index 61e0b9b342..4aa5cfc1e0 100644 --- a/include/d/a/d_a_player.h +++ b/include/d/a/d_a_player.h @@ -327,6 +327,14 @@ public: void changeDemoParam2(s16); void cancelOriginalDemo(); void changeOriginalDemo(); + /* 801829E0 */ void checkThrowDamage() const; + /* 80182A10 */ void checkGoronSideMove() const; + /* 80182AAC */ void getRightFootPosP(); + /* 80182AB4 */ void getLeftFootPosP(); + /* 80182ABC */ u32 getMidnaActor(); + /* 80182AC4 */ void checkCopyRodThrowAfter() const; + /* 80182AD8 */ void checkRide() const; + /* 80182B9C */ void getRightHandPos() const; virtual cXyz* getMidnaAtnPos() const; virtual void setMidnaMsgNum(fopAc_ac_c*, u16); @@ -512,6 +520,9 @@ public: bool checkCargoCarry() const { return mSpecialMode == SMODE_CARGO_CARRY; } bool getHeavyStateAndBoots() { return i_checkNoResetFlg0(HEAVY_STATE_BOOTS); } bool checkEnemyAttentionLock() const { return i_checkResetFlg0(ENEMY_ATTENTION_LOCK); } + bool checkCanoeSlider() const { return mSpecialMode == 0x2D; } + u8 getCutType() const { return mCutType; } + u16 getSwordAtUpTime() const { return mSwordUpTimer; } // some functions use these function as an inline // is there a better way to handle this? @@ -540,10 +551,10 @@ public: bool i_checkMidnaRide() const { return i_checkNoResetFlg0(MIDNA_RIDE); } inline static u32 getLastSceneMode(); - inline bool checkWoodSwordEquip(); + inline static bool checkWoodSwordEquip(); inline BOOL i_checkSwordGet(); inline bool i_checkShieldGet() const; - inline BOOL checkNowWolf(); + inline static BOOL checkNowWolf(); inline bool checkZoraWearFlg() const; static daMidna_c* getMidnaActor() { return m_midnaActor; } diff --git a/include/d/cc/d_cc_d.h b/include/d/cc/d_cc_d.h index 011835eb3b..b348bee671 100644 --- a/include/d/cc/d_cc_d.h +++ b/include/d/cc/d_cc_d.h @@ -136,6 +136,9 @@ public: void SetSe(u8 se) { mSe = se; } void SetMtrl(u8 mtrl) { mMtrl = mtrl; } void SetAtSpl(dCcG_At_Spl spl) { mSpl = spl; } + u8 GetSe() { return mSe; } + u8 GetSpl() { return mSpl; } + u8 GetMtrl() { return mMtrl; } // private: /* 0x1C */ u8 mSe; @@ -207,6 +210,9 @@ public: cXyz* GetAtVecP() { return mGObjAt.GetVecP(); } void SetAtSpl(dCcG_At_Spl spl) { mGObjAt.SetAtSpl(spl); } void SetAtHitCallback(dCcD_AtHitCallback callback) { mGObjAt.SetHitCallback(callback); } + u8 GetAtSe() { return mGObjAt.GetSe(); } + s32 GetAtSpl() { return mGObjAt.GetSpl(); } + u8 GetAtMtrl() { return mGObjAt.GetMtrl(); } static u32 const m_hitSeID[24]; diff --git a/include/d/cc/d_cc_uty.h b/include/d/cc/d_cc_uty.h index 16844cee7f..1182425f29 100644 --- a/include/d/cc/d_cc_uty.h +++ b/include/d/cc/d_cc_uty.h @@ -2,5 +2,22 @@ #define D_CC_D_CC_UTY_H #include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" +#include "d/com/d_com_inf_game.h" + +struct dCcU_AtInfo { + /* 0x00 */ cCcD_Obj* mpCollider; + /* 0x04 */ fopAc_ac_c* mpActor; + /* 0x08 */ Z2Creature* mpSound; + /* 0x0C */ u8 field_0xc[2]; + /* 0x0E */ s16 mHitDirection; + /* 0x10 */ u8 field_0x10[4]; + /* 0x14 */ u32 mHitBit; + /* 0x18 */ u32 field_0x18; + /* 0x1C */ u16 mAttackPower; + /* 0x1E */ u8 mPowerType; + /* 0x1F */ s8 mHitStatus; // maybe inaccurate name + /* 0x20 */ u8 mHitType; +}; #endif /* D_CC_D_CC_UTY_H */ diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index 352eb23c04..050868de06 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -178,6 +178,19 @@ public: mCStickDirection = param_1; mCStickSetFlag = flag; } + void setCStickStatusForce(u8 status, u8 param_1, u8 flag) { + mCStickStatusForce = status; + mCStickDirectionForce = param_1; + mCStickSetFlagForce = flag; + } + void setSButtonStatus(u8 status, u8 flag) { + mSButtonStatus = status; + mSButtonSetFlag = flag; + } + void setSButtonStatusForce(u8 status, u8 flag) { + mSButtonStatusForce = status; + mSButtonSetFlagForce = flag; + } void setItemLifeCount(float hearts, u8 type) { mItemLifeCount += hearts; mItemLifeCountType = type; @@ -220,6 +233,10 @@ public: const char* getStartStageName() { return mStartStage.getName(); } s8 getStartStageRoomNo() { return mStartStage.getRoomNo(); } s8 getStartStageLayer() { return mStartStage.getLayer(); } + const char* getNextStageName() { return mNextStage.getName(); } + dStage_startStage_c* getNextStartStage() { return &mNextStage; } + s8 getNextStageRoomNo() { return mNextStage.getRoomNo(); } + s8 getNextStageLayer() { return mNextStage.getLayer(); } u8 isHeapLockFlag() { return mHeapLockFlag; } void setHeapLockFlag(u8 status) { mHeapLockFlag = status; } void setSubHeapLockFlag(int idx, u8 status) { mSubHeapLockFlag[idx] = status; } @@ -235,6 +252,10 @@ public: s16 getStartStagePoint() { return mStartStage.getPoint(); } s8 getStartStageDarkArea() { return mStartStage.getDarkArea(); } void setStartStageDarkArea(s8 darkArea) { mStartStage.setDarkArea(darkArea); } + void setStartStageLayer(s8 layer) { mStartStage.setLayer(layer); } + s16 getNextStagePoint() { return mNextStage.getPoint(); } + s8 getNextStageWipe() { return mNextStage.getWipe(); } + bool isEnableNextStage() { return mNextStage.isEnable(); } void* getPlayerPtr(int ptrIdx) { return mPlayerPtr[ptrIdx]; } void* getPlayer(int idx) { return mPlayer[idx]; } JKRArchive* getMain2DArchive() { return mMain2DArchive; } @@ -260,6 +281,25 @@ public: void offPauseFlag() { mPauseFlag = false; } camera_class* getCamera(int idx) { return mCameraInfo[idx].mCamera; } s32 checkStatus(u16 flags) { return flags & mStatus; } + s16 getItemPachinkoNumCount() { return mItemPachinkoNumCount; } + void clearItemPachinkoNumCount() { mItemPachinkoNumCount = 0; } + u8 getSButtonStatusForce() { return mSButtonStatusForce; } + u8 getSButtonSetFlagForce() { return mSButtonSetFlagForce; } + u8 getCStickStatusForce() { return mCStickStatusForce; } + u8 getCStickSetFlagForce() { return mCStickSetFlagForce; } + u8 getCStickDirectionForce() { return mCStickDirectionForce; } + bool isCStickSetFlag(u8 flag) { return mCStickSetFlag & flag; } + void show2dOn() { mShow2D = 1; } + s16 getItemMaxLifeCount() { return mItemMaxLifeCount; } + f32 getItemLifeCount() { return mItemLifeCount; } + void clearItemMaxLifeCount() { mItemMaxLifeCount = 0; } + void clearItemLifeCount() { + mItemLifeCount = 0.0f; + mItemLifeCountType = 0; + } + void setCameraParamFileName(int i, char* name) { mCameraInfo[i].mCameraParamFileName = name; } + s8 getLayerOld() { return mLayerOld; } + void setStatus(u16 status) { mStatus = status; } public: /* 0x00000 */ dBgS mDBgS; @@ -302,7 +342,7 @@ public: /* 0x04E04 */ dPa_control_c* mParticle; /* 0x04E08 */ void* mSimpleModel; /* 0x04E0C */ u8 mWindowNum; - /* 0x04E0D */ u8 mLayerOld; + /* 0x04E0D */ s8 mLayerOld; /* 0x04E0E */ u16 mStatus; /* 0x04E10 */ dDlst_window_c mWindow[1]; /* 0x04E3C */ dComIfG_camera_info_class mCameraInfo[1]; @@ -515,6 +555,8 @@ extern GXColor g_blackColor; extern GXColor g_clearColor; extern GXColor g_whiteColor; +typedef int (**request_of_phase_process_fn)(void*); + void dComIfGp_setItemLifeCount(float, u8); void dComIfGp_setItemRupeeCount(long); int dComIfGs_isItemFirstBit(u8); @@ -538,7 +580,7 @@ void dComIfGs_setWarpMarkFlag(u8); void dComIfGs_setSelectEquipSword(u8); void dComIfGs_setSelectEquipShield(u8); void* dComIfG_getStageRes(char const*); -void dComLbG_PhaseHandler(request_of_phase_process_class*, int (**param_1)(void*), void*); +void dComLbG_PhaseHandler(request_of_phase_process_class*, request_of_phase_process_fn, void*); void dComIfGp_addSelectItemNum(int, s16); BOOL dComIfGs_isOneZoneSwitch(int, int); u8 dComIfGp_getSelectItem(int); @@ -559,6 +601,12 @@ bool dComIfGp_checkMapShow(); s32 dComIfGp_setHeapLockFlag(u8); s8 dComIfGs_sense_type_change_Get(); u8 dComIfGp_world_dark_get(); +JKRExpHeap* dComIfGp_getSubHeap2D(int); +void dComIfGp_world_dark_set(u8); +void dComIfGs_BossLife_public_Set(s8); + +class scene_class; +BOOL dComIfG_resetToOpening(scene_class*); inline void dComIfGp_setRStatus(u8 status, u8 flag) { g_dComIfG_gameInfo.play.setRStatus(status, flag); @@ -857,6 +905,30 @@ inline const char* dComIfGp_getStartStageName() { return g_dComIfG_gameInfo.play.getStartStageName(); } +inline const char* dComIfGp_getNextStageName() { + return g_dComIfG_gameInfo.play.getNextStageName(); +} + +inline dStage_startStage_c* dComIfGp_getNextStartStage() { + return g_dComIfG_gameInfo.play.getNextStartStage(); +} + +inline s8 dComIfGp_getNextStageRoomNo() { + return g_dComIfG_gameInfo.play.getNextStageRoomNo(); +} + +inline s8 dComIfGp_getNextStageLayer() { + return g_dComIfG_gameInfo.play.getNextStageLayer(); +} + +inline s32 dComIfGp_getNextStageWipe() { + return g_dComIfG_gameInfo.play.getNextStageWipe(); +} + +inline bool dComIfGp_isEnableNextStage() { + return g_dComIfG_gameInfo.play.isEnableNextStage(); +} + inline void dComIfGd_reset() { g_dComIfG_gameInfo.drawlist.reset(); } @@ -975,10 +1047,18 @@ inline int dComIfG_setObjectRes(const char* name, u8 param_1, JKRHeap* heap) { return g_dComIfG_gameInfo.mResControl.setObjectRes(name, param_1, heap); } +inline int dComIfG_setStageRes(const char* name, JKRHeap* heap) { + return g_dComIfG_gameInfo.mResControl.setStageRes(name, heap); +} + inline int dComIfG_syncObjectRes(const char* name) { return g_dComIfG_gameInfo.mResControl.syncObjectRes(name); } +inline int dComIfG_syncStageRes(const char* name) { + return g_dComIfG_gameInfo.mResControl.syncStageRes(name); +} + inline JKRExpHeap* dComIfGp_getExpHeap2D() { return g_dComIfG_gameInfo.play.getExpHeap2D(); } @@ -1003,8 +1083,8 @@ inline s64 dComIfGs_getSaveTotalTime() { return g_dComIfG_gameInfo.info.getSaveTotalTime(); } -inline dSv_save_c& dComIfGs_getSaveData() { - return g_dComIfG_gameInfo.info.getSavedata(); +inline dSv_save_c* dComIfGs_getSaveData() { + return &g_dComIfG_gameInfo.info.getSavedata(); } inline void dComIfGs_setLineUpItem() { @@ -1107,6 +1187,10 @@ inline s16 dComIfGp_getStartStagePoint() { return g_dComIfG_gameInfo.play.getStartStagePoint(); } +inline s16 dComIfGp_getNextStagePoint() { + return g_dComIfG_gameInfo.play.getNextStagePoint(); +} + inline void dComIfGs_initZone() { g_dComIfG_gameInfo.info.initZone(); } @@ -1167,6 +1251,10 @@ inline dBgS& dComIfG_Bgsp() { return g_dComIfG_gameInfo.play.mDBgS; } +inline dCcS* dComIfG_Ccsp() { + return &g_dComIfG_gameInfo.play.mDCcS; +} + inline s16 dComIfGs_getStartPoint() { return g_dComIfG_gameInfo.info.getRestart().getStartPoint(); } @@ -1199,7 +1287,7 @@ inline void dComIfGp_set3DStatus(u8 status, u8 direction, u8 flag) { g_dComIfG_gameInfo.play.set3DStatus(status, direction, flag); } -inline s32 dComIfGs_getLastSceneMode() { +inline u32 dComIfGs_getLastSceneMode() { return g_dComIfG_gameInfo.info.getRestart().getLastMode(); } @@ -1450,6 +1538,26 @@ inline void dComIfGp_setCStickStatus(u8 param_0, u8 param_1, u8 param_2) { g_dComIfG_gameInfo.play.setCStickStatus(param_0, param_1, param_2); } +inline void dComIfGp_setCStickStatusForce(u8 param_0, u8 param_1, u8 param_2) { + g_dComIfG_gameInfo.play.setCStickStatusForce(param_0, param_1, param_2); +} + +inline u8 dComIfGp_getCStickDirectionForce() { + return g_dComIfG_gameInfo.play.getCStickDirectionForce(); +} + +inline u8 dComIfGp_getCStickStatusForce() { + return g_dComIfG_gameInfo.play.getCStickStatusForce(); +} + +inline u8 dComIfGp_getCStickSetFlagForce() { + return g_dComIfG_gameInfo.play.getCStickSetFlagForce(); +} + +inline bool dComIfGp_isCStickSetFlag(u8 flag) { + return g_dComIfG_gameInfo.play.isCStickSetFlag(flag); +} + inline void* dComIfG_getObjectIDRes(const char* arc_name, u16 id) { return g_dComIfG_gameInfo.mResControl.getObjectIDRes(arc_name, id); } @@ -1536,6 +1644,10 @@ inline u8 dComIfG_getBrightness() { return g_dComIfG_gameInfo.mFadeBrightness; } +inline void dComIfG_setBrightness(u8 brightness) { + g_dComIfG_gameInfo.mFadeBrightness = brightness; +} + inline void dComIfGd_drawListItem3d() { g_dComIfG_gameInfo.drawlist.drawOpaListItem3d(); g_dComIfG_gameInfo.drawlist.drawXluListItem3d(); @@ -1545,4 +1657,108 @@ inline void dComIfGd_init() { g_dComIfG_gameInfo.drawlist.init(); } +inline s16 dComIfGp_getItemPachinkoNumCount() { + return g_dComIfG_gameInfo.play.getItemPachinkoNumCount(); +} + +inline void dComIfGp_clearItemPachinkoNumCount() { + g_dComIfG_gameInfo.play.clearItemPachinkoNumCount(); +} + +inline u8 dComIfGp_getSButtonStatusForce() { + return g_dComIfG_gameInfo.play.getSButtonStatusForce(); +} + +inline u8 dComIfGp_getSButtonSetFlagForce() { + return g_dComIfG_gameInfo.play.getSButtonSetFlagForce(); +} + +inline void dComIfGp_setSButtonStatus(u8 status, u8 flag) { + g_dComIfG_gameInfo.play.setSButtonStatus(status, flag); +} + +inline void dComIfGp_setSButtonStatusForce(u8 status, u8 flag) { + g_dComIfG_gameInfo.play.setSButtonStatusForce(status, flag); +} + +inline void dComIfGp_2dShowOn() { + g_dComIfG_gameInfo.play.show2dOn(); +} + +inline s16 dComIfGp_getItemMaxLifeCount() { + return g_dComIfG_gameInfo.play.getItemMaxLifeCount(); +} + +inline f32 dComIfGp_getItemLifeCount() { + return g_dComIfG_gameInfo.play.getItemLifeCount(); +} + +inline void dComIfGp_clearItemMaxLifeCount() { + g_dComIfG_gameInfo.play.clearItemMaxLifeCount(); +} + +inline void dComIfGp_clearItemLifeCount() { + g_dComIfG_gameInfo.play.clearItemLifeCount(); +} + +inline u8 dComIfGp_getItemLifeCountType() { + return g_dComIfG_gameInfo.play.getItemLifeCountType(); +} + +inline void dComIfGp_particle_cleanup() { + g_dComIfG_gameInfo.play.getParticle()->cleanup(); +} + +inline void dComIfGp_setCameraParamFileName(int i, char* name) { + g_dComIfG_gameInfo.play.setCameraParamFileName(i, name); +} + +inline void dComIfGs_onDarkClearLV(int lv) { + g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusB().onDarkClearLV(lv); +} + +inline void dComIfGs_onTransformLV(int lv) { + g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusB().onTransformLV(lv); +} + +inline s8 dComIfGp_getLayerOld() { + return g_dComIfG_gameInfo.play.getLayerOld(); +} + +inline void dComIfGp_setStartStageLayer(s8 layer) { + g_dComIfG_gameInfo.play.setStartStageLayer(layer); +} + +inline void dComIfGs_onSaveDunSwitch(int flag) { + g_dComIfG_gameInfo.info.getDan().onSwitch(flag); +} + +inline void dComIfGp_setStatus(u16 status) { + g_dComIfG_gameInfo.play.setStatus(status); +} + +inline int dComIfG_syncAllObjectRes() { + return g_dComIfG_gameInfo.mResControl.syncAllObjectRes(); +} + +inline void dComIfGp_particle_readScene(u8 particle_no, mDoDvdThd_toMainRam_c** param_1) { + g_dComIfG_gameInfo.play.getParticle()->readScene(particle_no, param_1); +} + +inline void dComIfGp_particle_calc3D() { + g_dComIfG_gameInfo.play.getParticle()->calc3D(); +} + +inline void dComIfGp_particle_calc2D() { + g_dComIfG_gameInfo.play.getParticle()->calc2D(); +} + +inline u8 dComIfGs_getDataNum() { + return g_dComIfG_gameInfo.info.getDataNum(); +} + +inline char* dComIfGs_getPlayerName() { + return g_dComIfG_gameInfo.info.getPlayer().getPlayerInfo().getLinkName(); +} + #endif /* D_COM_D_COM_INF_GAME_H */ diff --git a/include/d/d_attention.h b/include/d/d_attention.h index ed98d11aa1..4f35de5604 100644 --- a/include/d/d_attention.h +++ b/include/d/d_attention.h @@ -197,6 +197,9 @@ public: /* 8007378C */ void CheckObjectTarget(s32); /* 800737E4 */ bool LockonTruth(); /* 80073838 */ void checkDistance(cXyz*, s16, cXyz*, f32, f32, f32, f32); + /* 8016E424 */ void LockEdge(); + /* 80182994 */ void GetCheckObjectCount(); + /* 80182AD0 */ void keepLock(int); dAttCatch_c& getCatghTarget() { return mCatghTarget; } bool chkFlag(u32 flag) { return mFlags & flag; } diff --git a/include/d/d_drawlist.h b/include/d/d_drawlist.h index b3f9ef39be..fb07cf9965 100644 --- a/include/d/d_drawlist.h +++ b/include/d/d_drawlist.h @@ -26,12 +26,34 @@ private: /* 0x10 */ mDoExt_3DlineMat_c* mp3DlineMat; }; -class dDlst_FileInfo_c { +class cM_rnd_c { public: - void draw(void); - ~dDlst_FileInfo_c(); + /* 80053CDC */ void init(int, int, int); + /* 80053CEC */ f32 get(); + /* 80053DE0 */ f32 getF(f32); + /* 80053E18 */ f32 getFX(f32); + /* 80053E60 */ f32 getValue(f32, f32); + + /* 0x0 */ int seed0; + /* 0x4 */ int seed1; + /* 0x8 */ int seed2; +}; -private: +class dDlst_base_c { +public: + virtual void draw(); +}; + +class dDlst_FileInfo_c : public dDlst_base_c { +public: + dDlst_FileInfo_c() {} + virtual void draw(void); + virtual ~dDlst_FileInfo_c(); // inlined + + /* 0x04 */ J2DScreen* Scr; + /* 0x08 */ JUTFont* mFont; + /* 0x0C */ J2DPane* mBasePane; + /* 0x10 */ J2DPane* field_0x10; }; class dDlst_peekZ_c { @@ -172,10 +194,7 @@ struct view_class { /* 0xD0 */ f32 field_0xd0; }; -class dDlst_base_c { -public: - virtual void draw(); -}; +extern u8 data_80450ED0; // Wipe class dDlst_list_c { public: @@ -208,6 +227,8 @@ public: void setXluListBG() { setXluDrawList(mXluListBG); } void setXluList2DScreen() { setXluDrawList(mList2DScreen); } + static void offWipe() { data_80450ED0 = 0; } + static u8 mWipeDlst[72]; static u8 mWipeColor[4]; static f32 mWipeRate; diff --git a/include/d/d_item.h b/include/d/d_item.h index af66f97e0f..860f370b52 100644 --- a/include/d/d_item.h +++ b/include/d/d_item.h @@ -4,6 +4,8 @@ #include "d/com/d_com_inf_game.h" #include "dolphin/types.h" +void execItemGet(u8 item_id); + void item_func_HEART(); void item_func_GREEN_RUPEE(); void item_func_BLUE_RUPEE(); diff --git a/include/d/d_kyeff.h b/include/d/d_kyeff.h index baa4888a2c..3e92e91e2a 100644 --- a/include/d/d_kyeff.h +++ b/include/d/d_kyeff.h @@ -5,7 +5,7 @@ class dKyeff_c { public: - bool execute(); + int execute(); }; #endif /* D_D_KYEFF_H */ diff --git a/include/d/d_resorce.h b/include/d/d_resorce.h index 5419ba7fe5..57ff36799d 100644 --- a/include/d/d_resorce.h +++ b/include/d/d_resorce.h @@ -87,6 +87,12 @@ public: return syncRes(name, &mObjectInfo[0], ARRAY_SIZE(mObjectInfo)); } + int syncStageRes(const char* name) { + return syncRes(name, &mStageInfo[0], ARRAY_SIZE(mStageInfo)); + } + + int syncAllObjectRes() { return syncAllRes(&mObjectInfo[0], ARRAY_SIZE(mObjectInfo)); } + int deleteObjectRes(const char* name) { return deleteRes(name, &mObjectInfo[0], ARRAY_SIZE(mObjectInfo)); } diff --git a/include/d/d_stage.h b/include/d/d_stage.h index e0c2065ab2..8ded7ec695 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -556,8 +556,9 @@ public: /* 800248A8 */ void destroyMemoryBlock(); /* 8002490C */ static void setArcBank(int, char const*); /* 80024940 */ static char* getArcBank(int); - /* 80024954 */ static int resetArchiveBank(int); + /* 80024954 */ static bool resetArchiveBank(int); /* 80024DB0 */ static void SetTimePass(int); + /* 8025BAAC */ void setZoneNo(int, int); static s32 GetTimePass(); inline static s8 getStayNo() { return struct_80450D64; } @@ -566,6 +567,10 @@ public: return cLib_checkBit(mStatus[i_roomNo].unk_0x3F4, flag); } static char* getDemoArcName() { return mDemoArcName; } + static char* getArcBankName() { return mArcBankName; } + static void setRoomReadId(s8 id) { data_804505F0 = id; } + static void offNoChangeRoom() { data_80450D68 = false; } + static void setProcID(u32 id) { mProcID = id; } static JKRExpHeap* mMemoryBlock[19]; static char mArcBank[32][10]; @@ -606,10 +611,12 @@ public: } void set(const char*, s8, s16, s8, s8, u8); void offEnable() { enabled = 0; } + s8 isEnable() const { return enabled; } + s8 getWipe() const { return wipe; } private: s8 enabled; - u8 wipe; + s8 wipe; u8 wipe_speed; }; @@ -686,6 +693,8 @@ static int dStage_fieldMapMapPathInit(dStage_dt_c*, void*, int, void*); u8 dStage_roomRead_dt_c_GetReverbStage(roomRead_class&, int); void dStage_changeScene(int, f32, u32, s8, s16, int); +void dStage_infoCreate(); +u8 dStage_stagInfo_GetParticleNo(stage_stag_info_class* p_info, int layer); inline u8 dStage_roomRead_dt_c_GetLoadRoomIndex(u8 param_0) { return param_0 & 0x3f; @@ -703,6 +712,10 @@ inline u32 dStage_stagInfo_GetMiniMap(stage_stag_info_class* pstag) { return (pstag->field_0x0a >> 0xD) & 7; } +inline u8 dStage_stagInfo_GetParticleNo(stage_stag_info_class* p_info) { + return (p_info->field_0x0a >> 0x3) & 0xFF; +} + inline s8 dStage_sclsInfo_getSceneLayer(stage_scls_info_class* p_info) { return p_info->field_0xb & 0xF; } diff --git a/include/d/d_timer.h b/include/d/d_timer.h index 8e461f136f..2c20b19c48 100644 --- a/include/d/d_timer.h +++ b/include/d/d_timer.h @@ -3,4 +3,6 @@ #include "dolphin/types.h" +void dTimer_createStockTimer(); + #endif /* D_D_TIMER_H */ diff --git a/include/d/file/d_file_sel_info.h b/include/d/file/d_file_sel_info.h index 484becba0c..ac71a85d7e 100644 --- a/include/d/file/d_file_sel_info.h +++ b/include/d/file/d_file_sel_info.h @@ -1,6 +1,38 @@ #ifndef D_FILE_D_FILE_SEL_INFO_H #define D_FILE_D_FILE_SEL_INFO_H +#include "d/com/d_com_inf_game.h" #include "dolphin/types.h" +class dFile_info_c { +public: + /* 80192434 */ dFile_info_c(JKRArchive*, u8); + /* 80192570 */ void screenSet(); + /* 80192954 */ int setSaveData(dSv_save_c*, int, u8); + /* 80192AA0 */ void setHeartCnt(dSv_save_c*); + /* 80192C08 */ void setSaveDate(dSv_save_c*); + /* 80192C70 */ void setPlayTime(dSv_save_c*); + /* 80192D58 */ void modeWait(); + /* 80192D5C */ void modeMove(); + /* 80192D60 */ void _draw(); + + /* 801924A0 */ virtual ~dFile_info_c(); + +private: + /* 0x04 */ JKRArchive* mArchive; + /* 0x08 */ dDlst_FileInfo_c mFileInfo; + /* 0x1C */ u8 field_0x1c[4]; + /* 0x20 */ u8 field_0x20; + /* 0x21 */ u8 field_0x21; + /* 0x22 */ u8 field_0x22; + /* 0x24 */ CPaneMgrAlpha* mDatBase; + /* 0x28 */ CPaneMgrAlpha* mNoDatBase; + /* 0x2C */ char* mPlayerName; + /* 0x30 */ char* mSaveDate; + /* 0x34 */ char* mPlayTime; + /* 0x38 */ char* mSaveStatus; +}; + +typedef void (dFile_info_c::*warningFunc)(void); + #endif /* D_FILE_D_FILE_SEL_INFO_H */ diff --git a/include/d/kankyo/d_kankyo.h b/include/d/kankyo/d_kankyo.h index add1722d2a..35de0a93d7 100644 --- a/include/d/kankyo/d_kankyo.h +++ b/include/d/kankyo/d_kankyo.h @@ -13,6 +13,10 @@ void dKankyo_DayProc(); void dKy_set_nexttime(f32); +void dKy_itudemo_se(); +BOOL dKy_darkworld_spot_check(char const* stageName, int roomNo); +void dKy_darkworld_Area_set(char const* stageName, int roomNo); +void dKy_FiveSenses_fullthrottle_dark(); struct LIGHT_INFLUENCE { /* 800CFC7C */ ~LIGHT_INFLUENCE(); diff --git a/include/d/kankyo/d_kankyo_wether.h b/include/d/kankyo/d_kankyo_wether.h index 6e768e1002..92bcb7de63 100644 --- a/include/d/kankyo/d_kankyo_wether.h +++ b/include/d/kankyo/d_kankyo_wether.h @@ -8,9 +8,12 @@ void dKyw_wether_draw(); void dKyw_wether_delete(); +void dKyw_wether_move(); +void dKyw_wether_move_draw(); void dKyw_wether_move_draw2(); void dKyw_wether_draw2(); void dKyw_wether_delete2(); +void dKyw_wether_init(); void dKyw_wether_init2(); static void dKyw_wind_init(); static void dKyw_pntwind_init(); diff --git a/include/d/meter/d_meter2.h b/include/d/meter/d_meter2.h index df92f8011a..eb711581b8 100644 --- a/include/d/meter/d_meter2.h +++ b/include/d/meter/d_meter2.h @@ -10,13 +10,171 @@ class dMeterMap_c; +class dMeterSub_c : public dDlst_base_c { +public: + /* 8019412C */ virtual void draw(); + /* 801940D4 */ virtual ~dMeterSub_c(); + /* 8019411C */ virtual bool _create(); + /* 80194130 */ virtual bool _execute(u32); + /* 80194124 */ virtual bool _delete(); + /* 80194138 */ virtual bool isDead(); +}; + +class dMeterButton_c : public dDlst_base_c { +public: + /* 80201328 */ dMeterButton_c(); + /* 802013CC */ void _create(); + /* 80201404 */ void _execute(u32, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, + bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, + bool); + /* 80202A9C */ void _delete(); + /* 802032C4 */ void alphaAnimeButtonA(u32, bool); + /* 8020339C */ void alphaAnimeButtonB(u32, bool); + /* 802034A8 */ void alphaAnimeButtonR(u32, bool); + /* 802035AC */ void alphaAnimeButtonZ(u32, bool); + /* 802036C0 */ void alphaAnimeButton3D(u32, bool); + /* 802037B8 */ void alphaAnimeButtonC(u32, bool); + /* 80203878 */ void alphaAnimeButtonS(u32, bool); + /* 802038F4 */ void alphaAnimeButtonX(u32, bool); + /* 80203A08 */ void alphaAnimeButtonY(u32, bool); + /* 80203B1C */ void alphaAnimeButtonNun(u32, bool); + /* 80203C30 */ void alphaAnimeButtonRemo(u32, bool); + /* 80203D44 */ void alphaAnimeButtonRemo2(u32, bool); + /* 80203E58 */ void alphaAnimeButtonAR(u32, bool); + /* 80203F60 */ void alphaAnimeButton3DB(u32, bool); + /* 80204068 */ void alphaAnimeButtonNURE(u32, bool); + /* 80204170 */ void alphaAnimeButtonReel(u32, bool); + /* 80204278 */ void alphaAnimeButtonReel2(u32, bool); + /* 80204368 */ void alphaAnimeButtonAB(u32, bool); + /* 80204458 */ void alphaAnimeButtonTate(u32, bool); + /* 80204548 */ void alphaAnimeButtonNunZ(u32, bool); + /* 80204620 */ void alphaAnimeButtonNunC(u32, bool); + /* 802046F8 */ void alphaAnimeButtonBin(u32, bool); + /* 802047E8 */ void screenInitButton(); + /* 80205834 */ void screenInitText(); + /* 80205CA0 */ void updateButton(); + /* 80206978 */ void updateText(u32); + /* 80206CE0 */ void setAlphaButtonAAnimeMin(); + /* 80206D70 */ void isFastSet(int); + /* 80207060 */ void setAlphaButtonAAnimeMax(); + /* 8020714C */ void setAlphaButtonBAnimeMin(); + /* 802071DC */ void setAlphaButtonBAnimeMax(); + /* 802072C8 */ void setAlphaButtonRAnimeMin(); + /* 80207358 */ void setAlphaButtonRAnimeMax(); + /* 80207444 */ void setAlphaButtonZAnimeMin(); + /* 802074D4 */ void setAlphaButtonZAnimeMax(); + /* 802075C0 */ void setAlphaButton3DAnimeMin(); + /* 80207654 */ void setAlphaButton3DAnimeMax(); + /* 80207740 */ void setAlphaButton3DVAnimeMin(); + /* 80207744 */ void setAlphaButton3DVAnimeMax(); + /* 80207748 */ void setAlphaButtonCAnimeMin(); + /* 802077EC */ void setAlphaButtonCAnimeMax(); + /* 80207A28 */ void setAlphaButtonSAnimeMin(); + /* 80207AB8 */ void setAlphaButtonSAnimeMax(); + /* 80207BA4 */ void setAlphaButtonXAnimeMin(); + /* 80207C34 */ void setAlphaButtonXAnimeMax(); + /* 80207D20 */ void setAlphaButtonYAnimeMin(); + /* 80207DB0 */ void setAlphaButtonYAnimeMax(); + /* 80207E9C */ void setAlphaButtonNunAnimeMin(); + /* 80207F34 */ void setAlphaButtonNunAnimeMax(); + /* 80208028 */ void setAlphaButtonRemoAnimeMin(); + /* 802080C0 */ void setAlphaButtonRemoAnimeMax(); + /* 802081B4 */ void setAlphaButtonRemo2AnimeMin(); + /* 8020824C */ void setAlphaButtonRemo2AnimeMax(); + /* 80208340 */ void setAlphaButtonARAnimeMin(); + /* 802083D8 */ void setAlphaButtonARAnimeMax(); + /* 802084D8 */ void setAlphaButton3DBAnimeMin(); + /* 80208570 */ void setAlphaButton3DBAnimeMax(); + /* 80208670 */ void setAlphaButtonNUREAnimeMin(); + /* 80208708 */ void setAlphaButtonNUREAnimeMax(); + /* 80208808 */ void setAlphaButtonReelAnimeMin(); + /* 802088A0 */ void setAlphaButtonReelAnimeMax(); + /* 802089A0 */ void setAlphaButtonReel2AnimeMin(); + /* 80208A38 */ void setAlphaButtonReel2AnimeMax(); + /* 80208AEC */ void setAlphaButtonABAnimeMin(); + /* 80208B84 */ void setAlphaButtonABAnimeMax(); + /* 80208C38 */ void setAlphaButtonTateAnimeMin(); + /* 80208CD0 */ void setAlphaButtonTateAnimeMax(); + /* 80208D84 */ void setAlphaButtonNunZAnimeMin(); + /* 80208E1C */ void setAlphaButtonNunZAnimeMax(); + /* 80208F1C */ void setAlphaButtonNunCAnimeMin(); + /* 80208FB4 */ void setAlphaButtonNunCAnimeMax(); + /* 802090B4 */ void setAlphaButtonBinAnimeMin(); + /* 8020914C */ void setAlphaButtonBinAnimeMax(); + /* 8020924C */ void setAlphaButtonOAnimeMin(int); + /* 802092C0 */ void setAlphaButtonOAnimeMax(int); + /* 80209368 */ void setAlphaIconAnimeMin(); + /* 802093D8 */ void setAlphaIconAnimeMax(); + /* 80209474 */ void isClose(); + /* 802095C0 */ void setString(char*, u8, u8, u8); + /* 80209CEC */ void hideAll(); + /* 80209D7C */ void getCenterPosCalc(u8, char*, int); + /* 8020A540 */ void trans_button(int, f32); + /* 8020A94C */ void hide_button(u8); + /* 8020AA84 */ void pikariCheck(); + /* 8020AE68 */ void paneTrans(CPaneMgr*, f32, f32, u8); + + /* 80202240 */ virtual void draw(); + /* 80201370 */ virtual ~dMeterButton_c(); +}; + +class dMeterString_c : public dMeterSub_c { +public: + /* 8020ED60 */ dMeterString_c(int); + /* 8020F5A4 */ void createString(int); + /* 8020F66C */ void playBckAnimation(f32); + /* 8020F6EC */ void drawPikari(); + /* 8020FA88 */ void isLeadByte(int); + + /* 8020F1B0 */ virtual void draw(); + /* 8020EDF4 */ virtual ~dMeterString_c(); + /* 8020EE70 */ virtual bool _create(); + /* 8020F150 */ virtual bool _execute(u32); + /* 8020F49C */ virtual bool _delete(); +}; + +class dMeterHaihai_c : public dMeterSub_c { +public: + /* 8020AE8C */ dMeterHaihai_c(u8); + /* 8020B814 */ void drawHaihai(u8, f32, f32, f32, f32); + /* 8020B518 */ void drawHaihai(u8); + /* 8020B9B0 */ void drawHaihaiLeft(f32, f32); + /* 8020BA4C */ void drawHaihaiRight(f32, f32); + /* 8020BAE8 */ void drawHaihaiTop(f32, f32); + /* 8020BB84 */ void drawHaihaiBottom(f32, f32); + /* 8020BC20 */ void setScale(f32); + /* 8020BEA0 */ void alphaAnimeHaihai(u32); + /* 8020BEA4 */ void updateHaihai(); + /* 8020BF00 */ void playBckAnime(J2DAnmTransformKey*); + /* 8020C078 */ void playBtkAnime(J2DAnmTextureSRTKey*); + /* 8020C1CC */ void playBpkAnime(J2DAnmColor*); + + /* 8020B140 */ virtual void draw(); + /* 8020AEF0 */ virtual ~dMeterHaihai_c(); + /* 8020AF6C */ virtual bool _create(); + /* 8020B0F4 */ virtual bool _execute(u32); + /* 8020BDAC */ virtual bool _delete(); +}; + class dMeter2_c : public msg_class { public: + enum { + /* 0x2 */ ARROW_MAX = 2, + /* 0x3 */ PACHINKO_MAX, + }; + + enum { + /* 0x0 */ X_ITEM, + /* 0x1 */ X_STATUS, + /* 0x2 */ Y_ITEM, + /* 0x3 */ Y_STATUS, + }; + /* 8021EA14 */ int _create(); /* 8021F128 */ int _execute(); /* 8021F370 */ int _draw(); /* 8021F49C */ int _delete(); - /* 8021F6EC */ void emphasisButtonDelete(); + /* 8021F6EC */ int emphasisButtonDelete(); /* 8021F780 */ void setLifeZero(); /* 8021F7B0 */ void checkStatus(); /* 8021FD60 */ void moveLife(); @@ -51,23 +209,29 @@ public: /* 80224F70 */ void alphaAnimeKey(); /* 802250F4 */ void alphaAnimeButton(); /* 802254C0 */ void alphaAnimeButtonCross(); - /* 802256DC */ void isShowLightDrop(); + /* 802256DC */ bool isShowLightDrop(); /* 802258A0 */ void killSubContents(u8); /* 80225960 */ void isKeyVisible(); - /* 802259F8 */ void isArrowEquip(); - /* 80225A64 */ void isPachinkoEquip(); + /* 802259F8 */ int isArrowEquip(); + /* 80225A64 */ int isPachinkoEquip(); void setNowLifeGauge(s16 life) { mNowLifeGauge = life; } + void onArrowSoundBit(int bit) { mArrowSound |= (1 << bit); } + void offArrowSoundBit(int bit) { mArrowSound &= ~(1 << bit); } + bool isArrowSoundBit(int bit) { return mArrowSound & (1 << bit); } + void onRupeeSoundBit(int bit) { mRupeeSound |= (1 << bit); } + void offRupeeSoundBit(int bit) { mRupeeSound &= ~(1 << bit); } + bool isRupeeSoundBit(int bit) { return mRupeeSound & (1 << bit); } private: /* 0x100 */ JKRExpHeap* mpHeap; /* 0x104 */ JKRExpHeap* mpSubHeap; /* 0x108 */ void* field_0x108; /* 0x10C */ dMeter2Draw_c* mpMeterDraw; - /* 0x110 */ dDlst_base_c* field_0x110; - /* 0x114 */ dDlst_base_c* field_0x114; - /* 0x118 */ dDlst_base_c* field_0x118; - /* 0x11C */ void* field_0x11c; + /* 0x110 */ dMeterSub_c* mpMeterSub; + /* 0x114 */ dMeterString_c* mpMeterString; + /* 0x118 */ dMeterButton_c* mpMeterButton; + /* 0x11C */ dMeterHaihai_c* field_0x11c; // type is a guess for now /* 0x120 */ dMeterMap_c* mpMap; /* 0x124 */ u32 field_0x124; /* 0x128 */ u32 field_0x128; @@ -104,32 +268,32 @@ private: /* 0x1B8 */ u16 field_0x1b8[5]; /* 0x1C2 */ u8 mLightDropNum; /* 0x1C3 */ u8 mNeedLightDropNum; - /* 0x1C4 */ u8 field_0x1c4; - /* 0x1C5 */ u8 field_0x1c5; + /* 0x1C4 */ u8 mDoStatus; + /* 0x1C5 */ u8 mAStatus; /* 0x1C6 */ u8 field_0x1c6; - /* 0x1C7 */ u8 field_0x1c7; - /* 0x1C8 */ u8 field_0x1c8; - /* 0x1C9 */ u8 field_0x1c9; - /* 0x1CA */ u8 field_0x1ca; - /* 0x1CB */ u8 field_0x1cb; - /* 0x1CC */ u8 field_0x1cc; - /* 0x1CD */ u8 field_0x1cd; - /* 0x1CE */ u8 field_0x1ce; - /* 0x1CF */ u8 field_0x1cf; - /* 0x1D0 */ u8 field_0x1d0; - /* 0x1D1 */ u8 field_0x1d1; - /* 0x1D2 */ u8 field_0x1d2[4]; + /* 0x1C7 */ u8 mCollectSmell; + /* 0x1C8 */ u8 mRStatus; + /* 0x1C9 */ u8 mZStatus; + /* 0x1CA */ u8 m3DStatus; + /* 0x1CB */ u8 mCStickStatus; + /* 0x1CC */ u8 mSButtonStatus; + /* 0x1CD */ u8 mNunStatus; + /* 0x1CE */ u8 mRemoConStatus; + /* 0x1CF */ u8 mNunZStatus; + /* 0x1D0 */ u8 mNunCStatus; + /* 0x1D1 */ u8 mBottleStatus; + /* 0x1D2 */ u8 mItemStatus[4]; /* 0x1D6 */ u8 field_0x1d6[2]; /* 0x1D8 */ u8 field_0x1d8[2]; /* 0x1DA */ u8 mArrowNum; /* 0x1DB */ u8 mPachinkoNum; - /* 0x1DC */ u8 field_0x1dc; - /* 0x1DD */ u8 field_0x1dd; - /* 0x1DE */ u8 field_0x1de; - /* 0x1DF */ u8 field_0x1df; - /* 0x1E0 */ u8 field_0x1e0; + /* 0x1DC */ u8 mDoSetFlag; + /* 0x1DD */ u8 mASetFlag; + /* 0x1DE */ u8 mRSetFlag; + /* 0x1DF */ u8 mXSetFlag; + /* 0x1E0 */ u8 mYSetFlag; /* 0x1E1 */ u8 field_0x1e1; - /* 0x1E2 */ u8 field_0x1e2; + /* 0x1E2 */ u8 mEquipSword; /* 0x1E3 */ u8 field_0x1e3; /* 0x1E4 */ u8 field_0x1e4; /* 0x1E5 */ u8 mSubContents; @@ -137,8 +301,8 @@ private: /* 0x1E7 */ u8 field_0x1e7; /* 0x1E8 */ u8 field_0x1e8; /* 0x1E9 */ u8 field_0x1e9; - /* 0x1EA */ u8 field_0x1ea; - /* 0x1EB */ u8 field_0x1eb; + /* 0x1EA */ u8 mRupeeSound; + /* 0x1EB */ u8 mArrowSound; /* 0x1EC */ u8 field_0x1ec; /* 0x1ED */ u8 field_0x1ed; /* 0x1EE */ u8 field_0x1ee; @@ -151,8 +315,11 @@ private: /* 0x1FF */ u8 field_0x1ff; /* 0x200 */ u8 field_0x200; /* 0x201 */ u8 field_0x201; + /* 0x204 */ f32 field_0x204; + /* 0x208 */ f32 field_0x208; + /* 0x20C */ f32 field_0x20c; + /* 0x210 */ f32 field_0x210; + /* 0x214 */ f32 field_0x214; }; -typedef int (*dMeter2_Method)(dMeter2_c*); - #endif /* D_METER_D_METER2_H */ diff --git a/include/d/meter/d_meter2_draw.h b/include/d/meter/d_meter2_draw.h index 81b4378c97..7f6ebcd3bd 100644 --- a/include/d/meter/d_meter2_draw.h +++ b/include/d/meter/d_meter2_draw.h @@ -115,6 +115,7 @@ public: /* 802102F8 */ virtual ~dMeter2Draw_c(); J2DScreen* getMainScreenPtr() { return mpScreen; } + bool isEmphasisC() { return field_0x766 == 7 ? true : false; } private: /* 0x004 */ f32 field_0x4; diff --git a/include/d/meter/d_meter2_info.h b/include/d/meter/d_meter2_info.h index bffd6ba5ec..558efb0a08 100644 --- a/include/d/meter/d_meter2_info.h +++ b/include/d/meter/d_meter2_info.h @@ -145,6 +145,12 @@ public: void* getMsgResource() { return mMsgResource; } void* getStageMsgResource() { return mStageMsgResource; } void* getMsgUnitResource() { return mMsgUnitResource; } + u8 getLightDropGetFlag(int i) { return mLightDropGetFlag[i]; } + u32 getMeterStringType() { return mMeterString; } + void setMeterClass(dMeter2_c* meter) { mMeterClass = meter; } + void onLifeGaugeSE() { mLifeGaugeSE = 1; } + void offLifeGaugeSE() { mLifeGaugeSE = 0; } + u8 getLifeGaugeSE() { return mLifeGaugeSE; } public: /* 0x04 */ u8 unk4[4]; @@ -399,6 +405,30 @@ inline void* dMeter2Info_getMsgUnitResource() { return g_meter2_info.getMsgUnitResource(); } +inline u8 dMeter2Info_getLightDropGetFlag(int i) { + return g_meter2_info.getLightDropGetFlag(i); +} + +inline s32 dMeter2Info_getMeterStringType() { + return g_meter2_info.getMeterStringType(); +} + +inline void dMeter2Info_setMeterClass(dMeter2_c* meter) { + g_meter2_info.setMeterClass(meter); +} + +inline void dMeter2Info_onLifeGaugeSE() { + g_meter2_info.onLifeGaugeSE(); +} + +inline void dMeter2Info_offLifeGaugeSE() { + g_meter2_info.offLifeGaugeSE(); +} + +inline u8 dMeter2Info_getLifeGaugeSE() { + return g_meter2_info.getLifeGaugeSE(); +} + char* dMeter2Info_getNumberTextureName(int pIndex); #endif /* D_METER_D_METER2_INFO_H */ diff --git a/include/d/meter/d_meter_HIO.h b/include/d/meter/d_meter_HIO.h index 4155d985c3..93aba8f392 100644 --- a/include/d/meter/d_meter_HIO.h +++ b/include/d/meter/d_meter_HIO.h @@ -601,7 +601,7 @@ public: /* 80201128 */ virtual ~dMeter_drawHIO_c(); /* 0x000 */ // vtable - /* 0x004 */ u8 field_0x04[4]; + /* 0x004 */ s8 field_0x4; /* 0x008 */ f32 mLifeTopPosX; /* 0x00C */ f32 mLifeTopPosY; /* 0x010 */ f32 mNoMagicPosY; @@ -995,7 +995,7 @@ public: }; /* 0x000 */ // vtable - /* 0x004 */ u8 field_0x4[4]; + /* 0x004 */ s8 field_0x4; /* 0x008 */ f32 mRingRadiusH; /* 0x00C */ f32 mRingRadiusV; /* 0x010 */ f32 field_0x10; @@ -1248,7 +1248,7 @@ public: /* 802006C8 */ dMeter_fmapHIO_c(); /* 80200BCC */ virtual ~dMeter_fmapHIO_c(); - /* 0x004 */ u8 field_0x4[4]; + /* 0x004 */ s8 field_0x4; /* 0x008 */ JKRArchive* field_0x8; /* 0x00C */ void* field_0xc; /* 0x010 */ void* field_0x10; @@ -1361,7 +1361,7 @@ public: /* 80200CD4 */ dMeter_cursorHIO_c(); /* 80201098 */ virtual ~dMeter_cursorHIO_c(); - /* 0x04 */ u8 field_0x4[4]; + /* 0x04 */ s8 field_0x4; /* 0x08 */ cXyz mSeraShopObjZoom; /* 0x14 */ cXyz mObjZoom; /* 0x20 */ cXyz mMagicArmorObjZoom; diff --git a/include/d/msg/d_msg_object.h b/include/d/msg/d_msg_object.h index cd0dcd27e4..b9d4b0f6f9 100644 --- a/include/d/msg/d_msg_object.h +++ b/include/d/msg/d_msg_object.h @@ -104,7 +104,7 @@ public: /* 80237E58 */ void getSelectCursorPosLocal(); /* 80237E68 */ void setSelectCursorPosLocal(u8); /* 80237F10 */ void setTalkActorLocal(fopAc_ac_c*); - /* 8023800C */ void readMessageGroup(mDoDvdThd_mountXArchive_c**); + /* 8023800C */ static void readMessageGroup(mDoDvdThd_mountXArchive_c**); /* 8023803C */ void changeFlowGroup(s32); /* 8023806C */ void demoMessageGroup(); /* 80238098 */ void endFlowGroup(); @@ -163,4 +163,8 @@ inline bool dMsgObject_isTalkNowCheck() { return dMsgObject_getMsgObjectClass()->getStatus() != 1 ? true : false; } +inline void dMsgObject_readMessageGroup(mDoDvdThd_mountXArchive_c** param_0) { + dMsgObject_getMsgObjectClass()->readMessageGroup(param_0); +} + #endif /* D_MSG_D_MSG_OBJECT_H */ diff --git a/include/d/particle/d_particle.h b/include/d/particle/d_particle.h index 75be552f86..2dc464610a 100644 --- a/include/d/particle/d_particle.h +++ b/include/d/particle/d_particle.h @@ -51,6 +51,8 @@ public: /* 0x10 */ void* mData; }; // Size: 0x14 +extern u8 data_80450EC4; + class dPa_control_c { public: class level_c { @@ -133,6 +135,7 @@ public: void forceOnEventMove(u32 param_0) { field_0x210.forceOnEventMove(param_0); } level_c::emitter_c* getEmitter(u32 param_0) { return field_0x210.getEmitter(param_0); } + u32 setNormal(u32 param_0, u16 param_1, const cXyz* param_2, const dKy_tevstr_c* param_3, const csXyz* param_4, const cXyz* param_5, u8 param_6, dPa_levelEcallBack* param_7, s8 param_8, const GXColor* param_9, @@ -149,6 +152,8 @@ public: param_9, param_10, param_11, param_12); } + static void onStatus(u8 status) { data_80450EC4 |= status; } + static u8 mTsubo[64]; static u8 mLifeBall[24]; static u8 mWindViewMatrix[48]; diff --git a/include/d/s/d_s_play.h b/include/d/s/d_s_play.h index 403f8d96d1..6bd2bd99f9 100644 --- a/include/d/s/d_s_play.h +++ b/include/d/s/d_s_play.h @@ -1,6 +1,71 @@ #ifndef D_S_D_S_PLAY_H #define D_S_D_S_PLAY_H +#include "d/com/d_com_inf_game.h" #include "dolphin/types.h" +#include "f_op/f_op_scene.h" + +class dScnPly_reg_HIO_c { +public: + /* 8025AD78 */ virtual ~dScnPly_reg_HIO_c(); +}; + +class mDoHIO_entry_c { +public: + virtual ~mDoHIO_entry_c(); +}; + +class dScnPly_preLoad_HIO_c : public mDoHIO_entry_c { +public: + /* 8025ADC0 */ virtual ~dScnPly_preLoad_HIO_c(); +}; + +class dScnPly_env_otherHIO_c { +public: + /* 80259440 */ dScnPly_env_otherHIO_c(); + + /* 8025AC0C */ virtual ~dScnPly_env_otherHIO_c(); + +private: + /* 0x4 */ f32 mShadowDensity; + /* 0x8 */ u8 mLODBias; + /* 0x9 */ u8 field_0x9; + /* 0xA */ u8 mDispTransCylinder; +}; + +class dScnPly_env_debugHIO_c { +public: + /* 80259468 */ dScnPly_env_debugHIO_c(); + + /* 8025ABC4 */ virtual ~dScnPly_env_debugHIO_c(); + +private: + /* 0x04 */ u8 field_0x4; + /* 0x08 */ cXyz mBoxCullMinSize; + /* 0x14 */ cXyz mBoxCullMaxSize; + /* 0x20 */ cXyz mSphereCullCenter; + /* 0x2C */ f32 mSphereCullRadius; +}; + +class dScnPly_env_HIO_c { +public: + /* 8025AD04 */ virtual ~dScnPly_env_HIO_c(); + +private: + /* 0x04 */ u8 field_0x4; + /* 0x08 */ dScnPly_env_otherHIO_c mOther; + /* 0x14 */ dScnPly_env_debugHIO_c mDebug; +}; + +extern s8 data_80451125; // sPauseTimer + +class dScnPly_c : public scene_class { +public: + /* 80259400 */ s8 calcPauseTimer(); + /* 80259AC4 */ bool resetGame(); + /* 80259BFC */ void offReset(); + + static void setPauseTimer(s8 time) { data_80451125 = time; } +}; #endif /* D_S_D_S_PLAY_H */ diff --git a/include/d/save/d_save.h b/include/d/save/d_save.h index bff50eaf52..abc7f07764 100644 --- a/include/d/save/d_save.h +++ b/include/d/save/d_save.h @@ -4,6 +4,7 @@ #include "MSL_C.PPCEABI.bare.H/MSL_Common/Src/printf.h" #include "MSL_C.PPCEABI.bare.H/MSL_Common/Src/string.h" #include "SSystem/SComponent/c_xyz.h" +#include "dolphin/os/OS.h" #include "dolphin/types.h" #define DEFAULT_SELECT_ITEM_INDEX 0 @@ -367,8 +368,8 @@ public: u16 getRupeeMax() const; int isMagicFlag(u8) const; - u16& getMaxLife() { return mMaxLife; } - u16& getLife() { return mLife; } + u16 getMaxLife() { return mMaxLife; } + u16 getLife() { return mLife; } u16& getRupee() { return mRupee; } u16 getOil() { return mOil; } u16 getMaxOil() { return mMaxOil; } @@ -419,9 +420,10 @@ public: f32 getTime() const { return mTime; } void setDate(u16 date) { mDate = date; } void setTime(f32 time) { mTime = time; } + OSTime getDateIpl() const { return mDateIpl; } private: - /* 0x00 */ s64 mDateIpl; + /* 0x00 */ OSTime mDateIpl; /* 0x08 */ u8 mTransformLevelFlag; /* 0x09 */ u8 mDarkClearLevelFlag; /* 0x0A */ u8 unk10; @@ -433,6 +435,8 @@ private: class dSv_horse_place_c { public: + dSv_horse_place_c() {} + void init(); void set(const char*, const cXyz&, s16, s8); @@ -462,6 +466,8 @@ private: class dSv_player_field_last_stay_info_c { public: + dSv_player_field_last_stay_info_c() {} + void init(); BOOL isRegionBit(int unk) const; void onRegionBit(int unk); @@ -480,6 +486,8 @@ private: class dSv_player_last_mark_info_c { public: + dSv_player_last_mark_info_c() {} + void init(); void setWarpItemData(const char*, const cXyz&, s16, s8, u8, u8); @@ -654,11 +662,12 @@ public: void setPlayerName(const char* name) { strcpy((char*)mPlayerName, name); } void setHorseName(const char* name) { strcpy((char*)mHorseName, name); } void setTotalTime(s64 time) { mTotalTime = time; } + s64 getTotalTime() const { return mTotalTime; } private: /* 0x00 */ u32 unk0; /* 0x04 */ u32 unk4; - /* 0x08 */ u64 mTotalTime; + /* 0x08 */ s64 mTotalTime; /* 0x10 */ u16 unk16; /* 0x12 */ u16 mDeathCount; /* 0x14 */ u8 mPlayerName[16]; @@ -706,6 +715,8 @@ private: class dSv_player_c { public: + dSv_player_c() {} + void init(); dSv_player_info_c& getPlayerInfo() { return mPlayerInfo; } dSv_player_status_a_c& getPlayerStatusA() { return mPlayerStatusA; } @@ -971,6 +982,8 @@ private: class dSv_save_c { public: + dSv_save_c() {} + void init(); dSv_memory2_c* getSave2(int); @@ -1019,9 +1032,11 @@ public: dSv_restart_c& getRestart() { return mRestart; } dSv_turnRestart_c& getTurnRestart() { return mTurnRestart; } dSv_event_c& getEvent() { return mSavedata.getEvent(); } - s64 getStartTime() { return mStartTime; } - s64 getSaveTotalTime() { return mSaveTotalTime; } + dSv_danBit_c& getDan() { return mDan; } + s64 getStartTime() const { return mStartTime; } + s64 getSaveTotalTime() const { return mSaveTotalTime; } void initDan(s8 param_0) { mDan.init(param_0); } + u8 getDataNum() const { return mDataNum; } private: /* 0x000 */ dSv_save_c mSavedata; |
