diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/adventure_log.c | 4 | ||||
-rw-r--r-- | src/code_801AFA4.c | 15 | ||||
-rw-r--r-- | src/code_801B3C0.c | 14 | ||||
-rw-r--r-- | src/code_801C620.c | 15 | ||||
-rw-r--r-- | src/code_801D760.c | 6 | ||||
-rw-r--r-- | src/code_8057824.c | 6 | ||||
-rw-r--r-- | src/code_80958E8.c | 6 | ||||
-rw-r--r-- | src/debug_menu_mid.c | 16 | ||||
-rw-r--r-- | src/felicity_bank_1.c | 18 | ||||
-rw-r--r-- | src/friend_area_action_menu.c | 6 | ||||
-rw-r--r-- | src/friend_area_action_menu_1.c | 22 | ||||
-rw-r--r-- | src/friend_rescue.c | 2 | ||||
-rw-r--r-- | src/friend_rescue_1.c | 6 | ||||
-rw-r--r-- | src/items.c | 116 | ||||
-rw-r--r-- | src/items_1.c | 413 | ||||
-rw-r--r-- | src/kangaskhan_storage_2.c | 24 | ||||
-rw-r--r-- | src/kecleon_items_1.c | 32 | ||||
-rw-r--r-- | src/other_menus.c | 6 | ||||
-rw-r--r-- | src/save.c | 6 | ||||
-rw-r--r-- | src/trade_items_menu.c | 18 | ||||
-rw-r--r-- | src/wonder_mail.c | 12 |
21 files changed, 584 insertions, 179 deletions
diff --git a/src/adventure_log.c b/src/adventure_log.c index 41419f6..cb20682 100644 --- a/src/adventure_log.c +++ b/src/adventure_log.c @@ -248,7 +248,7 @@ void DisplayAdventureLog(void) default: break; } - sub_8014FF0(8, sub_8013800(gAdventureLog, counter), GetAdventureLogLine(uVar6), gAdventureLog->unk34, 0); + xxx_format_and_draw(8, sub_8013800(gAdventureLog, counter), GetAdventureLogLine(uVar6), gAdventureLog->unk34, 0); } else { @@ -389,7 +389,7 @@ void DisplayAdventureLog(void) "\tstr r0, [sp]\n" "\tmovs r0, 0x8\n" "\tadds r1, r5, 0\n" - "\tbl sub_8014FF0\n" + "\tbl xxx_format_and_draw\n" "\tb _08032234\n" "\t.align 2, 0\n" "_08032214: .4byte gUnknown_202DE30\n" diff --git a/src/code_801AFA4.c b/src/code_801AFA4.c index 4ad68a8..c9d71dd 100644 --- a/src/code_801AFA4.c +++ b/src/code_801AFA4.c @@ -2,11 +2,10 @@ #include "memory.h" #include "text.h" #include "item.h" -#include "gUnknown_203B460.h" +#include "team_inventory.h" -extern struct unkStruct_203B460 *gUnknown_203B460; +extern struct TeamInventory *gTeamInventory_203B460; -extern u16 GetItemMove(u8); extern void sub_8092C84(u8 *, u16); extern void sub_8099690(u32); extern u32 sub_801B2F4(void); @@ -25,7 +24,7 @@ extern u32 gUnknown_80DBA0C; extern u8 gUnknown_202E1C8[0x50]; -extern bool8 sub_80915A0(u8); +extern bool8 IsHMItem(u8); extern void DisplayGulpinDialogueSprite(u32, u32, u32 *); extern void sub_801B178(void); extern void sub_8094060(u32 *, u32 *); @@ -60,7 +59,7 @@ u32 sub_801AFA4(u32 r0) { gUnknown_203B22C = MemoryAlloc(0xA4, 8); gUnknown_203B22C->unk4 = r0; - gUnknown_203B22C->unk8 = gUnknown_203B460->fill0[r0].itemIndex; + gUnknown_203B22C->unk8 = gTeamInventory_203B460->teamItems[r0].itemIndex; gUnknown_203B22C->unkA = GetItemMove(gUnknown_203B22C->unk8); sub_8092C84(gUnknown_202E1C8, gUnknown_203B22C->unkA); sub_8099690(0); @@ -130,10 +129,10 @@ void sub_801B080(void) break; case 2: sub_8094060(&gUnknown_203B22C->unkC, &gUnknown_203B22C->unk5C->unk2C); - if(!sub_80915A0(gUnknown_203B22C->unk8)) + if(!IsHMItem(gUnknown_203B22C->unk8)) { - gUnknown_203B460->fill0[gUnknown_203B22C->unk4].numItems = gUnknown_203B22C->unk8 - 0x7D; - gUnknown_203B460->fill0[gUnknown_203B22C->unk4].itemIndex = 0x7C; + gTeamInventory_203B460->teamItems[gUnknown_203B22C->unk4].numItems = gUnknown_203B22C->unk8 - 0x7D; + gTeamInventory_203B460->teamItems[gUnknown_203B22C->unk4].itemIndex = ITEM_ID_USED_TM; } PlaySound(0x9C << 1); // #+CM$m8#R learned diff --git a/src/code_801B3C0.c b/src/code_801B3C0.c index da993d5..502ce60 100644 --- a/src/code_801B3C0.c +++ b/src/code_801B3C0.c @@ -3,7 +3,7 @@ #include "input.h" #include "memory.h" #include "item.h" -#include "gUnknown_203B460.h" +#include "team_inventory.h" struct subStruct_203B240 { @@ -16,7 +16,7 @@ struct unkStruct_203B230 { // size: 0x94 s32 state; - struct ItemStruct_203B460 unk4; + struct ItemSlot unk4; s32 unk8; s32 unkC; struct subStruct_203B240 *unk10[2]; @@ -36,11 +36,11 @@ extern u8 gUnknown_80DBA4C[]; extern void sub_8008C54(u32); extern void sub_80073E0(u32); extern void sub_80073B8(u32); -extern void sub_8014FF0(u32, u32, u8 *, u32, u32); +extern void xxx_format_and_draw(u32, u32, u8 *, u32, u32); extern void PlayMenuSoundEffect(u32); extern void sub_8013F84(void); extern u32 sub_8012A64(u32 *, u32); -extern s32 sub_80913E0(struct ItemStruct_203B460 *, u32, struct subStruct_203B240 **); +extern s32 sub_80913E0(struct ItemSlot *, u32, struct subStruct_203B240 **); extern void sub_801317C(u32 *); extern void sub_80140B4(struct UnkTextStruct2 *); @@ -52,7 +52,7 @@ void sub_801B590(); void sub_801B480(); -u32 sub_801B3C0(struct ItemStruct_203B460 *param_1) +u32 sub_801B3C0(struct ItemSlot *param_1) { ResetSprites(1); gUnknown_203B230 = MemoryAlloc(sizeof(struct unkStruct_203B230),8); @@ -115,8 +115,8 @@ void sub_801B480(void) sub_80073B8(gUnknown_203B230->unk24); preload = gUnknown_203B230->unk10[gUnknown_203B230->unk8]; strcpy(gAvailablePokemonNames, preload->pokeName); - sub_8014FF0(16, 0, gUnknown_80DBA4C, gUnknown_203B230->unk24, 0); // $m0 - sub_8014FF0(4, 16, gUnknown_203B230->unk10[gUnknown_203B230->unk8]->unk4, gUnknown_203B230->unk24, 0); + xxx_format_and_draw(16, 0, gUnknown_80DBA4C, gUnknown_203B230->unk24, 0); // $m0 + xxx_format_and_draw(4, 16, gUnknown_203B230->unk10[gUnknown_203B230->unk8]->unk4, gUnknown_203B230->unk24, 0); sub_80073E0(gUnknown_203B230->unk24); break; case 2: diff --git a/src/code_801C620.c b/src/code_801C620.c index 8272340..7ae8c6a 100644 --- a/src/code_801C620.c +++ b/src/code_801C620.c @@ -2,12 +2,7 @@ #include "input.h" #include "memory.h" #include "text.h" - -struct subStruct_203B240 -{ - char * unk0; - char * unk4; -}; +#include "subStruct_203B240.h" struct unkStruct_203B240 { @@ -39,7 +34,7 @@ extern void sub_801317C(u32 *); extern void sub_80140B4(struct UnkTextStruct2 *); -extern void sub_8014FF0(u32, u32, char *, u32, u32); +extern void xxx_format_and_draw(u32, u32, char *, u32, u32); extern void sub_8008C54(u32); extern void sub_80073B8(u32); extern void xxx_call_draw_string(u32, u32, char *, u32, u32); @@ -116,7 +111,7 @@ void sub_801C6E4(void) sub_80073B8(gUnknown_203B240->unk24); skillName = GetIQSkillName(gUnknown_203B240->unk4); strcpy(gUnknown_202DE58,skillName); - sub_8014FF0(16,0,gUnknown_80DBE2C,0,0); // $i0 + xxx_format_and_draw(16,0,gUnknown_80DBE2C,0,0); // $i0 xxx_call_draw_string(8,16,GetIQSkillDescription(gUnknown_203B240->unk4),gUnknown_203B240->unk24,0); sub_80073E0(gUnknown_203B240->unk24); gUnknown_203B240->unkC = sub_8097DF0(GetIQSkillDescription(gUnknown_203B240->unk4),gUnknown_203B240->unk10); @@ -127,8 +122,8 @@ void sub_801C6E4(void) sub_80073B8(gUnknown_203B240->unk24); preload = gUnknown_203B240->unk10[gUnknown_203B240->unk8]; strcpy(gAvailablePokemonNames,preload->unk0); - sub_8014FF0(16,0,gUnknown_80DBE30,gUnknown_203B240->unk24,0); // $m0 - sub_8014FF0(4,16,gUnknown_203B240->unk10[gUnknown_203B240->unk8]->unk4, gUnknown_203B240->unk24,0); + xxx_format_and_draw(16,0,gUnknown_80DBE30,gUnknown_203B240->unk24,0); // $m0 + xxx_format_and_draw(4,16,gUnknown_203B240->unk10[gUnknown_203B240->unk8]->unk4, gUnknown_203B240->unk24,0); sub_80073E0(gUnknown_203B240->unk24); break; case 2: diff --git a/src/code_801D760.c b/src/code_801D760.c index e499d47..f48e717 100644 --- a/src/code_801D760.c +++ b/src/code_801D760.c @@ -3,7 +3,7 @@ #include "constants/friend_area.h" #include "file_system.h" #include "item.h" -#include "gUnknown_203B460.h" +#include "team_inventory.h" #include "memory.h" #include "input.h" #include "text.h" @@ -95,7 +95,7 @@ struct unk_203B250 struct unk_203B250 *gUnknown_203B250; -extern struct unkStruct_203B460 *gUnknown_203B460; +extern struct TeamInventory *gTeamInventory_203B460; void sub_801D680(void) { @@ -332,7 +332,7 @@ void sub_801D894(void) rank = GetRescueTeamRank(); ExpandPlaceholdersBuffer(buffer, r5, GetTeamRankString(rank), GetTeamRankPts()); xxx_call_draw_string(32, 4, buffer, 2, 0); - ExpandPlaceholdersBuffer(buffer, &gUnknown_80DBF4C, gUnknown_203B460->teamMoney); + ExpandPlaceholdersBuffer(buffer, &gUnknown_80DBF4C, gTeamInventory_203B460->teamMoney); xxx_call_draw_string(32, 18, buffer, 2, 0); sub_80073E0(2); } diff --git a/src/code_8057824.c b/src/code_8057824.c index 27a546f..248709f 100644 --- a/src/code_8057824.c +++ b/src/code_8057824.c @@ -30,8 +30,8 @@ extern void sub_806F370(struct unkDungeon_8041D5C *r0, struct unkDungeon_8041D5C extern u32 gUnknown_80FD018; -extern s16 sub_8057600(u32, u32); -extern u32 sub_8092B00(u32); +extern s16 sub_8057600(void*, u32); +extern u32 sub_8092B00(void*); bool32 sub_8057824(struct unkDungeon_8041D5C *param_1, struct unkDungeon_8041D5C *param_2) { @@ -100,7 +100,7 @@ bool32 sub_8057954(struct unkDungeon_8041D5C *param_1, struct unkDungeon_8041D5C return TRUE; } -bool32 sub_8057974(struct unkDungeon_8041D5C *param_1, struct unkDungeon_8041D5C *param_2, u32 param_3, u32 param_4) +bool32 sub_8057974(struct unkDungeon_8041D5C *param_1, struct unkDungeon_8041D5C *param_2, void* param_3, u32 param_4) { s32 newHP; u8 local_24; diff --git a/src/code_80958E8.c b/src/code_80958E8.c index 457da51..c8fae63 100644 --- a/src/code_80958E8.c +++ b/src/code_80958E8.c @@ -35,7 +35,7 @@ extern bool8 sub_809017C(u8 *); extern s16 sub_808E770(s16); extern bool8 sub_8092040(u8); extern u8 sub_803C1D0(u8 *, u8); -extern bool8 sub_8091524(u8); +extern bool8 IsNotMoneyOrUsedTMItem(u8); extern u8 sub_8091E60(u8 ,u8 ); extern u32 GetMaxItemCount(u8); extern u8 sub_803C0DC(s16); @@ -146,9 +146,9 @@ bool8 ValidateWonderMail(struct WonderMail *data) if(sub_8092040(data->targetItem)) return FALSE; - if(sub_8090A60(data->targetItem)) + if(IsThrowableItem(data->targetItem)) return FALSE; - if(!sub_8091524(data->targetItem)) + if(!IsNotMoneyOrUsedTMItem(data->targetItem)) return FALSE; // Item finding diff --git a/src/debug_menu_mid.c b/src/debug_menu_mid.c index 3ed684c..b479cca 100644 --- a/src/debug_menu_mid.c +++ b/src/debug_menu_mid.c @@ -1,7 +1,7 @@ #include "global.h" #include "input.h" #include "item.h" -#include "gUnknown_203B460.h" +#include "team_inventory.h" #include "memory.h" #include "menu.h" #include "text.h" @@ -49,8 +49,8 @@ struct unkStruct_203B3F4 extern struct unkStruct_203B3F4 *gUnknown_203B3F4; -extern struct unkStruct_203B460 *gUnknown_203B460; -extern void sub_801B3C0(struct ItemStruct_203B460 *); +extern struct TeamInventory *gTeamInventory_203B460; +extern void sub_801B3C0(struct ItemSlot *); extern void sub_8013AA0(u32 *); extern struct UnkTextStruct2 gUnknown_80E7E34; @@ -73,7 +73,7 @@ extern void sub_8012EA4(u32 *, u32); extern void sub_80073E0(u32); extern void sub_8013C68(u32 *); extern void xxx_call_draw_string(s32, u32, const char *, u32, u32); -extern bool8 sub_8091524(u8); +extern bool8 IsNotMoneyOrUsedTMItem(u8); extern u32 sub_801CA08(u32); extern u8 sub_801CB24(); extern void sub_801CBB8(); @@ -181,7 +181,7 @@ void sub_803A51C(void) void sub_803A5A0(void) { - struct ItemStruct_203B460 auStack8; + struct ItemSlot auStack8; switch(gUnknown_203B3F0->state) { case 0: @@ -199,7 +199,7 @@ void sub_803A5A0(void) gUnknown_203B3F0->unkAC = 3; gUnknown_203B3F0->unkA4 = 0; gUnknown_203B3F0->unkA8 = 0x3e7; - gUnknown_203B3F0->unkA0 = gUnknown_203B460->unk50[gUnknown_203B3F0->itemIndex]; + gUnknown_203B3F0->unkA0 = gTeamInventory_203B460->unk50[gUnknown_203B3F0->itemIndex]; gUnknown_203B3F0->unkB0 = 1; gUnknown_203B3F0->unkB4 = &gUnknown_203B3F0->unkD8[1]; gUnknown_203B3F0->unkB8 = 0x2C; @@ -235,7 +235,7 @@ void sub_803A6F0(void) gUnknown_203B3F0->menus[0].text = &gDebug_NumberText; gUnknown_203B3F0->menus[0].menuAction = 2; gUnknown_203B3F0->unk8 = 2; - if (!sub_8091524(gUnknown_203B3F0->itemIndex)) { + if (!IsNotMoneyOrUsedTMItem(gUnknown_203B3F0->itemIndex)) { gUnknown_203B3F0->menus[0].menuAction = -1; gUnknown_203B3F0->unk8 = 3; } @@ -300,7 +300,7 @@ void sub_803A810(void) switch(sub_8013BBC(&gUnknown_203B3F0->unk9C)) { case 3: - gUnknown_203B460->unk50[gUnknown_203B3F0->itemIndex] = gUnknown_203B3F0->unk9C; + gTeamInventory_203B460->unk50[gUnknown_203B3F0->itemIndex] = gUnknown_203B3F0->unk9C; // Fallthrough needed to match case 2: sub_803A504(1); diff --git a/src/felicity_bank_1.c b/src/felicity_bank_1.c index fc769cb..ac7a1db 100644 --- a/src/felicity_bank_1.c +++ b/src/felicity_bank_1.c @@ -1,9 +1,9 @@ #include "global.h" #include "item.h" -#include "gUnknown_203B460.h" +#include "team_inventory.h" #include "felicity_bank.h" -extern struct unkStruct_203B460 *gUnknown_203B460; +extern struct TeamInventory *gTeamInventory_203B460; extern struct unkStruct_203B204 *gUnknown_203B204; extern u8 gUnknown_80DB738; @@ -61,8 +61,8 @@ void Felicity_DepositMoney(void) break; case 3: gUnknown_203B204->chosenAmount = gUnknown_203B204->unk64; - gUnknown_203B460->teamSavings += gUnknown_203B204->chosenAmount; - gUnknown_203B460->teamMoney -= gUnknown_203B204->chosenAmount; + gTeamInventory_203B460->teamSavings += gUnknown_203B204->chosenAmount; + gTeamInventory_203B460->teamMoney -= gUnknown_203B204->chosenAmount; PlaySound(0x14c); UpdateFelicityBankState(9); break; @@ -83,8 +83,8 @@ void Felicity_WithdrawMoney(void) break; case 3: gUnknown_203B204->chosenAmount = gUnknown_203B204->unk64; - gUnknown_203B460->teamMoney += gUnknown_203B204->chosenAmount; - gUnknown_203B460->teamSavings -= gUnknown_203B204->chosenAmount; + gTeamInventory_203B460->teamMoney += gUnknown_203B204->chosenAmount; + gTeamInventory_203B460->teamSavings -= gUnknown_203B204->chosenAmount; PlaySound(0x14c); UpdateFelicityBankState(0xc); break; @@ -134,9 +134,9 @@ void CreateFelicityMoneySavingsHeader(u32 param_1) sub_8008C54(param_1); sub_80073B8(param_1); xxx_call_draw_string(16, 4, gFelicityMoney, param_1, 0); - sub_8012BC4(96, 4, gUnknown_203B460->teamMoney, 5, 5, param_1); + sub_8012BC4(96, 4, gTeamInventory_203B460->teamMoney, 5, 5, param_1); xxx_call_draw_string(112, 4, gFelicitySavings, param_1, 0); - sub_8012BC4(200,4,gUnknown_203B460->teamSavings,7,5,param_1); + sub_8012BC4(200,4,gTeamInventory_203B460->teamSavings,7,5,param_1); sub_80073E0(param_1); } @@ -145,6 +145,6 @@ void DrawTeamMoneyBox(u32 param_1) sub_8008C54(param_1); sub_80073B8(param_1); xxx_call_draw_string(6, 0, &gUnknown_80DB738,param_1, 0); // Money - sub_8012BC4(42, 12, gUnknown_203B460->teamMoney, 5, 5, param_1); + sub_8012BC4(42, 12, gTeamInventory_203B460->teamMoney, 5, 5, param_1); sub_80073E0(param_1); } diff --git a/src/friend_area_action_menu.c b/src/friend_area_action_menu.c index 71e424b..24c0dfa 100644 --- a/src/friend_area_action_menu.c +++ b/src/friend_area_action_menu.c @@ -4,7 +4,7 @@ #include "input.h" #include "menu.h" #include "item.h" -#include "gUnknown_203B460.h" +#include "team_inventory.h" #include "friend_area_action_menu.h" extern struct unkStruct_203B2BC *gUnknown_203B2BC; @@ -33,7 +33,7 @@ extern void sub_801A5D8(u32, u32, u32, u32); extern void sub_801A8D0(u32); extern void sub_801A9E0(); extern void sub_801F1B0(u32, u32); -extern void sub_801B3C0(struct ItemStruct_203B460 *); +extern void sub_801B3C0(struct ItemSlot *); extern void sub_809401C(u32 *, u32 *); extern void sub_801EE10(u32, s16, u32 *, u32, u32, u32); @@ -167,7 +167,7 @@ void sub_802719C(void) void sub_8027274(void) { - struct ItemStruct_203B460 auStack12; + struct ItemSlot auStack12; switch(gUnknown_203B2BC->state) { case 0: diff --git a/src/friend_area_action_menu_1.c b/src/friend_area_action_menu_1.c index 86f7430..bff9997 100644 --- a/src/friend_area_action_menu_1.c +++ b/src/friend_area_action_menu_1.c @@ -3,11 +3,11 @@ #include "input.h" #include "menu.h" #include "item.h" -#include "gUnknown_203B460.h" +#include "team_inventory.h" #include "friend_area_action_menu.h" extern struct unkStruct_203B2BC *gUnknown_203B2BC; -extern struct unkStruct_203B460 *gUnknown_203B460; +extern struct TeamInventory *gTeamInventory_203B460; u32 sub_801B410(); void sub_801B450(); @@ -18,13 +18,13 @@ extern void sub_8027184(u32); extern u8 sub_8012FD8(u32 *r0); extern void sub_8013114(u32 *, s32 *); extern void PlaySound(u32); -extern void sub_80911F8(u32); -extern void sub_80910B4(); +extern void ShiftItemsDownFrom(u32); +extern void FillInventoryGaps(); extern void nullsub_104(); extern void sub_8091274(u8 *); extern void sub_801A928(); extern void sub_8099690(u32); -extern void sub_808D800(s16, struct ItemStruct_203B460_ALT *); +extern void sub_808D800(s16, struct ItemSlot_ALT *); extern u32 sub_801A8AC(); extern u32 sub_801A6E8(u32); @@ -57,14 +57,14 @@ void sub_8027B28(void) { case 3: gUnknown_203B2BC->unkC = sub_801A8AC(); - gUnknown_203B2BC->unk10.itemIndex = gUnknown_203B460->fill0[gUnknown_203B2BC->unkC].itemIndex; - gUnknown_203B2BC->unk10.numItems = gUnknown_203B460->fill0[gUnknown_203B2BC->unkC].numItems; + gUnknown_203B2BC->unk10.itemIndex = gTeamInventory_203B460->teamItems[gUnknown_203B2BC->unkC].itemIndex; + gUnknown_203B2BC->unk10.numItems = gTeamInventory_203B460->teamItems[gUnknown_203B2BC->unkC].numItems; sub_8027184(0xc); break; case 4: gUnknown_203B2BC->unkC = sub_801A8AC(); - gUnknown_203B2BC->unk10.itemIndex = gUnknown_203B460->fill0[gUnknown_203B2BC->unkC].itemIndex; - gUnknown_203B2BC->unk10.numItems = gUnknown_203B460->fill0[gUnknown_203B2BC->unkC].numItems; + gUnknown_203B2BC->unk10.itemIndex = gTeamInventory_203B460->teamItems[gUnknown_203B2BC->unkC].itemIndex; + gUnknown_203B2BC->unk10.numItems = gTeamInventory_203B460->teamItems[gUnknown_203B2BC->unkC].numItems; sub_8099690(0); sub_8027184(0xd); break; @@ -91,8 +91,8 @@ void sub_8027BD8(void) { case 10: PlaySound(0x14d); - sub_80911F8(gUnknown_203B2BC->unkC); - sub_80910B4(); + ShiftItemsDownFrom(gUnknown_203B2BC->unkC); + FillInventoryGaps(); if (gUnknown_203B2BC->unk14 != 0) { sub_8091274(&gUnknown_203B2BC->unk14); } diff --git a/src/friend_rescue.c b/src/friend_rescue.c index 15919d1..a93c317 100644 --- a/src/friend_rescue.c +++ b/src/friend_rescue.c @@ -1,7 +1,7 @@ #include "global.h" #include "text.h" #include "item.h" -#include "gUnknown_203B460.h" +#include "team_inventory.h" #include "friend_rescue.h" #include "pokemon.h" #include "memory.h" diff --git a/src/friend_rescue_1.c b/src/friend_rescue_1.c index ea33bb8..d66bc8c 100644 --- a/src/friend_rescue_1.c +++ b/src/friend_rescue_1.c @@ -4,11 +4,11 @@ #include "save.h" #include "memory.h" #include "input.h" -#include "gUnknown_203B460.h" +#include "team_inventory.h" #include "friend_rescue.h" #include "sub_8095228.h" -extern struct unkStruct_203B460 *gUnknown_203B460; +extern struct TeamInventory *gTeamInventory_203B460; extern void sub_80338C4(u32); extern s32 sub_80144A4(s32 *); @@ -176,7 +176,7 @@ void sub_8034F88(void) temp2 = sub_8095228(gUnknown_203B33C->unk218); if(gUnknown_203B33C->unk41C.itemIndex != 0) temp2->unk20 = gUnknown_203B33C->unk41C; - gUnknown_203B460->unk50[gUnknown_203B33C->unk41C.itemIndex]--; + gTeamInventory_203B460->unk50[gUnknown_203B33C->unk41C.itemIndex]--; sub_80338C4(0x75); break; case 7: diff --git a/src/items.c b/src/items.c index 1ddd5b4..f7bd24e 100644 --- a/src/items.c +++ b/src/items.c @@ -1,11 +1,11 @@ #include "global.h" #include "file_system.h" #include "item.h" -#include "gUnknown_203B460.h" +#include "team_inventory.h" #include "random.h" -extern struct unkStruct_203B460 *gUnknown_203B460; -extern struct unkStruct_203B460 gUnknown_20389A8; +extern struct TeamInventory *gTeamInventory_203B460; +extern struct TeamInventory gUnknown_20389A8; extern struct FileArchive gSystemFileArchive; extern const char gUnknown_8109764; @@ -15,60 +15,59 @@ EWRAM_DATA struct Item *gItemParametersData; extern void sub_8091840(u8); extern u8 GetItemType(u8); extern u32 GetItemUnkThrow(u8, u32); -extern s32 sub_80915D4(struct ItemStruct_203B460 *); -extern bool8 sub_80914E4(u8); -extern void sub_8090F58(u32, u8 *, struct ItemStruct_203B460 *, u32); +extern bool8 CanSellItem(u8); +extern void sub_8090F58(void*, u8 *, struct ItemSlot *, u32); void LoadItemParameters(void) { - gUnknown_203B460 = &gUnknown_20389A8; + gTeamInventory_203B460 = &gUnknown_20389A8; gItemParametersFile = OpenFileAndGetFileDataPtr(&gUnknown_8109764,&gSystemFileArchive); gItemParametersData = (struct Item *) gItemParametersFile->data; } -struct unkStruct_203B460 *GetMoneyItemsInfo(void) +struct TeamInventory *GetMoneyItemsInfo(void) { return &gUnknown_20389A8; } void InitializeMoneyItems(void) { - s32 iVar1; + s32 i; - for(iVar1 = 0; iVar1 < 0x14; iVar1++) + for(i = 0; i < 20; i++) { - gUnknown_203B460->fill0[iVar1].unk0 = 0; + gTeamInventory_203B460->teamItems[i].unk0 = 0; } - for(iVar1 = 0; iVar1 < 0xF0; iVar1++) + for(i = 0; i < 0xF0; i++) { - gUnknown_203B460->unk50[iVar1] = 0; + gTeamInventory_203B460->unk50[i] = 0; } - for(iVar1 = 0; iVar1 < 8; iVar1++) + for(i = 0; i < 8; i++) { - sub_8091840(iVar1); + sub_8091840(i); } - gUnknown_203B460->teamMoney = 0; - gUnknown_203B460->teamSavings = 0; + gTeamInventory_203B460->teamMoney = 0; + gTeamInventory_203B460->teamSavings = 0; } -s32 sub_8090A34(void) +s32 GetNumberOfFilledInventorySlots(void) { - s32 iVar2; - s32 iVar3; + s32 i; + s32 count; - iVar3 = 0; - for(iVar2 = 0; iVar2 < 0x14; iVar2++) + count = 0; + for(i = 0; i < 20; i++) { - if ((gUnknown_203B460->fill0[iVar2].unk0 & 1) != 0) { - iVar3++; + if ((gTeamInventory_203B460->teamItems[i].unk0 & 1) != 0) { + count++; } } - return iVar3; + return count; } -bool8 sub_8090A60(u8 itemIndex) +bool8 IsThrowableItem(u8 itemIndex) { if ((GetItemType(itemIndex) != ITEM_TYPE_THROWABLE) && (GetItemType(itemIndex) != ITEM_TYPE_ROCK)) { return FALSE; @@ -78,15 +77,15 @@ bool8 sub_8090A60(u8 itemIndex) } } -void sub_8090A8C(struct ItemStruct_203B460 *param_1,u8 itemIndex,u8 param_3) +void sub_8090A8C(struct ItemSlot *param_1,u8 itemIndex,u8 param_3) { u32 uVar3; u32 uVar4; - if (itemIndex != 0) { + if (itemIndex != ITEM_ID_NOTHING) { param_1->unk0 = 1; param_1->itemIndex = itemIndex; - if (sub_8090A60(itemIndex)) { + if (IsThrowableItem(itemIndex)) { uVar3 = GetItemUnkThrow(itemIndex,0); uVar4 = GetItemUnkThrow(itemIndex,1); param_1->numItems = RandomRange(uVar3,uVar4); @@ -105,19 +104,19 @@ void sub_8090A8C(struct ItemStruct_203B460 *param_1,u8 itemIndex,u8 param_3) } else { param_1->unk0 = 0; - param_1->itemIndex = 0; + param_1->itemIndex = ITEM_ID_NOTHING; param_1->numItems = 0; } } -void sub_8090B08(struct ItemStruct_203B460_ALT *param_1,u8 itemIndex) +void sub_8090B08(struct ItemSlot_ALT *param_1,u8 itemIndex) { u32 uVar2; u32 uVar3; - if (itemIndex != 0) { + if (itemIndex != ITEM_ID_NOTHING) { param_1->itemIndex = itemIndex; - if (sub_8090A60(itemIndex)) { + if (IsThrowableItem(itemIndex)) { uVar2 = GetItemUnkThrow(itemIndex,0); uVar3 = GetItemUnkThrow(itemIndex,1); param_1->numItems = RandomRange(uVar2,uVar3); @@ -136,22 +135,22 @@ void sub_8090B08(struct ItemStruct_203B460_ALT *param_1,u8 itemIndex) } } -void sub_8090B64(struct ItemStruct_203B460 *param_1, struct ItemStruct_203B460_ALT *param_2) +void sub_8090B64(struct ItemSlot *param_1, struct ItemSlot_ALT *param_2) { u8 r6; - if(param_2->itemIndex != 0) + if(param_2->itemIndex != ITEM_ID_NOTHING) { param_1->unk0 = 1; param_1->itemIndex = param_2->itemIndex; - r6 = sub_8090A60(param_1->itemIndex); + r6 = IsThrowableItem(param_1->itemIndex); if(r6 != 0 || GetItemType(param_1->itemIndex) == ITEM_TYPE_MONEY) { param_1->numItems = param_2->numItems; } else { - if(param_1->itemIndex == 0x7C) + if(param_1->itemIndex == ITEM_ID_USED_TM) { param_1->numItems = param_2->numItems; } @@ -163,20 +162,20 @@ void sub_8090B64(struct ItemStruct_203B460 *param_1, struct ItemStruct_203B460_A } else { - param_1->itemIndex = 0; + param_1->itemIndex = ITEM_ID_NOTHING; param_1->numItems = 0; param_1->unk0 = 0; } } -void sub_8090BB0(struct ItemStruct_203B460_ALT *param_1,struct ItemStruct_203B460 *param_2) +void sub_8090BB0(struct ItemSlot_ALT *param_1,struct ItemSlot *param_2) { if ((param_2->unk0 & 1) != 0) { param_1->itemIndex = param_2->itemIndex; param_1->numItems = param_2->numItems; } else { - param_1->itemIndex = 0; + param_1->itemIndex = ITEM_ID_NOTHING; } } @@ -185,13 +184,13 @@ u8 GetItemType(u8 index) return gItemParametersData[index].type; } -s32 sub_8090BE4(struct ItemStruct_203B460 *param_1) +s32 GetStackBuyValue(struct ItemSlot *param_1) { - if (param_1->itemIndex == 105) { - return sub_80915D4(param_1); + if (param_1->itemIndex == ITEM_ID_POKE) { + return GetMoneyValue(param_1); } else { - if (sub_8090A60(param_1->itemIndex)) { + if (IsThrowableItem(param_1->itemIndex)) { return gItemParametersData[param_1->itemIndex].buyPrice * param_1->numItems; } else { @@ -200,13 +199,13 @@ s32 sub_8090BE4(struct ItemStruct_203B460 *param_1) } } -s32 sub_8090C30(struct ItemStruct_203B460 *param_1) +s32 GetStackSellValue(struct ItemSlot *param_1) { - if (param_1->itemIndex == 105) { - return sub_80915D4(param_1); + if (param_1->itemIndex == ITEM_ID_POKE) { + return GetMoneyValue(param_1); } else { - if (sub_8090A60(param_1->itemIndex)) { + if (IsThrowableItem(param_1->itemIndex)) { return gItemParametersData[param_1->itemIndex].sellPrice * param_1->numItems; } else { @@ -215,13 +214,13 @@ s32 sub_8090C30(struct ItemStruct_203B460 *param_1) } } -s32 sub_8090C7C(struct ItemStruct_203B460 *param_1) +s32 GetStackBuyPrice(struct ItemSlot *param_1) { - if (!sub_80914E4(param_1->itemIndex)) { + if (!CanSellItem(param_1->itemIndex)) { return 0; } else { - if (sub_8090A60(param_1->itemIndex)) { + if (IsThrowableItem(param_1->itemIndex)) { return gItemParametersData[param_1->itemIndex].buyPrice * param_1->numItems; } else { @@ -230,13 +229,13 @@ s32 sub_8090C7C(struct ItemStruct_203B460 *param_1) } } -s32 sub_8090CCC(struct ItemStruct_203B460 *param_1) +s32 GetStackSellPrice(struct ItemSlot *param_1) { - if (!sub_80914E4(param_1->itemIndex)) { + if (!CanSellItem(param_1->itemIndex)) { return 0; } else { - if (sub_8090A60(param_1->itemIndex)) { + if (IsThrowableItem(param_1->itemIndex)) { return gItemParametersData[param_1->itemIndex].sellPrice * param_1->numItems; } else { @@ -255,7 +254,7 @@ s32 GetItemSellPrice(u8 itemIndex) return gItemParametersData[itemIndex].sellPrice; } -u8 GetItemOrder(u8 itemIndex) +s32 GetItemOrder(u8 itemIndex) { return gItemParametersData[itemIndex].order; } @@ -285,14 +284,13 @@ u32 GetItemUnkFood(u8 itemIndex, u32 r1) return gItemParametersData[itemIndex].unkFood1[r1]; } -void sub_8090DC4(u32 param_1,u8 itemIndex,u32 param_3) +void sub_8090DC4(void* param_1,u8 itemIndex,u32 param_3) { char acStack104 [80]; - struct ItemStruct_203B460 unkItem; + struct ItemSlot unkItem; strncpy(acStack104,gItemParametersData[itemIndex].namePointer,0x50); sub_8090A8C(&unkItem,itemIndex,0); unkItem.numItems = 1; sub_8090F58(param_1,acStack104,&unkItem,param_3); -} - +}
\ No newline at end of file diff --git a/src/items_1.c b/src/items_1.c new file mode 100644 index 0000000..219feb5 --- /dev/null +++ b/src/items_1.c @@ -0,0 +1,413 @@ +#include "global.h" +#include "item.h" +#include "team_inventory.h" +#include "pokemon.h" +#include "subStruct_203B240.h" + +#include <stddef.h> + +extern struct TeamInventory *gTeamInventory_203B460; +extern EWRAM_DATA struct Item *gItemParametersData; + +extern void sub_80073B8(u32); +extern u32 sub_8097DF0(char *, struct subStruct_203B240 **); +extern void sub_8092A88(void*, u16); // first arg is some struct +extern void sub_80078A4(u32, u32, u32, u32, u32); +extern u32 sub_8092B00(void*); +extern u8* GetUnformattedTypeString(s16); +extern u32 sub_8092BF4(void*); +extern void sub_80073E0(u32); +extern void xxx_format_and_draw(u32, u32, u8 *, u32, u32); + +extern u8 gUnknown_202DE58[0x58]; +extern u32 gUnknown_202DE30; +extern u8* gPtrTypeText; // ptr to "Type\0" +extern u8* gPtrPPD0Text; // ptr to "PP $d0 \0" +extern u32 gUnknown_810A3F0[100]; +extern struct unkStruct_203B45C *gRecruitedPokemonRef; + +void FillInventoryGaps() +{ + // fill inventory gaps + s32 slot_checking = 0; + s32 last_filled = 0; + + do { + // effectively just a while loop + if ((slot_checking < 20) && !(slot_checking[gTeamInventory_203B460->teamItems].unk0 & 1)) { + // find next empty slot + do { + slot_checking++; + } while ((slot_checking < 20) && !(slot_checking[gTeamInventory_203B460->teamItems].unk0 & 1)); + } + + if (slot_checking == 20) { + break; + } + + if (slot_checking > last_filled) { + // shift it down + gTeamInventory_203B460->teamItems[last_filled] = gTeamInventory_203B460->teamItems[slot_checking]; + } + slot_checking++; + last_filled++; + } while (1); + + // clear out the rest of the slots + for (; last_filled < 20; last_filled++) { + struct ItemSlot *slot; +#ifdef NONMATCHING + slot = &gTeamInventory_203B460->teamItems[last_filled]; +#else + size_t offs = last_filled << 2; + size_t _slot = offs; + _slot += (size_t)gTeamInventory_203B460->teamItems; + slot = (struct ItemSlot*)_slot; // &gTeamInventory_203B460->teamItems[end]; +#endif + slot->itemIndex = 0; + slot->numItems = 0; + slot->unk0 = 0; + } +} + +s32 FindItemInInventory(u8 itemIndex) { + s32 i; + for (i = 0; i < 20; i++) { + if ((gTeamInventory_203B460->teamItems[i].unk0 & 1) && (gTeamInventory_203B460->teamItems[i].itemIndex == itemIndex)) { + return i; + } + } + return -1; +} + +s32 GetItemCountInInventory(u8 _itemIndex) +{ +#ifdef NONMATCHING + s32 count = 0; + s32 i; + for (i = 0; i < 20; i++) { + if ((gTeamInventory_203B460->teamItems[i].unk0 & 1) && (gTeamInventory_203B460->teamItems[i].itemIndex == _itemIndex)) { + count++; + } + } + return count; +#else + // have to do hacky stuff to fix initialization order of r6 and r2 + u32 itemIndex = _itemIndex; + s32 count = 0; + struct ItemSlot *slot = gTeamInventory_203B460->teamItems; + s32 one = 1; + s32 i = 19; + + do { + register u32 unk0 asm("r1") = slot->unk0; + u32 bottom_bit = one; + bottom_bit &= unk0; + if (bottom_bit && (slot->itemIndex == itemIndex)) { + count++; + } + slot++; + } while(--i >= 0); + return count; +#endif +} + +s32 GetItemPossessionCount(u8 itemIndex) +{ +#ifdef NONMATCHING + s32 item_count = GetItemCountInInventory(itemIndex); + s32 i = 0; + + struct unkStruct_203B45C *_gRecruitedPokemonRef = gRecruitedPokemonRef; + for (i = 0; i < NUM_SPECIES; i++) { + struct PokemonStruct* pokemon = &_gRecruitedPokemonRef->pokemon[i]; + if ((pokemon->unk0 & 1) + && ((pokemon->unk0 >> 1) & 1) + && (pokemon->itemIndexHeld != ITEM_ID_NOTHING) + && (pokemon->itemIndexHeld == itemIndex)) { + item_count++; + } + } + return item_count; +#else + // hacky stuff again to fix order of operands in & at bottom bit + s32 item_count = GetItemCountInInventory(itemIndex); + s32 i = 0; + + struct unkStruct_203B45C *_gRecruitedPokemonRef = gRecruitedPokemonRef; + register s32 one_mask asm("r6") = 1; + for (i = 0; i < NUM_SPECIES; i++) { + struct PokemonStruct* pokemon = &_gRecruitedPokemonRef->pokemon[i]; + register int bottom_bit asm("r0") = one_mask; + bottom_bit &= pokemon->unk0; + + if (bottom_bit + && ((pokemon->unk0 >> 1) & one_mask) + && (pokemon->itemIndexHeld != ITEM_ID_NOTHING) + && (pokemon->itemIndexHeld == itemIndex)) { + item_count++; + } + } + return item_count; +#endif +} + +void ShiftItemsDownFrom(s32 start) +{ + s32 i, j; + for (i = start, j = start + 1; i < 19; i++, j++) { + gTeamInventory_203B460->teamItems[i] = gTeamInventory_203B460->teamItems[j]; + } + gTeamInventory_203B460->teamItems[19].itemIndex = 0; + gTeamInventory_203B460->teamItems[19].unk0 = 0; +} + +void ClearItemSlotAt(u32 index) +{ + gTeamInventory_203B460->teamItems[index].itemIndex = ITEM_ID_NOTHING; + gTeamInventory_203B460->teamItems[index].unk0 = 0; +} + +bool8 sub_809124C(u8 itemIndex, u8 param_3) +{ + struct ItemSlot temp; + sub_8090A8C(&temp, itemIndex, param_3); + return AddItemToInventory(&temp); +} + +bool8 sub_8091274(struct ItemSlot_ALT* slot) +{ + struct ItemSlot temp; + + sub_8090B64(&temp, slot); + return AddItemToInventory(&temp); +} + +bool8 AddItemToInventory(const struct ItemSlot* slot) +{ + s32 i; + + // try to add item to inventory, return 1 if failed + for (i = 0; i < 20; i++) { + UNUSED struct ItemSlot* current = &gTeamInventory_203B460->teamItems[i]; + if (!(i[gTeamInventory_203B460->teamItems].unk0 & 1)) { + gTeamInventory_203B460->teamItems[i] = *slot; + return 0; + } + } + return 1; +} + + +void ConvertMoneyItemToMoney() +{ + s32 i = 0; + + do { + UNUSED struct TeamInventory * _gTeamInventory_203B460 = gTeamInventory_203B460; + UNUSED size_t offs = offsetof(struct TeamInventory, teamItems[i]); + + struct ItemSlot* current_slot = &gTeamInventory_203B460->teamItems[i]; + if ((current_slot->unk0 & 1) && (current_slot->itemIndex == ITEM_ID_POKE)) { + u32 result; + + result = GetMoneyValue(current_slot); + AddToTeamMoney(result); + current_slot->itemIndex = 0; + current_slot->numItems = 0; + current_slot->unk0 = 0; + } + } while (++i < 20); + FillInventoryGaps(); + + i = 0; + do { + s32 lowest_index = -1; + UNUSED size_t offs = offsetof(struct TeamInventory, teamItems[i]); + + bool8 item_occupied = i[gTeamInventory_203B460->teamItems].unk0 & 1; + s32 next = i + 1; + + if (item_occupied) { + s32 lowest_order = GetItemOrder(gTeamInventory_203B460->teamItems[i].itemIndex); + s32 j; + + // find next lowest + for (j = next; j < 20; j++) { + UNUSED size_t offs = offsetof(struct TeamInventory, teamItems[j]); + if ((j[gTeamInventory_203B460->teamItems].unk0 & 1) && (lowest_order > GetItemOrder(gTeamInventory_203B460->teamItems[j].itemIndex))) { + lowest_index = j; + lowest_order = GetItemOrder(gTeamInventory_203B460->teamItems[j].itemIndex); + } + } + + if (lowest_index >= 0) { + // swap the slots + struct ItemSlot current = gTeamInventory_203B460->teamItems[i]; + gTeamInventory_203B460->teamItems[i] = gTeamInventory_203B460->teamItems[lowest_index]; + gTeamInventory_203B460->teamItems[lowest_index] = current; + } + } + } while (++i < 20); + FillInventoryGaps(); +} + +void AddToTeamMoney(s32 amount) +{ + s32 clamped_money; + gTeamInventory_203B460->teamMoney += amount; + + // clamp money + clamped_money = 99999; + if (gTeamInventory_203B460->teamMoney <= 99999) { + if (gTeamInventory_203B460->teamMoney >= 0) { + return; + } + clamped_money = 0; + } + gTeamInventory_203B460->teamMoney = clamped_money; +} + +u16 GetItemMove(u8 index) +{ + return gItemParametersData[index & 0xff].move; +} + +u32 sub_80913E0(struct ItemSlot* slot, u32 a2, struct subStruct_203B240 ** a3) +{ + u8 buffer88[88]; // some struct + + GetItemDescription(slot->itemIndex); + sub_8090DC4(buffer88, slot->itemIndex, 0); + if (slot->itemIndex == ITEM_ID_USED_TM) { + // empty HM + sub_8090DC4(&gUnknown_202DE58, (u8)(slot->numItems + 125), 0); + } + sub_80073B8(a2); + xxx_format_and_draw(16, 0, buffer88, a2, 0); + + xxx_format_and_draw(8, 24, GetItemDescription(slot->itemIndex), a2, 0); + if (GetItemType(slot->itemIndex) == ITEM_TYPE_TM) { + u8* buffer8 = buffer88 + 0x50; // field in struct + u16 move = GetItemMove(slot->itemIndex); + u8 moves_data; + u8* typestring; + u32 result; + + sub_8092A88(buffer8, move); + sub_80078A4(a2, 4, 82, 200, 7); + xxx_format_and_draw(4, 84, gPtrTypeText, a2, 0); + moves_data = sub_8092B00(buffer8); + typestring = GetUnformattedTypeString(moves_data); + xxx_format_and_draw(64, 84, typestring, a2, 0); + result = sub_8092BF4(buffer8); + gUnknown_202DE30 = result; + xxx_format_and_draw(128, 84, gPtrPPD0Text, a2, 0); + } + + sub_80073E0(a2); + return sub_8097DF0(GetItemDescription(slot->itemIndex), a3); +} + +bool8 CanSellItem(u32 id) +{ + u8 id_; + id = (u8)id; + id_ = id; + + if((id != ITEM_ID_NOTHING) + && (id != ITEM_ID_POKE) + && (id != ITEM_ID_ROCK_PART) + && (id != ITEM_ID_ICE_PART) + && (id != ITEM_ID_STEEL_PART) + && (id != ITEM_ID_MUSIC_BOX) + && (GetItemSellPrice(id_)) + && (GetItemBuyPrice(id_))) { + return 1; + } + return 0; +} + +bool8 IsNotMoneyOrUsedTMItem(u8 id) +{ + if (id == ITEM_ID_NOTHING) { + return 0; + } + else if (id == ITEM_ID_POKE) { + return 0; + } + else if (id == ITEM_ID_USED_TM) { + return 0; + } + return 1; +} + +bool8 IsNotSpecialItem(u8 id) +{ + if (id == ITEM_ID_NOTHING) { + return 0; + } + else if (id == ITEM_ID_POKE) { + return 0; + } + else if (id == ITEM_ID_ROCK_PART) { + return 0; + } + else if (id == ITEM_ID_ICE_PART) { + return 0; + } + else if (id == ITEM_ID_STEEL_PART) { + return 0; + } + else if (id == ITEM_ID_MUSIC_BOX) { + return 0; + } + return 1; +} + +bool8 IsEdibleItem(u8 id) +{ + if (!((GetItemType(id) == ITEM_TYPE_BERRY_SEED) || (GetItemType(id) == ITEM_TYPE_APPLE_GUMMI))) { + return 0; + } + return 1; +} + +bool8 IsHMItem(u8 id) +{ + if (id == ITEM_ID_CUT) { + return 1; + } + else if (id == ITEM_ID_FLY) { + return 1; + } + else if (id == ITEM_ID_SURF) { + return 1; + } + else if (id == ITEM_ID_STRENGTH) { + return 1; + } + else if (id == ITEM_ID_FLASH) { + return 1; + } + else if (id == ITEM_ID_ROCK_SMASH) { + return 1; + } + else if (id == ITEM_ID_WATERFALL) { + return 1; + } + else if (id == ITEM_ID_DIVE) { + return 1; + } + return 0; +} + +u32 GetMoneyValue(struct ItemSlot* slot) +{ + return gUnknown_810A3F0[slot->numItems]; +} + +u32 GetMoneyValue2(struct ItemSlot* slot) +{ + return gUnknown_810A3F0[slot->numItems]; +}
\ No newline at end of file diff --git a/src/kangaskhan_storage_2.c b/src/kangaskhan_storage_2.c index 02059d1..9155ef3 100644 --- a/src/kangaskhan_storage_2.c +++ b/src/kangaskhan_storage_2.c @@ -3,18 +3,18 @@ #include "memory.h" #include "text.h" #include "item.h" -#include "gUnknown_203B460.h" +#include "team_inventory.h" #include "input.h" #include "kangaskhan_storage.h" extern struct unkStruct_203B208 *gUnknown_203B208; -extern struct unkStruct_203B460 *gUnknown_203B460; +extern struct TeamInventory *gTeamInventory_203B460; struct unkStruct_203B20C { u32 state; u8 unk4[4]; - struct ItemStruct_203B460 unk8; + struct ItemSlot unk8; u8 fillC[0x14 - 0xC]; u32 unk14; u32 unk18; @@ -60,7 +60,7 @@ extern u8 sub_8012FD8(u32 *r0); extern void sub_8013114(u32 *, s32 *); extern void sub_801CBB8(); -extern bool8 sub_8091524(u8); +extern bool8 IsNotMoneyOrUsedTMItem(u8); extern bool8 sub_801ADA0(u32); extern void sub_8099690(u32); extern u32 sub_8013BBC(u32 *); @@ -90,7 +90,7 @@ extern void sub_801CCD8(); extern void sub_80184D4(); extern void sub_8018280(); extern void sub_8013AA0(u32 *); -extern void sub_801B3C0(struct ItemStruct_203B460 *); +extern void sub_801B3C0(struct ItemSlot *); extern void sub_801A5D8(u32, u32, u32, u32); extern void sub_801C8C4(u32, u32, u32, u32); extern void sub_8012D60(u32 *, u32 *, u32, u16 *, u32, u32); @@ -117,13 +117,13 @@ void sub_8017AF8(void) else { gUnknown_203B208->unk10 = sub_801A8AC(); - gUnknown_203B208->unkC = gUnknown_203B460->fill0[gUnknown_203B208->unk10]; + gUnknown_203B208->unkC = gTeamInventory_203B460->teamItems[gUnknown_203B208->unk10]; UpdateKangaskhanStorageState(0xF); } break; case 4: gUnknown_203B208->unk10 = sub_801A8AC(); - gUnknown_203B208->unkC = gUnknown_203B460->fill0[gUnknown_203B208->unk10]; + gUnknown_203B208->unkC = gTeamInventory_203B460->teamItems[gUnknown_203B208->unk10]; UpdateKangaskhanStorageState(0x10); break; case 2: @@ -201,7 +201,7 @@ void sub_8017C7C(void) { case 2: sub_8099690(0); - if(!sub_8091524(gUnknown_203B208->unkC.itemIndex)) + if(!IsNotMoneyOrUsedTMItem(gUnknown_203B208->unkC.itemIndex)) UpdateKangaskhanStorageState(9); else if(!sub_801ADA0(gUnknown_203B208->unk10)) @@ -232,14 +232,14 @@ void sub_8017D24(void) switch(menuAction) { case 3: - if (sub_8090A34() > 0x13) + if (GetNumberOfFilledInventorySlots() > 0x13) { sub_801CBB8(); UpdateKangaskhanStorageState(6); } else { - if(sub_8090A60(gUnknown_203B208->unkC.itemIndex)) + if(IsThrowableItem(gUnknown_203B208->unkC.itemIndex)) UpdateKangaskhanStorageState(0x18); else UpdateKangaskhanStorageState(0x1B); @@ -444,10 +444,10 @@ void sub_8018100(void) case 12: gUnknown_203B20C->unkD0 = 2; gUnknown_203B20C->unkC8 = 1; - if(gUnknown_203B460->unk50[gUnknown_203B20C->unk8.itemIndex] > 99) + if(gTeamInventory_203B460->unk50[gUnknown_203B20C->unk8.itemIndex] > 99) gUnknown_203B20C->unkCC = 99; else - gUnknown_203B20C->unkCC = gUnknown_203B460->unk50[gUnknown_203B20C->unk8.itemIndex]; + gUnknown_203B20C->unkCC = gTeamInventory_203B460->unk50[gUnknown_203B20C->unk8.itemIndex]; gUnknown_203B20C->unkC4 = gUnknown_203B20C->unkCC; gUnknown_203B20C->unkD4 = 1; gUnknown_203B20C->unkD8 = &gUnknown_203B20C->unkF0[1]; diff --git a/src/kecleon_items_1.c b/src/kecleon_items_1.c index faa8c6b..b9a1a3c 100644 --- a/src/kecleon_items_1.c +++ b/src/kecleon_items_1.c @@ -4,13 +4,13 @@ #include "input.h" #include "item.h" #include "kecleon_items.h" -#include "gUnknown_203B460.h" +#include "team_inventory.h" extern struct unkStruct_203B210 *gUnknown_203B210; -extern struct unkStruct_203B460 *gUnknown_203B460; +extern struct TeamInventory *gTeamInventory_203B460; -extern u32 sub_8090CCC(struct ItemStruct_203B460 *); -extern bool8 sub_80914E4(u8); +extern u32 GetStackSellPrice(struct ItemSlot *); +extern bool8 CanSellItem(u8); extern u32 sub_8091814(void); extern u32 sub_8091A48(void); extern s32 sub_80144A4(s32 *); @@ -36,14 +36,14 @@ void sub_8019B08(void) break; case 3: gUnknown_203B210->unk24 = sub_801A8AC(); - gUnknown_203B210->unk1C = gUnknown_203B460->fill0[gUnknown_203B210->unk24]; - gUnknown_203B210->itemSellPrice = sub_8090CCC(&gUnknown_203B210->unk1C); + gUnknown_203B210->unk1C = gTeamInventory_203B460->teamItems[gUnknown_203B210->unk24]; + gUnknown_203B210->itemSellPrice = GetStackSellPrice(&gUnknown_203B210->unk1C); UpdateKecleonStoreState(0x1c); break; case 4: gUnknown_203B210->unk24 = sub_801A8AC(); - gUnknown_203B210->unk1C = gUnknown_203B460->fill0[gUnknown_203B210->unk24]; - gUnknown_203B210->itemSellPrice = sub_8090CCC(&gUnknown_203B210->unk1C); + gUnknown_203B210->unk1C = gTeamInventory_203B460->teamItems[gUnknown_203B210->unk24]; + gUnknown_203B210->itemSellPrice = GetStackSellPrice(&gUnknown_203B210->unk1C); sub_8099690(0); UpdateKecleonStoreState(0x1d); break; @@ -74,10 +74,10 @@ void sub_8019BBC(void) } switch(menuAction){ case 2: - if (gUnknown_203B460->teamMoney == 0) { + if (gTeamInventory_203B460->teamMoney == 0) { UpdateKecleonStoreState(0x6); } - else if (gUnknown_203B210->itemSellPrice > gUnknown_203B460->teamMoney) { + else if (gUnknown_203B210->itemSellPrice > gTeamInventory_203B460->teamMoney) { UpdateKecleonStoreState(0xC); } else { @@ -105,10 +105,10 @@ void sub_8019C78(void) switch(menuAction){ case 3: sub_8099690(0); - if (!sub_80914E4(gUnknown_203B210->unk1C.itemIndex)) { + if (!CanSellItem(gUnknown_203B210->unk1C.itemIndex)) { UpdateKecleonStoreState(0xd); } - else if (gUnknown_203B210->itemSellPrice + gUnknown_203B460->teamMoney > 99999) { + else if (gUnknown_203B210->itemSellPrice + gTeamInventory_203B460->teamMoney > 99999) { UpdateKecleonStoreState(0xe); } else { @@ -176,15 +176,15 @@ u32 sub_8019D8C(void) void sub_8019DAC(void) { s32 iVar3; - struct ItemStruct_203B460 *pbVar4; + struct ItemSlot *pbVar4; s32 iVar5; gUnknown_203B210->unk14 = 0; gUnknown_203B210->unk18 = 0; for(iVar5 = 0; iVar5 < 0x14; iVar5++){ - pbVar4 = &gUnknown_203B460->fill0[iVar5]; - if (((pbVar4->unk0 & 1) != 0) && (sub_80914E4(pbVar4->itemIndex))) { - iVar3 = sub_8090CCC(pbVar4); + pbVar4 = &gTeamInventory_203B460->teamItems[iVar5]; + if (((pbVar4->unk0 & 1) != 0) && (CanSellItem(pbVar4->itemIndex))) { + iVar3 = GetStackSellPrice(pbVar4); gUnknown_203B210->unk18 += iVar3; gUnknown_203B210->unk14++; } diff --git a/src/other_menus.c b/src/other_menus.c index 99c8df9..d5134b2 100644 --- a/src/other_menus.c +++ b/src/other_menus.c @@ -2,7 +2,7 @@ #include "input.h" #include "main_menu.h" #include "item.h" -#include "gUnknown_203B460.h" +#include "team_inventory.h" #include "menu.h" #include "memory.h" #include "text.h" @@ -62,7 +62,7 @@ struct unkStruct_8035D94 extern struct unkStruct_8035D94 *sub_8035D94(); -extern struct unkStruct_203B460 *gUnknown_203B460; +extern struct TeamInventory *gTeamInventory_203B460; extern void sub_8037400(void); extern void ResetSprites(u32); @@ -378,7 +378,7 @@ void sub_80371B8(void) if ((((gUnknown_203B35C->unk4 != 0) &&(gUnknown_203B35C->unk0 == 0)) && (pbVar2 = sub_8035D94(), pbVar2->unk0 != 0)) && (pbVar2->unk4 != 0)) { // We received something.. - gUnknown_203B460->unk50[pbVar2->unk0] += pbVar2->unk4; + gTeamInventory_203B460->unk50[pbVar2->unk0] += pbVar2->unk4; } } } @@ -70,7 +70,7 @@ extern s32 gUnknown_202DE28; extern u32 gUnknown_203B17C; extern char *gUnknown_203B180; extern struct unkStruct_203B45C *gRecruitedPokemonRef; -extern struct unkStruct_203B460 *gUnknown_203B460; +extern struct TeamInventory *gTeamInventory_203B460; extern struct RescueTeamData *gRescueTeamInfoRef; extern bool8 *gFriendAreas; extern u32 gUnknown_203B46C; @@ -624,7 +624,7 @@ void sub_8012334(struct UnkStruct_203B184 *r0) gUnknown_203B184 = r0; if(r0 != NULL) { - gUnknown_203B460 = r0->MoneyItems; + gTeamInventory_203B460 = r0->MoneyItems; gRecruitedPokemonRef = r0->recruitedPokemon; gUnknown_203B480 = r0->unk8; gUnknown_203B484 = r0->unkC; @@ -639,7 +639,7 @@ void sub_8012334(struct UnkStruct_203B184 *r0) gPlayTimeRef = r0->playTime; return; } - gUnknown_203B460 = GetMoneyItemsInfo(); + gTeamInventory_203B460 = GetMoneyItemsInfo(); gRecruitedPokemonRef = GetRecruitedPokemon(); gUnknown_203B480 = sub_80950F8(); gUnknown_203B484 = sub_8095100(); diff --git a/src/trade_items_menu.c b/src/trade_items_menu.c index 57dd99f..a2053dd 100644 --- a/src/trade_items_menu.c +++ b/src/trade_items_menu.c @@ -1,14 +1,14 @@ #include "global.h" #include "input.h" #include "item.h" +#include "team_inventory.h" #include "trade_items_menu.h" -#include "gUnknown_203B460.h" #include "memory.h" #include "save.h" extern struct TradeItemsMenu *gTradeItemsMenu; -extern struct unkStruct_203B460 *gUnknown_203B460; +extern struct TeamInventory *gTeamInventory_203B460; extern u32 gUnknown_202DE30; extern u32 gUnknown_202DE58; extern struct UnkTextStruct2 gUnknown_80E6174; @@ -44,7 +44,7 @@ extern s32 sub_80144A4(s32 *); extern u32 sub_801CA08(u32); extern void sub_801CBB8(); extern u8 sub_801CB24(); -extern void sub_801B3C0(struct ItemStruct_203B460 *); +extern void sub_801B3C0(struct ItemSlot *); extern u8 sub_8012FD8(u32 *); extern void sub_8013114(u32 *, s32 *); extern void sub_8035CC0(struct UnkTextStruct2 *, u32); @@ -63,7 +63,7 @@ extern void sub_80073E0(u32); extern void xxx_call_draw_string(u32, u32, u32 *, u32, u32); extern u8 sub_801CF14(u32); extern u32 sub_801D008(); -extern void sub_8090DC4(u32 *, u8, u32); +extern void sub_8090DC4(void*, u8, u32); extern void sub_801C8C4(u32, u32, s32 *, u32); void sub_8036F30(); @@ -351,9 +351,9 @@ void TradeItem_SendItemConfirm(void) case 5: sub_801CBB8(); // Used temp var to get correct statements - load = gUnknown_203B460->unk50[gTradeItemsMenu->itemToSend.itemIndex]; + load = gTeamInventory_203B460->unk50[gTradeItemsMenu->itemToSend.itemIndex]; load -= gTradeItemsMenu->numItemsToSend; - gUnknown_203B460->unk50[gTradeItemsMenu->itemToSend.itemIndex] = load; + gTeamInventory_203B460->unk50[gTradeItemsMenu->itemToSend.itemIndex] = load; SetTradeItemMenu(TRADE_ITEMS_PREPARE_TRADE_SAVING); PrepareSavePakWrite(SPECIES_NONE); break; @@ -450,9 +450,9 @@ void TradeItem_AddItem(void) { // Use temp var to get correct statements u16 load; - load = gUnknown_203B460->unk50[gTradeItemsMenu->sentItem.itemIndex]; + load = gTeamInventory_203B460->unk50[gTradeItemsMenu->sentItem.itemIndex]; load += gTradeItemsMenu->sentItem.numItems; - gUnknown_203B460->unk50[gTradeItemsMenu->sentItem.itemIndex] = load; + gTeamInventory_203B460->unk50[gTradeItemsMenu->sentItem.itemIndex] = load; } void sub_80369FC(void) @@ -1082,7 +1082,7 @@ void sub_8036F30(void) void sub_8036F74(void) { sub_8006518(gTradeItemsMenu->unk184); - sub_8036ECC(2, gUnknown_203B460->unk50[gTradeItemsMenu->itemToSend.itemIndex]); + sub_8036ECC(2, gTeamInventory_203B460->unk50[gTradeItemsMenu->itemToSend.itemIndex]); sub_801CCD8(); sub_8035CF4(&gTradeItemsMenu->unk44, 3, 0); sub_8036F30(); diff --git a/src/wonder_mail.c b/src/wonder_mail.c index af16acb..5ddebfe 100644 --- a/src/wonder_mail.c +++ b/src/wonder_mail.c @@ -7,11 +7,11 @@ #include "memory.h" #include "text.h" #include "sub_8095228.h" -#include "gUnknown_203B460.h" +#include "team_inventory.h" extern struct WonderMailStruct_203B2C0 *gUnknown_203B2C0; extern struct WonderMailStruct_203B2C4 *gUnknown_203B2C4; -extern struct unkStruct_203B460 *gUnknown_203B460; +extern struct TeamInventory *gTeamInventory_203B460; extern u32 sub_80144A4(s32 *r0); extern void sub_8011C28(u32); @@ -29,7 +29,7 @@ extern u8 sub_80A2824(u32); #include "data/wonder_mail_1.h" -const struct ItemStruct_203B460 gUnknown_80DED44 = +const struct ItemSlot gUnknown_80DED44 = { 1, 0, 0 }; @@ -170,7 +170,7 @@ extern void sub_803092C(); extern void sub_8035CF4(u32 *, u32, u32); extern u32 sub_801CA08(u32); extern void sub_801CBB8(); -extern void sub_801B3C0(struct ItemStruct_203B460 *); +extern void sub_801B3C0(struct ItemSlot *); extern u8 sub_801CB24(); extern void sub_801B450(); extern u32 sub_801B410(); @@ -1548,7 +1548,7 @@ void sub_8029F98(void) if (sub_80144A4(&auStack20) != 0) { return; } - MemoryFill8((u8 *)&gUnknown_203B2C4->unk41C, 0, sizeof(struct ItemStruct_203B460)); + MemoryFill8((u8 *)&gUnknown_203B2C4->unk41C, 0, sizeof(struct ItemSlot)); gUnknown_203B2C4->unk41C.itemIndex = 0; gUnknown_203B2C4->unk41C.numItems = 1; gUnknown_203B2C4->unk41C.unk0 = 0; @@ -2007,7 +2007,7 @@ void sub_802A798(void) { return_var->unk20 = gUnknown_203B2C4->unk41C; } - gUnknown_203B460->unk50[gUnknown_203B2C4->unk41C.itemIndex]--; + gTeamInventory_203B460->unk50[gUnknown_203B2C4->unk41C.itemIndex]--; sub_802B2BC(0x29); break; case 8: |