Match sub_8013AA0, gCommonKangStorage

This commit is contained in:
Kermalis 2023-09-12 08:27:10 -04:00
parent d93c4ee60a
commit 11d12d5012
28 changed files with 644 additions and 711 deletions

View File

@ -5,147 +5,6 @@
.text
thumb_func_start sub_8013AA0
sub_8013AA0:
push {r4,r5,lr}
sub sp, 0x28
adds r5, r0, 0
ldrh r1, [r5, 0x28]
ldr r0, _08013B9C
ands r0, r1
ldr r1, _08013BA0
ands r0, r1
ldr r4, _08013BA4
ands r0, r4
ldr r1, _08013BA8
ands r0, r1
ldr r1, _08013BAC
ands r0, r1
movs r1, 0x80
lsls r1, 7
ldr r3, _08013BB0
ands r0, r3
orrs r0, r1
strh r0, [r5, 0x28]
movs r1, 0x80
lsls r1, 6
ldrh r0, [r5, 0x2A]
ldr r2, _08013BB4
ands r2, r0
orrs r2, r1
ands r2, r3
movs r3, 0xFC
lsls r3, 2
ldrh r1, [r5, 0x2C]
movs r0, 0xFC
lsls r0, 8
ands r0, r1
orrs r0, r3
ands r0, r4
movs r3, 0xF
movs r4, 0xF0
lsls r4, 8
ldr r1, _08013BB8
ands r0, r1
orrs r0, r4
strh r0, [r5, 0x2C]
movs r0, 0xFE
lsls r0, 8
ands r2, r0
movs r0, 0xF0
orrs r2, r0
strh r2, [r5, 0x2A]
subs r1, 0xFF
ldrh r0, [r5, 0x2E]
ands r3, r0
movs r0, 0
orrs r3, r1
strh r3, [r5, 0x2E]
adds r1, r5, 0
adds r1, 0x26
strb r0, [r1]
ldr r1, [r5, 0xC]
ldr r2, [r5, 0x10]
mov r0, sp
bl ConvertToDecimal
ldr r0, [r5, 0x10]
adds r1, r5, 0
adds r1, 0x25
strb r0, [r1]
ldrb r2, [r1]
subs r0, r2, 0x1
lsls r0, 2
add r0, sp
ldr r0, [r0]
cmp r0, 0
bne _08013B50
cmp r2, 0x1
bls _08013B50
adds r2, r1, 0
_08013B38:
ldrb r0, [r2]
subs r0, 0x1
strb r0, [r2]
ldrb r1, [r2]
subs r0, r1, 0x1
lsls r0, 2
add r0, sp
ldr r0, [r0]
cmp r0, 0
bne _08013B50
cmp r1, 0x1
bhi _08013B38
_08013B50:
ldr r1, [r5, 0x4]
str r1, [r5]
ldr r2, [r5, 0x10]
mov r0, sp
bl ConvertToDecimal
adds r0, r5, 0
adds r0, 0x25
ldrb r0, [r0]
subs r0, 0x1
adds r1, r5, 0
adds r1, 0x24
strb r0, [r1]
ldrb r2, [r1]
lsls r0, r2, 2
add r0, sp
ldr r0, [r0]
cmp r0, 0
bne _08013B92
cmp r2, 0
beq _08013B92
adds r2, r1, 0
_08013B7C:
ldrb r0, [r2]
subs r0, 0x1
strb r0, [r2]
ldrb r1, [r2]
lsls r0, r1, 2
add r0, sp
ldr r0, [r0]
cmp r0, 0
bne _08013B92
cmp r1, 0
bne _08013B7C
_08013B92:
add sp, 0x28
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08013B9C: .4byte 0x0000feff
_08013BA0: .4byte 0x0000fdff
_08013BA4: .4byte 0x0000f3ff
_08013BA8: .4byte 0x0000efff
_08013BAC: .4byte 0x0000dfff
_08013BB0: .4byte 0x00003fff
_08013BB4: .4byte 0x0000c1ff
_08013BB8: .4byte 0x00000fff
thumb_func_end sub_8013AA0
thumb_func_start sub_8013BBC
sub_8013BBC:
push {r4-r7,lr}

View File

@ -2,318 +2,6 @@
.align 2,0
.global gCommonKangaskhanStorage
gCommonKangaskhanStorage: @ 80D5404
.4byte gUnknown_80D5E9C
.4byte gUnknown_80D5E84
.4byte gUnknown_80D5E60
.4byte gUnknown_80D5E10
.4byte gUnknown_80D5DE8
.4byte gUnknown_80D5DBC
.4byte gUnknown_80D5D8C
.4byte gUnknown_80D5D58
.4byte gUnknown_80D5D0C
.4byte gUnknown_80D5CE4
.4byte gUnknown_80D5CAC
.4byte gUnknown_80D5C74
.4byte gUnknown_80D5C44
.4byte gUnknown_80D5C1C
.4byte gUnknown_80D5BDC
.4byte gUnknown_80D5BAC
.4byte gUnknown_80D5B5C
.4byte gUnknown_80D5B24
.4byte gUnknown_80D5AF0
.4byte gUnknown_80D5984
.4byte gUnknown_80D5954
.4byte gUnknown_80D5934
.4byte gUnknown_80D5900
.4byte gUnknown_80D58B0
.4byte gUnknown_80D5884
.4byte gUnknown_80D5844
.4byte gUnknown_80D57F4
.4byte gUnknown_80D57C4
.4byte gUnknown_80D5774
.4byte gUnknown_80D574C
.4byte gUnknown_80D5710
.4byte gUnknown_80D56CC
.4byte gUnknown_80D56AC
.4byte gUnknown_80D5670
.4byte gUnknown_80D5630
.4byte gUnknown_80D55F4
.4byte gUnknown_80D55C0
.4byte gUnknown_80D5590
.4byte gUnknown_80D555C
.4byte gUnknown_80D54A4
.global gUnknown_80D54A4
gUnknown_80D54A4:
.string " Zzz... Snork!\n"
.string "I can store items that you\n"
.string "found in dungeons...{EXTRA_MSG}"
.string " Snarfle...\n"
.string "Things in storage don{APOSTROPHE}t get lost...{EXTRA_MSG}"
.string " Zzz... Zzz...\n"
.string "That{APOSTROPHE}s why...\n"
.string "Keep important items in storage...\0"
.align 2, 0
.global gUnknown_80D555C
gUnknown_80D555C:
.string " Zzz... Zzz... No...\n"
.string "The storage space is full...\0"
.align 2, 0
.global gUnknown_80D5590
gUnknown_80D5590:
.string " Zzz... No...\n"
.string "Can{APOSTROPHE}t store any more of that...\0"
.align 2, 0
.global gUnknown_80D55C0
gUnknown_80D55C0:
.string " Zzz... Zzz...\n"
.string "That {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}...\n"
.string "Can{APOSTROPHE}t store it...\0"
.align 2, 0
.global gUnknown_80D55F4
gUnknown_80D55F4:
.string " Snarfle? Hunh...?{WAIT_PRESS}\n"
.string "Zzz... Your storage space... Empty...\0"
.align 2, 0
.global gUnknown_80D5630
gUnknown_80D5630:
.string " Snarfle? Hunh...?{WAIT_PRESS}\n"
.string "Zzz...\n"
.string "You don{APOSTROPHE}t have enough space...\0"
.align 2, 0
.global gUnknown_80D5670
gUnknown_80D5670:
.string " Snarfle? Hunh...?{WAIT_PRESS}\n"
.string "Zzz...\n"
.string "You don{APOSTROPHE}t have anything...?\0"
.align 2, 0
.global gUnknown_80D56AC
gUnknown_80D56AC:
.string " Zzz... Snork!\n"
.string "There you go...\0"
.align 2, 0
.global gUnknown_80D56CC
gUnknown_80D56CC:
.string " Zzz... Zzz... Hunh...?\n"
.string "You want those things from storage...\n"
.string "OK?\0"
.align 2, 0
.global gUnknown_80D5710
gUnknown_80D5710:
.string " Hunh...? Taking...?\n"
.string "Oh... You want your {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}...\n"
.string "OK?\0"
.align 2, 0
.global gUnknown_80D574C
gUnknown_80D574C:
.string " Snork! Zzz...\n"
.string "Taking anything else?\0"
.align 2, 0
.global gUnknown_80D5774
gUnknown_80D5774:
.string " What...? Take out...?\n"
.string "Uh-huh... Choose more than one using\n"
.string "{L_BUTTON} or {R_BUTTON}... Zzz...\0"
.align 2, 0
.global gUnknown_80D57C4
gUnknown_80D57C4:
.string " Zzz... Zzz...\n"
.string "Yup{COMMA} I did... Stored away...\0"
.align 2, 0
.global gUnknown_80D57F4
gUnknown_80D57F4:
.string " Hunh{COMMA} wha--? Storage...?\n"
.string "I{APOSTROPHE}ll put away the things you chose...\n"
.string "That OK?\0"
.align 2, 0
.global gUnknown_80D5844
gUnknown_80D5844:
.string " Zzz... Store something?\n"
.string "Gonna put {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1} in storage...\n"
.string "OK?\0"
.align 2, 0
.global gUnknown_80D5884
gUnknown_80D5884:
.string " Do you... Snork...\n"
.string "Store anything else?\0"
.align 2, 0
.global gUnknown_80D58B0
gUnknown_80D58B0:
.string " Hunh{COMMA} wha--? Store what...?\n"
.string "You can choose more than one using\n"
.string "{L_BUTTON} or {R_BUTTON}...\0"
.align 2, 0
.global gUnknown_80D5900
gUnknown_80D5900:
.string " Snuffle... Mutter...\n"
.string "Thank you...\n"
.string "Come again...\0"
.align 2, 0
.global gUnknown_80D5934
gUnknown_80D5934:
.string " Zzz... Snork...\n"
.string "Anything else?\0"
.align 2, 0
.global gUnknown_80D5954
gUnknown_80D5954:
.string " Zzz... Zzz...\n"
.string "Hello{COMMA} there...\n"
.string "{ARG_POKEMON_6} Storage...\0"
.align 2, 0
.global gUnknown_80D5984
gUnknown_80D5984:
.string " I can store items that you\n"
.string "found in dungeons{COMMA} or that you\n"
.string "bought from shops.{EXTRA_MSG}"
.string " If you faint in\n"
.string "a dungeon{COMMA} your items will be lost...{WAIT_PRESS}\n"
.string "But what{APOSTROPHE}s in storage will be safe.{EXTRA_MSG}"
.string " I keep guard over the\n"
.string "storage space{COMMA} so anything you leave\n"
.string "with me won{APOSTROPHE}t ever disappear!{EXTRA_MSG}"
.string " If you have any items that\n"
.string "you can{APOSTROPHE}t bear to lose{COMMA} be sure to leave\n"
.string "them with me!\0"
.align 2, 0
.global gUnknown_80D5AF0
gUnknown_80D5AF0:
.string " Sorry{COMMA} dear.\n"
.string "I{APOSTROPHE}ve run out of storage space.\0"
.align 2, 0
.global gUnknown_80D5B24
gUnknown_80D5B24:
.string " Sorry{COMMA} dear.\n"
.string "I can{APOSTROPHE}t take any more of that item.\0"
.align 2, 0
.global gUnknown_80D5B5C
gUnknown_80D5B5C:
.string " Oh{COMMA} dear{COMMA} sorry.{WAIT_PRESS}\n"
.string "That {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1} is an item you\n"
.string "can{APOSTROPHE}t put in storage.\0"
.align 2, 0
.global gUnknown_80D5BAC
gUnknown_80D5BAC:
.string " Oh?\n"
.string "You don{APOSTROPHE}t have anything stored{COMMA} dear.\0"
.align 2, 0
.global gUnknown_80D5BDC
gUnknown_80D5BDC:
.string " Oh? You don{APOSTROPHE}t have the room\n"
.string "to carry any more items{COMMA} dear.\0"
.align 2, 0
.global gUnknown_80D5C1C
gUnknown_80D5C1C:
.string " Oh?\n"
.string "You don{APOSTROPHE}t seem to have anything?\0"
.align 2, 0
.global gUnknown_80D5C44
gUnknown_80D5C44:
.string " There you go!\n"
.string "Just like you asked{COMMA} sweetie!\0"
.align 2, 0
.global gUnknown_80D5C74
gUnknown_80D5C74:
.string " I{APOSTROPHE}ll take the items you\n"
.string "chose out of storage. OK?\0"
.align 2, 0
.global gUnknown_80D5CAC
gUnknown_80D5CAC:
.string " Fine{COMMA} I{APOSTROPHE}ll take your\n"
.string "{COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1} out of storage. OK?\0"
.align 2, 0
.global gUnknown_80D5CE4
gUnknown_80D5CE4:
.string " Would you like to take\n"
.string "anything else?\0"
.align 2, 0
.global gUnknown_80D5D0C
gUnknown_80D5D0C:
.string " What will you take out?\n"
.string "You can choose more than one item using\n"
.string "{L_BUTTON} or {R_BUTTON}.\0"
.align 2, 0
.global gUnknown_80D5D58
gUnknown_80D5D58:
.string " OK{COMMA} stored away!\n"
.string "You can count on me{COMMA} honey.\0"
.align 2, 0
.global gUnknown_80D5D8C
gUnknown_80D5D8C:
.string " I{APOSTROPHE}ll put the items you chose\n"
.string "in storage. OK?\0"
.align 2, 0
.global gUnknown_80D5DBC
gUnknown_80D5DBC:
.string " I{APOSTROPHE}ll put your\n"
.string "{COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1} in storage. OK?\0"
.align 2, 0
.global gUnknown_80D5DE8
gUnknown_80D5DE8:
.string " Do you want to store\n"
.string "anything else?\0"
.align 2, 0
.global gUnknown_80D5E10
gUnknown_80D5E10:
.string " What do you want to store?\n"
.string "You can choose more than one item using\n"
.string "{L_BUTTON} or {R_BUTTON}.\0"
.align 2, 0
.global gUnknown_80D5E60
gUnknown_80D5E60:
.string " Thank you{COMMA} sweetie.\n"
.string "Come again!\0"
.align 2, 0
.global gUnknown_80D5E84
gUnknown_80D5E84:
.string " Anything else{COMMA} dear?\0"
.align 2, 0
.global gUnknown_80D5E9C
gUnknown_80D5E9C:
.string " Hello{COMMA} there!\n"
.string "Welcome to {ARG_POKEMON_6} Storage.\0"
.align 2, 0
.global gCommonKecleonBros
gCommonKecleonBros: @ 80D5EC8
.4byte gUnknown_80D797C
@ -1052,6 +740,20 @@ gUnknown_80D797C:
.string "Welcome to the {ARG_POKEMON_6} Shop \0"
.align 2, 0
.global gCommonWigglytuff
gCommonWigglytuff: @ 80D79A4 (Friend Area Shop)
.4byte gUnknown_80D883C
@ -1405,6 +1107,18 @@ gUnknown_80D883C:
.string "a circle of friends! \0"
.align 2, 0
.global gCommonGulpin
gCommonGulpin: @ 80D8888 (Gulpin Link Shop)
.4byte gUnknown_80D9F74
@ -1909,6 +1623,20 @@ gUnknown_80D9F74:
.string "Link moves all you like for just 150 {POKE}!\0"
.align 2, 0
.global gCommonMakuhita
gCommonMakuhita: @ 80D9FC8 (Makuhita Dojo)
.4byte gUnknown_80DAA44
@ -2128,6 +1856,20 @@ gUnknown_80DAA44:
.string "true power.\0"
.align 2, 0
.global gCommonHints
gCommonHints: @ 80DAA98 (Help Menu?)
.4byte gUnknown_80DAF54

