diff --git a/asm/code_801EE10_mid.s b/asm/code_801EE10_mid.s index fd7740bd4..6de3e3bf2 100644 --- a/asm/code_801EE10_mid.s +++ b/asm/code_801EE10_mid.s @@ -1419,14 +1419,14 @@ _0802038C: ldrsh r1, [r2, r5] adds r2, 0x24 movs r0, 0 - bl DisplayGulpinDialogueSprite + bl CreateGulpinShop b _08020562 _080203A2: movs r0, 0xC ldrsh r1, [r2, r0] adds r2, 0x24 movs r0, 0x1 - bl DisplayGulpinDialogueSprite + bl CreateGulpinShop b _08020562 _080203B0: ldr r2, [r5] @@ -2709,14 +2709,14 @@ sub_8020D90: ldr r1, _08020DB8 ldr r1, [r1] strb r0, [r1, 0x14] - bl sub_801E93C + bl DestroyGulpinShop movs r0, 0x1A bl sub_801FDA8 b _08020DC6 .align 2, 0 _08020DB8: .4byte gUnknown_203B27C _08020DBC: - bl sub_801E93C + bl DestroyGulpinShop movs r0, 0x10 bl sub_801FDA8 _08020DC6: diff --git a/asm/felicity_bank.s b/asm/felicity_bank.s deleted file mode 100644 index 410f39449..000000000 --- a/asm/felicity_bank.s +++ /dev/null @@ -1,571 +0,0 @@ - #include "asm/constants/gba_constants.inc" - #include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start UpdateFelicityBankDialogue -UpdateFelicityBankDialogue: - push {r4,r5,lr} - sub sp, 0x14 - ldr r1, _08016558 - ldr r0, [r1] - ldr r0, [r0, 0x4] - adds r2, r1, 0 - cmp r0, 0xC - bls _0801654E - b _080168EC -_0801654E: - lsls r0, 2 - ldr r1, _0801655C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08016558: .4byte gUnknown_203B204 -_0801655C: .4byte _08016560 - .align 2, 0 -_08016560: - .4byte _08016594 - .4byte _080165B4 - .4byte _080168B2 - .4byte _08016650 - .4byte _08016668 - .4byte _080166C4 - .4byte _080168EC - .4byte _080166DC - .4byte _0801674C - .4byte _080167A8 - .4byte _080167CC - .4byte _0801685C - .4byte _080168C4 -_08016594: - ldr r2, [r2] - movs r0, 0x1 - str r0, [r2, 0x8] - ldr r3, _080165B0 - ldr r1, [r2] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - adds r2, 0xA4 - ldr r2, [r2] - b _08016844 - .align 2, 0 -_080165B0: .4byte gFelicityDialogue -_080165B4: - bl CreateFelicityBankShopMenu - ldr r0, _080165FC - ldr r0, [r0] - mov r12, r0 - movs r0, 0x2 - mov r1, r12 - str r0, [r1, 0x8] - ldr r0, _08016600 - ldr r0, [r0] - movs r3, 0x99 - lsls r3, 2 - adds r0, r3 - ldr r4, [r0] - cmp r4, 0 - bne _08016608 - ldr r2, _08016604 - ldr r1, [r1] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - adds r2, 0x4 - adds r0, r2 - ldr r0, [r0] - mov r5, r12 - ldr r2, [r5, 0x10] - mov r3, r12 - adds r3, 0x14 - mov r1, r12 - adds r1, 0x54 - str r1, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - b _08016632 - .align 2, 0 -_080165FC: .4byte gUnknown_203B204 -_08016600: .4byte gTeamInventory_203B460 -_08016604: .4byte gFelicityDialogue -_08016608: - ldr r0, _08016648 - str r4, [r0] - ldr r2, _0801664C - mov r0, r12 - ldr r1, [r0] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - adds r2, 0x8 - adds r0, r2 - ldr r0, [r0] - mov r1, r12 - ldr r2, [r1, 0x10] - mov r3, r12 - adds r3, 0x14 - adds r1, 0x54 - str r1, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] -_08016632: - mov r1, r12 - adds r1, 0xA4 - ldr r1, [r1] - str r1, [sp, 0xC] - movs r1, 0xC - str r1, [sp, 0x10] - movs r1, 0 - bl sub_8014248 - b _080168EC - .align 2, 0 -_08016648: .4byte gUnknown_202DE30 -_0801664C: .4byte gFelicityDialogue -_08016650: - ldr r3, [r2] - movs r0, 0x1 - str r0, [r3, 0x8] - ldr r2, _08016664 - ldr r1, [r3] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - adds r2, 0x38 - b _0801683C - .align 2, 0 -_08016664: .4byte gFelicityDialogue -_08016668: - ldr r3, [r2] - movs r0, 0x6 - str r0, [r3, 0x8] - ldr r0, _08016698 - ldr r0, [r0] - movs r5, 0x99 - lsls r5, 2 - adds r0, r5 - ldr r1, [r0] - cmp r1, 0 - bne _080166A0 - ldr r2, _0801669C - ldr r1, [r3] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - adds r2, 0x10 - adds r0, r2 - ldr r0, [r0] - adds r1, r3, 0 - adds r1, 0xA4 - ldr r2, [r1] - b _08016844 - .align 2, 0 -_08016698: .4byte gTeamInventory_203B460 -_0801669C: .4byte gFelicityDialogue -_080166A0: - ldr r0, _080166BC - str r1, [r0] - ldr r2, _080166C0 - ldr r1, [r3] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - adds r2, 0x14 - adds r0, r2 - ldr r0, [r0] - adds r1, r3, 0 - adds r1, 0xA4 - ldr r2, [r1] - b _08016844 - .align 2, 0 -_080166BC: .4byte gUnknown_202DE30 -_080166C0: .4byte gFelicityDialogue -_080166C4: - ldr r3, [r2] - movs r0, 0x1 - str r0, [r3, 0x8] - ldr r2, _080166D8 - ldr r1, [r3] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - adds r2, 0xC - b _0801683C - .align 2, 0 -_080166D8: .4byte gFelicityDialogue -_080166DC: - ldr r0, _08016700 - ldr r1, [r0] - movs r3, 0x98 - lsls r3, 2 - adds r0, r1, r3 - ldr r0, [r0] - cmp r0, 0 - bne _08016708 - ldr r3, [r2] - movs r0, 0x1 - str r0, [r3, 0x8] - ldr r2, _08016704 - ldr r1, [r3] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - adds r2, 0x1C - b _0801683C - .align 2, 0 -_08016700: .4byte gTeamInventory_203B460 -_08016704: .4byte gFelicityDialogue -_08016708: - movs r5, 0x99 - lsls r5, 2 - adds r0, r1, r5 - ldr r1, [r0] - ldr r0, _0801672C - cmp r1, r0 - ble _08016734 - ldr r3, [r2] - movs r0, 0x1 - str r0, [r3, 0x8] - ldr r2, _08016730 - ldr r1, [r3] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - adds r2, 0x20 - b _0801683C - .align 2, 0 -_0801672C: .4byte 0x0098967e -_08016730: .4byte gFelicityDialogue -_08016734: - ldr r3, [r2] - movs r0, 0x8 - str r0, [r3, 0x8] - ldr r2, _08016748 - ldr r1, [r3] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - adds r2, 0x18 - b _0801683C - .align 2, 0 -_08016748: .4byte gFelicityDialogue -_0801674C: - ldr r4, [r2] - ldr r0, _080167A0 - ldr r3, [r0] - movs r1, 0x99 - lsls r1, 2 - adds r0, r3, r1 - ldr r1, [r0] - ldr r0, _080167A4 - subs r0, r1 - str r0, [r4, 0x70] - movs r5, 0x98 - lsls r5, 2 - adds r1, r3, r5 - ldr r1, [r1] - cmp r0, r1 - ble _0801676E - str r1, [r4, 0x70] -_0801676E: - ldr r2, [r2] - ldr r0, [r2, 0x70] - str r0, [r2, 0x68] - movs r0, 0x1 - str r0, [r2, 0x6C] - movs r0, 0x5 - str r0, [r2, 0x74] - movs r0, 0x2 - str r0, [r2, 0x78] - adds r0, r2, 0 - adds r0, 0xD8 - str r0, [r2, 0x7C] - adds r1, r2, 0 - adds r1, 0x80 - movs r0, 0x50 - str r0, [r1] - adds r1, 0x4 - movs r0, 0x12 - str r0, [r1] - adds r0, r2, 0 - adds r0, 0x64 - bl sub_8013AA0 - movs r0, 0x1 - b _080168AE - .align 2, 0 -_080167A0: .4byte gTeamInventory_203B460 -_080167A4: .4byte 0x0098967f -_080167A8: - ldr r3, [r2] - movs r0, 0x1 - str r0, [r3, 0x8] - ldr r1, _080167C4 - ldr r0, [r3, 0xC] - str r0, [r1] - ldr r2, _080167C8 - ldr r1, [r3] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - adds r2, 0x24 - b _0801683C - .align 2, 0 -_080167C4: .4byte gUnknown_202DE30 -_080167C8: .4byte gFelicityDialogue -_080167CC: - ldr r0, _080167F4 - ldr r3, [r0] - movs r1, 0x98 - lsls r1, 2 - adds r0, r3, r1 - ldr r1, [r0] - ldr r0, _080167F8 - cmp r1, r0 - ble _08016800 - ldr r3, [r2] - movs r0, 0x1 - str r0, [r3, 0x8] - ldr r2, _080167FC - ldr r1, [r3] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - adds r2, 0x30 - b _0801683C - .align 2, 0 -_080167F4: .4byte gTeamInventory_203B460 -_080167F8: .4byte 0x0001869e -_080167FC: .4byte gFelicityDialogue -_08016800: - movs r5, 0x99 - lsls r5, 2 - adds r4, r3, r5 - ldr r0, [r4] - cmp r0, 0 - bne _08016824 - ldr r3, [r2] - movs r0, 0x1 - str r0, [r3, 0x8] - ldr r2, _08016820 - ldr r1, [r3] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - adds r2, 0x2C - b _0801683C - .align 2, 0 -_08016820: .4byte gFelicityDialogue -_08016824: - ldr r3, [r2] - movs r0, 0xB - str r0, [r3, 0x8] - ldr r1, _08016850 - ldr r0, [r4] - str r0, [r1] - ldr r2, _08016854 - ldr r1, [r3] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - adds r2, 0x28 -_0801683C: - adds r0, r2 - ldr r0, [r0] - adds r3, 0xA4 - ldr r2, [r3] -_08016844: - ldr r3, _08016858 - movs r1, 0 - bl sub_80141B4 - b _080168EC - .align 2, 0 -_08016850: .4byte gUnknown_202DE30 -_08016854: .4byte gFelicityDialogue -_08016858: .4byte 0x0000010d -_0801685C: - ldr r4, [r2] - ldr r0, _080168BC - ldr r3, [r0] - movs r1, 0x98 - lsls r1, 2 - adds r0, r3, r1 - ldr r1, [r0] - ldr r0, _080168C0 - subs r0, r1 - str r0, [r4, 0x70] - movs r5, 0x99 - lsls r5, 2 - adds r1, r3, r5 - ldr r1, [r1] - cmp r0, r1 - ble _0801687E - str r1, [r4, 0x70] -_0801687E: - ldr r2, [r2] - ldr r0, [r2, 0x70] - str r0, [r2, 0x68] - movs r0, 0x1 - str r0, [r2, 0x6C] - movs r0, 0x5 - str r0, [r2, 0x74] - movs r0, 0x2 - str r0, [r2, 0x78] - adds r0, r2, 0 - adds r0, 0xD8 - str r0, [r2, 0x7C] - adds r1, r2, 0 - adds r1, 0x80 - movs r0, 0x50 - str r0, [r1] - adds r1, 0x4 - movs r0, 0x12 - str r0, [r1] - adds r0, r2, 0 - adds r0, 0x64 - bl sub_8013AA0 - movs r0, 0 -_080168AE: - bl sub_8016B48 -_080168B2: - movs r0, 0x3 - bl CreateFelicityMoneySavingsHeader - b _080168EC - .align 2, 0 -_080168BC: .4byte gTeamInventory_203B460 -_080168C0: .4byte 0x0001869f -_080168C4: - ldr r3, [r2] - movs r0, 0x1 - str r0, [r3, 0x8] - ldr r1, _080168F4 - ldr r0, [r3, 0xC] - str r0, [r1] - ldr r2, _080168F8 - ldr r1, [r3] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - adds r2, 0x34 - adds r0, r2 - ldr r0, [r0] - adds r3, 0xA4 - ldr r2, [r3] - ldr r3, _080168FC - movs r1, 0 - bl sub_80141B4 -_080168EC: - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080168F4: .4byte gUnknown_202DE30 -_080168F8: .4byte gFelicityDialogue -_080168FC: .4byte 0x0000010d - thumb_func_end UpdateFelicityBankDialogue - - thumb_func_start CreateFelicityBankShopMenu -CreateFelicityBankShopMenu: - push {r4-r7,lr} - ldr r4, _08016980 - ldr r0, [r4] - adds r0, 0x54 - movs r1, 0 - movs r2, 0x10 - bl MemoryFill16 - ldr r3, [r4] - movs r2, 0 - ldr r0, _08016984 - ldr r0, [r0] - str r0, [r3, 0x14] - movs r0, 0x2 - str r0, [r3, 0x18] - movs r1, 0x1 - ldr r0, _08016988 - ldr r0, [r0] - str r0, [r3, 0x1C] - movs r0, 0x3 - str r0, [r3, 0x20] - ldr r0, _0801698C - ldr r0, [r0] - str r0, [r3, 0x24] - movs r0, 0x4 - str r0, [r3, 0x28] - ldr r0, _08016990 - ldr r0, [r0] - str r0, [r3, 0x2C] - str r1, [r3, 0x30] - movs r6, 0x4 - str r2, [r3, 0x34] - str r1, [r3, 0x38] - movs r5, 0 - mov r12, r3 - adds r3, 0x18 - mov r2, r12 - adds r2, 0x54 -_0801694C: - ldrh r0, [r2] - cmp r0, 0 - bne _0801695C - ldr r1, [r3] - mov r7, r12 - ldr r0, [r7, 0x10] - cmp r1, r0 - beq _080169B6 -_0801695C: - adds r3, 0x8 - adds r2, 0x2 - adds r5, 0x1 - cmp r5, r6 - blt _0801694C - movs r5, 0 - cmp r5, r6 - bge _080169B6 - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x54 - ldrh r0, [r0] - cmp r0, 0 - bne _08016994 - ldr r0, [r1, 0x18] - str r0, [r1, 0x10] - b _080169B6 - .align 2, 0 -_08016980: .4byte gUnknown_203B204 -_08016984: .4byte gUnknown_80D4958 -_08016988: .4byte gUnknown_80D4964 -_0801698C: .4byte gUnknown_80D4970 -_08016990: .4byte gUnknown_80D4934 -_08016994: - adds r5, 0x1 - cmp r5, r6 - bge _080169B6 - ldr r2, [r4] - lsls r0, r5, 1 - adds r1, r2, 0 - adds r1, 0x54 - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - bne _08016994 - lsls r0, r5, 3 - adds r1, r2, 0 - adds r1, 0x18 - adds r1, r0 - ldr r0, [r1] - str r0, [r2, 0x10] -_080169B6: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end CreateFelicityBankShopMenu - - .align 2,0 diff --git a/data/data_8115F5C.s b/data/data_8115F5C.s index 8431c63e3..e0927d5b3 100644 --- a/data/data_8115F5C.s +++ b/data/data_8115F5C.s @@ -147,7 +147,7 @@ gUnknown_81161D8: @ 81161D8 gUnknown_81161E8: @ 81161E8 .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 - .4byte CleanFelicityBank + .4byte DestroyFelicityBank .4byte FelicityBankCallback .global gUnknown_81161F8 diff --git a/include/felicity_bank.h b/include/felicity_bank.h index c02b7b5e0..84f5715d8 100644 --- a/include/felicity_bank.h +++ b/include/felicity_bank.h @@ -5,20 +5,26 @@ #include "text.h" #include "menu.h" -struct unkStruct_203B204 +// size: 0x108 +struct FelicityBankWork { - // size: 0x108 - u32 unk0; - s32 currState; - u32 fallbackState; - u32 chosenAmount; - u32 menuAction; + /* 0x0 */ u32 isAsleep; + /* 0x4 */ s32 currState; + /* 0x8 */ u32 fallbackState; + /* 0xC */ u32 chosenAmount; + /* 0x10 */ u32 menuAction; struct MenuItem unk14[8]; u16 unk54[8]; u32 unk64; - u8 fill68[0x78 - 0x68]; + s32 unk68; + s32 unk6C; + /* 0x70 */ s32 maximumDepositWithdraw; + s32 unk74; u32 unk78; - u8 fill7C[0x94 - 0x7C]; + struct UnkTextStruct2 *unk7C; + s32 unk80; + s32 unk84; + u8 fill88[0x94 - 0x88]; /* 0x94 */ struct OpenedFile *faceFile; /* 0x98 */ u8 *faceData; u16 unk9C; @@ -31,5 +37,9 @@ struct unkStruct_203B204 struct UnkTextStruct2 unkA8[4]; }; +extern struct FelicityBankWork *gFelicityBankWork; + +#define FELICITY_BANK_ACTION_WITHDRAW 0 +#define FELICITY_BANK_ACTION_DEPOSIT 1 #endif diff --git a/include/gulpin_shop.h b/include/gulpin_shop.h index 97215d25a..be4b6adee 100644 --- a/include/gulpin_shop.h +++ b/include/gulpin_shop.h @@ -1,10 +1,10 @@ #ifndef GUARD_GULPIN_SHOP_H #define GUARD_GULPIN_SHOP_H -struct unkStruct_203B26C -{ // size: 0x18C - u32 unk0; +struct GulpinShopWork +{ + /* 0x0 */ u32 isAsleep; /* 0x4 */ s32 state; u32 unk8; /* 0xC */ s16 speciesNum; // species of chosen Pokemon @@ -28,7 +28,10 @@ struct unkStruct_203B26C u8 unk126; u8 unk127; struct OpenedFile **unk128; - struct UnkTextStruct2 unk12C[4]; + struct UnkTextStruct2 unk12C[4]; }; +u32 CreateGulpinShop(s32 isAsleep, s16 pokeSpecies, struct Move *moves); +void DestroyGulpinShop(void); + #endif diff --git a/include/team_inventory.h b/include/team_inventory.h index e4b774d86..0c7ab7d49 100644 --- a/include/team_inventory.h +++ b/include/team_inventory.h @@ -4,18 +4,20 @@ #define MAX_KECLEON_ITEM_SHOP_ITEMS 8 #define MAX_KECLEON_WARE_SHOP_ITEMS 4 +// size: 0x268 struct TeamInventory { - struct Item teamItems[INVENTORY_SIZE]; - u16 teamStorage[NUMBER_OF_ITEM_IDS]; - struct BulkItem kecleonShopItems[MAX_KECLEON_ITEM_SHOP_ITEMS]; - struct BulkItem kecleonWareItems[MAX_KECLEON_WARE_SHOP_ITEMS]; + /* 0x0 */ struct Item teamItems[INVENTORY_SIZE]; + /* 0x50 */ u16 teamStorage[STORAGE_SIZE]; + /* 0x230 */ struct BulkItem kecleonShopItems[MAX_KECLEON_ITEM_SHOP_ITEMS]; + /* 0x250 */ struct BulkItem kecleonWareItems[MAX_KECLEON_WARE_SHOP_ITEMS]; /* 0x260 */ s32 teamMoney; - /* 0x264 */ u32 teamSavings; + /* 0x264 */ s32 teamSavings; }; extern struct TeamInventory *gTeamInventory_203B460; #define MAX_TEAM_MONEY 99999 +#define MAX_TEAM_SAVINGS 9999999 #endif diff --git a/include/text.h b/include/text.h index 99b122e6f..f9a460ed6 100644 --- a/include/text.h +++ b/include/text.h @@ -47,4 +47,5 @@ void sub_80089AC(const struct UnkTextStruct2 *a0, void *a1); void sub_8009388(void); void sub_800641C(struct UnkTextStruct2 *a0, u8 a1, u8 a2); void sub_8006518(struct UnkTextStruct2 *); +extern void xxx_call_draw_string(s32 x, u32 y, const u8 *str, u32 , u32); #endif diff --git a/ld_script.txt b/ld_script.txt index 8b7fc615a..606578f03 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -99,8 +99,6 @@ SECTIONS { asm/code_80130A8.o(.text); src/code_8012A18_1.o(.text); src/felicity_bank.o(.text); - asm/felicity_bank.o(.text); - src/felicity_bank_1.o(.text); src/kangaskhan_storage.o(.text); asm/kangaskhan_storage.o(.text); src/kangaskhan_storage_1.o(.text); diff --git a/src/adventure_log.c b/src/adventure_log.c index 95f50c71e..2d5f7f47e 100644 --- a/src/adventure_log.c +++ b/src/adventure_log.c @@ -54,7 +54,6 @@ extern s16 sub_8097838(); extern s16 sub_8097870(); extern s32 sub_80977B8(); extern s32 sub_80977F8(); -extern void xxx_call_draw_string(s32, u32, const u8 *, u32, u32); extern void sub_8008C54(u32); extern void sub_80073B8(u32); extern void sub_80073E0(u32); diff --git a/src/code_801AFA4.c b/src/code_801AFA4.c index 8c45eba59..3aab78979 100644 --- a/src/code_801AFA4.c +++ b/src/code_801AFA4.c @@ -5,6 +5,7 @@ #include "team_inventory.h" #include "menu.h" #include "pokemon.h" +#include "gulpin_shop.h" extern void sub_8092C84(u8 *, u16); extern void sub_8099690(u32); @@ -29,7 +30,6 @@ extern u8 gUnknown_202E218[0x50]; extern void InitZeroedPPPokemonMove(struct Move*, u16); extern void unk_CopyMoves4To8(struct Move *, struct Move *); extern bool8 IsHMItem(u8); -extern void DisplayGulpinDialogueSprite(u32, u32, void *); extern void sub_801B178(void); extern void sub_8094060(void *, struct Move *); extern void PlaySound(u32); @@ -38,7 +38,6 @@ extern void sub_8014248(u32 *, u32, u32, struct MenuItem *, u32, u32, u32, u32, extern void PrintPokeNameToBuffer(u8 *buffer, struct PokemonStruct *pokemon); extern s32 sub_80144A4(s32 *); extern u32 sub_801E8C0(void); -extern void sub_801E93C(void); extern bool8 CanMonLearnMove(u16 moveID, s16 _species); extern s32 sub_808D580(s32*); @@ -130,7 +129,7 @@ void sub_801B080(void) sub_8014248(&gUnknown_80DB9BC, 0, gUnknown_203B22C->unk60, gUnknown_203B22C->menuItems, 0, 4, 0, 0, 0x20); break; case 1: - DisplayGulpinDialogueSprite(2, gUnknown_203B22C->chosenPokemon, gUnknown_203B22C->moves); + CreateGulpinShop(2, gUnknown_203B22C->chosenPokemon, gUnknown_203B22C->moves); break; case 2: sub_8094060(gUnknown_203B22C->moves, gUnknown_203B22C->pokeStruct->moves); @@ -215,11 +214,11 @@ void sub_801B2AC(void) switch(sub_801E8C0()) { case 3: - sub_801E93C(); + DestroyGulpinShop(); sub_801B064(2); break; case 2: - sub_801E93C(); + DestroyGulpinShop(); sub_801B064(0); break; case 0: diff --git a/src/code_801C620.c b/src/code_801C620.c index 517f24954..8683dc2eb 100644 --- a/src/code_801C620.c +++ b/src/code_801C620.c @@ -162,7 +162,6 @@ extern void PlayMenuSoundEffect(u32); extern char * GetIQSkillDescription(u8 r0); extern s32 GetNumAvailableIQSkills(u8 *param_1, s32 pokeIQ); extern void sub_8013C68(u32 *); -extern void xxx_call_draw_string(u32, u32, const u8 *, u32, u32); extern char * GetIQSkillName(u8 r0); extern void xxx_format_and_draw(u32, u32, const u8 *, u32, u32); extern s32 sub_8013800(struct MenuInputStruct *, s32); diff --git a/src/code_801D760.c b/src/code_801D760.c index 7966dbbfb..81c5cdaac 100644 --- a/src/code_801D760.c +++ b/src/code_801D760.c @@ -62,7 +62,6 @@ extern void InitializeJobListMenu(u32); extern const char *sub_8098FB4(); extern void xxx_format_string(const char *, u8 *, u32 **, u32); extern s32 sub_8008ED0(u8 *); -extern void xxx_call_draw_string(s32 size, u32, u8 *, u32, u32); extern void sub_8008C54(u32); extern void sub_80073B8(u32); extern void sub_80073E0(u32); diff --git a/src/code_801EE10_mid.c b/src/code_801EE10_mid.c index c25df5096..6bc0e6fee 100644 --- a/src/code_801EE10_mid.c +++ b/src/code_801EE10_mid.c @@ -38,7 +38,6 @@ extern void sub_8008C54(u32); extern void sub_80073B8(u32); extern void sub_80073E0(u32); extern s32 sub_8013800(struct MenuInputStruct*, s32); -extern void xxx_call_draw_string(s32, s32, u8 *, s32, s32); u32 sub_801F7E4(void); void sub_801F690(void); diff --git a/src/code_8023144.c b/src/code_8023144.c index c1ebc4486..d61e65af9 100644 --- a/src/code_8023144.c +++ b/src/code_8023144.c @@ -493,7 +493,6 @@ struct unkStruct_8092638 u32 unk5; }; extern void sub_8092638(u8,struct unkStruct_8092638 *, u32, u32); -extern void xxx_call_draw_string(u32, u32, const u8 *, u32, u32); extern void sub_8008C54(u32); extern void sub_80073B8(u32); extern void sub_80073E0(u32); diff --git a/src/code_8031D70.c b/src/code_8031D70.c index 2feeea604..892213367 100644 --- a/src/code_8031D70.c +++ b/src/code_8031D70.c @@ -46,7 +46,6 @@ const struct UnkTextStruct2 gUnknown_80E1FC4 = { ALIGNED(4) const u8 gUnknown_80E1FDC[] = "Password"; ALIGNED(4) static const u8 fill0[] = "pksdir0"; -extern void xxx_call_draw_string(s32, s32, const u8 *, s32, s32); extern void sub_8008C54(u32); extern void sub_80073B8(u32); extern void sub_80073E0(u32); diff --git a/src/credits.c b/src/credits.c index b256fc638..8f1893797 100644 --- a/src/credits.c +++ b/src/credits.c @@ -37,8 +37,6 @@ extern const u32 gUnknown_80E4A40[]; extern struct CreditsData* gCreditsTable[27]; extern u16 gUnknown_80E5990[]; -extern void xxx_call_draw_string(s32, u32, const u8 *, u32, u32); - extern void sub_80015C0(u32, u32); extern s32 sub_8001658(u32, u32); extern void sub_80073B8(u32); diff --git a/src/debug_menu_1.c b/src/debug_menu_1.c index 8a26460f6..2ada25779 100644 --- a/src/debug_menu_1.c +++ b/src/debug_menu_1.c @@ -53,7 +53,6 @@ extern void sub_80073B8(u32); extern void sub_8013C68(u32 *); extern void sub_80073E0(u32); extern void sub_8023DA4(void); -extern void xxx_call_draw_string(u32, u32, const u8 *, u32, u32); extern void sub_803ACE8(); extern void sub_803AD88(); extern void sub_803AF38(); diff --git a/src/debug_menu_mid.c b/src/debug_menu_mid.c index 37e0b3344..096bccb1a 100644 --- a/src/debug_menu_mid.c +++ b/src/debug_menu_mid.c @@ -109,7 +109,6 @@ extern void sub_8008C54(u32); extern void sub_80073B8(u32); extern void sub_80073E0(u32); extern void sub_8013C68(u32 *); -extern void xxx_call_draw_string(s32, u32, const char *, u32, u32); extern u32 sub_801CA08(u32); extern u8 sub_801CB24(); extern void sub_801CBB8(); diff --git a/src/felicity_bank.c b/src/felicity_bank.c index 655a2f452..3f1618087 100644 --- a/src/felicity_bank.c +++ b/src/felicity_bank.c @@ -4,60 +4,86 @@ #include "input.h" #include "felicity_bank.h" #include "memory.h" +#include "team_inventory.h" +#include "text.h" +#include "menu_input.h" -extern u8 gUnknown_202E5D8[]; +extern u32 gUnknown_202DE30; extern u8 gUnknown_202E1C8[]; +extern u8 gUnknown_202E5D8[]; -extern struct unkStruct_203B204 *gUnknown_203B204; +extern u8 *gUnknown_80D4934[]; +extern u8 *gUnknown_80D4958[]; +extern u8 *gUnknown_80D4964[]; +extern u8 *gUnknown_80D4970[]; +extern u8 *gFelicityDeposit; +extern u8 *gFelicityWithdraw; +extern u8 *gFelicityDialogue[2][15]; extern struct UnkTextStruct2 gUnknown_80DB6DC; extern struct UnkTextStruct2 gUnknown_80DB6F4; extern struct UnkTextStruct2 gUnknown_80DB70C; +extern u8 gFelicitySavings[]; +extern u8 gFelicityMoney[]; +extern u8 gUnknown_80DB738; -extern void sub_8016B24(); -extern void sub_80169BC(); -extern void Felicity_DepositMoney(); -extern void Felicity_WithdrawMoney(); -extern void sub_8016B00(); +extern void PlaySound(u32); +extern void sub_80073B8(u32); +extern void sub_80073E0(u32); +extern void sub_8008C54(u32); +extern void sub_8013AA0(u32 *); +extern u32 sub_8013BBC(u32 *); +extern void sub_8013C68(u32 *); +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_801645C(); -extern void UpdateFelicityBankDialogue(); +extern void sub_80169BC(); +extern void sub_8016B00(); +extern void sub_8016B24(); +void CreateFelicityBankShopMenu(void); +void CreateFelicityMoneySavingsHeader(u32); +void Felicity_DepositMoney(); +void Felicity_WithdrawMoney(); +void sub_8016B48(u8 action); +void UpdateFelicityBankDialogue(); void UpdateFelicityBankState(u32); -u32 CreateFelicityBank(s32 param_1) +u32 CreateFelicityBank(s32 isAsleep) { char *monName; struct OpenedFile * faceFile; ResetUnusedInputStruct(); - sub_800641C(0,1,1); - gUnknown_203B204 = MemoryAlloc(sizeof(struct unkStruct_203B204),8); - gUnknown_203B204->menuAction = 0; - gUnknown_203B204->unk0 = param_1; + sub_800641C(0, 1, 1); + gFelicityBankWork = MemoryAlloc(sizeof(struct FelicityBankWork), 8); + gFelicityBankWork->menuAction = 0; + gFelicityBankWork->isAsleep = isAsleep; CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_PERSIAN); CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_PERSIAN); monName = GetMonSpecies(MONSTER_PERSIAN); strcpy(gUnknown_202E1C8 - 0x50, monName); - if (gUnknown_203B204->unk0 == 1) { - gUnknown_203B204->unkA4 = NULL; - } - else { - gUnknown_203B204->unkA4 = &gUnknown_203B204->faceFile; - } + + if (gFelicityBankWork->isAsleep == 1) + gFelicityBankWork->unkA4 = NULL; + else + gFelicityBankWork->unkA4 = &gFelicityBankWork->faceFile; + faceFile = GetDialogueSpriteDataPtr(MONSTER_PERSIAN); - gUnknown_203B204->faceFile = faceFile; - gUnknown_203B204->faceData = faceFile->data; - gUnknown_203B204->unkA0 = 0; - gUnknown_203B204->unkA1 = 0; - gUnknown_203B204->unkA2 = 0; - gUnknown_203B204->unk9C = 2; - gUnknown_203B204->unk9E = 8; + gFelicityBankWork->faceFile = faceFile; + gFelicityBankWork->faceData = faceFile->data; + gFelicityBankWork->unkA0 = 0; + gFelicityBankWork->unkA1 = 0; + gFelicityBankWork->unkA2 = 0; + gFelicityBankWork->unk9C = 2; + gFelicityBankWork->unk9E = 8; UpdateFelicityBankState(0); return 1; } u32 FelicityBankCallback(void) { - switch(gUnknown_203B204->currState) { + switch (gFelicityBankWork->currState) { case 1: sub_8016B24(); break; @@ -87,19 +113,18 @@ u32 FelicityBankCallback(void) return 0; } -void CleanFelicityBank(void) +void DestroyFelicityBank(void) { - if(gUnknown_203B204 != NULL) - { - CloseFile(gUnknown_203B204->faceFile); - MemoryFree(gUnknown_203B204); - gUnknown_203B204 = NULL; + if (gFelicityBankWork != NULL) { + CloseFile(gFelicityBankWork->faceFile); + MemoryFree(gFelicityBankWork); + gFelicityBankWork = NULL; } } void UpdateFelicityBankState(u32 newState) { - gUnknown_203B204->currState = newState; + gFelicityBankWork->currState = newState; sub_801645C(); UpdateFelicityBankDialogue(); } @@ -108,33 +133,292 @@ void sub_801645C(void) { s32 index; - sub_8006518(gUnknown_203B204->unkA8); - switch(gUnknown_203B204->currState) + sub_8006518(gFelicityBankWork->unkA8); + switch (gFelicityBankWork->currState) { case 2: - gUnknown_203B204->unkA8[0].fill00[0] = 0x80; - gUnknown_203B204->unkA8[1].fill00[0] = 0x80; - gUnknown_203B204->unkA8[2].fill00[0] = 0x80; - gUnknown_203B204->unkA8[3] = gUnknown_80DB6F4; + gFelicityBankWork->unkA8[0].fill00[0] = 0x80; + gFelicityBankWork->unkA8[1].fill00[0] = 0x80; + gFelicityBankWork->unkA8[2].fill00[0] = 0x80; + gFelicityBankWork->unkA8[3] = gUnknown_80DB6F4; ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B204->unkA8, 1, 0); + sub_800641C(gFelicityBankWork->unkA8, 1, 0); break; case 8: case 11: - gUnknown_203B204->unkA8[0].fill00[0] = 0x80; - gUnknown_203B204->unkA8[1].fill00[0] = 0x80; - gUnknown_203B204->unkA8[3] = gUnknown_80DB6F4; - gUnknown_203B204->unkA8[2] = gUnknown_80DB70C; + gFelicityBankWork->unkA8[0].fill00[0] = 0x80; + gFelicityBankWork->unkA8[1].fill00[0] = 0x80; + gFelicityBankWork->unkA8[3] = gUnknown_80DB6F4; + gFelicityBankWork->unkA8[2] = gUnknown_80DB70C; ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B204->unkA8, 1, 0); + sub_800641C(gFelicityBankWork->unkA8, 1, 0); break; default: - for(index = 0; index < 4; index++) - { - gUnknown_203B204->unkA8[index] = gUnknown_80DB6DC; + for (index = 0; index < 4; index++) { + gFelicityBankWork->unkA8[index] = gUnknown_80DB6DC; } ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B204->unkA8, 1, 1); + sub_800641C(gFelicityBankWork->unkA8, 1, 1); break; } } + +void UpdateFelicityBankDialogue(void) +{ + switch (gFelicityBankWork->currState) { + case 0x0: + gFelicityBankWork->fallbackState = 1; + sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][0], 0, gFelicityBankWork->unkA4, 0x10D); + break; + case 0x1: + CreateFelicityBankShopMenu(); + gFelicityBankWork->fallbackState = 2; + if (gTeamInventory_203B460->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; + sub_8014248(gFelicityDialogue[gFelicityBankWork->isAsleep][2], 0, gFelicityBankWork->menuAction, + gFelicityBankWork->unk14, gFelicityBankWork->unk54, 4, 0, gFelicityBankWork->unkA4, 0xC); + } + break; + case 0x3: + gFelicityBankWork->fallbackState = 1; + sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][14], 0, gFelicityBankWork->unkA4, 0x10D); + break; + case 0x4: + gFelicityBankWork->fallbackState = 6; + if (gTeamInventory_203B460->teamSavings == 0) + sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][4], 0, gFelicityBankWork->unkA4, 0x10D); + else { + gUnknown_202DE30 = gTeamInventory_203B460->teamSavings; + sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][5], 0, gFelicityBankWork->unkA4, 0x10D); + } + break; + case 0x5: + gFelicityBankWork->fallbackState = 1; + sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][3], 0, gFelicityBankWork->unkA4, 0x10D); + break; + case 0x7: + if (gTeamInventory_203B460->teamMoney == 0) { + gFelicityBankWork->fallbackState = 1; + sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][7], 0, gFelicityBankWork->unkA4, 0x10D); + } + else if (gTeamInventory_203B460->teamSavings >= MAX_TEAM_SAVINGS) { + gFelicityBankWork->fallbackState = 1; + sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][8], 0, gFelicityBankWork->unkA4, 0x10D); + } + else { + gFelicityBankWork->fallbackState = 8; + sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][6], 0, gFelicityBankWork->unkA4, 0x10D); + } + break; + case 0x8: + gFelicityBankWork->maximumDepositWithdraw = MAX_TEAM_SAVINGS - gTeamInventory_203B460->teamSavings; + if (gFelicityBankWork->maximumDepositWithdraw > gTeamInventory_203B460->teamMoney) + gFelicityBankWork->maximumDepositWithdraw = gTeamInventory_203B460->teamMoney; + gFelicityBankWork->unk68 = gFelicityBankWork->maximumDepositWithdraw; + gFelicityBankWork->unk6C = 1; + gFelicityBankWork->unk74 = 5; + gFelicityBankWork->unk78 = 2; + gFelicityBankWork->unk7C = &gFelicityBankWork->unkA8[2]; + gFelicityBankWork->unk80 = 0x50; + gFelicityBankWork->unk84 = 0x12; + sub_8013AA0(&gFelicityBankWork->unk64); + sub_8016B48(1); + CreateFelicityMoneySavingsHeader(3); + break; + case 0x9: + gFelicityBankWork->fallbackState = 1; + gUnknown_202DE30 = gFelicityBankWork->chosenAmount; + sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][9], 0, gFelicityBankWork->unkA4, 0x10D); + break; + case 0xA: + if (gTeamInventory_203B460->teamMoney >= MAX_TEAM_MONEY) { + gFelicityBankWork->fallbackState = 1; + sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][12], 0, gFelicityBankWork->unkA4, 0x10D); + } + else if (gTeamInventory_203B460->teamSavings == 0) { + gFelicityBankWork->fallbackState = 1; + sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][11], 0, gFelicityBankWork->unkA4, 0x10D); + } + else { + gFelicityBankWork->fallbackState = 11; + gUnknown_202DE30 = gTeamInventory_203B460->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->unk68 = gFelicityBankWork->maximumDepositWithdraw; + gFelicityBankWork->unk6C = 1; + gFelicityBankWork->unk74 = 5; + gFelicityBankWork->unk78 = 2; + gFelicityBankWork->unk7C = &gFelicityBankWork->unkA8[2]; + gFelicityBankWork->unk80 = 0x50; + gFelicityBankWork->unk84 = 0x12; + sub_8013AA0(&gFelicityBankWork->unk64); + sub_8016B48(0); + CreateFelicityMoneySavingsHeader(3); + break; + case 0x2: + CreateFelicityMoneySavingsHeader(3); + break; + case 0xC: + gFelicityBankWork->fallbackState = 1; + gUnknown_202DE30 = gFelicityBankWork->chosenAmount; + sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][13], 0, gFelicityBankWork->unkA4, 0x10D); + break; + } +} + +void CreateFelicityBankShopMenu(void) +{ + s32 loopMax; + s32 i; + loopMax = 0; + + MemoryFill16(gFelicityBankWork->unk54, 0, sizeof(gFelicityBankWork->unk54)); + + gFelicityBankWork->unk14[loopMax].text = *gUnknown_80D4958; // Store + gFelicityBankWork->unk14[loopMax].menuAction = 2; + loopMax++; + gFelicityBankWork->unk14[loopMax].text = *gUnknown_80D4964; // Take + gFelicityBankWork->unk14[loopMax].menuAction = 3; + loopMax++; + gFelicityBankWork->unk14[loopMax].text = *gUnknown_80D4970; // Info + gFelicityBankWork->unk14[loopMax].menuAction = 4; + loopMax++; + gFelicityBankWork->unk14[loopMax].text = *gUnknown_80D4934; // Cancel + gFelicityBankWork->unk14[loopMax].menuAction = 1; + loopMax++; + gFelicityBankWork->unk14[loopMax].text = NULL; + gFelicityBankWork->unk14[loopMax].menuAction = 1; + + for (i = 0; i < loopMax; i++) { + if (gFelicityBankWork->unk54[i] == 0 && gFelicityBankWork->unk14[i].menuAction == gFelicityBankWork->menuAction) + return; + } + for (i = 0; i < loopMax; i++) { + if (gFelicityBankWork->unk54[i] == 0) { + gFelicityBankWork->menuAction = gFelicityBankWork->unk14[i].menuAction; + break; + } + } +} + +void sub_80169BC(void) +{ + s32 menuAction; + + if (sub_80144A4(&menuAction) == 0) { + gFelicityBankWork->menuAction = menuAction; + switch (menuAction) + { + case 2: + UpdateFelicityBankState(7); + break; + case 3: + UpdateFelicityBankState(10); + break; + case 4: + UpdateFelicityBankState(3); + break; + case 1: + UpdateFelicityBankState(4); + break; + } + } +} + +void Felicity_DepositMoney(void) +{ + switch (sub_8013BBC(&gFelicityBankWork->unk64)) { + case 1: + sub_8016B48(FELICITY_BANK_ACTION_DEPOSIT); + break; + case 3: + gFelicityBankWork->chosenAmount = gFelicityBankWork->unk64; + gTeamInventory_203B460->teamSavings += gFelicityBankWork->chosenAmount; + gTeamInventory_203B460->teamMoney -= gFelicityBankWork->chosenAmount; + PlaySound(0x14c); + UpdateFelicityBankState(9); + break; + case 2: + UpdateFelicityBankState(5); + break; + case 0: + break; + } +} + +void Felicity_WithdrawMoney(void) +{ + switch (sub_8013BBC(&gFelicityBankWork->unk64)) { + case 1: + sub_8016B48(FELICITY_BANK_ACTION_WITHDRAW); + break; + case 3: + gFelicityBankWork->chosenAmount = gFelicityBankWork->unk64; + gTeamInventory_203B460->teamMoney += gFelicityBankWork->chosenAmount; + gTeamInventory_203B460->teamSavings -= gFelicityBankWork->chosenAmount; + PlaySound(0x14c); + UpdateFelicityBankState(0xc); + break; + case 2: + UpdateFelicityBankState(5); + break; + case 0: + break; + } +} + +void sub_8016B00(void) +{ + s32 auStack8; + + if (sub_80144A4(&auStack8) == 0) + UpdateFelicityBankState(gFelicityBankWork->fallbackState); +} + +void sub_8016B24(void) +{ + s32 auStack8; + + if (sub_80144A4(&auStack8) == 4) + UpdateFelicityBankState(gFelicityBankWork->fallbackState); +} + +void sub_8016B48(u8 action) +{ + sub_8008C54(gFelicityBankWork->unk78); + sub_80073B8(gFelicityBankWork->unk78); + if (action != FELICITY_BANK_ACTION_WITHDRAW) + xxx_call_draw_string(12, 0, gFelicityDeposit, gFelicityBankWork->unk78, 0); + else + xxx_call_draw_string(12, 0, gFelicityWithdraw, gFelicityBankWork->unk78, 0); + sub_8013C68(&gFelicityBankWork->unk64); + sub_80073E0(gFelicityBankWork->unk78); +} + +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); + xxx_call_draw_string(112, 4, gFelicitySavings, param_1, 0); + sub_8012BC4(200, 4, gTeamInventory_203B460->teamSavings, 7, 5, param_1); + sub_80073E0(param_1); +} + +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_80073E0(param_1); +} \ No newline at end of file diff --git a/src/felicity_bank_1.c b/src/felicity_bank_1.c deleted file mode 100644 index 5c876a80b..000000000 --- a/src/felicity_bank_1.c +++ /dev/null @@ -1,149 +0,0 @@ -#include "global.h" -#include "item.h" -#include "team_inventory.h" -#include "felicity_bank.h" -#include "menu_input.h" - -extern struct unkStruct_203B204 *gUnknown_203B204; - -extern u8 gUnknown_80DB738; -extern u8 gFelicityMoney[]; -extern u8 gFelicitySavings[]; -extern u8 *gFelicityWithdraw; -extern u8 *gFelicityDeposit; - -extern void sub_8008C54(u32); -extern void sub_80073B8(u32); -extern void xxx_call_draw_string(s32 x, u32 y, u8 *, u32 , u32); -extern void sub_80073E0(u32); -extern void sub_8013C68(u32 *); -extern s32 sub_80144A4(s32 *); -extern void UpdateFelicityBankState(u32); -extern void PlaySound(u32); - -extern u32 sub_8013BBC(u32 *); -void sub_8016B48(u8 action); - -#define FELICITY_BANK_ACTION_WITHDRAW 0 -#define FELICITY_BANK_ACTION_DEPOSIT 1 - -void sub_80169BC(void) -{ - s32 menuAction; - if(sub_80144A4(&menuAction) == 0) - { - gUnknown_203B204->menuAction = menuAction; - switch(menuAction) - { - case 2: - UpdateFelicityBankState(7); - break; - case 3: - UpdateFelicityBankState(10); - break; - case 4: - UpdateFelicityBankState(3); - break; - case 1: - UpdateFelicityBankState(4); - break; - } - } -} - -void Felicity_DepositMoney(void) -{ - switch(sub_8013BBC(&gUnknown_203B204->unk64)) - { - case 1: - sub_8016B48(FELICITY_BANK_ACTION_DEPOSIT); - break; - case 3: - gUnknown_203B204->chosenAmount = gUnknown_203B204->unk64; - gTeamInventory_203B460->teamSavings += gUnknown_203B204->chosenAmount; - gTeamInventory_203B460->teamMoney -= gUnknown_203B204->chosenAmount; - PlaySound(0x14c); - UpdateFelicityBankState(9); - break; - case 2: - UpdateFelicityBankState(5); - break; - case 0: - break; - } -} - -void Felicity_WithdrawMoney(void) -{ - switch(sub_8013BBC(&gUnknown_203B204->unk64)) - { - case 1: - sub_8016B48(FELICITY_BANK_ACTION_WITHDRAW); - break; - case 3: - gUnknown_203B204->chosenAmount = gUnknown_203B204->unk64; - gTeamInventory_203B460->teamMoney += gUnknown_203B204->chosenAmount; - gTeamInventory_203B460->teamSavings -= gUnknown_203B204->chosenAmount; - PlaySound(0x14c); - UpdateFelicityBankState(0xc); - break; - case 2: - UpdateFelicityBankState(5); - break; - case 0: - break; - } -} - -void sub_8016B00(void) -{ - s32 auStack8; - - if (sub_80144A4(&auStack8) == 0) { - UpdateFelicityBankState(gUnknown_203B204->fallbackState); - } -} - -void sub_8016B24(void) -{ - s32 auStack8; - - if (sub_80144A4(&auStack8) == 4) { - UpdateFelicityBankState(gUnknown_203B204->fallbackState); - } -} - -void sub_8016B48(u8 action) -{ - - sub_8008C54(gUnknown_203B204->unk78); - sub_80073B8(gUnknown_203B204->unk78); - if (action != FELICITY_BANK_ACTION_WITHDRAW) { - xxx_call_draw_string(12,0,gFelicityDeposit,gUnknown_203B204->unk78,0); - } - else { - xxx_call_draw_string(12,0,gFelicityWithdraw,gUnknown_203B204->unk78,0); - } - sub_8013C68(&gUnknown_203B204->unk64); - sub_80073E0(gUnknown_203B204->unk78); -} - -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); - xxx_call_draw_string(112, 4, gFelicitySavings, param_1, 0); - sub_8012BC4(200,4,gTeamInventory_203B460->teamSavings,7,5,param_1); - sub_80073E0(param_1); -} - -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_80073E0(param_1); -} diff --git a/src/gulpin_shop.c b/src/gulpin_shop.c index 859c988d6..9f3b8dd90 100644 --- a/src/gulpin_shop.c +++ b/src/gulpin_shop.c @@ -9,7 +9,7 @@ #include "gulpin_shop.h" #include "menu_input.h" -extern struct unkStruct_203B26C *gUnknown_203B26C; +extern struct GulpinShopWork *gGulpinShopWork; extern const struct UnkTextStruct2 gUnknown_80DC11C; extern const struct UnkTextStruct2 gUnknown_80DC134; extern const u8 *gUnknown_80D4920[]; @@ -42,45 +42,43 @@ extern void sub_801F808(u16 *); extern u32 sub_801F890(void); extern void sub_801F8D0(void); extern void PlaySound(u32); -void UpdateGulpinShopState(u32); +void SetGulpinShopState(u32); -u32 DisplayGulpinDialogueSprite(s32 param_1,s16 pokeSpecies,struct Move *param_3) +u32 CreateGulpinShop(s32 isAsleep, s16 pokeSpecies, struct Move *moves) { struct OpenedFile *faceFile; s32 species_32; species_32 = pokeSpecies; // dumb cast needed to get lsr/asr combo - gUnknown_203B26C = MemoryAlloc(sizeof(struct unkStruct_203B26C),8); - gUnknown_203B26C->unk0 = param_1; - gUnknown_203B26C->speciesNum = species_32; - gUnknown_203B26C->moves = param_3; - gUnknown_203B26C->unk1C = param_3[4].id; + gGulpinShopWork = MemoryAlloc(sizeof(struct GulpinShopWork), 8); + gGulpinShopWork->isAsleep = isAsleep; + gGulpinShopWork->speciesNum = species_32; + gGulpinShopWork->moves = moves; + gGulpinShopWork->unk1C = moves[4].id; // 5th move..? + + if (isAsleep == 0) + gGulpinShopWork->unk128 = &gGulpinShopWork->faceFile; + else + gGulpinShopWork->unk128 = NULL; - if (param_1 == 0) { - gUnknown_203B26C->unk128 = &gUnknown_203B26C->faceFile; - } - else { - gUnknown_203B26C->unk128 = NULL; - } faceFile = GetDialogueSpriteDataPtr(MONSTER_GULPIN); - gUnknown_203B26C->faceFile = faceFile; - gUnknown_203B26C->faceData = faceFile->data; + gGulpinShopWork->faceFile = faceFile; + gGulpinShopWork->faceData = faceFile->data; - gUnknown_203B26C->unk124 = 0; - gUnknown_203B26C->unk125 = 0; - gUnknown_203B26C->unk126 = 0; + gGulpinShopWork->unk124 = 0; + gGulpinShopWork->unk125 = 0; + gGulpinShopWork->unk126 = 0; - gUnknown_203B26C->unk120 = 2; - gUnknown_203B26C->unk122 = 8; - UpdateGulpinShopState(0); + gGulpinShopWork->unk120 = 2; + gGulpinShopWork->unk122 = 8; + SetGulpinShopState(0); return 1; } u32 sub_801E8C0(void) { - switch(gUnknown_203B26C->state) - { + switch (gGulpinShopWork->state) { case 0: case 1: sub_801ECBC(); @@ -93,7 +91,7 @@ u32 sub_801E8C0(void) break; case 4: sub_801EDC0(); - if(gUnknown_203B26C->state == 5) + if (gGulpinShopWork->state == 5) return 3; break; case 5: @@ -101,27 +99,26 @@ u32 sub_801E8C0(void) case 6: return 2; } - return 0; + return 0; } bool8 GulpinIsNextMoveLinked(void) { - return gUnknown_203B26C->isNextMoveLinked; + return gGulpinShopWork->isNextMoveLinked; } -void sub_801E93C(void) +void DestroyGulpinShop(void) { - if(gUnknown_203B26C != NULL) - { - CloseFile(gUnknown_203B26C->faceFile); - MemoryFree(gUnknown_203B26C); - gUnknown_203B26C = NULL; + if (gGulpinShopWork != NULL) { + CloseFile(gGulpinShopWork->faceFile); + MemoryFree(gGulpinShopWork); + gGulpinShopWork = NULL; } } -void UpdateGulpinShopState(u32 newState) +void SetGulpinShopState(u32 newState) { - gUnknown_203B26C->state = newState; + gGulpinShopWork->state = newState; sub_801E980(); sub_801EA28(); } @@ -130,124 +127,122 @@ void sub_801E980(void) { s32 index; - sub_8006518(gUnknown_203B26C->unk12C); - switch(gUnknown_203B26C->state) - { + sub_8006518(gGulpinShopWork->unk12C); + + switch (gGulpinShopWork->state) { case 2: sub_801EBC4(); - gUnknown_203B26C->unk12C[1] = gUnknown_80DC11C; - gUnknown_203B26C->unk12C[2] = gUnknown_80DC134; - sub_8012CAC(&gUnknown_203B26C->unk12C[2], gUnknown_203B26C->unk28); + gGulpinShopWork->unk12C[1] = gUnknown_80DC11C; + gGulpinShopWork->unk12C[2] = gUnknown_80DC134; + sub_8012CAC(&gGulpinShopWork->unk12C[2], gGulpinShopWork->unk28); break; default: - for(index = 0; index < 4; index++) - { - gUnknown_203B26C->unk12C[index] = gUnknown_80DC11C; + for(index = 0; index < 4; index++) { + gGulpinShopWork->unk12C[index] = gUnknown_80DC11C; } break; } + ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B26C->unk12C, 1, 1); + sub_800641C(gGulpinShopWork->unk12C, 1, 1); } -void sub_801EA28(void) { - switch(gUnknown_203B26C->state) { +void sub_801EA28(void) +{ + switch (gGulpinShopWork->state) { case 0: - sub_801EE10(2, gUnknown_203B26C->speciesNum, gUnknown_203B26C->moves, 0, &gUnknown_80DC164, 0); + sub_801EE10(2, gGulpinShopWork->speciesNum, gGulpinShopWork->moves, 0, &gUnknown_80DC164, 0); break; case 1: sub_801F1B0(1, 0); break; case 2: sub_801F280(0); - sub_8012D60(&gUnknown_203B26C->unk78, gUnknown_203B26C->unk28, 0, gUnknown_203B26C->unk68, gUnknown_203B26C->unk24, 2); + sub_8012D60(&gGulpinShopWork->unk78, gGulpinShopWork->unk28, 0, gGulpinShopWork->unk68, gGulpinShopWork->unk24, 2); break; case 3: - GetLinkedSequence(gUnknown_203B26C->unk20, gUnknown_203B26C->moves, &gUnknown_203B26C->unk14[0]); - sub_801F808(&gUnknown_203B26C->unk14[0]); + GetLinkedSequence(gGulpinShopWork->unk20, gGulpinShopWork->moves, &gGulpinShopWork->unk14[0]); + sub_801F808(&gGulpinShopWork->unk14[0]); break; case 4: sub_801EC7C(); - sub_8092C84(gAvailablePokemonNames, gUnknown_203B26C->unk1C); - sub_8092C84(&gAvailablePokemonNames[0x50], gUnknown_203B26C->unk1E); + sub_8092C84(gAvailablePokemonNames, gGulpinShopWork->unk1C); + sub_8092C84(&gAvailablePokemonNames[0x50], gGulpinShopWork->unk1E); - switch (gUnknown_203B26C->unk0) { + switch (gGulpinShopWork->isAsleep) { case 0: case 1: - if (gUnknown_203B26C->isNextMoveLinked) { - sub_8014248(gGulpinDialogue[gUnknown_203B26C->unk0][12], 0, 5, &gUnknown_203B26C->unk28[0], - &gUnknown_203B26C->unk68, 4, 0, gUnknown_203B26C->unk128, 12); // Forget the move and any moves linked to it and learn? - } - else { - sub_8014248(gGulpinDialogue[gUnknown_203B26C->unk0][11], 0, 5, &gUnknown_203B26C->unk28[0], - &gUnknown_203B26C->unk68, 4, 0, gUnknown_203B26C->unk128, 12); // Forget the move and learn? - } - break; - case 2: - if (gUnknown_203B26C->isNextMoveLinked) - sub_8014248(gUnknown_80DC1A0, 0, 5, &gUnknown_203B26C->unk28[0], - &gUnknown_203B26C->unk68, 4, 0, NULL, 32); + if (gGulpinShopWork->isNextMoveLinked) + sub_8014248(gGulpinDialogue[gGulpinShopWork->isAsleep][12], 0, 5, &gGulpinShopWork->unk28[0], + &gGulpinShopWork->unk68, 4, 0, gGulpinShopWork->unk128, 12); // Forget the move and any moves linked to it and learn? else - sub_8014248(gUnknown_80DC1FC, 0, 5, &gUnknown_203B26C->unk28[0], - &gUnknown_203B26C->unk68, 4, 0, NULL, 32); - break; + sub_8014248(gGulpinDialogue[gGulpinShopWork->isAsleep][11], 0, 5, &gGulpinShopWork->unk28[0], + &gGulpinShopWork->unk68, 4, 0, gGulpinShopWork->unk128, 12); // Forget the move and learn? + break; + case 2: + if (gGulpinShopWork->isNextMoveLinked) + sub_8014248(gUnknown_80DC1A0, 0, 5, &gGulpinShopWork->unk28[0], + &gGulpinShopWork->unk68, 4, 0, NULL, 32); + else + sub_8014248(gUnknown_80DC1FC, 0, 5, &gGulpinShopWork->unk28[0], + &gGulpinShopWork->unk68, 4, 0, NULL, 32); + break; } break; } } -void sub_801EBC4(void) { +void sub_801EBC4(void) +{ s32 which; s32 i; which = 0; - MemoryFill16(&gUnknown_203B26C->unk68[0], 0, sizeof(gUnknown_203B26C->unk68)); + MemoryFill16(gGulpinShopWork->unk68, 0, sizeof(gGulpinShopWork->unk68)); - gUnknown_203B26C->unk28[which].text = gUnknown_80DC230; // "Forget" - gUnknown_203B26C->unk28[which].menuAction = 2; + gGulpinShopWork->unk28[which].text = gUnknown_80DC230; // "Forget" + gGulpinShopWork->unk28[which].menuAction = 2; - if (!IsAnyMoveLinked(gUnknown_203B26C->unk1E, gUnknown_203B26C->moves) - || (s32)gUnknown_203B26C->unk20 >= 4) { - gUnknown_203B26C->unk68[0] = 1; - } + if (!IsAnyMoveLinked(gGulpinShopWork->unk1E, gGulpinShopWork->moves) || (s32)gGulpinShopWork->unk20 >= 4) + gGulpinShopWork->unk68[0] = 1; which++; - gUnknown_203B26C->unk28[which].text = *gUnknown_80D4970; // "Info" - gUnknown_203B26C->unk28[which].menuAction = 3; + gGulpinShopWork->unk28[which].text = *gUnknown_80D4970; // "Info" + gGulpinShopWork->unk28[which].menuAction = 3; which++; - gUnknown_203B26C->unk28[which].text = NULL; - gUnknown_203B26C->unk28[which].menuAction = 1; + gGulpinShopWork->unk28[which].text = NULL; + gGulpinShopWork->unk28[which].menuAction = 1; i = 0; if (i < which) { - if (gUnknown_203B26C->unk68[0] == 0) { - gUnknown_203B26C->unk24 = gUnknown_203B26C->unk28[0].menuAction; - } + if (gGulpinShopWork->unk68[0] == 0) + gGulpinShopWork->unk24 = gGulpinShopWork->unk28[0].menuAction; else { while (i < which) { - if (gUnknown_203B26C->unk68[i] == 0) { - gUnknown_203B26C->unk24 = gUnknown_203B26C->unk28[i].menuAction; + if (gGulpinShopWork->unk68[i] == 0) { + gGulpinShopWork->unk24 = gGulpinShopWork->unk28[i].menuAction; break; } i++; } } - } + } } -void sub_801EC7C(void) { +void sub_801EC7C(void) +{ s32 which; which = 0; - MemoryFill16(&gUnknown_203B26C->unk68[0], 0, sizeof(gUnknown_203B26C->unk68)); - gUnknown_203B26C->unk28[which].text = *gUnknown_80D4920; // "Yes" - gUnknown_203B26C->unk28[which].menuAction = 4; + MemoryFill16(gGulpinShopWork->unk68, 0, sizeof(gGulpinShopWork->unk68)); + gGulpinShopWork->unk28[which].text = *gUnknown_80D4920; // "Yes" + gGulpinShopWork->unk28[which].menuAction = 4; which++; - gUnknown_203B26C->unk28[which].text = *gUnknown_80D4928; // "No" - gUnknown_203B26C->unk28[which].menuAction = 5; + gGulpinShopWork->unk28[which].text = *gUnknown_80D4928; // "No" + gGulpinShopWork->unk28[which].menuAction = 5; which++; - gUnknown_203B26C->unk28[which].text = NULL; - gUnknown_203B26C->unk28[which].menuAction = 1; + gGulpinShopWork->unk28[which].text = NULL; + gGulpinShopWork->unk28[which].menuAction = 1; } void sub_801ECBC(void) @@ -256,26 +251,26 @@ void sub_801ECBC(void) case 3: { struct Move* move; - gUnknown_203B26C->unk20 = sub_801F194(); - move = gUnknown_203B26C->moves; - move = &move[gUnknown_203B26C->unk20]; - gUnknown_203B26C->unk1E = move->id; - UpdateGulpinShopState(2); + gGulpinShopWork->unk20 = sub_801F194(); + move = gGulpinShopWork->moves; + move = &move[gGulpinShopWork->unk20]; + gGulpinShopWork->unk1E = move->id; + SetGulpinShopState(2); break; } case 4: { struct Move* move; - gUnknown_203B26C->unk20 = sub_801F194(); - move = gUnknown_203B26C->moves; - move = &move[gUnknown_203B26C->unk20]; - gUnknown_203B26C->unk1E = move->id; - UpdateGulpinShopState(3); + gGulpinShopWork->unk20 = sub_801F194(); + move = gGulpinShopWork->moves; + move = &move[gGulpinShopWork->unk20]; + gGulpinShopWork->unk1E = move->id; + SetGulpinShopState(3); break; } case 2: sub_801F214(); - UpdateGulpinShopState(6); + SetGulpinShopState(6); break; } } @@ -286,21 +281,21 @@ void sub_801ED28(void) menuAction = 0; sub_801EF38(0); - if (sub_8012FD8(&gUnknown_203B26C->unk78) == 0) - sub_8013114(&gUnknown_203B26C->unk78, &menuAction); + if (sub_8012FD8(&gGulpinShopWork->unk78) == 0) + sub_8013114(&gGulpinShopWork->unk78, &menuAction); - switch(menuAction) { + switch (menuAction) { case 1: case 5: - UpdateGulpinShopState(1); + SetGulpinShopState(1); break; case 2: PlaySound(0x133); - gUnknown_203B26C->isNextMoveLinked = IsNextMoveLinked(gUnknown_203B26C->unk20, gUnknown_203B26C->moves); - UpdateGulpinShopState(4); + gGulpinShopWork->isNextMoveLinked = IsNextMoveLinked(gGulpinShopWork->unk20, gGulpinShopWork->moves); + SetGulpinShopState(4); break; case 3: - UpdateGulpinShopState(3); + SetGulpinShopState(3); break; } } @@ -311,7 +306,7 @@ void sub_801EDA4(void) case 2: case 3: sub_801F8D0(); - UpdateGulpinShopState(1); + SetGulpinShopState(1); break; case 0: case 1: @@ -322,17 +317,17 @@ void sub_801EDA4(void) void sub_801EDC0(void) { s32 temp; + if (sub_80144A4(&temp) == 0) { - switch (temp) - { + switch (temp) { case 4: sub_801F214(); - RemoveLinkSequenceFromMoves8(gUnknown_203B26C->moves, gUnknown_203B26C->unk20); - gUnknown_203B26C->state = 5; + RemoveLinkSequenceFromMoves8(gGulpinShopWork->moves, gGulpinShopWork->unk20); + gGulpinShopWork->state = 5; break; case 1: case 5: - UpdateGulpinShopState(1); + SetGulpinShopState(1); break; } } diff --git a/src/hints_menu.c b/src/hints_menu.c index 4ac53dc58..f118a31de 100644 --- a/src/hints_menu.c +++ b/src/hints_menu.c @@ -49,7 +49,6 @@ extern void PlayMenuSoundEffect(u32); extern void sub_801E714(void); extern void sub_801E76C(void); extern void DisplayChosenHint(void); -extern void xxx_call_draw_string(s32, u32, u8 *, u32, u32); extern void sub_80073E0(u32); extern void sub_80073B8(u32); extern s32 sub_8013800(struct MenuInputStruct *, u32); diff --git a/src/kangaskhan_storage_1.c b/src/kangaskhan_storage_1.c index 78195283c..e32dff046 100644 --- a/src/kangaskhan_storage_1.c +++ b/src/kangaskhan_storage_1.c @@ -53,7 +53,6 @@ extern void sub_8008C54(u32); extern void sub_80073B8(u32); extern void sub_8013C68(u32 *); extern void sub_80073E0(u32); -extern void xxx_call_draw_string(u32 x, u32 y, u8 *, u32, u32); extern void sub_801A9E0(); extern void sub_801841C(); diff --git a/src/kecleon_items_1.c b/src/kecleon_items_1.c index 933b07d0d..cbfdf8302 100644 --- a/src/kecleon_items_1.c +++ b/src/kecleon_items_1.c @@ -9,6 +9,7 @@ #include "team_inventory.h" #include "code_800D090.h" #include "menu_input.h" +#include "text.h" extern struct unkStruct_203B210 *gUnknown_203B210; extern u16 gUnknown_203B218; @@ -46,7 +47,6 @@ extern void sub_8008C54(u32); extern void sub_80073B8(u32); extern void sub_80073E0(u32); extern s32 sub_8013800(struct MenuInputStruct *, u32); -extern void xxx_call_draw_string(s32 x, s32, u8 *, u32, 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); diff --git a/src/load_screen.c b/src/load_screen.c index 8f30f7577..a5ce6acb0 100644 --- a/src/load_screen.c +++ b/src/load_screen.c @@ -49,7 +49,6 @@ extern bool8 sub_80023E4(u32); extern u8 *sub_8098FB4(); extern u8 *GetDungeonLocationInfo(void); extern u32 GetNumAdventures(void); -extern void xxx_call_draw_string(u32 x, u32 y, const u8 *, u32, u32); extern void PrintDungeonLocationtoBuffer(u8 *, u8 *); extern void sub_80922B4(u8 *, const u8 *, u32); extern u32 sub_8001658(u32, u32); diff --git a/src/mailbox.c b/src/mailbox.c index f7fc3dbbf..9eb3d5883 100644 --- a/src/mailbox.c +++ b/src/mailbox.c @@ -86,7 +86,6 @@ extern void InitializeJobListMenu(u32); extern void sub_802B640(u32, u32, u32); extern void sub_802B7D0(u32); extern void sub_802B9FC(u8); -extern void xxx_call_draw_string(s32 x, u32 y, const u8 *, u32 , u32); extern void sub_8008C54(u32); extern void sub_80073B8(u32); extern void sub_80073E0(u32); diff --git a/src/makuhita_dojo_1.c b/src/makuhita_dojo_1.c index a82b5257c..0425c0377 100644 --- a/src/makuhita_dojo_1.c +++ b/src/makuhita_dojo_1.c @@ -58,7 +58,6 @@ extern s16 sub_80A26CC(s16 r0); extern void sub_8008C54(u32); extern void sub_80073B8(u32); extern void sub_80073E0(u32); -extern void xxx_call_draw_string(s32 x, u32 y, const u8 *, u32 , u32); extern u8 sub_80A2740(s32 r0); extern s16 sub_80A2668(u32 r0); extern s32 sub_8013800(void *, u32); diff --git a/src/options_menu.c b/src/options_menu.c index 9e8a9c4a3..8f3d596d8 100644 --- a/src/options_menu.c +++ b/src/options_menu.c @@ -59,7 +59,6 @@ extern const char *gUnknown_80D4928[]; extern void sub_8008C54(u32); extern void sub_80073B8(u32); extern void sub_80073E0(u32); -extern void xxx_call_draw_string(u32, u32, u8 *, u32, u32); extern s32 sub_8008ED0(u8 *); extern s32 sub_8013800(u32 *, u32); extern void sub_80078A4(u32, u32, u32, u32, u32); diff --git a/src/party_list_menu.c b/src/party_list_menu.c index 78482869d..9d43a2e4f 100644 --- a/src/party_list_menu.c +++ b/src/party_list_menu.c @@ -174,7 +174,6 @@ extern void sub_80073E0(u32); extern void sub_80922B4(u8 *, const u8 *, u32); extern void sub_808D930(u8 *, s16); extern s32 sub_8008ED0(u8 *); -extern void xxx_call_draw_string(s32 x, s32 y, u8 *, u32, u32); extern void xxx_format_and_draw(s32, s32, const u8 *, ...); extern s32 sub_80144A4(s32 *); extern u32 sub_801F890(void); diff --git a/src/pelipper_board.c b/src/pelipper_board.c index fabbf70fe..9ac1d2cc8 100644 --- a/src/pelipper_board.c +++ b/src/pelipper_board.c @@ -79,7 +79,6 @@ extern void sub_803B35C(struct WonderMail *, struct unkStruct_802C39C *); extern void sub_802DE84(struct unkStruct_802C39C *); extern void InitializeJobListMenu(u32); -extern void xxx_call_draw_string(s32 x, u32 y, const u8 *, u32 , u32); extern void sub_8008C54(u32); extern void sub_80073B8(u32); extern void sub_80073E0(u32); diff --git a/src/personality_test.c b/src/personality_test.c index 6f3259ded..fdfe719a7 100644 --- a/src/personality_test.c +++ b/src/personality_test.c @@ -72,7 +72,6 @@ extern void PlayMenuSoundEffect(u32); extern void sub_8013984(struct MenuInputStruct *r0); u32 sub_8013800(struct MenuInputStruct *r0, u32); extern void AddMenuCursorSprite(struct MenuInputStruct *r0); -extern void xxx_call_draw_string(u32 x, u32 y, const char *text, u32, u32); extern u32 sub_80095E4(s16, u32); extern struct GameOptions *gGameOptionsRef; diff --git a/src/pokemon_news.c b/src/pokemon_news.c index 8f54f5a4e..f171c055c 100644 --- a/src/pokemon_news.c +++ b/src/pokemon_news.c @@ -181,7 +181,6 @@ extern void sub_8008C54(u32); extern void sub_80073B8(u32); extern void sub_802BC7C(void); extern void sub_80073E0(u32); -extern void xxx_call_draw_string(s32 x, u32 y, const u8 *, u32 , u32); extern void xxx_format_and_draw(u32, u32, const u8 *, u32, u32); extern void sub_803B6B0(u32, u32, u32, u32); extern s32 sub_8013800(struct MenuInputStruct *, s32); diff --git a/src/post_office_guide.c b/src/post_office_guide.c index 41c626f26..6f466b5a8 100644 --- a/src/post_office_guide.c +++ b/src/post_office_guide.c @@ -187,7 +187,6 @@ extern u8 *sub_80975DC(u32 r0); extern u8 sub_8099360(u8 *); extern u8 sub_8099394(volatile u8 *); extern struct WonderMail *GetJobSlotInfo(u8); -extern void xxx_call_draw_string(s32 x, u32 y, const u8 *, u32 , u32); extern void sub_80073B8(u32); extern void sub_80073E0(u32); extern void sprintfStatic(char *buffer, const char *text, ...); diff --git a/src/trade_items_menu.c b/src/trade_items_menu.c index 3c53c18a5..2d8c72e93 100644 --- a/src/trade_items_menu.c +++ b/src/trade_items_menu.c @@ -9,6 +9,7 @@ #include "save.h" #include "menu.h" #include "menu_input.h" +#include "text.h" EWRAM_DATA_2 struct TradeItemsMenu *gTradeItemsMenu = {0}; @@ -101,7 +102,6 @@ extern void sub_8008C54(u32); extern void sub_80073B8(u32); extern void sub_8013C68(u32 *); extern void sub_80073E0(u32); -extern void xxx_call_draw_string(u32, u32, const u8 *, u32, u32); extern u8 sub_801CF14(u32); extern u32 sub_801D008(); extern void sub_801C8C4(u32, u32, s32 *, u32); diff --git a/src/wonder_mail_2_1.c b/src/wonder_mail_2_1.c index c8fccdfaf..9ad4d167f 100644 --- a/src/wonder_mail_2_1.c +++ b/src/wonder_mail_2_1.c @@ -103,7 +103,6 @@ extern void sub_80073E0(u32); extern struct WonderMail* GetJobSlotInfo(u8); extern s32 sub_8013800(struct MenuInputStruct*, u32); extern void sub_803B35C(struct WonderMail *, struct unkStruct_802C39C *); -extern void xxx_call_draw_string(u32, u32, const u8 *, u32, u32); extern void CreateRescueTitle(struct unkStruct_802C39C *); extern void sub_8013984(struct MenuInputStruct*); diff --git a/src/wonder_mail_2_mid.c b/src/wonder_mail_2_mid.c index c1eb56a61..1b45522e4 100644 --- a/src/wonder_mail_2_mid.c +++ b/src/wonder_mail_2_mid.c @@ -32,7 +32,6 @@ extern void sub_803B35C(struct WonderMail *, u32 *); extern u8 gBulletinBoardText[]; extern bool8 IsMailinJobSlot(struct WonderMail *); extern void CreateRescueTitle(struct unkStruct_802C39C *); -extern void xxx_call_draw_string(s32, s32, u8 *, s32, s32); struct unkStruct_203B2D8 diff --git a/src/wonder_mail_3.c b/src/wonder_mail_3.c index 7d331d851..1447180c2 100644 --- a/src/wonder_mail_3.c +++ b/src/wonder_mail_3.c @@ -149,7 +149,6 @@ extern u8 *sub_8096DE8(void); extern void AcceptJob(struct unkSubStruct_203B2F8 *); extern void sub_8014248(const char *text, u32, u32, struct MenuItem *r0, u32, u32, u32, u32, u32); struct unkStruct_803B344 *sub_803B344(u8); -extern void xxx_call_draw_string(u32, u32, const u8 *, u32, u32); extern void sub_8008C54(u32); extern void sub_80073B8(u32); extern void sub_80073E0(u32); diff --git a/src/wonder_mail_3_mid.c b/src/wonder_mail_3_mid.c index 4e5d0c0e3..cc2b08450 100644 --- a/src/wonder_mail_3_mid.c +++ b/src/wonder_mail_3_mid.c @@ -138,7 +138,6 @@ extern u32 sub_801B60C(u32, u8, u8); extern void sub_8092578(u8 *buffer, u8 index, u8 r2); void HandleMissionReward(void); extern s32 sub_8013800(struct MenuInputStruct *, s32); -extern void xxx_call_draw_string(s32, s32, const u8 *, s32, s32); extern void sub_8008C54(u32); extern void sub_80073B8(u32); extern void sub_80073E0(u32); diff --git a/src/wonder_mail_4.c b/src/wonder_mail_4.c index 44011b132..cde0be528 100644 --- a/src/wonder_mail_4.c +++ b/src/wonder_mail_4.c @@ -89,7 +89,6 @@ extern void PlayMenuSoundEffect(u32); extern void sub_8013984(struct MenuInputStruct*); extern void AddMenuCursorSprite(struct MenuInputStruct*); extern s32 sub_8013800(struct MenuInputStruct*, u32); -extern void xxx_call_draw_string(u32, u32, const u8 *, u32, u32); extern void sub_8008C54(u32); extern void sub_80073B8(u32); extern void sub_80073E0(u32); diff --git a/src/wonder_mail_5.c b/src/wonder_mail_5.c index 7c6183cc6..d6313c687 100644 --- a/src/wonder_mail_5.c +++ b/src/wonder_mail_5.c @@ -51,7 +51,6 @@ extern void sub_801317C(void *); extern void PlayMenuSoundEffect(u32); extern u32 sub_8012A64(void *, u32); extern void CreateRescueDescription(struct unkStruct_802C39C *); -extern void xxx_call_draw_string(u32, u32, const char *, u32, u32); extern void sub_80073E0(u32); extern void sub_80073B8(u32); diff --git a/sym_ewram2.txt b/sym_ewram2.txt index 43a5ab052..7ac427954 100644 --- a/sym_ewram2.txt +++ b/sym_ewram2.txt @@ -136,7 +136,7 @@ gUnknown_203B1FC: /* 203B1FC */ gUnknown_203B200: /* 203B200 */ .space 0x4 -gUnknown_203B204: /* 203B204 */ +gFelicityBankWork: /* 203B204 */ .space 0x4 gUnknown_203B208: /* 203B208 */ @@ -220,7 +220,7 @@ gUnknown_203B264: /* 203B264 */ gUnknown_203B268: /* 203B268 */ .space 0x4 -gUnknown_203B26C: /* 203B26C */ +gGulpinShopWork: /* 203B26C */ .space 0x4 gUnknown_203B270: /* 203B270 */