diff options
| author | LagoLunatic <LagoLunatic@users.noreply.github.com> | 2023-10-17 03:03:37 -0400 |
|---|---|---|
| committer | LagoLunatic <LagoLunatic@users.noreply.github.com> | 2023-10-17 03:03:37 -0400 |
| commit | 853a80f2bcea26fda16cedaba0f2cf9056612a34 (patch) | |
| tree | d880f6b860f4fa0d67485b9459f3b641e8712b61 /include | |
| parent | 7a182dda663003ec614ff96aaf4401a44ed5a9c1 (diff) | |
d_item OK
Diffstat (limited to 'include')
| -rw-r--r-- | include/d/d_com_inf_game.h | 216 | ||||
| -rw-r--r-- | include/d/d_item.h | 8 | ||||
| -rw-r--r-- | include/d/d_save.h | 22 |
3 files changed, 221 insertions, 25 deletions
diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h index a3ccbfdb..acc92651 100644 --- a/include/d/d_com_inf_game.h +++ b/include/d/d_com_inf_game.h @@ -362,6 +362,8 @@ public: s16 getItemMagicCount() { return mItemMagicCount; } void setItemMagicCount(s16 magic) { mItemMagicCount += magic; } + s16 getItemMaxMagicCount() { return mItemMaxMagicCount; } + void setItemMaxMagicCount(s16 magic) { mItemMaxMagicCount += magic; } void setItemBombNumCount(s16 num) { mItemBombNumCount += num; } @@ -376,6 +378,8 @@ public: void setItemKeyNumCount(s16 num) { mItemKeyNumCount += num; } + void setItemBeastNumCount(int i_idx, s16 num) { mItemBeastNumCounts[i_idx] += num; } + u8 checkMesgCancelButton() { return field_0x4949; } void setPlayerStatus(int param_0, int i, u32 flag) { mPlayerStatus[param_0][i] |= flag; } @@ -383,6 +387,7 @@ public: bool checkPlayerStatus(int param_0, int i, u32 flag) { return flag & mPlayerStatus[param_0][i]; } u8 getSelectItem(int idx) { return mEquippedItems[idx]; } + void setSelectItem(int idx, u8 itemNo) { mEquippedItems[idx] = itemNo; } void setAStatus(u8 status) { mCurrButtonBAction = status; } void setDoStatus(u8 status) { mCurrButtonAAction = status; } @@ -514,14 +519,13 @@ public: /* 0x48D6 */ s16 mItemMaxLifeCount; /* 0x48D8 */ s16 mItemMagicCount; /* 0x48DA */ s16 field_0x48da; - /* 0x48DC */ s16 field_0x48dc; + /* 0x48DC */ s16 mItemMaxMagicCount; /* 0x48DE */ s16 field_0x48de; /* 0x48E0 */ s16 mItemArrowNumCount; /* 0x48E2 */ s16 field_0x48e2; /* 0x48E4 */ s16 mItemBombNumCount; /* 0x48E6 */ s16 field_0x48e6; - /* 0x48E8 */ u8 field_0x48E8[0x48F6 - 0x48E8]; - /* 0x48F6 */ s16 mItemPendantNumCount; + /* 0x48E8 */ s16 mItemBeastNumCounts[8]; /* 0x48F8 */ u8 field_0x48F8[0x4918 - 0x48F8]; /* 0x4918 */ u16 mMsgCountNumber; /* 0x491A */ s16 field_0x491a; @@ -674,12 +678,49 @@ inline u8 dComIfGs_getWalletSize() { return g_dComIfG_gameInfo.save.getPlayer().getPlayerStatusA().getWalletSize(); } +inline void dComIfGs_setWalletSize(u8 size) { + g_dComIfG_gameInfo.save.getPlayer().getPlayerStatusA().setWalletSize(size); +} + inline int dComIfGs_getRupee() { return g_dComIfG_gameInfo.save.getPlayer().getPlayerStatusA().getRupee(); } -inline u8 dComIfGs_getItem(int param_0) { - return g_dComIfG_gameInfo.save.getPlayer().getItem().getItem(param_0); +inline u8 dComIfGs_getItemBeast(int param_0) { + return g_dComIfG_gameInfo.save.getPlayer().getBagItem().getBeast(param_0); +} + +inline u8 dComIfGs_getItemBait(int param_0) { + return g_dComIfG_gameInfo.save.getPlayer().getBagItem().getBait(param_0); +} + +inline u8 dComIfGs_getItemReserve(int param_0) { + return g_dComIfG_gameInfo.save.getPlayer().getBagItem().getReserve(param_0); +} + +/** + * Returns which item is in a specific inventory slot. + * @param i_invIdx The index of the inventory slot. + * @return The item number of the item in that slot, or 0xFF for no item. + */ +inline u8 dComIfGs_getItem(int i_invIdx) { + if (i_invIdx < 0x15) { + return g_dComIfG_gameInfo.save.getPlayer().getItem().getItem(i_invIdx); + } else if (i_invIdx < 0x18) { + return 0xFF; + } else if (i_invIdx < 0x18 + 8) { + return dComIfGs_getItemBeast(i_invIdx - 0x18); + } else if (i_invIdx < 0x24) { + return 0xFF; + } else if (i_invIdx < 0x24 + 8) { + return dComIfGs_getItemBait(i_invIdx - 0x24); + } else if (i_invIdx < 0x30) { + return 0xFF; + } else if (i_invIdx < 0x30 + 8) { + return dComIfGs_getItemReserve(i_invIdx - 0x30); + } else { + return 0xFF; + } } inline void dComIfGs_setItem(int i_idx, u8 i_itemNo) { @@ -690,10 +731,18 @@ inline u8 dComIfGs_getBeast(int i_idx) { return g_dComIfG_gameInfo.save.getPlayer().getBagItem().getBeast(i_idx); } +inline void dComIfGs_setBeastItem(u8 i_itemNo) { + g_dComIfG_gameInfo.save.getPlayer().getBagItem().setBeastItem(i_itemNo); +} + inline u8 dComIfGs_getBait(int i_idx) { return g_dComIfG_gameInfo.save.getPlayer().getBagItem().getBait(i_idx); } +inline void dComIfGs_setBaitItem(u8 i_itemNo) { + g_dComIfG_gameInfo.save.getPlayer().getBagItem().setBaitItem(i_itemNo); +} + inline void dComIfGs_setBaitItemEmpty() { g_dComIfG_gameInfo.save.getPlayer().getBagItem().setBaitItemEmpty(); } @@ -702,30 +751,66 @@ inline u8 dComIfGs_getReserve(int i_idx) { return g_dComIfG_gameInfo.save.getPlayer().getBagItem().getReserve(i_idx); } -inline BOOL dComIfGs_isGetItemReserve(int i_No) { - return g_dComIfG_gameInfo.save.getPlayer().getGetBagItem().isReserve(i_No); +inline void dComIfGs_setReserveItem(u8 i_itemNo) { + g_dComIfG_gameInfo.save.getPlayer().getBagItem().setReserveItem(i_itemNo); +} + +inline BOOL dComIfGs_isGetItemReserve(int i_no) { + return g_dComIfG_gameInfo.save.getPlayer().getGetBagItem().isReserve(i_no); +} + +inline void dComIfGs_onGetItemReserve(int i_no) { + g_dComIfG_gameInfo.save.getPlayer().getGetBagItem().onReserve(i_no); } -inline BOOL dComIfGs_isGetCollectMap(int i_itemNo) { - return g_dComIfG_gameInfo.save.getPlayer().getMap().isGetMap(i_itemNo - 1); +inline BOOL dComIfGs_isGetCollectMap(int i_no) { + return g_dComIfG_gameInfo.save.getPlayer().getMap().isGetMap(i_no - 1); } -inline BOOL dComIfGs_isCollectMapTriforce(int i_itemNo) { - return g_dComIfG_gameInfo.save.getPlayer().getMap().isTriforce(i_itemNo - 1); +inline void dComIfGs_onGetCollectMap(int i_no) { + g_dComIfG_gameInfo.save.getPlayer().getMap().onGetMap(i_no - 1); } -inline BOOL dComIfGs_isOpenCollectMap(int i_itemNo) { - return g_dComIfG_gameInfo.save.getPlayer().getMap().isOpenMap(i_itemNo - 1); +inline BOOL dComIfGs_isCollectMapTriforce(int i_no) { + return g_dComIfG_gameInfo.save.getPlayer().getMap().isTriforce(i_no - 1); +} + +inline void dComIfGs_offCollectMapTriforce(int i_no) { + g_dComIfG_gameInfo.save.getPlayer().getMap().offTriforce(i_no - 1); +} + +inline BOOL dComIfGs_isOpenCollectMap(int i_no) { + return g_dComIfG_gameInfo.save.getPlayer().getMap().isOpenMap(i_no - 1); +} + +inline void dComIfGs_onOpenCollectMap(int i_no) { + g_dComIfG_gameInfo.save.getPlayer().getMap().onOpenMap(i_no - 1); +} + +inline void dComIfGs_offOpenCollectMap(int i_no) { + g_dComIfG_gameInfo.save.getPlayer().getMap().offOpenMap(i_no - 1); +} + +inline void dComIfGs_offCompleteCollectMap(int i_no) { + g_dComIfG_gameInfo.save.getPlayer().getMap().offCompleteMap(i_no - 1); } inline u32 dComIfGs_getArrowNum() { return g_dComIfG_gameInfo.save.getPlayer().getItemRecord().getArrowNum(); } +inline void dComIfGs_setArrowNum(u8 num) { + g_dComIfG_gameInfo.save.getPlayer().getItemRecord().setArrowNum(num); +} + inline u32 dComIfGs_getBombNum() { return g_dComIfG_gameInfo.save.getPlayer().getItemRecord().getBombNum(); } +inline void dComIfGs_setBombNum(u8 num) { + g_dComIfG_gameInfo.save.getPlayer().getItemRecord().setBombNum(num); +} + inline u8 dComIfGs_getBeastNum(int i_idx) { return g_dComIfG_gameInfo.save.getPlayer().getBagItemRecord().getBeastNum(i_idx); } @@ -917,26 +1002,50 @@ inline BOOL dComIfGs_isTact(u8 i_no) { return g_dComIfG_gameInfo.save.getPlayer().getCollect().isTact(i_no); } +inline void dComIfGs_onTact(u8 i_no) { + g_dComIfG_gameInfo.save.getPlayer().getCollect().onTact(i_no); +} + inline BOOL dComIfGs_isTriforce(u8 i_no) { return g_dComIfG_gameInfo.save.getPlayer().getCollect().isTriforce(i_no); } +inline void dComIfGs_onTriforce(u8 i_no) { + g_dComIfG_gameInfo.save.getPlayer().getCollect().onTriforce(i_no); +} + inline BOOL dComIfGs_isSymbol(u8 i_no) { return g_dComIfG_gameInfo.save.getPlayer().getCollect().isSymbol(i_no); } +inline void dComIfGs_onSymbol(u8 i_no) { + g_dComIfG_gameInfo.save.getPlayer().getCollect().onSymbol(i_no); +} + inline BOOL dComIfGs_isDungeonItemMap() { return g_dComIfG_gameInfo.save.getMemory().getBit().isDungeonItemMap(); } +inline void dComIfGs_onDungeonItemMap() { + g_dComIfG_gameInfo.save.getMemory().getBit().onDungeonItemMap(); +} + inline BOOL dComIfGs_isDungeonItemCompass() { return g_dComIfG_gameInfo.save.getMemory().getBit().isDungeonItemCompass(); } +inline void dComIfGs_onDungeonItemCompass() { + g_dComIfG_gameInfo.save.getMemory().getBit().onDungeonItemCompass(); +} + inline BOOL dComIfGs_isDungeonItemBossKey() { return g_dComIfG_gameInfo.save.getMemory().getBit().isDungeonItemBossKey(); } +inline void dComIfGs_onDungeonItemBossKey() { + g_dComIfG_gameInfo.save.getMemory().getBit().onDungeonItemBossKey(); +} + inline void dComIfGs_onSwitch(int i_no, int i_roomNo) { g_dComIfG_gameInfo.save.onSwitch(i_no, i_roomNo); } @@ -989,6 +1098,26 @@ inline BOOL dComIfGs_isActor(int i_no, int i_roomNo) { return g_dComIfG_gameInfo.save.isActor(i_no, i_roomNo); } +void dComIfGs_setSelectEquip(int i_type, u8 i_itemNo); + +/** + * Returns which inventory slot the item equipped on a specific button is located in. + * @param i_btnIdx The index of the button. 0 for X, 1 for Y, 2 for Z. + * @return The index of the inventory slot for the item equipped on that button, or 0xFF for no item. + */ +inline u8 dComIfGs_getSelectItem(int i_btnIdx) { + return g_dComIfG_gameInfo.save.getPlayer().getPlayerStatusA().getSelectItem(i_btnIdx); +} + +/** + * Sets which inventory slot the item equipped on a specific button is located in. + * @param i_btnIdx The index of the button. 0 for X, 1 for Y, 2 for Z. + * @param i_invIdx The index of the inventory slot, or 0xFF for no item. + */ +inline void dComIfGs_setSelectItem(int i_btnIdx, u8 i_invIdx) { + g_dComIfG_gameInfo.save.getPlayer().getPlayerStatusA().setSelectItem(i_btnIdx, i_invIdx); +} + inline u16 dComIfGs_getDate() { return g_dComIfG_gameInfo.save.getPlayer().getPlayerStatusB().getDate(); } @@ -1033,6 +1162,18 @@ inline BOOL dComIfGs_isGetBottleItem(u8 i_itemNo) { return g_dComIfG_gameInfo.save.getPlayer().getGetItem().isBottleItem(i_itemNo); } +inline void dComIfGs_onGetBottleItem(u8 i_itemNo) { + g_dComIfG_gameInfo.save.getPlayer().getGetItem().onBottleItem(i_itemNo); +} + +inline void dComIfGs_setEmptyBottle() { + g_dComIfG_gameInfo.save.getPlayer().getItem().setEmptyBottle(); +} + +inline void dComIfGs_setEmptyBottleItemIn(u8 i_itemNo) { + g_dComIfG_gameInfo.save.getPlayer().getItem().setEmptyBottleItemIn(i_itemNo); +} + inline s16 dComIfGs_getWindY() { return g_dComIfG_gameInfo.save.getPlayer().getPlayerStatusB().getWindY(); } @@ -1077,10 +1218,18 @@ inline u8 dComIfGs_getBombMax() { return g_dComIfG_gameInfo.save.getPlayer().getItemMax().getBombNum(); } +inline void dComIfGs_setBombMax(u8 num) { + g_dComIfG_gameInfo.save.getPlayer().getItemMax().setBombNum(num); +} + inline u8 dComIfGs_getArrowMax() { return g_dComIfG_gameInfo.save.getPlayer().getItemMax().getArrowNum(); } +inline void dComIfGs_setArrowMax(u8 num) { + g_dComIfG_gameInfo.save.getPlayer().getItemMax().setArrowNum(num); +} + inline u16 dComIfGs_getLife() { return g_dComIfG_gameInfo.save.getPlayer().getPlayerStatusA().getLife(); } @@ -1523,6 +1672,14 @@ inline void dComIfGp_setItemMagicCount(s16 magic) { g_dComIfG_gameInfo.play.setItemMagicCount(magic); } +inline s16 dComIfGp_getItemMaxMagicCount() { + return g_dComIfG_gameInfo.play.getItemMaxMagicCount(); +} + +inline void dComIfGp_setItemMaxMagicCount(s16 magic) { + g_dComIfG_gameInfo.play.setItemMaxMagicCount(magic); +} + inline void dComIfGp_setItemBombNumCount(s16 num) { g_dComIfG_gameInfo.play.setItemBombNumCount(num); } @@ -1535,6 +1692,10 @@ inline void dComIfGp_setItemArrowNumCount(s16 num) { return g_dComIfG_gameInfo.play.setItemArrowNumCount(num); } +inline void dComIfGp_setItemBeastNumCount(int i_idx, s16 num) { + g_dComIfG_gameInfo.play.setItemBeastNumCount(i_idx, num); +} + inline u8 dComIfGp_checkMesgCancelButton() { return g_dComIfG_gameInfo.play.checkMesgCancelButton(); } @@ -1547,8 +1708,33 @@ inline bool dComIfGp_checkPlayerStatus1(int param_0, u32 flag) { return g_dComIfG_gameInfo.play.checkPlayerStatus(param_0, 1, flag); } -inline u8 dComIfGp_getSelectItem(int idx) { - return g_dComIfG_gameInfo.play.getSelectItem(idx); +/** + * Returns which item is on a specific button. + * @param i_btnIdx The index of the button. 0 for X, 1 for Y, 2 for Z. + * @return The item number of the item in that slot, or 0xFF for no item. + */ +inline u8 dComIfGp_getSelectItem(int i_btnIdx) { + return g_dComIfG_gameInfo.play.getSelectItem(i_btnIdx); +} + +/** + * Updates which item is on a specific button to match which item is in the inventory slot correspond to that button. + * @param i_btnIdx The index of the button. 0 for X, 1 for Y, 2 for Z. + */ +inline void dComIfGp_setSelectItem(int i_btnIdx) { + if (dComIfGs_getSelectItem(i_btnIdx) != 0xFF) { + int invIdx = dComIfGs_getSelectItem(i_btnIdx); + u8 itemNo = dComIfGs_getItem(invIdx); + g_dComIfG_gameInfo.play.setSelectItem(i_btnIdx, itemNo); + + invIdx = dComIfGs_getSelectItem(i_btnIdx); + itemNo = dComIfGs_getItem(invIdx); + if (itemNo == 0xFF) { + dComIfGs_setSelectItem(i_btnIdx, 0xFF); + } + } else { + g_dComIfG_gameInfo.play.setSelectItem(i_btnIdx, 0xFF); + } } inline void dComIfGp_setCurrentGrafPort(J2DOrthoGraph* i_graf) { diff --git a/include/d/d_item.h b/include/d/d_item.h index 1ed8dc53..8eeceecf 100644 --- a/include/d/d_item.h +++ b/include/d/d_item.h @@ -391,9 +391,9 @@ BOOL isNonSavedEmono(u8 itemNo); BOOL isUseClothPacket(u8 itemNo); BOOL isTriforce(u8 itemNo); BOOL isHeart(u8 itemNo); -void getItemNoByLife(u8); -int check_itemno(int); -void getEmonoItemFromLifeBallTable(u16); -void getItemFromLifeBallTableWithoutEmono(u16); +u8 getItemNoByLife(u8); +u8 check_itemno(int); +int getEmonoItemFromLifeBallTable(u16); +int getItemFromLifeBallTableWithoutEmono(u16); #endif /* D_ITEM_H */
\ No newline at end of file diff --git a/include/d/d_save.h b/include/d/d_save.h index 3740e718..befab1da 100644 --- a/include/d/d_save.h +++ b/include/d/d_save.h @@ -8,9 +8,12 @@ class dSv_player_status_a_c { public: void init(); + u8 getSelectItem(int i_no) { return mSelectItem[i_no]; } + void setSelectItem(int i_no, u8 i_invIdx) { mSelectItem[i_no] = i_invIdx; } u8 getSelectEquip(int i_no) { return mSelectEquip[i_no]; } u8 getWalletSize() { return mWalletSize; } - int getRupee() const { return mRupee; } + void setWalletSize(u8 size) { mWalletSize = size; } + int getRupee() { return mRupee; } u8 getMagic() { return mMagic; } u8 getMaxMagic() { return mMaxMagic; } u16 getLife() { return mLife; } @@ -116,8 +119,12 @@ public: void decTimer(); u16 getTimer(); - u32 getArrowNum() const { return mArrowNum; } - u32 getBombNum() const { return mBombNum; } + u32 getArrowNum() { return mArrowNum; } + void setArrowNum(u8 num) { mArrowNum = num; } + u32 getBombNum() { return mBombNum; } + void setBombNum(u8 num) { mBombNum = num; } + // u32 getPictureNum() { return ?; } + // void setPictureNum(u8 num) { ? = num; } /* 0x0 */ u16 mTimer; /* 0x2 */ u8 field_0x2; @@ -133,7 +140,10 @@ public: void init(); u8 getArrowNum() const { return mArrowNum; } + void setArrowNum(u8 num) { mArrowNum = num; } u8 getBombNum() const { return mBombNum; } + void setBombNum(u8 num) { mBombNum = num; } + // void setReserved1Num(u8 num) { ? = num; } /* 0x0 */ u8 field_0x0; /* 0x1 */ u8 mArrowNum; @@ -164,9 +174,9 @@ public: bool checkReserveItemEmpty(); u8 checkReserveItem(u8); - u8 getBeast(int i_idx) const { return mBeast[i_idx]; } - u8 getBait(int i_idx) const { return mBait[i_idx]; } - u8 getReserve(int i_idx) const { return mReserve[i_idx]; } + u8 getBeast(int i_idx) { return mBeast[i_idx]; } + u8 getBait(int i_idx) { return mBait[i_idx]; } + u8 getReserve(int i_idx) { return mReserve[i_idx]; } /* 0x00 */ u8 mBeast[8]; /* 0x08 */ u8 mBait[8]; |