View File

@ -6,9 +6,8 @@
#include "text.h"
// code_80130A8.s
extern void sub_8013AA0(u32 *);
extern u32 sub_8013BBC(u32 *);
extern void sub_8013C68(u32 *);
extern u32 sub_8013BBC(unkStructFor8013AA0 *);
extern void sub_8013C68(unkStructFor8013AA0 *);
extern void sub_8013F84(void);
extern void sub_80140B4(UnkTextStruct2 *);
extern void sub_80140DC(void);

View File

@ -2,13 +2,8 @@
#define GUARD_COMMON_STRINGS_H
#include "constants/common_strings_felicity_bank.h"
#include "constants/common_strings_kangaskhan_storage.h"
enum KangaskhanStorageMode
{
KANGASKHAN_STORAGE_MODE_AWAKE,
KANGASKHAN_STORAGE_MODE_ASLEEP,
KANGASKHAN_STORAGE_MODE_COUNT
};
enum KecleonBrosMode
{
KECLEON_BROS_MODE_ITEMS_AWAKE,
@ -64,7 +59,7 @@ extern const u8* const gCommonDepositPrompt[];
extern const u8* const gCommonWithdrawPrompt[];
extern const u8* const gCommonFelicity[FEL_MODE_COUNT][FEL_DLG_MAX];
extern const u8* const gCommonKangaskhanStorage[KANGASKHAN_STORAGE_MODE_COUNT][20]; // 80D5404
extern const u8* const gCommonKangStorage[KANG_MODE_COUNT][KANG_DLG_MAX];
extern const u8* const gCommonKecleonBros[KECLEON_BROS_MODE_COUNT][23]; // 80D5EC8
extern const u8* const gCommonWigglytuff[WIGGLYTUFF_SHOP_MODE_COUNT][20]; // 80D79A4
extern const u8* const gCommonGulpin[GULPIN_SHOP_MODE_COUNT][25]; // 80D8888

View File

@ -9,7 +9,7 @@ enum FelicityBankMode
};
enum FelicityBankDialogue
{
FEL_DLG_WELCOME_TO_FELICITY,
FEL_DLG_WELCOME,
FEL_DLG_HOW_MAY_I_SERVE__NO_MONEY,
FEL_DLG_HOW_MAY_I_SERVE__HAS_MONEY,
FEL_DLG_VERY_WELL,

View File

@ -0,0 +1,35 @@
#ifndef GUARD_COMMON_STRINGS_KANGASKHAN_STORAGE_H
#define GUARD_COMMON_STRINGS_KANGASKHAN_STORAGE_H
enum KangaskhanStorageMode
{
KANG_MODE_AWAKE,
KANG_MODE_ASLEEP,
KANG_MODE_COUNT
};
enum KangaskhanStorageDialogue
{
KANG_DLG_WELCOME,
KANG_DLG_ANYTHING_ELSE,
KANG_DLG_BYE,
KANG_DLG_STORE_WHAT,
KANG_DLG_STORE_MORE,
KANG_DLG_DEPOSIT_ONE_PROMPT,
KANG_DLG_DEPOSIT_MANY_PROMPT,
KANG_DLG_DEPOSIT_CONFIRMATION,
KANG_DLG_TAKE_WHAT,
KANG_DLG_TAKE_MORE,
KANG_DLG_WITHDRAW_ONE_PROMPT,
KANG_DLG_WITHDRAW_MANY_PROMPT,
KANG_DLG_WITHDRAW_CONFIRMATION,
KANG_DLG_YOU_HAVE_NOTHING,
KANG_DLG_YOU_ARE_FULL,
KANG_DLG_STORAGE_HAS_NOTHING,
KANG_DLG_DEPOSIT__INVALID_ITEM,
KANG_DLG_DEPOSIT__TOO_MANY_OF_ITEM,
KANG_DLG_STORAGE_FULL,
KANG_DLG_HOW_IT_WORKS,
KANG_DLG_MAX
};
#endif // GUARD_COMMON_STRINGS_KANGASKHAN_STORAGE_H

View File

@ -12,16 +12,8 @@ struct unkStruct_203B3F0
/* 0x8 */ u32 menuAction;
/* 0xC */ MenuItem menuItems[8];
MenuStruct unk4C;
u32 unk9C;
u32 unkA0;
u32 unkA4;
u32 unkA8;
u32 unkAC;
u32 unkB0;
UnkTextStruct2 *unkB4;
u32 unkB8;
u32 unkBC;
u8 fill4[0xD8 - 0xC0];
unkStructFor8013AA0 unk9C;
u8 fillCC[0xD8 - 0xCC];
UnkTextStruct2 unkD8[4];
};

View File

@ -14,16 +14,7 @@ typedef struct unkStruct_203B3F8
/* 0x8 */ PokemonStruct1 *pokemon;
/* 0xC */ u32 menuAction;
MenuStruct unk10;
u32 unk60;
u32 unk64;
u32 unk68;
u32 unk6C;
u32 unk70;
u32 unk74;
UnkTextStruct2 *unk78;
u32 unk7C;
u32 unk80;
u8 fill84[0x90 - 0x84];
unkStructFor8013AA0 unk60;
MenuItem unk90[8];
u16 unkD0[8];
UnkTextStruct2 unkE0[4];

View File

@ -18,16 +18,7 @@ typedef struct FelicityBankWork
/* 0x10 */ u32 menuAction;
MenuItem unk14[8];
u16 unk54[8];
u32 unk64;
s32 unk68;
s32 unk6C;
/* 0x70 */ s32 maximumDepositWithdraw;
s32 unk74;
u32 unk78;
UnkTextStruct2 *unk7C;
s32 unk80;
s32 unk84;
u8 fill88[0x94 - 0x88];
unkStructFor8013AA0 unk64;
/* 0x94 */ OpenedFile *faceFile;
/* 0x98 */ u8 *faceData;
u16 unk9C;

