Merge pull request #141 from Kermalis/kermalis-felicity-bank

Complete felicity bank
This commit is contained in:
Seth Barberee
2023-07-23 20:45:50 -07:00
committed by GitHub
41 changed files with 496 additions and 951 deletions

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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);

View File

@@ -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);

View File

@@ -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:

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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();

View File

@@ -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();

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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;
}
}

View File

@@ -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);

View File

@@ -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();

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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;

View File

@@ -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);

View File

@@ -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, ...);

View File

@@ -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);

View File

@@ -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*);

View File

@@ -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

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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 */