From 76052c93f19f88544a2104a6308f64b059d72630 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sat, 5 Aug 2023 02:31:31 -0400 Subject: [PATCH 01/16] Clean kecleon_items --- include/kecleon_items.h | 68 +- src/code_801B3C0.c | 8 +- src/code_8023144.c | 8 +- src/friend_area_action_menu_1.c | 6 +- src/friend_list_menu.c | 6 +- src/kangaskhan_storage.c | 10 +- src/kecleon_items.c | 207 +++-- src/kecleon_items_1.c | 1544 +++++++++++++++---------------- src/luminous_cave.c | 10 +- src/party_list_menu.c | 6 +- 10 files changed, 916 insertions(+), 957 deletions(-) diff --git a/include/kecleon_items.h b/include/kecleon_items.h index 5d5b3cf08..0043bce20 100644 --- a/include/kecleon_items.h +++ b/include/kecleon_items.h @@ -1,32 +1,33 @@ #ifndef GUARD_KECLEON_ITEMS_H #define GUARD_KECLEON_ITEMS_H -#include "team_inventory.h" -#include "text.h" +#include "file_system.h" +#include "item.h" #include "menu.h" +#include "text.h" +// size: 0x148 struct unkStruct_203B210 { - // size: 0x148 - u32 unk0; - bool8 isKecleonItemShop; // FALSE indicates it is Kecleon TM Shop - u32 currState; - u32 fallbackState; - s32 itemSellPrice; - u32 numInventoryItemToSell; - s32 inventoryItemSellPrice; - struct Item soldItem; - u8 itemShopItemIndex; - u8 wareShopItemIndex; - u32 soldItemInventoryIndex; - u32 menuAction1; - u32 menuAction2; - u32 menuAction3; - struct MenuItem menuItems[8]; + /* 0x0 */ u32 mode; // Corresponds to the enum: KecleonShopMode + /* 0x4 */ bool8 isKecleonItemShop; // FALSE indicates it is Kecleon TM Shop + /* 0x8 */ u32 currState; + /* 0xC */ u32 fallbackState; + /* 0x10 */ s32 itemSellPrice; + /* 0x14 */ u32 numInventoryItemToSell; + /* 0x18 */ s32 inventoryItemSellPrice; + /* 0x1C */ struct Item soldItem; + /* 0x20 */ u8 itemShopItemIndex; + /* 0x21 */ u8 wareShopItemIndex; + /* 0x24 */ u32 soldItemInventoryIndex; + /* 0x28 */ u32 menuAction1; + /* 0x2C */ u32 menuAction2; + /* 0x30 */ u32 menuAction3; + /* 0x34 */ struct MenuItem menuItems[8]; u16 unk74[8]; - struct MenuStruct menu; - struct OpenedFile *faceFile; - u8 *faceData; + /* 0x84 */ struct MenuStruct menu; + /* 0xD4 */ struct OpenedFile *faceFile; + /* 0xD8 */ u8 *faceData; u16 unkDC; u16 unkDE; u8 unkE0; @@ -37,9 +38,19 @@ struct unkStruct_203B210 struct UnkTextStruct2 unkE8[4]; }; +// size: 0xA0 +struct unkStruct_203B214 +{ + /* 0x0 */ struct MenuInputStruct input; + u32 unk34; + struct UnkTextStruct2 *unk38; + struct UnkTextStruct2 unk3C[4]; + u8 unk9C[4]; +}; + +// size: 0xF4 struct unkStruct_203B224 { - // size: 0xF4 u32 unk0; u32 unk4[INVENTORY_SIZE]; /* 0x54 */ struct MenuInputStruct input; @@ -49,6 +60,14 @@ struct unkStruct_203B224 u8 unkF0[4]; }; +enum KecleonShopMode +{ + KECLEON_SHOP_MODE_ITEMS_AWAKE = 0, + KECLEON_SHOP_MODE_ITEMS_ASLEEP = 1, + KECLEON_SHOP_MODE_WARES_AWAKE = 2, + KECLEON_SHOP_MODE_WARES_ASLEEP = 3, +}; + enum KecleonStoreStates { KECLEON_STORE_INIT = 0, @@ -59,7 +78,10 @@ enum KecleonStoreStates KECLEON_STORE_NO_ITEMS_TO_SELL = 9, KECLEON_STORE_TOO_MANY_ITEMS = 10, KECLEON_STORE_NOT_ENOUGH_MONEY = 12, - KECLEON_STORE_CANT_SELL_ITEM = 13 + KECLEON_STORE_CANT_SELL_ITEM = 13, }; +// mode corresponds to the enum: KecleonShopMode +u32 DisplayKeckleonDialogueSprite(u32 mode); + #endif // GUARD_KECLEON_ITEMS_H diff --git a/src/code_801B3C0.c b/src/code_801B3C0.c index aa55fce30..15761e542 100644 --- a/src/code_801B3C0.c +++ b/src/code_801B3C0.c @@ -72,7 +72,7 @@ extern u8 *gUnknown_80D4920[]; extern u8 *gUnknown_80D4928[]; extern s32 sub_80144A4(s32 *); -extern u32 sub_801A6E8(u32); +extern u32 sub_801A6E8(bool8); extern u32 sub_801A8AC(); extern void sub_8099690(u32); extern void sub_801A928(void); @@ -611,7 +611,7 @@ void sub_801BC94(void) void sub_801BCCC(void) { - switch(sub_801A6E8(1)) + switch(sub_801A6E8(TRUE)) { case 0: case 1: @@ -641,7 +641,7 @@ void sub_801BD80(void) s32 menuAction; menuAction = 0; - sub_801A6E8(0); + sub_801A6E8(FALSE); if (!sub_8012FD8(&gUnknown_203B234->unk28)) { sub_8013114(&gUnknown_203B234->unk28,&menuAction); if (menuAction != 1) gUnknown_203B234->menuAction = menuAction; @@ -676,7 +676,7 @@ void sub_801BE30(void) s32 menuAction; menuAction = 0; - sub_801A6E8(0); + sub_801A6E8(FALSE); sub_8012FD8(&gUnknown_203B234->unk28); if (!sub_8012FD8(&gUnknown_203B234->unk78)) { sub_8013114(&gUnknown_203B234->unk78,&menuAction); diff --git a/src/code_8023144.c b/src/code_8023144.c index 6f8a56a93..71c947cf8 100644 --- a/src/code_8023144.c +++ b/src/code_8023144.c @@ -68,7 +68,7 @@ extern void sub_801B450(void); void GetGummiItemStatBoost(struct PokemonStruct* pokemon, u8 id, bool8 checkBoostFlags, struct Gummi* gummi); -extern u32 sub_801A6E8(u32); +extern u32 sub_801A6E8(bool8); extern void sub_8099690(u32); extern void sub_801A928(void); s32 GetNumAvailableIQSkills(u8 *iqSkillBuffer, s32 pokeIQ); @@ -126,7 +126,7 @@ void sub_8022D2C(void) { void sub_8022E78(void) { - switch(sub_801A6E8(1)) + switch(sub_801A6E8(TRUE)) { case 3: gUnknown_203B294->itemIndex = sub_801A8AC(); @@ -151,7 +151,7 @@ void sub_8022EF4(void) s32 boostAmount; menuAction = 0; - sub_801A6E8(0); + sub_801A6E8(FALSE); if (sub_8012FD8(&gUnknown_203B294->unk54) == 0) { sub_8013114(&gUnknown_203B294->unk54,&menuAction); if(menuAction != 1) gUnknown_203B294->menuAction = menuAction; @@ -219,7 +219,7 @@ void sub_8023068(void) s32 menuAction; menuAction = 0; - sub_801A6E8(0); + sub_801A6E8(FALSE); sub_8012FD8(&gUnknown_203B294->unk54); if (sub_8012FD8(&gUnknown_203B294->unkA4) == 0) { sub_8013114(&gUnknown_203B294->unkA4,&menuAction); diff --git a/src/friend_area_action_menu_1.c b/src/friend_area_action_menu_1.c index 22a863f1f..80c0bba7b 100644 --- a/src/friend_area_action_menu_1.c +++ b/src/friend_area_action_menu_1.c @@ -24,7 +24,7 @@ extern void nullsub_104(); extern void sub_801A928(); extern void sub_8099690(u32); extern u32 sub_801A8AC(); -extern u32 sub_801A6E8(u32); +extern u32 sub_801A6E8(bool8); extern s32 sub_80144A4(s32 *); extern void sub_8027EB8(); @@ -320,7 +320,7 @@ void sub_8027AE4(void) void sub_8027B28(void) { - switch(sub_801A6E8(1)) + switch(sub_801A6E8(TRUE)) { case 3: gUnknown_203B2BC->id = sub_801A8AC(); @@ -350,7 +350,7 @@ void sub_8027BD8(void) s32 menuAction; menuAction = 0; - sub_801A6E8(0); + sub_801A6E8(FALSE); if ((sub_8012FD8(&gUnknown_203B2BC->unk7C) == 0) && (sub_8013114(&gUnknown_203B2BC->unk7C,&menuAction), menuAction != 1)) { gUnknown_203B2BC->menuAction2 = menuAction; } diff --git a/src/friend_list_menu.c b/src/friend_list_menu.c index 3416e6421..ee6826d10 100644 --- a/src/friend_list_menu.c +++ b/src/friend_list_menu.c @@ -149,7 +149,7 @@ extern void sub_801F214(void); extern void sub_801EE10(u32, s16, struct Move *, u32, u32, u32); extern void sub_801F808(u16 *); extern u32 sub_801602C(u32 r0, u8 *name); -extern u32 sub_801A6E8(u32); +extern u32 sub_801A6E8(bool8); extern u32 sub_801A8AC(void); extern void sub_8099690(u32); extern void sub_801A928(void); @@ -613,7 +613,7 @@ void sub_8025BE8(void) void sub_8025C04(void) { - switch(sub_801A6E8(1)) + switch(sub_801A6E8(TRUE)) { case 3: gUnknown_203B2B4->itemIndex = sub_801A8AC(); @@ -646,7 +646,7 @@ void sub_8025CB4(void) struct Item item; menuAction = 0; - sub_801A6E8(0); + sub_801A6E8(FALSE); if ((!sub_8012FD8(&gUnknown_203B2B4->unk78)) && (sub_8013114(&gUnknown_203B2B4->unk78,&menuAction), menuAction != 1)) { gUnknown_203B2B4->menuAction2 = menuAction; } diff --git a/src/kangaskhan_storage.c b/src/kangaskhan_storage.c index 5d009cce2..e43fec7ae 100644 --- a/src/kangaskhan_storage.c +++ b/src/kangaskhan_storage.c @@ -68,7 +68,7 @@ extern void sub_801AE84(void); extern s32 sub_801AED0(s32); extern u8 sub_801CF14(u32); extern u8 sub_801CF50(u32); -extern u32 sub_801A6E8(u32); +extern u32 sub_801A6E8(bool8); extern u32 sub_801AEA8(void); extern u32 sub_801A8AC(void); extern void sub_801A928(void); @@ -742,7 +742,7 @@ void sub_8017A1C(void) void sub_8017AF8(void) { - switch(sub_801A6E8(1)) + switch(sub_801A6E8(TRUE)) { case 3: if(sub_801AEA8() != 0) @@ -827,7 +827,7 @@ void sub_8017C7C(void) { s32 menuAction; menuAction = 0; - sub_801A6E8(0); + sub_801A6E8(FALSE); if (sub_8012FD8(&gUnknown_203B208->unk58) == 0) { sub_8013114(&gUnknown_203B208->unk58, &menuAction); if(menuAction != 1) gUnknown_203B208->menuAction2 = menuAction; @@ -1263,7 +1263,7 @@ void sub_8018588(void) void sub_8018620(void) { s32 index; - switch(sub_801A6E8(1)) + switch(sub_801A6E8(TRUE)) { case 3: if(sub_801AEA8() != 0) @@ -1418,7 +1418,7 @@ void sub_8018904(void) menuAction = 0; - sub_801A6E8(0); + sub_801A6E8(FALSE); if(sub_8012FD8(&gUnknown_203B20C->unk70) == 0) { sub_8013114(&gUnknown_203B20C->unk70, &menuAction); diff --git a/src/kecleon_items.c b/src/kecleon_items.c index b170bb9ef..68ab19ed8 100644 --- a/src/kecleon_items.c +++ b/src/kecleon_items.c @@ -1,10 +1,8 @@ #include "global.h" -#include "file_system.h" #include "pokemon.h" -#include "input.h" -#include "item.h" #include "kecleon_items.h" #include "memory.h" +#include "team_inventory.h" extern struct unkStruct_203B210 *gUnknown_203B210; extern u8 gUnknown_202E5D8[]; @@ -30,114 +28,114 @@ extern void sub_8019D68(); extern void sub_8018D30(); extern void UpdateKecleonStoreDialogue(); -u32 DisplayKeckleonDialogueSprite(u32 param_1) +u32 DisplayKeckleonDialogueSprite(u32 mode) { - char *monName; - struct OpenedFile *faceFile; - - gUnknown_203B210 = MemoryAlloc(sizeof(struct unkStruct_203B210),8); - gUnknown_203B210->menuAction1 = 0; - gUnknown_203B210->menuAction2 = 0; - gUnknown_203B210->menuAction3 = 0; - gUnknown_203B210->unk0 = param_1; - switch(param_1) - { - case 0: - gUnknown_203B210->isKecleonItemShop = TRUE; - gUnknown_203B210->unkE4 = &gUnknown_203B210->faceFile; - CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KECLEON); - CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KECLEON); - monName = GetMonSpecies( MONSTER_KECLEON); - strcpy(gUnknown_202E1C8 - 0x50, monName); - break; - case 1: - gUnknown_203B210->isKecleonItemShop = TRUE; - gUnknown_203B210->unkE4 = NULL; - CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KECLEON); - CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KECLEON); - monName = GetMonSpecies( MONSTER_KECLEON); - strcpy(gUnknown_202E1C8 - 0x50, monName); - break; - case 2: - gUnknown_203B210->isKecleonItemShop = FALSE; - gUnknown_203B210->unkE4 = &gUnknown_203B210->faceFile; - CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KECLEON); - CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KECLEON); - monName = GetMonSpecies( MONSTER_KECLEON); - strcpy(gUnknown_202E1C8 - 0x50, monName); - break; - case 3: - gUnknown_203B210->isKecleonItemShop = FALSE; - gUnknown_203B210->unkE4 = NULL; - CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KECLEON); - CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KECLEON); - monName = GetMonSpecies( MONSTER_KECLEON); - strcpy(gUnknown_202E1C8 - 0x50, monName); - break; - default: - break; - } - faceFile = GetDialogueSpriteDataPtr(MONSTER_KECLEON); - gUnknown_203B210->faceFile = faceFile; - gUnknown_203B210->faceData = faceFile->data; - gUnknown_203B210->unkE0 = 0; - gUnknown_203B210->unkE1 = 0; - gUnknown_203B210->unkE2 = 0; - gUnknown_203B210->unkDC = 2; - gUnknown_203B210->unkDE = 8; - UpdateKecleonStoreState(KECLEON_STORE_INIT); - return 1; + char *monName; + struct OpenedFile *faceFile; + + gUnknown_203B210 = MemoryAlloc(sizeof(struct unkStruct_203B210), 8); + gUnknown_203B210->menuAction1 = 0; + gUnknown_203B210->menuAction2 = 0; + gUnknown_203B210->menuAction3 = 0; + gUnknown_203B210->mode = mode; + + switch (mode) { + case KECLEON_SHOP_MODE_ITEMS_AWAKE: + gUnknown_203B210->isKecleonItemShop = TRUE; + gUnknown_203B210->unkE4 = &gUnknown_203B210->faceFile; + CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KECLEON); + CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KECLEON); + monName = GetMonSpecies(MONSTER_KECLEON); + strcpy(gUnknown_202E1C8 - 0x50, monName); + break; + case KECLEON_SHOP_MODE_ITEMS_ASLEEP: + gUnknown_203B210->isKecleonItemShop = TRUE; + gUnknown_203B210->unkE4 = NULL; + CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KECLEON); + CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KECLEON); + monName = GetMonSpecies(MONSTER_KECLEON); + strcpy(gUnknown_202E1C8 - 0x50, monName); + break; + case KECLEON_SHOP_MODE_WARES_AWAKE: + gUnknown_203B210->isKecleonItemShop = FALSE; + gUnknown_203B210->unkE4 = &gUnknown_203B210->faceFile; + CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KECLEON); + CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KECLEON); + monName = GetMonSpecies(MONSTER_KECLEON); + strcpy(gUnknown_202E1C8 - 0x50, monName); + break; + case KECLEON_SHOP_MODE_WARES_ASLEEP: + gUnknown_203B210->isKecleonItemShop = FALSE; + gUnknown_203B210->unkE4 = NULL; + CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KECLEON); + CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KECLEON); + monName = GetMonSpecies(MONSTER_KECLEON); + strcpy(gUnknown_202E1C8 - 0x50, monName); + break; + default: + break; + } + + faceFile = GetDialogueSpriteDataPtr(MONSTER_KECLEON); + gUnknown_203B210->faceFile = faceFile; + gUnknown_203B210->faceData = faceFile->data; + gUnknown_203B210->unkE0 = 0; + gUnknown_203B210->unkE1 = 0; + gUnknown_203B210->unkE2 = 0; + gUnknown_203B210->unkDC = 2; + gUnknown_203B210->unkDE = 8; + UpdateKecleonStoreState(KECLEON_STORE_INIT); + return 1; } u32 sub_8018C04(void) { - switch(gUnknown_203B210->currState) { - case KECLEON_STORE_INIT: - case KECLEON_STORE_MAIN_MENU: - sub_8019730(); - break; - case 0x12: - case 0x13: - sub_80199CC(); - break; - case 0x1a: - case 0x1b: - sub_8019B08(); - break; - case 0x14: - sub_8019BBC(); - break; - case 0x1c: - sub_8019C78(); - break; - case 0x16: - sub_8019850(); - break; - case 0x1e: - sub_80198E8(); - break; - case 0x1f: - sub_8019944(); - break; - case 0x15: - sub_8019D30(); - break; - case 0x1d: - sub_8019D4C(); - break; - case KECLEON_STORE_EXIT: - return 3; - default: - sub_8019D68(); - break; - } - return 0; + switch (gUnknown_203B210->currState) { + case KECLEON_STORE_INIT: + case KECLEON_STORE_MAIN_MENU: + sub_8019730(); + break; + case 0x12: + case 0x13: + sub_80199CC(); + break; + case 0x1a: + case 0x1b: + sub_8019B08(); + break; + case 0x14: + sub_8019BBC(); + break; + case 0x1c: + sub_8019C78(); + break; + case 0x16: + sub_8019850(); + break; + case 0x1e: + sub_80198E8(); + break; + case 0x1f: + sub_8019944(); + break; + case 0x15: + sub_8019D30(); + break; + case 0x1d: + sub_8019D4C(); + break; + case KECLEON_STORE_EXIT: + return 3; + default: + sub_8019D68(); + break; + } + return 0; } void sub_8018CF0(void) { - if(gUnknown_203B210 != NULL) - { + if (gUnknown_203B210 != NULL) { CloseFile(gUnknown_203B210->faceFile); MemoryFree(gUnknown_203B210); gUnknown_203B210 = NULL; @@ -155,8 +153,8 @@ void sub_8018D30(void) { s32 index; sub_8006518(gUnknown_203B210->unkE8); - switch(gUnknown_203B210->currState) - { + + switch (gUnknown_203B210->currState) { case 0x12: case 0x13: gUnknown_203B210->unkE8[0] = gUnknown_80DB840; @@ -185,6 +183,7 @@ void sub_8018D30(void) gUnknown_203B210->unkE8[index] = gUnknown_80DB840; break; } + ResetUnusedInputStruct(); sub_800641C(gUnknown_203B210->unkE8, 1, 1); } diff --git a/src/kecleon_items_1.c b/src/kecleon_items_1.c index cf11ed156..fb656d2c9 100644 --- a/src/kecleon_items_1.c +++ b/src/kecleon_items_1.c @@ -1,26 +1,11 @@ #include "global.h" #include "constants/input.h" -#include "file_system.h" #include "memory.h" #include "pokemon.h" -#include "input.h" -#include "item.h" #include "kecleon_items.h" #include "team_inventory.h" #include "code_800D090.h" #include "menu_input.h" -#include "text.h" - -struct unkStruct_203B214 -{ - // size: 0xA0 - struct MenuInputStruct input; - u32 unk34; - struct UnkTextStruct2 *unk38; - struct UnkTextStruct2 unk3C[4]; - u8 unk9C[4]; -}; - extern struct unkStruct_203B210 *gUnknown_203B210; extern struct unkStruct_203B214 *gUnknown_203B214; @@ -55,7 +40,7 @@ extern void sub_8099690(u32); extern u32 sub_8019EDC(u8); extern u32 sub_801A2A8(u8); extern s32 sub_801A8AC(void); -extern u32 sub_801A6E8(u8); +u32 sub_801A6E8(bool8); extern void sub_801A928(void); extern void DrawTeamMoneyBox(u32); extern void sub_8008C54(u32); @@ -104,114 +89,116 @@ extern u8 *gUnknown_80D4934[]; void sub_80194F8(void) { - int index; + s32 index; + s32 loopMax; - s32 loopMax; - MemoryFill16(gUnknown_203B210->unk74,0,sizeof(gUnknown_203B210->unk74)); - loopMax = 0; - gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4978; - gUnknown_203B210->menuItems[loopMax].menuAction = 2; - loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4984; - gUnknown_203B210->menuItems[loopMax].menuAction = 3; - loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = gUnknown_80DB8A0; - gUnknown_203B210->menuItems[loopMax].menuAction = 4; - loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4970; - gUnknown_203B210->menuItems[loopMax].menuAction = 7; - loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4934; - gUnknown_203B210->menuItems[loopMax].menuAction = 1; - loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = NULL; - gUnknown_203B210->menuItems[loopMax].menuAction = 1; + MemoryFill16(gUnknown_203B210->unk74, 0, sizeof(gUnknown_203B210->unk74)); - for(index = 0; index < loopMax; index++) - { - if(gUnknown_203B210->unk74[index] == 0) - { - if(gUnknown_203B210->menuItems[index].menuAction == gUnknown_203B210->menuAction1) - return; - } - } - for(index = 0; index < loopMax; index++) - { - if (gUnknown_203B210->unk74[index] == 0) - { - gUnknown_203B210->menuAction1 = gUnknown_203B210->menuItems[index].menuAction; - break; - } - } + loopMax = 0; + gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4978; + gUnknown_203B210->menuItems[loopMax].menuAction = 2; + + loopMax += 1; + gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4984; + gUnknown_203B210->menuItems[loopMax].menuAction = 3; + + loopMax += 1; + gUnknown_203B210->menuItems[loopMax].text = gUnknown_80DB8A0; + gUnknown_203B210->menuItems[loopMax].menuAction = 4; + + loopMax += 1; + gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4970; + gUnknown_203B210->menuItems[loopMax].menuAction = 7; + + loopMax += 1; + gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4934; + gUnknown_203B210->menuItems[loopMax].menuAction = 1; + + loopMax += 1; + gUnknown_203B210->menuItems[loopMax].text = NULL; + gUnknown_203B210->menuItems[loopMax].menuAction = 1; + + for (index = 0; index < loopMax; index++) { + if (gUnknown_203B210->unk74[index] == 0) { + if (gUnknown_203B210->menuItems[index].menuAction == gUnknown_203B210->menuAction1) + return; + } + } + + for (index = 0; index < loopMax; index++) { + if (gUnknown_203B210->unk74[index] == 0) { + gUnknown_203B210->menuAction1 = gUnknown_203B210->menuItems[index].menuAction; + break; + } + } } void sub_80195C0(void) { - int index; + s32 index; + s32 loopMax; - s32 loopMax; - MemoryFill16(gUnknown_203B210->unk74,0,sizeof(gUnknown_203B210->unk74)); - loopMax = 0; - gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4978; - gUnknown_203B210->menuItems[loopMax].menuAction = 2; - loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4970; - gUnknown_203B210->menuItems[loopMax].menuAction = 7; - loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = NULL; - gUnknown_203B210->menuItems[loopMax].menuAction = 1; + MemoryFill16(gUnknown_203B210->unk74, 0, sizeof(gUnknown_203B210->unk74)); - for(index = 0; index < loopMax; index++) - { - if(gUnknown_203B210->unk74[index] == 0) - { - if(gUnknown_203B210->menuItems[index].menuAction == gUnknown_203B210->menuAction3) - return; - } - } - for(index = 0; index < loopMax; index++) - { - if (gUnknown_203B210->unk74[index] == 0) - { - gUnknown_203B210->menuAction3 = gUnknown_203B210->menuItems[index].menuAction; - break; - } - } + loopMax = 0; + gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4978; + gUnknown_203B210->menuItems[loopMax].menuAction = 2; + + loopMax += 1; + gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4970; + gUnknown_203B210->menuItems[loopMax].menuAction = 7; + + loopMax += 1; + gUnknown_203B210->menuItems[loopMax].text = NULL; + gUnknown_203B210->menuItems[loopMax].menuAction = 1; + + for (index = 0; index < loopMax; index++) { + if (gUnknown_203B210->unk74[index] == 0) { + if (gUnknown_203B210->menuItems[index].menuAction == gUnknown_203B210->menuAction3) + return; + } + } + + for (index = 0; index < loopMax; index++) { + if (gUnknown_203B210->unk74[index] == 0) { + gUnknown_203B210->menuAction3 = gUnknown_203B210->menuItems[index].menuAction; + break; + } + } } - void sub_8019660(void) { - int index; + s32 index; + s32 loopMax; - s32 loopMax; - MemoryFill16(gUnknown_203B210->unk74,0, sizeof(gUnknown_203B210->unk74)); - loopMax = 0; - gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4984; - gUnknown_203B210->menuItems[loopMax].menuAction = 3; - loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4970; - gUnknown_203B210->menuItems[loopMax].menuAction = 7; - loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = NULL; - gUnknown_203B210->menuItems[loopMax].menuAction = 1; + MemoryFill16(gUnknown_203B210->unk74, 0, sizeof(gUnknown_203B210->unk74)); - for(index = 0; index < loopMax; index++) - { - if(gUnknown_203B210->unk74[index] == 0) - { - if(gUnknown_203B210->menuItems[index].menuAction == gUnknown_203B210->menuAction2) - return; - } - } - for(index = 0; index < loopMax; index++) - { - if (gUnknown_203B210->unk74[index] == 0) - { - gUnknown_203B210->menuAction2 = gUnknown_203B210->menuItems[index].menuAction; - break; - } - } + loopMax = 0; + gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4984; + gUnknown_203B210->menuItems[loopMax].menuAction = 3; + + loopMax += 1; + gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4970; + gUnknown_203B210->menuItems[loopMax].menuAction = 7; + + loopMax += 1; + gUnknown_203B210->menuItems[loopMax].text = NULL; + gUnknown_203B210->menuItems[loopMax].menuAction = 1; + + for (index = 0; index < loopMax; index++) { + if (gUnknown_203B210->unk74[index] == 0) { + if (gUnknown_203B210->menuItems[index].menuAction == gUnknown_203B210->menuAction2) + return; + } + } + + for (index = 0; index < loopMax; index++) { + if (gUnknown_203B210->unk74[index] == 0) { + gUnknown_203B210->menuAction2 = gUnknown_203B210->menuItems[index].menuAction; + break; + } + } } void sub_8019700(void) @@ -219,9 +206,11 @@ void sub_8019700(void) s32 loopMax = 0; gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4920; gUnknown_203B210->menuItems[loopMax].menuAction = 5; + loopMax += 1; gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4928; gUnknown_203B210->menuItems[loopMax].menuAction = 6; + loopMax += 1; gUnknown_203B210->menuItems[loopMax].text = NULL; gUnknown_203B210->menuItems[loopMax].menuAction = 1; @@ -229,286 +218,287 @@ void sub_8019700(void) void sub_8019730(void) { - s32 menuAction; + s32 menuAction; - if (sub_80144A4(&menuAction) != 0) - return; - if (menuAction != 1) - gUnknown_203B210->menuAction1 = menuAction; - switch(menuAction) { - case 2: - if (CountKecleonItems() == 0) - UpdateKecleonStoreState(KECLEON_STORE_NO_STORE_ITEMS); - else if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) - UpdateKecleonStoreState(KECLEON_STORE_TOO_MANY_ITEMS); - else - UpdateKecleonStoreState(0xF); - break; - case 3: - if (GetNumberOfFilledInventorySlots() == 0) - UpdateKecleonStoreState(KECLEON_STORE_NO_ITEMS_TO_SELL); - else if (gUnknown_203B210->numInventoryItemToSell == 0) - UpdateKecleonStoreState(8); - else if (gTeamInventory_203B460->teamMoney < MAX_TEAM_MONEY) - UpdateKecleonStoreState(0x17); - else - UpdateKecleonStoreState(7); - break; - case 4: - if (GetNumberOfFilledInventorySlots() == 0) - UpdateKecleonStoreState(KECLEON_STORE_NO_ITEMS_TO_SELL); - else if (gUnknown_203B210->numInventoryItemToSell == 0) - UpdateKecleonStoreState(8); - else if (gUnknown_203B210->inventoryItemSellPrice + gTeamInventory_203B460->teamMoney > MAX_TEAM_MONEY) - UpdateKecleonStoreState(7); - else - UpdateKecleonStoreState(0x1f); - break; - case 7: - UpdateKecleonStoreState(2); - break; - case 1: - UpdateKecleonStoreState(3); - break; - } + if (sub_80144A4(&menuAction) != 0) + return; + + if (menuAction != 1) + gUnknown_203B210->menuAction1 = menuAction; + + switch (menuAction) { + case 2: + if (CountKecleonItems() == 0) + UpdateKecleonStoreState(KECLEON_STORE_NO_STORE_ITEMS); + else if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) + UpdateKecleonStoreState(KECLEON_STORE_TOO_MANY_ITEMS); + else + UpdateKecleonStoreState(15); + break; + case 3: + if (GetNumberOfFilledInventorySlots() == 0) + UpdateKecleonStoreState(KECLEON_STORE_NO_ITEMS_TO_SELL); + else if (gUnknown_203B210->numInventoryItemToSell == 0) + UpdateKecleonStoreState(8); + else if (gTeamInventory_203B460->teamMoney < MAX_TEAM_MONEY) + UpdateKecleonStoreState(23); + else + UpdateKecleonStoreState(7); + break; + case 4: + if (GetNumberOfFilledInventorySlots() == 0) + UpdateKecleonStoreState(KECLEON_STORE_NO_ITEMS_TO_SELL); + else if (gUnknown_203B210->numInventoryItemToSell == 0) + UpdateKecleonStoreState(8); + else if (gUnknown_203B210->inventoryItemSellPrice + gTeamInventory_203B460->teamMoney > MAX_TEAM_MONEY) + UpdateKecleonStoreState(7); + else + UpdateKecleonStoreState(31); + break; + case 7: + UpdateKecleonStoreState(2); + break; + case 1: + UpdateKecleonStoreState(3); + break; + } } void sub_8019850(void) { - s32 menuAction; + s32 menuAction; - if (sub_80144A4(&menuAction) == 0) { - switch(menuAction) - { - case 5: - AddToTeamMoney(-gUnknown_203B210->itemSellPrice); - if (gUnknown_203B210->isKecleonItemShop) { - AddHeldItemToInventory(GetKecleonShopItem(gUnknown_203B210->itemShopItemIndex)); - InitKecleonShopItem(gUnknown_203B210->itemShopItemIndex); - FillKecleonShopGaps(); - } - else { - AddHeldItemToInventory(GetKecleonWareItem(gUnknown_203B210->wareShopItemIndex)); - InitKecleonWareItem(gUnknown_203B210->wareShopItemIndex); - FillKecleonWareGaps(); - } - PlaySound(0x14c); - UpdateKecleonStoreState(0x11); - break; - case 6: - case 1: - UpdateKecleonStoreState(0x10); - break; - } - } + if (sub_80144A4(&menuAction) == 0) { + switch (menuAction) { + case 5: + AddToTeamMoney(-gUnknown_203B210->itemSellPrice); + + if (gUnknown_203B210->isKecleonItemShop) { + AddHeldItemToInventory(GetKecleonShopItem(gUnknown_203B210->itemShopItemIndex)); + InitKecleonShopItem(gUnknown_203B210->itemShopItemIndex); + FillKecleonShopGaps(); + } + else { + AddHeldItemToInventory(GetKecleonWareItem(gUnknown_203B210->wareShopItemIndex)); + InitKecleonWareItem(gUnknown_203B210->wareShopItemIndex); + FillKecleonWareGaps(); + } + + PlaySound(0x14c); + UpdateKecleonStoreState(17); + break; + case 6: + case 1: + UpdateKecleonStoreState(16); + break; + } + } } void sub_80198E8(void) { - s32 menuAction; + s32 menuAction; - if (sub_80144A4(&menuAction) == 0) { - switch(menuAction) - { - case 5: - AddToTeamMoney(gUnknown_203B210->itemSellPrice); - ShiftItemsDownFrom(gUnknown_203B210->soldItemInventoryIndex); - PlaySound(0x14c); - UpdateKecleonStoreState(0x19); - break; - case 6: - case 1: - UpdateKecleonStoreState(0x18); - break; - } - } + if (sub_80144A4(&menuAction) == 0) { + switch (menuAction) { + case 5: + AddToTeamMoney(gUnknown_203B210->itemSellPrice); + ShiftItemsDownFrom(gUnknown_203B210->soldItemInventoryIndex); + PlaySound(0x14c); + UpdateKecleonStoreState(25); + break; + case 6: + case 1: + UpdateKecleonStoreState(24); + break; + } + } } void sub_8019944(void) { - s32 slotIndex; - s32 menuAction; - struct Item *item; + s32 slotIndex; + s32 menuAction; + struct Item *item; - if (sub_80144A4(&menuAction) == 0) { - switch(menuAction) - { - case 5: - for(slotIndex = 0; slotIndex < INVENTORY_SIZE; slotIndex++) - { - item = &gTeamInventory_203B460->teamItems[slotIndex]; - if ((item->flags & ITEM_FLAG_EXISTS) && CanSellItem(item->id)) { - ClearItemSlotAt(slotIndex); + if (sub_80144A4(&menuAction) == 0) { + switch (menuAction) { + case 5: + for (slotIndex = 0; slotIndex < INVENTORY_SIZE; slotIndex++) { + item = &gTeamInventory_203B460->teamItems[slotIndex]; + + if ((item->flags & ITEM_FLAG_EXISTS) && CanSellItem(item->id)) + ClearItemSlotAt(slotIndex); } - } - FillInventoryGaps(); - AddToTeamMoney(gUnknown_203B210->inventoryItemSellPrice); - PlaySound(0x14c); - UpdateKecleonStoreState(0x20); - break; - case 1: - case 6: - UpdateKecleonStoreState(KECLEON_STORE_MAIN_MENU); - break; + + FillInventoryGaps(); + AddToTeamMoney(gUnknown_203B210->inventoryItemSellPrice); + PlaySound(0x14c); + UpdateKecleonStoreState(32); + break; + case 1: + case 6: + UpdateKecleonStoreState(KECLEON_STORE_MAIN_MENU); + break; + } } - } } void sub_80199CC(void) { - u32 menuAction; - struct BulkItem *item; + u32 menuAction; + struct BulkItem *item; - if (gUnknown_203B210->isKecleonItemShop) { - menuAction = sub_8019EDC(1); - } - else { - menuAction = sub_801A2A8(1); - } + if (gUnknown_203B210->isKecleonItemShop) + menuAction = sub_8019EDC(1); + else + menuAction = sub_801A2A8(1); - switch(menuAction) - { - case 3: - if (gUnknown_203B210->isKecleonItemShop) { - gUnknown_203B210->itemShopItemIndex = sub_8019FB0(); - item = GetKecleonShopItem(gUnknown_203B210->itemShopItemIndex); - } - else { - gUnknown_203B210->wareShopItemIndex = sub_801A37C(); - item = GetKecleonWareItem(gUnknown_203B210->wareShopItemIndex); - } - xxx_init_itemslot_8090A8C(&gUnknown_203B210->soldItem,item->id,0); - gUnknown_203B210->soldItem.quantity =item->quantity; - gUnknown_203B210->itemSellPrice = GetStackBuyPrice(&gUnknown_203B210->soldItem); - UpdateKecleonStoreState(0x14); - break; - case 4: - if (gUnknown_203B210->isKecleonItemShop) { - gUnknown_203B210->itemShopItemIndex = sub_8019FB0(); - item = GetKecleonShopItem(gUnknown_203B210->itemShopItemIndex); - } - else { - gUnknown_203B210->wareShopItemIndex = sub_801A37C(); - item = GetKecleonWareItem(gUnknown_203B210->wareShopItemIndex); - } - xxx_init_itemslot_8090A8C(&gUnknown_203B210->soldItem,item->id,0); - gUnknown_203B210->soldItem.quantity = item->quantity; - gUnknown_203B210->itemSellPrice = GetStackBuyPrice(&gUnknown_203B210->soldItem); - UpdateKecleonStoreState(0x15); - break; - case 2: - if (gUnknown_203B210->isKecleonItemShop) - sub_801A010(); - else - sub_801A3DC(); - UpdateKecleonStoreState(KECLEON_STORE_MAIN_MENU); - break; - case 1: - sub_801AD34(0); - DrawTeamMoneyBox(1); - break; - } + switch (menuAction) { + case 3: + if (gUnknown_203B210->isKecleonItemShop) { + gUnknown_203B210->itemShopItemIndex = sub_8019FB0(); + item = GetKecleonShopItem(gUnknown_203B210->itemShopItemIndex); + } + else { + gUnknown_203B210->wareShopItemIndex = sub_801A37C(); + item = GetKecleonWareItem(gUnknown_203B210->wareShopItemIndex); + } + + xxx_init_itemslot_8090A8C(&gUnknown_203B210->soldItem, item->id, 0); + gUnknown_203B210->soldItem.quantity = item->quantity; + gUnknown_203B210->itemSellPrice = GetStackBuyPrice(&gUnknown_203B210->soldItem); + UpdateKecleonStoreState(20); + break; + case 4: + if (gUnknown_203B210->isKecleonItemShop) { + gUnknown_203B210->itemShopItemIndex = sub_8019FB0(); + item = GetKecleonShopItem(gUnknown_203B210->itemShopItemIndex); + } + else { + gUnknown_203B210->wareShopItemIndex = sub_801A37C(); + item = GetKecleonWareItem(gUnknown_203B210->wareShopItemIndex); + } + + xxx_init_itemslot_8090A8C(&gUnknown_203B210->soldItem, item->id, 0); + gUnknown_203B210->soldItem.quantity = item->quantity; + gUnknown_203B210->itemSellPrice = GetStackBuyPrice(&gUnknown_203B210->soldItem); + UpdateKecleonStoreState(21); + break; + case 2: + if (gUnknown_203B210->isKecleonItemShop) + sub_801A010(); + else + sub_801A3DC(); + + UpdateKecleonStoreState(KECLEON_STORE_MAIN_MENU); + break; + case 1: + sub_801AD34(0); + DrawTeamMoneyBox(1); + break; + } } void sub_8019B08(void) { - switch(sub_801A6E8(1)) - { - case 0: - break; - case 3: - gUnknown_203B210->soldItemInventoryIndex = sub_801A8AC(); - gUnknown_203B210->soldItem = gTeamInventory_203B460->teamItems[gUnknown_203B210->soldItemInventoryIndex]; - gUnknown_203B210->itemSellPrice = GetStackSellPrice(&gUnknown_203B210->soldItem); - UpdateKecleonStoreState(0x1c); - break; - case 4: - gUnknown_203B210->soldItemInventoryIndex = sub_801A8AC(); - gUnknown_203B210->soldItem = gTeamInventory_203B460->teamItems[gUnknown_203B210->soldItemInventoryIndex]; - gUnknown_203B210->itemSellPrice = GetStackSellPrice(&gUnknown_203B210->soldItem); - sub_8099690(0); - UpdateKecleonStoreState(0x1d); - break; - case 2: - sub_801A928(); - UpdateKecleonStoreState(KECLEON_STORE_MAIN_MENU); - break; - case 1: - default: - DrawTeamMoneyBox(1); - break; - } + switch (sub_801A6E8(TRUE)) { + case 0: + break; + case 3: + gUnknown_203B210->soldItemInventoryIndex = sub_801A8AC(); + gUnknown_203B210->soldItem = gTeamInventory_203B460->teamItems[gUnknown_203B210->soldItemInventoryIndex]; + gUnknown_203B210->itemSellPrice = GetStackSellPrice(&gUnknown_203B210->soldItem); + UpdateKecleonStoreState(28); + break; + case 4: + gUnknown_203B210->soldItemInventoryIndex = sub_801A8AC(); + gUnknown_203B210->soldItem = gTeamInventory_203B460->teamItems[gUnknown_203B210->soldItemInventoryIndex]; + gUnknown_203B210->itemSellPrice = GetStackSellPrice(&gUnknown_203B210->soldItem); + sub_8099690(0); + UpdateKecleonStoreState(29); + break; + case 2: + sub_801A928(); + UpdateKecleonStoreState(KECLEON_STORE_MAIN_MENU); + break; + case 1: + default: + DrawTeamMoneyBox(1); + break; + } } void sub_8019BBC(void) { - int menuAction; + s32 menuAction; - menuAction = 0; - if (gUnknown_203B210->isKecleonItemShop) { - sub_8019EDC(0); - } - else { - sub_801A2A8(0); - } - if ((sub_8012FD8(&gUnknown_203B210->menu) == 0) && (sub_8013114(&gUnknown_203B210->menu,&menuAction), menuAction != 1)) { - gUnknown_203B210->menuAction3 = menuAction; - } - switch(menuAction){ - case 2: - if (gTeamInventory_203B460->teamMoney == 0) - UpdateKecleonStoreState(KECLEON_STORE_NO_MONEY); - else if (gUnknown_203B210->itemSellPrice > gTeamInventory_203B460->teamMoney) - UpdateKecleonStoreState(KECLEON_STORE_NOT_ENOUGH_MONEY); - else - UpdateKecleonStoreState(0x16); - break; - case 7: - UpdateKecleonStoreState(0x15); - break; - case 1: - UpdateKecleonStoreState(0x13); - break; - } + menuAction = 0; + + if (gUnknown_203B210->isKecleonItemShop) + sub_8019EDC(0); + else + sub_801A2A8(0); + + if (sub_8012FD8(&gUnknown_203B210->menu) == 0 && (sub_8013114(&gUnknown_203B210->menu, &menuAction), menuAction != 1)) + gUnknown_203B210->menuAction3 = menuAction; + + switch (menuAction) { + case 2: + if (gTeamInventory_203B460->teamMoney == 0) + UpdateKecleonStoreState(KECLEON_STORE_NO_MONEY); + else if (gUnknown_203B210->itemSellPrice > gTeamInventory_203B460->teamMoney) + UpdateKecleonStoreState(KECLEON_STORE_NOT_ENOUGH_MONEY); + else + UpdateKecleonStoreState(22); + break; + case 7: + UpdateKecleonStoreState(21); + break; + case 1: + UpdateKecleonStoreState(19); + break; + } } void sub_8019C78(void) { - int menuAction; + s32 menuAction; - menuAction = 0; - sub_801A6E8(0); - if ((sub_8012FD8(&gUnknown_203B210->menu) == '\0') && (sub_8013114(&gUnknown_203B210->menu,&menuAction), menuAction != 1)) { - gUnknown_203B210->menuAction2 = menuAction; - } - switch(menuAction){ - case 3: - sub_8099690(0); - if (!CanSellItem(gUnknown_203B210->soldItem.id)) - UpdateKecleonStoreState(KECLEON_STORE_CANT_SELL_ITEM); - else if (gUnknown_203B210->itemSellPrice + gTeamInventory_203B460->teamMoney > MAX_TEAM_MONEY) - UpdateKecleonStoreState(0xe); - else - UpdateKecleonStoreState(0x1e); - break; - case 7: - sub_8099690(0); - UpdateKecleonStoreState(0x1d); - break; - case 1: - UpdateKecleonStoreState(0x1b); - break; - } + menuAction = 0; + sub_801A6E8(FALSE); + + if (sub_8012FD8(&gUnknown_203B210->menu) == FALSE && (sub_8013114(&gUnknown_203B210->menu, &menuAction), menuAction != 1)) + gUnknown_203B210->menuAction2 = menuAction; + + switch (menuAction) { + case 3: + sub_8099690(0); + + if (!CanSellItem(gUnknown_203B210->soldItem.id)) + UpdateKecleonStoreState(KECLEON_STORE_CANT_SELL_ITEM); + else if (gUnknown_203B210->itemSellPrice + gTeamInventory_203B460->teamMoney > MAX_TEAM_MONEY) + UpdateKecleonStoreState(14); + else + UpdateKecleonStoreState(30); + break; + case 7: + sub_8099690(0); + UpdateKecleonStoreState(29); + break; + case 1: + UpdateKecleonStoreState(27); + break; + } } void sub_8019D30(void) { - switch(sub_801B410()) - { + switch (sub_801B410()) { case 2: case 3: sub_801B450(); - UpdateKecleonStoreState(0x13); + UpdateKecleonStoreState(19); break; case 0: case 1: @@ -518,12 +508,11 @@ void sub_8019D30(void) void sub_8019D4C(void) { - switch(sub_801B410()) - { + switch (sub_801B410()) { case 2: case 3: sub_801B450(); - UpdateKecleonStoreState(0x1B); + UpdateKecleonStoreState(27); break; case 0: case 1: @@ -535,15 +524,13 @@ void sub_8019D4C(void) void sub_8019D68(void) { s32 temp; - if(sub_80144A4(&temp) == 0) - { + if (sub_80144A4(&temp) == 0) UpdateKecleonStoreState(gUnknown_203B210->fallbackState); - } } u32 CountKecleonItems(void) { - if(gUnknown_203B210->isKecleonItemShop) + if (gUnknown_203B210->isKecleonItemShop) return CountKecleonShopItems(); else return CountKecleonWareItems(); @@ -551,63 +538,58 @@ u32 CountKecleonItems(void) void sub_8019DAC(void) { - s32 sellPrice; - struct Item *item; - s32 index; + s32 sellPrice; + struct Item *item; + s32 index; - gUnknown_203B210->numInventoryItemToSell = 0; - gUnknown_203B210->inventoryItemSellPrice = 0; - for(index = 0; index < INVENTORY_SIZE; index++){ - item = &gTeamInventory_203B460->teamItems[index]; - if (((item->flags & ITEM_FLAG_EXISTS) != 0) && (CanSellItem(item->id))) { - sellPrice = GetStackSellPrice(item); - gUnknown_203B210->inventoryItemSellPrice += sellPrice; - gUnknown_203B210->numInventoryItemToSell++; + gUnknown_203B210->numInventoryItemToSell = 0; + gUnknown_203B210->inventoryItemSellPrice = 0; + for (index = 0; index < INVENTORY_SIZE; index++) { + item = &gTeamInventory_203B460->teamItems[index]; + + if ((item->flags & ITEM_FLAG_EXISTS) != 0 && CanSellItem(item->id)) { + sellPrice = GetStackSellPrice(item); + gUnknown_203B210->inventoryItemSellPrice += sellPrice; + gUnknown_203B210->numInventoryItemToSell++; + } } - } } -void sub_8019E04(s32 param_1) +void sub_8019E04(bool32 param_1) { - - if (gUnknown_203B210->isKecleonItemShop) { - if (param_1 == 1) - gUnknown_203B210->unkE0 = 1; - else - gUnknown_203B210->unkE0 = 0; - } - else - { - if (param_1 == 1) - gUnknown_203B210->unkE0 = 7; - else - gUnknown_203B210->unkE0 = 6; - } + if (gUnknown_203B210->isKecleonItemShop) { + if (param_1 == TRUE) + gUnknown_203B210->unkE0 = 1; + else + gUnknown_203B210->unkE0 = 0; + } + else { + if (param_1 == TRUE) + gUnknown_203B210->unkE0 = 7; + else + gUnknown_203B210->unkE0 = 6; + } } -u32 sub_8019E40(u32 r0) +bool32 sub_8019E40(u32 r0) { - if(CountKecleonShopItems() == 0) - { - return 0; - } - else - { - gUnknown_203B214 = MemoryAlloc(sizeof(struct unkStruct_203B214), 0x8); - gUnknown_203B214->unk34 = r0; - gUnknown_203B214->unk38 = &gUnknown_203B214->unk3C[gUnknown_203B214->unk34]; - sub_8006518(gUnknown_203B214->unk3C); - gUnknown_203B214->unk3C[gUnknown_203B214->unk34] = gUnknown_80DB8CC; - gUnknown_203B214->unk38->unk14 = gUnknown_203B214->unk9C; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B214->unk3C, 1, 1); - sub_8013818(&gUnknown_203B214->input, CountKecleonShopItems(), 0xA, r0); - gUnknown_203B214->input.menuIndex = gUnknown_203B218; - sub_8013984(&gUnknown_203B214->input); - sub_801A064(); - sub_801A0D8(); - return 1; - } + if (CountKecleonShopItems() == 0) + return FALSE; + + gUnknown_203B214 = MemoryAlloc(sizeof(struct unkStruct_203B214), 8); + gUnknown_203B214->unk34 = r0; + gUnknown_203B214->unk38 = &gUnknown_203B214->unk3C[gUnknown_203B214->unk34]; + sub_8006518(gUnknown_203B214->unk3C); + gUnknown_203B214->unk3C[gUnknown_203B214->unk34] = gUnknown_80DB8CC; + gUnknown_203B214->unk38->unk14 = gUnknown_203B214->unk9C; + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B214->unk3C, 1, 1); + sub_8013818(&gUnknown_203B214->input, CountKecleonShopItems(), 10, r0); + gUnknown_203B214->input.menuIndex = gUnknown_203B218; + sub_8013984(&gUnknown_203B214->input); + sub_801A064(); + sub_801A0D8(); + return TRUE; } u32 sub_8019EDC(u8 r0) @@ -615,46 +597,35 @@ u32 sub_8019EDC(u8 r0) struct Item slot; struct BulkItem *item; - if(r0 == 0) - { + if (r0 == 0) { sub_8013660(&gUnknown_203B214->input); return 0; } - else - { - switch(GetKeyPress(&gUnknown_203B214->input)) - { - case INPUT_B_BUTTON: - PlayMenuSoundEffect(1); - return 2; - case INPUT_A_BUTTON: - item = GetKecleonShopItem(sub_8019FB0()); - slot.id = item->id; - slot.quantity = item->quantity; - if(GetStackBuyPrice(&slot) > gTeamInventory_203B460->teamMoney) - { - PlayMenuSoundEffect(2); - } - else - { - PlayMenuSoundEffect(0); - } - return 3; - case INPUT_START_BUTTON: - PlayMenuSoundEffect(4); - return 4; - default: - if(sub_80138B8(&gUnknown_203B214->input, 1) != 0) - { - sub_801A064(); - sub_801A0D8(); - return 1; - } - else - { - return 0; - } - } + + switch (GetKeyPress(&gUnknown_203B214->input)) { + case INPUT_B_BUTTON: + PlayMenuSoundEffect(1); + return 2; + case INPUT_A_BUTTON: + item = GetKecleonShopItem(sub_8019FB0()); + slot.id = item->id; + slot.quantity = item->quantity; + + if (GetStackBuyPrice(&slot) > gTeamInventory_203B460->teamMoney) + PlayMenuSoundEffect(2); + else + PlayMenuSoundEffect(0); + return 3; + case INPUT_START_BUTTON: + PlayMenuSoundEffect(4); + return 4; + default: + if (sub_80138B8(&gUnknown_203B214->input, 1) != FALSE) { + sub_801A064(); + sub_801A0D8(); + return 1; + } + return 0; } } @@ -671,14 +642,13 @@ void sub_8019FCC(u8 r0) sub_8013984(&gUnknown_203B214->input); sub_801A064(); sub_801A0D8(); - if(r0) + if (r0) AddMenuCursorSprite(&gUnknown_203B214->input); } void sub_801A010(void) { - if(gUnknown_203B214 != NULL) - { + if (gUnknown_203B214 != NULL) { gUnknown_203B218 = gUnknown_203B214->input.menuIndex; gUnknown_203B214->unk3C[gUnknown_203B214->unk34] = gUnknown_80DB8B4; ResetUnusedInputStruct(); @@ -750,70 +720,66 @@ void sub_801A064(void) void sub_801A0D8(void) { - struct BulkItem *heldItem; - s32 buyPrice; - s32 y; - s32 index; - u8 auStack204 [80]; - struct unkStruct_8090F58 local_7c; - u8 auStack112 [80]; - struct Item item; - u8 temp_calc; + struct BulkItem *heldItem; + s32 buyPrice; + s32 y; + s32 index; + u8 auStack204 [80]; + struct unkStruct_8090F58 local_7c; + u8 auStack112 [80]; + struct Item item; + u8 temp_calc; - sub_8008C54(gUnknown_203B214->unk34); - sub_80073B8(gUnknown_203B214->unk34); - xxx_call_draw_string(gUnknown_203B214->input.unk1E * 8 + 10,0,gUnknown_80DB8E4, - gUnknown_203B214->unk34,0); + sub_8008C54(gUnknown_203B214->unk34); + sub_80073B8(gUnknown_203B214->unk34); + xxx_call_draw_string((gUnknown_203B214->input.unk1E * 8) + 10, 0, gUnknown_80DB8E4, gUnknown_203B214->unk34, 0); - for(index = 0; index < gUnknown_203B214->input.unk1A; index++) - { - temp_calc = (gUnknown_203B214->input.unk1E * gUnknown_203B214->input.unk1C) + index; - heldItem = GetKecleonShopItem(temp_calc); - item.id = heldItem->id; - item.quantity = heldItem->quantity; - item.flags = (ITEM_FLAG_EXISTS | ITEM_FLAG_IN_SHOP); - local_7c.unk0 = 1; - local_7c.unk4 = 0; - local_7c.unk6 = 0x58; - local_7c.unk8 = 1; - sub_8090E14(auStack204,&item,&local_7c); - buyPrice = GetStackBuyPrice(&item); - if (buyPrice <= gTeamInventory_203B460->teamMoney) { - y = sub_8013800(&gUnknown_203B214->input,index); - xxx_call_draw_string(8,y,auStack204,gUnknown_203B214->unk34,0); - } - else { - sprintfStatic(auStack112,gUnknown_80DB8EC,auStack204); - y = sub_8013800(&gUnknown_203B214->input,index); - xxx_call_draw_string(8,y,auStack112,gUnknown_203B214->unk34,0); - } - } - sub_80073E0(gUnknown_203B214->unk34); + for (index = 0; index < gUnknown_203B214->input.unk1A; index++) { + temp_calc = (gUnknown_203B214->input.unk1E * gUnknown_203B214->input.unk1C) + index; + heldItem = GetKecleonShopItem(temp_calc); + item.id = heldItem->id; + item.quantity = heldItem->quantity; + item.flags = (ITEM_FLAG_EXISTS | ITEM_FLAG_IN_SHOP); + local_7c.unk0 = 1; + local_7c.unk4 = 0; + local_7c.unk6 = 88; + local_7c.unk8 = 1; + sub_8090E14(auStack204, &item, &local_7c); + buyPrice = GetStackBuyPrice(&item); + + if (buyPrice <= gTeamInventory_203B460->teamMoney) { + y = sub_8013800(&gUnknown_203B214->input, index); + xxx_call_draw_string(8, y, auStack204, gUnknown_203B214->unk34, 0); + } + else { + sprintfStatic(auStack112, gUnknown_80DB8EC, auStack204); + y = sub_8013800(&gUnknown_203B214->input, index); + xxx_call_draw_string(8, y, auStack112, gUnknown_203B214->unk34, 0); + } + } + + sub_80073E0(gUnknown_203B214->unk34); } u32 sub_801A20C(u32 r0) { - if(CountKecleonWareItems() == 0) - { + if (CountKecleonWareItems() == 0) return 0; - } - else - { - gUnknown_203B21C = MemoryAlloc(sizeof(struct unkStruct_203B214), 0x8); - gUnknown_203B21C->unk34 = r0; - gUnknown_203B21C->unk38 = &gUnknown_203B21C->unk3C[gUnknown_203B21C->unk34]; - sub_8006518(gUnknown_203B21C->unk3C); - gUnknown_203B21C->unk3C[gUnknown_203B21C->unk34] = gUnknown_80DB914; - gUnknown_203B21C->unk38->unk14 = gUnknown_203B21C->unk9C; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B21C->unk3C, 1, 1); - sub_8013818(&gUnknown_203B21C->input, CountKecleonWareItems(), 0xA, r0); - gUnknown_203B21C->input.menuIndex = gUnknown_203B220; - sub_8013984(&gUnknown_203B21C->input); - sub_801A430(); - sub_801A4A4(); - return 1; - } + + gUnknown_203B21C = MemoryAlloc(sizeof(struct unkStruct_203B214), 8); + gUnknown_203B21C->unk34 = r0; + gUnknown_203B21C->unk38 = &gUnknown_203B21C->unk3C[gUnknown_203B21C->unk34]; + sub_8006518(gUnknown_203B21C->unk3C); + gUnknown_203B21C->unk3C[gUnknown_203B21C->unk34] = gUnknown_80DB914; + gUnknown_203B21C->unk38->unk14 = gUnknown_203B21C->unk9C; + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B21C->unk3C, 1, 1); + sub_8013818(&gUnknown_203B21C->input, CountKecleonWareItems(), 10, r0); + gUnknown_203B21C->input.menuIndex = gUnknown_203B220; + sub_8013984(&gUnknown_203B21C->input); + sub_801A430(); + sub_801A4A4(); + return 1; } u32 sub_801A2A8(u8 r0) @@ -821,48 +787,36 @@ u32 sub_801A2A8(u8 r0) struct Item slot; struct BulkItem *item; - if(r0 == 0) - { + if (r0 == 0) { sub_8013660(&gUnknown_203B21C->input); return 0; } - else - { - switch(GetKeyPress(&gUnknown_203B21C->input)) - { - case INPUT_B_BUTTON: - PlayMenuSoundEffect(1); - return 2; - case INPUT_A_BUTTON: - item = GetKecleonWareItem(sub_801A37C()); - slot.id = item->id; - slot.quantity = item->quantity; + switch (GetKeyPress(&gUnknown_203B21C->input)) { + case INPUT_B_BUTTON: + PlayMenuSoundEffect(1); + return 2; + case INPUT_A_BUTTON: + item = GetKecleonWareItem(sub_801A37C()); - if(GetStackBuyPrice(&slot) > gTeamInventory_203B460->teamMoney) - { - PlayMenuSoundEffect(2); - } - else - { - PlayMenuSoundEffect(0); - } - return 3; - case INPUT_START_BUTTON: - PlayMenuSoundEffect(4); - return 4; - default: - if(sub_80138B8(&gUnknown_203B21C->input, 1) != 0) - { - sub_801A430(); - sub_801A4A4(); - return 1; - } - else - { - return 0; - } - } + slot.id = item->id; + slot.quantity = item->quantity; + + if (GetStackBuyPrice(&slot) > gTeamInventory_203B460->teamMoney) + PlayMenuSoundEffect(2); + else + PlayMenuSoundEffect(0); + return 3; + case INPUT_START_BUTTON: + PlayMenuSoundEffect(4); + return 4; + default: + if (sub_80138B8(&gUnknown_203B21C->input, 1) != 0) { + sub_801A430(); + sub_801A4A4(); + return 1; + } + return 0; } } @@ -879,14 +833,13 @@ void sub_801A398(u8 r0) sub_8013984(&gUnknown_203B21C->input); sub_801A430(); sub_801A4A4(); - if(r0) + if (r0) AddMenuCursorSprite(&gUnknown_203B21C->input); } void sub_801A3DC(void) { - if(gUnknown_203B21C != NULL) - { + if (gUnknown_203B21C != NULL) { gUnknown_203B220 = gUnknown_203B21C->input.menuIndex; gUnknown_203B21C->unk3C[gUnknown_203B21C->unk34] = gUnknown_80DB8FC; ResetUnusedInputStruct(); @@ -957,165 +910,160 @@ void sub_801A430(void) void sub_801A4A4(void) { - struct BulkItem *heldItem; - s32 buyPrice; - s32 y; - s32 index; - u8 buffer1 [80]; - struct unkStruct_8090F58 local_7c; - u8 buffer2 [80]; - struct Item item; - u8 temp_calc; + struct BulkItem *heldItem; + s32 buyPrice; + s32 y; + s32 index; + u8 buffer1 [80]; + struct unkStruct_8090F58 local_7c; + u8 buffer2 [80]; + struct Item item; + u8 temp_calc; - sub_8008C54(gUnknown_203B21C->unk34); - sub_80073B8(gUnknown_203B21C->unk34); - xxx_call_draw_string(gUnknown_203B21C->input.unk1E * 8 + 10,0,gUnknown_80DB92C, - gUnknown_203B21C->unk34,0); + sub_8008C54(gUnknown_203B21C->unk34); + sub_80073B8(gUnknown_203B21C->unk34); + xxx_call_draw_string(gUnknown_203B21C->input.unk1E * 8 + 10,0,gUnknown_80DB92C, + gUnknown_203B21C->unk34,0); - for(index = 0; index < gUnknown_203B21C->input.unk1A; index++) - { - temp_calc = (gUnknown_203B21C->input.unk1E * gUnknown_203B21C->input.unk1C) + index; - heldItem = GetKecleonWareItem(temp_calc); - item.id = heldItem->id; - item.quantity = heldItem->quantity; - item.flags = (ITEM_FLAG_EXISTS | ITEM_FLAG_IN_SHOP); - local_7c.unk0 = 1; - local_7c.unk4 = 0; - local_7c.unk6 = 0x58; - local_7c.unk8 = 1; - sub_8090E14(buffer1,&item,&local_7c); - buyPrice = GetStackBuyPrice(&item); - if (buyPrice <= gTeamInventory_203B460->teamMoney) { - y = sub_8013800(&gUnknown_203B21C->input,index); - xxx_call_draw_string(8,y,buffer1,gUnknown_203B21C->unk34,0); - } - else { - sprintfStatic(buffer2,gUnknown_80DB934,buffer1); - y = sub_8013800(&gUnknown_203B21C->input,index); - xxx_call_draw_string(8,y,buffer2,gUnknown_203B21C->unk34,0); - } - } - sub_80073E0(gUnknown_203B21C->unk34); + for (index = 0; index < gUnknown_203B21C->input.unk1A; index++) { + temp_calc = (gUnknown_203B21C->input.unk1E * gUnknown_203B21C->input.unk1C) + index; + heldItem = GetKecleonWareItem(temp_calc); + item.id = heldItem->id; + item.quantity = heldItem->quantity; + item.flags = (ITEM_FLAG_EXISTS | ITEM_FLAG_IN_SHOP); + local_7c.unk0 = 1; + local_7c.unk4 = 0; + local_7c.unk6 = 88; + local_7c.unk8 = 1; + sub_8090E14(buffer1, &item, &local_7c); + buyPrice = GetStackBuyPrice(&item); + + if (buyPrice <= gTeamInventory_203B460->teamMoney) { + y = sub_8013800(&gUnknown_203B21C->input, index); + xxx_call_draw_string(8, y, buffer1, gUnknown_203B21C->unk34, 0); + } + else { + sprintfStatic(buffer2, gUnknown_80DB934, buffer1); + y = sub_8013800(&gUnknown_203B21C->input, index); + xxx_call_draw_string(8, y, buffer2, gUnknown_203B21C->unk34, 0); + } + } + sub_80073E0(gUnknown_203B21C->unk34); } -u32 sub_801A5D8(u32 param_1,int param_2,struct UnkTextStruct2_sub *param_3,u32 param_4) +bool32 sub_801A5D8(u32 param_1, s32 param_2, struct UnkTextStruct2_sub *param_3, u32 param_4) { + if (GetNumberOfFilledInventorySlots() == 0) + return FALSE; + + if (gUnknown_203B224 == NULL) + gUnknown_203B224 = MemoryAlloc(sizeof(struct unkStruct_203B224), 8); - if (GetNumberOfFilledInventorySlots() == 0) { - return 0; - } - else { - if (gUnknown_203B224 == NULL) { - gUnknown_203B224 = MemoryAlloc(sizeof(struct unkStruct_203B224),8); - } gUnknown_203B224->unk0 = param_1; FillInventoryGaps(); sub_801AE84(); - gUnknown_203B224->unk88 = param_2; gUnknown_203B224->unk8C = &gUnknown_203B224->unk90[param_2]; - sub_8006518(gUnknown_203B224->unk90); gUnknown_203B224->unk90[gUnknown_203B224->unk88] = gUnknown_80DB95C; - gUnknown_203B224->unk8C->unk14 = gUnknown_203B224->unkF0; if (param_3 != NULL) gUnknown_203B224->unk90[gUnknown_203B224->unk88].unk8 = *param_3; - sub_8012D08(gUnknown_203B224->unk8C,param_4); + sub_8012D08(gUnknown_203B224->unk8C, param_4); sub_8099690(1); ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B224->unk90,1,1); - sub_8013818(&gUnknown_203B224->input,GetNumberOfFilledInventorySlots(),param_4,param_2); + sub_800641C(gUnknown_203B224->unk90, 1, 1); + sub_8013818(&gUnknown_203B224->input, GetNumberOfFilledInventorySlots(), param_4, param_2); gUnknown_203B224->input.menuIndex = gUnknown_203B228; gUnknown_203B224->input.unk1E = gUnknown_203B22A; sub_8013984(&gUnknown_203B224->input); sub_801A998(); sub_801A9E0(); - return 1; - } + return TRUE; } -u32 sub_801A6E8(u8 param_1) +u32 sub_801A6E8(bool8 param_1) { - s32 index; - struct Item item; + s32 index; + struct Item item; - if (param_1 == 0) { - sub_8013660(&gUnknown_203B224->input); - return 0; - } - switch(GetKeyPress(&gUnknown_203B224->input)) { - case INPUT_B_BUTTON: - PlayMenuSoundEffect(1); - return 2; - case INPUT_A_BUTTON: - switch(gUnknown_203B224->unk0) { - case 0: - case 1: - case 2: - if (gUnknown_203B224->unk4[sub_801A8AC()] != 0) - PlayMenuSoundEffect(2); - else + if (param_1 == FALSE) { + sub_8013660(&gUnknown_203B224->input); + return 0; + } + + switch (GetKeyPress(&gUnknown_203B224->input)) { + case INPUT_B_BUTTON: + PlayMenuSoundEffect(1); + return 2; + case INPUT_A_BUTTON: + switch (gUnknown_203B224->unk0) { + case 0: + case 1: + case 2: + if (gUnknown_203B224->unk4[sub_801A8AC()] != 0) + PlayMenuSoundEffect(2); + else + PlayMenuSoundEffect(0); + break; + case 3: + if (sub_801AEA8() != 0 || sub_801ADA0(sub_801A8AC()) != FALSE) + PlayMenuSoundEffect(0); + else + PlayMenuSoundEffect(2); + break; + case 4: + item = gTeamInventory_203B460->teamItems[sub_801A8AC()]; + + if (CanSellItem(item.id) && GetStackSellPrice(&item) + gTeamInventory_203B460->teamMoney <= MAX_TEAM_MONEY) + PlayMenuSoundEffect(0); + else + PlayMenuSoundEffect(2); + break; + case 5: PlayMenuSoundEffect(0); - break; - case 3: - if ((sub_801AEA8() != 0) || (sub_801ADA0(sub_801A8AC()) != 0)) - PlayMenuSoundEffect(0); - else - PlayMenuSoundEffect(2); - break; - case 4: - item = gTeamInventory_203B460->teamItems[sub_801A8AC()]; - if (CanSellItem(item.id) && (GetStackSellPrice(&item) + gTeamInventory_203B460->teamMoney <= MAX_TEAM_MONEY)) - PlayMenuSoundEffect(0); - else - PlayMenuSoundEffect(2); - break; - case 5: - PlayMenuSoundEffect(0); - break; - } - return 3; - case INPUT_START_BUTTON: - PlayMenuSoundEffect(4); - return 4; - case INPUT_L_BUTTON: - case INPUT_R_BUTTON: - if (gUnknown_203B224->unk0 != 3) goto _0801A87C; - index = sub_801A8AC(); - if ((gUnknown_203B224->unk4[index] != 0) || (sub_801ADA0(index) != 0)) { - PlayMenuSoundEffect(6); - gUnknown_203B224->unk4[index] ^= 1; - sub_80138B8(&gUnknown_203B224->input,0); - sub_801A9E0(); - return 1; - } - else - { + break; + } + return 3; + case INPUT_START_BUTTON: + PlayMenuSoundEffect(4); + return 4; + case INPUT_L_BUTTON: + case INPUT_R_BUTTON: + if (gUnknown_203B224->unk0 != 3) + goto _0801A87C; + + index = sub_801A8AC(); + if (gUnknown_203B224->unk4[index] != 0 || sub_801ADA0(index) != FALSE) { + PlayMenuSoundEffect(6); + gUnknown_203B224->unk4[index] ^= 1; + sub_80138B8(&gUnknown_203B224->input, 0); + sub_801A9E0(); + return 1; + } + PlayMenuSoundEffect(2); goto _0801A87C; - } - case INPUT_SELECT_BUTTON: - if (gUnknown_203B224->unk0 != 2) { - PlayMenuSoundEffect(5); - Kecleon_SortItems(); - sub_801A9E0(); - } - // NOTE: fallthrough needed here - default: -_0801A87C: - if (sub_80138B8(&gUnknown_203B224->input,1) != '\0') { - sub_801A998(); - sub_801A9E0(); - return 1; - } - else { - return 0; - } - break; - } + case INPUT_SELECT_BUTTON: + if (gUnknown_203B224->unk0 != 2) { + PlayMenuSoundEffect(5); + Kecleon_SortItems(); + sub_801A9E0(); + } + // NOTE: fallthrough needed here + default: + _0801A87C: + if (sub_80138B8(&gUnknown_203B224->input, 1) != FALSE) { + sub_801A998(); + sub_801A9E0(); + return 1; + } + else + return 0; + break; + } } s32 sub_801A8AC(void) @@ -1133,14 +1081,13 @@ void sub_801A8D0(u8 r0) sub_8013984(&gUnknown_203B224->input); sub_801A998(); sub_801A9E0(); - if(r0) + if (r0) AddMenuCursorSprite(&gUnknown_203B224->input); } void sub_801A928(void) { - if(gUnknown_203B224 != NULL) - { + if (gUnknown_203B224 != NULL) { gUnknown_203B228 = gUnknown_203B224->input.menuIndex; gUnknown_203B22A = gUnknown_203B224->input.unk1E; gUnknown_203B224->unk90[gUnknown_203B224->unk88] = gUnknown_80DB944; @@ -1156,7 +1103,7 @@ void sub_801A998(void) { gUnknown_203B224->unkF0[0] = gUnknown_203B224->input.unk20; gUnknown_203B224->unkF0[1] = gUnknown_203B224->input.unk1E; - gUnknown_203B224->unkF0[2] = 0xB; + gUnknown_203B224->unkF0[2] = 11; gUnknown_203B224->unkF0[3] = 0; ResetUnusedInputStruct(); sub_800641C(gUnknown_203B224->unk90, 1, 1); @@ -1180,20 +1127,20 @@ void sub_801A9E0(void) sub_8008C54(gUnknown_203B224->unk88); sub_80073B8(gUnknown_203B224->unk88); x = gUnknown_203B224->input.unk1E * 8 + 10; - if (gUnknown_203B224->input.unk1E == 0) { - xxx_call_draw_string(x,0,gTeamToolboxA,gUnknown_203B224->unk88,0); - } - else { - xxx_call_draw_string(x,0,gTeamToolboxB,gUnknown_203B224->unk88,0); - } - for(r7 = 0; r7 < gUnknown_203B224->input.unk1A; r7++) - { + + if (gUnknown_203B224->input.unk1E == 0) + xxx_call_draw_string(x, 0, gTeamToolboxA, gUnknown_203B224->unk88, 0); + else + xxx_call_draw_string(x, 0, gTeamToolboxB, gUnknown_203B224->unk88, 0); + + for (r7 = 0; r7 < gUnknown_203B224->input.unk1A; r7++) { teamItemIndex = (gUnknown_203B224->input.unk1E * gUnknown_203B224->input.unk1C) + r7; item = gTeamInventory_203B460->teamItems[teamItemIndex]; - switch(gUnknown_203B224->unk0) { + + switch (gUnknown_203B224->unk0) { case 0: - sub_8090E14(buffer1,&item,0); - xxx_call_draw_string(8,sub_8013800(&gUnknown_203B224->input,r7),buffer1,gUnknown_203B224->unk88,0); + sub_8090E14(buffer1, &item, 0); + xxx_call_draw_string(8, sub_8013800(&gUnknown_203B224->input, r7), buffer1, gUnknown_203B224->unk88, 0); break; case 1: case 2: @@ -1201,22 +1148,21 @@ void sub_801A9E0(void) stack.unk4 = 0; stack.unk8 = 1; item.flags = 1; - sub_8090E14(buffer1,&item, &stack); - xxx_call_draw_string(8,sub_8013800(&gUnknown_203B224->input,r7),buffer1,gUnknown_203B224->unk88,0); + sub_8090E14(buffer1, &item, &stack); + xxx_call_draw_string(8, sub_8013800(&gUnknown_203B224->input, r7), buffer1, gUnknown_203B224->unk88, 0); break; case 3: stack1.unk0 = 0; stack1.unk4 = 0; stack1.unk8 = 1; item.flags = 1; - sub_8090E14(buffer1,&item,&stack1); - if (gUnknown_203B224->unk4[teamItemIndex] != 0 || sub_801ADA0(teamItemIndex) != '\0'){ - xxx_call_draw_string(8,sub_8013800(&gUnknown_203B224->input,r7),buffer1,gUnknown_203B224->unk88,0); - } - else - { - strncpy(gUnknown_202DE58,buffer1,0x50); - xxx_format_and_draw(8,sub_8013800(&gUnknown_203B224->input,r7),gUnknown_80DB994,gUnknown_203B224->unk88,0); + sub_8090E14(buffer1, &item, &stack1); + + if (gUnknown_203B224->unk4[teamItemIndex] != 0 || sub_801ADA0(teamItemIndex) != FALSE) + xxx_call_draw_string(8,sub_8013800(&gUnknown_203B224->input,r7),buffer1,gUnknown_203B224->unk88, 0); + else { + strncpy(gUnknown_202DE58, buffer1, 0x50); + xxx_format_and_draw(8, sub_8013800(&gUnknown_203B224->input, r7), gUnknown_80DB994, gUnknown_203B224->unk88, 0); } break; case 4: @@ -1226,19 +1172,20 @@ void sub_801A9E0(void) stack2.unk6 = 0x58; stack2.unk8 = 1; item.flags = 3; - sub_8090E14(buffer1,&item, &stack2); - if (GetStackSellPrice(&item) + gTeamInventory_203B460->teamMoney > MAX_TEAM_MONEY){ + sub_8090E14(buffer1, &item, &stack2); + + if (GetStackSellPrice(&item) + gTeamInventory_203B460->teamMoney > MAX_TEAM_MONEY) { // very dumb but this matches... - sprintfStatic((char *)&stack3,gUnknown_80DB9A0,buffer1); - xxx_call_draw_string(8,sub_8013800(&gUnknown_203B224->input,r7),(u8 *)&stack3,gUnknown_203B224->unk88,0); + sprintfStatic((char *)&stack3, gUnknown_80DB9A0, buffer1); + xxx_call_draw_string(8, sub_8013800(&gUnknown_203B224->input, r7), (u8 *)&stack3, gUnknown_203B224->unk88, 0); } else - xxx_call_draw_string(8,sub_8013800(&gUnknown_203B224->input,r7),buffer1,gUnknown_203B224->unk88,0);; + xxx_call_draw_string(8, sub_8013800(&gUnknown_203B224->input, r7), buffer1, gUnknown_203B224->unk88, 0); } else { - sub_8090E14(buffer1,&item, 0); - strncpy(gUnknown_202DE58,buffer1,0x50); - xxx_format_and_draw(8,sub_8013800(&gUnknown_203B224->input,r7),gUnknown_80DB994,gUnknown_203B224->unk88,0); + sub_8090E14(buffer1, &item, 0); + strncpy(gUnknown_202DE58, buffer1, 0x50); + xxx_format_and_draw(8, sub_8013800(&gUnknown_203B224->input, r7), gUnknown_80DB994, gUnknown_203B224->unk88, 0); } break; case 5: @@ -1246,120 +1193,111 @@ void sub_801A9E0(void) stack3.unk4 = 0; stack3.unk8 = 1; item.flags = 1; - sub_8090E14(buffer1,&item,&stack3); - if (IsGummiItem(item.id)) { - xxx_call_draw_string(8,sub_8013800(&gUnknown_203B224->input,r7),buffer1,gUnknown_203B224->unk88,0); - } - else - { - strncpy(gUnknown_202DE58,buffer1,0x50); - xxx_format_and_draw(8,sub_8013800(&gUnknown_203B224->input,r7),gUnknown_80DB994,gUnknown_203B224->unk88,0); + sub_8090E14(buffer1, &item, &stack3); + + if (IsGummiItem(item.id)) + xxx_call_draw_string(8, sub_8013800(&gUnknown_203B224->input, r7), buffer1, gUnknown_203B224->unk88, 0); + else { + strncpy(gUnknown_202DE58, buffer1, 0x50); + xxx_format_and_draw(8, sub_8013800(&gUnknown_203B224->input, r7), gUnknown_80DB994, gUnknown_203B224->unk88, 0); } break; } - if ((sub_801AED0(teamItemIndex) & 1) != 0) { - sub_8007B7C(gUnknown_203B224->unk88,8,sub_8013800(&gUnknown_203B224->input,r7),(gUnknown_203B224->unk8C->unkC - 2) * 8,10); - } + + if ((sub_801AED0(teamItemIndex) & 1) != 0) + sub_8007B7C(gUnknown_203B224->unk88, 8, sub_8013800(&gUnknown_203B224->input, r7), (gUnknown_203B224->unk8C->unkC - 2) * 8, 10); } + sub_80073E0(gUnknown_203B224->unk88); } - void sub_801AD34(u32 param_1) { - sub_8008C54(param_1); - sub_80073B8(param_1); - xxx_call_draw_string(6,0,gUnknown_80DB9A8,param_1,0); - sub_8012BC4(0x12,0xd,GetNumberOfFilledInventorySlots(),2,7,param_1); - xxx_call_draw_string(0x16,0xd,gUnknown_80DB9B0,param_1,0); - sub_8012BC4(0x2b,0xd,INVENTORY_SIZE,2,7,param_1); - sub_80073E0(param_1); + sub_8008C54(param_1); + sub_80073B8(param_1); + xxx_call_draw_string(6, 0, gUnknown_80DB9A8, param_1, 0); + sub_8012BC4(18, 13, GetNumberOfFilledInventorySlots(), 2, 7, param_1); + xxx_call_draw_string(22, 13, gUnknown_80DB9B0, param_1, 0); + sub_8012BC4(43, 13, INVENTORY_SIZE, 2, 7, param_1); + sub_80073E0(param_1); } bool8 sub_801ADA0(s32 param_1) { - u16 uVar2; - u32 uVar2_32; + u16 uVar2; + u32 uVar2_32; - u16 uVar3; - u32 uVar3_32; - s32 sum1; - s32 sum2; - struct Item item; - - item = gTeamInventory_203B460->teamItems[param_1]; - if (!IsNotMoneyOrUsedTMItem(item.id)) { - return FALSE; - } - else - { - if (IsThrowableItem(item.id)) { - uVar3_32 = sub_801AE24(item.id); - sum1 = gTeamInventory_203B460->teamStorage[item.id]; - uVar3 = uVar3_32; - sum1 += uVar3; - sum1 += (item.quantity); - if (sum1 > 999) + u16 uVar3; + u32 uVar3_32; + s32 sum1; + s32 sum2; + struct Item item; + + item = gTeamInventory_203B460->teamItems[param_1]; + if (!IsNotMoneyOrUsedTMItem(item.id)) return FALSE; + + if (IsThrowableItem(item.id)) { + uVar3_32 = sub_801AE24(item.id); + sum1 = gTeamInventory_203B460->teamStorage[item.id]; + uVar3 = uVar3_32; + sum1 += uVar3; + sum1 += (item.quantity); + if (sum1 > 999) + return FALSE; } else { - uVar2_32 = sub_801AE24(item.id); - sum2 = gTeamInventory_203B460->teamStorage[item.id]; - uVar2 = uVar2_32; - sum2 += uVar2; - if (sum2 > 998) - return FALSE; + uVar2_32 = sub_801AE24(item.id); + sum2 = gTeamInventory_203B460->teamStorage[item.id]; + uVar2 = uVar2_32; + sum2 += uVar2; + if (sum2 > 998) + return FALSE; } - } - return 1; + return 1; } s32 sub_801AE24(u32 itemID) { - struct Item item; - u16 count; - s32 invIndex; + struct Item item; + u16 count; + s32 invIndex; - count = 0; - for (invIndex = 0; invIndex < GetNumberOfFilledInventorySlots(); invIndex++) { - if (gUnknown_203B224->unk4[invIndex] != 0) { - item = gTeamInventory_203B460->teamItems[invIndex]; - if (item.id == itemID) { - if (IsThrowableItem(item.id)) { - count += item.quantity; + count = 0; + for (invIndex = 0; invIndex < GetNumberOfFilledInventorySlots(); invIndex++) { + if (gUnknown_203B224->unk4[invIndex] != 0) { + item = gTeamInventory_203B460->teamItems[invIndex]; + + if (item.id == itemID) { + if (IsThrowableItem(item.id)) + count += item.quantity; + else + count++; + } } - else { - count++; - } - } } - } - return count; + return count; } void sub_801AE84(void) { - s32 index; + s32 index; - for(index = 0; index < INVENTORY_SIZE; index++) - { - gUnknown_203B224->unk4[index] = 0; - } + for (index = 0; index < INVENTORY_SIZE; index++) + gUnknown_203B224->unk4[index] = 0; } s32 sub_801AEA8(void) { - s32 index; - s32 count; + s32 index; + s32 count; - count = 0; - for(index = 0; index < INVENTORY_SIZE; index++) - { - if (gUnknown_203B224->unk4[index] != 0) { - count++; + count = 0; + for (index = 0; index < INVENTORY_SIZE; index++) { + if (gUnknown_203B224->unk4[index] != 0) + count++; } - } - return count; + return count; } s32 sub_801AED0(s32 index) @@ -1374,39 +1312,39 @@ void sub_801AEE4(s32 index, s32 value) void Kecleon_SortItems(void) { - struct Item *itemSlotR; - u32 *itemIDR; - u32 *base; - s32 orderL; - s32 orderR; - u32 itemIDL; - struct Item itemSlotL; - s32 itemR; - s32 itemL; + struct Item *itemSlotR; + u32 *itemIDR; + u32 *base; + s32 orderL; + s32 orderR; + u32 itemIDL; + struct Item itemSlotL; + s32 itemR; + s32 itemL; - for (itemL = 0; itemL < GetNumberOfFilledInventorySlots() - 1; itemL++) { - for (itemR = itemL + 1; itemR < GetNumberOfFilledInventorySlots(); itemR++) { - orderL = GetItemOrder(gTeamInventory_203B460->teamItems[itemL].id); - orderR = GetItemOrder(gTeamInventory_203B460->teamItems[itemR].id); - if ((orderL > orderR) || ((orderL == orderR) && - (gTeamInventory_203B460->teamItems[itemL].quantity < gTeamInventory_203B460->teamItems[itemR].quantity))) { + for (itemL = 0; itemL < GetNumberOfFilledInventorySlots() - 1; itemL++) { + for (itemR = itemL + 1; itemR < GetNumberOfFilledInventorySlots(); itemR++) { + orderL = GetItemOrder(gTeamInventory_203B460->teamItems[itemL].id); + orderR = GetItemOrder(gTeamInventory_203B460->teamItems[itemR].id); - itemSlotL = gTeamInventory_203B460->teamItems[itemL]; - itemSlotR = &gTeamInventory_203B460->teamItems[itemR]; - gTeamInventory_203B460->teamItems[itemL] = *itemSlotR; - *itemSlotR = itemSlotL; + if (orderL > orderR + || (orderL == orderR && gTeamInventory_203B460->teamItems[itemL].quantity < gTeamInventory_203B460->teamItems[itemR].quantity)) { + itemSlotL = gTeamInventory_203B460->teamItems[itemL]; + itemSlotR = &gTeamInventory_203B460->teamItems[itemR]; + gTeamInventory_203B460->teamItems[itemL] = *itemSlotR; + *itemSlotR = itemSlotL; - base = gUnknown_203B224->unk4; - itemIDL = gUnknown_203B224->unk4[itemL]; - itemIDR = &base[itemR]; - base[itemL] = *itemIDR; - *itemIDR = itemIDL; - } + base = gUnknown_203B224->unk4; + itemIDL = gUnknown_203B224->unk4[itemL]; + itemIDR = &base[itemR]; + base[itemL] = *itemIDR; + *itemIDR = itemIDL; + } + } } - } } -struct unkStruct_203B224 * sub_801AF98(void) +struct unkStruct_203B224 *sub_801AF98(void) { return gUnknown_203B224; } diff --git a/src/luminous_cave.c b/src/luminous_cave.c index 47bef4546..3a0403546 100644 --- a/src/luminous_cave.c +++ b/src/luminous_cave.c @@ -204,7 +204,7 @@ void sub_801AEE4(u32, u32); void sub_808F734(struct PokemonStruct *, s16); u32 sub_801602C(u32 r0, u8 *name); extern s32 sub_80144A4(s32 *); -extern u32 sub_801A6E8(u32); +extern u32 sub_801A6E8(bool8); extern s32 sub_801A8AC(void); extern void sub_8099690(u32); extern void sub_801A928(void); @@ -734,7 +734,7 @@ void sub_8024F70(void) void sub_8024FD4(void) { - switch(sub_801A6E8(1)) + switch(sub_801A6E8(TRUE)) { case 3: gUnknown_203B2B0->evoItem1_InvIndex = sub_801A8AC(); @@ -756,7 +756,7 @@ void sub_8024FD4(void) void sub_8025058(void) { - switch(sub_801A6E8(1)) + switch(sub_801A6E8(TRUE)) { case 3: if(gUnknown_203B2B0->evoItem1_InvIndex != sub_801A8AC()) @@ -784,7 +784,7 @@ void sub_80250EC(void) { s32 menuAction; menuAction = 0; - sub_801A6E8(0); + sub_801A6E8(FALSE); if(!sub_8012FD8(&gUnknown_203B2B0->unk84)) { @@ -811,7 +811,7 @@ void sub_802515C(void) { s32 menuAction; menuAction = 0; - sub_801A6E8(0); + sub_801A6E8(FALSE); if(!sub_8012FD8(&gUnknown_203B2B0->unk84)) { diff --git a/src/party_list_menu.c b/src/party_list_menu.c index 1d0754fbe..8134a9718 100644 --- a/src/party_list_menu.c +++ b/src/party_list_menu.c @@ -182,7 +182,7 @@ extern void sub_801B450(void); extern void nullsub_104(void); extern void sub_801A928(void); extern void sub_8099690(u32); -extern u32 sub_801A6E8(u32); +extern u32 sub_801A6E8(bool8); extern u32 sub_801A8AC(void); extern u32 sub_8022860(void); extern void sub_8022908(void); @@ -811,7 +811,7 @@ void sub_8026B48(void) void sub_8026B64(void) { - switch(sub_801A6E8(1)) + switch(sub_801A6E8(TRUE)) { case 3: gUnknown_203B2B8->id = sub_801A8AC(); @@ -844,7 +844,7 @@ void sub_8026C14(void) struct Item slot; menuAction = 0; - sub_801A6E8(0); + sub_801A6E8(FALSE); if ((sub_8012FD8(&gUnknown_203B2B8->unkCC) == '\0') && (sub_8013114(&gUnknown_203B2B8->unkCC,&menuAction), menuAction != 1)) { gUnknown_203B2B8->menuAction2 = menuAction; } From b472be2880fcdc991b5439fa69546497027864f8 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sat, 5 Aug 2023 10:14:15 -0400 Subject: [PATCH 02/16] Match UpdateKecleonStoreDialogue --- asm/kecleon_items.s | 758 -------------------------------------------- ld_script.txt | 1 - src/kecleon_items.c | 265 +++++++++++++++- 3 files changed, 251 insertions(+), 773 deletions(-) delete mode 100644 asm/kecleon_items.s diff --git a/asm/kecleon_items.s b/asm/kecleon_items.s deleted file mode 100644 index 3ad8b3c1f..000000000 --- a/asm/kecleon_items.s +++ /dev/null @@ -1,758 +0,0 @@ - #include "asm/constants/gba_constants.inc" - #include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start UpdateKecleonStoreDialogue -UpdateKecleonStoreDialogue: - push {r4,lr} - sub sp, 0x14 - ldr r1, _08018EA4 - ldr r0, [r1] - ldr r0, [r0, 0x8] - adds r4, r1, 0 - cmp r0, 0x20 - bls _08018E9A - b _080194E8 -_08018E9A: - lsls r0, 2 - ldr r1, _08018EA8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08018EA4: .4byte gUnknown_203B210 -_08018EA8: .4byte _08018EAC - .align 2, 0 -_08018EAC: - .4byte _08018F30 - .4byte _08018F58 - .4byte _08018FA8 - .4byte _08018FD0 - .4byte _080194E8 - .4byte _08018FFC - .4byte _08019024 - .4byte _0801904C - .4byte _08019070 - .4byte _08019094 - .4byte _080190B8 - .4byte _080190DC - .4byte _08019104 - .4byte _0801912C - .4byte _08019164 - .4byte _0801918C - .4byte _080191B4 - .4byte _08019294 - .4byte _080191DC - .4byte _080191FA - .4byte _08019218 - .4byte _080193F4 - .4byte _08019254 - .4byte _08019314 - .4byte _0801933C - .4byte _080193FE - .4byte _08019364 - .4byte _08019372 - .4byte _08019380 - .4byte _080193F4 - .4byte _080193B4 - .4byte _0801946C - .4byte _080194C0 -_08018F30: - bl sub_8019DAC - bl sub_80194F8 - movs r0, 0 - bl sub_8019E04 - ldr r2, _08018F50 - ldr r0, _08018F54 - ldr r4, [r0] - ldr r1, [r4] - movs r0, 0x5C - muls r0, r1 - adds r0, r2 - b _08018F76 - .align 2, 0 -_08018F50: .4byte gKecleonShopDialogue -_08018F54: .4byte gUnknown_203B210 -_08018F58: - bl sub_8019DAC - bl sub_80194F8 - movs r0, 0 - bl sub_8019E04 - ldr r1, _08018FA0 - ldr r0, _08018FA4 - ldr r4, [r0] - ldr r2, [r4] - movs r0, 0x5C - muls r0, r2 - adds r1, 0x4 - adds r0, r1 -_08018F76: - ldr r0, [r0] - ldr r2, [r4, 0x28] - adds r3, r4, 0 - adds r3, 0x34 - adds r1, r4, 0 - adds r1, 0x74 - str r1, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - adds r1, r4, 0 - adds r1, 0xE4 - ldr r1, [r1] - str r1, [sp, 0xC] - movs r1, 0xC - str r1, [sp, 0x10] - movs r1, 0 - bl sub_8014248 - b _080194E8 - .align 2, 0 -_08018FA0: .4byte gKecleonShopDialogue -_08018FA4: .4byte gUnknown_203B210 -_08018FA8: - ldr r1, [r4] - movs r0, 0x1 - str r0, [r1, 0xC] - movs r0, 0 - bl sub_8019E04 - ldr r1, _08018FCC - ldr r2, [r4] - ldr r3, [r2] - movs r0, 0x5C - muls r0, r3 - adds r1, 0x58 - adds r0, r1 - ldr r0, [r0] - adds r2, 0xE4 - ldr r2, [r2] - b _08019454 - .align 2, 0 -_08018FCC: .4byte gKecleonShopDialogue -_08018FD0: - ldr r1, [r4] - movs r0, 0x4 - str r0, [r1, 0xC] - movs r0, 0 - bl sub_8019E04 - ldr r1, _08018FF4 - ldr r2, [r4] - ldr r3, [r2] - movs r0, 0x5C - muls r0, r3 - adds r1, 0x8 - adds r0, r1 - ldr r0, [r0] - adds r2, 0xE4 - ldr r2, [r2] - ldr r3, _08018FF8 - b _08019456 - .align 2, 0 -_08018FF4: .4byte gKecleonShopDialogue -_08018FF8: .4byte 0x0000030d -_08018FFC: - ldr r1, [r4] - movs r0, 0x1 - str r0, [r1, 0xC] - movs r0, 0 - bl sub_8019E04 - ldr r1, _08019020 - ldr r2, [r4] - ldr r3, [r2] - movs r0, 0x5C - muls r0, r3 - adds r1, 0x30 - adds r0, r1 - ldr r0, [r0] - adds r2, 0xE4 - ldr r2, [r2] - b _08019454 - .align 2, 0 -_08019020: .4byte gKecleonShopDialogue -_08019024: - ldr r1, [r4] - movs r0, 0x10 - str r0, [r1, 0xC] - movs r0, 0x1 - bl sub_8019E04 - ldr r1, _08019048 - ldr r2, [r4] - ldr r3, [r2] - movs r0, 0x5C - muls r0, r3 - adds r1, 0x34 - adds r0, r1 - ldr r0, [r0] - adds r2, 0xE4 - ldr r2, [r2] - b _08019454 - .align 2, 0 -_08019048: .4byte gKecleonShopDialogue -_0801904C: - ldr r1, [r4] - movs r0, 0x1 - str r0, [r1, 0xC] - bl sub_8019E04 - ldr r1, _0801906C - ldr r2, [r4] - ldr r3, [r2] - movs r0, 0x5C - muls r0, r3 - adds r1, 0x38 - adds r0, r1 - ldr r0, [r0] - adds r2, 0xE4 - ldr r2, [r2] - b _08019454 - .align 2, 0 -_0801906C: .4byte gKecleonShopDialogue -_08019070: - ldr r1, [r4] - movs r0, 0x1 - str r0, [r1, 0xC] - bl sub_8019E04 - ldr r1, _08019090 - ldr r2, [r4] - ldr r3, [r2] - movs r0, 0x5C - muls r0, r3 - adds r1, 0x3C - adds r0, r1 - ldr r0, [r0] - adds r2, 0xE4 - ldr r2, [r2] - b _08019454 - .align 2, 0 -_08019090: .4byte gKecleonShopDialogue -_08019094: - ldr r1, [r4] - movs r0, 0x1 - str r0, [r1, 0xC] - bl sub_8019E04 - ldr r1, _080190B4 - ldr r2, [r4] - ldr r3, [r2] - movs r0, 0x5C - muls r0, r3 - adds r1, 0x40 - adds r0, r1 - ldr r0, [r0] - adds r2, 0xE4 - ldr r2, [r2] - b _08019454 - .align 2, 0 -_080190B4: .4byte gKecleonShopDialogue -_080190B8: - ldr r1, [r4] - movs r0, 0x1 - str r0, [r1, 0xC] - bl sub_8019E04 - ldr r1, _080190D8 - ldr r2, [r4] - ldr r3, [r2] - movs r0, 0x5C - muls r0, r3 - adds r1, 0x44 - adds r0, r1 - ldr r0, [r0] - adds r2, 0xE4 - ldr r2, [r2] - b _08019454 - .align 2, 0 -_080190D8: .4byte gKecleonShopDialogue -_080190DC: - ldr r1, [r4] - movs r0, 0x1 - str r0, [r1, 0xC] - movs r0, 0 - bl sub_8019E04 - ldr r1, _08019100 - ldr r2, [r4] - ldr r3, [r2] - movs r0, 0x5C - muls r0, r3 - adds r1, 0x48 - adds r0, r1 - ldr r0, [r0] - adds r2, 0xE4 - ldr r2, [r2] - b _08019454 - .align 2, 0 -_08019100: .4byte gKecleonShopDialogue -_08019104: - ldr r1, [r4] - movs r0, 0x10 - str r0, [r1, 0xC] - movs r0, 0x1 - bl sub_8019E04 - ldr r1, _08019128 - ldr r2, [r4] - ldr r3, [r2] - movs r0, 0x5C - muls r0, r3 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - adds r2, 0xE4 - ldr r2, [r2] - b _08019454 - .align 2, 0 -_08019128: .4byte gKecleonShopDialogue -_0801912C: - ldr r0, _0801915C - ldr r1, [r4] - adds r1, 0x1C - movs r2, 0 - bl sub_8090E14 - ldr r1, [r4] - movs r0, 0x18 - str r0, [r1, 0xC] - movs r0, 0x1 - bl sub_8019E04 - ldr r1, _08019160 - ldr r2, [r4] - ldr r3, [r2] - movs r0, 0x5C - muls r0, r3 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - adds r2, 0xE4 - ldr r2, [r2] - b _08019454 - .align 2, 0 -_0801915C: .4byte gUnknown_202DE58 -_08019160: .4byte gKecleonShopDialogue -_08019164: - ldr r1, [r4] - movs r0, 0x18 - str r0, [r1, 0xC] - movs r0, 0x1 - bl sub_8019E04 - ldr r1, _08019188 - ldr r2, [r4] - ldr r3, [r2] - movs r0, 0x5C - muls r0, r3 - adds r1, 0x54 - adds r0, r1 - ldr r0, [r0] - adds r2, 0xE4 - ldr r2, [r2] - b _08019454 - .align 2, 0 -_08019188: .4byte gKecleonShopDialogue -_0801918C: - ldr r1, [r4] - movs r0, 0x12 - str r0, [r1, 0xC] - movs r0, 0 - bl sub_8019E04 - ldr r1, _080191B0 - ldr r2, [r4] - ldr r3, [r2] - movs r0, 0x5C - muls r0, r3 - adds r1, 0xC - adds r0, r1 - ldr r0, [r0] - adds r2, 0xE4 - ldr r2, [r2] - b _08019454 - .align 2, 0 -_080191B0: .4byte gKecleonShopDialogue -_080191B4: - ldr r1, [r4] - movs r0, 0x13 - str r0, [r1, 0xC] - movs r0, 0 - bl sub_8019E04 - ldr r1, _080191D8 - ldr r2, [r4] - ldr r3, [r2] - movs r0, 0x5C - muls r0, r3 - adds r1, 0x10 - adds r0, r1 - ldr r0, [r0] - adds r2, 0xE4 - ldr r2, [r2] - b _08019454 - .align 2, 0 -_080191D8: .4byte gKecleonShopDialogue -_080191DC: - ldr r0, [r4] - ldrb r0, [r0, 0x4] - cmp r0, 0 - beq _080191EC - movs r0, 0x3 - bl sub_8019E40 - b _080191F2 -_080191EC: - movs r0, 0x3 - bl sub_801A20C -_080191F2: - movs r0, 0 - bl sub_801AD34 - b _08019378 -_080191FA: - ldr r0, [r4] - ldrb r0, [r0, 0x4] - cmp r0, 0 - beq _0801920A - movs r0, 0x1 - bl sub_8019FCC - b _08019210 -_0801920A: - movs r0, 0x1 - bl sub_801A398 -_08019210: - movs r0, 0 - bl sub_801AD34 - b _08019378 -_08019218: - ldr r0, [r4] - ldrb r0, [r0, 0x4] - cmp r0, 0 - beq _08019226 - bl sub_801A0D8 - b _0801922A -_08019226: - bl sub_801A4A4 -_0801922A: - movs r0, 0 - bl sub_801AD34 - movs r0, 0x1 - bl DrawTeamMoneyBox - bl sub_80195C0 - ldr r0, _08019250 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x84 - adds r1, r2, 0 - adds r1, 0x34 - adds r3, r2, 0 - adds r3, 0x74 - ldr r2, [r2, 0x30] - b _080193A0 - .align 2, 0 -_08019250: .4byte gUnknown_203B210 -_08019254: - bl sub_8019700 - ldr r0, _08019284 - ldr r4, _08019288 - ldr r1, [r4] - adds r1, 0x1C - movs r2, 0 - bl sub_8090E14 - ldr r1, _0801928C - ldr r0, [r4] - ldr r0, [r0, 0x10] - str r0, [r1] - movs r0, 0 - bl sub_8019E04 - ldr r1, _08019290 - ldr r4, [r4] - ldr r2, [r4] - movs r0, 0x5C - muls r0, r2 - adds r1, 0x14 - b _0801948C - .align 2, 0 -_08019284: .4byte gUnknown_202DE58 -_08019288: .4byte gUnknown_203B210 -_0801928C: .4byte gUnknown_202DE30 -_08019290: .4byte gKecleonShopDialogue -_08019294: - bl CountKecleonItems - cmp r0, 0 - bne _080192C0 - ldr r0, _080192AC - ldr r0, [r0] - ldrb r0, [r0, 0x4] - cmp r0, 0 - beq _080192B0 - bl sub_801A010 - b _080192B4 - .align 2, 0 -_080192AC: .4byte gUnknown_203B210 -_080192B0: - bl sub_801A3DC -_080192B4: - ldr r0, _080192BC - ldr r1, [r0] - movs r0, 0xB - b _080192F2 - .align 2, 0 -_080192BC: .4byte gUnknown_203B210 -_080192C0: - bl GetNumberOfFilledInventorySlots - cmp r0, 0x13 - ble _080192EC - ldr r0, _080192D8 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - cmp r0, 0 - beq _080192DC - bl sub_801A010 - b _080192E0 - .align 2, 0 -_080192D8: .4byte gUnknown_203B210 -_080192DC: - bl sub_801A3DC -_080192E0: - ldr r0, _080192E8 - ldr r1, [r0] - movs r0, 0x1 - b _080192F2 - .align 2, 0 -_080192E8: .4byte gUnknown_203B210 -_080192EC: - ldr r0, _0801930C - ldr r1, [r0] - movs r0, 0x10 -_080192F2: - str r0, [r1, 0xC] - movs r0, 0 - bl sub_8019E04 - ldr r2, _08019310 - ldr r0, _0801930C - ldr r1, [r0] - ldr r3, [r1] - movs r0, 0x5C - muls r0, r3 - adds r2, 0x18 - b _0801944C - .align 2, 0 -_0801930C: .4byte gUnknown_203B210 -_08019310: .4byte gKecleonShopDialogue -_08019314: - ldr r1, [r4] - movs r0, 0x1A - str r0, [r1, 0xC] - movs r0, 0 - bl sub_8019E04 - ldr r1, _08019338 - ldr r2, [r4] - ldr r3, [r2] - movs r0, 0x5C - muls r0, r3 - adds r1, 0x1C - adds r0, r1 - ldr r0, [r0] - adds r2, 0xE4 - ldr r2, [r2] - b _08019454 - .align 2, 0 -_08019338: .4byte gKecleonShopDialogue -_0801933C: - ldr r1, [r4] - movs r0, 0x1B - str r0, [r1, 0xC] - movs r0, 0 - bl sub_8019E04 - ldr r1, _08019360 - ldr r2, [r4] - ldr r3, [r2] - movs r0, 0x5C - muls r0, r3 - adds r1, 0x20 - adds r0, r1 - ldr r0, [r0] - adds r2, 0xE4 - ldr r2, [r2] - b _08019454 - .align 2, 0 -_08019360: .4byte gKecleonShopDialogue -_08019364: - movs r0, 0x4 - movs r1, 0x3 - movs r2, 0 - movs r3, 0xA - bl sub_801A5D8 - b _08019378 -_08019372: - movs r0, 0x1 - bl sub_801A8D0 -_08019378: - movs r0, 0x1 - bl DrawTeamMoneyBox - b _080194E8 -_08019380: - bl sub_801A9E0 - movs r0, 0x1 - bl DrawTeamMoneyBox - bl sub_8019660 - ldr r0, _080193B0 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x84 - adds r1, r2, 0 - adds r1, 0x34 - adds r3, r2, 0 - adds r3, 0x74 - ldr r2, [r2, 0x2C] -_080193A0: - str r2, [sp] - movs r2, 0x2 - str r2, [sp, 0x4] - movs r2, 0 - bl sub_8012D60 - b _080194E8 - .align 2, 0 -_080193B0: .4byte gUnknown_203B210 -_080193B4: - bl sub_8019700 - ldr r0, _080193E4 - ldr r4, _080193E8 - ldr r1, [r4] - adds r1, 0x1C - movs r2, 0 - bl sub_8090E14 - ldr r1, _080193EC - ldr r0, [r4] - ldr r0, [r0, 0x10] - str r0, [r1] - movs r0, 0 - bl sub_8019E04 - ldr r1, _080193F0 - ldr r4, [r4] - ldr r2, [r4] - movs r0, 0x5C - muls r0, r2 - adds r1, 0x24 - b _0801948C - .align 2, 0 -_080193E4: .4byte gUnknown_202DE58 -_080193E8: .4byte gUnknown_203B210 -_080193EC: .4byte gUnknown_202DE30 -_080193F0: .4byte gKecleonShopDialogue -_080193F4: - ldr r0, [r4] - adds r0, 0x1C - bl sub_801B3C0 - b _080194E8 -_080193FE: - bl GetNumberOfFilledInventorySlots - cmp r0, 0 - beq _08019418 - ldr r0, _08019424 - ldr r0, [r0] - movs r1, 0x98 - lsls r1, 2 - adds r0, r1 - ldr r1, [r0] - ldr r0, _08019428 - cmp r1, r0 - ble _08019430 -_08019418: - bl sub_801A928 - ldr r0, _0801942C - ldr r1, [r0] - movs r0, 0x1 - b _08019436 - .align 2, 0 -_08019424: .4byte gTeamInventory_203B460 -_08019428: .4byte 0x0001869e -_0801942C: .4byte gUnknown_203B210 -_08019430: - ldr r0, _08019460 - ldr r1, [r0] - movs r0, 0x18 -_08019436: - str r0, [r1, 0xC] - movs r0, 0 - bl sub_8019E04 - ldr r2, _08019464 - ldr r0, _08019460 - ldr r1, [r0] - ldr r3, [r1] - movs r0, 0x5C - muls r0, r3 - adds r2, 0x2C -_0801944C: - adds r0, r2 - ldr r0, [r0] - adds r1, 0xE4 - ldr r2, [r1] -_08019454: - ldr r3, _08019468 -_08019456: - movs r1, 0 - bl sub_80141B4 - b _080194E8 - .align 2, 0 -_08019460: .4byte gUnknown_203B210 -_08019464: .4byte gKecleonShopDialogue -_08019468: .4byte 0x0000010d -_0801946C: - bl sub_8019700 - ldr r1, _080194B4 - ldr r4, _080194B8 - ldr r0, [r4] - ldr r0, [r0, 0x18] - str r0, [r1] - movs r0, 0 - bl sub_8019E04 - ldr r1, _080194BC - ldr r4, [r4] - ldr r2, [r4] - movs r0, 0x5C - muls r0, r2 - adds r1, 0x28 -_0801948C: - adds r0, r1 - ldr r0, [r0] - adds r3, r4, 0 - adds r3, 0x34 - movs r2, 0 - str r2, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - adds r4, 0xE4 - ldr r1, [r4] - str r1, [sp, 0xC] - movs r1, 0xC - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0x5 - bl sub_8014248 - b _080194E8 - .align 2, 0 -_080194B4: .4byte gUnknown_202DE30 -_080194B8: .4byte gUnknown_203B210 -_080194BC: .4byte gKecleonShopDialogue -_080194C0: - ldr r1, [r4] - movs r0, 0x1 - str r0, [r1, 0xC] - movs r0, 0 - bl sub_8019E04 - ldr r1, _080194F0 - ldr r2, [r4] - ldr r3, [r2] - movs r0, 0x5C - muls r0, r3 - adds r1, 0x2C - adds r0, r1 - ldr r0, [r0] - adds r2, 0xE4 - ldr r2, [r2] - ldr r3, _080194F4 - movs r1, 0 - bl sub_80141B4 -_080194E8: - add sp, 0x14 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080194F0: .4byte gKecleonShopDialogue -_080194F4: .4byte 0x0000010d - thumb_func_end UpdateKecleonStoreDialogue - - .align 2,0 diff --git a/ld_script.txt b/ld_script.txt index cdfc9cede..7fb5945af 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -98,7 +98,6 @@ SECTIONS { src/felicity_bank.o(.text); src/kangaskhan_storage.o(.text); src/kecleon_items.o(.text); - asm/kecleon_items.o(.text); src/kecleon_items_1.o(.text); src/code_801AFA4.o(.text); src/code_801B3C0.o(.text); diff --git a/src/kecleon_items.c b/src/kecleon_items.c index 68ab19ed8..bd27bbeb0 100644 --- a/src/kecleon_items.c +++ b/src/kecleon_items.c @@ -5,29 +5,60 @@ #include "team_inventory.h" extern struct unkStruct_203B210 *gUnknown_203B210; +extern u32 gUnknown_202DE30; +extern u8 gUnknown_202DE58[]; extern u8 gUnknown_202E5D8[]; extern u8 gUnknown_202E1C8[]; + extern struct UnkTextStruct2 gUnknown_80DB840; extern struct UnkTextStruct2 gUnknown_80DB870; extern struct UnkTextStruct2 gUnknown_80DB888; extern struct UnkTextStruct2 gUnknown_80DB858; +extern const u8 *gKecleonShopDialogue[4][23]; +extern void sub_8012D60(struct MenuStruct *, const struct MenuItem *, u32 *, u16 *, s32, s32); +extern void sub_80141B4(const u8 *, u32, struct OpenedFile **, u32); +extern void sub_8014248(const u8 *, u32, u32, const struct MenuItem *, void *, u32, u32, struct OpenedFile **, u32); +extern void sub_8018D30(void); +extern void sub_80194F8(void); +extern void sub_80195C0(void); +extern void sub_8019660(void); +extern void sub_8019700(void); +extern void sub_8019730(void); +extern void sub_8019850(void); +extern void sub_80198E8(void); +extern void sub_8019944(void); +extern void sub_80199CC(void); +extern void sub_8019B08(void); +extern void sub_8019BBC(void); +extern void sub_8019C78(void); +extern void sub_8019D30(void); +extern void sub_8019D4C(void); +extern void sub_8019D68(void); +extern void sub_8019DAC(void); +extern void sub_8019E04(s32); +extern u32 sub_8019E40(u32); +extern void sub_8019FCC(u8); +extern void sub_801A010(void); +extern void sub_801A0D8(void); +extern u32 sub_801A20C(u32); +extern void sub_801A398(u8); +extern void sub_801A3DC(void); +extern void sub_801A4A4(void); +extern u32 sub_801A5D8(u32, s32, struct UnkTextStruct2_sub *, u32); +extern void sub_801A8D0(u8); +extern void sub_801A928(void); +extern void sub_801A9E0(void); +extern void sub_801AD34(u32); +extern u32 sub_801B3C0(struct Item *); +extern void sub_8090E14(u8 *, struct Item *, struct unkStruct_8090F58 *); + +extern u32 CountKecleonItems(void); +extern void DrawTeamMoneyBox(u32); + +void UpdateKecleonStoreDialogue(void); void UpdateKecleonStoreState(u32); -extern void sub_8019730(); -extern void sub_80199CC(); -extern void sub_8019B08(); -extern void sub_8019BBC(); -extern void sub_8019C78(); -extern void sub_8019850(); -extern void sub_80198E8(); -extern void sub_8019944(); -extern void sub_8019D30(); -extern void sub_8019D4C(); -extern void sub_8019D68(); -extern void sub_8018D30(); -extern void UpdateKecleonStoreDialogue(); - u32 DisplayKeckleonDialogueSprite(u32 mode) { char *monName; @@ -187,3 +218,209 @@ void sub_8018D30(void) ResetUnusedInputStruct(); sub_800641C(gUnknown_203B210->unkE8, 1, 1); } + +void UpdateKecleonStoreDialogue(void) +{ + switch (gUnknown_203B210->currState) { + case 0: + sub_8019DAC(); + sub_80194F8(); + sub_8019E04(0); + sub_8014248(gKecleonShopDialogue[gUnknown_203B210->mode][0], 0, gUnknown_203B210->menuAction1, + gUnknown_203B210->menuItems, gUnknown_203B210->unk74, 4, 0, gUnknown_203B210->unkE4, 12); + break; + case 1: + sub_8019DAC(); + sub_80194F8(); + sub_8019E04(0); + sub_8014248(gKecleonShopDialogue[gUnknown_203B210->mode][1], 0, gUnknown_203B210->menuAction1, + gUnknown_203B210->menuItems, gUnknown_203B210->unk74, 4, 0, gUnknown_203B210->unkE4, 12); + break; + case 2: + gUnknown_203B210->fallbackState = 1; + sub_8019E04(0); + sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][22], 0, gUnknown_203B210->unkE4, 0x10D); + break; + case 3: + gUnknown_203B210->fallbackState = 4; + sub_8019E04(0); + sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][2], 0, gUnknown_203B210->unkE4, 0x30D); + break; + case 5: + gUnknown_203B210->fallbackState = 1; + sub_8019E04(0); + sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][12], 0, gUnknown_203B210->unkE4, 0x10D); + break; + case 6: + gUnknown_203B210->fallbackState = 16; + sub_8019E04(1); + sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][13], 0, gUnknown_203B210->unkE4, 0x10D); + break; + case 7: + gUnknown_203B210->fallbackState = 1; + sub_8019E04(1); + sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][14], 0, gUnknown_203B210->unkE4, 0x10D); + break; + case 8: + gUnknown_203B210->fallbackState = 1; + sub_8019E04(1); + sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][15], 0, gUnknown_203B210->unkE4, 0x10D); + break; + case 9: + gUnknown_203B210->fallbackState = 1; + sub_8019E04(1); + sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][16], 0, gUnknown_203B210->unkE4, 0x10D); + break; + case 10: + gUnknown_203B210->fallbackState = 1; + sub_8019E04(1); + sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][17], 0, gUnknown_203B210->unkE4, 0x10D); + break; + case 11: + gUnknown_203B210->fallbackState = 1; + sub_8019E04(0); + sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][18], 0, gUnknown_203B210->unkE4, 0x10D); + break; + case 12: + gUnknown_203B210->fallbackState = 16; + sub_8019E04(1); + sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][19], 0, gUnknown_203B210->unkE4, 0x10D); + break; + case 13: + sub_8090E14(gUnknown_202DE58, &gUnknown_203B210->soldItem, NULL); + gUnknown_203B210->fallbackState = 24; + sub_8019E04(1); + sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][20], 0, gUnknown_203B210->unkE4, 0x10D); + break; + case 14: + gUnknown_203B210->fallbackState = 24; + sub_8019E04(1); + sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][21], 0, gUnknown_203B210->unkE4, 0x10D); + break; + case 15: + gUnknown_203B210->fallbackState = 18; + sub_8019E04(0); // These are probably bool + sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][3], 0, gUnknown_203B210->unkE4, 0x10D); + break; + case 16: + gUnknown_203B210->fallbackState = 19; + sub_8019E04(0); + sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][4], 0, gUnknown_203B210->unkE4, 0x10D); + break; + case 18: + if (gUnknown_203B210->isKecleonItemShop != FALSE) + sub_8019E40(3); + else + sub_801A20C(3); + + sub_801AD34(0); + DrawTeamMoneyBox(1); + break; + case 19: + if (gUnknown_203B210->isKecleonItemShop != FALSE) + sub_8019FCC(1); + else + sub_801A398(1); + + sub_801AD34(0); + DrawTeamMoneyBox(1); + break; + case 20: + if (gUnknown_203B210->isKecleonItemShop != FALSE) + sub_801A0D8(); + else + sub_801A4A4(); + + sub_801AD34(0); + DrawTeamMoneyBox(1); + sub_80195C0(); + sub_8012D60(&gUnknown_203B210->menu, gUnknown_203B210->menuItems, 0, gUnknown_203B210->unk74, gUnknown_203B210->menuAction3, 2); + break; + case 22: + sub_8019700(); + sub_8090E14(gUnknown_202DE58, &gUnknown_203B210->soldItem, 0); + gUnknown_202DE30 = gUnknown_203B210->itemSellPrice; + sub_8019E04(0); + sub_8014248(gKecleonShopDialogue[gUnknown_203B210->mode][5], 0, 5,gUnknown_203B210->menuItems, NULL, 4, 0, gUnknown_203B210->unkE4, 12); + break; + case 17: + if (CountKecleonItems() == 0) { + if (gUnknown_203B210->isKecleonItemShop != FALSE) + sub_801A010(); + else + sub_801A3DC(); + gUnknown_203B210->fallbackState = 11; + } + else { + if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) { + if (gUnknown_203B210->isKecleonItemShop != FALSE) + sub_801A010(); + else + sub_801A3DC(); + gUnknown_203B210->fallbackState = 1; + } + else + gUnknown_203B210->fallbackState = 16; + } + sub_8019E04(0); + sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][6], 0, gUnknown_203B210->unkE4, 0x10D); + break; + case 23: + gUnknown_203B210->fallbackState = 26; + sub_8019E04(0); + sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][7], 0, gUnknown_203B210->unkE4, 0x10D); + break; + case 24: + gUnknown_203B210->fallbackState = 27; + sub_8019E04(0); + sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][8], 0, gUnknown_203B210->unkE4, 0x10D); + break; + case 26: + sub_801A5D8(4, 3, NULL, 10); + DrawTeamMoneyBox(1); + break; + case 27: + sub_801A8D0(1); + DrawTeamMoneyBox(1); + break; + case 28: + sub_801A9E0(); + DrawTeamMoneyBox(1); + sub_8019660(); + sub_8012D60(&gUnknown_203B210->menu, gUnknown_203B210->menuItems, 0, gUnknown_203B210->unk74, gUnknown_203B210->menuAction2, 2); + break; + case 30: + sub_8019700(); + sub_8090E14(gUnknown_202DE58, &gUnknown_203B210->soldItem, NULL); + gUnknown_202DE30 = gUnknown_203B210->itemSellPrice; + sub_8019E04(0); + sub_8014248(gKecleonShopDialogue[gUnknown_203B210->mode][9], 0, 5, gUnknown_203B210->menuItems, NULL, 4, 0, gUnknown_203B210->unkE4, 12); + break; + case 21: + case 29: + sub_801B3C0(&gUnknown_203B210->soldItem); + break; + case 25: + if (GetNumberOfFilledInventorySlots() == 0 || gTeamInventory_203B460->teamMoney >= MAX_TEAM_MONEY) { + sub_801A928(); + gUnknown_203B210->fallbackState = 1; + } + else + gUnknown_203B210->fallbackState = 24; + + sub_8019E04(0); + sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][11], 0, gUnknown_203B210->unkE4, 0x10D); + break; + case 31: + sub_8019700(); + gUnknown_202DE30 = gUnknown_203B210->inventoryItemSellPrice; + sub_8019E04(0); + sub_8014248(gKecleonShopDialogue[gUnknown_203B210->mode][10], 0, 5, gUnknown_203B210->menuItems, NULL, 4, 0, gUnknown_203B210->unkE4, 12); + break; + case 32: + gUnknown_203B210->fallbackState = 1; + sub_8019E04(0); + sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][11], 0, gUnknown_203B210->unkE4, 0x10D); + break; + } +} \ No newline at end of file From 95288e4593c427a9e2703bf9b6013e9feef53d8f Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sat, 5 Aug 2023 10:43:51 -0400 Subject: [PATCH 03/16] Add two nonmatchings --- src/kecleon_items_1.c | 46 ++++++++++++++++++++++++++++++++++++++----- src/makuhita_dojo.c | 2 +- 2 files changed, 42 insertions(+), 6 deletions(-) diff --git a/src/kecleon_items_1.c b/src/kecleon_items_1.c index fb656d2c9..8064f396b 100644 --- a/src/kecleon_items_1.c +++ b/src/kecleon_items_1.c @@ -59,7 +59,7 @@ s32 sub_801AE24(u32); extern u8 sub_8019FB0(void); - +extern void PlaySound(u16 songIndex); extern void PlayMenuSoundEffect(u32); extern struct UnkTextStruct2 gUnknown_80DB8CC; @@ -68,16 +68,16 @@ extern struct UnkTextStruct2 gUnknown_80DB8FC; extern struct UnkTextStruct2 gUnknown_80DB944; extern struct UnkTextStruct2 gUnknown_80DB95C; extern const struct UnkTextStruct2 gUnknown_80DB914; -extern void sub_801A430(void); -extern void sub_801A4A4(void); + +extern u32 sub_80095E4(s16, u32); extern void sub_801A064(void); extern void sub_801A0D8(void); extern u8 sub_801A37C(void); - +extern void sub_801A430(void); +extern void sub_801A4A4(void); extern void sub_801A010(void); extern void sub_801A3DC(void); extern void sub_801AD34(u32); -extern void PlaySound(u16 songIndex); u32 CountKecleonItems(void); @@ -658,6 +658,23 @@ void sub_801A010(void) } } +#if NONMATCHING // https://decomp.me/scratch/VjeuO +void sub_801A064(void) +{ + s16 val; + + gUnknown_203B214->unk9C[0] = gUnknown_203B214->input.unk20; + gUnknown_203B214->unk9C[1] = gUnknown_203B214->input.unk1E; + gUnknown_203B214->unk9C[2] = 10; + gUnknown_203B214->unk9C[3] = 0; + + val = sub_80095E4(gUnknown_203B214->input.unk1A, 12) + 2; + gUnknown_203B214->unk3C[gUnknown_203B214->unk34].unkE = val; + gUnknown_203B214->unk3C[gUnknown_203B214->unk34].unk10 = val + 2; + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B214->unk3C, 1, 1); +} +#else NAKED void sub_801A064(void) { @@ -717,6 +734,7 @@ void sub_801A064(void) "\t.align 2, 0\n" "_0801A0D4: .4byte gUnknown_203B214"); } +#endif // NONMATCHING void sub_801A0D8(void) { @@ -849,6 +867,23 @@ void sub_801A3DC(void) } } +#if NONMATCHING // https://decomp.me/scratch/L78xC +void sub_801A430(void) +{ + s16 val; + + gUnknown_203B21C->unk9C[0] = gUnknown_203B21C->input.unk20; + gUnknown_203B21C->unk9C[1] = gUnknown_203B21C->input.unk1E; + gUnknown_203B21C->unk9C[2] = 10; + gUnknown_203B21C->unk9C[3] = 0; + + val = sub_80095E4(gUnknown_203B21C->input.unk1A, 12) + 2; + gUnknown_203B21C->unk3C[gUnknown_203B21C->unk34].unkE = val; + gUnknown_203B21C->unk3C[gUnknown_203B21C->unk34].unk10 = val + 2; + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B21C->unk3C, 1, 1); +} +#else NAKED void sub_801A430(void) { @@ -907,6 +942,7 @@ void sub_801A430(void) "\t.align 2, 0\n" "_0801A4A0: .4byte gUnknown_203B21C"); } +#endif // NONMATCHING void sub_801A4A4(void) { diff --git a/src/makuhita_dojo.c b/src/makuhita_dojo.c index 64ffa4089..d8ba66db5 100644 --- a/src/makuhita_dojo.c +++ b/src/makuhita_dojo.c @@ -462,7 +462,7 @@ void sub_8030480(void) } } -#ifdef NONMATCHING +#ifdef NONMATCHING // https://decomp.me/scratch/lM7lE void sub_80304C8(void) { s16 test; From 8e2075af8f6e5ef1570fbb4d824252c271be39ab Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sat, 5 Aug 2023 11:08:08 -0400 Subject: [PATCH 04/16] Merge kecleon_items and kecleon_items_1 --- Makefile | 3 +- ld_script.txt | 1 - src/code_801C620.c | 2 +- src/kecleon_items.c | 1368 +++++++++++++++++++++++++++++++++++++++- src/kecleon_items_1.c | 1386 ----------------------------------------- 5 files changed, 1366 insertions(+), 1394 deletions(-) delete mode 100644 src/kecleon_items_1.c diff --git a/Makefile b/Makefile index cd70836a4..c92396a0a 100755 --- a/Makefile +++ b/Makefile @@ -124,7 +124,8 @@ $(C_BUILDDIR)/agb_flash_mx.o: CC1FLAGS := -O -mthumb-interwork $(C_BUILDDIR)/m4a.o: CC1 := tools/agbcc/bin/old_agbcc -$(C_BUILDDIR)/kecleon_items_1.o: CC1FLAGS := -mthumb-interwork -Wimplicit -Wparentheses -Werror -O2 -fhex-asm +# Stack size in sub_801A9E0 is funky with an unused var +$(C_BUILDDIR)/kecleon_items.o: CC1FLAGS := -mthumb-interwork -Wimplicit -Wparentheses -Werror -O2 -fhex-asm #### Main Rules #### diff --git a/ld_script.txt b/ld_script.txt index 7fb5945af..9e3abfeb7 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -98,7 +98,6 @@ SECTIONS { src/felicity_bank.o(.text); src/kangaskhan_storage.o(.text); src/kecleon_items.o(.text); - src/kecleon_items_1.o(.text); src/code_801AFA4.o(.text); src/code_801B3C0.o(.text); src/code_801C620.o(.text); diff --git a/src/code_801C620.c b/src/code_801C620.c index 175242df0..46df6b31f 100644 --- a/src/code_801C620.c +++ b/src/code_801C620.c @@ -139,7 +139,7 @@ extern char gUnknown_80DBE30[]; // {ARG_POKEMON_0} extern u8 gUnknown_80DBDC8[]; extern u8 *gUnknown_80D4970[]; -void sub_8007B7C(s32, s32, s32, s32, s32); +extern void sub_8007B7C(s32, s32, s32, s32, s32); extern bool8 sub_801CF14(s32); extern u32 sub_801CE58(void); extern void sub_801CC38(void); diff --git a/src/kecleon_items.c b/src/kecleon_items.c index bd27bbeb0..f0e39c8de 100644 --- a/src/kecleon_items.c +++ b/src/kecleon_items.c @@ -1,24 +1,63 @@ #include "global.h" -#include "pokemon.h" +#include "code_800D090.h" +#include "constants/input.h" #include "kecleon_items.h" #include "memory.h" +#include "menu_input.h" +#include "pokemon.h" #include "team_inventory.h" extern struct unkStruct_203B210 *gUnknown_203B210; +extern struct unkStruct_203B214 *gUnknown_203B214; +extern u16 gUnknown_203B218; +extern struct unkStruct_203B214 *gUnknown_203B21C; +extern u16 gUnknown_203B220; +extern struct unkStruct_203B224 *gUnknown_203B224; +extern u16 gUnknown_203B228; +extern u16 gUnknown_203B22A; extern u32 gUnknown_202DE30; extern u8 gUnknown_202DE58[]; extern u8 gUnknown_202E5D8[]; extern u8 gUnknown_202E1C8[]; +extern u8 *gUnknown_80D4920[]; +extern u8 *gUnknown_80D4928[]; +extern u8 *gUnknown_80D4934[]; +extern u8 *gUnknown_80D4970[]; +extern u8 * gUnknown_80D4978[]; +extern u8 *gUnknown_80D4984[]; extern struct UnkTextStruct2 gUnknown_80DB840; +extern struct UnkTextStruct2 gUnknown_80DB858; extern struct UnkTextStruct2 gUnknown_80DB870; extern struct UnkTextStruct2 gUnknown_80DB888; -extern struct UnkTextStruct2 gUnknown_80DB858; -extern const u8 *gKecleonShopDialogue[4][23]; +extern u8 gUnknown_80DB8A0[]; +extern struct UnkTextStruct2 gUnknown_80DB8B4; +extern struct UnkTextStruct2 gUnknown_80DB8CC; +extern u8 gUnknown_80DB8E4[]; +extern u8 gUnknown_80DB8EC[]; +extern struct UnkTextStruct2 gUnknown_80DB8FC; +extern const struct UnkTextStruct2 gUnknown_80DB914; +extern u8 gUnknown_80DB92C[]; +extern u8 gUnknown_80DB934[]; +extern struct UnkTextStruct2 gUnknown_80DB944; +extern struct UnkTextStruct2 gUnknown_80DB95C; +extern u8 gUnknown_80DB994[]; +extern u8 gUnknown_80DB9A0[]; +extern u8 gUnknown_80DB9A8[]; +extern u8 gUnknown_80DB9B0[]; +extern const u8 *gKecleonShopDialogue[4][23]; +extern const u8 gTeamToolboxA[]; +extern const u8 gTeamToolboxB[]; + +extern void sub_80073B8(u32); +extern void sub_80073E0(u32); +extern void sub_8007B7C(s32, s32, s32, s32, s32); +extern void sub_8008C54(u32); extern void sub_8012D60(struct MenuStruct *, const struct MenuItem *, u32 *, u16 *, s32, s32); extern void sub_80141B4(const u8 *, u32, struct OpenedFile **, u32); extern void sub_8014248(const u8 *, u32, u32, const struct MenuItem *, void *, u32, u32, struct OpenedFile **, u32); +extern s32 sub_80144A4(s32 *); extern void sub_8018D30(void); extern void sub_80194F8(void); extern void sub_80195C0(void); @@ -36,26 +75,48 @@ extern void sub_8019D30(void); extern void sub_8019D4C(void); extern void sub_8019D68(void); extern void sub_8019DAC(void); -extern void sub_8019E04(s32); extern u32 sub_8019E40(u32); +extern u32 sub_8019EDC(u8); +extern u8 sub_8019FB0(void); extern void sub_8019FCC(u8); extern void sub_801A010(void); +extern void sub_801A064(void); extern void sub_801A0D8(void); extern u32 sub_801A20C(u32); +extern u32 sub_801A2A8(u8); +extern u8 sub_801A37C(void); extern void sub_801A398(u8); extern void sub_801A3DC(void); +extern void sub_801A430(void); extern void sub_801A4A4(void); extern u32 sub_801A5D8(u32, s32, struct UnkTextStruct2_sub *, u32); +extern s32 sub_801A8AC(void); extern void sub_801A8D0(u8); extern void sub_801A928(void); +extern void sub_801A998(void); extern void sub_801A9E0(void); extern void sub_801AD34(u32); +extern bool8 sub_801ADA0(s32); +extern void sub_801AE84(void); +extern s32 sub_801AED0(s32); +extern s32 sub_801AEA8(void); extern u32 sub_801B3C0(struct Item *); +extern u32 sub_801B410(void); +extern void sub_801B450(void); extern void sub_8090E14(u8 *, struct Item *, struct unkStruct_8090F58 *); +extern void sub_8099690(u32); -extern u32 CountKecleonItems(void); extern void DrawTeamMoneyBox(u32); +extern void PlayMenuSoundEffect(u32); +extern void PlaySound(u16 songIndex); +extern void xxx_format_and_draw(u32, u32, u8 *, u32, u32); +void sub_8019E04(bool32); +u32 sub_801A6E8(bool8); +s32 sub_801AE24(u32); + +u32 CountKecleonItems(void); +void Kecleon_SortItems(void); void UpdateKecleonStoreDialogue(void); void UpdateKecleonStoreState(u32); @@ -423,4 +484,1301 @@ void UpdateKecleonStoreDialogue(void) sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][11], 0, gUnknown_203B210->unkE4, 0x10D); break; } +} + +void sub_80194F8(void) +{ + s32 index; + s32 loopMax; + + MemoryFill16(gUnknown_203B210->unk74, 0, sizeof(gUnknown_203B210->unk74)); + + loopMax = 0; + gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4978; + gUnknown_203B210->menuItems[loopMax].menuAction = 2; + + loopMax += 1; + gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4984; + gUnknown_203B210->menuItems[loopMax].menuAction = 3; + + loopMax += 1; + gUnknown_203B210->menuItems[loopMax].text = gUnknown_80DB8A0; + gUnknown_203B210->menuItems[loopMax].menuAction = 4; + + loopMax += 1; + gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4970; + gUnknown_203B210->menuItems[loopMax].menuAction = 7; + + loopMax += 1; + gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4934; + gUnknown_203B210->menuItems[loopMax].menuAction = 1; + + loopMax += 1; + gUnknown_203B210->menuItems[loopMax].text = NULL; + gUnknown_203B210->menuItems[loopMax].menuAction = 1; + + for (index = 0; index < loopMax; index++) { + if (gUnknown_203B210->unk74[index] == 0) { + if (gUnknown_203B210->menuItems[index].menuAction == gUnknown_203B210->menuAction1) + return; + } + } + + for (index = 0; index < loopMax; index++) { + if (gUnknown_203B210->unk74[index] == 0) { + gUnknown_203B210->menuAction1 = gUnknown_203B210->menuItems[index].menuAction; + break; + } + } +} + +void sub_80195C0(void) +{ + s32 index; + s32 loopMax; + + MemoryFill16(gUnknown_203B210->unk74, 0, sizeof(gUnknown_203B210->unk74)); + + loopMax = 0; + gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4978; + gUnknown_203B210->menuItems[loopMax].menuAction = 2; + + loopMax += 1; + gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4970; + gUnknown_203B210->menuItems[loopMax].menuAction = 7; + + loopMax += 1; + gUnknown_203B210->menuItems[loopMax].text = NULL; + gUnknown_203B210->menuItems[loopMax].menuAction = 1; + + for (index = 0; index < loopMax; index++) { + if (gUnknown_203B210->unk74[index] == 0) { + if (gUnknown_203B210->menuItems[index].menuAction == gUnknown_203B210->menuAction3) + return; + } + } + + for (index = 0; index < loopMax; index++) { + if (gUnknown_203B210->unk74[index] == 0) { + gUnknown_203B210->menuAction3 = gUnknown_203B210->menuItems[index].menuAction; + break; + } + } +} + +void sub_8019660(void) +{ + s32 index; + s32 loopMax; + + MemoryFill16(gUnknown_203B210->unk74, 0, sizeof(gUnknown_203B210->unk74)); + + loopMax = 0; + gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4984; + gUnknown_203B210->menuItems[loopMax].menuAction = 3; + + loopMax += 1; + gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4970; + gUnknown_203B210->menuItems[loopMax].menuAction = 7; + + loopMax += 1; + gUnknown_203B210->menuItems[loopMax].text = NULL; + gUnknown_203B210->menuItems[loopMax].menuAction = 1; + + for (index = 0; index < loopMax; index++) { + if (gUnknown_203B210->unk74[index] == 0) { + if (gUnknown_203B210->menuItems[index].menuAction == gUnknown_203B210->menuAction2) + return; + } + } + + for (index = 0; index < loopMax; index++) { + if (gUnknown_203B210->unk74[index] == 0) { + gUnknown_203B210->menuAction2 = gUnknown_203B210->menuItems[index].menuAction; + break; + } + } +} + +void sub_8019700(void) +{ + s32 loopMax = 0; + gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4920; + gUnknown_203B210->menuItems[loopMax].menuAction = 5; + + loopMax += 1; + gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4928; + gUnknown_203B210->menuItems[loopMax].menuAction = 6; + + loopMax += 1; + gUnknown_203B210->menuItems[loopMax].text = NULL; + gUnknown_203B210->menuItems[loopMax].menuAction = 1; +} + +void sub_8019730(void) +{ + s32 menuAction; + + if (sub_80144A4(&menuAction) != 0) + return; + + if (menuAction != 1) + gUnknown_203B210->menuAction1 = menuAction; + + switch (menuAction) { + case 2: + if (CountKecleonItems() == 0) + UpdateKecleonStoreState(KECLEON_STORE_NO_STORE_ITEMS); + else if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) + UpdateKecleonStoreState(KECLEON_STORE_TOO_MANY_ITEMS); + else + UpdateKecleonStoreState(15); + break; + case 3: + if (GetNumberOfFilledInventorySlots() == 0) + UpdateKecleonStoreState(KECLEON_STORE_NO_ITEMS_TO_SELL); + else if (gUnknown_203B210->numInventoryItemToSell == 0) + UpdateKecleonStoreState(8); + else if (gTeamInventory_203B460->teamMoney < MAX_TEAM_MONEY) + UpdateKecleonStoreState(23); + else + UpdateKecleonStoreState(7); + break; + case 4: + if (GetNumberOfFilledInventorySlots() == 0) + UpdateKecleonStoreState(KECLEON_STORE_NO_ITEMS_TO_SELL); + else if (gUnknown_203B210->numInventoryItemToSell == 0) + UpdateKecleonStoreState(8); + else if (gUnknown_203B210->inventoryItemSellPrice + gTeamInventory_203B460->teamMoney > MAX_TEAM_MONEY) + UpdateKecleonStoreState(7); + else + UpdateKecleonStoreState(31); + break; + case 7: + UpdateKecleonStoreState(2); + break; + case 1: + UpdateKecleonStoreState(3); + break; + } +} + +void sub_8019850(void) +{ + s32 menuAction; + + if (sub_80144A4(&menuAction) == 0) { + switch (menuAction) { + case 5: + AddToTeamMoney(-gUnknown_203B210->itemSellPrice); + + if (gUnknown_203B210->isKecleonItemShop) { + AddHeldItemToInventory(GetKecleonShopItem(gUnknown_203B210->itemShopItemIndex)); + InitKecleonShopItem(gUnknown_203B210->itemShopItemIndex); + FillKecleonShopGaps(); + } + else { + AddHeldItemToInventory(GetKecleonWareItem(gUnknown_203B210->wareShopItemIndex)); + InitKecleonWareItem(gUnknown_203B210->wareShopItemIndex); + FillKecleonWareGaps(); + } + + PlaySound(0x14c); + UpdateKecleonStoreState(17); + break; + case 6: + case 1: + UpdateKecleonStoreState(16); + break; + } + } +} + +void sub_80198E8(void) +{ + s32 menuAction; + + if (sub_80144A4(&menuAction) == 0) { + switch (menuAction) { + case 5: + AddToTeamMoney(gUnknown_203B210->itemSellPrice); + ShiftItemsDownFrom(gUnknown_203B210->soldItemInventoryIndex); + PlaySound(0x14c); + UpdateKecleonStoreState(25); + break; + case 6: + case 1: + UpdateKecleonStoreState(24); + break; + } + } +} + +void sub_8019944(void) +{ + s32 slotIndex; + s32 menuAction; + struct Item *item; + + if (sub_80144A4(&menuAction) == 0) { + switch (menuAction) { + case 5: + for (slotIndex = 0; slotIndex < INVENTORY_SIZE; slotIndex++) { + item = &gTeamInventory_203B460->teamItems[slotIndex]; + + if ((item->flags & ITEM_FLAG_EXISTS) && CanSellItem(item->id)) + ClearItemSlotAt(slotIndex); + } + + FillInventoryGaps(); + AddToTeamMoney(gUnknown_203B210->inventoryItemSellPrice); + PlaySound(0x14c); + UpdateKecleonStoreState(32); + break; + case 1: + case 6: + UpdateKecleonStoreState(KECLEON_STORE_MAIN_MENU); + break; + } + } +} + +void sub_80199CC(void) +{ + u32 menuAction; + struct BulkItem *item; + + if (gUnknown_203B210->isKecleonItemShop) + menuAction = sub_8019EDC(1); + else + menuAction = sub_801A2A8(1); + + switch (menuAction) { + case 3: + if (gUnknown_203B210->isKecleonItemShop) { + gUnknown_203B210->itemShopItemIndex = sub_8019FB0(); + item = GetKecleonShopItem(gUnknown_203B210->itemShopItemIndex); + } + else { + gUnknown_203B210->wareShopItemIndex = sub_801A37C(); + item = GetKecleonWareItem(gUnknown_203B210->wareShopItemIndex); + } + + xxx_init_itemslot_8090A8C(&gUnknown_203B210->soldItem, item->id, 0); + gUnknown_203B210->soldItem.quantity = item->quantity; + gUnknown_203B210->itemSellPrice = GetStackBuyPrice(&gUnknown_203B210->soldItem); + UpdateKecleonStoreState(20); + break; + case 4: + if (gUnknown_203B210->isKecleonItemShop) { + gUnknown_203B210->itemShopItemIndex = sub_8019FB0(); + item = GetKecleonShopItem(gUnknown_203B210->itemShopItemIndex); + } + else { + gUnknown_203B210->wareShopItemIndex = sub_801A37C(); + item = GetKecleonWareItem(gUnknown_203B210->wareShopItemIndex); + } + + xxx_init_itemslot_8090A8C(&gUnknown_203B210->soldItem, item->id, 0); + gUnknown_203B210->soldItem.quantity = item->quantity; + gUnknown_203B210->itemSellPrice = GetStackBuyPrice(&gUnknown_203B210->soldItem); + UpdateKecleonStoreState(21); + break; + case 2: + if (gUnknown_203B210->isKecleonItemShop) + sub_801A010(); + else + sub_801A3DC(); + + UpdateKecleonStoreState(KECLEON_STORE_MAIN_MENU); + break; + case 1: + sub_801AD34(0); + DrawTeamMoneyBox(1); + break; + } +} + +void sub_8019B08(void) +{ + switch (sub_801A6E8(TRUE)) { + case 0: + break; + case 3: + gUnknown_203B210->soldItemInventoryIndex = sub_801A8AC(); + gUnknown_203B210->soldItem = gTeamInventory_203B460->teamItems[gUnknown_203B210->soldItemInventoryIndex]; + gUnknown_203B210->itemSellPrice = GetStackSellPrice(&gUnknown_203B210->soldItem); + UpdateKecleonStoreState(28); + break; + case 4: + gUnknown_203B210->soldItemInventoryIndex = sub_801A8AC(); + gUnknown_203B210->soldItem = gTeamInventory_203B460->teamItems[gUnknown_203B210->soldItemInventoryIndex]; + gUnknown_203B210->itemSellPrice = GetStackSellPrice(&gUnknown_203B210->soldItem); + sub_8099690(0); + UpdateKecleonStoreState(29); + break; + case 2: + sub_801A928(); + UpdateKecleonStoreState(KECLEON_STORE_MAIN_MENU); + break; + case 1: + default: + DrawTeamMoneyBox(1); + break; + } +} + +void sub_8019BBC(void) +{ + s32 menuAction; + + menuAction = 0; + + if (gUnknown_203B210->isKecleonItemShop) + sub_8019EDC(0); + else + sub_801A2A8(0); + + if (sub_8012FD8(&gUnknown_203B210->menu) == 0 && (sub_8013114(&gUnknown_203B210->menu, &menuAction), menuAction != 1)) + gUnknown_203B210->menuAction3 = menuAction; + + switch (menuAction) { + case 2: + if (gTeamInventory_203B460->teamMoney == 0) + UpdateKecleonStoreState(KECLEON_STORE_NO_MONEY); + else if (gUnknown_203B210->itemSellPrice > gTeamInventory_203B460->teamMoney) + UpdateKecleonStoreState(KECLEON_STORE_NOT_ENOUGH_MONEY); + else + UpdateKecleonStoreState(22); + break; + case 7: + UpdateKecleonStoreState(21); + break; + case 1: + UpdateKecleonStoreState(19); + break; + } +} + +void sub_8019C78(void) +{ + s32 menuAction; + + menuAction = 0; + sub_801A6E8(FALSE); + + if (sub_8012FD8(&gUnknown_203B210->menu) == FALSE && (sub_8013114(&gUnknown_203B210->menu, &menuAction), menuAction != 1)) + gUnknown_203B210->menuAction2 = menuAction; + + switch (menuAction) { + case 3: + sub_8099690(0); + + if (!CanSellItem(gUnknown_203B210->soldItem.id)) + UpdateKecleonStoreState(KECLEON_STORE_CANT_SELL_ITEM); + else if (gUnknown_203B210->itemSellPrice + gTeamInventory_203B460->teamMoney > MAX_TEAM_MONEY) + UpdateKecleonStoreState(14); + else + UpdateKecleonStoreState(30); + break; + case 7: + sub_8099690(0); + UpdateKecleonStoreState(29); + break; + case 1: + UpdateKecleonStoreState(27); + break; + } +} + +void sub_8019D30(void) +{ + switch (sub_801B410()) { + case 2: + case 3: + sub_801B450(); + UpdateKecleonStoreState(19); + break; + case 0: + case 1: + break; + } +} + +void sub_8019D4C(void) +{ + switch (sub_801B410()) { + case 2: + case 3: + sub_801B450(); + UpdateKecleonStoreState(27); + break; + case 0: + case 1: + break; + } +} + + +void sub_8019D68(void) +{ + s32 temp; + if (sub_80144A4(&temp) == 0) + UpdateKecleonStoreState(gUnknown_203B210->fallbackState); +} + +u32 CountKecleonItems(void) +{ + if (gUnknown_203B210->isKecleonItemShop) + return CountKecleonShopItems(); + else + return CountKecleonWareItems(); +} + +void sub_8019DAC(void) +{ + s32 sellPrice; + struct Item *item; + s32 index; + + gUnknown_203B210->numInventoryItemToSell = 0; + gUnknown_203B210->inventoryItemSellPrice = 0; + for (index = 0; index < INVENTORY_SIZE; index++) { + item = &gTeamInventory_203B460->teamItems[index]; + + if ((item->flags & ITEM_FLAG_EXISTS) != 0 && CanSellItem(item->id)) { + sellPrice = GetStackSellPrice(item); + gUnknown_203B210->inventoryItemSellPrice += sellPrice; + gUnknown_203B210->numInventoryItemToSell++; + } + } +} + +void sub_8019E04(bool32 param_1) +{ + if (gUnknown_203B210->isKecleonItemShop) { + if (param_1 == TRUE) + gUnknown_203B210->unkE0 = 1; + else + gUnknown_203B210->unkE0 = 0; + } + else { + if (param_1 == TRUE) + gUnknown_203B210->unkE0 = 7; + else + gUnknown_203B210->unkE0 = 6; + } +} + +bool32 sub_8019E40(u32 r0) +{ + if (CountKecleonShopItems() == 0) + return FALSE; + + gUnknown_203B214 = MemoryAlloc(sizeof(struct unkStruct_203B214), 8); + gUnknown_203B214->unk34 = r0; + gUnknown_203B214->unk38 = &gUnknown_203B214->unk3C[gUnknown_203B214->unk34]; + sub_8006518(gUnknown_203B214->unk3C); + gUnknown_203B214->unk3C[gUnknown_203B214->unk34] = gUnknown_80DB8CC; + gUnknown_203B214->unk38->unk14 = gUnknown_203B214->unk9C; + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B214->unk3C, 1, 1); + sub_8013818(&gUnknown_203B214->input, CountKecleonShopItems(), 10, r0); + gUnknown_203B214->input.menuIndex = gUnknown_203B218; + sub_8013984(&gUnknown_203B214->input); + sub_801A064(); + sub_801A0D8(); + return TRUE; +} + +u32 sub_8019EDC(u8 r0) +{ + struct Item slot; + struct BulkItem *item; + + if (r0 == 0) { + sub_8013660(&gUnknown_203B214->input); + return 0; + } + + switch (GetKeyPress(&gUnknown_203B214->input)) { + case INPUT_B_BUTTON: + PlayMenuSoundEffect(1); + return 2; + case INPUT_A_BUTTON: + item = GetKecleonShopItem(sub_8019FB0()); + slot.id = item->id; + slot.quantity = item->quantity; + + if (GetStackBuyPrice(&slot) > gTeamInventory_203B460->teamMoney) + PlayMenuSoundEffect(2); + else + PlayMenuSoundEffect(0); + return 3; + case INPUT_START_BUTTON: + PlayMenuSoundEffect(4); + return 4; + default: + if (sub_80138B8(&gUnknown_203B214->input, 1) != FALSE) { + sub_801A064(); + sub_801A0D8(); + return 1; + } + return 0; + } +} + +u8 sub_8019FB0(void) +{ + return (gUnknown_203B214->input.unk1E * gUnknown_203B214->input.unk1C) + (u8)gUnknown_203B214->input.menuIndex; +} + +void sub_8019FCC(u8 r0) +{ + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B214->unk3C, 0, 0); + gUnknown_203B214->input.unk22 = CountKecleonShopItems(); + sub_8013984(&gUnknown_203B214->input); + sub_801A064(); + sub_801A0D8(); + if (r0) + AddMenuCursorSprite(&gUnknown_203B214->input); +} + +void sub_801A010(void) +{ + if (gUnknown_203B214 != NULL) { + gUnknown_203B218 = gUnknown_203B214->input.menuIndex; + gUnknown_203B214->unk3C[gUnknown_203B214->unk34] = gUnknown_80DB8B4; + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B214->unk3C, 1, 1); + MemoryFree(gUnknown_203B214); + gUnknown_203B214 = NULL; + } +} + +#if NONMATCHING // https://decomp.me/scratch/VjeuO +void sub_801A064(void) +{ + s16 val; + + gUnknown_203B214->unk9C[0] = gUnknown_203B214->input.unk20; + gUnknown_203B214->unk9C[1] = gUnknown_203B214->input.unk1E; + gUnknown_203B214->unk9C[2] = 10; + gUnknown_203B214->unk9C[3] = 0; + + val = sub_80095E4(gUnknown_203B214->input.unk1A, 12) + 2; + gUnknown_203B214->unk3C[gUnknown_203B214->unk34].unkE = val; + gUnknown_203B214->unk3C[gUnknown_203B214->unk34].unk10 = val + 2; + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B214->unk3C, 1, 1); +} +#else +NAKED +void sub_801A064(void) +{ + asm_unified( + "\tpush {r4,lr}\n" + "\tldr r4, _0801A0D4\n" + "\tldr r0, [r4]\n" + "\tldrh r1, [r0, 0x20]\n" + "\tadds r0, 0x9C\n" + "\tmovs r2, 0\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tldrh r1, [r0, 0x1E]\n" + "\tadds r0, 0x9D\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x9E\n" + "\tmovs r1, 0xA\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x9F\n" + "\tstrb r2, [r0]\n" + "\tldr r0, [r4]\n" + "\tmovs r1, 0x1A\n" + "\tldrsh r0, [r0, r1]\n" + "\tmovs r1, 0xC\n" + "\tbl sub_80095E4\n" + "\tadds r0, 0x2\n" + "\tlsls r0, 16\n" + "\tldr r2, [r4]\n" + "\tldr r3, [r2, 0x34]\n" + "\tlsls r1, r3, 1\n" + "\tadds r1, r3\n" + "\tlsls r1, 3\n" + "\tadds r1, r2, r1\n" + "\tadds r1, 0x4A\n" + "\tasrs r3, r0, 16\n" + "\tlsrs r0, 16\n" + "\tstrh r0, [r1]\n" + "\tldr r1, [r2, 0x34]\n" + "\tlsls r0, r1, 1\n" + "\tadds r0, r1\n" + "\tlsls r0, 3\n" + "\tadds r2, r0\n" + "\tadds r3, 0x2\n" + "\tadds r2, 0x4C\n" + "\tstrh r3, [r2]\n" + "\tbl ResetUnusedInputStruct\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x3C\n" + "\tmovs r1, 0x1\n" + "\tmovs r2, 0x1\n" + "\tbl sub_800641C\n" + "\tpop {r4}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" + "_0801A0D4: .4byte gUnknown_203B214"); +} +#endif // NONMATCHING + +void sub_801A0D8(void) +{ + struct BulkItem *heldItem; + s32 buyPrice; + s32 y; + s32 index; + u8 auStack204 [80]; + struct unkStruct_8090F58 local_7c; + u8 auStack112 [80]; + struct Item item; + u8 temp_calc; + + sub_8008C54(gUnknown_203B214->unk34); + sub_80073B8(gUnknown_203B214->unk34); + xxx_call_draw_string((gUnknown_203B214->input.unk1E * 8) + 10, 0, gUnknown_80DB8E4, gUnknown_203B214->unk34, 0); + + for (index = 0; index < gUnknown_203B214->input.unk1A; index++) { + temp_calc = (gUnknown_203B214->input.unk1E * gUnknown_203B214->input.unk1C) + index; + heldItem = GetKecleonShopItem(temp_calc); + item.id = heldItem->id; + item.quantity = heldItem->quantity; + item.flags = (ITEM_FLAG_EXISTS | ITEM_FLAG_IN_SHOP); + local_7c.unk0 = 1; + local_7c.unk4 = 0; + local_7c.unk6 = 88; + local_7c.unk8 = 1; + sub_8090E14(auStack204, &item, &local_7c); + buyPrice = GetStackBuyPrice(&item); + + if (buyPrice <= gTeamInventory_203B460->teamMoney) { + y = sub_8013800(&gUnknown_203B214->input, index); + xxx_call_draw_string(8, y, auStack204, gUnknown_203B214->unk34, 0); + } + else { + sprintfStatic(auStack112, gUnknown_80DB8EC, auStack204); + y = sub_8013800(&gUnknown_203B214->input, index); + xxx_call_draw_string(8, y, auStack112, gUnknown_203B214->unk34, 0); + } + } + + sub_80073E0(gUnknown_203B214->unk34); +} + +u32 sub_801A20C(u32 r0) +{ + if (CountKecleonWareItems() == 0) + return 0; + + gUnknown_203B21C = MemoryAlloc(sizeof(struct unkStruct_203B214), 8); + gUnknown_203B21C->unk34 = r0; + gUnknown_203B21C->unk38 = &gUnknown_203B21C->unk3C[gUnknown_203B21C->unk34]; + sub_8006518(gUnknown_203B21C->unk3C); + gUnknown_203B21C->unk3C[gUnknown_203B21C->unk34] = gUnknown_80DB914; + gUnknown_203B21C->unk38->unk14 = gUnknown_203B21C->unk9C; + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B21C->unk3C, 1, 1); + sub_8013818(&gUnknown_203B21C->input, CountKecleonWareItems(), 10, r0); + gUnknown_203B21C->input.menuIndex = gUnknown_203B220; + sub_8013984(&gUnknown_203B21C->input); + sub_801A430(); + sub_801A4A4(); + return 1; +} + +u32 sub_801A2A8(u8 r0) +{ + struct Item slot; + struct BulkItem *item; + + if (r0 == 0) { + sub_8013660(&gUnknown_203B21C->input); + return 0; + } + + switch (GetKeyPress(&gUnknown_203B21C->input)) { + case INPUT_B_BUTTON: + PlayMenuSoundEffect(1); + return 2; + case INPUT_A_BUTTON: + item = GetKecleonWareItem(sub_801A37C()); + + slot.id = item->id; + slot.quantity = item->quantity; + + if (GetStackBuyPrice(&slot) > gTeamInventory_203B460->teamMoney) + PlayMenuSoundEffect(2); + else + PlayMenuSoundEffect(0); + return 3; + case INPUT_START_BUTTON: + PlayMenuSoundEffect(4); + return 4; + default: + if (sub_80138B8(&gUnknown_203B21C->input, 1) != 0) { + sub_801A430(); + sub_801A4A4(); + return 1; + } + return 0; + } +} + +u8 sub_801A37C(void) +{ + return (gUnknown_203B21C->input.unk1E * gUnknown_203B21C->input.unk1C) + gUnknown_203B21C->input.menuIndex; +} + +void sub_801A398(u8 r0) +{ + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B21C->unk3C, 0, 0); + gUnknown_203B21C->input.unk22 = CountKecleonWareItems(); + sub_8013984(&gUnknown_203B21C->input); + sub_801A430(); + sub_801A4A4(); + if (r0) + AddMenuCursorSprite(&gUnknown_203B21C->input); +} + +void sub_801A3DC(void) +{ + if (gUnknown_203B21C != NULL) { + gUnknown_203B220 = gUnknown_203B21C->input.menuIndex; + gUnknown_203B21C->unk3C[gUnknown_203B21C->unk34] = gUnknown_80DB8FC; + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B21C->unk3C, 1, 1); + MemoryFree(gUnknown_203B21C); + gUnknown_203B21C = NULL; + } +} + +#if NONMATCHING // https://decomp.me/scratch/L78xC +void sub_801A430(void) +{ + s16 val; + + gUnknown_203B21C->unk9C[0] = gUnknown_203B21C->input.unk20; + gUnknown_203B21C->unk9C[1] = gUnknown_203B21C->input.unk1E; + gUnknown_203B21C->unk9C[2] = 10; + gUnknown_203B21C->unk9C[3] = 0; + + val = sub_80095E4(gUnknown_203B21C->input.unk1A, 12) + 2; + gUnknown_203B21C->unk3C[gUnknown_203B21C->unk34].unkE = val; + gUnknown_203B21C->unk3C[gUnknown_203B21C->unk34].unk10 = val + 2; + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B21C->unk3C, 1, 1); +} +#else +NAKED +void sub_801A430(void) +{ + asm_unified("\tpush {r4,lr}\n" + "\tldr r4, _0801A4A0\n" + "\tldr r0, [r4]\n" + "\tldrh r1, [r0, 0x20]\n" + "\tadds r0, 0x9C\n" + "\tmovs r2, 0\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tldrh r1, [r0, 0x1E]\n" + "\tadds r0, 0x9D\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x9E\n" + "\tmovs r1, 0xA\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x9F\n" + "\tstrb r2, [r0]\n" + "\tldr r0, [r4]\n" + "\tmovs r1, 0x1A\n" + "\tldrsh r0, [r0, r1]\n" + "\tmovs r1, 0xC\n" + "\tbl sub_80095E4\n" + "\tadds r0, 0x2\n" + "\tlsls r0, 16\n" + "\tldr r2, [r4]\n" + "\tldr r3, [r2, 0x34]\n" + "\tlsls r1, r3, 1\n" + "\tadds r1, r3\n" + "\tlsls r1, 3\n" + "\tadds r1, r2, r1\n" + "\tadds r1, 0x4A\n" + "\tasrs r3, r0, 16\n" + "\tlsrs r0, 16\n" + "\tstrh r0, [r1]\n" + "\tldr r1, [r2, 0x34]\n" + "\tlsls r0, r1, 1\n" + "\tadds r0, r1\n" + "\tlsls r0, 3\n" + "\tadds r2, r0\n" + "\tadds r3, 0x2\n" + "\tadds r2, 0x4C\n" + "\tstrh r3, [r2]\n" + "\tbl ResetUnusedInputStruct\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x3C\n" + "\tmovs r1, 0x1\n" + "\tmovs r2, 0x1\n" + "\tbl sub_800641C\n" + "\tpop {r4}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" +"_0801A4A0: .4byte gUnknown_203B21C"); +} +#endif // NONMATCHING + +void sub_801A4A4(void) +{ + struct BulkItem *heldItem; + s32 buyPrice; + s32 y; + s32 index; + u8 buffer1 [80]; + struct unkStruct_8090F58 local_7c; + u8 buffer2 [80]; + struct Item item; + u8 temp_calc; + + sub_8008C54(gUnknown_203B21C->unk34); + sub_80073B8(gUnknown_203B21C->unk34); + xxx_call_draw_string(gUnknown_203B21C->input.unk1E * 8 + 10, 0, gUnknown_80DB92C, gUnknown_203B21C->unk34, 0); + + for (index = 0; index < gUnknown_203B21C->input.unk1A; index++) { + temp_calc = (gUnknown_203B21C->input.unk1E * gUnknown_203B21C->input.unk1C) + index; + heldItem = GetKecleonWareItem(temp_calc); + item.id = heldItem->id; + item.quantity = heldItem->quantity; + item.flags = (ITEM_FLAG_EXISTS | ITEM_FLAG_IN_SHOP); + local_7c.unk0 = 1; + local_7c.unk4 = 0; + local_7c.unk6 = 88; + local_7c.unk8 = 1; + sub_8090E14(buffer1, &item, &local_7c); + buyPrice = GetStackBuyPrice(&item); + + if (buyPrice <= gTeamInventory_203B460->teamMoney) { + y = sub_8013800(&gUnknown_203B21C->input, index); + xxx_call_draw_string(8, y, buffer1, gUnknown_203B21C->unk34, 0); + } + else { + sprintfStatic(buffer2, gUnknown_80DB934, buffer1); + y = sub_8013800(&gUnknown_203B21C->input, index); + xxx_call_draw_string(8, y, buffer2, gUnknown_203B21C->unk34, 0); + } + } + sub_80073E0(gUnknown_203B21C->unk34); +} + +bool32 sub_801A5D8(u32 param_1, s32 param_2, struct UnkTextStruct2_sub *param_3, u32 param_4) +{ + if (GetNumberOfFilledInventorySlots() == 0) + return FALSE; + + if (gUnknown_203B224 == NULL) + gUnknown_203B224 = MemoryAlloc(sizeof(struct unkStruct_203B224), 8); + + gUnknown_203B224->unk0 = param_1; + FillInventoryGaps(); + sub_801AE84(); + gUnknown_203B224->unk88 = param_2; + gUnknown_203B224->unk8C = &gUnknown_203B224->unk90[param_2]; + sub_8006518(gUnknown_203B224->unk90); + gUnknown_203B224->unk90[gUnknown_203B224->unk88] = gUnknown_80DB95C; + gUnknown_203B224->unk8C->unk14 = gUnknown_203B224->unkF0; + + if (param_3 != NULL) + gUnknown_203B224->unk90[gUnknown_203B224->unk88].unk8 = *param_3; + + sub_8012D08(gUnknown_203B224->unk8C, param_4); + sub_8099690(1); + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B224->unk90, 1, 1); + sub_8013818(&gUnknown_203B224->input, GetNumberOfFilledInventorySlots(), param_4, param_2); + gUnknown_203B224->input.menuIndex = gUnknown_203B228; + gUnknown_203B224->input.unk1E = gUnknown_203B22A; + sub_8013984(&gUnknown_203B224->input); + sub_801A998(); + sub_801A9E0(); + return TRUE; +} + +u32 sub_801A6E8(bool8 param_1) +{ + s32 index; + struct Item item; + + if (param_1 == FALSE) { + sub_8013660(&gUnknown_203B224->input); + return 0; + } + + switch (GetKeyPress(&gUnknown_203B224->input)) { + case INPUT_B_BUTTON: + PlayMenuSoundEffect(1); + return 2; + case INPUT_A_BUTTON: + switch (gUnknown_203B224->unk0) { + case 0: + case 1: + case 2: + if (gUnknown_203B224->unk4[sub_801A8AC()] != 0) + PlayMenuSoundEffect(2); + else + PlayMenuSoundEffect(0); + break; + case 3: + if (sub_801AEA8() != 0 || sub_801ADA0(sub_801A8AC()) != FALSE) + PlayMenuSoundEffect(0); + else + PlayMenuSoundEffect(2); + break; + case 4: + item = gTeamInventory_203B460->teamItems[sub_801A8AC()]; + + if (CanSellItem(item.id) && GetStackSellPrice(&item) + gTeamInventory_203B460->teamMoney <= MAX_TEAM_MONEY) + PlayMenuSoundEffect(0); + else + PlayMenuSoundEffect(2); + break; + case 5: + PlayMenuSoundEffect(0); + break; + } + return 3; + case INPUT_START_BUTTON: + PlayMenuSoundEffect(4); + return 4; + case INPUT_L_BUTTON: + case INPUT_R_BUTTON: + if (gUnknown_203B224->unk0 != 3) + goto _0801A87C; + + index = sub_801A8AC(); + if (gUnknown_203B224->unk4[index] != 0 || sub_801ADA0(index) != FALSE) { + PlayMenuSoundEffect(6); + gUnknown_203B224->unk4[index] ^= 1; + sub_80138B8(&gUnknown_203B224->input, 0); + sub_801A9E0(); + return 1; + } + + PlayMenuSoundEffect(2); + goto _0801A87C; + case INPUT_SELECT_BUTTON: + if (gUnknown_203B224->unk0 != 2) { + PlayMenuSoundEffect(5); + Kecleon_SortItems(); + sub_801A9E0(); + } + // NOTE: fallthrough needed here + default: + _0801A87C: + if (sub_80138B8(&gUnknown_203B224->input, 1) != FALSE) { + sub_801A998(); + sub_801A9E0(); + return 1; + } + else + return 0; + break; + } +} + +s32 sub_801A8AC(void) +{ + return (gUnknown_203B224->input.unk1E * gUnknown_203B224->input.unk1C) + gUnknown_203B224->input.menuIndex; +} + +void sub_801A8D0(u8 r0) +{ + sub_8099690(1); + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B224->unk90, 0, 0); + FillInventoryGaps(); + gUnknown_203B224->input.unk22 = GetNumberOfFilledInventorySlots(); + sub_8013984(&gUnknown_203B224->input); + sub_801A998(); + sub_801A9E0(); + if (r0) + AddMenuCursorSprite(&gUnknown_203B224->input); +} + +void sub_801A928(void) +{ + if (gUnknown_203B224 != NULL) { + gUnknown_203B228 = gUnknown_203B224->input.menuIndex; + gUnknown_203B22A = gUnknown_203B224->input.unk1E; + gUnknown_203B224->unk90[gUnknown_203B224->unk88] = gUnknown_80DB944; + sub_8099690(0); + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B224->unk90, 1, 1); + MemoryFree(gUnknown_203B224); + gUnknown_203B224 = NULL; + } +} + +void sub_801A998(void) +{ + gUnknown_203B224->unkF0[0] = gUnknown_203B224->input.unk20; + gUnknown_203B224->unkF0[1] = gUnknown_203B224->input.unk1E; + gUnknown_203B224->unkF0[2] = 11; + gUnknown_203B224->unkF0[3] = 0; + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B224->unk90, 1, 1); +} + +void sub_801A9E0(void) +{ + s32 teamItemIndex; + s32 r7; + s32 x; + char buffer1 [0x50]; // sp 0x4 + struct unkStruct_8090F58 stack; // sp 0x54 + struct unkStruct_8090F58 stack1; // sp 0x60 + struct unkStruct_8090F58 stack2; // sp 0x6C + struct unkStruct_8090F58 stack3; // sp 0x78 + // NOTE: this var is unused but makes sure we get correct stack size + // This is also why we need special build flag for this file + u8 local_6c[0x44]; // sp 0x78 ?? (why is this at same location..) + struct Item item; // sp 0xC8 + + sub_8008C54(gUnknown_203B224->unk88); + sub_80073B8(gUnknown_203B224->unk88); + x = gUnknown_203B224->input.unk1E * 8 + 10; + + if (gUnknown_203B224->input.unk1E == 0) + xxx_call_draw_string(x, 0, gTeamToolboxA, gUnknown_203B224->unk88, 0); + else + xxx_call_draw_string(x, 0, gTeamToolboxB, gUnknown_203B224->unk88, 0); + + for (r7 = 0; r7 < gUnknown_203B224->input.unk1A; r7++) { + teamItemIndex = (gUnknown_203B224->input.unk1E * gUnknown_203B224->input.unk1C) + r7; + item = gTeamInventory_203B460->teamItems[teamItemIndex]; + + switch (gUnknown_203B224->unk0) { + case 0: + sub_8090E14(buffer1, &item, 0); + xxx_call_draw_string(8, sub_8013800(&gUnknown_203B224->input, r7), buffer1, gUnknown_203B224->unk88, 0); + break; + case 1: + case 2: + stack.unk0 = 0; + stack.unk4 = 0; + stack.unk8 = 1; + item.flags = 1; + sub_8090E14(buffer1, &item, &stack); + xxx_call_draw_string(8, sub_8013800(&gUnknown_203B224->input, r7), buffer1, gUnknown_203B224->unk88, 0); + break; + case 3: + stack1.unk0 = 0; + stack1.unk4 = 0; + stack1.unk8 = 1; + item.flags = 1; + sub_8090E14(buffer1, &item, &stack1); + + if (gUnknown_203B224->unk4[teamItemIndex] != 0 || sub_801ADA0(teamItemIndex) != FALSE) + xxx_call_draw_string(8,sub_8013800(&gUnknown_203B224->input,r7),buffer1,gUnknown_203B224->unk88, 0); + else { + strncpy(gUnknown_202DE58, buffer1, 0x50); + xxx_format_and_draw(8, sub_8013800(&gUnknown_203B224->input, r7), gUnknown_80DB994, gUnknown_203B224->unk88, 0); + } + break; + case 4: + if (CanSellItem(item.id)) { + stack2.unk0 = 3; + stack2.unk4 = 0; + stack2.unk6 = 0x58; + stack2.unk8 = 1; + item.flags = 3; + sub_8090E14(buffer1, &item, &stack2); + + if (GetStackSellPrice(&item) + gTeamInventory_203B460->teamMoney > MAX_TEAM_MONEY) { + // very dumb but this matches... + sprintfStatic((char *)&stack3, gUnknown_80DB9A0, buffer1); + xxx_call_draw_string(8, sub_8013800(&gUnknown_203B224->input, r7), (u8 *)&stack3, gUnknown_203B224->unk88, 0); + } + else + xxx_call_draw_string(8, sub_8013800(&gUnknown_203B224->input, r7), buffer1, gUnknown_203B224->unk88, 0); + } + else { + sub_8090E14(buffer1, &item, 0); + strncpy(gUnknown_202DE58, buffer1, 0x50); + xxx_format_and_draw(8, sub_8013800(&gUnknown_203B224->input, r7), gUnknown_80DB994, gUnknown_203B224->unk88, 0); + } + break; + case 5: + stack3.unk0 = 0; + stack3.unk4 = 0; + stack3.unk8 = 1; + item.flags = 1; + sub_8090E14(buffer1, &item, &stack3); + + if (IsGummiItem(item.id)) + xxx_call_draw_string(8, sub_8013800(&gUnknown_203B224->input, r7), buffer1, gUnknown_203B224->unk88, 0); + else { + strncpy(gUnknown_202DE58, buffer1, 0x50); + xxx_format_and_draw(8, sub_8013800(&gUnknown_203B224->input, r7), gUnknown_80DB994, gUnknown_203B224->unk88, 0); + } + break; + } + + if ((sub_801AED0(teamItemIndex) & 1) != 0) + sub_8007B7C(gUnknown_203B224->unk88, 8, sub_8013800(&gUnknown_203B224->input, r7), (gUnknown_203B224->unk8C->unkC - 2) * 8, 10); + } + + sub_80073E0(gUnknown_203B224->unk88); +} + +void sub_801AD34(u32 param_1) +{ + sub_8008C54(param_1); + sub_80073B8(param_1); + xxx_call_draw_string(6, 0, gUnknown_80DB9A8, param_1, 0); + sub_8012BC4(18, 13, GetNumberOfFilledInventorySlots(), 2, 7, param_1); + xxx_call_draw_string(22, 13, gUnknown_80DB9B0, param_1, 0); + sub_8012BC4(43, 13, INVENTORY_SIZE, 2, 7, param_1); + sub_80073E0(param_1); +} + +bool8 sub_801ADA0(s32 param_1) +{ + u16 uVar2; + u32 uVar2_32; + + u16 uVar3; + u32 uVar3_32; + s32 sum1; + s32 sum2; + struct Item item; + + item = gTeamInventory_203B460->teamItems[param_1]; + if (!IsNotMoneyOrUsedTMItem(item.id)) + return FALSE; + + if (IsThrowableItem(item.id)) { + uVar3_32 = sub_801AE24(item.id); + sum1 = gTeamInventory_203B460->teamStorage[item.id]; + uVar3 = uVar3_32; + sum1 += uVar3; + sum1 += (item.quantity); + if (sum1 > 999) + return FALSE; + } + else { + uVar2_32 = sub_801AE24(item.id); + sum2 = gTeamInventory_203B460->teamStorage[item.id]; + uVar2 = uVar2_32; + sum2 += uVar2; + if (sum2 > 998) + return FALSE; + } + return 1; +} + +s32 sub_801AE24(u32 itemID) +{ + struct Item item; + u16 count; + s32 invIndex; + + count = 0; + for (invIndex = 0; invIndex < GetNumberOfFilledInventorySlots(); invIndex++) { + if (gUnknown_203B224->unk4[invIndex] != 0) { + item = gTeamInventory_203B460->teamItems[invIndex]; + + if (item.id == itemID) { + if (IsThrowableItem(item.id)) + count += item.quantity; + else + count++; + } + } + } + return count; +} + +void sub_801AE84(void) +{ + s32 index; + + for (index = 0; index < INVENTORY_SIZE; index++) + gUnknown_203B224->unk4[index] = 0; +} + +s32 sub_801AEA8(void) +{ + s32 index; + s32 count; + + count = 0; + for (index = 0; index < INVENTORY_SIZE; index++) { + if (gUnknown_203B224->unk4[index] != 0) + count++; + } + return count; +} + +s32 sub_801AED0(s32 index) +{ + return gUnknown_203B224->unk4[index]; +} + +void sub_801AEE4(s32 index, s32 value) +{ + gUnknown_203B224->unk4[index] = value ; +} + +void Kecleon_SortItems(void) +{ + struct Item *itemSlotR; + u32 *itemIDR; + u32 *base; + s32 orderL; + s32 orderR; + u32 itemIDL; + struct Item itemSlotL; + s32 itemR; + s32 itemL; + + for (itemL = 0; itemL < GetNumberOfFilledInventorySlots() - 1; itemL++) { + for (itemR = itemL + 1; itemR < GetNumberOfFilledInventorySlots(); itemR++) { + orderL = GetItemOrder(gTeamInventory_203B460->teamItems[itemL].id); + orderR = GetItemOrder(gTeamInventory_203B460->teamItems[itemR].id); + + if (orderL > orderR + || (orderL == orderR && gTeamInventory_203B460->teamItems[itemL].quantity < gTeamInventory_203B460->teamItems[itemR].quantity)) { + itemSlotL = gTeamInventory_203B460->teamItems[itemL]; + itemSlotR = &gTeamInventory_203B460->teamItems[itemR]; + gTeamInventory_203B460->teamItems[itemL] = *itemSlotR; + *itemSlotR = itemSlotL; + + base = gUnknown_203B224->unk4; + itemIDL = gUnknown_203B224->unk4[itemL]; + itemIDR = &base[itemR]; + base[itemL] = *itemIDR; + *itemIDR = itemIDL; + } + } + } +} + +struct unkStruct_203B224 *sub_801AF98(void) +{ + return gUnknown_203B224; } \ No newline at end of file diff --git a/src/kecleon_items_1.c b/src/kecleon_items_1.c deleted file mode 100644 index 8064f396b..000000000 --- a/src/kecleon_items_1.c +++ /dev/null @@ -1,1386 +0,0 @@ -#include "global.h" -#include "constants/input.h" -#include "memory.h" -#include "pokemon.h" -#include "kecleon_items.h" -#include "team_inventory.h" -#include "code_800D090.h" -#include "menu_input.h" - -extern struct unkStruct_203B210 *gUnknown_203B210; -extern struct unkStruct_203B214 *gUnknown_203B214; -extern u16 gUnknown_203B218; -extern struct unkStruct_203B214 *gUnknown_203B21C; -extern u16 gUnknown_203B220; -extern struct unkStruct_203B224 *gUnknown_203B224; -extern u16 gUnknown_203B228; -extern u16 gUnknown_203B22A; - -extern u8 gUnknown_80DB8E4[]; -extern u8 gUnknown_80DB8EC[]; -extern u8 gUnknown_80DB92C[]; -extern u8 gUnknown_80DB934[]; -extern u8 *gUnknown_80D4920[]; -extern u8 *gUnknown_80D4928[]; -extern u8 gUnknown_80DB9A8[]; -extern u8 gUnknown_80DB9B0[]; -extern u8 gTeamToolboxA[]; -extern u8 gTeamToolboxB[]; -extern u8 gUnknown_80DB9A0[]; -extern u8 gUnknown_202DE58[]; -extern u8 gUnknown_80DB994[]; - - -extern s32 sub_80144A4(s32 *); -void UpdateKecleonStoreState(u32); -extern u32 sub_801B410(void); -extern void sub_801B450(void); - -extern void sub_8099690(u32); -extern u32 sub_8019EDC(u8); -extern u32 sub_801A2A8(u8); -extern s32 sub_801A8AC(void); -u32 sub_801A6E8(bool8); -extern void sub_801A928(void); -extern void DrawTeamMoneyBox(u32); -extern void sub_8008C54(u32); -extern void sub_80073B8(u32); -extern void sub_80073E0(u32); -extern void xxx_format_and_draw(u32, u32, u8 *, u32, u32); -extern s32 sub_801AED0(s32); -void sub_8007B7C(s32, s32, s32, s32, s32); -extern void sub_801AE84(void); -extern void sub_801A998(void); -extern void sub_801A9E0(void); -extern void Kecleon_SortItems(void); -extern bool8 sub_801ADA0(s32); -extern s32 sub_801AEA8(void); -s32 sub_801AE24(u32); - - -extern u8 sub_8019FB0(void); -extern void PlaySound(u16 songIndex); -extern void PlayMenuSoundEffect(u32); - -extern struct UnkTextStruct2 gUnknown_80DB8CC; -extern struct UnkTextStruct2 gUnknown_80DB8B4; -extern struct UnkTextStruct2 gUnknown_80DB8FC; -extern struct UnkTextStruct2 gUnknown_80DB944; -extern struct UnkTextStruct2 gUnknown_80DB95C; -extern const struct UnkTextStruct2 gUnknown_80DB914; - -extern u32 sub_80095E4(s16, u32); -extern void sub_801A064(void); -extern void sub_801A0D8(void); -extern u8 sub_801A37C(void); -extern void sub_801A430(void); -extern void sub_801A4A4(void); -extern void sub_801A010(void); -extern void sub_801A3DC(void); -extern void sub_801AD34(u32); - -u32 CountKecleonItems(void); - -extern u8 *gUnknown_80D4984[]; -extern u8 *gUnknown_80D4970[]; -extern u8 * gUnknown_80D4978[]; -extern u8 gUnknown_80DB8A0[]; -extern u8 *gUnknown_80D4934[]; - -void sub_80194F8(void) -{ - s32 index; - s32 loopMax; - - MemoryFill16(gUnknown_203B210->unk74, 0, sizeof(gUnknown_203B210->unk74)); - - loopMax = 0; - gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4978; - gUnknown_203B210->menuItems[loopMax].menuAction = 2; - - loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4984; - gUnknown_203B210->menuItems[loopMax].menuAction = 3; - - loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = gUnknown_80DB8A0; - gUnknown_203B210->menuItems[loopMax].menuAction = 4; - - loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4970; - gUnknown_203B210->menuItems[loopMax].menuAction = 7; - - loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4934; - gUnknown_203B210->menuItems[loopMax].menuAction = 1; - - loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = NULL; - gUnknown_203B210->menuItems[loopMax].menuAction = 1; - - for (index = 0; index < loopMax; index++) { - if (gUnknown_203B210->unk74[index] == 0) { - if (gUnknown_203B210->menuItems[index].menuAction == gUnknown_203B210->menuAction1) - return; - } - } - - for (index = 0; index < loopMax; index++) { - if (gUnknown_203B210->unk74[index] == 0) { - gUnknown_203B210->menuAction1 = gUnknown_203B210->menuItems[index].menuAction; - break; - } - } -} - -void sub_80195C0(void) -{ - s32 index; - s32 loopMax; - - MemoryFill16(gUnknown_203B210->unk74, 0, sizeof(gUnknown_203B210->unk74)); - - loopMax = 0; - gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4978; - gUnknown_203B210->menuItems[loopMax].menuAction = 2; - - loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4970; - gUnknown_203B210->menuItems[loopMax].menuAction = 7; - - loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = NULL; - gUnknown_203B210->menuItems[loopMax].menuAction = 1; - - for (index = 0; index < loopMax; index++) { - if (gUnknown_203B210->unk74[index] == 0) { - if (gUnknown_203B210->menuItems[index].menuAction == gUnknown_203B210->menuAction3) - return; - } - } - - for (index = 0; index < loopMax; index++) { - if (gUnknown_203B210->unk74[index] == 0) { - gUnknown_203B210->menuAction3 = gUnknown_203B210->menuItems[index].menuAction; - break; - } - } -} - -void sub_8019660(void) -{ - s32 index; - s32 loopMax; - - MemoryFill16(gUnknown_203B210->unk74, 0, sizeof(gUnknown_203B210->unk74)); - - loopMax = 0; - gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4984; - gUnknown_203B210->menuItems[loopMax].menuAction = 3; - - loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4970; - gUnknown_203B210->menuItems[loopMax].menuAction = 7; - - loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = NULL; - gUnknown_203B210->menuItems[loopMax].menuAction = 1; - - for (index = 0; index < loopMax; index++) { - if (gUnknown_203B210->unk74[index] == 0) { - if (gUnknown_203B210->menuItems[index].menuAction == gUnknown_203B210->menuAction2) - return; - } - } - - for (index = 0; index < loopMax; index++) { - if (gUnknown_203B210->unk74[index] == 0) { - gUnknown_203B210->menuAction2 = gUnknown_203B210->menuItems[index].menuAction; - break; - } - } -} - -void sub_8019700(void) -{ - s32 loopMax = 0; - gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4920; - gUnknown_203B210->menuItems[loopMax].menuAction = 5; - - loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4928; - gUnknown_203B210->menuItems[loopMax].menuAction = 6; - - loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = NULL; - gUnknown_203B210->menuItems[loopMax].menuAction = 1; -} - -void sub_8019730(void) -{ - s32 menuAction; - - if (sub_80144A4(&menuAction) != 0) - return; - - if (menuAction != 1) - gUnknown_203B210->menuAction1 = menuAction; - - switch (menuAction) { - case 2: - if (CountKecleonItems() == 0) - UpdateKecleonStoreState(KECLEON_STORE_NO_STORE_ITEMS); - else if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) - UpdateKecleonStoreState(KECLEON_STORE_TOO_MANY_ITEMS); - else - UpdateKecleonStoreState(15); - break; - case 3: - if (GetNumberOfFilledInventorySlots() == 0) - UpdateKecleonStoreState(KECLEON_STORE_NO_ITEMS_TO_SELL); - else if (gUnknown_203B210->numInventoryItemToSell == 0) - UpdateKecleonStoreState(8); - else if (gTeamInventory_203B460->teamMoney < MAX_TEAM_MONEY) - UpdateKecleonStoreState(23); - else - UpdateKecleonStoreState(7); - break; - case 4: - if (GetNumberOfFilledInventorySlots() == 0) - UpdateKecleonStoreState(KECLEON_STORE_NO_ITEMS_TO_SELL); - else if (gUnknown_203B210->numInventoryItemToSell == 0) - UpdateKecleonStoreState(8); - else if (gUnknown_203B210->inventoryItemSellPrice + gTeamInventory_203B460->teamMoney > MAX_TEAM_MONEY) - UpdateKecleonStoreState(7); - else - UpdateKecleonStoreState(31); - break; - case 7: - UpdateKecleonStoreState(2); - break; - case 1: - UpdateKecleonStoreState(3); - break; - } -} - -void sub_8019850(void) -{ - s32 menuAction; - - if (sub_80144A4(&menuAction) == 0) { - switch (menuAction) { - case 5: - AddToTeamMoney(-gUnknown_203B210->itemSellPrice); - - if (gUnknown_203B210->isKecleonItemShop) { - AddHeldItemToInventory(GetKecleonShopItem(gUnknown_203B210->itemShopItemIndex)); - InitKecleonShopItem(gUnknown_203B210->itemShopItemIndex); - FillKecleonShopGaps(); - } - else { - AddHeldItemToInventory(GetKecleonWareItem(gUnknown_203B210->wareShopItemIndex)); - InitKecleonWareItem(gUnknown_203B210->wareShopItemIndex); - FillKecleonWareGaps(); - } - - PlaySound(0x14c); - UpdateKecleonStoreState(17); - break; - case 6: - case 1: - UpdateKecleonStoreState(16); - break; - } - } -} - -void sub_80198E8(void) -{ - s32 menuAction; - - if (sub_80144A4(&menuAction) == 0) { - switch (menuAction) { - case 5: - AddToTeamMoney(gUnknown_203B210->itemSellPrice); - ShiftItemsDownFrom(gUnknown_203B210->soldItemInventoryIndex); - PlaySound(0x14c); - UpdateKecleonStoreState(25); - break; - case 6: - case 1: - UpdateKecleonStoreState(24); - break; - } - } -} - -void sub_8019944(void) -{ - s32 slotIndex; - s32 menuAction; - struct Item *item; - - if (sub_80144A4(&menuAction) == 0) { - switch (menuAction) { - case 5: - for (slotIndex = 0; slotIndex < INVENTORY_SIZE; slotIndex++) { - item = &gTeamInventory_203B460->teamItems[slotIndex]; - - if ((item->flags & ITEM_FLAG_EXISTS) && CanSellItem(item->id)) - ClearItemSlotAt(slotIndex); - } - - FillInventoryGaps(); - AddToTeamMoney(gUnknown_203B210->inventoryItemSellPrice); - PlaySound(0x14c); - UpdateKecleonStoreState(32); - break; - case 1: - case 6: - UpdateKecleonStoreState(KECLEON_STORE_MAIN_MENU); - break; - } - } -} - -void sub_80199CC(void) -{ - u32 menuAction; - struct BulkItem *item; - - if (gUnknown_203B210->isKecleonItemShop) - menuAction = sub_8019EDC(1); - else - menuAction = sub_801A2A8(1); - - switch (menuAction) { - case 3: - if (gUnknown_203B210->isKecleonItemShop) { - gUnknown_203B210->itemShopItemIndex = sub_8019FB0(); - item = GetKecleonShopItem(gUnknown_203B210->itemShopItemIndex); - } - else { - gUnknown_203B210->wareShopItemIndex = sub_801A37C(); - item = GetKecleonWareItem(gUnknown_203B210->wareShopItemIndex); - } - - xxx_init_itemslot_8090A8C(&gUnknown_203B210->soldItem, item->id, 0); - gUnknown_203B210->soldItem.quantity = item->quantity; - gUnknown_203B210->itemSellPrice = GetStackBuyPrice(&gUnknown_203B210->soldItem); - UpdateKecleonStoreState(20); - break; - case 4: - if (gUnknown_203B210->isKecleonItemShop) { - gUnknown_203B210->itemShopItemIndex = sub_8019FB0(); - item = GetKecleonShopItem(gUnknown_203B210->itemShopItemIndex); - } - else { - gUnknown_203B210->wareShopItemIndex = sub_801A37C(); - item = GetKecleonWareItem(gUnknown_203B210->wareShopItemIndex); - } - - xxx_init_itemslot_8090A8C(&gUnknown_203B210->soldItem, item->id, 0); - gUnknown_203B210->soldItem.quantity = item->quantity; - gUnknown_203B210->itemSellPrice = GetStackBuyPrice(&gUnknown_203B210->soldItem); - UpdateKecleonStoreState(21); - break; - case 2: - if (gUnknown_203B210->isKecleonItemShop) - sub_801A010(); - else - sub_801A3DC(); - - UpdateKecleonStoreState(KECLEON_STORE_MAIN_MENU); - break; - case 1: - sub_801AD34(0); - DrawTeamMoneyBox(1); - break; - } -} - -void sub_8019B08(void) -{ - switch (sub_801A6E8(TRUE)) { - case 0: - break; - case 3: - gUnknown_203B210->soldItemInventoryIndex = sub_801A8AC(); - gUnknown_203B210->soldItem = gTeamInventory_203B460->teamItems[gUnknown_203B210->soldItemInventoryIndex]; - gUnknown_203B210->itemSellPrice = GetStackSellPrice(&gUnknown_203B210->soldItem); - UpdateKecleonStoreState(28); - break; - case 4: - gUnknown_203B210->soldItemInventoryIndex = sub_801A8AC(); - gUnknown_203B210->soldItem = gTeamInventory_203B460->teamItems[gUnknown_203B210->soldItemInventoryIndex]; - gUnknown_203B210->itemSellPrice = GetStackSellPrice(&gUnknown_203B210->soldItem); - sub_8099690(0); - UpdateKecleonStoreState(29); - break; - case 2: - sub_801A928(); - UpdateKecleonStoreState(KECLEON_STORE_MAIN_MENU); - break; - case 1: - default: - DrawTeamMoneyBox(1); - break; - } -} - -void sub_8019BBC(void) -{ - s32 menuAction; - - menuAction = 0; - - if (gUnknown_203B210->isKecleonItemShop) - sub_8019EDC(0); - else - sub_801A2A8(0); - - if (sub_8012FD8(&gUnknown_203B210->menu) == 0 && (sub_8013114(&gUnknown_203B210->menu, &menuAction), menuAction != 1)) - gUnknown_203B210->menuAction3 = menuAction; - - switch (menuAction) { - case 2: - if (gTeamInventory_203B460->teamMoney == 0) - UpdateKecleonStoreState(KECLEON_STORE_NO_MONEY); - else if (gUnknown_203B210->itemSellPrice > gTeamInventory_203B460->teamMoney) - UpdateKecleonStoreState(KECLEON_STORE_NOT_ENOUGH_MONEY); - else - UpdateKecleonStoreState(22); - break; - case 7: - UpdateKecleonStoreState(21); - break; - case 1: - UpdateKecleonStoreState(19); - break; - } -} - -void sub_8019C78(void) -{ - s32 menuAction; - - menuAction = 0; - sub_801A6E8(FALSE); - - if (sub_8012FD8(&gUnknown_203B210->menu) == FALSE && (sub_8013114(&gUnknown_203B210->menu, &menuAction), menuAction != 1)) - gUnknown_203B210->menuAction2 = menuAction; - - switch (menuAction) { - case 3: - sub_8099690(0); - - if (!CanSellItem(gUnknown_203B210->soldItem.id)) - UpdateKecleonStoreState(KECLEON_STORE_CANT_SELL_ITEM); - else if (gUnknown_203B210->itemSellPrice + gTeamInventory_203B460->teamMoney > MAX_TEAM_MONEY) - UpdateKecleonStoreState(14); - else - UpdateKecleonStoreState(30); - break; - case 7: - sub_8099690(0); - UpdateKecleonStoreState(29); - break; - case 1: - UpdateKecleonStoreState(27); - break; - } -} - -void sub_8019D30(void) -{ - switch (sub_801B410()) { - case 2: - case 3: - sub_801B450(); - UpdateKecleonStoreState(19); - break; - case 0: - case 1: - break; - } -} - -void sub_8019D4C(void) -{ - switch (sub_801B410()) { - case 2: - case 3: - sub_801B450(); - UpdateKecleonStoreState(27); - break; - case 0: - case 1: - break; - } -} - - -void sub_8019D68(void) -{ - s32 temp; - if (sub_80144A4(&temp) == 0) - UpdateKecleonStoreState(gUnknown_203B210->fallbackState); -} - -u32 CountKecleonItems(void) -{ - if (gUnknown_203B210->isKecleonItemShop) - return CountKecleonShopItems(); - else - return CountKecleonWareItems(); -} - -void sub_8019DAC(void) -{ - s32 sellPrice; - struct Item *item; - s32 index; - - gUnknown_203B210->numInventoryItemToSell = 0; - gUnknown_203B210->inventoryItemSellPrice = 0; - for (index = 0; index < INVENTORY_SIZE; index++) { - item = &gTeamInventory_203B460->teamItems[index]; - - if ((item->flags & ITEM_FLAG_EXISTS) != 0 && CanSellItem(item->id)) { - sellPrice = GetStackSellPrice(item); - gUnknown_203B210->inventoryItemSellPrice += sellPrice; - gUnknown_203B210->numInventoryItemToSell++; - } - } -} - -void sub_8019E04(bool32 param_1) -{ - if (gUnknown_203B210->isKecleonItemShop) { - if (param_1 == TRUE) - gUnknown_203B210->unkE0 = 1; - else - gUnknown_203B210->unkE0 = 0; - } - else { - if (param_1 == TRUE) - gUnknown_203B210->unkE0 = 7; - else - gUnknown_203B210->unkE0 = 6; - } -} - -bool32 sub_8019E40(u32 r0) -{ - if (CountKecleonShopItems() == 0) - return FALSE; - - gUnknown_203B214 = MemoryAlloc(sizeof(struct unkStruct_203B214), 8); - gUnknown_203B214->unk34 = r0; - gUnknown_203B214->unk38 = &gUnknown_203B214->unk3C[gUnknown_203B214->unk34]; - sub_8006518(gUnknown_203B214->unk3C); - gUnknown_203B214->unk3C[gUnknown_203B214->unk34] = gUnknown_80DB8CC; - gUnknown_203B214->unk38->unk14 = gUnknown_203B214->unk9C; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B214->unk3C, 1, 1); - sub_8013818(&gUnknown_203B214->input, CountKecleonShopItems(), 10, r0); - gUnknown_203B214->input.menuIndex = gUnknown_203B218; - sub_8013984(&gUnknown_203B214->input); - sub_801A064(); - sub_801A0D8(); - return TRUE; -} - -u32 sub_8019EDC(u8 r0) -{ - struct Item slot; - struct BulkItem *item; - - if (r0 == 0) { - sub_8013660(&gUnknown_203B214->input); - return 0; - } - - switch (GetKeyPress(&gUnknown_203B214->input)) { - case INPUT_B_BUTTON: - PlayMenuSoundEffect(1); - return 2; - case INPUT_A_BUTTON: - item = GetKecleonShopItem(sub_8019FB0()); - slot.id = item->id; - slot.quantity = item->quantity; - - if (GetStackBuyPrice(&slot) > gTeamInventory_203B460->teamMoney) - PlayMenuSoundEffect(2); - else - PlayMenuSoundEffect(0); - return 3; - case INPUT_START_BUTTON: - PlayMenuSoundEffect(4); - return 4; - default: - if (sub_80138B8(&gUnknown_203B214->input, 1) != FALSE) { - sub_801A064(); - sub_801A0D8(); - return 1; - } - return 0; - } -} - -u8 sub_8019FB0(void) -{ - return (gUnknown_203B214->input.unk1E * gUnknown_203B214->input.unk1C) + (u8)gUnknown_203B214->input.menuIndex; -} - -void sub_8019FCC(u8 r0) -{ - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B214->unk3C, 0, 0); - gUnknown_203B214->input.unk22 = CountKecleonShopItems(); - sub_8013984(&gUnknown_203B214->input); - sub_801A064(); - sub_801A0D8(); - if (r0) - AddMenuCursorSprite(&gUnknown_203B214->input); -} - -void sub_801A010(void) -{ - if (gUnknown_203B214 != NULL) { - gUnknown_203B218 = gUnknown_203B214->input.menuIndex; - gUnknown_203B214->unk3C[gUnknown_203B214->unk34] = gUnknown_80DB8B4; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B214->unk3C, 1, 1); - MemoryFree(gUnknown_203B214); - gUnknown_203B214 = NULL; - } -} - -#if NONMATCHING // https://decomp.me/scratch/VjeuO -void sub_801A064(void) -{ - s16 val; - - gUnknown_203B214->unk9C[0] = gUnknown_203B214->input.unk20; - gUnknown_203B214->unk9C[1] = gUnknown_203B214->input.unk1E; - gUnknown_203B214->unk9C[2] = 10; - gUnknown_203B214->unk9C[3] = 0; - - val = sub_80095E4(gUnknown_203B214->input.unk1A, 12) + 2; - gUnknown_203B214->unk3C[gUnknown_203B214->unk34].unkE = val; - gUnknown_203B214->unk3C[gUnknown_203B214->unk34].unk10 = val + 2; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B214->unk3C, 1, 1); -} -#else -NAKED -void sub_801A064(void) -{ - asm_unified( - "\tpush {r4,lr}\n" - "\tldr r4, _0801A0D4\n" - "\tldr r0, [r4]\n" - "\tldrh r1, [r0, 0x20]\n" - "\tadds r0, 0x9C\n" - "\tmovs r2, 0\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tldrh r1, [r0, 0x1E]\n" - "\tadds r0, 0x9D\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x9E\n" - "\tmovs r1, 0xA\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x9F\n" - "\tstrb r2, [r0]\n" - "\tldr r0, [r4]\n" - "\tmovs r1, 0x1A\n" - "\tldrsh r0, [r0, r1]\n" - "\tmovs r1, 0xC\n" - "\tbl sub_80095E4\n" - "\tadds r0, 0x2\n" - "\tlsls r0, 16\n" - "\tldr r2, [r4]\n" - "\tldr r3, [r2, 0x34]\n" - "\tlsls r1, r3, 1\n" - "\tadds r1, r3\n" - "\tlsls r1, 3\n" - "\tadds r1, r2, r1\n" - "\tadds r1, 0x4A\n" - "\tasrs r3, r0, 16\n" - "\tlsrs r0, 16\n" - "\tstrh r0, [r1]\n" - "\tldr r1, [r2, 0x34]\n" - "\tlsls r0, r1, 1\n" - "\tadds r0, r1\n" - "\tlsls r0, 3\n" - "\tadds r2, r0\n" - "\tadds r3, 0x2\n" - "\tadds r2, 0x4C\n" - "\tstrh r3, [r2]\n" - "\tbl ResetUnusedInputStruct\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x3C\n" - "\tmovs r1, 0x1\n" - "\tmovs r2, 0x1\n" - "\tbl sub_800641C\n" - "\tpop {r4}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" - "_0801A0D4: .4byte gUnknown_203B214"); -} -#endif // NONMATCHING - -void sub_801A0D8(void) -{ - struct BulkItem *heldItem; - s32 buyPrice; - s32 y; - s32 index; - u8 auStack204 [80]; - struct unkStruct_8090F58 local_7c; - u8 auStack112 [80]; - struct Item item; - u8 temp_calc; - - sub_8008C54(gUnknown_203B214->unk34); - sub_80073B8(gUnknown_203B214->unk34); - xxx_call_draw_string((gUnknown_203B214->input.unk1E * 8) + 10, 0, gUnknown_80DB8E4, gUnknown_203B214->unk34, 0); - - for (index = 0; index < gUnknown_203B214->input.unk1A; index++) { - temp_calc = (gUnknown_203B214->input.unk1E * gUnknown_203B214->input.unk1C) + index; - heldItem = GetKecleonShopItem(temp_calc); - item.id = heldItem->id; - item.quantity = heldItem->quantity; - item.flags = (ITEM_FLAG_EXISTS | ITEM_FLAG_IN_SHOP); - local_7c.unk0 = 1; - local_7c.unk4 = 0; - local_7c.unk6 = 88; - local_7c.unk8 = 1; - sub_8090E14(auStack204, &item, &local_7c); - buyPrice = GetStackBuyPrice(&item); - - if (buyPrice <= gTeamInventory_203B460->teamMoney) { - y = sub_8013800(&gUnknown_203B214->input, index); - xxx_call_draw_string(8, y, auStack204, gUnknown_203B214->unk34, 0); - } - else { - sprintfStatic(auStack112, gUnknown_80DB8EC, auStack204); - y = sub_8013800(&gUnknown_203B214->input, index); - xxx_call_draw_string(8, y, auStack112, gUnknown_203B214->unk34, 0); - } - } - - sub_80073E0(gUnknown_203B214->unk34); -} - -u32 sub_801A20C(u32 r0) -{ - if (CountKecleonWareItems() == 0) - return 0; - - gUnknown_203B21C = MemoryAlloc(sizeof(struct unkStruct_203B214), 8); - gUnknown_203B21C->unk34 = r0; - gUnknown_203B21C->unk38 = &gUnknown_203B21C->unk3C[gUnknown_203B21C->unk34]; - sub_8006518(gUnknown_203B21C->unk3C); - gUnknown_203B21C->unk3C[gUnknown_203B21C->unk34] = gUnknown_80DB914; - gUnknown_203B21C->unk38->unk14 = gUnknown_203B21C->unk9C; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B21C->unk3C, 1, 1); - sub_8013818(&gUnknown_203B21C->input, CountKecleonWareItems(), 10, r0); - gUnknown_203B21C->input.menuIndex = gUnknown_203B220; - sub_8013984(&gUnknown_203B21C->input); - sub_801A430(); - sub_801A4A4(); - return 1; -} - -u32 sub_801A2A8(u8 r0) -{ - struct Item slot; - struct BulkItem *item; - - if (r0 == 0) { - sub_8013660(&gUnknown_203B21C->input); - return 0; - } - - switch (GetKeyPress(&gUnknown_203B21C->input)) { - case INPUT_B_BUTTON: - PlayMenuSoundEffect(1); - return 2; - case INPUT_A_BUTTON: - item = GetKecleonWareItem(sub_801A37C()); - - slot.id = item->id; - slot.quantity = item->quantity; - - if (GetStackBuyPrice(&slot) > gTeamInventory_203B460->teamMoney) - PlayMenuSoundEffect(2); - else - PlayMenuSoundEffect(0); - return 3; - case INPUT_START_BUTTON: - PlayMenuSoundEffect(4); - return 4; - default: - if (sub_80138B8(&gUnknown_203B21C->input, 1) != 0) { - sub_801A430(); - sub_801A4A4(); - return 1; - } - return 0; - } -} - -u8 sub_801A37C(void) -{ - return (gUnknown_203B21C->input.unk1E * gUnknown_203B21C->input.unk1C) + gUnknown_203B21C->input.menuIndex; -} - -void sub_801A398(u8 r0) -{ - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B21C->unk3C, 0, 0); - gUnknown_203B21C->input.unk22 = CountKecleonWareItems(); - sub_8013984(&gUnknown_203B21C->input); - sub_801A430(); - sub_801A4A4(); - if (r0) - AddMenuCursorSprite(&gUnknown_203B21C->input); -} - -void sub_801A3DC(void) -{ - if (gUnknown_203B21C != NULL) { - gUnknown_203B220 = gUnknown_203B21C->input.menuIndex; - gUnknown_203B21C->unk3C[gUnknown_203B21C->unk34] = gUnknown_80DB8FC; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B21C->unk3C, 1, 1); - MemoryFree(gUnknown_203B21C); - gUnknown_203B21C = NULL; - } -} - -#if NONMATCHING // https://decomp.me/scratch/L78xC -void sub_801A430(void) -{ - s16 val; - - gUnknown_203B21C->unk9C[0] = gUnknown_203B21C->input.unk20; - gUnknown_203B21C->unk9C[1] = gUnknown_203B21C->input.unk1E; - gUnknown_203B21C->unk9C[2] = 10; - gUnknown_203B21C->unk9C[3] = 0; - - val = sub_80095E4(gUnknown_203B21C->input.unk1A, 12) + 2; - gUnknown_203B21C->unk3C[gUnknown_203B21C->unk34].unkE = val; - gUnknown_203B21C->unk3C[gUnknown_203B21C->unk34].unk10 = val + 2; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B21C->unk3C, 1, 1); -} -#else -NAKED -void sub_801A430(void) -{ - asm_unified("\tpush {r4,lr}\n" - "\tldr r4, _0801A4A0\n" - "\tldr r0, [r4]\n" - "\tldrh r1, [r0, 0x20]\n" - "\tadds r0, 0x9C\n" - "\tmovs r2, 0\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tldrh r1, [r0, 0x1E]\n" - "\tadds r0, 0x9D\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x9E\n" - "\tmovs r1, 0xA\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x9F\n" - "\tstrb r2, [r0]\n" - "\tldr r0, [r4]\n" - "\tmovs r1, 0x1A\n" - "\tldrsh r0, [r0, r1]\n" - "\tmovs r1, 0xC\n" - "\tbl sub_80095E4\n" - "\tadds r0, 0x2\n" - "\tlsls r0, 16\n" - "\tldr r2, [r4]\n" - "\tldr r3, [r2, 0x34]\n" - "\tlsls r1, r3, 1\n" - "\tadds r1, r3\n" - "\tlsls r1, 3\n" - "\tadds r1, r2, r1\n" - "\tadds r1, 0x4A\n" - "\tasrs r3, r0, 16\n" - "\tlsrs r0, 16\n" - "\tstrh r0, [r1]\n" - "\tldr r1, [r2, 0x34]\n" - "\tlsls r0, r1, 1\n" - "\tadds r0, r1\n" - "\tlsls r0, 3\n" - "\tadds r2, r0\n" - "\tadds r3, 0x2\n" - "\tadds r2, 0x4C\n" - "\tstrh r3, [r2]\n" - "\tbl ResetUnusedInputStruct\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x3C\n" - "\tmovs r1, 0x1\n" - "\tmovs r2, 0x1\n" - "\tbl sub_800641C\n" - "\tpop {r4}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" -"_0801A4A0: .4byte gUnknown_203B21C"); -} -#endif // NONMATCHING - -void sub_801A4A4(void) -{ - struct BulkItem *heldItem; - s32 buyPrice; - s32 y; - s32 index; - u8 buffer1 [80]; - struct unkStruct_8090F58 local_7c; - u8 buffer2 [80]; - struct Item item; - u8 temp_calc; - - sub_8008C54(gUnknown_203B21C->unk34); - sub_80073B8(gUnknown_203B21C->unk34); - xxx_call_draw_string(gUnknown_203B21C->input.unk1E * 8 + 10,0,gUnknown_80DB92C, - gUnknown_203B21C->unk34,0); - - for (index = 0; index < gUnknown_203B21C->input.unk1A; index++) { - temp_calc = (gUnknown_203B21C->input.unk1E * gUnknown_203B21C->input.unk1C) + index; - heldItem = GetKecleonWareItem(temp_calc); - item.id = heldItem->id; - item.quantity = heldItem->quantity; - item.flags = (ITEM_FLAG_EXISTS | ITEM_FLAG_IN_SHOP); - local_7c.unk0 = 1; - local_7c.unk4 = 0; - local_7c.unk6 = 88; - local_7c.unk8 = 1; - sub_8090E14(buffer1, &item, &local_7c); - buyPrice = GetStackBuyPrice(&item); - - if (buyPrice <= gTeamInventory_203B460->teamMoney) { - y = sub_8013800(&gUnknown_203B21C->input, index); - xxx_call_draw_string(8, y, buffer1, gUnknown_203B21C->unk34, 0); - } - else { - sprintfStatic(buffer2, gUnknown_80DB934, buffer1); - y = sub_8013800(&gUnknown_203B21C->input, index); - xxx_call_draw_string(8, y, buffer2, gUnknown_203B21C->unk34, 0); - } - } - sub_80073E0(gUnknown_203B21C->unk34); -} - -bool32 sub_801A5D8(u32 param_1, s32 param_2, struct UnkTextStruct2_sub *param_3, u32 param_4) -{ - if (GetNumberOfFilledInventorySlots() == 0) - return FALSE; - - if (gUnknown_203B224 == NULL) - gUnknown_203B224 = MemoryAlloc(sizeof(struct unkStruct_203B224), 8); - - gUnknown_203B224->unk0 = param_1; - FillInventoryGaps(); - sub_801AE84(); - gUnknown_203B224->unk88 = param_2; - gUnknown_203B224->unk8C = &gUnknown_203B224->unk90[param_2]; - sub_8006518(gUnknown_203B224->unk90); - gUnknown_203B224->unk90[gUnknown_203B224->unk88] = gUnknown_80DB95C; - gUnknown_203B224->unk8C->unk14 = gUnknown_203B224->unkF0; - - if (param_3 != NULL) - gUnknown_203B224->unk90[gUnknown_203B224->unk88].unk8 = *param_3; - - sub_8012D08(gUnknown_203B224->unk8C, param_4); - sub_8099690(1); - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B224->unk90, 1, 1); - sub_8013818(&gUnknown_203B224->input, GetNumberOfFilledInventorySlots(), param_4, param_2); - gUnknown_203B224->input.menuIndex = gUnknown_203B228; - gUnknown_203B224->input.unk1E = gUnknown_203B22A; - sub_8013984(&gUnknown_203B224->input); - sub_801A998(); - sub_801A9E0(); - return TRUE; -} - -u32 sub_801A6E8(bool8 param_1) -{ - s32 index; - struct Item item; - - if (param_1 == FALSE) { - sub_8013660(&gUnknown_203B224->input); - return 0; - } - - switch (GetKeyPress(&gUnknown_203B224->input)) { - case INPUT_B_BUTTON: - PlayMenuSoundEffect(1); - return 2; - case INPUT_A_BUTTON: - switch (gUnknown_203B224->unk0) { - case 0: - case 1: - case 2: - if (gUnknown_203B224->unk4[sub_801A8AC()] != 0) - PlayMenuSoundEffect(2); - else - PlayMenuSoundEffect(0); - break; - case 3: - if (sub_801AEA8() != 0 || sub_801ADA0(sub_801A8AC()) != FALSE) - PlayMenuSoundEffect(0); - else - PlayMenuSoundEffect(2); - break; - case 4: - item = gTeamInventory_203B460->teamItems[sub_801A8AC()]; - - if (CanSellItem(item.id) && GetStackSellPrice(&item) + gTeamInventory_203B460->teamMoney <= MAX_TEAM_MONEY) - PlayMenuSoundEffect(0); - else - PlayMenuSoundEffect(2); - break; - case 5: - PlayMenuSoundEffect(0); - break; - } - return 3; - case INPUT_START_BUTTON: - PlayMenuSoundEffect(4); - return 4; - case INPUT_L_BUTTON: - case INPUT_R_BUTTON: - if (gUnknown_203B224->unk0 != 3) - goto _0801A87C; - - index = sub_801A8AC(); - if (gUnknown_203B224->unk4[index] != 0 || sub_801ADA0(index) != FALSE) { - PlayMenuSoundEffect(6); - gUnknown_203B224->unk4[index] ^= 1; - sub_80138B8(&gUnknown_203B224->input, 0); - sub_801A9E0(); - return 1; - } - - PlayMenuSoundEffect(2); - goto _0801A87C; - case INPUT_SELECT_BUTTON: - if (gUnknown_203B224->unk0 != 2) { - PlayMenuSoundEffect(5); - Kecleon_SortItems(); - sub_801A9E0(); - } - // NOTE: fallthrough needed here - default: - _0801A87C: - if (sub_80138B8(&gUnknown_203B224->input, 1) != FALSE) { - sub_801A998(); - sub_801A9E0(); - return 1; - } - else - return 0; - break; - } -} - -s32 sub_801A8AC(void) -{ - return (gUnknown_203B224->input.unk1E * gUnknown_203B224->input.unk1C) + gUnknown_203B224->input.menuIndex; -} - -void sub_801A8D0(u8 r0) -{ - sub_8099690(1); - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B224->unk90, 0, 0); - FillInventoryGaps(); - gUnknown_203B224->input.unk22 = GetNumberOfFilledInventorySlots(); - sub_8013984(&gUnknown_203B224->input); - sub_801A998(); - sub_801A9E0(); - if (r0) - AddMenuCursorSprite(&gUnknown_203B224->input); -} - -void sub_801A928(void) -{ - if (gUnknown_203B224 != NULL) { - gUnknown_203B228 = gUnknown_203B224->input.menuIndex; - gUnknown_203B22A = gUnknown_203B224->input.unk1E; - gUnknown_203B224->unk90[gUnknown_203B224->unk88] = gUnknown_80DB944; - sub_8099690(0); - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B224->unk90, 1, 1); - MemoryFree(gUnknown_203B224); - gUnknown_203B224 = NULL; - } -} - -void sub_801A998(void) -{ - gUnknown_203B224->unkF0[0] = gUnknown_203B224->input.unk20; - gUnknown_203B224->unkF0[1] = gUnknown_203B224->input.unk1E; - gUnknown_203B224->unkF0[2] = 11; - gUnknown_203B224->unkF0[3] = 0; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B224->unk90, 1, 1); -} - -void sub_801A9E0(void) -{ - s32 teamItemIndex; - s32 r7; - s32 x; - char buffer1 [0x50]; // sp 0x4 - struct unkStruct_8090F58 stack; // sp 0x54 - struct unkStruct_8090F58 stack1; // sp 0x60 - struct unkStruct_8090F58 stack2; // sp 0x6C - struct unkStruct_8090F58 stack3; // sp 0x78 - // NOTE: this var is unused but makes sure we get correct stack size - // This is also why we need special build flag for this file - u8 local_6c[0x44]; // sp 0x78 ?? (why is this at same location..) - struct Item item; // sp 0xC8 - - sub_8008C54(gUnknown_203B224->unk88); - sub_80073B8(gUnknown_203B224->unk88); - x = gUnknown_203B224->input.unk1E * 8 + 10; - - if (gUnknown_203B224->input.unk1E == 0) - xxx_call_draw_string(x, 0, gTeamToolboxA, gUnknown_203B224->unk88, 0); - else - xxx_call_draw_string(x, 0, gTeamToolboxB, gUnknown_203B224->unk88, 0); - - for (r7 = 0; r7 < gUnknown_203B224->input.unk1A; r7++) { - teamItemIndex = (gUnknown_203B224->input.unk1E * gUnknown_203B224->input.unk1C) + r7; - item = gTeamInventory_203B460->teamItems[teamItemIndex]; - - switch (gUnknown_203B224->unk0) { - case 0: - sub_8090E14(buffer1, &item, 0); - xxx_call_draw_string(8, sub_8013800(&gUnknown_203B224->input, r7), buffer1, gUnknown_203B224->unk88, 0); - break; - case 1: - case 2: - stack.unk0 = 0; - stack.unk4 = 0; - stack.unk8 = 1; - item.flags = 1; - sub_8090E14(buffer1, &item, &stack); - xxx_call_draw_string(8, sub_8013800(&gUnknown_203B224->input, r7), buffer1, gUnknown_203B224->unk88, 0); - break; - case 3: - stack1.unk0 = 0; - stack1.unk4 = 0; - stack1.unk8 = 1; - item.flags = 1; - sub_8090E14(buffer1, &item, &stack1); - - if (gUnknown_203B224->unk4[teamItemIndex] != 0 || sub_801ADA0(teamItemIndex) != FALSE) - xxx_call_draw_string(8,sub_8013800(&gUnknown_203B224->input,r7),buffer1,gUnknown_203B224->unk88, 0); - else { - strncpy(gUnknown_202DE58, buffer1, 0x50); - xxx_format_and_draw(8, sub_8013800(&gUnknown_203B224->input, r7), gUnknown_80DB994, gUnknown_203B224->unk88, 0); - } - break; - case 4: - if (CanSellItem(item.id)) { - stack2.unk0 = 3; - stack2.unk4 = 0; - stack2.unk6 = 0x58; - stack2.unk8 = 1; - item.flags = 3; - sub_8090E14(buffer1, &item, &stack2); - - if (GetStackSellPrice(&item) + gTeamInventory_203B460->teamMoney > MAX_TEAM_MONEY) { - // very dumb but this matches... - sprintfStatic((char *)&stack3, gUnknown_80DB9A0, buffer1); - xxx_call_draw_string(8, sub_8013800(&gUnknown_203B224->input, r7), (u8 *)&stack3, gUnknown_203B224->unk88, 0); - } - else - xxx_call_draw_string(8, sub_8013800(&gUnknown_203B224->input, r7), buffer1, gUnknown_203B224->unk88, 0); - } - else { - sub_8090E14(buffer1, &item, 0); - strncpy(gUnknown_202DE58, buffer1, 0x50); - xxx_format_and_draw(8, sub_8013800(&gUnknown_203B224->input, r7), gUnknown_80DB994, gUnknown_203B224->unk88, 0); - } - break; - case 5: - stack3.unk0 = 0; - stack3.unk4 = 0; - stack3.unk8 = 1; - item.flags = 1; - sub_8090E14(buffer1, &item, &stack3); - - if (IsGummiItem(item.id)) - xxx_call_draw_string(8, sub_8013800(&gUnknown_203B224->input, r7), buffer1, gUnknown_203B224->unk88, 0); - else { - strncpy(gUnknown_202DE58, buffer1, 0x50); - xxx_format_and_draw(8, sub_8013800(&gUnknown_203B224->input, r7), gUnknown_80DB994, gUnknown_203B224->unk88, 0); - } - break; - } - - if ((sub_801AED0(teamItemIndex) & 1) != 0) - sub_8007B7C(gUnknown_203B224->unk88, 8, sub_8013800(&gUnknown_203B224->input, r7), (gUnknown_203B224->unk8C->unkC - 2) * 8, 10); - } - - sub_80073E0(gUnknown_203B224->unk88); -} - -void sub_801AD34(u32 param_1) -{ - sub_8008C54(param_1); - sub_80073B8(param_1); - xxx_call_draw_string(6, 0, gUnknown_80DB9A8, param_1, 0); - sub_8012BC4(18, 13, GetNumberOfFilledInventorySlots(), 2, 7, param_1); - xxx_call_draw_string(22, 13, gUnknown_80DB9B0, param_1, 0); - sub_8012BC4(43, 13, INVENTORY_SIZE, 2, 7, param_1); - sub_80073E0(param_1); -} - -bool8 sub_801ADA0(s32 param_1) -{ - u16 uVar2; - u32 uVar2_32; - - u16 uVar3; - u32 uVar3_32; - s32 sum1; - s32 sum2; - struct Item item; - - item = gTeamInventory_203B460->teamItems[param_1]; - if (!IsNotMoneyOrUsedTMItem(item.id)) - return FALSE; - - if (IsThrowableItem(item.id)) { - uVar3_32 = sub_801AE24(item.id); - sum1 = gTeamInventory_203B460->teamStorage[item.id]; - uVar3 = uVar3_32; - sum1 += uVar3; - sum1 += (item.quantity); - if (sum1 > 999) - return FALSE; - } - else { - uVar2_32 = sub_801AE24(item.id); - sum2 = gTeamInventory_203B460->teamStorage[item.id]; - uVar2 = uVar2_32; - sum2 += uVar2; - if (sum2 > 998) - return FALSE; - } - return 1; -} - -s32 sub_801AE24(u32 itemID) -{ - struct Item item; - u16 count; - s32 invIndex; - - count = 0; - for (invIndex = 0; invIndex < GetNumberOfFilledInventorySlots(); invIndex++) { - if (gUnknown_203B224->unk4[invIndex] != 0) { - item = gTeamInventory_203B460->teamItems[invIndex]; - - if (item.id == itemID) { - if (IsThrowableItem(item.id)) - count += item.quantity; - else - count++; - } - } - } - return count; -} - -void sub_801AE84(void) -{ - s32 index; - - for (index = 0; index < INVENTORY_SIZE; index++) - gUnknown_203B224->unk4[index] = 0; -} - -s32 sub_801AEA8(void) -{ - s32 index; - s32 count; - - count = 0; - for (index = 0; index < INVENTORY_SIZE; index++) { - if (gUnknown_203B224->unk4[index] != 0) - count++; - } - return count; -} - -s32 sub_801AED0(s32 index) -{ - return gUnknown_203B224->unk4[index]; -} - -void sub_801AEE4(s32 index, s32 value) -{ - gUnknown_203B224->unk4[index] = value ; -} - -void Kecleon_SortItems(void) -{ - struct Item *itemSlotR; - u32 *itemIDR; - u32 *base; - s32 orderL; - s32 orderR; - u32 itemIDL; - struct Item itemSlotL; - s32 itemR; - s32 itemL; - - for (itemL = 0; itemL < GetNumberOfFilledInventorySlots() - 1; itemL++) { - for (itemR = itemL + 1; itemR < GetNumberOfFilledInventorySlots(); itemR++) { - orderL = GetItemOrder(gTeamInventory_203B460->teamItems[itemL].id); - orderR = GetItemOrder(gTeamInventory_203B460->teamItems[itemR].id); - - if (orderL > orderR - || (orderL == orderR && gTeamInventory_203B460->teamItems[itemL].quantity < gTeamInventory_203B460->teamItems[itemR].quantity)) { - itemSlotL = gTeamInventory_203B460->teamItems[itemL]; - itemSlotR = &gTeamInventory_203B460->teamItems[itemR]; - gTeamInventory_203B460->teamItems[itemL] = *itemSlotR; - *itemSlotR = itemSlotL; - - base = gUnknown_203B224->unk4; - itemIDL = gUnknown_203B224->unk4[itemL]; - itemIDR = &base[itemR]; - base[itemL] = *itemIDR; - *itemIDR = itemIDL; - } - } - } -} - -struct unkStruct_203B224 *sub_801AF98(void) -{ - return gUnknown_203B224; -} From 5919f5c74d8989aa5ceb42067e075964555c34ba Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sat, 5 Aug 2023 11:11:22 -0400 Subject: [PATCH 05/16] kecleon_items to kecleon_bros (more descriptive) --- Makefile | 2 +- include/{kecleon_items.h => kecleon_bros.h} | 6 +++--- include/text.h | 2 +- ld_script.txt | 2 +- src/{kecleon_items.c => kecleon_bros.c} | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) rename include/{kecleon_items.h => kecleon_bros.h} (95%) rename src/{kecleon_items.c => kecleon_bros.c} (99%) diff --git a/Makefile b/Makefile index c92396a0a..122b506d5 100755 --- a/Makefile +++ b/Makefile @@ -125,7 +125,7 @@ $(C_BUILDDIR)/agb_flash_mx.o: CC1FLAGS := -O -mthumb-interwork $(C_BUILDDIR)/m4a.o: CC1 := tools/agbcc/bin/old_agbcc # Stack size in sub_801A9E0 is funky with an unused var -$(C_BUILDDIR)/kecleon_items.o: CC1FLAGS := -mthumb-interwork -Wimplicit -Wparentheses -Werror -O2 -fhex-asm +$(C_BUILDDIR)/kecleon_bros.o: CC1FLAGS := -mthumb-interwork -Wimplicit -Wparentheses -Werror -O2 -fhex-asm #### Main Rules #### diff --git a/include/kecleon_items.h b/include/kecleon_bros.h similarity index 95% rename from include/kecleon_items.h rename to include/kecleon_bros.h index 0043bce20..606fef64a 100644 --- a/include/kecleon_items.h +++ b/include/kecleon_bros.h @@ -1,5 +1,5 @@ -#ifndef GUARD_KECLEON_ITEMS_H -#define GUARD_KECLEON_ITEMS_H +#ifndef GUARD_KECLEON_BROS_H +#define GUARD_KECLEON_BROS_H #include "file_system.h" #include "item.h" @@ -84,4 +84,4 @@ enum KecleonStoreStates // mode corresponds to the enum: KecleonShopMode u32 DisplayKeckleonDialogueSprite(u32 mode); -#endif // GUARD_KECLEON_ITEMS_H +#endif // GUARD_KECLEON_BROS_H diff --git a/include/text.h b/include/text.h index 587f22630..5f92a7d91 100644 --- a/include/text.h +++ b/include/text.h @@ -31,7 +31,7 @@ struct UnkTextStruct2_sub { // I haven't found a func that reads these separately yet, but simply making an arr[2] will cause assignments to break. // Some funcs only match with this union for some reason even though they don't access the variables separately... - // The first func to break is currently sub_801A5D8 in kecleon_items_1.c + // The first func to break is currently sub_801A5D8 in kecleon_bros.c // The first func I matched that uses the array is sub_8006554 in text_1.c (using the separated fields doesn't match or get even close) union { struct { diff --git a/ld_script.txt b/ld_script.txt index 9e3abfeb7..410f02de2 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -97,7 +97,7 @@ SECTIONS { src/code_8012A18_1.o(.text); src/felicity_bank.o(.text); src/kangaskhan_storage.o(.text); - src/kecleon_items.o(.text); + src/kecleon_bros.o(.text); src/code_801AFA4.o(.text); src/code_801B3C0.o(.text); src/code_801C620.o(.text); diff --git a/src/kecleon_items.c b/src/kecleon_bros.c similarity index 99% rename from src/kecleon_items.c rename to src/kecleon_bros.c index f0e39c8de..d4d2397f1 100644 --- a/src/kecleon_items.c +++ b/src/kecleon_bros.c @@ -1,7 +1,7 @@ #include "global.h" #include "code_800D090.h" #include "constants/input.h" -#include "kecleon_items.h" +#include "kecleon_bros.h" #include "memory.h" #include "menu_input.h" #include "pokemon.h" From 7cf567e51bb2baffa6a1cd4b85a65f0c9e150a55 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sat, 5 Aug 2023 11:32:30 -0400 Subject: [PATCH 06/16] Clean kecleon_bros function signatures --- asm/code_8098BDC.s | 2 +- include/felicity_bank.h | 2 + include/kecleon_bros.h | 13 ++++- src/code_801B3C0.c | 7 +-- src/code_8023144.c | 3 +- src/friend_area_action_menu.c | 4 +- src/friend_area_action_menu_1.c | 3 +- src/friend_list_menu.c | 7 +-- src/gulpin_shop_1.c | 2 +- src/kangaskhan_storage.c | 15 +----- src/kecleon_bros.c | 92 +++++++++++++++------------------ src/luminous_cave.c | 6 +-- src/party_list_menu.c | 6 +-- src/wigglytuff_shop.c | 2 +- 14 files changed, 68 insertions(+), 96 deletions(-) diff --git a/asm/code_8098BDC.s b/asm/code_8098BDC.s index dc7a38b23..207410fa5 100644 --- a/asm/code_8098BDC.s +++ b/asm/code_8098BDC.s @@ -5658,7 +5658,7 @@ _0809BCE8: beq _0809BCF0 movs r0, 0x3 _0809BCF0: - bl DisplayKeckleonDialogueSprite + bl KecleonShop_New lsls r0, 24 cmp r0, 0 beq _0809BD10 diff --git a/include/felicity_bank.h b/include/felicity_bank.h index 84f5715d8..9241bf7d9 100644 --- a/include/felicity_bank.h +++ b/include/felicity_bank.h @@ -42,4 +42,6 @@ extern struct FelicityBankWork *gFelicityBankWork; #define FELICITY_BANK_ACTION_WITHDRAW 0 #define FELICITY_BANK_ACTION_DEPOSIT 1 +void DrawTeamMoneyBox(u32 param_1); + #endif diff --git a/include/kecleon_bros.h b/include/kecleon_bros.h index 606fef64a..2e0af9ae2 100644 --- a/include/kecleon_bros.h +++ b/include/kecleon_bros.h @@ -82,6 +82,17 @@ enum KecleonStoreStates }; // mode corresponds to the enum: KecleonShopMode -u32 DisplayKeckleonDialogueSprite(u32 mode); +u32 KecleonShop_New(u32 mode); + +bool32 sub_801A5D8(u32, s32, struct UnkTextStruct2_sub *, u32); +s32 sub_801A8AC(void); +void sub_801A8D0(u8); +void sub_801A928(void); +void sub_801A9E0(void); +void sub_801AD34(u32); +bool8 sub_801ADA0(s32); +void sub_801AE84(void); +s32 sub_801AED0(s32); +s32 sub_801AEA8(void); #endif // GUARD_KECLEON_BROS_H diff --git a/src/code_801B3C0.c b/src/code_801B3C0.c index 15761e542..036646ccf 100644 --- a/src/code_801B3C0.c +++ b/src/code_801B3C0.c @@ -9,6 +9,7 @@ #include "team_inventory.h" #include "menu_input.h" #include "subStruct_203B240.h" +#include "kecleon_bros.h" // based off of 203B240.. struct unkStruct_203B230 @@ -73,11 +74,8 @@ extern u8 *gUnknown_80D4928[]; extern s32 sub_80144A4(s32 *); extern u32 sub_801A6E8(bool8); -extern u32 sub_801A8AC(); extern void sub_8099690(u32); -extern void sub_801A928(void); -extern bool8 sub_801ADA0(s32); extern struct UnkTextStruct2 gUnknown_80DBA58; extern struct UnkTextStruct2 gUnknown_80DBA88; extern struct UnkTextStruct2 gUnknown_80DBA70; @@ -94,10 +92,7 @@ extern void sub_8013F84(void); extern s32 sub_80913E0(struct Item *, u32, struct subStruct_203B240 **); extern void sub_80141B4(u8 *, u32, u32 *, u32); extern void sub_801BB20(void); -extern void sub_801A8D0(u32); -extern void sub_801A9E0(void); extern void sub_801BC24(void); -extern void sub_801A5D8(u32, u32, u32, u32); extern void sub_8014248(const char *, u32, u32, struct MenuItem *, u32, u32, u32, u32, u32); extern void sub_80140B4(struct UnkTextStruct2 *); extern void sub_801B46C(u32); diff --git a/src/code_8023144.c b/src/code_8023144.c index 71c947cf8..5e68e82fe 100644 --- a/src/code_8023144.c +++ b/src/code_8023144.c @@ -14,6 +14,7 @@ #include "code_8023144.h" #include "code_800D090.h" #include "friend_area.h" +#include "kecleon_bros.h" struct unkStruct_3001B5C { @@ -70,9 +71,7 @@ void GetGummiItemStatBoost(struct PokemonStruct* pokemon, u8 id, bool8 checkBoos extern u32 sub_801A6E8(bool8); extern void sub_8099690(u32); -extern void sub_801A928(void); s32 GetNumAvailableIQSkills(u8 *iqSkillBuffer, s32 pokeIQ); -extern u32 sub_801A8AC(void); void sub_8022D2C(void) { s32 index; diff --git a/src/friend_area_action_menu.c b/src/friend_area_action_menu.c index a8c874a31..34880e9cb 100644 --- a/src/friend_area_action_menu.c +++ b/src/friend_area_action_menu.c @@ -8,6 +8,7 @@ #include "team_inventory.h" #include "friend_area_action_menu.h" #include "menu_input.h" +#include "kecleon_bros.h" extern struct unkStruct_203B2BC *gUnknown_203B2BC; @@ -22,9 +23,6 @@ extern void sub_801BEEC(s16); extern void GetLinkedSequence(u32, struct Move *, u16*); extern void sub_801F808(u16*); extern void sub_8027794(); -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 Item *); extern void unk_CopyMoves4To8(struct Move *, struct Move *); diff --git a/src/friend_area_action_menu_1.c b/src/friend_area_action_menu_1.c index 80c0bba7b..9849fd9f4 100644 --- a/src/friend_area_action_menu_1.c +++ b/src/friend_area_action_menu_1.c @@ -9,6 +9,7 @@ #include "pokemon.h" #include "friend_area_action_menu.h" #include "menu_input.h" +#include "kecleon_bros.h" extern struct unkStruct_203B2BC *gUnknown_203B2BC; extern struct TeamInventory *gTeamInventory_203B460; @@ -21,9 +22,7 @@ extern void sub_801F214(); extern void SetFriendAreaActionMenuState(u32); extern void PlaySound(u32); extern void nullsub_104(); -extern void sub_801A928(); extern void sub_8099690(u32); -extern u32 sub_801A8AC(); extern u32 sub_801A6E8(bool8); extern s32 sub_80144A4(s32 *); diff --git a/src/friend_list_menu.c b/src/friend_list_menu.c index ee6826d10..2d1cd89ab 100644 --- a/src/friend_list_menu.c +++ b/src/friend_list_menu.c @@ -9,7 +9,7 @@ #include "moves.h" #include "menu_input.h" #include "team_inventory.h" - +#include "kecleon_bros.h" // there might be more overlap with unkStruct_203B2BC // I was working on the moves and put the data that seemed to correspond to that @@ -126,9 +126,6 @@ extern bool8 sub_8024108(u32); extern u32 sub_801B3C0(struct Item *param_1); extern void sub_8023868(u32, u32, u32, u32); extern void sub_801F1B0(u32, u32); -extern void sub_801A5D8(u32,u32, u32, u32); -extern void sub_801A8D0(u32); -extern void sub_801A9E0(void); extern void PlaySound(u32); extern void sub_8024458(s16, u32); extern void sub_801BEEC(s16); @@ -150,9 +147,7 @@ extern void sub_801EE10(u32, s16, struct Move *, u32, u32, u32); extern void sub_801F808(u16 *); extern u32 sub_801602C(u32 r0, u8 *name); extern u32 sub_801A6E8(bool8); -extern u32 sub_801A8AC(void); extern void sub_8099690(u32); -extern void sub_801A928(void); extern void sub_801F8D0(void); extern u32 sub_801F890(void); extern void sub_80160D8(void); diff --git a/src/gulpin_shop_1.c b/src/gulpin_shop_1.c index 6d7c592f3..6fb36dfbc 100644 --- a/src/gulpin_shop_1.c +++ b/src/gulpin_shop_1.c @@ -10,6 +10,7 @@ #include "menu_input.h" #include "gulpin_shop.h" #include "moves.h" +#include "felicity_bank.h" // size: 0x1E0 struct unkStruct_203B27C @@ -90,7 +91,6 @@ bool8 sub_8021178(void); void CreateGulpinShopMenu(void); extern void sub_8014248(const u8 *, u32, u32, const struct MenuItem *, void *, u32, u32, struct OpenedFile **, u32); extern void sub_80141B4(const u8 *, u32, struct OpenedFile **, u32); -extern void DrawTeamMoneyBox(u32); void sub_8020950(void); void sub_8020900(void); bool8 sub_801F808(u16 *moveIDs); diff --git a/src/kangaskhan_storage.c b/src/kangaskhan_storage.c index e43fec7ae..e30410c24 100644 --- a/src/kangaskhan_storage.c +++ b/src/kangaskhan_storage.c @@ -7,6 +7,7 @@ #include "memory.h" #include "menu_input.h" #include "team_inventory.h" +#include "kecleon_bros.h" EWRAM_DATA_2 struct unkStruct_203B208 *gUnknown_203B208 = {0}; EWRAM_DATA_2 struct unkStruct_203B20C *gUnknown_203B20C = {0}; @@ -58,26 +59,18 @@ extern void sub_8013C68(u32 *); extern void sub_80073E0(u32); extern s32 sub_80144A4(s32 *); extern u8 sub_801CF50(u32); -extern void sub_801A5D8(u32, u32, u32, u32); extern void sub_801C8C4(u32, u32, u32, u32); extern void sub_801CB5C(u32); -extern void sub_801A8D0(u32); extern u32 sub_801CFE0(u8); extern void sub_801CF94(void); -extern void sub_801AE84(void); -extern s32 sub_801AED0(s32); extern u8 sub_801CF14(u32); extern u8 sub_801CF50(u32); extern u32 sub_801A6E8(bool8); -extern u32 sub_801AEA8(void); -extern u32 sub_801A8AC(void); -extern void sub_801A928(void); extern void sub_80182E4(void); extern void sub_8008C54(u32); extern void sub_80073B8(u32); extern void sub_8013C68(u32 *); extern void sub_80073E0(u32); -extern bool8 sub_801ADA0(u32); extern void sub_8099690(u32); extern u32 sub_8013BBC(u32 *); extern void sub_8017598(void); @@ -97,7 +90,6 @@ extern void sub_80189C8(void); extern void sub_8018AE4(void); extern void sub_8017F28(); extern void sub_8018100(); -extern void sub_801A9E0(); extern void sub_801841C(); extern void sub_801CCD8(); extern void sub_80184D4(); @@ -105,19 +97,14 @@ extern void sub_8018280(); void sub_80175FC(void); extern void sub_80141B4(const char *r0, u32, struct OpenedFile **r1, u32); extern void sub_8014248(const char *r0, u32, u32, const struct MenuItem *r4, u16 *, u32, u32, struct OpenedFile **r5, u32); -extern void sub_801A5D8(u32, u32, u32, u32); extern void sub_801C8C4(u32, u32, u32, u32); extern void sub_801CB5C(u32); -extern void sub_801A8D0(u32); extern void sub_801BB20(void); -extern void sub_801A8D0(u32); -extern void sub_801A9E0(void); extern void sub_801BC24(void); void sub_80176B8(void); void sub_80177F8(void); void sub_8017758(void); void sub_801A928(void); -extern void sub_801AD34(u32); extern void sub_8013AA0(u32 *); extern void sub_8017598(void); extern void sub_801CCD8(void); diff --git a/src/kecleon_bros.c b/src/kecleon_bros.c index d4d2397f1..628bb2c6c 100644 --- a/src/kecleon_bros.c +++ b/src/kecleon_bros.c @@ -1,6 +1,7 @@ #include "global.h" #include "code_800D090.h" #include "constants/input.h" +#include "felicity_bank.h" #include "kecleon_bros.h" #include "memory.h" #include "menu_input.h" @@ -50,69 +51,62 @@ extern const u8 *gKecleonShopDialogue[4][23]; extern const u8 gTeamToolboxA[]; extern const u8 gTeamToolboxB[]; +// text.s extern void sub_80073B8(u32); extern void sub_80073E0(u32); extern void sub_8007B7C(s32, s32, s32, s32, s32); extern void sub_8008C54(u32); -extern void sub_8012D60(struct MenuStruct *, const struct MenuItem *, u32 *, u16 *, s32, s32); +// code_80130A8.s extern void sub_80141B4(const u8 *, u32, struct OpenedFile **, u32); extern void sub_8014248(const u8 *, u32, u32, const struct MenuItem *, void *, u32, u32, struct OpenedFile **, u32); extern s32 sub_80144A4(s32 *); -extern void sub_8018D30(void); -extern void sub_80194F8(void); -extern void sub_80195C0(void); -extern void sub_8019660(void); -extern void sub_8019700(void); -extern void sub_8019730(void); -extern void sub_8019850(void); -extern void sub_80198E8(void); -extern void sub_8019944(void); -extern void sub_80199CC(void); -extern void sub_8019B08(void); -extern void sub_8019BBC(void); -extern void sub_8019C78(void); -extern void sub_8019D30(void); -extern void sub_8019D4C(void); -extern void sub_8019D68(void); -extern void sub_8019DAC(void); -extern u32 sub_8019E40(u32); -extern u32 sub_8019EDC(u8); -extern u8 sub_8019FB0(void); -extern void sub_8019FCC(u8); -extern void sub_801A010(void); -extern void sub_801A064(void); -extern void sub_801A0D8(void); -extern u32 sub_801A20C(u32); -extern u32 sub_801A2A8(u8); -extern u8 sub_801A37C(void); -extern void sub_801A398(u8); -extern void sub_801A3DC(void); -extern void sub_801A430(void); -extern void sub_801A4A4(void); -extern u32 sub_801A5D8(u32, s32, struct UnkTextStruct2_sub *, u32); -extern s32 sub_801A8AC(void); -extern void sub_801A8D0(u8); -extern void sub_801A928(void); -extern void sub_801A998(void); -extern void sub_801A9E0(void); -extern void sub_801AD34(u32); -extern bool8 sub_801ADA0(s32); -extern void sub_801AE84(void); -extern s32 sub_801AED0(s32); -extern s32 sub_801AEA8(void); +// code_801B3C0.c extern u32 sub_801B3C0(struct Item *); extern u32 sub_801B410(void); extern void sub_801B450(void); -extern void sub_8090E14(u8 *, struct Item *, struct unkStruct_8090F58 *); +// code_8098BDC.s extern void sub_8099690(u32); -extern void DrawTeamMoneyBox(u32); +// code_80118A4.c extern void PlayMenuSoundEffect(u32); extern void PlaySound(u16 songIndex); +// code_80130A8.s extern void xxx_format_and_draw(u32, u32, u8 *, u32, u32); +void sub_8018D30(void); +void sub_80194F8(void); +void sub_80195C0(void); +void sub_8019660(void); +void sub_8019700(void); +void sub_8019730(void); +void sub_8019850(void); +void sub_80198E8(void); +void sub_8019944(void); +void sub_80199CC(void); +void sub_8019B08(void); +void sub_8019BBC(void); +void sub_8019C78(void); +void sub_8019D30(void); +void sub_8019D4C(void); +void sub_8019D68(void); +void sub_8019DAC(void); void sub_8019E04(bool32); +u32 sub_8019E40(u32); +u32 sub_8019EDC(u8); +u8 sub_8019FB0(void); +void sub_8019FCC(u8); +void sub_801A010(void); +void sub_801A064(void); +void sub_801A0D8(void); +u32 sub_801A20C(u32); +u32 sub_801A2A8(u8); +u8 sub_801A37C(void); +void sub_801A398(u8); +void sub_801A3DC(void); +void sub_801A430(void); +void sub_801A4A4(void); u32 sub_801A6E8(bool8); +void sub_801A998(void); s32 sub_801AE24(u32); u32 CountKecleonItems(void); @@ -120,7 +114,7 @@ void Kecleon_SortItems(void); void UpdateKecleonStoreDialogue(void); void UpdateKecleonStoreState(u32); -u32 DisplayKeckleonDialogueSprite(u32 mode) +u32 KecleonShop_New(u32 mode) { char *monName; struct OpenedFile *faceFile; @@ -1443,7 +1437,7 @@ u32 sub_801A6E8(bool8 param_1) PlayMenuSoundEffect(0); break; case 3: - if (sub_801AEA8() != 0 || sub_801ADA0(sub_801A8AC()) != FALSE) + if (sub_801AEA8() != 0 || sub_801ADA0(sub_801A8AC())) PlayMenuSoundEffect(0); else PlayMenuSoundEffect(2); @@ -1470,7 +1464,7 @@ u32 sub_801A6E8(bool8 param_1) goto _0801A87C; index = sub_801A8AC(); - if (gUnknown_203B224->unk4[index] != 0 || sub_801ADA0(index) != FALSE) { + if (gUnknown_203B224->unk4[index] != 0 || sub_801ADA0(index)) { PlayMenuSoundEffect(6); gUnknown_203B224->unk4[index] ^= 1; sub_80138B8(&gUnknown_203B224->input, 0); @@ -1592,7 +1586,7 @@ void sub_801A9E0(void) item.flags = 1; sub_8090E14(buffer1, &item, &stack1); - if (gUnknown_203B224->unk4[teamItemIndex] != 0 || sub_801ADA0(teamItemIndex) != FALSE) + if (gUnknown_203B224->unk4[teamItemIndex] != 0 || sub_801ADA0(teamItemIndex)) xxx_call_draw_string(8,sub_8013800(&gUnknown_203B224->input,r7),buffer1,gUnknown_203B224->unk88, 0); else { strncpy(gUnknown_202DE58, buffer1, 0x50); diff --git a/src/luminous_cave.c b/src/luminous_cave.c index 3a0403546..f447fe287 100644 --- a/src/luminous_cave.c +++ b/src/luminous_cave.c @@ -11,6 +11,7 @@ #include "text_util.h" #include "team_inventory.h" #include "menu_input.h" +#include "kecleon_bros.h" struct unkStruct_203B2B0 { @@ -193,9 +194,6 @@ void PlaySound(u32); void sub_8024CFC(void); void sub_8025254(void); void sub_8024D48(void); -extern void sub_801A5D8(u32, u32, u32, u32); -extern void sub_801A8D0(u32); -extern void sub_801A9E0(); extern void sub_801B3C0(struct Item *); extern void nullsub_104(); void sub_8024DBC(void); @@ -205,9 +203,7 @@ void sub_808F734(struct PokemonStruct *, s16); u32 sub_801602C(u32 r0, u8 *name); extern s32 sub_80144A4(s32 *); extern u32 sub_801A6E8(bool8); -extern s32 sub_801A8AC(void); extern void sub_8099690(u32); -extern void sub_801A928(void); extern void PlayMenuSoundEffect(u32); extern u32 sub_801B410(void); extern void sub_801B450(void); diff --git a/src/party_list_menu.c b/src/party_list_menu.c index 8134a9718..aba3dbe4a 100644 --- a/src/party_list_menu.c +++ b/src/party_list_menu.c @@ -12,6 +12,7 @@ #include "code_800D090.h" #include "menu_input.h" #include "moves.h" +#include "kecleon_bros.h" struct unkStruct_203B2B8 { @@ -180,10 +181,8 @@ extern void sub_801F8D0(void); extern u32 sub_801B410(void); extern void sub_801B450(void); extern void nullsub_104(void); -extern void sub_801A928(void); extern void sub_8099690(u32); extern u32 sub_801A6E8(bool8); -extern u32 sub_801A8AC(void); extern u32 sub_8022860(void); extern void sub_8022908(void); extern void sub_801BF98(void); @@ -197,10 +196,7 @@ bool8 sub_8026E88(struct PokemonStruct *r0); bool8 HasGummiItem(); bool8 sub_8026EB8(struct PokemonStruct *r0); extern void sub_801BB20(void); -extern void sub_801A8D0(u32); -extern void sub_801A9E0(void); extern void sub_801BC24(void); -extern void sub_801A5D8(u32, u32, u32, u32); extern void sub_8024458(s16, u32); void sub_8026E08(u32 r0); void sub_8026DAC(u32 r0, struct BulkItem *item); diff --git a/src/wigglytuff_shop.c b/src/wigglytuff_shop.c index 86a4c30fa..66fec1048 100644 --- a/src/wigglytuff_shop.c +++ b/src/wigglytuff_shop.c @@ -10,6 +10,7 @@ #include "menu_input.h" #include "friend_area.h" #include "wigglytuff_shop.h" +#include "felicity_bank.h" extern struct UnkTextStruct2 gUnknown_80DC534; extern struct UnkTextStruct2 gUnknown_80DC564; @@ -38,7 +39,6 @@ u8 sub_8021700(u32); void sub_8092578(u8 *buffer, u8 index, u8 r2); extern void sub_8014248(const char *r0, u32, u32, const struct MenuItem *r4, u16 *, u32, u32,u8 *r5, u32); extern void sub_80141B4(const u8 *, u32, u8*, u32); -extern void DrawTeamMoneyBox(u32); extern void sub_80211AC(u32, u32); extern void sub_8021354(u32); extern void sub_8021494(); From 0db7804d6b44ff545434cdfd74dbdbd26fffab11 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sat, 5 Aug 2023 11:42:20 -0400 Subject: [PATCH 07/16] gUnknown_203B210 -> gKecleonBrosWork --- asm/code_8098BDC.s | 2 +- data/data_8115F5C.s | 4 +- include/kecleon_bros.h | 20 +- src/kecleon_bros.c | 554 ++++++++++++++++++++--------------------- sym_ewram2.txt | 2 +- 5 files changed, 292 insertions(+), 290 deletions(-) diff --git a/asm/code_8098BDC.s b/asm/code_8098BDC.s index 207410fa5..402d2f88e 100644 --- a/asm/code_8098BDC.s +++ b/asm/code_8098BDC.s @@ -5658,7 +5658,7 @@ _0809BCE8: beq _0809BCF0 movs r0, 0x3 _0809BCF0: - bl KecleonShop_New + bl KecleonBros_New lsls r0, 24 cmp r0, 0 beq _0809BD10 diff --git a/data/data_8115F5C.s b/data/data_8115F5C.s index 99f5949ca..819b6a662 100644 --- a/data/data_8115F5C.s +++ b/data/data_8115F5C.s @@ -154,8 +154,8 @@ gUnknown_81161E8: @ 81161E8 gUnknown_81161F8: @ 81161F8 .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 - .4byte sub_8018CF0 - .4byte sub_8018C04 + .4byte KecleonBros_Delete + .4byte KecleonBros_Callback .global gUnknown_8116208 gUnknown_8116208: @ 8116208 diff --git a/include/kecleon_bros.h b/include/kecleon_bros.h index 2e0af9ae2..4a9ed09a9 100644 --- a/include/kecleon_bros.h +++ b/include/kecleon_bros.h @@ -7,9 +7,9 @@ #include "text.h" // size: 0x148 -struct unkStruct_203B210 +struct KecleonBrosWork { - /* 0x0 */ u32 mode; // Corresponds to the enum: KecleonShopMode + /* 0x0 */ u32 mode; // Corresponds to the enum: KecleonBrosMode /* 0x4 */ bool8 isKecleonItemShop; // FALSE indicates it is Kecleon TM Shop /* 0x8 */ u32 currState; /* 0xC */ u32 fallbackState; @@ -60,12 +60,12 @@ struct unkStruct_203B224 u8 unkF0[4]; }; -enum KecleonShopMode +enum KecleonBrosMode { - KECLEON_SHOP_MODE_ITEMS_AWAKE = 0, - KECLEON_SHOP_MODE_ITEMS_ASLEEP = 1, - KECLEON_SHOP_MODE_WARES_AWAKE = 2, - KECLEON_SHOP_MODE_WARES_ASLEEP = 3, + KECLEON_BROS_MODE_ITEMS_AWAKE = 0, + KECLEON_BROS_MODE_ITEMS_ASLEEP = 1, + KECLEON_BROS_MODE_WARES_AWAKE = 2, + KECLEON_BROS_MODE_WARES_ASLEEP = 3, }; enum KecleonStoreStates @@ -81,8 +81,10 @@ enum KecleonStoreStates KECLEON_STORE_CANT_SELL_ITEM = 13, }; -// mode corresponds to the enum: KecleonShopMode -u32 KecleonShop_New(u32 mode); +u32 KecleonBros_Callback(void); +void KecleonBros_Delete(void); +// mode corresponds to the enum: KecleonBrosMode +u32 KecleonBros_New(u32 mode); bool32 sub_801A5D8(u32, s32, struct UnkTextStruct2_sub *, u32); s32 sub_801A8AC(void); diff --git a/src/kecleon_bros.c b/src/kecleon_bros.c index 628bb2c6c..fe7e5f7cf 100644 --- a/src/kecleon_bros.c +++ b/src/kecleon_bros.c @@ -8,7 +8,7 @@ #include "pokemon.h" #include "team_inventory.h" -extern struct unkStruct_203B210 *gUnknown_203B210; +extern struct KecleonBrosWork *gKecleonBrosWork; extern struct unkStruct_203B214 *gUnknown_203B214; extern u16 gUnknown_203B218; extern struct unkStruct_203B214 *gUnknown_203B21C; @@ -111,48 +111,48 @@ s32 sub_801AE24(u32); u32 CountKecleonItems(void); void Kecleon_SortItems(void); +void KecleonBros_SetState(u32); void UpdateKecleonStoreDialogue(void); -void UpdateKecleonStoreState(u32); -u32 KecleonShop_New(u32 mode) +u32 KecleonBros_New(u32 mode) { char *monName; struct OpenedFile *faceFile; - gUnknown_203B210 = MemoryAlloc(sizeof(struct unkStruct_203B210), 8); - gUnknown_203B210->menuAction1 = 0; - gUnknown_203B210->menuAction2 = 0; - gUnknown_203B210->menuAction3 = 0; - gUnknown_203B210->mode = mode; + gKecleonBrosWork = MemoryAlloc(sizeof(struct KecleonBrosWork), 8); + gKecleonBrosWork->menuAction1 = 0; + gKecleonBrosWork->menuAction2 = 0; + gKecleonBrosWork->menuAction3 = 0; + gKecleonBrosWork->mode = mode; switch (mode) { - case KECLEON_SHOP_MODE_ITEMS_AWAKE: - gUnknown_203B210->isKecleonItemShop = TRUE; - gUnknown_203B210->unkE4 = &gUnknown_203B210->faceFile; + case KECLEON_BROS_MODE_ITEMS_AWAKE: + gKecleonBrosWork->isKecleonItemShop = TRUE; + gKecleonBrosWork->unkE4 = &gKecleonBrosWork->faceFile; CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KECLEON); CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KECLEON); monName = GetMonSpecies(MONSTER_KECLEON); strcpy(gUnknown_202E1C8 - 0x50, monName); break; - case KECLEON_SHOP_MODE_ITEMS_ASLEEP: - gUnknown_203B210->isKecleonItemShop = TRUE; - gUnknown_203B210->unkE4 = NULL; + case KECLEON_BROS_MODE_ITEMS_ASLEEP: + gKecleonBrosWork->isKecleonItemShop = TRUE; + gKecleonBrosWork->unkE4 = NULL; CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KECLEON); CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KECLEON); monName = GetMonSpecies(MONSTER_KECLEON); strcpy(gUnknown_202E1C8 - 0x50, monName); break; - case KECLEON_SHOP_MODE_WARES_AWAKE: - gUnknown_203B210->isKecleonItemShop = FALSE; - gUnknown_203B210->unkE4 = &gUnknown_203B210->faceFile; + case KECLEON_BROS_MODE_WARES_AWAKE: + gKecleonBrosWork->isKecleonItemShop = FALSE; + gKecleonBrosWork->unkE4 = &gKecleonBrosWork->faceFile; CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KECLEON); CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KECLEON); monName = GetMonSpecies(MONSTER_KECLEON); strcpy(gUnknown_202E1C8 - 0x50, monName); break; - case KECLEON_SHOP_MODE_WARES_ASLEEP: - gUnknown_203B210->isKecleonItemShop = FALSE; - gUnknown_203B210->unkE4 = NULL; + case KECLEON_BROS_MODE_WARES_ASLEEP: + gKecleonBrosWork->isKecleonItemShop = FALSE; + gKecleonBrosWork->unkE4 = NULL; CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KECLEON); CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KECLEON); monName = GetMonSpecies(MONSTER_KECLEON); @@ -163,20 +163,20 @@ u32 KecleonShop_New(u32 mode) } faceFile = GetDialogueSpriteDataPtr(MONSTER_KECLEON); - gUnknown_203B210->faceFile = faceFile; - gUnknown_203B210->faceData = faceFile->data; - gUnknown_203B210->unkE0 = 0; - gUnknown_203B210->unkE1 = 0; - gUnknown_203B210->unkE2 = 0; - gUnknown_203B210->unkDC = 2; - gUnknown_203B210->unkDE = 8; - UpdateKecleonStoreState(KECLEON_STORE_INIT); + gKecleonBrosWork->faceFile = faceFile; + gKecleonBrosWork->faceData = faceFile->data; + gKecleonBrosWork->unkE0 = 0; + gKecleonBrosWork->unkE1 = 0; + gKecleonBrosWork->unkE2 = 0; + gKecleonBrosWork->unkDC = 2; + gKecleonBrosWork->unkDE = 8; + KecleonBros_SetState(KECLEON_STORE_INIT); return 1; } -u32 sub_8018C04(void) +u32 KecleonBros_Callback(void) { - switch (gUnknown_203B210->currState) { + switch (gKecleonBrosWork->currState) { case KECLEON_STORE_INIT: case KECLEON_STORE_MAIN_MENU: sub_8019730(); @@ -219,18 +219,18 @@ u32 sub_8018C04(void) return 0; } -void sub_8018CF0(void) +void KecleonBros_Delete(void) { - if (gUnknown_203B210 != NULL) { - CloseFile(gUnknown_203B210->faceFile); - MemoryFree(gUnknown_203B210); - gUnknown_203B210 = NULL; + if (gKecleonBrosWork != NULL) { + CloseFile(gKecleonBrosWork->faceFile); + MemoryFree(gKecleonBrosWork); + gKecleonBrosWork = NULL; } } -void UpdateKecleonStoreState(u32 newState) +void KecleonBros_SetState(u32 newState) { - gUnknown_203B210->currState = newState; + gKecleonBrosWork->currState = newState; sub_8018D30(); UpdateKecleonStoreDialogue(); } @@ -238,26 +238,26 @@ void UpdateKecleonStoreState(u32 newState) void sub_8018D30(void) { s32 index; - sub_8006518(gUnknown_203B210->unkE8); + sub_8006518(gKecleonBrosWork->unkE8); - switch (gUnknown_203B210->currState) { + switch (gKecleonBrosWork->currState) { case 0x12: case 0x13: - gUnknown_203B210->unkE8[0] = gUnknown_80DB840; - gUnknown_203B210->unkE8[2] = gUnknown_80DB840; - gUnknown_203B210->unkE8[0] = gUnknown_80DB870; - gUnknown_203B210->unkE8[1] = gUnknown_80DB888; + gKecleonBrosWork->unkE8[0] = gUnknown_80DB840; + gKecleonBrosWork->unkE8[2] = gUnknown_80DB840; + gKecleonBrosWork->unkE8[0] = gUnknown_80DB870; + gKecleonBrosWork->unkE8[1] = gUnknown_80DB888; break; case 0x1A: case 0x1B: - gUnknown_203B210->unkE8[0] = gUnknown_80DB840; - gUnknown_203B210->unkE8[1] = gUnknown_80DB840; - gUnknown_203B210->unkE8[2] = gUnknown_80DB840; - gUnknown_203B210->unkE8[1] = gUnknown_80DB888; + gKecleonBrosWork->unkE8[0] = gUnknown_80DB840; + gKecleonBrosWork->unkE8[1] = gUnknown_80DB840; + gKecleonBrosWork->unkE8[2] = gUnknown_80DB840; + gKecleonBrosWork->unkE8[1] = gUnknown_80DB888; break; case 0x14: case 0x1C: - gUnknown_203B210->unkE8[2] = gUnknown_80DB858; + gKecleonBrosWork->unkE8[2] = gUnknown_80DB858; break; default: case 0x15: @@ -266,104 +266,104 @@ void sub_8018D30(void) case 0x18: case 0x19: for(index = 0; index < 4; index++) - gUnknown_203B210->unkE8[index] = gUnknown_80DB840; + gKecleonBrosWork->unkE8[index] = gUnknown_80DB840; break; } ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B210->unkE8, 1, 1); + sub_800641C(gKecleonBrosWork->unkE8, 1, 1); } void UpdateKecleonStoreDialogue(void) { - switch (gUnknown_203B210->currState) { + switch (gKecleonBrosWork->currState) { case 0: sub_8019DAC(); sub_80194F8(); - sub_8019E04(0); - sub_8014248(gKecleonShopDialogue[gUnknown_203B210->mode][0], 0, gUnknown_203B210->menuAction1, - gUnknown_203B210->menuItems, gUnknown_203B210->unk74, 4, 0, gUnknown_203B210->unkE4, 12); + sub_8019E04(FALSE); + sub_8014248(gKecleonShopDialogue[gKecleonBrosWork->mode][0], 0, gKecleonBrosWork->menuAction1, + gKecleonBrosWork->menuItems, gKecleonBrosWork->unk74, 4, 0, gKecleonBrosWork->unkE4, 12); break; case 1: sub_8019DAC(); sub_80194F8(); - sub_8019E04(0); - sub_8014248(gKecleonShopDialogue[gUnknown_203B210->mode][1], 0, gUnknown_203B210->menuAction1, - gUnknown_203B210->menuItems, gUnknown_203B210->unk74, 4, 0, gUnknown_203B210->unkE4, 12); + sub_8019E04(FALSE); + sub_8014248(gKecleonShopDialogue[gKecleonBrosWork->mode][1], 0, gKecleonBrosWork->menuAction1, + gKecleonBrosWork->menuItems, gKecleonBrosWork->unk74, 4, 0, gKecleonBrosWork->unkE4, 12); break; case 2: - gUnknown_203B210->fallbackState = 1; - sub_8019E04(0); - sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][22], 0, gUnknown_203B210->unkE4, 0x10D); + gKecleonBrosWork->fallbackState = 1; + sub_8019E04(FALSE); + sub_80141B4(gKecleonShopDialogue[gKecleonBrosWork->mode][22], 0, gKecleonBrosWork->unkE4, 0x10D); break; case 3: - gUnknown_203B210->fallbackState = 4; - sub_8019E04(0); - sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][2], 0, gUnknown_203B210->unkE4, 0x30D); + gKecleonBrosWork->fallbackState = 4; + sub_8019E04(FALSE); + sub_80141B4(gKecleonShopDialogue[gKecleonBrosWork->mode][2], 0, gKecleonBrosWork->unkE4, 0x30D); break; case 5: - gUnknown_203B210->fallbackState = 1; - sub_8019E04(0); - sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][12], 0, gUnknown_203B210->unkE4, 0x10D); + gKecleonBrosWork->fallbackState = 1; + sub_8019E04(FALSE); + sub_80141B4(gKecleonShopDialogue[gKecleonBrosWork->mode][12], 0, gKecleonBrosWork->unkE4, 0x10D); break; case 6: - gUnknown_203B210->fallbackState = 16; - sub_8019E04(1); - sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][13], 0, gUnknown_203B210->unkE4, 0x10D); + gKecleonBrosWork->fallbackState = 16; + sub_8019E04(TRUE); + sub_80141B4(gKecleonShopDialogue[gKecleonBrosWork->mode][13], 0, gKecleonBrosWork->unkE4, 0x10D); break; case 7: - gUnknown_203B210->fallbackState = 1; - sub_8019E04(1); - sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][14], 0, gUnknown_203B210->unkE4, 0x10D); + gKecleonBrosWork->fallbackState = 1; + sub_8019E04(TRUE); + sub_80141B4(gKecleonShopDialogue[gKecleonBrosWork->mode][14], 0, gKecleonBrosWork->unkE4, 0x10D); break; case 8: - gUnknown_203B210->fallbackState = 1; - sub_8019E04(1); - sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][15], 0, gUnknown_203B210->unkE4, 0x10D); + gKecleonBrosWork->fallbackState = 1; + sub_8019E04(TRUE); + sub_80141B4(gKecleonShopDialogue[gKecleonBrosWork->mode][15], 0, gKecleonBrosWork->unkE4, 0x10D); break; case 9: - gUnknown_203B210->fallbackState = 1; - sub_8019E04(1); - sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][16], 0, gUnknown_203B210->unkE4, 0x10D); + gKecleonBrosWork->fallbackState = 1; + sub_8019E04(TRUE); + sub_80141B4(gKecleonShopDialogue[gKecleonBrosWork->mode][16], 0, gKecleonBrosWork->unkE4, 0x10D); break; case 10: - gUnknown_203B210->fallbackState = 1; - sub_8019E04(1); - sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][17], 0, gUnknown_203B210->unkE4, 0x10D); + gKecleonBrosWork->fallbackState = 1; + sub_8019E04(TRUE); + sub_80141B4(gKecleonShopDialogue[gKecleonBrosWork->mode][17], 0, gKecleonBrosWork->unkE4, 0x10D); break; case 11: - gUnknown_203B210->fallbackState = 1; - sub_8019E04(0); - sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][18], 0, gUnknown_203B210->unkE4, 0x10D); + gKecleonBrosWork->fallbackState = 1; + sub_8019E04(FALSE); + sub_80141B4(gKecleonShopDialogue[gKecleonBrosWork->mode][18], 0, gKecleonBrosWork->unkE4, 0x10D); break; case 12: - gUnknown_203B210->fallbackState = 16; - sub_8019E04(1); - sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][19], 0, gUnknown_203B210->unkE4, 0x10D); + gKecleonBrosWork->fallbackState = 16; + sub_8019E04(TRUE); + sub_80141B4(gKecleonShopDialogue[gKecleonBrosWork->mode][19], 0, gKecleonBrosWork->unkE4, 0x10D); break; case 13: - sub_8090E14(gUnknown_202DE58, &gUnknown_203B210->soldItem, NULL); - gUnknown_203B210->fallbackState = 24; - sub_8019E04(1); - sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][20], 0, gUnknown_203B210->unkE4, 0x10D); + sub_8090E14(gUnknown_202DE58, &gKecleonBrosWork->soldItem, NULL); + gKecleonBrosWork->fallbackState = 24; + sub_8019E04(TRUE); + sub_80141B4(gKecleonShopDialogue[gKecleonBrosWork->mode][20], 0, gKecleonBrosWork->unkE4, 0x10D); break; case 14: - gUnknown_203B210->fallbackState = 24; - sub_8019E04(1); - sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][21], 0, gUnknown_203B210->unkE4, 0x10D); + gKecleonBrosWork->fallbackState = 24; + sub_8019E04(TRUE); + sub_80141B4(gKecleonShopDialogue[gKecleonBrosWork->mode][21], 0, gKecleonBrosWork->unkE4, 0x10D); break; case 15: - gUnknown_203B210->fallbackState = 18; - sub_8019E04(0); // These are probably bool - sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][3], 0, gUnknown_203B210->unkE4, 0x10D); + gKecleonBrosWork->fallbackState = 18; + sub_8019E04(FALSE); + sub_80141B4(gKecleonShopDialogue[gKecleonBrosWork->mode][3], 0, gKecleonBrosWork->unkE4, 0x10D); break; case 16: - gUnknown_203B210->fallbackState = 19; - sub_8019E04(0); - sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][4], 0, gUnknown_203B210->unkE4, 0x10D); + gKecleonBrosWork->fallbackState = 19; + sub_8019E04(FALSE); + sub_80141B4(gKecleonShopDialogue[gKecleonBrosWork->mode][4], 0, gKecleonBrosWork->unkE4, 0x10D); break; case 18: - if (gUnknown_203B210->isKecleonItemShop != FALSE) + if (gKecleonBrosWork->isKecleonItemShop != FALSE) sub_8019E40(3); else sub_801A20C(3); @@ -372,7 +372,7 @@ void UpdateKecleonStoreDialogue(void) DrawTeamMoneyBox(1); break; case 19: - if (gUnknown_203B210->isKecleonItemShop != FALSE) + if (gKecleonBrosWork->isKecleonItemShop != FALSE) sub_8019FCC(1); else sub_801A398(1); @@ -381,7 +381,7 @@ void UpdateKecleonStoreDialogue(void) DrawTeamMoneyBox(1); break; case 20: - if (gUnknown_203B210->isKecleonItemShop != FALSE) + if (gKecleonBrosWork->isKecleonItemShop != FALSE) sub_801A0D8(); else sub_801A4A4(); @@ -389,46 +389,46 @@ void UpdateKecleonStoreDialogue(void) sub_801AD34(0); DrawTeamMoneyBox(1); sub_80195C0(); - sub_8012D60(&gUnknown_203B210->menu, gUnknown_203B210->menuItems, 0, gUnknown_203B210->unk74, gUnknown_203B210->menuAction3, 2); + sub_8012D60(&gKecleonBrosWork->menu, gKecleonBrosWork->menuItems, 0, gKecleonBrosWork->unk74, gKecleonBrosWork->menuAction3, 2); break; case 22: sub_8019700(); - sub_8090E14(gUnknown_202DE58, &gUnknown_203B210->soldItem, 0); - gUnknown_202DE30 = gUnknown_203B210->itemSellPrice; - sub_8019E04(0); - sub_8014248(gKecleonShopDialogue[gUnknown_203B210->mode][5], 0, 5,gUnknown_203B210->menuItems, NULL, 4, 0, gUnknown_203B210->unkE4, 12); + sub_8090E14(gUnknown_202DE58, &gKecleonBrosWork->soldItem, 0); + gUnknown_202DE30 = gKecleonBrosWork->itemSellPrice; + sub_8019E04(FALSE); + sub_8014248(gKecleonShopDialogue[gKecleonBrosWork->mode][5], 0, 5,gKecleonBrosWork->menuItems, NULL, 4, 0, gKecleonBrosWork->unkE4, 12); break; case 17: if (CountKecleonItems() == 0) { - if (gUnknown_203B210->isKecleonItemShop != FALSE) + if (gKecleonBrosWork->isKecleonItemShop != FALSE) sub_801A010(); else sub_801A3DC(); - gUnknown_203B210->fallbackState = 11; + gKecleonBrosWork->fallbackState = 11; } else { if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) { - if (gUnknown_203B210->isKecleonItemShop != FALSE) + if (gKecleonBrosWork->isKecleonItemShop != FALSE) sub_801A010(); else sub_801A3DC(); - gUnknown_203B210->fallbackState = 1; + gKecleonBrosWork->fallbackState = 1; } else - gUnknown_203B210->fallbackState = 16; + gKecleonBrosWork->fallbackState = 16; } - sub_8019E04(0); - sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][6], 0, gUnknown_203B210->unkE4, 0x10D); + sub_8019E04(FALSE); + sub_80141B4(gKecleonShopDialogue[gKecleonBrosWork->mode][6], 0, gKecleonBrosWork->unkE4, 0x10D); break; case 23: - gUnknown_203B210->fallbackState = 26; - sub_8019E04(0); - sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][7], 0, gUnknown_203B210->unkE4, 0x10D); + gKecleonBrosWork->fallbackState = 26; + sub_8019E04(FALSE); + sub_80141B4(gKecleonShopDialogue[gKecleonBrosWork->mode][7], 0, gKecleonBrosWork->unkE4, 0x10D); break; case 24: - gUnknown_203B210->fallbackState = 27; - sub_8019E04(0); - sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][8], 0, gUnknown_203B210->unkE4, 0x10D); + gKecleonBrosWork->fallbackState = 27; + sub_8019E04(FALSE); + sub_80141B4(gKecleonShopDialogue[gKecleonBrosWork->mode][8], 0, gKecleonBrosWork->unkE4, 0x10D); break; case 26: sub_801A5D8(4, 3, NULL, 10); @@ -442,40 +442,40 @@ void UpdateKecleonStoreDialogue(void) sub_801A9E0(); DrawTeamMoneyBox(1); sub_8019660(); - sub_8012D60(&gUnknown_203B210->menu, gUnknown_203B210->menuItems, 0, gUnknown_203B210->unk74, gUnknown_203B210->menuAction2, 2); + sub_8012D60(&gKecleonBrosWork->menu, gKecleonBrosWork->menuItems, 0, gKecleonBrosWork->unk74, gKecleonBrosWork->menuAction2, 2); break; case 30: sub_8019700(); - sub_8090E14(gUnknown_202DE58, &gUnknown_203B210->soldItem, NULL); - gUnknown_202DE30 = gUnknown_203B210->itemSellPrice; - sub_8019E04(0); - sub_8014248(gKecleonShopDialogue[gUnknown_203B210->mode][9], 0, 5, gUnknown_203B210->menuItems, NULL, 4, 0, gUnknown_203B210->unkE4, 12); + sub_8090E14(gUnknown_202DE58, &gKecleonBrosWork->soldItem, NULL); + gUnknown_202DE30 = gKecleonBrosWork->itemSellPrice; + sub_8019E04(FALSE); + sub_8014248(gKecleonShopDialogue[gKecleonBrosWork->mode][9], 0, 5, gKecleonBrosWork->menuItems, NULL, 4, 0, gKecleonBrosWork->unkE4, 12); break; case 21: case 29: - sub_801B3C0(&gUnknown_203B210->soldItem); + sub_801B3C0(&gKecleonBrosWork->soldItem); break; case 25: if (GetNumberOfFilledInventorySlots() == 0 || gTeamInventory_203B460->teamMoney >= MAX_TEAM_MONEY) { sub_801A928(); - gUnknown_203B210->fallbackState = 1; + gKecleonBrosWork->fallbackState = 1; } else - gUnknown_203B210->fallbackState = 24; + gKecleonBrosWork->fallbackState = 24; - sub_8019E04(0); - sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][11], 0, gUnknown_203B210->unkE4, 0x10D); + sub_8019E04(FALSE); + sub_80141B4(gKecleonShopDialogue[gKecleonBrosWork->mode][11], 0, gKecleonBrosWork->unkE4, 0x10D); break; - case 31: + case 31: sub_8019700(); - gUnknown_202DE30 = gUnknown_203B210->inventoryItemSellPrice; - sub_8019E04(0); - sub_8014248(gKecleonShopDialogue[gUnknown_203B210->mode][10], 0, 5, gUnknown_203B210->menuItems, NULL, 4, 0, gUnknown_203B210->unkE4, 12); + gUnknown_202DE30 = gKecleonBrosWork->inventoryItemSellPrice; + sub_8019E04(FALSE); + sub_8014248(gKecleonShopDialogue[gKecleonBrosWork->mode][10], 0, 5, gKecleonBrosWork->menuItems, NULL, 4, 0, gKecleonBrosWork->unkE4, 12); break; - case 32: - gUnknown_203B210->fallbackState = 1; - sub_8019E04(0); - sub_80141B4(gKecleonShopDialogue[gUnknown_203B210->mode][11], 0, gUnknown_203B210->unkE4, 0x10D); + case 32: + gKecleonBrosWork->fallbackState = 1; + sub_8019E04(FALSE); + sub_80141B4(gKecleonShopDialogue[gKecleonBrosWork->mode][11], 0, gKecleonBrosWork->unkE4, 0x10D); break; } } @@ -485,42 +485,42 @@ void sub_80194F8(void) s32 index; s32 loopMax; - MemoryFill16(gUnknown_203B210->unk74, 0, sizeof(gUnknown_203B210->unk74)); + MemoryFill16(gKecleonBrosWork->unk74, 0, sizeof(gKecleonBrosWork->unk74)); loopMax = 0; - gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4978; - gUnknown_203B210->menuItems[loopMax].menuAction = 2; + gKecleonBrosWork->menuItems[loopMax].text = *gUnknown_80D4978; + gKecleonBrosWork->menuItems[loopMax].menuAction = 2; loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4984; - gUnknown_203B210->menuItems[loopMax].menuAction = 3; + gKecleonBrosWork->menuItems[loopMax].text = *gUnknown_80D4984; + gKecleonBrosWork->menuItems[loopMax].menuAction = 3; loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = gUnknown_80DB8A0; - gUnknown_203B210->menuItems[loopMax].menuAction = 4; + gKecleonBrosWork->menuItems[loopMax].text = gUnknown_80DB8A0; + gKecleonBrosWork->menuItems[loopMax].menuAction = 4; loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4970; - gUnknown_203B210->menuItems[loopMax].menuAction = 7; + gKecleonBrosWork->menuItems[loopMax].text = *gUnknown_80D4970; + gKecleonBrosWork->menuItems[loopMax].menuAction = 7; loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4934; - gUnknown_203B210->menuItems[loopMax].menuAction = 1; + gKecleonBrosWork->menuItems[loopMax].text = *gUnknown_80D4934; + gKecleonBrosWork->menuItems[loopMax].menuAction = 1; loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = NULL; - gUnknown_203B210->menuItems[loopMax].menuAction = 1; + gKecleonBrosWork->menuItems[loopMax].text = NULL; + gKecleonBrosWork->menuItems[loopMax].menuAction = 1; for (index = 0; index < loopMax; index++) { - if (gUnknown_203B210->unk74[index] == 0) { - if (gUnknown_203B210->menuItems[index].menuAction == gUnknown_203B210->menuAction1) + if (gKecleonBrosWork->unk74[index] == 0) { + if (gKecleonBrosWork->menuItems[index].menuAction == gKecleonBrosWork->menuAction1) return; } } for (index = 0; index < loopMax; index++) { - if (gUnknown_203B210->unk74[index] == 0) { - gUnknown_203B210->menuAction1 = gUnknown_203B210->menuItems[index].menuAction; + if (gKecleonBrosWork->unk74[index] == 0) { + gKecleonBrosWork->menuAction1 = gKecleonBrosWork->menuItems[index].menuAction; break; } } @@ -531,30 +531,30 @@ void sub_80195C0(void) s32 index; s32 loopMax; - MemoryFill16(gUnknown_203B210->unk74, 0, sizeof(gUnknown_203B210->unk74)); + MemoryFill16(gKecleonBrosWork->unk74, 0, sizeof(gKecleonBrosWork->unk74)); loopMax = 0; - gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4978; - gUnknown_203B210->menuItems[loopMax].menuAction = 2; + gKecleonBrosWork->menuItems[loopMax].text = *gUnknown_80D4978; + gKecleonBrosWork->menuItems[loopMax].menuAction = 2; loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4970; - gUnknown_203B210->menuItems[loopMax].menuAction = 7; + gKecleonBrosWork->menuItems[loopMax].text = *gUnknown_80D4970; + gKecleonBrosWork->menuItems[loopMax].menuAction = 7; loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = NULL; - gUnknown_203B210->menuItems[loopMax].menuAction = 1; + gKecleonBrosWork->menuItems[loopMax].text = NULL; + gKecleonBrosWork->menuItems[loopMax].menuAction = 1; for (index = 0; index < loopMax; index++) { - if (gUnknown_203B210->unk74[index] == 0) { - if (gUnknown_203B210->menuItems[index].menuAction == gUnknown_203B210->menuAction3) + if (gKecleonBrosWork->unk74[index] == 0) { + if (gKecleonBrosWork->menuItems[index].menuAction == gKecleonBrosWork->menuAction3) return; } } for (index = 0; index < loopMax; index++) { - if (gUnknown_203B210->unk74[index] == 0) { - gUnknown_203B210->menuAction3 = gUnknown_203B210->menuItems[index].menuAction; + if (gKecleonBrosWork->unk74[index] == 0) { + gKecleonBrosWork->menuAction3 = gKecleonBrosWork->menuItems[index].menuAction; break; } } @@ -565,30 +565,30 @@ void sub_8019660(void) s32 index; s32 loopMax; - MemoryFill16(gUnknown_203B210->unk74, 0, sizeof(gUnknown_203B210->unk74)); + MemoryFill16(gKecleonBrosWork->unk74, 0, sizeof(gKecleonBrosWork->unk74)); loopMax = 0; - gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4984; - gUnknown_203B210->menuItems[loopMax].menuAction = 3; + gKecleonBrosWork->menuItems[loopMax].text = *gUnknown_80D4984; + gKecleonBrosWork->menuItems[loopMax].menuAction = 3; loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4970; - gUnknown_203B210->menuItems[loopMax].menuAction = 7; + gKecleonBrosWork->menuItems[loopMax].text = *gUnknown_80D4970; + gKecleonBrosWork->menuItems[loopMax].menuAction = 7; loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = NULL; - gUnknown_203B210->menuItems[loopMax].menuAction = 1; + gKecleonBrosWork->menuItems[loopMax].text = NULL; + gKecleonBrosWork->menuItems[loopMax].menuAction = 1; for (index = 0; index < loopMax; index++) { - if (gUnknown_203B210->unk74[index] == 0) { - if (gUnknown_203B210->menuItems[index].menuAction == gUnknown_203B210->menuAction2) + if (gKecleonBrosWork->unk74[index] == 0) { + if (gKecleonBrosWork->menuItems[index].menuAction == gKecleonBrosWork->menuAction2) return; } } for (index = 0; index < loopMax; index++) { - if (gUnknown_203B210->unk74[index] == 0) { - gUnknown_203B210->menuAction2 = gUnknown_203B210->menuItems[index].menuAction; + if (gKecleonBrosWork->unk74[index] == 0) { + gKecleonBrosWork->menuAction2 = gKecleonBrosWork->menuItems[index].menuAction; break; } } @@ -597,16 +597,16 @@ void sub_8019660(void) void sub_8019700(void) { s32 loopMax = 0; - gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4920; - gUnknown_203B210->menuItems[loopMax].menuAction = 5; + gKecleonBrosWork->menuItems[loopMax].text = *gUnknown_80D4920; + gKecleonBrosWork->menuItems[loopMax].menuAction = 5; loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4928; - gUnknown_203B210->menuItems[loopMax].menuAction = 6; + gKecleonBrosWork->menuItems[loopMax].text = *gUnknown_80D4928; + gKecleonBrosWork->menuItems[loopMax].menuAction = 6; loopMax += 1; - gUnknown_203B210->menuItems[loopMax].text = NULL; - gUnknown_203B210->menuItems[loopMax].menuAction = 1; + gKecleonBrosWork->menuItems[loopMax].text = NULL; + gKecleonBrosWork->menuItems[loopMax].menuAction = 1; } void sub_8019730(void) @@ -617,42 +617,42 @@ void sub_8019730(void) return; if (menuAction != 1) - gUnknown_203B210->menuAction1 = menuAction; + gKecleonBrosWork->menuAction1 = menuAction; switch (menuAction) { case 2: if (CountKecleonItems() == 0) - UpdateKecleonStoreState(KECLEON_STORE_NO_STORE_ITEMS); + KecleonBros_SetState(KECLEON_STORE_NO_STORE_ITEMS); else if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) - UpdateKecleonStoreState(KECLEON_STORE_TOO_MANY_ITEMS); + KecleonBros_SetState(KECLEON_STORE_TOO_MANY_ITEMS); else - UpdateKecleonStoreState(15); + KecleonBros_SetState(15); break; case 3: if (GetNumberOfFilledInventorySlots() == 0) - UpdateKecleonStoreState(KECLEON_STORE_NO_ITEMS_TO_SELL); - else if (gUnknown_203B210->numInventoryItemToSell == 0) - UpdateKecleonStoreState(8); + KecleonBros_SetState(KECLEON_STORE_NO_ITEMS_TO_SELL); + else if (gKecleonBrosWork->numInventoryItemToSell == 0) + KecleonBros_SetState(8); else if (gTeamInventory_203B460->teamMoney < MAX_TEAM_MONEY) - UpdateKecleonStoreState(23); + KecleonBros_SetState(23); else - UpdateKecleonStoreState(7); + KecleonBros_SetState(7); break; case 4: if (GetNumberOfFilledInventorySlots() == 0) - UpdateKecleonStoreState(KECLEON_STORE_NO_ITEMS_TO_SELL); - else if (gUnknown_203B210->numInventoryItemToSell == 0) - UpdateKecleonStoreState(8); - else if (gUnknown_203B210->inventoryItemSellPrice + gTeamInventory_203B460->teamMoney > MAX_TEAM_MONEY) - UpdateKecleonStoreState(7); + KecleonBros_SetState(KECLEON_STORE_NO_ITEMS_TO_SELL); + else if (gKecleonBrosWork->numInventoryItemToSell == 0) + KecleonBros_SetState(8); + else if (gKecleonBrosWork->inventoryItemSellPrice + gTeamInventory_203B460->teamMoney > MAX_TEAM_MONEY) + KecleonBros_SetState(7); else - UpdateKecleonStoreState(31); + KecleonBros_SetState(31); break; case 7: - UpdateKecleonStoreState(2); + KecleonBros_SetState(2); break; case 1: - UpdateKecleonStoreState(3); + KecleonBros_SetState(3); break; } } @@ -664,25 +664,25 @@ void sub_8019850(void) if (sub_80144A4(&menuAction) == 0) { switch (menuAction) { case 5: - AddToTeamMoney(-gUnknown_203B210->itemSellPrice); + AddToTeamMoney(-gKecleonBrosWork->itemSellPrice); - if (gUnknown_203B210->isKecleonItemShop) { - AddHeldItemToInventory(GetKecleonShopItem(gUnknown_203B210->itemShopItemIndex)); - InitKecleonShopItem(gUnknown_203B210->itemShopItemIndex); + if (gKecleonBrosWork->isKecleonItemShop) { + AddHeldItemToInventory(GetKecleonShopItem(gKecleonBrosWork->itemShopItemIndex)); + InitKecleonShopItem(gKecleonBrosWork->itemShopItemIndex); FillKecleonShopGaps(); } else { - AddHeldItemToInventory(GetKecleonWareItem(gUnknown_203B210->wareShopItemIndex)); - InitKecleonWareItem(gUnknown_203B210->wareShopItemIndex); + AddHeldItemToInventory(GetKecleonWareItem(gKecleonBrosWork->wareShopItemIndex)); + InitKecleonWareItem(gKecleonBrosWork->wareShopItemIndex); FillKecleonWareGaps(); } PlaySound(0x14c); - UpdateKecleonStoreState(17); + KecleonBros_SetState(17); break; case 6: case 1: - UpdateKecleonStoreState(16); + KecleonBros_SetState(16); break; } } @@ -695,14 +695,14 @@ void sub_80198E8(void) if (sub_80144A4(&menuAction) == 0) { switch (menuAction) { case 5: - AddToTeamMoney(gUnknown_203B210->itemSellPrice); - ShiftItemsDownFrom(gUnknown_203B210->soldItemInventoryIndex); + AddToTeamMoney(gKecleonBrosWork->itemSellPrice); + ShiftItemsDownFrom(gKecleonBrosWork->soldItemInventoryIndex); PlaySound(0x14c); - UpdateKecleonStoreState(25); + KecleonBros_SetState(25); break; case 6: case 1: - UpdateKecleonStoreState(24); + KecleonBros_SetState(24); break; } } @@ -725,13 +725,13 @@ void sub_8019944(void) } FillInventoryGaps(); - AddToTeamMoney(gUnknown_203B210->inventoryItemSellPrice); + AddToTeamMoney(gKecleonBrosWork->inventoryItemSellPrice); PlaySound(0x14c); - UpdateKecleonStoreState(32); + KecleonBros_SetState(32); break; case 1: case 6: - UpdateKecleonStoreState(KECLEON_STORE_MAIN_MENU); + KecleonBros_SetState(KECLEON_STORE_MAIN_MENU); break; } } @@ -742,49 +742,49 @@ void sub_80199CC(void) u32 menuAction; struct BulkItem *item; - if (gUnknown_203B210->isKecleonItemShop) + if (gKecleonBrosWork->isKecleonItemShop) menuAction = sub_8019EDC(1); else menuAction = sub_801A2A8(1); switch (menuAction) { case 3: - if (gUnknown_203B210->isKecleonItemShop) { - gUnknown_203B210->itemShopItemIndex = sub_8019FB0(); - item = GetKecleonShopItem(gUnknown_203B210->itemShopItemIndex); + if (gKecleonBrosWork->isKecleonItemShop) { + gKecleonBrosWork->itemShopItemIndex = sub_8019FB0(); + item = GetKecleonShopItem(gKecleonBrosWork->itemShopItemIndex); } else { - gUnknown_203B210->wareShopItemIndex = sub_801A37C(); - item = GetKecleonWareItem(gUnknown_203B210->wareShopItemIndex); + gKecleonBrosWork->wareShopItemIndex = sub_801A37C(); + item = GetKecleonWareItem(gKecleonBrosWork->wareShopItemIndex); } - xxx_init_itemslot_8090A8C(&gUnknown_203B210->soldItem, item->id, 0); - gUnknown_203B210->soldItem.quantity = item->quantity; - gUnknown_203B210->itemSellPrice = GetStackBuyPrice(&gUnknown_203B210->soldItem); - UpdateKecleonStoreState(20); + xxx_init_itemslot_8090A8C(&gKecleonBrosWork->soldItem, item->id, 0); + gKecleonBrosWork->soldItem.quantity = item->quantity; + gKecleonBrosWork->itemSellPrice = GetStackBuyPrice(&gKecleonBrosWork->soldItem); + KecleonBros_SetState(20); break; case 4: - if (gUnknown_203B210->isKecleonItemShop) { - gUnknown_203B210->itemShopItemIndex = sub_8019FB0(); - item = GetKecleonShopItem(gUnknown_203B210->itemShopItemIndex); + if (gKecleonBrosWork->isKecleonItemShop) { + gKecleonBrosWork->itemShopItemIndex = sub_8019FB0(); + item = GetKecleonShopItem(gKecleonBrosWork->itemShopItemIndex); } else { - gUnknown_203B210->wareShopItemIndex = sub_801A37C(); - item = GetKecleonWareItem(gUnknown_203B210->wareShopItemIndex); + gKecleonBrosWork->wareShopItemIndex = sub_801A37C(); + item = GetKecleonWareItem(gKecleonBrosWork->wareShopItemIndex); } - xxx_init_itemslot_8090A8C(&gUnknown_203B210->soldItem, item->id, 0); - gUnknown_203B210->soldItem.quantity = item->quantity; - gUnknown_203B210->itemSellPrice = GetStackBuyPrice(&gUnknown_203B210->soldItem); - UpdateKecleonStoreState(21); + xxx_init_itemslot_8090A8C(&gKecleonBrosWork->soldItem, item->id, 0); + gKecleonBrosWork->soldItem.quantity = item->quantity; + gKecleonBrosWork->itemSellPrice = GetStackBuyPrice(&gKecleonBrosWork->soldItem); + KecleonBros_SetState(21); break; case 2: - if (gUnknown_203B210->isKecleonItemShop) + if (gKecleonBrosWork->isKecleonItemShop) sub_801A010(); else sub_801A3DC(); - UpdateKecleonStoreState(KECLEON_STORE_MAIN_MENU); + KecleonBros_SetState(KECLEON_STORE_MAIN_MENU); break; case 1: sub_801AD34(0); @@ -799,21 +799,21 @@ void sub_8019B08(void) case 0: break; case 3: - gUnknown_203B210->soldItemInventoryIndex = sub_801A8AC(); - gUnknown_203B210->soldItem = gTeamInventory_203B460->teamItems[gUnknown_203B210->soldItemInventoryIndex]; - gUnknown_203B210->itemSellPrice = GetStackSellPrice(&gUnknown_203B210->soldItem); - UpdateKecleonStoreState(28); + gKecleonBrosWork->soldItemInventoryIndex = sub_801A8AC(); + gKecleonBrosWork->soldItem = gTeamInventory_203B460->teamItems[gKecleonBrosWork->soldItemInventoryIndex]; + gKecleonBrosWork->itemSellPrice = GetStackSellPrice(&gKecleonBrosWork->soldItem); + KecleonBros_SetState(28); break; case 4: - gUnknown_203B210->soldItemInventoryIndex = sub_801A8AC(); - gUnknown_203B210->soldItem = gTeamInventory_203B460->teamItems[gUnknown_203B210->soldItemInventoryIndex]; - gUnknown_203B210->itemSellPrice = GetStackSellPrice(&gUnknown_203B210->soldItem); + gKecleonBrosWork->soldItemInventoryIndex = sub_801A8AC(); + gKecleonBrosWork->soldItem = gTeamInventory_203B460->teamItems[gKecleonBrosWork->soldItemInventoryIndex]; + gKecleonBrosWork->itemSellPrice = GetStackSellPrice(&gKecleonBrosWork->soldItem); sub_8099690(0); - UpdateKecleonStoreState(29); + KecleonBros_SetState(29); break; case 2: sub_801A928(); - UpdateKecleonStoreState(KECLEON_STORE_MAIN_MENU); + KecleonBros_SetState(KECLEON_STORE_MAIN_MENU); break; case 1: default: @@ -828,28 +828,28 @@ void sub_8019BBC(void) menuAction = 0; - if (gUnknown_203B210->isKecleonItemShop) + if (gKecleonBrosWork->isKecleonItemShop) sub_8019EDC(0); else sub_801A2A8(0); - if (sub_8012FD8(&gUnknown_203B210->menu) == 0 && (sub_8013114(&gUnknown_203B210->menu, &menuAction), menuAction != 1)) - gUnknown_203B210->menuAction3 = menuAction; + if (sub_8012FD8(&gKecleonBrosWork->menu) == 0 && (sub_8013114(&gKecleonBrosWork->menu, &menuAction), menuAction != 1)) + gKecleonBrosWork->menuAction3 = menuAction; switch (menuAction) { case 2: if (gTeamInventory_203B460->teamMoney == 0) - UpdateKecleonStoreState(KECLEON_STORE_NO_MONEY); - else if (gUnknown_203B210->itemSellPrice > gTeamInventory_203B460->teamMoney) - UpdateKecleonStoreState(KECLEON_STORE_NOT_ENOUGH_MONEY); + KecleonBros_SetState(KECLEON_STORE_NO_MONEY); + else if (gKecleonBrosWork->itemSellPrice > gTeamInventory_203B460->teamMoney) + KecleonBros_SetState(KECLEON_STORE_NOT_ENOUGH_MONEY); else - UpdateKecleonStoreState(22); + KecleonBros_SetState(22); break; case 7: - UpdateKecleonStoreState(21); + KecleonBros_SetState(21); break; case 1: - UpdateKecleonStoreState(19); + KecleonBros_SetState(19); break; } } @@ -861,26 +861,26 @@ void sub_8019C78(void) menuAction = 0; sub_801A6E8(FALSE); - if (sub_8012FD8(&gUnknown_203B210->menu) == FALSE && (sub_8013114(&gUnknown_203B210->menu, &menuAction), menuAction != 1)) - gUnknown_203B210->menuAction2 = menuAction; + if (sub_8012FD8(&gKecleonBrosWork->menu) == FALSE && (sub_8013114(&gKecleonBrosWork->menu, &menuAction), menuAction != 1)) + gKecleonBrosWork->menuAction2 = menuAction; switch (menuAction) { case 3: sub_8099690(0); - if (!CanSellItem(gUnknown_203B210->soldItem.id)) - UpdateKecleonStoreState(KECLEON_STORE_CANT_SELL_ITEM); - else if (gUnknown_203B210->itemSellPrice + gTeamInventory_203B460->teamMoney > MAX_TEAM_MONEY) - UpdateKecleonStoreState(14); + if (!CanSellItem(gKecleonBrosWork->soldItem.id)) + KecleonBros_SetState(KECLEON_STORE_CANT_SELL_ITEM); + else if (gKecleonBrosWork->itemSellPrice + gTeamInventory_203B460->teamMoney > MAX_TEAM_MONEY) + KecleonBros_SetState(14); else - UpdateKecleonStoreState(30); + KecleonBros_SetState(30); break; case 7: sub_8099690(0); - UpdateKecleonStoreState(29); + KecleonBros_SetState(29); break; case 1: - UpdateKecleonStoreState(27); + KecleonBros_SetState(27); break; } } @@ -891,7 +891,7 @@ void sub_8019D30(void) case 2: case 3: sub_801B450(); - UpdateKecleonStoreState(19); + KecleonBros_SetState(19); break; case 0: case 1: @@ -905,7 +905,7 @@ void sub_8019D4C(void) case 2: case 3: sub_801B450(); - UpdateKecleonStoreState(27); + KecleonBros_SetState(27); break; case 0: case 1: @@ -918,12 +918,12 @@ void sub_8019D68(void) { s32 temp; if (sub_80144A4(&temp) == 0) - UpdateKecleonStoreState(gUnknown_203B210->fallbackState); + KecleonBros_SetState(gKecleonBrosWork->fallbackState); } u32 CountKecleonItems(void) { - if (gUnknown_203B210->isKecleonItemShop) + if (gKecleonBrosWork->isKecleonItemShop) return CountKecleonShopItems(); else return CountKecleonWareItems(); @@ -935,32 +935,32 @@ void sub_8019DAC(void) struct Item *item; s32 index; - gUnknown_203B210->numInventoryItemToSell = 0; - gUnknown_203B210->inventoryItemSellPrice = 0; + gKecleonBrosWork->numInventoryItemToSell = 0; + gKecleonBrosWork->inventoryItemSellPrice = 0; for (index = 0; index < INVENTORY_SIZE; index++) { item = &gTeamInventory_203B460->teamItems[index]; if ((item->flags & ITEM_FLAG_EXISTS) != 0 && CanSellItem(item->id)) { sellPrice = GetStackSellPrice(item); - gUnknown_203B210->inventoryItemSellPrice += sellPrice; - gUnknown_203B210->numInventoryItemToSell++; + gKecleonBrosWork->inventoryItemSellPrice += sellPrice; + gKecleonBrosWork->numInventoryItemToSell++; } } } void sub_8019E04(bool32 param_1) { - if (gUnknown_203B210->isKecleonItemShop) { + if (gKecleonBrosWork->isKecleonItemShop) { if (param_1 == TRUE) - gUnknown_203B210->unkE0 = 1; + gKecleonBrosWork->unkE0 = 1; else - gUnknown_203B210->unkE0 = 0; + gKecleonBrosWork->unkE0 = 0; } else { if (param_1 == TRUE) - gUnknown_203B210->unkE0 = 7; + gKecleonBrosWork->unkE0 = 7; else - gUnknown_203B210->unkE0 = 6; + gKecleonBrosWork->unkE0 = 6; } } diff --git a/sym_ewram2.txt b/sym_ewram2.txt index 86b46b416..e214d3311 100644 --- a/sym_ewram2.txt +++ b/sym_ewram2.txt @@ -139,7 +139,7 @@ gUnknown_203B200: /* 203B200 */ .include "src/felicity_bank.o" .include "src/kangaskhan_storage.o" -gUnknown_203B210: /* 203B210 */ +gKecleonBrosWork: /* 203B210 */ .space 0x4 gUnknown_203B214: /* 203B214 */ From 595e2a0b889a5711551efa85c2670b672ef4f5f2 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sat, 5 Aug 2023 11:54:02 -0400 Subject: [PATCH 08/16] KECLEON_BROS_MODE_COUNT --- include/kecleon_bros.h | 9 +++++---- src/kecleon_bros.c | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/include/kecleon_bros.h b/include/kecleon_bros.h index 4a9ed09a9..72e7f2c14 100644 --- a/include/kecleon_bros.h +++ b/include/kecleon_bros.h @@ -62,10 +62,11 @@ struct unkStruct_203B224 enum KecleonBrosMode { - KECLEON_BROS_MODE_ITEMS_AWAKE = 0, - KECLEON_BROS_MODE_ITEMS_ASLEEP = 1, - KECLEON_BROS_MODE_WARES_AWAKE = 2, - KECLEON_BROS_MODE_WARES_ASLEEP = 3, + KECLEON_BROS_MODE_ITEMS_AWAKE, + KECLEON_BROS_MODE_ITEMS_ASLEEP, + KECLEON_BROS_MODE_WARES_AWAKE, + KECLEON_BROS_MODE_WARES_ASLEEP, + KECLEON_BROS_MODE_COUNT }; enum KecleonStoreStates diff --git a/src/kecleon_bros.c b/src/kecleon_bros.c index fe7e5f7cf..0fc833783 100644 --- a/src/kecleon_bros.c +++ b/src/kecleon_bros.c @@ -47,7 +47,7 @@ extern u8 gUnknown_80DB9A0[]; extern u8 gUnknown_80DB9A8[]; extern u8 gUnknown_80DB9B0[]; -extern const u8 *gKecleonShopDialogue[4][23]; +extern const u8 *gKecleonShopDialogue[KECLEON_BROS_MODE_COUNT][23]; extern const u8 gTeamToolboxA[]; extern const u8 gTeamToolboxB[]; From 944a4204490ee0794302fcc92662a13648d07af1 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sat, 5 Aug 2023 12:26:34 -0400 Subject: [PATCH 09/16] Clean Kangaskhan 1/2 --- include/kangaskhan_storage.h | 47 +- src/kangaskhan_storage.c | 1305 ++++++++++++++++------------------ 2 files changed, 652 insertions(+), 700 deletions(-) diff --git a/include/kangaskhan_storage.h b/include/kangaskhan_storage.h index dcca82cf0..0309d9ce3 100644 --- a/include/kangaskhan_storage.h +++ b/include/kangaskhan_storage.h @@ -1,22 +1,23 @@ #ifndef GUARD_KANGASKHAN_STORAGE_H #define GUARD_KANGASKHAN_STORAGE_H -#include "text.h" -#include "menu.h" +#include "file_system.h" #include "item.h" +#include "menu.h" +#include "text.h" +// size: 0x14C struct unkStruct_203B208 { - // size: 0x14C - bool32 isAsleep; - u32 currState; - u32 fallbackState; - struct Item storedItem; - u32 itemIndex; - u8 id; // another id? - u32 menuAction1; - u32 menuAction2; - u32 menuAction3; + /* 0x0 */ bool32 isAsleep; + /* 0x4 */ u32 currState; + /* 0x8 */ u32 fallbackState; + /* 0xC */ struct Item storedItem; + /* 0x10 */ u32 itemIndex; + /* 0x14 */ u8 id; // another id? + /* 0x18 */ u32 menuAction1; + /* 0x1C */ u32 menuAction2; + /* 0x20 */ u32 menuAction3; struct MenuItem unk24[5]; u16 unk4C[5]; struct MenuStruct unk58; @@ -31,8 +32,8 @@ struct unkStruct_203B208 u32 unkC8; u8 unkCC[0xD4 - 0xCC]; u32 unkD4; - struct OpenedFile *faceFile; - u8 *faceData; + /* 0xD8 */ struct OpenedFile *faceFile; + /* 0xDC */ u8 *faceData; u16 unkE0; u16 unkE2; u8 unkE4; @@ -43,16 +44,17 @@ struct unkStruct_203B208 struct UnkTextStruct2 unkEC[4]; }; +// size: 0x150 struct unkStruct_203B20C { - u32 state; + /* 0x0 */ u32 state; u8 unk4[4]; - struct Item item; - u32 itemIndex; - u8 id; - u32 menuAction1; - u32 menuAction2; - u32 menuAction3; + /* 0x8 */ struct Item item; + /* 0xC */ u32 itemIndex; + /* 0x10 */ u8 id; + /* 0x14 */ u32 menuAction1; + /* 0x18 */ u32 menuAction2; + /* 0x1C */ u32 menuAction3; struct MenuItem unk20[8]; u16 unk60[8]; struct MenuStruct unk70; @@ -69,7 +71,8 @@ struct unkStruct_203B20C struct UnkTextStruct2 unkF0[4]; }; -enum KangaskhanStorageStates { +enum KangaskhanStorageStates +{ KANGASKHAN_STORAGE_INIT = 0, KANGASKHAN_STORAGE_MAIN_MENU = 1, KANGASKHAN_STORAGE_EXIT = 4, diff --git a/src/kangaskhan_storage.c b/src/kangaskhan_storage.c index e30410c24..4e0941ac6 100644 --- a/src/kangaskhan_storage.c +++ b/src/kangaskhan_storage.c @@ -1,14 +1,16 @@ #include "global.h" -#include "file_system.h" -#include "pokemon.h" #include "input.h" #include "item.h" #include "kangaskhan_storage.h" +#include "kecleon_bros.h" #include "memory.h" #include "menu_input.h" +#include "pokemon.h" #include "team_inventory.h" -#include "kecleon_bros.h" +extern u8 gUnknown_202DE58[]; +extern u8 gUnknown_202E1C8[]; +extern u8 gUnknown_202E5D8[]; EWRAM_DATA_2 struct unkStruct_203B208 *gUnknown_203B208 = {0}; EWRAM_DATA_2 struct unkStruct_203B20C *gUnknown_203B20C = {0}; @@ -32,10 +34,7 @@ extern u8 *gUnknown_80D4958[]; extern u8 *gUnknown_80D4984[]; extern u8 *gUnknown_80D4934[]; -extern u8 *gKangaskhanStorageDialogue[2][20]; -extern u8 gUnknown_202E5D8[]; -extern u8 gUnknown_202DE58[]; -extern u8 gUnknown_202E1C8[]; +extern const u8 *gKangaskhanStorageDialogue[2][20]; void UpdateKangaskhanStorageState(u32); extern void sub_8017828(); @@ -112,96 +111,94 @@ extern void sub_801CBB8(void); extern void sub_801B3C0(struct Item *); extern u8 sub_801CF14(u32); - u32 CreateKangaskhanStorage(bool32 isAsleep) { - char *monName; - struct OpenedFile * faceFile; - - ResetUnusedInputStruct(); - sub_800641C(0,1,1); - gUnknown_203B208 = MemoryAlloc(sizeof(struct unkStruct_203B208),8); - gUnknown_203B208->menuAction1 = 0; - gUnknown_203B208->menuAction2 = 0; - gUnknown_203B208->menuAction3 = 0; - gUnknown_203B208->isAsleep = isAsleep; - CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KANGASKHAN); - CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KANGASKHAN); - monName = GetMonSpecies(MONSTER_KANGASKHAN); - strcpy(gUnknown_202E1C8 - 0x50, monName); - if (gUnknown_203B208->isAsleep == 1) { - gUnknown_203B208->unkE8 = 0; - } - else { - gUnknown_203B208->unkE8 = &gUnknown_203B208->faceFile; - } - faceFile = GetDialogueSpriteDataPtr(MONSTER_KANGASKHAN); - gUnknown_203B208->faceFile = faceFile; - gUnknown_203B208->faceData = faceFile->data; - gUnknown_203B208->unkE4 = 0; - gUnknown_203B208->unkE5 = 0; - gUnknown_203B208->unkE6 = 0; - gUnknown_203B208->unkE0 = 2; - gUnknown_203B208->unkE2 = 8; - UpdateKangaskhanStorageState(KANGASKHAN_STORAGE_INIT); - return 1; + char *monName; + struct OpenedFile *faceFile; + + ResetUnusedInputStruct(); + sub_800641C(0, 1, 1); + gUnknown_203B208 = MemoryAlloc(sizeof(struct unkStruct_203B208), 8); + gUnknown_203B208->menuAction1 = 0; + gUnknown_203B208->menuAction2 = 0; + gUnknown_203B208->menuAction3 = 0; + gUnknown_203B208->isAsleep = isAsleep; + CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KANGASKHAN); + CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KANGASKHAN); + monName = GetMonSpecies(MONSTER_KANGASKHAN); + strcpy(gUnknown_202E1C8 - 0x50, monName); + + if (gUnknown_203B208->isAsleep == TRUE) + gUnknown_203B208->unkE8 = NULL; + else + gUnknown_203B208->unkE8 = &gUnknown_203B208->faceFile; + + faceFile = GetDialogueSpriteDataPtr(MONSTER_KANGASKHAN); + gUnknown_203B208->faceFile = faceFile; + gUnknown_203B208->faceData = faceFile->data; + gUnknown_203B208->unkE4 = 0; + gUnknown_203B208->unkE5 = 0; + gUnknown_203B208->unkE6 = 0; + gUnknown_203B208->unkE0 = 2; + gUnknown_203B208->unkE2 = 8; + UpdateKangaskhanStorageState(KANGASKHAN_STORAGE_INIT); + return 1; } u32 sub_8016D54(void) { - switch(gUnknown_203B208->currState) { - case KANGASKHAN_STORAGE_INIT: - case KANGASKHAN_STORAGE_MAIN_MENU: - sub_8017828(); - break; - case 0xd: - case 0xe: - sub_8017AF8(); - break; - case 0xf: - sub_8017C7C(); - break; - case 0x10: - sub_8017DC0(); - break; - case 0x11: - sub_80178D0(); - break; - case 0x12: - sub_80179A8(); - break; - case 0x16: - case 0x17: - sub_8017B88(); - break; - case 0x18: - sub_8017C28(); - break; - case 0x19: - sub_8017D24(); - break; - case 0x1a: - sub_8017DDC(); - break; - case 0x1b: - sub_8017928(); - break; - case 0x1c: - sub_8017A1C(); - break; - case KANGASKHAN_STORAGE_EXIT: - return 3; - default: - AdvanceToKangaskhanStorageFallbackState(); - break; - } + switch (gUnknown_203B208->currState) { + case KANGASKHAN_STORAGE_INIT: + case KANGASKHAN_STORAGE_MAIN_MENU: + sub_8017828(); + break; + case 13: + case 14: + sub_8017AF8(); + break; + case 15: + sub_8017C7C(); + break; + case 16: + sub_8017DC0(); + break; + case 17: + sub_80178D0(); + break; + case 18: + sub_80179A8(); + break; + case 22: + case 23: + sub_8017B88(); + break; + case 24: + sub_8017C28(); + break; + case 25: + sub_8017D24(); + break; + case 26: + sub_8017DDC(); + break; + case 27: + sub_8017928(); + break; + case 28: + sub_8017A1C(); + break; + case KANGASKHAN_STORAGE_EXIT: + return 3; + default: + AdvanceToKangaskhanStorageFallbackState(); + break; + } return 0; } void sub_8016E40(void) { - if(gUnknown_203B208 != NULL) - { + if (gUnknown_203B208 != NULL) { CloseFile(gUnknown_203B208->faceFile); MemoryFree(gUnknown_203B208); gUnknown_203B208 = NULL; @@ -220,336 +217,329 @@ void sub_8016E80(void) s32 index; sub_8006518(gUnknown_203B208->unkEC); - switch(gUnknown_203B208->currState) - { - case 0xD: - case 0xE: + + switch (gUnknown_203B208->currState) { + case 13: + case 14: gUnknown_203B208->unkEC[0] = gUnknown_80DB748; gUnknown_203B208->unkEC[1] = gUnknown_80DB748; gUnknown_203B208->unkEC[2] = gUnknown_80DB748; gUnknown_203B208->unkEC[0] = gUnknown_80DB748; break; - case 0x16: - case 0x17: + case 22: + case 23: gUnknown_203B208->unkEC[0] = gUnknown_80DB748; gUnknown_203B208->unkEC[1] = gUnknown_80DB748; gUnknown_203B208->unkEC[2] = gUnknown_80DB748; gUnknown_203B208->unkEC[0] = gUnknown_80DB778; break; - case 0x18: + case 24: gUnknown_203B208->unkEC[1] = gUnknown_80DB790; break; - case 0xF: - case 0x19: + case 15: + case 25: gUnknown_203B208->unkEC[2] = gUnknown_80DB760; break; default: - for(index = 0; index < 4; index++) + for (index = 0; index < 4; index++) gUnknown_203B208->unkEC[index] = gUnknown_80DB748; break; } + ResetUnusedInputStruct(); sub_800641C(gUnknown_203B208->unkEC, 1, 1); } void sub_8016FF8(void) { - - switch(gUnknown_203B208->currState) { + switch (gUnknown_203B208->currState) { case KANGASKHAN_STORAGE_INIT: sub_80175FC(); gUnknown_203B208->unkE4 = 1; - sub_8014248(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][0],0,gUnknown_203B208->menuAction1,gUnknown_203B208->unk24, - gUnknown_203B208->unk4C,4,0,gUnknown_203B208->unkE8,0xc); + sub_8014248(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][0], 0, gUnknown_203B208->menuAction1, gUnknown_203B208->unk24, + gUnknown_203B208->unk4C, 4, 0, gUnknown_203B208->unkE8, 12); break; case KANGASKHAN_STORAGE_MAIN_MENU: sub_80175FC(); gUnknown_203B208->unkE4 = 0; - sub_8014248(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][1],0,gUnknown_203B208->menuAction1,gUnknown_203B208->unk24, - gUnknown_203B208->unk4C,4,0,gUnknown_203B208->unkE8,0xc); + sub_8014248(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][1], 0, gUnknown_203B208->menuAction1, gUnknown_203B208->unk24, + gUnknown_203B208->unk4C, 4, 0, gUnknown_203B208->unkE8, 12); break; case 2: gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU; gUnknown_203B208->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][19],0,gUnknown_203B208->unkE8,0x10d); + sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][19], 0, gUnknown_203B208->unkE8, 0x10D); break; case 3: gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_EXIT; gUnknown_203B208->unkE4 = 1; - sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][2],0,gUnknown_203B208->unkE8,0x30d); + sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][2], 0, gUnknown_203B208->unkE8, 0x30D); break; case KANGASKHAN_STORAGE_NO_INV_ITEMS: gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU; gUnknown_203B208->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][13],0,gUnknown_203B208->unkE8,0x10d); + sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][13], 0, gUnknown_203B208->unkE8, 0x10D); break; case KANGASKHAN_STORAGE_TOO_MANY_ITEMS: gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU; gUnknown_203B208->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][14],0,gUnknown_203B208->unkE8,0x10d); + sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][14], 0, gUnknown_203B208->unkE8, 0x10D); break; case 7: gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU; gUnknown_203B208->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][15],0,gUnknown_203B208->unkE8,0x10d); + sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][15], 0, gUnknown_203B208->unkE8, 0x10D); break; case 8: gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU; gUnknown_203B208->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][18],0,gUnknown_203B208->unkE8,0x10d); + sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][18], 0, gUnknown_203B208->unkE8, 0x10D); break; case KANGASKHAN_STORAGE_IS_MONEY_USED_TM: - sub_8090E14(gUnknown_202DE58,&gUnknown_203B208->storedItem,0); - gUnknown_203B208->fallbackState = 0xe; + sub_8090E14(gUnknown_202DE58, &gUnknown_203B208->storedItem, 0); + gUnknown_203B208->fallbackState = 14; gUnknown_203B208->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][16],0,gUnknown_203B208->unkE8,0x30d); + sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][16], 0, gUnknown_203B208->unkE8, 0x30D); break; case 10: - gUnknown_203B208->fallbackState = 0xe; + gUnknown_203B208->fallbackState = 14; gUnknown_203B208->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][17],0,gUnknown_203B208->unkE8,0x30d); + sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][17], 0, gUnknown_203B208->unkE8, 0x30D); break; case 0xb: - gUnknown_203B208->fallbackState = 0xd; + gUnknown_203B208->fallbackState = 13; gUnknown_203B208->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][3],0,gUnknown_203B208->unkE8,0x30d); + sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][3], 0, gUnknown_203B208->unkE8, 0x30D); break; - case 0xc: - gUnknown_203B208->fallbackState = 0xe; + case 12: + gUnknown_203B208->fallbackState = 14; gUnknown_203B208->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][4],0,gUnknown_203B208->unkE8,0x30d); + sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][4], 0, gUnknown_203B208->unkE8, 0x30D); break; - case 0xd: - sub_801A5D8(3,3,0,10); + case 13: + sub_801A5D8(3, 3, 0, 10); break; - case 0xe: + case 14: sub_801A8D0(1); break; - case 0xf: + case 15: sub_801A9E0(); sub_80176B8(); - sub_8012D60(&gUnknown_203B208->unk58,gUnknown_203B208->unk24,0, - gUnknown_203B208->unk4C,gUnknown_203B208->menuAction2,2); + sub_8012D60(&gUnknown_203B208->unk58, gUnknown_203B208->unk24, NULL, gUnknown_203B208->unk4C, gUnknown_203B208->menuAction2, 2); break; - - case 0x11: + case 17: sub_80177F8(); - sub_8090E14(gUnknown_202DE58,&gUnknown_203B208->storedItem,0); + sub_8090E14(gUnknown_202DE58, &gUnknown_203B208->storedItem, 0); gUnknown_203B208->unkE4 = 0; - sub_8014248(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][5],0,4,gUnknown_203B208->unk24,0,4,0, - gUnknown_203B208->unkE8,0xc); + sub_8014248(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][5], 0, 4, gUnknown_203B208->unk24, NULL, 4, 0, + gUnknown_203B208->unkE8, 12); break; - case 0x12: + case 18: sub_80177F8(); gUnknown_203B208->unkE4 = 0; - sub_8014248(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][6],0,4,gUnknown_203B208->unk24,0,4,0, - gUnknown_203B208->unkE8,0xc); + sub_8014248(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][6], 0, 4, gUnknown_203B208->unk24, NULL, 4, 0, + gUnknown_203B208->unkE8, 12); break; - case 0x13: + case 19: if (GetNumberOfFilledInventorySlots() == 0) { sub_801A928(); gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU; } - else { - gUnknown_203B208->fallbackState = 0xc; - } + else + gUnknown_203B208->fallbackState = 12; + gUnknown_203B208->unkE4 = 1; - sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][7],0,gUnknown_203B208->unkE8,0x10d); + sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][7], 0, gUnknown_203B208->unkE8, 0x10D); break; - case 0x14: - gUnknown_203B208->fallbackState = 0x16; + case 20: + gUnknown_203B208->fallbackState = 22; gUnknown_203B208->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][8],0,gUnknown_203B208->unkE8,0x30d); + sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][8], 0, gUnknown_203B208->unkE8, 0x30D); break; - case 0x15: - gUnknown_203B208->fallbackState = 0x17; + case 21: + gUnknown_203B208->fallbackState = 23; gUnknown_203B208->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][9],0,gUnknown_203B208->unkE8,0x30d); + sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][9], 0, gUnknown_203B208->unkE8, 0x30D); break; - case 0x16: - sub_801C8C4(1,3,0,10); + case 22: + sub_801C8C4(1, 3, 0, 10); sub_801AD34(0); break; - case 0x17: + case 23: sub_801CB5C(1); sub_801AD34(0); break; - case 0x18: + case 24: gUnknown_203B208->unkB8 = 2; gUnknown_203B208->unkB0 = 1; + if (gTeamInventory_203B460->teamStorage[gUnknown_203B208->storedItem.id] >= 100) - { - gUnknown_203B208->unkB4 = 99; - } - else { + gUnknown_203B208->unkB4 = 99; + else gUnknown_203B208->unkB4 = gTeamInventory_203B460->teamStorage [gUnknown_203B208->storedItem.id]; - } gUnknown_203B208->unkAC = gUnknown_203B208->unkB4; gUnknown_203B208->unkBC = 1; gUnknown_203B208->unkC0 = &gUnknown_203B208->unkEC[1]; - gUnknown_203B208->unkC4 = 0x28; - gUnknown_203B208->unkC8 = 0x12; + gUnknown_203B208->unkC4 = 40; + gUnknown_203B208->unkC8 = 18; sub_8013AA0(&gUnknown_203B208->unkA8); sub_8017598(); break; - case 0x19: + case 25: sub_801CCD8(); sub_801AD34(0); sub_8017758(); - sub_8012D60(&gUnknown_203B208->unk58,gUnknown_203B208->unk24,0, - gUnknown_203B208->unk4C,gUnknown_203B208->menuAction3,2); + sub_8012D60(&gUnknown_203B208->unk58, gUnknown_203B208->unk24, NULL, gUnknown_203B208->unk4C, gUnknown_203B208->menuAction3, 2); break; - case 0x10: - case 0x1a: + case 16: + case 26: sub_801B3C0(&gUnknown_203B208->storedItem); break; - case 0x1b: + case 27: sub_80177F8(); - sub_8090E14(gUnknown_202DE58,&gUnknown_203B208->storedItem,0); + sub_8090E14(gUnknown_202DE58, &gUnknown_203B208->storedItem, 0); gUnknown_203B208->unkE4 = 0; - sub_8014248(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][10],0,4,gUnknown_203B208->unk24,0,4,0, - gUnknown_203B208->unkE8,0xc); + sub_8014248(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][10], 0, 4, gUnknown_203B208->unk24, NULL, 4, 0, + gUnknown_203B208->unkE8, 12); break; - case 0x1c: + case 28: sub_80177F8(); gUnknown_203B208->unkE4 = 0; - sub_8014248(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][11],0,4,gUnknown_203B208->unk24,0,4,0, - gUnknown_203B208->unkE8,0xc); + sub_8014248(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][11], 0, 4, gUnknown_203B208->unk24, NULL, 4, 0, + gUnknown_203B208->unkE8, 12); break; - case 0x1d: - if ((sub_801CF14(1)) || (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE)) { + case 29: + if (sub_801CF14(1) || GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) { sub_801CBB8(); gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU; } - else { - gUnknown_203B208->fallbackState = 0x15; - } + else + gUnknown_203B208->fallbackState = 21; + gUnknown_203B208->unkE4 = 1; - sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][12],0,gUnknown_203B208->unkE8,0x10d); + sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][12], 0, gUnknown_203B208->unkE8, 0x10D); break; } } void sub_8017598(void) { - - sub_8008C54(gUnknown_203B208->unkBC); - sub_80073B8(gUnknown_203B208->unkBC); - xxx_call_draw_string(4,0,&gUnknown_80DB7A8,gUnknown_203B208->unkBC,0); // Number? - sub_8013C68(&gUnknown_203B208->unkA8); - sub_80073E0(gUnknown_203B208->unkBC); - sub_801CCD8(); - sub_801AD34(0); - sub_8012EA4(&gUnknown_203B208->unk58,0); + sub_8008C54(gUnknown_203B208->unkBC); + sub_80073B8(gUnknown_203B208->unkBC); + xxx_call_draw_string(4, 0, &gUnknown_80DB7A8,gUnknown_203B208->unkBC, 0); // Number? + sub_8013C68(&gUnknown_203B208->unkA8); + sub_80073E0(gUnknown_203B208->unkBC); + sub_801CCD8(); + sub_801AD34(0); + sub_8012EA4(&gUnknown_203B208->unk58, 0); } void sub_80175FC(void) { - int index; + s32 index; + s32 loopMax; - s32 loopMax; - MemoryFill16(gUnknown_203B208->unk4C,0, sizeof(gUnknown_203B208->unk4C)); - loopMax = 0; - gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4958; - gUnknown_203B208->unk24[loopMax].menuAction = 2; - loopMax += 1; - gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4964; - gUnknown_203B208->unk24[loopMax].menuAction = 3; - loopMax += 1; - gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4970; - gUnknown_203B208->unk24[loopMax].menuAction = 6; - loopMax += 1; - gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4934; - gUnknown_203B208->unk24[loopMax].menuAction = 1; - loopMax += 1; - gUnknown_203B208->unk24[loopMax].text = NULL; - gUnknown_203B208->unk24[loopMax].menuAction = 1; + MemoryFill16(gUnknown_203B208->unk4C,0, sizeof(gUnknown_203B208->unk4C)); + loopMax = 0; + gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4958; + gUnknown_203B208->unk24[loopMax].menuAction = 2; - for(index = 0; index < loopMax; index++) - { - if(gUnknown_203B208->unk4C[index] == 0) - { - if(gUnknown_203B208->unk24[index].menuAction == gUnknown_203B208->menuAction1) - return; - } - } - for(index = 0; index < loopMax; index++) - { - if (gUnknown_203B208->unk4C[index] == 0) - { - gUnknown_203B208->menuAction1 = gUnknown_203B208->unk24[index].menuAction; - break; - } - } + loopMax += 1; + gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4964; + gUnknown_203B208->unk24[loopMax].menuAction = 3; + + loopMax += 1; + gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4970; + gUnknown_203B208->unk24[loopMax].menuAction = 6; + + loopMax += 1; + gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4934; + gUnknown_203B208->unk24[loopMax].menuAction = 1; + + loopMax += 1; + gUnknown_203B208->unk24[loopMax].text = NULL; + gUnknown_203B208->unk24[loopMax].menuAction = 1; + + for (index = 0; index < loopMax; index++) { + if (gUnknown_203B208->unk4C[index] == 0) { + if (gUnknown_203B208->unk24[index].menuAction == gUnknown_203B208->menuAction1) + return; + } + } + + for (index = 0; index < loopMax; index++) { + if (gUnknown_203B208->unk4C[index] == 0) { + gUnknown_203B208->menuAction1 = gUnknown_203B208->unk24[index].menuAction; + break; + } + } } void sub_80176B8(void) { - int index; - s32 loopMax; + s32 index; + s32 loopMax; - MemoryFill16(gUnknown_203B208->unk4C,0,sizeof(gUnknown_203B208->unk4C)); - loopMax = 0; - gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4958; - gUnknown_203B208->unk24[loopMax].menuAction = 2; - loopMax += 1; - gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4970; - gUnknown_203B208->unk24[loopMax].menuAction = 6; - loopMax += 1; - gUnknown_203B208->unk24[loopMax].text = NULL; - gUnknown_203B208->unk24[loopMax].menuAction = 1; + MemoryFill16(gUnknown_203B208->unk4C, 0, sizeof(gUnknown_203B208->unk4C)); + loopMax = 0; + gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4958; + gUnknown_203B208->unk24[loopMax].menuAction = 2; - for(index = 0; index < loopMax; index++) - { - if(gUnknown_203B208->unk4C[index] == 0) - { - if(gUnknown_203B208->unk24[index].menuAction == gUnknown_203B208->menuAction2) - return; - } - } - for(index = 0; index < loopMax; index++) - { - if (gUnknown_203B208->unk4C[index] == 0) - { - gUnknown_203B208->menuAction2 = gUnknown_203B208->unk24[index].menuAction; - break; - } - } + loopMax += 1; + gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4970; + gUnknown_203B208->unk24[loopMax].menuAction = 6; + + loopMax += 1; + gUnknown_203B208->unk24[loopMax].text = NULL; + gUnknown_203B208->unk24[loopMax].menuAction = 1; + + for (index = 0; index < loopMax; index++) { + if (gUnknown_203B208->unk4C[index] == 0) { + if (gUnknown_203B208->unk24[index].menuAction == gUnknown_203B208->menuAction2) + return; + } + } + + for (index = 0; index < loopMax; index++) { + if (gUnknown_203B208->unk4C[index] == 0) { + gUnknown_203B208->menuAction2 = gUnknown_203B208->unk24[index].menuAction; + break; + } + } } void sub_8017758(void) { - int index; - s32 loopMax; + s32 index; + s32 loopMax; - MemoryFill16(gUnknown_203B208->unk4C,0,sizeof(gUnknown_203B208->unk4C)); - loopMax = 0; - gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4964; - gUnknown_203B208->unk24[loopMax].menuAction = 3; - loopMax += 1; - gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4970; - gUnknown_203B208->unk24[loopMax].menuAction = 6; - loopMax += 1; - gUnknown_203B208->unk24[loopMax].text = NULL; - gUnknown_203B208->unk24[loopMax].menuAction = 1; + MemoryFill16(gUnknown_203B208->unk4C, 0, sizeof(gUnknown_203B208->unk4C)); + loopMax = 0; + gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4964; + gUnknown_203B208->unk24[loopMax].menuAction = 3; - for(index = 0; index < loopMax; index++) - { - if(gUnknown_203B208->unk4C[index] == 0) - { - if(gUnknown_203B208->unk24[index].menuAction == gUnknown_203B208->menuAction3) - return; - } - } - for(index = 0; index < loopMax; index++) - { - if (gUnknown_203B208->unk4C[index] == 0) - { - gUnknown_203B208->menuAction3 = gUnknown_203B208->unk24[index].menuAction; - break; - } - } + loopMax += 1; + gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4970; + gUnknown_203B208->unk24[loopMax].menuAction = 6; + + loopMax += 1; + gUnknown_203B208->unk24[loopMax].text = NULL; + gUnknown_203B208->unk24[loopMax].menuAction = 1; + + for (index = 0; index < loopMax; index++) { + if (gUnknown_203B208->unk4C[index] == 0) { + if (gUnknown_203B208->unk24[index].menuAction == gUnknown_203B208->menuAction3) + return; + } + } + + for (index = 0; index < loopMax; index++) { + if (gUnknown_203B208->unk4C[index] == 0) { + gUnknown_203B208->menuAction3 = gUnknown_203B208->unk24[index].menuAction; + break; + } + } } void sub_80177F8(void) @@ -559,9 +549,11 @@ void sub_80177F8(void) loopMax = 0; gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4920; gUnknown_203B208->unk24[loopMax].menuAction = 4; + loopMax += 1; gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4928; gUnknown_203B208->unk24[loopMax].menuAction = 5; + loopMax += 1; gUnknown_203B208->unk24[loopMax].text = NULL; gUnknown_203B208->unk24[loopMax].menuAction = 1; @@ -569,35 +561,30 @@ void sub_80177F8(void) void sub_8017828(void) { - s32 menuAction; + s32 menuAction; - if (sub_80144A4(&menuAction) == 0) { - if (menuAction != 1) { - gUnknown_203B208->menuAction1 = menuAction; - } - switch(menuAction) - { + if (sub_80144A4(&menuAction) != 0) + return; + + if (menuAction != 1) + gUnknown_203B208->menuAction1 = menuAction; + + switch (menuAction) { case 2: - if (GetNumberOfFilledInventorySlots() == 0) { + if (GetNumberOfFilledInventorySlots() == 0) UpdateKangaskhanStorageState(KANGASKHAN_STORAGE_NO_INV_ITEMS); - } - else if (sub_801CF50(0) != 0) { + else if (sub_801CF50(0) != 0) UpdateKangaskhanStorageState(8); - } - else { - UpdateKangaskhanStorageState(0xb); - } + else + UpdateKangaskhanStorageState(11); break; case 3: - if (sub_801CF14(1) != 0) { + if (sub_801CF14(1) != 0) UpdateKangaskhanStorageState(7); - } - else if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) { + else if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) UpdateKangaskhanStorageState(KANGASKHAN_STORAGE_TOO_MANY_ITEMS); - } - else { - UpdateKangaskhanStorageState(0x14); - } + else + UpdateKangaskhanStorageState(20); break; case 6: UpdateKangaskhanStorageState(2); @@ -606,148 +593,137 @@ void sub_8017828(void) UpdateKangaskhanStorageState(3); break; } - } } void sub_80178D0(void) { - s32 menuAction; - - if (sub_80144A4(&menuAction) == 0) { - switch(menuAction) - { - case 4: - MoveToStorage(&gUnknown_203B208->storedItem); - ShiftItemsDownFrom(gUnknown_203B208->itemIndex); - FillInventoryGaps(); - UpdateKangaskhanStorageState(0x13); - break; - case 1: - case 5: - UpdateKangaskhanStorageState(0xe); - break; + s32 menuAction; + + if (sub_80144A4(&menuAction) != 0) + return; + + switch (menuAction) { + case 4: + MoveToStorage(&gUnknown_203B208->storedItem); + ShiftItemsDownFrom(gUnknown_203B208->itemIndex); + FillInventoryGaps(); + UpdateKangaskhanStorageState(19); + break; + case 1: + case 5: + UpdateKangaskhanStorageState(14); + break; } - } } void sub_8017928(void) { - int menuAction; - struct BulkItem item; - - if (sub_80144A4(&menuAction) == 0) { - switch(menuAction) - { + s32 menuAction; + struct BulkItem item; + + if (sub_80144A4(&menuAction) != 0) + return; + + switch (menuAction) { case 4: gTeamInventory_203B460->teamStorage[gUnknown_203B208->storedItem.id] -= gUnknown_203B208->storedItem.quantity; item.id = gUnknown_203B208->storedItem.id; item.quantity = gUnknown_203B208->storedItem.quantity; AddHeldItemToInventory(&item); - UpdateKangaskhanStorageState(0x1d); + UpdateKangaskhanStorageState(29); break; case 1: case 5: - UpdateKangaskhanStorageState(0x17); + UpdateKangaskhanStorageState(23); break; } - } } void sub_80179A8(void) { - s32 index; - s32 menuAction; - - if (sub_80144A4(&menuAction) == 0) { - switch(menuAction) - { - case 4: - for(index = 0; index < INVENTORY_SIZE; index++) - { - if (sub_801AED0(index) != 0) { - MoveToStorage(&gTeamInventory_203B460->teamItems[index]); - gTeamInventory_203B460->teamItems[index].id = 0; - gTeamInventory_203B460->teamItems[index].flags = 0; - } - } - FillInventoryGaps(); - sub_801AE84(); - UpdateKangaskhanStorageState(0x13); - break; - case 1: - case 5: - UpdateKangaskhanStorageState(0xe); - break; + s32 index; + s32 menuAction; + + if (sub_80144A4(&menuAction) != 0) + return; + + switch (menuAction) { + case 4: + for (index = 0; index < INVENTORY_SIZE; index++) { + if (sub_801AED0(index) != 0) { + MoveToStorage(&gTeamInventory_203B460->teamItems[index]); + gTeamInventory_203B460->teamItems[index].id = 0; + gTeamInventory_203B460->teamItems[index].flags = 0; + } + } + + FillInventoryGaps(); + sub_801AE84(); + UpdateKangaskhanStorageState(19); + break; + case 1: + case 5: + UpdateKangaskhanStorageState(14); + break; } - } } void sub_8017A1C(void) { - s32 itemID; - int menuAction; - struct BulkItem item; - - if (sub_80144A4(&menuAction) == 0) { + s32 itemID; + int menuAction; + struct BulkItem item; - switch(menuAction) - { + if (sub_80144A4(&menuAction) != 0) + return; + + switch (menuAction) { case 4: - for(itemID = 0; itemID < NUMBER_OF_ITEM_IDS; itemID++) - { - if(sub_801CFE0(itemID) != 0) - { + for (itemID = 0; itemID < NUMBER_OF_ITEM_IDS; itemID++) { + if (sub_801CFE0(itemID) != 0) { item.id = itemID; - if(IsThrowableItem(item.id)) - if(gTeamInventory_203B460->teamStorage[item.id] > 0x63) - { - item.quantity = 0x63; - } + if (IsThrowableItem(item.id)) { + if (gTeamInventory_203B460->teamStorage[item.id] > 99) + item.quantity = 99; else - { item.quantity = gTeamInventory_203B460->teamStorage[item.id]; - } - else - { - item.quantity = 1; } + else + item.quantity = 1; gTeamInventory_203B460->teamStorage[item.id] -= item.quantity; AddHeldItemToInventory(&item); } } + FillInventoryGaps(); sub_801CF94(); - UpdateKangaskhanStorageState(0x1d); + UpdateKangaskhanStorageState(29); break; case 1: case 5: - UpdateKangaskhanStorageState(0x17); + UpdateKangaskhanStorageState(23); break; } - } } void sub_8017AF8(void) { - switch(sub_801A6E8(TRUE)) - { + switch (sub_801A6E8(TRUE)) { case 3: - if(sub_801AEA8() != 0) - { + if (sub_801AEA8() != 0) { sub_8099690(0); - UpdateKangaskhanStorageState(0x12); + UpdateKangaskhanStorageState(18); } - else - { + else { gUnknown_203B208->itemIndex = sub_801A8AC(); gUnknown_203B208->storedItem = gTeamInventory_203B460->teamItems[gUnknown_203B208->itemIndex]; - UpdateKangaskhanStorageState(0xF); + UpdateKangaskhanStorageState(15); } break; case 4: gUnknown_203B208->itemIndex = sub_801A8AC(); gUnknown_203B208->storedItem = gTeamInventory_203B460->teamItems[gUnknown_203B208->itemIndex]; - UpdateKangaskhanStorageState(0x10); + UpdateKangaskhanStorageState(16); break; case 2: sub_801A928(); @@ -758,25 +734,22 @@ void sub_8017AF8(void) void sub_8017B88(void) { - switch(sub_801CA08(1)) - { + switch (sub_801CA08(1)) { case 3: - if(sub_801CFB8() != 0){ - UpdateKangaskhanStorageState(0x1C); - } - else - { + if (sub_801CFB8() != 0) + UpdateKangaskhanStorageState(28); + else { gUnknown_203B208->id = sub_801CB24(); xxx_init_itemslot_8090A8C(&gUnknown_203B208->storedItem, gUnknown_203B208->id, 0); gUnknown_203B208->storedItem.quantity = 1; - UpdateKangaskhanStorageState(0x19); + UpdateKangaskhanStorageState(25); } break; case 4: gUnknown_203B208->id = sub_801CB24(); xxx_init_itemslot_8090A8C(&gUnknown_203B208->storedItem, gUnknown_203B208->id, 0); gUnknown_203B208->storedItem.quantity = 1; - UpdateKangaskhanStorageState(0x1A); + UpdateKangaskhanStorageState(26); break; case 2: sub_801CBB8(); @@ -792,17 +765,17 @@ void sub_8017C28(void) { sub_801CA08(0); sub_8012FD8(&gUnknown_203B208->unk58); - switch(sub_8013BBC(&gUnknown_203B208->unkA8)) - { + + switch (sub_8013BBC(&gUnknown_203B208->unkA8)) { case 1: sub_8017598(); break; case 3: gUnknown_203B208->storedItem.quantity = gUnknown_203B208->unkA8; - UpdateKangaskhanStorageState(0x1B); + UpdateKangaskhanStorageState(27); break; case 2: - UpdateKangaskhanStorageState(0x17); + UpdateKangaskhanStorageState(23); break; case 0: default: @@ -814,30 +787,31 @@ void sub_8017C7C(void) { s32 menuAction; menuAction = 0; + sub_801A6E8(FALSE); if (sub_8012FD8(&gUnknown_203B208->unk58) == 0) { sub_8013114(&gUnknown_203B208->unk58, &menuAction); - if(menuAction != 1) gUnknown_203B208->menuAction2 = menuAction; + if (menuAction != 1) + gUnknown_203B208->menuAction2 = menuAction; } - switch(menuAction) - { - case 2: - sub_8099690(0); - if(!IsNotMoneyOrUsedTMItem(gUnknown_203B208->storedItem.id)) - UpdateKangaskhanStorageState(KANGASKHAN_STORAGE_IS_MONEY_USED_TM); - else if(!sub_801ADA0(gUnknown_203B208->itemIndex)) - UpdateKangaskhanStorageState(0xA); - else - UpdateKangaskhanStorageState(0x11); - break; - case 6: - sub_8099690(0); - UpdateKangaskhanStorageState(0x10); - break; - case 1: - UpdateKangaskhanStorageState(0xE); + switch (menuAction) { + case 2: + sub_8099690(0); + if (!IsNotMoneyOrUsedTMItem(gUnknown_203B208->storedItem.id)) + UpdateKangaskhanStorageState(KANGASKHAN_STORAGE_IS_MONEY_USED_TM); + else if(!sub_801ADA0(gUnknown_203B208->itemIndex)) + UpdateKangaskhanStorageState(10); + else + UpdateKangaskhanStorageState(17); break; + case 6: + sub_8099690(0); + UpdateKangaskhanStorageState(16); + break; + case 1: + UpdateKangaskhanStorageState(14); + break; } } @@ -845,38 +819,37 @@ void sub_8017D24(void) { s32 menuAction; menuAction = 0; + sub_801CA08(0); if (sub_8012FD8(&gUnknown_203B208->unk58) == 0) { sub_8013114(&gUnknown_203B208->unk58, &menuAction); - if(menuAction != 1) gUnknown_203B208->menuAction3 = menuAction; + if (menuAction != 1) + gUnknown_203B208->menuAction3 = menuAction; } - switch(menuAction) - { - case 3: - if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) - { - sub_801CBB8(); - UpdateKangaskhanStorageState(KANGASKHAN_STORAGE_TOO_MANY_ITEMS); - } - else if(IsThrowableItem(gUnknown_203B208->storedItem.id)) - UpdateKangaskhanStorageState(0x18); - else - UpdateKangaskhanStorageState(0x1B); - break; - case 6: - UpdateKangaskhanStorageState(0x1A); - break; - case 1: - UpdateKangaskhanStorageState(0x17); - break; + switch (menuAction) { + case 3: + if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) { + sub_801CBB8(); + UpdateKangaskhanStorageState(KANGASKHAN_STORAGE_TOO_MANY_ITEMS); + } + else if (IsThrowableItem(gUnknown_203B208->storedItem.id)) + UpdateKangaskhanStorageState(24); + else + UpdateKangaskhanStorageState(27); + break; + case 6: + UpdateKangaskhanStorageState(26); + break; + case 1: + UpdateKangaskhanStorageState(23); + break; } } void sub_8017DC0(void) { - switch(sub_801B410()) - { + switch (sub_801B410()) { case 0: case 1: default: @@ -884,15 +857,14 @@ void sub_8017DC0(void) case 2: case 3: sub_801B450(); - UpdateKangaskhanStorageState(0xE); + UpdateKangaskhanStorageState(14); break; } } void sub_8017DDC(void) { - switch(sub_801B410()) - { + switch (sub_801B410()) { case 0: case 1: default: @@ -900,7 +872,7 @@ void sub_8017DDC(void) case 2: case 3: sub_801B450(); - UpdateKangaskhanStorageState(0x17); + UpdateKangaskhanStorageState(23); break; } } @@ -908,10 +880,8 @@ void sub_8017DDC(void) void AdvanceToKangaskhanStorageFallbackState(void) { s32 temp; - if(sub_80144A4(&temp) == 0) - { + if (sub_80144A4(&temp) == 0) UpdateKangaskhanStorageState(gUnknown_203B208->fallbackState); - } } u32 sub_8017E1C(void) @@ -928,47 +898,45 @@ u32 sub_8017E1C(void) u32 sub_8017E54(void) { - switch(gUnknown_203B20C->state) - { - case 0: - sub_8017F10(1); - break; - case 1: - sub_8018588(); - break; - case 4: - case 5: - sub_8018620(); - break; - case 6: - sub_8018904(); - break; - case 7: - sub_8018AC8(); - break; - case 10: - case 11: - sub_80186F8(); - break; - case 12: - sub_8018854(); - break; - case 13: - sub_80189C8(); - break; - case 14: - sub_8018AE4(); - break; - case 3: - return 3; - } - return 0; + switch (gUnknown_203B20C->state) { + case 0: + sub_8017F10(1); + break; + case 1: + sub_8018588(); + break; + case 4: + case 5: + sub_8018620(); + break; + case 6: + sub_8018904(); + break; + case 7: + sub_8018AC8(); + break; + case 10: + case 11: + sub_80186F8(); + break; + case 12: + sub_8018854(); + break; + case 13: + sub_80189C8(); + break; + case 14: + sub_8018AE4(); + break; + case 3: + return 3; + } + return 0; } void sub_8017EF4(void) { - if(gUnknown_203B20C != NULL) - { + if (gUnknown_203B20C != NULL) { MemoryFree(gUnknown_203B20C); gUnknown_203B20C = NULL; } @@ -987,8 +955,7 @@ void sub_8017F28(void) sub_8006518(gUnknown_203B20C->unkF0); - switch(gUnknown_203B20C->state) - { + switch (gUnknown_203B20C->state) { case 1: gUnknown_203B20C->unkF0[0] = gUnknown_80DB7B8; gUnknown_203B20C->unkF0[1] = gUnknown_80DB7B8; @@ -1020,10 +987,8 @@ void sub_8017F28(void) break; default: case 0: - for(index = 0; index < 4; index++) - { + for (index = 0; index < 4; index++) gUnknown_203B20C->unkF0[index] = gUnknown_80DB7B8; - } break; } ResetUnusedInputStruct(); @@ -1032,14 +997,12 @@ void sub_8017F28(void) void sub_8018100(void) { - - switch(gUnknown_203B20C->state) - { + switch (gUnknown_203B20C->state) { case 1: sub_8012D60(&gUnknown_203B20C->unk70, gUnknown_203B20C->unk20, 0, gUnknown_203B20C->unk60, gUnknown_203B20C->menuAction1, 2); break; case 4: - sub_801A5D8(3, 3, 0, 0xA); + sub_801A5D8(3, 3, 0, 10); break; case 5: sub_801A8D0(1); @@ -1053,7 +1016,7 @@ void sub_8018100(void) sub_801B3C0(&gUnknown_203B20C->item); break; case 10: - sub_801C8C4(1, 3, 0, 0xA); + sub_801C8C4(1, 3, 0, 10); sub_801AD34(0); break; case 11: @@ -1063,15 +1026,17 @@ void sub_8018100(void) case 12: gUnknown_203B20C->unkD0 = 2; gUnknown_203B20C->unkC8 = 1; - if(gTeamInventory_203B460->teamStorage[gUnknown_203B20C->item.id] > 99) + + if (gTeamInventory_203B460->teamStorage[gUnknown_203B20C->item.id] > 99) gUnknown_203B20C->unkCC = 99; else gUnknown_203B20C->unkCC = gTeamInventory_203B460->teamStorage[gUnknown_203B20C->item.id]; + gUnknown_203B20C->unkC4 = gUnknown_203B20C->unkCC; gUnknown_203B20C->unkD4 = 1; gUnknown_203B20C->unkD8 = &gUnknown_203B20C->unkF0[1]; - gUnknown_203B20C->unkDC = 0x28; - gUnknown_203B20C->unkE0 = 0x12; + gUnknown_203B20C->unkDC = 40; + gUnknown_203B20C->unkE0 = 18; sub_8013AA0(&gUnknown_203B20C->unkC0); sub_8018280(); break; @@ -1099,121 +1064,121 @@ void sub_8018280(void) sub_80073E0(gUnknown_203B20C->unkD4); sub_801CCD8(); sub_801AD34(0); - sub_8012EA4(&gUnknown_203B20C->unk70,0); + sub_8012EA4(&gUnknown_203B20C->unk70, 0); } void sub_80182E4(void) { - int index; - s32 loopMax; + int index; + s32 loopMax; - loopMax = 0; - MemoryFill16(gUnknown_203B20C->unk60,0,sizeof(gUnknown_203B20C->unk60)); - gUnknown_203B20C->unk20[0].text = *gUnknown_80D4958; - gUnknown_203B20C->unk20[0].menuAction = 2; - if ((GetNumberOfFilledInventorySlots() == 0) || (sub_801CF50(0) != 0)) { - gUnknown_203B20C->unk60[0] = 1; - } - loopMax += 1; - gUnknown_203B20C->unk20[loopMax].text = *gUnknown_80D4964; - gUnknown_203B20C->unk20[loopMax].menuAction = 3; - if ((sub_801CF14(1) != 0) || (INVENTORY_SIZE <= GetNumberOfFilledInventorySlots())) { - gUnknown_203B20C->unk60[loopMax] = 1; - } - loopMax += 1; - gUnknown_203B20C->unk20[loopMax].text = *gUnknown_80D4934; - gUnknown_203B20C->unk20[loopMax].menuAction = 1; - loopMax += 1; - gUnknown_203B20C->unk20[loopMax].text = NULL; - gUnknown_203B20C->unk20[loopMax].menuAction = 1; + loopMax = 0; + MemoryFill16(gUnknown_203B20C->unk60, 0, sizeof(gUnknown_203B20C->unk60)); + gUnknown_203B20C->unk20[0].text = *gUnknown_80D4958; + gUnknown_203B20C->unk20[0].menuAction = 2; - for(index = 0; index < loopMax; index++) - { - if (gUnknown_203B20C->unk60[index] == 0) { - if(gUnknown_203B20C->unk20[index].menuAction == gUnknown_203B20C->menuAction1) - return; - } - } + if (GetNumberOfFilledInventorySlots() == 0 || sub_801CF50(0) != 0) + gUnknown_203B20C->unk60[0] = 1; - for(index = 0; index < loopMax; index++) - { - if (gUnknown_203B20C->unk60[index] == 0) { - gUnknown_203B20C->menuAction1 = gUnknown_203B20C->unk20[index].menuAction; - break; - } - } + loopMax += 1; + gUnknown_203B20C->unk20[loopMax].text = *gUnknown_80D4964; + gUnknown_203B20C->unk20[loopMax].menuAction = 3; + + if (sub_801CF14(1) != 0 || INVENTORY_SIZE <= GetNumberOfFilledInventorySlots()) + gUnknown_203B20C->unk60[loopMax] = 1; + + loopMax += 1; + gUnknown_203B20C->unk20[loopMax].text = *gUnknown_80D4934; + gUnknown_203B20C->unk20[loopMax].menuAction = 1; + + loopMax += 1; + gUnknown_203B20C->unk20[loopMax].text = NULL; + gUnknown_203B20C->unk20[loopMax].menuAction = 1; + + for (index = 0; index < loopMax; index++) { + if (gUnknown_203B20C->unk60[index] == 0) { + if (gUnknown_203B20C->unk20[index].menuAction == gUnknown_203B20C->menuAction1) + return; + } + } + + for (index = 0; index < loopMax; index++) { + if (gUnknown_203B20C->unk60[index] == 0) { + gUnknown_203B20C->menuAction1 = gUnknown_203B20C->unk20[index].menuAction; + break; + } + } } void sub_801841C(void) { - int index; - s32 loopMax; + int index; + s32 loopMax; - loopMax = 0; - MemoryFill16(gUnknown_203B20C->unk60,0,sizeof(gUnknown_203B20C->unk60)); - gUnknown_203B20C->unk20[0].text = *gUnknown_80D4958; - gUnknown_203B20C->unk20[0].menuAction = 2; - if (!sub_801ADA0(gUnknown_203B20C->itemIndex)) { - gUnknown_203B20C->unk60[0] = 1; - } - loopMax += 1; - gUnknown_203B20C->unk20[loopMax].text = *gUnknown_80D4970; - gUnknown_203B20C->unk20[loopMax].menuAction = 4; - loopMax += 1; - gUnknown_203B20C->unk20[loopMax].text = NULL; - gUnknown_203B20C->unk20[loopMax].menuAction = 1; + loopMax = 0; + MemoryFill16(gUnknown_203B20C->unk60,0,sizeof(gUnknown_203B20C->unk60)); + gUnknown_203B20C->unk20[0].text = *gUnknown_80D4958; + gUnknown_203B20C->unk20[0].menuAction = 2; + if (!sub_801ADA0(gUnknown_203B20C->itemIndex)) + gUnknown_203B20C->unk60[0] = 1; - for(index = 0; index < loopMax; index++) - { - if (gUnknown_203B20C->unk60[index] == 0) { - if(gUnknown_203B20C->unk20[index].menuAction == gUnknown_203B20C->menuAction2) - return; - } - } + loopMax += 1; + gUnknown_203B20C->unk20[loopMax].text = *gUnknown_80D4970; + gUnknown_203B20C->unk20[loopMax].menuAction = 4; - for(index = 0; index < loopMax; index++) - { - if (gUnknown_203B20C->unk60[index] == 0) { - gUnknown_203B20C->menuAction2 = gUnknown_203B20C->unk20[index].menuAction; - break; - } - } + loopMax += 1; + gUnknown_203B20C->unk20[loopMax].text = NULL; + gUnknown_203B20C->unk20[loopMax].menuAction = 1; + + for (index = 0; index < loopMax; index++) { + if (gUnknown_203B20C->unk60[index] == 0) { + if (gUnknown_203B20C->unk20[index].menuAction == gUnknown_203B20C->menuAction2) + return; + } + } + + for (index = 0; index < loopMax; index++) { + if (gUnknown_203B20C->unk60[index] == 0) { + gUnknown_203B20C->menuAction2 = gUnknown_203B20C->unk20[index].menuAction; + break; + } + } } void sub_80184D4(void) { - int index; - s32 loopMax; + int index; + s32 loopMax; - loopMax = 0; - MemoryFill16(gUnknown_203B20C->unk60,0,sizeof(gUnknown_203B20C->unk60)); - gUnknown_203B20C->unk20[0].text = *gUnknown_80D4964; - gUnknown_203B20C->unk20[0].menuAction = 3; - if ((GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE)) { - gUnknown_203B20C->unk60[0] = 1; - } - loopMax += 1; - gUnknown_203B20C->unk20[loopMax].text = *gUnknown_80D4970; - gUnknown_203B20C->unk20[loopMax].menuAction = 4; - loopMax += 1; - gUnknown_203B20C->unk20[loopMax].text = NULL; - gUnknown_203B20C->unk20[loopMax].menuAction = 1; + loopMax = 0; + MemoryFill16(gUnknown_203B20C->unk60, 0, sizeof(gUnknown_203B20C->unk60)); + gUnknown_203B20C->unk20[0].text = *gUnknown_80D4964; + gUnknown_203B20C->unk20[0].menuAction = 3; - for(index = 0; index < loopMax; index++) - { - if (gUnknown_203B20C->unk60[index] == 0) { - if(gUnknown_203B20C->unk20[index].menuAction == gUnknown_203B20C->menuAction3) - return; - } - } + if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) + gUnknown_203B20C->unk60[0] = 1; - for(index = 0; index < loopMax; index++) - { - if (gUnknown_203B20C->unk60[index] == 0) { - gUnknown_203B20C->menuAction3 = gUnknown_203B20C->unk20[index].menuAction; - break; - } - } + loopMax += 1; + gUnknown_203B20C->unk20[loopMax].text = *gUnknown_80D4970; + gUnknown_203B20C->unk20[loopMax].menuAction = 4; + + loopMax += 1; + gUnknown_203B20C->unk20[loopMax].text = NULL; + gUnknown_203B20C->unk20[loopMax].menuAction = 1; + + for (index = 0; index < loopMax; index++) { + if (gUnknown_203B20C->unk60[index] == 0) { + if (gUnknown_203B20C->unk20[index].menuAction == gUnknown_203B20C->menuAction3) + return; + } + } + + for (index = 0; index < loopMax; index++) { + if (gUnknown_203B20C->unk60[index] == 0) { + gUnknown_203B20C->menuAction3 = gUnknown_203B20C->unk20[index].menuAction; + break; + } + } } void sub_8018588(void) @@ -1221,25 +1186,24 @@ void sub_8018588(void) s32 menuAction; menuAction = 0; - if(sub_8012FD8(&gUnknown_203B20C->unk70) == 0) - { + if (sub_8012FD8(&gUnknown_203B20C->unk70) == 0) { sub_8013114(&gUnknown_203B20C->unk70, &menuAction); - if(menuAction != 1) gUnknown_203B20C->menuAction1 = menuAction; + if (menuAction != 1) + gUnknown_203B20C->menuAction1 = menuAction; } - switch(menuAction) - { + switch (menuAction) { case 2: - if((GetNumberOfFilledInventorySlots() != 0) && sub_801CF50(0) == 0) + if (GetNumberOfFilledInventorySlots() != 0 && sub_801CF50(0) == 0) sub_8017F10(4); else - sub_8012EA4(&gUnknown_203B20C->unk70, 1);; + sub_8012EA4(&gUnknown_203B20C->unk70, 1); break; case 3: - if(sub_801CF14(1) != 0) + if (sub_801CF14(1) != 0) sub_8012EA4(&gUnknown_203B20C->unk70, 1); else - sub_8017F10(0xA); + sub_8017F10(10); break; case 1: sub_8017F10(3); @@ -1250,34 +1214,29 @@ void sub_8018588(void) void sub_8018620(void) { s32 index; - switch(sub_801A6E8(TRUE)) - { + + switch (sub_801A6E8(TRUE)) { case 3: - if(sub_801AEA8() != 0) - { - for(index = 0; index < INVENTORY_SIZE; index++) - { - if(sub_801AED0(index) != 0) - { + if (sub_801AEA8() != 0) { + for (index = 0; index < INVENTORY_SIZE; index++) { + if (sub_801AED0(index) != 0) { MoveToStorage(&gTeamInventory_203B460->teamItems[index]); gTeamInventory_203B460->teamItems[index].id = 0; gTeamInventory_203B460->teamItems[index].flags = 0; } } + FillInventoryGaps(); sub_801AE84(); - if(GetNumberOfFilledInventorySlots() == 0) - { + + if (GetNumberOfFilledInventorySlots() == 0) { sub_801A928(); sub_8017F10(1); } else - { sub_8017F10(5); - } } - else - { + else { gUnknown_203B20C->itemIndex = sub_801A8AC(); gUnknown_203B20C->item = gTeamInventory_203B460->teamItems[gUnknown_203B20C->itemIndex]; sub_8017F10(6); @@ -1300,56 +1259,49 @@ void sub_80186F8(void) struct BulkItem item; s32 itemID; - switch(sub_801CA08(1)) - { + switch (sub_801CA08(1)) { case 3: - if(sub_801CFB8() != 0) - { - for(itemID = 0; itemID < NUMBER_OF_ITEM_IDS; itemID++) - { - if(sub_801CFE0(itemID) != 0) - { + if (sub_801CFB8() != 0) { + for (itemID = 0; itemID < NUMBER_OF_ITEM_IDS; itemID++) { + if (sub_801CFE0(itemID) != 0) { item.id = itemID; - if(IsThrowableItem(item.id)) - if(gTeamInventory_203B460->teamStorage[item.id] > 0x63) - { - item.quantity = 0x63; - } + + if (IsThrowableItem(item.id)) { + if (gTeamInventory_203B460->teamStorage[item.id] > 99) + item.quantity = 99; else - { item.quantity = gTeamInventory_203B460->teamStorage[item.id]; - } - else - { - item.quantity = 1; } + else + item.quantity = 1; + gTeamInventory_203B460->teamStorage[item.id] -= item.quantity; AddHeldItemToInventory(&item); } } + FillInventoryGaps(); sub_801CF94(); - if((sub_801CF14(1) == 0) && (GetNumberOfFilledInventorySlots() < INVENTORY_SIZE)) - sub_8017F10(0xB); - else - { + + if (sub_801CF14(1) == 0 && GetNumberOfFilledInventorySlots() < INVENTORY_SIZE) + sub_8017F10(11); + else { sub_801CBB8(); sub_8017F10(1); } } - else - { + else { gUnknown_203B20C->id = sub_801CB24(); xxx_init_itemslot_8090A8C(&gUnknown_203B20C->item, gUnknown_203B20C->id, 0); gUnknown_203B20C->item.quantity = 1; - sub_8017F10(0xD); + sub_8017F10(13); } break; case 4: gUnknown_203B20C->id = sub_801CB24(); xxx_init_itemslot_8090A8C(&gUnknown_203B20C->item, gUnknown_203B20C->id, 0); gUnknown_203B20C->item.quantity = 1; - sub_8017F10(0xE); + sub_8017F10(14); break; case 2: sub_801CBB8(); @@ -1368,28 +1320,28 @@ void sub_8018854(void) sub_801CA08(0); sub_8012FD8(&gUnknown_203B20C->unk70); - switch(sub_8013BBC(&gUnknown_203B20C->unkC0)) - { + switch (sub_8013BBC(&gUnknown_203B20C->unkC0)) { case 3: gUnknown_203B20C->item.quantity = gUnknown_203B20C->unkC0; gTeamInventory_203B460->teamStorage[gUnknown_203B20C->item.id] -= gUnknown_203B20C->item.quantity; item.id = gUnknown_203B20C->item.id; item.quantity = gUnknown_203B20C->item.quantity; AddHeldItemToInventory(&item); - if(sub_801CF14(1) == 0) - if(GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) - { - error: - sub_801CBB8(); - sub_8017F10(0x1); + + if (sub_801CF14(1) == 0) { + if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) { + error: + sub_801CBB8(); + sub_8017F10(1); } else - sub_8017F10(0xB); + sub_8017F10(11); + } else goto error; break; case 2: - sub_8017F10(0xB); + sub_8017F10(11); break; case 1: sub_8018280(); @@ -1406,31 +1358,32 @@ void sub_8018904(void) menuAction = 0; sub_801A6E8(FALSE); - if(sub_8012FD8(&gUnknown_203B20C->unk70) == 0) - { + if (sub_8012FD8(&gUnknown_203B20C->unk70) == 0) { sub_8013114(&gUnknown_203B20C->unk70, &menuAction); - if(menuAction != 1) gUnknown_203B20C->menuAction2 = menuAction; + if (menuAction != 1) + gUnknown_203B20C->menuAction2 = menuAction; } - switch(menuAction) - { + + switch (menuAction) { case 2: - if(IsNotMoneyOrUsedTMItem(gUnknown_203B20C->item.id)) - if(sub_801ADA0(gUnknown_203B20C->itemIndex) == 0) - error: + if (IsNotMoneyOrUsedTMItem(gUnknown_203B20C->item.id)) { + if (sub_801ADA0(gUnknown_203B20C->itemIndex) == 0) { + error: sub_8012EA4(&gUnknown_203B20C->unk70, 1); - else - { + } + else { MoveToStorage(&gUnknown_203B20C->item); ShiftItemsDownFrom(gUnknown_203B20C->itemIndex); FillInventoryGaps(); - if(GetNumberOfFilledInventorySlots() == 0) - { + + if (GetNumberOfFilledInventorySlots() == 0) { sub_801A928(); sub_8017F10(1); } else sub_8017F10(5); } + } else goto error; break; @@ -1452,56 +1405,54 @@ void sub_80189C8(void) menuAction = 0; sub_801CA08(0); - if(sub_8012FD8(&gUnknown_203B20C->unk70) == 0) - { + if (sub_8012FD8(&gUnknown_203B20C->unk70) == 0) { sub_8013114(&gUnknown_203B20C->unk70, &menuAction); - if(menuAction != 1) gUnknown_203B20C->menuAction3 = menuAction; + if (menuAction != 1) + gUnknown_203B20C->menuAction3 = menuAction; } - switch(menuAction) - { + + switch (menuAction) { case 3: - if(GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) + if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) sub_8012EA4(&gUnknown_203B20C->unk70, 1); - else if(IsThrowableItem(gUnknown_203B20C->item.id)) - sub_8017F10(0xC); - else - { + else if (IsThrowableItem(gUnknown_203B20C->item.id)) + sub_8017F10(12); + else { gTeamInventory_203B460->teamStorage[gUnknown_203B20C->item.id] -= gUnknown_203B20C->item.quantity; item.id = gUnknown_203B20C->item.id; item.quantity = gUnknown_203B20C->item.quantity; AddHeldItemToInventory(&item); - if(sub_801CF14(1) == 0) - if(GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) + + if (sub_801CF14(1) == 0) { + if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) { - error: - sub_801CBB8(); - sub_8017F10(1); + error: + sub_801CBB8(); + sub_8017F10(1); } else - { - sub_8017F10(0xB); - } + sub_8017F10(11); + } else goto error; } break; case 4: - sub_8017F10(0xE); + sub_8017F10(14); break; case 1: - sub_8017F10(0xB); + sub_8017F10(11); break; } } void sub_8018AC8(void) { - switch(sub_801B410()) - { + switch (sub_801B410()) { case 2: case 3: sub_801B450(); - sub_8017F10(0x5); + sub_8017F10(5); break; case 0: case 1: @@ -1512,17 +1463,15 @@ void sub_8018AC8(void) void sub_8018AE4(void) { - switch(sub_801B410()) - { + switch (sub_801B410()) { case 2: case 3: sub_801B450(); - sub_8017F10(0xB); + sub_8017F10(11); break; case 0: case 1: default: break; } -} - +} \ No newline at end of file From 417eb19802c0d05c12970169d5165bb7d1e601cb Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sat, 5 Aug 2023 12:56:50 -0400 Subject: [PATCH 10/16] Clean Kangaskhan 2/2 --- asm/code_8098BDC.s | 2 +- data/data_8115F5C.s | 4 +- include/kangaskhan_storage.h | 5 +- include/kecleon_bros.h | 1 + src/code_801B3C0.c | 11 +- src/code_801C620.c | 30 +- src/code_8023144.c | 1 - src/friend_area_action_menu_1.c | 1 - src/friend_list_menu.c | 1 - src/kangaskhan_storage.c | 565 ++++++++++++++++---------------- src/luminous_cave.c | 1 - src/party_list_menu.c | 1 - 12 files changed, 308 insertions(+), 315 deletions(-) diff --git a/asm/code_8098BDC.s b/asm/code_8098BDC.s index 402d2f88e..c9207e39e 100644 --- a/asm/code_8098BDC.s +++ b/asm/code_8098BDC.s @@ -5573,7 +5573,7 @@ _0809BC26: lsrs r4, 31 bl sub_809B294 adds r0, r4, 0 - bl CreateKangaskhanStorage + bl KangaskhanStorage_New lsls r0, 24 cmp r0, 0 beq _0809BC5C diff --git a/data/data_8115F5C.s b/data/data_8115F5C.s index 819b6a662..baa767e32 100644 --- a/data/data_8115F5C.s +++ b/data/data_8115F5C.s @@ -133,8 +133,8 @@ gUnknown_81161B8: @ 81161B8 gUnknown_81161C8: @ 81161C8 .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 - .4byte sub_8016E40 - .4byte sub_8016D54 + .4byte KangaskhanStorage_Delete + .4byte KangaskhanStorage_Callback .global gUnknown_81161D8 gUnknown_81161D8: @ 81161D8 diff --git a/include/kangaskhan_storage.h b/include/kangaskhan_storage.h index 0309d9ce3..21a65b123 100644 --- a/include/kangaskhan_storage.h +++ b/include/kangaskhan_storage.h @@ -7,7 +7,7 @@ #include "text.h" // size: 0x14C -struct unkStruct_203B208 +struct KangaskhanStorageWork { /* 0x0 */ bool32 isAsleep; /* 0x4 */ u32 currState; @@ -81,4 +81,7 @@ enum KangaskhanStorageStates KANGASKHAN_STORAGE_IS_MONEY_USED_TM = 9, }; +u32 KangaskhanStorage_Callback(void); +u32 KangaskhanStorage_New(bool32 isAsleep); + #endif diff --git a/include/kecleon_bros.h b/include/kecleon_bros.h index 72e7f2c14..4e029df15 100644 --- a/include/kecleon_bros.h +++ b/include/kecleon_bros.h @@ -88,6 +88,7 @@ void KecleonBros_Delete(void); u32 KecleonBros_New(u32 mode); bool32 sub_801A5D8(u32, s32, struct UnkTextStruct2_sub *, u32); +u32 sub_801A6E8(bool8); s32 sub_801A8AC(void); void sub_801A8D0(u8); void sub_801A928(void); diff --git a/src/code_801B3C0.c b/src/code_801B3C0.c index 036646ccf..cd51d8bdf 100644 --- a/src/code_801B3C0.c +++ b/src/code_801B3C0.c @@ -73,7 +73,6 @@ extern u8 *gUnknown_80D4920[]; extern u8 *gUnknown_80D4928[]; extern s32 sub_80144A4(s32 *); -extern u32 sub_801A6E8(bool8); extern void sub_8099690(u32); extern struct UnkTextStruct2 gUnknown_80DBA58; @@ -91,8 +90,6 @@ extern void PlayMenuSoundEffect(u32); extern void sub_8013F84(void); extern s32 sub_80913E0(struct Item *, u32, struct subStruct_203B240 **); extern void sub_80141B4(u8 *, u32, u32 *, u32); -extern void sub_801BB20(void); -extern void sub_801BC24(void); extern void sub_8014248(const char *, u32, u32, struct MenuItem *, u32, u32, u32, u32, u32); extern void sub_80140B4(struct UnkTextStruct2 *); extern void sub_801B46C(u32); @@ -111,9 +108,11 @@ extern void sub_800199C(u32, u32, u32, u32); extern void PlaySound(u32); extern s32 sub_808D544(u32); -void sub_801B51C(); -void sub_801B590(); -void sub_801B480(); +void sub_801B480(void); +void sub_801B51C(void); +void sub_801B590(void); +void sub_801BB20(void); +void sub_801BC24(void); u32 sub_801B3C0(struct Item *item) diff --git a/src/code_801C620.c b/src/code_801C620.c index 46df6b31f..512e3931a 100644 --- a/src/code_801C620.c +++ b/src/code_801C620.c @@ -140,18 +140,15 @@ extern u8 gUnknown_80DBDC8[]; extern u8 *gUnknown_80D4970[]; extern void sub_8007B7C(s32, s32, s32, s32, s32); -extern bool8 sub_801CF14(s32); extern u32 sub_801CE58(void); extern void sub_801CC38(void); -extern void sub_801CCD8(void); -extern void sub_801CF94(void); extern void ResetSprites(u32); extern void sub_80140B4(struct UnkTextStruct2 *); extern void sub_8008C54(u32); extern void sub_80073B8(u32); extern void sub_80073E0(u32); extern u32 sub_8097DF0(char *, struct subStruct_203B240 **); -extern void sub_8013F84(); +extern void sub_8013F84(void); extern void PlayMenuSoundEffect(u32); extern char * GetIQSkillDescription(u8 r0); extern s32 GetNumAvailableIQSkills(u8 *param_1, s32 pokeIQ); @@ -167,9 +164,12 @@ extern void sub_801C6B4(void); void sub_801BFB4(s32); void sub_801C6D0(s32); -void sub_801C7D4(); -void sub_801C6E4(); -void sub_801C848(); +void sub_801C7D4(void); +void sub_801C6E4(void); +void sub_801C848(void); +void sub_801CCD8(void); +bool8 sub_801CF14(s32); +void sub_801CF94(void); u32 sub_801C308(u8); extern void PlaySound(u32); @@ -184,15 +184,15 @@ void sub_801C3B0(u8); void sub_801BFCC(void); void sub_801C03C(void); -void sub_801C118(); -void sub_801C1A0(); -void sub_801C228(); +void sub_801C118(void); +void sub_801C1A0(void); +void sub_801C228(void); +u8 sub_801CB24(void); -extern u8 sub_801CB24(); -extern u32 sub_801CFE0(u8); -extern s32 sub_801CFB8(void); -extern void sub_801D220(); -extern void sub_801D3A8(); +u32 sub_801CFE0(u8); +s32 sub_801CFB8(void); +extern void sub_801D220(void); +extern void sub_801D3A8(void); bool8 sub_801BEEC(s16 species) diff --git a/src/code_8023144.c b/src/code_8023144.c index 5e68e82fe..25b14e435 100644 --- a/src/code_8023144.c +++ b/src/code_8023144.c @@ -69,7 +69,6 @@ extern void sub_801B450(void); void GetGummiItemStatBoost(struct PokemonStruct* pokemon, u8 id, bool8 checkBoostFlags, struct Gummi* gummi); -extern u32 sub_801A6E8(bool8); extern void sub_8099690(u32); s32 GetNumAvailableIQSkills(u8 *iqSkillBuffer, s32 pokeIQ); diff --git a/src/friend_area_action_menu_1.c b/src/friend_area_action_menu_1.c index 9849fd9f4..36e827fd8 100644 --- a/src/friend_area_action_menu_1.c +++ b/src/friend_area_action_menu_1.c @@ -23,7 +23,6 @@ extern void SetFriendAreaActionMenuState(u32); extern void PlaySound(u32); extern void nullsub_104(); extern void sub_8099690(u32); -extern u32 sub_801A6E8(bool8); extern s32 sub_80144A4(s32 *); extern void sub_8027EB8(); diff --git a/src/friend_list_menu.c b/src/friend_list_menu.c index 2d1cd89ab..34a99a9b0 100644 --- a/src/friend_list_menu.c +++ b/src/friend_list_menu.c @@ -146,7 +146,6 @@ extern void sub_801F214(void); extern void sub_801EE10(u32, s16, struct Move *, u32, u32, u32); extern void sub_801F808(u16 *); extern u32 sub_801602C(u32 r0, u8 *name); -extern u32 sub_801A6E8(bool8); extern void sub_8099690(u32); extern void sub_801F8D0(void); extern u32 sub_801F890(void); diff --git a/src/kangaskhan_storage.c b/src/kangaskhan_storage.c index 4e0941ac6..5155fa200 100644 --- a/src/kangaskhan_storage.c +++ b/src/kangaskhan_storage.c @@ -11,143 +11,138 @@ extern u8 gUnknown_202DE58[]; extern u8 gUnknown_202E1C8[]; extern u8 gUnknown_202E5D8[]; -EWRAM_DATA_2 struct unkStruct_203B208 *gUnknown_203B208 = {0}; +EWRAM_DATA_2 struct KangaskhanStorageWork *gKangaskhanStorageWork = {0}; EWRAM_DATA_2 struct unkStruct_203B20C *gUnknown_203B20C = {0}; +extern const u8 *gUnknown_80D4920[]; +extern const u8 *gUnknown_80D4928[]; +extern const u8 *gUnknown_80D4934[]; +extern const u8 *gUnknown_80D4958[]; +extern const u8 *gUnknown_80D4964[]; +extern const u8 *gUnknown_80D4970[]; +extern const u8 *gUnknown_80D4984[]; extern struct UnkTextStruct2 gUnknown_80DB748; +extern struct UnkTextStruct2 gUnknown_80DB760; extern struct UnkTextStruct2 gUnknown_80DB778; extern struct UnkTextStruct2 gUnknown_80DB790; -extern struct UnkTextStruct2 gUnknown_80DB760; +extern const u8 gUnknown_80DB7A8; extern struct UnkTextStruct2 gUnknown_80DB7B8; -extern struct UnkTextStruct2 gUnknown_80DB7E8; extern struct UnkTextStruct2 gUnknown_80DB7D0; +extern struct UnkTextStruct2 gUnknown_80DB7E8; extern struct UnkTextStruct2 gUnknown_80DB800; extern struct UnkTextStruct2 gUnknown_80DB818; -extern u8 gUnknown_80DB830[]; -extern u8 *gUnknown_80D4920[]; -extern u8 *gUnknown_80D4928[]; -extern u8 gUnknown_80DB7A8; - -extern u8 *gUnknown_80D4970[]; -extern u8 *gUnknown_80D4964[]; -extern u8 *gUnknown_80D4958[]; -extern u8 *gUnknown_80D4984[]; -extern u8 *gUnknown_80D4934[]; +extern const u8 gUnknown_80DB830[]; extern const u8 *gKangaskhanStorageDialogue[2][20]; -void UpdateKangaskhanStorageState(u32); -extern void sub_8017828(); -extern void sub_8017AF8(); -extern void sub_8017C7C(); -extern void sub_8017DC0(); -extern void sub_80178D0(); -extern void sub_80179A8(); -extern void sub_8017B88(); -extern void sub_8017C28(); -extern void sub_8017D24(); -extern void sub_8017DDC(); -extern void sub_8017928(); -extern void sub_8017A1C(); -extern void AdvanceToKangaskhanStorageFallbackState(); -void sub_8016E80(); -extern void sub_8016FF8(); -extern void sub_8008C54(u32); +// text.s extern void sub_80073B8(u32); -extern void sub_8013C68(u32 *); extern void sub_80073E0(u32); -extern s32 sub_80144A4(s32 *); -extern u8 sub_801CF50(u32); -extern void sub_801C8C4(u32, u32, u32, u32); -extern void sub_801CB5C(u32); -extern u32 sub_801CFE0(u8); -extern void sub_801CF94(void); -extern u8 sub_801CF14(u32); -extern u8 sub_801CF50(u32); -extern u32 sub_801A6E8(bool8); -extern void sub_80182E4(void); extern void sub_8008C54(u32); -extern void sub_80073B8(u32); -extern void sub_8013C68(u32 *); -extern void sub_80073E0(u32); -extern void sub_8099690(u32); +// code_80130A8.s +extern void sub_8013AA0(u32 *); extern u32 sub_8013BBC(u32 *); -extern void sub_8017598(void); -extern u32 sub_801CA08(u32); -extern u32 sub_801CFB8(void); -extern u8 sub_801CB24(); -extern void sub_801B450(); +extern void sub_8013C68(u32 *); +extern void sub_80141B4(const u8 *r0, u32, struct OpenedFile **r1, u32); +extern void sub_8014248(const u8 *r0, u32, u32, const struct MenuItem *r4, u16 *, u32, u32, struct OpenedFile **r5, u32); +extern s32 sub_80144A4(s32 *); +// code_801B3C0.c +extern void sub_801B3C0(struct Item *); extern u32 sub_801B410(void); -extern void sub_8017F10(u32); -extern void sub_8018588(void); -extern void sub_8018620(void); -extern void sub_8018904(void); -extern void sub_8018AC8(void); -extern void sub_80186F8(void); -extern void sub_8018854(void); -extern void sub_80189C8(void); -extern void sub_8018AE4(void); -extern void sub_8017F28(); -extern void sub_8018100(); -extern void sub_801841C(); -extern void sub_801CCD8(); -extern void sub_80184D4(); -extern void sub_8018280(); -void sub_80175FC(void); -extern void sub_80141B4(const char *r0, u32, struct OpenedFile **r1, u32); -extern void sub_8014248(const char *r0, u32, u32, const struct MenuItem *r4, u16 *, u32, u32, struct OpenedFile **r5, u32); -extern void sub_801C8C4(u32, u32, u32, u32); -extern void sub_801CB5C(u32); +extern void sub_801B450(void); extern void sub_801BB20(void); extern void sub_801BC24(void); -void sub_80176B8(void); -void sub_80177F8(void); -void sub_8017758(void); -void sub_801A928(void); -extern void sub_8013AA0(u32 *); -extern void sub_8017598(void); -extern void sub_801CCD8(void); +// code_801C620.c +extern void sub_801C8C4(u32, u32, u32, u32); +extern u32 sub_801CA08(u32); +extern u8 sub_801CB24(void); +extern void sub_801CB5C(u32); extern void sub_801CBB8(void); -extern void sub_801B3C0(struct Item *); -extern u8 sub_801CF14(u32); +extern void sub_801CCD8(void); +extern bool8 sub_801CF14(u32); +extern bool8 sub_801CF50(u32); +extern void sub_801CF94(void); +extern u32 sub_801CFB8(void); +extern u32 sub_801CFE0(u8); +// code_8098BDC.s +extern void sub_8099690(u32); -u32 CreateKangaskhanStorage(bool32 isAsleep) + +void sub_8016E80(void); +void sub_8016FF8(void); +void sub_8017598(void); +void sub_80175FC(void); +void sub_80176B8(void); +void sub_8017758(void); +void sub_80177F8(void); +void sub_8017828(void); +void sub_80178D0(void); +void sub_8017928(void); +void sub_80179A8(void); +void sub_8017A1C(void); +void sub_8017AF8(void); +void sub_8017B88(void); +void sub_8017C28(void); +void sub_8017C7C(void); +void sub_8017D24(void); +void sub_8017DC0(void); +void sub_8017DDC(void); +void sub_8017F10(u32); +void sub_8017F28(void); +void sub_8018100(void); +void sub_8018280(void); +void sub_80182E4(void); +void sub_801841C(void); +void sub_80184D4(void); +void sub_8018588(void); +void sub_8018620(void); +void sub_80186F8(void); +void sub_8018854(void); +void sub_8018904(void); +void sub_80189C8(void); +void sub_8018AC8(void); +void sub_8018AE4(void); + +void AdvanceToKangaskhanStorageFallbackState(void); +void UpdateKangaskhanStorageState(u32); + +u32 KangaskhanStorage_New(bool32 isAsleep) { char *monName; struct OpenedFile *faceFile; ResetUnusedInputStruct(); sub_800641C(0, 1, 1); - gUnknown_203B208 = MemoryAlloc(sizeof(struct unkStruct_203B208), 8); - gUnknown_203B208->menuAction1 = 0; - gUnknown_203B208->menuAction2 = 0; - gUnknown_203B208->menuAction3 = 0; - gUnknown_203B208->isAsleep = isAsleep; + gKangaskhanStorageWork = MemoryAlloc(sizeof(struct KangaskhanStorageWork), 8); + gKangaskhanStorageWork->menuAction1 = 0; + gKangaskhanStorageWork->menuAction2 = 0; + gKangaskhanStorageWork->menuAction3 = 0; + gKangaskhanStorageWork->isAsleep = isAsleep; CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KANGASKHAN); CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KANGASKHAN); monName = GetMonSpecies(MONSTER_KANGASKHAN); strcpy(gUnknown_202E1C8 - 0x50, monName); - if (gUnknown_203B208->isAsleep == TRUE) - gUnknown_203B208->unkE8 = NULL; + if (gKangaskhanStorageWork->isAsleep == TRUE) + gKangaskhanStorageWork->unkE8 = NULL; else - gUnknown_203B208->unkE8 = &gUnknown_203B208->faceFile; + gKangaskhanStorageWork->unkE8 = &gKangaskhanStorageWork->faceFile; faceFile = GetDialogueSpriteDataPtr(MONSTER_KANGASKHAN); - gUnknown_203B208->faceFile = faceFile; - gUnknown_203B208->faceData = faceFile->data; - gUnknown_203B208->unkE4 = 0; - gUnknown_203B208->unkE5 = 0; - gUnknown_203B208->unkE6 = 0; - gUnknown_203B208->unkE0 = 2; - gUnknown_203B208->unkE2 = 8; + gKangaskhanStorageWork->faceFile = faceFile; + gKangaskhanStorageWork->faceData = faceFile->data; + gKangaskhanStorageWork->unkE4 = 0; + gKangaskhanStorageWork->unkE5 = 0; + gKangaskhanStorageWork->unkE6 = 0; + gKangaskhanStorageWork->unkE0 = 2; + gKangaskhanStorageWork->unkE2 = 8; UpdateKangaskhanStorageState(KANGASKHAN_STORAGE_INIT); return 1; } -u32 sub_8016D54(void) -{ - switch (gUnknown_203B208->currState) { +u32 KangaskhanStorage_Callback(void) +{ + switch (gKangaskhanStorageWork->currState) { case KANGASKHAN_STORAGE_INIT: case KANGASKHAN_STORAGE_MAIN_MENU: sub_8017828(); @@ -196,18 +191,18 @@ u32 sub_8016D54(void) return 0; } -void sub_8016E40(void) +void KangaskhanStorage_Delete(void) { - if (gUnknown_203B208 != NULL) { - CloseFile(gUnknown_203B208->faceFile); - MemoryFree(gUnknown_203B208); - gUnknown_203B208 = NULL; + if (gKangaskhanStorageWork != NULL) { + CloseFile(gKangaskhanStorageWork->faceFile); + MemoryFree(gKangaskhanStorageWork); + gKangaskhanStorageWork = NULL; } } void UpdateKangaskhanStorageState(u32 newState) { - gUnknown_203B208->currState = newState; + gKangaskhanStorageWork->currState = newState; sub_8016E80(); sub_8016FF8(); } @@ -216,105 +211,105 @@ void sub_8016E80(void) { s32 index; - sub_8006518(gUnknown_203B208->unkEC); + sub_8006518(gKangaskhanStorageWork->unkEC); - switch (gUnknown_203B208->currState) { + switch (gKangaskhanStorageWork->currState) { case 13: case 14: - gUnknown_203B208->unkEC[0] = gUnknown_80DB748; - gUnknown_203B208->unkEC[1] = gUnknown_80DB748; - gUnknown_203B208->unkEC[2] = gUnknown_80DB748; - gUnknown_203B208->unkEC[0] = gUnknown_80DB748; + gKangaskhanStorageWork->unkEC[0] = gUnknown_80DB748; + gKangaskhanStorageWork->unkEC[1] = gUnknown_80DB748; + gKangaskhanStorageWork->unkEC[2] = gUnknown_80DB748; + gKangaskhanStorageWork->unkEC[0] = gUnknown_80DB748; break; case 22: case 23: - gUnknown_203B208->unkEC[0] = gUnknown_80DB748; - gUnknown_203B208->unkEC[1] = gUnknown_80DB748; - gUnknown_203B208->unkEC[2] = gUnknown_80DB748; - gUnknown_203B208->unkEC[0] = gUnknown_80DB778; + gKangaskhanStorageWork->unkEC[0] = gUnknown_80DB748; + gKangaskhanStorageWork->unkEC[1] = gUnknown_80DB748; + gKangaskhanStorageWork->unkEC[2] = gUnknown_80DB748; + gKangaskhanStorageWork->unkEC[0] = gUnknown_80DB778; break; case 24: - gUnknown_203B208->unkEC[1] = gUnknown_80DB790; + gKangaskhanStorageWork->unkEC[1] = gUnknown_80DB790; break; case 15: case 25: - gUnknown_203B208->unkEC[2] = gUnknown_80DB760; + gKangaskhanStorageWork->unkEC[2] = gUnknown_80DB760; break; default: for (index = 0; index < 4; index++) - gUnknown_203B208->unkEC[index] = gUnknown_80DB748; + gKangaskhanStorageWork->unkEC[index] = gUnknown_80DB748; break; } ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B208->unkEC, 1, 1); + sub_800641C(gKangaskhanStorageWork->unkEC, 1, 1); } void sub_8016FF8(void) { - switch (gUnknown_203B208->currState) { + switch (gKangaskhanStorageWork->currState) { case KANGASKHAN_STORAGE_INIT: sub_80175FC(); - gUnknown_203B208->unkE4 = 1; - sub_8014248(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][0], 0, gUnknown_203B208->menuAction1, gUnknown_203B208->unk24, - gUnknown_203B208->unk4C, 4, 0, gUnknown_203B208->unkE8, 12); + gKangaskhanStorageWork->unkE4 = 1; + sub_8014248(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][0], 0, gKangaskhanStorageWork->menuAction1, gKangaskhanStorageWork->unk24, + gKangaskhanStorageWork->unk4C, 4, 0, gKangaskhanStorageWork->unkE8, 12); break; case KANGASKHAN_STORAGE_MAIN_MENU: sub_80175FC(); - gUnknown_203B208->unkE4 = 0; - sub_8014248(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][1], 0, gUnknown_203B208->menuAction1, gUnknown_203B208->unk24, - gUnknown_203B208->unk4C, 4, 0, gUnknown_203B208->unkE8, 12); + gKangaskhanStorageWork->unkE4 = 0; + sub_8014248(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][1], 0, gKangaskhanStorageWork->menuAction1, gKangaskhanStorageWork->unk24, + gKangaskhanStorageWork->unk4C, 4, 0, gKangaskhanStorageWork->unkE8, 12); break; case 2: - gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU; - gUnknown_203B208->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][19], 0, gUnknown_203B208->unkE8, 0x10D); + gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU; + gKangaskhanStorageWork->unkE4 = 0; + sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][19], 0, gKangaskhanStorageWork->unkE8, 0x10D); break; case 3: - gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_EXIT; - gUnknown_203B208->unkE4 = 1; - sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][2], 0, gUnknown_203B208->unkE8, 0x30D); + gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_EXIT; + gKangaskhanStorageWork->unkE4 = 1; + sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][2], 0, gKangaskhanStorageWork->unkE8, 0x30D); break; case KANGASKHAN_STORAGE_NO_INV_ITEMS: - gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU; - gUnknown_203B208->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][13], 0, gUnknown_203B208->unkE8, 0x10D); + gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU; + gKangaskhanStorageWork->unkE4 = 0; + sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][13], 0, gKangaskhanStorageWork->unkE8, 0x10D); break; case KANGASKHAN_STORAGE_TOO_MANY_ITEMS: - gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU; - gUnknown_203B208->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][14], 0, gUnknown_203B208->unkE8, 0x10D); + gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU; + gKangaskhanStorageWork->unkE4 = 0; + sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][14], 0, gKangaskhanStorageWork->unkE8, 0x10D); break; case 7: - gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU; - gUnknown_203B208->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][15], 0, gUnknown_203B208->unkE8, 0x10D); + gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU; + gKangaskhanStorageWork->unkE4 = 0; + sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][15], 0, gKangaskhanStorageWork->unkE8, 0x10D); break; case 8: - gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU; - gUnknown_203B208->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][18], 0, gUnknown_203B208->unkE8, 0x10D); + gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU; + gKangaskhanStorageWork->unkE4 = 0; + sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][18], 0, gKangaskhanStorageWork->unkE8, 0x10D); break; case KANGASKHAN_STORAGE_IS_MONEY_USED_TM: - sub_8090E14(gUnknown_202DE58, &gUnknown_203B208->storedItem, 0); - gUnknown_203B208->fallbackState = 14; - gUnknown_203B208->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][16], 0, gUnknown_203B208->unkE8, 0x30D); + sub_8090E14(gUnknown_202DE58, &gKangaskhanStorageWork->storedItem, 0); + gKangaskhanStorageWork->fallbackState = 14; + gKangaskhanStorageWork->unkE4 = 0; + sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][16], 0, gKangaskhanStorageWork->unkE8, 0x30D); break; case 10: - gUnknown_203B208->fallbackState = 14; - gUnknown_203B208->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][17], 0, gUnknown_203B208->unkE8, 0x30D); + gKangaskhanStorageWork->fallbackState = 14; + gKangaskhanStorageWork->unkE4 = 0; + sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][17], 0, gKangaskhanStorageWork->unkE8, 0x30D); break; case 0xb: - gUnknown_203B208->fallbackState = 13; - gUnknown_203B208->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][3], 0, gUnknown_203B208->unkE8, 0x30D); + gKangaskhanStorageWork->fallbackState = 13; + gKangaskhanStorageWork->unkE4 = 0; + sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][3], 0, gKangaskhanStorageWork->unkE8, 0x30D); break; case 12: - gUnknown_203B208->fallbackState = 14; - gUnknown_203B208->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][4], 0, gUnknown_203B208->unkE8, 0x30D); + gKangaskhanStorageWork->fallbackState = 14; + gKangaskhanStorageWork->unkE4 = 0; + sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][4], 0, gKangaskhanStorageWork->unkE8, 0x30D); break; case 13: sub_801A5D8(3, 3, 0, 10); @@ -325,41 +320,41 @@ void sub_8016FF8(void) case 15: sub_801A9E0(); sub_80176B8(); - sub_8012D60(&gUnknown_203B208->unk58, gUnknown_203B208->unk24, NULL, gUnknown_203B208->unk4C, gUnknown_203B208->menuAction2, 2); + sub_8012D60(&gKangaskhanStorageWork->unk58, gKangaskhanStorageWork->unk24, NULL, gKangaskhanStorageWork->unk4C, gKangaskhanStorageWork->menuAction2, 2); break; case 17: sub_80177F8(); - sub_8090E14(gUnknown_202DE58, &gUnknown_203B208->storedItem, 0); - gUnknown_203B208->unkE4 = 0; - sub_8014248(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][5], 0, 4, gUnknown_203B208->unk24, NULL, 4, 0, - gUnknown_203B208->unkE8, 12); + sub_8090E14(gUnknown_202DE58, &gKangaskhanStorageWork->storedItem, 0); + gKangaskhanStorageWork->unkE4 = 0; + sub_8014248(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][5], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0, + gKangaskhanStorageWork->unkE8, 12); break; case 18: sub_80177F8(); - gUnknown_203B208->unkE4 = 0; - sub_8014248(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][6], 0, 4, gUnknown_203B208->unk24, NULL, 4, 0, - gUnknown_203B208->unkE8, 12); + gKangaskhanStorageWork->unkE4 = 0; + sub_8014248(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][6], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0, + gKangaskhanStorageWork->unkE8, 12); break; case 19: if (GetNumberOfFilledInventorySlots() == 0) { sub_801A928(); - gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU; + gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU; } else - gUnknown_203B208->fallbackState = 12; + gKangaskhanStorageWork->fallbackState = 12; - gUnknown_203B208->unkE4 = 1; - sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][7], 0, gUnknown_203B208->unkE8, 0x10D); + gKangaskhanStorageWork->unkE4 = 1; + sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][7], 0, gKangaskhanStorageWork->unkE8, 0x10D); break; case 20: - gUnknown_203B208->fallbackState = 22; - gUnknown_203B208->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][8], 0, gUnknown_203B208->unkE8, 0x30D); + gKangaskhanStorageWork->fallbackState = 22; + gKangaskhanStorageWork->unkE4 = 0; + sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][8], 0, gKangaskhanStorageWork->unkE8, 0x30D); break; case 21: - gUnknown_203B208->fallbackState = 23; - gUnknown_203B208->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][9], 0, gUnknown_203B208->unkE8, 0x30D); + gKangaskhanStorageWork->fallbackState = 23; + gKangaskhanStorageWork->unkE4 = 0; + sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][9], 0, gKangaskhanStorageWork->unkE8, 0x30D); break; case 22: sub_801C8C4(1, 3, 0, 10); @@ -370,69 +365,69 @@ void sub_8016FF8(void) sub_801AD34(0); break; case 24: - gUnknown_203B208->unkB8 = 2; - gUnknown_203B208->unkB0 = 1; + gKangaskhanStorageWork->unkB8 = 2; + gKangaskhanStorageWork->unkB0 = 1; - if (gTeamInventory_203B460->teamStorage[gUnknown_203B208->storedItem.id] >= 100) - gUnknown_203B208->unkB4 = 99; + if (gTeamInventory_203B460->teamStorage[gKangaskhanStorageWork->storedItem.id] >= 100) + gKangaskhanStorageWork->unkB4 = 99; else - gUnknown_203B208->unkB4 = gTeamInventory_203B460->teamStorage [gUnknown_203B208->storedItem.id]; + gKangaskhanStorageWork->unkB4 = gTeamInventory_203B460->teamStorage [gKangaskhanStorageWork->storedItem.id]; - gUnknown_203B208->unkAC = gUnknown_203B208->unkB4; - gUnknown_203B208->unkBC = 1; - gUnknown_203B208->unkC0 = &gUnknown_203B208->unkEC[1]; - gUnknown_203B208->unkC4 = 40; - gUnknown_203B208->unkC8 = 18; - sub_8013AA0(&gUnknown_203B208->unkA8); + gKangaskhanStorageWork->unkAC = gKangaskhanStorageWork->unkB4; + gKangaskhanStorageWork->unkBC = 1; + gKangaskhanStorageWork->unkC0 = &gKangaskhanStorageWork->unkEC[1]; + gKangaskhanStorageWork->unkC4 = 40; + gKangaskhanStorageWork->unkC8 = 18; + sub_8013AA0(&gKangaskhanStorageWork->unkA8); sub_8017598(); break; case 25: sub_801CCD8(); sub_801AD34(0); sub_8017758(); - sub_8012D60(&gUnknown_203B208->unk58, gUnknown_203B208->unk24, NULL, gUnknown_203B208->unk4C, gUnknown_203B208->menuAction3, 2); + sub_8012D60(&gKangaskhanStorageWork->unk58, gKangaskhanStorageWork->unk24, NULL, gKangaskhanStorageWork->unk4C, gKangaskhanStorageWork->menuAction3, 2); break; case 16: case 26: - sub_801B3C0(&gUnknown_203B208->storedItem); + sub_801B3C0(&gKangaskhanStorageWork->storedItem); break; case 27: sub_80177F8(); - sub_8090E14(gUnknown_202DE58, &gUnknown_203B208->storedItem, 0); - gUnknown_203B208->unkE4 = 0; - sub_8014248(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][10], 0, 4, gUnknown_203B208->unk24, NULL, 4, 0, - gUnknown_203B208->unkE8, 12); + sub_8090E14(gUnknown_202DE58, &gKangaskhanStorageWork->storedItem, 0); + gKangaskhanStorageWork->unkE4 = 0; + sub_8014248(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][10], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0, + gKangaskhanStorageWork->unkE8, 12); break; case 28: sub_80177F8(); - gUnknown_203B208->unkE4 = 0; - sub_8014248(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][11], 0, 4, gUnknown_203B208->unk24, NULL, 4, 0, - gUnknown_203B208->unkE8, 12); + gKangaskhanStorageWork->unkE4 = 0; + sub_8014248(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][11], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0, + gKangaskhanStorageWork->unkE8, 12); break; case 29: if (sub_801CF14(1) || GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) { sub_801CBB8(); - gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU; + gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU; } else - gUnknown_203B208->fallbackState = 21; + gKangaskhanStorageWork->fallbackState = 21; - gUnknown_203B208->unkE4 = 1; - sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][12], 0, gUnknown_203B208->unkE8, 0x10D); + gKangaskhanStorageWork->unkE4 = 1; + sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][12], 0, gKangaskhanStorageWork->unkE8, 0x10D); break; } } void sub_8017598(void) { - sub_8008C54(gUnknown_203B208->unkBC); - sub_80073B8(gUnknown_203B208->unkBC); - xxx_call_draw_string(4, 0, &gUnknown_80DB7A8,gUnknown_203B208->unkBC, 0); // Number? - sub_8013C68(&gUnknown_203B208->unkA8); - sub_80073E0(gUnknown_203B208->unkBC); + sub_8008C54(gKangaskhanStorageWork->unkBC); + sub_80073B8(gKangaskhanStorageWork->unkBC); + xxx_call_draw_string(4, 0, &gUnknown_80DB7A8,gKangaskhanStorageWork->unkBC, 0); // Number? + sub_8013C68(&gKangaskhanStorageWork->unkA8); + sub_80073E0(gKangaskhanStorageWork->unkBC); sub_801CCD8(); sub_801AD34(0); - sub_8012EA4(&gUnknown_203B208->unk58, 0); + sub_8012EA4(&gKangaskhanStorageWork->unk58, 0); } void sub_80175FC(void) @@ -440,37 +435,37 @@ void sub_80175FC(void) s32 index; s32 loopMax; - MemoryFill16(gUnknown_203B208->unk4C,0, sizeof(gUnknown_203B208->unk4C)); + MemoryFill16(gKangaskhanStorageWork->unk4C,0, sizeof(gKangaskhanStorageWork->unk4C)); loopMax = 0; - gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4958; - gUnknown_203B208->unk24[loopMax].menuAction = 2; + gKangaskhanStorageWork->unk24[loopMax].text = *gUnknown_80D4958; + gKangaskhanStorageWork->unk24[loopMax].menuAction = 2; loopMax += 1; - gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4964; - gUnknown_203B208->unk24[loopMax].menuAction = 3; + gKangaskhanStorageWork->unk24[loopMax].text = *gUnknown_80D4964; + gKangaskhanStorageWork->unk24[loopMax].menuAction = 3; loopMax += 1; - gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4970; - gUnknown_203B208->unk24[loopMax].menuAction = 6; + gKangaskhanStorageWork->unk24[loopMax].text = *gUnknown_80D4970; + gKangaskhanStorageWork->unk24[loopMax].menuAction = 6; loopMax += 1; - gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4934; - gUnknown_203B208->unk24[loopMax].menuAction = 1; + gKangaskhanStorageWork->unk24[loopMax].text = *gUnknown_80D4934; + gKangaskhanStorageWork->unk24[loopMax].menuAction = 1; loopMax += 1; - gUnknown_203B208->unk24[loopMax].text = NULL; - gUnknown_203B208->unk24[loopMax].menuAction = 1; + gKangaskhanStorageWork->unk24[loopMax].text = NULL; + gKangaskhanStorageWork->unk24[loopMax].menuAction = 1; for (index = 0; index < loopMax; index++) { - if (gUnknown_203B208->unk4C[index] == 0) { - if (gUnknown_203B208->unk24[index].menuAction == gUnknown_203B208->menuAction1) + if (gKangaskhanStorageWork->unk4C[index] == 0) { + if (gKangaskhanStorageWork->unk24[index].menuAction == gKangaskhanStorageWork->menuAction1) return; } } for (index = 0; index < loopMax; index++) { - if (gUnknown_203B208->unk4C[index] == 0) { - gUnknown_203B208->menuAction1 = gUnknown_203B208->unk24[index].menuAction; + if (gKangaskhanStorageWork->unk4C[index] == 0) { + gKangaskhanStorageWork->menuAction1 = gKangaskhanStorageWork->unk24[index].menuAction; break; } } @@ -481,29 +476,29 @@ void sub_80176B8(void) s32 index; s32 loopMax; - MemoryFill16(gUnknown_203B208->unk4C, 0, sizeof(gUnknown_203B208->unk4C)); + MemoryFill16(gKangaskhanStorageWork->unk4C, 0, sizeof(gKangaskhanStorageWork->unk4C)); loopMax = 0; - gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4958; - gUnknown_203B208->unk24[loopMax].menuAction = 2; + gKangaskhanStorageWork->unk24[loopMax].text = *gUnknown_80D4958; + gKangaskhanStorageWork->unk24[loopMax].menuAction = 2; loopMax += 1; - gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4970; - gUnknown_203B208->unk24[loopMax].menuAction = 6; + gKangaskhanStorageWork->unk24[loopMax].text = *gUnknown_80D4970; + gKangaskhanStorageWork->unk24[loopMax].menuAction = 6; loopMax += 1; - gUnknown_203B208->unk24[loopMax].text = NULL; - gUnknown_203B208->unk24[loopMax].menuAction = 1; + gKangaskhanStorageWork->unk24[loopMax].text = NULL; + gKangaskhanStorageWork->unk24[loopMax].menuAction = 1; for (index = 0; index < loopMax; index++) { - if (gUnknown_203B208->unk4C[index] == 0) { - if (gUnknown_203B208->unk24[index].menuAction == gUnknown_203B208->menuAction2) + if (gKangaskhanStorageWork->unk4C[index] == 0) { + if (gKangaskhanStorageWork->unk24[index].menuAction == gKangaskhanStorageWork->menuAction2) return; } } for (index = 0; index < loopMax; index++) { - if (gUnknown_203B208->unk4C[index] == 0) { - gUnknown_203B208->menuAction2 = gUnknown_203B208->unk24[index].menuAction; + if (gKangaskhanStorageWork->unk4C[index] == 0) { + gKangaskhanStorageWork->menuAction2 = gKangaskhanStorageWork->unk24[index].menuAction; break; } } @@ -514,29 +509,29 @@ void sub_8017758(void) s32 index; s32 loopMax; - MemoryFill16(gUnknown_203B208->unk4C, 0, sizeof(gUnknown_203B208->unk4C)); + MemoryFill16(gKangaskhanStorageWork->unk4C, 0, sizeof(gKangaskhanStorageWork->unk4C)); loopMax = 0; - gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4964; - gUnknown_203B208->unk24[loopMax].menuAction = 3; + gKangaskhanStorageWork->unk24[loopMax].text = *gUnknown_80D4964; + gKangaskhanStorageWork->unk24[loopMax].menuAction = 3; loopMax += 1; - gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4970; - gUnknown_203B208->unk24[loopMax].menuAction = 6; + gKangaskhanStorageWork->unk24[loopMax].text = *gUnknown_80D4970; + gKangaskhanStorageWork->unk24[loopMax].menuAction = 6; loopMax += 1; - gUnknown_203B208->unk24[loopMax].text = NULL; - gUnknown_203B208->unk24[loopMax].menuAction = 1; + gKangaskhanStorageWork->unk24[loopMax].text = NULL; + gKangaskhanStorageWork->unk24[loopMax].menuAction = 1; for (index = 0; index < loopMax; index++) { - if (gUnknown_203B208->unk4C[index] == 0) { - if (gUnknown_203B208->unk24[index].menuAction == gUnknown_203B208->menuAction3) + if (gKangaskhanStorageWork->unk4C[index] == 0) { + if (gKangaskhanStorageWork->unk24[index].menuAction == gKangaskhanStorageWork->menuAction3) return; } } for (index = 0; index < loopMax; index++) { - if (gUnknown_203B208->unk4C[index] == 0) { - gUnknown_203B208->menuAction3 = gUnknown_203B208->unk24[index].menuAction; + if (gKangaskhanStorageWork->unk4C[index] == 0) { + gKangaskhanStorageWork->menuAction3 = gKangaskhanStorageWork->unk24[index].menuAction; break; } } @@ -547,16 +542,16 @@ void sub_80177F8(void) s32 loopMax; loopMax = 0; - gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4920; - gUnknown_203B208->unk24[loopMax].menuAction = 4; + gKangaskhanStorageWork->unk24[loopMax].text = *gUnknown_80D4920; + gKangaskhanStorageWork->unk24[loopMax].menuAction = 4; loopMax += 1; - gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4928; - gUnknown_203B208->unk24[loopMax].menuAction = 5; + gKangaskhanStorageWork->unk24[loopMax].text = *gUnknown_80D4928; + gKangaskhanStorageWork->unk24[loopMax].menuAction = 5; loopMax += 1; - gUnknown_203B208->unk24[loopMax].text = NULL; - gUnknown_203B208->unk24[loopMax].menuAction = 1; + gKangaskhanStorageWork->unk24[loopMax].text = NULL; + gKangaskhanStorageWork->unk24[loopMax].menuAction = 1; } void sub_8017828(void) @@ -567,19 +562,19 @@ void sub_8017828(void) return; if (menuAction != 1) - gUnknown_203B208->menuAction1 = menuAction; + gKangaskhanStorageWork->menuAction1 = menuAction; switch (menuAction) { case 2: if (GetNumberOfFilledInventorySlots() == 0) UpdateKangaskhanStorageState(KANGASKHAN_STORAGE_NO_INV_ITEMS); - else if (sub_801CF50(0) != 0) + else if (sub_801CF50(0)) UpdateKangaskhanStorageState(8); else UpdateKangaskhanStorageState(11); break; case 3: - if (sub_801CF14(1) != 0) + if (sub_801CF14(1)) UpdateKangaskhanStorageState(7); else if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) UpdateKangaskhanStorageState(KANGASKHAN_STORAGE_TOO_MANY_ITEMS); @@ -604,8 +599,8 @@ void sub_80178D0(void) switch (menuAction) { case 4: - MoveToStorage(&gUnknown_203B208->storedItem); - ShiftItemsDownFrom(gUnknown_203B208->itemIndex); + MoveToStorage(&gKangaskhanStorageWork->storedItem); + ShiftItemsDownFrom(gKangaskhanStorageWork->itemIndex); FillInventoryGaps(); UpdateKangaskhanStorageState(19); break; @@ -626,9 +621,9 @@ void sub_8017928(void) switch (menuAction) { case 4: - gTeamInventory_203B460->teamStorage[gUnknown_203B208->storedItem.id] -= gUnknown_203B208->storedItem.quantity; - item.id = gUnknown_203B208->storedItem.id; - item.quantity = gUnknown_203B208->storedItem.quantity; + gTeamInventory_203B460->teamStorage[gKangaskhanStorageWork->storedItem.id] -= gKangaskhanStorageWork->storedItem.quantity; + item.id = gKangaskhanStorageWork->storedItem.id; + item.quantity = gKangaskhanStorageWork->storedItem.quantity; AddHeldItemToInventory(&item); UpdateKangaskhanStorageState(29); break; @@ -715,14 +710,14 @@ void sub_8017AF8(void) UpdateKangaskhanStorageState(18); } else { - gUnknown_203B208->itemIndex = sub_801A8AC(); - gUnknown_203B208->storedItem = gTeamInventory_203B460->teamItems[gUnknown_203B208->itemIndex]; + gKangaskhanStorageWork->itemIndex = sub_801A8AC(); + gKangaskhanStorageWork->storedItem = gTeamInventory_203B460->teamItems[gKangaskhanStorageWork->itemIndex]; UpdateKangaskhanStorageState(15); } break; case 4: - gUnknown_203B208->itemIndex = sub_801A8AC(); - gUnknown_203B208->storedItem = gTeamInventory_203B460->teamItems[gUnknown_203B208->itemIndex]; + gKangaskhanStorageWork->itemIndex = sub_801A8AC(); + gKangaskhanStorageWork->storedItem = gTeamInventory_203B460->teamItems[gKangaskhanStorageWork->itemIndex]; UpdateKangaskhanStorageState(16); break; case 2: @@ -739,16 +734,16 @@ void sub_8017B88(void) if (sub_801CFB8() != 0) UpdateKangaskhanStorageState(28); else { - gUnknown_203B208->id = sub_801CB24(); - xxx_init_itemslot_8090A8C(&gUnknown_203B208->storedItem, gUnknown_203B208->id, 0); - gUnknown_203B208->storedItem.quantity = 1; + gKangaskhanStorageWork->id = sub_801CB24(); + xxx_init_itemslot_8090A8C(&gKangaskhanStorageWork->storedItem, gKangaskhanStorageWork->id, 0); + gKangaskhanStorageWork->storedItem.quantity = 1; UpdateKangaskhanStorageState(25); } break; case 4: - gUnknown_203B208->id = sub_801CB24(); - xxx_init_itemslot_8090A8C(&gUnknown_203B208->storedItem, gUnknown_203B208->id, 0); - gUnknown_203B208->storedItem.quantity = 1; + gKangaskhanStorageWork->id = sub_801CB24(); + xxx_init_itemslot_8090A8C(&gKangaskhanStorageWork->storedItem, gKangaskhanStorageWork->id, 0); + gKangaskhanStorageWork->storedItem.quantity = 1; UpdateKangaskhanStorageState(26); break; case 2: @@ -764,14 +759,14 @@ void sub_8017B88(void) void sub_8017C28(void) { sub_801CA08(0); - sub_8012FD8(&gUnknown_203B208->unk58); + sub_8012FD8(&gKangaskhanStorageWork->unk58); - switch (sub_8013BBC(&gUnknown_203B208->unkA8)) { + switch (sub_8013BBC(&gKangaskhanStorageWork->unkA8)) { case 1: sub_8017598(); break; case 3: - gUnknown_203B208->storedItem.quantity = gUnknown_203B208->unkA8; + gKangaskhanStorageWork->storedItem.quantity = gKangaskhanStorageWork->unkA8; UpdateKangaskhanStorageState(27); break; case 2: @@ -789,18 +784,18 @@ void sub_8017C7C(void) menuAction = 0; sub_801A6E8(FALSE); - if (sub_8012FD8(&gUnknown_203B208->unk58) == 0) { - sub_8013114(&gUnknown_203B208->unk58, &menuAction); + if (sub_8012FD8(&gKangaskhanStorageWork->unk58) == 0) { + sub_8013114(&gKangaskhanStorageWork->unk58, &menuAction); if (menuAction != 1) - gUnknown_203B208->menuAction2 = menuAction; + gKangaskhanStorageWork->menuAction2 = menuAction; } switch (menuAction) { case 2: sub_8099690(0); - if (!IsNotMoneyOrUsedTMItem(gUnknown_203B208->storedItem.id)) + if (!IsNotMoneyOrUsedTMItem(gKangaskhanStorageWork->storedItem.id)) UpdateKangaskhanStorageState(KANGASKHAN_STORAGE_IS_MONEY_USED_TM); - else if(!sub_801ADA0(gUnknown_203B208->itemIndex)) + else if(!sub_801ADA0(gKangaskhanStorageWork->itemIndex)) UpdateKangaskhanStorageState(10); else UpdateKangaskhanStorageState(17); @@ -821,10 +816,10 @@ void sub_8017D24(void) menuAction = 0; sub_801CA08(0); - if (sub_8012FD8(&gUnknown_203B208->unk58) == 0) { - sub_8013114(&gUnknown_203B208->unk58, &menuAction); + if (sub_8012FD8(&gKangaskhanStorageWork->unk58) == 0) { + sub_8013114(&gKangaskhanStorageWork->unk58, &menuAction); if (menuAction != 1) - gUnknown_203B208->menuAction3 = menuAction; + gKangaskhanStorageWork->menuAction3 = menuAction; } switch (menuAction) { @@ -833,7 +828,7 @@ void sub_8017D24(void) sub_801CBB8(); UpdateKangaskhanStorageState(KANGASKHAN_STORAGE_TOO_MANY_ITEMS); } - else if (IsThrowableItem(gUnknown_203B208->storedItem.id)) + else if (IsThrowableItem(gKangaskhanStorageWork->storedItem.id)) UpdateKangaskhanStorageState(24); else UpdateKangaskhanStorageState(27); @@ -881,7 +876,7 @@ void AdvanceToKangaskhanStorageFallbackState(void) { s32 temp; if (sub_80144A4(&temp) == 0) - UpdateKangaskhanStorageState(gUnknown_203B208->fallbackState); + UpdateKangaskhanStorageState(gKangaskhanStorageWork->fallbackState); } u32 sub_8017E1C(void) @@ -1077,14 +1072,14 @@ void sub_80182E4(void) gUnknown_203B20C->unk20[0].text = *gUnknown_80D4958; gUnknown_203B20C->unk20[0].menuAction = 2; - if (GetNumberOfFilledInventorySlots() == 0 || sub_801CF50(0) != 0) + if (GetNumberOfFilledInventorySlots() == 0 || sub_801CF50(0)) gUnknown_203B20C->unk60[0] = 1; loopMax += 1; gUnknown_203B20C->unk20[loopMax].text = *gUnknown_80D4964; gUnknown_203B20C->unk20[loopMax].menuAction = 3; - if (sub_801CF14(1) != 0 || INVENTORY_SIZE <= GetNumberOfFilledInventorySlots()) + if (sub_801CF14(1) || INVENTORY_SIZE <= GetNumberOfFilledInventorySlots()) gUnknown_203B20C->unk60[loopMax] = 1; loopMax += 1; @@ -1194,13 +1189,13 @@ void sub_8018588(void) switch (menuAction) { case 2: - if (GetNumberOfFilledInventorySlots() != 0 && sub_801CF50(0) == 0) + if (GetNumberOfFilledInventorySlots() != 0 && !sub_801CF50(0)) sub_8017F10(4); else sub_8012EA4(&gUnknown_203B20C->unk70, 1); break; case 3: - if (sub_801CF14(1) != 0) + if (sub_801CF14(1)) sub_8012EA4(&gUnknown_203B20C->unk70, 1); else sub_8017F10(10); @@ -1283,7 +1278,7 @@ void sub_80186F8(void) FillInventoryGaps(); sub_801CF94(); - if (sub_801CF14(1) == 0 && GetNumberOfFilledInventorySlots() < INVENTORY_SIZE) + if (!sub_801CF14(1) && GetNumberOfFilledInventorySlots() < INVENTORY_SIZE) sub_8017F10(11); else { sub_801CBB8(); @@ -1328,7 +1323,7 @@ void sub_8018854(void) item.quantity = gUnknown_203B20C->item.quantity; AddHeldItemToInventory(&item); - if (sub_801CF14(1) == 0) { + if (!sub_801CF14(1)) { if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) { error: sub_801CBB8(); @@ -1423,7 +1418,7 @@ void sub_80189C8(void) item.quantity = gUnknown_203B20C->item.quantity; AddHeldItemToInventory(&item); - if (sub_801CF14(1) == 0) { + if (!sub_801CF14(1)) { if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) { error: diff --git a/src/luminous_cave.c b/src/luminous_cave.c index f447fe287..fdb745c94 100644 --- a/src/luminous_cave.c +++ b/src/luminous_cave.c @@ -202,7 +202,6 @@ void sub_801AEE4(u32, u32); void sub_808F734(struct PokemonStruct *, s16); u32 sub_801602C(u32 r0, u8 *name); extern s32 sub_80144A4(s32 *); -extern u32 sub_801A6E8(bool8); extern void sub_8099690(u32); extern void PlayMenuSoundEffect(u32); extern u32 sub_801B410(void); diff --git a/src/party_list_menu.c b/src/party_list_menu.c index aba3dbe4a..424952bd9 100644 --- a/src/party_list_menu.c +++ b/src/party_list_menu.c @@ -182,7 +182,6 @@ extern u32 sub_801B410(void); extern void sub_801B450(void); extern void nullsub_104(void); extern void sub_8099690(u32); -extern u32 sub_801A6E8(bool8); extern u32 sub_8022860(void); extern void sub_8022908(void); extern void sub_801BF98(void); From dfd7e07fccacce4f4ad845ddb5d5060e208cf486 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sat, 5 Aug 2023 12:57:09 -0400 Subject: [PATCH 11/16] Update kecleon_bros.c --- src/kecleon_bros.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/kecleon_bros.c b/src/kecleon_bros.c index 0fc833783..17397dacc 100644 --- a/src/kecleon_bros.c +++ b/src/kecleon_bros.c @@ -105,7 +105,6 @@ void sub_801A398(u8); void sub_801A3DC(void); void sub_801A430(void); void sub_801A4A4(void); -u32 sub_801A6E8(bool8); void sub_801A998(void); s32 sub_801AE24(u32); From 055a14b832b9d4c3a4dcb06984c9bb9624930269 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sat, 5 Aug 2023 12:58:29 -0400 Subject: [PATCH 12/16] Update kangaskhan_storage.c --- src/kangaskhan_storage.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/kangaskhan_storage.c b/src/kangaskhan_storage.c index 5155fa200..5988d9635 100644 --- a/src/kangaskhan_storage.c +++ b/src/kangaskhan_storage.c @@ -67,7 +67,6 @@ extern u32 sub_801CFE0(u8); // code_8098BDC.s extern void sub_8099690(u32); - void sub_8016E80(void); void sub_8016FF8(void); void sub_8017598(void); From c5e53c0e6bbb8ecc17d20a1a7aed9efa3f27028e Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sat, 5 Aug 2023 13:00:47 -0400 Subject: [PATCH 13/16] Correct array usage --- src/kangaskhan_storage.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/kangaskhan_storage.c b/src/kangaskhan_storage.c index 5988d9635..f8d56e3eb 100644 --- a/src/kangaskhan_storage.c +++ b/src/kangaskhan_storage.c @@ -25,13 +25,13 @@ extern struct UnkTextStruct2 gUnknown_80DB748; extern struct UnkTextStruct2 gUnknown_80DB760; extern struct UnkTextStruct2 gUnknown_80DB778; extern struct UnkTextStruct2 gUnknown_80DB790; -extern const u8 gUnknown_80DB7A8; +extern const u8 gUnknown_80DB7A8[]; // "Number?\0" extern struct UnkTextStruct2 gUnknown_80DB7B8; extern struct UnkTextStruct2 gUnknown_80DB7D0; extern struct UnkTextStruct2 gUnknown_80DB7E8; extern struct UnkTextStruct2 gUnknown_80DB800; extern struct UnkTextStruct2 gUnknown_80DB818; -extern const u8 gUnknown_80DB830[]; +extern const u8 gUnknown_80DB830[]; // "Number?\0" extern const u8 *gKangaskhanStorageDialogue[2][20]; @@ -421,7 +421,7 @@ void sub_8017598(void) { sub_8008C54(gKangaskhanStorageWork->unkBC); sub_80073B8(gKangaskhanStorageWork->unkBC); - xxx_call_draw_string(4, 0, &gUnknown_80DB7A8,gKangaskhanStorageWork->unkBC, 0); // Number? + xxx_call_draw_string(4, 0, gUnknown_80DB7A8, gKangaskhanStorageWork->unkBC, 0); sub_8013C68(&gKangaskhanStorageWork->unkA8); sub_80073E0(gKangaskhanStorageWork->unkBC); sub_801CCD8(); @@ -1053,7 +1053,7 @@ void sub_8018280(void) { sub_8008C54(gUnknown_203B20C->unkD4); sub_80073B8(gUnknown_203B20C->unkD4); - xxx_call_draw_string(4, 0, gUnknown_80DB830, gUnknown_203B20C->unkD4, 0); // Number? + xxx_call_draw_string(4, 0, gUnknown_80DB830, gUnknown_203B20C->unkD4, 0); sub_8013C68(&gUnknown_203B20C->unkC0); sub_80073E0(gUnknown_203B20C->unkD4); sub_801CCD8(); From 9917619da87d9f24e6d6bf40d01786f6f065ac99 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sat, 5 Aug 2023 13:20:00 -0400 Subject: [PATCH 14/16] Pascal naming --- asm/code_8098BDC.s | 4 ++-- data/data_8115F5C.s | 8 ++++---- include/kangaskhan_storage.h | 5 +++-- include/kecleon_bros.h | 6 +++--- src/kangaskhan_storage.c | 6 +++--- src/kecleon_bros.c | 6 +++--- 6 files changed, 18 insertions(+), 17 deletions(-) diff --git a/asm/code_8098BDC.s b/asm/code_8098BDC.s index c9207e39e..4968e4110 100644 --- a/asm/code_8098BDC.s +++ b/asm/code_8098BDC.s @@ -5573,7 +5573,7 @@ _0809BC26: lsrs r4, 31 bl sub_809B294 adds r0, r4, 0 - bl KangaskhanStorage_New + bl CreateKangaskhanStorage lsls r0, 24 cmp r0, 0 beq _0809BC5C @@ -5658,7 +5658,7 @@ _0809BCE8: beq _0809BCF0 movs r0, 0x3 _0809BCF0: - bl KecleonBros_New + bl CreateKecleonBros lsls r0, 24 cmp r0, 0 beq _0809BD10 diff --git a/data/data_8115F5C.s b/data/data_8115F5C.s index baa767e32..fb4786ec1 100644 --- a/data/data_8115F5C.s +++ b/data/data_8115F5C.s @@ -133,8 +133,8 @@ gUnknown_81161B8: @ 81161B8 gUnknown_81161C8: @ 81161C8 .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 - .4byte KangaskhanStorage_Delete - .4byte KangaskhanStorage_Callback + .4byte DeleteKangaskhanStorage + .4byte KangaskhanStorageCallback .global gUnknown_81161D8 gUnknown_81161D8: @ 81161D8 @@ -154,8 +154,8 @@ gUnknown_81161E8: @ 81161E8 gUnknown_81161F8: @ 81161F8 .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 - .4byte KecleonBros_Delete - .4byte KecleonBros_Callback + .4byte DeleteKecleonBros + .4byte KecleonBrosCallback .global gUnknown_8116208 gUnknown_8116208: @ 8116208 diff --git a/include/kangaskhan_storage.h b/include/kangaskhan_storage.h index 21a65b123..d075879e2 100644 --- a/include/kangaskhan_storage.h +++ b/include/kangaskhan_storage.h @@ -81,7 +81,8 @@ enum KangaskhanStorageStates KANGASKHAN_STORAGE_IS_MONEY_USED_TM = 9, }; -u32 KangaskhanStorage_Callback(void); -u32 KangaskhanStorage_New(bool32 isAsleep); +u32 CreateKangaskhanStorage(bool32 isAsleep); +void DeleteKangaskhanStorage(void); +u32 KangaskhanStorageCallback(void); #endif diff --git a/include/kecleon_bros.h b/include/kecleon_bros.h index 4e029df15..bb27ebcb7 100644 --- a/include/kecleon_bros.h +++ b/include/kecleon_bros.h @@ -82,10 +82,10 @@ enum KecleonStoreStates KECLEON_STORE_CANT_SELL_ITEM = 13, }; -u32 KecleonBros_Callback(void); -void KecleonBros_Delete(void); // mode corresponds to the enum: KecleonBrosMode -u32 KecleonBros_New(u32 mode); +u32 CreateKecleonBros(u32 mode); +void DeleteKecleonBros(void); +u32 KecleonBrosCallback(void); bool32 sub_801A5D8(u32, s32, struct UnkTextStruct2_sub *, u32); u32 sub_801A6E8(bool8); diff --git a/src/kangaskhan_storage.c b/src/kangaskhan_storage.c index f8d56e3eb..92cf66fb7 100644 --- a/src/kangaskhan_storage.c +++ b/src/kangaskhan_storage.c @@ -105,7 +105,7 @@ void sub_8018AE4(void); void AdvanceToKangaskhanStorageFallbackState(void); void UpdateKangaskhanStorageState(u32); -u32 KangaskhanStorage_New(bool32 isAsleep) +u32 CreateKangaskhanStorage(bool32 isAsleep) { char *monName; struct OpenedFile *faceFile; @@ -139,7 +139,7 @@ u32 KangaskhanStorage_New(bool32 isAsleep) return 1; } -u32 KangaskhanStorage_Callback(void) +u32 KangaskhanStorageCallback(void) { switch (gKangaskhanStorageWork->currState) { case KANGASKHAN_STORAGE_INIT: @@ -190,7 +190,7 @@ u32 KangaskhanStorage_Callback(void) return 0; } -void KangaskhanStorage_Delete(void) +void DeleteKangaskhanStorage(void) { if (gKangaskhanStorageWork != NULL) { CloseFile(gKangaskhanStorageWork->faceFile); diff --git a/src/kecleon_bros.c b/src/kecleon_bros.c index 17397dacc..2153f2a50 100644 --- a/src/kecleon_bros.c +++ b/src/kecleon_bros.c @@ -113,7 +113,7 @@ void Kecleon_SortItems(void); void KecleonBros_SetState(u32); void UpdateKecleonStoreDialogue(void); -u32 KecleonBros_New(u32 mode) +u32 CreateKecleonBros(u32 mode) { char *monName; struct OpenedFile *faceFile; @@ -173,7 +173,7 @@ u32 KecleonBros_New(u32 mode) return 1; } -u32 KecleonBros_Callback(void) +u32 KecleonBrosCallback(void) { switch (gKecleonBrosWork->currState) { case KECLEON_STORE_INIT: @@ -218,7 +218,7 @@ u32 KecleonBros_Callback(void) return 0; } -void KecleonBros_Delete(void) +void DeleteKecleonBros(void) { if (gKecleonBrosWork != NULL) { CloseFile(gKecleonBrosWork->faceFile); From 70c0dc82a020c8597b1b51cce1b86c9dfef88de6 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sat, 5 Aug 2023 13:35:49 -0400 Subject: [PATCH 15/16] More renaming --- src/kecleon_bros.c | 90 +++++++++++++++++++++++----------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/src/kecleon_bros.c b/src/kecleon_bros.c index 2153f2a50..954aba5c5 100644 --- a/src/kecleon_bros.c +++ b/src/kecleon_bros.c @@ -109,8 +109,8 @@ void sub_801A998(void); s32 sub_801AE24(u32); u32 CountKecleonItems(void); -void Kecleon_SortItems(void); -void KecleonBros_SetState(u32); +void SetKecleonBrosState(u32); +void SortInventoryItems(void); void UpdateKecleonStoreDialogue(void); u32 CreateKecleonBros(u32 mode) @@ -169,7 +169,7 @@ u32 CreateKecleonBros(u32 mode) gKecleonBrosWork->unkE2 = 0; gKecleonBrosWork->unkDC = 2; gKecleonBrosWork->unkDE = 8; - KecleonBros_SetState(KECLEON_STORE_INIT); + SetKecleonBrosState(KECLEON_STORE_INIT); return 1; } @@ -227,7 +227,7 @@ void DeleteKecleonBros(void) } } -void KecleonBros_SetState(u32 newState) +void SetKecleonBrosState(u32 newState) { gKecleonBrosWork->currState = newState; sub_8018D30(); @@ -621,37 +621,37 @@ void sub_8019730(void) switch (menuAction) { case 2: if (CountKecleonItems() == 0) - KecleonBros_SetState(KECLEON_STORE_NO_STORE_ITEMS); + SetKecleonBrosState(KECLEON_STORE_NO_STORE_ITEMS); else if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) - KecleonBros_SetState(KECLEON_STORE_TOO_MANY_ITEMS); + SetKecleonBrosState(KECLEON_STORE_TOO_MANY_ITEMS); else - KecleonBros_SetState(15); + SetKecleonBrosState(15); break; case 3: if (GetNumberOfFilledInventorySlots() == 0) - KecleonBros_SetState(KECLEON_STORE_NO_ITEMS_TO_SELL); + SetKecleonBrosState(KECLEON_STORE_NO_ITEMS_TO_SELL); else if (gKecleonBrosWork->numInventoryItemToSell == 0) - KecleonBros_SetState(8); + SetKecleonBrosState(8); else if (gTeamInventory_203B460->teamMoney < MAX_TEAM_MONEY) - KecleonBros_SetState(23); + SetKecleonBrosState(23); else - KecleonBros_SetState(7); + SetKecleonBrosState(7); break; case 4: if (GetNumberOfFilledInventorySlots() == 0) - KecleonBros_SetState(KECLEON_STORE_NO_ITEMS_TO_SELL); + SetKecleonBrosState(KECLEON_STORE_NO_ITEMS_TO_SELL); else if (gKecleonBrosWork->numInventoryItemToSell == 0) - KecleonBros_SetState(8); + SetKecleonBrosState(8); else if (gKecleonBrosWork->inventoryItemSellPrice + gTeamInventory_203B460->teamMoney > MAX_TEAM_MONEY) - KecleonBros_SetState(7); + SetKecleonBrosState(7); else - KecleonBros_SetState(31); + SetKecleonBrosState(31); break; case 7: - KecleonBros_SetState(2); + SetKecleonBrosState(2); break; case 1: - KecleonBros_SetState(3); + SetKecleonBrosState(3); break; } } @@ -677,11 +677,11 @@ void sub_8019850(void) } PlaySound(0x14c); - KecleonBros_SetState(17); + SetKecleonBrosState(17); break; case 6: case 1: - KecleonBros_SetState(16); + SetKecleonBrosState(16); break; } } @@ -697,11 +697,11 @@ void sub_80198E8(void) AddToTeamMoney(gKecleonBrosWork->itemSellPrice); ShiftItemsDownFrom(gKecleonBrosWork->soldItemInventoryIndex); PlaySound(0x14c); - KecleonBros_SetState(25); + SetKecleonBrosState(25); break; case 6: case 1: - KecleonBros_SetState(24); + SetKecleonBrosState(24); break; } } @@ -726,11 +726,11 @@ void sub_8019944(void) FillInventoryGaps(); AddToTeamMoney(gKecleonBrosWork->inventoryItemSellPrice); PlaySound(0x14c); - KecleonBros_SetState(32); + SetKecleonBrosState(32); break; case 1: case 6: - KecleonBros_SetState(KECLEON_STORE_MAIN_MENU); + SetKecleonBrosState(KECLEON_STORE_MAIN_MENU); break; } } @@ -760,7 +760,7 @@ void sub_80199CC(void) xxx_init_itemslot_8090A8C(&gKecleonBrosWork->soldItem, item->id, 0); gKecleonBrosWork->soldItem.quantity = item->quantity; gKecleonBrosWork->itemSellPrice = GetStackBuyPrice(&gKecleonBrosWork->soldItem); - KecleonBros_SetState(20); + SetKecleonBrosState(20); break; case 4: if (gKecleonBrosWork->isKecleonItemShop) { @@ -775,7 +775,7 @@ void sub_80199CC(void) xxx_init_itemslot_8090A8C(&gKecleonBrosWork->soldItem, item->id, 0); gKecleonBrosWork->soldItem.quantity = item->quantity; gKecleonBrosWork->itemSellPrice = GetStackBuyPrice(&gKecleonBrosWork->soldItem); - KecleonBros_SetState(21); + SetKecleonBrosState(21); break; case 2: if (gKecleonBrosWork->isKecleonItemShop) @@ -783,7 +783,7 @@ void sub_80199CC(void) else sub_801A3DC(); - KecleonBros_SetState(KECLEON_STORE_MAIN_MENU); + SetKecleonBrosState(KECLEON_STORE_MAIN_MENU); break; case 1: sub_801AD34(0); @@ -801,18 +801,18 @@ void sub_8019B08(void) gKecleonBrosWork->soldItemInventoryIndex = sub_801A8AC(); gKecleonBrosWork->soldItem = gTeamInventory_203B460->teamItems[gKecleonBrosWork->soldItemInventoryIndex]; gKecleonBrosWork->itemSellPrice = GetStackSellPrice(&gKecleonBrosWork->soldItem); - KecleonBros_SetState(28); + SetKecleonBrosState(28); break; case 4: gKecleonBrosWork->soldItemInventoryIndex = sub_801A8AC(); gKecleonBrosWork->soldItem = gTeamInventory_203B460->teamItems[gKecleonBrosWork->soldItemInventoryIndex]; gKecleonBrosWork->itemSellPrice = GetStackSellPrice(&gKecleonBrosWork->soldItem); sub_8099690(0); - KecleonBros_SetState(29); + SetKecleonBrosState(29); break; case 2: sub_801A928(); - KecleonBros_SetState(KECLEON_STORE_MAIN_MENU); + SetKecleonBrosState(KECLEON_STORE_MAIN_MENU); break; case 1: default: @@ -838,17 +838,17 @@ void sub_8019BBC(void) switch (menuAction) { case 2: if (gTeamInventory_203B460->teamMoney == 0) - KecleonBros_SetState(KECLEON_STORE_NO_MONEY); + SetKecleonBrosState(KECLEON_STORE_NO_MONEY); else if (gKecleonBrosWork->itemSellPrice > gTeamInventory_203B460->teamMoney) - KecleonBros_SetState(KECLEON_STORE_NOT_ENOUGH_MONEY); + SetKecleonBrosState(KECLEON_STORE_NOT_ENOUGH_MONEY); else - KecleonBros_SetState(22); + SetKecleonBrosState(22); break; case 7: - KecleonBros_SetState(21); + SetKecleonBrosState(21); break; case 1: - KecleonBros_SetState(19); + SetKecleonBrosState(19); break; } } @@ -868,18 +868,18 @@ void sub_8019C78(void) sub_8099690(0); if (!CanSellItem(gKecleonBrosWork->soldItem.id)) - KecleonBros_SetState(KECLEON_STORE_CANT_SELL_ITEM); + SetKecleonBrosState(KECLEON_STORE_CANT_SELL_ITEM); else if (gKecleonBrosWork->itemSellPrice + gTeamInventory_203B460->teamMoney > MAX_TEAM_MONEY) - KecleonBros_SetState(14); + SetKecleonBrosState(14); else - KecleonBros_SetState(30); + SetKecleonBrosState(30); break; case 7: sub_8099690(0); - KecleonBros_SetState(29); + SetKecleonBrosState(29); break; case 1: - KecleonBros_SetState(27); + SetKecleonBrosState(27); break; } } @@ -890,7 +890,7 @@ void sub_8019D30(void) case 2: case 3: sub_801B450(); - KecleonBros_SetState(19); + SetKecleonBrosState(19); break; case 0: case 1: @@ -904,7 +904,7 @@ void sub_8019D4C(void) case 2: case 3: sub_801B450(); - KecleonBros_SetState(27); + SetKecleonBrosState(27); break; case 0: case 1: @@ -917,7 +917,7 @@ void sub_8019D68(void) { s32 temp; if (sub_80144A4(&temp) == 0) - KecleonBros_SetState(gKecleonBrosWork->fallbackState); + SetKecleonBrosState(gKecleonBrosWork->fallbackState); } u32 CountKecleonItems(void) @@ -1476,7 +1476,7 @@ u32 sub_801A6E8(bool8 param_1) case INPUT_SELECT_BUTTON: if (gUnknown_203B224->unk0 != 2) { PlayMenuSoundEffect(5); - Kecleon_SortItems(); + SortInventoryItems(); sub_801A9E0(); } // NOTE: fallthrough needed here @@ -1734,10 +1734,10 @@ s32 sub_801AED0(s32 index) void sub_801AEE4(s32 index, s32 value) { - gUnknown_203B224->unk4[index] = value ; + gUnknown_203B224->unk4[index] = value; } -void Kecleon_SortItems(void) +void SortInventoryItems(void) { struct Item *itemSlotR; u32 *itemIDR; From 09d6c61f84e9be031655b1ec2fa766bdcf28426a Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sat, 5 Aug 2023 13:46:05 -0400 Subject: [PATCH 16/16] Rename gTeamInventoryRef and gTeamInventory --- asm/code_2.s | 4 +- asm/code_801EE10.s | 2 +- asm/code_801EE10_mid.s | 2 +- asm/code_80428A0.s | 2 +- asm/code_8044CC8.s | 4 +- asm/code_8045A00.s | 2 +- asm/code_8046CE4.s | 2 +- asm/code_804AFAC.s | 2 +- asm/code_805D8C8.s | 28 +++--- asm/code_806CD90.s | 2 +- asm/code_8073CF0.s | 2 +- asm/code_807E5AC.s | 6 +- asm/code_807FCD4.s | 4 +- asm/code_808417C.s | 2 +- asm/code_8085B0C.s | 2 +- asm/code_8098BDC.s | 6 +- asm/dungeon_2.s | 2 +- asm/event_flag.s | 16 ++-- asm/ground_script.s | 4 +- include/team_inventory.h | 2 +- src/code_801AFA4.c | 6 +- src/code_801B3C0.c | 8 +- src/code_801C620.c | 8 +- src/code_801D760.c | 2 +- src/code_8021774_pre.c | 2 +- src/code_8023144.c | 6 +- src/code_80958E8_1.c | 2 +- src/debug_menu_mid.c | 4 +- src/dungeon_ai_items.c | 4 +- src/dungeon_items.c | 20 ++-- src/event_flag.c | 4 +- src/felicity_bank.c | 44 ++++----- src/friend_area_action_menu_1.c | 18 ++-- src/friend_list_menu.c | 8 +- src/friend_rescue.c | 4 +- src/gulpin_shop_1.c | 4 +- src/items.c | 164 ++++++++++++++++---------------- src/kangaskhan_storage.c | 46 ++++----- src/kecleon_bros.c | 56 +++++------ src/luminous_cave.c | 12 +-- src/other_menus.c | 2 +- src/other_menus_1.c | 12 +-- src/party_list_menu.c | 16 ++-- src/save.c | 4 +- src/status_actions.c | 10 +- src/thank_you_wonder_mail.c | 2 +- src/trade_items_menu.c | 10 +- src/wigglytuff_shop.c | 6 +- 48 files changed, 290 insertions(+), 290 deletions(-) diff --git a/asm/code_2.s b/asm/code_2.s index 311dae02c..4470cdd9e 100644 --- a/asm/code_2.s +++ b/asm/code_2.s @@ -1548,7 +1548,7 @@ _08001298: pop {r0} bx r0 .align 2, 0 -_080012B8: .4byte gTeamInventory_203B460 +_080012B8: .4byte gTeamInventoryRef _080012BC: .4byte gRecruitedPokemonRef thumb_func_end sub_8001248 @@ -1607,7 +1607,7 @@ _08001306: pop {r0} bx r0 .align 2, 0 -_08001324: .4byte gTeamInventory_203B460 +_08001324: .4byte gTeamInventoryRef _08001328: .4byte gRecruitedPokemonRef thumb_func_end sub_80012C0 diff --git a/asm/code_801EE10.s b/asm/code_801EE10.s index 710fb1457..213c5c277 100644 --- a/asm/code_801EE10.s +++ b/asm/code_801EE10.s @@ -192,7 +192,7 @@ _0801F074: b _0801F12E .align 2, 0 _0801F0C8: .4byte gUnknown_203B270 -_0801F0CC: .4byte gTeamInventory_203B460 +_0801F0CC: .4byte gTeamInventoryRef _0801F0D0: ldr r0, _0801F0E0 ldr r1, [r0] diff --git a/asm/code_801EE10_mid.s b/asm/code_801EE10_mid.s index 3b4477597..16d4c47fe 100644 --- a/asm/code_801EE10_mid.s +++ b/asm/code_801EE10_mid.s @@ -173,7 +173,7 @@ _08021502: .align 2, 0 _08021568: .4byte gUnknown_203B280 _0802156C: .4byte gUnknown_80DC494 -_08021570: .4byte gTeamInventory_203B460 +_08021570: .4byte gTeamInventoryRef _08021574: mov r0, r10 ldr r1, _08021598 diff --git a/asm/code_80428A0.s b/asm/code_80428A0.s index 523ff0fd1..0a78dde9c 100644 --- a/asm/code_80428A0.s +++ b/asm/code_80428A0.s @@ -2732,7 +2732,7 @@ _080441A4: .align 2, 0 _080441AC: .4byte gDungeon _080441B0: .4byte 0x00000644 -_080441B4: .4byte gTeamInventory_203B460 +_080441B4: .4byte gTeamInventoryRef _080441B8: .4byte gRecruitedPokemonRef thumb_func_end sub_8044124 diff --git a/asm/code_8044CC8.s b/asm/code_8044CC8.s index e499b21b7..f0d1864d9 100644 --- a/asm/code_8044CC8.s +++ b/asm/code_8044CC8.s @@ -24,7 +24,7 @@ sub_8044CC8: adds r0, r1 b _08044D34 .align 2, 0 -_08044CE8: .4byte gTeamInventory_203B460 +_08044CE8: .4byte gTeamInventoryRef _08044CEC: adds r0, r1, 0 cmp r0, 0x80 @@ -97,7 +97,7 @@ sub_8044D40: bl FillInventoryGaps b _08044D88 .align 2, 0 -_08044D70: .4byte gTeamInventory_203B460 +_08044D70: .4byte gTeamInventoryRef _08044D74: lsls r0, r1, 24 lsrs r0, 24 diff --git a/asm/code_8045A00.s b/asm/code_8045A00.s index 333c2bc13..3a551c50f 100644 --- a/asm/code_8045A00.s +++ b/asm/code_8045A00.s @@ -122,7 +122,7 @@ _08045E94: .align 2, 0 _08045EA8: .4byte gDungeon _08045EAC: .4byte 0x0000065b -_08045EB0: .4byte gTeamInventory_203B460 +_08045EB0: .4byte gTeamInventoryRef _08045EB4: ldr r0, [sp, 0xAC] adds r0, 0x60 diff --git a/asm/code_8046CE4.s b/asm/code_8046CE4.s index 64ae9576a..d43bc73d6 100644 --- a/asm/code_8046CE4.s +++ b/asm/code_8046CE4.s @@ -36,7 +36,7 @@ _08047180: pop {r0} bx r0 .align 2, 0 -_0804718C: .4byte gTeamInventory_203B460 +_0804718C: .4byte gTeamInventoryRef thumb_func_end sub_8047158 thumb_func_start sub_8047190 diff --git a/asm/code_804AFAC.s b/asm/code_804AFAC.s index d05ed2593..cee7cac33 100644 --- a/asm/code_804AFAC.s +++ b/asm/code_804AFAC.s @@ -14912,7 +14912,7 @@ _08052196: movs r0, 0 b _080521CA .align 2, 0 -_080521B4: .4byte gTeamInventory_203B460 +_080521B4: .4byte gTeamInventoryRef _080521B8: .4byte gRecruitedPokemonRef _080521BC: .4byte 0x00008df8 _080521C0: .4byte 0x00008e38 diff --git a/asm/code_805D8C8.s b/asm/code_805D8C8.s index b1aa6129c..9ccda1981 100644 --- a/asm/code_805D8C8.s +++ b/asm/code_805D8C8.s @@ -786,7 +786,7 @@ _0805DEFC: .4byte gGameOptionsRef _0805DF00: .4byte gRealInputs _0805DF04: .4byte gUnknown_202F22D _0805DF08: .4byte 0x01000200 -_0805DF0C: .4byte gTeamInventory_203B460 +_0805DF0C: .4byte gTeamInventoryRef _0805DF10: .4byte gDungeon _0805DF14: .4byte 0x0001820a _0805DF18: .4byte gUnknown_202EE00 @@ -4319,7 +4319,7 @@ _0805FBB8: .4byte gFieldMenuGroundPtr _0805FBBC: .4byte gPlayTimeRef _0805FBC0: .4byte gUnknown_202DE30 _0805FBC4: .4byte gUnknown_80F9174 -_0805FBC8: .4byte gTeamInventory_203B460 +_0805FBC8: .4byte gTeamInventoryRef _0805FBCC: .4byte gUnknown_80F9190 _0805FBD0: .4byte gAvailablePokemonNames _0805FBD4: .4byte gUnknown_80F91A8 @@ -4807,7 +4807,7 @@ _0805FF66: b _0805FFE8 .align 2, 0 _0805FFA8: .4byte gUnknown_202F240 -_0805FFAC: .4byte gTeamInventory_203B460 +_0805FFAC: .4byte gTeamInventoryRef _0805FFB0: .4byte gDungeon _0805FFB4: .4byte 0x0001357c _0805FFB8: .4byte gUnknown_202F258 @@ -5256,7 +5256,7 @@ _0806033C: .align 2, 0 _0806034C: .4byte gUnknown_202EE10 _08060350: .4byte gUnknown_202F248 -_08060354: .4byte gTeamInventory_203B460 +_08060354: .4byte gTeamInventoryRef _08060358: .4byte gUnknown_202F240 _0806035C: .4byte gRealInputs _08060360: .4byte gDungeon @@ -5553,7 +5553,7 @@ _08060592: b _08060794 .align 2, 0 _080605C0: .4byte gTeamToolboxAPtr -_080605C4: .4byte gTeamInventory_203B460 +_080605C4: .4byte gTeamInventoryRef _080605C8: .4byte gUnknown_8106B60 _080605CC: ldr r0, _08060630 @@ -5605,7 +5605,7 @@ _080605FC: b _08060794 .align 2, 0 _08060630: .4byte gTeamToolboxBPtr -_08060634: .4byte gTeamInventory_203B460 +_08060634: .4byte gTeamInventoryRef _08060638: .4byte gUnknown_8106B60 _0806063C: mov r1, r9 @@ -6012,7 +6012,7 @@ _08060964: .4byte gUnknown_202F238 _08060968: .4byte gUnknown_202EE6C _0806096C: .4byte gDungeon _08060970: .4byte 0x0000065b -_08060974: .4byte gTeamInventory_203B460 +_08060974: .4byte gTeamInventoryRef _08060978: mov r0, r10 adds r0, 0x60 @@ -6182,7 +6182,7 @@ _08060ABE: bl sub_8044FF0 b _08060B3C .align 2, 0 -_08060AD4: .4byte gTeamInventory_203B460 +_08060AD4: .4byte gTeamInventoryRef _08060AD8: .4byte gUnknown_202F238 _08060ADC: .4byte gDungeon _08060AE0: .4byte 0x0001357c @@ -6210,7 +6210,7 @@ _08060AE8: .align 2, 0 _08060B10: .4byte gDungeon _08060B14: .4byte 0x0000065b -_08060B18: .4byte gTeamInventory_203B460 +_08060B18: .4byte gTeamInventoryRef _08060B1C: ldrb r1, [r7, 0x2] movs r0, 0x37 @@ -6356,7 +6356,7 @@ _08060C32: .align 2, 0 _08060C50: .4byte gDungeon _08060C54: .4byte 0x0001357c -_08060C58: .4byte gTeamInventory_203B460 +_08060C58: .4byte gTeamInventoryRef _08060C5C: .4byte 0x0000065b _08060C60: ldrb r1, [r7, 0x2] @@ -6586,7 +6586,7 @@ _08060E1A: .align 2, 0 _08060E28: .4byte gDungeon _08060E2C: .4byte 0x0000065b -_08060E30: .4byte gTeamInventory_203B460 +_08060E30: .4byte gTeamInventoryRef _08060E34: .4byte 0x0001357c thumb_func_end sub_8060D64 @@ -17762,7 +17762,7 @@ _08066798: ldr r0, _080667CC b _080667DE .align 2, 0 -_080667C0: .4byte gTeamInventory_203B460 +_080667C0: .4byte gTeamInventoryRef _080667C4: .4byte gUnknown_202DE58 _080667C8: .4byte 0x00000133 _080667CC: .4byte gUnknown_80F8D04 @@ -17857,7 +17857,7 @@ _08066856: bl SendMessage b _080668BE .align 2, 0 -_0806688C: .4byte gTeamInventory_203B460 +_0806688C: .4byte gTeamInventoryRef _08066890: .4byte gUnknown_202DE58 _08066894: .4byte gUnknown_80F8C7C _08066898: @@ -18139,7 +18139,7 @@ sub_8066AC0: ldr r0, _08066AF4 b _08066B10 .align 2, 0 -_08066AF0: .4byte gTeamInventory_203B460 +_08066AF0: .4byte gTeamInventoryRef _08066AF4: .4byte gUnknown_80F8D60 _08066AF8: ldrb r1, [r5] diff --git a/asm/code_806CD90.s b/asm/code_806CD90.s index fc34120ec..8310a806e 100644 --- a/asm/code_806CD90.s +++ b/asm/code_806CD90.s @@ -1857,7 +1857,7 @@ _0806DEC8: bl SendWaitingEndMessage b _0806DEF2 .align 2, 0 -_0806DED4: .4byte gTeamInventory_203B460 +_0806DED4: .4byte gTeamInventoryRef _0806DED8: .4byte gDungeon _0806DEDC: .4byte 0x00000679 _0806DEE0: .4byte 0x00000676 diff --git a/asm/code_8073CF0.s b/asm/code_8073CF0.s index ad996adae..ddc1eb579 100644 --- a/asm/code_8073CF0.s +++ b/asm/code_8073CF0.s @@ -173,7 +173,7 @@ _08073E48: .align 2, 0 _08073E64: .4byte gDungeon _08073E68: .4byte 0x0000065b -_08073E6C: .4byte gTeamInventory_203B460 +_08073E6C: .4byte gTeamInventoryRef _08073E70: mov r0, r10 adds r0, 0x60 diff --git a/asm/code_807E5AC.s b/asm/code_807E5AC.s index 001eae0f4..2ab749ef8 100644 --- a/asm/code_807E5AC.s +++ b/asm/code_807E5AC.s @@ -1470,7 +1470,7 @@ _0807F204: movs r0, 0x2 b _0807F31C .align 2, 0 -_0807F224: .4byte gTeamInventory_203B460 +_0807F224: .4byte gTeamInventoryRef _0807F228: .4byte gUnknown_80FE520 _0807F22C: movs r0, 0xA6 @@ -1597,7 +1597,7 @@ _0807F31C: pop {r1} bx r1 .align 2, 0 -_0807F324: .4byte gTeamInventory_203B460 +_0807F324: .4byte gTeamInventoryRef _0807F328: .4byte gDungeon _0807F32C: .4byte 0x000135cc _0807F330: .4byte 0x00000694 @@ -1723,7 +1723,7 @@ _0807F41C: .4byte gDungeon _0807F420: .4byte 0x0000066e _0807F424: .4byte 0x0000066f _0807F428: .4byte gUnknown_80FE4B8 -_0807F42C: .4byte gTeamInventory_203B460 +_0807F42C: .4byte gTeamInventoryRef _0807F430: .4byte 0x000135cc _0807F434: .4byte 0x00000694 _0807F438: .4byte 0x0000068c diff --git a/asm/code_807FCD4.s b/asm/code_807FCD4.s index c20152141..d183715e9 100644 --- a/asm/code_807FCD4.s +++ b/asm/code_807FCD4.s @@ -791,7 +791,7 @@ _08080300: bl sub_80522F4 b _0808034A .align 2, 0 -_0808030C: .4byte gTeamInventory_203B460 +_0808030C: .4byte gTeamInventoryRef _08080310: .4byte gUnknown_80FDC40 _08080314: adds r0, r6, 0 @@ -1032,7 +1032,7 @@ _080804B6: ldr r0, _080804C8 b _080804D4 .align 2, 0 -_080804C0: .4byte gTeamInventory_203B460 +_080804C0: .4byte gTeamInventoryRef _080804C4: .4byte gUnknown_80F4E0E _080804C8: .4byte gUnknown_80FD788 _080804CC: diff --git a/asm/code_808417C.s b/asm/code_808417C.s index dd39ad9b0..fbf25c3e3 100644 --- a/asm/code_808417C.s +++ b/asm/code_808417C.s @@ -406,7 +406,7 @@ _080844FC: .4byte gDungeon _08084500: .4byte 0x0000068a _08084504: .4byte gUnknown_80FA32C _08084508: .4byte gUnknown_202DE58 -_0808450C: .4byte gTeamInventory_203B460 +_0808450C: .4byte gTeamInventoryRef _08084510: .4byte gUnknown_80FA448 _08084514: lsls r1, r3, 2 diff --git a/asm/code_8085B0C.s b/asm/code_8085B0C.s index 1c4c3dcf6..3c6b800d4 100644 --- a/asm/code_8085B0C.s +++ b/asm/code_8085B0C.s @@ -717,7 +717,7 @@ _08086104: movs r0, 0x1 b _0808611C .align 2, 0 -_08086108: .4byte gTeamInventory_203B460 +_08086108: .4byte gTeamInventoryRef _0808610C: .4byte gDungeon _08086110: .4byte 0x0001357c _08086114: diff --git a/asm/code_8098BDC.s b/asm/code_8098BDC.s index 4968e4110..40a7cdf10 100644 --- a/asm/code_8098BDC.s +++ b/asm/code_8098BDC.s @@ -6386,7 +6386,7 @@ _0809C2CA: movs r1, 0x1 b _0809C318 .align 2, 0 -_0809C304: .4byte gTeamInventory_203B460 +_0809C304: .4byte gTeamInventoryRef _0809C308: .4byte gUnknown_202DE58 _0809C30C: ldr r0, [r6] @@ -7562,7 +7562,7 @@ sub_809CBBC: .align 2, 0 _0809CC0C: .4byte gUnknown_81163E4 _0809CC10: .4byte gItemParametersData -_0809CC14: .4byte gTeamInventory_203B460 +_0809CC14: .4byte gTeamInventoryRef _0809CC18: .4byte 0x0001869f _0809CC1C: str r1, [r2] @@ -7648,7 +7648,7 @@ sub_809CC90: b _0809CCD6 .align 2, 0 _0809CCBC: .4byte gUnknown_81163BC -_0809CCC0: .4byte gTeamInventory_203B460 +_0809CCC0: .4byte gTeamInventoryRef _0809CCC4: .4byte 0x0001869f _0809CCC8: bl GetNumberOfFilledInventorySlots diff --git a/asm/dungeon_2.s b/asm/dungeon_2.s index 74e74980d..4fccc19ff 100644 --- a/asm/dungeon_2.s +++ b/asm/dungeon_2.s @@ -581,7 +581,7 @@ _080907F0: .4byte gUnknown_8115DD4 _080907F4: .4byte gUnknown_8115E00 _080907F8: .4byte gUnknown_8115E28 _080907FC: .4byte gUnknown_8115E54 -_08090800: .4byte gTeamInventory_203B460 +_08090800: .4byte gTeamInventoryRef _08090804: .4byte gUnknown_8115E80 _08090808: .4byte gUnknown_8108F50 _0809080C: diff --git a/asm/event_flag.s b/asm/event_flag.s index ed1b1e69d..089bbe6a4 100644 --- a/asm/event_flag.s +++ b/asm/event_flag.s @@ -258,7 +258,7 @@ _08001754: lsls r1, 2 b _0800176C .align 2, 0 -_08001760: .4byte gTeamInventory_203B460 +_08001760: .4byte gTeamInventoryRef _08001764: ldr r0, _08001774 ldr r0, [r0] @@ -269,7 +269,7 @@ _0800176C: ldr r0, [r0] b _0800177A .align 2, 0 -_08001774: .4byte gTeamInventory_203B460 +_08001774: .4byte gTeamInventoryRef _08001778: movs r0, 0 _0800177A: @@ -423,7 +423,7 @@ _080018A4: ldr r0, [r0] b _080018CE .align 2, 0 -_080018B4: .4byte gTeamInventory_203B460 +_080018B4: .4byte gTeamInventoryRef _080018B8: ldr r0, _080018C8 ldr r0, [r0] @@ -433,7 +433,7 @@ _080018B8: ldr r0, [r0] b _080018CE .align 2, 0 -_080018C8: .4byte gTeamInventory_203B460 +_080018C8: .4byte gTeamInventoryRef _080018CC: movs r0, 0 _080018CE: @@ -528,7 +528,7 @@ _08001972: adds r0, r1 b _0800198E .align 2, 0 -_08001980: .4byte gTeamInventory_203B460 +_08001980: .4byte gTeamInventoryRef _08001984: ldr r0, _08001998 ldr r0, [r0] @@ -543,7 +543,7 @@ _08001990: pop {r0} bx r0 .align 2, 0 -_08001998: .4byte gTeamInventory_203B460 +_08001998: .4byte gTeamInventoryRef thumb_func_end sub_80018D8 thumb_func_start sub_800199C @@ -642,7 +642,7 @@ _08001A4E: lsls r1, 2 b _08001A64 .align 2, 0 -_08001A58: .4byte gTeamInventory_203B460 +_08001A58: .4byte gTeamInventoryRef _08001A5C: ldr r0, _08001A70 ldr r0, [r0] @@ -657,7 +657,7 @@ _08001A68: pop {r0} bx r0 .align 2, 0 -_08001A70: .4byte gTeamInventory_203B460 +_08001A70: .4byte gTeamInventoryRef thumb_func_end sub_800199C .align 2, 0 @ Don't pad with nop. diff --git a/asm/ground_script.s b/asm/ground_script.s index 3a5a0c7b0..62a505d94 100644 --- a/asm/ground_script.s +++ b/asm/ground_script.s @@ -7579,7 +7579,7 @@ _080A1C5E: b _080A236A .align 2, 0 _080A1C64: .4byte gUnknown_81167E4 -_080A1C68: .4byte gTeamInventory_203B460 +_080A1C68: .4byte gTeamInventoryRef _080A1C6C: .4byte 0x000003e6 _080A1C70: ldr r0, _080A1C80 @@ -8016,7 +8016,7 @@ _080A1FE0: .align 2, 0 _080A200C: .4byte gUnknown_8116844 _080A2010: .4byte 0x000003e6 -_080A2014: .4byte gTeamInventory_203B460 +_080A2014: .4byte gTeamInventoryRef _080A2018: ldrb r0, [r6, 0x2] movs r1, 0 diff --git a/include/team_inventory.h b/include/team_inventory.h index 0c7ab7d49..a447aafd5 100644 --- a/include/team_inventory.h +++ b/include/team_inventory.h @@ -15,7 +15,7 @@ struct TeamInventory /* 0x264 */ s32 teamSavings; }; -extern struct TeamInventory *gTeamInventory_203B460; +extern struct TeamInventory *gTeamInventoryRef; #define MAX_TEAM_MONEY 99999 #define MAX_TEAM_SAVINGS 9999999 diff --git a/src/code_801AFA4.c b/src/code_801AFA4.c index 3aab78979..f8ce4a761 100644 --- a/src/code_801AFA4.c +++ b/src/code_801AFA4.c @@ -63,7 +63,7 @@ u32 sub_801AFA4(u32 index) { gUnknown_203B22C = MemoryAlloc(sizeof(struct unkStruct_203B22C), 8); gUnknown_203B22C->teamItemIndex = index; - gUnknown_203B22C->id = gTeamInventory_203B460->teamItems[index].id; + gUnknown_203B22C->id = gTeamInventoryRef->teamItems[index].id; gUnknown_203B22C->moveID = GetItemMoveID(gUnknown_203B22C->id); sub_8092C84(gUnknown_202E1C8, gUnknown_203B22C->moveID); sub_8099690(0); @@ -135,8 +135,8 @@ void sub_801B080(void) sub_8094060(gUnknown_203B22C->moves, gUnknown_203B22C->pokeStruct->moves); if(!IsHMItem(gUnknown_203B22C->id)) { - gTeamInventory_203B460->teamItems[gUnknown_203B22C->teamItemIndex].quantity = gUnknown_203B22C->id - 0x7D; - gTeamInventory_203B460->teamItems[gUnknown_203B22C->teamItemIndex].id = ITEM_TM_USED_TM; + gTeamInventoryRef->teamItems[gUnknown_203B22C->teamItemIndex].quantity = gUnknown_203B22C->id - 0x7D; + gTeamInventoryRef->teamItems[gUnknown_203B22C->teamItemIndex].id = ITEM_TM_USED_TM; } PlaySound(0x9C << 1); // {CENTER_ALIGN}CM{ARG_POKEMON_8}{END_COLOR_TEXT_1} learned diff --git a/src/code_801B3C0.c b/src/code_801B3C0.c index cd51d8bdf..234baf06b 100644 --- a/src/code_801B3C0.c +++ b/src/code_801B3C0.c @@ -401,14 +401,14 @@ void sub_801B874(void) { if(IsNotMoneyOrUsedTMItem(gUnknown_203B234->unk10.id)) { - if((gTeamInventory_203B460->teamStorage[gUnknown_203B234->unk10.id] + gUnknown_203B234->unkC) > 0x3e7) + if((gTeamInventoryRef->teamStorage[gUnknown_203B234->unk10.id] + gUnknown_203B234->unkC) > 0x3e7) { store: gUnknown_203B234->fallbackState = 6; } else { - gTeamInventory_203B460->teamStorage[gUnknown_203B234->unk10.id] += gUnknown_203B234->unkC; + gTeamInventoryRef->teamStorage[gUnknown_203B234->unk10.id] += gUnknown_203B234->unkC; PlaySound(0xCB); gUnknown_203B234->fallbackState = 5; } @@ -612,13 +612,13 @@ void sub_801BCCC(void) break; case 3: gUnknown_203B234->unk24 = sub_801A8AC(); - gUnknown_203B234->unk20 = gTeamInventory_203B460->teamItems[gUnknown_203B234->unk24]; + gUnknown_203B234->unk20 = gTeamInventoryRef->teamItems[gUnknown_203B234->unk24]; sub_8090E14(gUnknown_202DEA8, &gUnknown_203B234->unk20, &gUnknown_203B234->unk14); sub_801B748(0xA); break; case 4: gUnknown_203B234->unk24 = sub_801A8AC(); - gUnknown_203B234->unk20 = gTeamInventory_203B460->teamItems[gUnknown_203B234->unk24]; + gUnknown_203B234->unk20 = gTeamInventoryRef->teamItems[gUnknown_203B234->unk24]; sub_8090E14(gUnknown_202DEA8, &gUnknown_203B234->unk20, &gUnknown_203B234->unk14); sub_8099690(0); sub_801B748(0xB); diff --git a/src/code_801C620.c b/src/code_801C620.c index 512e3931a..17cb70e18 100644 --- a/src/code_801C620.c +++ b/src/code_801C620.c @@ -968,7 +968,7 @@ void sub_801CCD8(void) xxx_call_draw_string(8,y,buffer,gUnknown_203B244->unk4E8,0); y2 = sub_8013800(&gUnknown_203B244->input,index); sub_8012BC4((gUnknown_203B244->unk4EC->unkC << 3) - 2,y2, - gTeamInventory_203B460->teamStorage[uVar3],3,5,gUnknown_203B244->unk4E8); + gTeamInventoryRef->teamStorage[uVar3],3,5,gUnknown_203B244->unk4E8); if ((sub_801CFE0(uVar3) & 1) != 0) { sub_8007B7C(gUnknown_203B244->unk4E8,0x8,sub_8013800(&gUnknown_203B244->input,index), (gUnknown_203B244->unk4EC->unkC + -1) * '\b',10); } @@ -989,7 +989,7 @@ u32 sub_801CE58(void) for(itemIndex = 1; itemIndex < NUMBER_OF_ITEM_IDS; itemIndex++) { if ((gUnknown_203B244->unk0 == 2) || - ((gTeamInventory_203B460->teamStorage[itemIndex] != 0) && (IsNotMoneyOrUsedTMItem(itemIndex)))) { + ((gTeamInventoryRef->teamStorage[itemIndex] != 0) && (IsNotMoneyOrUsedTMItem(itemIndex)))) { gUnknown_203B244->itemIDs[itemCount] = itemIndex; itemCount++; } @@ -1017,7 +1017,7 @@ bool8 sub_801CF14(s32 param_1) { else { for(itemID = ITEM_STICK; itemID < NUMBER_OF_ITEM_IDS; itemID++) { - if ((gTeamInventory_203B460->teamStorage[itemID] != 0) && (IsNotMoneyOrUsedTMItem(itemID))) return FALSE; + if ((gTeamInventoryRef->teamStorage[itemID] != 0) && (IsNotMoneyOrUsedTMItem(itemID))) return FALSE; } return TRUE; } @@ -1031,7 +1031,7 @@ bool8 sub_801CF50(s32 param_1) { else { for(itemID = ITEM_STICK; itemID < NUMBER_OF_ITEM_IDS; itemID++) { - if ((IsNotMoneyOrUsedTMItem(itemID)) && (gTeamInventory_203B460->teamStorage[itemID] < 999)) return FALSE; + if ((IsNotMoneyOrUsedTMItem(itemID)) && (gTeamInventoryRef->teamStorage[itemID] < 999)) return FALSE; } return TRUE; } diff --git a/src/code_801D760.c b/src/code_801D760.c index 4013c6019..09e025468 100644 --- a/src/code_801D760.c +++ b/src/code_801D760.c @@ -481,7 +481,7 @@ void sub_801D894(void) rank = GetRescueTeamRank(); sprintfStatic(buffer, r5, GetTeamRankString(rank), GetTeamRankPts()); xxx_call_draw_string(32, 4, buffer, 2, 0); - sprintfStatic(buffer, gUnknown_80DBF4C, gTeamInventory_203B460->teamMoney); + sprintfStatic(buffer, gUnknown_80DBF4C, gTeamInventoryRef->teamMoney); xxx_call_draw_string(32, 18, buffer, 2, 0); sub_80073E0(2); } diff --git a/src/code_8021774_pre.c b/src/code_8021774_pre.c index 06ffe95e1..dbaf054f2 100644 --- a/src/code_8021774_pre.c +++ b/src/code_8021774_pre.c @@ -75,7 +75,7 @@ u32 sub_8021274(u8 param_1) PlayMenuSoundEffect(1); return 2; case INPUT_A_BUTTON: - if ((gUnknown_203B280->unk3C == 2) && (GetFriendAreaPrice(sub_802132C()) > gTeamInventory_203B460->teamMoney)) + if ((gUnknown_203B280->unk3C == 2) && (GetFriendAreaPrice(sub_802132C()) > gTeamInventoryRef->teamMoney)) { PlayMenuSoundEffect(2); } diff --git a/src/code_8023144.c b/src/code_8023144.c index 25b14e435..4dd4bd278 100644 --- a/src/code_8023144.c +++ b/src/code_8023144.c @@ -128,12 +128,12 @@ void sub_8022E78(void) { case 3: gUnknown_203B294->itemIndex = sub_801A8AC(); - gUnknown_203B294->item = gTeamInventory_203B460->teamItems[gUnknown_203B294->itemIndex]; + gUnknown_203B294->item = gTeamInventoryRef->teamItems[gUnknown_203B294->itemIndex]; sub_8022924(2); break; case 4: gUnknown_203B294->itemIndex = sub_801A8AC(); - gUnknown_203B294->item = gTeamInventory_203B460->teamItems[gUnknown_203B294->itemIndex]; + gUnknown_203B294->item = gTeamInventoryRef->teamItems[gUnknown_203B294->itemIndex]; sub_8099690(0); sub_8022924(4); break; @@ -170,7 +170,7 @@ void sub_8022EF4(void) gUnknown_203B294->unk40 = 1; boostAmount = gUnknown_203B294->gummi.boostAmount; - sub_8090E14(gUnknown_202DE58, &gTeamInventory_203B460->teamItems[gUnknown_203B294->itemIndex], NULL); + sub_8090E14(gUnknown_202DE58, &gTeamInventoryRef->teamItems[gUnknown_203B294->itemIndex], NULL); if(boostAmount != -1) ShiftItemsDownFrom(gUnknown_203B294->itemIndex); diff --git a/src/code_80958E8_1.c b/src/code_80958E8_1.c index e4a14c907..eba9be962 100644 --- a/src/code_80958E8_1.c +++ b/src/code_80958E8_1.c @@ -287,7 +287,7 @@ void sub_8096AF8(struct unkStruct_8096AF8 *param_1, u8 slotIndex,u8 dungeon) if (jobSlot->mailType == MAIL_TYPE_TAKEN_JOB) { for(index = 0; index < INVENTORY_SIZE; index++) { - item = &gTeamInventory_203B460->teamItems[index]; + item = &gTeamInventoryRef->teamItems[index]; if (((item->flags & ITEM_FLAG_EXISTS)) && (item->id == jobSlot->targetItem)) { param_1->unk0 = TRUE; } diff --git a/src/debug_menu_mid.c b/src/debug_menu_mid.c index 8c948a0ff..183336a20 100644 --- a/src/debug_menu_mid.c +++ b/src/debug_menu_mid.c @@ -232,7 +232,7 @@ void sub_803A5A0(void) gUnknown_203B3F0->unkAC = 3; gUnknown_203B3F0->unkA4 = 0; gUnknown_203B3F0->unkA8 = 0x3e7; - gUnknown_203B3F0->unkA0 = gTeamInventory_203B460->teamStorage[gUnknown_203B3F0->id]; + gUnknown_203B3F0->unkA0 = gTeamInventoryRef->teamStorage[gUnknown_203B3F0->id]; gUnknown_203B3F0->unkB0 = 1; gUnknown_203B3F0->unkB4 = &gUnknown_203B3F0->unkD8[1]; gUnknown_203B3F0->unkB8 = 0x2C; @@ -331,7 +331,7 @@ void sub_803A810(void) switch(sub_8013BBC(&gUnknown_203B3F0->unk9C)) { case 3: - gTeamInventory_203B460->teamStorage[gUnknown_203B3F0->id] = gUnknown_203B3F0->unk9C; + gTeamInventoryRef->teamStorage[gUnknown_203B3F0->id] = gUnknown_203B3F0->unk9C; // Fallthrough needed to match case 2: sub_803A504(1); diff --git a/src/dungeon_ai_items.c b/src/dungeon_ai_items.c index 4e9329e3a..74d44c091 100644 --- a/src/dungeon_ai_items.c +++ b/src/dungeon_ai_items.c @@ -38,7 +38,7 @@ extern s32 gNumPotentialTargets; extern u32 gPotentialItemTargetWeights[NUM_DIRECTIONS]; extern u32 gPotentialItemTargetDirections[NUM_DIRECTIONS]; extern bool8 gTargetAhead[NUM_DIRECTIONS]; -extern struct TeamInventory *gTeamInventory_203B460; +extern struct TeamInventory *gTeamInventoryRef; void sub_807360C(struct Entity *pokemon) { @@ -176,7 +176,7 @@ void DecideUseItem(struct Entity *pokemon) } else if (pokemonInfo->isTeamLeader) { - item = &gTeamInventory_203B460->teamItems[toolboxIndex - 2]; + item = &gTeamInventoryRef->teamItems[toolboxIndex - 2]; selectedToolboxIndex = toolboxIndex - 1; } else diff --git a/src/dungeon_items.c b/src/dungeon_items.c index eec9ff815..5adb7ce73 100644 --- a/src/dungeon_items.c +++ b/src/dungeon_items.c @@ -111,7 +111,7 @@ void MusicBoxCreation(void) indexes[1] = -1; indexes[2] = -1; - for(iVar4 = 0, pbVar3 = &gTeamInventory_203B460->teamItems[iVar4]; iVar4 < 20; pbVar3++, iVar4++) + for(iVar4 = 0, pbVar3 = &gTeamInventoryRef->teamItems[iVar4]; iVar4 < 20; pbVar3++, iVar4++) { if (pbVar3->flags & ITEM_FLAG_EXISTS) { if (pbVar3->id == ITEM_ROCK_PART) { @@ -136,23 +136,23 @@ void MusicBoxCreation(void) createMusicBox = TRUE; // clear out each of the parts - pbVar4 = &gTeamInventory_203B460->teamItems[indexes[0]]; + pbVar4 = &gTeamInventoryRef->teamItems[indexes[0]]; pbVar4->id = 0; pbVar4->quantity = 0; pbVar4->flags = 0; - pbVar5 = &gTeamInventory_203B460->teamItems[indexes[1]]; + pbVar5 = &gTeamInventoryRef->teamItems[indexes[1]]; pbVar5->id = 0; pbVar5->quantity = 0; pbVar5->flags = 0; - pbVar5 = &gTeamInventory_203B460->teamItems[indexes[2]]; + pbVar5 = &gTeamInventoryRef->teamItems[indexes[2]]; pbVar5->id = 0; pbVar5->quantity = 0; pbVar5->flags = 0; // init the music box - xxx_init_itemslot_8090A8C(&gTeamInventory_203B460->teamItems[indexes[0]], ITEM_MUSIC_BOX, 0); + xxx_init_itemslot_8090A8C(&gTeamInventoryRef->teamItems[indexes[0]], ITEM_MUSIC_BOX, 0); } } while (musicBoxOnce); @@ -342,7 +342,7 @@ void MusicBoxCreation(void) "\tpop {r0}\n" "\tbx r0\n" "\t.align 2, 0\n" -"_08046EDC: .4byte gTeamInventory_203B460\n" +"_08046EDC: .4byte gTeamInventoryRef\n" "_08046EE0: .4byte sub_80861A8\n" "_08046EE4: .4byte gDungeon\n" "_08046EE8: .4byte 0x0001356c\n" @@ -394,7 +394,7 @@ void sub_8046F84(s32 itemFlag) for(index = 0; index < INVENTORY_SIZE; index++) { - item = &gTeamInventory_203B460->teamItems[index]; + item = &gTeamInventoryRef->teamItems[index]; if ((item->flags & ITEM_FLAG_EXISTS) && (item->flags & itemFlag)) { item->id = 0; item->quantity = 0; @@ -427,7 +427,7 @@ void sub_804700C(void) for(index = 0; index < INVENTORY_SIZE; index++) { - item = &gTeamInventory_203B460->teamItems[index]; + item = &gTeamInventoryRef->teamItems[index]; if ((item->flags & ITEM_FLAG_EXISTS)) { xxx_init_itemslot_8090A8C(item, ITEM_PLAIN_SEED, 0); } @@ -456,7 +456,7 @@ bool8 sub_8047084(s32 itemFlag) // NEED THIS ORDERING TO MATCH index = 0; - item = &gTeamInventory_203B460->teamItems[index]; + item = &gTeamInventoryRef->teamItems[index]; for(index = 0; index < INVENTORY_SIZE; item++, index++) { @@ -487,7 +487,7 @@ void sub_8047104(void) for(index = 0; index < INVENTORY_SIZE; index++) { - item = &gTeamInventory_203B460->teamItems[index]; + item = &gTeamInventoryRef->teamItems[index]; if (item->flags & ITEM_FLAG_EXISTS) { if(item->id == ITEM_POKE) diff --git a/src/event_flag.c b/src/event_flag.c index ece655349..186ed3295 100644 --- a/src/event_flag.c +++ b/src/event_flag.c @@ -252,7 +252,7 @@ void sub_8001D88(void) } if (auStack8 > 0x11) { sub_80973A8(0x25,1); - if (((FindItemInInventory(ITEM_HM_DIVE) != -1) || (gTeamInventory_203B460->teamStorage[ITEM_HM_DIVE] != 0)) || + if (((FindItemInInventory(ITEM_HM_DIVE) != -1) || (gTeamInventoryRef->teamStorage[ITEM_HM_DIVE] != 0)) || (sub_8001D44(5,0x21,3) != 0)) { sub_80973A8(0x22,1); } @@ -278,7 +278,7 @@ void sub_8001D88(void) if (sub_8001D08(5,0,0)) { ScenarioCalc(5,0x21,1); } - if ((FindItemInInventory(ITEM_HM_SURF) != -1) || (gTeamInventory_203B460->teamStorage[ITEM_HM_SURF] != 0)) { + if ((FindItemInInventory(ITEM_HM_SURF) != -1) || (gTeamInventoryRef->teamStorage[ITEM_HM_SURF] != 0)) { if (sub_8001D08(7,0,0)) { ScenarioCalc(7,0x26,1); } diff --git a/src/felicity_bank.c b/src/felicity_bank.c index 475ba9b9f..b55bb173f 100644 --- a/src/felicity_bank.c +++ b/src/felicity_bank.c @@ -175,11 +175,11 @@ void UpdateFelicityBankDialogue(void) case 0x1: CreateFelicityBankShopMenu(); gFelicityBankWork->fallbackState = 2; - if (gTeamInventory_203B460->teamSavings == 0) + if (gTeamInventoryRef->teamSavings == 0) sub_8014248(gFelicityDialogue[gFelicityBankWork->isAsleep][1], 0, gFelicityBankWork->menuAction, gFelicityBankWork->unk14, gFelicityBankWork->unk54, 4, 0, gFelicityBankWork->unkA4, 0xC); else { - gUnknown_202DE30 = gTeamInventory_203B460->teamSavings; + gUnknown_202DE30 = gTeamInventoryRef->teamSavings; sub_8014248(gFelicityDialogue[gFelicityBankWork->isAsleep][2], 0, gFelicityBankWork->menuAction, gFelicityBankWork->unk14, gFelicityBankWork->unk54, 4, 0, gFelicityBankWork->unkA4, 0xC); } @@ -190,10 +190,10 @@ void UpdateFelicityBankDialogue(void) break; case 0x4: gFelicityBankWork->fallbackState = 6; - if (gTeamInventory_203B460->teamSavings == 0) + if (gTeamInventoryRef->teamSavings == 0) sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][4], 0, gFelicityBankWork->unkA4, 0x10D); else { - gUnknown_202DE30 = gTeamInventory_203B460->teamSavings; + gUnknown_202DE30 = gTeamInventoryRef->teamSavings; sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][5], 0, gFelicityBankWork->unkA4, 0x10D); } break; @@ -202,11 +202,11 @@ void UpdateFelicityBankDialogue(void) sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][3], 0, gFelicityBankWork->unkA4, 0x10D); break; case 0x7: - if (gTeamInventory_203B460->teamMoney == 0) { + if (gTeamInventoryRef->teamMoney == 0) { gFelicityBankWork->fallbackState = 1; sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][7], 0, gFelicityBankWork->unkA4, 0x10D); } - else if (gTeamInventory_203B460->teamSavings >= MAX_TEAM_SAVINGS) { + else if (gTeamInventoryRef->teamSavings >= MAX_TEAM_SAVINGS) { gFelicityBankWork->fallbackState = 1; sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][8], 0, gFelicityBankWork->unkA4, 0x10D); } @@ -216,9 +216,9 @@ void UpdateFelicityBankDialogue(void) } break; case 0x8: - gFelicityBankWork->maximumDepositWithdraw = MAX_TEAM_SAVINGS - gTeamInventory_203B460->teamSavings; - if (gFelicityBankWork->maximumDepositWithdraw > gTeamInventory_203B460->teamMoney) - gFelicityBankWork->maximumDepositWithdraw = gTeamInventory_203B460->teamMoney; + gFelicityBankWork->maximumDepositWithdraw = MAX_TEAM_SAVINGS - gTeamInventoryRef->teamSavings; + if (gFelicityBankWork->maximumDepositWithdraw > gTeamInventoryRef->teamMoney) + gFelicityBankWork->maximumDepositWithdraw = gTeamInventoryRef->teamMoney; gFelicityBankWork->unk68 = gFelicityBankWork->maximumDepositWithdraw; gFelicityBankWork->unk6C = 1; gFelicityBankWork->unk74 = 5; @@ -236,24 +236,24 @@ void UpdateFelicityBankDialogue(void) sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][9], 0, gFelicityBankWork->unkA4, 0x10D); break; case 0xA: - if (gTeamInventory_203B460->teamMoney >= MAX_TEAM_MONEY) { + if (gTeamInventoryRef->teamMoney >= MAX_TEAM_MONEY) { gFelicityBankWork->fallbackState = 1; sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][12], 0, gFelicityBankWork->unkA4, 0x10D); } - else if (gTeamInventory_203B460->teamSavings == 0) { + else if (gTeamInventoryRef->teamSavings == 0) { gFelicityBankWork->fallbackState = 1; sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][11], 0, gFelicityBankWork->unkA4, 0x10D); } else { gFelicityBankWork->fallbackState = 11; - gUnknown_202DE30 = gTeamInventory_203B460->teamSavings; + gUnknown_202DE30 = gTeamInventoryRef->teamSavings; sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][10], 0, gFelicityBankWork->unkA4, 0x10D); } break; case 0xB: - gFelicityBankWork->maximumDepositWithdraw = MAX_TEAM_MONEY - gTeamInventory_203B460->teamMoney; - if (gFelicityBankWork->maximumDepositWithdraw > gTeamInventory_203B460->teamSavings) - gFelicityBankWork->maximumDepositWithdraw = gTeamInventory_203B460->teamSavings; + gFelicityBankWork->maximumDepositWithdraw = MAX_TEAM_MONEY - gTeamInventoryRef->teamMoney; + if (gFelicityBankWork->maximumDepositWithdraw > gTeamInventoryRef->teamSavings) + gFelicityBankWork->maximumDepositWithdraw = gTeamInventoryRef->teamSavings; gFelicityBankWork->unk68 = gFelicityBankWork->maximumDepositWithdraw; gFelicityBankWork->unk6C = 1; gFelicityBankWork->unk74 = 5; @@ -343,8 +343,8 @@ void Felicity_DepositMoney(void) break; case 3: gFelicityBankWork->chosenAmount = gFelicityBankWork->unk64; - gTeamInventory_203B460->teamSavings += gFelicityBankWork->chosenAmount; - gTeamInventory_203B460->teamMoney -= gFelicityBankWork->chosenAmount; + gTeamInventoryRef->teamSavings += gFelicityBankWork->chosenAmount; + gTeamInventoryRef->teamMoney -= gFelicityBankWork->chosenAmount; PlaySound(0x14c); UpdateFelicityBankState(9); break; @@ -364,8 +364,8 @@ void Felicity_WithdrawMoney(void) break; case 3: gFelicityBankWork->chosenAmount = gFelicityBankWork->unk64; - gTeamInventory_203B460->teamMoney += gFelicityBankWork->chosenAmount; - gTeamInventory_203B460->teamSavings -= gFelicityBankWork->chosenAmount; + gTeamInventoryRef->teamMoney += gFelicityBankWork->chosenAmount; + gTeamInventoryRef->teamSavings -= gFelicityBankWork->chosenAmount; PlaySound(0x14c); UpdateFelicityBankState(0xc); break; @@ -410,9 +410,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, gTeamInventory_203B460->teamMoney, 5, 5, param_1); + sub_8012BC4(96, 4, gTeamInventoryRef->teamMoney, 5, 5, param_1); xxx_call_draw_string(112, 4, gFelicitySavings, param_1, 0); - sub_8012BC4(200, 4, gTeamInventory_203B460->teamSavings, 7, 5, param_1); + sub_8012BC4(200, 4, gTeamInventoryRef->teamSavings, 7, 5, param_1); sub_80073E0(param_1); } @@ -421,6 +421,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, gTeamInventory_203B460->teamMoney, 5, 5, param_1); + sub_8012BC4(42, 12, gTeamInventoryRef->teamMoney, 5, 5, param_1); sub_80073E0(param_1); } diff --git a/src/friend_area_action_menu_1.c b/src/friend_area_action_menu_1.c index 36e827fd8..7af07dd81 100644 --- a/src/friend_area_action_menu_1.c +++ b/src/friend_area_action_menu_1.c @@ -12,7 +12,7 @@ #include "kecleon_bros.h" extern struct unkStruct_203B2BC *gUnknown_203B2BC; -extern struct TeamInventory *gTeamInventory_203B460; +extern struct TeamInventory *gTeamInventoryRef; extern u32 sub_801B410(); extern void sub_801B450(); @@ -322,14 +322,14 @@ void sub_8027B28(void) { case 3: gUnknown_203B2BC->id = sub_801A8AC(); - gUnknown_203B2BC->itemToGive.id = gTeamInventory_203B460->teamItems[gUnknown_203B2BC->id].id; - gUnknown_203B2BC->itemToGive.quantity = gTeamInventory_203B460->teamItems[gUnknown_203B2BC->id].quantity; + gUnknown_203B2BC->itemToGive.id = gTeamInventoryRef->teamItems[gUnknown_203B2BC->id].id; + gUnknown_203B2BC->itemToGive.quantity = gTeamInventoryRef->teamItems[gUnknown_203B2BC->id].quantity; SetFriendAreaActionMenuState(0xc); break; case 4: gUnknown_203B2BC->id = sub_801A8AC(); - gUnknown_203B2BC->itemToGive.id = gTeamInventory_203B460->teamItems[gUnknown_203B2BC->id].id; - gUnknown_203B2BC->itemToGive.quantity = gTeamInventory_203B460->teamItems[gUnknown_203B2BC->id].quantity; + gUnknown_203B2BC->itemToGive.id = gTeamInventoryRef->teamItems[gUnknown_203B2BC->id].id; + gUnknown_203B2BC->itemToGive.quantity = gTeamInventoryRef->teamItems[gUnknown_203B2BC->id].quantity; sub_8099690(0); SetFriendAreaActionMenuState(0xd); break; @@ -516,10 +516,10 @@ bool8 sub_8027E4C(struct PokemonStruct *pokeStruct) { if(IsThrowableItem(pokeStruct->heldItem.id)) { - if(gTeamInventory_203B460->teamStorage[pokeStruct->heldItem.id] + pokeStruct->heldItem.quantity > 0x3e7) + if(gTeamInventoryRef->teamStorage[pokeStruct->heldItem.id] + pokeStruct->heldItem.quantity > 0x3e7) return FALSE; } - else if(gTeamInventory_203B460->teamStorage[pokeStruct->heldItem.id] > 0x3e6) + else if(gTeamInventoryRef->teamStorage[pokeStruct->heldItem.id] > 0x3e6) { return FALSE; } @@ -543,9 +543,9 @@ void sub_8027EB8(void) case 2: PlaySound(0x14d); if(IsThrowableItem(gUnknown_203B2BC->item2.id)) - gTeamInventory_203B460->teamStorage[gUnknown_203B2BC->item2.id] += gUnknown_203B2BC->item2.quantity; + gTeamInventoryRef->teamStorage[gUnknown_203B2BC->item2.id] += gUnknown_203B2BC->item2.quantity; else - gTeamInventory_203B460->teamStorage[gUnknown_203B2BC->item2.id] += 1; + gTeamInventoryRef->teamStorage[gUnknown_203B2BC->item2.id] += 1; gUnknown_203B2BC->item2.id = ITEM_NOTHING; gUnknown_203B2BC->item2.quantity = 0; GivePokemonItem(gUnknown_203B2BC->targetPoke, &gUnknown_203B2BC->item2); diff --git a/src/friend_list_menu.c b/src/friend_list_menu.c index 34a99a9b0..07134ece5 100644 --- a/src/friend_list_menu.c +++ b/src/friend_list_menu.c @@ -611,14 +611,14 @@ void sub_8025C04(void) { case 3: gUnknown_203B2B4->itemIndex = sub_801A8AC(); - gUnknown_203B2B4->item1.id = gTeamInventory_203B460->teamItems[gUnknown_203B2B4->itemIndex].id; - gUnknown_203B2B4->item1.quantity = gTeamInventory_203B460->teamItems[gUnknown_203B2B4->itemIndex].quantity; + gUnknown_203B2B4->item1.id = gTeamInventoryRef->teamItems[gUnknown_203B2B4->itemIndex].id; + gUnknown_203B2B4->item1.quantity = gTeamInventoryRef->teamItems[gUnknown_203B2B4->itemIndex].quantity; sub_8025434(0xD); break; case 4: gUnknown_203B2B4->itemIndex = sub_801A8AC(); - gUnknown_203B2B4->item1.id = gTeamInventory_203B460->teamItems[gUnknown_203B2B4->itemIndex].id; - gUnknown_203B2B4->item1.quantity = gTeamInventory_203B460->teamItems[gUnknown_203B2B4->itemIndex].quantity; + gUnknown_203B2B4->item1.id = gTeamInventoryRef->teamItems[gUnknown_203B2B4->itemIndex].id; + gUnknown_203B2B4->item1.quantity = gTeamInventoryRef->teamItems[gUnknown_203B2B4->itemIndex].quantity; sub_8099690(0); sub_8025434(0xE); break; diff --git a/src/friend_rescue.c b/src/friend_rescue.c index f35a7f52e..654a17b88 100644 --- a/src/friend_rescue.c +++ b/src/friend_rescue.c @@ -24,7 +24,7 @@ extern u32 sub_802F298(); extern char gUnknown_202E5D8[0x50]; extern char gAvailablePokemonNames[0x50]; -extern struct TeamInventory *gTeamInventory_203B460; +extern struct TeamInventory *gTeamInventoryRef; extern u8 gUnknown_80E44A4[]; extern u8 gUnknown_80E4500[]; @@ -2692,7 +2692,7 @@ void sub_8034F88(void) mail = GetMailatIndex(gUnknown_203B33C->unk218); if(gUnknown_203B33C->item.id != ITEM_NOTHING) mail->item = gUnknown_203B33C->item; - gTeamInventory_203B460->teamStorage[gUnknown_203B33C->item.id]--; + gTeamInventoryRef->teamStorage[gUnknown_203B33C->item.id]--; SetFriendRescueMenuState(0x75); break; case 7: diff --git a/src/gulpin_shop_1.c b/src/gulpin_shop_1.c index 6fb36dfbc..33104cf5f 100644 --- a/src/gulpin_shop_1.c +++ b/src/gulpin_shop_1.c @@ -243,7 +243,7 @@ u32 sub_801FC40(void) break; case 0xd: if (gUnknown_203B27C->unk15 == TRUE) { - gTeamInventory_203B460->teamMoney -= 150; + gTeamInventoryRef->teamMoney -= 150; } return 3; default: @@ -1049,7 +1049,7 @@ void sub_8020EB4(void) sub_801FDA8(0x1F); break; case 8: - if(gTeamInventory_203B460->teamMoney < 150) + if(gTeamInventoryRef->teamMoney < 150) { PlayMenuSoundEffect(2); sub_801FDA8(0x3); diff --git a/src/items.c b/src/items.c index 89b5b5e62..ae765bd55 100644 --- a/src/items.c +++ b/src/items.c @@ -35,8 +35,8 @@ extern u8 gInvalidItemIDs[0x10]; EWRAM_DATA struct OpenedFile *gItemParametersFile = {0}; EWRAM_DATA struct ItemDataEntry *gItemParametersData = {0}; -EWRAM_DATA struct TeamInventory gUnknown_20389A8 = {0}; -EWRAM_DATA_2 struct TeamInventory *gTeamInventory_203B460 = {0}; +EWRAM_DATA struct TeamInventory gTeamInventory = {0}; +EWRAM_DATA_2 struct TeamInventory *gTeamInventoryRef = {0}; extern s32 sub_8090FEC(s32 a1, u8* a2, u8 a3); extern void sub_80073B8(u32); @@ -50,14 +50,14 @@ bool8 AddKecleonWareItem(u8); void LoadItemParameters(void) { - gTeamInventory_203B460 = &gUnknown_20389A8; + gTeamInventoryRef = &gTeamInventory; gItemParametersFile = OpenFileAndGetFileDataPtr(gItemParaFileName,&gSystemFileArchive); gItemParametersData = (struct ItemDataEntry *) gItemParametersFile->data; } struct TeamInventory *GetMoneyItemsInfo(void) { - return &gUnknown_20389A8; + return &gTeamInventory; } void InitializeMoneyItems(void) @@ -66,20 +66,20 @@ void InitializeMoneyItems(void) for(i = 0; i < INVENTORY_SIZE; i++) { - gTeamInventory_203B460->teamItems[i].flags = 0; + gTeamInventoryRef->teamItems[i].flags = 0; } for(i = 0; i < STORAGE_SIZE; i++) { - gTeamInventory_203B460->teamStorage[i] = 0; + gTeamInventoryRef->teamStorage[i] = 0; } for(i = 0; i < MAX_KECLEON_ITEM_SHOP_ITEMS; i++) { InitKecleonShopItem(i); } - gTeamInventory_203B460->teamMoney = 0; - gTeamInventory_203B460->teamSavings = 0; + gTeamInventoryRef->teamMoney = 0; + gTeamInventoryRef->teamSavings = 0; } s32 GetNumberOfFilledInventorySlots(void) @@ -90,7 +90,7 @@ s32 GetNumberOfFilledInventorySlots(void) count = 0; for(i = 0; i < INVENTORY_SIZE; i++) { - if ((gTeamInventory_203B460->teamItems[i].flags & ITEM_FLAG_EXISTS) != 0) { + if ((gTeamInventoryRef->teamItems[i].flags & ITEM_FLAG_EXISTS) != 0) { count++; } } @@ -465,7 +465,7 @@ void FillInventoryGaps() do { while (slot_checking < INVENTORY_SIZE) { - if (slot_checking[gTeamInventory_203B460->teamItems].flags & ITEM_FLAG_EXISTS) { + if (slot_checking[gTeamInventoryRef->teamItems].flags & ITEM_FLAG_EXISTS) { break; } // find next empty slot @@ -478,7 +478,7 @@ void FillInventoryGaps() if (slot_checking > last_filled) { // shift it down - gTeamInventory_203B460->teamItems[last_filled] = gTeamInventory_203B460->teamItems[slot_checking]; + gTeamInventoryRef->teamItems[last_filled] = gTeamInventoryRef->teamItems[slot_checking]; } slot_checking++; last_filled++; @@ -488,12 +488,12 @@ void FillInventoryGaps() for (; last_filled < INVENTORY_SIZE; last_filled++) { struct Item *slot; #ifdef NONMATCHING - slot = &gTeamInventory_203B460->teamItems[last_filled]; + slot = &gTeamInventoryRef->teamItems[last_filled]; #else size_t offs = last_filled << 2; size_t _slot = offs; - _slot += (size_t)gTeamInventory_203B460->teamItems; - slot = (struct Item*)_slot; // &gTeamInventory_203B460->teamItems[end]; + _slot += (size_t)gTeamInventoryRef->teamItems; + slot = (struct Item*)_slot; // &gTeamInventoryRef->teamItems[end]; #endif slot->id = ITEM_NOTHING; slot->quantity = 0; @@ -505,7 +505,7 @@ s32 FindItemInInventory(u8 id) { s32 i; for (i = 0; i < INVENTORY_SIZE; i++) { - if ((gTeamInventory_203B460->teamItems[i].flags & ITEM_FLAG_EXISTS) && (gTeamInventory_203B460->teamItems[i].id == id)) { + if ((gTeamInventoryRef->teamItems[i].flags & ITEM_FLAG_EXISTS) && (gTeamInventoryRef->teamItems[i].id == id)) { return i; } } @@ -518,7 +518,7 @@ s32 GetItemCountInInventory(u8 _id) s32 count = 0; s32 i; for (i = 0; i < INVENTORY_SIZE; i++) { - if ((gTeamInventory_203B460->teamItems[i].unk0 & 1) && (gTeamInventory_203B460->teamItems[i].id == _id)) { + if ((gTeamInventoryRef->teamItems[i].unk0 & 1) && (gTeamInventoryRef->teamItems[i].id == _id)) { count++; } } @@ -527,7 +527,7 @@ s32 GetItemCountInInventory(u8 _id) // have to do hacky stuff to fix initialization order of r6 and r2 u32 id = _id; s32 count = 0; - struct Item *slot = gTeamInventory_203B460->teamItems; + struct Item *slot = gTeamInventoryRef->teamItems; s32 one = 1; s32 i = 19; @@ -566,16 +566,16 @@ void ShiftItemsDownFrom(s32 start) { s32 i, j; for (i = start, j = start + 1; i < INVENTORY_SIZE - 1; i++, j++) { - gTeamInventory_203B460->teamItems[i] = gTeamInventory_203B460->teamItems[j]; + gTeamInventoryRef->teamItems[i] = gTeamInventoryRef->teamItems[j]; } - gTeamInventory_203B460->teamItems[INVENTORY_SIZE - 1].id = ITEM_NOTHING; - gTeamInventory_203B460->teamItems[INVENTORY_SIZE - 1].flags = 0; + gTeamInventoryRef->teamItems[INVENTORY_SIZE - 1].id = ITEM_NOTHING; + gTeamInventoryRef->teamItems[INVENTORY_SIZE - 1].flags = 0; } void ClearItemSlotAt(u32 index) { - gTeamInventory_203B460->teamItems[index].id = ITEM_NOTHING; - gTeamInventory_203B460->teamItems[index].flags = 0; + gTeamInventoryRef->teamItems[index].id = ITEM_NOTHING; + gTeamInventoryRef->teamItems[index].flags = 0; } bool8 sub_809124C(u8 id, u8 param_3) @@ -599,9 +599,9 @@ bool8 AddItemToInventory(const struct Item* slot) // try to add item to inventory, return 1 if failed for (i = 0; i < INVENTORY_SIZE; i++) { - UNUSED struct Item* current = &gTeamInventory_203B460->teamItems[i]; - if (!(i[gTeamInventory_203B460->teamItems].flags & ITEM_FLAG_EXISTS)) { - gTeamInventory_203B460->teamItems[i] = *slot; + UNUSED struct Item* current = &gTeamInventoryRef->teamItems[i]; + if (!(i[gTeamInventoryRef->teamItems].flags & ITEM_FLAG_EXISTS)) { + gTeamInventoryRef->teamItems[i] = *slot; return FALSE; } } @@ -613,10 +613,10 @@ void ConvertMoneyItemToMoney() s32 i = 0; do { - UNUSED struct TeamInventory * _gTeamInventory_203B460 = gTeamInventory_203B460; + UNUSED struct TeamInventory * _gTeamInventoryRef = gTeamInventoryRef; UNUSED size_t offs = offsetof(struct TeamInventory, teamItems[i]); - struct Item* current_slot = &gTeamInventory_203B460->teamItems[i]; + struct Item* current_slot = &gTeamInventoryRef->teamItems[i]; if ((current_slot->flags & ITEM_FLAG_EXISTS) && (current_slot->id == ITEM_POKE)) { u32 result; @@ -634,27 +634,27 @@ void ConvertMoneyItemToMoney() s32 lowest_index = -1; UNUSED size_t offs = offsetof(struct TeamInventory, teamItems[i]); - bool8 item_occupied = i[gTeamInventory_203B460->teamItems].flags & ITEM_FLAG_EXISTS; + bool8 item_occupied = i[gTeamInventoryRef->teamItems].flags & ITEM_FLAG_EXISTS; s32 next = i + 1; if (item_occupied) { - s32 lowest_order = GetItemOrder(gTeamInventory_203B460->teamItems[i].id); + s32 lowest_order = GetItemOrder(gTeamInventoryRef->teamItems[i].id); s32 j; // find next lowest for (j = next; j < INVENTORY_SIZE; j++) { UNUSED size_t offs = offsetof(struct TeamInventory, teamItems[j]); - if ((j[gTeamInventory_203B460->teamItems].flags & ITEM_FLAG_EXISTS) && (lowest_order > GetItemOrder(gTeamInventory_203B460->teamItems[j].id))) { + if ((j[gTeamInventoryRef->teamItems].flags & ITEM_FLAG_EXISTS) && (lowest_order > GetItemOrder(gTeamInventoryRef->teamItems[j].id))) { lowest_index = j; - lowest_order = GetItemOrder(gTeamInventory_203B460->teamItems[j].id); + lowest_order = GetItemOrder(gTeamInventoryRef->teamItems[j].id); } } if (lowest_index >= 0) { // swap the slots - struct Item current = gTeamInventory_203B460->teamItems[i]; - gTeamInventory_203B460->teamItems[i] = gTeamInventory_203B460->teamItems[lowest_index]; - gTeamInventory_203B460->teamItems[lowest_index] = current; + struct Item current = gTeamInventoryRef->teamItems[i]; + gTeamInventoryRef->teamItems[i] = gTeamInventoryRef->teamItems[lowest_index]; + gTeamInventoryRef->teamItems[lowest_index] = current; } } } while (++i < INVENTORY_SIZE); @@ -664,17 +664,17 @@ void ConvertMoneyItemToMoney() void AddToTeamMoney(s32 amount) { s32 clamped_money; - gTeamInventory_203B460->teamMoney += amount; + gTeamInventoryRef->teamMoney += amount; // clamp money clamped_money = MAX_TEAM_MONEY; - if (gTeamInventory_203B460->teamMoney <= MAX_TEAM_MONEY) { - if (gTeamInventory_203B460->teamMoney >= 0) { + if (gTeamInventoryRef->teamMoney <= MAX_TEAM_MONEY) { + if (gTeamInventoryRef->teamMoney >= 0) { return; } clamped_money = 0; } - gTeamInventory_203B460->teamMoney = clamped_money; + gTeamInventoryRef->teamMoney = clamped_money; } u16 GetItemMoveID(u8 index) @@ -932,7 +932,7 @@ bool8 HasGummiItem() s32 i; for (i = 0; i < INVENTORY_SIZE; i++) { UNUSED size_t offs = offsetof(struct TeamInventory, teamItems[i]); - if ((i[gTeamInventory_203B460->teamItems].flags & ITEM_FLAG_EXISTS) && IsGummiItem(i[gTeamInventory_203B460->teamItems].id)) { + if ((i[gTeamInventoryRef->teamItems].flags & ITEM_FLAG_EXISTS) && IsGummiItem(i[gTeamInventoryRef->teamItems].id)) { return TRUE; } } @@ -942,14 +942,14 @@ bool8 HasGummiItem() void MoveToStorage(struct Item* slot) { if (IsThrowableItem(slot->id)) { - gTeamInventory_203B460->teamStorage[slot->id] += slot->quantity; + gTeamInventoryRef->teamStorage[slot->id] += slot->quantity; } else { - gTeamInventory_203B460->teamStorage[slot->id]++; + gTeamInventoryRef->teamStorage[slot->id]++; } - if (gTeamInventory_203B460->teamStorage[slot->id] > 999) { - gTeamInventory_203B460->teamStorage[slot->id] = 999; + if (gTeamInventoryRef->teamStorage[slot->id] > 999) { + gTeamInventoryRef->teamStorage[slot->id] = 999; } } @@ -958,7 +958,7 @@ s32 CountKecleonShopItems(void) s32 i; s32 counter = 0; for (i = 0; i < MAX_KECLEON_ITEM_SHOP_ITEMS; i++) { - if (gTeamInventory_203B460->kecleonShopItems[i].id) { + if (gTeamInventoryRef->kecleonShopItems[i].id) { counter++; } } @@ -969,14 +969,14 @@ void InitKecleonShopItem(u8 index) { struct BulkItem* shopItem; - shopItem = &gTeamInventory_203B460->kecleonShopItems[index]; + shopItem = &gTeamInventoryRef->kecleonShopItems[index]; shopItem->id = ITEM_NOTHING; shopItem->quantity = 0; } struct BulkItem* GetKecleonShopItem(u8 i) { - return &gTeamInventory_203B460->kecleonShopItems[i]; + return &gTeamInventoryRef->kecleonShopItems[i]; } void FillKecleonShopGaps(void) @@ -986,7 +986,7 @@ void FillKecleonShopGaps(void) do { while (slot_checking < MAX_KECLEON_ITEM_SHOP_ITEMS) { - if (gTeamInventory_203B460->kecleonShopItems[slot_checking].id) { + if (gTeamInventoryRef->kecleonShopItems[slot_checking].id) { break; } // find next empty slot @@ -999,7 +999,7 @@ void FillKecleonShopGaps(void) if (slot_checking > last_filled) { // shift it down - gTeamInventory_203B460->kecleonShopItems[last_filled] = gTeamInventory_203B460->kecleonShopItems[slot_checking]; + gTeamInventoryRef->kecleonShopItems[last_filled] = gTeamInventoryRef->kecleonShopItems[slot_checking]; } slot_checking++; last_filled++; @@ -1017,12 +1017,12 @@ void SortKecleonShopInventory(void) { for (i = 0; i < MAX_KECLEON_ITEM_SHOP_ITEMS - 1; i++) { s32 j; for (j = i + 1; j < MAX_KECLEON_ITEM_SHOP_ITEMS; j++) { - s32 order_i = GetItemOrder(gTeamInventory_203B460->kecleonShopItems[i].id); - s32 order_j = GetItemOrder(gTeamInventory_203B460->kecleonShopItems[j].id); - if (order_i > order_j || (order_i == order_j && gTeamInventory_203B460->kecleonShopItems[i].quantity < gTeamInventory_203B460->kecleonShopItems[j].quantity)) { - struct BulkItem str_i = gTeamInventory_203B460->kecleonShopItems[i]; - gTeamInventory_203B460->kecleonShopItems[i] = gTeamInventory_203B460->kecleonShopItems[j]; - gTeamInventory_203B460->kecleonShopItems[j] = str_i; + s32 order_i = GetItemOrder(gTeamInventoryRef->kecleonShopItems[i].id); + s32 order_j = GetItemOrder(gTeamInventoryRef->kecleonShopItems[j].id); + if (order_i > order_j || (order_i == order_j && gTeamInventoryRef->kecleonShopItems[i].quantity < gTeamInventoryRef->kecleonShopItems[j].quantity)) { + struct BulkItem str_i = gTeamInventoryRef->kecleonShopItems[i]; + gTeamInventoryRef->kecleonShopItems[i] = gTeamInventoryRef->kecleonShopItems[j]; + gTeamInventoryRef->kecleonShopItems[j] = str_i; } } } @@ -1051,8 +1051,8 @@ bool8 AddKecleonShopItem(u8 itemIndex) { xxx_init_helditem_8090B08(&held, itemIndex); // initialize for (i = 0; i < MAX_KECLEON_ITEM_SHOP_ITEMS; i++) { - if (!gTeamInventory_203B460->kecleonShopItems[i].id) { - gTeamInventory_203B460->kecleonShopItems[i] = held; + if (!gTeamInventoryRef->kecleonShopItems[i].id) { + gTeamInventoryRef->kecleonShopItems[i] = held; return FALSE; } } @@ -1063,7 +1063,7 @@ u32 CountKecleonWareItems(void) { s32 i; u32 count = 0; for (i = 0; i < MAX_KECLEON_WARE_SHOP_ITEMS; i++) { - if (gTeamInventory_203B460->kecleonWareItems[i].id) { + if (gTeamInventoryRef->kecleonWareItems[i].id) { count++; } } @@ -1071,13 +1071,13 @@ u32 CountKecleonWareItems(void) { } void InitKecleonWareItem(u8 index) { - struct BulkItem* wareItem = &gTeamInventory_203B460->kecleonWareItems[index]; + struct BulkItem* wareItem = &gTeamInventoryRef->kecleonWareItems[index]; wareItem->id = ITEM_NOTHING; wareItem->quantity = 0; } struct BulkItem* GetKecleonWareItem(u8 index) { - return &gTeamInventory_203B460->kecleonWareItems[index]; + return &gTeamInventoryRef->kecleonWareItems[index]; } void FillKecleonWareGaps(void) { @@ -1086,7 +1086,7 @@ void FillKecleonWareGaps(void) { do { while (slot_checking < MAX_KECLEON_WARE_SHOP_ITEMS) { - if (gTeamInventory_203B460->kecleonWareItems[slot_checking].id != ITEM_NOTHING) { + if (gTeamInventoryRef->kecleonWareItems[slot_checking].id != ITEM_NOTHING) { break; } slot_checking++; @@ -1098,7 +1098,7 @@ void FillKecleonWareGaps(void) { if (slot_checking > last_filled) { // shift it down - gTeamInventory_203B460->kecleonWareItems[last_filled] = gTeamInventory_203B460->kecleonWareItems[slot_checking]; + gTeamInventoryRef->kecleonWareItems[last_filled] = gTeamInventoryRef->kecleonWareItems[slot_checking]; } slot_checking++; last_filled++; @@ -1116,12 +1116,12 @@ void SortKecleonWareInventory(void) { for (i = 0; i < MAX_KECLEON_WARE_SHOP_ITEMS - 1; i++) { s32 j; for (j = i + 1; j < MAX_KECLEON_WARE_SHOP_ITEMS; j++) { - s32 order_i = GetItemOrder(gTeamInventory_203B460->kecleonWareItems[i].id); - s32 order_j = GetItemOrder(gTeamInventory_203B460->kecleonWareItems[j].id); - if (order_i > order_j || (order_i == order_j && gTeamInventory_203B460->kecleonWareItems[i].quantity < gTeamInventory_203B460->kecleonWareItems[j].quantity)) { - struct BulkItem str_i = gTeamInventory_203B460->kecleonWareItems[i]; - gTeamInventory_203B460->kecleonWareItems[i] = gTeamInventory_203B460->kecleonWareItems[j]; - gTeamInventory_203B460->kecleonWareItems[j] = str_i; + s32 order_i = GetItemOrder(gTeamInventoryRef->kecleonWareItems[i].id); + s32 order_j = GetItemOrder(gTeamInventoryRef->kecleonWareItems[j].id); + if (order_i > order_j || (order_i == order_j && gTeamInventoryRef->kecleonWareItems[i].quantity < gTeamInventoryRef->kecleonWareItems[j].quantity)) { + struct BulkItem str_i = gTeamInventoryRef->kecleonWareItems[i]; + gTeamInventoryRef->kecleonWareItems[i] = gTeamInventoryRef->kecleonWareItems[j]; + gTeamInventoryRef->kecleonWareItems[j] = str_i; } } } @@ -1149,8 +1149,8 @@ bool8 AddKecleonWareItem(u8 itemIndex) { xxx_init_helditem_8090B08(&held, itemIndex); // initialize for (i = 0; i < MAX_KECLEON_WARE_SHOP_ITEMS; i++) { - if (!gTeamInventory_203B460->kecleonWareItems[i].id) { - gTeamInventory_203B460->kecleonWareItems[i] = held; + if (!gTeamInventoryRef->kecleonWareItems[i].id) { + gTeamInventoryRef->kecleonWareItems[i] = held; return FALSE; } } @@ -1164,19 +1164,19 @@ s32 SaveTeamInventory(u8* unk0, u32 size) xxx_init_struct_8094924_save_809486C(&unk, unk0, size); for (i = 0; i < INVENTORY_SIZE; i++) { - SaveItemSlot(&unk, &gTeamInventory_203B460->teamItems[i]); + SaveItemSlot(&unk, &gTeamInventoryRef->teamItems[i]); } for (i = 0; i < STORAGE_SIZE; i++) { - SaveIntegerBits(&unk, &gTeamInventory_203B460->teamStorage[i], 10); + SaveIntegerBits(&unk, &gTeamInventoryRef->teamStorage[i], 10); } for (i = 0; i < MAX_KECLEON_ITEM_SHOP_ITEMS; i++) { - SaveHeldItem(&unk, &gTeamInventory_203B460->kecleonShopItems[i]); + SaveHeldItem(&unk, &gTeamInventoryRef->kecleonShopItems[i]); } for (i = 0; i < MAX_KECLEON_WARE_SHOP_ITEMS; i++) { - SaveHeldItem(&unk, &gTeamInventory_203B460->kecleonWareItems[i]); + SaveHeldItem(&unk, &gTeamInventoryRef->kecleonWareItems[i]); } - SaveIntegerBits(&unk, &gTeamInventory_203B460->teamMoney, 24); - SaveIntegerBits(&unk, &gTeamInventory_203B460->teamSavings, 24); + SaveIntegerBits(&unk, &gTeamInventoryRef->teamMoney, 24); + SaveIntegerBits(&unk, &gTeamInventoryRef->teamSavings, 24); nullsub_102(&unk); return unk.unk8; } @@ -1188,19 +1188,19 @@ s32 RestoreTeamInventory(u8 *unk0, u32 size) xxx_init_struct_8094924_restore_809485C(&unk, unk0, size); for (i = 0; i < INVENTORY_SIZE; i++) { - RestoreItemSlot(&unk, &gTeamInventory_203B460->teamItems[i]); + RestoreItemSlot(&unk, &gTeamInventoryRef->teamItems[i]); } for (i = 0; i < STORAGE_SIZE; i++) { - RestoreIntegerBits(&unk, &gTeamInventory_203B460->teamStorage[i], 10); + RestoreIntegerBits(&unk, &gTeamInventoryRef->teamStorage[i], 10); } for (i = 0; i < MAX_KECLEON_ITEM_SHOP_ITEMS; i++) { - RestoreHeldItem(&unk, &gTeamInventory_203B460->kecleonShopItems[i]); + RestoreHeldItem(&unk, &gTeamInventoryRef->kecleonShopItems[i]); } for (i = 0; i < MAX_KECLEON_WARE_SHOP_ITEMS; i++) { - RestoreHeldItem(&unk, &gTeamInventory_203B460->kecleonWareItems[i]); + RestoreHeldItem(&unk, &gTeamInventoryRef->kecleonWareItems[i]); } - RestoreIntegerBits(&unk, &gTeamInventory_203B460->teamMoney, 24); - RestoreIntegerBits(&unk, &gTeamInventory_203B460->teamSavings, 24); + RestoreIntegerBits(&unk, &gTeamInventoryRef->teamMoney, 24); + RestoreIntegerBits(&unk, &gTeamInventoryRef->teamSavings, 24); nullsub_102(&unk); return unk.unk8; } @@ -1467,7 +1467,7 @@ void ClearAllItems_8091FB4() { s32 i; for (i = 0; i < INVENTORY_SIZE; i++) { - struct Item* slot = &gTeamInventory_203B460->teamItems[i]; + struct Item* slot = &gTeamInventoryRef->teamItems[i]; if (slot->flags & ITEM_FLAG_EXISTS) { slot->flags &= 0xf7; if (slot->id == ITEM_POKE) { diff --git a/src/kangaskhan_storage.c b/src/kangaskhan_storage.c index 92cf66fb7..3791191bf 100644 --- a/src/kangaskhan_storage.c +++ b/src/kangaskhan_storage.c @@ -367,10 +367,10 @@ void sub_8016FF8(void) gKangaskhanStorageWork->unkB8 = 2; gKangaskhanStorageWork->unkB0 = 1; - if (gTeamInventory_203B460->teamStorage[gKangaskhanStorageWork->storedItem.id] >= 100) + if (gTeamInventoryRef->teamStorage[gKangaskhanStorageWork->storedItem.id] >= 100) gKangaskhanStorageWork->unkB4 = 99; else - gKangaskhanStorageWork->unkB4 = gTeamInventory_203B460->teamStorage [gKangaskhanStorageWork->storedItem.id]; + gKangaskhanStorageWork->unkB4 = gTeamInventoryRef->teamStorage [gKangaskhanStorageWork->storedItem.id]; gKangaskhanStorageWork->unkAC = gKangaskhanStorageWork->unkB4; gKangaskhanStorageWork->unkBC = 1; @@ -620,7 +620,7 @@ void sub_8017928(void) switch (menuAction) { case 4: - gTeamInventory_203B460->teamStorage[gKangaskhanStorageWork->storedItem.id] -= gKangaskhanStorageWork->storedItem.quantity; + gTeamInventoryRef->teamStorage[gKangaskhanStorageWork->storedItem.id] -= gKangaskhanStorageWork->storedItem.quantity; item.id = gKangaskhanStorageWork->storedItem.id; item.quantity = gKangaskhanStorageWork->storedItem.quantity; AddHeldItemToInventory(&item); @@ -645,9 +645,9 @@ void sub_80179A8(void) case 4: for (index = 0; index < INVENTORY_SIZE; index++) { if (sub_801AED0(index) != 0) { - MoveToStorage(&gTeamInventory_203B460->teamItems[index]); - gTeamInventory_203B460->teamItems[index].id = 0; - gTeamInventory_203B460->teamItems[index].flags = 0; + MoveToStorage(&gTeamInventoryRef->teamItems[index]); + gTeamInventoryRef->teamItems[index].id = 0; + gTeamInventoryRef->teamItems[index].flags = 0; } } @@ -677,14 +677,14 @@ void sub_8017A1C(void) if (sub_801CFE0(itemID) != 0) { item.id = itemID; if (IsThrowableItem(item.id)) { - if (gTeamInventory_203B460->teamStorage[item.id] > 99) + if (gTeamInventoryRef->teamStorage[item.id] > 99) item.quantity = 99; else - item.quantity = gTeamInventory_203B460->teamStorage[item.id]; + item.quantity = gTeamInventoryRef->teamStorage[item.id]; } else item.quantity = 1; - gTeamInventory_203B460->teamStorage[item.id] -= item.quantity; + gTeamInventoryRef->teamStorage[item.id] -= item.quantity; AddHeldItemToInventory(&item); } } @@ -710,13 +710,13 @@ void sub_8017AF8(void) } else { gKangaskhanStorageWork->itemIndex = sub_801A8AC(); - gKangaskhanStorageWork->storedItem = gTeamInventory_203B460->teamItems[gKangaskhanStorageWork->itemIndex]; + gKangaskhanStorageWork->storedItem = gTeamInventoryRef->teamItems[gKangaskhanStorageWork->itemIndex]; UpdateKangaskhanStorageState(15); } break; case 4: gKangaskhanStorageWork->itemIndex = sub_801A8AC(); - gKangaskhanStorageWork->storedItem = gTeamInventory_203B460->teamItems[gKangaskhanStorageWork->itemIndex]; + gKangaskhanStorageWork->storedItem = gTeamInventoryRef->teamItems[gKangaskhanStorageWork->itemIndex]; UpdateKangaskhanStorageState(16); break; case 2: @@ -1021,10 +1021,10 @@ void sub_8018100(void) gUnknown_203B20C->unkD0 = 2; gUnknown_203B20C->unkC8 = 1; - if (gTeamInventory_203B460->teamStorage[gUnknown_203B20C->item.id] > 99) + if (gTeamInventoryRef->teamStorage[gUnknown_203B20C->item.id] > 99) gUnknown_203B20C->unkCC = 99; else - gUnknown_203B20C->unkCC = gTeamInventory_203B460->teamStorage[gUnknown_203B20C->item.id]; + gUnknown_203B20C->unkCC = gTeamInventoryRef->teamStorage[gUnknown_203B20C->item.id]; gUnknown_203B20C->unkC4 = gUnknown_203B20C->unkCC; gUnknown_203B20C->unkD4 = 1; @@ -1214,9 +1214,9 @@ void sub_8018620(void) if (sub_801AEA8() != 0) { for (index = 0; index < INVENTORY_SIZE; index++) { if (sub_801AED0(index) != 0) { - MoveToStorage(&gTeamInventory_203B460->teamItems[index]); - gTeamInventory_203B460->teamItems[index].id = 0; - gTeamInventory_203B460->teamItems[index].flags = 0; + MoveToStorage(&gTeamInventoryRef->teamItems[index]); + gTeamInventoryRef->teamItems[index].id = 0; + gTeamInventoryRef->teamItems[index].flags = 0; } } @@ -1232,13 +1232,13 @@ void sub_8018620(void) } else { gUnknown_203B20C->itemIndex = sub_801A8AC(); - gUnknown_203B20C->item = gTeamInventory_203B460->teamItems[gUnknown_203B20C->itemIndex]; + gUnknown_203B20C->item = gTeamInventoryRef->teamItems[gUnknown_203B20C->itemIndex]; sub_8017F10(6); } break; case 4: gUnknown_203B20C->itemIndex = sub_801A8AC(); - gUnknown_203B20C->item = gTeamInventory_203B460->teamItems[gUnknown_203B20C->itemIndex]; + gUnknown_203B20C->item = gTeamInventoryRef->teamItems[gUnknown_203B20C->itemIndex]; sub_8017F10(7); break; case 2: @@ -1261,15 +1261,15 @@ void sub_80186F8(void) item.id = itemID; if (IsThrowableItem(item.id)) { - if (gTeamInventory_203B460->teamStorage[item.id] > 99) + if (gTeamInventoryRef->teamStorage[item.id] > 99) item.quantity = 99; else - item.quantity = gTeamInventory_203B460->teamStorage[item.id]; + item.quantity = gTeamInventoryRef->teamStorage[item.id]; } else item.quantity = 1; - gTeamInventory_203B460->teamStorage[item.id] -= item.quantity; + gTeamInventoryRef->teamStorage[item.id] -= item.quantity; AddHeldItemToInventory(&item); } } @@ -1317,7 +1317,7 @@ void sub_8018854(void) switch (sub_8013BBC(&gUnknown_203B20C->unkC0)) { case 3: gUnknown_203B20C->item.quantity = gUnknown_203B20C->unkC0; - gTeamInventory_203B460->teamStorage[gUnknown_203B20C->item.id] -= gUnknown_203B20C->item.quantity; + gTeamInventoryRef->teamStorage[gUnknown_203B20C->item.id] -= gUnknown_203B20C->item.quantity; item.id = gUnknown_203B20C->item.id; item.quantity = gUnknown_203B20C->item.quantity; AddHeldItemToInventory(&item); @@ -1412,7 +1412,7 @@ void sub_80189C8(void) else if (IsThrowableItem(gUnknown_203B20C->item.id)) sub_8017F10(12); else { - gTeamInventory_203B460->teamStorage[gUnknown_203B20C->item.id] -= gUnknown_203B20C->item.quantity; + gTeamInventoryRef->teamStorage[gUnknown_203B20C->item.id] -= gUnknown_203B20C->item.quantity; item.id = gUnknown_203B20C->item.id; item.quantity = gUnknown_203B20C->item.quantity; AddHeldItemToInventory(&item); diff --git a/src/kecleon_bros.c b/src/kecleon_bros.c index 954aba5c5..bea2cca42 100644 --- a/src/kecleon_bros.c +++ b/src/kecleon_bros.c @@ -455,7 +455,7 @@ void UpdateKecleonStoreDialogue(void) sub_801B3C0(&gKecleonBrosWork->soldItem); break; case 25: - if (GetNumberOfFilledInventorySlots() == 0 || gTeamInventory_203B460->teamMoney >= MAX_TEAM_MONEY) { + if (GetNumberOfFilledInventorySlots() == 0 || gTeamInventoryRef->teamMoney >= MAX_TEAM_MONEY) { sub_801A928(); gKecleonBrosWork->fallbackState = 1; } @@ -632,7 +632,7 @@ void sub_8019730(void) SetKecleonBrosState(KECLEON_STORE_NO_ITEMS_TO_SELL); else if (gKecleonBrosWork->numInventoryItemToSell == 0) SetKecleonBrosState(8); - else if (gTeamInventory_203B460->teamMoney < MAX_TEAM_MONEY) + else if (gTeamInventoryRef->teamMoney < MAX_TEAM_MONEY) SetKecleonBrosState(23); else SetKecleonBrosState(7); @@ -642,7 +642,7 @@ void sub_8019730(void) SetKecleonBrosState(KECLEON_STORE_NO_ITEMS_TO_SELL); else if (gKecleonBrosWork->numInventoryItemToSell == 0) SetKecleonBrosState(8); - else if (gKecleonBrosWork->inventoryItemSellPrice + gTeamInventory_203B460->teamMoney > MAX_TEAM_MONEY) + else if (gKecleonBrosWork->inventoryItemSellPrice + gTeamInventoryRef->teamMoney > MAX_TEAM_MONEY) SetKecleonBrosState(7); else SetKecleonBrosState(31); @@ -717,7 +717,7 @@ void sub_8019944(void) switch (menuAction) { case 5: for (slotIndex = 0; slotIndex < INVENTORY_SIZE; slotIndex++) { - item = &gTeamInventory_203B460->teamItems[slotIndex]; + item = &gTeamInventoryRef->teamItems[slotIndex]; if ((item->flags & ITEM_FLAG_EXISTS) && CanSellItem(item->id)) ClearItemSlotAt(slotIndex); @@ -799,13 +799,13 @@ void sub_8019B08(void) break; case 3: gKecleonBrosWork->soldItemInventoryIndex = sub_801A8AC(); - gKecleonBrosWork->soldItem = gTeamInventory_203B460->teamItems[gKecleonBrosWork->soldItemInventoryIndex]; + gKecleonBrosWork->soldItem = gTeamInventoryRef->teamItems[gKecleonBrosWork->soldItemInventoryIndex]; gKecleonBrosWork->itemSellPrice = GetStackSellPrice(&gKecleonBrosWork->soldItem); SetKecleonBrosState(28); break; case 4: gKecleonBrosWork->soldItemInventoryIndex = sub_801A8AC(); - gKecleonBrosWork->soldItem = gTeamInventory_203B460->teamItems[gKecleonBrosWork->soldItemInventoryIndex]; + gKecleonBrosWork->soldItem = gTeamInventoryRef->teamItems[gKecleonBrosWork->soldItemInventoryIndex]; gKecleonBrosWork->itemSellPrice = GetStackSellPrice(&gKecleonBrosWork->soldItem); sub_8099690(0); SetKecleonBrosState(29); @@ -837,9 +837,9 @@ void sub_8019BBC(void) switch (menuAction) { case 2: - if (gTeamInventory_203B460->teamMoney == 0) + if (gTeamInventoryRef->teamMoney == 0) SetKecleonBrosState(KECLEON_STORE_NO_MONEY); - else if (gKecleonBrosWork->itemSellPrice > gTeamInventory_203B460->teamMoney) + else if (gKecleonBrosWork->itemSellPrice > gTeamInventoryRef->teamMoney) SetKecleonBrosState(KECLEON_STORE_NOT_ENOUGH_MONEY); else SetKecleonBrosState(22); @@ -869,7 +869,7 @@ void sub_8019C78(void) if (!CanSellItem(gKecleonBrosWork->soldItem.id)) SetKecleonBrosState(KECLEON_STORE_CANT_SELL_ITEM); - else if (gKecleonBrosWork->itemSellPrice + gTeamInventory_203B460->teamMoney > MAX_TEAM_MONEY) + else if (gKecleonBrosWork->itemSellPrice + gTeamInventoryRef->teamMoney > MAX_TEAM_MONEY) SetKecleonBrosState(14); else SetKecleonBrosState(30); @@ -937,7 +937,7 @@ void sub_8019DAC(void) gKecleonBrosWork->numInventoryItemToSell = 0; gKecleonBrosWork->inventoryItemSellPrice = 0; for (index = 0; index < INVENTORY_SIZE; index++) { - item = &gTeamInventory_203B460->teamItems[index]; + item = &gTeamInventoryRef->teamItems[index]; if ((item->flags & ITEM_FLAG_EXISTS) != 0 && CanSellItem(item->id)) { sellPrice = GetStackSellPrice(item); @@ -1003,7 +1003,7 @@ u32 sub_8019EDC(u8 r0) slot.id = item->id; slot.quantity = item->quantity; - if (GetStackBuyPrice(&slot) > gTeamInventory_203B460->teamMoney) + if (GetStackBuyPrice(&slot) > gTeamInventoryRef->teamMoney) PlayMenuSoundEffect(2); else PlayMenuSoundEffect(0); @@ -1157,7 +1157,7 @@ void sub_801A0D8(void) sub_8090E14(auStack204, &item, &local_7c); buyPrice = GetStackBuyPrice(&item); - if (buyPrice <= gTeamInventory_203B460->teamMoney) { + if (buyPrice <= gTeamInventoryRef->teamMoney) { y = sub_8013800(&gUnknown_203B214->input, index); xxx_call_draw_string(8, y, auStack204, gUnknown_203B214->unk34, 0); } @@ -1212,7 +1212,7 @@ u32 sub_801A2A8(u8 r0) slot.id = item->id; slot.quantity = item->quantity; - if (GetStackBuyPrice(&slot) > gTeamInventory_203B460->teamMoney) + if (GetStackBuyPrice(&slot) > gTeamInventoryRef->teamMoney) PlayMenuSoundEffect(2); else PlayMenuSoundEffect(0); @@ -1365,7 +1365,7 @@ void sub_801A4A4(void) sub_8090E14(buffer1, &item, &local_7c); buyPrice = GetStackBuyPrice(&item); - if (buyPrice <= gTeamInventory_203B460->teamMoney) { + if (buyPrice <= gTeamInventoryRef->teamMoney) { y = sub_8013800(&gUnknown_203B21C->input, index); xxx_call_draw_string(8, y, buffer1, gUnknown_203B21C->unk34, 0); } @@ -1442,9 +1442,9 @@ u32 sub_801A6E8(bool8 param_1) PlayMenuSoundEffect(2); break; case 4: - item = gTeamInventory_203B460->teamItems[sub_801A8AC()]; + item = gTeamInventoryRef->teamItems[sub_801A8AC()]; - if (CanSellItem(item.id) && GetStackSellPrice(&item) + gTeamInventory_203B460->teamMoney <= MAX_TEAM_MONEY) + if (CanSellItem(item.id) && GetStackSellPrice(&item) + gTeamInventoryRef->teamMoney <= MAX_TEAM_MONEY) PlayMenuSoundEffect(0); else PlayMenuSoundEffect(2); @@ -1562,7 +1562,7 @@ void sub_801A9E0(void) for (r7 = 0; r7 < gUnknown_203B224->input.unk1A; r7++) { teamItemIndex = (gUnknown_203B224->input.unk1E * gUnknown_203B224->input.unk1C) + r7; - item = gTeamInventory_203B460->teamItems[teamItemIndex]; + item = gTeamInventoryRef->teamItems[teamItemIndex]; switch (gUnknown_203B224->unk0) { case 0: @@ -1601,7 +1601,7 @@ void sub_801A9E0(void) item.flags = 3; sub_8090E14(buffer1, &item, &stack2); - if (GetStackSellPrice(&item) + gTeamInventory_203B460->teamMoney > MAX_TEAM_MONEY) { + if (GetStackSellPrice(&item) + gTeamInventoryRef->teamMoney > MAX_TEAM_MONEY) { // very dumb but this matches... sprintfStatic((char *)&stack3, gUnknown_80DB9A0, buffer1); xxx_call_draw_string(8, sub_8013800(&gUnknown_203B224->input, r7), (u8 *)&stack3, gUnknown_203B224->unk88, 0); @@ -1660,13 +1660,13 @@ bool8 sub_801ADA0(s32 param_1) s32 sum2; struct Item item; - item = gTeamInventory_203B460->teamItems[param_1]; + item = gTeamInventoryRef->teamItems[param_1]; if (!IsNotMoneyOrUsedTMItem(item.id)) return FALSE; if (IsThrowableItem(item.id)) { uVar3_32 = sub_801AE24(item.id); - sum1 = gTeamInventory_203B460->teamStorage[item.id]; + sum1 = gTeamInventoryRef->teamStorage[item.id]; uVar3 = uVar3_32; sum1 += uVar3; sum1 += (item.quantity); @@ -1675,7 +1675,7 @@ bool8 sub_801ADA0(s32 param_1) } else { uVar2_32 = sub_801AE24(item.id); - sum2 = gTeamInventory_203B460->teamStorage[item.id]; + sum2 = gTeamInventoryRef->teamStorage[item.id]; uVar2 = uVar2_32; sum2 += uVar2; if (sum2 > 998) @@ -1693,7 +1693,7 @@ s32 sub_801AE24(u32 itemID) count = 0; for (invIndex = 0; invIndex < GetNumberOfFilledInventorySlots(); invIndex++) { if (gUnknown_203B224->unk4[invIndex] != 0) { - item = gTeamInventory_203B460->teamItems[invIndex]; + item = gTeamInventoryRef->teamItems[invIndex]; if (item.id == itemID) { if (IsThrowableItem(item.id)) @@ -1751,14 +1751,14 @@ void SortInventoryItems(void) for (itemL = 0; itemL < GetNumberOfFilledInventorySlots() - 1; itemL++) { for (itemR = itemL + 1; itemR < GetNumberOfFilledInventorySlots(); itemR++) { - orderL = GetItemOrder(gTeamInventory_203B460->teamItems[itemL].id); - orderR = GetItemOrder(gTeamInventory_203B460->teamItems[itemR].id); + orderL = GetItemOrder(gTeamInventoryRef->teamItems[itemL].id); + orderR = GetItemOrder(gTeamInventoryRef->teamItems[itemR].id); if (orderL > orderR - || (orderL == orderR && gTeamInventory_203B460->teamItems[itemL].quantity < gTeamInventory_203B460->teamItems[itemR].quantity)) { - itemSlotL = gTeamInventory_203B460->teamItems[itemL]; - itemSlotR = &gTeamInventory_203B460->teamItems[itemR]; - gTeamInventory_203B460->teamItems[itemL] = *itemSlotR; + || (orderL == orderR && gTeamInventoryRef->teamItems[itemL].quantity < gTeamInventoryRef->teamItems[itemR].quantity)) { + itemSlotL = gTeamInventoryRef->teamItems[itemL]; + itemSlotR = &gTeamInventoryRef->teamItems[itemR]; + gTeamInventoryRef->teamItems[itemL] = *itemSlotR; *itemSlotR = itemSlotL; base = gUnknown_203B224->unk4; diff --git a/src/luminous_cave.c b/src/luminous_cave.c index fdb745c94..e587241e6 100644 --- a/src/luminous_cave.c +++ b/src/luminous_cave.c @@ -734,11 +734,11 @@ void sub_8024FD4(void) case 3: gUnknown_203B2B0->evoItem1_InvIndex = sub_801A8AC(); gUnknown_203B2B0->evoItem2_InvIndex = INVENTORY_SIZE; - gUnknown_203B2B0->chosenItem = gTeamInventory_203B460->teamItems[gUnknown_203B2B0->evoItem1_InvIndex]; + gUnknown_203B2B0->chosenItem = gTeamInventoryRef->teamItems[gUnknown_203B2B0->evoItem1_InvIndex]; UpdateLuminousCaveState(8); break; case 4: - gUnknown_203B2B0->chosenItem = gTeamInventory_203B460->teamItems[sub_801A8AC()]; + gUnknown_203B2B0->chosenItem = gTeamInventoryRef->teamItems[sub_801A8AC()]; sub_8099690(0); UpdateLuminousCaveState(9); break; @@ -757,14 +757,14 @@ void sub_8025058(void) if(gUnknown_203B2B0->evoItem1_InvIndex != sub_801A8AC()) { gUnknown_203B2B0->evoItem2_InvIndex = sub_801A8AC(); - gUnknown_203B2B0->chosenItem = gTeamInventory_203B460->teamItems[gUnknown_203B2B0->evoItem2_InvIndex]; + gUnknown_203B2B0->chosenItem = gTeamInventoryRef->teamItems[gUnknown_203B2B0->evoItem2_InvIndex]; UpdateLuminousCaveState(0xD); } else PlayMenuSoundEffect(2); break; case 4: - gUnknown_203B2B0->chosenItem = gTeamInventory_203B460->teamItems[sub_801A8AC()]; + gUnknown_203B2B0->chosenItem = gTeamInventoryRef->teamItems[sub_801A8AC()]; sub_8099690(0); UpdateLuminousCaveState(0xE); break; @@ -888,13 +888,13 @@ void sub_8025254(void) gUnknown_203B2B0->evoItem1_itemIndex = 0; else { - gUnknown_203B2B0->evoItem1_itemIndex = gTeamInventory_203B460->teamItems[gUnknown_203B2B0->evoItem1_InvIndex].id; + gUnknown_203B2B0->evoItem1_itemIndex = gTeamInventoryRef->teamItems[gUnknown_203B2B0->evoItem1_InvIndex].id; } if(gUnknown_203B2B0->evoItem2_InvIndex == INVENTORY_SIZE) gUnknown_203B2B0->evoItem2_ItemIndex = 0; else { - gUnknown_203B2B0->evoItem2_ItemIndex = gTeamInventory_203B460->teamItems[gUnknown_203B2B0->evoItem2_InvIndex].id; + gUnknown_203B2B0->evoItem2_ItemIndex = gTeamInventoryRef->teamItems[gUnknown_203B2B0->evoItem2_InvIndex].id; } gUnknown_203B2B0->unk6 = RandInt(0xFF); diff --git a/src/other_menus.c b/src/other_menus.c index 9473c052d..ca6f2bc9b 100644 --- a/src/other_menus.c +++ b/src/other_menus.c @@ -642,7 +642,7 @@ void sub_80371B8(void) sub_8035CF4(gUnknown_203B35C->unk1C, 0, 1); if ((gUnknown_203B35C->linkStatus != COMMS_GOOD) && (gUnknown_203B35C->unk0 == 0) && (item = sub_8035D94(), item->itemIndex.itemIndex_u8 != ITEM_NOTHING) && (item->numItems != 0)) { - gTeamInventory_203B460->teamStorage[item->itemIndex.itemIndex_u8] += item->numItems; + gTeamInventoryRef->teamStorage[item->itemIndex.itemIndex_u8] += item->numItems; } } } diff --git a/src/other_menus_1.c b/src/other_menus_1.c index 04ff9e6b4..aa1041d54 100644 --- a/src/other_menus_1.c +++ b/src/other_menus_1.c @@ -185,14 +185,14 @@ void sub_8037E38(struct unkStruct_8035D94 *param_1,struct unkStruct_8035D94 *par r3 = sub_800D588() == 0 ? param_1 : param_2; if ((r4->itemIndex).itemIndex_u8 == (r3->itemIndex).itemIndex_u8) { - load = gTeamInventory_203B460->teamStorage[r4->itemIndex.itemIndex_u8]; + load = gTeamInventoryRef->teamStorage[r4->itemIndex.itemIndex_u8]; load += r3->numItems; - gTeamInventory_203B460->teamStorage[r4->itemIndex.itemIndex_u8] = load; + gTeamInventoryRef->teamStorage[r4->itemIndex.itemIndex_u8] = load; } else { - load = gTeamInventory_203B460->teamStorage[r3->itemIndex.itemIndex_u8]; + load = gTeamInventoryRef->teamStorage[r3->itemIndex.itemIndex_u8]; load += r3->numItems; - gTeamInventory_203B460->teamStorage[r3->itemIndex.itemIndex_u8] = load; + gTeamInventoryRef->teamStorage[r3->itemIndex.itemIndex_u8] = load; } } @@ -295,7 +295,7 @@ s32 sub_8038014(struct unkStruct_8035D94 *param_1,struct unkStruct_8035D94 *para r3 = sub_800D588() == 0 ? param_1 : param_2; if ((r4->itemIndex).itemIndex_u8 == (r3->itemIndex).itemIndex_u8) { - r2 = gTeamInventory_203B460->teamStorage[r4->itemIndex.itemIndex_u8]; + r2 = gTeamInventoryRef->teamStorage[r4->itemIndex.itemIndex_u8]; r2 += r3->numItems; if (r2 > 999) { linkStatus = COMMS_NO_ROOM_STORAGE; @@ -304,7 +304,7 @@ s32 sub_8038014(struct unkStruct_8035D94 *param_1,struct unkStruct_8035D94 *para linkStatus = COMMS_GOOD; } else { - r2 = gTeamInventory_203B460->teamStorage[r3->itemIndex.itemIndex_u8]; + r2 = gTeamInventoryRef->teamStorage[r3->itemIndex.itemIndex_u8]; r2 += r3->numItems; if (r2 > 999) { linkStatus = COMMS_NO_ROOM_STORAGE; diff --git a/src/party_list_menu.c b/src/party_list_menu.c index 424952bd9..acf6ddc0d 100644 --- a/src/party_list_menu.c +++ b/src/party_list_menu.c @@ -810,14 +810,14 @@ void sub_8026B64(void) { case 3: gUnknown_203B2B8->id = sub_801A8AC(); - gUnknown_203B2B8->item1.id = gTeamInventory_203B460->teamItems[gUnknown_203B2B8->id].id; - gUnknown_203B2B8->item1.quantity = gTeamInventory_203B460->teamItems[gUnknown_203B2B8->id].quantity; + gUnknown_203B2B8->item1.id = gTeamInventoryRef->teamItems[gUnknown_203B2B8->id].id; + gUnknown_203B2B8->item1.quantity = gTeamInventoryRef->teamItems[gUnknown_203B2B8->id].quantity; sub_8026074(0x14); break; case 4: gUnknown_203B2B8->id = sub_801A8AC(); - gUnknown_203B2B8->item1.id = gTeamInventory_203B460->teamItems[gUnknown_203B2B8->id].id; - gUnknown_203B2B8->item1.quantity = gTeamInventory_203B460->teamItems[gUnknown_203B2B8->id].quantity; + gUnknown_203B2B8->item1.id = gTeamInventoryRef->teamItems[gUnknown_203B2B8->id].id; + gUnknown_203B2B8->item1.quantity = gTeamInventoryRef->teamItems[gUnknown_203B2B8->id].quantity; sub_8099690(0); sub_8026074(0x15); break; @@ -1023,12 +1023,12 @@ bool8 CanTakePokemonHeldItem(struct PokemonStruct *r0) { if(IsThrowableItem(r0->heldItem.id)) { - if((gTeamInventory_203B460->teamStorage[r0->heldItem.id] + r0->heldItem.quantity) > 999) + if((gTeamInventoryRef->teamStorage[r0->heldItem.id] + r0->heldItem.quantity) > 999) return FALSE; } else { - if(gTeamInventory_203B460->teamStorage[r0->heldItem.id] > 998) + if(gTeamInventoryRef->teamStorage[r0->heldItem.id] > 998) return FALSE; } } @@ -1054,11 +1054,11 @@ void sub_8026FA4(void) PlaySound(0x14d); if(IsThrowableItem(gUnknown_203B2B8->item2.id)) { - gTeamInventory_203B460->teamStorage[gUnknown_203B2B8->item2.id] += gUnknown_203B2B8->item2.quantity; + gTeamInventoryRef->teamStorage[gUnknown_203B2B8->item2.id] += gUnknown_203B2B8->item2.quantity; } else { - gTeamInventory_203B460->teamStorage[gUnknown_203B2B8->item2.id] += 1; + gTeamInventoryRef->teamStorage[gUnknown_203B2B8->item2.id] += 1; } gUnknown_203B2B8->item2.id = ITEM_NOTHING; diff --git a/src/save.c b/src/save.c index 7e8bb17d6..a61472170 100644 --- a/src/save.c +++ b/src/save.c @@ -609,7 +609,7 @@ void sub_8012334(struct UnkStruct_203B184 *r0) gUnknown_203B184 = r0; if(r0 != NULL) { - gTeamInventory_203B460 = r0->MoneyItems; + gTeamInventoryRef = r0->MoneyItems; gRecruitedPokemonRef = r0->recruitedPokemon; gUnknown_203B480 = r0->unk8; gUnknown_203B484 = r0->unkC; @@ -624,7 +624,7 @@ void sub_8012334(struct UnkStruct_203B184 *r0) gPlayTimeRef = r0->playTime; return; } - gTeamInventory_203B460 = GetMoneyItemsInfo(); + gTeamInventoryRef = GetMoneyItemsInfo(); gRecruitedPokemonRef = GetRecruitedPokemon(); gUnknown_203B480 = sub_80950F8(); gUnknown_203B484 = sub_8095100(); diff --git a/src/status_actions.c b/src/status_actions.c index 4c6ddd44c..28b5c24f7 100644 --- a/src/status_actions.c +++ b/src/status_actions.c @@ -596,10 +596,10 @@ bool8 RecycleMoveAction(struct Entity * pokemon, struct Entity * target) for(index = 0; index < INVENTORY_SIZE; index++) { #ifdef NONMATCHING - item = &gTeamInventory_203B460->teamItems[index]; + item = &gTeamInventoryRef->teamItems[index]; #else register size_t offset asm("r1") = offsetof(struct TeamInventory, teamItems[index]); - struct Item* p = gTeamInventory_203B460->teamItems; + struct Item* p = gTeamInventoryRef->teamItems; size_t addr = offset + (size_t)p; item = (struct Item*)addr; #endif @@ -832,11 +832,11 @@ bool8 CleanseOrbAction(struct Entity * pokemon, struct Entity * target) if (!entityInfo->isNotTeamMember) { for(index = 0; index < INVENTORY_SIZE; index++){ // WTF why does this work... - UNUSED struct Item* current = &gTeamInventory_203B460->teamItems[index]; - flag = index[gTeamInventory_203B460->teamItems].flags; + UNUSED struct Item* current = &gTeamInventoryRef->teamItems[index]; + flag = index[gTeamInventoryRef->teamItems].flags; if (((flag & ITEM_FLAG_EXISTS) != 0) && ((flag & ITEM_FLAG_IN_SHOP) == 0)) if((flag & ITEM_FLAG_STICKY) != 0) { - gTeamInventory_203B460->teamItems[index].flags = flag & 0xf7; + gTeamInventoryRef->teamItems[index].flags = flag & 0xf7; isItemCleaned = TRUE; } } diff --git a/src/thank_you_wonder_mail.c b/src/thank_you_wonder_mail.c index 86a01cd5f..d2ce2dc65 100644 --- a/src/thank_you_wonder_mail.c +++ b/src/thank_you_wonder_mail.c @@ -959,7 +959,7 @@ void HandleConfirmItemtoSendMenu(void) { mail->item = gUnknown_203B2C4->unk41C; } - gTeamInventory_203B460->teamStorage[gUnknown_203B2C4->unk41C.id]--; + gTeamInventoryRef->teamStorage[gUnknown_203B2C4->unk41C.id]--; SetThankYouMailMenuState(0x29); break; case 8: diff --git a/src/trade_items_menu.c b/src/trade_items_menu.c index 7e09a02f6..09c6dbcfd 100644 --- a/src/trade_items_menu.c +++ b/src/trade_items_menu.c @@ -401,9 +401,9 @@ void TradeItem_SendItemConfirm(void) case 5: sub_801CBB8(); // Used temp var to get correct statements - load = gTeamInventory_203B460->teamStorage[gTradeItemsMenu->itemToSend.id]; + load = gTeamInventoryRef->teamStorage[gTradeItemsMenu->itemToSend.id]; load -= gTradeItemsMenu->quantityToSend; - gTeamInventory_203B460->teamStorage[gTradeItemsMenu->itemToSend.id] = load; + gTeamInventoryRef->teamStorage[gTradeItemsMenu->itemToSend.id] = load; SetTradeItemMenu(TRADE_ITEMS_PREPARE_TRADE_SAVING); PrepareSavePakWrite(MONSTER_NONE); break; @@ -497,9 +497,9 @@ void TradeItem_AddItem(void) { // Use temp var to get correct statements u16 load; - load = gTeamInventory_203B460->teamStorage[gTradeItemsMenu->sentItem.itemIdx.id]; + load = gTeamInventoryRef->teamStorage[gTradeItemsMenu->sentItem.itemIdx.id]; load += gTradeItemsMenu->sentItem.quantity; - gTeamInventory_203B460->teamStorage[gTradeItemsMenu->sentItem.itemIdx.id] = load; + gTeamInventoryRef->teamStorage[gTradeItemsMenu->sentItem.itemIdx.id] = load; } void sub_80369FC(void) @@ -790,7 +790,7 @@ void sub_8036F30(void) void sub_8036F74(void) { sub_8006518(gTradeItemsMenu->unk184); - sub_8036ECC(2, gTeamInventory_203B460->teamStorage[gTradeItemsMenu->itemToSend.id]); + sub_8036ECC(2, gTeamInventoryRef->teamStorage[gTradeItemsMenu->itemToSend.id]); sub_801CCD8(); sub_8035CF4(gTradeItemsMenu->unk44, 3, 0); sub_8036F30(); diff --git a/src/wigglytuff_shop.c b/src/wigglytuff_shop.c index 66fec1048..ba4c32637 100644 --- a/src/wigglytuff_shop.c +++ b/src/wigglytuff_shop.c @@ -478,7 +478,7 @@ void HandleWigglytuffConfirmFriendAreaMenu(void) switch(menuAction) { case 5: - gTeamInventory_203B460->teamMoney -= gWigglytuffShop->friendAreaPrice; + gTeamInventoryRef->teamMoney -= gWigglytuffShop->friendAreaPrice; UnlockFriendArea(gWigglytuffShop->chosenFriendArea); PlaySound(0x14C); SetWigglytuffState(CONFIRM_BUY_FRIEND_AREA); @@ -530,11 +530,11 @@ void sub_80225C8(void) switch(menuAction) { case 2: - if(gTeamInventory_203B460->teamMoney == 0) + if(gTeamInventoryRef->teamMoney == 0) { SetWigglytuffState(NO_MONEY); } - else if(gWigglytuffShop->friendAreaPrice > gTeamInventory_203B460->teamMoney) + else if(gWigglytuffShop->friendAreaPrice > gTeamInventoryRef->teamMoney) { SetWigglytuffState(NOT_ENOUGH_MONEY); }