document inventory slots

This commit is contained in:
Jasper St. Pierre
2024-12-27 01:23:55 -08:00
parent 2db35c0108
commit 929027bfc1
11 changed files with 431 additions and 396 deletions
+61 -23
View File
@@ -863,26 +863,64 @@ inline OSTime dComIfGs_getDateIpl() {
return g_dComIfG_gameInfo.save.getPlayer().getPlayerStatusB().getDateIpl();
}
// The inventory slot for items. Also known as "select item"
enum dInventorySlot_e {
dInvSlot_ItemFirst_e = 0,
dInvSlot_TELESCOPE_e = 0,
dInvSlot_SAIL_e = 1,
dInvSlot_WIND_WAKER_e = 2,
dInvSlot_GRAPPLING_HOOK_e = 3,
dInvSlot_EMONO_BAG_e = 4,
dInvSlot_BOOMERANG_e = 5,
dInvSlot_DEKU_LEAF_e = 6,
dInvSlot_TINGLE_TUNER_e = 7,
dInvSlot_CAMERA_e = 8,
dInvSlot_IRON_BOOTS_e = 9,
dInvSlot_MAGIC_ARMOR_e = 10,
dInvSlot_ESA_BAG_e = 11,
dInvSlot_BOW_e = 12,
dInvSlot_BOMB_e = 13,
dInvSlot_BOTTLE0_e = 14,
dInvSlot_BOTTLE1_e = 15,
dInvSlot_BOTTLE2_e = 16,
dInvSlot_BOTTLE3_e = 17,
dInvSlot_DELIVERY_BAG_e = 18,
dInvSlot_HOOKSHOT_e = 19,
dInvSlot_SKULL_HAMMER_e = 20,
dInvSlot_ItemLast_e = 21,
dInvSlot_BeastFirst_e = 24, // Spoils Bag
dInvSlot_BeastLast_e = 32,
dInvSlot_BaitFirst_e = 36, // Bait Bag
dInvSlot_BaitLast_e = 44,
dInvSlot_ReserveFirst_e = 48,
dInvSlot_ReserveLast_e = 56,
dInvSlot_NONE_e = 0xFF,
};
/**
* 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) {
if (i_invIdx < dInvSlot_ItemLast_e) {
return g_dComIfG_gameInfo.save.getPlayer().getItem().getItem(i_invIdx);
} else if (i_invIdx < 0x18) {
} else if (i_invIdx < dInvSlot_BeastFirst_e) {
return 0xFF;
} else if (i_invIdx < 0x18 + 8) {
return dComIfGs_getItemBeast(i_invIdx - 0x18);
} else if (i_invIdx < 0x24) {
} else if (i_invIdx < dInvSlot_BeastLast_e) {
return dComIfGs_getItemBeast(i_invIdx - dInvSlot_BeastFirst_e);
} else if (i_invIdx < dInvSlot_BaitFirst_e) {
return 0xFF;
} else if (i_invIdx < 0x24 + 8) {
return dComIfGs_getItemBait(i_invIdx - 0x24);
} else if (i_invIdx < 0x30) {
} else if (i_invIdx < dInvSlot_BaitLast_e) {
return dComIfGs_getItemBait(i_invIdx - dInvSlot_BaitFirst_e);
} else if (i_invIdx < dInvSlot_ReserveFirst_e) {
return 0xFF;
} else if (i_invIdx < 0x30 + 8) {
return dComIfGs_getItemReserve(i_invIdx - 0x30);
} else if (i_invIdx < dInvSlot_ReserveLast_e) {
return dComIfGs_getItemReserve(i_invIdx - dInvSlot_ReserveFirst_e);
} else {
return 0xFF;
}
@@ -894,20 +932,20 @@ inline u8 dComIfGs_getItem(int i_invIdx) {
* @param i_itemNo The item number of the item to place in that slot, or 0xFF for no item.
*/
inline void dComIfGs_setItem(int i_invIdx, u8 i_itemNo) {
if (i_invIdx < 0x15) {
if (i_invIdx < dInvSlot_ItemLast_e) {
g_dComIfG_gameInfo.save.getPlayer().getItem().setItem(i_invIdx, i_itemNo);
} else if (i_invIdx < 0x18) {
} else if (i_invIdx < dInvSlot_BeastFirst_e) {
return;
} else if (i_invIdx < 0x18 + 8) {
dComIfGs_setItemBeast(i_invIdx - 0x18, i_itemNo);
} else if (i_invIdx < 0x24) {
} else if (i_invIdx < dInvSlot_BeastLast_e) {
dComIfGs_setItemBeast(i_invIdx - dInvSlot_BeastFirst_e, i_itemNo);
} else if (i_invIdx < dInvSlot_BaitFirst_e) {
return;
} else if (i_invIdx < 0x24 + 8) {
dComIfGs_setItemBait(i_invIdx - 0x24, i_itemNo);
} else if (i_invIdx < 0x30) {
} else if (i_invIdx < dInvSlot_BaitLast_e) {
dComIfGs_setItemBait(i_invIdx - dInvSlot_BaitFirst_e, i_itemNo);
} else if (i_invIdx < dInvSlot_ReserveFirst_e) {
return;
} else if (i_invIdx < 0x30 + 8) {
dComIfGs_setItemReserve(i_invIdx - 0x30, i_itemNo);
} else if (i_invIdx < dInvSlot_ReserveLast_e) {
dComIfGs_setItemReserve(i_invIdx - dInvSlot_ReserveFirst_e, i_itemNo);
} else {
return;
}
@@ -2437,7 +2475,7 @@ inline u8 dComIfGp_getSelectItem(int i_btnIdx) {
* @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) {
if (dComIfGs_getSelectItem(i_btnIdx) != dInvSlot_NONE_e) {
int invIdx = dComIfGs_getSelectItem(i_btnIdx);
u8 itemNo = dComIfGs_getItem(invIdx);
g_dComIfG_gameInfo.play.setSelectItem(i_btnIdx, itemNo);
@@ -2445,10 +2483,10 @@ inline void dComIfGp_setSelectItem(int i_btnIdx) {
invIdx = dComIfGs_getSelectItem(i_btnIdx);
itemNo = dComIfGs_getItem(invIdx);
if (itemNo == 0xFF) {
dComIfGs_setSelectItem(i_btnIdx, 0xFF);
dComIfGs_setSelectItem(i_btnIdx, dInvSlot_NONE_e);
}
} else {
g_dComIfG_gameInfo.play.setSelectItem(i_btnIdx, 0xFF);
g_dComIfG_gameInfo.play.setSelectItem(i_btnIdx, dInvSlot_NONE_e);
}
}
+1 -2
View File
@@ -1003,8 +1003,7 @@ void daAgb_c::GbaItemUse() {
temp_r29 |= 0x10000;
}
if (dComIfGs_getItem(12) != dItem_NONE_e && dComIfGs_getArrowNum() < dComIfGs_getArrowMax())
{
if (dComIfGs_getItem(dInvSlot_BOW_e) != dItem_NONE_e && dComIfGs_getArrowNum() < dComIfGs_getArrowMax()) {
temp_r29 |= 0x100;
}
}
+133 -133
View File
@@ -1712,201 +1712,201 @@ BOOL daAgbsw0_c::MoveCheck(s16 conditionNo) {
switch(conditionNo) {
case 1:
if(dComIfGs_isEventBit(0xF80)) {
return 0;
return FALSE;
}
break;
case 2:
if(dComIfGs_isSymbol(0)) {
return 0;
return FALSE;
}
break;
case 3:
if(dComIfGs_isEventBit(0x1E40)) {
return 0;
return FALSE;
}
break;
case 4:
if(dComIfGs_isEventBit(0x1820)) {
return 0;
return FALSE;
}
break;
case 5: {
daGhostship_c* gship = (daGhostship_c*)fopAcM_searchFromName("Ayush", 0, 0);
if(gship && gship->checkInShip()) {
return 0;
return FALSE;
}
break;
}
case 6:
if(dComIfGs_isEventBit(0x1A10)) {
return 0;
return FALSE;
}
break;
case 7:
if(dComIfGs_isEventBit(0x1A08)) {
return 0;
return FALSE;
}
break;
case 8:
if(dComIfGs_isEventBit(0x1708)) {
return 0;
return FALSE;
}
break;
case 9:
if(dComIfGs_isStageTbox(dSv_save_c::STAGE_DRC, 0xF)) {
return 0;
return FALSE;
}
break;
case 0xA:
if(dComIfGs_isStageTbox(dSv_save_c::STAGE_FW, 0xF)) {
return 0;
return FALSE;
}
break;
case 0xB:
if(dComIfGs_isStageTbox(dSv_save_c::STAGE_TOTG, 0xF)) {
return 0;
return FALSE;
}
break;
case 0xC:
if(dComIfGs_isStageTbox(dSv_save_c::STAGE_WT, 0xF)) {
return 0;
return FALSE;
}
break;
case 0xD:
if(dComIfGs_isStageTbox(dSv_save_c::STAGE_ET, 0xF)) {
return 0;
return FALSE;
}
break;
case 0x11:
if(dComIfGp_getSelectItem(0) != dItem_BOW_e && dComIfGp_getSelectItem(1) != dItem_BOW_e && dComIfGp_getSelectItem(2) != dItem_BOW_e) {
return 0;
return FALSE;
}
break;
case 0x12:
if(dComIfGp_getSelectItem(0) != dItem_BOOMERANG_e && dComIfGp_getSelectItem(1) != dItem_BOOMERANG_e && dComIfGp_getSelectItem(2) != dItem_BOOMERANG_e) {
return 0;
return FALSE;
}
break;
case 0x13:
if(dComIfGp_getSelectItem(0) != dItem_DEKU_LEAF_e && dComIfGp_getSelectItem(1) != dItem_DEKU_LEAF_e && dComIfGp_getSelectItem(2) != dItem_DEKU_LEAF_e) {
return 0;
return FALSE;
}
break;
case 0x14:
if(dComIfGp_getSelectItem(0) != dItem_GRAPPLING_HOOK_e && dComIfGp_getSelectItem(1) != dItem_GRAPPLING_HOOK_e && dComIfGp_getSelectItem(2) != dItem_GRAPPLING_HOOK_e) {
return 0;
return FALSE;
}
break;
case 0x15:
if(dComIfGp_getSelectItem(0) != dItem_BOMB_BAG_e && dComIfGp_getSelectItem(1) != dItem_BOMB_BAG_e && dComIfGp_getSelectItem(2) != dItem_BOMB_BAG_e) {
return 0;
return FALSE;
}
break;
case 0x16:
if(dComIfGp_getSelectItem(0) != dItem_HOOKSHOT_e && dComIfGp_getSelectItem(1) != dItem_HOOKSHOT_e && dComIfGp_getSelectItem(2) != dItem_HOOKSHOT_e) {
return 0;
return FALSE;
}
break;
case 0x17:
if(dComIfGs_checkGetItem(dItem_MAGIC_ARMOR_e)) {
return 0;
return FALSE;
}
break;
case 0x18:
if(dComIfGs_isCollect(2, 0)) {
return 0;
return FALSE;
}
break;
case 0x19:
if(dComIfGs_getLife() < dComIfGs_getMaxLife()) {
return 0;
return FALSE;
}
break;
case 0x1A:
if(dComIfGs_getItem(12) != dItem_NONE_e && dComIfGs_getArrowNum() < dComIfGs_getArrowMax()) {
return 0;
if(dComIfGs_getItem(dInvSlot_BOW_e) != dItem_NONE_e && dComIfGs_getArrowNum() < dComIfGs_getArrowMax()) {
return FALSE;
}
break;
case 0x1B:
if(dComIfGs_checkGetItem(dItem_BOMB_BAG_e) && dComIfGs_getBombNum() < dComIfGs_getBombMax()) {
return 0;
return FALSE;
}
break;
case 0x1C:
if(dComIfGs_getLife() < 8) {
return 0;
return FALSE;
}
break;
case 0x1D:
if(dComIfGs_getMaxMagic() != 0 && !dComIfGs_getMagic) {
return 0;
return FALSE;
}
break;
case 0x1E:
if(dComIfGs_getItem(12) != dItem_NONE_e && dComIfGs_getArrowNum() == 0) {
return 0;
if(dComIfGs_getItem(dInvSlot_BOW_e) != dItem_NONE_e && dComIfGs_getArrowNum() == 0) {
return FALSE;
}
break;
case 0x1F:
if(dComIfGs_checkGetItem(dItem_BOMB_BAG_e) && dComIfGs_getBombNum() == 0) {
return 0;
return FALSE;
}
break;
case 0x20:
if(dComIfGs_isEventBit(0x1708) && dComIfGs_getItem(12) != dItem_NONE_e && dComIfGs_getArrowNum() == 0) {
return 0;
if(dComIfGs_isEventBit(0x1708) && dComIfGs_getItem(dInvSlot_BOW_e) != dItem_NONE_e && dComIfGs_getArrowNum() == 0) {
return FALSE;
}
break;
case 0x21:
if(dComIfGs_isEventBit(0x1708) && dComIfGs_checkGetItem(dItem_BOMB_BAG_e) && dComIfGs_getBombNum() == 0) {
return 0;
return FALSE;
}
break;
case 0x22:
if((u32)dComIfGs_getRupee() <= 10) {
return 0;
return FALSE;
}
break;
case 0x23:
if(dComIfGp_checkPlayerStatus0(0, daPyStts0_SWIM_e)) {
return 0;
return FALSE;
}
break;
case 0x24:
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
return 0;
return FALSE;
}
break;
@@ -1916,7 +1916,7 @@ BOOL daAgbsw0_c::MoveCheck(s16 conditionNo) {
dComIfGp_getSelectItem(1) != dItem_BOMB_BAG_e &&
dComIfGp_getSelectItem(2) != dItem_BOMB_BAG_e)
{
return 0;
return FALSE;
}
break;
@@ -1926,176 +1926,176 @@ BOOL daAgbsw0_c::MoveCheck(s16 conditionNo) {
dComIfGp_getSelectItem(1) != dItem_GRAPPLING_HOOK_e &&
dComIfGp_getSelectItem(2) != dItem_GRAPPLING_HOOK_e)
{
return 0;
return FALSE;
}
break;
case 0x27:
if(dComIfGs_getKeyNum() == 0) {
return 0;
return FALSE;
}
break;
case 0x28:
if(!dComIfGs_isDungeonItemBossKey()) {
return 0;
return FALSE;
}
break;
case 0x29:
if(dComIfGs_checkGetItem(dItem_GRAPPLING_HOOK_e)) {
return 0;
return FALSE;
}
break;
case 0x2A:
if(dComIfGs_checkGetItem(dItem_BOOMERANG_e)) {
return 0;
return FALSE;
}
break;
case 0x2B:
if(dComIfGs_checkGetItem(dItem_BOMB_BAG_e)) {
return 0;
return FALSE;
}
break;
case 0x2C:
if(dComIfGs_getItem(12) != dItem_NONE_e) {
return 0;
if(dComIfGs_getItem(dInvSlot_BOW_e) != dItem_NONE_e) {
return FALSE;
}
break;
case 0x2D:
if(!daPy_getPlayerLinkActorClass()->checkGrabWeapon(1)) {
return 0;
return FALSE;
}
break;
case 0x2E:
if(daPy_getPlayerLinkActorClass()->checkGrabWeapon(1)) {
return 0;
return FALSE;
}
break;
case 0x2F:
if(dComIfGs_isSymbol(1) && !dComIfGs_isEventBit(0x1A08)) {
return 0;
return FALSE;
}
break;
case 0x30:
if(dComIfGs_isSymbol(1) && !dComIfGs_isEventBit(0x1A10)) {
return 0;
return FALSE;
}
break;
case 0x31:
if(!dComIfGs_isEventBit(0x1708)) {
return 0;
return FALSE;
}
break;
case 0x32:
if(dComIfGs_isTact(0)) {
return 0;
return FALSE;
}
break;
case 0x33:
if(!dComIfGs_isTact(0)) {
return 0;
return FALSE;
}
break;
case 0x34:
if(!dKyw_get_windsdir()) {
return 0;
return FALSE;
}
break;
case 0x35:
if(dKyw_get_windsdir()) {
return 0;
return FALSE;
}
break;
case 0x36:
if(dKyw_get_windsdir() == 4) {
return 0;
return FALSE;
}
break;
case 0x37:
if(!dKyw_get_windsdir() == 4) {
return 0;
return FALSE;
}
break;
case 0x38:
if(dKyw_get_windsdir() == 2) {
return 0;
return FALSE;
}
break;
case 0x39:
if(!dKyw_get_windsdir() == 2) {
return 0;
return FALSE;
}
break;
case 0x3A:
if(dKyw_get_windsdir() == 6) {
return 0;
return FALSE;
}
break;
case 0x3B:
if(!dKyw_get_windsdir() == 6) {
return 0;
return FALSE;
}
break;
case 0x3C:
if(mFigureDispose == 1) {
return 0;
return FALSE;
}
break;
case 0x3D:
if(mFigureDispose == 2) {
return 0;
return FALSE;
}
break;
case 0x3E:
if(mFigureBeat == 1) {
return 0;
return FALSE;
}
break;
case 0x3F:
if(mFigureBeat == 2) {
return 0;
return FALSE;
}
break;
case 0x40:
if(mFigureBeat == 3) {
return 0;
return FALSE;
}
break;
case 0x41:
if(mFigureBeat == 4) {
return 0;
return FALSE;
}
break;
case 0x42:
for (int i = 0; i < 3; i++) {
if(daNpc_Os_c::isPlayerRoom(i)) {
return 0;
return FALSE;
}
}
@@ -2107,154 +2107,154 @@ BOOL daAgbsw0_c::MoveCheck(s16 conditionNo) {
}
}
return 0;
return FALSE;
case 0x44:
if(fopAcM_GetName(dComIfGp_getPlayer(0)) == PROC_NPC_OS) {
return 0;
return FALSE;
}
break;
case 0x45:
if(fopAcM_GetName(dComIfGp_getPlayer(0)) != PROC_NPC_OS) {
return 0;
return FALSE;
}
break;
case 0x46:
if(fopAcM_GetName(dComIfGp_getPlayer(0)) == PROC_NPC_MD) {
return 0;
return FALSE;
}
break;
case 0x47:
if(fopAcM_GetName(dComIfGp_getPlayer(0)) != PROC_NPC_MD) {
return 0;
return FALSE;
}
break;
case 0x48:
if(fopAcM_GetName(dComIfGp_getPlayer(0)) == PROC_NPC_CB1) {
return 0;
return FALSE;
}
break;
case 0x49:
if(fopAcM_GetName(dComIfGp_getPlayer(0)) != PROC_NPC_CB1) {
return 0;
return FALSE;
}
break;
case 0x4A:
if(fopAcM_GetName(dComIfGp_getPlayer(0)) == PROC_NPC_KAM) {
return 0;
return FALSE;
}
break;
case 0x4B:
if(fopAcM_GetName(dComIfGp_getPlayer(0)) != PROC_NPC_KAM) {
return 0;
return FALSE;
}
break;
case 0x4C:
if(dComIfGs_checkGetItem(dItem_SKULL_HAMMER_e)) {
return 0;
return FALSE;
}
break;
case 0x4D:
if(!dComIfGs_checkGetItem(dItem_SKULL_HAMMER_e)) {
return 0;
return FALSE;
}
break;
case 0x4E:
if(dComIfGs_checkGetItem(MIRROR_SHIELD)) {
return 0;
return FALSE;
}
break;
case 0x4F:
if(!dComIfGs_checkGetItem(MIRROR_SHIELD)) {
return 0;
return FALSE;
}
break;
case 0x50:
if(daNpc_Md_c::isPlayerRoom()) {
return 0;
return FALSE;
}
break;
case 0x51:
if(!daNpc_Md_c::isPlayerRoom()) {
return 0;
return FALSE;
}
break;
case 0x52:
if(dComIfGs_checkGetItem(dItem_HOOKSHOT_e)) {
return 0;
return FALSE;
}
break;
case 0x53:
if(!dComIfGs_checkGetItem(dItem_HOOKSHOT_e)) {
return 0;
return FALSE;
}
break;
case 0x54:
if(daNpc_Cb1_c::isPlayerRoom()) {
return 0;
return FALSE;
}
break;
case 0x55:
if(!daNpc_Cb1_c::isPlayerRoom()) {
return 0;
return FALSE;
}
break;
case 0x56:
if(!dComIfGs_isEventBit(0x2E08)) {
return 0;
return FALSE;
}
break;
case 0x57:
if(!dComIfGs_isCollect(2, 0)) {
return 0;
return FALSE;
}
break;
case 0x58:
if(!dComIfGs_checkGetItem(dItem_IRON_BOOTS_e)) {
return 0;
return FALSE;
}
break;
case 0x59:
if(dComIfGs_checkGetItem(LV3_SWORD) || dComIfGs_checkGetItem(MASTER_SWORD_EX)) {
return 0;
return FALSE;
}
break;
case 0x5A:
if(!dComIfGs_checkGetItem(LV3_SWORD) && !dComIfGs_checkGetItem(MASTER_SWORD_EX)) {
return 0;
return FALSE;
}
break;
case 0x5B:
if(dComIfGs_checkGetItem(MASTER_SWORD_EX)) {
return 0;
return FALSE;
}
break;
case 0x5C:
if(!dComIfGs_checkGetItem(MASTER_SWORD_EX)) {
return 0;
return FALSE;
}
break;
@@ -2262,7 +2262,7 @@ BOOL daAgbsw0_c::MoveCheck(s16 conditionNo) {
if((u32)dComIfGs_getRupee() >= 500) {
for (int i = 1; i < 9; i++) {
if(dComIfGs_isGetCollectMap(i) && !dComIfGs_isCollectMapTriforce(i)) {
return 0;
return FALSE;
}
}
}
@@ -2272,7 +2272,7 @@ BOOL daAgbsw0_c::MoveCheck(s16 conditionNo) {
if((u32)dComIfGs_getRupee() < 500) {
for (int i = 1; i < 9; i++) {
if(dComIfGs_isGetCollectMap(i) && !dComIfGs_isCollectMapTriforce(i)) {
return 0;
return FALSE;
}
}
}
@@ -2280,207 +2280,207 @@ BOOL daAgbsw0_c::MoveCheck(s16 conditionNo) {
break;
case 0x5F:
if(!dComIfGs_isGetCollectMap(1)) {
return 0;
return FALSE;
}
break;
case 0x60:
if(dComIfGs_isGetCollectMap(1) && dComIfGs_isCollectMapTriforce(1) && !dComIfGs_isTriforce(0)) {
return 0;
return FALSE;
}
break;
case 0x61:
if(dComIfGs_isTriforce(0)) {
return 0;
return FALSE;
}
break;
case 0x62:
if(!dComIfGs_isGetCollectMap(2)) {
return 0;
return FALSE;
}
break;
case 0x63:
if(dComIfGs_isGetCollectMap(2) && dComIfGs_isCollectMapTriforce(2) && !dComIfGs_isTriforce(1)) {
return 0;
return FALSE;
}
break;
case 0x64:
if(dComIfGs_isTriforce(1)) {
return 0;
return FALSE;
}
break;
case 0x65:
if(!dComIfGs_isGetCollectMap(3)) {
return 0;
return FALSE;
}
break;
case 0x66:
if(dComIfGs_isGetCollectMap(3) && dComIfGs_isCollectMapTriforce(3) && !dComIfGs_isTriforce(2)) {
return 0;
return FALSE;
}
break;
case 0x67:
if(dComIfGs_isTriforce(2)) {
return 0;
return FALSE;
}
break;
case 0x68:
if(!dComIfGs_isGetCollectMap(4)) {
return 0;
return FALSE;
}
break;
case 0x69:
if(dComIfGs_isGetCollectMap(4) && dComIfGs_isCollectMapTriforce(4) && !dComIfGs_isTriforce(3)) {
return 0;
return FALSE;
}
break;
case 0x6A:
if(dComIfGs_isTriforce(3)) {
return 0;
return FALSE;
}
break;
case 0x6B:
if(!dComIfGs_isGetCollectMap(5)) {
return 0;
return FALSE;
}
break;
case 0x6C:
if(dComIfGs_isGetCollectMap(5) && dComIfGs_isCollectMapTriforce(5) && !dComIfGs_isTriforce(4)) {
return 0;
return FALSE;
}
break;
case 0x6D:
if(dComIfGs_isTriforce(4)) {
return 0;
return FALSE;
}
break;
case 0x6E:
if(!dComIfGs_isGetCollectMap(6)) {
return 0;
return FALSE;
}
break;
case 0x6F:
if(dComIfGs_isGetCollectMap(6) && dComIfGs_isCollectMapTriforce(6) && !dComIfGs_isTriforce(5)) {
return 0;
return FALSE;
}
break;
case 0x70:
if(dComIfGs_isTriforce(5)) {
return 0;
return FALSE;
}
break;
case 0x71:
if(!dComIfGs_isGetCollectMap(7)) {
return 0;
return FALSE;
}
break;
case 0x72:
if(dComIfGs_isGetCollectMap(7) && dComIfGs_isCollectMapTriforce(7) && !dComIfGs_isTriforce(6)) {
return 0;
return FALSE;
}
break;
case 0x73:
if(dComIfGs_isTriforce(6)) {
return 0;
return FALSE;
}
break;
case 0x74:
if(!dComIfGs_isGetCollectMap(8)) {
return 0;
return FALSE;
}
break;
case 0x75:
if(dComIfGs_isGetCollectMap(8) && dComIfGs_isCollectMapTriforce(8) && !dComIfGs_isTriforce(7)) {
return 0;
return FALSE;
}
break;
case 0x76:
if(dComIfGs_isTriforce(7)) {
return 0;
return FALSE;
}
break;
case 0x77:
if(daPy_dmEcallBack_c::checkCurse()) {
return 0;
return FALSE;
}
break;
case 0x78:
if(!daPy_dmEcallBack_c::checkCurse()) {
return 0;
return FALSE;
}
break;
case 0x79:
if(daPy_getPlayerActorClass()->checkConfuse()) {
return 0;
return FALSE;
}
break;
case 0x7A:
if(!daPy_getPlayerActorClass()->checkConfuse()) {
return 0;
return FALSE;
}
break;
case 0x7B:
if(fopAcM_GetName(dComIfGp_getPlayer(0)) == PROC_NPC_MD && daNpc_Md_c::isFlying()) {
return 0;
return FALSE;
}
break;
case 0x7C:
if(fopAcM_GetName(dComIfGp_getPlayer(0)) != PROC_NPC_MD || !daNpc_Md_c::isFlying()) {
return 0;
return FALSE;
}
break;
case 0x7F:
// Potential bug: This seems to check if the current player is Medli, but that Makar is flying?
if(fopAcM_GetName(dComIfGp_getPlayer(0)) == PROC_NPC_MD && daNpc_Cb1_c::isFlying()) {
return 0;
return FALSE;
}
break;
case 0x80:
// Potential bug: This seems to check if the current player is Medli, but that Makar is flying?
if(fopAcM_GetName(dComIfGp_getPlayer(0)) != PROC_NPC_MD || !daNpc_Cb1_c::isFlying()) {
return 0;
return FALSE;
}
break;
case 0x7D:
if(!fopAcM_isSwitch(this, 0x7C)) {
return 0;
return FALSE;
}
break;
case 0x7E:
if(dComIfGs_checkGetItem(dItem_SKULL_HAMMER_e) && !dComIfGs_isEventBit(0x2D01)) {
return 0;
return FALSE;
}
break;
@@ -2492,7 +2492,7 @@ BOOL daAgbsw0_c::MoveCheck(s16 conditionNo) {
}
}
else if(!daNpc_Md_c::isPlayerRoom()) {
return 0;
return FALSE;
}
break;
@@ -2503,16 +2503,16 @@ BOOL daAgbsw0_c::MoveCheck(s16 conditionNo) {
}
}
else if(!daNpc_Cb1_c::isPlayerRoom()) {
return 0;
return FALSE;
}
break;
#endif
default:
return 0;
return FALSE;
}
return 1;
return TRUE;
}
/* 0000477C-00004818 .text MailSend__10daAgbsw0_cFUsUcUcUcUc */
+6 -6
View File
@@ -450,19 +450,19 @@ daArrow_c* daArrow_c::changeArrowType() {
daArrow_c* ret = this;
if (mArrowType == TYPE_NORMAL) {
if (dComIfGs_getMagic() < 1 || !(dComIfGs_getItem(0xC) == dItem_MAGIC_ARROW_e || dComIfGs_getItem(0xC) == dItem_LIGHT_ARROW_e)) {
if (dComIfGs_getMagic() < 1 || !(dComIfGs_getItem(dInvSlot_BOW_e) == dItem_MAGIC_ARROW_e || dComIfGs_getItem(dInvSlot_BOW_e) == dItem_LIGHT_ARROW_e)) {
mArrowType = TYPE_NORMAL;
} else {
mArrowType = TYPE_FIRE;
}
} else if (mArrowType == TYPE_FIRE) {
if (dComIfGs_getMagic() < 1 || !(dComIfGs_getItem(0xC) == dItem_MAGIC_ARROW_e || dComIfGs_getItem(0xC) == dItem_LIGHT_ARROW_e)) {
if (dComIfGs_getMagic() < 1 || !(dComIfGs_getItem(dInvSlot_BOW_e) == dItem_MAGIC_ARROW_e || dComIfGs_getItem(dInvSlot_BOW_e) == dItem_LIGHT_ARROW_e)) {
mArrowType = TYPE_NORMAL;
} else {
mArrowType = TYPE_ICE;
}
} else if (mArrowType == TYPE_ICE) {
if (dComIfGs_getMagic() < 2 || dComIfGs_getItem(0xC) != dItem_LIGHT_ARROW_e) {
if (dComIfGs_getMagic() < 2 || dComIfGs_getItem(dInvSlot_BOW_e) != dItem_LIGHT_ARROW_e) {
mArrowType = TYPE_NORMAL;
} else {
mArrowType = TYPE_LIGHT;
@@ -495,18 +495,18 @@ void daArrow_c::changeArrowTypeNotReady() {
if (dComIfGs_getMagic() < 1) {
return;
}
if (dComIfGs_getItem(0xC) == dItem_MAGIC_ARROW_e || dComIfGs_getItem(0xC) == dItem_LIGHT_ARROW_e) {
if (dComIfGs_getItem(dInvSlot_BOW_e) == dItem_MAGIC_ARROW_e || dComIfGs_getItem(dInvSlot_BOW_e) == dItem_LIGHT_ARROW_e) {
m_keep_type = TYPE_FIRE;
}
} else if (m_keep_type == TYPE_FIRE) {
if (dComIfGs_getMagic() < 1) {
return;
}
if (dComIfGs_getItem(0xC) == dItem_MAGIC_ARROW_e || dComIfGs_getItem(0xC) == dItem_LIGHT_ARROW_e) {
if (dComIfGs_getItem(dInvSlot_BOW_e) == dItem_MAGIC_ARROW_e || dComIfGs_getItem(dInvSlot_BOW_e) == dItem_LIGHT_ARROW_e) {
m_keep_type = TYPE_ICE;
}
} else if (m_keep_type == TYPE_ICE) {
if (dComIfGs_getMagic() >= 2 && dComIfGs_getItem(0xC) == dItem_LIGHT_ARROW_e) {
if (dComIfGs_getMagic() >= 2 && dComIfGs_getItem(dInvSlot_BOW_e) == dItem_LIGHT_ARROW_e) {
m_keep_type = TYPE_LIGHT;
} else {
m_keep_type = TYPE_NORMAL;
+3 -3
View File
@@ -1488,7 +1488,7 @@ void daNpc_Bs1_c::createShopList() {
dataSet[index] = &shopItems_setData_Bomb30Bs2;
index = 1;
}
if(dComIfGs_getItem(0xC) != dItem_NONE_e) {
if(dComIfGs_getItem(dInvSlot_BOW_e) != dItem_NONE_e) {
dataSet[index] = &shopItems_setData_arrow30Bs2;
index++;
}
@@ -1498,7 +1498,7 @@ void daNpc_Bs1_c::createShopList() {
dataSet[index] = &shopItems_setData_Bomb30Bs2;
index++;
}
if(dComIfGs_getItem(0xC) == dItem_NONE_e) {
if(dComIfGs_getItem(dInvSlot_BOW_e) == dItem_NONE_e) {
dataSet[index] = &shopItems_setData_arrow30Bs2;
}
@@ -1522,7 +1522,7 @@ void daNpc_Bs1_c::createShopList() {
mShopItems.setItemSetDataList(mpItemSetList);
for(int i = 0; i < 3; i++) {
mShopItems.mSelectedItemIdx = i;
if((!dComIfGs_checkGetItem(dItem_BOMB_BAG_e) && isBomb(mShopItems.getSelectItemNo())) || (dComIfGs_getItem(0xC) == dItem_NONE_e && isArrow(mShopItems.getSelectItemNo()))) {
if((!dComIfGs_checkGetItem(dItem_BOMB_BAG_e) && isBomb(mShopItems.getSelectItemNo())) || (dComIfGs_getItem(dInvSlot_BOW_e) == dItem_NONE_e && isArrow(mShopItems.getSelectItemNo()))) {
mShopItems.SoldOutItem(i);
m76C[i] = true;
}
+7 -7
View File
@@ -41,7 +41,7 @@ BOOL daNpc_Nz_c::NodeCallBack(J3DNode* node, int param_1) {
mDoMtx_stack_c::XrotM(m_jnt.getBackbone_y());
mDoMtx_stack_c::ZrotM(-m_jnt.getBackbone_x());
}
model->setAnmMtx(jntNo, mDoMtx_stack_c::get());
cMtx_copy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx);
}
@@ -216,7 +216,7 @@ static s16 daNpc_Nz_XyCheckCB(void* i_actor, int equippedItemIdx) {
if(temp3.absXZ() < l_HIO.field_0x24) {
return true;
}
return false;
}
@@ -518,7 +518,7 @@ static u32 daNpcNz_getShopBoughtMsg(u8 itemNo) {
execItemGet(itemTemp);
return 0x3403;
}
return 0;
}
@@ -623,7 +623,7 @@ u16 daNpc_Nz_c::next_msgStatus(u32* pMsgNo) {
if(dComIfGs_checkGetItem(dItem_BOMB_BAG_e)) {
temp += 1;
}
if(dComIfGs_getItem(0xC) != dItem_NONE_e) {
if(dComIfGs_getItem(dItem_BOW_e) != dItem_NONE_e) {
temp += 1;
}
@@ -664,7 +664,7 @@ u16 daNpc_Nz_c::next_msgStatus(u32* pMsgNo) {
*pMsgNo = msgNo;
break;
}
daShopItem_c* item = getShopItem(field_0x909);
if(item) {
item->hide();
@@ -817,7 +817,7 @@ bool daNpc_Nz_c::_draw() {
g_env_light.setLightTevColorType(pModel, &tevStr);
mpMorf->entryDL();
dComIfGd_setListMaskOff();
matShape->show();
@@ -919,7 +919,7 @@ s32 daNpc_Nz_c::_create() {
if(!fopAcM_entrySolidHeap(this, createHeap_CB, 0x2FE0)) {
return cPhs_ERROR_e;
}
BOOL success = createInit();
if (!success) {
// Fakematch?
+70 -70
View File
@@ -945,12 +945,12 @@ u8 dComIfGs_checkGetItemNum(u8 i_itemNo) {
}
break;
case dItem_BOW_e:
if (dComIfGs_getItem(12) != dItem_HEART_e) { // Bug?
if (dComIfGs_getItem(dInvSlot_BOW_e) != dItem_HEART_e) { // Bug?
get_item = dComIfGs_getArrowNum();
}
break;
case dItem_BOMB_BAG_e:
if (dComIfGs_getItem(13) != dItem_HEART_e) { // Bug?
if (dComIfGs_getItem(dInvSlot_BOMB_e) != dItem_HEART_e) { // Bug?
get_item = dComIfGs_getBombNum();
}
break;
@@ -1280,16 +1280,16 @@ void dComIfGs_setPlayerRecollectionData() {
tbl = 3;
dComIfGp_setPlayerInfoBufferStageNo(4);
} else {
dComIfGs_setSelectItem(0, dItem_NONE_e);
dComIfGs_setSelectItem(1, dItem_NONE_e);
dComIfGs_setSelectItem(2, dItem_NONE_e);
dComIfGs_setSelectItem(0, dInvSlot_NONE_e);
dComIfGs_setSelectItem(1, dInvSlot_NONE_e);
dComIfGs_setSelectItem(2, dInvSlot_NONE_e);
return;
}
if (dComIfGs_getpPlayerStatusC(tbl)->mRecollectItem.mItems[0] != dItem_TELESCOPE_e) {
dComIfGs_setSelectItem(0, dItem_NONE_e);
dComIfGs_setSelectItem(1, dItem_NONE_e);
dComIfGs_setSelectItem(2, dItem_NONE_e);
dComIfGs_setSelectItem(0, dInvSlot_NONE_e);
dComIfGs_setSelectItem(1, dInvSlot_NONE_e);
dComIfGs_setSelectItem(2, dInvSlot_NONE_e);
return;
}
@@ -1298,36 +1298,36 @@ void dComIfGs_setPlayerRecollectionData() {
dSv_player_item_record2_c tmp_record2;
dSv_player_collect_c tmp_collect;
dSv_player_item_c tmp_item;
tmp_sttsA.mMaxLife = dComIfGs_getMaxLife();
tmp_sttsA.mLife = dComIfGs_getLife();
tmp_sttsA.mMaxMagic = dComIfGs_getMaxMagic();
tmp_sttsA.mMagic = dComIfGs_getMagic();
tmp_max.mItemMax2.mArrowNum = dComIfGs_getArrowMax();
tmp_record2.mArrowNum = dComIfGs_getArrowNum();
tmp_max.mItemMax2.mBombNum = dComIfGs_getBombMax();
tmp_record2.mBombNum = dComIfGs_getBombNum();
tmp_record2.mPictureNum = dComIfGs_getPictureNum();
tmp_collect.mCollect[0] = dComIfGs_checkCollect(0);
tmp_collect.mCollect[1] = dComIfGs_checkCollect(1);
tmp_collect.mCollect[2] = dComIfGs_checkCollect(2);
tmp_collect.mCollect[3] = dComIfGs_checkCollect(3);
tmp_collect.mCollect[4] = dComIfGs_checkCollect(4);
tmp_sttsA.mSelectEquip[0] = dComIfGs_getSelectEquip(0);
tmp_sttsA.mSelectEquip[1] = dComIfGs_getSelectEquip(1);
tmp_sttsA.mSelectEquip[2] = dComIfGs_getSelectEquip(2);
tmp_sttsA.mSelectEquip[3] = dComIfGs_getSelectEquip(3);
tmp_sttsA.mSelectEquip[4] = dComIfGs_getSelectEquip(4);
tmp_item.mItems[14] = dComIfGs_getItem(14);
tmp_item.mItems[15] = dComIfGs_getItem(15);
tmp_item.mItems[16] = dComIfGs_getItem(16);
tmp_item.mItems[17] = dComIfGs_getItem(17);
tmp_item.mItems[8] = dComIfGs_getItem(8);
// TODO: This matches but could probably be cleaned up somehow.
dSv_player_status_c_c* stts = dComIfGs_getpPlayerStatusC(tbl);
u32 buffer = (u32)dComIfGp_getPlayerInfoBuffer();
@@ -1338,7 +1338,7 @@ void dComIfGs_setPlayerRecollectionData() {
memcpy((void*)(buffer + offsetof(dSv_player_status_c_c, mRecollectBagItem)), dComIfGs_getpBagItem(), sizeof(stts->mRecollectBagItem));
memcpy((void*)(buffer + offsetof(dSv_player_status_c_c, mRecollectBagItemRecord)), dComIfGs_getpBagItemRecord(), sizeof(stts->mRecollectBagItemRecord));
memcpy((void*)(buffer + offsetof(dSv_player_status_c_c, mRecollectCollect)), dComIfGs_getpCollect(), sizeof(stts->mRecollectCollect));
memcpy(dComIfGs_getpPlayerStatusA(), &stts->mRecollectStatusA, sizeof(stts->mRecollectStatusA));
memcpy(dComIfGs_getpItem(), &stts->mRecollectItem, sizeof(stts->mRecollectItem));
memcpy(&dComIfGs_getpItemRecord()->mItemRecord2, &stts->mRecollectItemRecord, sizeof(stts->mRecollectItemRecord));
@@ -1346,24 +1346,24 @@ void dComIfGs_setPlayerRecollectionData() {
memcpy(dComIfGs_getpBagItem(), &stts->mRecollectBagItem, sizeof(stts->mRecollectBagItem));
memcpy(dComIfGs_getpBagItemRecord(), &stts->mRecollectBagItemRecord, sizeof(stts->mRecollectBagItemRecord));
memcpy(dComIfGs_getpCollect(), &stts->mRecollectCollect, sizeof(stts->mRecollectCollect));
dComIfGs_setMaxLife(tmp_sttsA.mMaxLife);
dComIfGs_setLife(tmp_sttsA.mLife);
dComIfGs_setMaxMagic(tmp_sttsA.mMaxMagic);
dComIfGs_setMagic(tmp_sttsA.mMagic);
dComIfGs_setArrowMax(tmp_max.mItemMax2.mArrowNum);
dComIfGs_setArrowNum(tmp_record2.mArrowNum);
dComIfGs_setBombMax(tmp_max.mItemMax2.mBombNum);
dComIfGs_setBombNum(tmp_record2.mBombNum);
dComIfGs_setPictureNum(tmp_record2.mPictureNum);
dComIfGs_setCollect(0, tmp_collect.mCollect[0]);
dComIfGs_setCollect(1, tmp_collect.mCollect[1]);
dComIfGs_setCollect(2, tmp_collect.mCollect[2]);
dComIfGs_setCollect(3, tmp_collect.mCollect[3]);
dComIfGs_setCollect(4, tmp_collect.mCollect[4]);
dComIfGs_setSelectEquip(0, tmp_sttsA.mSelectEquip[0]);
dComIfGs_setSelectEquip(1, tmp_sttsA.mSelectEquip[1]);
dComIfGs_setSelectEquip(2, tmp_sttsA.mSelectEquip[2]);
@@ -1372,7 +1372,7 @@ void dComIfGs_setPlayerRecollectionData() {
// Usually the wallet size would be set via dComIfGs_setWalletSize instead.
// TODO: Investigate this more.
dComIfGs_setSelectEquip(4, tmp_sttsA.mSelectEquip[4]);
dComIfGp_setSelectEquip(0, dComIfGs_getSelectEquip(0));
dComIfGp_setSelectEquip(1, dComIfGs_getSelectEquip(1));
dComIfGp_setSelectEquip(2, dComIfGs_getSelectEquip(2));
@@ -1381,16 +1381,16 @@ void dComIfGs_setPlayerRecollectionData() {
// It seems to set dComIfG_play_c's mMesgAnime value to the current wallet size value.
// TODO: Investigate this more.
dComIfGp_setSelectEquip(4, dComIfGs_getSelectEquip(4));
dComIfGs_setItem(14, tmp_item.mItems[14]);
dComIfGs_setItem(15, tmp_item.mItems[15]);
dComIfGs_setItem(16, tmp_item.mItems[16]);
dComIfGs_setItem(17, tmp_item.mItems[17]);
dComIfGs_setItem(8, tmp_item.mItems[8]);
dComIfGs_setSelectItem(0, dItem_NONE_e);
dComIfGs_setSelectItem(1, dItem_NONE_e);
dComIfGs_setSelectItem(2, dItem_NONE_e);
dComIfGs_setSelectItem(0, dInvSlot_NONE_e);
dComIfGs_setSelectItem(1, dInvSlot_NONE_e);
dComIfGs_setSelectItem(2, dInvSlot_NONE_e);
}
/* 80055318-80055580 .text dComIfGs_revPlayerRecollectionData__Fv */
@@ -1406,36 +1406,36 @@ void dComIfGs_revPlayerRecollectionData() {
dSv_player_item_record2_c tmp_record2;
dSv_player_collect_c tmp_collect;
dSv_player_item_c tmp_item;
tmp_sttsA.mMaxLife = dComIfGs_getMaxLife();
tmp_sttsA.mLife = dComIfGs_getLife();
tmp_sttsA.mMaxMagic = dComIfGs_getMaxMagic();
tmp_sttsA.mMagic = dComIfGs_getMagic();
tmp_max.mItemMax2.mArrowNum = dComIfGs_getArrowMax();
tmp_record2.mArrowNum = dComIfGs_getArrowNum();
tmp_max.mItemMax2.mBombNum = dComIfGs_getBombMax();
tmp_record2.mBombNum = dComIfGs_getBombNum();
tmp_record2.mPictureNum = dComIfGs_getPictureNum();
tmp_collect.mCollect[0] = dComIfGs_checkCollect(0);
tmp_collect.mCollect[1] = dComIfGs_checkCollect(1);
tmp_collect.mCollect[2] = dComIfGs_checkCollect(2);
tmp_collect.mCollect[3] = dComIfGs_checkCollect(3);
tmp_collect.mCollect[4] = dComIfGs_checkCollect(4);
tmp_sttsA.mSelectEquip[0] = dComIfGs_getSelectEquip(0);
tmp_sttsA.mSelectEquip[1] = dComIfGs_getSelectEquip(1);
tmp_sttsA.mSelectEquip[2] = dComIfGs_getSelectEquip(2);
tmp_sttsA.mSelectEquip[3] = dComIfGs_getSelectEquip(3);
tmp_sttsA.mSelectEquip[4] = dComIfGs_getSelectEquip(4);
tmp_item.mItems[14] = dComIfGs_getItem(14);
tmp_item.mItems[15] = dComIfGs_getItem(15);
tmp_item.mItems[16] = dComIfGs_getItem(16);
tmp_item.mItems[17] = dComIfGs_getItem(17);
tmp_item.mItems[8] = dComIfGs_getItem(8);
// TODO: This matches but could probably be cleaned up somehow.
u32 buffer = (u32)dComIfGp_getPlayerInfoBuffer();
memcpy(dComIfGs_getpPlayerStatusA(), (void*)(buffer + offsetof(dSv_player_status_c_c, mRecollectStatusA)), sizeof(dSv_player_status_c_c().mRecollectStatusA));
@@ -1445,24 +1445,24 @@ void dComIfGs_revPlayerRecollectionData() {
memcpy(dComIfGs_getpBagItem(), (void*)(buffer + offsetof(dSv_player_status_c_c, mRecollectBagItem)), sizeof(dSv_player_status_c_c().mRecollectBagItem));
memcpy(dComIfGs_getpBagItemRecord(), (void*)(buffer + offsetof(dSv_player_status_c_c, mRecollectBagItemRecord)), sizeof(dSv_player_status_c_c().mRecollectBagItemRecord));
memcpy(dComIfGs_getpCollect(), (void*)(buffer + offsetof(dSv_player_status_c_c, mRecollectCollect)), sizeof(dSv_player_status_c_c().mRecollectCollect));
dComIfGs_setMaxLife(tmp_sttsA.mMaxLife);
dComIfGs_setLife(tmp_sttsA.mLife);
dComIfGs_setMaxMagic(tmp_sttsA.mMaxMagic);
dComIfGs_setMagic(tmp_sttsA.mMagic);
dComIfGs_setArrowMax(tmp_max.mItemMax2.mArrowNum);
dComIfGs_setArrowNum(tmp_record2.mArrowNum);
dComIfGs_setBombMax(tmp_max.mItemMax2.mBombNum);
dComIfGs_setBombNum(tmp_record2.mBombNum);
dComIfGs_setPictureNum(tmp_record2.mPictureNum);
dComIfGs_setCollect(0, tmp_collect.mCollect[0]);
dComIfGs_setCollect(1, tmp_collect.mCollect[1]);
dComIfGs_setCollect(2, tmp_collect.mCollect[2]);
dComIfGs_setCollect(3, tmp_collect.mCollect[3]);
dComIfGs_setCollect(4, tmp_collect.mCollect[4]);
dComIfGs_setSelectEquip(0, tmp_sttsA.mSelectEquip[0]);
dComIfGs_setSelectEquip(1, tmp_sttsA.mSelectEquip[1]);
dComIfGs_setSelectEquip(2, tmp_sttsA.mSelectEquip[2]);
@@ -1471,7 +1471,7 @@ void dComIfGs_revPlayerRecollectionData() {
// Usually the wallet size would be set via dComIfGs_setWalletSize instead.
// TODO: Investigate this more.
dComIfGs_setSelectEquip(4, tmp_sttsA.mSelectEquip[4]);
dComIfGp_setSelectEquip(0, dComIfGs_getSelectEquip(0));
dComIfGp_setSelectEquip(1, dComIfGs_getSelectEquip(1));
dComIfGp_setSelectEquip(2, dComIfGs_getSelectEquip(2));
@@ -1480,16 +1480,16 @@ void dComIfGs_revPlayerRecollectionData() {
// It seems to set dComIfG_play_c's mMesgAnime value to the current wallet size value.
// TODO: Investigate this more.
dComIfGp_setSelectEquip(4, dComIfGs_getSelectEquip(4));
dComIfGs_setItem(14, tmp_item.mItems[14]);
dComIfGs_setItem(15, tmp_item.mItems[15]);
dComIfGs_setItem(16, tmp_item.mItems[16]);
dComIfGs_setItem(17, tmp_item.mItems[17]);
dComIfGs_setItem(8, tmp_item.mItems[8]);
dComIfGs_setSelectItem(0, dItem_NONE_e);
dComIfGs_setSelectItem(1, dItem_NONE_e);
dComIfGs_setSelectItem(2, dItem_NONE_e);
dComIfGs_setItem(dInvSlot_BOTTLE0_e, tmp_item.mItems[dInvSlot_BOTTLE0_e]);
dComIfGs_setItem(dInvSlot_BOTTLE1_e, tmp_item.mItems[dInvSlot_BOTTLE1_e]);
dComIfGs_setItem(dInvSlot_BOTTLE2_e, tmp_item.mItems[dInvSlot_BOTTLE2_e]);
dComIfGs_setItem(dInvSlot_BOTTLE3_e, tmp_item.mItems[dInvSlot_BOTTLE3_e]);
dComIfGs_setItem(dInvSlot_CAMERA_e, tmp_item.mItems[dInvSlot_CAMERA_e]);
dComIfGs_setSelectItem(0, dInvSlot_NONE_e);
dComIfGs_setSelectItem(1, dInvSlot_NONE_e);
dComIfGs_setSelectItem(2, dInvSlot_NONE_e);
}
/* 80055580-8005586C .text dComIfGs_exchangePlayerRecollectionData__Fv */
@@ -1503,36 +1503,36 @@ void dComIfGs_exchangePlayerRecollectionData() {
dSv_player_item_record2_c tmp_record2;
dSv_player_collect_c tmp_collect;
dSv_player_item_c tmp_item;
tmp_sttsA.mMaxLife = dComIfGs_getMaxLife();
tmp_sttsA.mLife = dComIfGs_getLife();
tmp_sttsA.mMaxMagic = dComIfGs_getMaxMagic();
tmp_sttsA.mMagic = dComIfGs_getMagic();
tmp_max.mItemMax2.mArrowNum = dComIfGs_getArrowMax();
tmp_record2.mArrowNum = dComIfGs_getArrowNum();
tmp_max.mItemMax2.mBombNum = dComIfGs_getBombMax();
tmp_record2.mBombNum = dComIfGs_getBombNum();
tmp_record2.mPictureNum = dComIfGs_getPictureNum();
tmp_collect.mCollect[0] = dComIfGs_checkCollect(0);
tmp_collect.mCollect[1] = dComIfGs_checkCollect(1);
tmp_collect.mCollect[2] = dComIfGs_checkCollect(2);
tmp_collect.mCollect[3] = dComIfGs_checkCollect(3);
tmp_collect.mCollect[4] = dComIfGs_checkCollect(4);
tmp_sttsA.mSelectEquip[0] = dComIfGs_getSelectEquip(0);
tmp_sttsA.mSelectEquip[1] = dComIfGs_getSelectEquip(1);
tmp_sttsA.mSelectEquip[2] = dComIfGs_getSelectEquip(2);
tmp_sttsA.mSelectEquip[3] = dComIfGs_getSelectEquip(3);
tmp_sttsA.mSelectEquip[4] = dComIfGs_getSelectEquip(4);
tmp_item.mItems[14] = dComIfGs_getItem(14);
tmp_item.mItems[15] = dComIfGs_getItem(15);
tmp_item.mItems[16] = dComIfGs_getItem(16);
tmp_item.mItems[17] = dComIfGs_getItem(17);
tmp_item.mItems[8] = dComIfGs_getItem(8);
tmp_item.mItems[dInvSlot_BOTTLE0_e] = dComIfGs_getItem(dInvSlot_BOTTLE0_e);
tmp_item.mItems[dInvSlot_BOTTLE1_e] = dComIfGs_getItem(dInvSlot_BOTTLE1_e);
tmp_item.mItems[dInvSlot_BOTTLE2_e] = dComIfGs_getItem(dInvSlot_BOTTLE2_e);
tmp_item.mItems[dInvSlot_BOTTLE3_e] = dComIfGs_getItem(dInvSlot_BOTTLE3_e);
tmp_item.mItems[dInvSlot_CAMERA_e] = dComIfGs_getItem(dInvSlot_CAMERA_e);
// TODO: This matches but could probably be cleaned up somehow.
dSv_player_status_c_c stts;
memcpy(&stts, dComIfGp_getPlayerInfoBuffer(), sizeof(stts));
@@ -1544,7 +1544,7 @@ void dComIfGs_exchangePlayerRecollectionData() {
memcpy((void*)(buffer + offsetof(dSv_player_status_c_c, mRecollectBagItem)), dComIfGs_getpBagItem(), sizeof(stts.mRecollectBagItem));
memcpy((void*)(buffer + offsetof(dSv_player_status_c_c, mRecollectBagItemRecord)), dComIfGs_getpBagItemRecord(), sizeof(stts.mRecollectBagItemRecord));
memcpy((void*)(buffer + offsetof(dSv_player_status_c_c, mRecollectCollect)), dComIfGs_getpCollect(), sizeof(stts.mRecollectCollect));
u8* stts_buffer = (u8*)&stts;
memcpy(dComIfGs_getpPlayerStatusA(), stts_buffer + offsetof(dSv_player_status_c_c, mRecollectStatusA), sizeof(stts.mRecollectStatusA));
memcpy(dComIfGs_getpItem(), stts_buffer + offsetof(dSv_player_status_c_c, mRecollectItem), sizeof(stts.mRecollectItem));
@@ -1553,24 +1553,24 @@ void dComIfGs_exchangePlayerRecollectionData() {
memcpy(dComIfGs_getpBagItem(), stts_buffer + offsetof(dSv_player_status_c_c, mRecollectBagItem), sizeof(stts.mRecollectBagItem));
memcpy(dComIfGs_getpBagItemRecord(), stts_buffer + offsetof(dSv_player_status_c_c, mRecollectBagItemRecord), sizeof(stts.mRecollectBagItemRecord));
memcpy(dComIfGs_getpCollect(), stts_buffer + offsetof(dSv_player_status_c_c, mRecollectCollect), sizeof(stts.mRecollectCollect));
dComIfGs_setMaxLife(tmp_sttsA.mMaxLife);
dComIfGs_setLife(tmp_sttsA.mLife);
dComIfGs_setMaxMagic(tmp_sttsA.mMaxMagic);
dComIfGs_setMagic(tmp_sttsA.mMagic);
dComIfGs_setArrowMax(tmp_max.mItemMax2.mArrowNum);
dComIfGs_setArrowNum(tmp_record2.mArrowNum);
dComIfGs_setBombMax(tmp_max.mItemMax2.mBombNum);
dComIfGs_setBombNum(tmp_record2.mBombNum);
dComIfGs_setPictureNum(tmp_record2.mPictureNum);
dComIfGs_setCollect(0, tmp_collect.mCollect[0]);
dComIfGs_setCollect(1, tmp_collect.mCollect[1]);
dComIfGs_setCollect(2, tmp_collect.mCollect[2]);
dComIfGs_setCollect(3, tmp_collect.mCollect[3]);
dComIfGs_setCollect(4, tmp_collect.mCollect[4]);
dComIfGs_setSelectEquip(0, tmp_sttsA.mSelectEquip[0]);
dComIfGs_setSelectEquip(1, tmp_sttsA.mSelectEquip[1]);
dComIfGs_setSelectEquip(2, tmp_sttsA.mSelectEquip[2]);
@@ -1579,7 +1579,7 @@ void dComIfGs_exchangePlayerRecollectionData() {
// Usually the wallet size would be set via dComIfGs_setWalletSize instead.
// TODO: Investigate this more.
dComIfGs_setSelectEquip(4, tmp_sttsA.mSelectEquip[4]);
dComIfGp_setSelectEquip(0, dComIfGs_getSelectEquip(0));
dComIfGp_setSelectEquip(1, dComIfGs_getSelectEquip(1));
dComIfGp_setSelectEquip(2, dComIfGs_getSelectEquip(2));
@@ -1588,12 +1588,12 @@ void dComIfGs_exchangePlayerRecollectionData() {
// It seems to set dComIfG_play_c's mMesgAnime value to the current wallet size value.
// TODO: Investigate this more.
dComIfGp_setSelectEquip(4, dComIfGs_getSelectEquip(4));
dComIfGs_setItem(14, tmp_item.mItems[14]);
dComIfGs_setItem(15, tmp_item.mItems[15]);
dComIfGs_setItem(16, tmp_item.mItems[16]);
dComIfGs_setItem(17, tmp_item.mItems[17]);
dComIfGs_setItem(8, tmp_item.mItems[8]);
dComIfGs_setItem(dInvSlot_BOTTLE0_e, tmp_item.mItems[dInvSlot_BOTTLE0_e]);
dComIfGs_setItem(dInvSlot_BOTTLE1_e, tmp_item.mItems[dInvSlot_BOTTLE1_e]);
dComIfGs_setItem(dInvSlot_BOTTLE2_e, tmp_item.mItems[dInvSlot_BOTTLE2_e]);
dComIfGs_setItem(dInvSlot_BOTTLE3_e, tmp_item.mItems[dInvSlot_BOTTLE3_e]);
dComIfGs_setItem(dInvSlot_CAMERA_e, tmp_item.mItems[dInvSlot_CAMERA_e]);
}
/* 8005586C-800559E8 .text dComIfGs_setSelectEquip__FiUc */
+50 -50
View File
@@ -610,29 +610,29 @@ void item_func_l_magic() {
/* 800C3008-800C3060 .text item_func_bomb_5__Fv */
void item_func_bomb_5() {
dComIfGs_onGetItem(0xD, 0);
dComIfGp_setItem(0xD, BOMB_5);
dComIfGs_onGetItem(dInvSlot_BOMB_e, 0);
dComIfGp_setItem(dInvSlot_BOMB_e, BOMB_5);
dComIfGp_setItemBombNumCount(5);
}
/* 800C3060-800C30B0 .text item_func_bomb_10__Fv */
void item_func_bomb_10() {
dComIfGs_onGetItem(0xD, 0);
dComIfGs_setItem(0xD, dItem_BOMB_BAG_e);
dComIfGs_onGetItem(dInvSlot_BOMB_e, 0);
dComIfGs_setItem(dInvSlot_BOMB_e, dItem_BOMB_BAG_e);
dComIfGp_setItemBombNumCount(10);
}
/* 800C30B0-800C3100 .text item_func_bomb_20__Fv */
void item_func_bomb_20() {
dComIfGs_onGetItem(0xD, 0);
dComIfGs_setItem(0xD, dItem_BOMB_BAG_e);
dComIfGs_onGetItem(dInvSlot_BOMB_e, 0);
dComIfGs_setItem(dInvSlot_BOMB_e, dItem_BOMB_BAG_e);
dComIfGp_setItemBombNumCount(20);
}
/* 800C3100-800C3150 .text item_func_bomb_30__Fv */
void item_func_bomb_30() {
dComIfGs_onGetItem(0xD, 0);
dComIfGs_setItem(0xD, dItem_BOMB_BAG_e);
dComIfGs_onGetItem(dInvSlot_BOMB_e, 0);
dComIfGs_setItem(dInvSlot_BOMB_e, dItem_BOMB_BAG_e);
dComIfGp_setItemBombNumCount(30);
}
@@ -684,50 +684,50 @@ void item_func_pendant() {
/* 800C3258-800C329C .text item_func_telescope__Fv */
void item_func_telescope() {
dComIfGs_onGetItem(0x0, 0);
dComIfGs_setItem(0x0, dItem_TELESCOPE_e);
dComIfGs_onGetItem(dInvSlot_TELESCOPE_e, 0);
dComIfGs_setItem(dInvSlot_TELESCOPE_e, dItem_TELESCOPE_e);
}
/* 800C329C-800C32E0 .text item_func_tncl_whitsl__Fv */
void item_func_tncl_whitsl() {
dComIfGs_onGetItem(0x7, 0);
dComIfGs_setItem(0x7, dItem_TINGLE_TUNER_e);
dComIfGs_onGetItem(dInvSlot_TINGLE_TUNER_e, 0);
dComIfGs_setItem(dInvSlot_TINGLE_TUNER_e, dItem_TINGLE_TUNER_e);
}
/* 800C32E0-800C3324 .text item_func_wind_tact__Fv */
void item_func_wind_tact() {
dComIfGs_onGetItem(0x2, 0);
dComIfGs_setItem(0x2, dItem_WIND_WAKER_e);
dComIfGs_onGetItem(dInvSlot_WIND_WAKER_e, 0);
dComIfGs_setItem(dInvSlot_WIND_WAKER_e, dItem_WIND_WAKER_e);
}
/* 800C3324-800C3368 .text item_func_camera__Fv */
void item_func_camera() {
dComIfGs_onGetItem(0x8, 0);
dComIfGs_setItem(0x8, CAMERA);
dComIfGs_onGetItem(dInvSlot_CAMERA_e, 0);
dComIfGs_setItem(dInvSlot_CAMERA_e, CAMERA);
}
/* 800C3368-800C33AC .text item_func_emono_bag__Fv */
void item_func_emono_bag() {
dComIfGs_onGetItem(0x4, 0);
dComIfGs_setItem(0x4, EMONO_BAG);
dComIfGs_onGetItem(dInvSlot_EMONO_BAG_e, 0);
dComIfGs_setItem(dInvSlot_EMONO_BAG_e, EMONO_BAG);
}
/* 800C33AC-800C33F0 .text item_func_rope__Fv */
void item_func_rope() {
dComIfGs_onGetItem(0x3, 0);
dComIfGs_setItem(0x3, dItem_GRAPPLING_HOOK_e);
dComIfGs_onGetItem(dInvSlot_GRAPPLING_HOOK_e, 0);
dComIfGs_setItem(dInvSlot_GRAPPLING_HOOK_e, dItem_GRAPPLING_HOOK_e);
}
/* 800C33F0-800C3434 .text item_func_camera2__Fv */
void item_func_camera2() {
dComIfGs_onGetItem(0x8, 1);
dComIfGs_setItem(0x8, CAMERA2);
dComIfGs_onGetItem(dInvSlot_CAMERA_e, 1);
dComIfGs_setItem(dInvSlot_CAMERA_e, CAMERA2);
}
/* 800C3434-800C3484 .text item_func_bow__Fv */
void item_func_bow() {
dComIfGs_onGetItem(0xC, 0);
dComIfGs_setItem(0xC, dItem_BOW_e);
dComIfGs_onGetItem(dInvSlot_BOW_e, 0);
dComIfGs_setItem(dInvSlot_BOW_e, dItem_BOW_e);
dComIfGs_setArrowNum(30);
dComIfGs_setArrowMax(30);
}
@@ -740,14 +740,14 @@ void item_func_pwr_groove() {
/* 800C34C4-800C3508 .text item_func_hvy_boots__Fv */
void item_func_hvy_boots() {
dComIfGs_onGetItem(0x9, 0);
dComIfGs_setItem(0x9, dItem_IRON_BOOTS_e);
dComIfGs_onGetItem(dInvSlot_IRON_BOOTS_e, 0);
dComIfGs_setItem(dInvSlot_IRON_BOOTS_e, dItem_IRON_BOOTS_e);
}
/* 800C3508-800C354C .text item_func_drgn_shield__Fv */
void item_func_drgn_shield() {
dComIfGs_onGetItem(0xA, 0);
dComIfGs_setItem(0xA, dItem_MAGIC_ARMOR_e);
dComIfGs_onGetItem(dInvSlot_MAGIC_ARMOR_e, 0);
dComIfGs_setItem(dInvSlot_MAGIC_ARMOR_e, dItem_MAGIC_ARMOR_e);
}
/* 800C354C-800C3550 .text item_func_water_boots__Fv */
@@ -756,37 +756,37 @@ void item_func_water_boots() {
/* 800C3550-800C3594 .text item_func_esa_bag__Fv */
void item_func_esa_bag() {
dComIfGs_onGetItem(0xB, 0);
dComIfGs_setItem(0xB, ESA_BAG);
dComIfGs_onGetItem(dInvSlot_ESA_BAG_e, 0);
dComIfGs_setItem(dInvSlot_ESA_BAG_e, ESA_BAG);
}
/* 800C3594-800C35D8 .text item_func_boomerang__Fv */
void item_func_boomerang() {
dComIfGs_onGetItem(0x5, 0);
dComIfGs_setItem(0x5, dItem_BOOMERANG_e);
dComIfGs_onGetItem(dInvSlot_BOOMERANG_e, 0);
dComIfGs_setItem(dInvSlot_BOOMERANG_e, dItem_BOOMERANG_e);
}
/* 800C35D8-800C3600 .text item_func_bare_hand__Fv */
void item_func_bare_hand() {
dComIfGs_setSelectEquip(0x2, BARE_HAND);
dComIfGs_setSelectEquip(0x02, BARE_HAND);
}
/* 800C3600-800C3644 .text item_func_hookshot__Fv */
void item_func_hookshot() {
dComIfGs_onGetItem(0x13, 0);
dComIfGs_setItem(0x13, dItem_HOOKSHOT_e);
dComIfGs_onGetItem(dInvSlot_HOOKSHOT_e, 0);
dComIfGs_setItem(dInvSlot_HOOKSHOT_e, dItem_HOOKSHOT_e);
}
/* 800C3644-800C3688 .text item_func_warasibe_bag__Fv */
void item_func_warasibe_bag() {
dComIfGs_onGetItem(0x12, 0);
dComIfGs_setItem(0x12, dItem_DELIVERY_BAG_e);
dComIfGs_onGetItem(dInvSlot_DELIVERY_BAG_e, 0);
dComIfGs_setItem(dInvSlot_DELIVERY_BAG_e, dItem_DELIVERY_BAG_e);
}
/* 800C3688-800C36D8 .text item_func_bomb_bag__Fv */
void item_func_bomb_bag() {
dComIfGs_onGetItem(0xD, 0);
dComIfGs_setItem(0xD, dItem_BOMB_BAG_e);
dComIfGs_onGetItem(dInvSlot_BOMB_e, 0);
dComIfGs_setItem(dInvSlot_BOMB_e, dItem_BOMB_BAG_e);
dComIfGs_setBombNum(30);
dComIfGs_setBombMax(30);
}
@@ -797,22 +797,22 @@ void item_func_fuku() {
/* 800C36DC-800C3720 .text item_func_hummer__Fv */
void item_func_hummer() {
dComIfGs_onGetItem(0x14, 0);
dComIfGs_setItem(0x14, dItem_SKULL_HAMMER_e);
dComIfGs_onGetItem(dInvSlot_SKULL_HAMMER_e, 0);
dComIfGs_setItem(dInvSlot_SKULL_HAMMER_e, dItem_SKULL_HAMMER_e);
}
/* 800C3720-800C377C .text item_func_deku_leaf__Fv */
void item_func_deku_leaf() {
dComIfGs_onGetItem(0x6, 0);
dComIfGs_setItem(0x6, dItem_DEKU_LEAF_e);
dComIfGs_onGetItem(dInvSlot_DEKU_LEAF_e, 0);
dComIfGs_setItem(dInvSlot_DEKU_LEAF_e, dItem_DEKU_LEAF_e);
dComIfGp_setItemMaxMagicCount(16);
dComIfGp_setItemMagicCount(16);
}
/* 800C377C-800C3928 .text item_func_magic_arrow__Fv */
void item_func_magic_arrow() {
dComIfGs_onGetItem(0xC, 1);
dComIfGs_setItem(0xC, dItem_MAGIC_ARROW_e);
dComIfGs_onGetItem(dInvSlot_BOW_e, 1);
dComIfGs_setItem(dInvSlot_BOW_e, dItem_MAGIC_ARROW_e);
#if VERSION != VERSION_JPN
// If the regular bow was equipped on an X/Y/Z button, force it to update.
@@ -826,9 +826,9 @@ void item_func_magic_arrow() {
/* 800C3928-800C3AD4 .text item_func_light_arrow__Fv */
void item_func_light_arrow() {
dComIfGs_onGetItem(0xC, 2);
dComIfGs_setItem(0xC, dItem_LIGHT_ARROW_e);
dComIfGs_onGetItem(dInvSlot_BOW_e, 2);
dComIfGs_setItem(dInvSlot_BOW_e, dItem_LIGHT_ARROW_e);
#if VERSION != VERSION_JPN
// If the fire/ice bow was equipped on an X/Y/Z button, force it to update.
for (int btnIdx = 0; btnIdx < 3; btnIdx++) {
@@ -1113,8 +1113,8 @@ void item_func_tact_song6() {
/* 800C458C-800C45C8 .text item_func_normal_sail__Fv */
void item_func_normal_sail() {
dComIfGs_setItem(0x1, NORMAL_SAIL);
dComIfGs_onGetItem(0x1, 0);
dComIfGs_setItem(dInvSlot_SAIL_e, NORMAL_SAIL);
dComIfGs_onGetItem(dInvSlot_SAIL_e, 0);
}
/* 800C45C8-800C45CC .text item_func_triforce_map1__Fv */
+9 -9
View File
@@ -1361,22 +1361,22 @@ s32 phase_4(dScnPly_ply_c* i_this) {
}
if (strcmp(dComIfGp_getStartStageName(), "GTower") == 0) {
dComIfGs_setItem(12, dItem_NONE_e); // take away the bow
dComIfGs_setItem(dInvSlot_BOW_e, dItem_NONE_e); // take away the bow
for (s32 i = 0; i < 3; i++) {
u32 itemno = dComIfGp_getSelectItem(i);
if (itemno == dItem_BOW_e || itemno == dItem_MAGIC_ARROW_e || itemno == dItem_LIGHT_ARROW_e) {
dComIfGs_setSelectItem(i, dItem_NONE_e);
dComIfGs_setSelectItem(i, dInvSlot_NONE_e);
dComIfGp_setSelectItem(i);
}
}
} else if (dComIfGs_getItem(12) == dItem_NONE_e) {
} else if (dComIfGs_getItem(dInvSlot_BOW_e) == dItem_NONE_e) {
// give the bow back
if (dComIfGs_isGetItem(12, 2))
dComIfGs_setItem(12, dItem_LIGHT_ARROW_e);
else if (dComIfGs_isGetItem(12, 1))
dComIfGs_setItem(12, dItem_MAGIC_ARROW_e);
else if (dComIfGs_isGetItem(12, 0))
dComIfGs_setItem(12, dItem_BOW_e);
if (dComIfGs_isGetItem(dInvSlot_BOW_e, 2))
dComIfGs_setItem(dInvSlot_BOW_e, dItem_LIGHT_ARROW_e);
else if (dComIfGs_isGetItem(dInvSlot_BOW_e, 1))
dComIfGs_setItem(dInvSlot_BOW_e, dItem_MAGIC_ARROW_e);
else if (dComIfGs_isGetItem(dInvSlot_BOW_e, 0))
dComIfGs_setItem(dInvSlot_BOW_e, dItem_BOW_e);
}
if (strcmp(dComIfGp_getStartStageName(), "Xboss0") == 0 ||
+90 -92
View File
@@ -99,7 +99,7 @@ void dSv_player_item_c::setEmptyBottleItemIn(u8 i_itemNo) {
/* 80058E44-80058F74 .text setEmptyBottle__17dSv_player_item_cFv */
void dSv_player_item_c::setEmptyBottle() {
for (int bottleIdx = 0; bottleIdx < 4; bottleIdx++) {
int invIdx = 0xE + bottleIdx;
int invIdx = dInvSlot_BOTTLE0_e + bottleIdx;
if (dComIfGs_getItem((u8)invIdx) == dItem_NONE_e) {
dComIfGs_setItem((u8)invIdx, EMPTY_BOTTLE);
break;
@@ -110,15 +110,13 @@ void dSv_player_item_c::setEmptyBottle() {
/* 80058F74-8005918C .text setEquipBottleItemIn__17dSv_player_item_cFUcUc */
void dSv_player_item_c::setEquipBottleItemIn(u8 i_btnIdx, u8 i_itemNo) {
u8 invIdx = dComIfGs_getSelectItem(i_btnIdx);
if (invIdx < 0xE) {
if (invIdx < dInvSlot_BOTTLE0_e)
return;
}
if (invIdx > 0x11) {
if (invIdx > dInvSlot_BOTTLE3_e)
return;
}
mItems[invIdx] = i_itemNo;
dComIfGs_setItem(dComIfGs_getSelectItem(i_btnIdx), i_itemNo);
dComIfGp_setItem(dComIfGs_getSelectItem(i_btnIdx), i_itemNo);
dComIfGp_setSelectItem(i_btnIdx);
@@ -141,7 +139,7 @@ void dSv_player_item_c::setEquipBottleItemIn(u8 i_itemNo) {
} else {
return;
}
u8 invIdx = dComIfGs_getSelectItem(btnIdx);
if (invIdx < 0xE) {
return;
@@ -149,9 +147,9 @@ void dSv_player_item_c::setEquipBottleItemIn(u8 i_itemNo) {
if (invIdx > 0x11) {
return;
}
mItems[invIdx] = i_itemNo;
dComIfGs_setItem(dComIfGs_getSelectItem(btnIdx), i_itemNo);
dComIfGp_setItem(dComIfGs_getSelectItem(btnIdx), i_itemNo);
dComIfGp_setSelectItem(btnIdx);
@@ -429,7 +427,7 @@ void dSv_player_bag_item_c::setBaitItemChange(u8 i_itemNo) {
} else {
return;
}
u8 invIdx = dComIfGs_getSelectItem(btnIdx);
if (invIdx < 0x24) {
return;
@@ -437,7 +435,7 @@ void dSv_player_bag_item_c::setBaitItemChange(u8 i_itemNo) {
if (invIdx >= 0x2C) {
return;
}
dComIfGs_setItem(dComIfGs_getSelectItem(btnIdx), i_itemNo);
dComIfGp_setItem(dComIfGs_getSelectItem(btnIdx), i_itemNo);
dComIfGp_setSelectItem(btnIdx);
@@ -448,7 +446,7 @@ void dSv_player_bag_item_c::setBaitItemChange(u8 i_btnIdx, u8 i_itemNo) {
if (i_btnIdx > 2) {
return;
}
u8 invIdx = dComIfGs_getSelectItem(i_btnIdx);
if (invIdx < 0x24) {
return;
@@ -456,7 +454,7 @@ void dSv_player_bag_item_c::setBaitItemChange(u8 i_btnIdx, u8 i_itemNo) {
if (invIdx >= 0x2C) {
return;
}
dComIfGs_setItem(dComIfGs_getSelectItem(i_btnIdx), i_itemNo);
dComIfGp_setItem(dComIfGs_getSelectItem(i_btnIdx), i_itemNo);
dComIfGp_setSelectItem(i_btnIdx);
@@ -474,7 +472,7 @@ void dSv_player_bag_item_c::setBaitItemEmpty() {
} else {
return;
}
u8 invIdx = dComIfGs_getSelectItem(btnIdx);
if (invIdx < 0x24) {
return;
@@ -482,11 +480,11 @@ void dSv_player_bag_item_c::setBaitItemEmpty() {
if (invIdx >= 0x2C) {
return;
}
int baitSlotIdx = invIdx - 0x24;
u8 num = dComIfGs_getBaitNum(baitSlotIdx);
u8 itemNo = dComIfGp_getSelectItem(btnIdx);
if (itemNo == dItem_HYOI_PEAR_e) {
u8 num = dComIfGs_getBaitNum(baitSlotIdx);
setBaitItemChange(dItem_NONE_e);
@@ -507,7 +505,7 @@ void dSv_player_bag_item_c::setBaitItemEmpty(u8 i_btnIdx) {
if (i_btnIdx > 2) {
return;
}
u8 invIdx = dComIfGs_getSelectItem(i_btnIdx);
if (invIdx < 0x24) {
return;
@@ -515,11 +513,11 @@ void dSv_player_bag_item_c::setBaitItemEmpty(u8 i_btnIdx) {
if (invIdx >= 0x2C) {
return;
}
int baitSlotIdx = invIdx - 0x24;
u8 num = dComIfGs_getBaitNum(baitSlotIdx);
u8 itemNo = dComIfGp_getSelectItem(i_btnIdx);
if (itemNo == dItem_HYOI_PEAR_e) {
u8 num = dComIfGs_getBaitNum(baitSlotIdx);
setBaitItemChange(i_btnIdx, dItem_NONE_e);
@@ -578,7 +576,7 @@ void dSv_player_bag_item_c::setReserveItemChange(u8 i_itemNo) {
} else {
return;
}
u8 invIdx = dComIfGs_getSelectItem(btnIdx);
if (invIdx < 0x30) {
return;
@@ -586,7 +584,7 @@ void dSv_player_bag_item_c::setReserveItemChange(u8 i_itemNo) {
if (invIdx >= 0x38) {
return;
}
dComIfGs_setItem(dComIfGs_getSelectItem(btnIdx), i_itemNo);
dComIfGp_setItem(dComIfGs_getSelectItem(btnIdx), i_itemNo);
dComIfGp_setSelectItem(btnIdx);
@@ -597,7 +595,7 @@ void dSv_player_bag_item_c::setReserveItemChange(u8 i_btnIdx, u8 i_itemNo) {
if (i_btnIdx > 2) {
return;
}
u8 invIdx = dComIfGs_getSelectItem(i_btnIdx);
if (invIdx < 0x30) {
return;
@@ -605,7 +603,7 @@ void dSv_player_bag_item_c::setReserveItemChange(u8 i_btnIdx, u8 i_itemNo) {
if (invIdx >= 0x38) {
return;
}
dComIfGs_setItem(dComIfGs_getSelectItem(i_btnIdx), i_itemNo);
dComIfGp_setItem(dComIfGs_getSelectItem(i_btnIdx), i_itemNo);
dComIfGp_setSelectItem(i_btnIdx);
@@ -1355,61 +1353,61 @@ void dSv_info_c::reinit() {
0x84FF, 0x83FF, 0x82FF, 0x81FF, 0x80FF};
static u16 l_onEventBit[] = {0x2F08, 0x2F04, 0x2F02, 0x3A01, 0x3401};
u8* r29 = new u8[ARRAY_SIZE(l_holdEventReg)];
for (int i = 0; i < ARRAY_SIZE(l_holdEventReg); i++) {
r29[i] = dComIfGs_getEventReg(l_holdEventReg[i]);
}
u8 clearCount = dComIfGs_getClearCount();
char name[17];
strcpy(name, dComIfGs_getPlayerName());
u8 attnType = dComIfGs_getOptAttentionType();
u8 ruby = dComIfGs_getOptRuby();
u8 sound = dComIfGs_getOptSound();
u8 vib = dComIfGs_getOptVibration();
u8 pictureNum = dComIfGs_getPictureNum();
u8 r27 = dComIfGs_getEventReg(0x89FF);
init();
for (int i = 0; i < ARRAY_SIZE(l_holdEventReg); i++) {
dComIfGs_setEventReg(l_holdEventReg[i], r29[i]);
}
for (int i = 0; i < ARRAY_SIZE(l_onEventBit); i++) {
dComIfGs_onEventBit(l_onEventBit[i]);
}
dComIfGs_setEventReg(0xC407, 7);
dComIfGs_setClearCount(clearCount);
dComIfGs_onSaveTbox(dSv_save_c::STAGE_MISC, 0x00);
dComIfGs_onSaveSwitch(dSv_save_c::STAGE_SEA, 0x47);
dComIfGs_onSaveSwitch(dSv_save_c::STAGE_SEA, 0x5E);
dComIfGs_setPlayerName(name);
dComIfGs_setOptAttentionType(attnType);
dComIfGs_setOptRuby(ruby);
dComIfGs_setOptSound(sound);
dComIfGs_setOptVibration(vib);
dComIfGs_setRandomSalvagePoint(3);
dComIfGs_setItem(0x8, CAMERA2);
dComIfGp_setItem(0x8, CAMERA2);
dComIfGs_onGetItem(0x8, 0);
dComIfGs_onGetItem(0x8, 1);
dComIfGs_setItem(dInvSlot_CAMERA_e, CAMERA2);
dComIfGp_setItem(dInvSlot_CAMERA_e, CAMERA2);
dComIfGs_onGetItem(dInvSlot_CAMERA_e, 0);
dComIfGs_onGetItem(dInvSlot_CAMERA_e, 1);
dComIfGs_setPictureNum(pictureNum);
dComIfGs_setEventReg(0x89FF, r27);
}
@@ -1613,7 +1611,7 @@ BOOL dSv_info_c::isActor(int i_id, int i_roomNo) {
if (0 > i_id || i_id >= dSv_zoneActor_c::ACTOR_MAX) {
JUT_ASSERT(VERSION_SELECT(3717, 3744, 3744), 0 <= i_id && i_id < dSv_zoneActor_c::ACTOR_MAX);
}
JUT_ASSERT(VERSION_SELECT(3719, 3746, 3746), 0 <= i_roomNo && i_roomNo < 64);
int zoneNo = dComIfGp_roomControl_getZoneNo(i_roomNo);
@@ -1632,52 +1630,52 @@ int dSv_info_c::memory_to_card(char* i_cardPtr, int i_dataNum) {
char* buffer_start;
char* buffer = i_cardPtr + i_dataNum * ALIGN_NEXT(dSv_save_c::PACKED_STRUCT_SIZE, 0x10);
buffer_start = buffer;
memcpy(buffer, dComIfGs_getpPlayerStatusA(), sizeof(dSv_player_status_a_c));
dSv_player_status_a_c* status_a = (dSv_player_status_a_c*)buffer;
if (status_a->getLife() < 0xC) {
status_a->setLife(0xC);
}
buffer += sizeof(dSv_player_status_a_c);
memcpy(buffer, dComIfGs_getpPlayerStatusB(), sizeof(dSv_player_status_b_c));
dSv_player_status_b_c* status_b = (dSv_player_status_b_c*)buffer;
status_b->setDateIpl(OSGetTime());
buffer += sizeof(dSv_player_status_b_c);
memcpy(buffer, dComIfGs_getpPlayerReturnPlace(), sizeof(dSv_player_return_place_c));
buffer += sizeof(dSv_player_return_place_c);
memcpy(buffer, dComIfGs_getpItem(), sizeof(dSv_player_item_c));
buffer += sizeof(dSv_player_item_c);
memcpy(buffer, dComIfGs_getpGetItem(), sizeof(dSv_player_get_item_c));
buffer += sizeof(dSv_player_get_item_c);
memcpy(buffer, dComIfGs_getpItemRecord(), sizeof(dSv_player_item_record_c));
buffer += sizeof(dSv_player_item_record_c);
memcpy(buffer, dComIfGs_getpItemMax(), sizeof(dSv_player_item_max_c));
buffer += sizeof(dSv_player_item_max_c);
memcpy(buffer, dComIfGs_getpBagItem(), sizeof(dSv_player_bag_item_c));
buffer += sizeof(dSv_player_bag_item_c);
memcpy(buffer, dComIfGs_getpGetBagItem(), sizeof(dSv_player_get_bag_item_c));
buffer += sizeof(dSv_player_get_bag_item_c);
memcpy(buffer, dComIfGs_getpBagItemRecord(), sizeof(dSv_player_bag_item_record_c));
buffer += sizeof(dSv_player_bag_item_record_c);
memcpy(buffer, dComIfGs_getpCollect(), sizeof(dSv_player_collect_c));
buffer += sizeof(dSv_player_collect_c);
memcpy(buffer, dComIfGs_getpMap(), sizeof(dSv_player_map_c));
buffer += sizeof(dSv_player_map_c);
memcpy(buffer, dComIfGs_getpPlayerInfo(), sizeof(dSv_player_info_c));
buffer += sizeof(dSv_player_info_c);
memcpy(buffer, dComIfGs_getpConfig(), sizeof(dSv_player_config_c));
buffer += sizeof(dSv_player_config_c);
#if VERSION == VERSION_JPN
@@ -1687,27 +1685,27 @@ int dSv_info_c::memory_to_card(char* i_cardPtr, int i_dataNum) {
OSSetSoundMode(1);
}
#endif
memcpy(buffer, dComIfGs_getpPriest(), sizeof(dSv_player_priest_c));
buffer += sizeof(dSv_player_priest_c);
for (int i = 0; i < 4; i++) {
memcpy(buffer, dComIfGs_getpPlayerStatusC(i), sizeof(dSv_player_status_c_c));
buffer += sizeof(dSv_player_status_c_c);
}
memcpy(buffer, dComIfGs_getPCourseInfo(), sizeof(dSv_memory_c) * dSv_save_c::STAGE_MAX);
buffer += sizeof(dSv_memory_c) * dSv_save_c::STAGE_MAX;
memcpy(buffer, dComIfGs_getPOcean(), sizeof(dSv_ocean_c));
buffer += sizeof(dSv_ocean_c);
memcpy(buffer, dComIfGs_getPEvent(), sizeof(dSv_event_c));
buffer += sizeof(dSv_event_c);
memcpy(buffer, dComIfGs_getPReserve(), sizeof(dSv_reserve_c));
buffer += sizeof(dSv_reserve_c);
s32 save_size = buffer - buffer_start;
if (save_size > dSv_save_c::PACKED_STRUCT_SIZE) {
printf("SAVE size over(%d/%d)\n", dSv_save_c::PACKED_STRUCT_SIZE, save_size);
@@ -1723,46 +1721,46 @@ int dSv_info_c::card_to_memory(char* i_cardPtr, int i_dataNum) {
char* buffer_start;
char* buffer = i_cardPtr + i_dataNum * ALIGN_NEXT(dSv_save_c::PACKED_STRUCT_SIZE, 0x10);
buffer_start = buffer;
memcpy(dComIfGs_getpPlayerStatusA(), buffer, sizeof(dSv_player_status_a_c));
buffer += sizeof(dSv_player_status_a_c);
memcpy(dComIfGs_getpPlayerStatusB(), buffer, sizeof(dSv_player_status_b_c));
buffer += sizeof(dSv_player_status_b_c);
memcpy(dComIfGs_getpPlayerReturnPlace(), buffer, sizeof(dSv_player_return_place_c));
buffer += sizeof(dSv_player_return_place_c);
memcpy(dComIfGs_getpItem(), buffer, sizeof(dSv_player_item_c));
buffer += sizeof(dSv_player_item_c);
memcpy(dComIfGs_getpGetItem(), buffer, sizeof(dSv_player_get_item_c));
buffer += sizeof(dSv_player_get_item_c);
memcpy(dComIfGs_getpItemRecord(), buffer, sizeof(dSv_player_item_record_c));
buffer += sizeof(dSv_player_item_record_c);
memcpy(dComIfGs_getpItemMax(), buffer, sizeof(dSv_player_item_max_c));
buffer += sizeof(dSv_player_item_max_c);
memcpy(dComIfGs_getpBagItem(), buffer, sizeof(dSv_player_bag_item_c));
buffer += sizeof(dSv_player_bag_item_c);
memcpy(dComIfGs_getpGetBagItem(), buffer, sizeof(dSv_player_get_bag_item_c));
buffer += sizeof(dSv_player_get_bag_item_c);
memcpy(dComIfGs_getpBagItemRecord(), buffer, sizeof(dSv_player_bag_item_record_c));
buffer += sizeof(dSv_player_bag_item_record_c);
memcpy(dComIfGs_getpCollect(), buffer, sizeof(dSv_player_collect_c));
buffer += sizeof(dSv_player_collect_c);
memcpy(dComIfGs_getpMap(), buffer, sizeof(dSv_player_map_c));
buffer += sizeof(dSv_player_map_c);
memcpy(dComIfGs_getpPlayerInfo(), buffer, sizeof(dSv_player_info_c));
buffer += sizeof(dSv_player_info_c);
memcpy(dComIfGs_getpConfig(), buffer, sizeof(dSv_player_config_c));
buffer += sizeof(dSv_player_config_c);
if (OSGetSoundMode() == 0) {
@@ -1774,27 +1772,27 @@ int dSv_info_c::card_to_memory(char* i_cardPtr, int i_dataNum) {
dComIfGs_setOptSound(1);
mDoAud_setOutputMode(1);
}
memcpy(dComIfGs_getpPriest(), buffer, sizeof(dSv_player_priest_c));
buffer += sizeof(dSv_player_priest_c);
for (int i = 0; i < 4; i++) {
memcpy(dComIfGs_getpPlayerStatusC(i), buffer, sizeof(dSv_player_status_c_c));
buffer += sizeof(dSv_player_status_c_c);
}
memcpy(dComIfGs_getPCourseInfo(), buffer, sizeof(dSv_memory_c) * dSv_save_c::STAGE_MAX);
buffer += sizeof(dSv_memory_c) * dSv_save_c::STAGE_MAX;
memcpy(dComIfGs_getPOcean(), buffer, sizeof(dSv_ocean_c));
buffer += sizeof(dSv_ocean_c);
memcpy(dComIfGs_getPEvent(), buffer, sizeof(dSv_event_c));
buffer += sizeof(dSv_event_c);
memcpy(dComIfGs_getPReserve(), buffer, sizeof(dSv_reserve_c));
buffer += sizeof(dSv_reserve_c);
s32 load_size = buffer - buffer_start;
if (load_size > dSv_save_c::PACKED_STRUCT_SIZE) {
printf("LOAD size over(%d/%d)\n", dSv_save_c::PACKED_STRUCT_SIZE, load_size);
@@ -1811,7 +1809,7 @@ int dSv_info_c::initdata_to_card(char* i_cardPtr, int i_dataNum) {
char* buffer = i_cardPtr + i_dataNum * ALIGN_NEXT(dSv_save_c::PACKED_STRUCT_SIZE, 0x10);
char* buffer_start = buffer;
char* buffer_src;
dSv_player_status_a_c status_a;
status_a.init();
buffer_src = (char*)&status_a;
@@ -1908,7 +1906,7 @@ int dSv_info_c::initdata_to_card(char* i_cardPtr, int i_dataNum) {
memcpy(buffer, buffer_src, sizeof(dSv_player_status_c_c));
buffer += sizeof(dSv_player_status_c_c);
}
// Bug: It copies 16 instances of dSv_memory_c from the stack to the card, but only allocates and initializes 1.
// This means when it initializes an empty save slot in the memory card, all of the stage save tables except the
// first are filled with garbage data instead of all zeroes.
+1 -1
View File
@@ -1344,7 +1344,7 @@ u8 dShop_BoughtErrorStatus(ShopItems_c* shopItems, int param_2, int param_3) {
if (buyCond & Shop_BuyCond_MUST_OWN_ITEM_e) {
if (itemData->mMustOwnItemNo == dItem_BOW_e) {
if (dComIfGs_getItem(0xC) == dItem_NONE_e) {
if (dComIfGs_getItem(dInvSlot_BOW_e) == dItem_NONE_e) {
errorStatus |= Shop_BuyCond_MUST_OWN_ITEM_e;
}
} else {