diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2021-08-23 13:47:18 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-08-23 22:47:18 +0200 |
| commit | e14b04c54a40e95f0117df44f1186f2d44799ac7 (patch) | |
| tree | 0fb9accde017a5f0dd204c4f3845904a5325fe1e /include | |
| parent | f6df420a61bc6c5176c0190a227b615a68ef910a (diff) | |
move more of d_save / d_com_inf_game (#141)
* some d_save matches / fixes
* more d_save cleanup
* fopAc_ac_c changes
* move a bunch of d_save / d_com_inf_game stuff
* format + remove asm
* move bit labels to correct header
* format
* move d_item
* fix check_itemno doc
* move
* fixes
* getLayerNo_common_common almost matching
just regalloc issues
* small fixes
* few more matches
* fix
Diffstat (limited to 'include')
| -rw-r--r-- | include/JSystem/JKernel/JKRExpHeap.h | 4 | ||||
| -rw-r--r-- | include/JSystem/JUtility/JUTGamePad.h | 2 | ||||
| -rw-r--r-- | include/d/a/d_a_alink.h | 11 | ||||
| -rw-r--r-- | include/d/a/d_a_itembase.h | 20 | ||||
| -rw-r--r-- | include/d/a/d_a_player.h | 4 | ||||
| -rw-r--r-- | include/d/com/d_com_inf_game.h | 623 | ||||
| -rw-r--r-- | include/d/d_attention.h | 6 | ||||
| -rw-r--r-- | include/d/d_bomb.h | 2 | ||||
| -rw-r--r-- | include/d/d_item.h | 384 | ||||
| -rw-r--r-- | include/d/d_stage.h | 269 | ||||
| -rw-r--r-- | include/d/event/d_event.h | 1 | ||||
| -rw-r--r-- | include/d/event/d_event_manager.h | 2 | ||||
| -rw-r--r-- | include/d/kankyo/d_kankyo.h | 2 | ||||
| -rw-r--r-- | include/d/meter/d_meter2_info.h | 23 | ||||
| -rw-r--r-- | include/d/save/d_save.h | 554 | ||||
| -rw-r--r-- | include/dolphin/mtx/vec.h | 5 | ||||
| -rw-r--r-- | include/f_op/f_op_actor.h | 4 | ||||
| -rw-r--r-- | include/msl_c/string.h | 2 |
18 files changed, 1348 insertions, 570 deletions
diff --git a/include/JSystem/JKernel/JKRExpHeap.h b/include/JSystem/JKernel/JKRExpHeap.h index dcadbef8d4..eeeab96a39 100644 --- a/include/JSystem/JKernel/JKRExpHeap.h +++ b/include/JSystem/JKernel/JKRExpHeap.h @@ -91,4 +91,8 @@ public: static JKRExpHeap* create(void*, u32, JKRHeap*, bool); }; +inline JKRExpHeap* JKRCreateExpHeap(u32 param_0, JKRHeap* param_1, bool param_2) { + return JKRExpHeap::create(param_0, param_1, param_2); +} + #endif /* JKREXPHEAP_H */ diff --git a/include/JSystem/JUtility/JUTGamePad.h b/include/JSystem/JUtility/JUTGamePad.h index 5153cb08f0..875da3ab5a 100644 --- a/include/JSystem/JUtility/JUTGamePad.h +++ b/include/JSystem/JUtility/JUTGamePad.h @@ -40,7 +40,7 @@ public: static u8 mPadAssign[4]; static u8 sSuppressPadReset[4]; static s32 sAnalogMode; - static u8 sRumbleSupported[4]; + static u32 sRumbleSupported; enum EStickMode {}; enum EWhichStick {}; diff --git a/include/d/a/d_a_alink.h b/include/d/a/d_a_alink.h index 7b185f5bc5..726d58950c 100644 --- a/include/d/a/d_a_alink.h +++ b/include/d/a/d_a_alink.h @@ -545,7 +545,7 @@ public: /* 800BB084 */ void getBodyAngleXAtnActor(int); /* 800BB2B0 */ void setBodyAngleXReadyAnime(int); /* 800BB324 */ void setMagicArmorBrk(int); - /* 800BB408 */ void checkMagicArmorHeavy() const; + /* 800BB408 */ BOOL checkMagicArmorHeavy() const; /* 800BB4B8 */ void checkHeavyStateOn(int, int); /* 800BB644 */ void initGravity(); /* 800BB770 */ void setSpecialGravity(f32, f32, int); @@ -577,7 +577,7 @@ public: /* 800BF9F0 */ void setItemActor(); /* 800BFD74 */ void makeItemType(); /* 800BFDB0 */ void checkZoraWearAbility() const; - /* 800BFDFC */ void checkMagicArmorWearAbility() const; + /* 800BFDFC */ BOOL checkMagicArmorWearAbility() const; /* 800BFE48 */ void loadAramBmd(u16, u32); /* 800BFF04 */ void loadAram(u16, u32); /* 800BFF70 */ void loadAramItemBrk(u16, J3DModel*); @@ -2156,7 +2156,7 @@ public: virtual bool getSwordChangeWaitTimer(void) const; virtual bool checkMetamorphose(void) const; virtual bool checkWolfDownAttackPullOut(void) const; - virtual bool checkBootsOrArmorHeavy(void) const; + virtual BOOL checkBootsOrArmorHeavy(void) const; virtual s32 getBottleOpenAppearItem(void) const; virtual bool checkItemSwordEquip(void) const; virtual float getSinkShapeOffset(void) const; @@ -2171,6 +2171,7 @@ public: // inlined version of checkModeFlg u32 i_checkModeFlg(u32 pFlag) const { return mModeFlg & pFlag; } bool checkUpperAnime(u16 pIdx) const { return mUpperAnime[UPPER_NOW].getIdx() == pIdx; } + bool checkIronBallWaitAnime() const { return checkUpperAnime(0x19C); } static u8 const m_mainBckShield[80]; static u8 const m_mainBckSword[20]; @@ -2909,7 +2910,7 @@ public: private: /* 0x0000 */ fopAc_ac_c mActor; - /* 0x0570 */ u8 field_0x570[0xCE4]; + /* 0x0568 */ u8 field_0x568[0xCEC]; /* 0x1254 */ daPy_actorKeep_c mZeldaActorKeep; }; @@ -2932,7 +2933,7 @@ public: private: /* 0x0000 */ fopAc_ac_c mActor; - /* 0x0570 */ u8 field_0x570[0x324]; + /* 0x0568 */ u8 field_0x568[0x32C]; /* 0x0894 */ u32 mStateFlg1; /* 0x0898 */ u32 mEndResetStateFlg0; }; diff --git a/include/d/a/d_a_itembase.h b/include/d/a/d_a_itembase.h index 3cdfec42dd..aa5871a8bc 100644 --- a/include/d/a/d_a_itembase.h +++ b/include/d/a/d_a_itembase.h @@ -36,6 +36,26 @@ public: static u8 const m_data[56]; private: +#ifdef NONMATCHING + /* 0x568 */ void* field_0x568; + /* 0x56C */ request_of_phase_process_class* field_0x56c; + /* 0x570 */ u8 field_0x578[4]; + /* 0x574 */ J3DModel* field_0x574; + /* 0x578 */ mDoExt_btkAnm* field_0x578; + /* 0x57C */ mDoExt_bpkAnm* field_0x57c; + /* 0x580 */ mDoExt_brkAnm* field_0x580; + /* 0x584 */ mDoExt_bckAnm* field_0x584; + /* 0x588 */ mDoExt_btpAnm* field_0x588; + /* 0x58C */ dBgS_ObjAcch field_0x58c; + /* 0x764 */ dBgS_AcchCir field_0x764; + /* 0x7A4 */ dCcD_Stts field_0x7a4; + /* 0x7E0 */ dCcD_Cyl field_0x7e0; + /* 0x91C */ u32 field_0x91c; + /* 0x920 */ u8 field_0x920[0xA]; + /* 0x92A */ u8 m_itemNo; + /* 0x92B */ u8 field_0x92b; +#endif + u8 unk0[0x92a]; u8 mItemNo; u8 unk2347; diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h index f48328e34c..c83e850200 100644 --- a/include/d/a/d_a_player.h +++ b/include/d/a/d_a_player.h @@ -126,6 +126,7 @@ private: class daPy_py_c : public fopAc_ac_c { public: + /* 0x0568 */ u8 field_0x568[8]; /* 0x0570 */ int mNoResetFlg0; /* 0x0574 */ int mNoResetFlg1; /* 0x0578 */ int mNoResetFlg2; @@ -399,8 +400,11 @@ public: int i_checkNoResetFlg1(daPy_FLG1 pFlag) const { return mNoResetFlg1 & pFlag; } int i_checkNoResetFlg2(daPy_FLG2 pFlag) const { return mNoResetFlg2 & pFlag; } void i_onNoResetFlg0(int pFlg) { mNoResetFlg0 |= pFlg; } + void i_onNoResetFlg3(int pFlg) { mNoResetFlg3 |= pFlg; } + void i_offNoResetFlg3(int pFlg) { mNoResetFlg3 &= ~pFlg; } void i_onEndResetFlg1(daPy_ERFLG1 pFlg) { mEndResetFlg1 |= pFlg; } int i_checkWolf() { return i_checkNoResetFlg1(Wolf); } + BOOL i_checkEquipHeavyBoots() const { return i_checkNoResetFlg0(EquipHeavyBoots); } static u8 m_midnaActor[4]; }; diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index fb3aa7e4b6..70a50b7c5c 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -15,7 +15,7 @@ #include "dolphin/types.h" struct dTimer_c { - /* 8025D524 */ void deleteCheck(); + /* 8025D524 */ int deleteCheck(); /* 8025D618 */ void start(int, s16); /* 8025D538 */ void start(int); /* 8025D7E8 */ void stop(u8); @@ -39,70 +39,78 @@ public: u8 mTimerType; }; +struct camera_class {}; + class dComIfG_camera_info_class { public: - dComIfG_camera_info_class(void) {} - /* 80030208 */ ~dComIfG_camera_info_class() {} + dComIfG_camera_info_class() {} + ~dComIfG_camera_info_class() {} -private: - u8 field_0x0[12]; - cXyz field_0xc; - cXyz field_0x18; - u8 field_0x24[0x14]; + /* 0x00 */ camera_class* mCamera; + /* 0x04 */ u8 field_0x4; + /* 0x05 */ u8 field_0x5[3]; + /* 0x08 */ u32 mCameraAttentionStatus; + /* 0x0C */ f32 mCameraZoomScale; + /* 0x10 */ f32 mCameraZoomForcus; + /* 0x14 */ char* mCameraParamFileName; + /* 0x18 */ cXyz mCameraPos; + /* 0x24 */ cXyz mCameraTarget; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ s16 field_0x34; }; STATIC_ASSERT(sizeof(dComIfG_camera_info_class) == 0x38); class dComIfG_play_c { public: dComIfG_play_c() { this->ct(); } - void ct(void); - void init(void); - void itemInit(void); + void ct(); + void init(); + void itemInit(); void setItemBombNumCount(u8, s16); s16 getItemBombNumCount(u8); void clearItemBombNumCount(u8); void setNowVibration(u8); - u32 getNowVibration(void); + u32 getNowVibration(); void setStartStage(dStage_startStage_c*); - int getLayerNo_common_common(char const*, int, int); - int getLayerNo_common(char const*, int, int); - int getLayerNo(int); - void createParticle(void); - u32 createSimpleModel(void); - void deleteSimpleModel(void); - void drawSimpleModel(void); + static int getLayerNo_common_common(char const*, int, int); + static int getLayerNo_common(char const*, int, int); + static int getLayerNo(int); + void createParticle(); + u32 createSimpleModel(); + void deleteSimpleModel(); + void drawSimpleModel(); u32 addSimpleModel(J3DModelData*, int, u8); u32 removeSimpleModel(J3DModelData*, int); u32 entrySimpleModel(J3DModel*, int); void setTimerNowTimeMs(int); - int getTimerNowTimeMs(void); + int getTimerNowTimeMs(); void setTimerLimitTimeMs(int); - int getTimerLimitTimeMs(void); + int getTimerLimitTimeMs(); void setTimerMode(int); - int getTimerMode(void); + int getTimerMode(); void setTimerType(u8); - u8 getTimerType(void); + u8 getTimerType(); void setTimerPtr(dTimer_c*); - dTimer_c* getTimerPtr(void); + dTimer_c* getTimerPtr(); void setWarpItemData(const char*, cXyz, s16, s8, u8, u8); - void setSelectItem(int, u8); - void setSelectItemTest(int, u8); ~dComIfG_play_c() {} // inlines bool& isPauseFlag() { return mPauseFlag; } void* getMsgObjectClass() { return mMsgObjectClass; } dStage_roomControl_c* getRoomControl() { return &mRoomControl; } + dStage_stageDt_c& getStage() { return mStageData; } dEvt_control_c getEvent() { return mEvent; } - daHorse_c* getHorseActor() { return mHorseActor; } + daHorse_c* getHorseActor() { return (daHorse_c*)mPlayerPtr[1]; } u8& getItemLifeCountType() { return mItemLifeCountType; } void setItem(u8 slot, u8 i_no) { mItemSlot = slot; mItemID = i_no; } - void setUnkWarashibe1(u8 num) { mItemSlot = num; } - void setUnkWarashibe2(u8 num) { mItemID = num; } + void setSelectItem(int idx, u8 itemId) { mSelectItem[idx] = itemId; } + + u8 getSelectItem(int idx) { return mSelectItem[idx]; } void setZStatus(u8 status, u8 flag) { mZStatus = status; @@ -137,17 +145,28 @@ public: void setItemMaxLifeCount(s16 max) { mItemMaxLifeCount += max; } void setOxygen(int oxygen) { mOxygen = oxygen; } void setMaxOxygen(int max) { mMaxOxygen = max; } - u8 getDoStatus(void) { return mDoStatus; } - u8 getRStatus(void) { return mRStatus; } + u8 getDoStatus() { return mDoStatus; } + u8 getRStatus() { return mRStatus; } inline char* getStartStageName() { return mStartStage.getName(); } + inline s8 getStartStageRoomNo() { return mStartStage.getRoomNo(); } + inline s8 getStartStageLayer() { return mStartStage.getLayer(); } + inline u8 isHeapLockFlag() { return mHeapLockFlag; } + inline void setHeapLockFlag(u8 status) { mHeapLockFlag = status; } + inline void setSubHeapLockFlag(int idx, u8 status) { mSubHeapLockFlag[idx] = status; } + inline u8 getSubHeapLockFlag(int idx) { return mSubHeapLockFlag[idx]; } + inline void offHeapLockFlag() { mHeapLockFlag = 0; } + inline JKRExpHeap* getSubExpHeap2D(int idx) { return mSubExpHeap2D[idx]; } + inline void setSubExpHeap2D(int idx, void* heap) { mSubExpHeap2D[idx] = (JKRExpHeap*)heap; } + inline void offEnableNextStage() { mNextStage.offEnable(); } + inline JKRHeap* getExpHeap2D() { return mExpHeap2D; } + inline dEvent_manager_c& getEvtManager() { return mEvtManager; } + inline dAttention_c& getAttention() { return mAttention; } public: /* 0x00000 */ dBgS mDBgS; /* 0x01404 */ dCcS mDCcS; /* 0x03EC8 */ dStage_startStage_c mStartStage; - /* 0x03ED5 */ u8 field_0x3ed5; // probably padding /* 0x03ED6 */ dStage_nextStage_c mNextStage; - /* 0x03EE7 */ u8 field_0x3ee7; // probably padding /* 0x03EE8 */ dStage_stageDt_c mStageData; /* 0x03F8C */ dStage_roomControl_c mRoomControl; /* 0x03F90 */ dEvt_control_c mEvent; @@ -188,10 +207,9 @@ public: /* 0x04E0E */ u16 mStatus; /* 0x04E10 */ dDlst_window_c mWindow[1]; /* 0x04E3C */ dComIfG_camera_info_class mCameraInfo[1]; - /* 0x04E74 */ daAlink_c* mPlayer; + /* 0x04E74 */ daAlink_c* mPlayer[1]; /* 0x04E78 */ s8 mPlayerCameraID[4]; - /* 0x04E7C */ daAlink_c* mPlayerPtr; - /* 0x04E80 */ daHorse_c* mHorseActor; + /* 0x04E7C */ void* mPlayerPtr[2]; // 0: Player, 1: Horse ; type may be wrong /* 0x04E84 */ void* mMsgObjectClass; /* 0x04E88 */ float mItemLifeCount; /* 0x04E8C */ int mItemRupeeCount; @@ -334,8 +352,8 @@ public: /* 0x04F90 */ JKRExpHeap* mMsgExpHeap; /* 0x04F94 */ char field_0x4F94[8]; // related to setWarpItemData /* 0x04F9C */ cXyz field_0x4f9c; // related to setWarpItemData - /* 0x04FA8 */ u8 field_0x4fa8[2]; - /* 0x04FAA */ u8 field_0x4faa; // related to setWarpItemData + /* 0x04FA8 */ s16 field_0x4fa8; + /* 0x04FAA */ s8 field_0x4faa; // related to setWarpItemData /* 0x04FAB */ u8 field_0x4fab; // related to setWarpItemData /* 0x04FAC */ u8 field_0x4fac; // related to setWarpItemData /* 0x04FAD */ u8 field_0x4fad[3]; @@ -367,279 +385,556 @@ class dRes_control_c { public: dRes_control_c() {} /* 8003BFB0 */ ~dRes_control_c(); - /* 8003C078 */ void setRes(char const*, dRes_info_c*, int, char const*, u8, JKRHeap*); - /* 8003C160 */ void syncRes(char const*, dRes_info_c*, int); + /* 8003C078 */ static int setRes(char const*, dRes_info_c*, int, char const*, u8, JKRHeap*); + /* 8003C160 */ static int syncRes(char const*, dRes_info_c*, int); /* 8003C194 */ void deleteRes(char const*, dRes_info_c*, int); /* 8003C37C */ void getRes(char const*, char const*, dRes_info_c*, int); + int setObjectRes(const char* name, u8 param_1, JKRHeap* heap) { + return setRes(name, &mResInfos1[0], ARRAY_SIZE(mResInfos1), "/res/Object/", param_1, heap); + } + + int syncObjectRes(const char* name) { + return syncRes(name, &mResInfos1[0], ARRAY_SIZE(mResInfos1)); + } + private: /* 0x0000 */ dRes_info_c mResInfos1[0x80]; /* 0x1200 */ dRes_info_c mResInfos2[0x40]; }; // Size: 0x1B00 -#pragma pack(push, 1) class dComIfG_inf_c { public: - dComIfG_inf_c(void) { this->ct(); } + dComIfG_inf_c() { this->ct(); } ~dComIfG_inf_c() {} - void ct(void); - - // temp for setWarashibeItem - void setPlayUnkWarashibe1(u8 num) { play.setUnkWarashibe1(num); } - void setPlayUnkWarashibe2(u8 num) { play.setUnkWarashibe2(num); } - void setWorldDark(u8 state) { mWorldDark = state; } - u8 setWorldDark() { return mWorldDark; } - - dSv_player_c& getPlayer() { return info.getPlayer(); } - dSv_save_c& getSaveFile() { return info.getSavedata(); } - u32 getNowVibration() { return play.getNowVibration(); } - dDlst_peekZ_c& getdlstPeekZ() { return draw_list_list.dlstPeekZ; } - dComIfG_play_c& getPlay() { return play; } - dSv_memory_c& getMemory() { return info.getMemory(); } - dSv_event_c& getEvent() { return info.getTmp(); } - dSv_info_c& getInfo() { return info; } - inline dDlst_list_c& getDrawlist() { return draw_list_list; } + void ct(); -private: /* 0x00000 */ dSv_info_c info; /* 0x00F38 */ dComIfG_play_c play; /* 0x05F64 */ dDlst_list_c draw_list_list; /* 0x1C110 */ u8 field_0x1C114[0x1E8 - 0xA]; /* 0x1C2F8 */ dRes_control_c mResControl; - /* 0x1DDF8 */ u8 field_0x1ddf8; + /* 0x1DDF8 */ u8 field_0x1ddf8; // related to fade, controls brightness /* 0x1DDF9 */ u8 mWorldDark; - /* 0x1DDFA */ u8 field_0x1ddfa; - /* 0x1DDFB */ u8 field_0x1ddfb; - /* 0x1DDFC */ u8 field_0x1ddfc; + /* 0x1DDFA */ s8 field_0x1ddfa; + /* 0x1DDFB */ s8 field_0x1ddfb; + /* 0x1DDFC */ s8 field_0x1ddfc; /* 0x1DE00 */ u32 field_0x1de00; /* 0x1DE04 */ u32 field_0x1de04; /* 0x1DE08 */ u8 field_0x1de08; /* 0x1DE09 */ u8 field_0x1de09; /* 0x1DE0A */ u8 field_0x1de0a; - u8 _pad[8]; + /* 0x1DE0B */ u8 field_0x1de0b; + /* 0x1DE0C */ u8 field_0x1de0c; static __d_timer_info_c dComIfG_mTimerInfo; }; -#pragma pack(pop) STATIC_ASSERT(122384 == sizeof(dComIfG_inf_c)); extern dComIfG_inf_c g_dComIfG_gameInfo; -/* void dComIfGp_setItemLifeCount(float, u8); +void dComIfGp_setItemLifeCount(float, u8); void dComIfGp_setItemRupeeCount(long); int dComIfGs_isItemFirstBit(u8); +u16 dComIfGs_getRupee(); +void dComIfGp_setSelectItem(int); +u8 dComIfGs_getMixItemIndex(int); +void dComIfGs_setSelectItemIndex(int, u8); +void dComIfGs_setMixItemIndex(int, u8); +u8 dComIfGs_getBottleMax(); +u8 dComIfGs_checkGetItem(u8); +void dComIfGs_setSelectEquipClothes(u8); +void dComIfG_get_timelayer(int*); +s32 dComIfGp_offHeapLockFlag(int); +void dComIfGp_createSubExpHeap2D(); +void dComIfGp_destroySubExpHeap2D(); +int dComIfGp_checkEmptySubHeap2D(); +int dComIfGp_searchUseSubHeap2D(int); +void dComIfGs_setLastWarpMarkItemData(const char*, cXyz, s16, s8, u8, u8); +u16 dComIfGs_getMaxLifeGauge(); inline void dComIfGp_setRStatus(u8 status, u8 flag) { - g_dComIfG_gameInfo.getPlay().setRStatus(status, flag); + g_dComIfG_gameInfo.play.setRStatus(status, flag); } + inline void dComIfGp_setDoStatus(u8 status, u8 flag) { - g_dComIfG_gameInfo.getPlay().setDoStatus(status, flag); + g_dComIfG_gameInfo.play.setDoStatus(status, flag); } + inline void dComIfGp_setAStatus(u8 status, u8 flag) { - g_dComIfG_gameInfo.getPlay().setAStatus(status, flag); + g_dComIfG_gameInfo.play.setAStatus(status, flag); } + inline void dComIfGp_setZStatus(u8 status, u8 flag) { - g_dComIfG_gameInfo.getPlay().setZStatus(status, flag); + g_dComIfG_gameInfo.play.setZStatus(status, flag); } + inline void dComIfGp_setItemMagicCount(s16 amount) { - g_dComIfG_gameInfo.getPlay().setItemMagicCount(amount); + g_dComIfG_gameInfo.play.setItemMagicCount(amount); } + inline void dComIfGp_setItemMaxMagicCount(s16 max) { - g_dComIfG_gameInfo.getPlay().setItemMaxMagicCount(max); + g_dComIfG_gameInfo.play.setItemMaxMagicCount(max); } + inline void dComIfGp_setItemArrowNumCount(s16 amount) { - g_dComIfG_gameInfo.getPlay().setItemArrowNumCount(amount); + g_dComIfG_gameInfo.play.setItemArrowNumCount(amount); } + inline void dComIfGp_setItemPachinkoNumCount(s16 amount) { - g_dComIfG_gameInfo.getPlay().setItemPachinkoNumCount(amount); + g_dComIfG_gameInfo.play.setItemPachinkoNumCount(amount); } + +inline void dComIfGp_setItemBombNumCount(u8 param_0, s16 amount) { + g_dComIfG_gameInfo.play.setItemBombNumCount(param_0, amount); +} + inline void dComIfGp_setItemKeyNumCount(s16 amount) { - g_dComIfG_gameInfo.getPlay().setItemKeyNumCount(amount); + g_dComIfG_gameInfo.play.setItemKeyNumCount(amount); } + inline void dComIfGp_setItemMaxLifeCount(s16 max) { - g_dComIfG_gameInfo.getPlay().setItemMaxLifeCount(max); + g_dComIfG_gameInfo.play.setItemMaxLifeCount(max); } -inline void dComIfGs_onDungeonItemMap(void) { - g_dComIfG_gameInfo.getMemory().getTempFlags().onDungeonItemMap(); + +inline void dComIfGs_onDungeonItemMap() { + g_dComIfG_gameInfo.info.getMemory().getBit().onDungeonItemMap(); } -inline void dComIfGs_onDungeonItemCompass(void) { - g_dComIfG_gameInfo.getMemory().getTempFlags().onDungeonItemCompass(); + +inline void dComIfGs_onDungeonItemCompass() { + g_dComIfG_gameInfo.info.getMemory().getBit().onDungeonItemCompass(); } -inline void dComIfGs_onDungeonItemWarp(void) { - g_dComIfG_gameInfo.getMemory().getTempFlags().onDungeonItemWarp(); + +inline void dComIfGs_onDungeonItemWarp() { + g_dComIfG_gameInfo.info.getMemory().getBit().onDungeonItemWarp(); } + inline void dComIfGs_setItem(int slot, u8 i_no) { - g_dComIfG_gameInfo.getSaveFile().getPlayerItem().setItem(slot, i_no); + g_dComIfG_gameInfo.info.getPlayer().getItem().setItem(slot, i_no); } + inline void dComIfGs_setOxygen(int amount) { - g_dComIfG_gameInfo.getPlay().setOxygen(amount); + g_dComIfG_gameInfo.play.setOxygen(amount); } + inline void dComIfGs_setMaxOxygen(int max) { - g_dComIfG_gameInfo.getPlay().setMaxOxygen(max); + g_dComIfG_gameInfo.play.setMaxOxygen(max); } + inline void dComIfGs_setOil(u16 amount) { - g_dComIfG_gameInfo.getSaveFile().getPlayerStatusA().setOil(amount); + g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setOil(amount); } + inline void dComIfGs_setMaxOil(u16 max) { - g_dComIfG_gameInfo.getSaveFile().getPlayerStatusA().setMaxOil(max); + g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setMaxOil(max); } + inline void dComIfGs_setWalletSize(u8 size) { - g_dComIfG_gameInfo.getSaveFile().getPlayerStatusA().setWalletSize(size); + g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setWalletSize(size); } + inline void dComIfGs_setMagic(u8 amount) { - g_dComIfG_gameInfo.getSaveFile().getPlayerStatusA().setMagic(amount); + g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setMagic(amount); } + inline void dComIfGs_setMaxMagic(u8 max) { - g_dComIfG_gameInfo.getSaveFile().getPlayerStatusA().setMaxMagic(max); + g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setMaxMagic(max); } + inline void dComIfGs_setRupee(u16 amount) { - g_dComIfG_gameInfo.getSaveFile().getPlayerStatusA().setRupee(amount); + g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setRupee(amount); } + inline void dComIfGs_setLife(u16 amount) { - g_dComIfG_gameInfo.getSaveFile().getPlayerStatusA().setLife(amount); + g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setLife(amount); } + inline void dComIfGs_setMaxLife(u8 max) { - g_dComIfG_gameInfo.getSaveFile().getPlayerStatusA().setMaxLife(max); + g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setMaxLife(max); } -inline void dComIfGs_onDungeonItemBossKey(void) { - g_dComIfG_gameInfo.getMemory().getTempFlags().onDungeonItemBossKey(); + +inline void dComIfGs_onDungeonItemBossKey() { + g_dComIfG_gameInfo.info.getMemory().getBit().onDungeonItemBossKey(); } + inline void dComIfGs_setCollectSword(u8 sword_id) { - g_dComIfG_gameInfo.getSaveFile().getPlayerCollect().setCollect(SWORD_BITFIELD, sword_id); + g_dComIfG_gameInfo.info.getPlayer().getCollect().setCollect(COLLECT_SWORD, sword_id); } + inline void dComIfGs_setCollectShield(u8 shield_id) { - g_dComIfG_gameInfo.getSaveFile().getPlayerCollect().setCollect(SHIELD_BITFIELD, shield_id); + g_dComIfG_gameInfo.info.getPlayer().getCollect().setCollect(COLLECT_SHIELD, shield_id); } + inline void dComIfGs_setCollectClothes(u8 clothes_id) { - g_dComIfG_gameInfo.getSaveFile().getPlayerCollect().setCollect(CLOTHING_BITFIELD, clothes_id); + g_dComIfG_gameInfo.info.getPlayer().getCollect().setCollect(COLLECT_CLOTHING, clothes_id); } -inline void dComIfGs_setRodTypeLevelUp(void) { - g_dComIfG_gameInfo.getSaveFile().getPlayerItem().setRodTypeLevelUp(); + +inline void dComIfGs_setRodTypeLevelUp() { + g_dComIfG_gameInfo.info.getPlayer().getItem().setRodTypeLevelUp(); } + inline void dComIfGs_setArrowNum(u8 amount) { - g_dComIfG_gameInfo.getSaveFile().getPlayerItemRecord().setArrowNum(amount); + g_dComIfG_gameInfo.info.getPlayer().getItemRecord().setArrowNum(amount); } + inline void dComIfGs_setArrowMax(u8 max) { - g_dComIfG_gameInfo.getSaveFile().getPlayerItemMax().setArrowNum(max); + g_dComIfG_gameInfo.info.getPlayer().getItemMax().setArrowNum(max); } -inline u8 dComIfGs_getPachinkoMax(void) { + +inline u8 dComIfGs_getPachinkoMax() { return 50; } -inline void dComIfGs_setEmptyBombBag(void) { - g_dComIfG_gameInfo.getSaveFile().getPlayerItem().setEmptyBombBag(); + +inline void dComIfGs_setEmptyBombBag() { + g_dComIfG_gameInfo.info.getPlayer().getItem().setEmptyBombBag(); } + inline void dComIfGs_setEmptyBombBag(u8 type, u8 amount) { - g_dComIfG_gameInfo.getSaveFile().getPlayerItem().setEmptyBombBag(type, amount); + g_dComIfG_gameInfo.info.getPlayer().getItem().setEmptyBombBag(type, amount); } + inline void dComIfGs_setEmptyBombBagItemIn(u8 type, bool unk) { - g_dComIfG_gameInfo.getSaveFile().getPlayerItem().setEmptyBombBagItemIn(type, unk); + g_dComIfG_gameInfo.info.getPlayer().getItem().setEmptyBombBagItemIn(type, unk); } -inline void dComIfGs_setEmptyBottle(void) { - g_dComIfG_gameInfo.getSaveFile().getPlayerItem().setEmptyBottle(); + +inline void dComIfGs_setEmptyBottle() { + g_dComIfG_gameInfo.info.getPlayer().getItem().setEmptyBottle(); } + inline void dComIfGs_setEmptyBottle(u8 type) { - g_dComIfG_gameInfo.getSaveFile().getPlayerItem().setEmptyBottle(type); + g_dComIfG_gameInfo.info.getPlayer().getItem().setEmptyBottle(type); } + inline void dComIfGs_setEmptyBottleItemIn(u8 type) { - g_dComIfG_gameInfo.getSaveFile().getPlayerItem().setEmptyBottleItemIn(type); + g_dComIfG_gameInfo.info.getPlayer().getItem().setEmptyBottleItemIn(type); +} + +inline void dComIfGs_setBottleNum(u8 param_0, u8 param_1) { + g_dComIfG_gameInfo.info.getPlayer().getItemRecord().setBottleNum(param_0, param_1); } + inline void dComIfGs_onEventBit(u16 id) { - g_dComIfG_gameInfo.getSaveFile().getEventFlags().onEventBit(id); + g_dComIfG_gameInfo.info.getSavedata().getEvent().onEventBit(id); } + inline void dComIfGs_onLightDropFlag(u8 area_id) { - g_dComIfG_gameInfo.getSaveFile().getLightDrop().onLightDropGetFlag(area_id); + g_dComIfG_gameInfo.info.getPlayer().getLightDrop().onLightDropGetFlag(area_id); } + inline void dComIfGs_onSwitch(int param1, int param2) { - g_dComIfG_gameInfo.getInfo().onSwitch(param1, param2); + g_dComIfG_gameInfo.info.onSwitch(param1, param2); +} + +inline void dComIfGs_offSwitch(int param1, int param2) { + g_dComIfG_gameInfo.info.offSwitch(param1, param2); } -inline bool dComIfGs_isDungeonItemMap(void) { - return g_dComIfG_gameInfo.getMemory().getTempFlags().isDungeonItemMap(); + +inline BOOL dComIfGs_isSwitch(int param1, int param2) { + return g_dComIfG_gameInfo.info.isSwitch(param1, param2); } -inline bool dComIfGs_isDungeonItemBossKey(void) { - return g_dComIfG_gameInfo.getMemory().getTempFlags().isDungeonItemBossKey(); + +inline s32 dComIfGs_isDungeonItemMap() { + return g_dComIfG_gameInfo.info.getMemory().getBit().isDungeonItemMap(); } + +inline s32 dComIfGs_isDungeonItemBossKey() { + return g_dComIfG_gameInfo.info.getMemory().getBit().isDungeonItemBossKey(); +} + inline u8 dComIfGs_getItem(int slot, bool unk) { - return g_dComIfG_gameInfo.getSaveFile().getPlayerItem().getItem(slot, unk); + return g_dComIfG_gameInfo.info.getPlayer().getItem().getItem(slot, unk); } + inline BOOL dComIfGs_isCollectSword(u8 sword_id) { - return g_dComIfG_gameInfo.getSaveFile().getPlayerCollect().isCollect(SWORD_BITFIELD, sword_id); + return g_dComIfG_gameInfo.info.getPlayer().getCollect().isCollect(COLLECT_SWORD, sword_id); } + inline BOOL dComIfGs_isCollectClothing(u8 clothing_id) { - return g_dComIfG_gameInfo.getSaveFile().getPlayerCollect().isCollect(CLOTHING_BITFIELD, - clothing_id); + return g_dComIfG_gameInfo.info.getPlayer().getCollect().isCollect(COLLECT_CLOTHING, + clothing_id); } + inline u8 dComIfGs_checkBottle(u8 type) { - return g_dComIfG_gameInfo.getSaveFile().getPlayerItem().checkBottle(type); + return g_dComIfG_gameInfo.info.getPlayer().getItem().checkBottle(type); } + inline BOOL dComIfGs_isLightDropGetFlag(u8 area_id) { - return g_dComIfG_gameInfo.getSaveFile().getLightDrop().isLightDropGetFlag(area_id); + return g_dComIfG_gameInfo.info.getPlayer().getLightDrop().isLightDropGetFlag(area_id); } -inline u8 dComIfGs_getArrowMax(void) { - return g_dComIfG_gameInfo.getSaveFile().getPlayer().getPlayerItemMax().getArrowNum(); + +inline u8 dComIfGs_getArrowMax() { + return g_dComIfG_gameInfo.info.getPlayer().getItemMax().getArrowNum(); } -inline u8 dComIfGs_getCollectSmell(void) { - return g_dComIfG_gameInfo.getSaveFile().getPlayer().getPlayerStatusA().getSelectEquip(3); + +inline u8 dComIfGs_getCollectSmell() { + return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getSelectEquip(3); } -inline u8 dComIfGs_getPohSpiritNum(void) { - return g_dComIfG_gameInfo.getSaveFile().getPlayer().getPlayerCollect().getPohNum(); + +inline u8 dComIfGs_getPohSpiritNum() { + return g_dComIfG_gameInfo.info.getPlayer().getCollect().getPohNum(); } -inline u8 dComIfGs_getKeyNum(void) { - return g_dComIfG_gameInfo.getMemory().getTempFlags().getKeyNum(); + +inline u8 dComIfGs_getKeyNum() { + return g_dComIfG_gameInfo.info.getMemory().getBit().getKeyNum(); } + inline void dComIfGs_onItemFirstBit(u8 i_no) { - g_dComIfG_gameInfo.getSaveFile().getPlayerGetItem().onFirstBit(i_no); + g_dComIfG_gameInfo.info.getPlayer().getGetItem().onFirstBit(i_no); } -inline u16 dComIfGs_getMaxLife(void) { - return g_dComIfG_gameInfo.getSaveFile().getPlayerStatusA().getMaxLife(); + +inline u16 dComIfGs_getMaxLife() { + return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getMaxLife(); } + inline void dComIfGs_offEventBit(u16 event) { - g_dComIfG_gameInfo.getSaveFile().getEventFlags().offEventBit(event); + g_dComIfG_gameInfo.info.getSavedata().getEvent().offEventBit(event); } + // inline int dComIfGs_isEventBit__FUs(u16 event) { -// return g_dComIfG_gameInfo.getSaveFile().getEventFlags().isEventBit(event); +// return g_dComIfG_gameInfo.getSaveFile().getTmp().isEventBit(event); // } -inline const char* dComIfGs_getLastWarpMarkStageName(void) { - return g_dComIfG_gameInfo.getSaveFile().getPlayerLastMarkInfo().getName(); + +inline const char* dComIfGs_getLastWarpMarkStageName() { + return g_dComIfG_gameInfo.info.getPlayer().getPlayerLastMarkInfo().getName(); } -inline cXyz dComIfGs_getLastWarpMarkPlayerPos(void) { - return g_dComIfG_gameInfo.getSaveFile().getPlayerLastMarkInfo().getPos(); + +inline cXyz dComIfGs_getLastWarpMarkPlayerPos() { + return g_dComIfG_gameInfo.info.getPlayer().getPlayerLastMarkInfo().getPos(); } -inline s16 dComIfGs_getLastWarpMarkPlayerAngleY(void) { - return g_dComIfG_gameInfo.getSaveFile().getPlayerLastMarkInfo().getAngleY(); + +inline s16 dComIfGs_getLastWarpMarkPlayerAngleY() { + return g_dComIfG_gameInfo.info.getPlayer().getPlayerLastMarkInfo().getAngleY(); } -inline s8 dComIfGs_getLastWarpMarkRoomNo(void) { - return g_dComIfG_gameInfo.getSaveFile().getPlayerLastMarkInfo().getRoomNo(); + +inline s8 dComIfGs_getLastWarpMarkRoomNo() { + return g_dComIfG_gameInfo.info.getPlayer().getPlayerLastMarkInfo().getRoomNo(); } -inline char dComIfGs_getLastWarpAcceptStage(void) { - return g_dComIfG_gameInfo.getSaveFile().getPlayerLastMarkInfo().getWarpAcceptStage(); + +inline char dComIfGs_getLastWarpAcceptStage() { + return g_dComIfG_gameInfo.info.getPlayer().getPlayerLastMarkInfo().getWarpAcceptStage(); } -inline u8 dComIfGs_getSelectEquipClothes(void) { - return g_dComIfG_gameInfo.getSaveFile().getPlayerStatusA().getSelectEquip(CLOTHING_BITFIELD); + +inline u8 dComIfGs_getSelectEquipClothes() { + return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getSelectEquip(COLLECT_CLOTHING); } -inline u8 dComIfGs_getSelectEquipSword(void) { - return g_dComIfG_gameInfo.getSaveFile().getPlayerStatusA().getSelectEquip(SWORD_BITFIELD); + +inline u8 dComIfGs_getSelectEquipSword() { + return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getSelectEquip(COLLECT_SWORD); } -inline u8 dComIfGs_getSelectEquipShield(void) { - return g_dComIfG_gameInfo.getSaveFile().getPlayerStatusA().getSelectEquip(SHIELD_BITFIELD); + +inline u8 dComIfGs_getSelectEquipShield() { + return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getSelectEquip(COLLECT_SHIELD); } + inline u8 dComIfGs_getLightDropNum(u8 area_id) { - return g_dComIfG_gameInfo.getSaveFile().getLightDrop().getLightDropNum(area_id); + return g_dComIfG_gameInfo.info.getPlayer().getLightDrop().getLightDropNum(area_id); } + inline u8 dComIfGs_getSelectItemIndex(int idx) { - return g_dComIfG_gameInfo.getPlayer().getPlayerStatusA().getSelectItemIndex(idx); + return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getSelectItemIndex(idx); } + inline void dComIfGp_setItem(u8 slot, u8 i_no) { - g_dComIfG_gameInfo.getPlay().setItem(slot, i_no); + g_dComIfG_gameInfo.play.setItem(slot, i_no); } -inline u32 dComIfGp_getNowVibration(void) { - return g_dComIfG_gameInfo.getPlay().getNowVibration(); + +inline u32 dComIfGp_getNowVibration() { + return g_dComIfG_gameInfo.play.getNowVibration(); +} + +inline char* dComIfGp_getStartStageName() { + return g_dComIfG_gameInfo.play.getStartStageName(); } -inline char* dComIfGp_getStartStageName(void) { - return g_dComIfG_gameInfo.getPlay().getStartStageName(); + +inline void dComIfGd_reset() { + g_dComIfG_gameInfo.draw_list_list.reset(); +} + +inline u8 dComIfGs_getOptVibration() { + return g_dComIfG_gameInfo.info.getPlayer().getConfig().getVibration(); +} + +inline s8 dComIfGp_roomControl_getStayNo() { + return dStage_roomControl_c::getStayNo(); +} + +inline s8 dComIfGp_getStartStageRoomNo() { + return g_dComIfG_gameInfo.play.getStartStageRoomNo(); +} + +inline s8 dComIfGp_getStartStageLayer() { + return g_dComIfG_gameInfo.play.getStartStageLayer(); +} + +inline roomRead_class* dComIfGp_getStageRoom() { + return g_dComIfG_gameInfo.play.getStage().getRoom(); +} + +inline stage_stag_info_class* dComIfGp_getStageStagInfo() { + return g_dComIfG_gameInfo.play.getStage().getStagInfo(); +} + +inline BOOL dComIfGs_isTbox(int i_no) { + return g_dComIfG_gameInfo.info.getMemory().getBit().isTbox(i_no); +} + +inline BOOL dComIfGs_isSaveTbox(int i_stageNo, int i_no) { + return g_dComIfG_gameInfo.info.getSavedata().getSave(i_stageNo).getBit().isTbox(i_no); +} + +inline void dComIfGs_onSaveSwitch(int i_stageNo, int i_no) { + g_dComIfG_gameInfo.info.getSavedata().getSave(i_stageNo).getBit().onSwitch(i_no); +} + +inline void dComIfGs_offSaveSwitch(int i_stageNo, int i_no) { + g_dComIfG_gameInfo.info.getSavedata().getSave(i_stageNo).getBit().offSwitch(i_no); +} + +inline BOOL dComIfGs_isSaveSwitch(int i_stageNo, int i_no) { + return g_dComIfG_gameInfo.info.getSavedata().getSave(i_stageNo).getBit().isSwitch(i_no); +} + +inline void dComIfGs_onStageBossEnemy() { + g_dComIfG_gameInfo.info.getMemory().getBit().onStageBossEnemy(); +} + +inline s32 dComIfGs_isDungeonItemWarp() { + return g_dComIfG_gameInfo.info.getMemory().getBit().isDungeonItemWarp(); +} + +inline u8 dComIfGp_isHeapLockFlag() { + return g_dComIfG_gameInfo.play.isHeapLockFlag(); +} + +inline void dComIfGp_setSubHeapLockFlag(int idx, u8 status) { + g_dComIfG_gameInfo.play.setSubHeapLockFlag(idx, status); +} + +inline u8 dComIfGp_getSubHeapLockFlag(int idx) { + return g_dComIfG_gameInfo.play.getSubHeapLockFlag(idx); +} + +inline JKRExpHeap* dComIfGp_getSubExpHeap2D(int idx) { + return g_dComIfG_gameInfo.play.getSubExpHeap2D(idx); +} + +inline void dComIfGp_setSubExpHeap2D(int idx, void* heap) { + g_dComIfG_gameInfo.play.setSubExpHeap2D(idx, heap); +} + +inline void dComIfGp_offEnableNextStage() { + g_dComIfG_gameInfo.play.offEnableNextStage(); +} + +inline void dComIfGs_setKeyNum(u8 keyNum) { + g_dComIfG_gameInfo.info.getMemory().getBit().setKeyNum(keyNum); +} + +void dComIfGs_setKeyNum(int i_stageNo, u8 keyNum); + +inline int dComIfG_getTimerMode() { + return g_dComIfG_gameInfo.play.getTimerMode(); +} + +inline dTimer_c* dComIfG_getTimerPtr() { + return g_dComIfG_gameInfo.play.getTimerPtr(); +} + +inline void dComIfGp_roomControl_initZone() { + g_dComIfG_gameInfo.play.getRoomControl()->initZone(); +} + +inline bool dComIfG_setObjectRes(const char* name, u8 param_1, JKRHeap* heap) { + return g_dComIfG_gameInfo.mResControl.setObjectRes(name, param_1, heap); +} + +inline int dComIfG_syncObjectRes(const char* name) { + return g_dComIfG_gameInfo.mResControl.syncObjectRes(name); +} + +inline JKRHeap* dComIfGp_getExpHeap2D() { + return g_dComIfG_gameInfo.play.getExpHeap2D(); +} + +inline u16 dComIfGs_getOil() { + return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getOil(); +} + +inline s64 dComIfGs_getSaveStartTime() { + return g_dComIfG_gameInfo.info.getStartTime(); +} + +inline s64 dComIfGs_getSaveTotalTime() { + return g_dComIfG_gameInfo.info.getSaveTotalTime(); +} + +inline dSv_save_c& dComIfGs_getSaveData() { + return g_dComIfG_gameInfo.info.getSavedata(); +} + +inline void dComIfGs_setLineUpItem() { + g_dComIfG_gameInfo.info.getPlayer().getItem().setLineUpItem(); +} + +inline void dComIfGp_setNowVibration(u8 status) { + g_dComIfG_gameInfo.play.setNowVibration(status); +} + +inline s32 dComIfGs_isGetMagicUseFlag() { + return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().isMagicFlag(0); +} + +inline void dComIfGs_offTmpBit(u16 flag) { + g_dComIfG_gameInfo.info.getTmp().offEventBit(flag); +} + +inline dAttention_c& dComIfGp_getAttention() { + return g_dComIfG_gameInfo.play.getAttention(); +} + +inline BOOL dComIfGs_isDarkClearLV(int param_0) { + return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusB().isDarkClearLV(param_0); +} + +inline BOOL dComIfGs_isTmpBit(u16 flag) { + return g_dComIfG_gameInfo.info.getTmp().isEventBit(flag); +} + +inline BOOL dComIfGs_isTransformLV(int param_0) { + return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusB().isTransformLV(param_0); +} + +inline void dComIfGs_onStageLife() { + g_dComIfG_gameInfo.info.getMemory().getBit().onStageLife(); +} + +inline u8 dComIfGs_getBombNum(u8 param_0) { + return g_dComIfG_gameInfo.info.getPlayer().getItemRecord().getBombNum(param_0); +} + +inline u8 dComIfGs_getPachinkoNum() { + return g_dComIfG_gameInfo.info.getPlayer().getItemRecord().getPachinkoNum(); +} + +inline u8 dComIfGs_getBottleNum(u8 param_0) { + return g_dComIfG_gameInfo.info.getPlayer().getItemRecord().getBottleNum(param_0); +} + +inline u8 dComIfGs_getBombMax(u8 param_0) { + return g_dComIfG_gameInfo.info.getPlayer().getItemMax().getBombNum(param_0); +} + +inline void dComIfGs_setBombNum(u8 param_0, u8 param_1) { + g_dComIfG_gameInfo.info.getPlayer().getItemRecord().setBombNum(param_0, param_1); +} + +inline void dComIfGs_setPachinkoNum(u8 param_0) { + g_dComIfG_gameInfo.info.getPlayer().getItemRecord().setPachinkoNum(param_0); +} + +inline void dComIfGs_addBottleNum(u8 param_0, s16 param_1) { + g_dComIfG_gameInfo.info.getPlayer().getItemRecord().addBottleNum(param_0, param_1); } -inline void dComIfGd_reset(void) { - g_dComIfG_gameInfo.getDrawlist().reset(); -} */ #endif /* D_COM_D_COM_INF_GAME_H */ diff --git a/include/d/d_attention.h b/include/d/d_attention.h index a2b2147b88..7758314a47 100644 --- a/include/d/d_attention.h +++ b/include/d/d_attention.h @@ -27,11 +27,13 @@ private: class dAttCatch_c { public: dAttCatch_c() {} - void convPId(unsigned int); + s32 convPId(unsigned int); void init(); void proc(); void request(fopAc_ac_c*, u8, f32, f32, f32, s16, int); + s32 getCatghTarget() { return convPId(field_0x10); } + private: void* field_0x0; u32 field_0x4; @@ -188,6 +190,8 @@ public: /* 800737E4 */ void LockonTruth(); /* 80073838 */ void checkDistance(cXyz*, s16, cXyz*, f32, f32, f32, f32); + dAttCatch_c& getCatghTarget() { return mCatghTarget; } + static u8 loc_type_tbl[12]; static u8 act_type_tbl[20]; static u8 dist_table[6552]; diff --git a/include/d/d_bomb.h b/include/d/d_bomb.h index b021b0a411..7a9b57caee 100644 --- a/include/d/d_bomb.h +++ b/include/d/d_bomb.h @@ -15,7 +15,7 @@ public: u32 checkWaterBomb() const { return checkStateFlg0(WATER_BOMB); } /* 0x000 */ fopAc_ac_c mActor; - /* 0x570 */ u8 field_0x570[8]; + /* 0x568 */ u8 field_0x568[0x10]; /* 0x578 */ dBgS_Acch mAcch; /* 0x750 */ dBgS_AcchCir mAcchCir; /* 0x790 */ dCcD_Stts mStts; diff --git a/include/d/d_item.h b/include/d/d_item.h index 20e8cf36cb..af66f97e0f 100644 --- a/include/d/d_item.h +++ b/include/d/d_item.h @@ -1,6 +1,390 @@ #ifndef D_D_ITEM_H #define D_D_ITEM_H +#include "d/com/d_com_inf_game.h" #include "dolphin/types.h" +void item_func_HEART(); +void item_func_GREEN_RUPEE(); +void item_func_BLUE_RUPEE(); +void item_func_YELLOW_RUPEE(); +void item_func_RED_RUPEE(); +void item_func_PURPLE_RUPEE(); +void item_func_ORANGE_RUPEE(); +void item_func_SILVER_RUPEE(); +void item_func_S_MAGIC(); +void item_func_L_MAGIC(); +void item_func_BOMB_5(); +void item_func_BOMB_10(); +void item_func_BOMB_20(); +void item_func_BOMB_30(); +void item_func_ARROW_10(); +void item_func_ARROW_20(); +void item_func_ARROW_30(); +void item_func_ARROW_1(); +void item_func_PACHINKO_SHOT(); +void item_func_WATER_BOMB_5(); +void item_func_WATER_BOMB_10(); +void item_func_WATER_BOMB_20(); +void item_func_WATER_BOMB_30(); +void item_func_BOMB_INSECT_5(); +void item_func_BOMB_INSECT_10(); +void item_func_BOMB_INSECT_20(); +void item_func_BOMB_INSECT_30(); +void item_func_RECOVER_FAILY(); +void item_func_TRIPLE_HEART(); +void item_func_SMALL_KEY(); +void item_func_KAKERA_HEART(); +void item_func_UTUWA_HEART(); +void item_func_MAP(); +void item_func_COMPUS(); +void item_func_DUNGEON_EXIT(); +void item_func_BOSS_KEY(); +void item_func_DUNGEON_BACK(); +void item_func_SWORD(); +void item_func_MASTER_SWORD(); +void item_func_WOOD_SHIELD(); +void item_func_SHIELD(); +void item_func_HYLIA_SHIELD(); +void item_func_TKS_LETTER(); +void item_func_WEAR_CASUAL(); +void item_func_WEAR_KOKIRI(); +void item_func_ARMOR(); +void item_func_WEAR_ZORA(); +void item_func_MAGIC_LV1(); +void item_func_DUNGEON_EXIT_2(); +void item_func_WALLET_LV1(); +void item_func_WALLET_LV2(); +void item_func_WALLET_LV3(); +void item_func_ZORAS_JEWEL(); +void item_func_HAWK_EYE(); +void item_func_WOOD_STICK(); +void item_func_BOOMERANG(); +void item_func_SPINNER(); +void item_func_IRONBALL(); +void item_func_BOW(); +void item_func_HOOKSHOT(); +void item_func_HVY_BOOTS(); +void item_func_COPY_ROD(); +void item_func_W_HOOKSHOT(); +void item_func_KANTERA(); +void item_func_LIGHT_SWORD(); +void item_func_FISHING_ROD_1(); +void item_func_PACHINKO(); +void item_func_COPY_ROD_2(); +void item_func_BOMB_BAG_LV2(); +void item_func_BOMB_BAG_LV1(); +void item_func_BOMB_IN_BAG(); +void item_func_LIGHT_ARROW(); +void item_func_ARROW_LV1(); +void item_func_ARROW_LV2(); +void item_func_ARROW_LV3(); +void item_func_LURE_ROD(); +void item_func_BOMB_ARROW(); +void item_func_HAWK_ARROW(); +void item_func_BEE_ROD(); +void item_func_JEWEL_ROD(); +void item_func_WORM_ROD(); +void item_func_JEWEL_BEE_ROD(); +void item_func_JEWEL_WORM_ROD(); +void item_func_EMPTY_BOTTLE(); +void item_func_RED_BOTTLE(); +void item_func_GREEN_BOTTLE(); +void item_func_BLUE_BOTTLE(); +void item_func_MILK_BOTTLE(); +void item_func_HALF_MILK_BOTTLE(); +void item_func_OIL_BOTTLE(); +void item_func_WATER_BOTTLE(); +void item_func_OIL_BOTTLE2(); +void item_func_RED_BOTTLE2(); +void item_func_UGLY_SOUP(); +void item_func_HOT_SPRING(); +void item_func_FAIRY_BOTTLE(); +void item_func_HOT_SPRING2(); +void item_func_OIL2(); +void item_func_OIL(); +void item_func_NORMAL_BOMB(); +void item_func_WATER_BOMB(); +void item_func_POKE_BOMB(); +void item_func_FAIRY_DROP(); +void item_func_WORM(); +void item_func_DROP_BOTTLE(); +void item_func_BEE_CHILD(); +void item_func_CHUCHU_RARE(); +void item_func_CHUCHU_RED(); +void item_func_CHUCHU_BLUE(); +void item_func_CHUCHU_GREEN(); +void item_func_CHUCHU_YELLOW(); +void item_func_CHUCHU_PURPLE(); +void item_func_LV1_SOUP(); +void item_func_LV2_SOUP(); +void item_func_LV3_SOUP(); +void item_func_LETTER(); +void item_func_BILL(); +void item_func_WOOD_STATUE(); +void item_func_IRIAS_PENDANT(); +void item_func_HORSE_FLUTE(); +void item_func_RAFRELS_MEMO(); +void item_func_ASHS_SCRIBBLING(); +void item_func_CHUCHU_YELLOW2(); +void item_func_OIL_BOTTLE3(); +void item_func_SHOP_BEE_CHILD(); +void item_func_CHUCHU_BLACK(); +void item_func_LIGHT_DROP(); +void item_func_DROP_CONTAINER(); +void item_func_DROP_CONTAINER02(); +void item_func_DROP_CONTAINER03(); +void item_func_FILLED_CONTAINER(); +void item_func_MIRROR_PIECE_2(); +void item_func_MIRROR_PIECE_3(); +void item_func_MIRROR_PIECE_4(); +void item_func_SMELL_YELIA_POUCH(); +void item_func_SMELL_PUMPKIN(); +void item_func_SMELL_POH(); +void item_func_SMELL_FISH(); +void item_func_SMELL_CHILDREN(); +void item_func_SMELL_MEDICINE(); +void item_func_M_BEETLE(); +void item_func_F_BEETLE(); +void item_func_M_BUTTERFLY(); +void item_func_F_BUTTERFLY(); +void item_func_M_STAG_BEETLE(); +void item_func_F_STAG_BEETLE(); +void item_func_M_GRASSHOPPER(); +void item_func_F_GRASSHOPPER(); +void item_func_M_NANAFUSHI(); +void item_func_F_NANAFUSHI(); +void item_func_M_DANGOMUSHI(); +void item_func_F_DANGOMUSHI(); +void item_func_M_MANTIS(); +void item_func_F_MANTIS(); +void item_func_M_LADYBUG(); +void item_func_F_LADYBUG(); +void item_func_M_SNAIL(); +void item_func_F_SNAIL(); +void item_func_M_DRAGONFLY(); +void item_func_F_DRAGONFLY(); +void item_func_M_ANT(); +void item_func_F_ANT(); +void item_func_M_MAYFLY(); +void item_func_F_MAYFLY(); +void item_func_POU_SPIRIT(); +void item_func_ANCIENT_DOCUMENT(); +void item_func_AIR_LETTER(); +void item_func_ANCIENT_DOCUMENT2(); +void item_func_LV7_DUNGEON_EXIT(); +void item_func_LINKS_SAVINGS(); +void item_func_SMALL_KEY2(); +void item_func_POU_FIRE1(); +void item_func_POU_FIRE2(); +void item_func_POU_FIRE3(); +void item_func_POU_FIRE4(); +void item_func_BOSSRIDER_KEY(); +void item_func_TOMATO_PUREE(); +void item_func_TASTE(); +void item_func_LV5_BOSS_KEY(); +void item_func_SURFBOARD(); +void item_func_KANTERA2(); +void item_func_L2_KEY_PIECES1(); +void item_func_L2_KEY_PIECES2(); +void item_func_L2_KEY_PIECES3(); +void item_func_KEY_OF_CARAVAN(); +void item_func_LV2_BOSS_KEY(); +void item_func_KEY_OF_FILONE(); +void item_func_noentry(); + +s32 item_getcheck_func_HEART(); +s32 item_getcheck_func_GREEN_RUPEE(); +s32 item_getcheck_func_BLUE_RUPEE(); +s32 item_getcheck_func_YELLOW_RUPEE(); +s32 item_getcheck_func_RED_RUPEE(); +s32 item_getcheck_func_PURPLE_RUPEE(); +s32 item_getcheck_func_ORANGE_RUPEE(); +s32 item_getcheck_func_SILVER_RUPEE(); +s32 item_getcheck_func_S_MAGIC(); +s32 item_getcheck_func_L_MAGIC(); +s32 item_getcheck_func_BOMB_5(); +s32 item_getcheck_func_BOMB_10(); +s32 item_getcheck_func_BOMB_20(); +s32 item_getcheck_func_BOMB_30(); +s32 item_getcheck_func_ARROW_10(); +s32 item_getcheck_func_ARROW_20(); +s32 item_getcheck_func_ARROW_30(); +s32 item_getcheck_func_ARROW_1(); +s32 item_getcheck_func_PACHINKO_SHOT(); +s32 item_getcheck_func_WATER_BOMB_5(); +s32 item_getcheck_func_WATER_BOMB_10(); +s32 item_getcheck_func_WATER_BOMB_20(); +s32 item_getcheck_func_WATER_BOMB_30(); +s32 item_getcheck_func_BOMB_INSECT_5(); +s32 item_getcheck_func_BOMB_INSECT_10(); +s32 item_getcheck_func_BOMB_INSECT_20(); +s32 item_getcheck_func_BOMB_INSECT_30(); +s32 item_getcheck_func_RECOVER_FAILY(); +s32 item_getcheck_func_TRIPLE_HEART(); +s32 item_getcheck_func_SMALL_KEY(); +s32 item_getcheck_func_KAKERA_HEART(); +s32 item_getcheck_func_UTUWA_HEART(); +s32 item_getcheck_func_MAP(); +s32 item_getcheck_func_COMPUS(); +s32 item_getcheck_func_DUNGEON_EXIT(); +s32 item_getcheck_func_BOSS_KEY(); +s32 item_getcheck_func_DUNGEON_BACK(); +s32 item_getcheck_func_SWORD(); +s32 item_getcheck_func_MASTER_SWORD(); +s32 item_getcheck_func_WOOD_SHIELD(); +s32 item_getcheck_func_SHIELD(); +s32 item_getcheck_func_HYLIA_SHIELD(); +s32 item_getcheck_func_TKS_LETTER(); +s32 item_getcheck_func_WEAR_CASUAL(); +s32 item_getcheck_func_WEAR_KOKIRI(); +s32 item_getcheck_func_ARMOR(); +s32 item_getcheck_func_WEAR_ZORA(); +s32 item_getcheck_func_MAGIC_LV1(); +s32 item_getcheck_func_DUNGEON_EXIT_2(); +s32 item_getcheck_func_WALLET_LV1(); +s32 item_getcheck_func_WALLET_LV2(); +s32 item_getcheck_func_WALLET_LV3(); +s32 item_getcheck_func_ZORAS_JEWEL(); +s32 item_getcheck_func_HAWK_EYE(); +s32 item_getcheck_func_WOOD_STICK(); +s32 item_getcheck_func_BOOMERANG(); +s32 item_getcheck_func_SPINNER(); +s32 item_getcheck_func_IRONBALL(); +s32 item_getcheck_func_BOW(); +s32 item_getcheck_func_HOOKSHOT(); +s32 item_getcheck_func_HVY_BOOTS(); +s32 item_getcheck_func_COPY_ROD(); +s32 item_getcheck_func_W_HOOKSHOT(); +s32 item_getcheck_func_KANTERA(); +s32 item_getcheck_func_LIGHT_SWORD(); +s32 item_getcheck_func_FISHING_ROD_1(); +s32 item_getcheck_func_PACHINKO(); +s32 item_getcheck_func_COPY_ROD_2(); +s32 item_getcheck_func_BOMB_BAG_LV2(); +s32 item_getcheck_func_BOMB_BAG_LV1(); +s32 item_getcheck_func_BOMB_IN_BAG(); +s32 item_getcheck_func_LIGHT_ARROW(); +s32 item_getcheck_func_ARROW_LV1(); +s32 item_getcheck_func_ARROW_LV2(); +s32 item_getcheck_func_ARROW_LV3(); +s32 item_getcheck_func_LURE_ROD(); +s32 item_getcheck_func_BOMB_ARROW(); +s32 item_getcheck_func_HAWK_ARROW(); +s32 item_getcheck_func_BEE_ROD(); +s32 item_getcheck_func_JEWEL_ROD(); +s32 item_getcheck_func_WORM_ROD(); +s32 item_getcheck_func_JEWEL_BEE_ROD(); +s32 item_getcheck_func_JEWEL_WORM_ROD(); +s32 item_getcheck_func_EMPTY_BOTTLE(); +s32 item_getcheck_func_RED_BOTTLE(); +s32 item_getcheck_func_GREEN_BOTTLE(); +s32 item_getcheck_func_BLUE_BOTTLE(); +s32 item_getcheck_func_MILK_BOTTLE(); +s32 item_getcheck_func_HALF_MILK_BOTTLE(); +s32 item_getcheck_func_OIL_BOTTLE(); +s32 item_getcheck_func_WATER_BOTTLE(); +s32 item_getcheck_func_OIL_BOTTLE2(); +s32 item_getcheck_func_RED_BOTTLE2(); +s32 item_getcheck_func_UGLY_SOUP(); +s32 item_getcheck_func_HOT_SPRING(); +s32 item_getcheck_func_FAIRY_BOTTLE(); +s32 item_getcheck_func_HOT_SPRING2(); +s32 item_getcheck_func_OIL2(); +s32 item_getcheck_func_OIL(); +s32 item_getcheck_func_NORMAL_BOMB(); +s32 item_getcheck_func_WATER_BOMB(); +s32 item_getcheck_func_POKE_BOMB(); +s32 item_getcheck_func_FAIRY_DROP(); +s32 item_getcheck_func_WORM(); +s32 item_getcheck_func_DROP_BOTTLE(); +s32 item_getcheck_func_BEE_CHILD(); +s32 item_getcheck_func_CHUCHU_RARE(); +s32 item_getcheck_func_CHUCHU_RED(); +s32 item_getcheck_func_CHUCHU_BLUE(); +s32 item_getcheck_func_CHUCHU_GREEN(); +s32 item_getcheck_func_CHUCHU_YELLOW(); +s32 item_getcheck_func_CHUCHU_PURPLE(); +s32 item_getcheck_func_LV1_SOUP(); +s32 item_getcheck_func_LV2_SOUP(); +s32 item_getcheck_func_LV3_SOUP(); +s32 item_getcheck_func_LETTER(); +s32 item_getcheck_func_BILL(); +s32 item_getcheck_func_WOOD_STATUE(); +s32 item_getcheck_func_IRIAS_PENDANT(); +s32 item_getcheck_func_HORSE_FLUTE(); +s32 item_getcheck_func_RAFRELS_MEMO(); +s32 item_getcheck_func_ASHS_SCRIBBLING(); +s32 item_getcheck_func_CHUCHU_YELLOW2(); +s32 item_getcheck_func_OIL_BOTTLE3(); +s32 item_getcheck_func_SHOP_BEE_CHILD(); +s32 item_getcheck_func_CHUCHU_BLACK(); +s32 item_getcheck_func_LIGHT_DROP(); +s32 item_getcheck_func_DROP_CONTAINER(); +s32 item_getcheck_func_DROP_CONTAINER02(); +s32 item_getcheck_func_DROP_CONTAINER03(); +s32 item_getcheck_func_FILLED_CONTAINER(); +s32 item_getcheck_func_MIRROR_PIECE_2(); +s32 item_getcheck_func_MIRROR_PIECE_3(); +s32 item_getcheck_func_MIRROR_PIECE_4(); +s32 item_getcheck_func_SMELL_YELIA_POUCH(); +s32 item_getcheck_func_SMELL_PUMPKIN(); +s32 item_getcheck_func_SMELL_POH(); +s32 item_getcheck_func_SMELL_FISH(); +s32 item_getcheck_func_SMELL_CHILDREN(); +s32 item_getcheck_func_SMELL_MEDICINE(); +s32 item_getcheck_func_M_BEETLE(); +s32 item_getcheck_func_F_BEETLE(); +s32 item_getcheck_func_M_BUTTERFLY(); +s32 item_getcheck_func_F_BUTTERFLY(); +s32 item_getcheck_func_M_STAG_BEETLE(); +s32 item_getcheck_func_F_STAG_BEETLE(); +s32 item_getcheck_func_M_GRASSHOPPER(); +s32 item_getcheck_func_F_GRASSHOPPER(); +s32 item_getcheck_func_M_NANAFUSHI(); +s32 item_getcheck_func_F_NANAFUSHI(); +s32 item_getcheck_func_M_DANGOMUSHI(); +s32 item_getcheck_func_F_DANGOMUSHI(); +s32 item_getcheck_func_M_MANTIS(); +s32 item_getcheck_func_F_MANTIS(); +s32 item_getcheck_func_M_LADYBUG(); +s32 item_getcheck_func_F_LADYBUG(); +s32 item_getcheck_func_M_SNAIL(); +s32 item_getcheck_func_F_SNAIL(); +s32 item_getcheck_func_M_DRAGONFLY(); +s32 item_getcheck_func_F_DRAGONFLY(); +s32 item_getcheck_func_M_ANT(); +s32 item_getcheck_func_F_ANT(); +s32 item_getcheck_func_M_MAYFLY(); +s32 item_getcheck_func_F_MAYFLY(); +s32 item_getcheck_func_POU_SPIRIT(); +s32 item_getcheck_func_ANCIENT_DOCUMENT(); +s32 item_getcheck_func_AIR_LETTER(); +s32 item_getcheck_func_ANCIENT_DOCUMENT2(); +s32 item_getcheck_func_LV7_DUNGEON_EXIT(); +s32 item_getcheck_func_LINKS_SAVINGS(); +s32 item_getcheck_func_SMALL_KEY2(); +s32 item_getcheck_func_POU_FIRE1(); +s32 item_getcheck_func_POU_FIRE2(); +s32 item_getcheck_func_POU_FIRE3(); +s32 item_getcheck_func_POU_FIRE4(); +s32 item_getcheck_func_BOSSRIDER_KEY(); +s32 item_getcheck_func_TOMATO_PUREE(); +s32 item_getcheck_func_TASTE(); +s32 item_getcheck_func_LV5_BOSS_KEY(); +s32 item_getcheck_func_SURFBOARD(); +s32 item_getcheck_func_KANTERA2(); +s32 item_getcheck_func_L2_KEY_PIECES1(); +s32 item_getcheck_func_L2_KEY_PIECES2(); +s32 item_getcheck_func_L2_KEY_PIECES3(); +s32 item_getcheck_func_KEY_OF_CARAVAN(); +s32 item_getcheck_func_LV2_BOSS_KEY(); +s32 item_getcheck_func_KEY_OF_FILONE(); +s32 item_getcheck_func_noentry(); + +s32 checkItemGet(u8, int); +s32 isBomb(u8); +s32 isArrow(u8); +void addBombCount(u8, u8); + #endif /* D_D_ITEM_H */ diff --git a/include/d/d_stage.h b/include/d/d_stage.h index 06909c5f0f..56aec5199f 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -6,6 +6,7 @@ #include "d/save/d_save.h" #include "dolphin/types.h" #include "f_op/f_op_actor.h" +#include "f_op/f_op_actor_mng.h" #include "msl_c/string.h" struct stage_vrboxcol_info_class {}; @@ -17,14 +18,32 @@ struct stage_tresure_class {}; struct stage_tgsc_data_class { /* 8002847C */ ~stage_tgsc_data_class() {} /* 800284B8 */ stage_tgsc_data_class() {} - u8 unk_0[0x24]; + /* 0x00 */ u32 field_0x0; + /* 0x04 */ u32 field_0x4; + /* 0x08 */ fopAcM_prmBase_class field_0x8; + /* 0x20 */ u16 field_0x20; + /* 0x22 */ u8 field_0x22; }; // Size = 0x24 STATIC_ASSERT(sizeof(stage_tgsc_data_class) == 0x24); struct stage_tgsc_class {}; -struct stage_stag_info_class {}; +struct stage_stag_info_class { + /* 0x00 */ u8 field_0x00[8]; + /* 0x08 */ u8 mCameraType; + /* 0x09 */ u8 field_0x09; + /* 0x0A */ u16 field_0x0a; + /* 0x0C */ u32 field_0x0c; + /* 0x10 */ u32 field_0x10; + /* 0x14 */ u8 field_0x14[6]; + /* 0x1A */ s16 mGapLevel; + /* 0x1C */ s16 mRangeUp; + /* 0x1E */ s16 mRangeDown; + /* 0x20 */ u8 field_0x20[8]; + /* 0x28 */ u8 mMsgGroup; + /* 0x2A */ u16 mStageTitleNo; +}; // Size: Unknown struct stage_scls_info_dummy_class {}; @@ -327,102 +346,101 @@ private: class dStage_roomDt_c : public dStage_dt_c { public: dStage_roomDt_c() {} - stage_pure_lightvec_info_class* getLightVecInfo(void) const; - int getLightVecInfoNum(void) const; - stage_map_info_class* getMapInfo(void) const; - stage_map_info_dummy_class* getMapInfoBase(void) const; - int getMapPath(void); - stage_vrbox_info_class* getVrboxInfo(void) const; - stage_vrboxcol_info_class* getVrboxcolInfo(void) const; - dStage_FileList2_dt_c* getFileList2Info(void) const; - dStage_FileList_dt_c* getFileListInfo(void) const; - stage_actor_class* getPlayer(void) const; - dStage_dPnt_c* getPnt2Inf(void) const; - dStage_dPath_c* getPath2Inf(void) const; - stage_camera_class* getCamera(void) const; - stage_arrow_class* getArrow(void) const; - dStage_MapEventInfo_c* getMapEventInfo(void) const; - dStage_SoundInfo_c* getSoundInf(void) const; - dStage_SoundInfo_c* getSoundInfCL(void) const; - stage_scls_info_dummy_class* getSclsInfo(void) const; - dStage_Lbnk_c* getLbnk(void) const; - stage_tresure_class* getTresure(void) const; - stage_tgsc_class* getDrTg(void) const; - stage_tgsc_class* getDoor(void) const; - dStage_FloorInfo_c* getFloorInfo(void) const; - u16 getPlayerNum(void) const; - int getEnvrNumInfo(void) const; - int getVrboxNumInfo(void) const; - int getVrboxcolNumInfo(void) const; - int getMapInfo2(int) const; - int getPlightNumInfo(void) const; - stage_stag_info_class* getStagInfo(void) const; - dStage_dPnt_c* getPntInf(void) const; - dStage_dPath_c* getPathInf(void) const; - dStage_MemoryConfig_c* getMemoryConfig(void) const; - dStage_MemoryMap_c* getMemoryMap(void) const; - dStage_Multi_c* getMulti(void) const; - dStage_Multi_c* getOldMulti(void) const; - dStage_DMap_c* getDMap(void) const; - dStage_Elst_c* getElst(void); - roomRead_class* getRoom(void) const; - stage_palette_info_class* getPaletteInfo(void) const; - stage_pselect_info_class* getPselectInfo(void) const; - stage_envr_info_class* getEnvrInfo(void) const; - stage_plight_info_class* getPlightInfo(void) const; - int getPaletteNumInfo(void) const; - int getPselectNumInfo(void) const; - void initFileList2(void); - void init(void); - - void setLightVecInfo(stage_pure_lightvec_info_class*); - void setLightVecInfoNum(int); - void setMapInfo(stage_map_info_class*); - void setMapInfoBase(stage_map_info_dummy_class*); - void setVrboxInfo(stage_vrbox_info_class*); - void setVrboxcolInfo(stage_vrboxcol_info_class*); - void setFileList2Info(dStage_FileList2_dt_c*); - void setFileListInfo(dStage_FileList_dt_c*); - void setPlayer(stage_actor_class*); void setPnt2Inf(dStage_dPnt_c*); - void setPath2Info(dStage_dPath_c*); - void setCamera(stage_camera_class*); - void setArrow(stage_arrow_class*); - void setMapEventInfo(dStage_MapEventInfo_c*); - void setSoundInf(dStage_SoundInfo_c*); - void setSoundInfCL(dStage_SoundInfo_c*); - void setSclsInfo(stage_scls_info_dummy_class*); - void setLbnk(dStage_Lbnk_c*); void setTreasure(stage_tresure_class*); - void setDrTg(stage_tgsc_class*); - void setDoor(stage_tgsc_class*); - void setFloorInfo(dStage_FloorInfo_c*); - void setPlayerNum(u16); - void setVrboxNumInfo(int); - void setVrboxcolNumInfo(int); - void setStagInfo(stage_stag_info_class*); - void setPntInfo(dStage_dPnt_c*); - void setPathInfo(dStage_dPath_c*); - void setPnt2Info(dStage_dPnt_c*); - void setPlightNumInfo(int); - void setMemoryConfig(dStage_MemoryConfig_c*); - void setMemoryMap(dStage_MemoryMap_c*); - void setMulti(dStage_Multi_c*); - void setOldMulti(void); - void resetOldMulti(void); - void setTresure(stage_tresure_class*); - void setDMap(dStage_DMap_c*); - void setMapPath(void*); - void setElst(dStage_Elst_c*); - void setRoom(roomRead_class*); - void setPaletteInfo(stage_palette_info_class*); - void setPselectInfo(stage_pselect_info_class*); - void setEnvrInfo(stage_envr_info_class*); - void setPlightInfo(stage_plight_info_class*); - void setPaletteNumInfo(int); - void setPselectNumInfo(int); - void setEnvrNumInfo(int); + + virtual void init(void); + virtual void setCamera(stage_camera_class*); + virtual stage_camera_class* getCamera(void) const; + virtual void setArrow(stage_arrow_class*); + virtual stage_arrow_class* getArrow(void) const; + virtual void setPlayer(stage_actor_class*); + virtual stage_actor_class* getPlayer(void) const; + virtual void setPlayerNum(u16); + virtual u16 getPlayerNum(void) const; + virtual void setRoom(roomRead_class*); + virtual roomRead_class* getRoom(void) const; + virtual void setMapInfo(stage_map_info_class*); + virtual stage_map_info_class* getMapInfo(void) const; + virtual int getMapInfo2(int) const; + virtual void setMapInfoBase(stage_map_info_dummy_class*); + virtual stage_map_info_dummy_class* getMapInfoBase(void) const; + virtual void setPaletteInfo(stage_palette_info_class*); + virtual stage_palette_info_class* getPaletteInfo(void) const; + virtual void setPselectInfo(stage_pselect_info_class*); + virtual stage_pselect_info_class* getPselectInfo(void) const; + virtual void setEnvrInfo(stage_envr_info_class*); + virtual stage_envr_info_class* getEnvrInfo(void) const; + virtual void setVrboxInfo(stage_vrbox_info_class*); + virtual stage_vrbox_info_class* getVrboxInfo(void) const; + virtual void setVrboxcolInfo(stage_vrboxcol_info_class*); + virtual stage_vrboxcol_info_class* getVrboxcolInfo(void) const; + virtual void setPlightInfo(stage_plight_info_class*); + virtual stage_plight_info_class* getPlightInfo(void) const; + virtual void setPaletteNumInfo(int); + virtual int getPaletteNumInfo(void) const; + virtual void setPselectNumInfo(int); + virtual int getPselectNumInfo(void) const; + virtual void setEnvrNumInfo(int); + virtual int getEnvrNumInfo(void) const; + virtual void setVrboxNumInfo(int); + virtual int getVrboxNumInfo(void) const; + virtual void setVrboxcolNumInfo(int); + virtual int getVrboxcolNumInfo(void) const; + virtual void setPlightNumInfo(int); + virtual int getPlightNumInfo(void) const; + virtual void setLightVecInfo(stage_pure_lightvec_info_class*); + virtual stage_pure_lightvec_info_class* getLightVecInfo(void) const; + virtual void setLightVecInfoNum(int); + virtual int getLightVecInfoNum(void) const; + virtual void setStagInfo(stage_stag_info_class*); + virtual stage_stag_info_class* getStagInfo(void) const; + virtual void setSclsInfo(stage_scls_info_dummy_class*); + virtual stage_scls_info_dummy_class* getSclsInfo(void) const; + virtual void setPntInfo(dStage_dPnt_c*); + virtual dStage_dPnt_c* getPntInf(void) const; + virtual void setPathInfo(dStage_dPath_c*); + virtual dStage_dPath_c* getPathInf(void) const; + virtual void setPnt2Info(dStage_dPnt_c*); + virtual dStage_dPnt_c* getPnt2Inf(void) const; + virtual void setPath2Info(dStage_dPath_c*); + virtual dStage_dPath_c* getPath2Inf(void) const; + virtual void setSoundInf(dStage_SoundInfo_c*); + virtual dStage_SoundInfo_c* getSoundInf(void) const; + virtual void setSoundInfCL(dStage_SoundInfo_c*); + virtual dStage_SoundInfo_c* getSoundInfCL(void) const; + virtual void setMapEventInfo(dStage_MapEventInfo_c*); + virtual dStage_MapEventInfo_c* getMapEventInfo(void) const; + virtual void setFileList2Info(dStage_FileList2_dt_c*); + virtual dStage_FileList2_dt_c* getFileList2Info(void) const; + virtual void setFileListInfo(dStage_FileList_dt_c*); + virtual dStage_FileList_dt_c* getFileListInfo(void) const; + virtual void setFloorInfo(dStage_FloorInfo_c*); + virtual dStage_FloorInfo_c* getFloorInfo(void) const; + virtual void setMemoryConfig(dStage_MemoryConfig_c*); + virtual dStage_MemoryConfig_c* getMemoryConfig(void) const; + virtual void setMemoryMap(dStage_MemoryMap_c*); + virtual dStage_MemoryMap_c* getMemoryMap(void) const; + virtual void setMulti(dStage_Multi_c*); + virtual dStage_Multi_c* getMulti(void) const; + virtual void setOldMulti(void); + virtual void resetOldMulti(void); + virtual dStage_Multi_c* getOldMulti(void) const; + virtual void setLbnk(dStage_Lbnk_c*); + virtual dStage_Lbnk_c* getLbnk(void) const; + virtual void setTresure(stage_tresure_class*); + virtual stage_tresure_class* getTresure(void) const; + virtual void setDMap(dStage_DMap_c*); + virtual dStage_DMap_c* getDMap(void) const; + virtual void setDrTg(stage_tgsc_class*); + virtual stage_tgsc_class* getDrTg(void) const; + virtual void setDoor(stage_tgsc_class*); + virtual stage_tgsc_class* getDoor(void) const; + virtual void setMapPath(void*); + virtual int getMapPath(void); + virtual void setElst(dStage_Elst_c*); + virtual dStage_Elst_c* getElst(void); private: stage_pure_lightvec_info_class* mLightVecInfo; @@ -454,14 +472,13 @@ private: }; // Size: 0x6C class dStage_roomStatus_c { -private: +public: /* 0x000 */ dStage_roomDt_c mRoomDt; /* 0x06C */ dKy_tevstr_c mKyTevStr; /* 0x3F4 */ u8 unk_0x3F4[3]; /* 0x3F7 */ s8 mZoneNo; /* 0x3F8 */ u8 unk_3F8[0x404 - 0x3F8]; -public: int getZoneNo() const { return mZoneNo; } /* 80028360 */ ~dStage_roomStatus_c() {} /* 8002839C */ dStage_roomStatus_c() {} @@ -469,6 +486,8 @@ public: STATIC_ASSERT(sizeof(dStage_roomStatus_c) == 0x404); +extern s8 struct_80450D64; // sStayNo + class dStage_roomControl_c { public: class roomDzs_c { @@ -500,51 +519,27 @@ public: /* 80024954 */ void resetArchiveBank(int); /* 80024DB0 */ static void SetTimePass(int); + inline static s8 getStayNo() { return struct_80450D64; } + static JKRExpHeap* mMemoryBlock[19]; static u8 mArcBank[320]; static dStage_roomStatus_c mStatus[0x40]; static u8 mDemoArcName[10 + 2 /* padding */]; static u32 mProcID; - static u8 mArcBankName[4]; - static u8 mArcBankData[4]; + static char* mArcBankName; + static char* mArcBankData; static roomDzs_c m_roomDzs; private: u8 field_0x0[4]; }; -#pragma pack(push, 1) -class dStage_nextStage_c { -public: - dStage_nextStage_c() { - enabled = 0; // TODO: maybe wrong - } - void set(const char*, s8, s16, s8, s8, u8); - -private: - char mStage[8]; - s16 mPoint; - u8 mRoomNo; - u8 mLayer; - u8 field_0xc; - s8 enabled; - u8 wipe; - u8 wipe_speed; -}; -#pragma pack(pop) - class dStage_startStage_c { public: void set(const char*, s8, s16, s8); inline char* getName() { return mStage; } s8 getLayer() { return mLayer; } - void operator=(const dStage_startStage_c& other) { - strcpy(mStage, other.mStage); - mPoint = other.mPoint; - mRoomNo = other.mRoomNo; - mLayer = other.mLayer; - mDarkArea = other.mDarkArea; - } + s8 getRoomNo() { return mRoomNo; } private: /* 0x0 */ char mStage[8]; @@ -554,6 +549,20 @@ private: /* 0xC */ s8 mDarkArea; }; +class dStage_nextStage_c : public dStage_startStage_c { +public: + dStage_nextStage_c() { + enabled = 0; // TODO: maybe wrong + } + void set(const char*, s8, s16, s8, s8, u8); + void offEnable() { enabled = 0; } + +private: + s8 enabled; + u8 wipe; + u8 wipe_speed; +}; + // unknown name struct dStage_objectNameInf { char mName[8]; @@ -564,7 +573,7 @@ struct dStage_objectNameInf { class dStage_KeepDoorInfo { public: /* 80028418 */ ~dStage_KeepDoorInfo() {} - /* 0x000 */ u8 unk_0x0[4]; + /* 0x000 */ stage_tgsc_class* unk_0x0; /* 0x004 */ stage_tgsc_data_class unk_0x4[0x40]; }; // Size = 0x904 @@ -625,8 +634,14 @@ static void dStage_fieldMapTresureInit(dStage_dt_c*, void*, int, void*); static void dStage_fieldMapFiliInfo2Init(dStage_dt_c*, void*, int, void*); static void dStage_fieldMapMapPathInit(dStage_dt_c*, void*, int, void*); +u8 dStage_roomRead_dt_c_GetReverbStage(roomRead_class&, int); + inline u8 dStage_roomRead_dt_c_GetLoadRoomIndex(u8 param_0) { return param_0 & 0x3f; } +inline u32 dStage_stagInfo_GetSTType(stage_stag_info_class* pstag) { + return pstag->field_0x0c >> 0x10 & 7; +} + #endif /* D_D_STAGE_H */ diff --git a/include/d/event/d_event.h b/include/d/event/d_event.h index b7cf2df3c4..0d8841412d 100644 --- a/include/d/event/d_event.h +++ b/include/d/event/d_event.h @@ -77,6 +77,7 @@ public: void setPtI_Id(unsigned int); void setPtD(void*); void setGtItm(u8); + void isOrderOK(); u16 chkFlag2(u16 flag) { return flag & mFlag2; } diff --git a/include/d/event/d_event_manager.h b/include/d/event/d_event_manager.h index 02f8e4233d..8adf1c142c 100644 --- a/include/d/event/d_event_manager.h +++ b/include/d/event/d_event_manager.h @@ -39,7 +39,7 @@ public: void Experts(); void getEventData(s16); dEvDtEvent_c* getEventData(s16, int); - void getEventIdx(char const*, u8, s32); + int getEventIdx(char const*, u8, s32); void getEventIdx(fopAc_ac_c*, u8); void getEventIdx(fopAc_ac_c*, char const*, u8); void isMapToolCamera(u8, s32); diff --git a/include/d/kankyo/d_kankyo.h b/include/d/kankyo/d_kankyo.h index 63208f2691..a54f18f9d7 100644 --- a/include/d/kankyo/d_kankyo.h +++ b/include/d/kankyo/d_kankyo.h @@ -63,4 +63,6 @@ private: STATIC_ASSERT(sizeof(dKy_tevstr_c) == 0x388); +BOOL dKy_darkworld_stage_check(char const*, int); + #endif /* D_KANKYO_D_KANKYO_H */ diff --git a/include/d/meter/d_meter2_info.h b/include/d/meter/d_meter2_info.h index 61ba0bd8a9..c058da0d98 100644 --- a/include/d/meter/d_meter2_info.h +++ b/include/d/meter/d_meter2_info.h @@ -9,10 +9,6 @@ #include "f_op/f_op_actor.h" //#include "JSystem/JUtility/JUTFont.h" -struct dSv_event_flag_c { - static u8 saveBitLabels[1644 + 4 /* padding */]; -}; - struct dMsgObject_c { /* 802384C4 */ void setLetterNameID(u16); /* 802379AC */ void setKillMessageFlag(); @@ -115,6 +111,7 @@ public: dMeterMap_c* getMeterMapClass() { return mMeterMap; } dMw_c* getMenuWindowClass() { return mMenuWindowClass; } void offUseButton(int pButton) { mUseButton &= ~(u16)pButton; } + u16 getOilGaugeBackUp() { return mOilGaugeBackUp; } private: /* 0x04 */ u8 unk4[4]; @@ -201,6 +198,8 @@ private: extern dMeter2Info_c g_meter2_info; +void dMeter2Info_setSword(u8, bool); + inline void dMeter2Info_Initialize() { g_meter2_info.init(); } @@ -217,4 +216,20 @@ inline void dMeter2Info_setWindowStatus(u8 status) { g_meter2_info.setWindowStatus(status); } +inline void dMeter2Info_getString(u32 param_0, char* param_1, JMSMesgEntry_c* param_2) { + g_meter2_info.getString(param_0, param_1, param_2); +} + +inline void dMeter2Info_setHotSpringTimer(u8 time) { + g_meter2_info.setHotSpringTimer(time); +} + +inline u16 dMeter2Info_getOilGaugeBackUp() { + return g_meter2_info.getOilGaugeBackUp(); +} + +inline void dMeter2Info_setSaveStageName(const char* name) { + g_meter2_info.setSaveStageName(name); +} + #endif /* D_METER_D_METER2_INFO_H */ diff --git a/include/d/save/d_save.h b/include/d/save/d_save.h index 7a690fdcd7..e6cfc1e681 100644 --- a/include/d/save/d_save.h +++ b/include/d/save/d_save.h @@ -3,6 +3,7 @@ #include "SSystem/SComponent/c_xyz.h" #include "dolphin/types.h" +#include "msl_c/string.h" #define DEFAULT_SELECT_ITEM_INDEX 0 #define MAX_SELECT_ITEM 4 @@ -15,6 +16,11 @@ #define BOTTLE_MAX 4 #define TBOX_MAX 64 #define DSV_MEMBIT_ENUM_MAX 8 +#define ITEM_MAX_DAN 128 +#define SWITCH_ZONE_MAX 0x20 +#define SWITCH_ONE_ZONE_MAX 0x10 +#define ITEM_ZONE_MAX 0x20 +#define ITEM_ONE_ZONE_MAX 0x10 enum Wallets { WALLET, BIG_WALLET, GIANT_WALLET }; @@ -306,9 +312,14 @@ enum ItemTable { enum CollectItem { COLLECT_CLOTHING, COLLECT_SWORD, COLLECT_SHIELD, COLLECT_SMELL, B_BUTTON_ITEM }; -enum Swords { ORDON_SWORD_FLAG, MASTER_SWORD_FLAG, WOODEN_SWORD_FLAG, LIGHT_SWORD_FLAG }; +enum Swords { + COLLECT_ORDON_SWORD, + COLLECT_MASTER_SWORD, + COLLECT_WOODEN_SWORD, + COLLECT_LIGHT_SWORD +}; -enum Shields { ORDON_SHIELD_FLAG, HYLIAN_SHIELD_FLAG, WOODEN_SHIELD_FLAG }; +enum Shields { COLLECT_WOODEN_SHIELD, COLLECT_ORDON_SHIELD, COLLECT_HYLIAN_SHIELD }; enum Armors { KOKIRI_CLOTHES_FLAG }; @@ -318,12 +329,12 @@ enum ItemMax { ARROW_MAX, NORMAL_BOMB_MAX, WATER_BOMB_MAX, POKE_BOMB_MAX = 6 }; class dSv_player_status_a_c { public: - void init(void); + void init(); void setSelectItemIndex(signed int, u8); u8 getSelectItemIndex(signed int) const; void setMixItemIndex(signed int, u8); u8 getMixItemIndex(signed int) const; - u16 getRupeeMax(void) const; + u16 getRupeeMax() const; int isMagicFlag(u8) const; u16& getMaxLife() { return mMaxLife; } @@ -331,7 +342,6 @@ public: u16& getRupee() { return mRupee; } u16& getOil() { return mOil; } u8 getSelectEquip(int item) const { return mSelectEquip[item]; } - void setWalletLV(u8 lv) { mWalletSize = lv; } void setOil(u16 oil) { mOil = oil; } void setMaxOil(u16 max) { mMaxOil = max; } void setWalletSize(u8 size) { mWalletSize = size; } @@ -361,141 +371,143 @@ private: /* 0x1D */ u8 unk29; /* 0x1E */ u8 mTransformStatus; /* 0x1F */ u8 unk31[3]; - /* 0x22 */ u8 padding[6]; -}; +}; // Size: 0x28 class dSv_player_status_b_c { public: - void init(void); + void init(); void onDarkClearLV(int); BOOL isDarkClearLV(int) const; void onTransformLV(int); BOOL isTransformLV(int) const; + void setDateIpl(s64 time) { mDateIpl = time; } + private: - u64 mDateIpl; - u8 mTransformLevelFlag; - u8 mDarkClearLevelFlag; - u8 unk10; - u8 unk11; - float mTime; - u16 mDate; - u8 unk18[3]; - u8 padding[3]; -}; + /* 0x00 */ s64 mDateIpl; + /* 0x08 */ u8 mTransformLevelFlag; + /* 0x09 */ u8 mDarkClearLevelFlag; + /* 0x0A */ u8 unk10; + /* 0x0B */ u8 unk11; + /* 0x0C */ float mTime; + /* 0x10 */ u16 mDate; + /* 0x12 */ u8 unk18[3]; +}; // Size: 0x18 class dSv_horse_place_c { public: - void init(void); + void init(); void set(const char*, const cXyz&, s16, s8); private: - cXyz mPosition; - u16 mXRotation; - char mCurrentStage[8]; - u8 mSpawnId; - u8 mRoomId; -}; + /* 0x00 */ cXyz mPos; + /* 0x0C */ u16 mAngleY; + /* 0x0E */ char mName[8]; + /* 0x16 */ u8 mSpawnId; + /* 0x17 */ u8 mRoomNo; +}; // Size: 0x18 class dSv_player_return_place_c { public: - void init(void); + void init(); void set(const char*, s8, u8); + u8 getRoomNo() { return mRoomNo; } + u8 getPlayerStatus() { return mPlayerStatus; } + char* getName() { return mName; } private: - char mCurrentStage[8]; - u8 mSpawnId; - u8 mRoomId; - u8 unk10; - u8 unk11; -}; + /* 0x00 */ char mName[8]; + /* 0x08 */ u8 mPlayerStatus; + /* 0x09 */ s8 mRoomNo; + /* 0x0A */ u8 unk10; + /* 0x0B */ u8 unk11; +}; // Size: 0xC class dSv_player_field_last_stay_info_c { public: - void init(void); + void init(); BOOL isRegionBit(int unk) const; void onRegionBit(int unk); void set(const char*, const cXyz&, s16, s8, u8); private: - cXyz mPos; - s16 mAngleY; - char mName[8]; - u8 mLastSpawnId; - u8 mRegionNo; - bool mFieldDataExistFlag; - u8 mRegion; - u8 unk26[2]; -}; + /* 0x00 */ cXyz mPos; + /* 0x0C */ s16 mAngleY; + /* 0x0E */ char mName[8]; + /* 0x16 */ u8 mLastSpawnId; + /* 0x17 */ u8 mRegionNo; + /* 0x18 */ bool mFieldDataExistFlag; + /* 0x19 */ u8 mRegion; + /* 0x1A */ u8 unk26[2]; +}; // Size: 0x1C class dSv_player_last_mark_info_c { public: - void init(void); + void init(); void setWarpItemData(const char*, const cXyz&, s16, s8, u8, u8); - const char* getName(void) { return mOoccooStage; } - cXyz getPos(void) { return mOoccooPosition; } - s16 getAngleY(void) { return mOoccooXRotation; } - s8 getRoomNo(void) { return mOoccooRoomId; } - char getWarpAcceptStage(void) { return mWarpAcceptStage; } + const char* getName() { return mName; } + cXyz getPos() { return mPos; } + s16 getAngleY() { return mAngleY; } + s8 getRoomNo() { return mRoomNo; } + char getWarpAcceptStage() { return mWarpAcceptStage; } private: - cXyz mOoccooPosition; - s16 mOoccooXRotation; - char mOoccooStage[8]; - u8 mOoccooSpawnId; - s8 mOoccooRoomId; - char mWarpAcceptStage; - u8 unk25[3]; -}; + /* 0x00 */ cXyz mPos; + /* 0x0C */ s16 mAngleY; + /* 0x0E */ char mName[8]; + /* 0x16 */ u8 mSpawnId; + /* 0x17 */ s8 mRoomNo; + /* 0x18 */ char mWarpAcceptStage; + /* 0x19 */ u8 unk25[3]; +}; // Size: 0x1C class dSv_player_item_c { public: - void init(void); + void init(); void setItem(int, u8); u8 getItem(int, bool) const; - void setLineUpItem(void); + void setLineUpItem(); u8 getLineUpItem(int) const; void setBottleItemIn(u8, u8); void setEmptyBottleItemIn(u8); - void setEmptyBottle(void); + void setEmptyBottle(); void setEmptyBottle(u8); void setEquipBottleItemIn(u8, u8); void setEquipBottleItemEmpty(u8); u8 checkBottle(u8); - int checkInsectBottle(void); - u8 checkEmptyBottle(void); + int checkInsectBottle(); + u8 checkEmptyBottle(); void setBombBagItemIn(u8, u8, bool); void setBombBagItemIn(u8, u8, u8, bool); void setEmptyBombBagItemIn(u8, bool); void setEmptyBombBagItemIn(u8, u8, bool); - void setEmptyBombBag(void); + void setEmptyBombBag(); void setEmptyBombBag(u8, u8); u8 checkBombBag(u8); void setWarashibeItem(u8); - void setRodTypeLevelUp(void); + void setRodTypeLevelUp(); void setBaitItem(u8); private: - u8 mItems[24]; - u8 mItemSlots[24]; -}; + /* 0x00 */ u8 mItems[24]; + /* 0x18 */ u8 mItemSlots[24]; +}; // Size: 0x30 class dSv_player_get_item_c { public: - void init(void); + void init(); void onFirstBit(u8); void offFirstBit(u8); int isFirstBit(u8) const; private: - u32 mPauseMenuBitFields[4]; - u8 padding[16]; -}; + /* 0x0 */ u32 mItemFlags[8]; +}; // Size: 0x20 class dSv_player_item_record_c { public: - void init(void); + void init(); void setBombNum(u8, u8); u8 getBombNum(u8) const; void setBottleNum(u8, u8); @@ -503,18 +515,20 @@ public: u8 getBottleNum(u8) const; void setArrowNum(u8 amount) { mArrowNum = amount; } + u8 getPachinkoNum() const { return mPachinkoNum; } + void setPachinkoNum(u8 num) { mPachinkoNum = num; } private: - u8 mArrowNum; - u8 mBombNum[3]; - u8 mBottleNum[4]; - u8 mPachinkoNum; - u8 unk5[3]; -}; + /* 0x0 */ u8 mArrowNum; + /* 0x1 */ u8 mBombNum[3]; + /* 0x4 */ u8 mBottleNum[4]; + /* 0x8 */ u8 mPachinkoNum; + /* 0x9 */ u8 unk5[3]; +}; // Size: 0xC class dSv_player_item_max_c { public: - void init(void); + void init(); void setBombNum(u8, u8); u8 getBombNum(u8) const; @@ -522,12 +536,12 @@ public: u8 getArrowNum() { return mItemMax[ARROW_MAX]; } private: - u8 mItemMax[8]; -}; + /* 0x0 */ u8 mItemMax[8]; +}; // Size: 0x8 class dSv_player_collect_c { public: - void init(void); + void init(); void setCollect(int, u8); BOOL isCollect(int, u8) const; void onCollectCrystal(u8); @@ -538,90 +552,91 @@ public: u8 getPohNum() { return mPohNum; } private: - u8 mItem[8]; - u8 unk8; - u8 mCrystal; - u8 mMirror; - u8 unk11; - u8 mPohNum; - u8 padding[3]; -}; + /* 0x0 */ u8 mItem[8]; + /* 0x8 */ u8 unk8; + /* 0x9 */ u8 mCrystal; + /* 0xA */ u8 mMirror; + /* 0xB */ u8 unk11; + /* 0xC */ u8 mPohNum; + /* 0xD */ u8 padding[3]; +}; // Size: 0x10 class dSv_player_wolf_c { public: - void init(void); + void init(); private: - u8 unk0[3]; - u8 unk3; -}; + /* 0x0 */ u8 unk0[3]; + /* 0x3 */ u8 unk3; +}; // Size: 0x4 class dSv_light_drop_c { public: - void init(void); + void init(); void setLightDropNum(u8, u8); u8 getLightDropNum(u8) const; void onLightDropGetFlag(u8); BOOL isLightDropGetFlag(u8) const; private: - u8 mLightDropNum[4]; - u8 mLightDropGetFlag; - u8 unk5[3]; -}; + /* 0x0 */ u8 mLightDropNum[4]; + /* 0x4 */ u8 mLightDropGetFlag; + /* 0x5 */ u8 unk5[3]; +}; // Size: 0x8 class dSv_letter_info_c { public: - void init(void); + void init(); void onLetterGetFlag(int); BOOL isLetterGetFlag(int) const; void onLetterReadFlag(int); int isLetterReadFlag(int) const; private: - u32 mLetterGetBitfields[2]; - u32 mLetterReadBitfields[2]; - u8 unk16[64]; -}; + /* 0x00 */ u32 mLetterGetFlags[2]; + /* 0x08 */ u32 mLetterReadFlags[2]; + /* 0x10 */ u8 mGetNumber[64]; +}; // Size: 0x50 class dSv_fishing_info_c { public: - void init(void); + void init(); void addFishCount(u8); private: - u16 mFishCount[16]; - u8 mMaxSize[16]; - u8 padding[4]; -}; + /* 0x00 */ u16 mFishCount[16]; + /* 0x20 */ u8 mMaxSize[16]; +}; // Size: 0x34 class dSv_player_info_c { public: - void init(void); + void init(); char* getLinkName() { return (char*)mPlayerName; } + void setPlayerName(const char* name) { strcpy((char*)mPlayerName, name); } + void setHorseName(const char* name) { strcpy((char*)mHorseName, name); } + void setTotalTime(s64 time) { mTotalTime = time; } private: - u32 unk0; - u32 unk4; - u64 mTotalTime; - u16 unk16; - u16 mDeathCount; - u8 mPlayerName[16]; - u8 unk36; - u8 mHorseName[16]; - u8 unk53; - u8 mClearCount; - u8 unk55[5]; - u8 padding[4]; -}; + /* 0x00 */ u32 unk0; + /* 0x04 */ u32 unk4; + /* 0x08 */ u64 mTotalTime; + /* 0x10 */ u16 unk16; + /* 0x12 */ u16 mDeathCount; + /* 0x14 */ u8 mPlayerName[16]; + /* 0x24 */ u8 unk36; + /* 0x25 */ u8 mHorseName[16]; + /* 0x35 */ u8 unk53; + /* 0x36 */ u8 mClearCount; + /* 0x37 */ u8 unk55[5]; +}; // Size: 0x40 class dSv_player_config_c { public: - void init(void); - u32 checkVibration(void) const; - u8 getSound(void); + void init(); + u32 checkVibration() const; + u8 getSound(); void setSound(u8); - u8 getVibration(void); + u8 getVibration(); void setVibration(u8); inline u8 getAttentionType(void) { return mAttentionType; } inline void setAttentionType(u8 i_mAttentionType) { mAttentionType = i_mAttentionType; } @@ -637,68 +652,69 @@ public: inline void setPointer(bool i_mPointer) { mPointer = i_mPointer; } private: - u8 unk0; - u8 mSoundMode; - u8 mAttentionType; // 0 : hold, 1 : switch - u8 mVibration; - u8 unk4; - u8 unk5; - u16 mCalibrateDist; // Wii pointer horizontal calibration. Default is 0x015E - u8 mCalValue; // Wii pointer vertical calibration. Default is 0x00 - bool mShortCut; // Wii icon shortcut enabled/disabled. - u8 mCameraControl; // 0 : normal, 1 : inverted - bool mPointer; // Wii pointer enabled/disabled. - u8 padding[4]; -}; + /* 0x0 */ u8 unk0; + /* 0x1 */ u8 mSoundMode; + /* 0x2 */ u8 mAttentionType; // Lock-On Type; 0 : hold, 1 : switch + /* 0x3 */ u8 mVibration; // Rumble status + /* 0x4 */ u8 unk4; + /* 0x5 */ u8 unk5; + /* 0x6 */ u16 mCalibrateDist; // Wii pointer horizontal calibration. Default is 0x015E + /* 0x8 */ u8 mCalValue; // Wii pointer vertical calibration. Default is 0x00 + /* 0x9 */ bool mShortCut; // Wii icon shortcut enabled/disabled. + /* 0xA */ u8 mCameraControl; // 0 : normal, 1 : inverted + /* 0xB */ bool mPointer; // Wii pointer enabled/disabled. +}; // Size: 0xC class dSv_player_c { public: - void init(void); + void init(); dSv_player_info_c& getPlayerInfo() { return mPlayerInfo; } - dSv_player_status_a_c& getPlayerStatusA() { return player_status_a; } - dSv_player_item_c& getPlayerItem() { return player_item; } - dSv_player_collect_c& getPlayerCollect() { return player_collect; } - dSv_player_item_record_c& getPlayerItemRecord() { return player_item_record; } - dSv_player_item_max_c& getPlayerItemMax() { return player_item_max; } - dSv_player_last_mark_info_c& getPlayerLastMarkInfo() { return player_last_mark; } - dSv_light_drop_c& getLightDrop() { return light_drop; } - dSv_player_get_item_c& getPlayerGetItem() { return player_get_item; } + dSv_player_status_a_c& getPlayerStatusA() { return mPlayerStatusA; } + dSv_player_status_b_c& getPlayerStatusB() { return mPlayerStatusB; } + dSv_player_item_c& getItem() { return mItem; } + dSv_player_collect_c& getCollect() { return mCollect; } + dSv_player_item_record_c& getItemRecord() { return mItemRecord; } + dSv_player_item_max_c& getItemMax() { return mItemMax; } + dSv_player_last_mark_info_c& getPlayerLastMarkInfo() { return mPlayerLastMarkInfo; } + dSv_player_return_place_c& getPlayerReturnPlace() { return mPlayerReturnPlace; } + dSv_light_drop_c& getLightDrop() { return mLightDrop; } + dSv_player_get_item_c& getGetItem() { return mGetItem; } + dSv_player_config_c& getConfig() { return mConfig; } private: - dSv_player_status_a_c player_status_a; - dSv_player_status_b_c player_status_b; - dSv_horse_place_c horse_place; - dSv_player_return_place_c player_return; - dSv_player_field_last_stay_info_c player_last_field; - dSv_player_last_mark_info_c player_last_mark; - dSv_player_item_c player_item; - dSv_player_get_item_c player_get_item; - dSv_player_item_record_c player_item_record; - dSv_player_item_max_c player_item_max; - dSv_player_collect_c player_collect; - dSv_player_wolf_c player_wolf; - dSv_light_drop_c light_drop; - dSv_letter_info_c letter_info; - dSv_fishing_info_c fishing_info; - dSv_player_info_c mPlayerInfo; - dSv_player_config_c player_config; -}; + /* 0x000 */ dSv_player_status_a_c mPlayerStatusA; + /* 0x028 */ dSv_player_status_b_c mPlayerStatusB; + /* 0x040 */ dSv_horse_place_c mHorsePlace; + /* 0x058 */ dSv_player_return_place_c mPlayerReturnPlace; + /* 0x064 */ dSv_player_field_last_stay_info_c mPlayerFieldLastStayInfo; + /* 0x080 */ dSv_player_last_mark_info_c mPlayerLastMarkInfo; + /* 0x09C */ dSv_player_item_c mItem; + /* 0x0CC */ dSv_player_get_item_c mGetItem; + /* 0x0EC */ dSv_player_item_record_c mItemRecord; + /* 0x0F8 */ dSv_player_item_max_c mItemMax; + /* 0x100 */ dSv_player_collect_c mCollect; + /* 0x110 */ dSv_player_wolf_c mWolf; + /* 0x114 */ dSv_light_drop_c mLightDrop; + /* 0x11C */ dSv_letter_info_c mLetterInfo; + /* 0x16C */ dSv_fishing_info_c mFishingInfo; + /* 0x1A0 */ dSv_player_info_c mPlayerInfo; + /* 0x1E0 */ dSv_player_config_c mConfig; +}; // Size: 0x1EC -#pragma pack(push, 1) class dSv_memBit_c { public: enum { - MAP_FLAG, - COMPASS_FLAG, - BOSS_KEY_FLAG, + MAP, + COMPASS, + BOSS_KEY, STAGE_BOSS_ENEMY, STAGE_LIFE, STAGE_BOSS_DEMO, - OOCCOO_NOTE_FLAG, + OOCCOO_NOTE, STAGE_BOSS_ENEMY_2 }; - void init(void); + void init(); void onTbox(int); void offTbox(int); BOOL isTbox(int) const; @@ -709,28 +725,34 @@ public: void onItem(int); BOOL isItem(int) const; void onDungeonItem(int); - bool isDungeonItem(int) const; + s32 isDungeonItem(int) const; u8 getKeyNum() { return mKeyNum; } - void onDungeonItemMap() { onDungeonItem(MAP_FLAG); } - bool isDungeonItemMap() const { return isDungeonItem(MAP_FLAG); } - void onDungeonItemCompass() { onDungeonItem(COMPASS_FLAG); } - void onDungeonItemWarp() { onDungeonItem(OOCCOO_NOTE_FLAG); } - void onDungeonItemBossKey() { onDungeonItem(BOSS_KEY_FLAG); } - bool isDungeonItemBossKey() const { return isDungeonItem(BOSS_KEY_FLAG); } + void setKeyNum(u8 keyNum) { mKeyNum = keyNum; } + void onDungeonItemMap() { onDungeonItem(MAP); } + s32 isDungeonItemMap() const { return isDungeonItem(MAP); } + void onDungeonItemCompass() { onDungeonItem(COMPASS); } + void onDungeonItemWarp() { onDungeonItem(OOCCOO_NOTE); } + void onDungeonItemBossKey() { onDungeonItem(BOSS_KEY); } + s32 isDungeonItemBossKey() const { return isDungeonItem(BOSS_KEY); } + void onStageBossEnemy() { + onDungeonItem(STAGE_BOSS_ENEMY); + onDungeonItem(OOCCOO_NOTE); + } + s32 isDungeonItemWarp() const { return isDungeonItem(OOCCOO_NOTE); } + void onStageLife() { onDungeonItem(STAGE_LIFE); } private: /* 0x00 */ u32 mTbox[2]; /* 0x08 */ u32 mSwitch[4]; - /* 0x18 */ u32 mItem[1]; // not sure if this is right + /* 0x18 */ u32 mItem[1]; /* 0x1C */ u8 mKeyNum; /* 0x1D */ u8 mDungeonItem; -}; -#pragma pack(pop) +}; // Size: 0x20 class dSv_event_c { public: - void init(void); + void init(); void onEventBit(u16); void offEventBit(u16); int isEventBit(u16) const; @@ -738,48 +760,47 @@ public: u8 getEventReg(u16) const; private: - u8 mEvent[256]; -}; + /* 0x0 */ u8 mEvent[256]; +}; // Size: 0x100 class dSv_MiniGame_c { public: - void init(void); + void init(); private: - u8 unk0; - u8 unk1[3]; - u32 unk4; - u32 mBalloonScore; - u32 mRaceGameTime; - u32 unk16; - u32 unk20; -}; + /* 0x00 */ u8 unk0; + /* 0x01 */ u8 unk1[3]; + /* 0x04 */ u32 mStarTime; + /* 0x08 */ u32 mBalloonScore; + /* 0x0C */ u32 mRaceGameTime; + /* 0x10 */ u32 unk16; + /* 0x14 */ u32 unk20; +}; // Size: 0x18 class dSv_memory_c { public: - dSv_memory_c(void) { this->init(); } - void init(void); - dSv_memBit_c& getMemBit() { return mMemBit; } - const dSv_memBit_c& getMemBitConst() const { return mMemBit; } + dSv_memory_c() { this->init(); } + void init(); + dSv_memBit_c& getBit() { return mBit; } + const dSv_memBit_c& getBit() const { return mBit; } private: - dSv_memBit_c mMemBit; - u8 padding30[2]; -}; + /* 0x0 */ dSv_memBit_c mBit; +}; // Size: 0x20 STATIC_ASSERT(sizeof(dSv_memory_c) == 0x20); class dSv_memory2_c { public: - dSv_memory2_c(void) { this->init(); } - void init(void); + dSv_memory2_c() { this->init(); } + void init(); void onVisitedRoom(int); void offVisitedRoom(int); BOOL isVisitedRoom(int); private: - u32 mVisitedRoom[2]; -}; + /* 0x0 */ u32 mVisitedRoom[2]; +}; // Size: 0x8 STATIC_ASSERT(sizeof(dSv_memory2_c) == 8); @@ -794,19 +815,19 @@ public: BOOL isItem(int) const; private: - s8 mStageNo; - u8 unk1; - u8 unk2[2]; - u32 mSwitch[2]; - u32 mItem[4]; - s16 unk28[16]; -}; + /* 0x00 */ s8 mStageNo; + /* 0x01 */ u8 unk1; + /* 0x02 */ u8 unk2[2]; + /* 0x04 */ u32 mSwitch[2]; + /* 0x0C */ u32 mItem[4]; + /* 0x1C */ s16 unk28[16]; +}; // Size: 0x3C class dSv_zoneBit_c { public: - void init(void); - void clearRoomSwitch(void); - void clearRoomItem(void); + void init(); + void clearRoomSwitch(); + void clearRoomItem(); void onSwitch(int); void offSwitch(int); BOOL isSwitch(int) const; @@ -821,16 +842,16 @@ public: BOOL isOneItem(int) const; private: - u16 mSwitch[2]; - u16 mRoomSwitch; - u16 mItem[2]; - u16 mRoomItem; - u16 unk12; -}; + /* 0x00 */ u16 mSwitch[2]; + /* 0x04 */ u16 mRoomSwitch; + /* 0x06 */ u16 mItem[2]; + /* 0x0A */ u16 mRoomItem; + /* 0x0C */ u16 unk12; +}; // Size: 0xE class dSv_zoneActor_c { public: - void init(void); + void init(); void on(int); void off(int); BOOL is(int) const; @@ -838,26 +859,26 @@ public: static const int ACTOR_MAX = 0xFFFF; private: - u32 actor_bitfield[4]; -}; + /* 0x00 */ u32 mActorFlags[4]; +}; // Size: 0x10 class dSv_zone_c { public: dSv_zone_c(void) { mRoomNo = -1; } // the assembly for this is in d_com_inf_game.s void init(int); dSv_zoneBit_c& getZoneBit() { return mBit; } - const dSv_zoneBit_c& getZoneBitConst() const { return mBit; } - dSv_zoneActor_c& getZoneActor() { return mActor; } - const dSv_zoneActor_c& getZoneActorConst() const { return mActor; } + const dSv_zoneBit_c& getBit() const { return mBit; } + dSv_zoneActor_c& getActor() { return mActor; } + const dSv_zoneActor_c& getActor() const { return mActor; } s8& getRoomNo() { return mRoomNo; } private: - s8 mRoomNo; - u8 unk1; - dSv_zoneBit_c mBit; - dSv_zoneActor_c mActor; -}; + /* 0x00 */ s8 mRoomNo; + /* 0x01 */ u8 unk1; + /* 0x02 */ dSv_zoneBit_c mBit; + /* 0x10 */ dSv_zoneActor_c mActor; +}; // Size: 0x20 STATIC_ASSERT(sizeof(dSv_zone_c) == 0x20); @@ -875,15 +896,15 @@ private: /* 0x18 */ f32 mLastSpeedF; /* 0x1C */ u32 mLastMode; /* 0x20 */ s16 mLastAngleY; -}; +}; // Size: 0x24 class dSv_turnRestart_c { public: class dSv_turnRestart_camera_c { - cXyz mCameraCtr; - cXyz mCameraEye; - cXyz mCameraUp; - }; + /* 0x00 */ cXyz mCameraCtr; + /* 0x0C */ cXyz mCameraEye; + /* 0x18 */ cXyz mCameraUp; + }; // Size: 0x24 void set(const cXyz&, s16, s8, u32); @@ -894,7 +915,7 @@ private: /* 0x12 */ s8 unk18; /* 0x14 */ dSv_turnRestart_camera_c mCamera; /* 0x38 */ f32 mCameraFvy; -}; +}; // Size: 0x3C class dSv_reserve_c { public: @@ -904,39 +925,32 @@ private: class dSv_save_c { public: - void init(void); + void init(); dSv_memory2_c* getSave2(int); + dSv_player_c& getPlayer() { return mPlayer; } - dSv_player_status_a_c& getPlayerStatusA() { return mPlayer.getPlayerStatusA(); } - dSv_player_get_item_c& getPlayerGetItem() { return mPlayer.getPlayerGetItem(); } - dSv_player_item_record_c& getPlayerItemRecord() { return mPlayer.getPlayerItemRecord(); } - dSv_player_item_max_c& getPlayerItemMax() { return mPlayer.getPlayerItemMax(); } - dSv_player_last_mark_info_c& getPlayerLastMarkInfo() { return mPlayer.getPlayerLastMarkInfo(); } - dSv_player_item_c& getPlayerItem() { return mPlayer.getPlayerItem(); } - dSv_player_collect_c& getPlayerCollect() { return mPlayer.getPlayerCollect(); } - dSv_light_drop_c& getLightDrop() { return mPlayer.getLightDrop(); } dSv_event_c& getEvent() { return mEvent; } + dSv_memory_c& getSave(int i_stageNo) { return mSave[i_stageNo]; } + void putSave(int i_stageNo, dSv_memory_c mem) { mSave[i_stageNo] = mem; } static const int STAGE_MAX = 32; static const int STAGE2_MAX = 64; // private: - dSv_player_c mPlayer; - dSv_memory_c mSave[STAGE_MAX]; - dSv_memory2_c mSave2[STAGE2_MAX]; - dSv_event_c mEvent; - dSv_reserve_c reserve; - dSv_MiniGame_c mMiniGame; -}; -#pragma pack(push, 1) + /* 0x000 */ dSv_player_c mPlayer; + /* 0x1F0 */ dSv_memory_c mSave[STAGE_MAX]; + /* 0x5F0 */ dSv_memory2_c mSave2[STAGE2_MAX]; + /* 0x7F0 */ dSv_event_c mEvent; + /* 0x8F0 */ dSv_reserve_c reserve; + /* 0x940 */ dSv_MiniGame_c mMiniGame; +}; // Size: 0x958 + class dSv_info_c { public: - dSv_info_c() {} - ~dSv_info_c() {} - void init(void); + void init(); void getSave(int); void putSave(int); - void initZone(void); + void initZone(); u32 createZone(int); void onSwitch(int, int); void offSwitch(int, int); @@ -947,8 +961,8 @@ public: void onActor(int, int); void offActor(int, int); BOOL isActor(int, int) const; - void memory_to_card(char*, int); - void card_to_memory(char*, int); + int memory_to_card(char*, int); + int card_to_memory(char*, int); void initdata_to_card(char*, int); dSv_save_c& getSavedata() { return mSavedata; } @@ -956,6 +970,9 @@ public: dSv_zone_c* getZones() { return mZone; } dSv_player_c& getPlayer() { return mSavedata.getPlayer(); } dSv_event_c& getTmp() { return mTmp; } + s64 getStartTime() { return mStartTime; } + s64 getSaveTotalTime() { return mSaveTotalTime; } + void initDan(s8 param_0) { mDan.init(param_0); } private: /* 0x000 */ dSv_save_c mSavedata; @@ -970,9 +987,18 @@ private: /* 0xF19 */ u8 mNewFile; /* 0xF1A */ u8 mNoFile; /* 0xF1B */ u8 field_0xf1b[13]; - /* 0xF28 */ u64 mStartTime; - /* 0xF30 */ u64 mSaveTotalTime; + /* 0xF28 */ s64 mStartTime; + /* 0xF30 */ s64 mSaveTotalTime; +}; // Size: 0xF38 + +class dSv_event_flag_c { +public: + static u16 saveBitLabels[822]; +}; + +class dSv_event_tmp_flag_c { +public: + static u16 const tempBitLabels[185]; }; -#pragma pack(pop) #endif /* D_SAVE_D_SAVE_H */ diff --git a/include/dolphin/mtx/vec.h b/include/dolphin/mtx/vec.h index 05af4f6838..174f84ad9c 100644 --- a/include/dolphin/mtx/vec.h +++ b/include/dolphin/mtx/vec.h @@ -16,6 +16,11 @@ struct Vec { y = pY; z = pZ; } + void set(const Vec& other) { + x = other.x; + y = other.y; + z = other.z; + } }; extern "C" { diff --git a/include/f_op/f_op_actor.h b/include/f_op/f_op_actor.h index 903c6e0384..ac32c1408f 100644 --- a/include/f_op/f_op_actor.h +++ b/include/f_op/f_op_actor.h @@ -107,7 +107,7 @@ public: /* 0x534 */ f32 mMaxFallSpeed; /* 0x538 */ cXyz mEyePos; /* 0x544 */ actor_attention_types mAttentionInfo; - /* 0x560 */ u8 field_0x560[0x10]; // not 100% sure on this + /* 0x560 */ u8 field_0x560[0x8]; // not 100% sure on this fopAc_ac_c(); ~fopAc_ac_c(); @@ -116,6 +116,6 @@ public: const cXyz& getPosition() const { return mCurrent.mPosition; } const csXyz& getAngle() const { return mCurrent.mAngle; } -}; // Size: 0x570? +}; // Size: 0x568 #endif diff --git a/include/msl_c/string.h b/include/msl_c/string.h index f39ec80e07..6f66cb20a0 100644 --- a/include/msl_c/string.h +++ b/include/msl_c/string.h @@ -15,6 +15,8 @@ char* strncpy(char* dest, const char* source, u32 n); char* strcpy(char* dest, const char* source); u32 strlen(const char* s); int tolower(int); +int sprintf(char*, const char*, ...); +int printf(const char*, ...); } #endif
\ No newline at end of file |