View File

@ -8,18 +8,20 @@
enum KangaskhanStorageStates
{
KANGASKHAN_STORAGE_INIT = 0,
KANGASKHAN_STORAGE_MAIN_MENU = 1,
KANGASKHAN_STORAGE_INIT,
KANGASKHAN_STORAGE_MAIN_MENU,
//
KANGASKHAN_STORAGE_EXIT = 4,
KANGASKHAN_STORAGE_NO_INV_ITEMS = 5,
KANGASKHAN_STORAGE_TOO_MANY_ITEMS = 6,
KANGASKHAN_STORAGE_NO_INV_ITEMS,
KANGASKHAN_STORAGE_TOO_MANY_ITEMS,
//
KANGASKHAN_STORAGE_IS_MONEY_USED_TM = 9,
};
// size: 0x14C
struct KangaskhanStorageWork
{
/* 0x0 */ bool32 isAsleep;
/* 0x0 */ u32 mode; // Corresponds to the enum: KangaskhanStorageMode
/* 0x4 */ u32 currState;
/* 0x8 */ u32 fallbackState;
/* 0xC */ Item storedItem;
@ -31,25 +33,14 @@ struct KangaskhanStorageWork
MenuItem unk24[5];
u16 unk4C[5];
MenuStruct unk58;
u32 unkA8;
u32 unkAC;
u32 unkB0;
u32 unkB4;
u32 unkB8;
u32 unkBC;
UnkTextStruct2 *unkC0;
u32 unkC4;
u32 unkC8;
u8 unkCC[0xD4 - 0xCC];
u32 unkD4;
unkStructFor8013AA0 unkA8;
/* 0xD8 */ OpenedFile *faceFile;
/* 0xDC */ u8 *faceData;
u16 unkE0;
u16 unkE2;
u8 unkE4;
u8 unkE5;
u8 unkE6;
u8 unkE7;
/* 0xDC */ u8 *faceData; // Written to but never read
u16 unkE0; // Written to but never read
u16 unkE2; // Written to but never read
bool8 unkE4;
u8 unkE5; // Written to but never read
u8 unkE6; // Written to but never read
OpenedFile **unkE8;
UnkTextStruct2 unkEC[4];
};

View File

@ -19,16 +19,7 @@ typedef struct unkStruct_203B20C
MenuItem unk20[8];
u16 unk60[8];
MenuStruct unk70;
u32 unkC0;
u32 unkC4;
u32 unkC8;
u32 unkCC;
u32 unkD0;
u32 unkD4;
UnkTextStruct2 *unkD8;
u32 unkDC;
u32 unkE0;
u8 fillE4[0xF0 - 0xE4];
unkStructFor8013AA0 unkC0;
UnkTextStruct2 unkF0[4];
} unkStruct_203B20C;

View File

@ -2,6 +2,8 @@
#define GUARD_MENU_H
#include "input.h"
#include "sprite_oam.h"
#include "text.h"
// size: 0x8
typedef struct MenuItem
@ -25,4 +27,22 @@ typedef struct MenuStruct
bool8 unk4E;
} MenuStruct;
// size: 0x30. Seems to be info for a NumericUpDown
typedef struct unkStructFor8013AA0
{
s32 unk0; // chosenValue?
s32 unk4; // curValue or initialValue
s32 unk8; // minInclusive?
s32 unkC; // maxInclusive?
s32 unk10;
s32 unk14; // index of unk18? But read as chosenValue..?
UnkTextStruct2 *unk18;
s32 unk1C; // width of prompt?
s32 unk20; // height of prompt?
u8 unk24; // related to unk10
u8 unk25; // related to unk10
u8 unk26;
SpriteOAM unk28;
} unkStructFor8013AA0;
#endif // GUARD_MENU_H

View File

