diff --git a/asm/code_80130A8.s b/asm/code_80130A8.s index 21bee0f90..6893221d9 100644 --- a/asm/code_80130A8.s +++ b/asm/code_80130A8.s @@ -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} diff --git a/data/common_strings.s b/data/common_strings.s index d46957ea4..a20ef86be 100644 --- a/data/common_strings.s +++ b/data/common_strings.s @@ -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 diff --git a/include/code_80130A8.h b/include/code_80130A8.h index 199c7aeb3..1fc127e52 100644 --- a/include/code_80130A8.h +++ b/include/code_80130A8.h @@ -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); diff --git a/include/common_strings.h b/include/common_strings.h index f6a285548..35ca34150 100644 --- a/include/common_strings.h +++ b/include/common_strings.h @@ -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 diff --git a/include/constants/common_strings_felicity_bank.h b/include/constants/common_strings_felicity_bank.h index 985079f60..1651088af 100644 --- a/include/constants/common_strings_felicity_bank.h +++ b/include/constants/common_strings_felicity_bank.h @@ -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, diff --git a/include/constants/common_strings_kangaskhan_storage.h b/include/constants/common_strings_kangaskhan_storage.h new file mode 100644 index 000000000..d286b406e --- /dev/null +++ b/include/constants/common_strings_kangaskhan_storage.h @@ -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 \ No newline at end of file diff --git a/include/debug_menu2.h b/include/debug_menu2.h index 91e215896..f630ef2d5 100644 --- a/include/debug_menu2.h +++ b/include/debug_menu2.h @@ -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]; }; diff --git a/include/debug_menu4.h b/include/debug_menu4.h index ae42117c4..095e8338d 100644 --- a/include/debug_menu4.h +++ b/include/debug_menu4.h @@ -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]; diff --git a/include/felicity_bank.h b/include/felicity_bank.h index c6867dd31..87a5c9903 100644 --- a/include/felicity_bank.h +++ b/include/felicity_bank.h @@ -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; diff --git a/include/kangaskhan_storage1.h b/include/kangaskhan_storage1.h index 4b2e9310e..70e5f460b 100644 --- a/include/kangaskhan_storage1.h +++ b/include/kangaskhan_storage1.h @@ -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]; }; diff --git a/include/kangaskhan_storage2.h b/include/kangaskhan_storage2.h index 84c6ab0b1..73acd94d9 100644 --- a/include/kangaskhan_storage2.h +++ b/include/kangaskhan_storage2.h @@ -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; diff --git a/include/menu.h b/include/menu.h index 34b545e5a..d0ba9cf7e 100644 --- a/include/menu.h +++ b/include/menu.h @@ -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 diff --git a/include/menu_input.h b/include/menu_input.h index c3547a58b..07b721822 100644 --- a/include/menu_input.h +++ b/include/menu_input.h @@ -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 \ No newline at end of file diff --git a/include/trade_items_menu.h b/include/trade_items_menu.h index 09a8732c8..f55cf086a 100644 --- a/include/trade_items_menu.h +++ b/include/trade_items_menu.h @@ -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]; diff --git a/src/code_801C620.c b/src/code_801C620.c index 855d7b882..1377619d2 100644 --- a/src/code_801C620.c +++ b/src/code_801C620.c @@ -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); diff --git a/src/common_strings.c b/src/common_strings.c index ad05e8b69..1efbb7d2e 100644 --- a/src/common_strings.c +++ b/src/common_strings.c @@ -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" \ No newline at end of file +#include "data/common_strings_felicity_bank.h" +#include "data/common_strings_kangaskhan_storage.h" \ No newline at end of file diff --git a/src/data/common_strings_felicity_bank.h b/src/data/common_strings_felicity_bank.h index 461fde04f..145a5b6b7 100644 --- a/src/data/common_strings_felicity_bank.h +++ b/src/data/common_strings_felicity_bank.h @@ -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, diff --git a/src/data/common_strings_kangaskhan_storage.h b/src/data/common_strings_kangaskhan_storage.h new file mode 100644 index 000000000..60e2a11a6 --- /dev/null +++ b/src/data/common_strings_kangaskhan_storage.h @@ -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."); \ No newline at end of file diff --git a/src/debug_menu2.c b/src/debug_menu2.c index e4f31436c..6ee5b0f77 100644 --- a/src/debug_menu2.c +++ b/src/debug_menu2.c @@ -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); diff --git a/src/debug_menu4.c b/src/debug_menu4.c index 3c0d65afb..3cb912a61 100644 --- a/src/debug_menu4.c +++ b/src/debug_menu4.c @@ -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); diff --git a/src/felicity_bank.c b/src/felicity_bank.c index cc046916d..197082eae 100644 --- a/src/felicity_bank.c +++ b/src/felicity_bank.c @@ -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) diff --git a/src/kangaskhan_storage1.c b/src/kangaskhan_storage1.c index aa8974629..9d0d3d884 100644 --- a/src/kangaskhan_storage1.c +++ b/src/kangaskhan_storage1.c @@ -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); } \ No newline at end of file diff --git a/src/kangaskhan_storage2.c b/src/kangaskhan_storage2.c index 75faa7d41..3163f0ce4 100644 --- a/src/kangaskhan_storage2.c +++ b/src/kangaskhan_storage2.c @@ -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; diff --git a/src/menu_input.c b/src/menu_input.c index d53c636bf..8a1064aca 100644 --- a/src/menu_input.c +++ b/src/menu_input.c @@ -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--; +} \ No newline at end of file diff --git a/src/other_menus1.c b/src/other_menus1.c index 9142e7da6..217e461db 100644 --- a/src/other_menus1.c +++ b/src/other_menus1.c @@ -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 diff --git a/src/save_menu.c b/src/save_menu.c index 9a6ba1cf8..1e36db6cf 100644 --- a/src/save_menu.c +++ b/src/save_menu.c @@ -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 diff --git a/src/trade_items_menu.c b/src/trade_items_menu.c index c3eb9b050..1b8772735 100644 --- a/src/trade_items_menu.c +++ b/src/trade_items_menu.c @@ -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); } diff --git a/src/unk_menu_203B360.c b/src/unk_menu_203B360.c index 057e6aaec..49d1b154f 100644 --- a/src/unk_menu_203B360.c +++ b/src/unk_menu_203B360.c @@ -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