@ -4,9 +4,9 @@
#include "menu.h"
#include "text.h"
// size: 0x1A8
struct unkStruct_203B34C
{
// size: 0x1A8
u32 unk0;
MenuStruct unk4[4];
UnkTextStruct2 unk144[4];
@ -52,4 +52,6 @@ void sub_8013A7C(MenuInputStruct *param_1);
void AddMenuCursorSprite_(MenuInputStruct *, u32);
void nullsub_34(MenuInputStructSub *);
void sub_8013AA0(unkStructFor8013AA0 *);
#endif // GUARD_MENU_INPUT_H

View File

@ -45,16 +45,7 @@ struct TradeItemsMenu
u32 itemMode;
u32 linkStatus;
u32 unk10;
u32 quantityToSend; // item #
u32 unk18;
u32 unk1C;
u32 unk20;
u32 unk24;
u32 unk28;
UnkTextStruct2 *unk2C;
u32 unk30;
u32 unk34;
u8 fill38[0x44 - 0x38];
unkStructFor8013AA0 unk14;
MenuStruct unk44[4];
UnkTextStruct2 unk184[4];
UnkTextStruct2 unk1E4[4];

View File

@ -151,7 +151,6 @@ extern u32 sub_801CE58(void);
extern void sub_801CC38(void);
extern u32 sub_8097DF0(char *, struct subStruct_203B240 **);
extern void PlayMenuSoundEffect(u32);
extern void sub_8013C68(u32 *);
extern void xxx_format_and_draw(u32, u32, const u8 *, u32, u32);
extern u32 sub_80095E4(s16, u32);
extern void sub_801C440(void);

View File

@ -58,4 +58,5 @@ ALIGNED(4) const u8* const gCommonWithdrawPrompt[] = { sWithdrawPrompt0 };
// TODO: Move remaining strings/arrays from common_strings.s
#include "data/common_strings_felicity_bank.h"
#include "data/common_strings_felicity_bank.h"
#include "data/common_strings_kangaskhan_storage.h"

View File

@ -34,7 +34,7 @@ static const u8 sUnknown_80D53E0[];
ALIGNED(4) const u8* const gCommonFelicity[FEL_MODE_COUNT][FEL_DLG_MAX] =
{
[FEL_MODE_AWAKE] = {
[FEL_DLG_WELCOME_TO_FELICITY] = sUnknown_80D53E0,
[FEL_DLG_WELCOME] = sUnknown_80D53E0,
[FEL_DLG_HOW_MAY_I_SERVE__NO_MONEY] = sUnknown_80D53C8,
[FEL_DLG_HOW_MAY_I_SERVE__HAS_MONEY] = sUnknown_80D538C,
[FEL_DLG_VERY_WELL] = sUnknown_80D5380,
@ -51,7 +51,7 @@ ALIGNED(4) const u8* const gCommonFelicity[FEL_MODE_COUNT][FEL_DLG_MAX] =
[FEL_DLG_HOW_IT_WORKS] = sUnknown_80D4FC8
},
[FEL_MODE_ASLEEP] = {
[FEL_DLG_WELCOME_TO_FELICITY] = sUnknown_80D4F94,
[FEL_DLG_WELCOME] = sUnknown_80D4F94,
[FEL_DLG_HOW_MAY_I_SERVE__NO_MONEY] = sUnknown_80D4F74,
[FEL_DLG_HOW_MAY_I_SERVE__HAS_MONEY] = sUnknown_80D4F24,
[FEL_DLG_VERY_WELL] = sUnknown_80D4F08,

View File

@ -0,0 +1,271 @@
static const u8 sUnknown_80D54A4[];
static const u8 sUnknown_80D555C[];
static const u8 sUnknown_80D5590[];
static const u8 sUnknown_80D55C0[];
static const u8 sUnknown_80D55F4[];
static const u8 sUnknown_80D5630[];
static const u8 sUnknown_80D5670[];
static const u8 sUnknown_80D56AC[];
static const u8 sUnknown_80D56CC[];
static const u8 sUnknown_80D5710[];
static const u8 sUnknown_80D574C[];
static const u8 sUnknown_80D5774[];
static const u8 sUnknown_80D57C4[];
static const u8 sUnknown_80D57F4[];
static const u8 sUnknown_80D5844[];
static const u8 sUnknown_80D5884[];
static const u8 sUnknown_80D58B0[];
static const u8 sUnknown_80D5900[];
static const u8 sUnknown_80D5934[];
static const u8 sUnknown_80D5954[];
static const u8 sUnknown_80D5984[];
static const u8 sUnknown_80D5AF0[];
static const u8 sUnknown_80D5B24[];
static const u8 sUnknown_80D5B5C[];
static const u8 sUnknown_80D5BAC[];
static const u8 sUnknown_80D5BDC[];
static const u8 sUnknown_80D5C1C[];
static const u8 sUnknown_80D5C44[];
static const u8 sUnknown_80D5C74[];
static const u8 sUnknown_80D5CAC[];
static const u8 sUnknown_80D5CE4[];
static const u8 sUnknown_80D5D0C[];
static const u8 sUnknown_80D5D58[];
static const u8 sUnknown_80D5D8C[];
static const u8 sUnknown_80D5DBC[];
static const u8 sUnknown_80D5DE8[];
static const u8 sUnknown_80D5E10[];
static const u8 sUnknown_80D5E60[];
static const u8 sUnknown_80D5E84[];
static const u8 sUnknown_80D5E9C[];
ALIGNED(4) const u8* const gCommonKangStorage[KANG_MODE_COUNT][KANG_DLG_MAX] =
{
[KANG_MODE_AWAKE] = {
[KANG_DLG_WELCOME] = sUnknown_80D5E9C,
[KANG_DLG_ANYTHING_ELSE] = sUnknown_80D5E84,
[KANG_DLG_BYE] = sUnknown_80D5E60,
[KANG_DLG_STORE_WHAT] = sUnknown_80D5E10,
[KANG_DLG_STORE_MORE] = sUnknown_80D5DE8,
[KANG_DLG_DEPOSIT_ONE_PROMPT] = sUnknown_80D5DBC,
[KANG_DLG_DEPOSIT_MANY_PROMPT] = sUnknown_80D5D8C,
[KANG_DLG_DEPOSIT_CONFIRMATION] = sUnknown_80D5D58,
[KANG_DLG_TAKE_WHAT] = sUnknown_80D5D0C,
[KANG_DLG_TAKE_MORE] = sUnknown_80D5CE4,
[KANG_DLG_WITHDRAW_ONE_PROMPT] = sUnknown_80D5CAC,
[KANG_DLG_WITHDRAW_MANY_PROMPT] = sUnknown_80D5C74,
[KANG_DLG_WITHDRAW_CONFIRMATION] = sUnknown_80D5C44,
[KANG_DLG_YOU_HAVE_NOTHING] = sUnknown_80D5C1C,
[KANG_DLG_YOU_ARE_FULL] = sUnknown_80D5BDC,
[KANG_DLG_STORAGE_HAS_NOTHING] = sUnknown_80D5BAC,
[KANG_DLG_DEPOSIT__INVALID_ITEM] = sUnknown_80D5B5C,
[KANG_DLG_DEPOSIT__TOO_MANY_OF_ITEM] = sUnknown_80D5B24,
[KANG_DLG_STORAGE_FULL] = sUnknown_80D5AF0,
[KANG_DLG_HOW_IT_WORKS] = sUnknown_80D5984
},
[KANG_MODE_ASLEEP] = {
[KANG_DLG_WELCOME] = sUnknown_80D5954,
[KANG_DLG_ANYTHING_ELSE] = sUnknown_80D5934,
[KANG_DLG_BYE] = sUnknown_80D5900,
[KANG_DLG_STORE_WHAT] = sUnknown_80D58B0,
[KANG_DLG_STORE_MORE] = sUnknown_80D5884,
[KANG_DLG_DEPOSIT_ONE_PROMPT] = sUnknown_80D5844,
[KANG_DLG_DEPOSIT_MANY_PROMPT] = sUnknown_80D57F4,
[KANG_DLG_DEPOSIT_CONFIRMATION] = sUnknown_80D57C4,
[KANG_DLG_TAKE_WHAT] = sUnknown_80D5774,
[KANG_DLG_TAKE_MORE] = sUnknown_80D574C,
[KANG_DLG_WITHDRAW_ONE_PROMPT] = sUnknown_80D5710,
[KANG_DLG_WITHDRAW_MANY_PROMPT] = sUnknown_80D56CC,
[KANG_DLG_WITHDRAW_CONFIRMATION] = sUnknown_80D56AC,
[KANG_DLG_YOU_HAVE_NOTHING] = sUnknown_80D5670,
[KANG_DLG_YOU_ARE_FULL] = sUnknown_80D5630,
[KANG_DLG_STORAGE_HAS_NOTHING] = sUnknown_80D55F4,
[KANG_DLG_DEPOSIT__INVALID_ITEM] = sUnknown_80D55C0,
[KANG_DLG_DEPOSIT__TOO_MANY_OF_ITEM] = sUnknown_80D5590,
[KANG_DLG_STORAGE_FULL] = sUnknown_80D555C,
[KANG_DLG_HOW_IT_WORKS] = sUnknown_80D54A4
}
};
ALIGNED(4) static const u8 sUnknown_80D54A4[] = _(
" Zzz... Snork!\n"
"I can store items that you\n"
"found in dungeons...{EXTRA_MSG} Snarfle...\n"
"Things in storage don{APOSTROPHE}t get lost...{EXTRA_MSG} Zzz... Zzz...\n"
"That{APOSTROPHE}s why...\n"
"Keep important items in storage...");
ALIGNED(4) static const u8 sUnknown_80D555C[] = _(
" Zzz... Zzz... No...\n"
"The storage space is full...");
ALIGNED(4) static const u8 sUnknown_80D5590[] = _(
" Zzz... No...\n"
"Can{APOSTROPHE}t store any more of that...");
ALIGNED(4) static const u8 sUnknown_80D55C0[] = _(
" Zzz... Zzz...\n"
"That {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}...\n"
"Can{APOSTROPHE}t store it...");
ALIGNED(4) static const u8 sUnknown_80D55F4[] = _(
" Snarfle? Hunh...?{WAIT_PRESS}\n"
"Zzz... Your storage space... Empty...");
ALIGNED(4) static const u8 sUnknown_80D5630[] = _(
" Snarfle? Hunh...?{WAIT_PRESS}\n"
"Zzz...\n"
"You don{APOSTROPHE}t have enough space...");
ALIGNED(4) static const u8 sUnknown_80D5670[] = _(
" Snarfle? Hunh...?{WAIT_PRESS}\n"
"Zzz...\n"
"You don{APOSTROPHE}t have anything...?");
ALIGNED(4) static const u8 sUnknown_80D56AC[] = _(
" Zzz... Snork!\n"
"There you go...");
ALIGNED(4) static const u8 sUnknown_80D56CC[] = _(
" Zzz... Zzz... Hunh...?\n"
"You want those things from storage...\n"
"OK?");
ALIGNED(4) static const u8 sUnknown_80D5710[] = _(
" Hunh...? Taking...?\n"
"Oh... You want your {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}...\n"
"OK?");
ALIGNED(4) static const u8 sUnknown_80D574C[] = _(
" Snork! Zzz...\n"
"Taking anything else?");
ALIGNED(4) static const u8 sUnknown_80D5774[] = _(
" What...? Take out...?\n"
"Uh-huh... Choose more than one using\n"
"{L_BUTTON} or {R_BUTTON}... Zzz...");
ALIGNED(4) static const u8 sUnknown_80D57C4[] = _(
" Zzz... Zzz...\n"
"Yup{COMMA} I did... Stored away...");
ALIGNED(4) static const u8 sUnknown_80D57F4[] = _(
" Hunh{COMMA} wha--? Storage...?\n"
"I{APOSTROPHE}ll put away the things you chose...\n"
"That OK?");
ALIGNED(4) static const u8 sUnknown_80D5844[] = _(
" Zzz... Store something?\n"
"Gonna put {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1} in storage...\n"
"OK?");
ALIGNED(4) static const u8 sUnknown_80D5884[] = _(
" Do you... Snork...\n"
"Store anything else?");
ALIGNED(4) static const u8 sUnknown_80D58B0[] = _(
" Hunh{COMMA} wha--? Store what...?\n"
"You can choose more than one using\n"
"{L_BUTTON} or {R_BUTTON}...");
ALIGNED(4) static const u8 sUnknown_80D5900[] = _(
" Snuffle... Mutter...\n"
"Thank you...\n"
"Come again...");
ALIGNED(4) static const u8 sUnknown_80D5934[] = _(
" Zzz... Snork...\n"
"Anything else?");
ALIGNED(4) static const u8 sUnknown_80D5954[] = _(
" Zzz... Zzz...\n"
"Hello{COMMA} there...\n"
"{ARG_POKEMON_6} Storage...");
ALIGNED(4) static const u8 sUnknown_80D5984[] = _(
" I can store items that you\n"
"found in dungeons{COMMA} or that you\n"
"bought from shops.{EXTRA_MSG} If you faint in\n"
"a dungeon{COMMA} your items will be lost...{WAIT_PRESS}\n"
"But what{APOSTROPHE}s in storage will be safe.{EXTRA_MSG} I keep guard over the\n"
"storage space{COMMA} so anything you leave\n"
"with me won{APOSTROPHE}t ever disappear!{EXTRA_MSG} If you have any items that\n"
"you can{APOSTROPHE}t bear to lose{COMMA} be sure to leave\n"
"them with me!");
ALIGNED(4) static const u8 sUnknown_80D5AF0[] = _(
" Sorry{COMMA} dear.\n"
"I{APOSTROPHE}ve run out of storage space.");
ALIGNED(4) static const u8 sUnknown_80D5B24[] = _(
" Sorry{COMMA} dear.\n"
"I can{APOSTROPHE}t take any more of that item.");
ALIGNED(4) static const u8 sUnknown_80D5B5C[] = _(
" Oh{COMMA} dear{COMMA} sorry.{WAIT_PRESS}\n"
"That {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1} is an item you\n"
"can{APOSTROPHE}t put in storage.");
ALIGNED(4) static const u8 sUnknown_80D5BAC[] = _(
" Oh?\n"
"You don{APOSTROPHE}t have anything stored{COMMA} dear.");
ALIGNED(4) static const u8 sUnknown_80D5BDC[] = _(
" Oh? You don{APOSTROPHE}t have the room\n"
"to carry any more items{COMMA} dear.");
ALIGNED(4) static const u8 sUnknown_80D5C1C[] = _(
" Oh?\n"
"You don{APOSTROPHE}t seem to have anything?");
ALIGNED(4) static const u8 sUnknown_80D5C44[] = _(
" There you go!\n"
"Just like you asked{COMMA} sweetie!");
ALIGNED(4) static const u8 sUnknown_80D5C74[] = _(
" I{APOSTROPHE}ll take the items you\n"
"chose out of storage. OK?");
ALIGNED(4) static const u8 sUnknown_80D5CAC[] = _(
" Fine{COMMA} I{APOSTROPHE}ll take your\n"
"{COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1} out of storage. OK?");
ALIGNED(4) static const u8 sUnknown_80D5CE4[] = _(
" Would you like to take\n"
"anything else?");
ALIGNED(4) static const u8 sUnknown_80D5D0C[] = _(
" What will you take out?\n"
"You can choose more than one item using\n"
"{L_BUTTON} or {R_BUTTON}.");
ALIGNED(4) static const u8 sUnknown_80D5D58[] = _(
" OK{COMMA} stored away!\n"
"You can count on me{COMMA} honey.");
ALIGNED(4) static const u8 sUnknown_80D5D8C[] = _(
" I{APOSTROPHE}ll put the items you chose\n"
"in storage. OK?");
ALIGNED(4) static const u8 sUnknown_80D5DBC[] = _(
" I{APOSTROPHE}ll put your\n"
"{COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1} in storage. OK?");
ALIGNED(4) static const u8 sUnknown_80D5DE8[] = _(
" Do you want to store\n"
"anything else?");
ALIGNED(4) static const u8 sUnknown_80D5E10[] = _(
" What do you want to store?\n"
"You can choose more than one item using\n"
"{L_BUTTON} or {R_BUTTON}.");
ALIGNED(4) static const u8 sUnknown_80D5E60[] = _(
" Thank you{COMMA} sweetie.\n"
"Come again!");
ALIGNED(4) static const u8 sUnknown_80D5E84[] = _(" Anything else{COMMA} dear?");
ALIGNED(4) static const u8 sUnknown_80D5E9C[] = _(
" Hello{COMMA} there!\n"
"Welcome to {ARG_POKEMON_6} Storage.");

View File

@ -141,14 +141,14 @@ void sub_803A5A0(void)
sub_8012D60(&sUnknown_203B3F0->unk4C, sUnknown_203B3F0->menuItems, 0, 0, sUnknown_203B3F0->menuAction, 2);
break;
case 3:
sUnknown_203B3F0->unkAC = 3;
sUnknown_203B3F0->unkA4 = 0;
sUnknown_203B3F0->unkA8 = 999;
sUnknown_203B3F0->unkA0 = gTeamInventoryRef->teamStorage[sUnknown_203B3F0->id];
sUnknown_203B3F0->unkB0 = 1;
sUnknown_203B3F0->unkB4 = &sUnknown_203B3F0->unkD8[1];
sUnknown_203B3F0->unkB8 = 44;
sUnknown_203B3F0->unkBC = 18;
sUnknown_203B3F0->unk9C.unk10 = 3;
sUnknown_203B3F0->unk9C.unk8 = 0;
sUnknown_203B3F0->unk9C.unkC = 999;
sUnknown_203B3F0->unk9C.unk4 = gTeamInventoryRef->teamStorage[sUnknown_203B3F0->id];
sUnknown_203B3F0->unk9C.unk14 = 1;
sUnknown_203B3F0->unk9C.unk18 = &sUnknown_203B3F0->unkD8[1];
sUnknown_203B3F0->unk9C.unk1C = 44;
sUnknown_203B3F0->unk9C.unk20 = 18;
sub_8013AA0(&sUnknown_203B3F0->unk9C);
sub_803A690();
break;
@ -163,11 +163,11 @@ void sub_803A5A0(void)
void sub_803A690(void)
{
sub_8008C54(sUnknown_203B3F0->unkB0);
sub_80073B8(sUnknown_203B3F0->unkB0);
xxx_call_draw_string(4, 0, sNumberPrompt, sUnknown_203B3F0->unkB0, 0);
sub_8008C54(sUnknown_203B3F0->unk9C.unk14);
sub_80073B8(sUnknown_203B3F0->unk9C.unk14);
xxx_call_draw_string(4, 0, sNumberPrompt, sUnknown_203B3F0->unk9C.unk14, 0);
sub_8013C68(&sUnknown_203B3F0->unk9C);
sub_80073E0(sUnknown_203B3F0->unkB0);
sub_80073E0(sUnknown_203B3F0->unk9C.unk14);
sub_801CCD8();
sub_8012EA4(&sUnknown_203B3F0->unk4C, 0);
}
@ -245,7 +245,7 @@ void sub_803A810(void)
switch (sub_8013BBC(&sUnknown_203B3F0->unk9C)) {
case 3:
gTeamInventoryRef->teamStorage[sUnknown_203B3F0->id] = sUnknown_203B3F0->unk9C;
gTeamInventoryRef->teamStorage[sUnknown_203B3F0->id] = sUnknown_203B3F0->unk9C.unk0;
// Fallthrough needed to match
case 2:
sub_803A504(1);

View File

@ -140,14 +140,14 @@ void sub_803AD88(void)
sub_8012D60(&sUnknown_203B3F8->unk10, sUnknown_203B3F8->unk90, 0, sUnknown_203B3F8->unkD0, sUnknown_203B3F8->menuAction, 2);
break;
case 5:
sUnknown_203B3F8->unk70 = 3;
sUnknown_203B3F8->unk68 = 1;
sUnknown_203B3F8->unk6C = 100;
sUnknown_203B3F8->unk64 = sUnknown_203B3F8->pokemon->level;
sUnknown_203B3F8->unk74 = 3;
sUnknown_203B3F8->unk78 = &sUnknown_203B3F8->unkE0[3];
sUnknown_203B3F8->unk7C = 44;
sUnknown_203B3F8->unk80 = 18;
sUnknown_203B3F8->unk60.unk10 = 3;
sUnknown_203B3F8->unk60.unk8 = 1;
sUnknown_203B3F8->unk60.unkC = 100;
sUnknown_203B3F8->unk60.unk4 = sUnknown_203B3F8->pokemon->level;
sUnknown_203B3F8->unk60.unk14 = 3;
sUnknown_203B3F8->unk60.unk18 = &sUnknown_203B3F8->unkE0[3];
sUnknown_203B3F8->unk60.unk1C = 44;
sUnknown_203B3F8->unk60.unk20 = 18;
sub_8013AA0(&sUnknown_203B3F8->unk60);
sub_803AE58();
break;
@ -164,11 +164,11 @@ void sub_803AD88(void)
void sub_803AE58(void)
{
sub_8008C54(sUnknown_203B3F8->unk74);
sub_80073B8(sUnknown_203B3F8->unk74);
xxx_call_draw_string(4, 0, sNumberPrompt, sUnknown_203B3F8->unk74, 0);
sub_8008C54(sUnknown_203B3F8->unk60.unk14);
sub_80073B8(sUnknown_203B3F8->unk60.unk14);
xxx_call_draw_string(4, 0, sNumberPrompt, sUnknown_203B3F8->unk60.unk14, 0);
sub_8013C68(&sUnknown_203B3F8->unk60);
sub_80073E0(sUnknown_203B3F8->unk74);
sub_80073E0(sUnknown_203B3F8->unk60.unk14);
sub_8023DA4();
sub_8012EA4(&sUnknown_203B3F8->unk10, 0);
}
@ -253,7 +253,7 @@ void sub_803AFE8(void)
default:
break;
case 3:
sUnknown_203B3F8->pokemon->level = sUnknown_203B3F8->unk60;
sUnknown_203B3F8->pokemon->level = sUnknown_203B3F8->unk60.unk0;
// Fallthrough is needed to match
case 2:
sub_803ACD0(2);

View File

@ -149,7 +149,7 @@ static void UpdateFelicityBankDialogue(void)
switch (sFelicityBankWork->currState) {
case 0:
sFelicityBankWork->fallbackState = 1;
sub_80141B4(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_WELCOME_TO_FELICITY], 0, sFelicityBankWork->unkA4, 0x10D);
sub_80141B4(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_WELCOME], 0, sFelicityBankWork->unkA4, 0x10D);
break;
case 1:
CreateFelicityBankShopMenu();
@ -195,16 +195,16 @@ static void UpdateFelicityBankDialogue(void)
}
break;
case 8:
sFelicityBankWork->maximumDepositWithdraw = MAX_TEAM_SAVINGS - gTeamInventoryRef->teamSavings;
if (sFelicityBankWork->maximumDepositWithdraw > gTeamInventoryRef->teamMoney)
sFelicityBankWork->maximumDepositWithdraw = gTeamInventoryRef->teamMoney;
sFelicityBankWork->unk68 = sFelicityBankWork->maximumDepositWithdraw;
sFelicityBankWork->unk6C = 1;
sFelicityBankWork->unk74 = 5;
sFelicityBankWork->unk78 = 2;
sFelicityBankWork->unk7C = &sFelicityBankWork->unkA8[2];
sFelicityBankWork->unk80 = 0x50;
sFelicityBankWork->unk84 = 0x12;
sFelicityBankWork->unk64.unkC = MAX_TEAM_SAVINGS - gTeamInventoryRef->teamSavings;
if (sFelicityBankWork->unk64.unkC > gTeamInventoryRef->teamMoney)
sFelicityBankWork->unk64.unkC = gTeamInventoryRef->teamMoney;
sFelicityBankWork->unk64.unk4 = sFelicityBankWork->unk64.unkC;
sFelicityBankWork->unk64.unk8 = 1;
sFelicityBankWork->unk64.unk10 = 5;
sFelicityBankWork->unk64.unk14 = 2;
sFelicityBankWork->unk64.unk18 = &sFelicityBankWork->unkA8[2];
sFelicityBankWork->unk64.unk1C = 0x50;
sFelicityBankWork->unk64.unk20 = 0x12;
sub_8013AA0(&sFelicityBankWork->unk64);
sub_8016B48(FELICITY_BANK_ACTION_DEPOSIT);
CreateFelicityMoneySavingsHeader(3);
@ -230,16 +230,16 @@ static void UpdateFelicityBankDialogue(void)
}
break;
case 11:
sFelicityBankWork->maximumDepositWithdraw = MAX_TEAM_MONEY - gTeamInventoryRef->teamMoney;
if (sFelicityBankWork->maximumDepositWithdraw > gTeamInventoryRef->teamSavings)
sFelicityBankWork->maximumDepositWithdraw = gTeamInventoryRef->teamSavings;
sFelicityBankWork->unk68 = sFelicityBankWork->maximumDepositWithdraw;
sFelicityBankWork->unk6C = 1;
sFelicityBankWork->unk74 = 5;
sFelicityBankWork->unk78 = 2;
sFelicityBankWork->unk7C = &sFelicityBankWork->unkA8[2];
sFelicityBankWork->unk80 = 0x50;
sFelicityBankWork->unk84 = 0x12;
sFelicityBankWork->unk64.unkC = MAX_TEAM_MONEY - gTeamInventoryRef->teamMoney;
if (sFelicityBankWork->unk64.unkC > gTeamInventoryRef->teamSavings)
sFelicityBankWork->unk64.unkC = gTeamInventoryRef->teamSavings;
sFelicityBankWork->unk64.unk4 = sFelicityBankWork->unk64.unkC;
sFelicityBankWork->unk64.unk8 = 1;
sFelicityBankWork->unk64.unk10 = 5;
sFelicityBankWork->unk64.unk14 = 2;
sFelicityBankWork->unk64.unk18 = &sFelicityBankWork->unkA8[2];
sFelicityBankWork->unk64.unk1C = 0x50;
sFelicityBankWork->unk64.unk20 = 0x12;
sub_8013AA0(&sFelicityBankWork->unk64);
sub_8016B48(FELICITY_BANK_ACTION_WITHDRAW);
CreateFelicityMoneySavingsHeader(3);
@ -326,7 +326,7 @@ static void Felicity_DepositMoney(void)
sub_8016B48(FELICITY_BANK_ACTION_DEPOSIT);
break;
case 3:
sFelicityBankWork->chosenAmount = sFelicityBankWork->unk64;
sFelicityBankWork->chosenAmount = sFelicityBankWork->unk64.unk0;
gTeamInventoryRef->teamSavings += sFelicityBankWork->chosenAmount;
gTeamInventoryRef->teamMoney -= sFelicityBankWork->chosenAmount;
PlaySound(332);
@ -347,7 +347,7 @@ static void Felicity_WithdrawMoney(void)
sub_8016B48(FELICITY_BANK_ACTION_WITHDRAW);
break;
case 3:
sFelicityBankWork->chosenAmount = sFelicityBankWork->unk64;
sFelicityBankWork->chosenAmount = sFelicityBankWork->unk64.unk0;
gTeamInventoryRef->teamMoney += sFelicityBankWork->chosenAmount;
gTeamInventoryRef->teamSavings -= sFelicityBankWork->chosenAmount;
PlaySound(332);
@ -379,16 +379,16 @@ static void sub_8016B24(void)
static void sub_8016B48(u8 action)
{
sub_8008C54(sFelicityBankWork->unk78);
sub_80073B8(sFelicityBankWork->unk78);
sub_8008C54(sFelicityBankWork->unk64.unk14);
sub_80073B8(sFelicityBankWork->unk64.unk14);
if (action != FELICITY_BANK_ACTION_WITHDRAW)
xxx_call_draw_string(12, 0, *gCommonDepositPrompt, sFelicityBankWork->unk78, 0);
xxx_call_draw_string(12, 0, *gCommonDepositPrompt, sFelicityBankWork->unk64.unk14, 0);
else
xxx_call_draw_string(12, 0, *gCommonWithdrawPrompt, sFelicityBankWork->unk78, 0);
xxx_call_draw_string(12, 0, *gCommonWithdrawPrompt, sFelicityBankWork->unk64.unk14, 0);
sub_8013C68(&sFelicityBankWork->unk64);
sub_80073E0(sFelicityBankWork->unk78);
sub_80073E0(sFelicityBankWork->unk64.unk14);
}
static void CreateFelicityMoneySavingsHeader(u32 param_1)

View File

@ -54,13 +54,13 @@ bool8 CreateKangaskhanStorage(u32 mode)
gKangaskhanStorageWork->menuAction1 = 0;
gKangaskhanStorageWork->menuAction2 = 0;
gKangaskhanStorageWork->menuAction3 = 0;
gKangaskhanStorageWork->isAsleep = mode;
gKangaskhanStorageWork->mode = mode;
CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KANGASKHAN);
CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KANGASKHAN);
monName = GetMonSpecies(MONSTER_KANGASKHAN);
strcpy(gUnknown_202E1C8 - 0x50, monName);
if (gKangaskhanStorageWork->isAsleep == TRUE)
if (gKangaskhanStorageWork->mode == KANG_MODE_ASLEEP)
gKangaskhanStorageWork->unkE8 = NULL;
else
gKangaskhanStorageWork->unkE8 = &gKangaskhanStorageWork->faceFile;
@ -68,7 +68,7 @@ bool8 CreateKangaskhanStorage(u32 mode)
faceFile = GetDialogueSpriteDataPtr(MONSTER_KANGASKHAN);
gKangaskhanStorageWork->faceFile = faceFile;
gKangaskhanStorageWork->faceData = faceFile->data;
gKangaskhanStorageWork->unkE4 = 0;
gKangaskhanStorageWork->unkE4 = FALSE;
gKangaskhanStorageWork->unkE5 = 0;
gKangaskhanStorageWork->unkE6 = 0;
gKangaskhanStorageWork->unkE0 = 2;
@ -187,66 +187,66 @@ static void sub_8016FF8(void)
switch (gKangaskhanStorageWork->currState) {
case KANGASKHAN_STORAGE_INIT:
sub_80175FC();
gKangaskhanStorageWork->unkE4 = 1;
sub_8014248(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][0], 0, gKangaskhanStorageWork->menuAction1, gKangaskhanStorageWork->unk24,
gKangaskhanStorageWork->unkE4 = TRUE;
sub_8014248(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_WELCOME], 0, gKangaskhanStorageWork->menuAction1, gKangaskhanStorageWork->unk24,
gKangaskhanStorageWork->unk4C, 4, 0, gKangaskhanStorageWork->unkE8, 12);
break;
case KANGASKHAN_STORAGE_MAIN_MENU:
sub_80175FC();
gKangaskhanStorageWork->unkE4 = 0;
sub_8014248(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][1], 0, gKangaskhanStorageWork->menuAction1, gKangaskhanStorageWork->unk24,
gKangaskhanStorageWork->unkE4 = FALSE;
sub_8014248(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_ANYTHING_ELSE], 0, gKangaskhanStorageWork->menuAction1, gKangaskhanStorageWork->unk24,
gKangaskhanStorageWork->unk4C, 4, 0, gKangaskhanStorageWork->unkE8, 12);
break;
case 2:
gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
gKangaskhanStorageWork->unkE4 = 0;
sub_80141B4(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][19], 0, gKangaskhanStorageWork->unkE8, 0x10D);
gKangaskhanStorageWork->unkE4 = FALSE;
sub_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_HOW_IT_WORKS], 0, gKangaskhanStorageWork->unkE8, 0x10D);
break;
case 3:
gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_EXIT;
gKangaskhanStorageWork->unkE4 = 1;
sub_80141B4(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][2], 0, gKangaskhanStorageWork->unkE8, 0x30D);
gKangaskhanStorageWork->unkE4 = TRUE;
sub_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_BYE], 0, gKangaskhanStorageWork->unkE8, 0x30D);
break;
case KANGASKHAN_STORAGE_NO_INV_ITEMS:
gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
gKangaskhanStorageWork->unkE4 = 0;
sub_80141B4(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][13], 0, gKangaskhanStorageWork->unkE8, 0x10D);
gKangaskhanStorageWork->unkE4 = FALSE;
sub_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_YOU_HAVE_NOTHING], 0, gKangaskhanStorageWork->unkE8, 0x10D);
break;
case KANGASKHAN_STORAGE_TOO_MANY_ITEMS:
gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
gKangaskhanStorageWork->unkE4 = 0;
sub_80141B4(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][14], 0, gKangaskhanStorageWork->unkE8, 0x10D);
gKangaskhanStorageWork->unkE4 = FALSE;
sub_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_YOU_ARE_FULL], 0, gKangaskhanStorageWork->unkE8, 0x10D);
break;
case 7:
gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
gKangaskhanStorageWork->unkE4 = 0;
sub_80141B4(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][15], 0, gKangaskhanStorageWork->unkE8, 0x10D);
gKangaskhanStorageWork->unkE4 = FALSE;
sub_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_STORAGE_HAS_NOTHING], 0, gKangaskhanStorageWork->unkE8, 0x10D);
break;
case 8:
gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
gKangaskhanStorageWork->unkE4 = 0;
sub_80141B4(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][18], 0, gKangaskhanStorageWork->unkE8, 0x10D);
gKangaskhanStorageWork->unkE4 = FALSE;
sub_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_STORAGE_FULL], 0, gKangaskhanStorageWork->unkE8, 0x10D);
break;
case KANGASKHAN_STORAGE_IS_MONEY_USED_TM:
sub_8090E14(gUnknown_202DE58, &gKangaskhanStorageWork->storedItem, 0);
gKangaskhanStorageWork->fallbackState = 14;
gKangaskhanStorageWork->unkE4 = 0;
sub_80141B4(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][16], 0, gKangaskhanStorageWork->unkE8, 0x30D);
gKangaskhanStorageWork->unkE4 = FALSE;
sub_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_DEPOSIT__INVALID_ITEM], 0, gKangaskhanStorageWork->unkE8, 0x30D);
break;
case 10:
gKangaskhanStorageWork->fallbackState = 14;
gKangaskhanStorageWork->unkE4 = 0;
sub_80141B4(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][17], 0, gKangaskhanStorageWork->unkE8, 0x30D);
gKangaskhanStorageWork->unkE4 = FALSE;
sub_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_DEPOSIT__TOO_MANY_OF_ITEM], 0, gKangaskhanStorageWork->unkE8, 0x30D);
break;
case 0xb:
case 11:
gKangaskhanStorageWork->fallbackState = 13;
gKangaskhanStorageWork->unkE4 = 0;
sub_80141B4(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][3], 0, gKangaskhanStorageWork->unkE8, 0x30D);
gKangaskhanStorageWork->unkE4 = FALSE;
sub_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_STORE_WHAT], 0, gKangaskhanStorageWork->unkE8, 0x30D);
break;
case 12:
gKangaskhanStorageWork->fallbackState = 14;
gKangaskhanStorageWork->unkE4 = 0;
sub_80141B4(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][4], 0, gKangaskhanStorageWork->unkE8, 0x30D);
gKangaskhanStorageWork->unkE4 = FALSE;
sub_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_STORE_MORE], 0, gKangaskhanStorageWork->unkE8, 0x30D);
break;
case 13:
sub_801A5D8(3, 3, NULL, 10);
@ -262,14 +262,14 @@ static void sub_8016FF8(void)
case 17:
sub_80177F8();
sub_8090E14(gUnknown_202DE58, &gKangaskhanStorageWork->storedItem, 0);
gKangaskhanStorageWork->unkE4 = 0;
sub_8014248(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][5], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0,
gKangaskhanStorageWork->unkE4 = FALSE;
sub_8014248(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_DEPOSIT_ONE_PROMPT], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0,
gKangaskhanStorageWork->unkE8, 12);
break;
case 18:
sub_80177F8();
gKangaskhanStorageWork->unkE4 = 0;
sub_8014248(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][6], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0,
gKangaskhanStorageWork->unkE4 = FALSE;
sub_8014248(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_DEPOSIT_MANY_PROMPT], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0,
gKangaskhanStorageWork->unkE8, 12);
break;
case 19:
@ -280,18 +280,18 @@ static void sub_8016FF8(void)
else
gKangaskhanStorageWork->fallbackState = 12;
gKangaskhanStorageWork->unkE4 = 1;
sub_80141B4(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][7], 0, gKangaskhanStorageWork->unkE8, 0x10D);
gKangaskhanStorageWork->unkE4 = TRUE;
sub_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_DEPOSIT_CONFIRMATION], 0, gKangaskhanStorageWork->unkE8, 0x10D);
break;
case 20:
gKangaskhanStorageWork->fallbackState = 22;
gKangaskhanStorageWork->unkE4 = 0;
sub_80141B4(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][8], 0, gKangaskhanStorageWork->unkE8, 0x30D);
gKangaskhanStorageWork->unkE4 = FALSE;
sub_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_TAKE_WHAT], 0, gKangaskhanStorageWork->unkE8, 0x30D);
break;
case 21:
gKangaskhanStorageWork->fallbackState = 23;
gKangaskhanStorageWork->unkE4 = 0;
sub_80141B4(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][9], 0, gKangaskhanStorageWork->unkE8, 0x30D);
gKangaskhanStorageWork->unkE4 = FALSE;
sub_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_TAKE_MORE], 0, gKangaskhanStorageWork->unkE8, 0x30D);
break;
case 22:
sub_801C8C4(1, 3, 0, 10);
@ -302,19 +302,19 @@ static void sub_8016FF8(void)
sub_801AD34(0);
break;
case 24:
gKangaskhanStorageWork->unkB8 = 2;
gKangaskhanStorageWork->unkB0 = 1;
gKangaskhanStorageWork->unkA8.unk10 = 2;
gKangaskhanStorageWork->unkA8.unk8 = 1;
if (gTeamInventoryRef->teamStorage[gKangaskhanStorageWork->storedItem.id] >= 100)
gKangaskhanStorageWork->unkB4 = 99;
gKangaskhanStorageWork->unkA8.unkC = 99;
else
gKangaskhanStorageWork->unkB4 = gTeamInventoryRef->teamStorage [gKangaskhanStorageWork->storedItem.id];
gKangaskhanStorageWork->unkA8.unkC = gTeamInventoryRef->teamStorage[gKangaskhanStorageWork->storedItem.id];
gKangaskhanStorageWork->unkAC = gKangaskhanStorageWork->unkB4;
gKangaskhanStorageWork->unkBC = 1;
gKangaskhanStorageWork->unkC0 = &gKangaskhanStorageWork->unkEC[1];
gKangaskhanStorageWork->unkC4 = 40;
gKangaskhanStorageWork->unkC8 = 18;
gKangaskhanStorageWork->unkA8.unk4 = gKangaskhanStorageWork->unkA8.unkC;
gKangaskhanStorageWork->unkA8.unk14 = 1;
gKangaskhanStorageWork->unkA8.unk18 = &gKangaskhanStorageWork->unkEC[1];
gKangaskhanStorageWork->unkA8.unk1C = 40;
gKangaskhanStorageWork->unkA8.unk20 = 18;
sub_8013AA0(&gKangaskhanStorageWork->unkA8);
sub_8017598();
break;
@ -331,14 +331,14 @@ static void sub_8016FF8(void)
case 27:
sub_80177F8();
sub_8090E14(gUnknown_202DE58, &gKangaskhanStorageWork->storedItem, 0);
gKangaskhanStorageWork->unkE4 = 0;
sub_8014248(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][10], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0,
gKangaskhanStorageWork->unkE4 = FALSE;
sub_8014248(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_WITHDRAW_ONE_PROMPT], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0,
gKangaskhanStorageWork->unkE8, 12);
break;
case 28:
sub_80177F8();
gKangaskhanStorageWork->unkE4 = 0;
sub_8014248(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][11], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0,
gKangaskhanStorageWork->unkE4 = FALSE;
sub_8014248(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_WITHDRAW_MANY_PROMPT], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0,
gKangaskhanStorageWork->unkE8, 12);
break;
case 29:
@ -349,19 +349,19 @@ static void sub_8016FF8(void)
else
gKangaskhanStorageWork->fallbackState = 21;
gKangaskhanStorageWork->unkE4 = 1;
sub_80141B4(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][12], 0, gKangaskhanStorageWork->unkE8, 0x10D);
gKangaskhanStorageWork->unkE4 = TRUE;
sub_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_WITHDRAW_CONFIRMATION], 0, gKangaskhanStorageWork->unkE8, 0x10D);
break;
}
}
static void sub_8017598(void)
{
sub_8008C54(gKangaskhanStorageWork->unkBC);
sub_80073B8(gKangaskhanStorageWork->unkBC);
xxx_call_draw_string(4, 0, sNumber, gKangaskhanStorageWork->unkBC, 0);
sub_8008C54(gKangaskhanStorageWork->unkA8.unk14);
sub_80073B8(gKangaskhanStorageWork->unkA8.unk14);
xxx_call_draw_string(4, 0, sNumber, gKangaskhanStorageWork->unkA8.unk14, 0);
sub_8013C68(&gKangaskhanStorageWork->unkA8);
sub_80073E0(gKangaskhanStorageWork->unkBC);
sub_80073E0(gKangaskhanStorageWork->unkA8.unk14);
sub_801CCD8();
sub_801AD34(0);
sub_8012EA4(&gKangaskhanStorageWork->unk58, 0);
@ -418,11 +418,11 @@ static void sub_80176B8(void)
gKangaskhanStorageWork->unk24[loopMax].text = *gCommonStore;
gKangaskhanStorageWork->unk24[loopMax].menuAction = 2;
loopMax += 1;
loopMax++;
gKangaskhanStorageWork->unk24[loopMax].text = *gCommonInfo;
gKangaskhanStorageWork->unk24[loopMax].menuAction = 6;
loopMax += 1;
loopMax++;
gKangaskhanStorageWork->unk24[loopMax].text = NULL;
gKangaskhanStorageWork->unk24[loopMax].menuAction = 1;
@ -451,11 +451,11 @@ static void sub_8017758(void)
gKangaskhanStorageWork->unk24[loopMax].text = *gCommonTake;
gKangaskhanStorageWork->unk24[loopMax].menuAction = 3;
loopMax += 1;
loopMax++;
gKangaskhanStorageWork->unk24[loopMax].text = *gCommonInfo;
gKangaskhanStorageWork->unk24[loopMax].menuAction = 6;
loopMax += 1;
loopMax++;
gKangaskhanStorageWork->unk24[loopMax].text = NULL;
gKangaskhanStorageWork->unk24[loopMax].menuAction = 1;
@ -482,11 +482,11 @@ static void sub_80177F8(void)
gKangaskhanStorageWork->unk24[loopMax].text = *gCommonYes;
gKangaskhanStorageWork->unk24[loopMax].menuAction = 4;
loopMax += 1;
loopMax++;
gKangaskhanStorageWork->unk24[loopMax].text = *gCommonNo;
gKangaskhanStorageWork->unk24[loopMax].menuAction = 5;
loopMax += 1;
loopMax++;
gKangaskhanStorageWork->unk24[loopMax].text = NULL;
gKangaskhanStorageWork->unk24[loopMax].menuAction = 1;
}
@ -495,7 +495,7 @@ static void sub_8017828(void)
{
s32 menuAction;
if (sub_80144A4(&menuAction) != 0)
if (sub_80144A4(&menuAction))
return;
if (menuAction != 1)
@ -531,7 +531,7 @@ static void sub_80178D0(void)
{
s32 menuAction;
if (sub_80144A4(&menuAction) != 0)
if (sub_80144A4(&menuAction))
return;
switch (menuAction) {
@ -553,7 +553,7 @@ static void sub_8017928(void)
s32 menuAction;
BulkItem item;
if (sub_80144A4(&menuAction) != 0)
if (sub_80144A4(&menuAction))
return;
switch (menuAction) {
@ -576,13 +576,13 @@ static void sub_80179A8(void)
s32 index;
s32 menuAction;
if (sub_80144A4(&menuAction) != 0)
if (sub_80144A4(&menuAction))
return;
switch (menuAction) {
case 4:
for (index = 0; index < INVENTORY_SIZE; index++) {
if (sub_801AED0(index) != 0) {
if (sub_801AED0(index)) {
MoveToStorage(&gTeamInventoryRef->teamItems[index]);
gTeamInventoryRef->teamItems[index].id = 0;
gTeamInventoryRef->teamItems[index].flags = 0;
@ -606,13 +606,13 @@ static void sub_8017A1C(void)
s32 menuAction;
BulkItem item;
if (sub_80144A4(&menuAction) != 0)
if (sub_80144A4(&menuAction))
return;
switch (menuAction) {
case 4:
for (itemID = 0; itemID < NUMBER_OF_ITEM_IDS; itemID++) {
if (sub_801CFE0(itemID) != 0) {
if (sub_801CFE0(itemID)) {
item.id = itemID;
if (IsThrowableItem(item.id)) {
if (gTeamInventoryRef->teamStorage[item.id] > 99)
@ -642,7 +642,7 @@ static void sub_8017AF8(void)
{
switch (sub_801A6E8(TRUE)) {
case 3:
if (sub_801AEA8() != 0) {
if (sub_801AEA8()) {
sub_8099690(0);
UpdateKangaskhanStorageState(18);
}
@ -668,7 +668,7 @@ static void sub_8017B88(void)
{
switch (sub_801CA08(TRUE)) {
case 3:
if (sub_801CFB8() != 0)
if (sub_801CFB8())
UpdateKangaskhanStorageState(28);
else {
gKangaskhanStorageWork->id = sub_801CB24();
@ -703,7 +703,7 @@ static void sub_8017C28(void)
sub_8017598();
break;
case 3:
gKangaskhanStorageWork->storedItem.quantity = gKangaskhanStorageWork->unkA8;
gKangaskhanStorageWork->storedItem.quantity = gKangaskhanStorageWork->unkA8.unk0;
UpdateKangaskhanStorageState(27);
break;
case 2:
@ -813,6 +813,6 @@ static void AdvanceToKangaskhanStorageFallbackState(void)
{
s32 temp;
if (sub_80144A4(&temp) == 0)
if (!sub_80144A4(&temp))
UpdateKangaskhanStorageState(gKangaskhanStorageWork->fallbackState);
}

View File

@ -171,19 +171,19 @@ static void sub_8018100(void)
sub_801AD34(0);
break;
case 12:
sUnknown_203B20C->unkD0 = 2;
sUnknown_203B20C->unkC8 = 1;
sUnknown_203B20C->unkC0.unk10 = 2;
sUnknown_203B20C->unkC0.unk8 = 1;
if (gTeamInventoryRef->teamStorage[sUnknown_203B20C->item.id] > 99)
sUnknown_203B20C->unkCC = 99;
sUnknown_203B20C->unkC0.unkC = 99;
else
sUnknown_203B20C->unkCC = gTeamInventoryRef->teamStorage[sUnknown_203B20C->item.id];
sUnknown_203B20C->unkC0.unkC = gTeamInventoryRef->teamStorage[sUnknown_203B20C->item.id];
sUnknown_203B20C->unkC4 = sUnknown_203B20C->unkCC;
sUnknown_203B20C->unkD4 = 1;
sUnknown_203B20C->unkD8 = &sUnknown_203B20C->unkF0[1];
sUnknown_203B20C->unkDC = 40;
sUnknown_203B20C->unkE0 = 18;
sUnknown_203B20C->unkC0.unk4 = sUnknown_203B20C->unkC0.unkC;
sUnknown_203B20C->unkC0.unk14 = 1;
sUnknown_203B20C->unkC0.unk18 = &sUnknown_203B20C->unkF0[1];
sUnknown_203B20C->unkC0.unk1C = 40;
sUnknown_203B20C->unkC0.unk20 = 18;
sub_8013AA0(&sUnknown_203B20C->unkC0);
sub_8018280();
break;
@ -204,11 +204,11 @@ static void sub_8018100(void)
static void sub_8018280(void)
{
sub_8008C54(sUnknown_203B20C->unkD4);
sub_80073B8(sUnknown_203B20C->unkD4);
xxx_call_draw_string(4, 0, sNumber, sUnknown_203B20C->unkD4, 0);
sub_8008C54(sUnknown_203B20C->unkC0.unk14);
sub_80073B8(sUnknown_203B20C->unkC0.unk14);
xxx_call_draw_string(4, 0, sNumber, sUnknown_203B20C->unkC0.unk14, 0);
sub_8013C68(&sUnknown_203B20C->unkC0);
sub_80073E0(sUnknown_203B20C->unkD4);
sub_80073E0(sUnknown_203B20C->unkC0.unk14);
sub_801CCD8();
sub_801AD34(0);
sub_8012EA4(&sUnknown_203B20C->unk70, 0);
@ -469,7 +469,7 @@ static void sub_8018854(void)
switch (sub_8013BBC(&sUnknown_203B20C->unkC0)) {
case 3:
sUnknown_203B20C->item.quantity = sUnknown_203B20C->unkC0;
sUnknown_203B20C->item.quantity = sUnknown_203B20C->unkC0.unk0;
gTeamInventoryRef->teamStorage[sUnknown_203B20C->item.id] -= sUnknown_203B20C->item.quantity;
item.id = sUnknown_203B20C->item.id;
item.quantity = sUnknown_203B20C->item.quantity;

View File

@ -599,7 +599,7 @@ void AddMenuCursorSprite_(MenuInputStruct *a0, u32 a1)
UpdateMenuCursorSpriteCoords(a0);
if (!(a0->unk24 & 8)) {
#ifdef NONMATCHING
#ifdef NONMATCHING // SpriteOAM memes https://decomp.me/scratch/T9aXl TODO: Match like sub_8039174 with multiple vars and while(0)
u32 tmp, tmp2;
#else
register u32 tmp asm("r0"), tmp2 asm("r1");
@ -676,7 +676,7 @@ static void sub_801332C(s16 *a0)
{
SpriteOAM sp = {};
SpriteOAM* ptr;
#ifdef NONMATCHING
#ifdef NONMATCHING // SpriteOAM memes https://decomp.me/scratch/zeLxS TODO: Match like sub_8039174 with multiple vars and while(0)
u32 r0, r1, r2;
#else
register u32 r0 asm("r0");
@ -745,7 +745,7 @@ static void sub_801332C(s16 *a0)
static void sub_8013470(MenuInputStruct *a0)
{
SpriteOAM sp = {};
#if NONMATCHING
#if NONMATCHING // SpriteOAM memes https://decomp.me/scratch/70Ieb TODO: Match like sub_8039174 with multiple vars and while(0)
SpriteOAM *ptr;
u32 r0, r1, r5;
#else
@ -1181,3 +1181,67 @@ void sub_8013A7C(MenuInputStruct *param_1)
sub_8013984(param_1);
}
void sub_8013AA0(unkStructFor8013AA0 *a0)
{
s32 r1;
s32 test;
s32 r3;
s32 r4;
s32 test2;
s16 earlyF;
s32 sp[10];
a0->unk28.attrib1 &= ~SPRITEOAM_MASK_AFFINEMODE1;
a0->unk28.attrib1 &= ~SPRITEOAM_MASK_AFFINEMODE2;
a0->unk28.attrib1 &= ~SPRITEOAM_MASK_OBJMODE;
a0->unk28.attrib1 &= ~SPRITEOAM_MASK_MOSAIC;
a0->unk28.attrib1 &= ~SPRITEOAM_MASK_BPP;
r1 = 1 << SPRITEOAM_SHIFT_SHAPE;
a0->unk28.attrib1 &= ~SPRITEOAM_MASK_SHAPE;
a0->unk28.attrib1 |= r1;
test = 16 << SPRITEOAM_SHIFT_MATRIXNUM;
a0->unk28.attrib2 &= ~SPRITEOAM_MASK_MATRIXNUM;
a0->unk28.attrib2 |= test;
a0->unk28.attrib2 &= ~SPRITEOAM_MASK_SIZE;
r3 = 0x3F0 << SPRITEOAM_SHIFT_TILENUM;
a0->unk28.attrib3 &= ~SPRITEOAM_MASK_TILENUM;
a0->unk28.attrib3 |= r3;
a0->unk28.attrib3 &= ~SPRITEOAM_MASK_PRIORITY;
earlyF = (s16)~SPRITEOAM_MASK_UNK6_4;
r4 = 15 << SPRITEOAM_SHIFT_PALETTENUM;
a0->unk28.attrib3 &= ~SPRITEOAM_MASK_PALETTENUM;
a0->unk28.attrib3 |= r4;
a0->unk28.attrib2 &= ~SPRITEOAM_MASK_X;
a0->unk28.attrib2 |= DISPLAY_WIDTH;
test2 = DISPLAY_WIDTH << SPRITEOAM_SHIFT_UNK6_4;
a0->unk28.unk6 &= earlyF;
a0->unk28.unk6 |= test2;
a0->unk26 = 0;
ConvertToDecimal(sp, a0->unkC, a0->unk10);
a0->unk25 = a0->unk10;
while (sp[a0->unk25 - 1] == 0 && a0->unk25 > 1)
a0->unk25--;
a0->unk0 = a0->unk4;
ConvertToDecimal(sp, a0->unk4, a0->unk10);
a0->unk24 = a0->unk25 - 1;
while (sp[a0->unk24] == 0 && a0->unk24 != 0)
a0->unk24--;
}

View File

@ -349,7 +349,7 @@ static void sub_8037400(void)
static void sub_80376CC(void)
{
#ifdef NONMATCHING
#ifdef NONMATCHING // SpriteOAM memes. TODO: Match like sub_8039174 with multiple vars and while(0)
u32 r0;
u32 r2;
#else

View File

@ -275,7 +275,7 @@ s32 UpdateSaveMenu(void)
void sub_8038830(void)
{
#ifdef NONMATCHING
#ifdef NONMATCHING // SpriteOAM memes. TODO: Match like sub_8039174 with multiple vars and while(0)
u32 r0;
u32 r2;
#else

View File

@ -250,7 +250,7 @@ void sub_8036788(void)
{
sub_8012FD8(&sTradeItemsMenu->unk44[3]);
sub_801CA08(FALSE);
switch(sub_8013BBC(&sTradeItemsMenu->quantityToSend)){
switch (sub_8013BBC(&sTradeItemsMenu->unk14)) {
case 1:
// When you change the #
sub_801CCD8();
@ -266,9 +266,9 @@ void sub_8036788(void)
break;
case 3:
// Confirm # of item
sTradeItemsMenu->itemToSend.quantity = sTradeItemsMenu->quantityToSend;
sTradeItemsMenu->itemToSend.quantity = sTradeItemsMenu->unk14.unk0;
sTradeItemsMenu->sentItem.itemIdx.id = sTradeItemsMenu->itemToSend.id;
sTradeItemsMenu->sentItem.quantity = sTradeItemsMenu->quantityToSend;
sTradeItemsMenu->sentItem.quantity = sTradeItemsMenu->unk14.unk0;
sub_801CBB8();
SetTradeItemMenu(TRADE_ITEMS_SEND_ITEM_CONFIRM);
break;
@ -289,7 +289,7 @@ void TradeItem_SendItemConfirm(void)
sub_801CBB8();
// Used temp var to get correct statements
load = gTeamInventoryRef->teamStorage[sTradeItemsMenu->itemToSend.id];
load -= sTradeItemsMenu->quantityToSend;
load -= sTradeItemsMenu->unk14.unk0;
gTeamInventoryRef->teamStorage[sTradeItemsMenu->itemToSend.id] = load;
SetTradeItemMenu(TRADE_ITEMS_PREPARE_TRADE_SAVING);
PrepareSavePakWrite(MONSTER_NONE);
@ -530,7 +530,7 @@ void sub_8036B28(void)
sub_8036F74();
break;
case TRADE_ITEMS_SEND_ITEM_CONFIRM:
gUnknown_202DE30 = sTradeItemsMenu->quantityToSend;
gUnknown_202DE30 = sTradeItemsMenu->unk14.unk0;
BufferItemName(gUnknown_202DE58,sTradeItemsMenu->itemToSend.id,NULL);
sub_8014248(sFmtWillBeSentPrompt,0,5, sUnknown_80E6154,0,4,0,0,0x101);
break;
@ -599,7 +599,7 @@ void sub_8036B28(void)
sub_80141B4(sFmtYouReceived,0,0,0x101);
break;
case 0xd:
gUnknown_202DE30 = sTradeItemsMenu->quantityToSend;
gUnknown_202DE30 = sTradeItemsMenu->unk14.unk0;
BufferItemName(gUnknown_202DE58,sTradeItemsMenu->itemToSend.id,NULL);
sub_80141B4(sFmtYouSent,0,0,0x101);
break;
@ -648,30 +648,29 @@ void PrintTradeItemsLinkError(u32 errorNum)
void sub_8036ECC(u32 index, u32 r1)
{
sTradeItemsMenu->unk24 = 3;
sTradeItemsMenu->unk18 = 1;
sTradeItemsMenu->unk1C = 1;
sTradeItemsMenu->unk20 = r1;
sTradeItemsMenu->unk30 = 0x2c;
sTradeItemsMenu->unk34 = 0x12;
sTradeItemsMenu->unk28 = index;
sTradeItemsMenu->unk2C = &sTradeItemsMenu->unk184[index];
sub_8013AA0(&sTradeItemsMenu->quantityToSend);
sTradeItemsMenu->unk184[index] = sUnknown_80E6174;
ResetUnusedInputStruct();
sub_800641C(sTradeItemsMenu->unk184, TRUE, TRUE);
sTradeItemsMenu->unk14.unk10 = 3;
sTradeItemsMenu->unk14.unk4 = 1;
sTradeItemsMenu->unk14.unk8 = 1;
sTradeItemsMenu->unk14.unkC = r1;
sTradeItemsMenu->unk14.unk1C = 0x2c;
sTradeItemsMenu->unk14.unk20 = 0x12;
sTradeItemsMenu->unk14.unk14 = index;
sTradeItemsMenu->unk14.unk18 = &sTradeItemsMenu->unk184[index];
sub_8013AA0(&sTradeItemsMenu->unk14);
sTradeItemsMenu->unk184[index] = sUnknown_80E6174;
ResetUnusedInputStruct();
sub_800641C(sTradeItemsMenu->unk184, TRUE, TRUE);
}
void sub_8036F30(void)
{
u32 uVar1;
uVar1 = sTradeItemsMenu->unk28;
uVar1 = sTradeItemsMenu->unk14.unk14;
sub_8008C54(uVar1);
sub_80073B8(uVar1);
// Draw "How many?"
xxx_call_draw_string(2, 0, sHowMany, uVar1, 0);
sub_8013C68(&sTradeItemsMenu->quantityToSend);
sub_8013C68(&sTradeItemsMenu->unk14);
sub_80073E0(uVar1);
}

View File

@ -125,7 +125,7 @@ u32 sub_80383D4(void)
void sub_8038440(void)
{
#ifdef NONMATCHING
#ifdef NONMATCHING // SpriteOAM memes. TODO: Match like sub_8039174 with multiple vars and while(0)
u32 r0;
u32 r2;
#else