From 7883e435a64d32d662dd9b27e5368ba1316ba59f Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sun, 10 Sep 2023 06:23:42 -0400 Subject: [PATCH 01/47] bg_palette_buffer/othermenus clean --- asm/other_menus.s | 505 -------------- asm/other_menus1.s | 272 ++++++++ asm/other_menus2.s | 242 +++++++ include/bg_palette_buffer.h | 2 + include/main_menu.h | 20 +- include/other_menus1.h | 35 + include/other_menus2.h | 4 + include/trade_items_menu.h | 28 +- ld_script.txt | 10 +- src/bg_palette_buffer.c | 64 +- src/code_2.c | 1 - src/code_80118A4.c | 2 +- src/code_8012A18.c | 2 +- src/data/other_menus1.h | 387 +++++++++++ src/data/other_menus2.h | 8 + src/data/trade_items.h | 43 -- src/data/trade_items_menu.h | 114 ++++ src/main_menu.c | 19 +- src/other_menus.c | 864 ------------------------ src/other_menus1.c | 448 ++++++++++++ src/{other_menus_1.c => other_menus2.c} | 45 +- src/rescue_password_menu.c | 2 +- src/save_menu.c | 2 +- src/trade_items_menu.c | 323 ++++----- sym_ewram.txt | 6 +- sym_ewram2.txt | 2 +- 26 files changed, 1744 insertions(+), 1706 deletions(-) delete mode 100644 asm/other_menus.s create mode 100644 asm/other_menus1.s create mode 100644 asm/other_menus2.s create mode 100644 include/other_menus1.h create mode 100644 include/other_menus2.h create mode 100644 src/data/other_menus1.h create mode 100644 src/data/other_menus2.h delete mode 100644 src/data/trade_items.h create mode 100644 src/data/trade_items_menu.h delete mode 100644 src/other_menus.c create mode 100644 src/other_menus1.c rename src/{other_menus_1.c => other_menus2.c} (94%) diff --git a/asm/other_menus.s b/asm/other_menus.s deleted file mode 100644 index 478937ce6..000000000 --- a/asm/other_menus.s +++ /dev/null @@ -1,505 +0,0 @@ - #include "asm/constants/gba_constants.inc" - #include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_8037810 -sub_8037810: - push {r4-r6,lr} - ldr r6, _080378FC - ldr r0, [r6] - movs r5, 0xDE - lsls r5, 1 - adds r0, r5 - movs r1, 0 - movs r2, 0x8 - bl MemoryFill8 - ldr r0, [r6] - movs r4, 0xE2 - lsls r4, 1 - adds r0, r4 - movs r1, 0 - movs r2, 0x8 - bl MemoryFill8 - ldr r0, [r6] - adds r5, r0, r5 - movs r1, 0 - movs r2, 0 - str r1, [r5] - str r2, [r5, 0x4] - adds r4, r0, r4 - str r1, [r4] - str r2, [r4, 0x4] - movs r2, 0xE6 - lsls r2, 1 - adds r0, r2 - movs r1, 0 - movs r2, 0x30 - bl MemoryFill8 - ldr r0, [r6] - movs r3, 0xFE - lsls r3, 1 - adds r0, r3 - movs r1, 0 - movs r2, 0x30 - bl MemoryFill8 - ldr r0, [r6] - movs r1, 0x8B - lsls r1, 2 - adds r0, r1 - movs r1, 0 - movs r2, 0x30 - bl MemoryFill8 - ldr r0, [r6] - movs r2, 0x97 - lsls r2, 2 - adds r0, r2 - movs r1, 0 - movs r2, 0x30 - bl MemoryFill8 - ldr r0, [r6] - movs r3, 0xA3 - lsls r3, 2 - adds r0, r3 - movs r1, 0 - movs r2, 0x30 - bl MemoryFill8 - ldr r0, [r6] - movs r1, 0xC5 - lsls r1, 2 - adds r0, r1 - movs r1, 0 - movs r2, 0x30 - bl MemoryFill8 - ldr r0, [r6] - movs r2, 0xAF - lsls r2, 2 - adds r0, r2 - movs r1, 0 - movs r2, 0x58 - bl MemoryFill8 - ldr r0, [r6] - movs r3, 0xD1 - lsls r3, 2 - adds r0, r3 - movs r1, 0 - movs r2, 0x58 - bl MemoryFill8 - ldr r0, [r6] - movs r1, 0xE7 - lsls r1, 2 - adds r0, r1 - movs r1, 0 - movs r2, 0xB4 - bl MemoryFill8 - ldr r0, [r6] - movs r2, 0x8A - lsls r2, 3 - adds r0, r2 - movs r1, 0 - movs r2, 0xB4 - bl MemoryFill8 - ldr r2, [r6] - movs r3, 0xB1 - lsls r3, 2 - adds r0, r2, r3 - movs r1, 0 - strh r1, [r0] - adds r3, 0x88 - adds r0, r2, r3 - strh r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080378FC: .4byte gUnknown_203B35C - thumb_func_end sub_8037810 - - thumb_func_start sub_8037900 -sub_8037900: - push {r4,lr} - sub sp, 0x10 - ldr r4, _08037928 - ldr r0, [r4] - movs r1, 0xAE - lsls r1, 1 - adds r0, r1 - movs r1, 0 - bl sub_8035CC0 - ldr r0, [r4] - ldr r0, [r0] - cmp r0, 0xA - bls _0803791E - b _08037A14 -_0803791E: - lsls r0, 2 - ldr r1, _0803792C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08037928: .4byte gUnknown_203B35C -_0803792C: .4byte _08037930 - .align 2, 0 -_08037930: - .4byte _0803795C - .4byte _0803795C - .4byte _0803797C - .4byte _0803797C - .4byte _0803799C - .4byte _0803799C - .4byte _080379BC - .4byte _080379BC - .4byte _08037A14 - .4byte _080379F0 - .4byte _080379F0 -_0803795C: - ldr r0, _08037970 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x1C - movs r2, 0xAE - lsls r2, 1 - adds r1, r2 - ldr r3, _08037974 - ldr r2, _08037978 - b _080379CE - .align 2, 0 -_08037970: .4byte gUnknown_203B35C -_08037974: .4byte gUnknown_80E6554 -_08037978: .4byte gUnknown_80E656C -_0803797C: - ldr r0, _08037990 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x1C - movs r2, 0xAE - lsls r2, 1 - adds r1, r2 - ldr r3, _08037994 - ldr r2, _08037998 - b _080379CE - .align 2, 0 -_08037990: .4byte gUnknown_203B35C -_08037994: .4byte gUnknown_80E6554 -_08037998: .4byte gUnknown_80E65D8 -_0803799C: - ldr r0, _080379B0 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x1C - movs r2, 0xAE - lsls r2, 1 - adds r1, r2 - ldr r3, _080379B4 - ldr r2, _080379B8 - b _080379CE - .align 2, 0 -_080379B0: .4byte gUnknown_203B35C -_080379B4: .4byte gUnknown_80E6554 -_080379B8: .4byte gUnknown_80E661C -_080379BC: - ldr r0, _080379E4 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x1C - movs r2, 0xAE - lsls r2, 1 - adds r1, r2 - ldr r3, _080379E8 - ldr r2, _080379EC -_080379CE: - str r2, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r2, 0x6 - str r2, [sp, 0x8] - str r4, [sp, 0xC] - movs r2, 0 - bl SetMenuItems - b _08037A14 - .align 2, 0 -_080379E4: .4byte gUnknown_203B35C -_080379E8: .4byte gUnknown_80E6554 -_080379EC: .4byte gUnknown_80E665C -_080379F0: - ldr r0, _08037A38 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x1C - movs r2, 0xAE - lsls r2, 1 - adds r1, r2 - ldr r3, _08037A3C - ldr r2, _08037A40 - str r2, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r2, 0x6 - str r2, [sp, 0x8] - str r4, [sp, 0xC] - movs r2, 0 - bl SetMenuItems -_08037A14: - ldr r4, _08037A38 - ldr r0, [r4] - adds r0, 0x1C - movs r1, 0 - movs r2, 0x1 - bl sub_8035CF4 - bl sub_80373C4 - ldr r0, [r4] - adds r0, 0x1C - bl sub_80130A8 - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08037A38: .4byte gUnknown_203B35C -_08037A3C: .4byte gUnknown_80E6554 -_08037A40: .4byte gUnknown_80E667C - thumb_func_end sub_8037900 - - thumb_func_start nullsub_202 -nullsub_202: - bx lr - thumb_func_end nullsub_202 - - thumb_func_start sub_8037A48 -sub_8037A48: - push {r4-r6,lr} - sub sp, 0x28 - movs r6, 0x1 - movs r0, 0 - mov r1, sp - movs r2, 0x14 - bl sub_800D670 - add r4, sp, 0x14 - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x14 - bl sub_800D670 - ldr r1, _08037AAC - movs r3, 0x8 - adds r2, r1, 0 - adds r0, r2, 0x4 -_08037A6C: - str r3, [r0] - subs r0, 0x4 - cmp r0, r1 - bge _08037A6C - ldr r0, [sp, 0x10] - str r0, [r2] - ldr r0, [r4, 0x10] - str r0, [r2, 0x4] - ldr r5, _08037AB0 - mov r0, sp - adds r1, r5, 0 - bl strcmp - cmp r0, 0 - beq _08037A8C - movs r0, 0x1 -_08037A8C: - lsls r0, 24 - cmp r0, 0 - bne _08037AA6 - adds r0, r4, 0 - adds r1, r5, 0 - bl strcmp - cmp r0, 0 - beq _08037AA0 - movs r0, 0x1 -_08037AA0: - lsls r0, 24 - cmp r0, 0 - beq _08037AB4 -_08037AA6: - movs r0, 0 - b _08037B1E - .align 2, 0 -_08037AAC: .4byte gUnknown_202EC40 -_08037AB0: .4byte gUnknown_80E6E50 -_08037AB4: - ldr r1, [sp, 0x10] - cmp r1, 0 - bne _08037AC0 - ldr r0, [r4, 0x10] - cmp r0, 0x1 - beq _08037B1C -_08037AC0: - cmp r1, 0x1 - bne _08037ACA - ldr r0, [r4, 0x10] - cmp r0, 0 - beq _08037B1C -_08037ACA: - cmp r1, 0x2 - bne _08037AD4 - ldr r0, [r4, 0x10] - cmp r0, 0x3 - beq _08037B1C -_08037AD4: - cmp r1, 0x3 - bne _08037ADE - ldr r0, [r4, 0x10] - cmp r0, 0x2 - beq _08037B1C -_08037ADE: - cmp r1, 0x9 - bne _08037AE8 - ldr r0, [r4, 0x10] - cmp r0, 0xA - beq _08037B1C -_08037AE8: - cmp r1, 0xA - bne _08037AF2 - ldr r0, [r4, 0x10] - cmp r0, 0x9 - beq _08037B1C -_08037AF2: - cmp r1, 0x4 - bne _08037AFC - ldr r0, [r4, 0x10] - cmp r0, 0x5 - beq _08037B1C -_08037AFC: - cmp r1, 0x5 - bne _08037B06 - ldr r0, [r4, 0x10] - cmp r0, 0x4 - beq _08037B1C -_08037B06: - cmp r1, 0x6 - bne _08037B10 - ldr r0, [r4, 0x10] - cmp r0, 0x7 - beq _08037B1C -_08037B10: - cmp r1, 0x7 - bne _08037B1A - ldr r0, [r4, 0x10] - cmp r0, 0x6 - beq _08037B1C -_08037B1A: - movs r6, 0 -_08037B1C: - adds r0, r6, 0 -_08037B1E: - add sp, 0x28 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8037A48 - - thumb_func_start sub_8037B28 -sub_8037B28: - push {r4,r5,lr} - sub sp, 0x14 - adds r4, r0, 0 - movs r5, 0 - bl sub_800D414 - ldr r0, _08037B58 - str r5, [r0] - ldr r5, _08037B5C - mov r0, sp - movs r1, 0 - movs r2, 0x14 - bl MemoryFill8 - mov r0, sp - adds r1, r5, 0 - bl strcpy - str r4, [sp, 0x10] - mov r0, sp - movs r1, 0x14 - bl sub_800D59C - b _08037B7A - .align 2, 0 -_08037B58: .4byte gUnknown_202EC38 -_08037B5C: .4byte gUnknown_80E6E50 -_08037B60: - cmp r5, 0x3 - beq _08037BCC - cmp r5, 0x4 - beq _08037BD8 - cmp r5, 0x5 - beq _08037BF0 - ldr r2, _08037BC0 - ldr r1, [r2] - ldr r0, _08037BC4 - cmp r1, r0 - bgt _08037BE4 - adds r0, r1, 0x1 - str r0, [r2] -_08037B7A: - movs r4, 0 -_08037B7C: - bl sub_80373C4 - bl sub_8012AE8 - cmp r0, 0x3 - bgt _08037B8C - cmp r0, 0x2 - bge _08037BF0 -_08037B8C: - adds r4, 0x1 - cmp r4, 0 - ble _08037B7C - bl sub_800D33C - adds r5, r0, 0 - bl sub_800D570 - cmp r5, 0x2 - bne _08037B60 - bl sub_800D600 - lsls r0, 24 - cmp r0, 0 - beq _08037BFC - bl sub_8037A48 - lsls r0, 24 - cmp r0, 0 - bne _08037BC8 - movs r4, 0x4 - bl sub_800D520 - bl sub_800D510 - b _08037C06 - .align 2, 0 -_08037BC0: .4byte gUnknown_202EC38 -_08037BC4: .4byte 0x00000707 -_08037BC8: - movs r4, 0 - b _08037C06 -_08037BCC: - bl sub_800D520 - bl sub_800D510 - movs r0, 0x2 - b _08037C08 -_08037BD8: - bl sub_800D520 - bl sub_800D510 - movs r0, 0x3 - b _08037C08 -_08037BE4: - bl sub_800D520 - bl sub_800D510 - movs r0, 0xF - b _08037C08 -_08037BF0: - bl sub_800D520 - bl sub_800D510 - movs r0, 0x1 - b _08037C08 -_08037BFC: - movs r4, 0x5 - bl sub_800D520 - bl sub_800D510 -_08037C06: - adds r0, r4, 0 -_08037C08: - add sp, 0x14 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8037B28 - - .align 2,0 diff --git a/asm/other_menus1.s b/asm/other_menus1.s new file mode 100644 index 000000000..1f9ca157c --- /dev/null +++ b/asm/other_menus1.s @@ -0,0 +1,272 @@ + #include "asm/constants/gba_constants.inc" + #include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_8037810 +sub_8037810: + push {r4-r6,lr} + ldr r6, _080378FC + ldr r0, [r6] + movs r5, 0xDE + lsls r5, 1 + adds r0, r5 + movs r1, 0 + movs r2, 0x8 + bl MemoryFill8 + ldr r0, [r6] + movs r4, 0xE2 + lsls r4, 1 + adds r0, r4 + movs r1, 0 + movs r2, 0x8 + bl MemoryFill8 + ldr r0, [r6] + adds r5, r0, r5 + movs r1, 0 + movs r2, 0 + str r1, [r5] + str r2, [r5, 0x4] + adds r4, r0, r4 + str r1, [r4] + str r2, [r4, 0x4] + movs r2, 0xE6 + lsls r2, 1 + adds r0, r2 + movs r1, 0 + movs r2, 0x30 + bl MemoryFill8 + ldr r0, [r6] + movs r3, 0xFE + lsls r3, 1 + adds r0, r3 + movs r1, 0 + movs r2, 0x30 + bl MemoryFill8 + ldr r0, [r6] + movs r1, 0x8B + lsls r1, 2 + adds r0, r1 + movs r1, 0 + movs r2, 0x30 + bl MemoryFill8 + ldr r0, [r6] + movs r2, 0x97 + lsls r2, 2 + adds r0, r2 + movs r1, 0 + movs r2, 0x30 + bl MemoryFill8 + ldr r0, [r6] + movs r3, 0xA3 + lsls r3, 2 + adds r0, r3 + movs r1, 0 + movs r2, 0x30 + bl MemoryFill8 + ldr r0, [r6] + movs r1, 0xC5 + lsls r1, 2 + adds r0, r1 + movs r1, 0 + movs r2, 0x30 + bl MemoryFill8 + ldr r0, [r6] + movs r2, 0xAF + lsls r2, 2 + adds r0, r2 + movs r1, 0 + movs r2, 0x58 + bl MemoryFill8 + ldr r0, [r6] + movs r3, 0xD1 + lsls r3, 2 + adds r0, r3 + movs r1, 0 + movs r2, 0x58 + bl MemoryFill8 + ldr r0, [r6] + movs r1, 0xE7 + lsls r1, 2 + adds r0, r1 + movs r1, 0 + movs r2, 0xB4 + bl MemoryFill8 + ldr r0, [r6] + movs r2, 0x8A + lsls r2, 3 + adds r0, r2 + movs r1, 0 + movs r2, 0xB4 + bl MemoryFill8 + ldr r2, [r6] + movs r3, 0xB1 + lsls r3, 2 + adds r0, r2, r3 + movs r1, 0 + strh r1, [r0] + adds r3, 0x88 + adds r0, r2, r3 + strh r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080378FC: .4byte sUnknown_203B35C + thumb_func_end sub_8037810 + + thumb_func_start sub_8037900 +sub_8037900: + push {r4,lr} + sub sp, 0x10 + ldr r4, _08037928 + ldr r0, [r4] + movs r1, 0xAE + lsls r1, 1 + adds r0, r1 + movs r1, 0 + bl sub_8035CC0 + ldr r0, [r4] + ldr r0, [r0] + cmp r0, 0xA + bls _0803791E + b _08037A14 +_0803791E: + lsls r0, 2 + ldr r1, _0803792C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08037928: .4byte sUnknown_203B35C +_0803792C: .4byte _08037930 + .align 2, 0 +_08037930: + .4byte _0803795C + .4byte _0803795C + .4byte _0803797C + .4byte _0803797C + .4byte _0803799C + .4byte _0803799C + .4byte _080379BC + .4byte _080379BC + .4byte _08037A14 + .4byte _080379F0 + .4byte _080379F0 +_0803795C: + ldr r0, _08037970 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x1C + movs r2, 0xAE + lsls r2, 1 + adds r1, r2 + ldr r3, _08037974 + ldr r2, _08037978 + b _080379CE + .align 2, 0 +_08037970: .4byte sUnknown_203B35C +_08037974: .4byte sUnknown_80E6554 +_08037978: .4byte sUnknown_80E656C +_0803797C: + ldr r0, _08037990 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x1C + movs r2, 0xAE + lsls r2, 1 + adds r1, r2 + ldr r3, _08037994 + ldr r2, _08037998 + b _080379CE + .align 2, 0 +_08037990: .4byte sUnknown_203B35C +_08037994: .4byte sUnknown_80E6554 +_08037998: .4byte sUnknown_80E65D8 +_0803799C: + ldr r0, _080379B0 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x1C + movs r2, 0xAE + lsls r2, 1 + adds r1, r2 + ldr r3, _080379B4 + ldr r2, _080379B8 + b _080379CE + .align 2, 0 +_080379B0: .4byte sUnknown_203B35C +_080379B4: .4byte sUnknown_80E6554 +_080379B8: .4byte sUnknown_80E661C +_080379BC: + ldr r0, _080379E4 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x1C + movs r2, 0xAE + lsls r2, 1 + adds r1, r2 + ldr r3, _080379E8 + ldr r2, _080379EC +_080379CE: + str r2, [sp] + movs r4, 0 + str r4, [sp, 0x4] + movs r2, 0x6 + str r2, [sp, 0x8] + str r4, [sp, 0xC] + movs r2, 0 + bl SetMenuItems + b _08037A14 + .align 2, 0 +_080379E4: .4byte sUnknown_203B35C +_080379E8: .4byte sUnknown_80E6554 +_080379EC: .4byte sUnknown_80E665C +_080379F0: + ldr r0, _08037A38 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x1C + movs r2, 0xAE + lsls r2, 1 + adds r1, r2 + ldr r3, _08037A3C + ldr r2, _08037A40 + str r2, [sp] + movs r4, 0 + str r4, [sp, 0x4] + movs r2, 0x6 + str r2, [sp, 0x8] + str r4, [sp, 0xC] + movs r2, 0 + bl SetMenuItems +_08037A14: + ldr r4, _08037A38 + ldr r0, [r4] + adds r0, 0x1C + movs r1, 0 + movs r2, 0x1 + bl sub_8035CF4 + bl sub_80373C4 + ldr r0, [r4] + adds r0, 0x1C + bl sub_80130A8 + add sp, 0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08037A38: .4byte sUnknown_203B35C +_08037A3C: .4byte sUnknown_80E6554 +_08037A40: .4byte sUnknown_80E667C + thumb_func_end sub_8037900 + + thumb_func_start nullsub_202 +nullsub_202: + bx lr + thumb_func_end nullsub_202 + + + .align 2, 0 \ No newline at end of file diff --git a/asm/other_menus2.s b/asm/other_menus2.s new file mode 100644 index 000000000..f55d8d251 --- /dev/null +++ b/asm/other_menus2.s @@ -0,0 +1,242 @@ + #include "asm/constants/gba_constants.inc" + #include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_8037A48 +sub_8037A48: + push {r4-r6,lr} + sub sp, 0x28 + movs r6, 0x1 + movs r0, 0 + mov r1, sp + movs r2, 0x14 + bl sub_800D670 + add r4, sp, 0x14 + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0x14 + bl sub_800D670 + ldr r1, _08037AAC + movs r3, 0x8 + adds r2, r1, 0 + adds r0, r2, 0x4 +_08037A6C: + str r3, [r0] + subs r0, 0x4 + cmp r0, r1 + bge _08037A6C + ldr r0, [sp, 0x10] + str r0, [r2] + ldr r0, [r4, 0x10] + str r0, [r2, 0x4] + ldr r5, _08037AB0 + mov r0, sp + adds r1, r5, 0 + bl strcmp + cmp r0, 0 + beq _08037A8C + movs r0, 0x1 +_08037A8C: + lsls r0, 24 + cmp r0, 0 + bne _08037AA6 + adds r0, r4, 0 + adds r1, r5, 0 + bl strcmp + cmp r0, 0 + beq _08037AA0 + movs r0, 0x1 +_08037AA0: + lsls r0, 24 + cmp r0, 0 + beq _08037AB4 +_08037AA6: + movs r0, 0 + b _08037B1E + .align 2, 0 +_08037AAC: .4byte gUnknown_202EC40 +_08037AB0: .4byte gUnknown_80E6E50 +_08037AB4: + ldr r1, [sp, 0x10] + cmp r1, 0 + bne _08037AC0 + ldr r0, [r4, 0x10] + cmp r0, 0x1 + beq _08037B1C +_08037AC0: + cmp r1, 0x1 + bne _08037ACA + ldr r0, [r4, 0x10] + cmp r0, 0 + beq _08037B1C +_08037ACA: + cmp r1, 0x2 + bne _08037AD4 + ldr r0, [r4, 0x10] + cmp r0, 0x3 + beq _08037B1C +_08037AD4: + cmp r1, 0x3 + bne _08037ADE + ldr r0, [r4, 0x10] + cmp r0, 0x2 + beq _08037B1C +_08037ADE: + cmp r1, 0x9 + bne _08037AE8 + ldr r0, [r4, 0x10] + cmp r0, 0xA + beq _08037B1C +_08037AE8: + cmp r1, 0xA + bne _08037AF2 + ldr r0, [r4, 0x10] + cmp r0, 0x9 + beq _08037B1C +_08037AF2: + cmp r1, 0x4 + bne _08037AFC + ldr r0, [r4, 0x10] + cmp r0, 0x5 + beq _08037B1C +_08037AFC: + cmp r1, 0x5 + bne _08037B06 + ldr r0, [r4, 0x10] + cmp r0, 0x4 + beq _08037B1C +_08037B06: + cmp r1, 0x6 + bne _08037B10 + ldr r0, [r4, 0x10] + cmp r0, 0x7 + beq _08037B1C +_08037B10: + cmp r1, 0x7 + bne _08037B1A + ldr r0, [r4, 0x10] + cmp r0, 0x6 + beq _08037B1C +_08037B1A: + movs r6, 0 +_08037B1C: + adds r0, r6, 0 +_08037B1E: + add sp, 0x28 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8037A48 + + thumb_func_start sub_8037B28 +sub_8037B28: + push {r4,r5,lr} + sub sp, 0x14 + adds r4, r0, 0 + movs r5, 0 + bl sub_800D414 + ldr r0, _08037B58 + str r5, [r0] + ldr r5, _08037B5C + mov r0, sp + movs r1, 0 + movs r2, 0x14 + bl MemoryFill8 + mov r0, sp + adds r1, r5, 0 + bl strcpy + str r4, [sp, 0x10] + mov r0, sp + movs r1, 0x14 + bl sub_800D59C + b _08037B7A + .align 2, 0 +_08037B58: .4byte gUnknown_202EC38 +_08037B5C: .4byte gUnknown_80E6E50 +_08037B60: + cmp r5, 0x3 + beq _08037BCC + cmp r5, 0x4 + beq _08037BD8 + cmp r5, 0x5 + beq _08037BF0 + ldr r2, _08037BC0 + ldr r1, [r2] + ldr r0, _08037BC4 + cmp r1, r0 + bgt _08037BE4 + adds r0, r1, 0x1 + str r0, [r2] +_08037B7A: + movs r4, 0 +_08037B7C: + bl sub_80373C4 + bl sub_8012AE8 + cmp r0, 0x3 + bgt _08037B8C + cmp r0, 0x2 + bge _08037BF0 +_08037B8C: + adds r4, 0x1 + cmp r4, 0 + ble _08037B7C + bl sub_800D33C + adds r5, r0, 0 + bl sub_800D570 + cmp r5, 0x2 + bne _08037B60 + bl sub_800D600 + lsls r0, 24 + cmp r0, 0 + beq _08037BFC + bl sub_8037A48 + lsls r0, 24 + cmp r0, 0 + bne _08037BC8 + movs r4, 0x4 + bl sub_800D520 + bl sub_800D510 + b _08037C06 + .align 2, 0 +_08037BC0: .4byte gUnknown_202EC38 +_08037BC4: .4byte 0x00000707 +_08037BC8: + movs r4, 0 + b _08037C06 +_08037BCC: + bl sub_800D520 + bl sub_800D510 + movs r0, 0x2 + b _08037C08 +_08037BD8: + bl sub_800D520 + bl sub_800D510 + movs r0, 0x3 + b _08037C08 +_08037BE4: + bl sub_800D520 + bl sub_800D510 + movs r0, 0xF + b _08037C08 +_08037BF0: + bl sub_800D520 + bl sub_800D510 + movs r0, 0x1 + b _08037C08 +_08037BFC: + movs r4, 0x5 + bl sub_800D520 + bl sub_800D510 +_08037C06: + adds r0, r4, 0 +_08037C08: + add sp, 0x14 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8037B28 + + .align 2,0 diff --git a/include/bg_palette_buffer.h b/include/bg_palette_buffer.h index 2173fdcab..0a27e3929 100644 --- a/include/bg_palette_buffer.h +++ b/include/bg_palette_buffer.h @@ -3,7 +3,9 @@ void InitBGPaletteBuffer(void); void nullsub_4(s32 index, u8 *colorArray, s32, u8 *); +void nullsub_5(void); void SetBGPaletteBufferColorArray(s32 index, u8 *colorArray); void SetBGPaletteBufferColorRGB(s32 index, u8 *colorArray, s32, u8 *); +void TransferBGPaletteBuffer(void); #endif // GUARD_BG_PALETTE_BUFFER_H \ No newline at end of file diff --git a/include/main_menu.h b/include/main_menu.h index 9edd9140d..f08b1df1f 100644 --- a/include/main_menu.h +++ b/include/main_menu.h @@ -37,47 +37,47 @@ enum MainMenuScreens }; // size: 0x8 -struct unkStruct_8035D94 +typedef struct unkStruct_8035D94 { union { u8 itemIndex_u8; u32 itemIndex_u32; } itemIndex; s32 numItems; -}; +} unkStruct_8035D94; // size: 0x4 -struct MainMenuSub +typedef struct MainMenuSub { u8 unk2C; u8 unk2D; u8 unk2E; -}; +} MainMenuSub; // size: 0x40 -struct MainMenu +typedef struct MainMenu { /* 0x0 */ s32 currMenu; /* 0x4 */ s32 nextMenu; /* 0x8 */ s32 lastMenu; u8 padding[0x20]; - /* 0x2C */ struct MainMenuSub sub; - struct unkStruct_8035D94 unk30; + /* 0x2C */ MainMenuSub sub; + unkStruct_8035D94 unk30; s16 unk38; u8 unk3A; u8 unk3B; s32 unk3C; -}; +} MainMenu; void CleanUpMenu(void); void DeleteMainMenu(void); -struct MainMenu *GetMainMenu(void); +MainMenu *GetMainMenu(void); void InitMainMenu(void); void SetMenuItems(MenuStruct *, UnkTextStruct2 *, s32, const UnkTextStruct2 *, const MenuItem *, u8, u32, u32); void SetUpMenu(void); void sub_8035CC0(UnkTextStruct2 *, u32); void sub_8035CF4(MenuStruct*, u32, bool8); -struct unkStruct_8035D94 *sub_8035D94(void); +unkStruct_8035D94 *sub_8035D94(void); void sub_8035DA0(void); bool8 sub_80363E0(void); s32 UpdateMenu(void); diff --git a/include/other_menus1.h b/include/other_menus1.h new file mode 100644 index 000000000..de3874de1 --- /dev/null +++ b/include/other_menus1.h @@ -0,0 +1,35 @@ +#ifndef GUARD_OTHER_MENUS1_H +#define GUARD_OTHER_MENUS1_H + +#include "code_8094F88.h" +#include "main_menu.h" +#include "menu.h" +#include "pokemon.h" +#include "sprite_oam.h" +#include "text.h" + +// size: 0x504 +typedef struct unkStruct_203B35C +{ + u32 unk0; + /* 0x4 */ u32 linkStatus; + /* 0x8 */ u32 state; + SpriteOAM unkC; + u32 unk14; + u8 fill18[0x1C - 0x18]; + MenuStruct unk1C[4]; + UnkTextStruct2 unk15C[4]; + unkStruct_8035D94 unk1BC[2]; + unkStruct_203B480 unk1CC; + unkStruct_203B480 unk1FC; + unkStruct_203B480 unk22C; + unkStruct_203B480 unk25C; + unkStruct_203B480 unk28C; + PokemonStruct1 unk2BC; + unkStruct_203B480 unk314; + PokemonStruct1 unk344; + u8 unk39C[180]; + u8 unk450[180]; +} unkStruct_203B35C; + +#endif // GUARD_OTHER_MENUS1_H \ No newline at end of file diff --git a/include/other_menus2.h b/include/other_menus2.h new file mode 100644 index 000000000..6b813476c --- /dev/null +++ b/include/other_menus2.h @@ -0,0 +1,4 @@ +#ifndef GUARD_OTHER_MENUS2_H +#define GUARD_OTHER_MENUS2_H + +#endif // GUARD_OTHER_MENUS2_H \ No newline at end of file diff --git a/include/trade_items_menu.h b/include/trade_items_menu.h index b94480222..09a8732c8 100644 --- a/include/trade_items_menu.h +++ b/include/trade_items_menu.h @@ -5,6 +5,29 @@ #include "items.h" #include "menu.h" +// 11 was another saving too? +enum TradeItemsScreens +{ + TRADE_ITEMS_MAIN_MENU, + TRADE_ITEMS_SEND_ITEM, + TRADE_ITEMS_SEND_ITEM_SELECTION, + TRADE_ITEMS_SEND_ITEM_POPUP_MENU, + TRADE_ITEMS_SEND_ITEM_NUMBER, + TRADE_ITEMS_ITEM_INFO, + TRADE_ITEMS_SEND_ITEM_CONFIRM, + TRADE_ITEMS_RECEIVE_ITEM, + TRADE_ITEMS_IN_COMMUNICATION = 9, + TRADE_ITEMS_PREPARE_TRADE_SAVING = 15, + TRADE_ITEMS_PRE_EXIT = 17, + TRADE_ITEMS_EXIT = 18, +}; + +enum TradeItemsModes +{ + TRADE_ITEMS_SEND_ITEM_MODE, + TRADE_ITEMS_RECEIVE_ITEM_MODE +}; + struct TradeSubStruct { union ItemIdx { @@ -14,10 +37,9 @@ struct TradeSubStruct u32 quantity; // number of items? }; - +// size: 0x3A0 struct TradeItemsMenu { - // size: 0x3A0 u32 currMenu; u32 fallbackState; u32 itemMode; @@ -53,4 +75,4 @@ s32 UpdateTradeItemsMenu(void); s32 CreateTradeItemsMenu(void); void CleanTradeItemsMenu(void); -#endif +#endif // GUARD_TRADE_ITEMS_MENU_H \ No newline at end of file diff --git a/ld_script.txt b/ld_script.txt index 96decf675..a9b3e3fae 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -150,9 +150,10 @@ SECTIONS { src/credits.o(.text); src/main_menu.o(.text); src/trade_items_menu.o(.text); - src/other_menus.o(.text); - asm/other_menus.o(.text); - src/other_menus_1.o(.text); + src/other_menus1.o(.text); + asm/other_menus1.o(.text); + asm/other_menus2.o(.text); + src/other_menus2.o(.text); src/adventure_log_menu.o(.text); src/unk_menu_203B360.o(.text); src/save_menu.o(.text); @@ -440,7 +441,8 @@ SECTIONS { data/data_80E2068.o(.rodata); src/main_menu.o(.rodata); src/trade_items_menu.o(.rodata); - src/other_menus.o(.rodata); + src/other_menus1.o(.rodata); + src/other_menus2.o(.rodata); src/unk_menu_203B360.o(.rodata); src/save_menu.o(.rodata); src/rescue_password_menu.o(.rodata); diff --git a/src/bg_palette_buffer.c b/src/bg_palette_buffer.c index 6cdc3c333..6da900527 100644 --- a/src/bg_palette_buffer.c +++ b/src/bg_palette_buffer.c @@ -5,8 +5,8 @@ #define BG_PALETTE_BUFFER_SIZE 512 #define BG_PALETTE_BUFFER_CHUNK_SIZE 16 -EWRAM_DATA bool8 gBGPaletteUsed[BG_PALETTE_BUFFER_SIZE / BG_PALETTE_BUFFER_CHUNK_SIZE] = {0}; -EWRAM_DATA u16 gBGPaletteBuffer[BG_PALETTE_BUFFER_SIZE] = {0}; +static EWRAM_DATA bool8 sBGPaletteUsed[BG_PALETTE_BUFFER_SIZE / BG_PALETTE_BUFFER_CHUNK_SIZE] = {0}; +static EWRAM_DATA u16 sBGPaletteBuffer[BG_PALETTE_BUFFER_SIZE] = {0}; #ifndef NONMATCHING NAKED @@ -21,7 +21,7 @@ void InitBGPaletteBuffer(void) u8* p; - ptr = gBGPaletteBuffer; + ptr = sBGPaletteBuffer; i = 0x80; i <<= 2; @@ -33,16 +33,16 @@ void InitBGPaletteBuffer(void) paletteUsed = TRUE; - p = gBGPaletteUsed; + p = sBGPaletteUsed; p += 31; do *p-- = paletteUsed; - while ((s32) p >= (s32) &gBGPaletteUsed); + while ((s32) p >= (s32) &sBGPaletteUsed); #else asm_unified("\tpush {lr}\n" "\tmovs r2, 0\n" - "\tldr r1, =gBGPaletteBuffer\n" + "\tldr r1, =sBGPaletteBuffer\n" "\tmovs r0, 0x80\n" "\tlsls r0, 2\n" "_0800463E:\n" @@ -51,7 +51,7 @@ void InitBGPaletteBuffer(void) "\tsubs r0, 0x1\n" "\tcmp r0, 0\n" "\tbne _0800463E\n" - "\tldr r1, =gBGPaletteUsed\n" + "\tldr r1, =sBGPaletteUsed\n" "\tmovs r2, 0x1\n" "\tadds r0, r1, 0\n" "\tadds r0, 0x1F\n" @@ -67,26 +67,24 @@ void InitBGPaletteBuffer(void) #endif } -#ifndef NONMATCHING +#ifndef NONMATCHING // 99.48% (r3/r4 regswap) https://decomp.me/scratch/7Yc8i NAKED #endif void SetBGPaletteBufferColorRGB(s32 index, u8 *colorArray, s32 a1, u8 *a2) { #ifdef NONMATCHING - if (a1 < 0) { + if (a1 < 0) a1 = 0; - } - if (a1 > 31) { + if (a1 > 31) a1 = 31; - } - gBGPaletteUsed[index / 16] = 1; - if (!a2) { - gBGPaletteBuffer[index] = ((colorArray[2] * a1 / 256 & 0x1F) << 10) | ((colorArray[1] * a1 / 256 & 0x1F) << 5) | (colorArray[0] * a1 / 256 & 0x1F); - } + + sBGPaletteUsed[index / 16] = 1; + + if (a2 == NULL) + sBGPaletteBuffer[index] = ((colorArray[2] * a1 / 256 & 0x1F) << 10) | ((colorArray[1] * a1 / 256 & 0x1F) << 5) | (colorArray[0] * a1 / 256 & 0x1F); else - { - gBGPaletteBuffer[index] = ((a2[4 * colorArray[2] + 2] * a1 / 256 & 0x1F) << 10) | ((a2[4 * colorArray[1] + 1] * a1 / 256 & 0x1F) << 5) | (a2[4 * colorArray[0]] * a1 / 256 & 0x1F); - } + sBGPaletteBuffer[index] = ((a2[4 * colorArray[2] + 2] * a1 / 256 & 0x1F) << 10) | ((a2[4 * colorArray[1] + 1] * a1 / 256 & 0x1F) << 5) | (a2[4 * colorArray[0]] * a1 / 256 & 0x1F); + #else asm_unified("\tpush {r4-r7,lr}\n" "\tadds r4, r0, 0\n" @@ -99,7 +97,7 @@ void SetBGPaletteBufferColorRGB(s32 index, u8 *colorArray, s32 a1, u8 *a2) "\tble _08004676\n" "\tmovs r2, 0x1F\n" "_08004676:\n" - "\tldr r1, =gBGPaletteUsed\n" + "\tldr r1, =sBGPaletteUsed\n" "\tadds r0, r4, 0\n" "\tcmp r4, 0\n" "\tbge _08004680\n" @@ -111,7 +109,7 @@ void SetBGPaletteBufferColorRGB(s32 index, u8 *colorArray, s32 a1, u8 *a2) "\tstrb r1, [r0]\n" "\tcmp r3, 0\n" "\tbne _080046D4\n" - "\tldr r0, =gBGPaletteBuffer\n" + "\tldr r0, =sBGPaletteBuffer\n" "\tlsls r1, r4, 1\n" "\tadds r6, r1, r0\n" "\tldrb r0, [r5, 0x2]\n" @@ -148,7 +146,7 @@ void SetBGPaletteBufferColorRGB(s32 index, u8 *colorArray, s32 a1, u8 *a2) "\t.align 2, 0\n" "\t.pool\n" "_080046D4:\n" - "\tldr r1, =gBGPaletteBuffer\n" + "\tldr r1, =sBGPaletteBuffer\n" "\tlsls r0, r4, 1\n" "\tadds r7, r0, r1\n" "\tldrb r0, [r5, 0x2]\n" @@ -201,23 +199,25 @@ void SetBGPaletteBufferColorRGB(s32 index, u8 *colorArray, s32 a1, u8 *a2) void SetBGPaletteBufferColorArray(s32 index, u8 *colorArray) { - gBGPaletteUsed[index / BG_PALETTE_BUFFER_CHUNK_SIZE] = TRUE; - gBGPaletteBuffer[index] = (colorArray[2] >> 3) << 10 | (colorArray[1] >> 3) << 5 | colorArray[0] >> 3; + sBGPaletteUsed[index / BG_PALETTE_BUFFER_CHUNK_SIZE] = TRUE; + sBGPaletteBuffer[index] = (colorArray[2] >> 3) << 10 | (colorArray[1] >> 3) << 5 | colorArray[0] >> 3; } void SetBGPaletteBufferColor(s32 index, u16 *color) { - gBGPaletteUsed[index / BG_PALETTE_BUFFER_CHUNK_SIZE] = TRUE; - gBGPaletteBuffer[index] = *color; + sBGPaletteUsed[index / BG_PALETTE_BUFFER_CHUNK_SIZE] = TRUE; + sBGPaletteBuffer[index] = *color; } void nullsub_4(s32 index, u8 *colorArray, s32 a1, u8 *a2) { } + void nullsub_5(void) { } -void nullsub_143(void) + +UNUSED static void nullsub_143(void) { } @@ -232,14 +232,14 @@ void TransferBGPaletteBuffer(void) dest = (u16 *)PLTT; do { - if (gBGPaletteUsed[i]) + if (sBGPaletteUsed[i]) { - gBGPaletteUsed[i] = 0; - CpuCopy(dest, &gBGPaletteBuffer[paletteBufferIndex], sizeof(u16) * 16); + sBGPaletteUsed[i] = 0; + CpuCopy(dest, &sBGPaletteBuffer[paletteBufferIndex], sizeof(u16) * 16); } ++i; dest += 16; paletteBufferIndex += 16; } - while ( paletteBufferIndex < BG_PALETTE_BUFFER_SIZE ); -} + while (paletteBufferIndex < BG_PALETTE_BUFFER_SIZE); +} \ No newline at end of file diff --git a/src/code_2.c b/src/code_2.c index 9056d616f..2a8969fe2 100644 --- a/src/code_2.c +++ b/src/code_2.c @@ -48,7 +48,6 @@ extern u32 sub_80009D0(u32); extern void xxx_draw_string_80144C4(void); extern void nullsub_8(u32); extern void sub_80060EC(void); -extern void TransferBGPaletteBuffer(void); extern void xxx_call_update_bg_vram(void); extern void xxx_call_update_bg_sound_input(void); diff --git a/src/code_80118A4.c b/src/code_80118A4.c index a179bd6e4..3363a047d 100644 --- a/src/code_80118A4.c +++ b/src/code_80118A4.c @@ -1,6 +1,7 @@ #include #include #include "global.h" +#include "bg_palette_buffer.h" #include "code_8004AA0.h" #include "code_800558C.h" #include "code_8009804.h" @@ -38,7 +39,6 @@ EWRAM_DATA s16 gUnknown_202DE22; EWRAM_DATA s16 gUnknown_202DE24; void nullsub_8(u32); -extern void TransferBGPaletteBuffer(void); extern void xxx_call_update_bg_vram(void); extern void xxx_call_update_bg_sound_input(void); extern bool8 sub_80111C4(); diff --git a/src/code_8012A18.c b/src/code_8012A18.c index 7856b74ca..fb8cd4d86 100644 --- a/src/code_8012A18.c +++ b/src/code_8012A18.c @@ -1,4 +1,5 @@ #include "global.h" +#include "bg_palette_buffer.h" #include "code_800558C.h" #include "code_8009804.h" #include "code_800C9CC.h" @@ -9,7 +10,6 @@ extern void xxx_draw_string_80144C4(); extern void nullsub_8(u8); -extern void TransferBGPaletteBuffer(); extern void xxx_call_update_bg_vram(); extern void xxx_call_update_bg_sound_input(); diff --git a/src/data/other_menus1.h b/src/data/other_menus1.h new file mode 100644 index 000000000..6aca4d165 --- /dev/null +++ b/src/data/other_menus1.h @@ -0,0 +1,387 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 sUnknown_80E653C = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; +const UnkTextStruct2 sUnknown_80E6554 = { // TODO: MAKE STATIC WHEN other_menus1.s IS DED + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL +}; + +static const u8 sUnknown_80E65C4[]; +static const u8 sUnknown_80E65AC[]; +static const u8 sUnknown_80E658C[]; +const MenuItem sUnknown_80E656C[4] = { // TODO: MAKE STATIC WHEN other_menus1.s IS DED + {sUnknown_80E65C4, 5}, + {sUnknown_80E65AC, 5}, + {sUnknown_80E658C, 5}, + {NULL, 3}, + +}; +ALIGNED(4) static const u8 sUnknown_80E658C[] = _("{CENTER_ALIGN}Don{APOSTROPHE}t turn the power off!"); +ALIGNED(4) static const u8 sUnknown_80E65AC[] = _("{CENTER_ALIGN}Item transmitting!"); +ALIGNED(4) static const u8 sUnknown_80E65C4[] = _("{CENTER_ALIGN}{COLOR_1 RED}Caution!{END_COLOR_TEXT_1} "); + +static const u8 sUnknown_80E65F8[]; +const MenuItem sUnknown_80E65D8[4] = { // TODO: MAKE STATIC WHEN other_menus1.s IS DED + {sUnknown_80E65C4, 5}, + {sUnknown_80E65F8, 5}, + {sUnknown_80E658C, 5}, + {NULL, 3}, + +}; +ALIGNED(4) static const u8 sUnknown_80E65F8[] = _("{CENTER_ALIGN}Thank-You Mail in transmission!"); + +static const u8 sUnknown_80E663C[]; +const MenuItem sUnknown_80E661C[4] = { // TODO: MAKE STATIC WHEN other_menus1.s IS DED + {sUnknown_80E65C4, 5}, + {sUnknown_80E663C, 5}, + {sUnknown_80E658C, 5}, + {NULL, 3}, + +}; +ALIGNED(4) static const u8 sUnknown_80E663C[] = _("{CENTER_ALIGN}A-OK Mail in transmission!"); + +const MenuItem sUnknown_80E665C[4] = { // TODO: MAKE STATIC WHEN other_menus1.s IS DED + {sUnknown_80E65C4, 5}, + {sUnknown_80E65F8, 5}, + {sUnknown_80E658C, 5}, + {NULL, 3}, +}; + +static const u8 sUnknown_80E669C[]; +const MenuItem sUnknown_80E667C[4] = { // TODO: MAKE STATIC WHEN other_menus1.s IS DED + {sUnknown_80E65C4, 5}, + {sUnknown_80E669C, 5}, + {sUnknown_80E658C, 5}, + {NULL, 3}, + +}; +ALIGNED(4) static const u8 sUnknown_80E669C[] = _("{CENTER_ALIGN}Wonder Mail in transmission!"); + +static const UnkTextStruct2 sUnknown_80E66BC = { + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL +}; + +static const u8 sUnknown_80E6734[]; +static const u8 sUnknown_80E6710[]; +static const u8 sUnknown_80E66F4[]; +static const MenuItem sUnknown_80E66D4[4] = { + {sUnknown_80E6734, 5}, + {sUnknown_80E6710, 5}, + {sUnknown_80E66F4, 5}, + {NULL, 3}, +}; +ALIGNED(4) static const u8 sUnknown_80E66F4[] = _("{CENTER_ALIGN}Please press any button."); +ALIGNED(4) static const u8 sUnknown_80E6710[] = _("{CENTER_ALIGN}Your adventure will be continued."); +ALIGNED(4) static const u8 sUnknown_80E6734[] = _("{CENTER_ALIGN}{COLOR_1 LIGHT_BLUE}Success!{END_COLOR_TEXT_1} "); + +static const UnkTextStruct2 sUnknown_80E6748 = { + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL +}; + +static const u8 sUnknown_80E6780[]; +static const u8 sUnknown_80E6794[]; +static const u8 sUnknown_80E67B4[]; +static const MenuItem sUnknown_80E6760[4] = { + {sUnknown_80E67B4, 5}, + {sUnknown_80E6794, 5}, + {sUnknown_80E6780, 5}, + {NULL, 3}, +}; +ALIGNED(4) static const u8 sUnknown_80E6780[] = _("{CENTER_ALIGN}please try again."); +ALIGNED(4) static const u8 sUnknown_80E6794[] = _("{CENTER_ALIGN}Check the Game Link cable and"); +ALIGNED(4) static const u8 sUnknown_80E67B4[] = _("{CENTER_ALIGN}#C2Communication error!{END_COLOR_TEXT_1} "); + +static const UnkTextStruct2 sUnknown_80E67D4 = { + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL +}; + +static const u8 sUnknown_80E680C[]; +static const MenuItem sUnknown_80E67EC[4] = { + {sUnknown_80E67B4, 5}, + {sUnknown_80E680C, 5}, + {sUnknown_80E6780, 5}, + {NULL, 3}, +}; +ALIGNED(4) static const u8 sUnknown_80E680C[] = _("{CENTER_ALIGN}Check your communication mode and"); + +static const UnkTextStruct2 sUnknown_80E6830 = { + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL +}; + +static const u8 sUnknown_80E6888[]; +static const u8 sUnknown_80E6868[]; +static const MenuItem sUnknown_80E6848[4] = { + {sUnknown_80E67B4, 5}, + {sUnknown_80E6888, 5}, + {sUnknown_80E6868, 5}, + {NULL, 3}, +}; +ALIGNED(4) static const u8 sUnknown_80E6868[] = _("{CENTER_ALIGN}Please inform the programmer."); +ALIGNED(4) static const u8 sUnknown_80E6888[] = _("{CENTER_ALIGN}Check sum error."); + +static const UnkTextStruct2 sUnknown_80E689C = { + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL +}; + +static const u8 sUnknown_80E6928[]; +static const u8 sUnknown_80E68FC[]; +static const u8 sUnknown_80E68D4[]; +static const MenuItem sUnknown_80E68B4[4] = { + {sUnknown_80E6928, 5}, + {sUnknown_80E68FC, 5}, + {sUnknown_80E68D4, 5}, + {NULL, 3}, +}; +ALIGNED(4) static const u8 sUnknown_80E68D4[] = _("{CENTER_ALIGN}someone{APOSTROPHE}s storage space was full."); +ALIGNED(4) static const u8 sUnknown_80E68FC[] = _("{CENTER_ALIGN}An item could not be transferred because"); +ALIGNED(4) static const u8 sUnknown_80E6928[] = _("{CENTER_ALIGN}#C2Error!{END_COLOR_TEXT_1} "); + +static const UnkTextStruct2 sUnknown_80E6938 = { + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL +}; + +static const u8 sUnknown_80E6988[]; +static const u8 sUnknown_80E6970[]; +static const MenuItem sUnknown_80E6950[4] = { + {sUnknown_80E6928, 5}, + {sUnknown_80E6988, 5}, + {sUnknown_80E6970, 5}, + {NULL, 3}, +}; +ALIGNED(4) static const u8 sUnknown_80E6970[] = _("{CENTER_ALIGN}Please check again."); +ALIGNED(4) static const u8 sUnknown_80E6988[] = _("{CENTER_ALIGN}This {COLOR_1 LIGHT_BLUE}SOS Mail{END_COLOR_TEXT_1} can{APOSTROPHE}t be used."); + +static const UnkTextStruct2 sUnknown_80E69B0 = { + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL +}; + +static const u8 sUnknown_80E69E8[]; +static const MenuItem sUnknown_80E69C8[4] = { + {sUnknown_80E6928, 5}, + {sUnknown_80E69E8, 5}, + {sUnknown_80E6970, 5}, + {NULL, 3}, +}; +ALIGNED(4) static const u8 sUnknown_80E69E8[] = _("{CENTER_ALIGN}This {COLOR_1 LIGHT_BLUE}A-OK Mail{END_COLOR_TEXT_1} can{APOSTROPHE}t be used."); + +static const UnkTextStruct2 sUnknown_80E6A10 = { + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL +}; + +static const u8 sUnknown_80E6A48[]; +static const MenuItem sUnknown_80E6A28[4] = { + {sUnknown_80E6928, 5}, + {sUnknown_80E6A48, 5}, + {sUnknown_80E6970, 5}, + {NULL, 3}, +}; +ALIGNED(4) static const u8 sUnknown_80E6A48[] = _("{CENTER_ALIGN}This {COLOR_1 LIGHT_BLUE}Thank-You Mail{END_COLOR_TEXT_1} can{APOSTROPHE}t be used."); + +static const UnkTextStruct2 sUnknown_80E6A74 = { + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL +}; + +static const u8 sUnknown_80E6AC8[]; +static const u8 sUnknown_80E6AAC[]; +static const MenuItem sUnknown_80E6A8C[4] = { + {sUnknown_80E6928, 5}, + {sUnknown_80E6AC8, 5}, + {sUnknown_80E6AAC, 5}, + {NULL, 3}, +}; +ALIGNED(4) static const u8 sUnknown_80E6AAC[] = _("{CENTER_ALIGN}It can{APOSTROPHE}t be received."); +ALIGNED(4) static const u8 sUnknown_80E6AC8[] = _("{CENTER_ALIGN}There is no space for new mail."); + +UNUSED static const UnkTextStruct2 sUnknown_80E6AEC = { + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL +}; + +static const u8 sUnknown_80E6B4C[]; +static const u8 sUnknown_80E6B24[]; +UNUSED static const MenuItem sUnknown_80E6B04[4] = { + {sUnknown_80E6928, 5}, + {sUnknown_80E6B4C, 5}, + {sUnknown_80E6B24, 5}, + {NULL, 3}, +}; +ALIGNED(4) static const u8 sUnknown_80E6B24[] = _("{CENTER_ALIGN}You need to go further in the story."); +ALIGNED(4) static const u8 sUnknown_80E6B4C[] = _("{CENTER_ALIGN}You may not go to that {COLOR_1 LIGHT_BLUE}dungeon{END_COLOR_TEXT_1} yet."); + +static const UnkTextStruct2 sUnknown_80E6B78 = { + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL +}; + +static const u8 sUnknown_80E6BC4[]; +static const u8 sUnknown_80E6BB0[]; +static const MenuItem sUnknown_80E6B90[4] = { + {sUnknown_80E6928, 5}, + {sUnknown_80E6BC4, 5}, + {sUnknown_80E6BB0, 5}, + {NULL, 3}, +}; +ALIGNED(4) static const u8 sUnknown_80E6BB0[] = _("{CENTER_ALIGN}Please try again."); +ALIGNED(4) static const u8 sUnknown_80E6BC4[] = _("{CENTER_ALIGN}There was a problem on your friend{APOSTROPHE}s end."); + +static const UnkTextStruct2 sUnknown_80E6BF4 = { + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL +}; + +static const u8 sUnknown_80E6C2C[]; +static const MenuItem sUnknown_80E6C0C[4] = { + {sUnknown_80E6928, 5}, + {sUnknown_80E6C2C, 5}, + {sUnknown_80E6BB0, 5}, + {NULL, 3}, +}; +ALIGNED(4) static const u8 sUnknown_80E6C2C[] = _("{CENTER_ALIGN}Your friend is not responding."); + +static const UnkTextStruct2 sUnknown_80E6C50 = { + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL +}; + +static const u8 sUnknown_80E6CA8[]; +static const u8 sUnknown_80E6C88[]; +static const MenuItem sUnknown_80E6C68[4] = { + {sUnknown_80E6734, 5}, + {sUnknown_80E6CA8, 5}, + {sUnknown_80E6C88, 5}, + {NULL, 3}, +}; +ALIGNED(4) static const u8 sUnknown_80E6C88[] = _("{CENTER_ALIGN}went through successfully."); +ALIGNED(4) static const u8 sUnknown_80E6CA8[] = _("{CENTER_ALIGN}The item exchange with your friend"); + +static const UnkTextStruct2 sUnknown_80E6CD0 = { + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL +}; + +static const u8 sUnknown_80E6D2C[]; +static const u8 sUnknown_80E6D08[]; +static const MenuItem sUnknown_80E6CE8[4] = { + {sUnknown_80E65C4, 5}, + {sUnknown_80E6D2C, 5}, + {sUnknown_80E6D08, 5}, + {NULL, 3}, +}; +ALIGNED(4) static const u8 sUnknown_80E6D08[] = _("{CENTER_ALIGN}you and your friend are ready."); +ALIGNED(4) static const u8 sUnknown_80E6D2C[] = _("{CENTER_ALIGN}Please communicate only after both"); + +static const UnkTextStruct2 sUnknown_80E6D54 = { + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL +}; + +static const u8 sUnknown_80E6DB0[]; +static const u8 sUnknown_80E6D8C[]; +static const MenuItem sUnknown_80E6D6C[4] = { + {sUnknown_80E6928, 5}, + {sUnknown_80E6DB0, 5}, + {sUnknown_80E6D8C, 5}, + {NULL, 3}, +}; +ALIGNED(4) static const u8 sUnknown_80E6D8C[] = _("{CENTER_ALIGN}connected. Please check again."); +ALIGNED(4) static const u8 sUnknown_80E6DB0[] = _("{CENTER_ALIGN}An incorrect number of GBA systems are"); + +static const UnkTextStruct2 sUnknown_80E6DDC = { + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL +}; + +static const u8 sUnknown_80E6E30[]; +static const u8 sUnknown_80E6E14[]; +static const MenuItem sUnknown_80E6DF4[4] = { + {sUnknown_80E6928, 5}, + {sUnknown_80E6E30, 5}, + {sUnknown_80E6E14, 5}, + {NULL, 3}, +}; +ALIGNED(4) static const u8 sUnknown_80E6E14[] = _("{CENTER_ALIGN}Please check it again."); +ALIGNED(4) static const u8 sUnknown_80E6E30[] = _("{CENTER_ALIGN}Communication failed."); \ No newline at end of file diff --git a/src/data/other_menus2.h b/src/data/other_menus2.h new file mode 100644 index 000000000..3dd91762d --- /dev/null +++ b/src/data/other_menus2.h @@ -0,0 +1,8 @@ +ALIGNED(4) static const u8 sFill[] = "pksdir0"; +ALIGNED(4) const u8 gUnknown_80E6E50[] = "CHUNSOFT"; // TODO: MAKE STATIC WHEN other_menus2.s IS DED + +// TODO: These belongs to files after +ALIGNED(4) static const u8 fill1[] = "pksdir0"; +ALIGNED(4) static const u8 fill2[] = "pksdir0"; +ALIGNED(4) static const u8 fill3[] = "pksdir0"; +ALIGNED(4) static const u8 fill4[] = "pksdir0"; \ No newline at end of file diff --git a/src/data/trade_items.h b/src/data/trade_items.h deleted file mode 100644 index 3d90edca5..000000000 --- a/src/data/trade_items.h +++ /dev/null @@ -1,43 +0,0 @@ -const u8 gUnknown_80E61A4[] = "What would you like to do? "; -const u8 gUnknown_80E61C0[] = "Please choose the item to be sent."; -ALIGNED(4) const u8 gUnknown_80E61E4[] = _("{COLOR_1 LIGHT_BLUE}$d0{END_COLOR_TEXT_1} {COLOR_1 GREEN_2}{ARG_MOVE_ITEM_0}(s){END_COLOR_TEXT_1}\n" -"will be sent.\n" -"Is that OK?"); - -ALIGNED(4) const u8 gUnknown_80E6214[] = _("Your friend will send you an item.\n" - "When you are both ready{COMMA} you\n" - "may communicate."); - -ALIGNED(4) const u8 gUnknown_80E6268[] = _("Preparing to send an item to your\n" - "friend. When you are both ready{COMMA}\n" - "you may communicate."); - -ALIGNED(4) const u8 gUnknown_80E62C4[] = _("{CENTER_ALIGN}In communication...\n" - "{CENTER_ALIGN}Please wait with the power on.\n" - "{CENTER_ALIGN}To cancel{COMMA} press {B_BUTTON}."); - -ALIGNED(4) const u8 gUnknown_80E6314[] = _("You received\n" - "{COLOR_1 LIGHT_BLUE}$d0{END_COLOR_TEXT_1} {COLOR_1 GREEN_2}{ARG_MOVE_ITEM_0}(s){END_COLOR_TEXT_1}.\n" - "Your adventure will be saved."); - -ALIGNED(4) const u8 gUnknown_80E6358[] = _("You sent {COLOR_1 LIGHT_BLUE}$d0{END_COLOR_TEXT_1} {COLOR_1 GREEN_2}{ARG_MOVE_ITEM_0}(s){END_COLOR_TEXT_1}."); - -// Trade Items Menu Link Error Messages -const u8 gTradeItemsCommunicationError[] = "There was a communication error."; -const u8 gUnknown_80E639C[] = "An incorrect number of GBA systems are\n" - "connected.\n" - "Please redo this process from the start."; - -const u8 gUnknown_80E63F8[] = "There is no response from your friend.\n" - "Please redo this process from the start."; - -const u8 gUnknown_80E6448[] = "The sender and receiver appear to be\n" - "in different modes.\n" - "Please redo the process from the start."; - -ALIGNED(4) const u8 gUnknown_80E64AC[] = _("There is no response from your friend.\n" -"Please make sure the sender and receiver\n" -"are ready{COMMA} then redo this from the start."); - -const u8 gTradeItemsHowManyText[] = "How many?"; -static const u8 aligner[] = "pksdir0"; diff --git a/src/data/trade_items_menu.h b/src/data/trade_items_menu.h new file mode 100644 index 000000000..11b3e5cd2 --- /dev/null +++ b/src/data/trade_items_menu.h @@ -0,0 +1,114 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const MenuItem sUnknown_80E60A0[3] = { + {"Send item", 1}, + {"Receive item", 2}, + {NULL, 0}, +}; + +static const MenuItem sUnknown_80E60D4[3] = { + {"Send item", -1}, + {"Receive item", 2}, + {NULL, 0}, +}; + +static const UnkTextStruct2 sUnknown_80E60EC = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, + 0x15, 0x04, + 0x06, 0x05, + 0x05, 0x00, + NULL +}; + +static const MenuItem sUnknown_80E6104[4] = { + {"Confirm", 3}, + {"Info", 4}, + {"Cancel", 7}, + {NULL, 0}, +}; + +static const UnkTextStruct2 unused = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, + 0x16, 0x09, + 0x05, 0x03, + 0x03, 0x00, + NULL +}; + +static const MenuItem sUnknown_80E6154[3] = { + {"Yes", 5}, + {"No", 6}, + {NULL, 0}, +}; + +static const UnkTextStruct2 sUnknown_80E6174 = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, + 0x15, 0x0D, + 0x06, 0x04, + 0x04, 0x00, + NULL +}; + +static const MenuItem sUnknown_80E618C[3] = { + {"Yes", 5}, + {"Cancel", 0}, + {NULL, 0}, +}; + +ALIGNED(4) static const u8 sUnknown_80E61A4[] = "What would you like to do? "; +ALIGNED(4) static const u8 sUnknown_80E61C0[] = "Please choose the item to be sent."; +ALIGNED(4) static const u8 sUnknown_80E61E4[] = _( + "{COLOR_1 LIGHT_BLUE}$d0{END_COLOR_TEXT_1} {COLOR_1 GREEN_2}{ARG_MOVE_ITEM_0}(s){END_COLOR_TEXT_1}\n" + "will be sent.\n" + "Is that OK?"); + +ALIGNED(4) static const u8 sUnknown_80E6214[] = _( + "Your friend will send you an item.\n" + "When you are both ready{COMMA} you\n" + "may communicate."); + +ALIGNED(4) static const u8 sUnknown_80E6268[] = _( + "Preparing to send an item to your\n" + "friend. When you are both ready{COMMA}\n" + "you may communicate."); + +ALIGNED(4) static const u8 sUnknown_80E62C4[] = _( + "{CENTER_ALIGN}In communication...\n" + "{CENTER_ALIGN}Please wait with the power on.\n" + "{CENTER_ALIGN}To cancel{COMMA} press {B_BUTTON}."); + +ALIGNED(4) static const u8 sUnknown_80E6314[] = _( + "You received\n" + "{COLOR_1 LIGHT_BLUE}$d0{END_COLOR_TEXT_1} {COLOR_1 GREEN_2}{ARG_MOVE_ITEM_0}(s){END_COLOR_TEXT_1}.\n" + "Your adventure will be saved."); + +ALIGNED(4) static const u8 sUnknown_80E6358[] = _("You sent {COLOR_1 LIGHT_BLUE}$d0{END_COLOR_TEXT_1} {COLOR_1 GREEN_2}{ARG_MOVE_ITEM_0}(s){END_COLOR_TEXT_1}."); + +// Trade Items Menu Link Error Messages +ALIGNED(4) static const u8 sTradeItemsCommunicationError[] = "There was a communication error."; +ALIGNED(4) static const u8 sUnknown_80E639C[] = + "An incorrect number of GBA systems are\n" + "connected.\n" + "Please redo this process from the start."; + +ALIGNED(4) static const u8 sUnknown_80E63F8[] = + "There is no response from your friend.\n" + "Please redo this process from the start."; + +ALIGNED(4) static const u8 sUnknown_80E6448[] = + "The sender and receiver appear to be\n" + "in different modes.\n" + "Please redo the process from the start."; + +ALIGNED(4) static const u8 sUnknown_80E64AC[] = _( + "There is no response from your friend.\n" + "Please make sure the sender and receiver\n" + "are ready{COMMA} then redo this from the start."); + +ALIGNED(4) static const u8 sHowMany[] = "How many?"; \ No newline at end of file diff --git a/src/main_menu.c b/src/main_menu.c index 74d301435..7d4b1550e 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -40,7 +40,7 @@ struct unkStruct_203B34C /* 0x1A4 */ u32 currMenuChoice; }; -EWRAM_DATA_2 struct MainMenu *gMainMenu = {0}; +EWRAM_DATA_2 MainMenu *gMainMenu = {0}; EWRAM_DATA_2 struct unkStruct_203B34C *gUnknown_203B34C = {0}; EWRAM_DATA_2 u32 gUnknown_203B350 = {0}; EWRAM_DATA_2 u32 gUnknown_203B354 = {0}; // unused everywhere else except here.. @@ -370,14 +370,13 @@ const MenuItem gUnknown_80E6030[] = { static const u8 sUnknown_80E6048[] = "go on an adventure to unknown worlds."; ALIGNED(4) static const u8 sUnknown_80E6070[] = _("Using wireless communication{COMMA} you can"); -static const u8 sMainMenu_fill0[] = "pksdir0"; void InitMainMenu(void) { if (gMainMenu == NULL) { - gMainMenu = MemoryAlloc(sizeof(struct MainMenu),8); - MemoryFill8((u8 *)gMainMenu, 0, sizeof(struct MainMenu)); + gMainMenu = MemoryAlloc(sizeof(MainMenu),8); + MemoryFill8((u8 *)gMainMenu, 0, sizeof(MainMenu)); } gMainMenu->currMenu = MENU_NO_SCREEN_CHANGE; gMainMenu->nextMenu = MENU_MAIN_SCREEN; @@ -602,13 +601,13 @@ void CleanUpMenu(void) } // Unused -void sub_8035C00(struct MainMenuSub *param) +void sub_8035C00(MainMenuSub *param) { gMainMenu->sub = *param; } // Unused -struct MainMenuSub *sub_8035C10(void) +MainMenuSub *sub_8035C10(void) { return &gMainMenu->sub; } @@ -667,7 +666,7 @@ s16 sub_8035D3C(void) return gMainMenu->unk38; } -struct MainMenu *GetMainMenu(void) +MainMenu *GetMainMenu(void) { return gMainMenu; } @@ -690,7 +689,7 @@ s32 sub_8035D74(void) } // Unused -void sub_8035D80(struct unkStruct_8035D94 *item) +void sub_8035D80(unkStruct_8035D94 *item) { #ifndef NONMATCHING @@ -700,7 +699,7 @@ void sub_8035D80(struct unkStruct_8035D94 *item) #endif u32 itemIndex; - struct MainMenu *preload; + MainMenu *preload; preload = gMainMenu; numItem = item->numItems; @@ -709,7 +708,7 @@ void sub_8035D80(struct unkStruct_8035D94 *item) preload->unk30.numItems = numItem; } -struct unkStruct_8035D94 *sub_8035D94(void) +unkStruct_8035D94 *sub_8035D94(void) { return &gMainMenu->unk30; } diff --git a/src/other_menus.c b/src/other_menus.c deleted file mode 100644 index 3a212253a..000000000 --- a/src/other_menus.c +++ /dev/null @@ -1,864 +0,0 @@ -#include "global.h" -#include "code_8009804.h" -#include "code_800C9CC.h" -#include "constants/communication_error_codes.h" -#include "input.h" -#include "main_menu.h" -#include "items.h" -#include "menu.h" -#include "memory.h" -#include "text1.h" -#include "menu_input.h" -#include "dungeon_global_data.h" -#include "pokemon.h" -#include "code_8094F88.h" -#include "sprite.h" -#include "code_80118A4.h" -#include "code_800558C.h" - -struct unkStruct_203B35C -{ - // size: 0x504 - u32 unk0; - u32 linkStatus; - u32 state; - SpriteOAM unkC; - u32 unk14; - u8 fill18[0x1C - 0x18]; - MenuStruct unk1C[4]; - UnkTextStruct2 unk15C[4]; - struct unkStruct_8035D94 unk1BC[2]; - unkStruct_203B480 unk1CC; - unkStruct_203B480 unk1FC; - unkStruct_203B480 unk22C; - unkStruct_203B480 unk25C; - unkStruct_203B480 unk28C; - PokemonStruct1 unk2BC; - unkStruct_203B480 unk314; - PokemonStruct1 unk344; - u8 unk39C[0xB4]; - u8 unk450[0xB4]; -}; - -EWRAM_DATA_2 struct unkStruct_203B35C *gUnknown_203B35C = {0}; - -const UnkTextStruct2 gUnknown_80E653C = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - NULL -}; -const UnkTextStruct2 gUnknown_80E6554 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x03, 0x08, - 0x18, 0x05, - 0x05, 0x00, - NULL -}; - -const u8 sUnknown_80E65C4[]; -const u8 sUnknown_80E65AC[]; -const u8 sUnknown_80E658C[]; -const MenuItem gUnknown_80E656C[4] = { - {sUnknown_80E65C4, 0x5}, - {sUnknown_80E65AC, 0x5}, - {sUnknown_80E658C, 0x5}, - {NULL, 0x3}, - -}; -ALIGNED(4) const u8 sUnknown_80E658C[] = _("{CENTER_ALIGN}Don{APOSTROPHE}t turn the power off!"); -ALIGNED(4) const u8 sUnknown_80E65AC[] = _("{CENTER_ALIGN}Item transmitting!"); -ALIGNED(4) const u8 sUnknown_80E65C4[] = _("{CENTER_ALIGN}{COLOR_1 RED}Caution!{END_COLOR_TEXT_1} "); - -const u8 sUnknown_80E65F8[]; -const MenuItem gUnknown_80E65D8[4] = { - {sUnknown_80E65C4, 0x5}, - {sUnknown_80E65F8, 0x5}, - {sUnknown_80E658C, 0x5}, - {NULL, 0x3}, - -}; -ALIGNED(4) const u8 sUnknown_80E65F8[] = _("{CENTER_ALIGN}Thank-You Mail in transmission!"); - -const u8 sUnknown_80E663C[]; -const MenuItem gUnknown_80E661C[4] = { - {sUnknown_80E65C4, 0x5}, - {sUnknown_80E663C, 0x5}, - {sUnknown_80E658C, 0x5}, - {NULL, 0x3}, - -}; -ALIGNED(4) const u8 sUnknown_80E663C[] = _("{CENTER_ALIGN}A-OK Mail in transmission!"); - -const MenuItem gUnknown_80E665C[4] = { - {sUnknown_80E65C4, 0x5}, - {sUnknown_80E65F8, 0x5}, - {sUnknown_80E658C, 0x5}, - {NULL, 0x3}, - -}; - -const u8 sUnknown_80E669C[]; -const MenuItem gUnknown_80E667C[4] = { - {sUnknown_80E65C4, 0x5}, - {sUnknown_80E669C, 0x5}, - {sUnknown_80E658C, 0x5}, - {NULL, 0x3}, - -}; -ALIGNED(4) const u8 sUnknown_80E669C[] = _("{CENTER_ALIGN}Wonder Mail in transmission!"); - -const UnkTextStruct2 gUnknown_80E66BC = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x03, 0x08, - 0x18, 0x05, - 0x05, 0x00, - NULL -}; - -const u8 sUnknown_80E6734[]; -const u8 sUnknown_80E6710[]; -const u8 sUnknown_80E66F4[]; -const MenuItem gUnknown_80E66D4[4] = { - {sUnknown_80E6734, 0x5}, - {sUnknown_80E6710, 0x5}, - {sUnknown_80E66F4, 0x5}, - {NULL, 0x3}, - -}; -ALIGNED(4) const u8 sUnknown_80E66F4[] = _("{CENTER_ALIGN}Please press any button."); -ALIGNED(4) const u8 sUnknown_80E6710[] = _("{CENTER_ALIGN}Your adventure will be continued."); -ALIGNED(4) const u8 sUnknown_80E6734[] = _("{CENTER_ALIGN}{COLOR_1 LIGHT_BLUE}Success!{END_COLOR_TEXT_1} "); - -const UnkTextStruct2 gUnknown_80E6748 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x03, 0x08, - 0x18, 0x05, - 0x05, 0x00, - NULL -}; - -const u8 sUnknown_80E6780[]; -const u8 sUnknown_80E6794[]; -const u8 sUnknown_80E67B4[]; -const MenuItem gUnknown_80E6760[4] = { - {sUnknown_80E67B4, 0x5}, - {sUnknown_80E6794, 0x5}, - {sUnknown_80E6780, 0x5}, - {NULL, 0x3}, - -}; -ALIGNED(4) const u8 sUnknown_80E6780[] = _("{CENTER_ALIGN}please try again."); -ALIGNED(4) const u8 sUnknown_80E6794[] = _("{CENTER_ALIGN}Check the Game Link cable and"); -ALIGNED(4) const u8 sUnknown_80E67B4[] = _("{CENTER_ALIGN}#C2Communication error!{END_COLOR_TEXT_1} "); - -const UnkTextStruct2 gUnknown_80E67D4 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x03, 0x08, - 0x18, 0x05, - 0x05, 0x00, - NULL -}; - -const u8 sUnknown_80E680C[]; -const MenuItem gUnknown_80E67EC[4] = { - {sUnknown_80E67B4, 0x5}, - {sUnknown_80E680C, 0x5}, - {sUnknown_80E6780, 0x5}, - {NULL, 0x3}, -}; -ALIGNED(4) const u8 sUnknown_80E680C[] = _("{CENTER_ALIGN}Check your communication mode and"); - -const UnkTextStruct2 gUnknown_80E6830 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x03, 0x08, - 0x18, 0x05, - 0x05, 0x00, - NULL -}; - -const u8 sUnknown_80E6888[]; -const u8 sUnknown_80E6868[]; -const MenuItem gUnknown_80E6848[4] = { - {sUnknown_80E67B4, 0x5}, - {sUnknown_80E6888, 0x5}, - {sUnknown_80E6868, 0x5}, - {NULL, 0x3}, -}; -ALIGNED(4) const u8 sUnknown_80E6868[] = _("{CENTER_ALIGN}Please inform the programmer."); -ALIGNED(4) const u8 sUnknown_80E6888[] = _("{CENTER_ALIGN}Check sum error."); - -const UnkTextStruct2 gUnknown_80E689C = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x03, 0x08, - 0x18, 0x05, - 0x05, 0x00, - NULL -}; - -const u8 sUnknown_80E6928[]; -const u8 sUnknown_80E68FC[]; -const u8 sUnknown_80E68D4[]; -const MenuItem gUnknown_80E68B4[4] = { - {sUnknown_80E6928, 0x5}, - {sUnknown_80E68FC, 0x5}, - {sUnknown_80E68D4, 0x5}, - {NULL, 0x3}, -}; -ALIGNED(4) const u8 sUnknown_80E68D4[] = _("{CENTER_ALIGN}someone{APOSTROPHE}s storage space was full."); -ALIGNED(4) const u8 sUnknown_80E68FC[] = _("{CENTER_ALIGN}An item could not be transferred because"); -ALIGNED(4) const u8 sUnknown_80E6928[] = _("{CENTER_ALIGN}#C2Error!{END_COLOR_TEXT_1} "); - -const UnkTextStruct2 gUnknown_80E6938 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x03, 0x08, - 0x18, 0x05, - 0x05, 0x00, - NULL -}; - -const u8 sUnknown_80E6988[]; -const u8 sUnknown_80E6970[]; -const MenuItem gUnknown_80E6950[4] = { - {sUnknown_80E6928, 0x5}, - {sUnknown_80E6988, 0x5}, - {sUnknown_80E6970, 0x5}, - {NULL, 0x3}, -}; -ALIGNED(4) const u8 sUnknown_80E6970[] = _("{CENTER_ALIGN}Please check again."); -ALIGNED(4) const u8 sUnknown_80E6988[] = _("{CENTER_ALIGN}This {COLOR_1 LIGHT_BLUE}SOS Mail{END_COLOR_TEXT_1} can{APOSTROPHE}t be used."); - -const UnkTextStruct2 gUnknown_80E69B0 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x03, 0x08, - 0x18, 0x05, - 0x05, 0x00, - NULL -}; - -const u8 sUnknown_80E69E8[]; -const MenuItem gUnknown_80E69C8[4] = { - {sUnknown_80E6928, 0x5}, - {sUnknown_80E69E8, 0x5}, - {sUnknown_80E6970, 0x5}, - {NULL, 0x3}, -}; -ALIGNED(4) const u8 sUnknown_80E69E8[] = _("{CENTER_ALIGN}This {COLOR_1 LIGHT_BLUE}A-OK Mail{END_COLOR_TEXT_1} can{APOSTROPHE}t be used."); - -const UnkTextStruct2 gUnknown_80E6A10 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x03, 0x08, - 0x18, 0x05, - 0x05, 0x00, - NULL -}; - -const u8 sUnknown_80E6A48[]; -const MenuItem gUnknown_80E6A28[4] = { - {sUnknown_80E6928, 0x5}, - {sUnknown_80E6A48, 0x5}, - {sUnknown_80E6970, 0x5}, - {NULL, 0x3}, -}; -ALIGNED(4) const u8 sUnknown_80E6A48[] = _("{CENTER_ALIGN}This {COLOR_1 LIGHT_BLUE}Thank-You Mail{END_COLOR_TEXT_1} can{APOSTROPHE}t be used."); - -const UnkTextStruct2 gUnknown_80E6A74 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x03, 0x08, - 0x18, 0x05, - 0x05, 0x00, - NULL -}; - -const u8 sUnknown_80E6AC8[]; -const u8 sUnknown_80E6AAC[]; -const MenuItem gUnknown_80E6A8C[4] = { - {sUnknown_80E6928, 0x5}, - {sUnknown_80E6AC8, 0x5}, - {sUnknown_80E6AAC, 0x5}, - {NULL, 0x3}, -}; -ALIGNED(4) const u8 sUnknown_80E6AAC[] = _("{CENTER_ALIGN}It can{APOSTROPHE}t be received."); -ALIGNED(4) const u8 sUnknown_80E6AC8[] = _("{CENTER_ALIGN}There is no space for new mail."); - -const UnkTextStruct2 gUnknown_80E6AEC = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x03, 0x08, - 0x18, 0x05, - 0x05, 0x00, - NULL -}; - -const u8 sUnknown_80E6B4C[]; -const u8 sUnknown_80E6B24[]; -const MenuItem gUnknown_80E6B04[4] = { - {sUnknown_80E6928, 0x5}, - {sUnknown_80E6B4C, 0x5}, - {sUnknown_80E6B24, 0x5}, - {NULL, 0x3}, -}; -ALIGNED(4) const u8 sUnknown_80E6B24[] = _("{CENTER_ALIGN}You need to go further in the story."); -ALIGNED(4) const u8 sUnknown_80E6B4C[] = _("{CENTER_ALIGN}You may not go to that {COLOR_1 LIGHT_BLUE}dungeon{END_COLOR_TEXT_1} yet."); - -const UnkTextStruct2 gUnknown_80E6B78 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x03, 0x08, - 0x18, 0x05, - 0x05, 0x00, - NULL -}; - -const u8 sUnknown_80E6BC4[]; -const u8 sUnknown_80E6BB0[]; -const MenuItem gUnknown_80E6B90[4] = { - {sUnknown_80E6928, 0x5}, - {sUnknown_80E6BC4, 0x5}, - {sUnknown_80E6BB0, 0x5}, - {NULL, 0x3}, -}; -ALIGNED(4) const u8 sUnknown_80E6BB0[] = _("{CENTER_ALIGN}Please try again."); -ALIGNED(4) const u8 sUnknown_80E6BC4[] = _("{CENTER_ALIGN}There was a problem on your friend{APOSTROPHE}s end."); - -const UnkTextStruct2 gUnknown_80E6BF4 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x03, 0x08, - 0x18, 0x05, - 0x05, 0x00, - NULL -}; - -const u8 sUnknown_80E6C2C[]; -const MenuItem gUnknown_80E6C0C[4] = { - {sUnknown_80E6928, 0x5}, - {sUnknown_80E6C2C, 0x5}, - {sUnknown_80E6BB0, 0x5}, - {NULL, 0x3}, -}; -ALIGNED(4) const u8 sUnknown_80E6C2C[] = _("{CENTER_ALIGN}Your friend is not responding."); - -const UnkTextStruct2 gUnknown_80E6C50 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x03, 0x08, - 0x18, 0x05, - 0x05, 0x00, - NULL -}; - -const u8 sUnknown_80E6CA8[]; -const u8 sUnknown_80E6C88[]; -const MenuItem gUnknown_80E6C68[4] = { - {sUnknown_80E6734, 0x5}, - {sUnknown_80E6CA8, 0x5}, - {sUnknown_80E6C88, 0x5}, - {NULL, 0x3}, -}; -ALIGNED(4) const u8 sUnknown_80E6C88[] = _("{CENTER_ALIGN}went through successfully."); -ALIGNED(4) const u8 sUnknown_80E6CA8[] = _("{CENTER_ALIGN}The item exchange with your friend"); - - -const UnkTextStruct2 gUnknown_80E6CD0 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x03, 0x08, - 0x18, 0x05, - 0x05, 0x00, - NULL -}; - -const u8 sUnknown_80E6D2C[]; -const u8 sUnknown_80E6D08[]; -const MenuItem gUnknown_80E6CE8[4] = { - {sUnknown_80E65C4, 0x5}, - {sUnknown_80E6D2C, 0x5}, - {sUnknown_80E6D08, 0x5}, - {NULL, 0x3}, -}; -ALIGNED(4) const u8 sUnknown_80E6D08[] = _("{CENTER_ALIGN}you and your friend are ready."); -ALIGNED(4) const u8 sUnknown_80E6D2C[] = _("{CENTER_ALIGN}Please communicate only after both"); - -const UnkTextStruct2 gUnknown_80E6D54 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x03, 0x08, - 0x18, 0x05, - 0x05, 0x00, - NULL -}; - -const u8 sUnknown_80E6DB0[]; -const u8 sUnknown_80E6D8C[]; -const MenuItem gUnknown_80E6D6C[4] = { - {sUnknown_80E6928, 0x5}, - {sUnknown_80E6DB0, 0x5}, - {sUnknown_80E6D8C, 0x5}, - {NULL, 0x3}, -}; -ALIGNED(4) const u8 sUnknown_80E6D8C[] = _("{CENTER_ALIGN}connected. Please check again."); -ALIGNED(4) const u8 sUnknown_80E6DB0[] = _("{CENTER_ALIGN}An incorrect number of GBA systems are"); - -const UnkTextStruct2 gUnknown_80E6DDC = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x03, 0x08, - 0x18, 0x05, - 0x05, 0x00, - NULL -}; - -const u8 sUnknown_80E6E30[]; -const u8 sUnknown_80E6E14[]; -const MenuItem gUnknown_80E6DF4[4] = { - {sUnknown_80E6928, 0x5}, - {sUnknown_80E6E30, 0x5}, - {sUnknown_80E6E14, 0x5}, - {NULL, 0x3}, -}; -ALIGNED(4) const u8 sUnknown_80E6E14[] = _("{CENTER_ALIGN}Please check it again."); -ALIGNED(4) const u8 sUnknown_80E6E30[] = _("{CENTER_ALIGN}Communication failed."); - -static const u8 fill0[] = "pksdir0"; -ALIGNED(4) const u8 gUnknown_80E6E50[] = "CHUNSOFT"; -static const u8 fill1[] = "pksdir0"; -static const u8 fill2[] = "pksdir0"; -static const u8 fill3[] = "pksdir0"; -static const u8 fill4[] = "pksdir0"; - -extern void sub_8037400(void); -extern void sub_80376CC(); - -extern u32 sub_8037C10(u32); -extern void sub_8037748(void); -extern void sub_80371B8(void); -extern void sub_8037900(void); -extern u32 sub_8037798(void); -extern void TransferBGPaletteBuffer(); -extern void xxx_call_update_bg_vram(); -extern void xxx_call_update_bg_sound_input(); -extern s32 sub_8037D64(u32 mode, void *, void *); -extern s32 sub_80381F4(u32 mode, void *, void *); -extern void sub_8037810(void); -extern s32 sub_8037B28(u32); -s32 sub_8035D3C(void); -extern s32 sub_8035D74(void); -extern void xxx_draw_string_80144C4(void); - -void sub_8036FDC(s32 param_1) -{ - int index1; - int index2; - - ResetUnusedInputStruct(); - sub_800641C(NULL, TRUE, TRUE); - ResetSprites(FALSE); - if (gUnknown_203B35C == NULL) { - gUnknown_203B35C = MemoryAlloc(sizeof(struct unkStruct_203B35C),8); - MemoryFill8((u8 *)gUnknown_203B35C,0,sizeof(struct unkStruct_203B35C)); - } - - gUnknown_203B35C->unk0 = param_1; - gUnknown_203B35C->linkStatus = COMMS_GOOD; - gUnknown_203B35C->state = 0; - for(index1 = 0; index1 < 2; index1++) - { - gUnknown_203B35C->unk1BC[index1].numItems = 0; - gUnknown_203B35C->unk1BC[index1].itemIndex.itemIndex_u8 = ITEM_NOTHING; - } - for(index2 = 0; index2 < 4; index2++){ - gUnknown_203B35C->unk15C[index2] = gUnknown_80E653C; - } - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B35C->unk15C, TRUE, TRUE); - SetMenuItems(gUnknown_203B35C->unk1C,gUnknown_203B35C->unk15C,0,&gUnknown_80E6CD0,gUnknown_80E6CE8,0,6,0); - sub_8035CF4(gUnknown_203B35C->unk1C,0,TRUE); - sub_80376CC(); -} - -void sub_80370D4(void) -{ - if(gUnknown_203B35C != NULL) - { - MemoryFree(gUnknown_203B35C); - gUnknown_203B35C = NULL; - } -} - -// Unused -u32 sub_80370F0(void) -{ - u32 nextMenu; - int local_10; - - local_10 = 4; - nextMenu = MENU_NO_SCREEN_CHANGE; - switch(gUnknown_203B35C->state){ - case 0: - if (sub_80130A8(&gUnknown_203B35C->unk1C[0]) == '\0') { - sub_8013114(&gUnknown_203B35C->unk1C[0],&local_10); - } - if (local_10 == 4) { - sub_8037748(); - } - else { - gUnknown_203B35C->state = 1; - sub_8037900(); - } - break; - case 1: - sub_80376CC(); - gUnknown_203B35C->state = 2; - sub_80371B8(); - break; - case 2: - if (((gUnknown_203B35C->unk0 < 2) && (gUnknown_203B35C->linkStatus == COMMS_GOOD)) && (sub_8037C10(0) == 0) ) { - return 0x29; // TODO: what screen is this? - } - else { - if (sub_80130A8(&gUnknown_203B35C->unk1C[0]) == '\0') { - sub_8013114(&gUnknown_203B35C->unk1C[0],&local_10); - } - if (local_10 != 4) { - PlayMenuSoundEffect(3); - nextMenu = sub_8037798(); - gUnknown_203B35C->state = 4; - } - sub_8037748(); - } - break; - } - return nextMenu; -} - -void sub_80371B8(void) -{ - struct unkStruct_8035D94 *item; - const MenuItem *MenuItems; - const UnkTextStruct2 *puVar5; - - puVar5 = NULL; - MenuItems = NULL; - sub_8037400(); - if ((gUnknown_203B35C->unk0 < 2) &&(gUnknown_203B35C->linkStatus == COMMS_GOOD)) { - if (sub_8037C10(0) != 0) { - sub_80376CC(); - sub_8035CC0(gUnknown_203B35C->unk15C,0); - // Success! - // The item exchange with your friend - // went through successfully - SetMenuItems(gUnknown_203B35C->unk1C, gUnknown_203B35C->unk15C, 0, &gUnknown_80E6C50, gUnknown_80E6C68, 0, 6, 0); - sub_8035CF4(gUnknown_203B35C->unk1C, 0, TRUE); - } - } - else { - sub_80376CC(); - sub_8035CC0(gUnknown_203B35C->unk15C, 0); - switch(gUnknown_203B35C->linkStatus) { - case 0: - puVar5 = &gUnknown_80E66BC; - MenuItems = gUnknown_80E66D4; - break; - case 3: - puVar5 = &gUnknown_80E6D54; - MenuItems = gUnknown_80E6D6C; - break; - case 2: - puVar5 = &gUnknown_80E6DDC; - MenuItems = gUnknown_80E6DF4; - break; - case 4: - puVar5 = &gUnknown_80E67D4; - MenuItems = gUnknown_80E67EC; - break; - case 1: - case 5: - puVar5 = &gUnknown_80E6748; - MenuItems = gUnknown_80E6760; - break; - case 6: - puVar5 = &gUnknown_80E689C; - MenuItems = gUnknown_80E68B4; - break; - case 7: - puVar5 = &gUnknown_80E6938; - MenuItems = gUnknown_80E6950; - break; - case 9: - puVar5 = &gUnknown_80E69B0; - MenuItems = gUnknown_80E69C8; - break; - case 0xb: - puVar5 = &gUnknown_80E6A10; - MenuItems = gUnknown_80E6A28; - break; - case 0xd: - puVar5 = &gUnknown_80E6A74; - MenuItems = gUnknown_80E6A8C; - break; - case 0xe: - puVar5 = &gUnknown_80E6B78; - // Error, there was a problem on your friend's end - MenuItems = gUnknown_80E6B90; - break; - case 0xf: - puVar5 = &gUnknown_80E6BF4; - // Error, your friend is not responding - MenuItems = gUnknown_80E6C0C; - break; - } - SetMenuItems(gUnknown_203B35C->unk1C, gUnknown_203B35C->unk15C, 0, puVar5, MenuItems, 0, 6, 0); - sub_8035CF4(gUnknown_203B35C->unk1C, 0, TRUE); - if ((gUnknown_203B35C->linkStatus != COMMS_GOOD) && (gUnknown_203B35C->unk0 == 0) && - (item = sub_8035D94(), item->itemIndex.itemIndex_u8 != ITEM_NOTHING) && (item->numItems != 0)) { - gTeamInventoryRef->teamStorage[item->itemIndex.itemIndex_u8] += item->numItems; - } - } -} - -void sub_80373C4(void) -{ - sub_8005838(NULL, 0); - sub_80060EC(); - sub_800CB20(); - LoadBufferedInputs(); - TransferBGPaletteBuffer(); - xxx_call_update_bg_vram(); - sub_8009908(); - xxx_call_update_bg_sound_input(); - ResetSprites(FALSE); -} - -UNUSED static struct unkStruct_203B35C *sub_80373F4(void) -{ - return gUnknown_203B35C; -} - -void sub_8037400(void) -{ - u8 mailIndex; - void *r5; - void *r6; - s32 species; - struct unkStruct_8035D94 *puVar5; - struct unkStruct_8035D94 *puVar6; - - r6 = NULL; - r5 = NULL; - sub_8037810(); - sub_8011830(); - gUnknown_203B35C->linkStatus = sub_8037B28(gUnknown_203B35C->unk0); - if (gUnknown_203B35C->linkStatus == COMMS_GOOD) - { - switch(gUnknown_203B35C->unk0) { - case 10: - r6 = &gUnknown_203B35C->unk39C; - r5 = &gUnknown_203B35C->unk450; - break; - case 9: - r6 = &gUnknown_203B35C->unk39C; - r5 = &gUnknown_203B35C->unk450; - break; - case 0: - { -#ifndef NONMATCING - register u32 temp1 asm("r1"); -#else - u32 temp1; -#endif - puVar5 = sub_8035D94(); - puVar6 = &gUnknown_203B35C->unk1BC[0]; - temp1 = puVar5->numItems; - puVar6->itemIndex.itemIndex_u32 = puVar5->itemIndex.itemIndex_u32; - puVar6->numItems = temp1; - } - r6 = &gUnknown_203B35C->unk1BC[0]; - r5 = &gUnknown_203B35C->unk1BC[1]; - break; - case 1: - r6 = &gUnknown_203B35C->unk1BC[0]; - r5 = &gUnknown_203B35C->unk1BC[1]; - break; - case 7: - r6 = &gUnknown_203B35C->unk1CC; - r5 = &gUnknown_203B35C->unk1FC; - break; - case 6: - mailIndex = sub_8035D74(); - gUnknown_203B35C->unk1CC = *GetMailatIndex(mailIndex); - r6 = &gUnknown_203B35C->unk1CC; - r5 = &gUnknown_203B35C->unk1FC; - break; - case 3: - r6 = &gUnknown_203B35C->unk22C; - r5 = &gUnknown_203B35C->unk25C; - break; - case 2: - mailIndex = sub_8035D74(); - gUnknown_203B35C->unk22C = *GetMailatIndex(mailIndex); - r6 = &gUnknown_203B35C->unk22C; - r5 = &gUnknown_203B35C->unk25C; - break; - case 4: - mailIndex = sub_8035D74(); - gUnknown_203B35C->unk28C = *GetMailatIndex(mailIndex); - if( sub_8035D3C() << 0x10 != 0xffff0000) - { - species = sub_8035D3C(); - gUnknown_203B35C->unk2BC = gRecruitedPokemonRef->pokemon[(s16)species]; - } - r6 = &gUnknown_203B35C->unk28C; - r5 = &gUnknown_203B35C->unk314; - break; - case 5: - r6 = &gUnknown_203B35C->unk28C; - r5 = &gUnknown_203B35C->unk314; - break; - } - gUnknown_203B35C->linkStatus = sub_8037D64(gUnknown_203B35C->unk0, r6, r5); - - if (gUnknown_203B35C->linkStatus == COMMS_GOOD) - { - switch(gUnknown_203B35C->unk0) { - case 0: - case 1: - r6 = &gUnknown_203B35C->unk1BC[0]; - r5 = &gUnknown_203B35C->unk1BC[1]; - break; - case 2: - case 3: - r6 = &gUnknown_203B35C->unk22C; - r5 = &gUnknown_203B35C->unk25C; - break; - case 4: - case 5: - r6 = &gUnknown_203B35C->unk28C; - r5 = &gUnknown_203B35C->unk314; - break; - case 6: - case 7: - r6 = &gUnknown_203B35C->unk1CC; - r5 = &gUnknown_203B35C->unk1FC; - break; - case 9: - case 10: - r6 = &gUnknown_203B35C->unk39C; - r5 = &gUnknown_203B35C->unk450; - break; - } - gUnknown_203B35C->linkStatus = sub_80381F4(gUnknown_203B35C->unk0, r6, r5); - } - } - xxx_call_start_bg_music(); -} - -void sub_80376CC(void) -{ -#ifdef NONMATCHING - u32 r0; - u32 r2; -#else - register u32 r0 asm("r0"); - register u32 r2 asm("r2"); -#endif - u32 r1; - u32 r4; - - r1 = gUnknown_203B35C->unkC.attrib1; - r0 = (u16)~SPRITEOAM_MASK_AFFINEMODE1; - r0 &= r1; - - r0 &= (u16)~SPRITEOAM_MASK_AFFINEMODE2; - - r0 &= (u16)~SPRITEOAM_MASK_OBJMODE; - - r0 &= (u16)~SPRITEOAM_MASK_MOSAIC; - - r0 &= (u16)~SPRITEOAM_MASK_BPP; - - r2 = 1 << SPRITEOAM_SHIFT_SHAPE; - r0 &= (u16)~SPRITEOAM_MASK_SHAPE; - r0 |= r2; - - gUnknown_203B35C->unkC.attrib1 = r0; - - r2 = 0x3F0 << SPRITEOAM_SHIFT_TILENUM; - r1 = gUnknown_203B35C->unkC.attrib3; - r0 = (u16)~SPRITEOAM_MASK_TILENUM; - r0 &= r1; - r0 |= r2; - - r0 &= (u16)~SPRITEOAM_MASK_PRIORITY; - - r2 = (u16)~SPRITEOAM_MASK_UNK6_4; - - r4 = 15 << SPRITEOAM_SHIFT_PALETTENUM; - r0 &= (u16)~SPRITEOAM_MASK_PALETTENUM; - r0 |= r4; - - gUnknown_203B35C->unkC.attrib3 = r0; - - r0 = 0; // Set x/matrixNum/size to 0 - gUnknown_203B35C->unkC.attrib2 = r0; - - r1 = 192 << SPRITEOAM_SHIFT_UNK6_4; - r0 = gUnknown_203B35C->unkC.unk6; - r2 &= r0; - r2 |= r1; - gUnknown_203B35C->unkC.unk6 = r2; -} - -void sub_8037748(void) -{ - u16 temp2; - - gUnknown_203B35C->unkC.attrib2 &= ~SPRITEOAM_MASK_X; // Clear x - gUnknown_203B35C->unkC.attrib2 |= 112; // Set x to 112 - - temp2 = 104 << SPRITEOAM_SHIFT_UNK6_4; - gUnknown_203B35C->unkC.unk6 &= ~SPRITEOAM_MASK_UNK6_4; - gUnknown_203B35C->unkC.unk6 |= temp2; - - if ((gUnknown_203B35C->unk14 & 8) != 0) - AddSprite(&gUnknown_203B35C->unkC, 0x100, NULL, NULL); - - xxx_draw_string_80144C4(); - gUnknown_203B35C->unk14++; -} - -u32 sub_8037798(void) -{ - u32 nextMenu = MENU_NO_SCREEN_CHANGE; - switch(gUnknown_203B35C->unk0) { - case 0: - case 1: - nextMenu = MENU_MAIN_SCREEN; - break; - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - nextMenu = (gUnknown_203B35C->linkStatus == COMMS_GOOD) ? 0x2A : MENU_MAIN_SCREEN; - break; - case 9: - case 10: - nextMenu = (gUnknown_203B35C->linkStatus == COMMS_GOOD) ? 0x2B : MENU_WONDER_MAIL; - break; - } - return nextMenu; -} diff --git a/src/other_menus1.c b/src/other_menus1.c new file mode 100644 index 000000000..1c0b08674 --- /dev/null +++ b/src/other_menus1.c @@ -0,0 +1,448 @@ +#include "global.h" +#include "bg_palette_buffer.h" +#include "code_800558C.h" +#include "code_8009804.h" +#include "code_800C9CC.h" +#include "code_80118A4.h" +#include "constants/communication_error_codes.h" +#include "dungeon_global_data.h" +#include "input.h" +#include "items.h" +#include "memory.h" +#include "menu_input.h" +#include "other_menus1.h" +#include "sprite.h" +#include "text1.h" + +// TODO: MAKE STATIC WHEN other_menus1.s IS DED +EWRAM_DATA_2 unkStruct_203B35C *sUnknown_203B35C = {0}; + +#include "data/other_menus1.h" + +extern void sub_8037400(void); +extern void sub_80376CC(); + +extern u32 sub_8037C10(u32); +extern void sub_8037748(void); +extern void sub_80371B8(void); +extern void sub_8037900(void); +extern u32 sub_8037798(void); +extern void xxx_call_update_bg_vram(); +extern void xxx_call_update_bg_sound_input(); +extern s32 sub_8037D64(u32 mode, void *, void *); +extern s32 sub_80381F4(u32 mode, void *, void *); +extern void sub_8037810(void); +extern s32 sub_8037B28(u32); +s32 sub_8035D3C(void); +extern s32 sub_8035D74(void); +extern void xxx_draw_string_80144C4(void); + +void sub_8036FDC(s32 param_1) +{ + s32 index1; + s32 index2; + + ResetUnusedInputStruct(); + sub_800641C(NULL, TRUE, TRUE); + ResetSprites(FALSE); + + if (sUnknown_203B35C == NULL) { + sUnknown_203B35C = MemoryAlloc(sizeof(unkStruct_203B35C), 8); + MemoryFill8((u8 *)sUnknown_203B35C, 0, sizeof(unkStruct_203B35C)); + } + + sUnknown_203B35C->unk0 = param_1; + sUnknown_203B35C->linkStatus = COMMS_GOOD; + sUnknown_203B35C->state = 0; + + for (index1 = 0; index1 < 2; index1++) { + sUnknown_203B35C->unk1BC[index1].numItems = 0; + sUnknown_203B35C->unk1BC[index1].itemIndex.itemIndex_u8 = ITEM_NOTHING; + } + + for (index2 = 0; index2 < 4; index2++) + sUnknown_203B35C->unk15C[index2] = sUnknown_80E653C; + + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B35C->unk15C, TRUE, TRUE); + SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, &sUnknown_80E6CD0, sUnknown_80E6CE8, 0, 6, 0); + sub_8035CF4(sUnknown_203B35C->unk1C, 0, TRUE); + sub_80376CC(); +} + +void sub_80370D4(void) +{ + if (sUnknown_203B35C != NULL) { + MemoryFree(sUnknown_203B35C); + sUnknown_203B35C = NULL; + } +} + +UNUSED static u32 sub_80370F0(void) +{ + u32 nextMenu; + s32 local_10; + + local_10 = 4; + nextMenu = MENU_NO_SCREEN_CHANGE; + + switch (sUnknown_203B35C->state) { + case 0: + if (!sub_80130A8(&sUnknown_203B35C->unk1C[0])) + sub_8013114(&sUnknown_203B35C->unk1C[0],&local_10); + + if (local_10 == 4) + sub_8037748(); + else { + sUnknown_203B35C->state = 1; + sub_8037900(); + } + break; + case 1: + sub_80376CC(); + sUnknown_203B35C->state = 2; + sub_80371B8(); + break; + case 2: + if (sUnknown_203B35C->unk0 < 2 && sUnknown_203B35C->linkStatus == COMMS_GOOD && !sub_8037C10(0)) + return 41; // TODO: what screen is this? + + if (!sub_80130A8(&sUnknown_203B35C->unk1C[0])) + sub_8013114(&sUnknown_203B35C->unk1C[0], &local_10); + + if (local_10 != 4) { + PlayMenuSoundEffect(3); + nextMenu = sub_8037798(); + sUnknown_203B35C->state = 4; + } + + sub_8037748(); + break; + } + return nextMenu; +} + +void sub_80371B8(void) +{ + unkStruct_8035D94 *item; + const MenuItem *MenuItems; + const UnkTextStruct2 *puVar5; + + puVar5 = NULL; + MenuItems = NULL; + sub_8037400(); + + if (sUnknown_203B35C->unk0 < 2 && sUnknown_203B35C->linkStatus == COMMS_GOOD) { + if (sub_8037C10(0)) { + sub_80376CC(); + sub_8035CC0(sUnknown_203B35C->unk15C, 0); + // Success! + // The item exchange with your friend + // went through successfully + SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, &sUnknown_80E6C50, sUnknown_80E6C68, 0, 6, 0); + sub_8035CF4(sUnknown_203B35C->unk1C, 0, TRUE); + } + } + else { + sub_80376CC(); + sub_8035CC0(sUnknown_203B35C->unk15C, 0); + + switch (sUnknown_203B35C->linkStatus) { + case 0: + puVar5 = &sUnknown_80E66BC; + MenuItems = sUnknown_80E66D4; + break; + case 3: + puVar5 = &sUnknown_80E6D54; + MenuItems = sUnknown_80E6D6C; + break; + case 2: + puVar5 = &sUnknown_80E6DDC; + MenuItems = sUnknown_80E6DF4; + break; + case 4: + puVar5 = &sUnknown_80E67D4; + MenuItems = sUnknown_80E67EC; + break; + case 1: + case 5: + puVar5 = &sUnknown_80E6748; + MenuItems = sUnknown_80E6760; + break; + case 6: + puVar5 = &sUnknown_80E689C; + MenuItems = sUnknown_80E68B4; + break; + case 7: + puVar5 = &sUnknown_80E6938; + MenuItems = sUnknown_80E6950; + break; + case 9: + puVar5 = &sUnknown_80E69B0; + MenuItems = sUnknown_80E69C8; + break; + case 11: + puVar5 = &sUnknown_80E6A10; + MenuItems = sUnknown_80E6A28; + break; + case 13: + puVar5 = &sUnknown_80E6A74; + MenuItems = sUnknown_80E6A8C; + break; + case 14: + puVar5 = &sUnknown_80E6B78; + // Error, there was a problem on your friend's end + MenuItems = sUnknown_80E6B90; + break; + case 15: + puVar5 = &sUnknown_80E6BF4; + // Error, your friend is not responding + MenuItems = sUnknown_80E6C0C; + break; + } + + SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, puVar5, MenuItems, 0, 6, 0); + sub_8035CF4(sUnknown_203B35C->unk1C, 0, TRUE); + + if (sUnknown_203B35C->linkStatus != COMMS_GOOD && sUnknown_203B35C->unk0 == 0) { + item = sub_8035D94(); + if (item->itemIndex.itemIndex_u8 != ITEM_NOTHING && item->numItems != 0) + gTeamInventoryRef->teamStorage[item->itemIndex.itemIndex_u8] += item->numItems; + } + } +} + +void sub_80373C4(void) +{ + sub_8005838(NULL, 0); + sub_80060EC(); + sub_800CB20(); + LoadBufferedInputs(); + TransferBGPaletteBuffer(); + xxx_call_update_bg_vram(); + sub_8009908(); + xxx_call_update_bg_sound_input(); + ResetSprites(FALSE); +} + +UNUSED static unkStruct_203B35C *sub_80373F4(void) +{ + return sUnknown_203B35C; +} + +void sub_8037400(void) +{ + u8 mailIndex; + void *r5; + void *r6; + s32 species; + unkStruct_8035D94 *puVar5; + unkStruct_8035D94 *puVar6; + + r6 = NULL; + r5 = NULL; + sub_8037810(); + sub_8011830(); + sUnknown_203B35C->linkStatus = sub_8037B28(sUnknown_203B35C->unk0); + if (sUnknown_203B35C->linkStatus == COMMS_GOOD) { + switch (sUnknown_203B35C->unk0) { + case 10: + r6 = &sUnknown_203B35C->unk39C; + r5 = &sUnknown_203B35C->unk450; + break; + case 9: + r6 = &sUnknown_203B35C->unk39C; + r5 = &sUnknown_203B35C->unk450; + break; + case 0: + { + #ifndef NONMATCHING + register u32 temp1 asm("r1"); + #else + u32 temp1; + #endif + puVar5 = sub_8035D94(); + puVar6 = &sUnknown_203B35C->unk1BC[0]; + temp1 = puVar5->numItems; + puVar6->itemIndex.itemIndex_u32 = puVar5->itemIndex.itemIndex_u32; + puVar6->numItems = temp1; + } + r6 = &sUnknown_203B35C->unk1BC[0]; + r5 = &sUnknown_203B35C->unk1BC[1]; + break; + case 1: + r6 = &sUnknown_203B35C->unk1BC[0]; + r5 = &sUnknown_203B35C->unk1BC[1]; + break; + case 7: + r6 = &sUnknown_203B35C->unk1CC; + r5 = &sUnknown_203B35C->unk1FC; + break; + case 6: + mailIndex = sub_8035D74(); + sUnknown_203B35C->unk1CC = *GetMailatIndex(mailIndex); + r6 = &sUnknown_203B35C->unk1CC; + r5 = &sUnknown_203B35C->unk1FC; + break; + case 3: + r6 = &sUnknown_203B35C->unk22C; + r5 = &sUnknown_203B35C->unk25C; + break; + case 2: + mailIndex = sub_8035D74(); + sUnknown_203B35C->unk22C = *GetMailatIndex(mailIndex); + r6 = &sUnknown_203B35C->unk22C; + r5 = &sUnknown_203B35C->unk25C; + break; + case 4: + mailIndex = sub_8035D74(); + sUnknown_203B35C->unk28C = *GetMailatIndex(mailIndex); + // TODO: int16 memes? + if (sub_8035D3C() << 0x10 != 0xffff0000) { + species = sub_8035D3C(); + sUnknown_203B35C->unk2BC = gRecruitedPokemonRef->pokemon[(s16)species]; + } + r6 = &sUnknown_203B35C->unk28C; + r5 = &sUnknown_203B35C->unk314; + break; + case 5: + r6 = &sUnknown_203B35C->unk28C; + r5 = &sUnknown_203B35C->unk314; + break; + } + + sUnknown_203B35C->linkStatus = sub_8037D64(sUnknown_203B35C->unk0, r6, r5); + + if (sUnknown_203B35C->linkStatus == COMMS_GOOD) { + switch (sUnknown_203B35C->unk0) { + case 0: + case 1: + r6 = &sUnknown_203B35C->unk1BC[0]; + r5 = &sUnknown_203B35C->unk1BC[1]; + break; + case 2: + case 3: + r6 = &sUnknown_203B35C->unk22C; + r5 = &sUnknown_203B35C->unk25C; + break; + case 4: + case 5: + r6 = &sUnknown_203B35C->unk28C; + r5 = &sUnknown_203B35C->unk314; + break; + case 6: + case 7: + r6 = &sUnknown_203B35C->unk1CC; + r5 = &sUnknown_203B35C->unk1FC; + break; + case 9: + case 10: + r6 = &sUnknown_203B35C->unk39C; + r5 = &sUnknown_203B35C->unk450; + break; + } + + sUnknown_203B35C->linkStatus = sub_80381F4(sUnknown_203B35C->unk0, r6, r5); + } + } + + xxx_call_start_bg_music(); +} + +void sub_80376CC(void) +{ +#ifdef NONMATCHING + u32 r0; + u32 r2; +#else + register u32 r0 asm("r0"); + register u32 r2 asm("r2"); +#endif + u32 r1; + u32 r4; + + r1 = sUnknown_203B35C->unkC.attrib1; + r0 = (u16)~SPRITEOAM_MASK_AFFINEMODE1; + r0 &= r1; + + r0 &= (u16)~SPRITEOAM_MASK_AFFINEMODE2; + + r0 &= (u16)~SPRITEOAM_MASK_OBJMODE; + + r0 &= (u16)~SPRITEOAM_MASK_MOSAIC; + + r0 &= (u16)~SPRITEOAM_MASK_BPP; + + r2 = 1 << SPRITEOAM_SHIFT_SHAPE; + r0 &= (u16)~SPRITEOAM_MASK_SHAPE; + r0 |= r2; + + sUnknown_203B35C->unkC.attrib1 = r0; + + r2 = 0x3F0 << SPRITEOAM_SHIFT_TILENUM; + r1 = sUnknown_203B35C->unkC.attrib3; + r0 = (u16)~SPRITEOAM_MASK_TILENUM; + r0 &= r1; + r0 |= r2; + + r0 &= (u16)~SPRITEOAM_MASK_PRIORITY; + + r2 = (u16)~SPRITEOAM_MASK_UNK6_4; + + r4 = 15 << SPRITEOAM_SHIFT_PALETTENUM; + r0 &= (u16)~SPRITEOAM_MASK_PALETTENUM; + r0 |= r4; + + sUnknown_203B35C->unkC.attrib3 = r0; + + r0 = 0; // Set x/matrixNum/size to 0 + sUnknown_203B35C->unkC.attrib2 = r0; + + r1 = 192 << SPRITEOAM_SHIFT_UNK6_4; + r0 = sUnknown_203B35C->unkC.unk6; + r2 &= r0; + r2 |= r1; + sUnknown_203B35C->unkC.unk6 = r2; +} + +void sub_8037748(void) +{ + u16 temp2; + + sUnknown_203B35C->unkC.attrib2 &= ~SPRITEOAM_MASK_X; // Clear x + sUnknown_203B35C->unkC.attrib2 |= 112; // Set x to 112 + + temp2 = 104 << SPRITEOAM_SHIFT_UNK6_4; + sUnknown_203B35C->unkC.unk6 &= ~SPRITEOAM_MASK_UNK6_4; + sUnknown_203B35C->unkC.unk6 |= temp2; + + if ((sUnknown_203B35C->unk14 & 8) != 0) + AddSprite(&sUnknown_203B35C->unkC, 0x100, NULL, NULL); + + xxx_draw_string_80144C4(); + sUnknown_203B35C->unk14++; +} + +u32 sub_8037798(void) +{ + u32 nextMenu = MENU_NO_SCREEN_CHANGE; + switch (sUnknown_203B35C->unk0) { + case 0: + case 1: + nextMenu = MENU_MAIN_SCREEN; + break; + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + nextMenu = (sUnknown_203B35C->linkStatus == COMMS_GOOD) ? 42 : MENU_MAIN_SCREEN; + break; + case 9: + case 10: + nextMenu = (sUnknown_203B35C->linkStatus == COMMS_GOOD) ? 43 : MENU_WONDER_MAIL; + break; + } + return nextMenu; +} diff --git a/src/other_menus_1.c b/src/other_menus2.c similarity index 94% rename from src/other_menus_1.c rename to src/other_menus2.c index e5db8299c..76e49dd10 100644 --- a/src/other_menus_1.c +++ b/src/other_menus2.c @@ -1,17 +1,22 @@ #include "global.h" +#include "code_8094F88.h" #include "constants/communication_error_codes.h" #include "constants/dungeon.h" #include "dungeon_global_data.h" -#include "pokemon.h" -#include "code_8094F88.h" -#include "save.h" - #include "main_menu.h" #include "memory.h" +#include "pokemon.h" +#include "save.h" +// rescue_password_menu.c extern s32 gCommsTimeout; // Counts to 100 and then errors if other player hasn't connected -extern s32 gUnknown_202EC48; + extern u32 gUnknown_202EC40[2]; +extern s32 gUnknown_202EC48; + +extern struct UnkStruct_203B184 *gUnknown_203B184; + +#include "data/other_menus2.h" extern void sub_800D494(void); extern s32 sub_800D33C(void); @@ -22,7 +27,6 @@ extern void sub_800D59C(s32 *, u32); extern void sub_800D570(void); extern void sub_800D510(void); extern u8 sub_800D588(void); -extern struct UnkStruct_203B184 *gUnknown_203B184; extern void sub_800D670(u32, s32 *, u32); extern void sub_800D68C(u32); @@ -63,7 +67,7 @@ void sub_8037C44(s32 mode, void *data) switch(mode) { case 0: case 1: - sub_800D59C(data, sizeof(struct unkStruct_8035D94)); + sub_800D59C(data, sizeof(unkStruct_8035D94)); break; case 2: case 3: @@ -88,8 +92,8 @@ void sub_8037CC4(s32 mode, void *param_2, void *param_3) { case 0: case 1: - sub_800D670(0, param_2, sizeof(struct unkStruct_8035D94)); - sub_800D670(1, param_3, sizeof(struct unkStruct_8035D94)); + sub_800D670(0, param_2, sizeof(unkStruct_8035D94)); + sub_800D670(1, param_3, sizeof(unkStruct_8035D94)); break; case 2: case 3: @@ -105,8 +109,8 @@ void sub_8037CC4(s32 mode, void *param_2, void *param_3) break; case 9: case 10: - sub_800D670(0, param_2, 0xb4); - sub_800D670(1, param_3, 0xb4); + sub_800D670(0, param_2, 180); + sub_800D670(1, param_3, 180); break; } } @@ -175,10 +179,10 @@ s32 sub_8037DF0(void) return linkStatus; } -void sub_8037E38(struct unkStruct_8035D94 *param_1,struct unkStruct_8035D94 *param_2) +void sub_8037E38(unkStruct_8035D94 *param_1,unkStruct_8035D94 *param_2) { - struct unkStruct_8035D94 *r3; - struct unkStruct_8035D94 *r4; + unkStruct_8035D94 *r3; + unkStruct_8035D94 *r4; u32 load; r4 = sub_800D588() == 0 ? param_2 : param_1; @@ -208,7 +212,8 @@ void sub_8037E90(unkStruct_203B480 *param_1, unkStruct_203B480 *param_2) } void nullsub_53(void *param_1, void *param_2) -{} +{ +} void sub_8037EBC(WonderMailStruct_203B2C0_sub *param_1, WonderMailStruct_203B2C0_sub *param_2) { unkStruct_203B480 *mail; @@ -245,7 +250,7 @@ void sub_8037EBC(WonderMailStruct_203B2C0_sub *param_1, WonderMailStruct_203B2C void sub_8037F4C(unkStruct_203B480 *param_1, unkStruct_203B480 *param_2) { unkStruct_203B480 *mail; - struct MainMenu *mainMenu; + MainMenu *mainMenu; if(sub_800D588() == 0) { @@ -284,12 +289,12 @@ void sub_8037F9C(u32 mode, void *param_2, void *param_3) } } -s32 sub_8038014(struct unkStruct_8035D94 *param_1,struct unkStruct_8035D94 *param_2) +s32 sub_8038014(unkStruct_8035D94 *param_1,unkStruct_8035D94 *param_2) { s32 linkStatus; s32 r2; - struct unkStruct_8035D94 *r3; - struct unkStruct_8035D94 *r4; + unkStruct_8035D94 *r3; + unkStruct_8035D94 *r4; r4 = sub_800D588() == 0 ? param_2 : param_1; r3 = sub_800D588() == 0 ? param_1 : param_2; @@ -474,4 +479,4 @@ _start: _end: sub_800D520(); return linkStatus; -} +} \ No newline at end of file diff --git a/src/rescue_password_menu.c b/src/rescue_password_menu.c index 60ed4594b..6eedd34b8 100644 --- a/src/rescue_password_menu.c +++ b/src/rescue_password_menu.c @@ -347,7 +347,7 @@ s32 UpdateRescuePasswordMenu(void) unkStruct_203B480 *mailPtr1; unkStruct_203B480 *mailPtr2; u32 iVar7; - struct MainMenu *mainMenuPtr; + MainMenu *mainMenuPtr; s32 nextMenu; unkStruct_203B480 mail; u32 menuAction; diff --git a/src/save_menu.c b/src/save_menu.c index 8d77a11df..9a6ba1cf8 100644 --- a/src/save_menu.c +++ b/src/save_menu.c @@ -173,7 +173,7 @@ void CleanSaveMenu(void) s32 UpdateSaveMenu(void) { int saveStatus; - struct MainMenu *mainMenu; + MainMenu *mainMenu; u32 menu; u32 uStack_18; u32 action; diff --git a/src/trade_items_menu.c b/src/trade_items_menu.c index 5020b14c0..fe6055168 100644 --- a/src/trade_items_menu.c +++ b/src/trade_items_menu.c @@ -1,88 +1,25 @@ #include "global.h" +#include "code_80118A4.h" #include "code_80130A8.h" #include "code_801B3C0.h" #include "code_801C620.h" #include "constants/communication_error_codes.h" +#include "cpu.h" #include "items.h" #include "main_menu.h" -#include "trade_items_menu.h" #include "memory.h" -#include "save_write.h" #include "menu_input.h" +#include "save_write.h" #include "text1.h" #include "text2.h" -#include "cpu.h" -#include "code_80118A4.h" - -EWRAM_DATA_2 struct TradeItemsMenu *gTradeItemsMenu = {0}; +#include "trade_items_menu.h" extern u32 gUnknown_202DE30; extern u8 gUnknown_202DE58[]; -const MenuItem gUnknown_80E60A0[3] = { - {"Send item", 1}, - {"Receive item", 2}, - {NULL, 0}, -}; +static EWRAM_DATA_2 struct TradeItemsMenu *sTradeItemsMenu = {0}; -const MenuItem gUnknown_80E60D4[3] = { - {"Send item", -1}, - {"Receive item", 2}, - {NULL, 0}, -}; - -const UnkTextStruct2 gUnknown_80E60EC = -{ - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x15, 0x04, - 0x06, 0x05, - 0x05, 0x00, - NULL -}; - -const MenuItem gUnknown_80E6104[4] = { - {"Confirm", 3}, - {"Info", 4}, - {"Cancel", 7}, - {NULL, 0}, -}; - -static const UnkTextStruct2 unused = -{ - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x16, 0x09, - 0x05, 0x03, - 0x03, 0x00, - NULL -}; - - -const MenuItem gUnknown_80E6154[3] = { - {"Yes", 5}, - {"No", 6}, - {NULL, 0}, -}; - -const UnkTextStruct2 gUnknown_80E6174 = -{ - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x15, 0x0D, - 0x06, 0x04, - 0x04, 0x00, - NULL -}; - - -const MenuItem gUnknown_80E618C[3] = { - {"Yes", 5}, - {"Cancel", 0}, - {NULL, 0}, -}; - -#include "data/trade_items.h" +#include "data/trade_items_menu.h" extern void sub_8035C1C(); @@ -115,48 +52,22 @@ void sub_8036A7C(); void sub_8036A54(); void WriteandExitTradeItemsMenu(); -// 11 was another saving too? -enum TradeItemsScreens -{ - TRADE_ITEMS_MAIN_MENU, - TRADE_ITEMS_SEND_ITEM, - TRADE_ITEMS_SEND_ITEM_SELECTION, - TRADE_ITEMS_SEND_ITEM_POPUP_MENU, - TRADE_ITEMS_SEND_ITEM_NUMBER, - TRADE_ITEMS_ITEM_INFO, - TRADE_ITEMS_SEND_ITEM_CONFIRM, - TRADE_ITEMS_RECEIVE_ITEM, - TRADE_ITEMS_IN_COMMUNICATION = 9, - TRADE_ITEMS_PREPARE_TRADE_SAVING = 15, - TRADE_ITEMS_PRE_EXIT = 17, - TRADE_ITEMS_EXIT = 18, -}; - -enum TradeItemsModes -{ - TRADE_ITEMS_SEND_ITEM_MODE, - TRADE_ITEMS_RECEIVE_ITEM_MODE -}; - - s32 CreateTradeItemsMenu(void) { - ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); - gTradeItemsMenu = MemoryAlloc(sizeof(struct TradeItemsMenu), 8); - MemoryFill8((u8 *)gTradeItemsMenu, 0, sizeof(struct TradeItemsMenu)); + sTradeItemsMenu = MemoryAlloc(sizeof(struct TradeItemsMenu), 8); + MemoryFill8((u8 *)sTradeItemsMenu, 0, sizeof(struct TradeItemsMenu)); sub_8035C1C(); sub_8035DA0(); - gTradeItemsMenu->fallbackState = 0x13; + sTradeItemsMenu->fallbackState = 0x13; SetTradeItemMenu(TRADE_ITEMS_MAIN_MENU); return 1; } s32 UpdateTradeItemsMenu(void) { - - switch(gTradeItemsMenu->currMenu) { + switch(sTradeItemsMenu->currMenu) { case TRADE_ITEMS_MAIN_MENU: TradeItem_MainMenu(); break; @@ -226,14 +137,14 @@ void TradeItem_MainMenu(void) { case 1: // Send Item - gTradeItemsMenu->itemMode = TRADE_ITEMS_SEND_ITEM_MODE; - gTradeItemsMenu->unk10 = 1; + sTradeItemsMenu->itemMode = TRADE_ITEMS_SEND_ITEM_MODE; + sTradeItemsMenu->unk10 = 1; SetTradeItemMenu(TRADE_ITEMS_SEND_ITEM); break; case 2: // Receive Item - gTradeItemsMenu->itemMode = TRADE_ITEMS_RECEIVE_ITEM_MODE; - gTradeItemsMenu->unk10 = 2; + sTradeItemsMenu->itemMode = TRADE_ITEMS_RECEIVE_ITEM_MODE; + sTradeItemsMenu->unk10 = 2; SetTradeItemMenu(TRADE_ITEMS_RECEIVE_ITEM); break; case 0: @@ -254,9 +165,9 @@ void sub_8036590(void) void sub_80365AC(void) { - gTradeItemsMenu->itemToSend.id = ITEM_NOTHING; - gTradeItemsMenu->itemToSend.quantity = 1; - gTradeItemsMenu->itemToSend.flags = 0; + sTradeItemsMenu->itemToSend.id = ITEM_NOTHING; + sTradeItemsMenu->itemToSend.quantity = 1; + sTradeItemsMenu->itemToSend.flags = 0; switch(sub_801CA08(TRUE)){ case 2: // Cancel @@ -265,18 +176,18 @@ void sub_80365AC(void) break; case 3: // Pop up menu with Confirm, Info, Cancel - gTradeItemsMenu->itemToSend.id = sub_801CB24(); - gTradeItemsMenu->itemToSend.quantity = 1; + sTradeItemsMenu->itemToSend.id = sub_801CB24(); + sTradeItemsMenu->itemToSend.quantity = 1; SetTradeItemMenu(TRADE_ITEMS_SEND_ITEM_POPUP_MENU); break; case 4: - gTradeItemsMenu->fallbackState = TRADE_ITEMS_SEND_ITEM_SELECTION; - gTradeItemsMenu->itemToSend.id = sub_801CB24(); - gTradeItemsMenu->itemToSend.quantity = 1; - sub_8006518(gTradeItemsMenu->unk1E4); + sTradeItemsMenu->fallbackState = TRADE_ITEMS_SEND_ITEM_SELECTION; + sTradeItemsMenu->itemToSend.id = sub_801CB24(); + sTradeItemsMenu->itemToSend.quantity = 1; + sub_8006518(sTradeItemsMenu->unk1E4); ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); - sub_801B3C0(&gTradeItemsMenu->itemToSend); + sub_801B3C0(&sTradeItemsMenu->itemToSend); SetTradeItemMenu(TRADE_ITEMS_ITEM_INFO); break; } @@ -288,25 +199,25 @@ void sub_8036674(void) menuAction = -1; sub_801CA08(FALSE); - if (sub_8012FD8(&gTradeItemsMenu->unk44[3]) == '\0') { - sub_8013114(&gTradeItemsMenu->unk44[3], &menuAction); + if (sub_8012FD8(&sTradeItemsMenu->unk44[3]) == '\0') { + sub_8013114(&sTradeItemsMenu->unk44[3], &menuAction); } switch(menuAction){ case 3: // confirm SetTradeItemMenu(TRADE_ITEMS_SEND_ITEM_NUMBER); break; case 4: // Info - gTradeItemsMenu->fallbackState = 0x13; - sub_8006518(gTradeItemsMenu->unk1E4); + sTradeItemsMenu->fallbackState = 0x13; + sub_8006518(sTradeItemsMenu->unk1E4); ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); - sub_801B3C0(&gTradeItemsMenu->itemToSend); + sub_801B3C0(&sTradeItemsMenu->itemToSend); SetTradeItemMenu(TRADE_ITEMS_ITEM_INFO); break; case 7: case 0: // Cancel - sub_8035CC0(gTradeItemsMenu->unk184, 3); + sub_8035CC0(sTradeItemsMenu->unk184, 3); sub_801CCD8(); SetTradeItemMenu(TRADE_ITEMS_SEND_ITEM_SELECTION); break; @@ -321,14 +232,14 @@ void sub_8036728(void) case 3: sub_801B450(); ResetUnusedInputStruct(); - sub_800641C(gTradeItemsMenu->unk1E4, TRUE, TRUE); + sub_800641C(sTradeItemsMenu->unk1E4, TRUE, TRUE); sub_801CB5C(TRUE); - if (gTradeItemsMenu->fallbackState == 0x13) { - sub_8035CF4(gTradeItemsMenu->unk44, 3, TRUE); + if (sTradeItemsMenu->fallbackState == 0x13) { + sub_8035CF4(sTradeItemsMenu->unk44, 3, TRUE); SetTradeItemMenu(TRADE_ITEMS_SEND_ITEM_POPUP_MENU); } else { - SetTradeItemMenu(gTradeItemsMenu->fallbackState); + SetTradeItemMenu(sTradeItemsMenu->fallbackState); } default: case 1: @@ -338,27 +249,27 @@ void sub_8036728(void) void sub_8036788(void) { - sub_8012FD8(&gTradeItemsMenu->unk44[3]); + sub_8012FD8(&sTradeItemsMenu->unk44[3]); sub_801CA08(FALSE); - switch(sub_8013BBC(&gTradeItemsMenu->quantityToSend)){ + switch(sub_8013BBC(&sTradeItemsMenu->quantityToSend)){ case 1: // When you change the # sub_801CCD8(); - sub_8035CF4(gTradeItemsMenu->unk44, 3, FALSE); + sub_8035CF4(sTradeItemsMenu->unk44, 3, FALSE); sub_8036F30(); break; case 2: // If you back out of the # selection - sub_8035CC0(gTradeItemsMenu->unk184, 2); + sub_8035CC0(sTradeItemsMenu->unk184, 2); sub_801CCD8(); - sub_8035CF4(gTradeItemsMenu->unk44, 3, TRUE); + sub_8035CF4(sTradeItemsMenu->unk44, 3, TRUE); SetTradeItemMenu(TRADE_ITEMS_SEND_ITEM_POPUP_MENU); break; case 3: // Confirm # of item - gTradeItemsMenu->itemToSend.quantity = gTradeItemsMenu->quantityToSend; - gTradeItemsMenu->sentItem.itemIdx.id = gTradeItemsMenu->itemToSend.id; - gTradeItemsMenu->sentItem.quantity = gTradeItemsMenu->quantityToSend; + sTradeItemsMenu->itemToSend.quantity = sTradeItemsMenu->quantityToSend; + sTradeItemsMenu->sentItem.itemIdx.id = sTradeItemsMenu->itemToSend.id; + sTradeItemsMenu->sentItem.quantity = sTradeItemsMenu->quantityToSend; sub_801CBB8(); SetTradeItemMenu(TRADE_ITEMS_SEND_ITEM_CONFIRM); break; @@ -378,9 +289,9 @@ void TradeItem_SendItemConfirm(void) case 5: sub_801CBB8(); // Used temp var to get correct statements - load = gTeamInventoryRef->teamStorage[gTradeItemsMenu->itemToSend.id]; - load -= gTradeItemsMenu->quantityToSend; - gTeamInventoryRef->teamStorage[gTradeItemsMenu->itemToSend.id] = load; + load = gTeamInventoryRef->teamStorage[sTradeItemsMenu->itemToSend.id]; + load -= sTradeItemsMenu->quantityToSend; + gTeamInventoryRef->teamStorage[sTradeItemsMenu->itemToSend.id] = load; SetTradeItemMenu(TRADE_ITEMS_PREPARE_TRADE_SAVING); PrepareSavePakWrite(MONSTER_NONE); break; @@ -420,7 +331,7 @@ void sub_80368D4(void) break; case 7: case 0: - if ((gTradeItemsMenu->sentItem.itemIdx.id != ITEM_NOTHING) && (gTradeItemsMenu->sentItem.quantity != 0)) + if ((sTradeItemsMenu->sentItem.itemIdx.id != ITEM_NOTHING) && (sTradeItemsMenu->sentItem.quantity != 0)) { TradeItem_AddItem(); SetTradeItemMenu(TRADE_ITEMS_PRE_EXIT); @@ -445,8 +356,8 @@ void sub_8036950(void) s32 iVar1; if (sub_80144A4(&iVar1) == 0) { - if (gTradeItemsMenu->linkStatus == COMMS_GOOD) { - switch(gTradeItemsMenu->itemMode){ + if (sTradeItemsMenu->linkStatus == COMMS_GOOD) { + switch(sTradeItemsMenu->itemMode){ case TRADE_ITEMS_SEND_ITEM_MODE: SetTradeItemMenu(0xd); break; @@ -457,14 +368,14 @@ void sub_8036950(void) break; } } - else if (((gTradeItemsMenu->itemMode == TRADE_ITEMS_SEND_ITEM_MODE) && (gTradeItemsMenu->sentItem.itemIdx.id != ITEM_NOTHING)) && (gTradeItemsMenu->sentItem.quantity != 0)) { + else if (((sTradeItemsMenu->itemMode == TRADE_ITEMS_SEND_ITEM_MODE) && (sTradeItemsMenu->sentItem.itemIdx.id != ITEM_NOTHING)) && (sTradeItemsMenu->sentItem.quantity != 0)) { // Link Failure TradeItem_AddItem(); // Add back the item SetTradeItemMenu(0xb); PrepareSavePakWrite(MONSTER_NONE); } else { - PrintTradeItemsLinkError(gTradeItemsMenu->linkStatus); + PrintTradeItemsLinkError(sTradeItemsMenu->linkStatus); SetTradeItemMenu(0xc); } } @@ -474,9 +385,9 @@ void TradeItem_AddItem(void) { // Use temp var to get correct statements u16 load; - load = gTeamInventoryRef->teamStorage[gTradeItemsMenu->sentItem.itemIdx.id]; - load += gTradeItemsMenu->sentItem.quantity; - gTeamInventoryRef->teamStorage[gTradeItemsMenu->sentItem.itemIdx.id] = load; + load = gTeamInventoryRef->teamStorage[sTradeItemsMenu->sentItem.itemIdx.id]; + load += sTradeItemsMenu->sentItem.quantity; + gTeamInventoryRef->teamStorage[sTradeItemsMenu->sentItem.itemIdx.id] = load; } void sub_80369FC(void) @@ -542,7 +453,7 @@ void sub_8036AA4(void) if(!WriteSavePak()) { FinishWriteSavePak(); - PrintTradeItemsLinkError(gTradeItemsMenu->linkStatus); + PrintTradeItemsLinkError(sTradeItemsMenu->linkStatus); SetTradeItemMenu(0xC); } } @@ -563,10 +474,10 @@ void WriteandExitTradeItemsMenu(void) void CleanTradeItemsMenu(void) { - if(gTradeItemsMenu != NULL) + if(sTradeItemsMenu != NULL) { - MemoryFree(gTradeItemsMenu); - gTradeItemsMenu = NULL; + MemoryFree(sTradeItemsMenu); + sTradeItemsMenu = NULL; sub_801CBB8(); } } @@ -587,17 +498,17 @@ void sub_8036B28(void) s32 r2; s32 r3; - switch(gTradeItemsMenu->currMenu) { + switch(sTradeItemsMenu->currMenu) { case TRADE_ITEMS_MAIN_MENU: if (sub_801CF14(0)) { - sub_8014248(gUnknown_80E61A4,0,1,gUnknown_80E60D4,0,4,0,0,0x101); + sub_8014248(sUnknown_80E61A4,0,1,sUnknown_80E60D4,0,4,0,0,0x101); } else { - sub_8014248(gUnknown_80E61A4,0,1,gUnknown_80E60A0,0,4,0,0,0x101); + sub_8014248(sUnknown_80E61A4,0,1,sUnknown_80E60A0,0,4,0,0,0x101); } break; case TRADE_ITEMS_SEND_ITEM: - sub_80141B4(gUnknown_80E61C0,0,0,0x101); + sub_80141B4(sUnknown_80E61C0,0,0,0x101); break; case TRADE_ITEMS_SEND_ITEM_SELECTION: if (sub_801D008() == 0) { @@ -610,32 +521,32 @@ void sub_8036B28(void) } break; case TRADE_ITEMS_SEND_ITEM_POPUP_MENU: - sub_8006518(gTradeItemsMenu->unk184); - SetMenuItems(gTradeItemsMenu->unk44,gTradeItemsMenu->unk184,3,&gUnknown_80E60EC, - gUnknown_80E6104,1,0,0); + sub_8006518(sTradeItemsMenu->unk184); + SetMenuItems(sTradeItemsMenu->unk44,sTradeItemsMenu->unk184,3,&sUnknown_80E60EC, + sUnknown_80E6104,1,0,0); sub_801CCD8(); - sub_8035CF4(gTradeItemsMenu->unk44,3,TRUE); + sub_8035CF4(sTradeItemsMenu->unk44,3,TRUE); break; case TRADE_ITEMS_SEND_ITEM_NUMBER: sub_8036F74(); break; case TRADE_ITEMS_SEND_ITEM_CONFIRM: - gUnknown_202DE30 = gTradeItemsMenu->quantityToSend; - BufferItemName(gUnknown_202DE58,gTradeItemsMenu->itemToSend.id,NULL); - sub_8014248(gUnknown_80E61E4,0,5, gUnknown_80E6154,0,4,0,0,0x101); + gUnknown_202DE30 = sTradeItemsMenu->quantityToSend; + BufferItemName(gUnknown_202DE58,sTradeItemsMenu->itemToSend.id,NULL); + sub_8014248(sUnknown_80E61E4,0,5, sUnknown_80E6154,0,4,0,0,0x101); break; case TRADE_ITEMS_RECEIVE_ITEM: - sub_8014248(gUnknown_80E6214,0,5,gUnknown_80E618C,0,4,0,0,0x101); + sub_8014248(sUnknown_80E6214,0,5,sUnknown_80E618C,0,4,0,0,0x101); break; case 8: - sub_8014248(gUnknown_80E6268,0,5,gUnknown_80E618C,0,4,0,0,0x101); + sub_8014248(sUnknown_80E6268,0,5,sUnknown_80E618C,0,4,0,0,0x101); break; case TRADE_ITEMS_IN_COMMUNICATION: nullsub_23(FALSE); - sub_80141B4(gUnknown_80E62C4,0,0,0); + sub_80141B4(sUnknown_80E62C4,0,0,0); break; case 10: - gTradeItemsMenu->linkStatus = COMMS_GOOD; + sTradeItemsMenu->linkStatus = COMMS_GOOD; #ifndef NONMATCHING asm("mov\t%0, #0":"=r"(r2)); @@ -645,53 +556,53 @@ void sub_8036B28(void) r3 = 0; #endif - temp4 = &gTradeItemsMenu->unk244; + temp4 = &sTradeItemsMenu->unk244; temp4->itemIdx.id_u32 = r2; temp4->quantity = r3; - temp3 = &gTradeItemsMenu->unk24C; + temp3 = &sTradeItemsMenu->unk24C; temp3->itemIdx.id_u32 = r2; temp3->quantity = r3; sub_8011830(); - linkStatus = sub_8037B28(gTradeItemsMenu->itemMode); - gTradeItemsMenu->linkStatus = linkStatus; + linkStatus = sub_8037B28(sTradeItemsMenu->itemMode); + sTradeItemsMenu->linkStatus = linkStatus; if(linkStatus == COMMS_GOOD){ - switch(gTradeItemsMenu->itemMode){ + switch(sTradeItemsMenu->itemMode){ // Fallthrough needed on each case case TRADE_ITEMS_SEND_ITEM_MODE: - temp = &gTradeItemsMenu->unk244; - temp2 = &gTradeItemsMenu->sentItem; + temp = &sTradeItemsMenu->unk244; + temp2 = &sTradeItemsMenu->sentItem; load_2 = temp2->quantity; temp->itemIdx.id_u32 = temp2->itemIdx.id_u32; temp->quantity = load_2; case TRADE_ITEMS_RECEIVE_ITEM_MODE: - gTradeItemsMenu->linkStatus = sub_8037D64(gTradeItemsMenu->itemMode,&gTradeItemsMenu->unk244,&gTradeItemsMenu->unk24C); + sTradeItemsMenu->linkStatus = sub_8037D64(sTradeItemsMenu->itemMode,&sTradeItemsMenu->unk244,&sTradeItemsMenu->unk24C); default: break; } } // Needed this check for code generation - if(gTradeItemsMenu->linkStatus == COMMS_GOOD && gTradeItemsMenu->itemMode <= 1){ - gTradeItemsMenu->linkStatus = sub_80381F4(gTradeItemsMenu->itemMode,&gTradeItemsMenu->unk244,&gTradeItemsMenu->unk24C); + if(sTradeItemsMenu->linkStatus == COMMS_GOOD && sTradeItemsMenu->itemMode <= 1){ + sTradeItemsMenu->linkStatus = sub_80381F4(sTradeItemsMenu->itemMode,&sTradeItemsMenu->unk244,&sTradeItemsMenu->unk24C); } xxx_call_start_bg_music(); break; case 0xe: - if (gTradeItemsMenu->unk24C.quantity == 0) { - gUnknown_202DE30 = gTradeItemsMenu->unk244.quantity; - BufferItemName(gUnknown_202DE58,gTradeItemsMenu->unk244.itemIdx.id,NULL); + if (sTradeItemsMenu->unk24C.quantity == 0) { + gUnknown_202DE30 = sTradeItemsMenu->unk244.quantity; + BufferItemName(gUnknown_202DE58,sTradeItemsMenu->unk244.itemIdx.id,NULL); } else { - gUnknown_202DE30 = gTradeItemsMenu->unk24C.quantity; - BufferItemName(gUnknown_202DE58,gTradeItemsMenu->unk24C.itemIdx.id,NULL); + gUnknown_202DE30 = sTradeItemsMenu->unk24C.quantity; + BufferItemName(gUnknown_202DE58,sTradeItemsMenu->unk24C.itemIdx.id,NULL); } - sub_80141B4(gUnknown_80E6314,0,0,0x101); + sub_80141B4(sUnknown_80E6314,0,0,0x101); break; case 0xd: - gUnknown_202DE30 = gTradeItemsMenu->quantityToSend; - BufferItemName(gUnknown_202DE58,gTradeItemsMenu->itemToSend.id,NULL); - sub_80141B4(gUnknown_80E6358,0,0,0x101); + gUnknown_202DE30 = sTradeItemsMenu->quantityToSend; + BufferItemName(gUnknown_202DE58,sTradeItemsMenu->itemToSend.id,NULL); + sub_80141B4(sUnknown_80E6358,0,0,0x101); break; case 0xB: case 0xC: @@ -710,73 +621,73 @@ void PrintTradeItemsLinkError(u32 errorNum) case COMMS_GOOD: break; case 1: - sub_80141B4(gTradeItemsCommunicationError, 0, 0, 0x101); + sub_80141B4(sTradeItemsCommunicationError, 0, 0, 0x101); break; case COMMS_INCORRECT_NUM_SYSTEMS: - sub_80141B4(gUnknown_80E639C, 0, 0, 0x101); + sub_80141B4(sUnknown_80E639C, 0, 0, 0x101); break; case COMMS_NO_RESPONSE: - sub_80141B4(gUnknown_80E63F8, 0, 0, 0x101); + sub_80141B4(sUnknown_80E63F8, 0, 0, 0x101); break; case COMMS_DIFFERENT_MODES: - sub_80141B4(gUnknown_80E6448, 0, 0, 0x101); + sub_80141B4(sUnknown_80E6448, 0, 0, 0x101); break; case 5: - sub_80141B4(gTradeItemsCommunicationError, 0, 0, 0x101); + sub_80141B4(sTradeItemsCommunicationError, 0, 0, 0x101); break; case 0xe: - sub_80141B4(gTradeItemsCommunicationError, 0, 0, 0x101); + sub_80141B4(sTradeItemsCommunicationError, 0, 0, 0x101); break; case COMMS_NOT_READY: - sub_80141B4(gUnknown_80E64AC, 0, 0, 0x101); + sub_80141B4(sUnknown_80E64AC, 0, 0, 0x101); break; default: - sub_80141B4(gTradeItemsCommunicationError, 0, 0, 0x101); + sub_80141B4(sTradeItemsCommunicationError, 0, 0, 0x101); break; } } void sub_8036ECC(u32 index, u32 r1) { - gTradeItemsMenu->unk24 = 3; - gTradeItemsMenu->unk18 = 1; - gTradeItemsMenu->unk1C = 1; - gTradeItemsMenu->unk20 = r1; - gTradeItemsMenu->unk30 = 0x2c; - gTradeItemsMenu->unk34 = 0x12; - gTradeItemsMenu->unk28 = index; - gTradeItemsMenu->unk2C = &gTradeItemsMenu->unk184[index]; - sub_8013AA0(&gTradeItemsMenu->quantityToSend); - gTradeItemsMenu->unk184[index] = gUnknown_80E6174; + 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(gTradeItemsMenu->unk184, TRUE, TRUE); + sub_800641C(sTradeItemsMenu->unk184, TRUE, TRUE); } void sub_8036F30(void) { u32 uVar1; - uVar1 = gTradeItemsMenu->unk28; + uVar1 = sTradeItemsMenu->unk28; sub_8008C54(uVar1); sub_80073B8(uVar1); // Draw "How many?" - xxx_call_draw_string(2, 0, gTradeItemsHowManyText, uVar1, 0); - sub_8013C68(&gTradeItemsMenu->quantityToSend); + xxx_call_draw_string(2, 0, sHowMany, uVar1, 0); + sub_8013C68(&sTradeItemsMenu->quantityToSend); sub_80073E0(uVar1); } void sub_8036F74(void) { - sub_8006518(gTradeItemsMenu->unk184); - sub_8036ECC(2, gTeamInventoryRef->teamStorage[gTradeItemsMenu->itemToSend.id]); + sub_8006518(sTradeItemsMenu->unk184); + sub_8036ECC(2, gTeamInventoryRef->teamStorage[sTradeItemsMenu->itemToSend.id]); sub_801CCD8(); - sub_8035CF4(gTradeItemsMenu->unk44, 3, FALSE); + sub_8035CF4(sTradeItemsMenu->unk44, 3, FALSE); sub_8036F30(); } void SetTradeItemMenu(u32 newMenu) { - gTradeItemsMenu->currMenu = newMenu; + sTradeItemsMenu->currMenu = newMenu; nullsub_52(); sub_8036B28(); } diff --git a/sym_ewram.txt b/sym_ewram.txt index 3e502f6f2..e2344f283 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -362,13 +362,13 @@ gUnknown_202EC20: /* 202EC20 (code_80130A8) */ gUnknown_202EC28: /* 202EC28 (code_80130A8) */ .space 0x10 -gUnknown_202EC38: /* 202EC38 (other_menus) */ +gUnknown_202EC38: /* 202EC38 (other_menus2) */ .space 0x8 -gUnknown_202EC40: /* 202EC40 (other_menus / other_menus_1) */ +gUnknown_202EC40: /* 202EC40 (other_menus2) */ .space 0x8 -gUnknown_202EC48: /* 202EC48 (other_menus_1) */ +gUnknown_202EC48: /* 202EC48 (other_menus2) */ .space 0x4 .include "src/rescue_password_menu.o" diff --git a/sym_ewram2.txt b/sym_ewram2.txt index 287475214..75c10e911 100644 --- a/sym_ewram2.txt +++ b/sym_ewram2.txt @@ -326,7 +326,7 @@ gUnknown_203B328: /* 203B328 (wonder_mail_6) */ .include "src/credits.o" .include "src/main_menu.o" .include "src/trade_items_menu.o" -.include "src/other_menus.o" +.include "src/other_menus1.o" .include "src/unk_menu_203B360.o" .include "src/save_menu.o" .include "src/rescue_password_menu.o" From 7076a22ea4d273df289e9274b6ee9c49a3da8ced Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sun, 10 Sep 2023 06:44:50 -0400 Subject: [PATCH 02/47] others_menu h files --- include/menu_input.h | 9 ++++++ include/other_menus1.h | 4 +++ include/other_menus2.h | 4 +++ src/data/trade_items_menu.h | 56 ++++++++++++++++++------------------- src/friend_rescue.c | 31 ++++++++++---------- src/main_menu.c | 27 ++++++------------ src/other_menus1.c | 32 ++++++++++----------- src/other_menus2.c | 46 +++++++++++++++--------------- src/thank_you_wonder_mail.c | 33 +++++++++++----------- src/trade_items_menu.c | 37 ++++++++++++------------ src/wonder_mail.c | 29 ++++++++++--------- src/wonder_mail_main_menu.c | 21 +++++++------- 12 files changed, 165 insertions(+), 164 deletions(-) diff --git a/include/menu_input.h b/include/menu_input.h index 5b4f3383e..c3547a58b 100644 --- a/include/menu_input.h +++ b/include/menu_input.h @@ -4,6 +4,15 @@ #include "menu.h" #include "text.h" +struct unkStruct_203B34C +{ + // size: 0x1A8 + u32 unk0; + MenuStruct unk4[4]; + UnkTextStruct2 unk144[4]; + /* 0x1A4 */ u32 currMenuChoice; +}; + u32 sub_8012A64(MenuInputStructSub *r0, s32 r1); s32 GetKeyPress(MenuInputStruct *r0); s32 sub_8012AE8(void); diff --git a/include/other_menus1.h b/include/other_menus1.h index de3874de1..5d3c92b9c 100644 --- a/include/other_menus1.h +++ b/include/other_menus1.h @@ -32,4 +32,8 @@ typedef struct unkStruct_203B35C u8 unk450[180]; } unkStruct_203B35C; +void sub_8036FDC(s32); +void sub_80370D4(void); +void sub_80373C4(void); + #endif // GUARD_OTHER_MENUS1_H \ No newline at end of file diff --git a/include/other_menus2.h b/include/other_menus2.h index 6b813476c..fa5eaf91e 100644 --- a/include/other_menus2.h +++ b/include/other_menus2.h @@ -1,4 +1,8 @@ #ifndef GUARD_OTHER_MENUS2_H #define GUARD_OTHER_MENUS2_H +u32 sub_8037C10(bool8); +s32 sub_8037D64(u32 mode, void *, void *); +s32 sub_80381F4(u32 mode, void *, void *); + #endif // GUARD_OTHER_MENUS2_H \ No newline at end of file diff --git a/src/data/trade_items_menu.h b/src/data/trade_items_menu.h index 11b3e5cd2..8bb112d2f 100644 --- a/src/data/trade_items_menu.h +++ b/src/data/trade_items_menu.h @@ -14,11 +14,11 @@ static const MenuItem sUnknown_80E60D4[3] = { static const UnkTextStruct2 sUnknown_80E60EC = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x15, 0x04, - 0x06, 0x05, - 0x05, 0x00, + 0, 0, 0, 0, + 3, + 21, 4, + 6, 5, + 5, 0, NULL }; @@ -31,11 +31,11 @@ static const MenuItem sUnknown_80E6104[4] = { static const UnkTextStruct2 unused = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x16, 0x09, - 0x05, 0x03, - 0x03, 0x00, + 0, 0, 0, 0, + 3, + 22, 9, + 5, 3, + 3, 0, NULL }; @@ -47,11 +47,11 @@ static const MenuItem sUnknown_80E6154[3] = { static const UnkTextStruct2 sUnknown_80E6174 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x15, 0x0D, - 0x06, 0x04, - 0x04, 0x00, + 0, 0, 0, 0, + 3, + 21, 13, + 6, 4, + 4, 0, NULL }; @@ -61,52 +61,52 @@ static const MenuItem sUnknown_80E618C[3] = { {NULL, 0}, }; -ALIGNED(4) static const u8 sUnknown_80E61A4[] = "What would you like to do? "; -ALIGNED(4) static const u8 sUnknown_80E61C0[] = "Please choose the item to be sent."; -ALIGNED(4) static const u8 sUnknown_80E61E4[] = _( +ALIGNED(4) static const u8 sWhatDoPrompt[] = "What would you like to do? "; +ALIGNED(4) static const u8 sPleaseChooseItem[] = "Please choose the item to be sent."; +ALIGNED(4) static const u8 sFmtWillBeSentPrompt[] = _( "{COLOR_1 LIGHT_BLUE}$d0{END_COLOR_TEXT_1} {COLOR_1 GREEN_2}{ARG_MOVE_ITEM_0}(s){END_COLOR_TEXT_1}\n" "will be sent.\n" "Is that OK?"); -ALIGNED(4) static const u8 sUnknown_80E6214[] = _( +ALIGNED(4) static const u8 sFriendWillSendAnItem[] = _( "Your friend will send you an item.\n" "When you are both ready{COMMA} you\n" "may communicate."); -ALIGNED(4) static const u8 sUnknown_80E6268[] = _( +ALIGNED(4) static const u8 sPreparingToSendItem[] = _( "Preparing to send an item to your\n" "friend. When you are both ready{COMMA}\n" "you may communicate."); -ALIGNED(4) static const u8 sUnknown_80E62C4[] = _( +ALIGNED(4) static const u8 sInCommunication[] = _( "{CENTER_ALIGN}In communication...\n" "{CENTER_ALIGN}Please wait with the power on.\n" "{CENTER_ALIGN}To cancel{COMMA} press {B_BUTTON}."); -ALIGNED(4) static const u8 sUnknown_80E6314[] = _( +ALIGNED(4) static const u8 sFmtYouReceived[] = _( "You received\n" "{COLOR_1 LIGHT_BLUE}$d0{END_COLOR_TEXT_1} {COLOR_1 GREEN_2}{ARG_MOVE_ITEM_0}(s){END_COLOR_TEXT_1}.\n" "Your adventure will be saved."); -ALIGNED(4) static const u8 sUnknown_80E6358[] = _("You sent {COLOR_1 LIGHT_BLUE}$d0{END_COLOR_TEXT_1} {COLOR_1 GREEN_2}{ARG_MOVE_ITEM_0}(s){END_COLOR_TEXT_1}."); +ALIGNED(4) static const u8 sFmtYouSent[] = _("You sent {COLOR_1 LIGHT_BLUE}$d0{END_COLOR_TEXT_1} {COLOR_1 GREEN_2}{ARG_MOVE_ITEM_0}(s){END_COLOR_TEXT_1}."); // Trade Items Menu Link Error Messages -ALIGNED(4) static const u8 sTradeItemsCommunicationError[] = "There was a communication error."; -ALIGNED(4) static const u8 sUnknown_80E639C[] = +ALIGNED(4) static const u8 sCommunicationError[] = "There was a communication error."; +ALIGNED(4) static const u8 sInvalidGBACount[] = "An incorrect number of GBA systems are\n" "connected.\n" "Please redo this process from the start."; -ALIGNED(4) static const u8 sUnknown_80E63F8[] = +ALIGNED(4) static const u8 sNoResponseSoRedo[] = "There is no response from your friend.\n" "Please redo this process from the start."; -ALIGNED(4) static const u8 sUnknown_80E6448[] = +ALIGNED(4) static const u8 sUnequalModes[] = "The sender and receiver appear to be\n" "in different modes.\n" "Please redo the process from the start."; -ALIGNED(4) static const u8 sUnknown_80E64AC[] = _( +ALIGNED(4) static const u8 sNoResponseCheckSenderReceiver[] = _( "There is no response from your friend.\n" "Please make sure the sender and receiver\n" "are ready{COMMA} then redo this from the start."); diff --git a/src/friend_rescue.c b/src/friend_rescue.c index 3326b39f1..8ee6bf724 100644 --- a/src/friend_rescue.c +++ b/src/friend_rescue.c @@ -1,25 +1,26 @@ #include "global.h" +#include "code_80118A4.h" +#include "code_80130A8.h" +#include "code_801B3C0.h" +#include "code_801EE10_1.h" +#include "code_801C620.h" +#include "code_8094F88.h" #include "constants/communication_error_codes.h" #include "constants/monster.h" #include "constants/wonder_mail.h" -#include "text1.h" -#include "text2.h" -#include "text_util.h" -#include "items.h" -#include "code_801B3C0.h" -#include "pokemon.h" +#include "cpu.h" #include "friend_rescue.h" +#include "items.h" +#include "main_menu.h" #include "memory.h" +#include "menu_input.h" +#include "other_menus2.h" +#include "pokemon.h" #include "save_write.h" #include "rescue_password_menu.h" -#include "menu_input.h" -#include "code_8094F88.h" -#include "code_80130A8.h" -#include "main_menu.h" -#include "code_801EE10_1.h" -#include "code_801C620.h" -#include "cpu.h" -#include "code_80118A4.h" +#include "text_util.h" +#include "text1.h" +#include "text2.h" extern void SetFriendRescueMenuState(u32); extern void sub_802F2C0(); @@ -286,8 +287,6 @@ extern u32 sub_8030894(void); extern void sub_803092C(void); extern bool8 sub_8031D70(u32 mailIndex, s32); extern s32 sub_8037B28(u32); -extern s32 sub_8037D64(u32, void *, void *); -extern s32 sub_80381F4(u32, void *, void *); extern s32 CountMailType(u8 mailType); extern u32 GetDungeonTeamRankPts(DungeonLocation *, u32); diff --git a/src/main_menu.c b/src/main_menu.c index 7d4b1550e..9f2b3fdb9 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -1,21 +1,22 @@ #include "global.h" -#include "code_803D0D8.h" -#include "text1.h" -#include "text2.h" -#include "menu_input.h" #include "adventure_log_menu.h" +#include "code_803D0D8.h" +#include "code_8098BDC.h" +#include "constants/wonder_mail.h" #include "debug_menu1.h" #include "ds_menus.h" -#include "pokemon.h" #include "friend_rescue.h" #include "load_screen.h" #include "main_menu.h" #include "memory.h" +#include "menu_input.h" +#include "other_menus1.h" +#include "pokemon.h" #include "rescue_password_menu.h" #include "save.h" +#include "text1.h" +#include "text2.h" #include "trade_items_menu.h" -#include "constants/wonder_mail.h" -#include "code_8098BDC.h" // NOTE: 0x13 and 0x14 // Communication Screen? @@ -30,30 +31,18 @@ // NOTE: 0x2E // Deletes the Save - -struct unkStruct_203B34C -{ - // size: 0x1A8 - u32 unk0; - MenuStruct unk4[4]; - UnkTextStruct2 unk144[4]; - /* 0x1A4 */ u32 currMenuChoice; -}; - EWRAM_DATA_2 MainMenu *gMainMenu = {0}; EWRAM_DATA_2 struct unkStruct_203B34C *gUnknown_203B34C = {0}; EWRAM_DATA_2 u32 gUnknown_203B350 = {0}; EWRAM_DATA_2 u32 gUnknown_203B354 = {0}; // unused everywhere else except here.. extern void SetWindowBGColor(void); -extern void sub_8036FDC(s32); extern void CreateWonderMailMenu(void); extern void CreateSaveMenu(u32); extern u32 UpdateMainMenu(void); extern s32 UpdateWonderMailMenu(void); extern s32 sub_80383D4(void); extern s32 UpdateSaveMenu(void); -extern void sub_80370D4(void); extern void CleanWonderMailMenu(void); extern void sub_80383A8(void); extern void CleanSaveMenu(void); diff --git a/src/other_menus1.c b/src/other_menus1.c index 1c0b08674..7e8948a1d 100644 --- a/src/other_menus1.c +++ b/src/other_menus1.c @@ -11,6 +11,7 @@ #include "memory.h" #include "menu_input.h" #include "other_menus1.h" +#include "other_menus2.h" #include "sprite.h" #include "text1.h" @@ -19,24 +20,21 @@ EWRAM_DATA_2 unkStruct_203B35C *sUnknown_203B35C = {0}; #include "data/other_menus1.h" -extern void sub_8037400(void); -extern void sub_80376CC(); - -extern u32 sub_8037C10(u32); -extern void sub_8037748(void); -extern void sub_80371B8(void); extern void sub_8037900(void); -extern u32 sub_8037798(void); extern void xxx_call_update_bg_vram(); extern void xxx_call_update_bg_sound_input(); -extern s32 sub_8037D64(u32 mode, void *, void *); -extern s32 sub_80381F4(u32 mode, void *, void *); extern void sub_8037810(void); extern s32 sub_8037B28(u32); s32 sub_8035D3C(void); extern s32 sub_8035D74(void); extern void xxx_draw_string_80144C4(void); +static void sub_80371B8(void); +static void sub_8037400(void); +static void sub_80376CC(void); +static void sub_8037748(void); +static u32 sub_8037798(void); + void sub_8036FDC(s32 param_1) { s32 index1; @@ -104,7 +102,7 @@ UNUSED static u32 sub_80370F0(void) sub_80371B8(); break; case 2: - if (sUnknown_203B35C->unk0 < 2 && sUnknown_203B35C->linkStatus == COMMS_GOOD && !sub_8037C10(0)) + if (sUnknown_203B35C->unk0 < 2 && sUnknown_203B35C->linkStatus == COMMS_GOOD && !sub_8037C10(FALSE)) return 41; // TODO: what screen is this? if (!sub_80130A8(&sUnknown_203B35C->unk1C[0])) @@ -122,7 +120,7 @@ UNUSED static u32 sub_80370F0(void) return nextMenu; } -void sub_80371B8(void) +static void sub_80371B8(void) { unkStruct_8035D94 *item; const MenuItem *MenuItems; @@ -133,7 +131,7 @@ void sub_80371B8(void) sub_8037400(); if (sUnknown_203B35C->unk0 < 2 && sUnknown_203B35C->linkStatus == COMMS_GOOD) { - if (sub_8037C10(0)) { + if (sub_8037C10(FALSE)) { sub_80376CC(); sub_8035CC0(sUnknown_203B35C->unk15C, 0); // Success! @@ -230,7 +228,7 @@ UNUSED static unkStruct_203B35C *sub_80373F4(void) return sUnknown_203B35C; } -void sub_8037400(void) +static void sub_8037400(void) { u8 mailIndex; void *r5; @@ -349,7 +347,7 @@ void sub_8037400(void) xxx_call_start_bg_music(); } -void sub_80376CC(void) +static void sub_80376CC(void) { #ifdef NONMATCHING u32 r0; @@ -405,7 +403,7 @@ void sub_80376CC(void) sUnknown_203B35C->unkC.unk6 = r2; } -void sub_8037748(void) +static void sub_8037748(void) { u16 temp2; @@ -423,7 +421,7 @@ void sub_8037748(void) sUnknown_203B35C->unk14++; } -u32 sub_8037798(void) +static u32 sub_8037798(void) { u32 nextMenu = MENU_NO_SCREEN_CHANGE; switch (sUnknown_203B35C->unk0) { @@ -445,4 +443,4 @@ u32 sub_8037798(void) break; } return nextMenu; -} +} \ No newline at end of file diff --git a/src/other_menus2.c b/src/other_menus2.c index 76e49dd10..65cea2e02 100644 --- a/src/other_menus2.c +++ b/src/other_menus2.c @@ -5,6 +5,8 @@ #include "dungeon_global_data.h" #include "main_menu.h" #include "memory.h" +#include "other_menus1.h" +#include "other_menus2.h" #include "pokemon.h" #include "save.h" @@ -22,7 +24,6 @@ extern void sub_800D494(void); extern s32 sub_800D33C(void); extern void sub_800D520(void); extern u8 sub_800D600(void); -extern void sub_80373C4(void); extern void sub_800D59C(s32 *, u32); extern void sub_800D570(void); extern void sub_800D510(void); @@ -30,11 +31,11 @@ extern u8 sub_800D588(void); extern void sub_800D670(u32, s32 *, u32); extern void sub_800D68C(u32); -u32 sub_8037C10(u8 param_1) +u32 sub_8037C10(bool8 a0) { u32 ret; - if (param_1 != 0) + if (a0) { if (sub_800D588()) { @@ -56,7 +57,7 @@ u32 sub_8037C10(u8 param_1) return ret; } -void sub_8037C44(s32 mode, void *data) +static void sub_8037C44(s32 mode, void *data) { s32 index; @@ -86,7 +87,7 @@ void sub_8037C44(s32 mode, void *data) } } -void sub_8037CC4(s32 mode, void *param_2, void *param_3) +static void sub_8037CC4(s32 mode, void *param_2, void *param_3) { switch(mode) { @@ -116,7 +117,7 @@ void sub_8037CC4(s32 mode, void *param_2, void *param_3) } // TODO: same as sub_80381F4 -s32 sub_8037D64(u32 mode, void * param_2, void * param_3) +s32 sub_8037D64(u32 mode, void *param_2, void *param_3) { u32 iVar2; s32 linkStatus; @@ -161,7 +162,7 @@ _end: return linkStatus; } -s32 sub_8037DF0(void) +static s32 sub_8037DF0(void) { s32 linkStatus; s32 iStack_10; @@ -179,7 +180,7 @@ s32 sub_8037DF0(void) return linkStatus; } -void sub_8037E38(unkStruct_8035D94 *param_1,unkStruct_8035D94 *param_2) +static void sub_8037E38(unkStruct_8035D94 *param_1,unkStruct_8035D94 *param_2) { unkStruct_8035D94 *r3; unkStruct_8035D94 *r4; @@ -200,7 +201,7 @@ void sub_8037E38(unkStruct_8035D94 *param_1,unkStruct_8035D94 *param_2) } } -void sub_8037E90(unkStruct_203B480 *param_1, unkStruct_203B480 *param_2) +static void sub_8037E90(unkStruct_203B480 *param_1, unkStruct_203B480 *param_2) { if(sub_800D588() == 0) { @@ -211,11 +212,12 @@ void sub_8037E90(unkStruct_203B480 *param_1, unkStruct_203B480 *param_2) sub_8095274(param_2->unk10.unk10); } -void nullsub_53(void *param_1, void *param_2) +static void nullsub_53(void *param_1, void *param_2) { } -void sub_8037EBC(WonderMailStruct_203B2C0_sub *param_1, WonderMailStruct_203B2C0_sub *param_2) { +static void sub_8037EBC(WonderMailStruct_203B2C0_sub *param_1, WonderMailStruct_203B2C0_sub *param_2) +{ unkStruct_203B480 *mail; WonderMailStruct_203B2C0_sub *puVar2; @@ -247,7 +249,7 @@ void sub_8037EBC(WonderMailStruct_203B2C0_sub *param_1, WonderMailStruct_203B2C } } -void sub_8037F4C(unkStruct_203B480 *param_1, unkStruct_203B480 *param_2) +static void sub_8037F4C(unkStruct_203B480 *param_1, unkStruct_203B480 *param_2) { unkStruct_203B480 *mail; MainMenu *mainMenu; @@ -266,7 +268,7 @@ void sub_8037F4C(unkStruct_203B480 *param_1, unkStruct_203B480 *param_2) } } -void sub_8037F9C(u32 mode, void *param_2, void *param_3) +static void sub_8037F9C(u32 mode, void *param_2, void *param_3) { switch(mode) { @@ -289,7 +291,7 @@ void sub_8037F9C(u32 mode, void *param_2, void *param_3) } } -s32 sub_8038014(unkStruct_8035D94 *param_1,unkStruct_8035D94 *param_2) +static s32 sub_8038014(unkStruct_8035D94 *param_1,unkStruct_8035D94 *param_2) { s32 linkStatus; s32 r2; @@ -321,7 +323,7 @@ s32 sub_8038014(unkStruct_8035D94 *param_1,unkStruct_8035D94 *param_2) return linkStatus; } -s32 sub_8038078(unkStruct_203B480 *param_1,unkStruct_203B480 *param_2) +static s32 sub_8038078(unkStruct_203B480 *param_1,unkStruct_203B480 *param_2) { u32 uVar2; u32 uVar3; @@ -344,7 +346,7 @@ s32 sub_8038078(unkStruct_203B480 *param_1,unkStruct_203B480 *param_2) } } -s32 sub_80380C4(unkStruct_203B480 *param_1,unkStruct_203B480 *param_2) +static s32 sub_80380C4(unkStruct_203B480 *param_1,unkStruct_203B480 *param_2) { u32 uVar2; unkStruct_203B480 *mail; @@ -374,7 +376,7 @@ s32 sub_80380C4(unkStruct_203B480 *param_1,unkStruct_203B480 *param_2) } } -s32 sub_803812C(unkStruct_203B480 *param_1, unkStruct_203B480 *param_2) +static s32 sub_803812C(unkStruct_203B480 *param_1, unkStruct_203B480 *param_2) { if (sub_800D588() == 0) { param_2 = param_1; @@ -387,12 +389,12 @@ s32 sub_803812C(unkStruct_203B480 *param_1, unkStruct_203B480 *param_2) } } -s32 sub_8038158(void *param_1, void *param_2) +static s32 sub_8038158(void *param_1, void *param_2) { return COMMS_GOOD; } -s32 sub_803815C(u32 mode, void *param_2, void *param_3) +static s32 sub_803815C(u32 mode, void *param_2, void *param_3) { s32 linkStatus; @@ -418,18 +420,18 @@ s32 sub_803815C(u32 mode, void *param_2, void *param_3) return linkStatus; } -void sub_80381DC(u32 mode, void * param_2, void * param_3) +UNUSED static void sub_80381DC(u32 mode, void * param_2, void * param_3) { sub_8037F9C(mode, param_2, param_3); } -s32 sub_80381E8(u32 mode, void * param_2, void * param_3) +UNUSED static s32 sub_80381E8(u32 mode, void * param_2, void * param_3) { return sub_803815C(mode, param_2, param_3); } // TODO: clean this up -s32 sub_80381F4(u32 mode, void * param_2, void * param_3) +s32 sub_80381F4(u32 mode, void *param_2, void *param_3) { u32 iVar2; s32 linkStatus; diff --git a/src/thank_you_wonder_mail.c b/src/thank_you_wonder_mail.c index cee4e30e0..44e234513 100644 --- a/src/thank_you_wonder_mail.c +++ b/src/thank_you_wonder_mail.c @@ -1,24 +1,25 @@ #include "global.h" +#include "code_800D090.h" +#include "code_80118A4.h" +#include "code_80130A8.h" +#include "code_801B3C0.h" +#include "code_801C620.h" +#include "code_8094F88.h" #include "constants/communication_error_codes.h" +#include "cpu.h" +#include "items.h" +#include "main_menu.h" +#include "memory.h" +#include "menu_input.h" +#include "other_menus2.h" +#include "pokemon.h" +#include "rescue_password_menu.h" #include "save.h" #include "save_write.h" -#include "pokemon.h" -#include "items.h" -#include "code_8094F88.h" -#include "wonder_mail.h" -#include "memory.h" -#include "rescue_password_menu.h" +#include "text_util.h" #include "text1.h" #include "text2.h" -#include "text_util.h" -#include "code_801B3C0.h" -#include "code_800D090.h" -#include "menu_input.h" -#include "code_80130A8.h" -#include "main_menu.h" -#include "code_801C620.h" -#include "cpu.h" -#include "code_80118A4.h" +#include "wonder_mail.h" extern WonderMailStruct_203B2C4 *gUnknown_203B2C4; @@ -221,8 +222,6 @@ extern s32 sub_8037B28(u32); extern u32 sub_8030894(void); extern u32 sub_801D008(void); extern void sub_80306A8(u32, u32, u32, u32); -extern s32 sub_8037D64(u32, void *, void *); -extern s32 sub_80381F4(u32, void *, void *); extern u8 sub_800D588(void); extern u32 GetDungeonTeamRankPts(DungeonLocation *, u32); extern void sub_8031D70(u8, u32); diff --git a/src/trade_items_menu.c b/src/trade_items_menu.c index fe6055168..c3eb9b050 100644 --- a/src/trade_items_menu.c +++ b/src/trade_items_menu.c @@ -9,6 +9,7 @@ #include "main_menu.h" #include "memory.h" #include "menu_input.h" +#include "other_menus2.h" #include "save_write.h" #include "text1.h" #include "text2.h" @@ -25,8 +26,6 @@ extern void sub_8035C1C(); extern u32 sub_801D008(); extern s32 sub_8037B28(u32); -extern s32 sub_80381F4(u32, void *, void *); -extern s32 sub_8037D64(u32, void *, void *); void sub_8036F74(void); void sub_8036F30(); @@ -501,14 +500,14 @@ void sub_8036B28(void) switch(sTradeItemsMenu->currMenu) { case TRADE_ITEMS_MAIN_MENU: if (sub_801CF14(0)) { - sub_8014248(sUnknown_80E61A4,0,1,sUnknown_80E60D4,0,4,0,0,0x101); + sub_8014248(sWhatDoPrompt,0,1,sUnknown_80E60D4,0,4,0,0,0x101); } else { - sub_8014248(sUnknown_80E61A4,0,1,sUnknown_80E60A0,0,4,0,0,0x101); + sub_8014248(sWhatDoPrompt,0,1,sUnknown_80E60A0,0,4,0,0,0x101); } break; case TRADE_ITEMS_SEND_ITEM: - sub_80141B4(sUnknown_80E61C0,0,0,0x101); + sub_80141B4(sPleaseChooseItem,0,0,0x101); break; case TRADE_ITEMS_SEND_ITEM_SELECTION: if (sub_801D008() == 0) { @@ -533,17 +532,17 @@ void sub_8036B28(void) case TRADE_ITEMS_SEND_ITEM_CONFIRM: gUnknown_202DE30 = sTradeItemsMenu->quantityToSend; BufferItemName(gUnknown_202DE58,sTradeItemsMenu->itemToSend.id,NULL); - sub_8014248(sUnknown_80E61E4,0,5, sUnknown_80E6154,0,4,0,0,0x101); + sub_8014248(sFmtWillBeSentPrompt,0,5, sUnknown_80E6154,0,4,0,0,0x101); break; case TRADE_ITEMS_RECEIVE_ITEM: - sub_8014248(sUnknown_80E6214,0,5,sUnknown_80E618C,0,4,0,0,0x101); + sub_8014248(sFriendWillSendAnItem,0,5,sUnknown_80E618C,0,4,0,0,0x101); break; case 8: - sub_8014248(sUnknown_80E6268,0,5,sUnknown_80E618C,0,4,0,0,0x101); + sub_8014248(sPreparingToSendItem,0,5,sUnknown_80E618C,0,4,0,0,0x101); break; case TRADE_ITEMS_IN_COMMUNICATION: nullsub_23(FALSE); - sub_80141B4(sUnknown_80E62C4,0,0,0); + sub_80141B4(sInCommunication,0,0,0); break; case 10: sTradeItemsMenu->linkStatus = COMMS_GOOD; @@ -597,12 +596,12 @@ void sub_8036B28(void) gUnknown_202DE30 = sTradeItemsMenu->unk24C.quantity; BufferItemName(gUnknown_202DE58,sTradeItemsMenu->unk24C.itemIdx.id,NULL); } - sub_80141B4(sUnknown_80E6314,0,0,0x101); + sub_80141B4(sFmtYouReceived,0,0,0x101); break; case 0xd: gUnknown_202DE30 = sTradeItemsMenu->quantityToSend; BufferItemName(gUnknown_202DE58,sTradeItemsMenu->itemToSend.id,NULL); - sub_80141B4(sUnknown_80E6358,0,0,0x101); + sub_80141B4(sFmtYouSent,0,0,0x101); break; case 0xB: case 0xC: @@ -621,28 +620,28 @@ void PrintTradeItemsLinkError(u32 errorNum) case COMMS_GOOD: break; case 1: - sub_80141B4(sTradeItemsCommunicationError, 0, 0, 0x101); + sub_80141B4(sCommunicationError, 0, 0, 0x101); break; case COMMS_INCORRECT_NUM_SYSTEMS: - sub_80141B4(sUnknown_80E639C, 0, 0, 0x101); + sub_80141B4(sInvalidGBACount, 0, 0, 0x101); break; case COMMS_NO_RESPONSE: - sub_80141B4(sUnknown_80E63F8, 0, 0, 0x101); + sub_80141B4(sNoResponseSoRedo, 0, 0, 0x101); break; case COMMS_DIFFERENT_MODES: - sub_80141B4(sUnknown_80E6448, 0, 0, 0x101); + sub_80141B4(sUnequalModes, 0, 0, 0x101); break; case 5: - sub_80141B4(sTradeItemsCommunicationError, 0, 0, 0x101); + sub_80141B4(sCommunicationError, 0, 0, 0x101); break; case 0xe: - sub_80141B4(sTradeItemsCommunicationError, 0, 0, 0x101); + sub_80141B4(sCommunicationError, 0, 0, 0x101); break; case COMMS_NOT_READY: - sub_80141B4(sUnknown_80E64AC, 0, 0, 0x101); + sub_80141B4(sNoResponseCheckSenderReceiver, 0, 0, 0x101); break; default: - sub_80141B4(sTradeItemsCommunicationError, 0, 0, 0x101); + sub_80141B4(sCommunicationError, 0, 0, 0x101); break; } } diff --git a/src/wonder_mail.c b/src/wonder_mail.c index 1be721c80..7a869701c 100644 --- a/src/wonder_mail.c +++ b/src/wonder_mail.c @@ -1,22 +1,23 @@ #include "global.h" +#include "code_80118A4.h" +#include "code_801EE10_1.h" +#include "code_80130A8.h" +#include "code_8094F88.h" +#include "code_80A26CC.h" #include "constants/communication_error_codes.h" -#include "save_write.h" -#include "pokemon.h" +#include "cpu.h" #include "items.h" -#include "wonder_mail.h" +#include "main_menu.h" #include "memory.h" +#include "menu_input.h" +#include "other_menus2.h" +#include "pokemon.h" +#include "rescue_password_menu.h" +#include "save.h" +#include "save_write.h" #include "text1.h" #include "text2.h" -#include "code_80A26CC.h" -#include "rescue_password_menu.h" -#include "menu_input.h" -#include "code_8094F88.h" -#include "code_80130A8.h" -#include "main_menu.h" -#include "code_801EE10_1.h" -#include "cpu.h" -#include "code_80118A4.h" -#include "save.h" +#include "wonder_mail.h" extern WonderMailStruct_203B2C0 *gUnknown_203B2C0; @@ -54,8 +55,6 @@ extern void sub_8031E00(); extern void sub_8031E10(void); extern void sub_803084C(void); extern void sub_8030DE4(); -extern s32 sub_8037D64(u32, void *, void *); -extern s32 sub_80381F4(u32, void *, void *); extern void sub_80306A8(u32, u32, u32, u32); extern s32 sub_8037B28(u32); extern void sub_8031D70(u8, u32); diff --git a/src/wonder_mail_main_menu.c b/src/wonder_mail_main_menu.c index c2c9e0170..38195a6de 100644 --- a/src/wonder_mail_main_menu.c +++ b/src/wonder_mail_main_menu.c @@ -1,18 +1,19 @@ #include "global.h" -#include "constants/wonder_mail.h" +#include "code_80118A4.h" +#include "code_80130A8.h" +#include "code_801B3C0.h" +#include "code_801C620.h" +#include "code_8094F88.h" #include "constants/communication_error_codes.h" -#include "save_write.h" +#include "constants/wonder_mail.h" +#include "cpu.h" +#include "input.h" #include "memory.h" +#include "other_menus2.h" +#include "save_write.h" #include "text1.h" #include "text2.h" -#include "input.h" #include "wonder_mail.h" -#include "code_8094F88.h" -#include "code_80130A8.h" -#include "code_801C620.h" -#include "code_801B3C0.h" -#include "cpu.h" -#include "code_80118A4.h" #include "wonder_mail_3.h" #define SELECT_WONDER_MAIL_MODE_MAIN_SCREEN 0 @@ -123,8 +124,6 @@ extern void sub_80155F0(void); extern void sub_8031E10(void); extern u8 sub_800D588(void); -extern s32 sub_8037D64(u32, void *, void *); -extern s32 sub_80381F4(u32, void *, void *); extern void sub_80151C0(u32, u8 *); extern void sub_802EF48(void); From fa98819e1dad9f069df0bf883176d039987fe23d Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sun, 10 Sep 2023 06:52:26 -0400 Subject: [PATCH 03/47] More externs --- include/code_800C9CC.h | 2 ++ include/code_80130A8.h | 1 + include/main_menu.h | 5 ++++- src/code_2.c | 3 +-- src/code_80118A4.c | 1 - src/code_8012A18.c | 3 +-- src/code_8040094.c | 1 - src/ground_main.c | 1 - src/other_menus1.c | 12 ++++++------ src/other_menus2.c | 11 ++++++----- src/rescue_password_menu.c | 16 +++++++--------- 11 files changed, 28 insertions(+), 28 deletions(-) diff --git a/include/code_800C9CC.h b/include/code_800C9CC.h index db62d4d8d..6fcbb5e94 100644 --- a/include/code_800C9CC.h +++ b/include/code_800C9CC.h @@ -4,6 +4,8 @@ #include "input.h" void ReadKeyInput(Inputs *); +void xxx_call_update_bg_sound_input(void); + void sub_800CB20(void); #endif // GUARD_CODE_800D090_H \ No newline at end of file diff --git a/include/code_80130A8.h b/include/code_80130A8.h index c87d41430..199c7aeb3 100644 --- a/include/code_80130A8.h +++ b/include/code_80130A8.h @@ -16,6 +16,7 @@ extern void sub_8014114(void); extern void sub_80141B4(const u8 *, u32, OpenedFile **, u32); extern void sub_8014248(const u8 *, u32, u32, const MenuItem *, void *, u32, u32, OpenedFile **, u32); extern s32 sub_80144A4(s32 *); +extern void xxx_draw_string_80144C4(void); extern void xxx_format_and_draw(u32, u32, const u8 *, u32, u32); #endif // GUARD_CODE_80130A8_H \ No newline at end of file diff --git a/include/main_menu.h b/include/main_menu.h index f08b1df1f..6bb68c7f2 100644 --- a/include/main_menu.h +++ b/include/main_menu.h @@ -75,11 +75,14 @@ MainMenu *GetMainMenu(void); void InitMainMenu(void); void SetMenuItems(MenuStruct *, UnkTextStruct2 *, s32, const UnkTextStruct2 *, const MenuItem *, u8, u32, u32); void SetUpMenu(void); +s32 UpdateMenu(void); + void sub_8035CC0(UnkTextStruct2 *, u32); void sub_8035CF4(MenuStruct*, u32, bool8); +s16 sub_8035D3C(void); +s32 sub_8035D74(void); unkStruct_8035D94 *sub_8035D94(void); void sub_8035DA0(void); bool8 sub_80363E0(void); -s32 UpdateMenu(void); #endif // GUARD_MAIN_MENU_H diff --git a/src/code_2.c b/src/code_2.c index 2a8969fe2..755cf17b0 100644 --- a/src/code_2.c +++ b/src/code_2.c @@ -5,6 +5,7 @@ #include "code_8009804.h" #include "code_800C9CC.h" #include "code_80118A4.h" +#include "code_80130A8.h" #include "code_8094F88.h" #include "code_8097670.h" #include "constants/bg_music.h" @@ -45,11 +46,9 @@ extern s32 GetFirstIndexofMailType(u8); extern void nullsub_33(void); extern u32 sub_80009D0(u32); -extern void xxx_draw_string_80144C4(void); extern void nullsub_8(u32); extern void sub_80060EC(void); extern void xxx_call_update_bg_vram(void); -extern void xxx_call_update_bg_sound_input(void); extern u32 gUnknown_203B03C; extern u16 gUnknown_2026E4E; diff --git a/src/code_80118A4.c b/src/code_80118A4.c index 3363a047d..dc68f08a4 100644 --- a/src/code_80118A4.c +++ b/src/code_80118A4.c @@ -40,7 +40,6 @@ EWRAM_DATA s16 gUnknown_202DE24; void nullsub_8(u32); extern void xxx_call_update_bg_vram(void); -extern void xxx_call_update_bg_sound_input(void); extern bool8 sub_80111C4(); extern void sub_8010F28(); diff --git a/src/code_8012A18.c b/src/code_8012A18.c index fb8cd4d86..d6cdb40dc 100644 --- a/src/code_8012A18.c +++ b/src/code_8012A18.c @@ -4,14 +4,13 @@ #include "code_8009804.h" #include "code_800C9CC.h" #include "code_80118A4.h" +#include "code_80130A8.h" #include "game_options.h" #include "input.h" #include "sprite.h" -extern void xxx_draw_string_80144C4(); extern void nullsub_8(u8); extern void xxx_call_update_bg_vram(); -extern void xxx_call_update_bg_sound_input(); extern GameOptions *gGameOptionsRef; diff --git a/src/code_8040094.c b/src/code_8040094.c index 6fcf9e214..83b43865c 100644 --- a/src/code_8040094.c +++ b/src/code_8040094.c @@ -18,7 +18,6 @@ extern struct FileArchive gDungeonFileArchive; extern OpenedFile *gUnknown_202EE04; extern void sub_803F7BC(void); -extern void xxx_call_update_bg_sound_input(void); extern void sub_803F580(u32); extern void sub_8049ED4(); diff --git a/src/ground_main.c b/src/ground_main.c index 8b4c3b4cb..9476cffe5 100644 --- a/src/ground_main.c +++ b/src/ground_main.c @@ -44,7 +44,6 @@ extern void sub_809B638(); extern void nullsub_106(); extern void sub_80A73EC(); extern void sub_8099750(); -extern void xxx_call_update_bg_sound_input(); extern void sub_80A6E68(); extern void GroundMap_Action(); extern void nullsub_124(); diff --git a/src/other_menus1.c b/src/other_menus1.c index 7e8948a1d..9142e7da6 100644 --- a/src/other_menus1.c +++ b/src/other_menus1.c @@ -4,6 +4,7 @@ #include "code_8009804.h" #include "code_800C9CC.h" #include "code_80118A4.h" +#include "code_80130A8.h" #include "constants/communication_error_codes.h" #include "dungeon_global_data.h" #include "input.h" @@ -20,14 +21,13 @@ EWRAM_DATA_2 unkStruct_203B35C *sUnknown_203B35C = {0}; #include "data/other_menus1.h" -extern void sub_8037900(void); -extern void xxx_call_update_bg_vram(); -extern void xxx_call_update_bg_sound_input(); +// other_menus1.s extern void sub_8037810(void); +extern void sub_8037900(void); +// text.s +extern void xxx_call_update_bg_vram(); +// other_menus2.s extern s32 sub_8037B28(u32); -s32 sub_8035D3C(void); -extern s32 sub_8035D74(void); -extern void xxx_draw_string_80144C4(void); static void sub_80371B8(void); static void sub_8037400(void); diff --git a/src/other_menus2.c b/src/other_menus2.c index 65cea2e02..7069b3707 100644 --- a/src/other_menus2.c +++ b/src/other_menus2.c @@ -20,14 +20,15 @@ extern struct UnkStruct_203B184 *gUnknown_203B184; #include "data/other_menus2.h" -extern void sub_800D494(void); +// code_800D090.s extern s32 sub_800D33C(void); -extern void sub_800D520(void); -extern u8 sub_800D600(void); -extern void sub_800D59C(s32 *, u32); -extern void sub_800D570(void); +extern void sub_800D494(void); extern void sub_800D510(void); +extern void sub_800D520(void); +extern void sub_800D570(void); extern u8 sub_800D588(void); +extern void sub_800D59C(s32 *, u32); +extern u8 sub_800D600(void); extern void sub_800D670(u32, s32 *, u32); extern void sub_800D68C(u32); diff --git a/src/rescue_password_menu.c b/src/rescue_password_menu.c index 6eedd34b8..bad35cafe 100644 --- a/src/rescue_password_menu.c +++ b/src/rescue_password_menu.c @@ -1,18 +1,18 @@ #include "global.h" -#include "memory.h" +#include "code_80130A8.h" +#include "code_8094F88.h" +#include "dungeon.h" #include "input.h" #include "items.h" -#include "menu.h" +#include "main_menu.h" +#include "memory.h" +#include "menu_input.h" #include "pokemon.h" +#include "rescue_password_menu.h" #include "save.h" #include "text1.h" #include "text2.h" -#include "main_menu.h" -#include "rescue_password_menu.h" -#include "code_8094F88.h" #include "wonder_mail.h" -#include "menu_input.h" -#include "dungeon.h" #define RESCUE_PASSWORD_SIZE 0x36 @@ -242,7 +242,6 @@ ALIGNED(4) const u8 sUnknown_80E75CC[] = _("{CENTER_ALIGN}There is no space for static const u8 fill0[] = "pksdir0"; -extern s32 sub_8035D74(void); extern void sub_80151C0(u32, u8 *); extern void sub_8031D70(u32, u32); extern void sub_80155F0(void); @@ -250,7 +249,6 @@ extern void sub_8031E10(void); extern u32 sub_80154F0(void); extern u32 sub_8031DCC(void); extern void sub_8031E00(void); -extern void xxx_draw_string_80144C4(void); void DisplayRescuePasswordError(u32 error); void sub_8039174(void); From 016b518c7d48da463b03a9ec5c5f90b931d17553 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sun, 10 Sep 2023 07:12:39 -0400 Subject: [PATCH 04/47] Split out common_strings.s --- data/common_strings.s | 2623 ++++++++++++++++++++++++++++ data/data_80D47B8.s | 3071 +-------------------------------- data/data_80DAF70.s | 444 +++++ ld_script.txt | 2 + src/code_8012A18_1.c | 8 +- src/code_801B60C.c | 12 +- src/code_801C620.c | 4 +- src/code_801D760.c | 12 +- src/code_8023144.c | 8 +- src/debug_menu2.c | 6 +- src/debug_menu3.c | 6 +- src/felicity_bank.c | 56 +- src/friend_area_action_menu.c | 12 +- src/friend_list_menu.c | 4 +- src/gulpin_shop.c | 20 +- src/gulpin_shop_801FB50.c | 70 +- src/hints_menu.c | 8 +- src/kangaskhan_storage1.c | 74 +- src/kangaskhan_storage2.c | 22 +- src/kecleon_bros1.c | 82 +- src/luminous_cave.c | 18 +- src/mailbox.c | 8 +- src/makuhita_dojo1.c | 33 +- src/menu_input.c | 2 +- src/options_menu.c | 10 +- src/party_list_menu.c | 14 +- src/pelipper_board.c | 8 +- src/wigglytuff_shop.c | 76 +- src/wonder_mail_3.c | 32 +- src/wonder_mail_3_mid.c | 4 +- 30 files changed, 3376 insertions(+), 3373 deletions(-) create mode 100644 data/common_strings.s create mode 100644 data/data_80DAF70.s diff --git a/data/common_strings.s b/data/common_strings.s new file mode 100644 index 000000000..37d282884 --- /dev/null +++ b/data/common_strings.s @@ -0,0 +1,2623 @@ + .section .rodata + +@ START [some global strings. Probably had many entries per ptr because of languages, but USA release is english-only. Check other roms] + .align 2,0 +.string "pksdir0\0" + + .global Yes_80D491C + Yes_80D491C: + .string "Yes\0" + + .global gCommonYes +gCommonYes: @ 80D4920 + .4byte Yes_80D491C + + .global No_80D4924 + No_80D4924: + .string "No\0" + .align 2,0 + + .global gCommonNo +gCommonNo: @ 80D4928 + .4byte No_80D4924 + + .global CancelText + CancelText: + .string "Cancel\0" + .align 2,0 + + .global gCommonCancel +gCommonCancel: @ 80D4934 + .4byte CancelText + + .global TrashText + TrashText: + .string "Trash \0" + .align 2,0 + + .global gCommonTrash +gCommonTrash: @ 80D4940 + .4byte TrashText + + .global DeleteText + DeleteText: + .string "Delete\0" + .align 2,0 + + .global gCommonDelete +gCommonDelete: @ 80D494C + .4byte DeleteText + + .global StoreText + StoreText: + .string "Store\0" + .align 2,0 + + .global gCommonStore +gCommonStore: @ 80D4958 + .4byte StoreText + + .global TakeText + TakeText: + .string "Take\0" + .align 2,0 + + .global gCommonTake +gCommonTake: @ 80D4964 + .4byte TakeText + + .global InfoText + InfoText: + .string "Info\0" + .align 2,0 + + .global gCommonInfo +gCommonInfo: @ 80D4970 + .4byte InfoText + + .global BuyText + BuyText: + .string "Buy\0" + .align 2,0 + + .global gCommonBuy +gCommonBuy: @ 80D4978 + .4byte BuyText + + .global SellText + SellText: + .string "Sell \0" + .align 2,0 + + .global gCommonSell +gCommonSell: @ 80D4984 + .4byte SellText + + .global AcceptText + AcceptText: + .string "Accept\0" + .align 2,0 + + .global gCommonAccept +gCommonAccept: @ 80D4990 + .4byte AcceptText + + .global WigglytuffCheck + WigglytuffCheck: + .string "Check\0" + .align 2,0 + + .global gCommonCheck +gCommonCheck: @ 80D499C + .4byte WigglytuffCheck + + .global FriendText + FriendText: + .string "Friend\0" + .align 2,0 + + .global gCommonFriend +gCommonFriend: @ 80D49A8 + .4byte FriendText + + .global ExitText + ExitText: + .string "Exit\0" + .align 2,0 + + .global gCommonExit +gCommonExit: @ 80D49B4 + .4byte ExitText + + .global QuestionMarkText + QuestionMarkText: + .string "???\0" + .align 2,0 + + .global gCommonTripleQuestionMark +gCommonTripleQuestionMark: @ 80D49BC + .4byte QuestionMarkText + + .global FelicityDeposit + FelicityDeposit: + .string "Deposit?\0" + .align 2,0 + + .global gCommonDepositPrompt +gCommonDepositPrompt: @ 80D49CC + .4byte FelicityDeposit + + .global FelicityWithdraw + FelicityWithdraw: + .string "Withdraw?\0" + .align 2,0 + + .global gCommonWithdrawPrompt +gCommonWithdrawPrompt: @ 80D49DC + .4byte FelicityWithdraw + + .global gCommonFelicity +gCommonFelicity: @ 80D49E0 (Felicity Bank Dialogue) + .4byte gUnknown_80D53E0 + .4byte gUnknown_80D53C8 + .4byte gUnknown_80D538C + .4byte gUnknown_80D5380 + .4byte gUnknown_80D5364 + .4byte gUnknown_80D5364 + .4byte gUnknown_80D5340 + .4byte gUnknown_80D52F8 + .4byte gUnknown_80D527C + .4byte gUnknown_80D5244 + .4byte gUnknown_80D5224 + .4byte gUnknown_80D51DC + .4byte gUnknown_80D5184 + .4byte gUnknown_80D5158 + .4byte gUnknown_80D4FC8 + .4byte gUnknown_80D4F94 + .4byte gUnknown_80D4F74 + .4byte gUnknown_80D4F24 + .4byte gUnknown_80D4F08 + .4byte gUnknown_80D4EDC + .4byte gUnknown_80D4EB0 + .4byte gUnknown_80D4E84 + .4byte gUnknown_80D4E28 + .4byte gUnknown_80D4D8C + .4byte gUnknown_80D4D44 + .4byte gUnknown_80D4D20 + .4byte gUnknown_80D4CC0 + .4byte gUnknown_80D4C50 + .4byte gUnknown_80D4C14 + .4byte gUnknown_80D4A58 + + .global gUnknown_80D4A58 +gUnknown_80D4A58: + .string " Sssnore...\n" + .string "Ah{COMMA} you wish to know how the bank\n" + .string "operates... Very well...{EXTRA_MSG}" + .string " Zzz...\n" + .string "If you{APOSTROPHE}re defeated in a dungeon{COMMA}\n" + .string "you{APOSTROPHE}ll lose all your money. Did you know?{EXTRA_MSG}" + .string " Purr...\n" + .string "But{COMMA} you{APOSTROPHE}ve nothing to fear if you leave\n" + .string "your money with Felicity Bank...{EXTRA_MSG}" + .string " Meow... Even if you\n" + .string "return defeated from a dungeon{COMMA} your\n" + .string "money will be safe with me...{EXTRA_MSG}" + .string " Sssnore...\n" + .string "I assure you{COMMA} my bank will keep your\n" + .string "money safe...{EXTRA_MSG}" + .string " Zzz...\n" + .string "Simple{COMMA} isn{APOSTROPHE}t it...?\0" + .align 2, 0 + + .global gUnknown_80D4C14 +gUnknown_80D4C14: + .string " {POKE}... Purr...\n" + .string "Very well{COMMA} {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" + .string "Here you are.\0" + .align 2, 0 + + .global gUnknown_80D4C50 +gUnknown_80D4C50: + .string " Fnarf? Hunh...?{EXTRA_MSG}" + .string " Purr... I so do apologize{COMMA}\n" + .string "but you couldn{APOSTROPHE}t possibly carry any more\n" + .string "money with you...\0" + .align 2, 0 + + .global gUnknown_80D4CC0 +gUnknown_80D4CC0: + .string " Fnarf? Meow...?{EXTRA_MSG}" + .string " Purr...\n" + .string "I so hate to disappoint{COMMA} but you have no\n" + .string "money saved with me...\0" + .align 2, 0 + + .global gUnknown_80D4D20 +gUnknown_80D4D20: + .string " Zzz...\n" + .string "How much will you withdraw?\0" + .align 2, 0 + + .global gUnknown_80D4D44 +gUnknown_80D4D44: + .string " Zzz...\n" + .string "{COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}... Very well...{WAIT_PRESS}\n" + .string "I will guard it jealously...\0" + .align 2, 0 + + .global gUnknown_80D4D8C +gUnknown_80D4D8C: + .string " Fnarf? Purr...\n" + .string "Meow! All this money...{WAIT_PRESS}\n" + .string "Our safe is about to burst...{EXTRA_MSG}" + .string " Purr...\n" + .string "I am so sorry to say{COMMA} but I can{APOSTROPHE}t accept\n" + .string "any more of your money...\0" + .align 2, 0 + + .global gUnknown_80D4E28 +gUnknown_80D4E28: + .string " Sssnore... Hmm?{EXTRA_MSG}" + .string " Zzz...\n" + .string "I{APOSTROPHE}m so sorry to say{COMMA} but you appear not\n" + .string "to have any money...\0" + .align 2, 0 + + .global gUnknown_80D4E84 +gUnknown_80D4E84: + .string " Purr...\n" + .string "How much do you wish to deposit?\0" + .align 2, 0 + + .global gUnknown_80D4EB0 +gUnknown_80D4EB0: + .string " Zzz... Meow...\n" + .string "I await your next visit...\0" + .align 2, 0 + + .global gUnknown_80D4EDC +gUnknown_80D4EDC: + .string " Zzz... Purr...\n" + .string "I await your next visit...\0" + .align 2, 0 + + .global gUnknown_80D4F08 +gUnknown_80D4F08: + .string " Sssnore...\n" + .string "Very well...\0" + .align 2, 0 + + .global gUnknown_80D4F24 +gUnknown_80D4F24: + .string " Sssnore... Purr...\n" + .string "Your account contains {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}...\n" + .string "How may I serve you?\0" + .align 2, 0 + + .global gUnknown_80D4F74 +gUnknown_80D4F74: + .string " Zzz...\n" + .string "How may I serve you?\0" + .align 2, 0 + + .global gUnknown_80D4F94 +gUnknown_80D4F94: + .string " Ssssnore... Welcome...\n" + .string "This is Felicity Bank...\0" + .align 2, 0 + + .global gUnknown_80D4FC8 +gUnknown_80D4FC8: + .string " Ah{COMMA} you wish to know how\n" + .string "the bank operates. Very well.{EXTRA_MSG}" + .string " If you are defeated\n" + .string "in a dungeon{COMMA} you{APOSTROPHE}ll lose all your money.\n" + .string "Did you know that?{EXTRA_MSG}" + .string " But you can avoid that!{WAIT_PRESS}\n" + .string "You{APOSTROPHE}ve nothing to fear if you leave your\n" + .string "money with Felicity Bank.{EXTRA_MSG}" + .string " Even if you return\n" + .string "defeated from a dungeon{COMMA} your money will\n" + .string "be safe with me!{EXTRA_MSG}" + .string " I assure you{COMMA} my bank\n" + .string "will keep your money safe.{EXTRA_MSG}" + .string " Simple{COMMA} isn{APOSTROPHE}t it?\0" + .align 2, 0 + + .global gUnknown_80D5158 +gUnknown_80D5158: + .string " Very well{COMMA} {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" + .string "Here you are.\0" + .align 2, 0 + + .global gUnknown_80D5184 +gUnknown_80D5184: + .string " Oh?{WAIT_PRESS} I do so apologize{COMMA}\n" + .string "but you couldn{APOSTROPHE}t possibly carry any more\n" + .string "money with you.\0" + .align 2, 0 + + .global gUnknown_80D51DC +gUnknown_80D51DC: + .string " Oh?{WAIT_PRESS} I so hate to disappoint{COMMA}\n" + .string "but you have no money saved with me.\0" + .align 2, 0 + + .global gUnknown_80D5224 +gUnknown_80D5224: + .string " How much will you\n" + .string "withdraw?\0" + .align 2, 0 + + .global gUnknown_80D5244 +gUnknown_80D5244: + .string " {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}. Very well.{WAIT_PRESS}\n" + .string "I will guard it jealously.\0" + .align 2, 0 + + .global gUnknown_80D527C +gUnknown_80D527C: + .string " Meow! All this money!{WAIT_PRESS}\n" + .string "Our safe is about to burst!{EXTRA_MSG}" + .string " I am so sorry to say{COMMA} but\n" + .string "I can{APOSTROPHE}t accept any more of your money!\0" + .align 2, 0 + + .global gUnknown_80D52F8 +gUnknown_80D52F8: + .string " Oh?{WAIT_PRESS} I{APOSTROPHE}m so sorry to say{COMMA}\n" + .string "but you appear not to have any money.\0" + .align 2, 0 + + .global gUnknown_80D5340 +gUnknown_80D5340: + .string " How much do you wish to\n" + .string "deposit?\0" + .align 2, 0 + + .global gUnknown_80D5364 +gUnknown_80D5364: + .string " I await your next visit.\0" + .align 2, 0 + + .global gUnknown_80D5380 +gUnknown_80D5380: + .string " Very well.\0" + .align 2, 0 + + .global gUnknown_80D538C +gUnknown_80D538C: + .string " Your account contains\n" + .string "{COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" + .string "How may I serve you?\0" + .align 2, 0 + + .global gUnknown_80D53C8 +gUnknown_80D53C8: + .string " How may I serve you?\0" + .align 2, 0 + + .global gUnknown_80D53E0 +gUnknown_80D53E0: + .string " Welcome.\n" + .string "This is Felicity Bank.\0" + .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 + .4byte gUnknown_80D7958 + .4byte gUnknown_80D7934 + .4byte gUnknown_80D78F8 + .4byte gUnknown_80D78CC + .4byte gUnknown_80D788C + .4byte gUnknown_80D785C + .4byte gUnknown_80D7830 + .4byte gUnknown_80D780C + .4byte gUnknown_80D77C0 + .4byte gUnknown_80D776C + .4byte gUnknown_80D7740 + .4byte gUnknown_80D76D4 + .4byte gUnknown_80D76A8 + .4byte gUnknown_80D7640 + .4byte gUnknown_80D7610 + .4byte gUnknown_80D75E0 + .4byte gUnknown_80D75AC + .4byte gUnknown_80D7560 + .4byte gUnknown_80D7524 + .4byte gUnknown_80D74DC + .4byte gUnknown_80D7480 + .4byte gUnknown_80D72B8 + .4byte gUnknown_80D72A0 + .4byte gUnknown_80D7270 + .4byte gUnknown_80D7250 + .4byte gUnknown_80D7228 + .4byte gUnknown_80D7204 + .4byte gUnknown_80D71CC + .4byte gUnknown_80D71B0 + .4byte gUnknown_80D7184 + .4byte gUnknown_80D7154 + .4byte gUnknown_80D7108 + .4byte gUnknown_80D70B4 + .4byte gUnknown_80D7090 + .4byte gUnknown_80D7064 + .4byte gUnknown_80D7038 + .4byte gUnknown_80D6FD4 + .4byte gUnknown_80D6F8C + .4byte gUnknown_80D6F4C + .4byte gUnknown_80D6F18 + .4byte gUnknown_80D6EEC + .4byte gUnknown_80D6EA4 + .4byte gUnknown_80D6E78 + .4byte gUnknown_80D6E30 + .4byte gUnknown_80D6D98 + .4byte gUnknown_80D6D5C + .4byte gUnknown_80D6D38 + .4byte gUnknown_80D6D08 + .4byte gUnknown_80D6CB8 + .4byte gUnknown_80D6C90 + .4byte gUnknown_80D6C48 + .4byte gUnknown_80D6C1C + .4byte gUnknown_80D7830 + .4byte gUnknown_80D6BF4 + .4byte gUnknown_80D6BA0 + .4byte gUnknown_80D6B50 + .4byte gUnknown_80D6B18 + .4byte gUnknown_80D6AAC + .4byte gUnknown_80D6A74 + .4byte gUnknown_80D6A04 + .4byte gUnknown_80D69B0 + .4byte gUnknown_80D6980 + .4byte gUnknown_80D6938 + .4byte gUnknown_80D68E0 + .4byte gUnknown_80D68A4 + .4byte gUnknown_80D6868 + .4byte gUnknown_80D6818 + .4byte gUnknown_80D6564 + .4byte gUnknown_80D6544 + .4byte gUnknown_80D652C + .4byte gUnknown_80D6508 + .4byte gUnknown_80D64E8 + .4byte gUnknown_80D64C0 + .4byte gUnknown_80D6494 + .4byte gUnknown_80D6478 + .4byte gUnknown_80D6450 + .4byte gUnknown_80D6420 + .4byte gUnknown_80D63E8 + .4byte gUnknown_80D6394 + .4byte gUnknown_80D6364 + .4byte gUnknown_80D6338 + .4byte gUnknown_80D630C + .4byte gUnknown_80D62B0 + .4byte gUnknown_80D627C + .4byte gUnknown_80D6250 + .4byte gUnknown_80D6204 + .4byte gUnknown_80D61D4 + .4byte gUnknown_80D61B0 + .4byte gUnknown_80D6168 + .4byte gUnknown_80D6128 + .4byte gUnknown_80D6038 + + .global gUnknown_80D6038 +gUnknown_80D6038: + .string " Zzz... Reep reep...\n" + .string "Wonder Orbs are convenient...{EXTRA_MSG}" + .string " Zzzzzz...\n" + .string "They disappear after one use...{EXTRA_MSG}" + .string " Zzz... And moves...\n" + .string "They are ultimate...{EXTRA_MSG}" + .string " Zzz... Eep...\n" + .string "Learn moves with Technical Machines...{EXTRA_MSG}" + .string " Zzz...\n" + .string "My good wares...\n" + .string "Come buy... Reep...\0" + .align 2, 0 + + .global gUnknown_80D6128 +gUnknown_80D6128: + .string " Zzz... Eep? No{COMMA} no...{WAIT_PRESS}\n" + .string "You cannot hold any more money...\0" + .align 2, 0 + + .global gUnknown_80D6168 +gUnknown_80D6168: + .string " Zzz... Hunh? Wha--? Whoa!{WAIT_PRESS}\n" + .string "I... I can{APOSTROPHE}t accept anything like that!\0" + .align 2, 0 + + .global gUnknown_80D61B0 +gUnknown_80D61B0: + .string " Reep...? Eep!{WAIT_PRESS}\n" + .string "Not enough money!\0" + .align 2, 0 + + .global gUnknown_80D61D4 +gUnknown_80D61D4: + .string " Zzz... Uh-oh...{WAIT_PRESS}\n" + .string "All gone!\n" + .string "I am sold out...\0" + .align 2, 0 + + .global gUnknown_80D6204 +gUnknown_80D6204: + .string " Zzz... Hunh? Oh...{WAIT_PRESS}\n" + .string "Reep... No room... Reep...\n" + .string "No room for my wares...\0" + .align 2, 0 + + .global gUnknown_80D6250 +gUnknown_80D6250: + .string " Zzzzzz... Oh?{WAIT_PRESS}\n" + .string "You{APOSTROPHE}ve got nothing...\0" + .align 2, 0 + + .global gUnknown_80D627C +gUnknown_80D627C: + .string " Zzz... Oh...?{WAIT_PRESS}\n" + .string "You have nothing to sell...\n" + .string "Hunh?\0" + .align 2, 0 + + .global gUnknown_80D62B0 +gUnknown_80D62B0: + .string " Eep...? Zzz...\n" + .string "You have too much money!{EXTRA_MSG}" + .string " Zzz... Eh?\n" + .string "You can{APOSTROPHE}t hold any more money...\0" + .align 2, 0 + + .global gUnknown_80D630C +gUnknown_80D630C: + .string " Reep eep! Oh?{WAIT_PRESS}\n" + .string "Eep...?\n" + .string "You have no money?\0" + .align 2, 0 + + .global gUnknown_80D6338 +gUnknown_80D6338: + .string " ...{WAIT_PRESS}Zzz...\n" + .string "I am all sold out... Sorry...\0" + .align 2, 0 + + .global gUnknown_80D6364 +gUnknown_80D6364: + .string " Fine... Reep reep...\n" + .string "Done deal!\n" + .string "Thank you...\0" + .align 2, 0 + + .global gUnknown_80D6394 +gUnknown_80D6394: + .string " Zzz... Reep{COMMA} what...?\n" + .string "For all that I can buy{COMMA} I will pay\n" + .string "{COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}... OK?\0" + .align 2, 0 + + .global gUnknown_80D63E8 +gUnknown_80D63E8: + .string " Zzzzzz... Zzzzzz...?\n" + .string "{COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}?\n" + .string "Is {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE} OK?\0" + .align 2, 0 + + .global gUnknown_80D6420 +gUnknown_80D6420: + .string " Reep reep... Eep...\n" + .string "Anything else for sale?\0" + .align 2, 0 + + .global gUnknown_80D6450 +gUnknown_80D6450: + .string " Zzz... Eep...?\n" + .string "What will you sell...?\0" + .align 2, 0 + + .global gUnknown_80D6478 +gUnknown_80D6478: + .string " Zzz... Reep!\n" + .string "Thank you...\0" + .align 2, 0 + + .global gUnknown_80D6494 +gUnknown_80D6494: + .string " Zzzzzz...\n" + .string "{COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1} is {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}...\n" + .string "OK?\0" + .align 2, 0 + + .global gUnknown_80D64C0 +gUnknown_80D64C0: + .string " Anything? Zzz...\n" + .string "Buying anything else?\0" + .align 2, 0 + + .global gUnknown_80D64E8 +gUnknown_80D64E8: + .string " Ah... Zzz...\n" + .string "My merchandise...\0" + .align 2, 0 + + .global gUnknown_80D6508 +gUnknown_80D6508: + .string " Thank... Reep eep...\n" + .string "Come again...\0" + .align 2, 0 + + .global gUnknown_80D652C +gUnknown_80D652C: + .string " Reep...\n" + .string "Anything else?\0" + .align 2, 0 + + .global gUnknown_80D6544 +gUnknown_80D6544: + .string " Zzzzzz...\n" + .string "This is...my shop...\0" + .align 2, 0 + + .global gUnknown_80D6564 +gUnknown_80D6564: + .string " Wonder Orbs are very{COMMA}\n" + .string "very convenient〜♪{EXTRA_MSG}" + .string " However{COMMA} they disappear\n" + .string "after one use...{WAIT_PRESS}\n" + .string "But they are useful in a pinch!{EXTRA_MSG}" + .string " Use them cleverly{COMMA} and your\n" + .string "adventures will be made much easier〜♪{EXTRA_MSG}" + .string " And moves...{WAIT_PRESS}\n" + .string "They are the ultimate power!{EXTRA_MSG}" + .string " Smash rocks!{WAIT_PRESS} Fly!{WAIT_PRESS}\n" + .string "There are many kinds of moves{COMMA} all of\n" + .string "them dynamic{COMMA} yet elegant!{EXTRA_MSG}" + .string " There are even moves of\n" + .string "obscure rarity...{WAIT_PRESS}\n" + .string "Simply gorgeous{COMMA} they are!{EXTRA_MSG}" + .string " Now{COMMA} we have these moves!{WAIT_PRESS}\n" + .string "They can be learned using our Technical\n" + .string "Machines{COMMA} or TMs for short!{EXTRA_MSG}" + .string " You see?\n" + .string "Isn{APOSTROPHE}t it exciting? Even dreamy?{EXTRA_MSG}" + .string " Why{COMMA} it gets me so excited{COMMA}\n" + .string "my color has turned a rosy tint!{EXTRA_MSG}" + .string " I do hope you will shop\n" + .string "with us--me and my brother next to\n" + .string "me!\0" + .align 2, 0 + + .global gUnknown_80D6818 +gUnknown_80D6818: + .string " Oh{COMMA} no{COMMA} no!{WAIT_PRESS}\n" + .string "My friend{COMMA} you cannot add to your money!\n" + .string "I cannot do this.\0" + .align 2, 0 + + .global gUnknown_80D6868 +gUnknown_80D6868: + .string " Whoa{COMMA} whoa!{WAIT_PRESS}\n" + .string "I... I can{APOSTROPHE}t accept anything like that!\0" + .align 2, 0 + + .global gUnknown_80D68A4 +gUnknown_80D68A4: + .string " Eep! Oh{COMMA} dear!{WAIT_PRESS}\n" + .string "You{APOSTROPHE}re short on money{COMMA} my friend!\0" + .align 2, 0 + + .global gUnknown_80D68E0 +gUnknown_80D68E0: + .string " Oh? Uh-oh!{WAIT_PRESS}\n" + .string "My shelves are bare of wares!{EXTRA_MSG}" + .string " I am completely sold out{COMMA}\n" + .string "my friend!\0" + .align 2, 0 + + .global gUnknown_80D6938 +gUnknown_80D6938: + .string " Oh{COMMA} dear me!{WAIT_PRESS}\n" + .string "My friend{COMMA} you{APOSTROPHE}ve run out of space for\n" + .string "my wares!\0" + .align 2, 0 + + .global gUnknown_80D6980 +gUnknown_80D6980: + .string " Oh?{WAIT_PRESS}\n" + .string "My friend{COMMA} you seem to have nothing?\0" + .align 2, 0 + + .global gUnknown_80D69B0 +gUnknown_80D69B0: + .string " Oh{COMMA} oh{COMMA} oh?{WAIT_PRESS}\n" + .string "My friend{COMMA} you seem to not have anything\n" + .string "that you can sell?\0" + .align 2, 0 + + .global gUnknown_80D6A04 +gUnknown_80D6A04: + .string " Oh{COMMA} my{COMMA} my!\n" + .string "My friend{COMMA} you have too much money!{EXTRA_MSG}" + .string " You can{APOSTROPHE}t carry any more\n" + .string "money than you have now.\0" + .align 2, 0 + + .global gUnknown_80D6A74 +gUnknown_80D6A74: + .string " Oh?{WAIT_PRESS}\n" + .string "My friend{COMMA} you seem not to have\n" + .string "enough money?\0" + .align 2, 0 + + .global gUnknown_80D6AAC +gUnknown_80D6AAC: + .string " ...{WAIT_PRESS}I am all out of wares...\n" + .string "I am so sorry{COMMA} my friend...{EXTRA_MSG}" + .string " Tomorrow!\n" + .string "Tomorrow I shall have more wares!\0" + .align 2, 0 + + .global gUnknown_80D6B18 +gUnknown_80D6B18: + .string " Fine{COMMA} fine{COMMA} we have a deal!\n" + .string "Thank you so much〜♪ \0" + .align 2, 0 + + .global gUnknown_80D6B50 +gUnknown_80D6B50: + .string " For all that I can buy{COMMA} I can\n" + .string "offer you {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" + .string "Is that acceptable?\0" + .align 2, 0 + + .global gUnknown_80D6BA0 +gUnknown_80D6BA0: + .string " {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}{COMMA} you say?\n" + .string "For that{COMMA} I can offer {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" + .string "Is that acceptable?\0" + .align 2, 0 + + .global gUnknown_80D6BF4 +gUnknown_80D6BF4: + .string " Do you wish to sell me\n" + .string "anything else?\0" + .align 2, 0 + + .global gUnknown_80D6C1C +gUnknown_80D6C1C: + .string " Thank you so much〜♪\n" + .string "A very good choice!\0" + .align 2, 0 + + .global gUnknown_80D6C48 +gUnknown_80D6C48: + .string " {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}{COMMA} you say?\n" + .string "That will be {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" + .string "Is that acceptable?\0" + .align 2, 0 + + .global gUnknown_80D6C90 +gUnknown_80D6C90: + .string " Do you wish to purchase\n" + .string "anything else?\0" + .align 2, 0 + + .global gUnknown_80D6CB8 +gUnknown_80D6CB8: + .string " Ah{COMMA} very well!\n" + .string "Do examine my merchandise.\n" + .string "I have chosen it with pride〜♪ \0" + .align 2, 0 + + .global gUnknown_80D6D08 +gUnknown_80D6D08: + .string " Thank you so much!\n" + .string "Please do visit again〜♪ \0" + .align 2, 0 + + .global gUnknown_80D6D38 +gUnknown_80D6D38: + .string " May I assist you in any\n" + .string "other way?\0" + .align 2, 0 + + .global gUnknown_80D6D5C +gUnknown_80D6D5C: + .string " Welcome to Kecleon Wares!\n" + .string "The shop for Orbs and TMs〜♪ \0" + .align 2, 0 + + .global gUnknown_80D6D98 +gUnknown_80D6D98: + .string " Zzzzzz...\n" + .string "I sell items...{EXTRA_MSG}" + .string " Items... Meep meep...\n" + .string "Are useful in dungeons...{EXTRA_MSG}" + .string " Use... Zzz... Huh...?\n" + .string "Your imagination...and be clever...\n" + .string "With them...\0" + .align 2, 0 + + .global gUnknown_80D6E30 +gUnknown_80D6E30: + .string " Zzz... Hunh{COMMA} what...?{WAIT_PRESS}\n" + .string "Zzz... You can{APOSTROPHE}t hold any more money...\0" + .align 2, 0 + + .global gUnknown_80D6E78 +gUnknown_80D6E78: + .string " Zzz... Whoa...{WAIT_PRESS}\n" + .string "I... I can{APOSTROPHE}t take that!\0" + .align 2, 0 + + .global gUnknown_80D6EA4 +gUnknown_80D6EA4: + .string " Zzz... Huh{COMMA} my...!{WAIT_PRESS}\n" + .string "Meep... Meep...\n" + .string "You don{APOSTROPHE}t have enough money!\0" + .align 2, 0 + + .global gUnknown_80D6EEC +gUnknown_80D6EEC: + .string " Zzz... Uh-oh?!{WAIT_PRESS}\n" + .string "Eep!\n" + .string "Sold out! All gone!\0" + .align 2, 0 + + .global gUnknown_80D6F18 +gUnknown_80D6F18: + .string " Zzz... Oh{COMMA} my!{WAIT_PRESS}\n" + .string "Meep... You have no space...\0" + .align 2, 0 + + .global gUnknown_80D6F4C +gUnknown_80D6F4C: + .string " Zzz... Eep...?{WAIT_PRESS}\n" + .string "Meep... You don{APOSTROPHE}t seem to have\n" + .string "anything...?\0" + .align 2, 0 + + .global gUnknown_80D6F8C +gUnknown_80D6F8C: + .string " Zzz... Huh?{WAIT_PRESS}\n" + .string "Meep meep...\n" + .string "You don{APOSTROPHE}t seem to have anything to sell?\0" + .align 2, 0 + + .global gUnknown_80D6FD4 +gUnknown_80D6FD4: + .string " Zzz... Oh{COMMA} my!\n" + .string "You have so much money...!{EXTRA_MSG}" + .string " Zzz... Meep...\n" + .string "You can{APOSTROPHE}t carry any more money...\0" + .align 2, 0 + + .global gUnknown_80D7038 +gUnknown_80D7038: + .string " Hunh?{WAIT_PRESS}\n" + .string "Eep...?\n" + .string "You don{APOSTROPHE}t have money?\0" + .align 2, 0 + + .global gUnknown_80D7064 +gUnknown_80D7064: + .string " ...{WAIT_PRESS} ZZZ!\n" + .string "I{APOSTROPHE}m sold out... Forgive me...\0" + .align 2, 0 + + .global gUnknown_80D7090 +gUnknown_80D7090: + .string " Done... Meep! Deal!\n" + .string "Thank you...\0" + .align 2, 0 + + .global gUnknown_80D70B4 +gUnknown_80D70B4: + .string " Zzzzzz... Zzzzzz...?\n" + .string "I can pay you {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}\n" + .string "for everything I can buy... OK?\0" + .align 2, 0 + + .global gUnknown_80D7108 +gUnknown_80D7108: + .string " Zzzzzz... Zzzzzz...?\n" + .string "Selling that {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}...?\n" + .string "How about {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}?\0" + .align 2, 0 + + .global gUnknown_80D7154 +gUnknown_80D7154: + .string " Zzz... Meep...\n" + .string "Going to sell anything else?\0" + .align 2, 0 + + .global gUnknown_80D7184 +gUnknown_80D7184: + .string " Zzz... Zzz...?\n" + .string "You{APOSTROPHE}re selling what...?\0" + .align 2, 0 + + .global gUnknown_80D71B0 +gUnknown_80D71B0: + .string " Eep! Wah...?\n" + .string "Thank you...\0" + .align 2, 0 + + .global gUnknown_80D71CC +gUnknown_80D71CC: + .string " Zzz... Meep meep...\n" + .string "{COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}...?\n" + .string "{COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}{COMMA} OK?\0" + .align 2, 0 + + .global gUnknown_80D7204 +gUnknown_80D7204: + .string " Buy? Huh{COMMA} eep?\n" + .string "Anything else?\0" + .align 2, 0 + + .global gUnknown_80D7228 +gUnknown_80D7228: + .string " Zzz... Meep... Eep...\n" + .string "Look around...\0" + .align 2, 0 + + .global gUnknown_80D7250 +gUnknown_80D7250: + .string " Thank... Zzz...\n" + .string "Thank you...\0" + .align 2, 0 + + .global gUnknown_80D7270 +gUnknown_80D7270: + .string " Zzz... Meep...\n" + .string "Help you with anything else?\0" + .align 2, 0 + + .global gUnknown_80D72A0 +gUnknown_80D72A0: + .string " Zzzzzz...\n" + .string "Welcome...\0" + .align 2, 0 + + .global gUnknown_80D72B8 +gUnknown_80D72B8: + .string " We{COMMA} the {ARG_POKEMON_6}\n" + .string "Brothers{COMMA} have a passion for selling\n" + .string "items.{EXTRA_MSG}" + .string " Items are useful for your\n" + .string "dungeon adventures.{EXTRA_MSG}" + .string " Use your imagination and\n" + .string "discover innovative uses{COMMA} please.{EXTRA_MSG}" + .string " Ah{COMMA} yes.\n" + .string "If my shop sells out...{EXTRA_MSG}" + .string " New merchandise will\n" + .string "arrive the following day.{EXTRA_MSG}" + .string " Until then{COMMA} please go to\n" + .string "a dungeon and spend some time.\n" + .string "Please visit on your return〜♪{EXTRA_MSG}" + .string " Ah{COMMA} yes. The {ARG_POKEMON_6}\n" + .string "Shop is a nationwide chain.{EXTRA_MSG}" + .string " There are shops even in\n" + .string "dungeons.\n" + .string "Please do visit〜♪ \0" + .align 2, 0 + + .global gUnknown_80D7480 +gUnknown_80D7480: + .string " Oh{COMMA} my!{WAIT_PRESS}\n" + .string "You can{APOSTROPHE}t add any more to your money.\n" + .string "I can{APOSTROPHE}t complete this deal{COMMA} sorry.\0" + .align 2, 0 + + .global gUnknown_80D74DC +gUnknown_80D74DC: + .string " Oh{COMMA} whoa{COMMA} whoa!{WAIT_PRESS}\n" + .string "I... I couldn{APOSTROPHE}t possibly take that from you!\0" + .align 2, 0 + + .global gUnknown_80D7524 +gUnknown_80D7524: + .string " Oh{COMMA} my!{WAIT_PRESS}\n" + .string "Sorry{COMMA} but you don{APOSTROPHE}t have enough money!\0" + .align 2, 0 + + .global gUnknown_80D7560 +gUnknown_80D7560: + .string " Uh-oh?!{WAIT_PRESS}\n" + .string "That{APOSTROPHE}s it! No more merchandise!{EXTRA_MSG}" + .string " I{APOSTROPHE}m completely sold out!\0" + .align 2, 0 + + .global gUnknown_80D75AC +gUnknown_80D75AC: + .string " Oh{COMMA} my!{WAIT_PRESS}\n" + .string "You have no space for any more items!\0" + .align 2, 0 + + .global gUnknown_80D75E0 +gUnknown_80D75E0: + .string " Oh? Oh?{WAIT_PRESS}\n" + .string "You don{APOSTROPHE}t seem to have anything?\0" + .align 2, 0 + + .global gUnknown_80D7610 +gUnknown_80D7610: + .string " Oh? Oh?{WAIT_PRESS}\n" + .string "You seem to have nothing to sell?\0" + .align 2, 0 + + .global gUnknown_80D7640 +gUnknown_80D7640: + .string " Oh{COMMA} my goodness!\n" + .string "You{APOSTROPHE}re overflowing with money!{EXTRA_MSG}" + .string " You couldn{APOSTROPHE}t possibly carry\n" + .string "any more money! \0" + .align 2, 0 + + .global gUnknown_80D76A8 +gUnknown_80D76A8: + .string " Huh?{WAIT_PRESS}\n" + .string "You don{APOSTROPHE}t seem to have the money?\0" + .align 2, 0 + + .global gUnknown_80D76D4 +gUnknown_80D76D4: + .string " ...{WAIT_PRESS}I{APOSTROPHE}m sold out...\n" + .string "Please{COMMA} forgive me.{EXTRA_MSG}" + .string " I will have new merchandise\n" + .string "for you tomorrow{COMMA} I swear!\0" + .align 2, 0 + + .global gUnknown_80D7740 +gUnknown_80D7740: + .string " Good! Done deal!\n" + .string "Thank you so much〜♪ \0" + .align 2, 0 + + .global gUnknown_80D776C +gUnknown_80D776C: + .string " For everything I can buy{COMMA}\n" + .string "I can offer {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" + .string "Is that acceptable to you?\0" + .align 2, 0 + + .global gUnknown_80D77C0 +gUnknown_80D77C0: + .string " {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}?\n" + .string "I can offer you {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" + .string "Will you sell it for that price?\0" + .align 2, 0 + + .global gUnknown_80D780C +gUnknown_80D780C: + .string " Do you wish to sell\n" + .string "anything else?\0" + .align 2, 0 + + .global gUnknown_80D7830 +gUnknown_80D7830: + .string " Ah{COMMA} very well!\n" + .string "What do you wish to sell?\0" + .align 2, 0 + + .global gUnknown_80D785C +gUnknown_80D785C: + .string " Very well! Thank you〜♪\n" + .string "It is yours to take!\0" + .align 2, 0 + + .global gUnknown_80D788C +gUnknown_80D788C: + .string " {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}?\n" + .string "That will be {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" + .string "Is that to your liking?\0" + .align 2, 0 + + .global gUnknown_80D78CC +gUnknown_80D78CC: + .string " Do you wish to buy\n" + .string "anything else today?\0" + .align 2, 0 + + .global gUnknown_80D78F8 +gUnknown_80D78F8: + .string " Ah{COMMA} very well!\n" + .string "Feel free to examine my merchandise〜♪\0" + .align 2, 0 + + .global gUnknown_80D7934 +gUnknown_80D7934: + .string " Thank you!\n" + .string "Please call again〜♪ \0" + .align 2, 0 + + .global gUnknown_80D7958 +gUnknown_80D7958: + .string " May I help you with\n" + .string "anything else?\0" + .align 2, 0 + + .global gUnknown_80D797C +gUnknown_80D797C: + .string " Hello〜♪\n" + .string "Welcome to the {ARG_POKEMON_6} Shop〜♪ \0" + .align 2, 0 + + .global gCommonWigglytuff +gCommonWigglytuff: @ 80D79A4 (Friend Area Shop) + .4byte gUnknown_80D883C + .4byte gUnknown_80D8818 + .4byte gUnknown_80D87E0 + .4byte gUnknown_80D8798 + .4byte gUnknown_80D876C + .4byte gUnknown_80D8738 + .4byte gUnknown_80D86E4 + .4byte gUnknown_80D8674 + .4byte gUnknown_80D8644 + .4byte gUnknown_80D8620 + .4byte gUnknown_80D85E4 + .4byte gUnknown_80D85AC + .4byte gUnknown_80D8584 + .4byte gUnknown_80D8550 + .4byte gUnknown_80D8528 + .4byte gUnknown_80D84F8 + .4byte gUnknown_80D8468 + .4byte gUnknown_80D8420 + .4byte gUnknown_80D8420 + .4byte gUnknown_80D8104 + .4byte gUnknown_80D80D4 + .4byte gUnknown_80D80B0 + .4byte gUnknown_80D8080 + .4byte gUnknown_80D8054 + .4byte gUnknown_80D8030 + .4byte gUnknown_80D8000 + .4byte gUnknown_80D7F7C + .4byte gUnknown_80D7F10 + .4byte gUnknown_80D7ED0 + .4byte gUnknown_80D7E9C + .4byte gUnknown_80D7E58 + .4byte gUnknown_80D7E2C + .4byte gUnknown_80D7E04 + .4byte gUnknown_80D7DE0 + .4byte gUnknown_80D7DA0 + .4byte gUnknown_80D7D64 + .4byte gUnknown_80D7CE8 + .4byte gUnknown_80D7C94 + .4byte gUnknown_80D7C94 + .4byte gUnknown_80D7A44 + + .global gUnknown_80D7A44 +gUnknown_80D7A44: + .string " Zzz...\n" + .string "Want more friends?{EXTRA_MSG}" + .string " Zzz... Kwoo...\n" + .string "You need Friend Areas for friends...{EXTRA_MSG}" + .string " Zzz... Zzz...\n" + .string "A Pokémon becomes your pal when it{APOSTROPHE}s in\n" + .string "the right Friend Area...{EXTRA_MSG}" + .string " Zzz... Dwee...\n" + .string "That{APOSTROPHE}s why you should get more Friend\n" + .string "Areas...{EXTRA_MSG}" + .string " Zzz... Pokémon can only\n" + .string "live in the right Friend Area for\n" + .string "their species...{EXTRA_MSG}" + .string " Kwoo... Sssnore...\n" + .string "See what Pokémon can live there by\n" + .string "checking {COLOR_1 YELLOW}Info{END_COLOR_TEXT_1}...{EXTRA_MSG}" + .string " Zzz...\n" + .string "I don{APOSTROPHE}t sell some Friend Areas...{EXTRA_MSG}" + .string " Kwoo...\n" + .string "Some rescue missions reward you with\n" + .string "Friend Areas...{EXTRA_MSG}" + .string " Zzz... Dwee...\n" + .string "Check the Pelipper Post Office{APOSTROPHE}s Bulletin\n" + .string "Board or your Mailbox for missions...\0" + .align 2, 0 + + .global gUnknown_80D7C94 +gUnknown_80D7C94: + .string " Sssnore...\n" + .string "{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}...?\n" + .string "I can{APOSTROPHE}t get that Friend Area...{EXTRA_MSG}" + .string " Zzz... Zzz...\n" + .string "Sorry...\0" + .align 2, 0 + + .global gUnknown_80D7CE8 +gUnknown_80D7CE8: + .string " Zzz... Hunh...?\n" + .string "{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}...?\n" + .string "I don{APOSTROPHE}t know... I{APOSTROPHE}ll check...{EXTRA_MSG}" + .string " Sssnore...\n" + .string "I{APOSTROPHE}ll have it for sale...\n" + .string "When I find out...\0" + .align 2, 0 + + .global gUnknown_80D7D64 +gUnknown_80D7D64: + .string " Sssnore...\n" + .string "You can already go...\n" + .string "Friend Area {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}...\0" + .align 2, 0 + + .global gUnknown_80D7DA0 +gUnknown_80D7DA0: + .string " Dwee... Kwoo...\n" + .string "{COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}{APOSTROPHE}s Friend Area...\n" + .string "Zzz... {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}...\0" + .align 2, 0 + + .global gUnknown_80D7DE0 +gUnknown_80D7DE0: + .string " Another Pokémon...\n" + .string "Zzz... Check?\0" + .align 2, 0 + + .global gUnknown_80D7E04 +gUnknown_80D7E04: + .string " Zzz... Kwoo...\n" + .string "Check which Pokémon?\0" + .align 2, 0 + + .global gUnknown_80D7E2C +gUnknown_80D7E2C: + .string " Zzz... Dwee...? Oops?{WAIT_PRESS}\n" + .string "Not enough money?\0" + .align 2, 0 + + .global gUnknown_80D7E58 +gUnknown_80D7E58: + .string " Zzz... Hunh?{WAIT_PRESS}\n" + .string "Sssnore... Sorry...\n" + .string "Fresh out of Friend Areas...\0" + .align 2, 0 + + .global gUnknown_80D7E9C +gUnknown_80D7E9C: + .string " Hunh...?{WAIT_PRESS}\n" + .string "You don{APOSTROPHE}t have any money...\n" + .string "Zzzzzz...\0" + .align 2, 0 + + .global gUnknown_80D7ED0 +gUnknown_80D7ED0: + .string " Zzz... Zzz?{WAIT_PRESS}\n" + .string "Hunh...?\n" + .string "You can{APOSTROPHE}t add to your Friend Areas...\0" + .align 2, 0 + + .global gUnknown_80D7F10 +gUnknown_80D7F10: + .string " Grats... Zzz...{WAIT_PRESS}\n" + .string "You can go to {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}...{EXTRA_MSG}" + .string " Dwee... Sssnore...\n" + .string "Make friends with Pokémon in...\n" + .string "{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}...\0" + .align 2, 0 + + .global gUnknown_80D7F7C +gUnknown_80D7F7C: + .string " Zzz... Dwee... Gotcha...{WAIT_PRESS}\n" + .string "Zzz... Let{APOSTROPHE}s do it...{EXTRA_MSG}" + .string " Sssnore♪ Sssnore♪\n" + .string "{ARG_POKEMON_6}〜♪ {ARG_POKEMON_6}〜♪\n" + .string "Let{APOSTROPHE}s be friends...{EXTRA_MSG}" + .string " Kwoo!\n" + .string "Taaaaaaah!\0" + .align 2, 0 + + .global gUnknown_80D8000 +gUnknown_80D8000: + .string " Kwoo? {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}?\n" + .string "That{APOSTROPHE}s {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}...\n" + .string "OK?\0" + .align 2, 0 + + .global gUnknown_80D8030 +gUnknown_80D8030: + .string " Zzz... Wha--?\n" + .string "More Friend Areas?\0" + .align 2, 0 + + .global gUnknown_80D8054 +gUnknown_80D8054: + .string " Dwee... Hunh?\n" + .string "Friend Areas...?\n" + .string "Which one?\0" + .align 2, 0 + + .global gUnknown_80D8080 +gUnknown_80D8080: + .string " Thank... Zzz... You...\n" + .string "Friends{COMMA} friend...\0" + .align 2, 0 + + .global gUnknown_80D80B0 +gUnknown_80D80B0: + .string " Anything? Kwoo...\n" + .string "Anything else?\0" + .align 2, 0 + + .global gUnknown_80D80D4 +gUnknown_80D80D4: + .string " Friends... Zzz...\n" + .string "Welcome to the {ARG_POKEMON_6} Club...\0" + .align 2, 0 + + .global gUnknown_80D8104 +gUnknown_80D8104: + .string " Would you like to get more\n" + .string "friends...{WAIT_PRESS}\n" + .string "...More members for your team?{EXTRA_MSG}" + .string " To add new friends{COMMA} what\n" + .string "you need are Friend Areas.{EXTRA_MSG}" + .string " A Pokémon can join your\n" + .string "rescue team only after it settles in\n" + .string "the right Friend Area.{EXTRA_MSG}" + .string " So{COMMA} if you want to recruit\n" + .string "new members{COMMA} you should add to your\n" + .string "Friend Areas.{EXTRA_MSG}" + .string " Oh{COMMA} yes{COMMA} Pokémon can\n" + .string "only live in the right Friend Area for\n" + .string "their species.{EXTRA_MSG}" + .string " If you{APOSTROPHE}re buying a Friend\n" + .string "Area{COMMA} you should confirm what Pokémon\n" + .string "can live there by checking {COLOR_1 YELLOW}Info{END_COLOR_TEXT_1}.{EXTRA_MSG}" + .string " Also{COMMA} there are some Friend\n" + .string "Areas that I don{APOSTROPHE}t sell.{EXTRA_MSG}" + .string " I think there are some\n" + .string "rescue missions that give you access\n" + .string "to Friend Areas{COMMA} too.{EXTRA_MSG}" + .string " You should check the\n" + .string "Pelipper Post Office{APOSTROPHE}s Bulletin Board or\n" + .string "your Mailbox for rescue requests.{EXTRA_MSG}" + .string " You know{COMMA} it makes me\n" + .string "delighted when you make new friends!\0" + .align 2, 0 + + .global gUnknown_80D8420 +gUnknown_80D8420: + .string " {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}?\n" + .string "I can{APOSTROPHE}t get that Friend Area for you.{WAIT_PRESS}\n" + .string "I{APOSTROPHE}m really sorry.\0" + .align 2, 0 + + .global gUnknown_80D8468 +gUnknown_80D8468: + .string " {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}?\n" + .string "I don{APOSTROPHE}t know much about it at all.{WAIT_PRESS}\n" + .string "I{APOSTROPHE}ll check up on it.{EXTRA_MSG}" + .string " I{APOSTROPHE}ll add it to the Friend\n" + .string "Areas you can buy when I find out more.\0" + .align 2, 0 + + .global gUnknown_80D84F8 +gUnknown_80D84F8: + .string " You can already go to the\n" + .string "Friend Area {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}.\0" + .align 2, 0 + + .global gUnknown_80D8528 +gUnknown_80D8528: + .string " {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}{APOSTROPHE}s Friend Area\n" + .string "is {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}.\0" + .align 2, 0 + + .global gUnknown_80D8550 +gUnknown_80D8550: + .string " Is there another Pokémon\n" + .string "you{APOSTROPHE}d like to check?\0" + .align 2, 0 + + .global gUnknown_80D8584 +gUnknown_80D8584: + .string " Which Pokémon would you\n" + .string "like to check?\0" + .align 2, 0 + + .global gUnknown_80D85AC +gUnknown_80D85AC: + .string " Oops?{WAIT_PRESS}\n" + .string "It doesn{APOSTROPHE}t look like you have enough\n" + .string "money!\0" + .align 2, 0 + + .global gUnknown_80D85E4 +gUnknown_80D85E4: + .string " Oops?{WAIT_PRESS}\n" + .string "Oh{COMMA} too bad.{WAIT_PRESS}\n" + .string "I{APOSTROPHE}m fresh out of Friend Areas.\0" + .align 2, 0 + + .global gUnknown_80D8620 +gUnknown_80D8620: + .string " Um?{WAIT_PRESS}\n" + .string "You don{APOSTROPHE}t have any money.\0" + .align 2, 0 + + .global gUnknown_80D8644 +gUnknown_80D8644: + .string " Oops!{WAIT_PRESS}\n" + .string "You can{APOSTROPHE}t add to your Friend Areas.\0" + .align 2, 0 + + .global gUnknown_80D8674 +gUnknown_80D8674: + .string " Congratulations!{WAIT_PRESS}\n" + .string "You can go to {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1} now!{EXTRA_MSG}" + .string " You can recruit\n" + .string "Pokémon that live in the Friend Area\n" + .string "{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}.\0" + .align 2, 0 + + .global gUnknown_80D86E4 +gUnknown_80D86E4: + .string " Gotcha! Let{APOSTROPHE}s do it!{WAIT_PRESS}\n" + .string "{ARG_POKEMON_6}〜♪ {ARG_POKEMON_6}〜♪{WAIT_PRESS}\n" + .string "Let{APOSTROPHE}s be friends... Yoomtaaaaaaah!\0" + .align 2, 0 + + .global gUnknown_80D8738 +gUnknown_80D8738: + .string " {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}?\n" + .string "That will be {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" + .string "Is that OK?\0" + .align 2, 0 + + .global gUnknown_80D876C +gUnknown_80D876C: + .string " Would you like to add\n" + .string "other Friend Areas?\0" + .align 2, 0 + + .global gUnknown_80D8798 +gUnknown_80D8798: + .string " You{APOSTROPHE}d like to add to your\n" + .string "Friend Areas?\n" + .string "Which one would you like?\0" + .align 2, 0 + + .global gUnknown_80D87E0 +gUnknown_80D87E0: + .string " Thank you! Come again!\n" + .string "We{APOSTROPHE}re all friends{COMMA} friend!\0" + .align 2, 0 + + .global gUnknown_80D8818 +gUnknown_80D8818: + .string " Anything else I can do for\n" + .string "you?\0" + .align 2, 0 + + .global gUnknown_80D883C +gUnknown_80D883C: + .string " Friends are my treasures!\n" + .string "Welcome to the {ARG_POKEMON_6} Club--\n" + .string "a circle of friends! \0" + .align 2, 0 + + .global gCommonGulpin +gCommonGulpin: @ 80D8888 (Gulpin Link Shop) + .4byte gUnknown_80D9F74 + .4byte gUnknown_80D9F24 + .4byte gUnknown_80D9EF4 + .4byte gUnknown_80D9EC0 + .4byte gUnknown_80D9E88 + .4byte gUnknown_80D9E48 + .4byte gUnknown_80D9E34 + .4byte gUnknown_80D9DF4 + .4byte gUnknown_80D9DCC + .4byte gUnknown_80D9DA4 + .4byte gUnknown_80D9D00 + .4byte gUnknown_80D9CC0 + .4byte gUnknown_80D9C68 + .4byte gUnknown_80D9BD8 + .4byte gUnknown_80D9B1C + .4byte gUnknown_80D9ACC + .4byte gUnknown_80D9A50 + .4byte gUnknown_80D9A2C + .4byte gUnknown_80D99F0 + .4byte gUnknown_80D9988 + .4byte gUnknown_80D9904 + .4byte gUnknown_80D98D4 + .4byte gUnknown_80D972C + .4byte gUnknown_80D9498 + .4byte gUnknown_80D9328 + .4byte gUnknown_80D92EC + .4byte gUnknown_80D92B4 + .4byte gUnknown_80D9290 + .4byte gUnknown_80D9268 + .4byte gUnknown_80D9234 + .4byte gUnknown_80D9204 + .4byte gUnknown_80D91E4 + .4byte gUnknown_80D91C4 + .4byte gUnknown_80D9194 + .4byte gUnknown_80D9168 + .4byte gUnknown_80D90BC + .4byte gUnknown_80D9080 + .4byte gUnknown_80D9034 + .4byte gUnknown_80D8F98 + .4byte gUnknown_80D8EC4 + .4byte gUnknown_80D8E9C + .4byte gUnknown_80D8E48 + .4byte gUnknown_80D8E28 + .4byte gUnknown_80D8DE8 + .4byte gUnknown_80D8D64 + .4byte gUnknown_80D8CC8 + .4byte gUnknown_80D8C98 + .4byte gUnknown_80D8BD4 + .4byte gUnknown_80D8AB8 + .4byte gUnknown_80D8950 + + .global gUnknown_80D8950 +gUnknown_80D8950: + .string " Zzz... Snuffle...\n" + .string "I{APOSTROPHE}d go broke if it weren{APOSTROPHE}t for those\n" + .string "forgetful Pokémon...{EXTRA_MSG}" + .string " Zzz... Gwaaah...\n" + .string "Especially that {COLOR_1 CYAN}{ARG_POKEMON_4}{END_COLOR_TEXT_1}...\n" + .string "It seems to be forgetful...{EXTRA_MSG}" + .string " Sssnore...\n" + .string "I hope it forgets more moves...\n" + .string "So it needs to see me...{EXTRA_MSG}" + .string " Zzz... Mumble...\n" + .string "But we decided to get rid of that\n" + .string "{COLOR_1 CYAN}{ARG_POKEMON_4}{END_COLOR_TEXT_1}...{EXTRA_MSG}" + .string " Gwaaaah... Gweh...\n" + .string "{COLOR_1 CYAN}{ARG_POKEMON_4}{END_COLOR_TEXT_1} won{APOSTROPHE}t be coming around\n" + .string "anymore... \0" + .align 2, 0 + + .global gUnknown_80D8AB8 +gUnknown_80D8AB8: + .string " Zzznork...{WAIT_PRESS}\n" + .string "Link moves to use them all in\n" + .string "one turn...{EXTRA_MSG}" + .string " Zzz... Fnurf...?\n" + .string "Linked moves...\n" + .string "Top one goes first...{EXTRA_MSG}" + .string " Zzz... Hah...?\n" + .string "Delink moves to break links...{EXTRA_MSG}" + .string " Zzzzz... Fwaaah...\n" + .string "Change order of moves with {R_BUTTON}...\n" + .string "And up and down on {DPAD}...{EXTRA_MSG}" + .string " Gwaaah... Gweh...\n" + .string "Make your own links...\0" + .align 2, 0 + + .global gUnknown_80D8BD4 +gUnknown_80D8BD4: + .string " Zzz... Zzz...\n" + .string "A set move can be used...\n" + .string "Press {L_BUTTON} and {A_BUTTON}...{EXTRA_MSG}" + .string " Sssnort... Set the move...{WAIT_PRESS}\n" + .string "Press {L_BUTTON} and {A_BUTTON}...{WAIT_PRESS} Use move!{WAIT_PRESS}\n" + .string "Convenient...{EXTRA_MSG}" + .string " Sssnore...\n" + .string "Switch the set move in a dungeon{COMMA} too...\0" + .align 2, 0 + + .global gUnknown_80D8C98 +gUnknown_80D8C98: + .string " Zzznork... Fnurfle?\n" + .string "What do you want to know?\0" + .align 2, 0 + + .global gUnknown_80D8CC8 +gUnknown_80D8CC8: + .string " Fgwaaah...\n" + .string "Here goes...{EXTRA_MSG}" + .string " Zzznort...\n" + .string "Gggggggg...{WAIT_PRESS} Pwah!{EXTRA_MSG}" + .string " Fwaaah hah!\n" + .string "There...{EXTRA_MSG}" + .string " Zzz... Mutter...\n" + .string "{COLOR_1 CYAN}{ARG_POKEMON_5}{END_COLOR_TEXT_1} forgot...\n" + .string "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and moves linked to it...\0" + .align 2, 0 + + .global gUnknown_80D8D64 +gUnknown_80D8D64: + .string " Fgwaaah...\n" + .string "Here goes...{EXTRA_MSG}" + .string " Zzznort...\n" + .string "Gggggggg...{WAIT_PRESS} Pwah!{EXTRA_MSG}" + .string " Fwaaah hah!\n" + .string "There...{EXTRA_MSG}" + .string " Zzz... Mumble...\n" + .string "{COLOR_1 CYAN}{ARG_POKEMON_5}{END_COLOR_TEXT_1} forgot...\n" + .string "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}...\0" + .align 2, 0 + + .global gUnknown_80D8DE8 +gUnknown_80D8DE8: + .string " Zzz... Fwaah? Forget...?\n" + .string "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and any moves\n" + .string "linked to it?\0" + .align 2, 0 + + .global gUnknown_80D8E28 +gUnknown_80D8E28: + .string " Zzz... Forget...?\n" + .string "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}?\0" + .align 2, 0 + + .global gUnknown_80D8E48 +gUnknown_80D8E48: + .string " Zzznork...? Hunh?\n" + .string "You{APOSTROPHE}re a special Pokémon...{EXTRA_MSG}" + .string " Mumble...\n" + .string "I can{APOSTROPHE}t help you...\0" + .align 2, 0 + + .global gUnknown_80D8E9C +gUnknown_80D8E9C: + .string " Zzz... Fwaah?\n" + .string "No moves to remember...\0" + .align 2, 0 + + .global gUnknown_80D8EC4 +gUnknown_80D8EC4: + .string " Fgwaaah...\n" + .string "Here goes...{EXTRA_MSG}" + .string " Zzznort...\n" + .string "Gggggggg...{WAIT_PRESS} Pwah! Gulpin!{EXTRA_MSG}" + .string " Fwaaah hah!\n" + .string "There...{EXTRA_MSG}" + .string " Zzz... Mumble...\n" + .string "{COLOR_1 CYAN_3}{ARG_POKEMON_5}{END_COLOR_TEXT_1}{APOSTROPHE}s OK...{EXTRA_MSG}" + .string " Sssnork... Forgotten...\n" + .string "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and moves linked to it...\n" + .string "Remembered {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}...\0" + .align 2, 0 + + .global gUnknown_80D8F98 +gUnknown_80D8F98: + .string " Fgwaah...\n" + .string "Here goes...{EXTRA_MSG}" + .string " Zzznort...\n" + .string "Gggggggg...{WAIT_PRESS} Pwah! Gulpin!{EXTRA_MSG}" + .string " Fwaah hah!\n" + .string "There...{EXTRA_MSG}" + .string " Zzz... Zzz... {COLOR_1 CYAN_3}{ARG_POKEMON_5}{END_COLOR_TEXT_1}\n" + .string "forgot {COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}...\n" + .string "Remembered {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}...\0" + .align 2, 0 + + .global gUnknown_80D9034 +gUnknown_80D9034: + .string " Zzz? Fnurf? \n" + .string "Forget {COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}...and moves linked\n" + .string "to it? Remember {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}?\0" + .align 2, 0 + + .global gUnknown_80D9080 +gUnknown_80D9080: + .string " Zzznort... Grumble...\n" + .string "Forget {COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}?\n" + .string "Remember {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}?\0" + .align 2, 0 + + .global gUnknown_80D90BC +gUnknown_80D90BC: + .string " Zzzznort... Move...?\n" + .string "Remember {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}?{EXTRA_MSG}" + .string " Fwaah...\n" + .string "Gggggggggggg...{WAIT_PRESS} Gulpin!{EXTRA_MSG}" + .string " Fgwaah...\n" + .string "There...{EXTRA_MSG}" + .string " Zzz... Zzz...\n" + .string "{COLOR_1 CYAN_3}{ARG_POKEMON_5}{END_COLOR_TEXT_1} remembered...\n" + .string "Hunh? That move{COMMA} {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}...\0" + .align 2, 0 + + .global gUnknown_80D9168 +gUnknown_80D9168: + .string " Zzz... Fgwah...?\n" + .string "Remember what? What move?\0" + .align 2, 0 + + .global gUnknown_80D9194 +gUnknown_80D9194: + .string " Gwaah... Gwaah...\n" + .string "Who{APOSTROPHE}s gonna link moves?\0" + .align 2, 0 + + .global gUnknown_80D91C4 +gUnknown_80D91C4: + .string " Zzz... Zzz...\n" + .string "Come again...\0" + .align 2, 0 + + .global gUnknown_80D91E4 +gUnknown_80D91E4: + .string " Zzz... Zzz...\n" + .string "Keep going...?\0" + .align 2, 0 + + .global gUnknown_80D9204 +gUnknown_80D9204: + .string " Zzznort... Zzznnort...\n" + .string "Can{APOSTROPHE}t forget that...\0" + .align 2, 0 + + .global gUnknown_80D9234 +gUnknown_80D9234: + .string " Sssnork... Sssnork...\n" + .string "Nothing to be delinked...\0" + .align 2, 0 + + .global gUnknown_80D9268 +gUnknown_80D9268: + .string " Zzz... Grumph...\n" + .string "Nothing to link...\0" + .align 2, 0 + + .global gUnknown_80D9290 +gUnknown_80D9290: + .string " Zzz... Grunt?\n" + .string "Not enough money...\0" + .align 2, 0 + + .global gUnknown_80D92B4 +gUnknown_80D92B4: + .string " Zzz... Gulpin Link Shop...\n" + .string "Link for just 150 {POKE}...\0" + .align 2, 0 + + .global gUnknown_80D92EC +gUnknown_80D92EC: + .string " Zzz... Hello...\n" + .string "Gulpin Link Shop...\n" + .string "Link for 150 {POKE}...\0" + .align 2, 0 + + .global gUnknown_80D9328 +gUnknown_80D9328: + .string " What if you had to forget\n" + .string "a move{COMMA} but you wanted it back?{WAIT_PRESS}\n" + .string "Ever face that situation?{EXTRA_MSG}" + .string " I can help!{WAIT_PRESS}\n" + .string "Come to me{COMMA} and I can make you instantly\n" + .string "remember forgotten moves!{EXTRA_MSG}" + .string " I...{WAIT_PRESS}\n" + .string "Well{COMMA} when Pokémon remember...{WAIT_PRESS}\n" + .string "I love seeing that instant!{EXTRA_MSG}" + .string " That look of enlightenment!{WAIT_PRESS}\n" + .string "That amazed look of pleasure!{EXTRA_MSG}" + .string " I run this business because\n" + .string "I live to see that moment!\0" + .align 2, 0 + + .global gUnknown_80D9498 +gUnknown_80D9498: + .string " When moves are linked...{WAIT_PRESS}\n" + .string "Two or more moves can be used one after\n" + .string "another in one turn!{EXTRA_MSG}" + .string " For example{COMMA} if the moves\n" + .string "{COLOR_1 CYAN}Scratch{END_COLOR_TEXT_1} and {COLOR_1 CYAN}Growl{END_COLOR_TEXT_1} are\n" + .string "linked...{EXTRA_MSG}" + .string " Both {COLOR_1 CYAN}Scratch{END_COLOR_TEXT_1} and {COLOR_1 CYAN}Growl{END_COLOR_TEXT_1} are\n" + .string "used in one turn!{WAIT_PRESS}\n" + .string "See? Amazing{COMMA} huh?{EXTRA_MSG}" + .string " Using links{COMMA} heheh...{WAIT_PRESS}\n" + .string "Well{COMMA} depending on the moves you link{COMMA}\n" + .string "you can get incredible results!{EXTRA_MSG}" + .string " Oh{COMMA} yes.\n" + .string "When moves are linked{COMMA} they are used in\n" + .string "sequence from the top one first.{EXTRA_MSG}" + .string " You can also separate linked\n" + .string "moves by selecting the Delink command.{EXTRA_MSG}" + .string " The sequence of moves can\n" + .string "be changed by pressing {R_BUTTON}{COMMA}\n" + .string "then pressing up or down on {DPAD}.{EXTRA_MSG}" + .string " Try to innovate with links.{WAIT_PRESS}\n" + .string "Try creating links of your very own!\0" + .align 2, 0 + + .global gUnknown_80D972C +gUnknown_80D972C: + .string " When you{APOSTROPHE}re in a dungeon\n" + .string "and you{APOSTROPHE}re about to use a move...{WAIT_PRESS}\n" + .string "Isn{APOSTROPHE}t it a pain to open a window each time?{EXTRA_MSG}" + .string " You can avoid that!{WAIT_PRESS}\n" + .string "You can just conveniently {QUOTE_START}Set{QUOTE_END}\n" + .string "a move for instant use!{EXTRA_MSG}" + .string " A set move can be instantly\n" + .string "used with {L_BUTTON} and {A_BUTTON}!{WAIT_PRESS}\n" + .string "See? Isn{APOSTROPHE}t it easy?{EXTRA_MSG}" + .string " Just set the move...{WAIT_PRESS}\n" + .string "Hold {L_BUTTON} and then press {A_BUTTON} to use it!{WAIT_PRESS}\n" + .string "It{APOSTROPHE}s very convenient!{EXTRA_MSG}" + .string " You can also switch the set\n" + .string "move in a dungeon.\n" + .string "Do try it out!\n" + .string "\0" + .align 2, 0 + + .global gUnknown_80D98D4 +gUnknown_80D98D4: + .string " Sure thing!\n" + .string "What do you need information on?\0" + .align 2, 0 + + .global gUnknown_80D9904 +gUnknown_80D9904: + .string " OK{COMMA} here goes!{EXTRA_MSG}" + .string " Gggggggg...{WAIT_PRESS} Poof!{EXTRA_MSG}" + .string " There!\n" + .string "Success!{EXTRA_MSG}" + .string " {COLOR_1 CYAN}{ARG_POKEMON_5}{END_COLOR_TEXT_1} has forgotten\n" + .string "the move {COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and any moves\n" + .string "linked to it!\0" + .align 2, 0 + + .global gUnknown_80D9988 +gUnknown_80D9988: + .string " OK{COMMA} here goes!{EXTRA_MSG}" + .string " Gggggggg...{WAIT_PRESS} Poof!{EXTRA_MSG}" + .string " There!\n" + .string "Success!{EXTRA_MSG}" + .string " {COLOR_1 CYAN}{ARG_POKEMON_5}{END_COLOR_TEXT_1} has forgotten\n" + .string "the move {COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}!\0" + .align 2, 0 + + .global gUnknown_80D99F0 +gUnknown_80D99F0: + .string " So{COMMA} forget the move\n" + .string "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and any moves linked to it?\0" + .align 2, 0 + + .global gUnknown_80D9A2C +gUnknown_80D9A2C: + .string " So{COMMA} forget the move\n" + .string "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}?\0" + .align 2, 0 + + .global gUnknown_80D9A50 +gUnknown_80D9A50: + .string " Uh... Huh?{WAIT_PRESS}\n" + .string "You appear to be a special Pokémon.{EXTRA_MSG}" + .string " I can{APOSTROPHE}t help you remember\n" + .string "any moves{COMMA} I don{APOSTROPHE}t think.\n" + .string "I{APOSTROPHE}m sorry.\0" + .align 2, 0 + + .global gUnknown_80D9ACC +gUnknown_80D9ACC: + .string " Uh... Hello?{WAIT_PRESS}\n" + .string "There don{APOSTROPHE}t appear to be any moves that\n" + .string "can be remembered.\0" + .align 2, 0 + + .global gUnknown_80D9B1C +gUnknown_80D9B1C: + .string " OK{COMMA} here goes!{EXTRA_MSG}" + .string " Gggggggg...{WAIT_PRESS} Pwah! Gulpin!{EXTRA_MSG}" + .string " There!\n" + .string "Success!{EXTRA_MSG}" + .string " {COLOR_1 CYAN_3}{ARG_POKEMON_5}{END_COLOR_TEXT_1} is done!{EXTRA_MSG}" + .string " It{APOSTROPHE}s forgotten the move\n" + .string "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and any moves linked to it{COMMA}\n" + .string "and {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1} has been remembered!\0" + .align 2, 0 + + .global gUnknown_80D9BD8 +gUnknown_80D9BD8: + .string " OK{COMMA} here goes!{EXTRA_MSG}" + .string " Gggggggg...{WAIT_PRESS} Pwah! Gulpin!{EXTRA_MSG}" + .string " There!\n" + .string "Success!{EXTRA_MSG}" + .string " {COLOR_1 CYAN_3}{ARG_POKEMON_5}{END_COLOR_TEXT_1} has forgotten\n" + .string "the move {COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and remembered\n" + .string "the move {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}!\0" + .align 2, 0 + + .global gUnknown_80D9C68 +gUnknown_80D9C68: + .string " So{COMMA} forget {COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}\n" + .string "and any moves linked to it{COMMA} and remember\n" + .string "the move {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}?\0" + .align 2, 0 + + .global gUnknown_80D9CC0 +gUnknown_80D9CC0: + .string " So{COMMA} forget the move\n" + .string "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and remember the move\n" + .string "{COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}?\0" + .align 2, 0 + + .global gUnknown_80D9D00 +gUnknown_80D9D00: + .string " So{COMMA} the move {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}\n" + .string "is the one to be remembered?{WAIT_PRESS}\n" + .string "OK{COMMA} here goes!{EXTRA_MSG}" + .string " Gggggggggggg...{WAIT_PRESS} Gulpin!{EXTRA_MSG}" + .string " There!\n" + .string "Success!{EXTRA_MSG}" + .string " {COLOR_1 CYAN_3}{ARG_POKEMON_5}{END_COLOR_TEXT_1} has\n" + .string "remembered the move {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}!\0" + .align 2, 0 + + .global gUnknown_80D9DA4 +gUnknown_80D9DA4: + .string " Which move would you like\n" + .string "to recall?\0" + .align 2, 0 + + .global gUnknown_80D9DCC +gUnknown_80D9DCC: + .string " Good!\n" + .string "Now{COMMA} who wants to link moves?\0" + .align 2, 0 + + .global gUnknown_80D9DF4 +gUnknown_80D9DF4: + .string " Whenever you get the urge\n" + .string "to link moves{COMMA} please come see me!\0" + .align 2, 0 + + .global gUnknown_80D9E34 +gUnknown_80D9E34: + .string " Shall we go on?\0" + .align 2, 0 + + .global gUnknown_80D9E48 +gUnknown_80D9E48: + .string " If you forget that move{COMMA}\n" + .string "you won{APOSTROPHE}t have any moves at all.\0" + .align 2, 0 + + .global gUnknown_80D9E88 +gUnknown_80D9E88: + .string " That move isn{APOSTROPHE}t linked{COMMA}\n" + .string "so it can{APOSTROPHE}t be delinked.\0" + .align 2, 0 + + .global gUnknown_80D9EC0 +gUnknown_80D9EC0: + .string " Too bad.\n" + .string "There are no moves that can be linked.\0" + .align 2, 0 + + .global gUnknown_80D9EF4 +gUnknown_80D9EF4: + .string " Uh... Hello?\n" + .string "You don{APOSTROPHE}t have enough money?\0" + .align 2, 0 + + .global gUnknown_80D9F24 +gUnknown_80D9F24: + .string " Welcome to the Gulpin\n" + .string "Link Shop!\n" + .string "Link moves all you like for just 150 {POKE}!\0" + .align 2, 0 + + .global gUnknown_80D9F74 +gUnknown_80D9F74: + .string " Hello!\n" + .string "Welcome to the Gulpin Link Shop!\n" + .string "Link moves all you like for just 150 {POKE}!\0" + .align 2, 0 + + .global gCommonMakuhita +gCommonMakuhita: @ 80D9FC8 (Makuhita Dojo) + .4byte gUnknown_80DAA44 + .4byte gUnknown_80DAA2C + .4byte gUnknown_80DA9F4 + .4byte gUnknown_80DA9D4 + .4byte gUnknown_80DA998 + .4byte gUnknown_80DA908 + .4byte gUnknown_80DA844 + .4byte gUnknown_80DA688 + .4byte gUnknown_80DA62C + .4byte gUnknown_80DA338 + .4byte gUnknown_80DA30C + .4byte gUnknown_80DA2F0 + .4byte gUnknown_80DA2D4 + .4byte gUnknown_80DA2B4 + .4byte gUnknown_80DA290 + .4byte gUnknown_80DA248 + .4byte gUnknown_80DA204 + .4byte gUnknown_80DA100 + .4byte gUnknown_80DA0DC + .4byte gUnknown_80DA018 + + .global gUnknown_80DA018 +gUnknown_80DA018: + .string " Zzznarr... Zzz...\n" + .string "This dojo...\n" + .string "Help rescue teams...{EXTRA_MSG}" + .string " Zzznarr... Urr...\n" + .string "Train in different rooms to level up...{EXTRA_MSG}" + .string " Zzznarr... Urr!\n" + .string "Make stronger rescue team...{EXTRA_MSG}" + .string " Urr... Zzznarr!\n" + .string "Don{APOSTROPHE}t let up!\0" + .align 2, 0 + + .global gUnknown_80DA0DC +gUnknown_80DA0DC: + .string " Zzznarr... Zzz...!\n" + .string "Keep working...\0" + .align 2, 0 + + .global gUnknown_80DA100 +gUnknown_80DA100: + .string " Ah... Zzznarr...\n" + .string "Cleared it...{EXTRA_MSG}" + .string " Zzzznarr... Urr...\n" + .string "Good going... Keep going...{WAIT_PRESS}\n" + .string "Hunh...{WAIT_PRESS} ...{EXTRA_MSG}" + .string " Gwoh?{WAIT_PRESS}\n" + .string "Gwogwogwoh?{EXTRA_MSG}" + .string " Mugawah?\n" + .string "Cleared everything?{EXTRA_MSG}" + .string " Zzznarr!\n" + .string "Congrazzz...{EXTRA_MSG}" + .string " Zzznarr... Zzznarr...\n" + .string "Your reward...\n" + .string "Promised...{EXTRA_MSG}" + .string " Zzz... Urr!\n" + .string "{COLOR_1 GREEN_2}Bonsly Doll{END_COLOR_TEXT_1}...\0" + .align 2, 0 + + .global gUnknown_80DA204 +gUnknown_80DA204: + .string " Ah... Zzznarr...\n" + .string "Cleared it...{EXTRA_MSG}" + .string " Congrazzz...\n" + .string "Keep going... Zzz...\0" + .align 2, 0 + + .global gUnknown_80DA248 +gUnknown_80DA248: + .string " Aiyah... Zzznarr...\n" + .string "Didn{APOSTROPHE}t finish...{EXTRA_MSG}" + .string " Zzz... Urr?\n" + .string "No giving up...\0" + .align 2, 0 + + .global gUnknown_80DA290 +gUnknown_80DA290: + .string " Zzz... Narr...\n" + .string "{ARG_POKEMON_0}? {APOSTROPHE}K{COMMA} go...\0" + .align 2, 0 + + .global gUnknown_80DA2B4 +gUnknown_80DA2B4: + .string " Zzznarr... Zzz...\n" + .string "Train where?\0" + .align 2, 0 + + .global gUnknown_80DA2D4 +gUnknown_80DA2D4: + .string " Urr... Narr...\n" + .string "See you...\0" + .align 2, 0 + + .global gUnknown_80DA2F0 +gUnknown_80DA2F0: + .string " Zzznarr... Urr?\n" + .string "What else?\0" + .align 2, 0 + + .global gUnknown_80DA30C +gUnknown_80DA30C: + .string " Zzznarr... Zzznarr...\n" + .string "Makuhita... Dojo...\0" + .align 2, 0 + + .global gUnknown_80DA338 +gUnknown_80DA338: + .string " This dojo was founded to\n" + .string "support the efforts of rescue teams.{EXTRA_MSG}" + .string " Train in different rooms to\n" + .string "level up...{WAIT_PRESS}\n" + .string "And toughen up your rescue team.{EXTRA_MSG}" + .string " Also...{WAIT_PRESS}\n" + .string "In the {COLOR_1 YELLOW_4}Fire Maze{END_COLOR_TEXT_1} you will find only\n" + .string "Fire-type Pokémon.{EXTRA_MSG}" + .string " In the {COLOR_1 YELLOW_4}Water Maze{END_COLOR_TEXT_1} there\n" + .string "will only be Water-type Pokémon.{EXTRA_MSG}" + .string " In such ways{COMMA} only one type\n" + .string "of Pokémon will be in a given room.\n" + .string "Study how types match up in battle.{EXTRA_MSG}" + .string " The Pokémon in this dojo{COMMA}\n" + .string "by the way{COMMA} are all volunteers.{EXTRA_MSG}" + .string " They are participating\n" + .string "because they want to see rescue teams\n" + .string "succeed.{EXTRA_MSG}" + .string " The only thanks they expect\n" + .string "is to see you become stronger.\n" + .string "Don{APOSTROPHE}t let them down!{EXTRA_MSG}" + .string " There{APOSTROPHE}s more.{WAIT_PRESS}\n" + .string "For a rescue team that successfully\n" + .string "completes all training courses...{EXTRA_MSG}" + .string " I have a special reward!{EXTRA_MSG}" + .string " Let that compel you to train\n" + .string "harder!\0" + .align 2, 0 + + .global gUnknown_80DA62C +gUnknown_80DA62C: + .string " Don{APOSTROPHE}t let up on your training!\n" + .string "Keep bettering yourself!{EXTRA_MSG}" + .string " May you never lose your\n" + .string "drive!\0" + .align 2, 0 + + .global gUnknown_80DA688 +gUnknown_80DA688: + .string " Ah...\n" + .string "You have succeeded in your training!{EXTRA_MSG}" + .string " You{APOSTROPHE}ve shown your worth!{WAIT_PRESS}\n" + .string "Without a doubt{COMMA} you have grown more\n" + .string "powerful from your training!{WAIT_PRESS} Wait...{WAIT_PRESS} ...{EXTRA_MSG}" + .string " Wuh?{WAIT_PRESS}\n" + .string "What{COMMA} what{COMMA} what?!{EXTRA_MSG}" + .string " Did you maybe...{WAIT_PRESS}\n" + .string "Conquer all the training courses?{EXTRA_MSG}" + .string " That{APOSTROPHE}s...{WAIT_PRESS} Amazing! You!{WAIT_PRESS}\n" + .string "Congratulations!{EXTRA_MSG}" + .string " I promised!{WAIT_PRESS}\n" + .string "I promised you a reward for completing\n" + .string "the training courses!{EXTRA_MSG}" + .string " So... Here it is!{WAIT_PRESS}\n" + .string "My {COLOR_1 GREEN_2}Bonsly Doll{END_COLOR_TEXT_1}!{EXTRA_MSG}" + .string " Isn{APOSTROPHE}t it smashing? Hey?!\0" + .align 2, 0 + + .global gUnknown_80DA844 +gUnknown_80DA844: + .string " Ah...\n" + .string "You have succeeded in your training!{EXTRA_MSG}" + .string " You{APOSTROPHE}ve shown your worth!{WAIT_PRESS}\n" + .string "Without a doubt{COMMA} you have grown more\n" + .string "powerful from your training!{EXTRA_MSG}" + .string " May this success drive\n" + .string "you to train even harder!\0" + .align 2, 0 + + .global gUnknown_80DA908 +gUnknown_80DA908: + .string " Aiyah...{WAIT_PRESS}\n" + .string "You failed to reach the end...{WAIT_PRESS}\n" + .string "More training is what you need.{EXTRA_MSG}" + .string " But effort is never wasted!{EXTRA_MSG}" + .string " Learn from this and move\n" + .string "forward!\0" + .align 2, 0 + + .global gUnknown_80DA998 +gUnknown_80DA998: + .string " The {ARG_POKEMON_0}?{WAIT_PRESS}\n" + .string "Your decision stands!{WAIT_PRESS}\n" + .string "Let the training begin!\0" + .align 2, 0 + + .global gUnknown_80DA9D4 +gUnknown_80DA9D4: + .string " Where do you wish to train?\0" + .align 2, 0 + + .global gUnknown_80DA9F4 +gUnknown_80DA9F4: + .string " Fine{COMMA} farewell.\n" + .string "Return if you seek more training.\0" + .align 2, 0 + + .global gUnknown_80DAA2C +gUnknown_80DAA2C: + .string " What else do you seek?\0" + .align 2, 0 + + .global gUnknown_80DAA44 +gUnknown_80DAA44: + .string " This is the Makuhita Dojo!{WAIT_PRESS}\n" + .string "Through rigorous training{COMMA} one begets\n" + .string "true power.\0" + .align 2, 0 + + .global gCommonHints +gCommonHints: @ 80DAA98 (Help Menu?) + .4byte gUnknown_80DAF54 + .4byte gUnknown_80DAEE0 + .4byte gUnknown_80DAECC + .4byte gUnknown_80DADD4 + .4byte gUnknown_80DADCC + .4byte gUnknown_80DAD40 + .4byte gUnknown_80DAD28 + .4byte gUnknown_80DABE8 + .4byte gUnknown_80DABD8 + .4byte gUnknown_80DAAC0 + + .global gUnknown_80DAAC0 +gUnknown_80DAAC0: + .string "Before leaving on an adventure{COMMA} go visit\n" + .string "friends in their Friend Areas and pick\n" + .string "your mission members.\n" + .string "The team can include members up to\n" + .string "a total body size of 6{STAR_BULLET}. The body size\n" + .string "data is under the Info section.\n" + .string "Dungeons may also limit how many\n" + .string "members are allowed to go inside.\0" + .align 2, 0 + + .global gUnknown_80DABD8 +gUnknown_80DABD8: + .string "Building a Team\0" + .align 2, 0 + + .global gUnknown_80DABE8 +gUnknown_80DABE8: + .string "If new recruits join you{COMMA} try to return to\n" + .string "your base without letting them faint.\n" + .string "If you get them out safely{COMMA} they{APOSTROPHE}ll wait\n" + .string "for you in their Friend Areas.\n" + .string "Once you get them out{COMMA} they{APOSTROPHE}ll always\n" + .string "return home if they faint in a dungeon.\n" + .string "If you faint in a dungeon{COMMA} you lose all your\n" + .string "money and some items{COMMA} too.\0" + .align 2, 0 + + .global gUnknown_80DAD28 +gUnknown_80DAD28: + .string "Adventures with Friends\0" + .align 2, 0 + + .global gUnknown_80DAD40 +gUnknown_80DAD40: + .string "You can save your adventure by\n" + .string "hopping onto your bed in your base.\n" + .string "Get in the habit of saving regularly as\n" + .string "you progress in your adventure.\0" + .align 2, 0 + + .global gUnknown_80DADCC +gUnknown_80DADCC: + .string "Saving\0" + .align 2, 0 + + .global gUnknown_80DADD4 +gUnknown_80DADD4: + .string "Selecting multiple items in storage:\n" + .string " Select an item{COMMA} then press {L_BUTTON} or {R_BUTTON}.\n" + .string "Moving to the Friend Area Map:\n" + .string " Move out from the town{APOSTROPHE}s west side\n" + .string " while pressing {L_BUTTON} or {R_BUTTON}.\n" + .string "Moving diagonally on the Friend Area Map:\n" + .string " {DPAD} while keeping {R_BUTTON} pressed.\0" + .align 2, 0 + + .global gUnknown_80DAECC +gUnknown_80DAECC: + .string "Controls in Town 2\0" + .align 2, 0 + + .global gUnknown_80DAEE0 +gUnknown_80DAEE0: + .string "Talk: {A_BUTTON}\n" + .string "Move: {DPAD}\n" + .string "Window: {B_BUTTON} lightly\n" + .string "Message scroll: {A_BUTTON} or {B_BUTTON}\n" + .string "Cancel: {B_BUTTON}\n" + .string "Description: Choose item or move{COMMA} {START_BUTTON}\0" + .align 2, 0 + + .global gUnknown_80DAF54 +gUnknown_80DAF54: + .string "Controls in Town 1\0" + +@ END [some global strings] \ No newline at end of file diff --git a/data/data_80D47B8.s b/data/data_80D47B8.s index b38054155..d993e653d 100644 --- a/data/data_80D47B8.s +++ b/data/data_80D47B8.s @@ -1,6 +1,6 @@ .section .rodata -@ START code_80130A8 #1 (probably part of menu_input) +@ START code_80130A8 #1 (probably part of menu_input because the "pksdir0" is in there) .align 2, 0 .global UnkData_80D47C4 @@ -147,3072 +147,5 @@ gUnknown_80D4908: @ 80D4908 .global gUnknown_80D4910 gUnknown_80D4910: @ 80D4910 .string "$\0" - .align 2,0 -@ END code_80130A8 #2 - -@ START [some global strings] -.string "pksdir0\0" - - .global Yes_80D491C - Yes_80D491C: - .string "Yes\0" - - .global gUnknown_80D4920 -gUnknown_80D4920: @ 80D4920 - .4byte Yes_80D491C - - .global No_80D4924 - No_80D4924: - .string "No\0" - .align 2,0 - - .global gUnknown_80D4928 -gUnknown_80D4928: @ 80D4928 - .4byte No_80D4924 - - .global CancelText - CancelText: - .string "Cancel\0" - .align 2,0 - - .global gUnknown_80D4934 -gUnknown_80D4934: @ 80D4934 - .4byte CancelText - - .global TrashText - TrashText: - .string "Trash \0" - .align 2,0 - - .global gUnknown_80D4940 -gUnknown_80D4940: @ 80D4940 - .4byte TrashText - - .global DeleteText - DeleteText: - .string "Delete\0" - .align 2,0 - - .global gUnknown_80D494C -gUnknown_80D494C: @ 80D494C - .4byte DeleteText - - .global StoreText - StoreText: - .string "Store\0" - .align 2,0 - - .global gUnknown_80D4958 -gUnknown_80D4958: @ 80D4958 - .4byte StoreText - - .global TakeText - TakeText: - .string "Take\0" - .align 2,0 - - .global gUnknown_80D4964 -gUnknown_80D4964: @ 80D4964 - .4byte TakeText - - .global InfoText - InfoText: - .string "Info\0" - .align 2,0 - - .global gUnknown_80D4970 -gUnknown_80D4970: @ 80D4970 - .4byte InfoText - - .global BuyText - BuyText: - .string "Buy\0" - .align 2,0 - - .global gUnknown_80D4978 -gUnknown_80D4978: @ 80D4978 - .4byte BuyText - - .global SellText - SellText: - .string "Sell \0" - .align 2,0 - - .global gUnknown_80D4984 -gUnknown_80D4984: @ 80D4984 - .4byte SellText - - .global AcceptText - AcceptText: - .string "Accept\0" - .align 2,0 - - .global gUnknown_80D4990 -gUnknown_80D4990: @ 80D4990 - .4byte AcceptText - - .global WigglytuffCheck - WigglytuffCheck: - .string "Check\0" - .align 2,0 - - .global gWigglytuffCheck -gWigglytuffCheck: @ 80D499C - .4byte WigglytuffCheck - - .global FriendText - FriendText: - .string "Friend\0" - .align 2,0 - - .global gUnknown_80D49A8 -gUnknown_80D49A8: @ 80D49A8 - .4byte FriendText - - .global ExitText - ExitText: - .string "Exit\0" - .align 2,0 - - .global gUnknown_80D49B4 -gUnknown_80D49B4: @ 80D49B4 - .4byte ExitText - - .global QuestionMarkText - QuestionMarkText: - .string "???\0" - .align 2,0 - - .global gUnknown_80D49BC -gUnknown_80D49BC: @ 80D49BC - .4byte QuestionMarkText - - .global FelicityDeposit - FelicityDeposit: - .string "Deposit?\0" - .align 2,0 - - .global gFelicityDeposit -gFelicityDeposit: @ 80D49CC - .4byte FelicityDeposit - - .global FelicityWithdraw - FelicityWithdraw: - .string "Withdraw?\0" - .align 2,0 - - .global gFelicityWithdraw -gFelicityWithdraw: @ 80D49DC - .4byte FelicityWithdraw - - .global gFelicityDialogue -gFelicityDialogue: @ 80D49E0 (Felicity Bank Dialogue) - .4byte gUnknown_80D53E0 - .4byte gUnknown_80D53C8 - .4byte gUnknown_80D538C - .4byte gUnknown_80D5380 - .4byte gUnknown_80D5364 - .4byte gUnknown_80D5364 - .4byte gUnknown_80D5340 - .4byte gUnknown_80D52F8 - .4byte gUnknown_80D527C - .4byte gUnknown_80D5244 - .4byte gUnknown_80D5224 - .4byte gUnknown_80D51DC - .4byte gUnknown_80D5184 - .4byte gUnknown_80D5158 - .4byte gUnknown_80D4FC8 - .4byte gUnknown_80D4F94 - .4byte gUnknown_80D4F74 - .4byte gUnknown_80D4F24 - .4byte gUnknown_80D4F08 - .4byte gUnknown_80D4EDC - .4byte gUnknown_80D4EB0 - .4byte gUnknown_80D4E84 - .4byte gUnknown_80D4E28 - .4byte gUnknown_80D4D8C - .4byte gUnknown_80D4D44 - .4byte gUnknown_80D4D20 - .4byte gUnknown_80D4CC0 - .4byte gUnknown_80D4C50 - .4byte gUnknown_80D4C14 - .4byte gUnknown_80D4A58 - - .global gUnknown_80D4A58 -gUnknown_80D4A58: - .string " Sssnore...\n" - .string "Ah{COMMA} you wish to know how the bank\n" - .string "operates... Very well...{EXTRA_MSG}" - .string " Zzz...\n" - .string "If you{APOSTROPHE}re defeated in a dungeon{COMMA}\n" - .string "you{APOSTROPHE}ll lose all your money. Did you know?{EXTRA_MSG}" - .string " Purr...\n" - .string "But{COMMA} you{APOSTROPHE}ve nothing to fear if you leave\n" - .string "your money with Felicity Bank...{EXTRA_MSG}" - .string " Meow... Even if you\n" - .string "return defeated from a dungeon{COMMA} your\n" - .string "money will be safe with me...{EXTRA_MSG}" - .string " Sssnore...\n" - .string "I assure you{COMMA} my bank will keep your\n" - .string "money safe...{EXTRA_MSG}" - .string " Zzz...\n" - .string "Simple{COMMA} isn{APOSTROPHE}t it...?\0" - .align 2, 0 - - .global gUnknown_80D4C14 -gUnknown_80D4C14: - .string " {POKE}... Purr...\n" - .string "Very well{COMMA} {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" - .string "Here you are.\0" - .align 2, 0 - - .global gUnknown_80D4C50 -gUnknown_80D4C50: - .string " Fnarf? Hunh...?{EXTRA_MSG}" - .string " Purr... I so do apologize{COMMA}\n" - .string "but you couldn{APOSTROPHE}t possibly carry any more\n" - .string "money with you...\0" - .align 2, 0 - - .global gUnknown_80D4CC0 -gUnknown_80D4CC0: - .string " Fnarf? Meow...?{EXTRA_MSG}" - .string " Purr...\n" - .string "I so hate to disappoint{COMMA} but you have no\n" - .string "money saved with me...\0" - .align 2, 0 - - .global gUnknown_80D4D20 -gUnknown_80D4D20: - .string " Zzz...\n" - .string "How much will you withdraw?\0" - .align 2, 0 - - .global gUnknown_80D4D44 -gUnknown_80D4D44: - .string " Zzz...\n" - .string "{COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}... Very well...{WAIT_PRESS}\n" - .string "I will guard it jealously...\0" - .align 2, 0 - - .global gUnknown_80D4D8C -gUnknown_80D4D8C: - .string " Fnarf? Purr...\n" - .string "Meow! All this money...{WAIT_PRESS}\n" - .string "Our safe is about to burst...{EXTRA_MSG}" - .string " Purr...\n" - .string "I am so sorry to say{COMMA} but I can{APOSTROPHE}t accept\n" - .string "any more of your money...\0" - .align 2, 0 - - .global gUnknown_80D4E28 -gUnknown_80D4E28: - .string " Sssnore... Hmm?{EXTRA_MSG}" - .string " Zzz...\n" - .string "I{APOSTROPHE}m so sorry to say{COMMA} but you appear not\n" - .string "to have any money...\0" - .align 2, 0 - - .global gUnknown_80D4E84 -gUnknown_80D4E84: - .string " Purr...\n" - .string "How much do you wish to deposit?\0" - .align 2, 0 - - .global gUnknown_80D4EB0 -gUnknown_80D4EB0: - .string " Zzz... Meow...\n" - .string "I await your next visit...\0" - .align 2, 0 - - .global gUnknown_80D4EDC -gUnknown_80D4EDC: - .string " Zzz... Purr...\n" - .string "I await your next visit...\0" - .align 2, 0 - - .global gUnknown_80D4F08 -gUnknown_80D4F08: - .string " Sssnore...\n" - .string "Very well...\0" - .align 2, 0 - - .global gUnknown_80D4F24 -gUnknown_80D4F24: - .string " Sssnore... Purr...\n" - .string "Your account contains {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}...\n" - .string "How may I serve you?\0" - .align 2, 0 - - .global gUnknown_80D4F74 -gUnknown_80D4F74: - .string " Zzz...\n" - .string "How may I serve you?\0" - .align 2, 0 - - .global gUnknown_80D4F94 -gUnknown_80D4F94: - .string " Ssssnore... Welcome...\n" - .string "This is Felicity Bank...\0" - .align 2, 0 - - .global gUnknown_80D4FC8 -gUnknown_80D4FC8: - .string " Ah{COMMA} you wish to know how\n" - .string "the bank operates. Very well.{EXTRA_MSG}" - .string " If you are defeated\n" - .string "in a dungeon{COMMA} you{APOSTROPHE}ll lose all your money.\n" - .string "Did you know that?{EXTRA_MSG}" - .string " But you can avoid that!{WAIT_PRESS}\n" - .string "You{APOSTROPHE}ve nothing to fear if you leave your\n" - .string "money with Felicity Bank.{EXTRA_MSG}" - .string " Even if you return\n" - .string "defeated from a dungeon{COMMA} your money will\n" - .string "be safe with me!{EXTRA_MSG}" - .string " I assure you{COMMA} my bank\n" - .string "will keep your money safe.{EXTRA_MSG}" - .string " Simple{COMMA} isn{APOSTROPHE}t it?\0" - .align 2, 0 - - .global gUnknown_80D5158 -gUnknown_80D5158: - .string " Very well{COMMA} {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" - .string "Here you are.\0" - .align 2, 0 - - .global gUnknown_80D5184 -gUnknown_80D5184: - .string " Oh?{WAIT_PRESS} I do so apologize{COMMA}\n" - .string "but you couldn{APOSTROPHE}t possibly carry any more\n" - .string "money with you.\0" - .align 2, 0 - - .global gUnknown_80D51DC -gUnknown_80D51DC: - .string " Oh?{WAIT_PRESS} I so hate to disappoint{COMMA}\n" - .string "but you have no money saved with me.\0" - .align 2, 0 - - .global gUnknown_80D5224 -gUnknown_80D5224: - .string " How much will you\n" - .string "withdraw?\0" - .align 2, 0 - - .global gUnknown_80D5244 -gUnknown_80D5244: - .string " {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}. Very well.{WAIT_PRESS}\n" - .string "I will guard it jealously.\0" - .align 2, 0 - - .global gUnknown_80D527C -gUnknown_80D527C: - .string " Meow! All this money!{WAIT_PRESS}\n" - .string "Our safe is about to burst!{EXTRA_MSG}" - .string " I am so sorry to say{COMMA} but\n" - .string "I can{APOSTROPHE}t accept any more of your money!\0" - .align 2, 0 - - .global gUnknown_80D52F8 -gUnknown_80D52F8: - .string " Oh?{WAIT_PRESS} I{APOSTROPHE}m so sorry to say{COMMA}\n" - .string "but you appear not to have any money.\0" - .align 2, 0 - - .global gUnknown_80D5340 -gUnknown_80D5340: - .string " How much do you wish to\n" - .string "deposit?\0" - .align 2, 0 - - .global gUnknown_80D5364 -gUnknown_80D5364: - .string " I await your next visit.\0" - .align 2, 0 - - .global gUnknown_80D5380 -gUnknown_80D5380: - .string " Very well.\0" - .align 2, 0 - - .global gUnknown_80D538C -gUnknown_80D538C: - .string " Your account contains\n" - .string "{COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" - .string "How may I serve you?\0" - .align 2, 0 - - .global gUnknown_80D53C8 -gUnknown_80D53C8: - .string " How may I serve you?\0" - .align 2, 0 - - .global gUnknown_80D53E0 -gUnknown_80D53E0: - .string " Welcome.\n" - .string "This is Felicity Bank.\0" - .align 2, 0 - -@ START_EARLY kangaskhan #1 - - .global gKangaskhanStorageDialogue -gKangaskhanStorageDialogue: @ 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 gKecleonShopDialogue -gKecleonShopDialogue: @ 80D5EC8 - .4byte gUnknown_80D797C - .4byte gUnknown_80D7958 - .4byte gUnknown_80D7934 - .4byte gUnknown_80D78F8 - .4byte gUnknown_80D78CC - .4byte gUnknown_80D788C - .4byte gUnknown_80D785C - .4byte gUnknown_80D7830 - .4byte gUnknown_80D780C - .4byte gUnknown_80D77C0 - .4byte gUnknown_80D776C - .4byte gUnknown_80D7740 - .4byte gUnknown_80D76D4 - .4byte gUnknown_80D76A8 - .4byte gUnknown_80D7640 - .4byte gUnknown_80D7610 - .4byte gUnknown_80D75E0 - .4byte gUnknown_80D75AC - .4byte gUnknown_80D7560 - .4byte gUnknown_80D7524 - .4byte gUnknown_80D74DC - .4byte gUnknown_80D7480 - .4byte gUnknown_80D72B8 - .4byte gUnknown_80D72A0 - .4byte gUnknown_80D7270 - .4byte gUnknown_80D7250 - .4byte gUnknown_80D7228 - .4byte gUnknown_80D7204 - .4byte gUnknown_80D71CC - .4byte gUnknown_80D71B0 - .4byte gUnknown_80D7184 - .4byte gUnknown_80D7154 - .4byte gUnknown_80D7108 - .4byte gUnknown_80D70B4 - .4byte gUnknown_80D7090 - .4byte gUnknown_80D7064 - .4byte gUnknown_80D7038 - .4byte gUnknown_80D6FD4 - .4byte gUnknown_80D6F8C - .4byte gUnknown_80D6F4C - .4byte gUnknown_80D6F18 - .4byte gUnknown_80D6EEC - .4byte gUnknown_80D6EA4 - .4byte gUnknown_80D6E78 - .4byte gUnknown_80D6E30 - .4byte gUnknown_80D6D98 - .4byte gUnknown_80D6D5C - .4byte gUnknown_80D6D38 - .4byte gUnknown_80D6D08 - .4byte gUnknown_80D6CB8 - .4byte gUnknown_80D6C90 - .4byte gUnknown_80D6C48 - .4byte gUnknown_80D6C1C - .4byte gUnknown_80D7830 - .4byte gUnknown_80D6BF4 - .4byte gUnknown_80D6BA0 - .4byte gUnknown_80D6B50 - .4byte gUnknown_80D6B18 - .4byte gUnknown_80D6AAC - .4byte gUnknown_80D6A74 - .4byte gUnknown_80D6A04 - .4byte gUnknown_80D69B0 - .4byte gUnknown_80D6980 - .4byte gUnknown_80D6938 - .4byte gUnknown_80D68E0 - .4byte gUnknown_80D68A4 - .4byte gUnknown_80D6868 - .4byte gUnknown_80D6818 - .4byte gUnknown_80D6564 - .4byte gUnknown_80D6544 - .4byte gUnknown_80D652C - .4byte gUnknown_80D6508 - .4byte gUnknown_80D64E8 - .4byte gUnknown_80D64C0 - .4byte gUnknown_80D6494 - .4byte gUnknown_80D6478 - .4byte gUnknown_80D6450 - .4byte gUnknown_80D6420 - .4byte gUnknown_80D63E8 - .4byte gUnknown_80D6394 - .4byte gUnknown_80D6364 - .4byte gUnknown_80D6338 - .4byte gUnknown_80D630C - .4byte gUnknown_80D62B0 - .4byte gUnknown_80D627C - .4byte gUnknown_80D6250 - .4byte gUnknown_80D6204 - .4byte gUnknown_80D61D4 - .4byte gUnknown_80D61B0 - .4byte gUnknown_80D6168 - .4byte gUnknown_80D6128 - .4byte gUnknown_80D6038 - - .global gUnknown_80D6038 -gUnknown_80D6038: - .string " Zzz... Reep reep...\n" - .string "Wonder Orbs are convenient...{EXTRA_MSG}" - .string " Zzzzzz...\n" - .string "They disappear after one use...{EXTRA_MSG}" - .string " Zzz... And moves...\n" - .string "They are ultimate...{EXTRA_MSG}" - .string " Zzz... Eep...\n" - .string "Learn moves with Technical Machines...{EXTRA_MSG}" - .string " Zzz...\n" - .string "My good wares...\n" - .string "Come buy... Reep...\0" - .align 2, 0 - - .global gUnknown_80D6128 -gUnknown_80D6128: - .string " Zzz... Eep? No{COMMA} no...{WAIT_PRESS}\n" - .string "You cannot hold any more money...\0" - .align 2, 0 - - .global gUnknown_80D6168 -gUnknown_80D6168: - .string " Zzz... Hunh? Wha--? Whoa!{WAIT_PRESS}\n" - .string "I... I can{APOSTROPHE}t accept anything like that!\0" - .align 2, 0 - - .global gUnknown_80D61B0 -gUnknown_80D61B0: - .string " Reep...? Eep!{WAIT_PRESS}\n" - .string "Not enough money!\0" - .align 2, 0 - - .global gUnknown_80D61D4 -gUnknown_80D61D4: - .string " Zzz... Uh-oh...{WAIT_PRESS}\n" - .string "All gone!\n" - .string "I am sold out...\0" - .align 2, 0 - - .global gUnknown_80D6204 -gUnknown_80D6204: - .string " Zzz... Hunh? Oh...{WAIT_PRESS}\n" - .string "Reep... No room... Reep...\n" - .string "No room for my wares...\0" - .align 2, 0 - - .global gUnknown_80D6250 -gUnknown_80D6250: - .string " Zzzzzz... Oh?{WAIT_PRESS}\n" - .string "You{APOSTROPHE}ve got nothing...\0" - .align 2, 0 - - .global gUnknown_80D627C -gUnknown_80D627C: - .string " Zzz... Oh...?{WAIT_PRESS}\n" - .string "You have nothing to sell...\n" - .string "Hunh?\0" - .align 2, 0 - - .global gUnknown_80D62B0 -gUnknown_80D62B0: - .string " Eep...? Zzz...\n" - .string "You have too much money!{EXTRA_MSG}" - .string " Zzz... Eh?\n" - .string "You can{APOSTROPHE}t hold any more money...\0" - .align 2, 0 - - .global gUnknown_80D630C -gUnknown_80D630C: - .string " Reep eep! Oh?{WAIT_PRESS}\n" - .string "Eep...?\n" - .string "You have no money?\0" - .align 2, 0 - - .global gUnknown_80D6338 -gUnknown_80D6338: - .string " ...{WAIT_PRESS}Zzz...\n" - .string "I am all sold out... Sorry...\0" - .align 2, 0 - - .global gUnknown_80D6364 -gUnknown_80D6364: - .string " Fine... Reep reep...\n" - .string "Done deal!\n" - .string "Thank you...\0" - .align 2, 0 - - .global gUnknown_80D6394 -gUnknown_80D6394: - .string " Zzz... Reep{COMMA} what...?\n" - .string "For all that I can buy{COMMA} I will pay\n" - .string "{COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}... OK?\0" - .align 2, 0 - - .global gUnknown_80D63E8 -gUnknown_80D63E8: - .string " Zzzzzz... Zzzzzz...?\n" - .string "{COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}?\n" - .string "Is {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE} OK?\0" - .align 2, 0 - - .global gUnknown_80D6420 -gUnknown_80D6420: - .string " Reep reep... Eep...\n" - .string "Anything else for sale?\0" - .align 2, 0 - - .global gUnknown_80D6450 -gUnknown_80D6450: - .string " Zzz... Eep...?\n" - .string "What will you sell...?\0" - .align 2, 0 - - .global gUnknown_80D6478 -gUnknown_80D6478: - .string " Zzz... Reep!\n" - .string "Thank you...\0" - .align 2, 0 - - .global gUnknown_80D6494 -gUnknown_80D6494: - .string " Zzzzzz...\n" - .string "{COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1} is {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}...\n" - .string "OK?\0" - .align 2, 0 - - .global gUnknown_80D64C0 -gUnknown_80D64C0: - .string " Anything? Zzz...\n" - .string "Buying anything else?\0" - .align 2, 0 - - .global gUnknown_80D64E8 -gUnknown_80D64E8: - .string " Ah... Zzz...\n" - .string "My merchandise...\0" - .align 2, 0 - - .global gUnknown_80D6508 -gUnknown_80D6508: - .string " Thank... Reep eep...\n" - .string "Come again...\0" - .align 2, 0 - - .global gUnknown_80D652C -gUnknown_80D652C: - .string " Reep...\n" - .string "Anything else?\0" - .align 2, 0 - - .global gUnknown_80D6544 -gUnknown_80D6544: - .string " Zzzzzz...\n" - .string "This is...my shop...\0" - .align 2, 0 - - .global gUnknown_80D6564 -gUnknown_80D6564: - .string " Wonder Orbs are very{COMMA}\n" - .string "very convenient〜♪{EXTRA_MSG}" - .string " However{COMMA} they disappear\n" - .string "after one use...{WAIT_PRESS}\n" - .string "But they are useful in a pinch!{EXTRA_MSG}" - .string " Use them cleverly{COMMA} and your\n" - .string "adventures will be made much easier〜♪{EXTRA_MSG}" - .string " And moves...{WAIT_PRESS}\n" - .string "They are the ultimate power!{EXTRA_MSG}" - .string " Smash rocks!{WAIT_PRESS} Fly!{WAIT_PRESS}\n" - .string "There are many kinds of moves{COMMA} all of\n" - .string "them dynamic{COMMA} yet elegant!{EXTRA_MSG}" - .string " There are even moves of\n" - .string "obscure rarity...{WAIT_PRESS}\n" - .string "Simply gorgeous{COMMA} they are!{EXTRA_MSG}" - .string " Now{COMMA} we have these moves!{WAIT_PRESS}\n" - .string "They can be learned using our Technical\n" - .string "Machines{COMMA} or TMs for short!{EXTRA_MSG}" - .string " You see?\n" - .string "Isn{APOSTROPHE}t it exciting? Even dreamy?{EXTRA_MSG}" - .string " Why{COMMA} it gets me so excited{COMMA}\n" - .string "my color has turned a rosy tint!{EXTRA_MSG}" - .string " I do hope you will shop\n" - .string "with us--me and my brother next to\n" - .string "me!\0" - .align 2, 0 - - .global gUnknown_80D6818 -gUnknown_80D6818: - .string " Oh{COMMA} no{COMMA} no!{WAIT_PRESS}\n" - .string "My friend{COMMA} you cannot add to your money!\n" - .string "I cannot do this.\0" - .align 2, 0 - - .global gUnknown_80D6868 -gUnknown_80D6868: - .string " Whoa{COMMA} whoa!{WAIT_PRESS}\n" - .string "I... I can{APOSTROPHE}t accept anything like that!\0" - .align 2, 0 - - .global gUnknown_80D68A4 -gUnknown_80D68A4: - .string " Eep! Oh{COMMA} dear!{WAIT_PRESS}\n" - .string "You{APOSTROPHE}re short on money{COMMA} my friend!\0" - .align 2, 0 - - .global gUnknown_80D68E0 -gUnknown_80D68E0: - .string " Oh? Uh-oh!{WAIT_PRESS}\n" - .string "My shelves are bare of wares!{EXTRA_MSG}" - .string " I am completely sold out{COMMA}\n" - .string "my friend!\0" - .align 2, 0 - - .global gUnknown_80D6938 -gUnknown_80D6938: - .string " Oh{COMMA} dear me!{WAIT_PRESS}\n" - .string "My friend{COMMA} you{APOSTROPHE}ve run out of space for\n" - .string "my wares!\0" - .align 2, 0 - - .global gUnknown_80D6980 -gUnknown_80D6980: - .string " Oh?{WAIT_PRESS}\n" - .string "My friend{COMMA} you seem to have nothing?\0" - .align 2, 0 - - .global gUnknown_80D69B0 -gUnknown_80D69B0: - .string " Oh{COMMA} oh{COMMA} oh?{WAIT_PRESS}\n" - .string "My friend{COMMA} you seem to not have anything\n" - .string "that you can sell?\0" - .align 2, 0 - - .global gUnknown_80D6A04 -gUnknown_80D6A04: - .string " Oh{COMMA} my{COMMA} my!\n" - .string "My friend{COMMA} you have too much money!{EXTRA_MSG}" - .string " You can{APOSTROPHE}t carry any more\n" - .string "money than you have now.\0" - .align 2, 0 - - .global gUnknown_80D6A74 -gUnknown_80D6A74: - .string " Oh?{WAIT_PRESS}\n" - .string "My friend{COMMA} you seem not to have\n" - .string "enough money?\0" - .align 2, 0 - - .global gUnknown_80D6AAC -gUnknown_80D6AAC: - .string " ...{WAIT_PRESS}I am all out of wares...\n" - .string "I am so sorry{COMMA} my friend...{EXTRA_MSG}" - .string " Tomorrow!\n" - .string "Tomorrow I shall have more wares!\0" - .align 2, 0 - - .global gUnknown_80D6B18 -gUnknown_80D6B18: - .string " Fine{COMMA} fine{COMMA} we have a deal!\n" - .string "Thank you so much〜♪ \0" - .align 2, 0 - - .global gUnknown_80D6B50 -gUnknown_80D6B50: - .string " For all that I can buy{COMMA} I can\n" - .string "offer you {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" - .string "Is that acceptable?\0" - .align 2, 0 - - .global gUnknown_80D6BA0 -gUnknown_80D6BA0: - .string " {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}{COMMA} you say?\n" - .string "For that{COMMA} I can offer {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" - .string "Is that acceptable?\0" - .align 2, 0 - - .global gUnknown_80D6BF4 -gUnknown_80D6BF4: - .string " Do you wish to sell me\n" - .string "anything else?\0" - .align 2, 0 - - .global gUnknown_80D6C1C -gUnknown_80D6C1C: - .string " Thank you so much〜♪\n" - .string "A very good choice!\0" - .align 2, 0 - - .global gUnknown_80D6C48 -gUnknown_80D6C48: - .string " {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}{COMMA} you say?\n" - .string "That will be {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" - .string "Is that acceptable?\0" - .align 2, 0 - - .global gUnknown_80D6C90 -gUnknown_80D6C90: - .string " Do you wish to purchase\n" - .string "anything else?\0" - .align 2, 0 - - .global gUnknown_80D6CB8 -gUnknown_80D6CB8: - .string " Ah{COMMA} very well!\n" - .string "Do examine my merchandise.\n" - .string "I have chosen it with pride〜♪ \0" - .align 2, 0 - - .global gUnknown_80D6D08 -gUnknown_80D6D08: - .string " Thank you so much!\n" - .string "Please do visit again〜♪ \0" - .align 2, 0 - - .global gUnknown_80D6D38 -gUnknown_80D6D38: - .string " May I assist you in any\n" - .string "other way?\0" - .align 2, 0 - - .global gUnknown_80D6D5C -gUnknown_80D6D5C: - .string " Welcome to Kecleon Wares!\n" - .string "The shop for Orbs and TMs〜♪ \0" - .align 2, 0 - - .global gUnknown_80D6D98 -gUnknown_80D6D98: - .string " Zzzzzz...\n" - .string "I sell items...{EXTRA_MSG}" - .string " Items... Meep meep...\n" - .string "Are useful in dungeons...{EXTRA_MSG}" - .string " Use... Zzz... Huh...?\n" - .string "Your imagination...and be clever...\n" - .string "With them...\0" - .align 2, 0 - - .global gUnknown_80D6E30 -gUnknown_80D6E30: - .string " Zzz... Hunh{COMMA} what...?{WAIT_PRESS}\n" - .string "Zzz... You can{APOSTROPHE}t hold any more money...\0" - .align 2, 0 - - .global gUnknown_80D6E78 -gUnknown_80D6E78: - .string " Zzz... Whoa...{WAIT_PRESS}\n" - .string "I... I can{APOSTROPHE}t take that!\0" - .align 2, 0 - - .global gUnknown_80D6EA4 -gUnknown_80D6EA4: - .string " Zzz... Huh{COMMA} my...!{WAIT_PRESS}\n" - .string "Meep... Meep...\n" - .string "You don{APOSTROPHE}t have enough money!\0" - .align 2, 0 - - .global gUnknown_80D6EEC -gUnknown_80D6EEC: - .string " Zzz... Uh-oh?!{WAIT_PRESS}\n" - .string "Eep!\n" - .string "Sold out! All gone!\0" - .align 2, 0 - - .global gUnknown_80D6F18 -gUnknown_80D6F18: - .string " Zzz... Oh{COMMA} my!{WAIT_PRESS}\n" - .string "Meep... You have no space...\0" - .align 2, 0 - - .global gUnknown_80D6F4C -gUnknown_80D6F4C: - .string " Zzz... Eep...?{WAIT_PRESS}\n" - .string "Meep... You don{APOSTROPHE}t seem to have\n" - .string "anything...?\0" - .align 2, 0 - - .global gUnknown_80D6F8C -gUnknown_80D6F8C: - .string " Zzz... Huh?{WAIT_PRESS}\n" - .string "Meep meep...\n" - .string "You don{APOSTROPHE}t seem to have anything to sell?\0" - .align 2, 0 - - .global gUnknown_80D6FD4 -gUnknown_80D6FD4: - .string " Zzz... Oh{COMMA} my!\n" - .string "You have so much money...!{EXTRA_MSG}" - .string " Zzz... Meep...\n" - .string "You can{APOSTROPHE}t carry any more money...\0" - .align 2, 0 - - .global gUnknown_80D7038 -gUnknown_80D7038: - .string " Hunh?{WAIT_PRESS}\n" - .string "Eep...?\n" - .string "You don{APOSTROPHE}t have money?\0" - .align 2, 0 - - .global gUnknown_80D7064 -gUnknown_80D7064: - .string " ...{WAIT_PRESS} ZZZ!\n" - .string "I{APOSTROPHE}m sold out... Forgive me...\0" - .align 2, 0 - - .global gUnknown_80D7090 -gUnknown_80D7090: - .string " Done... Meep! Deal!\n" - .string "Thank you...\0" - .align 2, 0 - - .global gUnknown_80D70B4 -gUnknown_80D70B4: - .string " Zzzzzz... Zzzzzz...?\n" - .string "I can pay you {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}\n" - .string "for everything I can buy... OK?\0" - .align 2, 0 - - .global gUnknown_80D7108 -gUnknown_80D7108: - .string " Zzzzzz... Zzzzzz...?\n" - .string "Selling that {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}...?\n" - .string "How about {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}?\0" - .align 2, 0 - - .global gUnknown_80D7154 -gUnknown_80D7154: - .string " Zzz... Meep...\n" - .string "Going to sell anything else?\0" - .align 2, 0 - - .global gUnknown_80D7184 -gUnknown_80D7184: - .string " Zzz... Zzz...?\n" - .string "You{APOSTROPHE}re selling what...?\0" - .align 2, 0 - - .global gUnknown_80D71B0 -gUnknown_80D71B0: - .string " Eep! Wah...?\n" - .string "Thank you...\0" - .align 2, 0 - - .global gUnknown_80D71CC -gUnknown_80D71CC: - .string " Zzz... Meep meep...\n" - .string "{COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}...?\n" - .string "{COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}{COMMA} OK?\0" - .align 2, 0 - - .global gUnknown_80D7204 -gUnknown_80D7204: - .string " Buy? Huh{COMMA} eep?\n" - .string "Anything else?\0" - .align 2, 0 - - .global gUnknown_80D7228 -gUnknown_80D7228: - .string " Zzz... Meep... Eep...\n" - .string "Look around...\0" - .align 2, 0 - - .global gUnknown_80D7250 -gUnknown_80D7250: - .string " Thank... Zzz...\n" - .string "Thank you...\0" - .align 2, 0 - - .global gUnknown_80D7270 -gUnknown_80D7270: - .string " Zzz... Meep...\n" - .string "Help you with anything else?\0" - .align 2, 0 - - .global gUnknown_80D72A0 -gUnknown_80D72A0: - .string " Zzzzzz...\n" - .string "Welcome...\0" - .align 2, 0 - - .global gUnknown_80D72B8 -gUnknown_80D72B8: - .string " We{COMMA} the {ARG_POKEMON_6}\n" - .string "Brothers{COMMA} have a passion for selling\n" - .string "items.{EXTRA_MSG}" - .string " Items are useful for your\n" - .string "dungeon adventures.{EXTRA_MSG}" - .string " Use your imagination and\n" - .string "discover innovative uses{COMMA} please.{EXTRA_MSG}" - .string " Ah{COMMA} yes.\n" - .string "If my shop sells out...{EXTRA_MSG}" - .string " New merchandise will\n" - .string "arrive the following day.{EXTRA_MSG}" - .string " Until then{COMMA} please go to\n" - .string "a dungeon and spend some time.\n" - .string "Please visit on your return〜♪{EXTRA_MSG}" - .string " Ah{COMMA} yes. The {ARG_POKEMON_6}\n" - .string "Shop is a nationwide chain.{EXTRA_MSG}" - .string " There are shops even in\n" - .string "dungeons.\n" - .string "Please do visit〜♪ \0" - .align 2, 0 - - .global gUnknown_80D7480 -gUnknown_80D7480: - .string " Oh{COMMA} my!{WAIT_PRESS}\n" - .string "You can{APOSTROPHE}t add any more to your money.\n" - .string "I can{APOSTROPHE}t complete this deal{COMMA} sorry.\0" - .align 2, 0 - - .global gUnknown_80D74DC -gUnknown_80D74DC: - .string " Oh{COMMA} whoa{COMMA} whoa!{WAIT_PRESS}\n" - .string "I... I couldn{APOSTROPHE}t possibly take that from you!\0" - .align 2, 0 - - .global gUnknown_80D7524 -gUnknown_80D7524: - .string " Oh{COMMA} my!{WAIT_PRESS}\n" - .string "Sorry{COMMA} but you don{APOSTROPHE}t have enough money!\0" - .align 2, 0 - - .global gUnknown_80D7560 -gUnknown_80D7560: - .string " Uh-oh?!{WAIT_PRESS}\n" - .string "That{APOSTROPHE}s it! No more merchandise!{EXTRA_MSG}" - .string " I{APOSTROPHE}m completely sold out!\0" - .align 2, 0 - - .global gUnknown_80D75AC -gUnknown_80D75AC: - .string " Oh{COMMA} my!{WAIT_PRESS}\n" - .string "You have no space for any more items!\0" - .align 2, 0 - - .global gUnknown_80D75E0 -gUnknown_80D75E0: - .string " Oh? Oh?{WAIT_PRESS}\n" - .string "You don{APOSTROPHE}t seem to have anything?\0" - .align 2, 0 - - .global gUnknown_80D7610 -gUnknown_80D7610: - .string " Oh? Oh?{WAIT_PRESS}\n" - .string "You seem to have nothing to sell?\0" - .align 2, 0 - - .global gUnknown_80D7640 -gUnknown_80D7640: - .string " Oh{COMMA} my goodness!\n" - .string "You{APOSTROPHE}re overflowing with money!{EXTRA_MSG}" - .string " You couldn{APOSTROPHE}t possibly carry\n" - .string "any more money! \0" - .align 2, 0 - - .global gUnknown_80D76A8 -gUnknown_80D76A8: - .string " Huh?{WAIT_PRESS}\n" - .string "You don{APOSTROPHE}t seem to have the money?\0" - .align 2, 0 - - .global gUnknown_80D76D4 -gUnknown_80D76D4: - .string " ...{WAIT_PRESS}I{APOSTROPHE}m sold out...\n" - .string "Please{COMMA} forgive me.{EXTRA_MSG}" - .string " I will have new merchandise\n" - .string "for you tomorrow{COMMA} I swear!\0" - .align 2, 0 - - .global gUnknown_80D7740 -gUnknown_80D7740: - .string " Good! Done deal!\n" - .string "Thank you so much〜♪ \0" - .align 2, 0 - - .global gUnknown_80D776C -gUnknown_80D776C: - .string " For everything I can buy{COMMA}\n" - .string "I can offer {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" - .string "Is that acceptable to you?\0" - .align 2, 0 - - .global gUnknown_80D77C0 -gUnknown_80D77C0: - .string " {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}?\n" - .string "I can offer you {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" - .string "Will you sell it for that price?\0" - .align 2, 0 - - .global gUnknown_80D780C -gUnknown_80D780C: - .string " Do you wish to sell\n" - .string "anything else?\0" - .align 2, 0 - - .global gUnknown_80D7830 -gUnknown_80D7830: - .string " Ah{COMMA} very well!\n" - .string "What do you wish to sell?\0" - .align 2, 0 - - .global gUnknown_80D785C -gUnknown_80D785C: - .string " Very well! Thank you〜♪\n" - .string "It is yours to take!\0" - .align 2, 0 - - .global gUnknown_80D788C -gUnknown_80D788C: - .string " {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}?\n" - .string "That will be {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" - .string "Is that to your liking?\0" - .align 2, 0 - - .global gUnknown_80D78CC -gUnknown_80D78CC: - .string " Do you wish to buy\n" - .string "anything else today?\0" - .align 2, 0 - - .global gUnknown_80D78F8 -gUnknown_80D78F8: - .string " Ah{COMMA} very well!\n" - .string "Feel free to examine my merchandise〜♪\0" - .align 2, 0 - - .global gUnknown_80D7934 -gUnknown_80D7934: - .string " Thank you!\n" - .string "Please call again〜♪ \0" - .align 2, 0 - - .global gUnknown_80D7958 -gUnknown_80D7958: - .string " May I help you with\n" - .string "anything else?\0" - .align 2, 0 - - .global gUnknown_80D797C -gUnknown_80D797C: - .string " Hello〜♪\n" - .string "Welcome to the {ARG_POKEMON_6} Shop〜♪ \0" - .align 2, 0 - - .global gWigglytuffDialogue -gWigglytuffDialogue: @ 80D79A4 (Friend Area Shop) - .4byte gUnknown_80D883C - .4byte gUnknown_80D8818 - .4byte gUnknown_80D87E0 - .4byte gUnknown_80D8798 - .4byte gUnknown_80D876C - .4byte gUnknown_80D8738 - .4byte gUnknown_80D86E4 - .4byte gUnknown_80D8674 - .4byte gUnknown_80D8644 - .4byte gUnknown_80D8620 - .4byte gUnknown_80D85E4 - .4byte gUnknown_80D85AC - .4byte gUnknown_80D8584 - .4byte gUnknown_80D8550 - .4byte gUnknown_80D8528 - .4byte gUnknown_80D84F8 - .4byte gUnknown_80D8468 - .4byte gUnknown_80D8420 - .4byte gUnknown_80D8420 - .4byte gUnknown_80D8104 - .4byte gUnknown_80D80D4 - .4byte gUnknown_80D80B0 - .4byte gUnknown_80D8080 - .4byte gUnknown_80D8054 - .4byte gUnknown_80D8030 - .4byte gUnknown_80D8000 - .4byte gUnknown_80D7F7C - .4byte gUnknown_80D7F10 - .4byte gUnknown_80D7ED0 - .4byte gUnknown_80D7E9C - .4byte gUnknown_80D7E58 - .4byte gUnknown_80D7E2C - .4byte gUnknown_80D7E04 - .4byte gUnknown_80D7DE0 - .4byte gUnknown_80D7DA0 - .4byte gUnknown_80D7D64 - .4byte gUnknown_80D7CE8 - .4byte gUnknown_80D7C94 - .4byte gUnknown_80D7C94 - .4byte gUnknown_80D7A44 - - .global gUnknown_80D7A44 -gUnknown_80D7A44: - .string " Zzz...\n" - .string "Want more friends?{EXTRA_MSG}" - .string " Zzz... Kwoo...\n" - .string "You need Friend Areas for friends...{EXTRA_MSG}" - .string " Zzz... Zzz...\n" - .string "A Pokémon becomes your pal when it{APOSTROPHE}s in\n" - .string "the right Friend Area...{EXTRA_MSG}" - .string " Zzz... Dwee...\n" - .string "That{APOSTROPHE}s why you should get more Friend\n" - .string "Areas...{EXTRA_MSG}" - .string " Zzz... Pokémon can only\n" - .string "live in the right Friend Area for\n" - .string "their species...{EXTRA_MSG}" - .string " Kwoo... Sssnore...\n" - .string "See what Pokémon can live there by\n" - .string "checking {COLOR_1 YELLOW}Info{END_COLOR_TEXT_1}...{EXTRA_MSG}" - .string " Zzz...\n" - .string "I don{APOSTROPHE}t sell some Friend Areas...{EXTRA_MSG}" - .string " Kwoo...\n" - .string "Some rescue missions reward you with\n" - .string "Friend Areas...{EXTRA_MSG}" - .string " Zzz... Dwee...\n" - .string "Check the Pelipper Post Office{APOSTROPHE}s Bulletin\n" - .string "Board or your Mailbox for missions...\0" - .align 2, 0 - - .global gUnknown_80D7C94 -gUnknown_80D7C94: - .string " Sssnore...\n" - .string "{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}...?\n" - .string "I can{APOSTROPHE}t get that Friend Area...{EXTRA_MSG}" - .string " Zzz... Zzz...\n" - .string "Sorry...\0" - .align 2, 0 - - .global gUnknown_80D7CE8 -gUnknown_80D7CE8: - .string " Zzz... Hunh...?\n" - .string "{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}...?\n" - .string "I don{APOSTROPHE}t know... I{APOSTROPHE}ll check...{EXTRA_MSG}" - .string " Sssnore...\n" - .string "I{APOSTROPHE}ll have it for sale...\n" - .string "When I find out...\0" - .align 2, 0 - - .global gUnknown_80D7D64 -gUnknown_80D7D64: - .string " Sssnore...\n" - .string "You can already go...\n" - .string "Friend Area {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}...\0" - .align 2, 0 - - .global gUnknown_80D7DA0 -gUnknown_80D7DA0: - .string " Dwee... Kwoo...\n" - .string "{COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}{APOSTROPHE}s Friend Area...\n" - .string "Zzz... {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}...\0" - .align 2, 0 - - .global gUnknown_80D7DE0 -gUnknown_80D7DE0: - .string " Another Pokémon...\n" - .string "Zzz... Check?\0" - .align 2, 0 - - .global gUnknown_80D7E04 -gUnknown_80D7E04: - .string " Zzz... Kwoo...\n" - .string "Check which Pokémon?\0" - .align 2, 0 - - .global gUnknown_80D7E2C -gUnknown_80D7E2C: - .string " Zzz... Dwee...? Oops?{WAIT_PRESS}\n" - .string "Not enough money?\0" - .align 2, 0 - - .global gUnknown_80D7E58 -gUnknown_80D7E58: - .string " Zzz... Hunh?{WAIT_PRESS}\n" - .string "Sssnore... Sorry...\n" - .string "Fresh out of Friend Areas...\0" - .align 2, 0 - - .global gUnknown_80D7E9C -gUnknown_80D7E9C: - .string " Hunh...?{WAIT_PRESS}\n" - .string "You don{APOSTROPHE}t have any money...\n" - .string "Zzzzzz...\0" - .align 2, 0 - - .global gUnknown_80D7ED0 -gUnknown_80D7ED0: - .string " Zzz... Zzz?{WAIT_PRESS}\n" - .string "Hunh...?\n" - .string "You can{APOSTROPHE}t add to your Friend Areas...\0" - .align 2, 0 - - .global gUnknown_80D7F10 -gUnknown_80D7F10: - .string " Grats... Zzz...{WAIT_PRESS}\n" - .string "You can go to {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}...{EXTRA_MSG}" - .string " Dwee... Sssnore...\n" - .string "Make friends with Pokémon in...\n" - .string "{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}...\0" - .align 2, 0 - - .global gUnknown_80D7F7C -gUnknown_80D7F7C: - .string " Zzz... Dwee... Gotcha...{WAIT_PRESS}\n" - .string "Zzz... Let{APOSTROPHE}s do it...{EXTRA_MSG}" - .string " Sssnore♪ Sssnore♪\n" - .string "{ARG_POKEMON_6}〜♪ {ARG_POKEMON_6}〜♪\n" - .string "Let{APOSTROPHE}s be friends...{EXTRA_MSG}" - .string " Kwoo!\n" - .string "Taaaaaaah!\0" - .align 2, 0 - - .global gUnknown_80D8000 -gUnknown_80D8000: - .string " Kwoo? {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}?\n" - .string "That{APOSTROPHE}s {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}...\n" - .string "OK?\0" - .align 2, 0 - - .global gUnknown_80D8030 -gUnknown_80D8030: - .string " Zzz... Wha--?\n" - .string "More Friend Areas?\0" - .align 2, 0 - - .global gUnknown_80D8054 -gUnknown_80D8054: - .string " Dwee... Hunh?\n" - .string "Friend Areas...?\n" - .string "Which one?\0" - .align 2, 0 - - .global gUnknown_80D8080 -gUnknown_80D8080: - .string " Thank... Zzz... You...\n" - .string "Friends{COMMA} friend...\0" - .align 2, 0 - - .global gUnknown_80D80B0 -gUnknown_80D80B0: - .string " Anything? Kwoo...\n" - .string "Anything else?\0" - .align 2, 0 - - .global gUnknown_80D80D4 -gUnknown_80D80D4: - .string " Friends... Zzz...\n" - .string "Welcome to the {ARG_POKEMON_6} Club...\0" - .align 2, 0 - - .global gUnknown_80D8104 -gUnknown_80D8104: - .string " Would you like to get more\n" - .string "friends...{WAIT_PRESS}\n" - .string "...More members for your team?{EXTRA_MSG}" - .string " To add new friends{COMMA} what\n" - .string "you need are Friend Areas.{EXTRA_MSG}" - .string " A Pokémon can join your\n" - .string "rescue team only after it settles in\n" - .string "the right Friend Area.{EXTRA_MSG}" - .string " So{COMMA} if you want to recruit\n" - .string "new members{COMMA} you should add to your\n" - .string "Friend Areas.{EXTRA_MSG}" - .string " Oh{COMMA} yes{COMMA} Pokémon can\n" - .string "only live in the right Friend Area for\n" - .string "their species.{EXTRA_MSG}" - .string " If you{APOSTROPHE}re buying a Friend\n" - .string "Area{COMMA} you should confirm what Pokémon\n" - .string "can live there by checking {COLOR_1 YELLOW}Info{END_COLOR_TEXT_1}.{EXTRA_MSG}" - .string " Also{COMMA} there are some Friend\n" - .string "Areas that I don{APOSTROPHE}t sell.{EXTRA_MSG}" - .string " I think there are some\n" - .string "rescue missions that give you access\n" - .string "to Friend Areas{COMMA} too.{EXTRA_MSG}" - .string " You should check the\n" - .string "Pelipper Post Office{APOSTROPHE}s Bulletin Board or\n" - .string "your Mailbox for rescue requests.{EXTRA_MSG}" - .string " You know{COMMA} it makes me\n" - .string "delighted when you make new friends!\0" - .align 2, 0 - - .global gUnknown_80D8420 -gUnknown_80D8420: - .string " {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}?\n" - .string "I can{APOSTROPHE}t get that Friend Area for you.{WAIT_PRESS}\n" - .string "I{APOSTROPHE}m really sorry.\0" - .align 2, 0 - - .global gUnknown_80D8468 -gUnknown_80D8468: - .string " {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}?\n" - .string "I don{APOSTROPHE}t know much about it at all.{WAIT_PRESS}\n" - .string "I{APOSTROPHE}ll check up on it.{EXTRA_MSG}" - .string " I{APOSTROPHE}ll add it to the Friend\n" - .string "Areas you can buy when I find out more.\0" - .align 2, 0 - - .global gUnknown_80D84F8 -gUnknown_80D84F8: - .string " You can already go to the\n" - .string "Friend Area {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}.\0" - .align 2, 0 - - .global gUnknown_80D8528 -gUnknown_80D8528: - .string " {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}{APOSTROPHE}s Friend Area\n" - .string "is {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}.\0" - .align 2, 0 - - .global gUnknown_80D8550 -gUnknown_80D8550: - .string " Is there another Pokémon\n" - .string "you{APOSTROPHE}d like to check?\0" - .align 2, 0 - - .global gUnknown_80D8584 -gUnknown_80D8584: - .string " Which Pokémon would you\n" - .string "like to check?\0" - .align 2, 0 - - .global gUnknown_80D85AC -gUnknown_80D85AC: - .string " Oops?{WAIT_PRESS}\n" - .string "It doesn{APOSTROPHE}t look like you have enough\n" - .string "money!\0" - .align 2, 0 - - .global gUnknown_80D85E4 -gUnknown_80D85E4: - .string " Oops?{WAIT_PRESS}\n" - .string "Oh{COMMA} too bad.{WAIT_PRESS}\n" - .string "I{APOSTROPHE}m fresh out of Friend Areas.\0" - .align 2, 0 - - .global gUnknown_80D8620 -gUnknown_80D8620: - .string " Um?{WAIT_PRESS}\n" - .string "You don{APOSTROPHE}t have any money.\0" - .align 2, 0 - - .global gUnknown_80D8644 -gUnknown_80D8644: - .string " Oops!{WAIT_PRESS}\n" - .string "You can{APOSTROPHE}t add to your Friend Areas.\0" - .align 2, 0 - - .global gUnknown_80D8674 -gUnknown_80D8674: - .string " Congratulations!{WAIT_PRESS}\n" - .string "You can go to {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1} now!{EXTRA_MSG}" - .string " You can recruit\n" - .string "Pokémon that live in the Friend Area\n" - .string "{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}.\0" - .align 2, 0 - - .global gUnknown_80D86E4 -gUnknown_80D86E4: - .string " Gotcha! Let{APOSTROPHE}s do it!{WAIT_PRESS}\n" - .string "{ARG_POKEMON_6}〜♪ {ARG_POKEMON_6}〜♪{WAIT_PRESS}\n" - .string "Let{APOSTROPHE}s be friends... Yoomtaaaaaaah!\0" - .align 2, 0 - - .global gUnknown_80D8738 -gUnknown_80D8738: - .string " {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}?\n" - .string "That will be {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" - .string "Is that OK?\0" - .align 2, 0 - - .global gUnknown_80D876C -gUnknown_80D876C: - .string " Would you like to add\n" - .string "other Friend Areas?\0" - .align 2, 0 - - .global gUnknown_80D8798 -gUnknown_80D8798: - .string " You{APOSTROPHE}d like to add to your\n" - .string "Friend Areas?\n" - .string "Which one would you like?\0" - .align 2, 0 - - .global gUnknown_80D87E0 -gUnknown_80D87E0: - .string " Thank you! Come again!\n" - .string "We{APOSTROPHE}re all friends{COMMA} friend!\0" - .align 2, 0 - - .global gUnknown_80D8818 -gUnknown_80D8818: - .string " Anything else I can do for\n" - .string "you?\0" - .align 2, 0 - - .global gUnknown_80D883C -gUnknown_80D883C: - .string " Friends are my treasures!\n" - .string "Welcome to the {ARG_POKEMON_6} Club--\n" - .string "a circle of friends! \0" - .align 2, 0 - - .global gGulpinDialogue -gGulpinDialogue: @ 80D8888 (Gulpin Link Shop) - .4byte gUnknown_80D9F74 - .4byte gUnknown_80D9F24 - .4byte gUnknown_80D9EF4 - .4byte gUnknown_80D9EC0 - .4byte gUnknown_80D9E88 - .4byte gUnknown_80D9E48 - .4byte gUnknown_80D9E34 - .4byte gUnknown_80D9DF4 - .4byte gUnknown_80D9DCC - .4byte gUnknown_80D9DA4 - .4byte gUnknown_80D9D00 - .4byte gUnknown_80D9CC0 - .4byte gUnknown_80D9C68 - .4byte gUnknown_80D9BD8 - .4byte gUnknown_80D9B1C - .4byte gUnknown_80D9ACC - .4byte gUnknown_80D9A50 - .4byte gUnknown_80D9A2C - .4byte gUnknown_80D99F0 - .4byte gUnknown_80D9988 - .4byte gUnknown_80D9904 - .4byte gUnknown_80D98D4 - .4byte gUnknown_80D972C - .4byte gUnknown_80D9498 - .4byte gUnknown_80D9328 - .4byte gUnknown_80D92EC - .4byte gUnknown_80D92B4 - .4byte gUnknown_80D9290 - .4byte gUnknown_80D9268 - .4byte gUnknown_80D9234 - .4byte gUnknown_80D9204 - .4byte gUnknown_80D91E4 - .4byte gUnknown_80D91C4 - .4byte gUnknown_80D9194 - .4byte gUnknown_80D9168 - .4byte gUnknown_80D90BC - .4byte gUnknown_80D9080 - .4byte gUnknown_80D9034 - .4byte gUnknown_80D8F98 - .4byte gUnknown_80D8EC4 - .4byte gUnknown_80D8E9C - .4byte gUnknown_80D8E48 - .4byte gUnknown_80D8E28 - .4byte gUnknown_80D8DE8 - .4byte gUnknown_80D8D64 - .4byte gUnknown_80D8CC8 - .4byte gUnknown_80D8C98 - .4byte gUnknown_80D8BD4 - .4byte gUnknown_80D8AB8 - .4byte gUnknown_80D8950 - - .global gUnknown_80D8950 -gUnknown_80D8950: - .string " Zzz... Snuffle...\n" - .string "I{APOSTROPHE}d go broke if it weren{APOSTROPHE}t for those\n" - .string "forgetful Pokémon...{EXTRA_MSG}" - .string " Zzz... Gwaaah...\n" - .string "Especially that {COLOR_1 CYAN}{ARG_POKEMON_4}{END_COLOR_TEXT_1}...\n" - .string "It seems to be forgetful...{EXTRA_MSG}" - .string " Sssnore...\n" - .string "I hope it forgets more moves...\n" - .string "So it needs to see me...{EXTRA_MSG}" - .string " Zzz... Mumble...\n" - .string "But we decided to get rid of that\n" - .string "{COLOR_1 CYAN}{ARG_POKEMON_4}{END_COLOR_TEXT_1}...{EXTRA_MSG}" - .string " Gwaaaah... Gweh...\n" - .string "{COLOR_1 CYAN}{ARG_POKEMON_4}{END_COLOR_TEXT_1} won{APOSTROPHE}t be coming around\n" - .string "anymore... \0" - .align 2, 0 - - .global gUnknown_80D8AB8 -gUnknown_80D8AB8: - .string " Zzznork...{WAIT_PRESS}\n" - .string "Link moves to use them all in\n" - .string "one turn...{EXTRA_MSG}" - .string " Zzz... Fnurf...?\n" - .string "Linked moves...\n" - .string "Top one goes first...{EXTRA_MSG}" - .string " Zzz... Hah...?\n" - .string "Delink moves to break links...{EXTRA_MSG}" - .string " Zzzzz... Fwaaah...\n" - .string "Change order of moves with {R_BUTTON}...\n" - .string "And up and down on {DPAD}...{EXTRA_MSG}" - .string " Gwaaah... Gweh...\n" - .string "Make your own links...\0" - .align 2, 0 - - .global gUnknown_80D8BD4 -gUnknown_80D8BD4: - .string " Zzz... Zzz...\n" - .string "A set move can be used...\n" - .string "Press {L_BUTTON} and {A_BUTTON}...{EXTRA_MSG}" - .string " Sssnort... Set the move...{WAIT_PRESS}\n" - .string "Press {L_BUTTON} and {A_BUTTON}...{WAIT_PRESS} Use move!{WAIT_PRESS}\n" - .string "Convenient...{EXTRA_MSG}" - .string " Sssnore...\n" - .string "Switch the set move in a dungeon{COMMA} too...\0" - .align 2, 0 - - .global gUnknown_80D8C98 -gUnknown_80D8C98: - .string " Zzznork... Fnurfle?\n" - .string "What do you want to know?\0" - .align 2, 0 - - .global gUnknown_80D8CC8 -gUnknown_80D8CC8: - .string " Fgwaaah...\n" - .string "Here goes...{EXTRA_MSG}" - .string " Zzznort...\n" - .string "Gggggggg...{WAIT_PRESS} Pwah!{EXTRA_MSG}" - .string " Fwaaah hah!\n" - .string "There...{EXTRA_MSG}" - .string " Zzz... Mutter...\n" - .string "{COLOR_1 CYAN}{ARG_POKEMON_5}{END_COLOR_TEXT_1} forgot...\n" - .string "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and moves linked to it...\0" - .align 2, 0 - - .global gUnknown_80D8D64 -gUnknown_80D8D64: - .string " Fgwaaah...\n" - .string "Here goes...{EXTRA_MSG}" - .string " Zzznort...\n" - .string "Gggggggg...{WAIT_PRESS} Pwah!{EXTRA_MSG}" - .string " Fwaaah hah!\n" - .string "There...{EXTRA_MSG}" - .string " Zzz... Mumble...\n" - .string "{COLOR_1 CYAN}{ARG_POKEMON_5}{END_COLOR_TEXT_1} forgot...\n" - .string "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}...\0" - .align 2, 0 - - .global gUnknown_80D8DE8 -gUnknown_80D8DE8: - .string " Zzz... Fwaah? Forget...?\n" - .string "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and any moves\n" - .string "linked to it?\0" - .align 2, 0 - - .global gUnknown_80D8E28 -gUnknown_80D8E28: - .string " Zzz... Forget...?\n" - .string "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}?\0" - .align 2, 0 - - .global gUnknown_80D8E48 -gUnknown_80D8E48: - .string " Zzznork...? Hunh?\n" - .string "You{APOSTROPHE}re a special Pokémon...{EXTRA_MSG}" - .string " Mumble...\n" - .string "I can{APOSTROPHE}t help you...\0" - .align 2, 0 - - .global gUnknown_80D8E9C -gUnknown_80D8E9C: - .string " Zzz... Fwaah?\n" - .string "No moves to remember...\0" - .align 2, 0 - - .global gUnknown_80D8EC4 -gUnknown_80D8EC4: - .string " Fgwaaah...\n" - .string "Here goes...{EXTRA_MSG}" - .string " Zzznort...\n" - .string "Gggggggg...{WAIT_PRESS} Pwah! Gulpin!{EXTRA_MSG}" - .string " Fwaaah hah!\n" - .string "There...{EXTRA_MSG}" - .string " Zzz... Mumble...\n" - .string "{COLOR_1 CYAN_3}{ARG_POKEMON_5}{END_COLOR_TEXT_1}{APOSTROPHE}s OK...{EXTRA_MSG}" - .string " Sssnork... Forgotten...\n" - .string "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and moves linked to it...\n" - .string "Remembered {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}...\0" - .align 2, 0 - - .global gUnknown_80D8F98 -gUnknown_80D8F98: - .string " Fgwaah...\n" - .string "Here goes...{EXTRA_MSG}" - .string " Zzznort...\n" - .string "Gggggggg...{WAIT_PRESS} Pwah! Gulpin!{EXTRA_MSG}" - .string " Fwaah hah!\n" - .string "There...{EXTRA_MSG}" - .string " Zzz... Zzz... {COLOR_1 CYAN_3}{ARG_POKEMON_5}{END_COLOR_TEXT_1}\n" - .string "forgot {COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}...\n" - .string "Remembered {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}...\0" - .align 2, 0 - - .global gUnknown_80D9034 -gUnknown_80D9034: - .string " Zzz? Fnurf? \n" - .string "Forget {COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}...and moves linked\n" - .string "to it? Remember {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}?\0" - .align 2, 0 - - .global gUnknown_80D9080 -gUnknown_80D9080: - .string " Zzznort... Grumble...\n" - .string "Forget {COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}?\n" - .string "Remember {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}?\0" - .align 2, 0 - - .global gUnknown_80D90BC -gUnknown_80D90BC: - .string " Zzzznort... Move...?\n" - .string "Remember {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}?{EXTRA_MSG}" - .string " Fwaah...\n" - .string "Gggggggggggg...{WAIT_PRESS} Gulpin!{EXTRA_MSG}" - .string " Fgwaah...\n" - .string "There...{EXTRA_MSG}" - .string " Zzz... Zzz...\n" - .string "{COLOR_1 CYAN_3}{ARG_POKEMON_5}{END_COLOR_TEXT_1} remembered...\n" - .string "Hunh? That move{COMMA} {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}...\0" - .align 2, 0 - - .global gUnknown_80D9168 -gUnknown_80D9168: - .string " Zzz... Fgwah...?\n" - .string "Remember what? What move?\0" - .align 2, 0 - - .global gUnknown_80D9194 -gUnknown_80D9194: - .string " Gwaah... Gwaah...\n" - .string "Who{APOSTROPHE}s gonna link moves?\0" - .align 2, 0 - - .global gUnknown_80D91C4 -gUnknown_80D91C4: - .string " Zzz... Zzz...\n" - .string "Come again...\0" - .align 2, 0 - - .global gUnknown_80D91E4 -gUnknown_80D91E4: - .string " Zzz... Zzz...\n" - .string "Keep going...?\0" - .align 2, 0 - - .global gUnknown_80D9204 -gUnknown_80D9204: - .string " Zzznort... Zzznnort...\n" - .string "Can{APOSTROPHE}t forget that...\0" - .align 2, 0 - - .global gUnknown_80D9234 -gUnknown_80D9234: - .string " Sssnork... Sssnork...\n" - .string "Nothing to be delinked...\0" - .align 2, 0 - - .global gUnknown_80D9268 -gUnknown_80D9268: - .string " Zzz... Grumph...\n" - .string "Nothing to link...\0" - .align 2, 0 - - .global gUnknown_80D9290 -gUnknown_80D9290: - .string " Zzz... Grunt?\n" - .string "Not enough money...\0" - .align 2, 0 - - .global gUnknown_80D92B4 -gUnknown_80D92B4: - .string " Zzz... Gulpin Link Shop...\n" - .string "Link for just 150 {POKE}...\0" - .align 2, 0 - - .global gUnknown_80D92EC -gUnknown_80D92EC: - .string " Zzz... Hello...\n" - .string "Gulpin Link Shop...\n" - .string "Link for 150 {POKE}...\0" - .align 2, 0 - - .global gUnknown_80D9328 -gUnknown_80D9328: - .string " What if you had to forget\n" - .string "a move{COMMA} but you wanted it back?{WAIT_PRESS}\n" - .string "Ever face that situation?{EXTRA_MSG}" - .string " I can help!{WAIT_PRESS}\n" - .string "Come to me{COMMA} and I can make you instantly\n" - .string "remember forgotten moves!{EXTRA_MSG}" - .string " I...{WAIT_PRESS}\n" - .string "Well{COMMA} when Pokémon remember...{WAIT_PRESS}\n" - .string "I love seeing that instant!{EXTRA_MSG}" - .string " That look of enlightenment!{WAIT_PRESS}\n" - .string "That amazed look of pleasure!{EXTRA_MSG}" - .string " I run this business because\n" - .string "I live to see that moment!\0" - .align 2, 0 - - .global gUnknown_80D9498 -gUnknown_80D9498: - .string " When moves are linked...{WAIT_PRESS}\n" - .string "Two or more moves can be used one after\n" - .string "another in one turn!{EXTRA_MSG}" - .string " For example{COMMA} if the moves\n" - .string "{COLOR_1 CYAN}Scratch{END_COLOR_TEXT_1} and {COLOR_1 CYAN}Growl{END_COLOR_TEXT_1} are\n" - .string "linked...{EXTRA_MSG}" - .string " Both {COLOR_1 CYAN}Scratch{END_COLOR_TEXT_1} and {COLOR_1 CYAN}Growl{END_COLOR_TEXT_1} are\n" - .string "used in one turn!{WAIT_PRESS}\n" - .string "See? Amazing{COMMA} huh?{EXTRA_MSG}" - .string " Using links{COMMA} heheh...{WAIT_PRESS}\n" - .string "Well{COMMA} depending on the moves you link{COMMA}\n" - .string "you can get incredible results!{EXTRA_MSG}" - .string " Oh{COMMA} yes.\n" - .string "When moves are linked{COMMA} they are used in\n" - .string "sequence from the top one first.{EXTRA_MSG}" - .string " You can also separate linked\n" - .string "moves by selecting the Delink command.{EXTRA_MSG}" - .string " The sequence of moves can\n" - .string "be changed by pressing {R_BUTTON}{COMMA}\n" - .string "then pressing up or down on {DPAD}.{EXTRA_MSG}" - .string " Try to innovate with links.{WAIT_PRESS}\n" - .string "Try creating links of your very own!\0" - .align 2, 0 - - .global gUnknown_80D972C -gUnknown_80D972C: - .string " When you{APOSTROPHE}re in a dungeon\n" - .string "and you{APOSTROPHE}re about to use a move...{WAIT_PRESS}\n" - .string "Isn{APOSTROPHE}t it a pain to open a window each time?{EXTRA_MSG}" - .string " You can avoid that!{WAIT_PRESS}\n" - .string "You can just conveniently {QUOTE_START}Set{QUOTE_END}\n" - .string "a move for instant use!{EXTRA_MSG}" - .string " A set move can be instantly\n" - .string "used with {L_BUTTON} and {A_BUTTON}!{WAIT_PRESS}\n" - .string "See? Isn{APOSTROPHE}t it easy?{EXTRA_MSG}" - .string " Just set the move...{WAIT_PRESS}\n" - .string "Hold {L_BUTTON} and then press {A_BUTTON} to use it!{WAIT_PRESS}\n" - .string "It{APOSTROPHE}s very convenient!{EXTRA_MSG}" - .string " You can also switch the set\n" - .string "move in a dungeon.\n" - .string "Do try it out!\n" - .string "\0" - .align 2, 0 - - .global gUnknown_80D98D4 -gUnknown_80D98D4: - .string " Sure thing!\n" - .string "What do you need information on?\0" - .align 2, 0 - - .global gUnknown_80D9904 -gUnknown_80D9904: - .string " OK{COMMA} here goes!{EXTRA_MSG}" - .string " Gggggggg...{WAIT_PRESS} Poof!{EXTRA_MSG}" - .string " There!\n" - .string "Success!{EXTRA_MSG}" - .string " {COLOR_1 CYAN}{ARG_POKEMON_5}{END_COLOR_TEXT_1} has forgotten\n" - .string "the move {COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and any moves\n" - .string "linked to it!\0" - .align 2, 0 - - .global gUnknown_80D9988 -gUnknown_80D9988: - .string " OK{COMMA} here goes!{EXTRA_MSG}" - .string " Gggggggg...{WAIT_PRESS} Poof!{EXTRA_MSG}" - .string " There!\n" - .string "Success!{EXTRA_MSG}" - .string " {COLOR_1 CYAN}{ARG_POKEMON_5}{END_COLOR_TEXT_1} has forgotten\n" - .string "the move {COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}!\0" - .align 2, 0 - - .global gUnknown_80D99F0 -gUnknown_80D99F0: - .string " So{COMMA} forget the move\n" - .string "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and any moves linked to it?\0" - .align 2, 0 - - .global gUnknown_80D9A2C -gUnknown_80D9A2C: - .string " So{COMMA} forget the move\n" - .string "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}?\0" - .align 2, 0 - - .global gUnknown_80D9A50 -gUnknown_80D9A50: - .string " Uh... Huh?{WAIT_PRESS}\n" - .string "You appear to be a special Pokémon.{EXTRA_MSG}" - .string " I can{APOSTROPHE}t help you remember\n" - .string "any moves{COMMA} I don{APOSTROPHE}t think.\n" - .string "I{APOSTROPHE}m sorry.\0" - .align 2, 0 - - .global gUnknown_80D9ACC -gUnknown_80D9ACC: - .string " Uh... Hello?{WAIT_PRESS}\n" - .string "There don{APOSTROPHE}t appear to be any moves that\n" - .string "can be remembered.\0" - .align 2, 0 - - .global gUnknown_80D9B1C -gUnknown_80D9B1C: - .string " OK{COMMA} here goes!{EXTRA_MSG}" - .string " Gggggggg...{WAIT_PRESS} Pwah! Gulpin!{EXTRA_MSG}" - .string " There!\n" - .string "Success!{EXTRA_MSG}" - .string " {COLOR_1 CYAN_3}{ARG_POKEMON_5}{END_COLOR_TEXT_1} is done!{EXTRA_MSG}" - .string " It{APOSTROPHE}s forgotten the move\n" - .string "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and any moves linked to it{COMMA}\n" - .string "and {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1} has been remembered!\0" - .align 2, 0 - - .global gUnknown_80D9BD8 -gUnknown_80D9BD8: - .string " OK{COMMA} here goes!{EXTRA_MSG}" - .string " Gggggggg...{WAIT_PRESS} Pwah! Gulpin!{EXTRA_MSG}" - .string " There!\n" - .string "Success!{EXTRA_MSG}" - .string " {COLOR_1 CYAN_3}{ARG_POKEMON_5}{END_COLOR_TEXT_1} has forgotten\n" - .string "the move {COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and remembered\n" - .string "the move {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}!\0" - .align 2, 0 - - .global gUnknown_80D9C68 -gUnknown_80D9C68: - .string " So{COMMA} forget {COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}\n" - .string "and any moves linked to it{COMMA} and remember\n" - .string "the move {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}?\0" - .align 2, 0 - - .global gUnknown_80D9CC0 -gUnknown_80D9CC0: - .string " So{COMMA} forget the move\n" - .string "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and remember the move\n" - .string "{COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}?\0" - .align 2, 0 - - .global gUnknown_80D9D00 -gUnknown_80D9D00: - .string " So{COMMA} the move {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}\n" - .string "is the one to be remembered?{WAIT_PRESS}\n" - .string "OK{COMMA} here goes!{EXTRA_MSG}" - .string " Gggggggggggg...{WAIT_PRESS} Gulpin!{EXTRA_MSG}" - .string " There!\n" - .string "Success!{EXTRA_MSG}" - .string " {COLOR_1 CYAN_3}{ARG_POKEMON_5}{END_COLOR_TEXT_1} has\n" - .string "remembered the move {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}!\0" - .align 2, 0 - - .global gUnknown_80D9DA4 -gUnknown_80D9DA4: - .string " Which move would you like\n" - .string "to recall?\0" - .align 2, 0 - - .global gUnknown_80D9DCC -gUnknown_80D9DCC: - .string " Good!\n" - .string "Now{COMMA} who wants to link moves?\0" - .align 2, 0 - - .global gUnknown_80D9DF4 -gUnknown_80D9DF4: - .string " Whenever you get the urge\n" - .string "to link moves{COMMA} please come see me!\0" - .align 2, 0 - - .global gUnknown_80D9E34 -gUnknown_80D9E34: - .string " Shall we go on?\0" - .align 2, 0 - - .global gUnknown_80D9E48 -gUnknown_80D9E48: - .string " If you forget that move{COMMA}\n" - .string "you won{APOSTROPHE}t have any moves at all.\0" - .align 2, 0 - - .global gUnknown_80D9E88 -gUnknown_80D9E88: - .string " That move isn{APOSTROPHE}t linked{COMMA}\n" - .string "so it can{APOSTROPHE}t be delinked.\0" - .align 2, 0 - - .global gUnknown_80D9EC0 -gUnknown_80D9EC0: - .string " Too bad.\n" - .string "There are no moves that can be linked.\0" - .align 2, 0 - - .global gUnknown_80D9EF4 -gUnknown_80D9EF4: - .string " Uh... Hello?\n" - .string "You don{APOSTROPHE}t have enough money?\0" - .align 2, 0 - - .global gUnknown_80D9F24 -gUnknown_80D9F24: - .string " Welcome to the Gulpin\n" - .string "Link Shop!\n" - .string "Link moves all you like for just 150 {POKE}!\0" - .align 2, 0 - - .global gUnknown_80D9F74 -gUnknown_80D9F74: - .string " Hello!\n" - .string "Welcome to the Gulpin Link Shop!\n" - .string "Link moves all you like for just 150 {POKE}!\0" - .align 2, 0 - - .global gMakuhitaDialogue -gMakuhitaDialogue: @ 80D9FC8 (Makuhita Dojo) - .4byte gUnknown_80DAA44 - .4byte gUnknown_80DAA2C - .4byte gUnknown_80DA9F4 - .4byte gUnknown_80DA9D4 - .4byte gUnknown_80DA998 - .4byte gUnknown_80DA908 - .4byte gUnknown_80DA844 - .4byte gUnknown_80DA688 - .4byte gUnknown_80DA62C - .4byte gUnknown_80DA338 - .4byte gUnknown_80DA30C - .4byte gUnknown_80DA2F0 - .4byte gUnknown_80DA2D4 - .4byte gUnknown_80DA2B4 - .4byte gUnknown_80DA290 - .4byte gUnknown_80DA248 - .4byte gUnknown_80DA204 - .4byte gUnknown_80DA100 - .4byte gUnknown_80DA0DC - .4byte gUnknown_80DA018 - - .global gUnknown_80DA018 -gUnknown_80DA018: - .string " Zzznarr... Zzz...\n" - .string "This dojo...\n" - .string "Help rescue teams...{EXTRA_MSG}" - .string " Zzznarr... Urr...\n" - .string "Train in different rooms to level up...{EXTRA_MSG}" - .string " Zzznarr... Urr!\n" - .string "Make stronger rescue team...{EXTRA_MSG}" - .string " Urr... Zzznarr!\n" - .string "Don{APOSTROPHE}t let up!\0" - .align 2, 0 - - .global gUnknown_80DA0DC -gUnknown_80DA0DC: - .string " Zzznarr... Zzz...!\n" - .string "Keep working...\0" - .align 2, 0 - - .global gUnknown_80DA100 -gUnknown_80DA100: - .string " Ah... Zzznarr...\n" - .string "Cleared it...{EXTRA_MSG}" - .string " Zzzznarr... Urr...\n" - .string "Good going... Keep going...{WAIT_PRESS}\n" - .string "Hunh...{WAIT_PRESS} ...{EXTRA_MSG}" - .string " Gwoh?{WAIT_PRESS}\n" - .string "Gwogwogwoh?{EXTRA_MSG}" - .string " Mugawah?\n" - .string "Cleared everything?{EXTRA_MSG}" - .string " Zzznarr!\n" - .string "Congrazzz...{EXTRA_MSG}" - .string " Zzznarr... Zzznarr...\n" - .string "Your reward...\n" - .string "Promised...{EXTRA_MSG}" - .string " Zzz... Urr!\n" - .string "{COLOR_1 GREEN_2}Bonsly Doll{END_COLOR_TEXT_1}...\0" - .align 2, 0 - - .global gUnknown_80DA204 -gUnknown_80DA204: - .string " Ah... Zzznarr...\n" - .string "Cleared it...{EXTRA_MSG}" - .string " Congrazzz...\n" - .string "Keep going... Zzz...\0" - .align 2, 0 - - .global gUnknown_80DA248 -gUnknown_80DA248: - .string " Aiyah... Zzznarr...\n" - .string "Didn{APOSTROPHE}t finish...{EXTRA_MSG}" - .string " Zzz... Urr?\n" - .string "No giving up...\0" - .align 2, 0 - - .global gUnknown_80DA290 -gUnknown_80DA290: - .string " Zzz... Narr...\n" - .string "{ARG_POKEMON_0}? {APOSTROPHE}K{COMMA} go...\0" - .align 2, 0 - - .global gUnknown_80DA2B4 -gUnknown_80DA2B4: - .string " Zzznarr... Zzz...\n" - .string "Train where?\0" - .align 2, 0 - - .global gUnknown_80DA2D4 -gUnknown_80DA2D4: - .string " Urr... Narr...\n" - .string "See you...\0" - .align 2, 0 - - .global gUnknown_80DA2F0 -gUnknown_80DA2F0: - .string " Zzznarr... Urr?\n" - .string "What else?\0" - .align 2, 0 - - .global gUnknown_80DA30C -gUnknown_80DA30C: - .string " Zzznarr... Zzznarr...\n" - .string "Makuhita... Dojo...\0" - .align 2, 0 - - .global gUnknown_80DA338 -gUnknown_80DA338: - .string " This dojo was founded to\n" - .string "support the efforts of rescue teams.{EXTRA_MSG}" - .string " Train in different rooms to\n" - .string "level up...{WAIT_PRESS}\n" - .string "And toughen up your rescue team.{EXTRA_MSG}" - .string " Also...{WAIT_PRESS}\n" - .string "In the {COLOR_1 YELLOW_4}Fire Maze{END_COLOR_TEXT_1} you will find only\n" - .string "Fire-type Pokémon.{EXTRA_MSG}" - .string " In the {COLOR_1 YELLOW_4}Water Maze{END_COLOR_TEXT_1} there\n" - .string "will only be Water-type Pokémon.{EXTRA_MSG}" - .string " In such ways{COMMA} only one type\n" - .string "of Pokémon will be in a given room.\n" - .string "Study how types match up in battle.{EXTRA_MSG}" - .string " The Pokémon in this dojo{COMMA}\n" - .string "by the way{COMMA} are all volunteers.{EXTRA_MSG}" - .string " They are participating\n" - .string "because they want to see rescue teams\n" - .string "succeed.{EXTRA_MSG}" - .string " The only thanks they expect\n" - .string "is to see you become stronger.\n" - .string "Don{APOSTROPHE}t let them down!{EXTRA_MSG}" - .string " There{APOSTROPHE}s more.{WAIT_PRESS}\n" - .string "For a rescue team that successfully\n" - .string "completes all training courses...{EXTRA_MSG}" - .string " I have a special reward!{EXTRA_MSG}" - .string " Let that compel you to train\n" - .string "harder!\0" - .align 2, 0 - - .global gUnknown_80DA62C -gUnknown_80DA62C: - .string " Don{APOSTROPHE}t let up on your training!\n" - .string "Keep bettering yourself!{EXTRA_MSG}" - .string " May you never lose your\n" - .string "drive!\0" - .align 2, 0 - - .global gUnknown_80DA688 -gUnknown_80DA688: - .string " Ah...\n" - .string "You have succeeded in your training!{EXTRA_MSG}" - .string " You{APOSTROPHE}ve shown your worth!{WAIT_PRESS}\n" - .string "Without a doubt{COMMA} you have grown more\n" - .string "powerful from your training!{WAIT_PRESS} Wait...{WAIT_PRESS} ...{EXTRA_MSG}" - .string " Wuh?{WAIT_PRESS}\n" - .string "What{COMMA} what{COMMA} what?!{EXTRA_MSG}" - .string " Did you maybe...{WAIT_PRESS}\n" - .string "Conquer all the training courses?{EXTRA_MSG}" - .string " That{APOSTROPHE}s...{WAIT_PRESS} Amazing! You!{WAIT_PRESS}\n" - .string "Congratulations!{EXTRA_MSG}" - .string " I promised!{WAIT_PRESS}\n" - .string "I promised you a reward for completing\n" - .string "the training courses!{EXTRA_MSG}" - .string " So... Here it is!{WAIT_PRESS}\n" - .string "My {COLOR_1 GREEN_2}Bonsly Doll{END_COLOR_TEXT_1}!{EXTRA_MSG}" - .string " Isn{APOSTROPHE}t it smashing? Hey?!\0" - .align 2, 0 - - .global gUnknown_80DA844 -gUnknown_80DA844: - .string " Ah...\n" - .string "You have succeeded in your training!{EXTRA_MSG}" - .string " You{APOSTROPHE}ve shown your worth!{WAIT_PRESS}\n" - .string "Without a doubt{COMMA} you have grown more\n" - .string "powerful from your training!{EXTRA_MSG}" - .string " May this success drive\n" - .string "you to train even harder!\0" - .align 2, 0 - - .global gUnknown_80DA908 -gUnknown_80DA908: - .string " Aiyah...{WAIT_PRESS}\n" - .string "You failed to reach the end...{WAIT_PRESS}\n" - .string "More training is what you need.{EXTRA_MSG}" - .string " But effort is never wasted!{EXTRA_MSG}" - .string " Learn from this and move\n" - .string "forward!\0" - .align 2, 0 - - .global gUnknown_80DA998 -gUnknown_80DA998: - .string " The {ARG_POKEMON_0}?{WAIT_PRESS}\n" - .string "Your decision stands!{WAIT_PRESS}\n" - .string "Let the training begin!\0" - .align 2, 0 - - .global gUnknown_80DA9D4 -gUnknown_80DA9D4: - .string " Where do you wish to train?\0" - .align 2, 0 - - .global gUnknown_80DA9F4 -gUnknown_80DA9F4: - .string " Fine{COMMA} farewell.\n" - .string "Return if you seek more training.\0" - .align 2, 0 - - .global gUnknown_80DAA2C -gUnknown_80DAA2C: - .string " What else do you seek?\0" - .align 2, 0 - - .global gUnknown_80DAA44 -gUnknown_80DAA44: - .string " This is the Makuhita Dojo!{WAIT_PRESS}\n" - .string "Through rigorous training{COMMA} one begets\n" - .string "true power.\0" - .align 2, 0 - - .global gGameHints -gGameHints: @ 80DAA98 (Help Menu?) - .4byte gUnknown_80DAF54 - .4byte gUnknown_80DAEE0 - .4byte gUnknown_80DAECC - .4byte gUnknown_80DADD4 - .4byte gUnknown_80DADCC - .4byte gUnknown_80DAD40 - .4byte gUnknown_80DAD28 - .4byte gUnknown_80DABE8 - .4byte gUnknown_80DABD8 - .4byte gUnknown_80DAAC0 - - .global gUnknown_80DAAC0 -gUnknown_80DAAC0: - .string "Before leaving on an adventure{COMMA} go visit\n" - .string "friends in their Friend Areas and pick\n" - .string "your mission members.\n" - .string "The team can include members up to\n" - .string "a total body size of 6{STAR_BULLET}. The body size\n" - .string "data is under the Info section.\n" - .string "Dungeons may also limit how many\n" - .string "members are allowed to go inside.\0" - .align 2, 0 - - .global gUnknown_80DABD8 -gUnknown_80DABD8: - .string "Building a Team\0" - .align 2, 0 - - .global gUnknown_80DABE8 -gUnknown_80DABE8: - .string "If new recruits join you{COMMA} try to return to\n" - .string "your base without letting them faint.\n" - .string "If you get them out safely{COMMA} they{APOSTROPHE}ll wait\n" - .string "for you in their Friend Areas.\n" - .string "Once you get them out{COMMA} they{APOSTROPHE}ll always\n" - .string "return home if they faint in a dungeon.\n" - .string "If you faint in a dungeon{COMMA} you lose all your\n" - .string "money and some items{COMMA} too.\0" - .align 2, 0 - - .global gUnknown_80DAD28 -gUnknown_80DAD28: - .string "Adventures with Friends\0" - .align 2, 0 - - .global gUnknown_80DAD40 -gUnknown_80DAD40: - .string "You can save your adventure by\n" - .string "hopping onto your bed in your base.\n" - .string "Get in the habit of saving regularly as\n" - .string "you progress in your adventure.\0" - .align 2, 0 - - .global gUnknown_80DADCC -gUnknown_80DADCC: - .string "Saving\0" - .align 2, 0 - - .global gUnknown_80DADD4 -gUnknown_80DADD4: - .string "Selecting multiple items in storage:\n" - .string " Select an item{COMMA} then press {L_BUTTON} or {R_BUTTON}.\n" - .string "Moving to the Friend Area Map:\n" - .string " Move out from the town{APOSTROPHE}s west side\n" - .string " while pressing {L_BUTTON} or {R_BUTTON}.\n" - .string "Moving diagonally on the Friend Area Map:\n" - .string " {DPAD} while keeping {R_BUTTON} pressed.\0" - .align 2, 0 - - .global gUnknown_80DAECC -gUnknown_80DAECC: - .string "Controls in Town 2\0" - .align 2, 0 - - .global gUnknown_80DAEE0 -gUnknown_80DAEE0: - .string "Talk: {A_BUTTON}\n" - .string "Move: {DPAD}\n" - .string "Window: {B_BUTTON} lightly\n" - .string "Message scroll: {A_BUTTON} or {B_BUTTON}\n" - .string "Cancel: {B_BUTTON}\n" - .string "Description: Choose item or move{COMMA} {START_BUTTON}\0" - .align 2, 0 - - .global gUnknown_80DAF54 -gUnknown_80DAF54: - .string "Controls in Town 1\0" - .align 2, 0 - -@ END [some global strings] - -@ START code_80130A8 #3 -.string "pksdir0\0" - - .global gUnknown_80DAF70 -gUnknown_80DAF70: @ 80DAF70 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DAF88 -gUnknown_80DAF88: @ 80DAF88 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x00 - .byte 0x1a, 0x00, 0x0c, 0x00 - .byte 0x0c, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DAFA0 -gUnknown_80DAFA0: @ 80DAFA0 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x16, 0x00, 0x0f, 0x00 - .byte 0x06, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - -@ END code_80130A8 #3 - -@ START code_80130A8 #4 -.string "pksdir0\0" - - .global gUnknown_80DAFC0 -gUnknown_80DAFC0: @ 80DAFC0 - .2byte 3, 0xD - .2byte 0xF, 0xD - .2byte 0x1B, 0xD - .2byte 0x27, 0xD - .2byte 0x33, 0xD - .2byte 0x40, 0xF - .2byte 0x4C, 0xF - .2byte 0x58, 0xF - .2byte 0x64, 0xF - .2byte 0x70, 0xF - .2byte 0x7C, 0xF - .2byte 0x88, 0xF - .2byte 0x94, 0xF - .2byte 0xA1, 0xD - .2byte 0xAD, 0xD - .2byte 0xB9, 0xD - .2byte 0xC5, 0xD - .2byte 0xD1, 0xD - .2byte 3, 0x1A - .2byte 0xF, 0x1A - .2byte 0x1B, 0x1A - .2byte 0x27, 0x1A - .2byte 0x33, 0x1A - .2byte 0x40, 0x1C - .2byte 0x4C, 0x1C - .2byte 0x58, 0x1C - .2byte 0x64, 0x1C - .2byte 0x70, 0x1C - .2byte 0x7C, 0x1C - .2byte 0x88, 0x1C - .2byte 0x94, 0x1C - .2byte 0xA1, 0x1A - .2byte 0xAD, 0x1A - .2byte 0xB9, 0x1A - .2byte 0xC5, 0x1A - .2byte 0xD1, 0x1A - .2byte 3, 0x28 - .2byte 0xF, 0x28 - .2byte 0x1B, 0x28 - .2byte 0x27, 0x28 - .2byte 0x33, 0x28 - .2byte 0x40, 0x2A - .2byte 0x4C, 0x2A - .2byte 0x58, 0x2A - .2byte 0x64, 0x2A - .2byte 0x70, 0x2A - .2byte 0x7C, 0x2A - .2byte 0x88, 0x2A - .2byte 0x94, 0x2A - .2byte 0xA1, 0x28 - .2byte 0xAD, 0x28 - .2byte 0xB9, 0x28 - .2byte 0xC5, 0x28 - .2byte 0xD1, 0x28 - - .global gUnknown_80DB098 -gUnknown_80DB098: @ 80DB098 - .2byte 0x20, 0x12 - .2byte 0x2E, 0x12 - .2byte 0x3C, 0x12 - .2byte 0x4A, 0x12 - .2byte 0x58, 0x14 - .2byte 0x66, 0x14 - .2byte 0x74, 0x14 - .2byte 0x82, 0x14 - .2byte 0x90, 0x12 - .2byte 0x9E, 0x12 - .2byte 0xAC, 0x12 - .2byte 0xBA, 0x12 - .2byte 0x20, 0x24 - .2byte 0x2E, 0x24 - .2byte 0x3C, 0x24 - .2byte 0x4A, 0x24 - .2byte 0x58, 0x26 - .2byte 0x66, 0x26 - .2byte 0x74, 0x26 - .2byte 0x82, 0x26 - .2byte 0x90, 0x24 - .2byte 0x9E, 0x24 - .2byte 0xAC, 0x24 - .2byte 0xBA, 0x24 - - .global gUnknown_80DB0F8 -gUnknown_80DB0F8: @ 80DB0F8 -.macro st_80DB0F8, a, b, c, d, e, f, g, h - .byte \a, \b, \c, \d, \e, \f, \g - .align 2, 0 - .4byte \h -.endm - st_80DB0F8 0, 0, 0, 0, 8, 3, 0, 264 - st_80DB0F8 0, 0, 0, 0, 8, 14, 0, 264 - st_80DB0F8 0, 0, 0, 0, 8, 25, 0, 264 - st_80DB0F8 5, 4, 81, 9, 8, 36, 3, 263 - st_80DB0F8 3, 5, 82, 10, 8, 47, 3, 261 - st_80DB0F8 4, 3, 83, 11, 8, 58, 3, 262 - st_80DB0F8 11, 7, 78, 12, 36, 3, 0, 97 - st_80DB0F8 6, 8, 79, 13, 36, 14, 0, 110 - st_80DB0F8 7, 9, 80, 14, 36, 25, 0, 65 - st_80DB0F8 8, 10, 3, 15, 36, 36, 0, 78 - st_80DB0F8 9, 11, 4, 16, 36, 47, 0, 233 - st_80DB0F8 10, 6, 5, 17, 36, 58, 0, 43 - st_80DB0F8 17, 13, 6, 18, 50, 3, 0, 98 - st_80DB0F8 12, 14, 7, 19, 50, 14, 0, 111 - st_80DB0F8 13, 15, 8, 20, 50, 25, 0, 66 - st_80DB0F8 14, 16, 9, 21, 50, 36, 0, 79 - st_80DB0F8 15, 17, 10, 22, 50, 47, 0, 49 - st_80DB0F8 16, 12, 11, 23, 50, 58, 0, 45 - st_80DB0F8 23, 19, 12, 24, 64, 3, 0, 99 - st_80DB0F8 18, 20, 13, 25, 64, 14, 0, 112 - st_80DB0F8 19, 21, 14, 26, 64, 25, 0, 67 - st_80DB0F8 20, 22, 15, 27, 64, 36, 0, 80 - st_80DB0F8 21, 23, 16, 28, 64, 47, 0, 50 - st_80DB0F8 22, 18, 17, 29, 64, 58, 0, 44 - st_80DB0F8 29, 25, 18, 30, 78, 3, 0, 100 - st_80DB0F8 24, 26, 19, 31, 78, 14, 0, 113 - st_80DB0F8 25, 27, 20, 32, 78, 25, 0, 68 - st_80DB0F8 26, 28, 21, 33, 78, 36, 0, 81 - st_80DB0F8 27, 29, 22, 34, 78, 47, 0, 51 - st_80DB0F8 28, 24, 23, 35, 78, 58, 0, 46 - st_80DB0F8 35, 31, 24, 36, 92, 3, 0, 101 - st_80DB0F8 30, 32, 25, 37, 92, 14, 0, 114 - st_80DB0F8 31, 33, 26, 38, 92, 25, 0, 69 - st_80DB0F8 32, 34, 27, 39, 92, 36, 0, 82 - st_80DB0F8 33, 35, 28, 40, 92, 47, 0, 52 - st_80DB0F8 34, 30, 29, 41, 92, 58, 0, 33 - st_80DB0F8 41, 37, 30, 42, 106, 3, 0, 102 - st_80DB0F8 36, 38, 31, 43, 106, 14, 0, 115 - st_80DB0F8 37, 39, 32, 44, 106, 25, 0, 70 - st_80DB0F8 38, 40, 33, 45, 106, 36, 0, 83 - st_80DB0F8 39, 41, 34, 46, 106, 47, 0, 53 - st_80DB0F8 40, 36, 35, 47, 106, 58, 0, 63 - st_80DB0F8 47, 43, 36, 48, 120, 3, 0, 103 - st_80DB0F8 42, 44, 37, 49, 120, 14, 0, 116 - st_80DB0F8 43, 45, 38, 50, 120, 25, 0, 71 - st_80DB0F8 44, 46, 39, 51, 120, 36, 0, 84 - st_80DB0F8 45, 47, 40, 52, 120, 47, 0, 54 - st_80DB0F8 46, 42, 41, 53, 120, 58, 0, 145 - st_80DB0F8 53, 49, 42, 54, 134, 3, 0, 104 - st_80DB0F8 48, 50, 43, 55, 134, 14, 0, 117 - st_80DB0F8 49, 51, 44, 56, 134, 25, 0, 72 - st_80DB0F8 50, 52, 45, 57, 134, 36, 0, 85 - st_80DB0F8 51, 53, 46, 58, 134, 47, 0, 55 - st_80DB0F8 52, 48, 47, 59, 134, 58, 0, 146 - st_80DB0F8 59, 55, 48, 60, 148, 3, 0, 105 - st_80DB0F8 54, 56, 49, 61, 148, 14, 0, 118 - st_80DB0F8 55, 57, 50, 62, 148, 25, 0, 73 - st_80DB0F8 56, 58, 51, 63, 148, 36, 0, 86 - st_80DB0F8 57, 59, 52, 64, 148, 47, 0, 56 - st_80DB0F8 58, 54, 53, 65, 148, 58, 0, 147 - st_80DB0F8 65, 61, 54, 66, 162, 3, 0, 106 - st_80DB0F8 60, 62, 55, 67, 162, 14, 0, 119 - st_80DB0F8 61, 63, 56, 68, 162, 25, 0, 74 - st_80DB0F8 62, 64, 57, 69, 162, 36, 0, 87 - st_80DB0F8 63, 65, 58, 70, 162, 47, 0, 57 - st_80DB0F8 64, 60, 59, 71, 162, 58, 0, 148 - st_80DB0F8 71, 67, 60, 72, 176, 3, 0, 107 - st_80DB0F8 66, 68, 61, 73, 176, 14, 0, 120 - st_80DB0F8 67, 69, 62, 74, 176, 25, 0, 75 - st_80DB0F8 68, 70, 63, 75, 176, 36, 0, 88 - st_80DB0F8 69, 71, 64, 76, 176, 47, 0, 48 - st_80DB0F8 70, 66, 65, 77, 176, 58, 0, 189 - st_80DB0F8 77, 73, 66, 78, 190, 3, 0, 108 - st_80DB0F8 72, 74, 67, 79, 190, 14, 0, 121 - st_80DB0F8 73, 75, 68, 80, 190, 25, 0, 76 - st_80DB0F8 74, 76, 69, 81, 190, 36, 0, 89 - st_80DB0F8 75, 77, 70, 82, 190, 47, 0, 58 - st_80DB0F8 76, 72, 71, 83, 190, 58, 0, 190 - st_80DB0F8 83, 79, 72, 6, 204, 3, 0, 109 - st_80DB0F8 78, 80, 73, 7, 204, 14, 0, 122 - st_80DB0F8 79, 81, 74, 8, 204, 25, 0, 77 - st_80DB0F8 80, 82, 75, 3, 204, 36, 0, 90 - st_80DB0F8 81, 83, 76, 4, 204, 47, 0, 133 - st_80DB0F8 82, 78, 77, 5, 204, 58, 0, 32 - st_80DB0F8 0, 0, 0, 0, 8, 3, 2, 265 - - .global gUnknown_80DB4F4 -gUnknown_80DB4F4: @ 80DB4F4 - .4byte sUnknown_80DB534 - .4byte sUnknown_80DB530 - .4byte sUnknown_80DB528 - .4byte sUnknown_80DB520 - .4byte sUnknown_80DB518 - .4byte sUnknown_80DB514 - .4byte sUnknown_80DB510 - -sUnknown_80DB510: - .string "END\0" - .align 2, 0 - -sUnknown_80DB514: - .string "DEL\0" - .align 2, 0 - -sUnknown_80DB518: - .string "ABC\0" - .align 2, 0 - -sUnknown_80DB520: - .string "カナ\0" - .align 2, 0 - -sUnknown_80DB528: - .string "かな\0" - .align 2, 0 - -sUnknown_80DB530: - .string "゜\0" - .align 2, 0 - -sUnknown_80DB534: - .string "゛\0" - .align 2, 0 - - .global gUnknown_80DB538 -gUnknown_80DB538: @ 80DB538 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DB550 -gUnknown_80DB550: @ 80DB550 - .byte 0x00, 0x00 - .byte 0x00, 0x00 - .byte 0x01, 0x00 - .byte 0x00, 0x00 - .byte 0x01, 0x00 - .byte 0x0a, 0x00 - .byte 0x1c, 0x00 - .byte 0x09, 0x00 - .byte 0x09, 0x00 - .byte 0x00, 0x00 - .byte 0x00, 0x00 - .byte 0x00, 0x00 - - .global gUnknown_80DB568 -gUnknown_80DB568: @ 80DB568 - .byte 0x00, 0x00 - .byte 0x00, 0x00 - .byte 0x01, 0x00 - .byte 0x00, 0x00 - .byte 0x04, 0x00 - .byte 0x03, 0x00 - .byte 0x16, 0x00 - .byte 0x05, 0x00 - .byte 0x05, 0x00 - .byte 0x00, 0x00 - .byte 0x00, 0x00 - .byte 0x00, 0x00 - - .global gUnknown_80DB580 -gUnknown_80DB580: @ 80DB580 - .byte 0x00, 0x00 - .byte 0x00, 0x00 - .byte 0x01, 0x00 - .byte 0x00, 0x00 - .byte 0x01, 0x00 - .byte 0x02, 0x00 - .byte 0x1c, 0x00 - .byte 0x07, 0x00 - .byte 0x07, 0x00 - .byte 0x00, 0x00 - .byte 0x00, 0x00 - .byte 0x00, 0x00 - - .global gUnknown_80DB598 -gUnknown_80DB598: @ 80DB598 - .string "{COLOR_1 GREEN}OVR{END_COLOR_TEXT_1}\0" - .align 2,0 - - .global gUnknown_80DB5A4 -gUnknown_80DB5A4: @ 80DB5A4 - .string "{COLOR_1 YELLOW}INS{END_COLOR_TEXT_1}\0" - .align 2,0 - - .global gUnknown_80DB5B0 -gUnknown_80DB5B0: @ 80DB5B0 - .string "{COLOR_1}%c" - .byte 0x81, 0x59 - .align 2,0 - - .global gUnknown_80DB5B8 -gUnknown_80DB5B8: @ 80DB5B8 - .string "{COLOR_1}%c%s\0" - .align 2,0 - - .global gUnknown_80DB5C0 -gUnknown_80DB5C0: @ 80DB5C0 - .string "What is your name?\0" - .align 2,0 - - .global gUnknown_80DB5D4 -gUnknown_80DB5D4: @ 80DB5D4 - .string "What is this Pokémon{APOSTROPHE}s nickname?\0" - .align 2,0 - - .global gUnknown_80DB5F8 -gUnknown_80DB5F8: @ 80DB5F8 - .string "What is your partner{APOSTROPHE}s nickname?\0" - .align 2,0 - - .global gUnknown_80DB61C -gUnknown_80DB61C: @ 80DB61C - .string "What is your team{APOSTROPHE}s name?\0" - .align 2,0 - - .global gUnknown_80DB638 -gUnknown_80DB638: @ 80DB638 - .string "Please enter the password.\0" - .align 2,0 - - .global gUnknown_80DB654 -gUnknown_80DB654: @ 80DB654 - .string "{COLOR_1 RED}%s{END_COLOR_TEXT_1}\0" - .align 2,0 - - .global gUnknown_80DB65C -gUnknown_80DB65C: @ 80DB65C - .string "{COLOR_1 CYAN}%s{END_COLOR_TEXT_1}\0" - .align 2,0 - - .global gUnknown_80DB664 -gUnknown_80DB664: @ 80DB664 - .string "%s\0" - .align 2,0 - -@ END code_80130A8 #4 - -@ START code_8012A18_1 -.string "pksdir0\0" - - .align 2,0 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DB688 -gUnknown_80DB688: @ 80DB688 - .string "Is the name {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1} OK?\0" - .align 2,0 - - .global gUnknown_80DB6A4 -gUnknown_80DB6A4: @ 80DB6A4 - .string "This name is too long.\0" - .align 2,0 - - .global gUnknown_80DB6BC -gUnknown_80DB6BC: @ 80DB6BC - .string "Please enter a name.\0" - .align 2,0 -@ END code_8012A18_1 - -@ START felicity_bank -.string "pksdir0\0" - .align 2,0 - - .global gUnknown_80DB6DC -gUnknown_80DB6DC: @ 80DB6DC - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DB6F4 -gUnknown_80DB6F4: @ 80DB6F4 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x03, 0x00 - .byte 0x1a, 0x00, 0x02, 0x00 - .byte 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DB70C -gUnknown_80DB70C: @ 80DB70C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x11, 0x00, 0x08, 0x00 - .byte 0x0b, 0x00, 0x04, 0x00 - .byte 0x04, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gFelicityMoney -gFelicityMoney: @ 80DB724 - .string "Money: \0" - .align 2,0 - - .global gFelicitySavings -gFelicitySavings: @ 80DB72C - .string "Savings: \0" - .align 2,0 - - .global gUnknown_80DB738 -gUnknown_80DB738: @ 80DB738 - .string "Money\0" - -@ END FELICITY BANK \ No newline at end of file +@ END code_80130A8 #2 \ No newline at end of file diff --git a/data/data_80DAF70.s b/data/data_80DAF70.s new file mode 100644 index 000000000..8443136b1 --- /dev/null +++ b/data/data_80DAF70.s @@ -0,0 +1,444 @@ + .section .rodata + + .align 2, 0 +@ START code_80130A8 #3 +.string "pksdir0\0" + + .global gUnknown_80DAF70 +gUnknown_80DAF70: @ 80DAF70 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80DAF88 +gUnknown_80DAF88: @ 80DAF88 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x02, 0x00, 0x02, 0x00 + .byte 0x1a, 0x00, 0x0c, 0x00 + .byte 0x0c, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80DAFA0 +gUnknown_80DAFA0: @ 80DAFA0 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x16, 0x00, 0x0f, 0x00 + .byte 0x06, 0x00, 0x03, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + +@ END code_80130A8 #3 + +@ START code_80130A8 #4 +.string "pksdir0\0" + + .global gUnknown_80DAFC0 +gUnknown_80DAFC0: @ 80DAFC0 + .2byte 3, 0xD + .2byte 0xF, 0xD + .2byte 0x1B, 0xD + .2byte 0x27, 0xD + .2byte 0x33, 0xD + .2byte 0x40, 0xF + .2byte 0x4C, 0xF + .2byte 0x58, 0xF + .2byte 0x64, 0xF + .2byte 0x70, 0xF + .2byte 0x7C, 0xF + .2byte 0x88, 0xF + .2byte 0x94, 0xF + .2byte 0xA1, 0xD + .2byte 0xAD, 0xD + .2byte 0xB9, 0xD + .2byte 0xC5, 0xD + .2byte 0xD1, 0xD + .2byte 3, 0x1A + .2byte 0xF, 0x1A + .2byte 0x1B, 0x1A + .2byte 0x27, 0x1A + .2byte 0x33, 0x1A + .2byte 0x40, 0x1C + .2byte 0x4C, 0x1C + .2byte 0x58, 0x1C + .2byte 0x64, 0x1C + .2byte 0x70, 0x1C + .2byte 0x7C, 0x1C + .2byte 0x88, 0x1C + .2byte 0x94, 0x1C + .2byte 0xA1, 0x1A + .2byte 0xAD, 0x1A + .2byte 0xB9, 0x1A + .2byte 0xC5, 0x1A + .2byte 0xD1, 0x1A + .2byte 3, 0x28 + .2byte 0xF, 0x28 + .2byte 0x1B, 0x28 + .2byte 0x27, 0x28 + .2byte 0x33, 0x28 + .2byte 0x40, 0x2A + .2byte 0x4C, 0x2A + .2byte 0x58, 0x2A + .2byte 0x64, 0x2A + .2byte 0x70, 0x2A + .2byte 0x7C, 0x2A + .2byte 0x88, 0x2A + .2byte 0x94, 0x2A + .2byte 0xA1, 0x28 + .2byte 0xAD, 0x28 + .2byte 0xB9, 0x28 + .2byte 0xC5, 0x28 + .2byte 0xD1, 0x28 + + .global gUnknown_80DB098 +gUnknown_80DB098: @ 80DB098 + .2byte 0x20, 0x12 + .2byte 0x2E, 0x12 + .2byte 0x3C, 0x12 + .2byte 0x4A, 0x12 + .2byte 0x58, 0x14 + .2byte 0x66, 0x14 + .2byte 0x74, 0x14 + .2byte 0x82, 0x14 + .2byte 0x90, 0x12 + .2byte 0x9E, 0x12 + .2byte 0xAC, 0x12 + .2byte 0xBA, 0x12 + .2byte 0x20, 0x24 + .2byte 0x2E, 0x24 + .2byte 0x3C, 0x24 + .2byte 0x4A, 0x24 + .2byte 0x58, 0x26 + .2byte 0x66, 0x26 + .2byte 0x74, 0x26 + .2byte 0x82, 0x26 + .2byte 0x90, 0x24 + .2byte 0x9E, 0x24 + .2byte 0xAC, 0x24 + .2byte 0xBA, 0x24 + + .global gUnknown_80DB0F8 +gUnknown_80DB0F8: @ 80DB0F8 +.macro st_80DB0F8, a, b, c, d, e, f, g, h + .byte \a, \b, \c, \d, \e, \f, \g + .align 2, 0 + .4byte \h +.endm + st_80DB0F8 0, 0, 0, 0, 8, 3, 0, 264 + st_80DB0F8 0, 0, 0, 0, 8, 14, 0, 264 + st_80DB0F8 0, 0, 0, 0, 8, 25, 0, 264 + st_80DB0F8 5, 4, 81, 9, 8, 36, 3, 263 + st_80DB0F8 3, 5, 82, 10, 8, 47, 3, 261 + st_80DB0F8 4, 3, 83, 11, 8, 58, 3, 262 + st_80DB0F8 11, 7, 78, 12, 36, 3, 0, 97 + st_80DB0F8 6, 8, 79, 13, 36, 14, 0, 110 + st_80DB0F8 7, 9, 80, 14, 36, 25, 0, 65 + st_80DB0F8 8, 10, 3, 15, 36, 36, 0, 78 + st_80DB0F8 9, 11, 4, 16, 36, 47, 0, 233 + st_80DB0F8 10, 6, 5, 17, 36, 58, 0, 43 + st_80DB0F8 17, 13, 6, 18, 50, 3, 0, 98 + st_80DB0F8 12, 14, 7, 19, 50, 14, 0, 111 + st_80DB0F8 13, 15, 8, 20, 50, 25, 0, 66 + st_80DB0F8 14, 16, 9, 21, 50, 36, 0, 79 + st_80DB0F8 15, 17, 10, 22, 50, 47, 0, 49 + st_80DB0F8 16, 12, 11, 23, 50, 58, 0, 45 + st_80DB0F8 23, 19, 12, 24, 64, 3, 0, 99 + st_80DB0F8 18, 20, 13, 25, 64, 14, 0, 112 + st_80DB0F8 19, 21, 14, 26, 64, 25, 0, 67 + st_80DB0F8 20, 22, 15, 27, 64, 36, 0, 80 + st_80DB0F8 21, 23, 16, 28, 64, 47, 0, 50 + st_80DB0F8 22, 18, 17, 29, 64, 58, 0, 44 + st_80DB0F8 29, 25, 18, 30, 78, 3, 0, 100 + st_80DB0F8 24, 26, 19, 31, 78, 14, 0, 113 + st_80DB0F8 25, 27, 20, 32, 78, 25, 0, 68 + st_80DB0F8 26, 28, 21, 33, 78, 36, 0, 81 + st_80DB0F8 27, 29, 22, 34, 78, 47, 0, 51 + st_80DB0F8 28, 24, 23, 35, 78, 58, 0, 46 + st_80DB0F8 35, 31, 24, 36, 92, 3, 0, 101 + st_80DB0F8 30, 32, 25, 37, 92, 14, 0, 114 + st_80DB0F8 31, 33, 26, 38, 92, 25, 0, 69 + st_80DB0F8 32, 34, 27, 39, 92, 36, 0, 82 + st_80DB0F8 33, 35, 28, 40, 92, 47, 0, 52 + st_80DB0F8 34, 30, 29, 41, 92, 58, 0, 33 + st_80DB0F8 41, 37, 30, 42, 106, 3, 0, 102 + st_80DB0F8 36, 38, 31, 43, 106, 14, 0, 115 + st_80DB0F8 37, 39, 32, 44, 106, 25, 0, 70 + st_80DB0F8 38, 40, 33, 45, 106, 36, 0, 83 + st_80DB0F8 39, 41, 34, 46, 106, 47, 0, 53 + st_80DB0F8 40, 36, 35, 47, 106, 58, 0, 63 + st_80DB0F8 47, 43, 36, 48, 120, 3, 0, 103 + st_80DB0F8 42, 44, 37, 49, 120, 14, 0, 116 + st_80DB0F8 43, 45, 38, 50, 120, 25, 0, 71 + st_80DB0F8 44, 46, 39, 51, 120, 36, 0, 84 + st_80DB0F8 45, 47, 40, 52, 120, 47, 0, 54 + st_80DB0F8 46, 42, 41, 53, 120, 58, 0, 145 + st_80DB0F8 53, 49, 42, 54, 134, 3, 0, 104 + st_80DB0F8 48, 50, 43, 55, 134, 14, 0, 117 + st_80DB0F8 49, 51, 44, 56, 134, 25, 0, 72 + st_80DB0F8 50, 52, 45, 57, 134, 36, 0, 85 + st_80DB0F8 51, 53, 46, 58, 134, 47, 0, 55 + st_80DB0F8 52, 48, 47, 59, 134, 58, 0, 146 + st_80DB0F8 59, 55, 48, 60, 148, 3, 0, 105 + st_80DB0F8 54, 56, 49, 61, 148, 14, 0, 118 + st_80DB0F8 55, 57, 50, 62, 148, 25, 0, 73 + st_80DB0F8 56, 58, 51, 63, 148, 36, 0, 86 + st_80DB0F8 57, 59, 52, 64, 148, 47, 0, 56 + st_80DB0F8 58, 54, 53, 65, 148, 58, 0, 147 + st_80DB0F8 65, 61, 54, 66, 162, 3, 0, 106 + st_80DB0F8 60, 62, 55, 67, 162, 14, 0, 119 + st_80DB0F8 61, 63, 56, 68, 162, 25, 0, 74 + st_80DB0F8 62, 64, 57, 69, 162, 36, 0, 87 + st_80DB0F8 63, 65, 58, 70, 162, 47, 0, 57 + st_80DB0F8 64, 60, 59, 71, 162, 58, 0, 148 + st_80DB0F8 71, 67, 60, 72, 176, 3, 0, 107 + st_80DB0F8 66, 68, 61, 73, 176, 14, 0, 120 + st_80DB0F8 67, 69, 62, 74, 176, 25, 0, 75 + st_80DB0F8 68, 70, 63, 75, 176, 36, 0, 88 + st_80DB0F8 69, 71, 64, 76, 176, 47, 0, 48 + st_80DB0F8 70, 66, 65, 77, 176, 58, 0, 189 + st_80DB0F8 77, 73, 66, 78, 190, 3, 0, 108 + st_80DB0F8 72, 74, 67, 79, 190, 14, 0, 121 + st_80DB0F8 73, 75, 68, 80, 190, 25, 0, 76 + st_80DB0F8 74, 76, 69, 81, 190, 36, 0, 89 + st_80DB0F8 75, 77, 70, 82, 190, 47, 0, 58 + st_80DB0F8 76, 72, 71, 83, 190, 58, 0, 190 + st_80DB0F8 83, 79, 72, 6, 204, 3, 0, 109 + st_80DB0F8 78, 80, 73, 7, 204, 14, 0, 122 + st_80DB0F8 79, 81, 74, 8, 204, 25, 0, 77 + st_80DB0F8 80, 82, 75, 3, 204, 36, 0, 90 + st_80DB0F8 81, 83, 76, 4, 204, 47, 0, 133 + st_80DB0F8 82, 78, 77, 5, 204, 58, 0, 32 + st_80DB0F8 0, 0, 0, 0, 8, 3, 2, 265 + + .global gUnknown_80DB4F4 +gUnknown_80DB4F4: @ 80DB4F4 + .4byte sUnknown_80DB534 + .4byte sUnknown_80DB530 + .4byte sUnknown_80DB528 + .4byte sUnknown_80DB520 + .4byte sUnknown_80DB518 + .4byte sUnknown_80DB514 + .4byte sUnknown_80DB510 + +sUnknown_80DB510: + .string "END\0" + .align 2, 0 + +sUnknown_80DB514: + .string "DEL\0" + .align 2, 0 + +sUnknown_80DB518: + .string "ABC\0" + .align 2, 0 + +sUnknown_80DB520: + .string "カナ\0" + .align 2, 0 + +sUnknown_80DB528: + .string "かな\0" + .align 2, 0 + +sUnknown_80DB530: + .string "゜\0" + .align 2, 0 + +sUnknown_80DB534: + .string "゛\0" + .align 2, 0 + + .global gUnknown_80DB538 +gUnknown_80DB538: @ 80DB538 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80DB550 +gUnknown_80DB550: @ 80DB550 + .byte 0x00, 0x00 + .byte 0x00, 0x00 + .byte 0x01, 0x00 + .byte 0x00, 0x00 + .byte 0x01, 0x00 + .byte 0x0a, 0x00 + .byte 0x1c, 0x00 + .byte 0x09, 0x00 + .byte 0x09, 0x00 + .byte 0x00, 0x00 + .byte 0x00, 0x00 + .byte 0x00, 0x00 + + .global gUnknown_80DB568 +gUnknown_80DB568: @ 80DB568 + .byte 0x00, 0x00 + .byte 0x00, 0x00 + .byte 0x01, 0x00 + .byte 0x00, 0x00 + .byte 0x04, 0x00 + .byte 0x03, 0x00 + .byte 0x16, 0x00 + .byte 0x05, 0x00 + .byte 0x05, 0x00 + .byte 0x00, 0x00 + .byte 0x00, 0x00 + .byte 0x00, 0x00 + + .global gUnknown_80DB580 +gUnknown_80DB580: @ 80DB580 + .byte 0x00, 0x00 + .byte 0x00, 0x00 + .byte 0x01, 0x00 + .byte 0x00, 0x00 + .byte 0x01, 0x00 + .byte 0x02, 0x00 + .byte 0x1c, 0x00 + .byte 0x07, 0x00 + .byte 0x07, 0x00 + .byte 0x00, 0x00 + .byte 0x00, 0x00 + .byte 0x00, 0x00 + + .global gUnknown_80DB598 +gUnknown_80DB598: @ 80DB598 + .string "{COLOR_1 GREEN}OVR{END_COLOR_TEXT_1}\0" + .align 2,0 + + .global gUnknown_80DB5A4 +gUnknown_80DB5A4: @ 80DB5A4 + .string "{COLOR_1 YELLOW}INS{END_COLOR_TEXT_1}\0" + .align 2,0 + + .global gUnknown_80DB5B0 +gUnknown_80DB5B0: @ 80DB5B0 + .string "{COLOR_1}%c" + .byte 0x81, 0x59 + .align 2,0 + + .global gUnknown_80DB5B8 +gUnknown_80DB5B8: @ 80DB5B8 + .string "{COLOR_1}%c%s\0" + .align 2,0 + + .global gUnknown_80DB5C0 +gUnknown_80DB5C0: @ 80DB5C0 + .string "What is your name?\0" + .align 2,0 + + .global gUnknown_80DB5D4 +gUnknown_80DB5D4: @ 80DB5D4 + .string "What is this Pokémon{APOSTROPHE}s nickname?\0" + .align 2,0 + + .global gUnknown_80DB5F8 +gUnknown_80DB5F8: @ 80DB5F8 + .string "What is your partner{APOSTROPHE}s nickname?\0" + .align 2,0 + + .global gUnknown_80DB61C +gUnknown_80DB61C: @ 80DB61C + .string "What is your team{APOSTROPHE}s name?\0" + .align 2,0 + + .global gUnknown_80DB638 +gUnknown_80DB638: @ 80DB638 + .string "Please enter the password.\0" + .align 2,0 + + .global gUnknown_80DB654 +gUnknown_80DB654: @ 80DB654 + .string "{COLOR_1 RED}%s{END_COLOR_TEXT_1}\0" + .align 2,0 + + .global gUnknown_80DB65C +gUnknown_80DB65C: @ 80DB65C + .string "{COLOR_1 CYAN}%s{END_COLOR_TEXT_1}\0" + .align 2,0 + + .global gUnknown_80DB664 +gUnknown_80DB664: @ 80DB664 + .string "%s\0" + .align 2,0 + +@ END code_80130A8 #4 + +@ START code_8012A18_1 +.string "pksdir0\0" + + .align 2,0 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80DB688 +gUnknown_80DB688: @ 80DB688 + .string "Is the name {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1} OK?\0" + .align 2,0 + + .global gUnknown_80DB6A4 +gUnknown_80DB6A4: @ 80DB6A4 + .string "This name is too long.\0" + .align 2,0 + + .global gUnknown_80DB6BC +gUnknown_80DB6BC: @ 80DB6BC + .string "Please enter a name.\0" + .align 2,0 +@ END code_8012A18_1 + +@ START felicity_bank +.string "pksdir0\0" + .align 2,0 + + .global gUnknown_80DB6DC +gUnknown_80DB6DC: @ 80DB6DC + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80DB6F4 +gUnknown_80DB6F4: @ 80DB6F4 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x02, 0x00, 0x03, 0x00 + .byte 0x1a, 0x00, 0x02, 0x00 + .byte 0x02, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80DB70C +gUnknown_80DB70C: @ 80DB70C + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x11, 0x00, 0x08, 0x00 + .byte 0x0b, 0x00, 0x04, 0x00 + .byte 0x04, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gFelicityMoney +gFelicityMoney: @ 80DB724 + .string "Money: \0" + .align 2,0 + + .global gFelicitySavings +gFelicitySavings: @ 80DB72C + .string "Savings: \0" + .align 2,0 + + .global gUnknown_80DB738 +gUnknown_80DB738: @ 80DB738 + .string "Money\0" + +@ END FELICITY BANK \ No newline at end of file diff --git a/ld_script.txt b/ld_script.txt index a9b3e3fae..77d439ccc 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -401,6 +401,8 @@ SECTIONS { src/quick_save_write.o(.rodata); src/menu_input.o(.rodata); data/data_80D47B8.o(.rodata); + data/common_strings.o(.rodata); + data/data_80DAF70.o(.rodata); src/kangaskhan_storage1.o(.rodata); src/kangaskhan_storage2.o(.rodata); src/kecleon_bros1.o(.rodata); diff --git a/src/code_8012A18_1.c b/src/code_8012A18_1.c index 74bde6a63..45ec2a1ef 100644 --- a/src/code_8012A18_1.c +++ b/src/code_8012A18_1.c @@ -18,8 +18,8 @@ struct unkStruct_203B200 u8 fill[0x50 - 0x28]; }; extern struct unkStruct_203B200 *gUnknown_203B200; -extern const char *gUnknown_80D4920; -extern const char *gUnknown_80D4928; +extern const u8 *gCommonYes[]; +extern const u8 *gCommonNo[]; extern const char gUnknown_80DB6A4; extern const char gUnknown_80DB6BC; @@ -180,9 +180,9 @@ void sub_8016110(void) void CreateConfirmNameMenu(void) { - gUnknown_203B200->menus[0].text = gUnknown_80D4920; // Yes + gUnknown_203B200->menus[0].text = *gCommonYes; gUnknown_203B200->menus[0].menuAction = MENU_ACTION_YES; - gUnknown_203B200->menus[1].text = gUnknown_80D4928; // No + gUnknown_203B200->menus[1].text = *gCommonNo; gUnknown_203B200->menus[1].menuAction = MENU_ACTION_NO; gUnknown_203B200->menus[2].text = NULL; gUnknown_203B200->menus[2].menuAction = MENU_ACTION_DEFAULT; diff --git a/src/code_801B60C.c b/src/code_801B60C.c index 0a1da9448..8832d9d90 100644 --- a/src/code_801B60C.c +++ b/src/code_801B60C.c @@ -19,9 +19,9 @@ extern u8 gAvailablePokemonNames[]; // 202DF98 static EWRAM_DATA_2 unkStruct_203B234 *sUnknown_203B234 = {0}; -extern const u8 *gUnknown_80D4920[]; -extern const u8 *gUnknown_80D4928[]; -extern const u8 *gUnknown_80D4970[]; +extern const u8 *gCommonYes[]; +extern const u8 *gCommonNo[]; +extern const u8 *gCommonInfo[]; #include "data/code_801B60C.h" // 80DBA58 @@ -311,7 +311,7 @@ static void sub_801BB5C(void) sUnknown_203B234->unkCC[loopMax].menuAction = 7; loopMax++; - sUnknown_203B234->unkCC[loopMax].text = *gUnknown_80D4970; + sUnknown_203B234->unkCC[loopMax].text = *gCommonInfo; sUnknown_203B234->unkCC[loopMax].menuAction = 8; loopMax++; @@ -337,11 +337,11 @@ static void sub_801BC24(void) s32 loopMax; loopMax = 0; - sUnknown_203B234->unkCC[loopMax].text = *gUnknown_80D4920; + sUnknown_203B234->unkCC[loopMax].text = *gCommonYes; sUnknown_203B234->unkCC[loopMax].menuAction = 2; loopMax++; - sUnknown_203B234->unkCC[loopMax].text = *gUnknown_80D4928; + sUnknown_203B234->unkCC[loopMax].text = *gCommonNo; sUnknown_203B234->unkCC[loopMax].menuAction = 3; loopMax++; diff --git a/src/code_801C620.c b/src/code_801C620.c index af9208153..a1da9b2c3 100644 --- a/src/code_801C620.c +++ b/src/code_801C620.c @@ -145,7 +145,7 @@ extern u8 gUnknown_80DBE1C[]; extern char gUnknown_80DBE2C[]; // {ARG_MOVE_ITEM_0} extern char gUnknown_80DBE30[]; // {ARG_POKEMON_0} extern u8 gUnknown_80DBDC8[]; -extern u8 *gUnknown_80D4970[]; +extern u8 *gCommonInfo[]; extern u32 sub_801CE58(void); extern void sub_801CC38(void); @@ -294,7 +294,7 @@ void sub_801C0C8(void) gUnknown_203B238->unk34[0].text = gUnknown_80DBDC8; puVar1->unk34[0].menuAction = 2; menuAction = 1; - puVar1->unk34[1].text = *gUnknown_80D4970; + puVar1->unk34[1].text = *gCommonInfo; puVar1->unk34[1].menuAction = 3; max = 2; diff --git a/src/code_801D760.c b/src/code_801D760.c index 3283f9bfc..ee65aa2ee 100644 --- a/src/code_801D760.c +++ b/src/code_801D760.c @@ -88,10 +88,10 @@ extern u8 gMenuItems[]; extern u8 gMenuJobList[]; extern u8 gMenuTeam[]; extern u8 gMenuOthers[]; -extern u8 *gUnknown_80D49B4[]; +extern u8 *gCommonExit[]; extern u8 gUnknown_80DBF34[]; -extern u8 *gUnknown_80D49A8[]; -extern u8 *gUnknown_80D4970[]; +extern u8 *gCommonFriend[]; +extern u8 *gCommonInfo[]; struct TeamBadgeData { @@ -211,7 +211,7 @@ void sub_801D4C0(void) else { strcpy(gAvailablePokemonNames,gUnknown_80DBF34); if (sub_8096E2C()) { - gUnknown_203B250->unk68[loopMax].text = *gUnknown_80D49A8; + gUnknown_203B250->unk68[loopMax].text = *gCommonFriend; gUnknown_203B250->unk68[loopMax].menuAction = 5; if (sub_8024108(4)) { gUnknown_203B250->unkA8[loopMax] = 1; @@ -225,10 +225,10 @@ void sub_801D4C0(void) loopMax++; } - gUnknown_203B250->unk68[loopMax].text = *gUnknown_80D4970; + gUnknown_203B250->unk68[loopMax].text = *gCommonInfo; gUnknown_203B250->unk68[loopMax].menuAction = 8; loopMax++; - gUnknown_203B250->unk68[loopMax].text = *gUnknown_80D49B4; + gUnknown_203B250->unk68[loopMax].text = *gCommonExit; gUnknown_203B250->unk68[loopMax].menuAction = 10; loopMax++; } diff --git a/src/code_8023144.c b/src/code_8023144.c index 5d5987e19..6802075be 100644 --- a/src/code_8023144.c +++ b/src/code_8023144.c @@ -42,8 +42,8 @@ extern u8 gUnknown_80DC5EC[]; extern u8 gUnknown_202DE58[]; extern u8 gUnknown_80DC8F0[]; extern u8 gUnknown_80DC8F8[]; -extern u8 *gUnknown_80D4940[]; -extern u8 *gUnknown_80D4970[]; +extern u8 *gCommonTrash[]; +extern u8 *gCommonInfo[]; extern void sub_8022924(s32); void GetGummiItemStatBoost(PokemonStruct1* pokemon, u8 id, bool8 checkBoostFlags, Gummi *gummi); @@ -71,11 +71,11 @@ void sub_8022D2C(void) { gUnknown_203B294->unkF8[loopMax].menuAction = 6; loopMax += 1; } - gUnknown_203B294->unkF8[loopMax].text = *gUnknown_80D4940; + gUnknown_203B294->unkF8[loopMax].text = *gCommonTrash; gUnknown_203B294->unkF8[loopMax].menuAction = 4; loopMax += 1; } - gUnknown_203B294->unkF8[loopMax].text = *gUnknown_80D4970; + gUnknown_203B294->unkF8[loopMax].text = *gCommonInfo; gUnknown_203B294->unkF8[loopMax].menuAction = 7; loopMax += 1; gUnknown_203B294->unkF8[loopMax].text = NULL; diff --git a/src/debug_menu2.c b/src/debug_menu2.c index 516fae6cd..f11b38fc3 100644 --- a/src/debug_menu2.c +++ b/src/debug_menu2.c @@ -41,8 +41,8 @@ static const UnkTextStruct2 sUnknown_80E7E64 = ALIGNED(4) static const u8 sNumberPrompt[] = "Number?"; ALIGNED(4) static const u8 sFill[] = "pksdir0"; -// data_80D47B8.s -extern const u8 *gUnknown_80D4970[]; +// common_strings.s +extern const u8 *gCommonInfo[]; void sub_803A504(u32); void sub_803A51C(void); @@ -187,7 +187,7 @@ void sub_803A6F0(void) } loopMax += 1; - sUnknown_203B3F0->menuItems[loopMax].text = *gUnknown_80D4970; + sUnknown_203B3F0->menuItems[loopMax].text = *gCommonInfo; sUnknown_203B3F0->menuItems[loopMax].menuAction = 3; loopMax += 1; diff --git a/src/debug_menu3.c b/src/debug_menu3.c index c66f3ef8a..28388b047 100644 --- a/src/debug_menu3.c +++ b/src/debug_menu3.c @@ -35,8 +35,8 @@ ALIGNED(4) static const u8 sClose[] = "CLOSE"; ALIGNED(4) static const u8 sOpen[] = "OPEN"; ALIGNED(4) static const u8 sFill[] = "pksdir0"; -// data_80D47B8.s -extern const u8 *gUnknown_80D4970[]; +// common_strings.s +extern const u8 *gCommonInfo[]; void sub_803A924(u32); void sub_803A93C(void); @@ -156,7 +156,7 @@ void sub_803AA34(void) } index++; - sUnknown_203B3F4->menuItems[index].text = *gUnknown_80D4970; + sUnknown_203B3F4->menuItems[index].text = *gCommonInfo; sUnknown_203B3F4->menuItems[index].menuAction = 4; index++; diff --git a/src/felicity_bank.c b/src/felicity_bank.c index c036abc04..fbe495167 100644 --- a/src/felicity_bank.c +++ b/src/felicity_bank.c @@ -15,13 +15,13 @@ extern u32 gUnknown_202DE30; extern u8 gUnknown_202E1C8[]; extern u8 gUnknown_202E5D8[]; -extern u8 *gUnknown_80D4934[]; -extern u8 *gUnknown_80D4958[]; -extern u8 *gUnknown_80D4964[]; -extern u8 *gUnknown_80D4970[]; -extern u8 *gFelicityDeposit; -extern u8 *gFelicityWithdraw; -extern u8 *gFelicityDialogue[2][15]; +extern u8 *gCommonCancel[]; +extern u8 *gCommonStore[]; +extern u8 *gCommonTake[]; +extern u8 *gCommonInfo[]; +extern u8 *gCommonDepositPrompt; +extern u8 *gCommonWithdrawPrompt; +extern u8 *gCommonFelicity[2][15]; extern UnkTextStruct2 gUnknown_80DB6DC; extern UnkTextStruct2 gUnknown_80DB6F4; extern UnkTextStruct2 gUnknown_80DB70C; @@ -161,49 +161,49 @@ void UpdateFelicityBankDialogue(void) switch (gFelicityBankWork->currState) { case 0x0: gFelicityBankWork->fallbackState = 1; - sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][0], 0, gFelicityBankWork->unkA4, 0x10D); + sub_80141B4(gCommonFelicity[gFelicityBankWork->isAsleep][0], 0, gFelicityBankWork->unkA4, 0x10D); break; case 0x1: CreateFelicityBankShopMenu(); gFelicityBankWork->fallbackState = 2; if (gTeamInventoryRef->teamSavings == 0) - sub_8014248(gFelicityDialogue[gFelicityBankWork->isAsleep][1], 0, gFelicityBankWork->menuAction, + sub_8014248(gCommonFelicity[gFelicityBankWork->isAsleep][1], 0, gFelicityBankWork->menuAction, gFelicityBankWork->unk14, gFelicityBankWork->unk54, 4, 0, gFelicityBankWork->unkA4, 0xC); else { gUnknown_202DE30 = gTeamInventoryRef->teamSavings; - sub_8014248(gFelicityDialogue[gFelicityBankWork->isAsleep][2], 0, gFelicityBankWork->menuAction, + sub_8014248(gCommonFelicity[gFelicityBankWork->isAsleep][2], 0, gFelicityBankWork->menuAction, gFelicityBankWork->unk14, gFelicityBankWork->unk54, 4, 0, gFelicityBankWork->unkA4, 0xC); } break; case 0x3: gFelicityBankWork->fallbackState = 1; - sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][14], 0, gFelicityBankWork->unkA4, 0x10D); + sub_80141B4(gCommonFelicity[gFelicityBankWork->isAsleep][14], 0, gFelicityBankWork->unkA4, 0x10D); break; case 0x4: gFelicityBankWork->fallbackState = 6; if (gTeamInventoryRef->teamSavings == 0) - sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][4], 0, gFelicityBankWork->unkA4, 0x10D); + sub_80141B4(gCommonFelicity[gFelicityBankWork->isAsleep][4], 0, gFelicityBankWork->unkA4, 0x10D); else { gUnknown_202DE30 = gTeamInventoryRef->teamSavings; - sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][5], 0, gFelicityBankWork->unkA4, 0x10D); + sub_80141B4(gCommonFelicity[gFelicityBankWork->isAsleep][5], 0, gFelicityBankWork->unkA4, 0x10D); } break; case 0x5: gFelicityBankWork->fallbackState = 1; - sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][3], 0, gFelicityBankWork->unkA4, 0x10D); + sub_80141B4(gCommonFelicity[gFelicityBankWork->isAsleep][3], 0, gFelicityBankWork->unkA4, 0x10D); break; case 0x7: if (gTeamInventoryRef->teamMoney == 0) { gFelicityBankWork->fallbackState = 1; - sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][7], 0, gFelicityBankWork->unkA4, 0x10D); + sub_80141B4(gCommonFelicity[gFelicityBankWork->isAsleep][7], 0, gFelicityBankWork->unkA4, 0x10D); } else if (gTeamInventoryRef->teamSavings >= MAX_TEAM_SAVINGS) { gFelicityBankWork->fallbackState = 1; - sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][8], 0, gFelicityBankWork->unkA4, 0x10D); + sub_80141B4(gCommonFelicity[gFelicityBankWork->isAsleep][8], 0, gFelicityBankWork->unkA4, 0x10D); } else { gFelicityBankWork->fallbackState = 8; - sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][6], 0, gFelicityBankWork->unkA4, 0x10D); + sub_80141B4(gCommonFelicity[gFelicityBankWork->isAsleep][6], 0, gFelicityBankWork->unkA4, 0x10D); } break; case 0x8: @@ -224,21 +224,21 @@ void UpdateFelicityBankDialogue(void) case 0x9: gFelicityBankWork->fallbackState = 1; gUnknown_202DE30 = gFelicityBankWork->chosenAmount; - sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][9], 0, gFelicityBankWork->unkA4, 0x10D); + sub_80141B4(gCommonFelicity[gFelicityBankWork->isAsleep][9], 0, gFelicityBankWork->unkA4, 0x10D); break; case 0xA: if (gTeamInventoryRef->teamMoney >= MAX_TEAM_MONEY) { gFelicityBankWork->fallbackState = 1; - sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][12], 0, gFelicityBankWork->unkA4, 0x10D); + sub_80141B4(gCommonFelicity[gFelicityBankWork->isAsleep][12], 0, gFelicityBankWork->unkA4, 0x10D); } else if (gTeamInventoryRef->teamSavings == 0) { gFelicityBankWork->fallbackState = 1; - sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][11], 0, gFelicityBankWork->unkA4, 0x10D); + sub_80141B4(gCommonFelicity[gFelicityBankWork->isAsleep][11], 0, gFelicityBankWork->unkA4, 0x10D); } else { gFelicityBankWork->fallbackState = 11; gUnknown_202DE30 = gTeamInventoryRef->teamSavings; - sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][10], 0, gFelicityBankWork->unkA4, 0x10D); + sub_80141B4(gCommonFelicity[gFelicityBankWork->isAsleep][10], 0, gFelicityBankWork->unkA4, 0x10D); } break; case 0xB: @@ -262,7 +262,7 @@ void UpdateFelicityBankDialogue(void) case 0xC: gFelicityBankWork->fallbackState = 1; gUnknown_202DE30 = gFelicityBankWork->chosenAmount; - sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][13], 0, gFelicityBankWork->unkA4, 0x10D); + sub_80141B4(gCommonFelicity[gFelicityBankWork->isAsleep][13], 0, gFelicityBankWork->unkA4, 0x10D); break; } } @@ -275,16 +275,16 @@ void CreateFelicityBankShopMenu(void) MemoryFill16(gFelicityBankWork->unk54, 0, sizeof(gFelicityBankWork->unk54)); - gFelicityBankWork->unk14[loopMax].text = *gUnknown_80D4958; // Store + gFelicityBankWork->unk14[loopMax].text = *gCommonStore; gFelicityBankWork->unk14[loopMax].menuAction = 2; loopMax++; - gFelicityBankWork->unk14[loopMax].text = *gUnknown_80D4964; // Take + gFelicityBankWork->unk14[loopMax].text = *gCommonTake; gFelicityBankWork->unk14[loopMax].menuAction = 3; loopMax++; - gFelicityBankWork->unk14[loopMax].text = *gUnknown_80D4970; // Info + gFelicityBankWork->unk14[loopMax].text = *gCommonInfo; gFelicityBankWork->unk14[loopMax].menuAction = 4; loopMax++; - gFelicityBankWork->unk14[loopMax].text = *gUnknown_80D4934; // Cancel + gFelicityBankWork->unk14[loopMax].text = *gCommonCancel; gFelicityBankWork->unk14[loopMax].menuAction = 1; loopMax++; gFelicityBankWork->unk14[loopMax].text = NULL; @@ -389,9 +389,9 @@ void sub_8016B48(u8 action) sub_8008C54(gFelicityBankWork->unk78); sub_80073B8(gFelicityBankWork->unk78); if (action != FELICITY_BANK_ACTION_WITHDRAW) - xxx_call_draw_string(12, 0, gFelicityDeposit, gFelicityBankWork->unk78, 0); + xxx_call_draw_string(12, 0, gCommonDepositPrompt, gFelicityBankWork->unk78, 0); else - xxx_call_draw_string(12, 0, gFelicityWithdraw, gFelicityBankWork->unk78, 0); + xxx_call_draw_string(12, 0, gCommonWithdrawPrompt, gFelicityBankWork->unk78, 0); sub_8013C68(&gFelicityBankWork->unk64); sub_80073E0(gFelicityBankWork->unk78); } diff --git a/src/friend_area_action_menu.c b/src/friend_area_action_menu.c index 52b0c5ef4..fb0d99a54 100644 --- a/src/friend_area_action_menu.c +++ b/src/friend_area_action_menu.c @@ -21,9 +21,9 @@ extern struct unkStruct_203B2BC *gUnknown_203B2BC; -extern u8 *gUnknown_80D4920[]; -extern u8 *gUnknown_80D4928[]; -extern u8 *gUnknown_80D4970[]; +extern u8 *gCommonYes[]; +extern u8 *gCommonNo[]; +extern u8 *gCommonInfo[]; void sub_8027D40(u32, BulkItem *heldItem); void sub_8027794(void); @@ -345,7 +345,7 @@ void sub_80276A8(void) gUnknown_203B2BC->unk16C[loopMax] = 1; } loopMax += 1; - gUnknown_203B2BC->menuItems[loopMax].text = *gUnknown_80D4970; + gUnknown_203B2BC->menuItems[loopMax].text = *gCommonInfo; gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_INFO; loopMax += 1; gUnknown_203B2BC->menuItems[loopMax].text = 0; @@ -375,10 +375,10 @@ void sub_8027794(void) s32 loopMax = 0; MemoryFill16(gUnknown_203B2BC->unk16C,0,sizeof(gUnknown_203B2BC->unk16C)); - gUnknown_203B2BC->menuItems[loopMax].text = *gUnknown_80D4920; + gUnknown_203B2BC->menuItems[loopMax].text = *gCommonYes; gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_YES; loopMax += 1; - gUnknown_203B2BC->menuItems[loopMax].text = *gUnknown_80D4928; + gUnknown_203B2BC->menuItems[loopMax].text = *gCommonNo; gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_NO; loopMax += 1; gUnknown_203B2BC->menuItems[loopMax].text = NULL; diff --git a/src/friend_list_menu.c b/src/friend_list_menu.c index 284c2bc3c..2940d99f7 100644 --- a/src/friend_list_menu.c +++ b/src/friend_list_menu.c @@ -53,7 +53,7 @@ extern u8 gAvailablePokemonNames[]; EWRAM_DATA_2 unkStruct_203B2B4 *gUnknown_203B2B4 = {0}; -extern u8 *gUnknown_80D4970[]; +extern u8 *gCommonInfo[]; #include "data/friend_list_menu.h" @@ -379,7 +379,7 @@ void sub_802591C(void) gUnknown_203B2B4->unk108[loopMax] = 1; } loopMax += 1; - gUnknown_203B2B4->unkC8[loopMax].text = *gUnknown_80D4970; + gUnknown_203B2B4->unkC8[loopMax].text = *gCommonInfo; gUnknown_203B2B4->unkC8[loopMax].menuAction = 4; loopMax += 1; gUnknown_203B2B4->unkC8[loopMax].text = NULL; diff --git a/src/gulpin_shop.c b/src/gulpin_shop.c index 642513059..4d670901f 100644 --- a/src/gulpin_shop.c +++ b/src/gulpin_shop.c @@ -15,11 +15,11 @@ extern u8 gAvailablePokemonNames[]; // 202DF98 EWRAM_DATA_2 GulpinShopWork *sGulpinShopWork = {0}; -// data_80D47B8.s -extern const u8 *gUnknown_80D4920[]; -extern const u8 *gUnknown_80D4928[]; -extern const u8 *gUnknown_80D4970[]; -extern const u8 *gGulpinDialogue[2][25]; // 80D8888 +// common_strings.s +extern const u8 *gCommonYes[]; +extern const u8 *gCommonNo[]; +extern const u8 *gCommonInfo[]; +extern const u8 *gCommonGulpin[2][25]; // 80D8888 #include "data/gulpin_shop.h" @@ -163,9 +163,9 @@ static void sub_801EA28(void) case 0: case 1: if (sGulpinShopWork->isNextMoveLinked) - sub_8014248(gGulpinDialogue[sGulpinShopWork->isAsleep][12], 0, 5, &sGulpinShopWork->unk28[0], &sGulpinShopWork->unk68, 4, 0, sGulpinShopWork->unk128, 12); + sub_8014248(gCommonGulpin[sGulpinShopWork->isAsleep][12], 0, 5, &sGulpinShopWork->unk28[0], &sGulpinShopWork->unk68, 4, 0, sGulpinShopWork->unk128, 12); else - sub_8014248(gGulpinDialogue[sGulpinShopWork->isAsleep][11], 0, 5, &sGulpinShopWork->unk28[0], &sGulpinShopWork->unk68, 4, 0, sGulpinShopWork->unk128, 12); + sub_8014248(gCommonGulpin[sGulpinShopWork->isAsleep][11], 0, 5, &sGulpinShopWork->unk28[0], &sGulpinShopWork->unk68, 4, 0, sGulpinShopWork->unk128, 12); break; case 2: if (sGulpinShopWork->isNextMoveLinked) @@ -193,7 +193,7 @@ static void sub_801EBC4(void) sGulpinShopWork->unk68[0] = 1; which++; - sGulpinShopWork->unk28[which].text = *gUnknown_80D4970; + sGulpinShopWork->unk28[which].text = *gCommonInfo; sGulpinShopWork->unk28[which].menuAction = 3; which++; sGulpinShopWork->unk28[which].text = NULL; @@ -221,10 +221,10 @@ static void sub_801EC7C(void) which = 0; MemoryFill16(sGulpinShopWork->unk68, 0, sizeof(sGulpinShopWork->unk68)); - sGulpinShopWork->unk28[which].text = *gUnknown_80D4920; + sGulpinShopWork->unk28[which].text = *gCommonYes; sGulpinShopWork->unk28[which].menuAction = 4; which++; - sGulpinShopWork->unk28[which].text = *gUnknown_80D4928; + sGulpinShopWork->unk28[which].text = *gCommonNo; sGulpinShopWork->unk28[which].menuAction = 5; which++; sGulpinShopWork->unk28[which].text = NULL; diff --git a/src/gulpin_shop_801FB50.c b/src/gulpin_shop_801FB50.c index 68cd83752..e9087582f 100644 --- a/src/gulpin_shop_801FB50.c +++ b/src/gulpin_shop_801FB50.c @@ -24,11 +24,11 @@ extern u8 gUnknown_202E128[]; extern u8 gUnknown_202E1C8[]; extern u8 gUnknown_202E5D8[]; -extern const u8 *gUnknown_80D4920[]; -extern const u8 *gUnknown_80D4928[]; -extern const u8 *gUnknown_80D4934[]; -extern const u8 *gUnknown_80D4970[]; -extern const u8 *gGulpinDialogue[2][25]; // 80D8888 +extern const u8 *gCommonYes[]; +extern const u8 *gCommonNo[]; +extern const u8 *gCommonCancel[]; +extern const u8 *gCommonInfo[]; +extern const u8 *gCommonGulpin[2][25]; // 80D8888 #include "data/gulpin_shop_801FB50.h" @@ -240,63 +240,63 @@ static void sub_801FF28(void) gUnknown_203B27C->menuAction1 = 2; CreateGulpinShopMenu(); gUnknown_203B27C->fallbackState = 2; - sub_8014248(gGulpinDialogue[gUnknown_203B27C->isAsleep][0],0,gUnknown_203B27C->menuAction1,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0,gUnknown_203B27C->unk17C,0xc); + sub_8014248(gCommonGulpin[gUnknown_203B27C->isAsleep][0],0,gUnknown_203B27C->menuAction1,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0,gUnknown_203B27C->unk17C,0xc); break; case 1: CreateGulpinShopMenu(); gUnknown_203B27C->fallbackState = 2; - sub_8014248(gGulpinDialogue[gUnknown_203B27C->isAsleep][1],0,gUnknown_203B27C->menuAction1,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0,gUnknown_203B27C->unk17C,0xc); + sub_8014248(gCommonGulpin[gUnknown_203B27C->isAsleep][1],0,gUnknown_203B27C->menuAction1,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0,gUnknown_203B27C->unk17C,0xc); break; case 2: DrawTeamMoneyBox(3); break; case 3: gUnknown_203B27C->fallbackState = 0x1f; - sub_80141B4(gGulpinDialogue[gUnknown_203B27C->isAsleep][2],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][2],0,gUnknown_203B27C->unk17C,0x10d); break; case 4: gUnknown_203B27C->fallbackState = 0x1f; - sub_80141B4(gGulpinDialogue[gUnknown_203B27C->isAsleep][3],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][3],0,gUnknown_203B27C->unk17C,0x10d); break; case 5: gUnknown_203B27C->fallbackState = 0x1f; - sub_80141B4(gGulpinDialogue[gUnknown_203B27C->isAsleep][4],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][4],0,gUnknown_203B27C->unk17C,0x10d); break; case 6: gUnknown_203B27C->fallbackState = 0x1f; - sub_80141B4(gGulpinDialogue[gUnknown_203B27C->isAsleep][5],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][5],0,gUnknown_203B27C->unk17C,0x10d); break; case 7: sub_8020900(); - sub_8014248(gGulpinDialogue[gUnknown_203B27C->isAsleep][6],0,0x10, + sub_8014248(gCommonGulpin[gUnknown_203B27C->isAsleep][6],0,0x10, gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0, gUnknown_203B27C->unk17C,0xc); break; case 8: sub_8020950(); - sub_8014248(gGulpinDialogue[gUnknown_203B27C->isAsleep][21],0,0xd, + sub_8014248(gCommonGulpin[gUnknown_203B27C->isAsleep][21],0,0xd, gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0, gUnknown_203B27C->unk17C,0xc); break; case 9: gUnknown_203B27C->fallbackState = 1; - sub_80141B4(gGulpinDialogue[gUnknown_203B27C->isAsleep][22],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][22],0,gUnknown_203B27C->unk17C,0x10d); break; case 10: gUnknown_203B27C->fallbackState = 1; - sub_80141B4(gGulpinDialogue[gUnknown_203B27C->isAsleep][23],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][23],0,gUnknown_203B27C->unk17C,0x10d); break; case 0xb: gUnknown_203B27C->fallbackState = 1; - sub_80141B4(gGulpinDialogue[gUnknown_203B27C->isAsleep][24],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][24],0,gUnknown_203B27C->unk17C,0x10d); break; case 0xc: gUnknown_203B27C->fallbackState = 0xd; - sub_80141B4(gGulpinDialogue[gUnknown_203B27C->isAsleep][7],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][7],0,gUnknown_203B27C->unk17C,0x10d); break; case 0xe: gUnknown_203B27C->fallbackState = 0xf; - sub_80141B4(gGulpinDialogue[gUnknown_203B27C->isAsleep][8],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][8],0,gUnknown_203B27C->unk17C,0x10d); break; case 0xf: sub_8023868(2,0,0,10); @@ -316,7 +316,7 @@ static void sub_801FF28(void) break; case 0x14: gUnknown_203B27C->fallbackState = 0x15; - sub_80141B4(gGulpinDialogue[gUnknown_203B27C->isAsleep][9],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][9],0,gUnknown_203B27C->unk17C,0x10d); break; case 0x15: sub_801F428(gUnknown_203B27C->speciesNum,0); @@ -340,17 +340,17 @@ static void sub_801FF28(void) sub_8094060(gUnknown_203B27C->moves,gUnknown_203B27C->pokeStruct->moves); gUnknown_203B27C->fallbackState = 0x10; sub_8092C84(gAvailablePokemonNames,gUnknown_203B27C->unk1E); - sub_80141B4(gGulpinDialogue[gUnknown_203B27C->isAsleep][10],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][10],0,gUnknown_203B27C->unk17C,0x10d); break; case 0x1a: sub_8094060(gUnknown_203B27C->moves,gUnknown_203B27C->pokeStruct->moves); gUnknown_203B27C->fallbackState = 0x10; if (gUnknown_203B27C->isNextMoveLinked) { - sub_80141B4(gGulpinDialogue[gUnknown_203B27C->isAsleep][14],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][14],0,gUnknown_203B27C->unk17C,0x10d); } else { - sub_80141B4(gGulpinDialogue[gUnknown_203B27C->isAsleep][13],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][13],0,gUnknown_203B27C->unk17C,0x10d); } break; case 0x1d: @@ -363,11 +363,11 @@ static void sub_801FF28(void) break; case 0x1b: gUnknown_203B27C->fallbackState = 0x10; - sub_80141B4(gGulpinDialogue[gUnknown_203B27C->isAsleep][15],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][15],0,gUnknown_203B27C->unk17C,0x10d); break; case 0x1c: gUnknown_203B27C->fallbackState = 0x10; - sub_80141B4(gGulpinDialogue[gUnknown_203B27C->isAsleep][16],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][16],0,gUnknown_203B27C->unk17C,0x10d); break; case 0x1e: @@ -389,11 +389,11 @@ static void sub_801FF28(void) sub_80208B0(); sub_8092C84(gUnknown_202DFE8,gUnknown_203B27C->unk20); if (gUnknown_203B27C->isNextMoveLinked) { - sub_8014248(gGulpinDialogue[gUnknown_203B27C->isAsleep][18],0,0x11,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0, + sub_8014248(gCommonGulpin[gUnknown_203B27C->isAsleep][18],0,0x11,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0, gUnknown_203B27C->unk17C,0xc); } else { - sub_8014248(gGulpinDialogue[gUnknown_203B27C->isAsleep][17],0,0x11,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0, + sub_8014248(gCommonGulpin[gUnknown_203B27C->isAsleep][17],0,0x11,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0, gUnknown_203B27C->unk17C,0xc); } break; @@ -402,11 +402,11 @@ static void sub_801FF28(void) sub_8092C84(gUnknown_202DFE8,gUnknown_203B27C->unk20); if (gUnknown_203B27C->isNextMoveLinked) { - sub_80141B4(gGulpinDialogue[gUnknown_203B27C->isAsleep][20],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][20],0,gUnknown_203B27C->unk17C,0x10d); } else { - sub_80141B4(gGulpinDialogue[gUnknown_203B27C->isAsleep][19],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][19],0,gUnknown_203B27C->unk17C,0x10d); } break; } @@ -422,7 +422,7 @@ static void CreateGulpinShopMenu(void) gUnknown_203B27C->unk7C[loopMax].text = gGulpinInfo; gUnknown_203B27C->unk7C[loopMax].menuAction = 0xb; loopMax++; - gUnknown_203B27C->unk7C[loopMax].text = *gUnknown_80D4934; + gUnknown_203B27C->unk7C[loopMax].text = *gCommonCancel; gUnknown_203B27C->unk7C[loopMax].menuAction = 1; loopMax++; gUnknown_203B27C->unk7C[loopMax].text = 0x0; @@ -480,7 +480,7 @@ static void sub_802069C(void) gUnknown_203B27C->unk7C[loopMax].menuAction = 0x3; loopMax++; - gUnknown_203B27C->unk7C[loopMax].text = *gUnknown_80D4970; + gUnknown_203B27C->unk7C[loopMax].text = *gCommonInfo; gUnknown_203B27C->unk7C[loopMax].menuAction = 0xB; loopMax++; @@ -546,7 +546,7 @@ static void CreateGulpinLinkMenu(void) gUnknown_203B27C->unk7C[loopMax].menuAction = 0xA; loopMax++; - gUnknown_203B27C->unk7C[loopMax].text = *gUnknown_80D4970; + gUnknown_203B27C->unk7C[loopMax].text = *gCommonInfo; gUnknown_203B27C->unk7C[loopMax].menuAction = 0xB; loopMax++; @@ -569,10 +569,10 @@ static void sub_80208B0(void) { s32 loopMax = 0; MemoryFill16(gUnknown_203B27C->unkBC, 0, sizeof(gUnknown_203B27C->unkBC)); - gUnknown_203B27C->unk7C[loopMax].text = *gUnknown_80D4920; + gUnknown_203B27C->unk7C[loopMax].text = *gCommonYes; gUnknown_203B27C->unk7C[loopMax].menuAction = 0x10; loopMax++; - gUnknown_203B27C->unk7C[loopMax].text = *gUnknown_80D4928; + gUnknown_203B27C->unk7C[loopMax].text = *gCommonNo; gUnknown_203B27C->unk7C[loopMax].menuAction = 0x11; loopMax++; gUnknown_203B27C->unk7C[loopMax].text = NULL; @@ -583,10 +583,10 @@ static void sub_8020900(void) { s32 loopMax = 0; MemoryFill16(gUnknown_203B27C->unkBC, 0, sizeof(gUnknown_203B27C->unkBC)); - gUnknown_203B27C->unk7C[loopMax].text = *gUnknown_80D4920; + gUnknown_203B27C->unk7C[loopMax].text = *gCommonYes; gUnknown_203B27C->unk7C[loopMax].menuAction = 0x10; loopMax++; - gUnknown_203B27C->unk7C[loopMax].text = *gUnknown_80D4928; + gUnknown_203B27C->unk7C[loopMax].text = *gCommonNo; gUnknown_203B27C->unk7C[loopMax].menuAction = 0x11; loopMax++; gUnknown_203B27C->unk7C[loopMax].text = NULL; diff --git a/src/hints_menu.c b/src/hints_menu.c index 865a48277..d308f6446 100644 --- a/src/hints_menu.c +++ b/src/hints_menu.c @@ -41,7 +41,7 @@ extern UnkTextStruct2 gUnknown_80DC0A0; extern UnkTextStruct2 gUnknown_80DC0BC; extern UnkTextStruct2 gUnknown_80DC0E4; extern UnkTextStruct2 gUnknown_80DC0FC; -extern struct Hints gGameHints[MAX_HINTS]; +extern struct Hints gCommonHints[MAX_HINTS]; extern u8 gUnknown_80DC0D4[MAX_HINTS]; extern void sub_801E714(void); @@ -181,7 +181,7 @@ void DrawHintSelectionMenu(void) for(hintIndex = 0; hintIndex < MAX_HINTS; hintIndex++) { y = sub_8013800(&gUnknown_203B264->input, hintIndex); - xxx_call_draw_string(10, y, gGameHints[hintIndex].heading, gUnknown_203B264->unk34, 0); + xxx_call_draw_string(10, y, gCommonHints[hintIndex].heading, gUnknown_203B264->unk34, 0); } sub_80073E0(gUnknown_203B264->unk34); } @@ -254,7 +254,7 @@ void sub_801E76C(void) void DisplayChosenHint(void) { sub_80073B8(gUnknown_203B268->unk34); - xxx_call_draw_string((gUnknown_203B268->input.unk1E << 3) + 0x10, 0, gGameHints[gUnknown_203B268->input.unk1E].heading, gUnknown_203B268->unk34, 0); - xxx_call_draw_string(0xA, 0x14, gGameHints[gUnknown_203B268->input.unk1E].body, gUnknown_203B268->unk34, 0); + xxx_call_draw_string((gUnknown_203B268->input.unk1E << 3) + 0x10, 0, gCommonHints[gUnknown_203B268->input.unk1E].heading, gUnknown_203B268->unk34, 0); + xxx_call_draw_string(0xA, 0x14, gCommonHints[gUnknown_203B268->input.unk1E].body, gUnknown_203B268->unk34, 0); sub_80073E0(gUnknown_203B268->unk34); } diff --git a/src/kangaskhan_storage1.c b/src/kangaskhan_storage1.c index f6a6a239f..db717c73e 100644 --- a/src/kangaskhan_storage1.c +++ b/src/kangaskhan_storage1.c @@ -17,13 +17,13 @@ extern u8 gUnknown_202E5D8[]; EWRAM_DATA_2 struct KangaskhanStorageWork *gKangaskhanStorageWork = {0}; -extern const u8 *gUnknown_80D4920[]; -extern const u8 *gUnknown_80D4928[]; -extern const u8 *gUnknown_80D4934[]; -extern const u8 *gUnknown_80D4958[]; -extern const u8 *gUnknown_80D4964[]; -extern const u8 *gUnknown_80D4970[]; -extern const u8 *gKangaskhanStorageDialogue[2][20]; // 80D5404 +extern const u8 *gCommonYes[]; +extern const u8 *gCommonNo[]; +extern const u8 *gCommonCancel[]; +extern const u8 *gCommonStore[]; +extern const u8 *gCommonTake[]; +extern const u8 *gCommonInfo[]; +extern const u8 *gCommonKangaskhanStorage[2][20]; // 80D5404 #include "data/kangaskhan_storage1.h" // 80DB748 @@ -195,65 +195,65 @@ static void sub_8016FF8(void) case KANGASKHAN_STORAGE_INIT: sub_80175FC(); gKangaskhanStorageWork->unkE4 = 1; - sub_8014248(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][0], 0, gKangaskhanStorageWork->menuAction1, gKangaskhanStorageWork->unk24, + sub_8014248(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][0], 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(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][1], 0, gKangaskhanStorageWork->menuAction1, gKangaskhanStorageWork->unk24, + sub_8014248(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][1], 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(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][19], 0, gKangaskhanStorageWork->unkE8, 0x10D); + sub_80141B4(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][19], 0, gKangaskhanStorageWork->unkE8, 0x10D); break; case 3: gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_EXIT; gKangaskhanStorageWork->unkE4 = 1; - sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][2], 0, gKangaskhanStorageWork->unkE8, 0x30D); + sub_80141B4(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][2], 0, gKangaskhanStorageWork->unkE8, 0x30D); break; case KANGASKHAN_STORAGE_NO_INV_ITEMS: gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU; gKangaskhanStorageWork->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][13], 0, gKangaskhanStorageWork->unkE8, 0x10D); + sub_80141B4(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][13], 0, gKangaskhanStorageWork->unkE8, 0x10D); break; case KANGASKHAN_STORAGE_TOO_MANY_ITEMS: gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU; gKangaskhanStorageWork->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][14], 0, gKangaskhanStorageWork->unkE8, 0x10D); + sub_80141B4(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][14], 0, gKangaskhanStorageWork->unkE8, 0x10D); break; case 7: gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU; gKangaskhanStorageWork->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][15], 0, gKangaskhanStorageWork->unkE8, 0x10D); + sub_80141B4(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][15], 0, gKangaskhanStorageWork->unkE8, 0x10D); break; case 8: gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU; gKangaskhanStorageWork->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][18], 0, gKangaskhanStorageWork->unkE8, 0x10D); + sub_80141B4(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][18], 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(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][16], 0, gKangaskhanStorageWork->unkE8, 0x30D); + sub_80141B4(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][16], 0, gKangaskhanStorageWork->unkE8, 0x30D); break; case 10: gKangaskhanStorageWork->fallbackState = 14; gKangaskhanStorageWork->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][17], 0, gKangaskhanStorageWork->unkE8, 0x30D); + sub_80141B4(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][17], 0, gKangaskhanStorageWork->unkE8, 0x30D); break; case 0xb: gKangaskhanStorageWork->fallbackState = 13; gKangaskhanStorageWork->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][3], 0, gKangaskhanStorageWork->unkE8, 0x30D); + sub_80141B4(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][3], 0, gKangaskhanStorageWork->unkE8, 0x30D); break; case 12: gKangaskhanStorageWork->fallbackState = 14; gKangaskhanStorageWork->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][4], 0, gKangaskhanStorageWork->unkE8, 0x30D); + sub_80141B4(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][4], 0, gKangaskhanStorageWork->unkE8, 0x30D); break; case 13: sub_801A5D8(3, 3, NULL, 10); @@ -270,13 +270,13 @@ static void sub_8016FF8(void) sub_80177F8(); sub_8090E14(gUnknown_202DE58, &gKangaskhanStorageWork->storedItem, 0); gKangaskhanStorageWork->unkE4 = 0; - sub_8014248(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][5], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0, + sub_8014248(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][5], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0, gKangaskhanStorageWork->unkE8, 12); break; case 18: sub_80177F8(); gKangaskhanStorageWork->unkE4 = 0; - sub_8014248(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][6], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0, + sub_8014248(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][6], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0, gKangaskhanStorageWork->unkE8, 12); break; case 19: @@ -288,17 +288,17 @@ static void sub_8016FF8(void) gKangaskhanStorageWork->fallbackState = 12; gKangaskhanStorageWork->unkE4 = 1; - sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][7], 0, gKangaskhanStorageWork->unkE8, 0x10D); + sub_80141B4(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][7], 0, gKangaskhanStorageWork->unkE8, 0x10D); break; case 20: gKangaskhanStorageWork->fallbackState = 22; gKangaskhanStorageWork->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][8], 0, gKangaskhanStorageWork->unkE8, 0x30D); + sub_80141B4(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][8], 0, gKangaskhanStorageWork->unkE8, 0x30D); break; case 21: gKangaskhanStorageWork->fallbackState = 23; gKangaskhanStorageWork->unkE4 = 0; - sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][9], 0, gKangaskhanStorageWork->unkE8, 0x30D); + sub_80141B4(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][9], 0, gKangaskhanStorageWork->unkE8, 0x30D); break; case 22: sub_801C8C4(1, 3, 0, 10); @@ -339,13 +339,13 @@ static void sub_8016FF8(void) sub_80177F8(); sub_8090E14(gUnknown_202DE58, &gKangaskhanStorageWork->storedItem, 0); gKangaskhanStorageWork->unkE4 = 0; - sub_8014248(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][10], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0, + sub_8014248(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][10], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0, gKangaskhanStorageWork->unkE8, 12); break; case 28: sub_80177F8(); gKangaskhanStorageWork->unkE4 = 0; - sub_8014248(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][11], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0, + sub_8014248(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][11], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0, gKangaskhanStorageWork->unkE8, 12); break; case 29: @@ -357,7 +357,7 @@ static void sub_8016FF8(void) gKangaskhanStorageWork->fallbackState = 21; gKangaskhanStorageWork->unkE4 = 1; - sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][12], 0, gKangaskhanStorageWork->unkE8, 0x10D); + sub_80141B4(gCommonKangaskhanStorage[gKangaskhanStorageWork->isAsleep][12], 0, gKangaskhanStorageWork->unkE8, 0x10D); break; } } @@ -381,19 +381,19 @@ static void sub_80175FC(void) MemoryFill16(gKangaskhanStorageWork->unk4C,0, sizeof(gKangaskhanStorageWork->unk4C)); loopMax = 0; - gKangaskhanStorageWork->unk24[loopMax].text = *gUnknown_80D4958; + gKangaskhanStorageWork->unk24[loopMax].text = *gCommonStore; gKangaskhanStorageWork->unk24[loopMax].menuAction = 2; loopMax += 1; - gKangaskhanStorageWork->unk24[loopMax].text = *gUnknown_80D4964; + gKangaskhanStorageWork->unk24[loopMax].text = *gCommonTake; gKangaskhanStorageWork->unk24[loopMax].menuAction = 3; loopMax += 1; - gKangaskhanStorageWork->unk24[loopMax].text = *gUnknown_80D4970; + gKangaskhanStorageWork->unk24[loopMax].text = *gCommonInfo; gKangaskhanStorageWork->unk24[loopMax].menuAction = 6; loopMax += 1; - gKangaskhanStorageWork->unk24[loopMax].text = *gUnknown_80D4934; + gKangaskhanStorageWork->unk24[loopMax].text = *gCommonCancel; gKangaskhanStorageWork->unk24[loopMax].menuAction = 1; loopMax += 1; @@ -422,11 +422,11 @@ static void sub_80176B8(void) MemoryFill16(gKangaskhanStorageWork->unk4C, 0, sizeof(gKangaskhanStorageWork->unk4C)); loopMax = 0; - gKangaskhanStorageWork->unk24[loopMax].text = *gUnknown_80D4958; + gKangaskhanStorageWork->unk24[loopMax].text = *gCommonStore; gKangaskhanStorageWork->unk24[loopMax].menuAction = 2; loopMax += 1; - gKangaskhanStorageWork->unk24[loopMax].text = *gUnknown_80D4970; + gKangaskhanStorageWork->unk24[loopMax].text = *gCommonInfo; gKangaskhanStorageWork->unk24[loopMax].menuAction = 6; loopMax += 1; @@ -455,11 +455,11 @@ static void sub_8017758(void) MemoryFill16(gKangaskhanStorageWork->unk4C, 0, sizeof(gKangaskhanStorageWork->unk4C)); loopMax = 0; - gKangaskhanStorageWork->unk24[loopMax].text = *gUnknown_80D4964; + gKangaskhanStorageWork->unk24[loopMax].text = *gCommonTake; gKangaskhanStorageWork->unk24[loopMax].menuAction = 3; loopMax += 1; - gKangaskhanStorageWork->unk24[loopMax].text = *gUnknown_80D4970; + gKangaskhanStorageWork->unk24[loopMax].text = *gCommonInfo; gKangaskhanStorageWork->unk24[loopMax].menuAction = 6; loopMax += 1; @@ -486,11 +486,11 @@ static void sub_80177F8(void) s32 loopMax; loopMax = 0; - gKangaskhanStorageWork->unk24[loopMax].text = *gUnknown_80D4920; + gKangaskhanStorageWork->unk24[loopMax].text = *gCommonYes; gKangaskhanStorageWork->unk24[loopMax].menuAction = 4; loopMax += 1; - gKangaskhanStorageWork->unk24[loopMax].text = *gUnknown_80D4928; + gKangaskhanStorageWork->unk24[loopMax].text = *gCommonNo; gKangaskhanStorageWork->unk24[loopMax].menuAction = 5; loopMax += 1; diff --git a/src/kangaskhan_storage2.c b/src/kangaskhan_storage2.c index 075eb2558..bfea878f9 100644 --- a/src/kangaskhan_storage2.c +++ b/src/kangaskhan_storage2.c @@ -12,10 +12,10 @@ EWRAM_DATA_2 unkStruct_203B20C *gUnknown_203B20C = {0}; -extern const u8 *gUnknown_80D4934[]; -extern const u8 *gUnknown_80D4958[]; -extern const u8 *gUnknown_80D4964[]; -extern const u8 *gUnknown_80D4970[]; +extern const u8 *gCommonCancel[]; +extern const u8 *gCommonStore[]; +extern const u8 *gCommonTake[]; +extern const u8 *gCommonInfo[]; #include "data/kangaskhan_storage2.h" // 80DB7B8 @@ -225,21 +225,21 @@ static void sub_80182E4(void) loopMax = 0; MemoryFill16(gUnknown_203B20C->unk60, 0, sizeof(gUnknown_203B20C->unk60)); - gUnknown_203B20C->unk20[0].text = *gUnknown_80D4958; + gUnknown_203B20C->unk20[0].text = *gCommonStore; gUnknown_203B20C->unk20[0].menuAction = 2; if (GetNumberOfFilledInventorySlots() == 0 || sub_801CF50(0)) gUnknown_203B20C->unk60[0] = 1; loopMax += 1; - gUnknown_203B20C->unk20[loopMax].text = *gUnknown_80D4964; + gUnknown_203B20C->unk20[loopMax].text = *gCommonTake; gUnknown_203B20C->unk20[loopMax].menuAction = 3; if (sub_801CF14(1) || INVENTORY_SIZE <= GetNumberOfFilledInventorySlots()) gUnknown_203B20C->unk60[loopMax] = 1; loopMax += 1; - gUnknown_203B20C->unk20[loopMax].text = *gUnknown_80D4934; + gUnknown_203B20C->unk20[loopMax].text = *gCommonCancel; gUnknown_203B20C->unk20[loopMax].menuAction = 1; loopMax += 1; @@ -268,13 +268,13 @@ static void sub_801841C(void) loopMax = 0; MemoryFill16(gUnknown_203B20C->unk60,0,sizeof(gUnknown_203B20C->unk60)); - gUnknown_203B20C->unk20[0].text = *gUnknown_80D4958; + gUnknown_203B20C->unk20[0].text = *gCommonStore; gUnknown_203B20C->unk20[0].menuAction = 2; if (!sub_801ADA0(gUnknown_203B20C->itemIndex)) gUnknown_203B20C->unk60[0] = 1; loopMax += 1; - gUnknown_203B20C->unk20[loopMax].text = *gUnknown_80D4970; + gUnknown_203B20C->unk20[loopMax].text = *gCommonInfo; gUnknown_203B20C->unk20[loopMax].menuAction = 4; loopMax += 1; @@ -303,14 +303,14 @@ static void sub_80184D4(void) loopMax = 0; MemoryFill16(gUnknown_203B20C->unk60, 0, sizeof(gUnknown_203B20C->unk60)); - gUnknown_203B20C->unk20[0].text = *gUnknown_80D4964; + gUnknown_203B20C->unk20[0].text = *gCommonTake; gUnknown_203B20C->unk20[0].menuAction = 3; if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) gUnknown_203B20C->unk60[0] = 1; loopMax += 1; - gUnknown_203B20C->unk20[loopMax].text = *gUnknown_80D4970; + gUnknown_203B20C->unk20[loopMax].text = *gCommonInfo; gUnknown_203B20C->unk20[loopMax].menuAction = 4; loopMax += 1; diff --git a/src/kecleon_bros1.c b/src/kecleon_bros1.c index 9954cf7e9..cdd49e798 100644 --- a/src/kecleon_bros1.c +++ b/src/kecleon_bros1.c @@ -22,13 +22,13 @@ extern u8 gUnknown_202E5D8[]; static EWRAM_DATA_2 KecleonBrosWork1 *sKecleonBrosWork1 = {0}; -extern const u8 *gUnknown_80D4920[]; -extern const u8 *gUnknown_80D4928[]; -extern const u8 *gUnknown_80D4934[]; -extern const u8 *gUnknown_80D4970[]; -extern const u8 *gUnknown_80D4978[]; -extern const u8 *gUnknown_80D4984[]; -extern const u8 *gKecleonShopDialogue[KECLEON_BROS_MODE_COUNT][23]; // 80D5EC8 +extern const u8 *gCommonYes[]; +extern const u8 *gCommonNo[]; +extern const u8 *gCommonCancel[]; +extern const u8 *gCommonInfo[]; +extern const u8 *gCommonBuy[]; +extern const u8 *gCommonSell[]; +extern const u8 *gCommonKecleonBros[KECLEON_BROS_MODE_COUNT][23]; // 80D5EC8 #include "data/kecleon_bros1.h" @@ -223,86 +223,86 @@ static void UpdateKecleonStoreDialogue(void) sub_8019DAC(); sub_80194F8(); sub_8019E04(FALSE); - sub_8014248(gKecleonShopDialogue[sKecleonBrosWork1->mode][0], 0, sKecleonBrosWork1->menuAction1, + sub_8014248(gCommonKecleonBros[sKecleonBrosWork1->mode][0], 0, sKecleonBrosWork1->menuAction1, sKecleonBrosWork1->menuItems, sKecleonBrosWork1->unk74, 4, 0, sKecleonBrosWork1->unkE4, 12); break; case 1: sub_8019DAC(); sub_80194F8(); sub_8019E04(FALSE); - sub_8014248(gKecleonShopDialogue[sKecleonBrosWork1->mode][1], 0, sKecleonBrosWork1->menuAction1, + sub_8014248(gCommonKecleonBros[sKecleonBrosWork1->mode][1], 0, sKecleonBrosWork1->menuAction1, sKecleonBrosWork1->menuItems, sKecleonBrosWork1->unk74, 4, 0, sKecleonBrosWork1->unkE4, 12); break; case 2: sKecleonBrosWork1->fallbackState = 1; sub_8019E04(FALSE); - sub_80141B4(gKecleonShopDialogue[sKecleonBrosWork1->mode][22], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][22], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 3: sKecleonBrosWork1->fallbackState = 4; sub_8019E04(FALSE); - sub_80141B4(gKecleonShopDialogue[sKecleonBrosWork1->mode][2], 0, sKecleonBrosWork1->unkE4, 0x30D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][2], 0, sKecleonBrosWork1->unkE4, 0x30D); break; case 5: sKecleonBrosWork1->fallbackState = 1; sub_8019E04(FALSE); - sub_80141B4(gKecleonShopDialogue[sKecleonBrosWork1->mode][12], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][12], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 6: sKecleonBrosWork1->fallbackState = 16; sub_8019E04(TRUE); - sub_80141B4(gKecleonShopDialogue[sKecleonBrosWork1->mode][13], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][13], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 7: sKecleonBrosWork1->fallbackState = 1; sub_8019E04(TRUE); - sub_80141B4(gKecleonShopDialogue[sKecleonBrosWork1->mode][14], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][14], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 8: sKecleonBrosWork1->fallbackState = 1; sub_8019E04(TRUE); - sub_80141B4(gKecleonShopDialogue[sKecleonBrosWork1->mode][15], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][15], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 9: sKecleonBrosWork1->fallbackState = 1; sub_8019E04(TRUE); - sub_80141B4(gKecleonShopDialogue[sKecleonBrosWork1->mode][16], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][16], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 10: sKecleonBrosWork1->fallbackState = 1; sub_8019E04(TRUE); - sub_80141B4(gKecleonShopDialogue[sKecleonBrosWork1->mode][17], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][17], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 11: sKecleonBrosWork1->fallbackState = 1; sub_8019E04(FALSE); - sub_80141B4(gKecleonShopDialogue[sKecleonBrosWork1->mode][18], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][18], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 12: sKecleonBrosWork1->fallbackState = 16; sub_8019E04(TRUE); - sub_80141B4(gKecleonShopDialogue[sKecleonBrosWork1->mode][19], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][19], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 13: sub_8090E14(gUnknown_202DE58, &sKecleonBrosWork1->soldItem, NULL); sKecleonBrosWork1->fallbackState = 24; sub_8019E04(TRUE); - sub_80141B4(gKecleonShopDialogue[sKecleonBrosWork1->mode][20], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][20], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 14: sKecleonBrosWork1->fallbackState = 24; sub_8019E04(TRUE); - sub_80141B4(gKecleonShopDialogue[sKecleonBrosWork1->mode][21], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][21], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 15: sKecleonBrosWork1->fallbackState = 18; sub_8019E04(FALSE); - sub_80141B4(gKecleonShopDialogue[sKecleonBrosWork1->mode][3], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][3], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 16: sKecleonBrosWork1->fallbackState = 19; sub_8019E04(FALSE); - sub_80141B4(gKecleonShopDialogue[sKecleonBrosWork1->mode][4], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][4], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 18: if (sKecleonBrosWork1->isKecleonItemShop) @@ -338,7 +338,7 @@ static void UpdateKecleonStoreDialogue(void) sub_8090E14(gUnknown_202DE58, &sKecleonBrosWork1->soldItem, 0); gUnknown_202DE30 = sKecleonBrosWork1->itemSellPrice; sub_8019E04(FALSE); - sub_8014248(gKecleonShopDialogue[sKecleonBrosWork1->mode][5], 0, 5,sKecleonBrosWork1->menuItems, NULL, 4, 0, sKecleonBrosWork1->unkE4, 12); + sub_8014248(gCommonKecleonBros[sKecleonBrosWork1->mode][5], 0, 5,sKecleonBrosWork1->menuItems, NULL, 4, 0, sKecleonBrosWork1->unkE4, 12); break; case 17: if (CountKecleonItems() == 0) { @@ -360,17 +360,17 @@ static void UpdateKecleonStoreDialogue(void) sKecleonBrosWork1->fallbackState = 16; } sub_8019E04(FALSE); - sub_80141B4(gKecleonShopDialogue[sKecleonBrosWork1->mode][6], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][6], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 23: sKecleonBrosWork1->fallbackState = 26; sub_8019E04(FALSE); - sub_80141B4(gKecleonShopDialogue[sKecleonBrosWork1->mode][7], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][7], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 24: sKecleonBrosWork1->fallbackState = 27; sub_8019E04(FALSE); - sub_80141B4(gKecleonShopDialogue[sKecleonBrosWork1->mode][8], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][8], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 26: sub_801A5D8(4, 3, NULL, 10); @@ -391,7 +391,7 @@ static void UpdateKecleonStoreDialogue(void) sub_8090E14(gUnknown_202DE58, &sKecleonBrosWork1->soldItem, NULL); gUnknown_202DE30 = sKecleonBrosWork1->itemSellPrice; sub_8019E04(FALSE); - sub_8014248(gKecleonShopDialogue[sKecleonBrosWork1->mode][9], 0, 5, sKecleonBrosWork1->menuItems, NULL, 4, 0, sKecleonBrosWork1->unkE4, 12); + sub_8014248(gCommonKecleonBros[sKecleonBrosWork1->mode][9], 0, 5, sKecleonBrosWork1->menuItems, NULL, 4, 0, sKecleonBrosWork1->unkE4, 12); break; case 21: case 29: @@ -406,18 +406,18 @@ static void UpdateKecleonStoreDialogue(void) sKecleonBrosWork1->fallbackState = 24; sub_8019E04(FALSE); - sub_80141B4(gKecleonShopDialogue[sKecleonBrosWork1->mode][11], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][11], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 31: sub_8019700(); gUnknown_202DE30 = sKecleonBrosWork1->inventoryItemSellPrice; sub_8019E04(FALSE); - sub_8014248(gKecleonShopDialogue[sKecleonBrosWork1->mode][10], 0, 5, sKecleonBrosWork1->menuItems, NULL, 4, 0, sKecleonBrosWork1->unkE4, 12); + sub_8014248(gCommonKecleonBros[sKecleonBrosWork1->mode][10], 0, 5, sKecleonBrosWork1->menuItems, NULL, 4, 0, sKecleonBrosWork1->unkE4, 12); break; case 32: sKecleonBrosWork1->fallbackState = 1; sub_8019E04(FALSE); - sub_80141B4(gKecleonShopDialogue[sKecleonBrosWork1->mode][11], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][11], 0, sKecleonBrosWork1->unkE4, 0x10D); break; } } @@ -430,11 +430,11 @@ static void sub_80194F8(void) MemoryFill16(sKecleonBrosWork1->unk74, 0, sizeof(sKecleonBrosWork1->unk74)); loopMax = 0; - sKecleonBrosWork1->menuItems[loopMax].text = *gUnknown_80D4978; + sKecleonBrosWork1->menuItems[loopMax].text = *gCommonBuy; sKecleonBrosWork1->menuItems[loopMax].menuAction = 2; loopMax += 1; - sKecleonBrosWork1->menuItems[loopMax].text = *gUnknown_80D4984; + sKecleonBrosWork1->menuItems[loopMax].text = *gCommonSell; sKecleonBrosWork1->menuItems[loopMax].menuAction = 3; loopMax += 1; @@ -442,11 +442,11 @@ static void sub_80194F8(void) sKecleonBrosWork1->menuItems[loopMax].menuAction = 4; loopMax += 1; - sKecleonBrosWork1->menuItems[loopMax].text = *gUnknown_80D4970; + sKecleonBrosWork1->menuItems[loopMax].text = *gCommonInfo; sKecleonBrosWork1->menuItems[loopMax].menuAction = 7; loopMax += 1; - sKecleonBrosWork1->menuItems[loopMax].text = *gUnknown_80D4934; + sKecleonBrosWork1->menuItems[loopMax].text = *gCommonCancel; sKecleonBrosWork1->menuItems[loopMax].menuAction = 1; loopMax += 1; @@ -476,11 +476,11 @@ static void sub_80195C0(void) MemoryFill16(sKecleonBrosWork1->unk74, 0, sizeof(sKecleonBrosWork1->unk74)); loopMax = 0; - sKecleonBrosWork1->menuItems[loopMax].text = *gUnknown_80D4978; + sKecleonBrosWork1->menuItems[loopMax].text = *gCommonBuy; sKecleonBrosWork1->menuItems[loopMax].menuAction = 2; loopMax += 1; - sKecleonBrosWork1->menuItems[loopMax].text = *gUnknown_80D4970; + sKecleonBrosWork1->menuItems[loopMax].text = *gCommonInfo; sKecleonBrosWork1->menuItems[loopMax].menuAction = 7; loopMax += 1; @@ -510,11 +510,11 @@ static void sub_8019660(void) MemoryFill16(sKecleonBrosWork1->unk74, 0, sizeof(sKecleonBrosWork1->unk74)); loopMax = 0; - sKecleonBrosWork1->menuItems[loopMax].text = *gUnknown_80D4984; + sKecleonBrosWork1->menuItems[loopMax].text = *gCommonSell; sKecleonBrosWork1->menuItems[loopMax].menuAction = 3; loopMax += 1; - sKecleonBrosWork1->menuItems[loopMax].text = *gUnknown_80D4970; + sKecleonBrosWork1->menuItems[loopMax].text = *gCommonInfo; sKecleonBrosWork1->menuItems[loopMax].menuAction = 7; loopMax += 1; @@ -539,11 +539,11 @@ static void sub_8019660(void) static void sub_8019700(void) { s32 loopMax = 0; - sKecleonBrosWork1->menuItems[loopMax].text = *gUnknown_80D4920; + sKecleonBrosWork1->menuItems[loopMax].text = *gCommonYes; sKecleonBrosWork1->menuItems[loopMax].menuAction = 5; loopMax += 1; - sKecleonBrosWork1->menuItems[loopMax].text = *gUnknown_80D4928; + sKecleonBrosWork1->menuItems[loopMax].text = *gCommonNo; sKecleonBrosWork1->menuItems[loopMax].menuAction = 6; loopMax += 1; diff --git a/src/luminous_cave.c b/src/luminous_cave.c index 16d357ca2..78a371686 100644 --- a/src/luminous_cave.c +++ b/src/luminous_cave.c @@ -25,9 +25,11 @@ extern u8 gPlayerName[]; // 202E2B8 EWRAM_DATA_2 struct unkStruct_203B2B0 *gUnknown_203B2B0 = {0}; -// data_80D47B8.s -extern const u8 *gUnknown_80D4934[]; -extern const u8 *gUnknown_80D4970[]; +// common_strings.s +extern const u8 *gCommonCancel[]; +extern const u8 *gCommonInfo[]; + + extern const UnkTextStruct2 gUnknown_80DC9E8; extern const UnkTextStruct2 gUnknown_80DCA00; extern const u8 gUnknown_80DCA18[]; @@ -390,11 +392,11 @@ static void sub_8024CFC(void) gUnknown_203B2B0->unk34[loopMax].menuAction = 3; loopMax += 1; - gUnknown_203B2B0->unk34[loopMax].text = *gUnknown_80D4970; + gUnknown_203B2B0->unk34[loopMax].text = *gCommonInfo; gUnknown_203B2B0->unk34[loopMax].menuAction = 2; loopMax += 1; - gUnknown_203B2B0->unk34[loopMax].text = *gUnknown_80D4934; + gUnknown_203B2B0->unk34[loopMax].text = *gCommonCancel; gUnknown_203B2B0->unk34[loopMax].menuAction = 1; loopMax += 1; @@ -415,7 +417,7 @@ static void sub_8024D48(void) gUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA2C; gUnknown_203B2B0->unk34[loopMax].menuAction = 5; loopMax += 1; - gUnknown_203B2B0->unk34[loopMax].text = *gUnknown_80D4934; + gUnknown_203B2B0->unk34[loopMax].text = *gCommonCancel; gUnknown_203B2B0->unk34[loopMax].menuAction = 1; loopMax += 1; gUnknown_203B2B0->unk34[loopMax].text = NULL; @@ -444,7 +446,7 @@ static void sub_8024DBC(void) gUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA2C; gUnknown_203B2B0->unk34[loopMax].menuAction = 5; loopMax += 1; - gUnknown_203B2B0->unk34[loopMax].text = *gUnknown_80D4934; + gUnknown_203B2B0->unk34[loopMax].text = *gCommonCancel; gUnknown_203B2B0->unk34[loopMax].menuAction = 1; loopMax += 1; gUnknown_203B2B0->unk34[loopMax].text = NULL; @@ -472,7 +474,7 @@ static void sub_8024E30(void) gUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA2C; gUnknown_203B2B0->unk34[loopMax].menuAction = 5; loopMax += 1; - gUnknown_203B2B0->unk34[loopMax].text = *gUnknown_80D4970; + gUnknown_203B2B0->unk34[loopMax].text = *gCommonInfo; gUnknown_203B2B0->unk34[loopMax].menuAction = 2; loopMax += 1; gUnknown_203B2B0->unk34[loopMax].text = NULL; diff --git a/src/mailbox.c b/src/mailbox.c index cae1ba2d5..cfb612c92 100644 --- a/src/mailbox.c +++ b/src/mailbox.c @@ -60,8 +60,8 @@ const u8 gMailAccepted[] = "Accepted"; const u8 gUnknown_80E0324[] = "/"; static const u8 mailbox_fill[] = "pksdir0"; -extern u8 *gUnknown_80D4990[]; -extern u8 *gUnknown_80D4970[]; +extern u8 *gCommonAccept[]; +extern u8 *gCommonInfo[]; extern bool8 IsMailinJobSlot(WonderMail *mail); @@ -319,7 +319,7 @@ void CreateMailActionMenu(void) { } else { - gUnknown_203B304->menuItems[loopMax].text = *gUnknown_80D4990; // Accept + gUnknown_203B304->menuItems[loopMax].text = *gCommonAccept; gUnknown_203B304->menuItems[loopMax].menuAction = 5; if(IsMailinJobSlot(mail) || GetNumAcceptedJobs() >= MAX_ACCEPTED_JOBS) @@ -328,7 +328,7 @@ void CreateMailActionMenu(void) { } loopMax += 1; - gUnknown_203B304->menuItems[loopMax].text = *gUnknown_80D4970; // Info + gUnknown_203B304->menuItems[loopMax].text = *gCommonInfo; gUnknown_203B304->menuItems[loopMax].menuAction = 8; loopMax += 1; } diff --git a/src/makuhita_dojo1.c b/src/makuhita_dojo1.c index 0034b8236..6bd36e4ff 100644 --- a/src/makuhita_dojo1.c +++ b/src/makuhita_dojo1.c @@ -19,11 +19,10 @@ extern u8 gUnknown_202E5D8[]; static EWRAM_DATA_2 MakuhitaDojoWork1 *sMakuhitaDojoWork1 = {0}; -// data_80D47B8.s -extern const u8 *gUnknown_80D4934[]; -extern const u8 *gUnknown_80D4970[]; -// data_80D47B8.s -extern const u8 *gMakuhitaDialogue[2][10]; // 80D9FC8 +// common_strings.s +extern const u8 *gCommonCancel[]; +extern const u8 *gCommonInfo[]; +extern const u8 *gCommonMakuhita[2][10]; // 80D9FC8 #include "data/makuhita_dojo1.h" // 80E0760 @@ -179,18 +178,18 @@ static void MakuhitaDojo_UpdateDialogue(void) switch (sMakuhitaDojoWork1->state) { case 0: MakuhitaDojo_DrawMainMenu(); - sub_8014248(gMakuhitaDialogue[sMakuhitaDojoWork1->isAsleep][0], 0, sMakuhitaDojoWork1->menuAction, sMakuhitaDojoWork1->unk18, NULL, 4, 0, sMakuhitaDojoWork1->unk68, 12); + sub_8014248(gCommonMakuhita[sMakuhitaDojoWork1->isAsleep][0], 0, sMakuhitaDojoWork1->menuAction, sMakuhitaDojoWork1->unk18, NULL, 4, 0, sMakuhitaDojoWork1->unk68, 12); break; case 1: - sub_8014248(gMakuhitaDialogue[sMakuhitaDojoWork1->isAsleep][1], 0, sMakuhitaDojoWork1->menuAction, sMakuhitaDojoWork1->unk18, NULL, 4, 0, sMakuhitaDojoWork1->unk68, 12); + sub_8014248(gCommonMakuhita[sMakuhitaDojoWork1->isAsleep][1], 0, sMakuhitaDojoWork1->menuAction, sMakuhitaDojoWork1->unk18, NULL, 4, 0, sMakuhitaDojoWork1->unk68, 12); break; case 2: sMakuhitaDojoWork1->fallbackState = 13; - sub_80141B4(gMakuhitaDialogue[sMakuhitaDojoWork1->isAsleep][2], 0, sMakuhitaDojoWork1->unk68, 0x10D); + sub_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->isAsleep][2], 0, sMakuhitaDojoWork1->unk68, 0x10D); break; case 3: sMakuhitaDojoWork1->fallbackState = 4; - sub_80141B4(gMakuhitaDialogue[sMakuhitaDojoWork1->isAsleep][3], 0, sMakuhitaDojoWork1->unk68, 0x10D); + sub_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->isAsleep][3], 0, sMakuhitaDojoWork1->unk68, 0x10D); break; case 4: sub_80302E8(3, NULL, 10); @@ -200,19 +199,19 @@ static void MakuhitaDojo_UpdateDialogue(void) dLoc.id = sub_80A2740(sMakuhitaDojoWork1->unk10); dLoc.floor = 1; PrintYellowDungeonNametoBuffer(gAvailablePokemonNames, &dLoc); - sub_80141B4(gMakuhitaDialogue[sMakuhitaDojoWork1->isAsleep][4], 0, sMakuhitaDojoWork1->unk68, 0x10D); + sub_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->isAsleep][4], 0, sMakuhitaDojoWork1->unk68, 0x10D); break; case 7: sMakuhitaDojoWork1->fallbackState = 13; - sub_80141B4(gMakuhitaDialogue[sMakuhitaDojoWork1->isAsleep][6], 0, sMakuhitaDojoWork1->unk68, 0x10D); + sub_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->isAsleep][6], 0, sMakuhitaDojoWork1->unk68, 0x10D); break; case 6: sMakuhitaDojoWork1->fallbackState = 13; - sub_80141B4(gMakuhitaDialogue[sMakuhitaDojoWork1->isAsleep][5], 0, sMakuhitaDojoWork1->unk68, 0x10D); + sub_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->isAsleep][5], 0, sMakuhitaDojoWork1->unk68, 0x10D); break; case 8: sMakuhitaDojoWork1->fallbackState = 9; - sub_80141B4(gMakuhitaDialogue[sMakuhitaDojoWork1->isAsleep][7], 0, sMakuhitaDojoWork1->unk68, 0x10D); + sub_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->isAsleep][7], 0, sMakuhitaDojoWork1->unk68, 0x10D); break; case 9: PrintColoredPokeNameToBuffer(gPlayerName, GetPlayerPokemonStruct(), COLOR_YELLOW); @@ -222,14 +221,14 @@ static void MakuhitaDojo_UpdateDialogue(void) break; case 10: sMakuhitaDojoWork1->fallbackState = 13; - sub_80141B4(gMakuhitaDialogue[sMakuhitaDojoWork1->isAsleep][8], 0, sMakuhitaDojoWork1->unk68, 0x10D); + sub_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->isAsleep][8], 0, sMakuhitaDojoWork1->unk68, 0x10D); break; case 11: sub_801B60C(1, ITEM_GINSENG, 1); break; case 12: sMakuhitaDojoWork1->fallbackState = 1; - sub_80141B4(gMakuhitaDialogue[sMakuhitaDojoWork1->isAsleep][9], 0, sMakuhitaDojoWork1->unk68, 0x10D); + sub_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->isAsleep][9], 0, sMakuhitaDojoWork1->unk68, 0x10D); break; case 13: return; @@ -251,10 +250,10 @@ static void MakuhitaDojo_DrawMainMenu(void) } loopMax += 1; - sMakuhitaDojoWork1->unk18[loopMax].text = *gUnknown_80D4970; + sMakuhitaDojoWork1->unk18[loopMax].text = *gCommonInfo; sMakuhitaDojoWork1->unk18[loopMax].menuAction = 3; loopMax += 1; - sMakuhitaDojoWork1->unk18[loopMax].text = *gUnknown_80D4934; + sMakuhitaDojoWork1->unk18[loopMax].text = *gCommonCancel; sMakuhitaDojoWork1->unk18[loopMax].menuAction = 1; loopMax += 1; sMakuhitaDojoWork1->unk18[loopMax].text = NULL; diff --git a/src/menu_input.c b/src/menu_input.c index d53c636bf..d6aacf95d 100644 --- a/src/menu_input.c +++ b/src/menu_input.c @@ -12,7 +12,7 @@ #include "text2.h" #include "util.h" -// data_80D47B8.s +// common_strings.s extern const u8 gUnknown_80D4828[]; // text.s diff --git a/src/options_menu.c b/src/options_menu.c index 08945235a..26ee54c46 100644 --- a/src/options_menu.c +++ b/src/options_menu.c @@ -51,8 +51,8 @@ extern const char gOthers_MenuOption[]; extern const char gUnknown_80DBFEC[]; extern const char gOthers_GameOptions[]; extern const char gOthers_Hints[]; -extern const char *gUnknown_80D4920[]; -extern const char *gUnknown_80D4928[]; +extern const char *gCommonYes[]; +extern const char *gCommonNo[]; extern s32 sub_8008ED0(u8 *); extern void CreateOthersMenu(void); @@ -248,14 +248,14 @@ void CreateOthersMenu(void) void CreateChangeSettingsConfirmMenu(void) { s32 loopMax; - + MemoryFill16(gUnknown_203B25C->unkAC,0,sizeof(gUnknown_203B25C->unkAC)); loopMax = 0; - gUnknown_203B25C->menuItems[loopMax].text = *gUnknown_80D4920; // Yes + gUnknown_203B25C->menuItems[loopMax].text = *gCommonYes; gUnknown_203B25C->menuItems[loopMax].menuAction = MENU_OPTION_YES; loopMax += 1; - gUnknown_203B25C->menuItems[loopMax].text = *gUnknown_80D4928; // No + gUnknown_203B25C->menuItems[loopMax].text = *gCommonNo; gUnknown_203B25C->menuItems[loopMax].menuAction = MENU_OPTION_NO; loopMax += 1; gUnknown_203B25C->menuItems[loopMax].text = NULL; diff --git a/src/party_list_menu.c b/src/party_list_menu.c index 1ae7d237d..1f5b17729 100644 --- a/src/party_list_menu.c +++ b/src/party_list_menu.c @@ -54,10 +54,10 @@ extern u8 gAvailablePokemonNames[0x58]; // 202DF98 EWRAM_DATA_2 unkStruct_203B2B8 *gUnknown_203B2B8 = {0}; -// data_80D47B8.s -extern const u8 *gUnknown_80D4920[]; -extern const u8 *gUnknown_80D4928[]; -extern const u8 *gUnknown_80D4970[]; +// common_strings.s +extern const u8 *gCommonYes[]; +extern const u8 *gCommonNo[]; +extern const u8 *gCommonInfo[]; #include "data/party_list_menu.h" @@ -459,7 +459,7 @@ void sub_802678C(void) gUnknown_203B2B8->unk20C[0] = 1; } loopMax += 1; - gUnknown_203B2B8->unk16C[loopMax].text = *gUnknown_80D4970; + gUnknown_203B2B8->unk16C[loopMax].text = *gCommonInfo; gUnknown_203B2B8->unk16C[loopMax].menuAction = 4; loopMax += 1; gUnknown_203B2B8->unk16C[loopMax].text = NULL; @@ -485,10 +485,10 @@ void sub_802678C(void) void sub_8026878(void) { s32 loopMax = 0; - gUnknown_203B2B8->unk1BC[loopMax].text = *gUnknown_80D4920; + gUnknown_203B2B8->unk1BC[loopMax].text = *gCommonYes; gUnknown_203B2B8->unk1BC[loopMax].menuAction = 2; loopMax += 1; - gUnknown_203B2B8->unk1BC[loopMax].text = *gUnknown_80D4928; + gUnknown_203B2B8->unk1BC[loopMax].text = *gCommonNo; gUnknown_203B2B8->unk1BC[loopMax].menuAction = 3; loopMax += 1; gUnknown_203B2B8->unk1BC[loopMax].text = NULL; diff --git a/src/pelipper_board.c b/src/pelipper_board.c index 06f041ad5..768fc8590 100644 --- a/src/pelipper_board.c +++ b/src/pelipper_board.c @@ -97,8 +97,8 @@ extern u8 sub_802C26C(void); extern u8 HasNoAcceptedJobs(void); extern bool8 IsMailinJobSlot(WonderMail *mail); -extern u8 *gUnknown_80D4990[]; -extern u8 *gUnknown_80D4970[]; +extern u8 *gCommonAccept[]; +extern u8 *gCommonInfo[]; void SetPelipperBoardState(u32); @@ -279,7 +279,7 @@ void sub_802EC10(void) { s32 index; s32 loopMax = 0; - gPelipperBoard->menuItems[loopMax].text = *gUnknown_80D4990; + gPelipperBoard->menuItems[loopMax].text = *gCommonAccept; gPelipperBoard->menuItems[loopMax].menuAction = 4; if((IsMailinJobSlot(GetPelipperBoardSlotInfo(gPelipperBoard->jobIndex))) || (GetNumAcceptedJobs() >= MAX_ACCEPTED_JOBS)) @@ -288,7 +288,7 @@ void sub_802EC10(void) { } loopMax += 1; - gPelipperBoard->menuItems[loopMax].text = *gUnknown_80D4970; + gPelipperBoard->menuItems[loopMax].text = *gCommonInfo; gPelipperBoard->menuItems[loopMax].menuAction = 5; loopMax += 1; gPelipperBoard->menuItems[loopMax].text = NULL; diff --git a/src/wigglytuff_shop.c b/src/wigglytuff_shop.c index f92931f08..16220e539 100644 --- a/src/wigglytuff_shop.c +++ b/src/wigglytuff_shop.c @@ -72,15 +72,15 @@ extern u8 gUnknown_202E1C8[]; extern u8 gUnknown_202E5D8[]; extern u8 gUnknown_202E628[]; -extern const u8 *gUnknown_80D4920[]; -extern const u8 *gUnknown_80D4928[]; -extern const u8 *gUnknown_80D4934[]; -extern const u8 *gUnknown_80D4970[]; -extern const u8 *gUnknown_80D4978[]; -extern const u8 *gWigglytuffCheck[]; // 80D499C -extern const u8 *gUnknown_80D49BC[]; - -extern const u8 *gWigglytuffDialogue[2][20]; // 80D79A4 +// common_strings.s +extern const u8 *gCommonYes[]; +extern const u8 *gCommonNo[]; +extern const u8 *gCommonCancel[]; +extern const u8 *gCommonInfo[]; +extern const u8 *gCommonBuy[]; +extern const u8 *gCommonCheck[]; // 80D499C +extern const u8 *gCommonTripleQuestionMark[]; +extern const u8 *gCommonWigglytuff[2][20]; // 80D79A4 // split1 extern const UnkTextStruct2 gUnknown_80DC464; @@ -522,7 +522,7 @@ void sub_8021894(void) switch(gUnknown_203B28C->unk30[index]) { case 0: // Not recruited/seen - xxx_call_draw_string(x,y,*gUnknown_80D49BC,gUnknown_203B28C->unk74,0); // ??? + xxx_call_draw_string(x,y,*gCommonTripleQuestionMark,gUnknown_203B28C->unk74,0); break; case 1: // Seen but not recruited xxx_call_draw_string(x,y,buffer2,gUnknown_203B28C->unk74,0); // %s @@ -717,45 +717,45 @@ void UpdateWigglytuffDialogue(void) { case WIGGLYTUFF_INIT: sub_80222C8(); - sub_8014248(gWigglytuffDialogue[gWigglytuffShop->isAsleep][0],0,gWigglytuffShop->menuAction1,gWigglytuffShop->unk1C,gWigglytuffShop->unk5C,4,0,gWigglytuffShop->unkCC,0xc); + sub_8014248(gCommonWigglytuff[gWigglytuffShop->isAsleep][0],0,gWigglytuffShop->menuAction1,gWigglytuffShop->unk1C,gWigglytuffShop->unk5C,4,0,gWigglytuffShop->unkCC,0xc); break; case WIGGLYTUFF_MAIN_MENU: sub_80222C8(); - sub_8014248(gWigglytuffDialogue[gWigglytuffShop->isAsleep][1],0,gWigglytuffShop->menuAction1,gWigglytuffShop->unk1C,gWigglytuffShop->unk5C,4,0,gWigglytuffShop->unkCC,0xc); + sub_8014248(gCommonWigglytuff[gWigglytuffShop->isAsleep][1],0,gWigglytuffShop->menuAction1,gWigglytuffShop->unk1C,gWigglytuffShop->unk5C,4,0,gWigglytuffShop->unkCC,0xc); break; case FRIEND_AREA_SELECT_BUY: gWigglytuffShop->fallbackState = WIGGLYTUFF_UNK9; - sub_80141B4(gWigglytuffDialogue[gWigglytuffShop->isAsleep][3],0,gWigglytuffShop->unkCC,0x10d); + sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][3],0,gWigglytuffShop->unkCC,0x10d); break; case FRIEND_AREA_SELECT_BUY_AGAIN: gWigglytuffShop->fallbackState = WIGGLYTUFF_UNKA; - sub_80141B4(gWigglytuffDialogue[gWigglytuffShop->isAsleep][4],0,gWigglytuffShop->unkCC,0x10d); + sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][4],0,gWigglytuffShop->unkCC,0x10d); break; case WIGGLYTUFF_INFO: gWigglytuffShop->fallbackState = WIGGLYTUFF_MAIN_MENU; - sub_80141B4(gWigglytuffDialogue[gWigglytuffShop->isAsleep][19],0,gWigglytuffShop->unkCC,0x10d); + sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][19],0,gWigglytuffShop->unkCC,0x10d); break; case WIGGLYTUFF_PRE_EXIT: gWigglytuffShop->fallbackState = WIGGLYTUFF_EXIT; - sub_80141B4(gWigglytuffDialogue[gWigglytuffShop->isAsleep][2],0,gWigglytuffShop->unkCC,0x30d); + sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][2],0,gWigglytuffShop->unkCC,0x30d); break; default: break; case WIGGLYTUFF_CANT_ADD_FRIEND_AREA: gWigglytuffShop->fallbackState = WIGGLYTUFF_PRE_EXIT; - sub_80141B4(gWigglytuffDialogue[gWigglytuffShop->isAsleep][8],0,gWigglytuffShop->unkCC,0x10d); + sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][8],0,gWigglytuffShop->unkCC,0x10d); break; case NO_MONEY: gWigglytuffShop->fallbackState = WIGGLYTUFF_UNKA; - sub_80141B4(gWigglytuffDialogue[gWigglytuffShop->isAsleep][9],0,gWigglytuffShop->unkCC,0x10d); + sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][9],0,gWigglytuffShop->unkCC,0x10d); break; case NO_FRIEND_AREAS: gWigglytuffShop->fallbackState = WIGGLYTUFF_PRE_EXIT; - sub_80141B4(gWigglytuffDialogue[gWigglytuffShop->isAsleep][10],0,gWigglytuffShop->unkCC,0x10d); + sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][10],0,gWigglytuffShop->unkCC,0x10d); break; case NOT_ENOUGH_MONEY: gWigglytuffShop->fallbackState = WIGGLYTUFF_UNKA; - sub_80141B4(gWigglytuffDialogue[gWigglytuffShop->isAsleep][11],0,gWigglytuffShop->unkCC,0x10d); + sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][11],0,gWigglytuffShop->unkCC,0x10d); break; case WIGGLYTUFF_UNK9: sub_80211AC(2,3); @@ -775,7 +775,7 @@ void UpdateWigglytuffDialogue(void) CreateWigglytuffConfirmFriendAreaMenu(); sub_8092578(gUnknown_202E628,gWigglytuffShop->chosenFriendArea,FALSE); gUnknown_202DE30[0] = gWigglytuffShop->friendAreaPrice; - sub_8014248(gWigglytuffDialogue[gWigglytuffShop->isAsleep][5],0,5,gWigglytuffShop->unk1C,0,4,0,gWigglytuffShop->unkCC,0xc); + sub_8014248(gCommonWigglytuff[gWigglytuffShop->isAsleep][5],0,5,gWigglytuffShop->unk1C,0,4,0,gWigglytuffShop->unkCC,0xc); break; case FRIEND_AREA_INFO: sub_8021774(gWigglytuffShop->chosenFriendArea,FALSE,2); @@ -783,7 +783,7 @@ void UpdateWigglytuffDialogue(void) case CONFIRM_BUY_FRIEND_AREA: gWigglytuffShop->fallbackState = WIGGLYTUFF_UNKD; sub_8092578(gUnknown_202E628,gWigglytuffShop->chosenFriendArea,FALSE); - sub_80141B4(gWigglytuffDialogue[gWigglytuffShop->isAsleep][6],0,gWigglytuffShop->unkCC,0x10d); + sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][6],0,gWigglytuffShop->unkCC,0x10d); break; case WIGGLYTUFF_UNKD: gWigglytuffShop->fallbackState = WIGGLYTUFF_UNKE; @@ -803,15 +803,15 @@ void UpdateWigglytuffDialogue(void) gWigglytuffShop->fallbackState = FRIEND_AREA_SELECT_BUY_AGAIN; } PlaySound(0xce); - sub_80141B4(gWigglytuffDialogue[gWigglytuffShop->isAsleep][7],0,gWigglytuffShop->unkCC,0x10d); + sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][7],0,gWigglytuffShop->unkCC,0x10d); break; case WIGGLYTUFF_CHECK: gWigglytuffShop->fallbackState = WIGGLYTUFF_UNK16; - sub_80141B4(gWigglytuffDialogue[gWigglytuffShop->isAsleep][12],0,gWigglytuffShop->unkCC,0x10d); + sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][12],0,gWigglytuffShop->unkCC,0x10d); break; case WIGGLYTUFF_CHECK_AGAIN: gWigglytuffShop->fallbackState = WIGGLYTUFF_UNK17; - sub_80141B4(gWigglytuffDialogue[gWigglytuffShop->isAsleep][13],0,gWigglytuffShop->unkCC,0x10d); + sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][13],0,gWigglytuffShop->unkCC,0x10d); break; case WIGGLYTUFF_UNK16: sub_8023144(0,3,0,10); @@ -850,23 +850,23 @@ void UpdateWigglytuffDialogue(void) string = GetMonSpecies(gWigglytuffShop->chosenSpecies); strcpy(gAvailablePokemonNames,string); sub_8092578(gUnknown_202E628,gWigglytuffShop->chosenFriendArea,FALSE); - sub_80141B4(gWigglytuffDialogue[gWigglytuffShop->isAsleep][14],0,gWigglytuffShop->unkCC,0x10d); + sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][14],0,gWigglytuffShop->unkCC,0x10d); break; case WIGGLYTUFF_CHECK_HAS_FRIEND_AREA: gWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_AGAIN; - sub_80141B4(gWigglytuffDialogue[gWigglytuffShop->isAsleep][15],0,gWigglytuffShop->unkCC,0x10d); + sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][15],0,gWigglytuffShop->unkCC,0x10d); break; case WIGGLYTUFF_CHECK_POST_GAME: gWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_AGAIN; - sub_80141B4(gWigglytuffDialogue[gWigglytuffShop->isAsleep][16],0,gWigglytuffShop->unkCC,0x10d); + sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][16],0,gWigglytuffShop->unkCC,0x10d); break; case WIGGLYTUFF_CHECK_WONDER_MAIL: gWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_AGAIN; - sub_80141B4(gWigglytuffDialogue[gWigglytuffShop->isAsleep][17],0,gWigglytuffShop->unkCC,0x10d); + sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][17],0,gWigglytuffShop->unkCC,0x10d); break; case WIGGLYTUFF_CHECK_LEGENDARY: gWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_AGAIN; - sub_80141B4(gWigglytuffDialogue[gWigglytuffShop->isAsleep][18],0,gWigglytuffShop->unkCC,0x10d); + sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][18],0,gWigglytuffShop->unkCC,0x10d); break; } } @@ -876,16 +876,16 @@ void sub_80222C8(void) s32 i; s32 index = 0; MemoryFill16(gWigglytuffShop->unk5C, 0, sizeof(gWigglytuffShop->unk5C)); - gWigglytuffShop->unk1C[index].text = *gUnknown_80D4978; // Buy + gWigglytuffShop->unk1C[index].text = *gCommonBuy; gWigglytuffShop->unk1C[index].menuAction = 2; index++; - gWigglytuffShop->unk1C[index].text = *gWigglytuffCheck; // Check + gWigglytuffShop->unk1C[index].text = *gCommonCheck; gWigglytuffShop->unk1C[index].menuAction = 3; index++; - gWigglytuffShop->unk1C[index].text = *gUnknown_80D4970; // Info + gWigglytuffShop->unk1C[index].text = *gCommonInfo; gWigglytuffShop->unk1C[index].menuAction = 4; index++; - gWigglytuffShop->unk1C[index].text = *gUnknown_80D4934; // Cancel + gWigglytuffShop->unk1C[index].text = *gCommonCancel; gWigglytuffShop->unk1C[index].menuAction = 1; index++; gWigglytuffShop->unk1C[index].text = NULL; @@ -911,10 +911,10 @@ void sub_8022380(void) s32 i; s32 index = 0; MemoryFill16(gWigglytuffShop->unk5C, 0, sizeof(gWigglytuffShop->unk5C)); - gWigglytuffShop->unk1C[index].text = *gUnknown_80D4978; // Buy + gWigglytuffShop->unk1C[index].text = *gCommonBuy; gWigglytuffShop->unk1C[index].menuAction = 2; index++; - gWigglytuffShop->unk1C[index].text = *gUnknown_80D4970; // Info + gWigglytuffShop->unk1C[index].text = *gCommonInfo; gWigglytuffShop->unk1C[index].menuAction = 4; index++; gWigglytuffShop->unk1C[index].text = NULL; @@ -939,10 +939,10 @@ void CreateWigglytuffConfirmFriendAreaMenu(void) { s32 index = 0; MemoryFill16(gWigglytuffShop->unk5C, 0, sizeof(gWigglytuffShop->unk5C)); - gWigglytuffShop->unk1C[index].text = *gUnknown_80D4920; + gWigglytuffShop->unk1C[index].text = *gCommonYes; gWigglytuffShop->unk1C[index].menuAction = 5; index++; - gWigglytuffShop->unk1C[index].text = *gUnknown_80D4928; + gWigglytuffShop->unk1C[index].text = *gCommonNo; gWigglytuffShop->unk1C[index].menuAction = 6; index++; gWigglytuffShop->unk1C[index].text = NULL; diff --git a/src/wonder_mail_3.c b/src/wonder_mail_3.c index 6ef809405..138d25492 100644 --- a/src/wonder_mail_3.c +++ b/src/wonder_mail_3.c @@ -167,10 +167,10 @@ extern UnkTextStruct2 gUnknown_80DFDA4; extern struct unkStruct_203B2F0 *gUnknown_203B2F0; -extern u8 *gUnknown_80D4920[]; -extern u8 *gUnknown_80D4928[]; -extern u8 *gUnknown_80D494C[]; -extern u8 *gUnknown_80D4970[]; +extern u8 *gCommonYes[]; +extern u8 *gCommonNo[]; +extern u8 *gCommonDelete[]; +extern u8 *gCommonInfo[]; extern u8 gUnknown_80DFD70[]; extern u8 gUnknown_80DFD7C[]; @@ -206,10 +206,10 @@ void sub_802CAA4(void) { break; } } - gUnknown_203B2F0->unk10C[loopMax].text = *gUnknown_80D494C; + gUnknown_203B2F0->unk10C[loopMax].text = *gCommonDelete; gUnknown_203B2F0->unk10C[loopMax].menuAction = 4; loopMax += 1; - gUnknown_203B2F0->unk10C[loopMax].text = *gUnknown_80D4970; + gUnknown_203B2F0->unk10C[loopMax].text = *gCommonInfo; gUnknown_203B2F0->unk10C[loopMax].menuAction = 7; loopMax += 1; gUnknown_203B2F0->unk10C[loopMax].text = NULL; @@ -231,10 +231,10 @@ void sub_802CBAC(void) s32 loopMax; loopMax = 0; - gUnknown_203B2F0->unk14C[loopMax].text = *gUnknown_80D4920; + gUnknown_203B2F0->unk14C[loopMax].text = *gCommonYes; gUnknown_203B2F0->unk14C[loopMax].menuAction = 5; loopMax += 1; - gUnknown_203B2F0->unk14C[loopMax].text = *gUnknown_80D4928; + gUnknown_203B2F0->unk14C[loopMax].text = *gCommonNo; gUnknown_203B2F0->unk14C[loopMax].menuAction = 6; loopMax += 1; gUnknown_203B2F0->unk14C[loopMax].text = NULL; @@ -743,10 +743,10 @@ void sub_802D5A4(void) { loopMax = 0; MemoryFill16(gUnknown_203B2F8->unk198, 0, sizeof(gUnknown_203B2F8->unk198)); - gUnknown_203B2F8->unk118[loopMax].text = *gUnknown_80D494C; + gUnknown_203B2F8->unk118[loopMax].text = *gCommonDelete; gUnknown_203B2F8->unk118[loopMax].menuAction = 2; loopMax += 1; - gUnknown_203B2F8->unk118[loopMax].text = *gUnknown_80D4970; + gUnknown_203B2F8->unk118[loopMax].text = *gCommonInfo; gUnknown_203B2F8->unk118[loopMax].menuAction = 5; loopMax += 1; gUnknown_203B2F8->unk118[loopMax].text = NULL; @@ -764,10 +764,10 @@ void sub_802D5A4(void) { void sub_802D63C(void) { s32 loopMax = 0; - gUnknown_203B2F8->unk158[loopMax].text = *gUnknown_80D4920; + gUnknown_203B2F8->unk158[loopMax].text = *gCommonYes; gUnknown_203B2F8->unk158[loopMax].menuAction = 3; loopMax += 1; - gUnknown_203B2F8->unk158[loopMax].text = *gUnknown_80D4928; + gUnknown_203B2F8->unk158[loopMax].text = *gCommonNo; gUnknown_203B2F8->unk158[loopMax].menuAction = 4; loopMax += 1; gUnknown_203B2F8->unk158[loopMax].text = NULL; @@ -779,10 +779,10 @@ void sub_802D690(void) { s32 index; loopMax = 0; - gUnknown_203B2F8->unk158[loopMax].text = *gUnknown_80D4920; + gUnknown_203B2F8->unk158[loopMax].text = *gCommonYes; gUnknown_203B2F8->unk158[loopMax].menuAction = 3; loopMax += 1; - gUnknown_203B2F8->unk158[loopMax].text = *gUnknown_80D4928; + gUnknown_203B2F8->unk158[loopMax].text = *gCommonNo; gUnknown_203B2F8->unk158[loopMax].menuAction = 4; loopMax += 1; gUnknown_203B2F8->unk158[loopMax].text = gUnknown_80E014C; @@ -807,10 +807,10 @@ void sub_802D73C(void) { s32 index; loopMax = 0; - gUnknown_203B2F8->unk158[loopMax].text = *gUnknown_80D4920; + gUnknown_203B2F8->unk158[loopMax].text = *gCommonYes; gUnknown_203B2F8->unk158[loopMax].menuAction = 3; loopMax += 1; - gUnknown_203B2F8->unk158[loopMax].text = *gUnknown_80D4928; + gUnknown_203B2F8->unk158[loopMax].text = *gCommonNo; gUnknown_203B2F8->unk158[loopMax].menuAction = 4; loopMax += 1; gUnknown_203B2F8->unk158[loopMax].text = gUnknown_80E014C; diff --git a/src/wonder_mail_3_mid.c b/src/wonder_mail_3_mid.c index 29fd22bc7..5a284ffd9 100644 --- a/src/wonder_mail_3_mid.c +++ b/src/wonder_mail_3_mid.c @@ -122,7 +122,7 @@ extern u8 gUnknown_202DEA8[]; extern u8 gUnknown_202E5D8[]; extern u8 gAvailablePokemonNames[]; extern u32 gUnknown_202DE30; -extern const u8 *gUnknown_80D4970[]; +extern const u8 *gCommonInfo[]; const UnkTextStruct2 gUnknown_80E03C4 = { 0x00, 0x00, 0x00, 0x00, @@ -349,7 +349,7 @@ void sub_802F108(void) gUnknown_203B30C->unkB0[loopMax].text = gUnknown_80E040C; gUnknown_203B30C->unkB0[loopMax].menuAction = 2; loopMax += 1; - gUnknown_203B30C->unkB0[loopMax].text = *gUnknown_80D4970; + gUnknown_203B30C->unkB0[loopMax].text = *gCommonInfo; gUnknown_203B30C->unkB0[loopMax].menuAction = 3; loopMax += 1; gUnknown_203B30C->unkB0[loopMax].text = NULL; From 0f7fd64f82a83c8ce20f02bc6ee3a09de9f64b4d Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sun, 10 Sep 2023 23:00:41 -0400 Subject: [PATCH 05/47] Felicity bank data --- data/data_80DAF70.s | 49 +--- include/felicity_bank.h | 21 +- ld_script.txt | 1 + src/data/felicity_bank.h | 32 +++ src/felicity_bank.c | 564 ++++++++++++++++++++------------------- src/wigglytuff_shop.c | 1 - 6 files changed, 328 insertions(+), 340 deletions(-) create mode 100644 src/data/felicity_bank.h diff --git a/data/data_80DAF70.s b/data/data_80DAF70.s index 8443136b1..60dd9d5df 100644 --- a/data/data_80DAF70.s +++ b/data/data_80DAF70.s @@ -394,51 +394,4 @@ gUnknown_80DB6A4: @ 80DB6A4 gUnknown_80DB6BC: @ 80DB6BC .string "Please enter a name.\0" .align 2,0 -@ END code_8012A18_1 - -@ START felicity_bank -.string "pksdir0\0" - .align 2,0 - - .global gUnknown_80DB6DC -gUnknown_80DB6DC: @ 80DB6DC - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DB6F4 -gUnknown_80DB6F4: @ 80DB6F4 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x03, 0x00 - .byte 0x1a, 0x00, 0x02, 0x00 - .byte 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DB70C -gUnknown_80DB70C: @ 80DB70C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x11, 0x00, 0x08, 0x00 - .byte 0x0b, 0x00, 0x04, 0x00 - .byte 0x04, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gFelicityMoney -gFelicityMoney: @ 80DB724 - .string "Money: \0" - .align 2,0 - - .global gFelicitySavings -gFelicitySavings: @ 80DB72C - .string "Savings: \0" - .align 2,0 - - .global gUnknown_80DB738 -gUnknown_80DB738: @ 80DB738 - .string "Money\0" - -@ END FELICITY BANK \ No newline at end of file +@ END code_8012A18_1 \ No newline at end of file diff --git a/include/felicity_bank.h b/include/felicity_bank.h index 94286b2d1..9cd148241 100644 --- a/include/felicity_bank.h +++ b/include/felicity_bank.h @@ -2,11 +2,14 @@ #define GUARD_FELICITY_BANK_H #include "file_system.h" -#include "text.h" #include "menu.h" +#include "text.h" + +#define FELICITY_BANK_ACTION_WITHDRAW 0 +#define FELICITY_BANK_ACTION_DEPOSIT 1 // size: 0x108 -struct FelicityBankWork +typedef struct FelicityBankWork { /* 0x0 */ u32 isAsleep; /* 0x4 */ s32 currState; @@ -35,13 +38,11 @@ struct FelicityBankWork u8 unkA3; OpenedFile **unkA4; UnkTextStruct2 unkA8[4]; -}; +} FelicityBankWork; -extern struct FelicityBankWork *gFelicityBankWork; +bool8 CreateFelicityBank(s32 mode); +void DestroyFelicityBank(void); +void DrawTeamMoneyBox(u32); +u32 FelicityBankCallback(void); -#define FELICITY_BANK_ACTION_WITHDRAW 0 -#define FELICITY_BANK_ACTION_DEPOSIT 1 - -void DrawTeamMoneyBox(u32 param_1); - -#endif +#endif // GUARD_FELICITY_BANK_H \ No newline at end of file diff --git a/ld_script.txt b/ld_script.txt index 77d439ccc..8af8a0db3 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -403,6 +403,7 @@ SECTIONS { data/data_80D47B8.o(.rodata); data/common_strings.o(.rodata); data/data_80DAF70.o(.rodata); + src/felicity_bank.o(.rodata); src/kangaskhan_storage1.o(.rodata); src/kangaskhan_storage2.o(.rodata); src/kecleon_bros1.o(.rodata); diff --git a/src/data/felicity_bank.h b/src/data/felicity_bank.h new file mode 100644 index 000000000..1f7860457 --- /dev/null +++ b/src/data/felicity_bank.h @@ -0,0 +1,32 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 sUnknown_80DB6DC = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; + +static const UnkTextStruct2 sUnknown_80DB6F4 = { + 0, 0, 0, 0, + 3, + 2, 3, + 26, 2, + 2, 0, + NULL +}; + +static const UnkTextStruct2 sUnknown_80DB70C = { + 0, 0, 0, 0, + 3, + 17, 8, + 11, 4, + 4, 0, + NULL +}; + +ALIGNED(4) static const u8 sDisplayMoney[] = _("Money: "); +ALIGNED(4) static const u8 sDisplaySavings[] = _("Savings: "); +ALIGNED(4) static const u8 sMoney[] = _("Money"); \ No newline at end of file diff --git a/src/felicity_bank.c b/src/felicity_bank.c index fbe495167..7268f3d9a 100644 --- a/src/felicity_bank.c +++ b/src/felicity_bank.c @@ -5,413 +5,415 @@ #include "memory.h" #include "menu_input.h" #include "pokemon.h" - #include "text1.h" #include "text2.h" -EWRAM_DATA_2 struct FelicityBankWork *gFelicityBankWork = {0}; +static EWRAM_DATA_2 FelicityBankWork *sFelicityBankWork = {0}; extern u32 gUnknown_202DE30; extern u8 gUnknown_202E1C8[]; extern u8 gUnknown_202E5D8[]; -extern u8 *gCommonCancel[]; -extern u8 *gCommonStore[]; -extern u8 *gCommonTake[]; -extern u8 *gCommonInfo[]; -extern u8 *gCommonDepositPrompt; -extern u8 *gCommonWithdrawPrompt; -extern u8 *gCommonFelicity[2][15]; -extern UnkTextStruct2 gUnknown_80DB6DC; -extern UnkTextStruct2 gUnknown_80DB6F4; -extern UnkTextStruct2 gUnknown_80DB70C; -extern u8 gFelicitySavings[]; -extern u8 gFelicityMoney[]; -extern u8 gUnknown_80DB738; +extern const u8 *gCommonCancel[]; +extern const u8 *gCommonStore[]; +extern const u8 *gCommonTake[]; +extern const u8 *gCommonInfo[]; +extern const u8 *gCommonDepositPrompt; +extern const u8 *gCommonWithdrawPrompt; +extern const u8 *gCommonFelicity[2][15]; -extern void sub_801645C(); -extern void sub_80169BC(); -extern void sub_8016B00(); -extern void sub_8016B24(); +#include "data/felicity_bank.h" -void CreateFelicityBankShopMenu(void); -void CreateFelicityMoneySavingsHeader(u32); -void Felicity_DepositMoney(); -void Felicity_WithdrawMoney(); -void sub_8016B48(u8 action); -void UpdateFelicityBankDialogue(); -void UpdateFelicityBankState(u32); +static void CreateFelicityBankShopMenu(void); +static void CreateFelicityMoneySavingsHeader(u32); +static void Felicity_DepositMoney(void); +static void Felicity_WithdrawMoney(void); +static void UpdateFelicityBankDialogue(void); +static void UpdateFelicityBankState(u32 newState); -u32 CreateFelicityBank(s32 isAsleep) +static void sub_801645C(void); +static void sub_80169BC(void); +static void sub_8016B00(void); +static void sub_8016B24(void); +static void sub_8016B48(u8 action); + +bool8 CreateFelicityBank(s32 mode) { - char *monName; - OpenedFile * faceFile; - - ResetUnusedInputStruct(); - sub_800641C(NULL, TRUE, TRUE); - gFelicityBankWork = MemoryAlloc(sizeof(struct FelicityBankWork), 8); - gFelicityBankWork->menuAction = 0; - gFelicityBankWork->isAsleep = isAsleep; - CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_PERSIAN); - CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_PERSIAN); - monName = GetMonSpecies(MONSTER_PERSIAN); - strcpy(gUnknown_202E1C8 - 80, monName); + u8 *monName; + OpenedFile *faceFile; - if (gFelicityBankWork->isAsleep == 1) - gFelicityBankWork->unkA4 = NULL; - else - gFelicityBankWork->unkA4 = &gFelicityBankWork->faceFile; + ResetUnusedInputStruct(); + sub_800641C(NULL, TRUE, TRUE); + sFelicityBankWork = MemoryAlloc(sizeof(FelicityBankWork), 8); + sFelicityBankWork->menuAction = 0; + sFelicityBankWork->isAsleep = mode; + CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_PERSIAN); + CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_PERSIAN); + monName = GetMonSpecies(MONSTER_PERSIAN); + strcpy(gUnknown_202E1C8 - 80, monName); - faceFile = GetDialogueSpriteDataPtr(MONSTER_PERSIAN); - gFelicityBankWork->faceFile = faceFile; - gFelicityBankWork->faceData = faceFile->data; - gFelicityBankWork->unkA0 = 0; - gFelicityBankWork->unkA1 = 0; - gFelicityBankWork->unkA2 = 0; - gFelicityBankWork->unk9C = 2; - gFelicityBankWork->unk9E = 8; - UpdateFelicityBankState(0); - return 1; + if (sFelicityBankWork->isAsleep == 1) + sFelicityBankWork->unkA4 = NULL; + else + sFelicityBankWork->unkA4 = &sFelicityBankWork->faceFile; + + faceFile = GetDialogueSpriteDataPtr(MONSTER_PERSIAN); + sFelicityBankWork->faceFile = faceFile; + sFelicityBankWork->faceData = faceFile->data; + sFelicityBankWork->unkA0 = 0; + sFelicityBankWork->unkA1 = 0; + sFelicityBankWork->unkA2 = 0; + sFelicityBankWork->unk9C = 2; + sFelicityBankWork->unk9E = 8; + UpdateFelicityBankState(0); + return TRUE; } u32 FelicityBankCallback(void) -{ - switch (gFelicityBankWork->currState) { - case 1: - sub_8016B24(); - break; - case 2: - sub_80169BC(); - break; - case 8: - Felicity_DepositMoney(); - break; - case 11: - Felicity_WithdrawMoney(); - break; - case 6: - return 3; - case 0: - case 3: - case 4: - case 5: - case 7: - case 9: - case 10: - case 12: - default: - sub_8016B00(); - break; - } - return 0; +{ + switch (sFelicityBankWork->currState) { + case 1: + sub_8016B24(); + break; + case 2: + sub_80169BC(); + break; + case 8: + Felicity_DepositMoney(); + break; + case 11: + Felicity_WithdrawMoney(); + break; + case 6: + return 3; + case 0: + case 3: + case 4: + case 5: + case 7: + case 9: + case 10: + case 12: + default: + sub_8016B00(); + break; + } + return 0; } void DestroyFelicityBank(void) { - if (gFelicityBankWork != NULL) { - CloseFile(gFelicityBankWork->faceFile); - MemoryFree(gFelicityBankWork); - gFelicityBankWork = NULL; + if (sFelicityBankWork != NULL) { + CloseFile(sFelicityBankWork->faceFile); + MemoryFree(sFelicityBankWork); + sFelicityBankWork = NULL; } } -void UpdateFelicityBankState(u32 newState) +static void UpdateFelicityBankState(u32 newState) { - gFelicityBankWork->currState = newState; + sFelicityBankWork->currState = newState; sub_801645C(); UpdateFelicityBankDialogue(); } -void sub_801645C(void) +static void sub_801645C(void) { - s32 index; + s32 i; - sub_8006518(gFelicityBankWork->unkA8); - switch (gFelicityBankWork->currState) - { + sub_8006518(sFelicityBankWork->unkA8); + + switch (sFelicityBankWork->currState) { case 2: - gFelicityBankWork->unkA8[0].unk0 = 0x80; - gFelicityBankWork->unkA8[1].unk0 = 0x80; - gFelicityBankWork->unkA8[2].unk0 = 0x80; - gFelicityBankWork->unkA8[3] = gUnknown_80DB6F4; + sFelicityBankWork->unkA8[0].unk0 = 0x80; + sFelicityBankWork->unkA8[1].unk0 = 0x80; + sFelicityBankWork->unkA8[2].unk0 = 0x80; + sFelicityBankWork->unkA8[3] = sUnknown_80DB6F4; ResetUnusedInputStruct(); - sub_800641C(gFelicityBankWork->unkA8, TRUE, FALSE); + sub_800641C(sFelicityBankWork->unkA8, TRUE, FALSE); break; case 8: case 11: - gFelicityBankWork->unkA8[0].unk0 = 0x80; - gFelicityBankWork->unkA8[1].unk0 = 0x80; - gFelicityBankWork->unkA8[3] = gUnknown_80DB6F4; - gFelicityBankWork->unkA8[2] = gUnknown_80DB70C; + sFelicityBankWork->unkA8[0].unk0 = 0x80; + sFelicityBankWork->unkA8[1].unk0 = 0x80; + sFelicityBankWork->unkA8[3] = sUnknown_80DB6F4; + sFelicityBankWork->unkA8[2] = sUnknown_80DB70C; ResetUnusedInputStruct(); - sub_800641C(gFelicityBankWork->unkA8, TRUE, FALSE); + sub_800641C(sFelicityBankWork->unkA8, TRUE, FALSE); break; default: - for (index = 0; index < 4; index++) { - gFelicityBankWork->unkA8[index] = gUnknown_80DB6DC; - } + for (i = 0; i < 4; i++) + sFelicityBankWork->unkA8[i] = sUnknown_80DB6DC; + ResetUnusedInputStruct(); - sub_800641C(gFelicityBankWork->unkA8, TRUE, TRUE); + sub_800641C(sFelicityBankWork->unkA8, TRUE, TRUE); break; } } -void UpdateFelicityBankDialogue(void) +static void UpdateFelicityBankDialogue(void) { - switch (gFelicityBankWork->currState) { - case 0x0: - gFelicityBankWork->fallbackState = 1; - sub_80141B4(gCommonFelicity[gFelicityBankWork->isAsleep][0], 0, gFelicityBankWork->unkA4, 0x10D); + switch (sFelicityBankWork->currState) { + case 0: + sFelicityBankWork->fallbackState = 1; + sub_80141B4(gCommonFelicity[sFelicityBankWork->isAsleep][0], 0, sFelicityBankWork->unkA4, 0x10D); break; - case 0x1: + case 1: CreateFelicityBankShopMenu(); - gFelicityBankWork->fallbackState = 2; + sFelicityBankWork->fallbackState = 2; if (gTeamInventoryRef->teamSavings == 0) - sub_8014248(gCommonFelicity[gFelicityBankWork->isAsleep][1], 0, gFelicityBankWork->menuAction, - gFelicityBankWork->unk14, gFelicityBankWork->unk54, 4, 0, gFelicityBankWork->unkA4, 0xC); + sub_8014248(gCommonFelicity[sFelicityBankWork->isAsleep][1], 0, sFelicityBankWork->menuAction, + sFelicityBankWork->unk14, sFelicityBankWork->unk54, 4, 0, sFelicityBankWork->unkA4, 0xC); else { gUnknown_202DE30 = gTeamInventoryRef->teamSavings; - sub_8014248(gCommonFelicity[gFelicityBankWork->isAsleep][2], 0, gFelicityBankWork->menuAction, - gFelicityBankWork->unk14, gFelicityBankWork->unk54, 4, 0, gFelicityBankWork->unkA4, 0xC); + sub_8014248(gCommonFelicity[sFelicityBankWork->isAsleep][2], 0, sFelicityBankWork->menuAction, + sFelicityBankWork->unk14, sFelicityBankWork->unk54, 4, 0, sFelicityBankWork->unkA4, 0xC); } break; - case 0x3: - gFelicityBankWork->fallbackState = 1; - sub_80141B4(gCommonFelicity[gFelicityBankWork->isAsleep][14], 0, gFelicityBankWork->unkA4, 0x10D); + case 3: + sFelicityBankWork->fallbackState = 1; + sub_80141B4(gCommonFelicity[sFelicityBankWork->isAsleep][14], 0, sFelicityBankWork->unkA4, 0x10D); break; - case 0x4: - gFelicityBankWork->fallbackState = 6; + case 4: + sFelicityBankWork->fallbackState = 6; if (gTeamInventoryRef->teamSavings == 0) - sub_80141B4(gCommonFelicity[gFelicityBankWork->isAsleep][4], 0, gFelicityBankWork->unkA4, 0x10D); + sub_80141B4(gCommonFelicity[sFelicityBankWork->isAsleep][4], 0, sFelicityBankWork->unkA4, 0x10D); else { gUnknown_202DE30 = gTeamInventoryRef->teamSavings; - sub_80141B4(gCommonFelicity[gFelicityBankWork->isAsleep][5], 0, gFelicityBankWork->unkA4, 0x10D); + sub_80141B4(gCommonFelicity[sFelicityBankWork->isAsleep][5], 0, sFelicityBankWork->unkA4, 0x10D); } break; - case 0x5: - gFelicityBankWork->fallbackState = 1; - sub_80141B4(gCommonFelicity[gFelicityBankWork->isAsleep][3], 0, gFelicityBankWork->unkA4, 0x10D); + case 5: + sFelicityBankWork->fallbackState = 1; + sub_80141B4(gCommonFelicity[sFelicityBankWork->isAsleep][3], 0, sFelicityBankWork->unkA4, 0x10D); break; - case 0x7: + case 7: if (gTeamInventoryRef->teamMoney == 0) { - gFelicityBankWork->fallbackState = 1; - sub_80141B4(gCommonFelicity[gFelicityBankWork->isAsleep][7], 0, gFelicityBankWork->unkA4, 0x10D); + sFelicityBankWork->fallbackState = 1; + sub_80141B4(gCommonFelicity[sFelicityBankWork->isAsleep][7], 0, sFelicityBankWork->unkA4, 0x10D); } else if (gTeamInventoryRef->teamSavings >= MAX_TEAM_SAVINGS) { - gFelicityBankWork->fallbackState = 1; - sub_80141B4(gCommonFelicity[gFelicityBankWork->isAsleep][8], 0, gFelicityBankWork->unkA4, 0x10D); + sFelicityBankWork->fallbackState = 1; + sub_80141B4(gCommonFelicity[sFelicityBankWork->isAsleep][8], 0, sFelicityBankWork->unkA4, 0x10D); } else { - gFelicityBankWork->fallbackState = 8; - sub_80141B4(gCommonFelicity[gFelicityBankWork->isAsleep][6], 0, gFelicityBankWork->unkA4, 0x10D); + sFelicityBankWork->fallbackState = 8; + sub_80141B4(gCommonFelicity[sFelicityBankWork->isAsleep][6], 0, sFelicityBankWork->unkA4, 0x10D); } break; - case 0x8: - gFelicityBankWork->maximumDepositWithdraw = MAX_TEAM_SAVINGS - gTeamInventoryRef->teamSavings; - if (gFelicityBankWork->maximumDepositWithdraw > gTeamInventoryRef->teamMoney) - gFelicityBankWork->maximumDepositWithdraw = gTeamInventoryRef->teamMoney; - gFelicityBankWork->unk68 = gFelicityBankWork->maximumDepositWithdraw; - gFelicityBankWork->unk6C = 1; - gFelicityBankWork->unk74 = 5; - gFelicityBankWork->unk78 = 2; - gFelicityBankWork->unk7C = &gFelicityBankWork->unkA8[2]; - gFelicityBankWork->unk80 = 0x50; - gFelicityBankWork->unk84 = 0x12; - sub_8013AA0(&gFelicityBankWork->unk64); - sub_8016B48(1); + 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; + sub_8013AA0(&sFelicityBankWork->unk64); + sub_8016B48(FELICITY_BANK_ACTION_DEPOSIT); CreateFelicityMoneySavingsHeader(3); break; - case 0x9: - gFelicityBankWork->fallbackState = 1; - gUnknown_202DE30 = gFelicityBankWork->chosenAmount; - sub_80141B4(gCommonFelicity[gFelicityBankWork->isAsleep][9], 0, gFelicityBankWork->unkA4, 0x10D); + case 9: + sFelicityBankWork->fallbackState = 1; + gUnknown_202DE30 = sFelicityBankWork->chosenAmount; + sub_80141B4(gCommonFelicity[sFelicityBankWork->isAsleep][9], 0, sFelicityBankWork->unkA4, 0x10D); break; - case 0xA: + case 10: if (gTeamInventoryRef->teamMoney >= MAX_TEAM_MONEY) { - gFelicityBankWork->fallbackState = 1; - sub_80141B4(gCommonFelicity[gFelicityBankWork->isAsleep][12], 0, gFelicityBankWork->unkA4, 0x10D); + sFelicityBankWork->fallbackState = 1; + sub_80141B4(gCommonFelicity[sFelicityBankWork->isAsleep][12], 0, sFelicityBankWork->unkA4, 0x10D); } else if (gTeamInventoryRef->teamSavings == 0) { - gFelicityBankWork->fallbackState = 1; - sub_80141B4(gCommonFelicity[gFelicityBankWork->isAsleep][11], 0, gFelicityBankWork->unkA4, 0x10D); + sFelicityBankWork->fallbackState = 1; + sub_80141B4(gCommonFelicity[sFelicityBankWork->isAsleep][11], 0, sFelicityBankWork->unkA4, 0x10D); } else { - gFelicityBankWork->fallbackState = 11; + sFelicityBankWork->fallbackState = 11; gUnknown_202DE30 = gTeamInventoryRef->teamSavings; - sub_80141B4(gCommonFelicity[gFelicityBankWork->isAsleep][10], 0, gFelicityBankWork->unkA4, 0x10D); + sub_80141B4(gCommonFelicity[sFelicityBankWork->isAsleep][10], 0, sFelicityBankWork->unkA4, 0x10D); } break; - case 0xB: - gFelicityBankWork->maximumDepositWithdraw = MAX_TEAM_MONEY - gTeamInventoryRef->teamMoney; - if (gFelicityBankWork->maximumDepositWithdraw > gTeamInventoryRef->teamSavings) - gFelicityBankWork->maximumDepositWithdraw = gTeamInventoryRef->teamSavings; - gFelicityBankWork->unk68 = gFelicityBankWork->maximumDepositWithdraw; - gFelicityBankWork->unk6C = 1; - gFelicityBankWork->unk74 = 5; - gFelicityBankWork->unk78 = 2; - gFelicityBankWork->unk7C = &gFelicityBankWork->unkA8[2]; - gFelicityBankWork->unk80 = 0x50; - gFelicityBankWork->unk84 = 0x12; - sub_8013AA0(&gFelicityBankWork->unk64); - sub_8016B48(0); + 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; + sub_8013AA0(&sFelicityBankWork->unk64); + sub_8016B48(FELICITY_BANK_ACTION_WITHDRAW); CreateFelicityMoneySavingsHeader(3); break; - case 0x2: + case 2: CreateFelicityMoneySavingsHeader(3); break; - case 0xC: - gFelicityBankWork->fallbackState = 1; - gUnknown_202DE30 = gFelicityBankWork->chosenAmount; - sub_80141B4(gCommonFelicity[gFelicityBankWork->isAsleep][13], 0, gFelicityBankWork->unkA4, 0x10D); + case 12: + sFelicityBankWork->fallbackState = 1; + gUnknown_202DE30 = sFelicityBankWork->chosenAmount; + sub_80141B4(gCommonFelicity[sFelicityBankWork->isAsleep][13], 0, sFelicityBankWork->unkA4, 0x10D); break; } } -void CreateFelicityBankShopMenu(void) +static void CreateFelicityBankShopMenu(void) { s32 loopMax; s32 i; - loopMax = 0; - - MemoryFill16(gFelicityBankWork->unk54, 0, sizeof(gFelicityBankWork->unk54)); - gFelicityBankWork->unk14[loopMax].text = *gCommonStore; - gFelicityBankWork->unk14[loopMax].menuAction = 2; + loopMax = 0; + + MemoryFill16(sFelicityBankWork->unk54, 0, sizeof(sFelicityBankWork->unk54)); + + sFelicityBankWork->unk14[loopMax].text = *gCommonStore; + sFelicityBankWork->unk14[loopMax].menuAction = 2; + loopMax++; - gFelicityBankWork->unk14[loopMax].text = *gCommonTake; - gFelicityBankWork->unk14[loopMax].menuAction = 3; + sFelicityBankWork->unk14[loopMax].text = *gCommonTake; + sFelicityBankWork->unk14[loopMax].menuAction = 3; + loopMax++; - gFelicityBankWork->unk14[loopMax].text = *gCommonInfo; - gFelicityBankWork->unk14[loopMax].menuAction = 4; + sFelicityBankWork->unk14[loopMax].text = *gCommonInfo; + sFelicityBankWork->unk14[loopMax].menuAction = 4; + loopMax++; - gFelicityBankWork->unk14[loopMax].text = *gCommonCancel; - gFelicityBankWork->unk14[loopMax].menuAction = 1; + sFelicityBankWork->unk14[loopMax].text = *gCommonCancel; + sFelicityBankWork->unk14[loopMax].menuAction = 1; + loopMax++; - gFelicityBankWork->unk14[loopMax].text = NULL; - gFelicityBankWork->unk14[loopMax].menuAction = 1; + sFelicityBankWork->unk14[loopMax].text = NULL; + sFelicityBankWork->unk14[loopMax].menuAction = 1; for (i = 0; i < loopMax; i++) { - if (gFelicityBankWork->unk54[i] == 0 && gFelicityBankWork->unk14[i].menuAction == gFelicityBankWork->menuAction) + if (sFelicityBankWork->unk54[i] == 0 && sFelicityBankWork->unk14[i].menuAction == sFelicityBankWork->menuAction) return; } for (i = 0; i < loopMax; i++) { - if (gFelicityBankWork->unk54[i] == 0) { - gFelicityBankWork->menuAction = gFelicityBankWork->unk14[i].menuAction; + if (sFelicityBankWork->unk54[i] == 0) { + sFelicityBankWork->menuAction = sFelicityBankWork->unk14[i].menuAction; break; } } } -void sub_80169BC(void) +static void sub_80169BC(void) { s32 menuAction; - if (sub_80144A4(&menuAction) == 0) { - gFelicityBankWork->menuAction = menuAction; - switch (menuAction) - { - case 2: - UpdateFelicityBankState(7); - break; - case 3: - UpdateFelicityBankState(10); - break; - case 4: - UpdateFelicityBankState(3); - break; - case 1: - UpdateFelicityBankState(4); - break; - } + if (sub_80144A4(&menuAction)) + return; + + sFelicityBankWork->menuAction = menuAction; + switch (menuAction) { + case 2: + UpdateFelicityBankState(7); + break; + case 3: + UpdateFelicityBankState(10); + break; + case 4: + UpdateFelicityBankState(3); + break; + case 1: + UpdateFelicityBankState(4); + break; } } -void Felicity_DepositMoney(void) +static void Felicity_DepositMoney(void) { - switch (sub_8013BBC(&gFelicityBankWork->unk64)) { - case 1: - sub_8016B48(FELICITY_BANK_ACTION_DEPOSIT); - break; - case 3: - gFelicityBankWork->chosenAmount = gFelicityBankWork->unk64; - gTeamInventoryRef->teamSavings += gFelicityBankWork->chosenAmount; - gTeamInventoryRef->teamMoney -= gFelicityBankWork->chosenAmount; - PlaySound(0x14c); - UpdateFelicityBankState(9); - break; - case 2: - UpdateFelicityBankState(5); - break; - case 0: - break; - } + switch (sub_8013BBC(&sFelicityBankWork->unk64)) { + case 1: + sub_8016B48(FELICITY_BANK_ACTION_DEPOSIT); + break; + case 3: + sFelicityBankWork->chosenAmount = sFelicityBankWork->unk64; + gTeamInventoryRef->teamSavings += sFelicityBankWork->chosenAmount; + gTeamInventoryRef->teamMoney -= sFelicityBankWork->chosenAmount; + PlaySound(332); + UpdateFelicityBankState(9); + break; + case 2: + UpdateFelicityBankState(5); + break; + case 0: + break; + } } -void Felicity_WithdrawMoney(void) +static void Felicity_WithdrawMoney(void) { - switch (sub_8013BBC(&gFelicityBankWork->unk64)) { - case 1: - sub_8016B48(FELICITY_BANK_ACTION_WITHDRAW); - break; - case 3: - gFelicityBankWork->chosenAmount = gFelicityBankWork->unk64; - gTeamInventoryRef->teamMoney += gFelicityBankWork->chosenAmount; - gTeamInventoryRef->teamSavings -= gFelicityBankWork->chosenAmount; - PlaySound(0x14c); - UpdateFelicityBankState(0xc); - break; - case 2: - UpdateFelicityBankState(5); - break; - case 0: - break; - } + switch (sub_8013BBC(&sFelicityBankWork->unk64)) { + case 1: + sub_8016B48(FELICITY_BANK_ACTION_WITHDRAW); + break; + case 3: + sFelicityBankWork->chosenAmount = sFelicityBankWork->unk64; + gTeamInventoryRef->teamMoney += sFelicityBankWork->chosenAmount; + gTeamInventoryRef->teamSavings -= sFelicityBankWork->chosenAmount; + PlaySound(332); + UpdateFelicityBankState(12); + break; + case 2: + UpdateFelicityBankState(5); + break; + case 0: + break; + } } -void sub_8016B00(void) +static void sub_8016B00(void) { - s32 auStack8; - - if (sub_80144A4(&auStack8) == 0) - UpdateFelicityBankState(gFelicityBankWork->fallbackState); + s32 auStack8; + + if (sub_80144A4(&auStack8) == 0) + UpdateFelicityBankState(sFelicityBankWork->fallbackState); } -void sub_8016B24(void) +static void sub_8016B24(void) { - s32 auStack8; - - if (sub_80144A4(&auStack8) == 4) - UpdateFelicityBankState(gFelicityBankWork->fallbackState); + s32 auStack8; + + if (sub_80144A4(&auStack8) == 4) + UpdateFelicityBankState(sFelicityBankWork->fallbackState); } -void sub_8016B48(u8 action) +static void sub_8016B48(u8 action) { - sub_8008C54(gFelicityBankWork->unk78); - sub_80073B8(gFelicityBankWork->unk78); - if (action != FELICITY_BANK_ACTION_WITHDRAW) - xxx_call_draw_string(12, 0, gCommonDepositPrompt, gFelicityBankWork->unk78, 0); - else - xxx_call_draw_string(12, 0, gCommonWithdrawPrompt, gFelicityBankWork->unk78, 0); - sub_8013C68(&gFelicityBankWork->unk64); - sub_80073E0(gFelicityBankWork->unk78); + sub_8008C54(sFelicityBankWork->unk78); + sub_80073B8(sFelicityBankWork->unk78); + + if (action != FELICITY_BANK_ACTION_WITHDRAW) + xxx_call_draw_string(12, 0, gCommonDepositPrompt, sFelicityBankWork->unk78, 0); + else + xxx_call_draw_string(12, 0, gCommonWithdrawPrompt, sFelicityBankWork->unk78, 0); + + sub_8013C68(&sFelicityBankWork->unk64); + sub_80073E0(sFelicityBankWork->unk78); } -void CreateFelicityMoneySavingsHeader(u32 param_1) +static void CreateFelicityMoneySavingsHeader(u32 param_1) { - sub_8008C54(param_1); - sub_80073B8(param_1); - xxx_call_draw_string(16, 4, gFelicityMoney, param_1, 0); - sub_8012BC4(96, 4, gTeamInventoryRef->teamMoney, 5, 5, param_1); - xxx_call_draw_string(112, 4, gFelicitySavings, param_1, 0); - sub_8012BC4(200, 4, gTeamInventoryRef->teamSavings, 7, 5, param_1); - sub_80073E0(param_1); + sub_8008C54(param_1); + sub_80073B8(param_1); + xxx_call_draw_string(16, 4, sDisplayMoney, param_1, 0); + sub_8012BC4(96, 4, gTeamInventoryRef->teamMoney, 5, 5, param_1); + xxx_call_draw_string(112, 4, sDisplaySavings, param_1, 0); + sub_8012BC4(200, 4, gTeamInventoryRef->teamSavings, 7, 5, param_1); + sub_80073E0(param_1); } void DrawTeamMoneyBox(u32 param_1) { - sub_8008C54(param_1); - sub_80073B8(param_1); - xxx_call_draw_string(6, 0, &gUnknown_80DB738, param_1, 0); // Money - sub_8012BC4(42, 12, gTeamInventoryRef->teamMoney, 5, 5, param_1); - sub_80073E0(param_1); -} + sub_8008C54(param_1); + sub_80073B8(param_1); + xxx_call_draw_string(6, 0, sMoney, param_1, 0); + sub_8012BC4(42, 12, gTeamInventoryRef->teamMoney, 5, 5, param_1); + sub_80073E0(param_1); +} \ No newline at end of file diff --git a/src/wigglytuff_shop.c b/src/wigglytuff_shop.c index 16220e539..81b0fb5e6 100644 --- a/src/wigglytuff_shop.c +++ b/src/wigglytuff_shop.c @@ -101,7 +101,6 @@ extern const UnkTextStruct2 gUnknown_80DC564; u8 sub_8021700(u32); void sub_8092578(u8 *buffer, u8 index, u8 r2); -extern void DrawTeamMoneyBox(u32); extern void sub_803AA34(); extern u8 sub_803ABC8(void); extern u8 sub_802132C(void); From d7192700966fb825dc61f9739e2e341babe3d206 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sun, 10 Sep 2023 23:30:17 -0400 Subject: [PATCH 06/47] Create common_strings.h --- include/common_strings.h | 48 +++++ include/kecleon_bros1.h | 9 - src/code_8012A18_1.c | 3 +- src/code_801B60C.c | 5 +- src/code_801C620.c | 2 +- src/code_801D760.c | 4 +- src/code_8023144.c | 3 +- src/debug_menu2.c | 4 +- src/debug_menu3.c | 4 +- src/felicity_bank.c | 13 +- src/friend_area_action_menu.c | 5 +- src/friend_list_menu.c | 3 +- src/gulpin_shop.c | 9 +- src/gulpin_shop_801FB50.c | 7 +- src/hints_menu.c | 10 +- src/kangaskhan_storage1.c | 9 +- src/kangaskhan_storage2.c | 266 +++++++++++++------------- src/kecleon_bros1.c | 9 +- src/luminous_cave.c | 351 +++++++++++++++++----------------- src/mailbox.c | 4 +- src/makuhita_dojo1.c | 8 +- src/menu_input.c | 2 +- src/options_menu.c | 3 +- src/party_list_menu.c | 318 +++++++++++++++--------------- src/pelipper_board.c | 5 +- src/wigglytuff_shop.c | 303 ++++++++++++++--------------- src/wonder_mail_3.c | 5 +- src/wonder_mail_3_mid.c | 2 +- 28 files changed, 684 insertions(+), 730 deletions(-) create mode 100644 include/common_strings.h diff --git a/include/common_strings.h b/include/common_strings.h new file mode 100644 index 000000000..e37a1fddf --- /dev/null +++ b/include/common_strings.h @@ -0,0 +1,48 @@ +#ifndef GUARD_COMMON_STRINGS_H +#define GUARD_COMMON_STRINGS_H + +enum KecleonBrosMode +{ + KECLEON_BROS_MODE_ITEMS_AWAKE, + KECLEON_BROS_MODE_ITEMS_ASLEEP, + KECLEON_BROS_MODE_WARES_AWAKE, + KECLEON_BROS_MODE_WARES_ASLEEP, + KECLEON_BROS_MODE_COUNT +}; + +#define MAX_HINTS 5 + +// size: 0x8 +typedef struct Hints +{ + const u8 *heading; + const u8 *body; +} Hints; + +extern const u8 *gCommonYes[]; // 80D4920 +extern const u8 *gCommonNo[]; // 80D4928 +extern const u8 *gCommonCancel[]; // 80D4934 +extern const u8 *gCommonTrash[]; // 80D4940 +extern const u8 *gCommonDelete[]; // 80D494C +extern const u8 *gCommonStore[]; // 80D4958 +extern const u8 *gCommonTake[]; // 80D4964 +extern const u8 *gCommonInfo[]; // 80D4970 +extern const u8 *gCommonBuy[]; // 80D4978 +extern const u8 *gCommonSell[]; // 80D4984 +extern const u8 *gCommonAccept[]; // 80D4990 +extern const u8 *gCommonCheck[]; // 80D499C +extern const u8 *gCommonFriend[]; // 80D49A8 +extern const u8 *gCommonExit[]; // 80D49B4 +extern const u8 *gCommonTripleQuestionMark[]; // 80D49BC +extern const u8 *gCommonDepositPrompt[]; // 80D49CC +extern const u8 *gCommonWithdrawPrompt[]; // 80D49DC + +extern const u8 *gCommonFelicity[2][15]; // 80D49E0 +extern const u8 *gCommonKangaskhanStorage[2][20]; // 80D5404 +extern const u8 *gCommonKecleonBros[KECLEON_BROS_MODE_COUNT][23]; // 80D5EC8 +extern const u8 *gCommonWigglytuff[2][20]; // 80D79A4 +extern const u8 *gCommonGulpin[2][25]; // 80D8888 +extern const u8 *gCommonMakuhita[2][10]; // 80D9FC8 +extern const Hints gCommonHints[MAX_HINTS]; // 80DAA98 + +#endif // GUARD_COMMON_STRINGS_H \ No newline at end of file diff --git a/include/kecleon_bros1.h b/include/kecleon_bros1.h index 90917ca4d..6983967e4 100644 --- a/include/kecleon_bros1.h +++ b/include/kecleon_bros1.h @@ -6,15 +6,6 @@ #include "menu.h" #include "text.h" -enum KecleonBrosMode -{ - KECLEON_BROS_MODE_ITEMS_AWAKE, - KECLEON_BROS_MODE_ITEMS_ASLEEP, - KECLEON_BROS_MODE_WARES_AWAKE, - KECLEON_BROS_MODE_WARES_ASLEEP, - KECLEON_BROS_MODE_COUNT -}; - enum KecleonStoreStates { KECLEON_STORE_INIT = 0, diff --git a/src/code_8012A18_1.c b/src/code_8012A18_1.c index 45ec2a1ef..3a9998022 100644 --- a/src/code_8012A18_1.c +++ b/src/code_8012A18_1.c @@ -1,6 +1,7 @@ #include "global.h" #include "code_8012A18_1.h" #include "code_80130A8.h" +#include "common_strings.h" #include "memory.h" #include "input.h" #include "text1.h" @@ -18,8 +19,6 @@ struct unkStruct_203B200 u8 fill[0x50 - 0x28]; }; extern struct unkStruct_203B200 *gUnknown_203B200; -extern const u8 *gCommonYes[]; -extern const u8 *gCommonNo[]; extern const char gUnknown_80DB6A4; extern const char gUnknown_80DB6BC; diff --git a/src/code_801B60C.c b/src/code_801B60C.c index 8832d9d90..06ef600c9 100644 --- a/src/code_801B60C.c +++ b/src/code_801B60C.c @@ -4,6 +4,7 @@ #include "code_801B3C0.h" #include "code_801B60C.h" #include "code_8098BDC.h" +#include "common_strings.h" #include "constants/colors.h" #include "items.h" #include "kecleon_bros4.h" @@ -19,10 +20,6 @@ extern u8 gAvailablePokemonNames[]; // 202DF98 static EWRAM_DATA_2 unkStruct_203B234 *sUnknown_203B234 = {0}; -extern const u8 *gCommonYes[]; -extern const u8 *gCommonNo[]; -extern const u8 *gCommonInfo[]; - #include "data/code_801B60C.h" // 80DBA58 // event_flag.s diff --git a/src/code_801C620.c b/src/code_801C620.c index a1da9b2c3..855d7b882 100644 --- a/src/code_801C620.c +++ b/src/code_801C620.c @@ -1,6 +1,7 @@ #include "global.h" #include "code_80118A4.h" #include "code_801C620.h" +#include "common_strings.h" #include "constants/item.h" #include "constants/iq_skill.h" #include "items.h" @@ -145,7 +146,6 @@ extern u8 gUnknown_80DBE1C[]; extern char gUnknown_80DBE2C[]; // {ARG_MOVE_ITEM_0} extern char gUnknown_80DBE30[]; // {ARG_POKEMON_0} extern u8 gUnknown_80DBDC8[]; -extern u8 *gCommonInfo[]; extern u32 sub_801CE58(void); extern void sub_801CC38(void); diff --git a/src/code_801D760.c b/src/code_801D760.c index ee65aa2ee..3ff99cbd6 100644 --- a/src/code_801D760.c +++ b/src/code_801D760.c @@ -22,6 +22,7 @@ #include "event_flag.h" #include "ground_main.h" #include "code_801C620.h" +#include "common_strings.h" struct unkStruct_203B258 { @@ -88,10 +89,7 @@ extern u8 gMenuItems[]; extern u8 gMenuJobList[]; extern u8 gMenuTeam[]; extern u8 gMenuOthers[]; -extern u8 *gCommonExit[]; extern u8 gUnknown_80DBF34[]; -extern u8 *gCommonFriend[]; -extern u8 *gCommonInfo[]; struct TeamBadgeData { diff --git a/src/code_8023144.c b/src/code_8023144.c index 6802075be..a06b754f8 100644 --- a/src/code_8023144.c +++ b/src/code_8023144.c @@ -6,6 +6,7 @@ #include "code_801B3C0.h" #include "code_8023144.h" #include "code_8098BDC.h" +#include "common_strings.h" #include "constants/colors.h" #include "constants/input.h" #include "constants/iq_skill.h" @@ -42,8 +43,6 @@ extern u8 gUnknown_80DC5EC[]; extern u8 gUnknown_202DE58[]; extern u8 gUnknown_80DC8F0[]; extern u8 gUnknown_80DC8F8[]; -extern u8 *gCommonTrash[]; -extern u8 *gCommonInfo[]; extern void sub_8022924(s32); void GetGummiItemStatBoost(PokemonStruct1* pokemon, u8 id, bool8 checkBoostFlags, Gummi *gummi); diff --git a/src/debug_menu2.c b/src/debug_menu2.c index f11b38fc3..31e5c3806 100644 --- a/src/debug_menu2.c +++ b/src/debug_menu2.c @@ -2,6 +2,7 @@ #include "code_80130A8.h" #include "code_801B3C0.h" #include "code_801C620.h" +#include "common_strings.h" #include "debug_menu2.h" #include "memory.h" #include "menu_input.h" @@ -41,9 +42,6 @@ static const UnkTextStruct2 sUnknown_80E7E64 = ALIGNED(4) static const u8 sNumberPrompt[] = "Number?"; ALIGNED(4) static const u8 sFill[] = "pksdir0"; -// common_strings.s -extern const u8 *gCommonInfo[]; - void sub_803A504(u32); void sub_803A51C(void); void sub_803A5A0(void); diff --git a/src/debug_menu3.c b/src/debug_menu3.c index 28388b047..a8e49fc82 100644 --- a/src/debug_menu3.c +++ b/src/debug_menu3.c @@ -2,6 +2,7 @@ #include "code_801EE10_mid.h" #include "code_8021774.h" #include "code_8021774_pre.h" +#include "common_strings.h" #include "debug_menu3.h" #include "friend_area.h" #include "memory.h" @@ -35,9 +36,6 @@ ALIGNED(4) static const u8 sClose[] = "CLOSE"; ALIGNED(4) static const u8 sOpen[] = "OPEN"; ALIGNED(4) static const u8 sFill[] = "pksdir0"; -// common_strings.s -extern const u8 *gCommonInfo[]; - void sub_803A924(u32); void sub_803A93C(void); void sub_803A9AC(void); diff --git a/src/felicity_bank.c b/src/felicity_bank.c index 7268f3d9a..640688aaa 100644 --- a/src/felicity_bank.c +++ b/src/felicity_bank.c @@ -1,6 +1,7 @@ #include "global.h" #include "code_80118A4.h" #include "code_80130A8.h" +#include "common_strings.h" #include "felicity_bank.h" #include "memory.h" #include "menu_input.h" @@ -14,14 +15,6 @@ extern u32 gUnknown_202DE30; extern u8 gUnknown_202E1C8[]; extern u8 gUnknown_202E5D8[]; -extern const u8 *gCommonCancel[]; -extern const u8 *gCommonStore[]; -extern const u8 *gCommonTake[]; -extern const u8 *gCommonInfo[]; -extern const u8 *gCommonDepositPrompt; -extern const u8 *gCommonWithdrawPrompt; -extern const u8 *gCommonFelicity[2][15]; - #include "data/felicity_bank.h" static void CreateFelicityBankShopMenu(void); @@ -390,9 +383,9 @@ static void sub_8016B48(u8 action) sub_80073B8(sFelicityBankWork->unk78); if (action != FELICITY_BANK_ACTION_WITHDRAW) - xxx_call_draw_string(12, 0, gCommonDepositPrompt, sFelicityBankWork->unk78, 0); + xxx_call_draw_string(12, 0, *gCommonDepositPrompt, sFelicityBankWork->unk78, 0); else - xxx_call_draw_string(12, 0, gCommonWithdrawPrompt, sFelicityBankWork->unk78, 0); + xxx_call_draw_string(12, 0, *gCommonWithdrawPrompt, sFelicityBankWork->unk78, 0); sub_8013C68(&sFelicityBankWork->unk64); sub_80073E0(sFelicityBankWork->unk78); diff --git a/src/friend_area_action_menu.c b/src/friend_area_action_menu.c index fb0d99a54..cbf01c9e8 100644 --- a/src/friend_area_action_menu.c +++ b/src/friend_area_action_menu.c @@ -6,6 +6,7 @@ #include "code_801EE10_1.h" #include "code_801EE10_mid.h" #include "code_8098BDC.h" +#include "common_strings.h" #include "constants/dungeon.h" #include "event_flag.h" #include "friend_area_action_menu.h" @@ -21,10 +22,6 @@ extern struct unkStruct_203B2BC *gUnknown_203B2BC; -extern u8 *gCommonYes[]; -extern u8 *gCommonNo[]; -extern u8 *gCommonInfo[]; - void sub_8027D40(u32, BulkItem *heldItem); void sub_8027794(void); extern void SetFriendAreaActionMenuState(u32); diff --git a/src/friend_list_menu.c b/src/friend_list_menu.c index 2940d99f7..6aac460ef 100644 --- a/src/friend_list_menu.c +++ b/src/friend_list_menu.c @@ -8,6 +8,7 @@ #include "code_801EE10_1.h" #include "code_801EE10_mid.h" #include "code_8098BDC.h" +#include "common_strings.h" #include "constants/dungeon.h" #include "event_flag.h" #include "items.h" @@ -53,8 +54,6 @@ extern u8 gAvailablePokemonNames[]; EWRAM_DATA_2 unkStruct_203B2B4 *gUnknown_203B2B4 = {0}; -extern u8 *gCommonInfo[]; - #include "data/friend_list_menu.h" extern s16 sub_80A5728(void); diff --git a/src/gulpin_shop.c b/src/gulpin_shop.c index 4d670901f..9ffd1dc7e 100644 --- a/src/gulpin_shop.c +++ b/src/gulpin_shop.c @@ -3,6 +3,7 @@ #include "code_801EE10.h" #include "code_801EE10_mid.h" #include "code_80130A8.h" +#include "common_strings.h" #include "gulpin_shop.h" #include "pokemon.h" #include "memory.h" @@ -13,13 +14,7 @@ extern u8 gAvailablePokemonNames[]; // 202DF98 -EWRAM_DATA_2 GulpinShopWork *sGulpinShopWork = {0}; - -// common_strings.s -extern const u8 *gCommonYes[]; -extern const u8 *gCommonNo[]; -extern const u8 *gCommonInfo[]; -extern const u8 *gCommonGulpin[2][25]; // 80D8888 +static EWRAM_DATA_2 GulpinShopWork *sGulpinShopWork = {0}; #include "data/gulpin_shop.h" diff --git a/src/gulpin_shop_801FB50.c b/src/gulpin_shop_801FB50.c index e9087582f..16fe8b5b7 100644 --- a/src/gulpin_shop_801FB50.c +++ b/src/gulpin_shop_801FB50.c @@ -5,6 +5,7 @@ #include "code_801EE10.h" #include "code_801EE10_1.h" #include "code_801EE10_mid.h" +#include "common_strings.h" #include "felicity_bank.h" #include "gulpin_shop.h" #include "gulpin_shop_801FB50.h" @@ -24,12 +25,6 @@ extern u8 gUnknown_202E128[]; extern u8 gUnknown_202E1C8[]; extern u8 gUnknown_202E5D8[]; -extern const u8 *gCommonYes[]; -extern const u8 *gCommonNo[]; -extern const u8 *gCommonCancel[]; -extern const u8 *gCommonInfo[]; -extern const u8 *gCommonGulpin[2][25]; // 80D8888 - #include "data/gulpin_shop_801FB50.h" // code_801EE10_1.c (return var type) diff --git a/src/hints_menu.c b/src/hints_menu.c index d308f6446..c71bb6d48 100644 --- a/src/hints_menu.c +++ b/src/hints_menu.c @@ -1,19 +1,12 @@ #include "global.h" #include "code_80118A4.h" +#include "common_strings.h" #include "memory.h" #include "menu_input.h" #include "text1.h" #include "text2.h" #include "input.h" -#define MAX_HINTS 5 - -struct Hints -{ - u8 *heading; - u8 *body; -}; - struct unkStruct_203B268 { // size: 0xA0 @@ -41,7 +34,6 @@ extern UnkTextStruct2 gUnknown_80DC0A0; extern UnkTextStruct2 gUnknown_80DC0BC; extern UnkTextStruct2 gUnknown_80DC0E4; extern UnkTextStruct2 gUnknown_80DC0FC; -extern struct Hints gCommonHints[MAX_HINTS]; extern u8 gUnknown_80DC0D4[MAX_HINTS]; extern void sub_801E714(void); diff --git a/src/kangaskhan_storage1.c b/src/kangaskhan_storage1.c index db717c73e..aa8974629 100644 --- a/src/kangaskhan_storage1.c +++ b/src/kangaskhan_storage1.c @@ -3,6 +3,7 @@ #include "code_801B3C0.h" #include "code_801C620.h" #include "code_8098BDC.h" +#include "common_strings.h" #include "kangaskhan_storage1.h" #include "kecleon_bros4.h" #include "memory.h" @@ -17,14 +18,6 @@ extern u8 gUnknown_202E5D8[]; EWRAM_DATA_2 struct KangaskhanStorageWork *gKangaskhanStorageWork = {0}; -extern const u8 *gCommonYes[]; -extern const u8 *gCommonNo[]; -extern const u8 *gCommonCancel[]; -extern const u8 *gCommonStore[]; -extern const u8 *gCommonTake[]; -extern const u8 *gCommonInfo[]; -extern const u8 *gCommonKangaskhanStorage[2][20]; // 80D5404 - #include "data/kangaskhan_storage1.h" // 80DB748 static void AdvanceToKangaskhanStorageFallbackState(void); diff --git a/src/kangaskhan_storage2.c b/src/kangaskhan_storage2.c index bfea878f9..75faa7d41 100644 --- a/src/kangaskhan_storage2.c +++ b/src/kangaskhan_storage2.c @@ -3,6 +3,7 @@ #include "code_801B3C0.h" #include "code_801C620.h" #include "code_8098BDC.h" +#include "common_strings.h" #include "kangaskhan_storage2.h" #include "kecleon_bros4.h" #include "memory.h" @@ -10,14 +11,9 @@ #include "text1.h" #include "text2.h" -EWRAM_DATA_2 unkStruct_203B20C *gUnknown_203B20C = {0}; +static EWRAM_DATA_2 unkStruct_203B20C *sUnknown_203B20C = {0}; -extern const u8 *gCommonCancel[]; -extern const u8 *gCommonStore[]; -extern const u8 *gCommonTake[]; -extern const u8 *gCommonInfo[]; - -#include "data/kangaskhan_storage2.h" // 80DB7B8 +#include "data/kangaskhan_storage2.h" static void sub_8017F10(u32); static void sub_8017F28(void); @@ -39,17 +35,17 @@ bool8 sub_8017E1C(void) { ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); - gUnknown_203B20C = MemoryAlloc(sizeof(unkStruct_203B20C), 8); - gUnknown_203B20C->menuAction1 = 0; - gUnknown_203B20C->menuAction2 = 0; - gUnknown_203B20C->menuAction3 = 0; + sUnknown_203B20C = MemoryAlloc(sizeof(unkStruct_203B20C), 8); + sUnknown_203B20C->menuAction1 = 0; + sUnknown_203B20C->menuAction2 = 0; + sUnknown_203B20C->menuAction3 = 0; sub_8017F10(0); return TRUE; } u32 sub_8017E54(void) { - switch (gUnknown_203B20C->state) { + switch (sUnknown_203B20C->state) { case 0: sub_8017F10(1); break; @@ -87,15 +83,15 @@ u32 sub_8017E54(void) void sub_8017EF4(void) { - if (gUnknown_203B20C != NULL) { - MemoryFree(gUnknown_203B20C); - gUnknown_203B20C = NULL; + if (sUnknown_203B20C != NULL) { + MemoryFree(sUnknown_203B20C); + sUnknown_203B20C = NULL; } } static void sub_8017F10(u32 newState) { - gUnknown_203B20C->state = newState; + sUnknown_203B20C->state = newState; sub_8017F28(); sub_8018100(); } @@ -104,53 +100,53 @@ static void sub_8017F28(void) { s32 index; - sub_8006518(gUnknown_203B20C->unkF0); + sub_8006518(sUnknown_203B20C->unkF0); - switch (gUnknown_203B20C->state) { + switch (sUnknown_203B20C->state) { case 1: - gUnknown_203B20C->unkF0[0] = sUnknown_80DB7B8; - gUnknown_203B20C->unkF0[1] = sUnknown_80DB7B8; - gUnknown_203B20C->unkF0[0] = sUnknown_80DB7B8; + sUnknown_203B20C->unkF0[0] = sUnknown_80DB7B8; + sUnknown_203B20C->unkF0[1] = sUnknown_80DB7B8; + sUnknown_203B20C->unkF0[0] = sUnknown_80DB7B8; sub_80182E4(); - gUnknown_203B20C->unkF0[2] = sUnknown_80DB7D0; - sub_8012CAC(&gUnknown_203B20C->unkF0[2], gUnknown_203B20C->unk20); + sUnknown_203B20C->unkF0[2] = sUnknown_80DB7D0; + sub_8012CAC(&sUnknown_203B20C->unkF0[2], sUnknown_203B20C->unk20); break; case 4: case 5: - gUnknown_203B20C->unkF0[0] = sUnknown_80DB7B8; - gUnknown_203B20C->unkF0[1] = sUnknown_80DB7B8; - gUnknown_203B20C->unkF0[2] = sUnknown_80DB7B8; - gUnknown_203B20C->unkF0[0] = sUnknown_80DB7B8; + sUnknown_203B20C->unkF0[0] = sUnknown_80DB7B8; + sUnknown_203B20C->unkF0[1] = sUnknown_80DB7B8; + sUnknown_203B20C->unkF0[2] = sUnknown_80DB7B8; + sUnknown_203B20C->unkF0[0] = sUnknown_80DB7B8; break; case 10: case 11: - gUnknown_203B20C->unkF0[0] = sUnknown_80DB7B8; - gUnknown_203B20C->unkF0[1] = sUnknown_80DB7B8; - gUnknown_203B20C->unkF0[2] = sUnknown_80DB7B8; - gUnknown_203B20C->unkF0[0] = sUnknown_80DB800; + sUnknown_203B20C->unkF0[0] = sUnknown_80DB7B8; + sUnknown_203B20C->unkF0[1] = sUnknown_80DB7B8; + sUnknown_203B20C->unkF0[2] = sUnknown_80DB7B8; + sUnknown_203B20C->unkF0[0] = sUnknown_80DB800; break; case 12: - gUnknown_203B20C->unkF0[1] = sUnknown_80DB818; + sUnknown_203B20C->unkF0[1] = sUnknown_80DB818; break; case 6: case 13: - gUnknown_203B20C->unkF0[2] = sUnknown_80DB7E8; + sUnknown_203B20C->unkF0[2] = sUnknown_80DB7E8; break; default: case 0: for (index = 0; index < 4; index++) - gUnknown_203B20C->unkF0[index] = sUnknown_80DB7B8; + sUnknown_203B20C->unkF0[index] = sUnknown_80DB7B8; break; } ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B20C->unkF0, TRUE, TRUE); + sub_800641C(sUnknown_203B20C->unkF0, TRUE, TRUE); } static void sub_8018100(void) { - switch (gUnknown_203B20C->state) { + switch (sUnknown_203B20C->state) { case 1: - sub_8012D60(&gUnknown_203B20C->unk70, gUnknown_203B20C->unk20, 0, gUnknown_203B20C->unk60, gUnknown_203B20C->menuAction1, 2); + sub_8012D60(&sUnknown_203B20C->unk70, sUnknown_203B20C->unk20, 0, sUnknown_203B20C->unk60, sUnknown_203B20C->menuAction1, 2); break; case 4: sub_801A5D8(3, 3, NULL, 10); @@ -161,10 +157,10 @@ static void sub_8018100(void) case 6: sub_801A9E0(); sub_801841C(); - sub_8012D60(&gUnknown_203B20C->unk70, gUnknown_203B20C->unk20, 0, gUnknown_203B20C->unk60, gUnknown_203B20C->menuAction2, 2); + sub_8012D60(&sUnknown_203B20C->unk70, sUnknown_203B20C->unk20, 0, sUnknown_203B20C->unk60, sUnknown_203B20C->menuAction2, 2); break; case 7: - sub_801B3C0(&gUnknown_203B20C->item); + sub_801B3C0(&sUnknown_203B20C->item); break; case 10: sub_801C8C4(1, 3, 0, 10); @@ -175,30 +171,30 @@ static void sub_8018100(void) sub_801AD34(0); break; case 12: - gUnknown_203B20C->unkD0 = 2; - gUnknown_203B20C->unkC8 = 1; + sUnknown_203B20C->unkD0 = 2; + sUnknown_203B20C->unkC8 = 1; - if (gTeamInventoryRef->teamStorage[gUnknown_203B20C->item.id] > 99) - gUnknown_203B20C->unkCC = 99; + if (gTeamInventoryRef->teamStorage[sUnknown_203B20C->item.id] > 99) + sUnknown_203B20C->unkCC = 99; else - gUnknown_203B20C->unkCC = gTeamInventoryRef->teamStorage[gUnknown_203B20C->item.id]; + sUnknown_203B20C->unkCC = gTeamInventoryRef->teamStorage[sUnknown_203B20C->item.id]; - gUnknown_203B20C->unkC4 = gUnknown_203B20C->unkCC; - gUnknown_203B20C->unkD4 = 1; - gUnknown_203B20C->unkD8 = &gUnknown_203B20C->unkF0[1]; - gUnknown_203B20C->unkDC = 40; - gUnknown_203B20C->unkE0 = 18; - sub_8013AA0(&gUnknown_203B20C->unkC0); + 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; + sub_8013AA0(&sUnknown_203B20C->unkC0); sub_8018280(); break; case 13: sub_801CCD8(); sub_801AD34(0); sub_80184D4(); - sub_8012D60(&gUnknown_203B20C->unk70, gUnknown_203B20C->unk20, 0, gUnknown_203B20C->unk60, gUnknown_203B20C->menuAction3, 2); + sub_8012D60(&sUnknown_203B20C->unk70, sUnknown_203B20C->unk20, 0, sUnknown_203B20C->unk60, sUnknown_203B20C->menuAction3, 2); break; case 14: - sub_801B3C0(&gUnknown_203B20C->item); + sub_801B3C0(&sUnknown_203B20C->item); break; case 0: default: @@ -208,14 +204,14 @@ static void sub_8018100(void) static void sub_8018280(void) { - sub_8008C54(gUnknown_203B20C->unkD4); - sub_80073B8(gUnknown_203B20C->unkD4); - xxx_call_draw_string(4, 0, sNumber, gUnknown_203B20C->unkD4, 0); - sub_8013C68(&gUnknown_203B20C->unkC0); - sub_80073E0(gUnknown_203B20C->unkD4); + sub_8008C54(sUnknown_203B20C->unkD4); + sub_80073B8(sUnknown_203B20C->unkD4); + xxx_call_draw_string(4, 0, sNumber, sUnknown_203B20C->unkD4, 0); + sub_8013C68(&sUnknown_203B20C->unkC0); + sub_80073E0(sUnknown_203B20C->unkD4); sub_801CCD8(); sub_801AD34(0); - sub_8012EA4(&gUnknown_203B20C->unk70, 0); + sub_8012EA4(&sUnknown_203B20C->unk70, 0); } static void sub_80182E4(void) @@ -224,38 +220,38 @@ static void sub_80182E4(void) s32 loopMax; loopMax = 0; - MemoryFill16(gUnknown_203B20C->unk60, 0, sizeof(gUnknown_203B20C->unk60)); - gUnknown_203B20C->unk20[0].text = *gCommonStore; - gUnknown_203B20C->unk20[0].menuAction = 2; + MemoryFill16(sUnknown_203B20C->unk60, 0, sizeof(sUnknown_203B20C->unk60)); + sUnknown_203B20C->unk20[0].text = *gCommonStore; + sUnknown_203B20C->unk20[0].menuAction = 2; if (GetNumberOfFilledInventorySlots() == 0 || sub_801CF50(0)) - gUnknown_203B20C->unk60[0] = 1; + sUnknown_203B20C->unk60[0] = 1; loopMax += 1; - gUnknown_203B20C->unk20[loopMax].text = *gCommonTake; - gUnknown_203B20C->unk20[loopMax].menuAction = 3; + sUnknown_203B20C->unk20[loopMax].text = *gCommonTake; + sUnknown_203B20C->unk20[loopMax].menuAction = 3; if (sub_801CF14(1) || INVENTORY_SIZE <= GetNumberOfFilledInventorySlots()) - gUnknown_203B20C->unk60[loopMax] = 1; + sUnknown_203B20C->unk60[loopMax] = 1; loopMax += 1; - gUnknown_203B20C->unk20[loopMax].text = *gCommonCancel; - gUnknown_203B20C->unk20[loopMax].menuAction = 1; + sUnknown_203B20C->unk20[loopMax].text = *gCommonCancel; + sUnknown_203B20C->unk20[loopMax].menuAction = 1; loopMax += 1; - gUnknown_203B20C->unk20[loopMax].text = NULL; - gUnknown_203B20C->unk20[loopMax].menuAction = 1; + sUnknown_203B20C->unk20[loopMax].text = NULL; + sUnknown_203B20C->unk20[loopMax].menuAction = 1; for (index = 0; index < loopMax; index++) { - if (gUnknown_203B20C->unk60[index] == 0) { - if (gUnknown_203B20C->unk20[index].menuAction == gUnknown_203B20C->menuAction1) + if (sUnknown_203B20C->unk60[index] == 0) { + if (sUnknown_203B20C->unk20[index].menuAction == sUnknown_203B20C->menuAction1) return; } } for (index = 0; index < loopMax; index++) { - if (gUnknown_203B20C->unk60[index] == 0) { - gUnknown_203B20C->menuAction1 = gUnknown_203B20C->unk20[index].menuAction; + if (sUnknown_203B20C->unk60[index] == 0) { + sUnknown_203B20C->menuAction1 = sUnknown_203B20C->unk20[index].menuAction; break; } } @@ -267,30 +263,30 @@ static void sub_801841C(void) s32 loopMax; loopMax = 0; - MemoryFill16(gUnknown_203B20C->unk60,0,sizeof(gUnknown_203B20C->unk60)); - gUnknown_203B20C->unk20[0].text = *gCommonStore; - gUnknown_203B20C->unk20[0].menuAction = 2; - if (!sub_801ADA0(gUnknown_203B20C->itemIndex)) - gUnknown_203B20C->unk60[0] = 1; + MemoryFill16(sUnknown_203B20C->unk60,0,sizeof(sUnknown_203B20C->unk60)); + sUnknown_203B20C->unk20[0].text = *gCommonStore; + sUnknown_203B20C->unk20[0].menuAction = 2; + if (!sub_801ADA0(sUnknown_203B20C->itemIndex)) + sUnknown_203B20C->unk60[0] = 1; loopMax += 1; - gUnknown_203B20C->unk20[loopMax].text = *gCommonInfo; - gUnknown_203B20C->unk20[loopMax].menuAction = 4; + sUnknown_203B20C->unk20[loopMax].text = *gCommonInfo; + sUnknown_203B20C->unk20[loopMax].menuAction = 4; loopMax += 1; - gUnknown_203B20C->unk20[loopMax].text = NULL; - gUnknown_203B20C->unk20[loopMax].menuAction = 1; + sUnknown_203B20C->unk20[loopMax].text = NULL; + sUnknown_203B20C->unk20[loopMax].menuAction = 1; for (index = 0; index < loopMax; index++) { - if (gUnknown_203B20C->unk60[index] == 0) { - if (gUnknown_203B20C->unk20[index].menuAction == gUnknown_203B20C->menuAction2) + if (sUnknown_203B20C->unk60[index] == 0) { + if (sUnknown_203B20C->unk20[index].menuAction == sUnknown_203B20C->menuAction2) return; } } for (index = 0; index < loopMax; index++) { - if (gUnknown_203B20C->unk60[index] == 0) { - gUnknown_203B20C->menuAction2 = gUnknown_203B20C->unk20[index].menuAction; + if (sUnknown_203B20C->unk60[index] == 0) { + sUnknown_203B20C->menuAction2 = sUnknown_203B20C->unk20[index].menuAction; break; } } @@ -302,31 +298,31 @@ static void sub_80184D4(void) s32 loopMax; loopMax = 0; - MemoryFill16(gUnknown_203B20C->unk60, 0, sizeof(gUnknown_203B20C->unk60)); - gUnknown_203B20C->unk20[0].text = *gCommonTake; - gUnknown_203B20C->unk20[0].menuAction = 3; + MemoryFill16(sUnknown_203B20C->unk60, 0, sizeof(sUnknown_203B20C->unk60)); + sUnknown_203B20C->unk20[0].text = *gCommonTake; + sUnknown_203B20C->unk20[0].menuAction = 3; if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) - gUnknown_203B20C->unk60[0] = 1; + sUnknown_203B20C->unk60[0] = 1; loopMax += 1; - gUnknown_203B20C->unk20[loopMax].text = *gCommonInfo; - gUnknown_203B20C->unk20[loopMax].menuAction = 4; + sUnknown_203B20C->unk20[loopMax].text = *gCommonInfo; + sUnknown_203B20C->unk20[loopMax].menuAction = 4; loopMax += 1; - gUnknown_203B20C->unk20[loopMax].text = NULL; - gUnknown_203B20C->unk20[loopMax].menuAction = 1; + sUnknown_203B20C->unk20[loopMax].text = NULL; + sUnknown_203B20C->unk20[loopMax].menuAction = 1; for (index = 0; index < loopMax; index++) { - if (gUnknown_203B20C->unk60[index] == 0) { - if (gUnknown_203B20C->unk20[index].menuAction == gUnknown_203B20C->menuAction3) + if (sUnknown_203B20C->unk60[index] == 0) { + if (sUnknown_203B20C->unk20[index].menuAction == sUnknown_203B20C->menuAction3) return; } } for (index = 0; index < loopMax; index++) { - if (gUnknown_203B20C->unk60[index] == 0) { - gUnknown_203B20C->menuAction3 = gUnknown_203B20C->unk20[index].menuAction; + if (sUnknown_203B20C->unk60[index] == 0) { + sUnknown_203B20C->menuAction3 = sUnknown_203B20C->unk20[index].menuAction; break; } } @@ -337,10 +333,10 @@ static void sub_8018588(void) s32 menuAction; menuAction = 0; - if (sub_8012FD8(&gUnknown_203B20C->unk70) == 0) { - sub_8013114(&gUnknown_203B20C->unk70, &menuAction); + if (sub_8012FD8(&sUnknown_203B20C->unk70) == 0) { + sub_8013114(&sUnknown_203B20C->unk70, &menuAction); if (menuAction != 1) - gUnknown_203B20C->menuAction1 = menuAction; + sUnknown_203B20C->menuAction1 = menuAction; } switch (menuAction) { @@ -348,11 +344,11 @@ static void sub_8018588(void) if (GetNumberOfFilledInventorySlots() != 0 && !sub_801CF50(0)) sub_8017F10(4); else - sub_8012EA4(&gUnknown_203B20C->unk70, 1); + sub_8012EA4(&sUnknown_203B20C->unk70, 1); break; case 3: if (sub_801CF14(1)) - sub_8012EA4(&gUnknown_203B20C->unk70, 1); + sub_8012EA4(&sUnknown_203B20C->unk70, 1); else sub_8017F10(10); break; @@ -388,14 +384,14 @@ static void sub_8018620(void) sub_8017F10(5); } else { - gUnknown_203B20C->itemIndex = sub_801A8AC(); - gUnknown_203B20C->item = gTeamInventoryRef->teamItems[gUnknown_203B20C->itemIndex]; + sUnknown_203B20C->itemIndex = sub_801A8AC(); + sUnknown_203B20C->item = gTeamInventoryRef->teamItems[sUnknown_203B20C->itemIndex]; sub_8017F10(6); } break; case 4: - gUnknown_203B20C->itemIndex = sub_801A8AC(); - gUnknown_203B20C->item = gTeamInventoryRef->teamItems[gUnknown_203B20C->itemIndex]; + sUnknown_203B20C->itemIndex = sub_801A8AC(); + sUnknown_203B20C->item = gTeamInventoryRef->teamItems[sUnknown_203B20C->itemIndex]; sub_8017F10(7); break; case 2: @@ -442,16 +438,16 @@ static void sub_80186F8(void) } } else { - gUnknown_203B20C->id = sub_801CB24(); - xxx_init_itemslot_8090A8C(&gUnknown_203B20C->item, gUnknown_203B20C->id, 0); - gUnknown_203B20C->item.quantity = 1; + sUnknown_203B20C->id = sub_801CB24(); + xxx_init_itemslot_8090A8C(&sUnknown_203B20C->item, sUnknown_203B20C->id, 0); + sUnknown_203B20C->item.quantity = 1; sub_8017F10(13); } break; case 4: - gUnknown_203B20C->id = sub_801CB24(); - xxx_init_itemslot_8090A8C(&gUnknown_203B20C->item, gUnknown_203B20C->id, 0); - gUnknown_203B20C->item.quantity = 1; + sUnknown_203B20C->id = sub_801CB24(); + xxx_init_itemslot_8090A8C(&sUnknown_203B20C->item, sUnknown_203B20C->id, 0); + sUnknown_203B20C->item.quantity = 1; sub_8017F10(14); break; case 2: @@ -469,14 +465,14 @@ static void sub_8018854(void) BulkItem item; sub_801CA08(FALSE); - sub_8012FD8(&gUnknown_203B20C->unk70); + sub_8012FD8(&sUnknown_203B20C->unk70); - switch (sub_8013BBC(&gUnknown_203B20C->unkC0)) { + switch (sub_8013BBC(&sUnknown_203B20C->unkC0)) { case 3: - gUnknown_203B20C->item.quantity = gUnknown_203B20C->unkC0; - gTeamInventoryRef->teamStorage[gUnknown_203B20C->item.id] -= gUnknown_203B20C->item.quantity; - item.id = gUnknown_203B20C->item.id; - item.quantity = gUnknown_203B20C->item.quantity; + sUnknown_203B20C->item.quantity = sUnknown_203B20C->unkC0; + gTeamInventoryRef->teamStorage[sUnknown_203B20C->item.id] -= sUnknown_203B20C->item.quantity; + item.id = sUnknown_203B20C->item.id; + item.quantity = sUnknown_203B20C->item.quantity; AddHeldItemToInventory(&item); if (!sub_801CF14(1)) { @@ -509,22 +505,22 @@ static void sub_8018904(void) menuAction = 0; sub_801A6E8(FALSE); - if (sub_8012FD8(&gUnknown_203B20C->unk70) == 0) { - sub_8013114(&gUnknown_203B20C->unk70, &menuAction); + if (sub_8012FD8(&sUnknown_203B20C->unk70) == 0) { + sub_8013114(&sUnknown_203B20C->unk70, &menuAction); if (menuAction != 1) - gUnknown_203B20C->menuAction2 = menuAction; + sUnknown_203B20C->menuAction2 = menuAction; } switch (menuAction) { case 2: - if (IsNotMoneyOrUsedTMItem(gUnknown_203B20C->item.id)) { - if (!sub_801ADA0(gUnknown_203B20C->itemIndex)) { + if (IsNotMoneyOrUsedTMItem(sUnknown_203B20C->item.id)) { + if (!sub_801ADA0(sUnknown_203B20C->itemIndex)) { error: - sub_8012EA4(&gUnknown_203B20C->unk70, 1); + sub_8012EA4(&sUnknown_203B20C->unk70, 1); } else { - MoveToStorage(&gUnknown_203B20C->item); - ShiftItemsDownFrom(gUnknown_203B20C->itemIndex); + MoveToStorage(&sUnknown_203B20C->item); + ShiftItemsDownFrom(sUnknown_203B20C->itemIndex); FillInventoryGaps(); if (GetNumberOfFilledInventorySlots() == 0) { @@ -556,22 +552,22 @@ static void sub_80189C8(void) menuAction = 0; sub_801CA08(FALSE); - if (sub_8012FD8(&gUnknown_203B20C->unk70) == 0) { - sub_8013114(&gUnknown_203B20C->unk70, &menuAction); + if (sub_8012FD8(&sUnknown_203B20C->unk70) == 0) { + sub_8013114(&sUnknown_203B20C->unk70, &menuAction); if (menuAction != 1) - gUnknown_203B20C->menuAction3 = menuAction; + sUnknown_203B20C->menuAction3 = menuAction; } switch (menuAction) { case 3: if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) - sub_8012EA4(&gUnknown_203B20C->unk70, 1); - else if (IsThrowableItem(gUnknown_203B20C->item.id)) + sub_8012EA4(&sUnknown_203B20C->unk70, 1); + else if (IsThrowableItem(sUnknown_203B20C->item.id)) sub_8017F10(12); else { - gTeamInventoryRef->teamStorage[gUnknown_203B20C->item.id] -= gUnknown_203B20C->item.quantity; - item.id = gUnknown_203B20C->item.id; - item.quantity = gUnknown_203B20C->item.quantity; + gTeamInventoryRef->teamStorage[sUnknown_203B20C->item.id] -= sUnknown_203B20C->item.quantity; + item.id = sUnknown_203B20C->item.id; + item.quantity = sUnknown_203B20C->item.quantity; AddHeldItemToInventory(&item); if (!sub_801CF14(1)) { diff --git a/src/kecleon_bros1.c b/src/kecleon_bros1.c index cdd49e798..3267c787a 100644 --- a/src/kecleon_bros1.c +++ b/src/kecleon_bros1.c @@ -3,6 +3,7 @@ #include "code_80130A8.h" #include "code_801B3C0.h" #include "code_8098BDC.h" +#include "common_strings.h" #include "felicity_bank.h" #include "items.h" #include "kecleon_bros1.h" @@ -22,14 +23,6 @@ extern u8 gUnknown_202E5D8[]; static EWRAM_DATA_2 KecleonBrosWork1 *sKecleonBrosWork1 = {0}; -extern const u8 *gCommonYes[]; -extern const u8 *gCommonNo[]; -extern const u8 *gCommonCancel[]; -extern const u8 *gCommonInfo[]; -extern const u8 *gCommonBuy[]; -extern const u8 *gCommonSell[]; -extern const u8 *gCommonKecleonBros[KECLEON_BROS_MODE_COUNT][23]; // 80D5EC8 - #include "data/kecleon_bros1.h" static u32 CountKecleonItems(void); diff --git a/src/luminous_cave.c b/src/luminous_cave.c index 78a371686..33ea0d14b 100644 --- a/src/luminous_cave.c +++ b/src/luminous_cave.c @@ -6,6 +6,7 @@ #include "code_801B3C0.h" #include "code_8097670.h" #include "code_8098BDC.h" +#include "common_strings.h" #include "constants/bg_music.h" #include "constants/colors.h" #include "constants/evolution_status.h" @@ -23,12 +24,7 @@ extern u8 gAvailablePokemonNames[]; // 202DF98 extern u8 gPlayerName[]; // 202E2B8 -EWRAM_DATA_2 struct unkStruct_203B2B0 *gUnknown_203B2B0 = {0}; - -// common_strings.s -extern const u8 *gCommonCancel[]; -extern const u8 *gCommonInfo[]; - +static EWRAM_DATA_2 struct unkStruct_203B2B0 *sUnknown_203B2B0 = {0}; extern const UnkTextStruct2 gUnknown_80DC9E8; extern const UnkTextStruct2 gUnknown_80DCA00; @@ -69,23 +65,26 @@ enum LUMINOUS_CAVE_ASK_EVOLVE, LUMINOUS_CAVE_EVOLVE_INFO, LUMINOUS_CAVE_SHALL_RETURN, + // LUMINOUS_CAVE_GIVE_ITEM_1 = 5, + // LUMINOUS_CAVE_GIVE_ITEM_2 = 10, - LUMINOUS_CAVE_LACK_WHAT_NEEDED = 0xF, - LUMINOUS_CAVE_ONLY_ONE_ITEM = 0x10, - LUMINOUS_CAVE_LET_US_BEGIN = 0x11, - LUMINOUS_CAVE_CHANGED_APPEARANCE = 0x12, - LUMINOUS_CAVE_EVOLVED = 0x13, - LUMINOUS_CAVE_PROMPT_NAME = 0x14, - LUMINOUS_CAVE_FINISH_NAME = 0x15, - LUMINOUS_CAVE_COME_ALONE = 0x16, - LUMINOUS_CAVE_LACK_LEVEL = 0x17, - LUMINOUS_CAVE_CANT_EVOLVE_ANYMORE = 0x18, - LUMINOUS_CAVE_LACK_FRIEND_AREA = 0x19, - LUMINOUS_CAVE_LACK_ROOM = 0x1A, - LUMINOUS_CAVE_LACK_IQ = 0x1B, - LUMINOUS_CAVE_LACK_ITEM = 0x1C, - LUMINOUS_CAVE_CANT_EVOLVE_YET = 0x1D, + // + LUMINOUS_CAVE_LACK_WHAT_NEEDED = 15, + LUMINOUS_CAVE_ONLY_ONE_ITEM, + LUMINOUS_CAVE_LET_US_BEGIN, + LUMINOUS_CAVE_CHANGED_APPEARANCE, + LUMINOUS_CAVE_EVOLVED, + LUMINOUS_CAVE_PROMPT_NAME, + LUMINOUS_CAVE_FINISH_NAME, + LUMINOUS_CAVE_COME_ALONE, + LUMINOUS_CAVE_LACK_LEVEL, + LUMINOUS_CAVE_CANT_EVOLVE_ANYMORE, + LUMINOUS_CAVE_LACK_FRIEND_AREA, + LUMINOUS_CAVE_LACK_ROOM, + LUMINOUS_CAVE_LACK_IQ, + LUMINOUS_CAVE_LACK_ITEM, + LUMINOUS_CAVE_CANT_EVOLVE_YET, }; u32 sub_802465C(void) @@ -94,28 +93,28 @@ u32 sub_802465C(void) ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); - gUnknown_203B2B0 = MemoryAlloc(sizeof(struct unkStruct_203B2B0), 8); - gUnknown_203B2B0->menuAction1 = 0; - gUnknown_203B2B0->menuAction2 = 0; - gUnknown_203B2B0->menuAction3 = 0; - gUnknown_203B2B0->pokeStruct = GetPlayerPokemonStruct(); - gUnknown_203B2B0->pokeRenamed = IsPokemonRenamed(gUnknown_203B2B0->pokeStruct); - gUnknown_203B2B0->evolutionComplete = FALSE; + sUnknown_203B2B0 = MemoryAlloc(sizeof(struct unkStruct_203B2B0), 8); + sUnknown_203B2B0->menuAction1 = 0; + sUnknown_203B2B0->menuAction2 = 0; + sUnknown_203B2B0->menuAction3 = 0; + sUnknown_203B2B0->pokeStruct = GetPlayerPokemonStruct(); + sUnknown_203B2B0->pokeRenamed = IsPokemonRenamed(sUnknown_203B2B0->pokeStruct); + sUnknown_203B2B0->evolutionComplete = FALSE; faceFile = GetDialogueSpriteDataPtr(MONSTER_GULPIN); - gUnknown_203B2B0->unk104 = faceFile; - gUnknown_203B2B0->unk108 = faceFile->data; - gUnknown_203B2B0->unk110 = 0; - gUnknown_203B2B0->unk111 = 0; - gUnknown_203B2B0->unk112 = 0; - gUnknown_203B2B0->unk10C = 2; - gUnknown_203B2B0->unk10E = 8; + sUnknown_203B2B0->unk104 = faceFile; + sUnknown_203B2B0->unk108 = faceFile->data; + sUnknown_203B2B0->unk110 = 0; + sUnknown_203B2B0->unk111 = 0; + sUnknown_203B2B0->unk112 = 0; + sUnknown_203B2B0->unk10C = 2; + sUnknown_203B2B0->unk10E = 8; UpdateLuminousCaveState(LUMINOUS_CAVE_ENTRY); return TRUE; } u32 sub_80246F0(void) { - switch (gUnknown_203B2B0->state) { + switch (sUnknown_203B2B0->state) { case LUMINOUS_CAVE_ENTRY: case LUMINOUS_CAVE_ASK_EVOLVE: sub_8024E9C(); @@ -160,21 +159,21 @@ u32 sub_80246F0(void) bool8 HasEvolutionCompleted(void) { - return gUnknown_203B2B0->evolutionComplete; + return sUnknown_203B2B0->evolutionComplete; } void CleanLuminousCave(void) { - if (gUnknown_203B2B0 != NULL) { - CloseFile(gUnknown_203B2B0->unk104); - MemoryFree(gUnknown_203B2B0); - gUnknown_203B2B0 = NULL; + if (sUnknown_203B2B0 != NULL) { + CloseFile(sUnknown_203B2B0->unk104); + MemoryFree(sUnknown_203B2B0); + sUnknown_203B2B0 = NULL; } } static void UpdateLuminousCaveState(u32 newState) { - gUnknown_203B2B0->state = newState; + sUnknown_203B2B0->state = newState; sub_8024804(); UpdateLuminousCaveDialogue(); } @@ -183,12 +182,12 @@ static void sub_8024804(void) { s32 i; - sub_8006518(gUnknown_203B2B0->unk114); + sub_8006518(sUnknown_203B2B0->unk114); - switch (gUnknown_203B2B0->state) { + switch (sUnknown_203B2B0->state) { case 8: case 13: - gUnknown_203B2B0->unk114[2] = gUnknown_80DCA00; + sUnknown_203B2B0->unk114[2] = gUnknown_80DCA00; break; case LUMINOUS_CAVE_LET_US_BEGIN: case LUMINOUS_CAVE_CHANGED_APPEARANCE: @@ -203,44 +202,44 @@ static void sub_8024804(void) break; default: for (i = 0; i < 4; i++) - gUnknown_203B2B0->unk114[i] = gUnknown_80DC9E8; + sUnknown_203B2B0->unk114[i] = gUnknown_80DC9E8; break; } ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2B0->unk114, TRUE, TRUE); + sub_800641C(sUnknown_203B2B0->unk114, TRUE, TRUE); } static void UpdateLuminousCaveDialogue(void) { u8 *monName; - switch (gUnknown_203B2B0->state) { + switch (sUnknown_203B2B0->state) { case LUMINOUS_CAVE_ENTRY: if (LuminousCave_HasOnly1Member()) - gUnknown_203B2B0->menuAction1 = 3; + sUnknown_203B2B0->menuAction1 = 3; else - gUnknown_203B2B0->menuAction1 = 1; + sUnknown_203B2B0->menuAction1 = 1; sub_8024CFC(); - sub_8014248(sLuminousCaveSeekAwakening,0,gUnknown_203B2B0->menuAction1,gUnknown_203B2B0->unk34,gUnknown_203B2B0->unk74,4,0,0,5); + sub_8014248(sLuminousCaveSeekAwakening,0,sUnknown_203B2B0->menuAction1,sUnknown_203B2B0->unk34,sUnknown_203B2B0->unk74,4,0,0,5); break; case LUMINOUS_CAVE_ASK_EVOLVE: sub_8024CFC(); - sub_8014248(sLuminousCaveAskEvolution,0,gUnknown_203B2B0->menuAction1,gUnknown_203B2B0->unk34,gUnknown_203B2B0->unk74,4,0,0,5); + sub_8014248(sLuminousCaveAskEvolution,0,sUnknown_203B2B0->menuAction1,sUnknown_203B2B0->unk34,sUnknown_203B2B0->unk74,4,0,0,5); break; case LUMINOUS_CAVE_EVOLVE_INFO: - gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_ASK_EVOLVE; + sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_ASK_EVOLVE; sub_80141B4(sLuminousCaveEvolutionInfo,0,0,0x105); break; case LUMINOUS_CAVE_SHALL_RETURN: - gUnknown_203B2B0->fallbackState = 4; + sUnknown_203B2B0->fallbackState = 4; xxx_call_fade_in_new_bgm(MUS_FILE_SELECT,0x3c); sub_80141B4(sLuminousCaveYeShallReturn,0,0,0x305); break; case LUMINOUS_CAVE_GIVE_ITEM_1: sub_8024D48(); - sub_8014248(sLuminousCaveGiveItem,0,gUnknown_203B2B0->menuAction2,gUnknown_203B2B0->unk34,gUnknown_203B2B0->unk74,4,0,0,5); + sub_8014248(sLuminousCaveGiveItem,0,sUnknown_203B2B0->menuAction2,sUnknown_203B2B0->unk34,sUnknown_203B2B0->unk74,4,0,0,5); break; case 6: sub_801A5D8(2,3,NULL,10); @@ -250,132 +249,132 @@ static void UpdateLuminousCaveDialogue(void) break; case LUMINOUS_CAVE_GIVE_ITEM_2: sub_8024DBC(); - sub_8014248(sLuminousCaveGiveAnotherItem,0,gUnknown_203B2B0->menuAction2,gUnknown_203B2B0->unk34,gUnknown_203B2B0->unk74,4,0,0,5); + sub_8014248(sLuminousCaveGiveAnotherItem,0,sUnknown_203B2B0->menuAction2,sUnknown_203B2B0->unk34,sUnknown_203B2B0->unk74,4,0,0,5); break; case 11: sub_801A5D8(2,3,NULL,10); - sub_801AEE4(gUnknown_203B2B0->evoItem1_InvIndex,1); + sub_801AEE4(sUnknown_203B2B0->evoItem1_InvIndex,1); sub_801A9E0(); break; case 12: sub_801A8D0(TRUE); - sub_801AEE4(gUnknown_203B2B0->evoItem1_InvIndex,1); + sub_801AEE4(sUnknown_203B2B0->evoItem1_InvIndex,1); sub_801A9E0(); break; case 8: case 13: sub_801A9E0(); sub_8024E30(); - sub_8012D60(&gUnknown_203B2B0->unk84,gUnknown_203B2B0->unk34,0,gUnknown_203B2B0->unk74, - gUnknown_203B2B0->menuAction3,2); + sub_8012D60(&sUnknown_203B2B0->unk84,sUnknown_203B2B0->unk34,0,sUnknown_203B2B0->unk74, + sUnknown_203B2B0->menuAction3,2); break; case 9: case 14: - sub_801B3C0(&gUnknown_203B2B0->chosenItem); + sub_801B3C0(&sUnknown_203B2B0->chosenItem); break; case LUMINOUS_CAVE_LACK_WHAT_NEEDED: - gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_GIVE_ITEM_1; + sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_GIVE_ITEM_1; sub_80141B4(sLuminousCaveLackWhatIsNeeded,0,0,0x105); break; case LUMINOUS_CAVE_ONLY_ONE_ITEM: - gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_GIVE_ITEM_2; + sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_GIVE_ITEM_2; sub_80141B4(sLuminousCaveOnlyOneItem,0,0,0x105); break; case LUMINOUS_CAVE_LET_US_BEGIN: sub_8025254(); - if((gUnknown_203B2B0->evolveStatus.evolutionConditionStatus & EVOLUTION_GOOD)) - gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_CHANGED_APPEARANCE; - else if(gUnknown_203B2B0->evolveStatus.evolutionConditionStatus == EVOLUTION_NO_MORE) - gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_CANT_EVOLVE_ANYMORE; - else if(gUnknown_203B2B0->evolveStatus.evolutionConditionStatus == EVOLUTION_LACK_LEVEL) - gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_LACK_LEVEL; - else if(gUnknown_203B2B0->evolveStatus.evolutionConditionStatus == EVOLUTION_LACK_IQ) - gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_LACK_IQ; - else if(gUnknown_203B2B0->evolveStatus.evolutionConditionStatus == EVOLUTION_LACK_FRIEND_AREA) - gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_LACK_FRIEND_AREA; - else if(gUnknown_203B2B0->evolveStatus.evolutionConditionStatus == EVOLUTION_LACK_ROOM) - gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_LACK_ROOM; - else if(gUnknown_203B2B0->evolveStatus.evolutionConditionStatus == EVOLUTION_LACK_ITEM) - gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_LACK_ITEM; + if((sUnknown_203B2B0->evolveStatus.evolutionConditionStatus & EVOLUTION_GOOD)) + sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_CHANGED_APPEARANCE; + else if(sUnknown_203B2B0->evolveStatus.evolutionConditionStatus == EVOLUTION_NO_MORE) + sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_CANT_EVOLVE_ANYMORE; + else if(sUnknown_203B2B0->evolveStatus.evolutionConditionStatus == EVOLUTION_LACK_LEVEL) + sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_LACK_LEVEL; + else if(sUnknown_203B2B0->evolveStatus.evolutionConditionStatus == EVOLUTION_LACK_IQ) + sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_LACK_IQ; + else if(sUnknown_203B2B0->evolveStatus.evolutionConditionStatus == EVOLUTION_LACK_FRIEND_AREA) + sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_LACK_FRIEND_AREA; + else if(sUnknown_203B2B0->evolveStatus.evolutionConditionStatus == EVOLUTION_LACK_ROOM) + sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_LACK_ROOM; + else if(sUnknown_203B2B0->evolveStatus.evolutionConditionStatus == EVOLUTION_LACK_ITEM) + sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_LACK_ITEM; else - gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_CANT_EVOLVE_YET; + sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_CANT_EVOLVE_YET; xxx_call_fade_out_bgm(0x3c); sub_80141B4(sLuminousCaveLetUsBegin,0,0,0x105); break; case LUMINOUS_CAVE_CHANGED_APPEARANCE: - PrintColoredPokeNameToBuffer(gPlayerName,gUnknown_203B2B0->pokeStruct, COLOR_CYAN); + PrintColoredPokeNameToBuffer(gPlayerName,sUnknown_203B2B0->pokeStruct, COLOR_CYAN); PlaySound(0x1ff); - gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_EVOLVED; + sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_EVOLVED; sub_80141B4(sLuminousCaveChangedAppearance,0,0,0x105); break; case LUMINOUS_CAVE_EVOLVED: - monName = GetMonSpecies(gUnknown_203B2B0->pokeStruct->speciesNum); + monName = GetMonSpecies(sUnknown_203B2B0->pokeStruct->speciesNum); strcpy(gAvailablePokemonNames,monName); - monName = GetMonSpecies(gUnknown_203B2B0->evolveStatus.targetEvolveSpecies); + monName = GetMonSpecies(sUnknown_203B2B0->evolveStatus.targetEvolveSpecies); strcpy(gAvailablePokemonNames + 0x50,monName); - gUnknown_203B2B0->evolutionComplete = TRUE; + sUnknown_203B2B0->evolutionComplete = TRUE; sub_80977D0(); - sub_808F734(gUnknown_203B2B0->pokeStruct,gUnknown_203B2B0->evolveStatus.targetEvolveSpecies); + sub_808F734(sUnknown_203B2B0->pokeStruct,sUnknown_203B2B0->evolveStatus.targetEvolveSpecies); nullsub_104(); - gUnknown_203B2B0->pokeStruct = GetPlayerPokemonStruct(); - if (gUnknown_203B2B0->evoItem1_InvIndex != INVENTORY_SIZE) { - ClearItemSlotAt(gUnknown_203B2B0->evoItem1_InvIndex); + sUnknown_203B2B0->pokeStruct = GetPlayerPokemonStruct(); + if (sUnknown_203B2B0->evoItem1_InvIndex != INVENTORY_SIZE) { + ClearItemSlotAt(sUnknown_203B2B0->evoItem1_InvIndex); } - if (gUnknown_203B2B0->evoItem2_InvIndex != INVENTORY_SIZE) { - ClearItemSlotAt(gUnknown_203B2B0->evoItem2_InvIndex); + if (sUnknown_203B2B0->evoItem2_InvIndex != INVENTORY_SIZE) { + ClearItemSlotAt(sUnknown_203B2B0->evoItem2_InvIndex); } FillInventoryGaps(); xxx_call_stop_fanfare_se(0x1ff); PlaySound(0xd2); - if (gUnknown_203B2B0->pokeRenamed) { - BoundedCopyStringtoBuffer(gUnknown_203B2B0->pokeStruct->name,GetMonSpecies(gUnknown_203B2B0->pokeStruct->speciesNum),POKEMON_NAME_LENGTH); + if (sUnknown_203B2B0->pokeRenamed) { + BoundedCopyStringtoBuffer(sUnknown_203B2B0->pokeStruct->name,GetMonSpecies(sUnknown_203B2B0->pokeStruct->speciesNum),POKEMON_NAME_LENGTH); } - gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; + sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; sub_80141B4(sLuminousCaveEvolved,0,0,0x105); break; case LUMINOUS_CAVE_COME_ALONE: - gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; + sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; sub_80141B4(sLuminousCaveComeAlone,0,0,0x105); break; case LUMINOUS_CAVE_LACK_LEVEL: - gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; + sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; sub_80141B4(sLuminousCaveLackLevel,0,0,0x105); break; case LUMINOUS_CAVE_CANT_EVOLVE_ANYMORE: - gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; + sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; sub_80141B4(sLuminousCaveCantEvolveAnymore,0,0,0x105); break; case LUMINOUS_CAVE_LACK_FRIEND_AREA: - gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; + sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; sub_80141B4(sLuminousCaveLackFriendArea,0,0,0x105); break; case LUMINOUS_CAVE_LACK_ROOM: - gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; + sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; sub_80141B4(sLuminousCaveLackRoom,0,0,0x105); break; case LUMINOUS_CAVE_LACK_IQ: - gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; + sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; sub_80141B4(sLuminousCaveLackIQ,0,0,0x105); break; case LUMINOUS_CAVE_LACK_ITEM: - gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; + sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; sub_80141B4(sLuminousCaveLackItem,0,0,0x105); break; case LUMINOUS_CAVE_CANT_EVOLVE_YET: - gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; + sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; sub_80141B4(sLuminousCaveCantEvolveYet,0,0,0x105); break; case LUMINOUS_CAVE_PROMPT_NAME: xxx_call_fade_in_new_bgm(8,0x3c); - gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_FINISH_NAME; + sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_FINISH_NAME; sub_80141B4(sLuminousCaveGiveName,0,0,0x105); break; case LUMINOUS_CAVE_FINISH_NAME: - if (gUnknown_203B2B0->pokeRenamed) { - BoundedCopyStringtoBuffer(gUnknown_203B2B0->pokeStruct->name,GetMonSpecies(gUnknown_203B2B0->pokeStruct->speciesNum),POKEMON_NAME_LENGTH); + if (sUnknown_203B2B0->pokeRenamed) { + BoundedCopyStringtoBuffer(sUnknown_203B2B0->pokeStruct->name,GetMonSpecies(sUnknown_203B2B0->pokeStruct->speciesNum),POKEMON_NAME_LENGTH); } - sub_801602C(0,gUnknown_203B2B0->pokeStruct->name); + sub_801602C(0,sUnknown_203B2B0->pokeStruct->name); break; default: break; @@ -386,22 +385,22 @@ static void sub_8024CFC(void) { s32 loopMax = 0; - MemoryFill16(gUnknown_203B2B0->unk74, 0, sizeof(gUnknown_203B2B0->unk74)); + MemoryFill16(sUnknown_203B2B0->unk74, 0, sizeof(sUnknown_203B2B0->unk74)); - gUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA18; - gUnknown_203B2B0->unk34[loopMax].menuAction = 3; + sUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA18; + sUnknown_203B2B0->unk34[loopMax].menuAction = 3; loopMax += 1; - gUnknown_203B2B0->unk34[loopMax].text = *gCommonInfo; - gUnknown_203B2B0->unk34[loopMax].menuAction = 2; + sUnknown_203B2B0->unk34[loopMax].text = *gCommonInfo; + sUnknown_203B2B0->unk34[loopMax].menuAction = 2; loopMax += 1; - gUnknown_203B2B0->unk34[loopMax].text = *gCommonCancel; - gUnknown_203B2B0->unk34[loopMax].menuAction = 1; + sUnknown_203B2B0->unk34[loopMax].text = *gCommonCancel; + sUnknown_203B2B0->unk34[loopMax].menuAction = 1; loopMax += 1; - gUnknown_203B2B0->unk34[loopMax].text = NULL; - gUnknown_203B2B0->unk34[loopMax].menuAction = 1; + sUnknown_203B2B0->unk34[loopMax].text = NULL; + sUnknown_203B2B0->unk34[loopMax].menuAction = 1; } static void sub_8024D48(void) @@ -410,27 +409,27 @@ static void sub_8024D48(void) s32 loopMax; loopMax = 0; - MemoryFill16(gUnknown_203B2B0->unk74, 0, sizeof(gUnknown_203B2B0->unk74)); - gUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA24; - gUnknown_203B2B0->unk34[loopMax].menuAction = 4; + MemoryFill16(sUnknown_203B2B0->unk74, 0, sizeof(sUnknown_203B2B0->unk74)); + sUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA24; + sUnknown_203B2B0->unk34[loopMax].menuAction = 4; loopMax += 1; - gUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA2C; - gUnknown_203B2B0->unk34[loopMax].menuAction = 5; + sUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA2C; + sUnknown_203B2B0->unk34[loopMax].menuAction = 5; loopMax += 1; - gUnknown_203B2B0->unk34[loopMax].text = *gCommonCancel; - gUnknown_203B2B0->unk34[loopMax].menuAction = 1; + sUnknown_203B2B0->unk34[loopMax].text = *gCommonCancel; + sUnknown_203B2B0->unk34[loopMax].menuAction = 1; loopMax += 1; - gUnknown_203B2B0->unk34[loopMax].text = NULL; - gUnknown_203B2B0->unk34[loopMax].menuAction = 1; + sUnknown_203B2B0->unk34[loopMax].text = NULL; + sUnknown_203B2B0->unk34[loopMax].menuAction = 1; for (index = 0; index < loopMax; index++) { - if (gUnknown_203B2B0->unk74[index] == 0) { - if (gUnknown_203B2B0->unk34[index].menuAction == gUnknown_203B2B0->menuAction2) + if (sUnknown_203B2B0->unk74[index] == 0) { + if (sUnknown_203B2B0->unk34[index].menuAction == sUnknown_203B2B0->menuAction2) return; } } - gUnknown_203B2B0->menuAction2 = 4; + sUnknown_203B2B0->menuAction2 = 4; } static void sub_8024DBC(void) @@ -439,29 +438,29 @@ static void sub_8024DBC(void) s32 loopMax; loopMax = 0; - MemoryFill16(gUnknown_203B2B0->unk74, 0, sizeof(gUnknown_203B2B0->unk74)); - gUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA24; - gUnknown_203B2B0->unk34[loopMax].menuAction = 4; + MemoryFill16(sUnknown_203B2B0->unk74, 0, sizeof(sUnknown_203B2B0->unk74)); + sUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA24; + sUnknown_203B2B0->unk34[loopMax].menuAction = 4; loopMax += 1; - gUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA2C; - gUnknown_203B2B0->unk34[loopMax].menuAction = 5; + sUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA2C; + sUnknown_203B2B0->unk34[loopMax].menuAction = 5; loopMax += 1; - gUnknown_203B2B0->unk34[loopMax].text = *gCommonCancel; - gUnknown_203B2B0->unk34[loopMax].menuAction = 1; + sUnknown_203B2B0->unk34[loopMax].text = *gCommonCancel; + sUnknown_203B2B0->unk34[loopMax].menuAction = 1; loopMax += 1; - gUnknown_203B2B0->unk34[loopMax].text = NULL; - gUnknown_203B2B0->unk34[loopMax].menuAction = 1; + sUnknown_203B2B0->unk34[loopMax].text = NULL; + sUnknown_203B2B0->unk34[loopMax].menuAction = 1; for(index = 0; index < loopMax; index++) { - if(gUnknown_203B2B0->unk74[index] == 0) + if(sUnknown_203B2B0->unk74[index] == 0) { - if(gUnknown_203B2B0->unk34[index].menuAction == gUnknown_203B2B0->menuAction2) + if(sUnknown_203B2B0->unk34[index].menuAction == sUnknown_203B2B0->menuAction2) return; } } - gUnknown_203B2B0->menuAction2 = 4; + sUnknown_203B2B0->menuAction2 = 4; } static void sub_8024E30(void) @@ -470,26 +469,26 @@ static void sub_8024E30(void) s32 loopMax; loopMax = 0; - MemoryFill16(gUnknown_203B2B0->unk74, 0, sizeof(gUnknown_203B2B0->unk74)); - gUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA2C; - gUnknown_203B2B0->unk34[loopMax].menuAction = 5; + MemoryFill16(sUnknown_203B2B0->unk74, 0, sizeof(sUnknown_203B2B0->unk74)); + sUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA2C; + sUnknown_203B2B0->unk34[loopMax].menuAction = 5; loopMax += 1; - gUnknown_203B2B0->unk34[loopMax].text = *gCommonInfo; - gUnknown_203B2B0->unk34[loopMax].menuAction = 2; + sUnknown_203B2B0->unk34[loopMax].text = *gCommonInfo; + sUnknown_203B2B0->unk34[loopMax].menuAction = 2; loopMax += 1; - gUnknown_203B2B0->unk34[loopMax].text = NULL; - gUnknown_203B2B0->unk34[loopMax].menuAction = 1; + sUnknown_203B2B0->unk34[loopMax].text = NULL; + sUnknown_203B2B0->unk34[loopMax].menuAction = 1; for(index = 0; index < loopMax; index++) { - if(gUnknown_203B2B0->unk74[index] == 0) + if(sUnknown_203B2B0->unk74[index] == 0) { - if(gUnknown_203B2B0->unk34[index].menuAction == gUnknown_203B2B0->menuAction3) + if(sUnknown_203B2B0->unk34[index].menuAction == sUnknown_203B2B0->menuAction3) return; } } - gUnknown_203B2B0->menuAction3 = 5; + sUnknown_203B2B0->menuAction3 = 5; } static void sub_8024E9C(void) @@ -497,7 +496,7 @@ static void sub_8024E9C(void) s32 menuAction; if(sub_80144A4(&menuAction) == 0) { - if(menuAction != 1) gUnknown_203B2B0->menuAction1 = menuAction; + if(menuAction != 1) sUnknown_203B2B0->menuAction1 = menuAction; switch(menuAction) { case 3: @@ -521,12 +520,12 @@ static void sub_8024F00(void) s32 menuAction; if(sub_80144A4(&menuAction) == 0) { - if(menuAction != 1) gUnknown_203B2B0->menuAction2 = menuAction; + if(menuAction != 1) sUnknown_203B2B0->menuAction2 = menuAction; switch(menuAction) { case 4: - gUnknown_203B2B0->evoItem1_InvIndex = INVENTORY_SIZE; - gUnknown_203B2B0->evoItem2_InvIndex = INVENTORY_SIZE; + sUnknown_203B2B0->evoItem1_InvIndex = INVENTORY_SIZE; + sUnknown_203B2B0->evoItem2_InvIndex = INVENTORY_SIZE; UpdateLuminousCaveState(LUMINOUS_CAVE_LET_US_BEGIN); break; case 5: @@ -547,7 +546,7 @@ static void sub_8024F70(void) s32 menuAction; if(sub_80144A4(&menuAction) == 0) { - if(menuAction != 1) gUnknown_203B2B0->menuAction2 = menuAction; + if(menuAction != 1) sUnknown_203B2B0->menuAction2 = menuAction; switch(menuAction) { case 4: @@ -571,13 +570,13 @@ static void sub_8024FD4(void) switch(sub_801A6E8(TRUE)) { case 3: - gUnknown_203B2B0->evoItem1_InvIndex = sub_801A8AC(); - gUnknown_203B2B0->evoItem2_InvIndex = INVENTORY_SIZE; - gUnknown_203B2B0->chosenItem = gTeamInventoryRef->teamItems[gUnknown_203B2B0->evoItem1_InvIndex]; + sUnknown_203B2B0->evoItem1_InvIndex = sub_801A8AC(); + sUnknown_203B2B0->evoItem2_InvIndex = INVENTORY_SIZE; + sUnknown_203B2B0->chosenItem = gTeamInventoryRef->teamItems[sUnknown_203B2B0->evoItem1_InvIndex]; UpdateLuminousCaveState(8); break; case 4: - gUnknown_203B2B0->chosenItem = gTeamInventoryRef->teamItems[sub_801A8AC()]; + sUnknown_203B2B0->chosenItem = gTeamInventoryRef->teamItems[sub_801A8AC()]; sub_8099690(0); UpdateLuminousCaveState(9); break; @@ -593,17 +592,17 @@ static void sub_8025058(void) switch(sub_801A6E8(TRUE)) { case 3: - if(gUnknown_203B2B0->evoItem1_InvIndex != sub_801A8AC()) + if(sUnknown_203B2B0->evoItem1_InvIndex != sub_801A8AC()) { - gUnknown_203B2B0->evoItem2_InvIndex = sub_801A8AC(); - gUnknown_203B2B0->chosenItem = gTeamInventoryRef->teamItems[gUnknown_203B2B0->evoItem2_InvIndex]; + sUnknown_203B2B0->evoItem2_InvIndex = sub_801A8AC(); + sUnknown_203B2B0->chosenItem = gTeamInventoryRef->teamItems[sUnknown_203B2B0->evoItem2_InvIndex]; UpdateLuminousCaveState(0xD); } else PlayMenuSoundEffect(2); break; case 4: - gUnknown_203B2B0->chosenItem = gTeamInventoryRef->teamItems[sub_801A8AC()]; + sUnknown_203B2B0->chosenItem = gTeamInventoryRef->teamItems[sub_801A8AC()]; sub_8099690(0); UpdateLuminousCaveState(0xE); break; @@ -620,10 +619,10 @@ static void sub_80250EC(void) menuAction = 0; sub_801A6E8(FALSE); - if(!sub_8012FD8(&gUnknown_203B2B0->unk84)) + if(!sub_8012FD8(&sUnknown_203B2B0->unk84)) { - sub_8013114(&gUnknown_203B2B0->unk84, &menuAction); - if(menuAction != 1) gUnknown_203B2B0->menuAction3 = menuAction; + sub_8013114(&sUnknown_203B2B0->unk84, &menuAction); + if(menuAction != 1) sUnknown_203B2B0->menuAction3 = menuAction; } switch(menuAction) { @@ -647,10 +646,10 @@ static void sub_802515C(void) menuAction = 0; sub_801A6E8(FALSE); - if(!sub_8012FD8(&gUnknown_203B2B0->unk84)) + if(!sub_8012FD8(&sUnknown_203B2B0->unk84)) { - sub_8013114(&gUnknown_203B2B0->unk84, &menuAction); - if(menuAction != 1) gUnknown_203B2B0->menuAction3 = menuAction; + sub_8013114(&sUnknown_203B2B0->unk84, &menuAction); + if(menuAction != 1) sUnknown_203B2B0->menuAction3 = menuAction; } switch(menuAction) { @@ -704,7 +703,7 @@ static void sub_8025204(void) { case 3: sub_80160D8(); - gUnknown_203B2B0->pokeRenamed = IsPokemonRenamed(gUnknown_203B2B0->pokeStruct); + sUnknown_203B2B0->pokeRenamed = IsPokemonRenamed(sUnknown_203B2B0->pokeStruct); UpdateLuminousCaveState(LUMINOUS_CAVE_SHALL_RETURN); break; default: @@ -717,27 +716,27 @@ static void LuminousCave_AdvancetoFallbackState(void) s32 temp; if(sub_80144A4(&temp) == 0) { - UpdateLuminousCaveState(gUnknown_203B2B0->fallbackState); + UpdateLuminousCaveState(sUnknown_203B2B0->fallbackState); } } static void sub_8025254(void) { - if(gUnknown_203B2B0->evoItem1_InvIndex == INVENTORY_SIZE) - gUnknown_203B2B0->evolveStatus.evoItem1 = 0; + if(sUnknown_203B2B0->evoItem1_InvIndex == INVENTORY_SIZE) + sUnknown_203B2B0->evolveStatus.evoItem1 = 0; else { - gUnknown_203B2B0->evolveStatus.evoItem1 = gTeamInventoryRef->teamItems[gUnknown_203B2B0->evoItem1_InvIndex].id; + sUnknown_203B2B0->evolveStatus.evoItem1 = gTeamInventoryRef->teamItems[sUnknown_203B2B0->evoItem1_InvIndex].id; } - if(gUnknown_203B2B0->evoItem2_InvIndex == INVENTORY_SIZE) - gUnknown_203B2B0->evolveStatus.evoItem2 = 0; + if(sUnknown_203B2B0->evoItem2_InvIndex == INVENTORY_SIZE) + sUnknown_203B2B0->evolveStatus.evoItem2 = 0; else { - gUnknown_203B2B0->evolveStatus.evoItem2 = gTeamInventoryRef->teamItems[gUnknown_203B2B0->evoItem2_InvIndex].id; + sUnknown_203B2B0->evolveStatus.evoItem2 = gTeamInventoryRef->teamItems[sUnknown_203B2B0->evoItem2_InvIndex].id; } - gUnknown_203B2B0->evolveStatus.unk6 = RandInt(0xFF); - sub_808F468(gUnknown_203B2B0->pokeStruct, &gUnknown_203B2B0->evolveStatus, 1); + sUnknown_203B2B0->evolveStatus.unk6 = RandInt(0xFF); + sub_808F468(sUnknown_203B2B0->pokeStruct, &sUnknown_203B2B0->evolveStatus, 1); } static bool8 LuminousCave_HasOnly1Member(void) diff --git a/src/mailbox.c b/src/mailbox.c index cfb612c92..6046d5810 100644 --- a/src/mailbox.c +++ b/src/mailbox.c @@ -1,4 +1,5 @@ #include "global.h" +#include "common_strings.h" #include "memory.h" #include "text1.h" #include "text2.h" @@ -60,9 +61,6 @@ const u8 gMailAccepted[] = "Accepted"; const u8 gUnknown_80E0324[] = "/"; static const u8 mailbox_fill[] = "pksdir0"; -extern u8 *gCommonAccept[]; -extern u8 *gCommonInfo[]; - extern bool8 IsMailinJobSlot(WonderMail *mail); void sub_802E578(void); diff --git a/src/makuhita_dojo1.c b/src/makuhita_dojo1.c index 6bd36e4ff..5c58af719 100644 --- a/src/makuhita_dojo1.c +++ b/src/makuhita_dojo1.c @@ -3,6 +3,7 @@ #include "code_80130A8.h" #include "code_801B60C.h" #include "code_80A26CC.h" +#include "common_strings.h" #include "constants/colors.h" #include "dungeon.h" #include "makuhita_dojo1.h" @@ -19,12 +20,7 @@ extern u8 gUnknown_202E5D8[]; static EWRAM_DATA_2 MakuhitaDojoWork1 *sMakuhitaDojoWork1 = {0}; -// common_strings.s -extern const u8 *gCommonCancel[]; -extern const u8 *gCommonInfo[]; -extern const u8 *gCommonMakuhita[2][10]; // 80D9FC8 - -#include "data/makuhita_dojo1.h" // 80E0760 +#include "data/makuhita_dojo1.h" static void MakuhitaDojo_DrawMainMenu(void); static void MakuhitaDojo_GoToFallbackState(void); diff --git a/src/menu_input.c b/src/menu_input.c index d6aacf95d..d53c636bf 100644 --- a/src/menu_input.c +++ b/src/menu_input.c @@ -12,7 +12,7 @@ #include "text2.h" #include "util.h" -// common_strings.s +// data_80D47B8.s extern const u8 gUnknown_80D4828[]; // text.s diff --git a/src/options_menu.c b/src/options_menu.c index 26ee54c46..a41b83eb3 100644 --- a/src/options_menu.c +++ b/src/options_menu.c @@ -2,6 +2,7 @@ #include "code_80118A4.h" #include "code_80130A8.h" #include "code_8098BDC.h" +#include "common_strings.h" #include "constants/colors.h" #include "constants/input.h" #include "game_options.h" @@ -51,8 +52,6 @@ extern const char gOthers_MenuOption[]; extern const char gUnknown_80DBFEC[]; extern const char gOthers_GameOptions[]; extern const char gOthers_Hints[]; -extern const char *gCommonYes[]; -extern const char *gCommonNo[]; extern s32 sub_8008ED0(u8 *); extern void CreateOthersMenu(void); diff --git a/src/party_list_menu.c b/src/party_list_menu.c index 1f5b17729..ed9548bbd 100644 --- a/src/party_list_menu.c +++ b/src/party_list_menu.c @@ -8,6 +8,7 @@ #include "code_801EE10_1.h" #include "code_801EE10_mid.h" #include "code_8098BDC.h" +#include "common_strings.h" #include "constants/dungeon.h" #include "event_flag.h" #include "items.h" @@ -52,12 +53,7 @@ extern u8 gUnknown_202DE58[0x58]; extern u8 gUnknown_202DEA8[0x58]; extern u8 gAvailablePokemonNames[0x58]; // 202DF98 -EWRAM_DATA_2 unkStruct_203B2B8 *gUnknown_203B2B8 = {0}; - -// common_strings.s -extern const u8 *gCommonYes[]; -extern const u8 *gCommonNo[]; -extern const u8 *gCommonInfo[]; +static EWRAM_DATA_2 unkStruct_203B2B8 *sUnknown_203B2B8 = {0}; #include "data/party_list_menu.h" @@ -105,27 +101,27 @@ u32 sub_8025EF4(PokemonStruct1 *pokeStruct) { s32 i; - gUnknown_203B2B8 = MemoryAlloc(sizeof(unkStruct_203B2B8), 8); - gUnknown_203B2B8->pokeStruct = pokeStruct; + sUnknown_203B2B8 = MemoryAlloc(sizeof(unkStruct_203B2B8), 8); + sUnknown_203B2B8->pokeStruct = pokeStruct; for (i = 0; i < NUM_MONSTERS; i++) { - if (gUnknown_203B2B8->pokeStruct == &gRecruitedPokemonRef->pokemon[(s16)i]) { - gUnknown_203B2B8->pokeSpecies = i; + if (sUnknown_203B2B8->pokeStruct == &gRecruitedPokemonRef->pokemon[(s16)i]) { + sUnknown_203B2B8->pokeSpecies = i; break; } } - gUnknown_203B2B8->menuAction1 = 0; - gUnknown_203B2B8->menuAction2 = 0; - gUnknown_203B2B8->menuAction3 = 0; - gUnknown_203B2B8->unk8 = FALSE; + sUnknown_203B2B8->menuAction1 = 0; + sUnknown_203B2B8->menuAction2 = 0; + sUnknown_203B2B8->menuAction3 = 0; + sUnknown_203B2B8->unk8 = FALSE; sub_8026074(0); return TRUE; } u32 sub_8025F68(void) { - switch (gUnknown_203B2B8->state) { + switch (sUnknown_203B2B8->state) { case 0: sub_8026074(1); break; @@ -176,21 +172,21 @@ u32 sub_8025F68(void) bool8 sub_802604C(void) { - return gUnknown_203B2B8->unk8; + return sUnknown_203B2B8->unk8; } void sub_8026058(void) { - if(gUnknown_203B2B8) + if(sUnknown_203B2B8) { - MemoryFree(gUnknown_203B2B8); - gUnknown_203B2B8 = NULL; + MemoryFree(sUnknown_203B2B8); + sUnknown_203B2B8 = NULL; } } void sub_8026074(s32 newState) { - gUnknown_203B2B8->state = newState; + sUnknown_203B2B8->state = newState; sub_802608C(); sub_80261D0(); } @@ -198,65 +194,65 @@ void sub_8026074(s32 newState) void sub_802608C(void) { s32 index; - sub_8006518(gUnknown_203B2B8->unk220); - switch(gUnknown_203B2B8->state) + sub_8006518(sUnknown_203B2B8->unk220); + switch(sUnknown_203B2B8->state) { case 1: case 2: for(index = 0; index < 4; index++) { - gUnknown_203B2B8->unk220[index] = sUnknown_80DD310; + sUnknown_203B2B8->unk220[index] = sUnknown_80DD310; } - gUnknown_203B2B8->unk220[0] = sUnknown_80DD358; - gUnknown_203B2B8->unk220[3] = sUnknown_80DD370; + sUnknown_203B2B8->unk220[0] = sUnknown_80DD358; + sUnknown_203B2B8->unk220[3] = sUnknown_80DD370; sub_80264CC(); - gUnknown_203B2B8->unk220[2] = sUnknown_80DD328; - sub_8012CAC(&gUnknown_203B2B8->unk220[2], gUnknown_203B2B8->unk16C); - gUnknown_203B2B8->unk220[2].unkC = 9; + sUnknown_203B2B8->unk220[2] = sUnknown_80DD328; + sub_8012CAC(&sUnknown_203B2B8->unk220[2], sUnknown_203B2B8->unk16C); + sUnknown_203B2B8->unk220[2].unkC = 9; break; case 0x14: sub_802678C(); - gUnknown_203B2B8->unk220[2] = sUnknown_80DD340; - sub_8012CAC(&gUnknown_203B2B8->unk220[2], gUnknown_203B2B8->unk16C); + sUnknown_203B2B8->unk220[2] = sUnknown_80DD340; + sub_8012CAC(&sUnknown_203B2B8->unk220[2], sUnknown_203B2B8->unk16C); break; default: for(index = 0; index < 4; index++) { - gUnknown_203B2B8->unk220[index] = sUnknown_80DD310; + sUnknown_203B2B8->unk220[index] = sUnknown_80DD310; } break; } ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2B8->unk220, TRUE, TRUE); + sub_800641C(sUnknown_203B2B8->unk220, TRUE, TRUE); } void sub_80261D0(void) { Item item; - switch(gUnknown_203B2B8->state) { + switch(sUnknown_203B2B8->state) { case 1: sub_8026E08(3); - sub_8026DAC(0,&gUnknown_203B2B8->item2); - PrintColoredPokeNameToBuffer(gAvailablePokemonNames,gUnknown_203B2B8->pokeStruct,7); - PrintColoredPokeNameToBuffer(gAvailablePokemonNames + 0x50,gUnknown_203B2B8->pokeStruct,6); - sub_8012D60(&gUnknown_203B2B8->unk7C,gUnknown_203B2B8->unk16C,0,gUnknown_203B2B8->unk20C,gUnknown_203B2B8->menuAction1,2); + sub_8026DAC(0,&sUnknown_203B2B8->item2); + PrintColoredPokeNameToBuffer(gAvailablePokemonNames,sUnknown_203B2B8->pokeStruct,7); + PrintColoredPokeNameToBuffer(gAvailablePokemonNames + 0x50,sUnknown_203B2B8->pokeStruct,6); + sub_8012D60(&sUnknown_203B2B8->unk7C,sUnknown_203B2B8->unk16C,0,sUnknown_203B2B8->unk20C,sUnknown_203B2B8->menuAction1,2); break; case 2: sub_8026E08(3); - sub_8026DAC(0,&gUnknown_203B2B8->item2); - PrintColoredPokeNameToBuffer(gAvailablePokemonNames,gUnknown_203B2B8->pokeStruct,7); - PrintColoredPokeNameToBuffer(gAvailablePokemonNames + 0x50,gUnknown_203B2B8->pokeStruct,6); - sub_8012EA4(&gUnknown_203B2B8->unk7C,1); + sub_8026DAC(0,&sUnknown_203B2B8->item2); + PrintColoredPokeNameToBuffer(gAvailablePokemonNames,sUnknown_203B2B8->pokeStruct,7); + PrintColoredPokeNameToBuffer(gAvailablePokemonNames + 0x50,sUnknown_203B2B8->pokeStruct,6); + sub_8012EA4(&sUnknown_203B2B8->unk7C,1); break; case 3: - sub_8024458(gUnknown_203B2B8->pokeSpecies,2); + sub_8024458(sUnknown_203B2B8->pokeSpecies,2); break; case 4: - sub_801BEEC(gUnknown_203B2B8->pokeSpecies); + sub_801BEEC(sUnknown_203B2B8->pokeSpecies); break; case 0xe: - sub_80227B8(gUnknown_203B2B8->pokeStruct); + sub_80227B8(sUnknown_203B2B8->pokeStruct); break; case 0x12: sub_801A5D8(1,0,NULL,10); @@ -266,74 +262,74 @@ void sub_80261D0(void) break; case 0x14: sub_801A9E0(); - sub_8012D60(&gUnknown_203B2B8->unkCC,gUnknown_203B2B8->unk16C,0,gUnknown_203B2B8->unk20C,gUnknown_203B2B8->menuAction2,2); + sub_8012D60(&sUnknown_203B2B8->unkCC,sUnknown_203B2B8->unk16C,0,sUnknown_203B2B8->unk20C,sUnknown_203B2B8->menuAction2,2); break; case 0x15: - HeldItemToSlot(&item,&gUnknown_203B2B8->item1); + HeldItemToSlot(&item,&sUnknown_203B2B8->item1); sub_801B3C0(&item); break; case 0x16: - unk_CopyMoves4To8(gUnknown_203B2B8->moves,gUnknown_203B2B8->pokeStruct->moves); - sub_801EE10(3,gUnknown_203B2B8->pokeSpecies,gUnknown_203B2B8->moves,0,NULL,0); + unk_CopyMoves4To8(sUnknown_203B2B8->moves,sUnknown_203B2B8->pokeStruct->moves); + sub_801EE10(3,sUnknown_203B2B8->pokeSpecies,sUnknown_203B2B8->moves,0,NULL,0); break; case 0x17: sub_801F1B0(TRUE, FALSE); break; case 0xc: sub_8026878(); - sub_8014248(sUnknown_80DD388,0,3,gUnknown_203B2B8->unk1BC,0,4,0,0,0x101); + sub_8014248(sUnknown_80DD388,0,3,sUnknown_203B2B8->unk1BC,0,4,0,0,0x101); break; case 0xd: sub_8026878(); - sub_8014248(sUnknown_80DD420,0,3,gUnknown_203B2B8->unk1BC,0,4,0,0,0x101); + sub_8014248(sUnknown_80DD420,0,3,sUnknown_203B2B8->unk1BC,0,4,0,0,0x101); break; case 0x18: - GetLinkedSequence(gUnknown_203B2B8->moveIndex, gUnknown_203B2B8->moves,gUnknown_203B2B8->moveIDs); - sub_801F808(gUnknown_203B2B8->moveIDs); + GetLinkedSequence(sUnknown_203B2B8->moveIndex, sUnknown_203B2B8->moves,sUnknown_203B2B8->moveIDs); + sub_801F808(sUnknown_203B2B8->moveIDs); break; case 5: - gUnknown_203B2B8->fallbackState = 0x19; + sUnknown_203B2B8->fallbackState = 0x19; PlaySound(0xcf); sub_80141B4(sUnknown_80DD4C4,0,0,0x101); break; case 6: - gUnknown_203B2B8->fallbackState = 0x19; + sUnknown_203B2B8->fallbackState = 0x19; PlaySound(0xcf); sub_80141B4(sUnknown_80DD4F4,0,0,0x101); break; case 7: - gUnknown_203B2B8->fallbackState = 0x19; + sUnknown_203B2B8->fallbackState = 0x19; PlaySound(0xcc); sub_80141B4(sBecameLeader,0,0,0x101); break; case 8: - gUnknown_203B2B8->fallbackState = 9; + sUnknown_203B2B8->fallbackState = 9; PlaySound(0xca); sub_80141B4(sUnknown_80DD564,0,0,0x101); break; case 9: sub_8026FA4(); - sub_808D31C(gUnknown_203B2B8->pokeStruct); - gUnknown_203B2B8->unk8 = TRUE; + sub_808D31C(sUnknown_203B2B8->pokeStruct); + sUnknown_203B2B8->unk8 = TRUE; break; case 0xf: - gUnknown_203B2B8->fallbackState = 2; + sUnknown_203B2B8->fallbackState = 2; sub_80141B4(sUnknown_80DD594,0,0,0x101); break; case 0x10: - gUnknown_203B2B8->fallbackState = 2; + sUnknown_203B2B8->fallbackState = 2; sub_80141B4(sUnknown_80DD5B8,0,0,0x101); break; case 0x11: - gUnknown_203B2B8->fallbackState = 2; + sUnknown_203B2B8->fallbackState = 2; sub_80141B4(sUnknown_80DD60C,0,0,0x101); break; case 10: - gUnknown_203B2B8->fallbackState = 0x19; + sUnknown_203B2B8->fallbackState = 0x19; sub_80141B4(sUnknown_80DD60C,0,0,0x101); break; case 0xb: - gUnknown_203B2B8->fallbackState = 0x19; + sUnknown_203B2B8->fallbackState = 0x19; sub_80141B4(sUnknown_80DD63C,0,0,0x101); break; case 0: @@ -348,100 +344,100 @@ void sub_80264CC(void) { s32 one; u16 temp; s32 loopMax = 0; - pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_203B2B8->pokeSpecies]; - MemoryFill16(gUnknown_203B2B8->unk20C, 0, sizeof(gUnknown_203B2B8->unk20C)); - gUnknown_203B2B8->isTeamLeader = gUnknown_203B2B8->pokeStruct->isTeamLeader; + pokeStruct = &gRecruitedPokemonRef->pokemon[sUnknown_203B2B8->pokeSpecies]; + MemoryFill16(sUnknown_203B2B8->unk20C, 0, sizeof(sUnknown_203B2B8->unk20C)); + sUnknown_203B2B8->isTeamLeader = sUnknown_203B2B8->pokeStruct->isTeamLeader; - PeekPokemonItem(gUnknown_203B2B8->pokeSpecies, &gUnknown_203B2B8->item2); + PeekPokemonItem(sUnknown_203B2B8->pokeSpecies, &sUnknown_203B2B8->item2); if(temp = pokeStruct->unk0 >> 1, one = 1, temp & one) { - gUnknown_203B2B8->unk16C[loopMax].text = sPartyMenuStandBy; - gUnknown_203B2B8->unk16C[loopMax].menuAction = 7; + sUnknown_203B2B8->unk16C[loopMax].text = sPartyMenuStandBy; + sUnknown_203B2B8->unk16C[loopMax].menuAction = 7; if(!sub_8026E88(pokeStruct)) { - gUnknown_203B2B8->unk20C[loopMax] = 1; + sUnknown_203B2B8->unk20C[loopMax] = 1; } loopMax += 1; if(sub_80023E4(8) && !pokeStruct->isTeamLeader) { - gUnknown_203B2B8->unk16C[loopMax].text = sPartyMenuMakeLeader; - gUnknown_203B2B8->unk16C[loopMax].menuAction = 8; + sUnknown_203B2B8->unk16C[loopMax].text = sPartyMenuMakeLeader; + sUnknown_203B2B8->unk16C[loopMax].menuAction = 8; loopMax += 1; } } else { - gUnknown_203B2B8->unk16C[loopMax].text = sPartyMenuJoinTeam; - gUnknown_203B2B8->unk16C[loopMax].menuAction = 6; - if(!sub_808D750(gUnknown_203B2B8->pokeSpecies)) + sUnknown_203B2B8->unk16C[loopMax].text = sPartyMenuJoinTeam; + sUnknown_203B2B8->unk16C[loopMax].menuAction = 6; + if(!sub_808D750(sUnknown_203B2B8->pokeSpecies)) { - gUnknown_203B2B8->unk20C[loopMax] = 1; + sUnknown_203B2B8->unk20C[loopMax] = 1; } loopMax += 1; } - gUnknown_203B2B8->unk16C[loopMax].text = sPartyMenuGiveGummi; - gUnknown_203B2B8->unk16C[loopMax].menuAction = 10; + sUnknown_203B2B8->unk16C[loopMax].text = sPartyMenuGiveGummi; + sUnknown_203B2B8->unk16C[loopMax].menuAction = 10; if(!HasGummiItem()) { - gUnknown_203B2B8->unk20C[loopMax] = 1; + sUnknown_203B2B8->unk20C[loopMax] = 1; } loopMax += 1; - gUnknown_203B2B8->unk16C[loopMax].text = sPartyMenuGive; - gUnknown_203B2B8->unk16C[loopMax].menuAction = 0xB; + sUnknown_203B2B8->unk16C[loopMax].text = sPartyMenuGive; + sUnknown_203B2B8->unk16C[loopMax].menuAction = 0xB; if(GetNumberOfFilledInventorySlots() == 0) { - gUnknown_203B2B8->unk20C[loopMax] = 1; + sUnknown_203B2B8->unk20C[loopMax] = 1; } loopMax += 1; - gUnknown_203B2B8->unk16C[loopMax].text = sPartyMenuTake; - gUnknown_203B2B8->unk16C[loopMax].menuAction = 0xC; - if(GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE || gUnknown_203B2B8->item2.id == ITEM_NOTHING) + sUnknown_203B2B8->unk16C[loopMax].text = sPartyMenuTake; + sUnknown_203B2B8->unk16C[loopMax].menuAction = 0xC; + if(GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE || sUnknown_203B2B8->item2.id == ITEM_NOTHING) { - gUnknown_203B2B8->unk20C[loopMax] = 1; + sUnknown_203B2B8->unk20C[loopMax] = 1; } loopMax += 1; if((temp = pokeStruct->unk0 >> 1, one = 1, temp & one) == 0) { - gUnknown_203B2B8->unk16C[loopMax].text = sPartyMenuSayFarewell; - gUnknown_203B2B8->unk16C[loopMax].menuAction = 9; + sUnknown_203B2B8->unk16C[loopMax].text = sPartyMenuSayFarewell; + sUnknown_203B2B8->unk16C[loopMax].menuAction = 9; if(!sub_8026EB8(pokeStruct)) { - gUnknown_203B2B8->unk20C[loopMax] = 1; + sUnknown_203B2B8->unk20C[loopMax] = 1; } loopMax += 1; } - gUnknown_203B2B8->unk16C[loopMax].text = sPartyMenuSummary; - gUnknown_203B2B8->unk16C[loopMax].menuAction = 4; + sUnknown_203B2B8->unk16C[loopMax].text = sPartyMenuSummary; + sUnknown_203B2B8->unk16C[loopMax].menuAction = 4; loopMax += 1; - gUnknown_203B2B8->unk16C[loopMax].text = sPartyMenuMoves; - gUnknown_203B2B8->unk16C[loopMax].menuAction = 0xD; + sUnknown_203B2B8->unk16C[loopMax].text = sPartyMenuMoves; + sUnknown_203B2B8->unk16C[loopMax].menuAction = 0xD; loopMax += 1; - gUnknown_203B2B8->unk16C[loopMax].text = sPartyMenuCheckIQ; - gUnknown_203B2B8->unk16C[loopMax].menuAction = 5; + sUnknown_203B2B8->unk16C[loopMax].text = sPartyMenuCheckIQ; + sUnknown_203B2B8->unk16C[loopMax].menuAction = 5; loopMax += 1; - gUnknown_203B2B8->unk16C[loopMax].text = NULL; - gUnknown_203B2B8->unk16C[loopMax].menuAction = 1; + sUnknown_203B2B8->unk16C[loopMax].text = NULL; + sUnknown_203B2B8->unk16C[loopMax].menuAction = 1; for(index = 0; index < loopMax; index++) { - if(gUnknown_203B2B8->unk20C[index] == 0) + if(sUnknown_203B2B8->unk20C[index] == 0) { - if(gUnknown_203B2B8->unk16C[index].menuAction == gUnknown_203B2B8->menuAction1) + if(sUnknown_203B2B8->unk16C[index].menuAction == sUnknown_203B2B8->menuAction1) return; } } for(index = 0; index < loopMax; index++) { - if(gUnknown_203B2B8->unk20C[index] == 0) + if(sUnknown_203B2B8->unk20C[index] == 0) { - gUnknown_203B2B8->menuAction1 = gUnknown_203B2B8->unk16C[index].menuAction; + sUnknown_203B2B8->menuAction1 = sUnknown_203B2B8->unk16C[index].menuAction; break; } } @@ -451,33 +447,33 @@ void sub_802678C(void) { s32 index; s32 loopMax = 0; - MemoryFill16(gUnknown_203B2B8->unk20C, 0, sizeof(gUnknown_203B2B8->unk20C)); - gUnknown_203B2B8->unk16C[loopMax].text = sPartyMenuGive; - gUnknown_203B2B8->unk16C[loopMax].menuAction = 0xB; + MemoryFill16(sUnknown_203B2B8->unk20C, 0, sizeof(sUnknown_203B2B8->unk20C)); + sUnknown_203B2B8->unk16C[loopMax].text = sPartyMenuGive; + sUnknown_203B2B8->unk16C[loopMax].menuAction = 0xB; if(GetNumberOfFilledInventorySlots() == 0) { - gUnknown_203B2B8->unk20C[0] = 1; + sUnknown_203B2B8->unk20C[0] = 1; } loopMax += 1; - gUnknown_203B2B8->unk16C[loopMax].text = *gCommonInfo; - gUnknown_203B2B8->unk16C[loopMax].menuAction = 4; + sUnknown_203B2B8->unk16C[loopMax].text = *gCommonInfo; + sUnknown_203B2B8->unk16C[loopMax].menuAction = 4; loopMax += 1; - gUnknown_203B2B8->unk16C[loopMax].text = NULL; - gUnknown_203B2B8->unk16C[loopMax].menuAction = 1; + sUnknown_203B2B8->unk16C[loopMax].text = NULL; + sUnknown_203B2B8->unk16C[loopMax].menuAction = 1; for(index = 0; index < loopMax; index++) { - if(gUnknown_203B2B8->unk20C[index] == 0) + if(sUnknown_203B2B8->unk20C[index] == 0) { - if(gUnknown_203B2B8->unk16C[index].menuAction == gUnknown_203B2B8->menuAction2) + if(sUnknown_203B2B8->unk16C[index].menuAction == sUnknown_203B2B8->menuAction2) return; } } for(index = 0; index < loopMax; index++) { - if(gUnknown_203B2B8->unk20C[index] == 0) + if(sUnknown_203B2B8->unk20C[index] == 0) { - gUnknown_203B2B8->menuAction2 = gUnknown_203B2B8->unk16C[index].menuAction; + sUnknown_203B2B8->menuAction2 = sUnknown_203B2B8->unk16C[index].menuAction; break; } } @@ -485,14 +481,14 @@ void sub_802678C(void) void sub_8026878(void) { s32 loopMax = 0; - gUnknown_203B2B8->unk1BC[loopMax].text = *gCommonYes; - gUnknown_203B2B8->unk1BC[loopMax].menuAction = 2; + sUnknown_203B2B8->unk1BC[loopMax].text = *gCommonYes; + sUnknown_203B2B8->unk1BC[loopMax].menuAction = 2; loopMax += 1; - gUnknown_203B2B8->unk1BC[loopMax].text = *gCommonNo; - gUnknown_203B2B8->unk1BC[loopMax].menuAction = 3; + sUnknown_203B2B8->unk1BC[loopMax].text = *gCommonNo; + sUnknown_203B2B8->unk1BC[loopMax].menuAction = 3; loopMax += 1; - gUnknown_203B2B8->unk1BC[loopMax].text = NULL; - gUnknown_203B2B8->unk1BC[loopMax].menuAction = 1; + sUnknown_203B2B8->unk1BC[loopMax].text = NULL; + sUnknown_203B2B8->unk1BC[loopMax].menuAction = 1; } void sub_80268CC(void) @@ -503,17 +499,17 @@ void sub_80268CC(void) s32 choice; choice = 0; - if ((sub_8012FD8(&gUnknown_203B2B8->unk7C) == 0) && (sub_8013114(&gUnknown_203B2B8->unk7C,&choice), choice != 1)) { - gUnknown_203B2B8->menuAction1 = choice; + if ((sub_8012FD8(&sUnknown_203B2B8->unk7C) == 0) && (sub_8013114(&sUnknown_203B2B8->unk7C,&choice), choice != 1)) { + sUnknown_203B2B8->menuAction1 = choice; } switch(choice) { case 6: - if (sub_808D750(gUnknown_203B2B8->pokeSpecies)) { + if (sub_808D750(sUnknown_203B2B8->pokeSpecies)) { #ifdef NONMATCHING - pokeStruct = &gUnknown_203B2B8->pokeSpecies[gRecruitedPokemonRef->pokemon]; + pokeStruct = &sUnknown_203B2B8->pokeSpecies[gRecruitedPokemonRef->pokemon]; #else - register size_t offset asm("r1") = offsetof(unkStruct_203B45C, pokemon[gUnknown_203B2B8->pokeSpecies]); + register size_t offset asm("r1") = offsetof(unkStruct_203B45C, pokemon[sUnknown_203B2B8->pokeSpecies]); PokemonStruct1* p = gRecruitedPokemonRef->pokemon; size_t addr = offset + (size_t)p; pokeStruct = (PokemonStruct1*)addr; @@ -526,13 +522,13 @@ void sub_80268CC(void) sub_8026074(5); break; case 7: - gUnknown_203B2B8->pokeStruct->unk0 &= ~(FLAG_ON_TEAM); + sUnknown_203B2B8->pokeStruct->unk0 &= ~(FLAG_ON_TEAM); nullsub_104(); sub_808ED00(); sub_8026074(6); break; case 8: - pokeStruct2 = &gRecruitedPokemonRef->pokemon[gUnknown_203B2B8->pokeSpecies]; + pokeStruct2 = &gRecruitedPokemonRef->pokemon[sUnknown_203B2B8->pokeSpecies]; playerPokemon = GetPlayerPokemonStruct(); if (!pokeStruct2->isTeamLeader) { @@ -557,13 +553,13 @@ void sub_80268CC(void) break; case 0xc: PlaySound(0x14d); - if (gUnknown_203B2B8->item2.id != ITEM_NOTHING) { - AddHeldItemToInventory(&gUnknown_203B2B8->item2); + if (sUnknown_203B2B8->item2.id != ITEM_NOTHING) { + AddHeldItemToInventory(&sUnknown_203B2B8->item2); } FillInventoryGaps(); - gUnknown_203B2B8->item2.id = ITEM_NOTHING; - gUnknown_203B2B8->item2.quantity = 0; - GivePokemonItem(gUnknown_203B2B8->pokeSpecies,&gUnknown_203B2B8->item2); + sUnknown_203B2B8->item2.id = ITEM_NOTHING; + sUnknown_203B2B8->item2.quantity = 0; + GivePokemonItem(sUnknown_203B2B8->pokeSpecies,&sUnknown_203B2B8->item2); nullsub_104(); sub_8026074(0x11); break; @@ -612,7 +608,7 @@ void sub_8026A94(void) static inline bool8 sub_8026AB0_sub(void) { - if (gUnknown_203B2B8->pokeStruct->dungeonLocation.id == DUNGEON_HOWLING_FOREST_2 || gUnknown_203B2B8->pokeStruct->dungeonLocation.id == DUNGEON_POKEMON_SQUARE) + if (sUnknown_203B2B8->pokeStruct->dungeonLocation.id == DUNGEON_HOWLING_FOREST_2 || sUnknown_203B2B8->pokeStruct->dungeonLocation.id == DUNGEON_POKEMON_SQUARE) return TRUE; else return FALSE; @@ -679,15 +675,15 @@ void sub_8026B64(void) switch(sub_801A6E8(TRUE)) { case 3: - gUnknown_203B2B8->id = sub_801A8AC(); - gUnknown_203B2B8->item1.id = gTeamInventoryRef->teamItems[gUnknown_203B2B8->id].id; - gUnknown_203B2B8->item1.quantity = gTeamInventoryRef->teamItems[gUnknown_203B2B8->id].quantity; + sUnknown_203B2B8->id = sub_801A8AC(); + sUnknown_203B2B8->item1.id = gTeamInventoryRef->teamItems[sUnknown_203B2B8->id].id; + sUnknown_203B2B8->item1.quantity = gTeamInventoryRef->teamItems[sUnknown_203B2B8->id].quantity; sub_8026074(0x14); break; case 4: - gUnknown_203B2B8->id = sub_801A8AC(); - gUnknown_203B2B8->item1.id = gTeamInventoryRef->teamItems[gUnknown_203B2B8->id].id; - gUnknown_203B2B8->item1.quantity = gTeamInventoryRef->teamItems[gUnknown_203B2B8->id].quantity; + sUnknown_203B2B8->id = sub_801A8AC(); + sUnknown_203B2B8->item1.id = gTeamInventoryRef->teamItems[sUnknown_203B2B8->id].id; + sUnknown_203B2B8->item1.quantity = gTeamInventoryRef->teamItems[sUnknown_203B2B8->id].quantity; sub_8099690(0); sub_8026074(0x15); break; @@ -710,27 +706,27 @@ void sub_8026C14(void) menuAction = 0; sub_801A6E8(FALSE); - if ((sub_8012FD8(&gUnknown_203B2B8->unkCC) == '\0') && (sub_8013114(&gUnknown_203B2B8->unkCC,&menuAction), menuAction != 1)) { - gUnknown_203B2B8->menuAction2 = menuAction; + if ((sub_8012FD8(&sUnknown_203B2B8->unkCC) == '\0') && (sub_8013114(&sUnknown_203B2B8->unkCC,&menuAction), menuAction != 1)) { + sUnknown_203B2B8->menuAction2 = menuAction; } switch(menuAction) { case 0xb: nextState = 0xF; PlaySound(0x14d); - ShiftItemsDownFrom(gUnknown_203B2B8->id); + ShiftItemsDownFrom(sUnknown_203B2B8->id); FillInventoryGaps(); - if (gUnknown_203B2B8->item2.id != ITEM_NOTHING) { - AddHeldItemToInventory(&gUnknown_203B2B8->item2); + if (sUnknown_203B2B8->item2.id != ITEM_NOTHING) { + AddHeldItemToInventory(&sUnknown_203B2B8->item2); nextState = 0x10; } - HeldItemToSlot(&slot,&gUnknown_203B2B8->item1); + HeldItemToSlot(&slot,&sUnknown_203B2B8->item1); temp.unk0 = 0; temp.unk4 = 0; temp.unk8 = 1; slot.flags = ITEM_FLAG_EXISTS; sub_8090E14(gUnknown_202DEA8,&slot,&temp); - GivePokemonItem(gUnknown_203B2B8->pokeSpecies,&gUnknown_203B2B8->item1); + GivePokemonItem(sUnknown_203B2B8->pokeSpecies,&sUnknown_203B2B8->item1); sub_801A928(); nullsub_104(); sub_8026074(nextState); @@ -770,8 +766,8 @@ void sub_8026D0C(void) break; case 3: case 4: - gUnknown_203B2B8->moveIndex = sub_801F194(); - gUnknown_203B2B8->moveID = gUnknown_203B2B8->moves[gUnknown_203B2B8->moveIndex].id; + sUnknown_203B2B8->moveIndex = sub_801F194(); + sUnknown_203B2B8->moveID = sUnknown_203B2B8->moves[sUnknown_203B2B8->moveIndex].id; sub_8026074(0x18); break; case 2: @@ -801,7 +797,7 @@ void sub_8026D88(void) s32 temp; if(sub_80144A4(&temp) == 0) { - sub_8026074(gUnknown_203B2B8->fallbackState); + sub_8026074(sUnknown_203B2B8->fallbackState); } } @@ -830,8 +826,8 @@ void sub_8026E08(u32 r0) sub_8008C54(r0); sub_80073B8(r0); - sub_80922B4(gAvailablePokemonNames, gUnknown_203B2B8->pokeStruct->name, POKEMON_NAME_LENGTH); - sub_808D930(buffer, gUnknown_203B2B8->pokeStruct->speciesNum); + sub_80922B4(gAvailablePokemonNames, sUnknown_203B2B8->pokeStruct->name, POKEMON_NAME_LENGTH); + sub_808D930(buffer, sUnknown_203B2B8->pokeStruct->speciesNum); sprintfStatic(buffer1, sUnknown_80DD6E0, gAvailablePokemonNames); x = sub_8008ED0(buffer1); xxx_call_draw_string(((sUnknown_80DD370.unkC << 3) - x) / 2, 3, buffer1, r0, 0); @@ -909,31 +905,31 @@ bool8 CanTakePokemonHeldItem(PokemonStruct1 *r0) void sub_8026FA4(void) { - switch(sub_8026F04(gUnknown_203B2B8->pokeStruct)) + switch(sub_8026F04(sUnknown_203B2B8->pokeStruct)) { case 1: PlaySound(0x14d); - AddHeldItemToInventory(&gUnknown_203B2B8->item2); + AddHeldItemToInventory(&sUnknown_203B2B8->item2); FillInventoryGaps(); - gUnknown_203B2B8->item2.id = ITEM_NOTHING; - gUnknown_203B2B8->item2.quantity = 0; - GivePokemonItem(gUnknown_203B2B8->pokeSpecies, &gUnknown_203B2B8->item2); + sUnknown_203B2B8->item2.id = ITEM_NOTHING; + sUnknown_203B2B8->item2.quantity = 0; + GivePokemonItem(sUnknown_203B2B8->pokeSpecies, &sUnknown_203B2B8->item2); sub_8026074(0xA); break; case 2: PlaySound(0x14d); - if(IsThrowableItem(gUnknown_203B2B8->item2.id)) + if(IsThrowableItem(sUnknown_203B2B8->item2.id)) { - gTeamInventoryRef->teamStorage[gUnknown_203B2B8->item2.id] += gUnknown_203B2B8->item2.quantity; + gTeamInventoryRef->teamStorage[sUnknown_203B2B8->item2.id] += sUnknown_203B2B8->item2.quantity; } else { - gTeamInventoryRef->teamStorage[gUnknown_203B2B8->item2.id] += 1; + gTeamInventoryRef->teamStorage[sUnknown_203B2B8->item2.id] += 1; } - gUnknown_203B2B8->item2.id = ITEM_NOTHING; - gUnknown_203B2B8->item2.quantity = 0; - GivePokemonItem(gUnknown_203B2B8->pokeSpecies, &gUnknown_203B2B8->item2); + sUnknown_203B2B8->item2.id = ITEM_NOTHING; + sUnknown_203B2B8->item2.quantity = 0; + GivePokemonItem(sUnknown_203B2B8->pokeSpecies, &sUnknown_203B2B8->item2); sub_8026074(0xB); break; case 0: diff --git a/src/pelipper_board.c b/src/pelipper_board.c index 768fc8590..56d79e814 100644 --- a/src/pelipper_board.c +++ b/src/pelipper_board.c @@ -9,7 +9,7 @@ #include "input.h" #include "wonder_mail.h" #include "menu_input.h" - +#include "common_strings.h" #include "pelipper_board.h" #include "code_80118A4.h" @@ -97,9 +97,6 @@ extern u8 sub_802C26C(void); extern u8 HasNoAcceptedJobs(void); extern bool8 IsMailinJobSlot(WonderMail *mail); -extern u8 *gCommonAccept[]; -extern u8 *gCommonInfo[]; - void SetPelipperBoardState(u32); u32 sub_802E864(void) diff --git a/src/wigglytuff_shop.c b/src/wigglytuff_shop.c index 81b0fb5e6..e4ab8617b 100644 --- a/src/wigglytuff_shop.c +++ b/src/wigglytuff_shop.c @@ -21,13 +21,14 @@ #include "code_800D090.h" #include "event_flag.h" #include "exclusive_pokemon.h" +#include "common_strings.h" // TODO: This file was originally 3 files. Split properly // 4 files if you count code_8023144.s // split1 -struct unkStruct_203B280 +typedef struct unkStruct_203B280 { /* 0x0 */ u8 friendAreas[NUM_FRIEND_AREAS]; /* 0x3C */ u32 mode; @@ -36,15 +37,15 @@ struct unkStruct_203B280 UnkTextStruct2 *unk78; UnkTextStruct2 unk7C[4]; u8 unkDC[4]; -}; -EWRAM_DATA_2 struct unkStruct_203B280 *gUnknown_203B280 = {0}; +} unkStruct_203B280; +EWRAM_DATA_2 unkStruct_203B280 *gUnknown_203B280 = {0}; EWRAM_DATA_2 u32 gUnknown_203B284 = {0}; EWRAM_DATA_2 u16 gUnknown_203B288 = {0}; EWRAM_DATA_2 u16 gUnknown_203B28A = {0}; // split2 -struct unkStruct_203B28C +typedef struct unkStruct_203B28C { MenuInputStructSub unk0; /* 0xC */ u8 friendArea; @@ -56,12 +57,12 @@ struct unkStruct_203B28C UnkTextStruct2 *unk78; UnkTextStruct2 unk7C[4]; u8 unkDC[4]; -}; -EWRAM_DATA_2 struct unkStruct_203B28C *gUnknown_203B28C = {0}; +} unkStruct_203B28C; +EWRAM_DATA_2 unkStruct_203B28C *gUnknown_203B28C = {0}; // split3 -EWRAM_DATA_2 WigglytuffShop *gWigglytuffShop = {0}; +static EWRAM_DATA_2 WigglytuffShop *sWigglytuffShop = {0}; // other stuff @@ -72,16 +73,6 @@ extern u8 gUnknown_202E1C8[]; extern u8 gUnknown_202E5D8[]; extern u8 gUnknown_202E628[]; -// common_strings.s -extern const u8 *gCommonYes[]; -extern const u8 *gCommonNo[]; -extern const u8 *gCommonCancel[]; -extern const u8 *gCommonInfo[]; -extern const u8 *gCommonBuy[]; -extern const u8 *gCommonCheck[]; // 80D499C -extern const u8 *gCommonTripleQuestionMark[]; -extern const u8 *gCommonWigglytuff[2][20]; // 80D79A4 - // split1 extern const UnkTextStruct2 gUnknown_80DC464; extern const UnkTextStruct2 gUnknown_80DC47C; @@ -149,7 +140,7 @@ bool8 sub_80211AC(u32 mode, u32 param_2) if (sub_8021700(mode)) return FALSE; - gUnknown_203B280 = MemoryAlloc(sizeof(struct unkStruct_203B280), 8); + gUnknown_203B280 = MemoryAlloc(sizeof(unkStruct_203B280), 8); gUnknown_203B280->mode = mode; gUnknown_203B280->unk74 = param_2; gUnknown_203B280->unk78 = &gUnknown_203B280->unk7C[gUnknown_203B280->unk74]; @@ -431,7 +422,7 @@ u8 sub_8021700(u32 mode) bool8 sub_8021774(u8 friendArea, bool8 param_2, s32 param_3) { - gUnknown_203B28C = MemoryAlloc(sizeof(struct unkStruct_203B28C), 8); + gUnknown_203B28C = MemoryAlloc(sizeof(unkStruct_203B28C), 8); gUnknown_203B28C->friendArea = friendArea; gUnknown_203B28C->unkD = param_2; sub_801317C(&gUnknown_203B28C->unk0); @@ -596,35 +587,35 @@ bool8 CreateWigglytuffShop(bool32 isAsleep) ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); - gWigglytuffShop = MemoryAlloc(sizeof(WigglytuffShop), 8); - gWigglytuffShop->menuAction1 = 0; - gWigglytuffShop->menuAction2 = 0; - gWigglytuffShop->isAsleep = isAsleep; + sWigglytuffShop = MemoryAlloc(sizeof(WigglytuffShop), 8); + sWigglytuffShop->menuAction1 = 0; + sWigglytuffShop->menuAction2 = 0; + sWigglytuffShop->isAsleep = isAsleep; CopyYellowMonsterNametoBuffer(gUnknown_202E5D8,MONSTER_WIGGLYTUFF); CopyYellowMonsterNametoBuffer(gUnknown_202E1C8,MONSTER_WIGGLYTUFF); string = GetMonSpecies(MONSTER_WIGGLYTUFF); strcpy(gUnknown_202E1C8 - 0x50, string); - if (gWigglytuffShop->isAsleep == TRUE) { - gWigglytuffShop->unkCC = NULL; + if (sWigglytuffShop->isAsleep == TRUE) { + sWigglytuffShop->unkCC = NULL; } else { - gWigglytuffShop->unkCC = &gWigglytuffShop->faceFile; + sWigglytuffShop->unkCC = &sWigglytuffShop->faceFile; } file = GetDialogueSpriteDataPtr(MONSTER_WIGGLYTUFF); - gWigglytuffShop->faceFile = file; - gWigglytuffShop->faceData = file->data; - gWigglytuffShop->unkC8 = 0; - gWigglytuffShop->unkC9 = 0; - gWigglytuffShop->unkCA = 0; - gWigglytuffShop->unkC4 = 2; - gWigglytuffShop->unkC6 = 8; + sWigglytuffShop->faceFile = file; + sWigglytuffShop->faceData = file->data; + sWigglytuffShop->unkC8 = 0; + sWigglytuffShop->unkC9 = 0; + sWigglytuffShop->unkCA = 0; + sWigglytuffShop->unkC4 = 2; + sWigglytuffShop->unkC6 = 8; SetWigglytuffState(WIGGLYTUFF_INIT); return TRUE; } u32 sub_8021C5C(void) { - switch(gWigglytuffShop->state) + switch(sWigglytuffShop->state) { case WIGGLYTUFF_INIT: case WIGGLYTUFF_MAIN_MENU: @@ -664,17 +655,17 @@ u32 sub_8021C5C(void) void sub_8021D1C(void) { - if(gWigglytuffShop) + if(sWigglytuffShop) { - CloseFile(gWigglytuffShop->faceFile); - MemoryFree(gWigglytuffShop); - gWigglytuffShop = NULL; + CloseFile(sWigglytuffShop->faceFile); + MemoryFree(sWigglytuffShop); + sWigglytuffShop = NULL; } } void SetWigglytuffState(s32 newState) { - gWigglytuffShop->state = newState; + sWigglytuffShop->state = newState; sub_8021D5C(); UpdateWigglytuffDialogue(); } @@ -683,28 +674,28 @@ void sub_8021D5C(void) { s32 index; - sub_8006518(gWigglytuffShop->unkD0); - switch(gWigglytuffShop->state) + sub_8006518(sWigglytuffShop->unkD0); + switch(sWigglytuffShop->state) { case WIGGLYTUFF_UNK9: case WIGGLYTUFF_UNKA: - gWigglytuffShop->unkD0[0] = gUnknown_80DC534; - gWigglytuffShop->unkD0[2] = gUnknown_80DC534; - gWigglytuffShop->unkD0[1] = gUnknown_80DC564; + sWigglytuffShop->unkD0[0] = gUnknown_80DC534; + sWigglytuffShop->unkD0[2] = gUnknown_80DC534; + sWigglytuffShop->unkD0[1] = gUnknown_80DC564; break; case WIGGLYTUFF_UNKB: - gWigglytuffShop->unkD0[2] = gUnknown_80DC54C; + sWigglytuffShop->unkD0[2] = gUnknown_80DC54C; break; default: for(index = 0; index < 4; index++) { - gWigglytuffShop->unkD0[index] = gUnknown_80DC534; + sWigglytuffShop->unkD0[index] = gUnknown_80DC534; } break; } ResetUnusedInputStruct(); - sub_800641C(gWigglytuffShop->unkD0, TRUE, TRUE); + sub_800641C(sWigglytuffShop->unkD0, TRUE, TRUE); } void UpdateWigglytuffDialogue(void) @@ -712,49 +703,49 @@ void UpdateWigglytuffDialogue(void) char *string; unkStruct_8092638 uStack_14; - switch(gWigglytuffShop->state) + switch(sWigglytuffShop->state) { case WIGGLYTUFF_INIT: sub_80222C8(); - sub_8014248(gCommonWigglytuff[gWigglytuffShop->isAsleep][0],0,gWigglytuffShop->menuAction1,gWigglytuffShop->unk1C,gWigglytuffShop->unk5C,4,0,gWigglytuffShop->unkCC,0xc); + sub_8014248(gCommonWigglytuff[sWigglytuffShop->isAsleep][0],0,sWigglytuffShop->menuAction1,sWigglytuffShop->unk1C,sWigglytuffShop->unk5C,4,0,sWigglytuffShop->unkCC,0xc); break; case WIGGLYTUFF_MAIN_MENU: sub_80222C8(); - sub_8014248(gCommonWigglytuff[gWigglytuffShop->isAsleep][1],0,gWigglytuffShop->menuAction1,gWigglytuffShop->unk1C,gWigglytuffShop->unk5C,4,0,gWigglytuffShop->unkCC,0xc); + sub_8014248(gCommonWigglytuff[sWigglytuffShop->isAsleep][1],0,sWigglytuffShop->menuAction1,sWigglytuffShop->unk1C,sWigglytuffShop->unk5C,4,0,sWigglytuffShop->unkCC,0xc); break; case FRIEND_AREA_SELECT_BUY: - gWigglytuffShop->fallbackState = WIGGLYTUFF_UNK9; - sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][3],0,gWigglytuffShop->unkCC,0x10d); + sWigglytuffShop->fallbackState = WIGGLYTUFF_UNK9; + sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][3],0,sWigglytuffShop->unkCC,0x10d); break; case FRIEND_AREA_SELECT_BUY_AGAIN: - gWigglytuffShop->fallbackState = WIGGLYTUFF_UNKA; - sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][4],0,gWigglytuffShop->unkCC,0x10d); + sWigglytuffShop->fallbackState = WIGGLYTUFF_UNKA; + sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][4],0,sWigglytuffShop->unkCC,0x10d); break; case WIGGLYTUFF_INFO: - gWigglytuffShop->fallbackState = WIGGLYTUFF_MAIN_MENU; - sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][19],0,gWigglytuffShop->unkCC,0x10d); + sWigglytuffShop->fallbackState = WIGGLYTUFF_MAIN_MENU; + sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][19],0,sWigglytuffShop->unkCC,0x10d); break; case WIGGLYTUFF_PRE_EXIT: - gWigglytuffShop->fallbackState = WIGGLYTUFF_EXIT; - sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][2],0,gWigglytuffShop->unkCC,0x30d); + sWigglytuffShop->fallbackState = WIGGLYTUFF_EXIT; + sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][2],0,sWigglytuffShop->unkCC,0x30d); break; default: break; case WIGGLYTUFF_CANT_ADD_FRIEND_AREA: - gWigglytuffShop->fallbackState = WIGGLYTUFF_PRE_EXIT; - sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][8],0,gWigglytuffShop->unkCC,0x10d); + sWigglytuffShop->fallbackState = WIGGLYTUFF_PRE_EXIT; + sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][8],0,sWigglytuffShop->unkCC,0x10d); break; case NO_MONEY: - gWigglytuffShop->fallbackState = WIGGLYTUFF_UNKA; - sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][9],0,gWigglytuffShop->unkCC,0x10d); + sWigglytuffShop->fallbackState = WIGGLYTUFF_UNKA; + sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][9],0,sWigglytuffShop->unkCC,0x10d); break; case NO_FRIEND_AREAS: - gWigglytuffShop->fallbackState = WIGGLYTUFF_PRE_EXIT; - sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][10],0,gWigglytuffShop->unkCC,0x10d); + sWigglytuffShop->fallbackState = WIGGLYTUFF_PRE_EXIT; + sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][10],0,sWigglytuffShop->unkCC,0x10d); break; case NOT_ENOUGH_MONEY: - gWigglytuffShop->fallbackState = WIGGLYTUFF_UNKA; - sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][11],0,gWigglytuffShop->unkCC,0x10d); + sWigglytuffShop->fallbackState = WIGGLYTUFF_UNKA; + sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][11],0,sWigglytuffShop->unkCC,0x10d); break; case WIGGLYTUFF_UNK9: sub_80211AC(2,3); @@ -768,49 +759,49 @@ void UpdateWigglytuffDialogue(void) sub_8021494(); DrawTeamMoneyBox(1); sub_8022380(); - sub_8012D60(&gWigglytuffShop->unk6C,gWigglytuffShop->unk1C,0,gWigglytuffShop->unk5C, gWigglytuffShop->menuAction2,2); + sub_8012D60(&sWigglytuffShop->unk6C,sWigglytuffShop->unk1C,0,sWigglytuffShop->unk5C, sWigglytuffShop->menuAction2,2); break; case BUY_FRIEND_AREA: CreateWigglytuffConfirmFriendAreaMenu(); - sub_8092578(gUnknown_202E628,gWigglytuffShop->chosenFriendArea,FALSE); - gUnknown_202DE30[0] = gWigglytuffShop->friendAreaPrice; - sub_8014248(gCommonWigglytuff[gWigglytuffShop->isAsleep][5],0,5,gWigglytuffShop->unk1C,0,4,0,gWigglytuffShop->unkCC,0xc); + sub_8092578(gUnknown_202E628,sWigglytuffShop->chosenFriendArea,FALSE); + gUnknown_202DE30[0] = sWigglytuffShop->friendAreaPrice; + sub_8014248(gCommonWigglytuff[sWigglytuffShop->isAsleep][5],0,5,sWigglytuffShop->unk1C,0,4,0,sWigglytuffShop->unkCC,0xc); break; case FRIEND_AREA_INFO: - sub_8021774(gWigglytuffShop->chosenFriendArea,FALSE,2); + sub_8021774(sWigglytuffShop->chosenFriendArea,FALSE,2); break; case CONFIRM_BUY_FRIEND_AREA: - gWigglytuffShop->fallbackState = WIGGLYTUFF_UNKD; - sub_8092578(gUnknown_202E628,gWigglytuffShop->chosenFriendArea,FALSE); - sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][6],0,gWigglytuffShop->unkCC,0x10d); + sWigglytuffShop->fallbackState = WIGGLYTUFF_UNKD; + sub_8092578(gUnknown_202E628,sWigglytuffShop->chosenFriendArea,FALSE); + sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][6],0,sWigglytuffShop->unkCC,0x10d); break; case WIGGLYTUFF_UNKD: - gWigglytuffShop->fallbackState = WIGGLYTUFF_UNKE; + sWigglytuffShop->fallbackState = WIGGLYTUFF_UNKE; PlaySound(0x25b); - gWigglytuffShop->unk130 = 1; + sWigglytuffShop->unk130 = 1; break; case WIGGLYTUFF_UNKE: - gWigglytuffShop->fallbackState = FRIEND_AREA_UNLOCKED; - gWigglytuffShop->unk134 = 30; + sWigglytuffShop->fallbackState = FRIEND_AREA_UNLOCKED; + sWigglytuffShop->unk134 = 30; break; case FRIEND_AREA_UNLOCKED: if (sub_8021700(2) != 0) { sub_80213A0(); - gWigglytuffShop->fallbackState = NO_FRIEND_AREAS; + sWigglytuffShop->fallbackState = NO_FRIEND_AREAS; } else { - gWigglytuffShop->fallbackState = FRIEND_AREA_SELECT_BUY_AGAIN; + sWigglytuffShop->fallbackState = FRIEND_AREA_SELECT_BUY_AGAIN; } PlaySound(0xce); - sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][7],0,gWigglytuffShop->unkCC,0x10d); + sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][7],0,sWigglytuffShop->unkCC,0x10d); break; case WIGGLYTUFF_CHECK: - gWigglytuffShop->fallbackState = WIGGLYTUFF_UNK16; - sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][12],0,gWigglytuffShop->unkCC,0x10d); + sWigglytuffShop->fallbackState = WIGGLYTUFF_UNK16; + sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][12],0,sWigglytuffShop->unkCC,0x10d); break; case WIGGLYTUFF_CHECK_AGAIN: - gWigglytuffShop->fallbackState = WIGGLYTUFF_UNK17; - sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][13],0,gWigglytuffShop->unkCC,0x10d); + sWigglytuffShop->fallbackState = WIGGLYTUFF_UNK17; + sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][13],0,sWigglytuffShop->unkCC,0x10d); break; case WIGGLYTUFF_UNK16: sub_8023144(0,3,0,10); @@ -819,53 +810,53 @@ void UpdateWigglytuffDialogue(void) sub_8023354(1); break; case DISPLAY_POKEMON_FRIEND_AREA_INFO: - sub_8092638(gWigglytuffShop->chosenFriendArea,&uStack_14,FALSE,FALSE); + sub_8092638(sWigglytuffShop->chosenFriendArea,&uStack_14,FALSE,FALSE); if (uStack_14.hasFriendArea) { - gWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_HAS_FRIEND_AREA; + sWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_HAS_FRIEND_AREA; } else { - switch(GetFriendAreaUnlockCondition(gWigglytuffShop->chosenFriendArea)) + switch(GetFriendAreaUnlockCondition(sWigglytuffShop->chosenFriendArea)) { case UNLOCK_SHOP_POST_GAME: if (sub_80023E4(6) != 0) { - gWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_AGAIN; + sWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_AGAIN; } else { - gWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_POST_GAME; + sWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_POST_GAME; } break; case UNLOCK_WONDER_MAIL: - gWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_WONDER_MAIL; + sWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_WONDER_MAIL; break; case UNLOCK_LEGENDARY_REQUEST: - gWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_LEGENDARY; + sWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_LEGENDARY; break; default: - gWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_AGAIN; + sWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_AGAIN; break; } } - string = GetMonSpecies(gWigglytuffShop->chosenSpecies); + string = GetMonSpecies(sWigglytuffShop->chosenSpecies); strcpy(gAvailablePokemonNames,string); - sub_8092578(gUnknown_202E628,gWigglytuffShop->chosenFriendArea,FALSE); - sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][14],0,gWigglytuffShop->unkCC,0x10d); + sub_8092578(gUnknown_202E628,sWigglytuffShop->chosenFriendArea,FALSE); + sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][14],0,sWigglytuffShop->unkCC,0x10d); break; case WIGGLYTUFF_CHECK_HAS_FRIEND_AREA: - gWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_AGAIN; - sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][15],0,gWigglytuffShop->unkCC,0x10d); + sWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_AGAIN; + sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][15],0,sWigglytuffShop->unkCC,0x10d); break; case WIGGLYTUFF_CHECK_POST_GAME: - gWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_AGAIN; - sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][16],0,gWigglytuffShop->unkCC,0x10d); + sWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_AGAIN; + sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][16],0,sWigglytuffShop->unkCC,0x10d); break; case WIGGLYTUFF_CHECK_WONDER_MAIL: - gWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_AGAIN; - sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][17],0,gWigglytuffShop->unkCC,0x10d); + sWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_AGAIN; + sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][17],0,sWigglytuffShop->unkCC,0x10d); break; case WIGGLYTUFF_CHECK_LEGENDARY: - gWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_AGAIN; - sub_80141B4(gCommonWigglytuff[gWigglytuffShop->isAsleep][18],0,gWigglytuffShop->unkCC,0x10d); + sWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_AGAIN; + sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][18],0,sWigglytuffShop->unkCC,0x10d); break; } } @@ -874,32 +865,32 @@ void sub_80222C8(void) { s32 i; s32 index = 0; - MemoryFill16(gWigglytuffShop->unk5C, 0, sizeof(gWigglytuffShop->unk5C)); - gWigglytuffShop->unk1C[index].text = *gCommonBuy; - gWigglytuffShop->unk1C[index].menuAction = 2; + MemoryFill16(sWigglytuffShop->unk5C, 0, sizeof(sWigglytuffShop->unk5C)); + sWigglytuffShop->unk1C[index].text = *gCommonBuy; + sWigglytuffShop->unk1C[index].menuAction = 2; index++; - gWigglytuffShop->unk1C[index].text = *gCommonCheck; - gWigglytuffShop->unk1C[index].menuAction = 3; + sWigglytuffShop->unk1C[index].text = *gCommonCheck; + sWigglytuffShop->unk1C[index].menuAction = 3; index++; - gWigglytuffShop->unk1C[index].text = *gCommonInfo; - gWigglytuffShop->unk1C[index].menuAction = 4; + sWigglytuffShop->unk1C[index].text = *gCommonInfo; + sWigglytuffShop->unk1C[index].menuAction = 4; index++; - gWigglytuffShop->unk1C[index].text = *gCommonCancel; - gWigglytuffShop->unk1C[index].menuAction = 1; + sWigglytuffShop->unk1C[index].text = *gCommonCancel; + sWigglytuffShop->unk1C[index].menuAction = 1; index++; - gWigglytuffShop->unk1C[index].text = NULL; - gWigglytuffShop->unk1C[index].menuAction = 1; + sWigglytuffShop->unk1C[index].text = NULL; + sWigglytuffShop->unk1C[index].menuAction = 1; for(i = 0; i < index; i++) { - if(gWigglytuffShop->unk5C[i] == 0 && gWigglytuffShop->unk1C[i].menuAction == gWigglytuffShop->menuAction1) + if(sWigglytuffShop->unk5C[i] == 0 && sWigglytuffShop->unk1C[i].menuAction == sWigglytuffShop->menuAction1) return; } for(i = 0; i < index; i++) { - if(gWigglytuffShop->unk5C[i] == 0) + if(sWigglytuffShop->unk5C[i] == 0) { - gWigglytuffShop->menuAction1 = gWigglytuffShop->unk1C[i].menuAction; + sWigglytuffShop->menuAction1 = sWigglytuffShop->unk1C[i].menuAction; break; } } @@ -909,26 +900,26 @@ void sub_8022380(void) { s32 i; s32 index = 0; - MemoryFill16(gWigglytuffShop->unk5C, 0, sizeof(gWigglytuffShop->unk5C)); - gWigglytuffShop->unk1C[index].text = *gCommonBuy; - gWigglytuffShop->unk1C[index].menuAction = 2; + MemoryFill16(sWigglytuffShop->unk5C, 0, sizeof(sWigglytuffShop->unk5C)); + sWigglytuffShop->unk1C[index].text = *gCommonBuy; + sWigglytuffShop->unk1C[index].menuAction = 2; index++; - gWigglytuffShop->unk1C[index].text = *gCommonInfo; - gWigglytuffShop->unk1C[index].menuAction = 4; + sWigglytuffShop->unk1C[index].text = *gCommonInfo; + sWigglytuffShop->unk1C[index].menuAction = 4; index++; - gWigglytuffShop->unk1C[index].text = NULL; - gWigglytuffShop->unk1C[index].menuAction = 1; + sWigglytuffShop->unk1C[index].text = NULL; + sWigglytuffShop->unk1C[index].menuAction = 1; for(i = 0; i < index; i++) { - if(gWigglytuffShop->unk5C[i] == 0 && gWigglytuffShop->unk1C[i].menuAction == gWigglytuffShop->menuAction2) + if(sWigglytuffShop->unk5C[i] == 0 && sWigglytuffShop->unk1C[i].menuAction == sWigglytuffShop->menuAction2) return; } for(i = 0; i < index; i++) { - if(gWigglytuffShop->unk5C[i] == 0) + if(sWigglytuffShop->unk5C[i] == 0) { - gWigglytuffShop->menuAction2 = gWigglytuffShop->unk1C[i].menuAction; + sWigglytuffShop->menuAction2 = sWigglytuffShop->unk1C[i].menuAction; break; } } @@ -937,15 +928,15 @@ void sub_8022380(void) void CreateWigglytuffConfirmFriendAreaMenu(void) { s32 index = 0; - MemoryFill16(gWigglytuffShop->unk5C, 0, sizeof(gWigglytuffShop->unk5C)); - gWigglytuffShop->unk1C[index].text = *gCommonYes; - gWigglytuffShop->unk1C[index].menuAction = 5; + MemoryFill16(sWigglytuffShop->unk5C, 0, sizeof(sWigglytuffShop->unk5C)); + sWigglytuffShop->unk1C[index].text = *gCommonYes; + sWigglytuffShop->unk1C[index].menuAction = 5; index++; - gWigglytuffShop->unk1C[index].text = *gCommonNo; - gWigglytuffShop->unk1C[index].menuAction = 6; + sWigglytuffShop->unk1C[index].text = *gCommonNo; + sWigglytuffShop->unk1C[index].menuAction = 6; index++; - gWigglytuffShop->unk1C[index].text = NULL; - gWigglytuffShop->unk1C[index].menuAction = 1; + sWigglytuffShop->unk1C[index].text = NULL; + sWigglytuffShop->unk1C[index].menuAction = 1; } void sub_8022460(void) @@ -955,7 +946,7 @@ void sub_8022460(void) if (sub_80144A4(&menuAction) == 0) { if (menuAction != 1) { - gWigglytuffShop->menuAction1 = menuAction; + sWigglytuffShop->menuAction1 = menuAction; } switch(menuAction) { @@ -988,8 +979,8 @@ void HandleWigglytuffConfirmFriendAreaMenu(void) switch(menuAction) { case 5: - gTeamInventoryRef->teamMoney -= gWigglytuffShop->friendAreaPrice; - UnlockFriendArea(gWigglytuffShop->chosenFriendArea); + gTeamInventoryRef->teamMoney -= sWigglytuffShop->friendAreaPrice; + UnlockFriendArea(sWigglytuffShop->chosenFriendArea); PlaySound(0x14C); SetWigglytuffState(CONFIRM_BUY_FRIEND_AREA); break; @@ -1006,13 +997,13 @@ void sub_8022538(void) switch(sub_8021274(TRUE)) { case 3: - gWigglytuffShop->chosenFriendArea = sub_802132C(); - gWigglytuffShop->friendAreaPrice = GetFriendAreaPrice(gWigglytuffShop->chosenFriendArea); + sWigglytuffShop->chosenFriendArea = sub_802132C(); + sWigglytuffShop->friendAreaPrice = GetFriendAreaPrice(sWigglytuffShop->chosenFriendArea); SetWigglytuffState(WIGGLYTUFF_UNKB); break; case 4: - gWigglytuffShop->chosenFriendArea = sub_802132C(); - gWigglytuffShop->friendAreaPrice = GetFriendAreaPrice(gWigglytuffShop->chosenFriendArea); + sWigglytuffShop->chosenFriendArea = sub_802132C(); + sWigglytuffShop->friendAreaPrice = GetFriendAreaPrice(sWigglytuffShop->chosenFriendArea); SetWigglytuffState(FRIEND_AREA_INFO); break; case 0: @@ -1032,10 +1023,10 @@ void sub_80225C8(void) { s32 menuAction = 0; sub_8021274(FALSE); - if(sub_8012FD8(&gWigglytuffShop->unk6C) == 0) + if(sub_8012FD8(&sWigglytuffShop->unk6C) == 0) { - sub_8013114(&gWigglytuffShop->unk6C, &menuAction); - if(menuAction != 1) gWigglytuffShop->menuAction2 = menuAction; + sub_8013114(&sWigglytuffShop->unk6C, &menuAction); + if(menuAction != 1) sWigglytuffShop->menuAction2 = menuAction; } switch(menuAction) { @@ -1044,7 +1035,7 @@ void sub_80225C8(void) { SetWigglytuffState(NO_MONEY); } - else if(gWigglytuffShop->friendAreaPrice > gTeamInventoryRef->teamMoney) + else if(sWigglytuffShop->friendAreaPrice > gTeamInventoryRef->teamMoney) { SetWigglytuffState(NOT_ENOUGH_MONEY); } @@ -1082,8 +1073,8 @@ void sub_8022684(void) switch(sub_8023278(1)) { case 3: - gWigglytuffShop->chosenSpecies = sub_802331C(); - gWigglytuffShop->chosenFriendArea = GetFriendArea(gWigglytuffShop->chosenSpecies); + sWigglytuffShop->chosenSpecies = sub_802331C(); + sWigglytuffShop->chosenFriendArea = GetFriendArea(sWigglytuffShop->chosenSpecies); SetWigglytuffState(DISPLAY_POKEMON_FRIEND_AREA_INFO); break; case 2: @@ -1101,7 +1092,7 @@ void sub_80226CC(void) s32 temp; if (sub_80144A4(&temp) == 0) - SetWigglytuffState(gWigglytuffShop->fallbackState); + SetWigglytuffState(sWigglytuffShop->fallbackState); } void sub_80226F0(void) @@ -1118,7 +1109,7 @@ void sub_80226F0(void) ptr[3] = r2; if(sub_8099B94() == 0) { - switch(gWigglytuffShop->unk130) + switch(sWigglytuffShop->unk130) { case 1: case 3: @@ -1130,18 +1121,18 @@ void sub_80226F0(void) break; case 0: default: - SetWigglytuffState(gWigglytuffShop->fallbackState); - gWigglytuffShop->unk130 = 0; + SetWigglytuffState(sWigglytuffShop->fallbackState); + sWigglytuffShop->unk130 = 0; break; } - gWigglytuffShop->unk130++; + sWigglytuffShop->unk130++; } } void sub_8022790(void) { - if (gWigglytuffShop->unk134 != 0) - gWigglytuffShop->unk134--; + if (sWigglytuffShop->unk134 != 0) + sWigglytuffShop->unk134--; else - SetWigglytuffState(gWigglytuffShop->fallbackState); + SetWigglytuffState(sWigglytuffShop->fallbackState); } diff --git a/src/wonder_mail_3.c b/src/wonder_mail_3.c index 138d25492..b407508d5 100644 --- a/src/wonder_mail_3.c +++ b/src/wonder_mail_3.c @@ -1,5 +1,6 @@ #include "constants/mailbox.h" #include "global.h" +#include "common_strings.h" #include "constants/dungeon.h" #include "constants/input.h" #include "memory.h" @@ -167,10 +168,6 @@ extern UnkTextStruct2 gUnknown_80DFDA4; extern struct unkStruct_203B2F0 *gUnknown_203B2F0; -extern u8 *gCommonYes[]; -extern u8 *gCommonNo[]; -extern u8 *gCommonDelete[]; -extern u8 *gCommonInfo[]; extern u8 gUnknown_80DFD70[]; extern u8 gUnknown_80DFD7C[]; diff --git a/src/wonder_mail_3_mid.c b/src/wonder_mail_3_mid.c index 5a284ffd9..ce9506e89 100644 --- a/src/wonder_mail_3_mid.c +++ b/src/wonder_mail_3_mid.c @@ -15,6 +15,7 @@ #include "code_80118A4.h" #include "wonder_mail_3.h" #include "code_801B60C.h" +#include "common_strings.h" extern unkStruct_803B344 *sub_803B344(u8); @@ -122,7 +123,6 @@ extern u8 gUnknown_202DEA8[]; extern u8 gUnknown_202E5D8[]; extern u8 gAvailablePokemonNames[]; extern u32 gUnknown_202DE30; -extern const u8 *gCommonInfo[]; const UnkTextStruct2 gUnknown_80E03C4 = { 0x00, 0x00, 0x00, 0x00, From ed4d98838dd1ab35a8caa18d4720b5e7c0b87ffa Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Mon, 11 Sep 2023 17:53:34 -0400 Subject: [PATCH 07/47] Move some common strings to src --- data/common_strings.s | 158 +--------------------------- include/common_strings.h | 74 +++++++++---- include/makuhita_dojo1.h | 20 ++-- ld_script.txt | 1 + src/common_strings.c | 57 ++++++++++ src/data/other_menus1.h | 220 +++++++++++++++++++-------------------- src/debug_menu2.c | 2 +- src/debug_menu3.c | 2 +- src/makuhita_dojo1.c | 16 +-- 9 files changed, 239 insertions(+), 311 deletions(-) create mode 100644 src/common_strings.c diff --git a/data/common_strings.s b/data/common_strings.s index 37d282884..5873ca04f 100644 --- a/data/common_strings.s +++ b/data/common_strings.s @@ -1,160 +1,6 @@ .section .rodata -@ START [some global strings. Probably had many entries per ptr because of languages, but USA release is english-only. Check other roms] .align 2,0 -.string "pksdir0\0" - - .global Yes_80D491C - Yes_80D491C: - .string "Yes\0" - - .global gCommonYes -gCommonYes: @ 80D4920 - .4byte Yes_80D491C - - .global No_80D4924 - No_80D4924: - .string "No\0" - .align 2,0 - - .global gCommonNo -gCommonNo: @ 80D4928 - .4byte No_80D4924 - - .global CancelText - CancelText: - .string "Cancel\0" - .align 2,0 - - .global gCommonCancel -gCommonCancel: @ 80D4934 - .4byte CancelText - - .global TrashText - TrashText: - .string "Trash \0" - .align 2,0 - - .global gCommonTrash -gCommonTrash: @ 80D4940 - .4byte TrashText - - .global DeleteText - DeleteText: - .string "Delete\0" - .align 2,0 - - .global gCommonDelete -gCommonDelete: @ 80D494C - .4byte DeleteText - - .global StoreText - StoreText: - .string "Store\0" - .align 2,0 - - .global gCommonStore -gCommonStore: @ 80D4958 - .4byte StoreText - - .global TakeText - TakeText: - .string "Take\0" - .align 2,0 - - .global gCommonTake -gCommonTake: @ 80D4964 - .4byte TakeText - - .global InfoText - InfoText: - .string "Info\0" - .align 2,0 - - .global gCommonInfo -gCommonInfo: @ 80D4970 - .4byte InfoText - - .global BuyText - BuyText: - .string "Buy\0" - .align 2,0 - - .global gCommonBuy -gCommonBuy: @ 80D4978 - .4byte BuyText - - .global SellText - SellText: - .string "Sell \0" - .align 2,0 - - .global gCommonSell -gCommonSell: @ 80D4984 - .4byte SellText - - .global AcceptText - AcceptText: - .string "Accept\0" - .align 2,0 - - .global gCommonAccept -gCommonAccept: @ 80D4990 - .4byte AcceptText - - .global WigglytuffCheck - WigglytuffCheck: - .string "Check\0" - .align 2,0 - - .global gCommonCheck -gCommonCheck: @ 80D499C - .4byte WigglytuffCheck - - .global FriendText - FriendText: - .string "Friend\0" - .align 2,0 - - .global gCommonFriend -gCommonFriend: @ 80D49A8 - .4byte FriendText - - .global ExitText - ExitText: - .string "Exit\0" - .align 2,0 - - .global gCommonExit -gCommonExit: @ 80D49B4 - .4byte ExitText - - .global QuestionMarkText - QuestionMarkText: - .string "???\0" - .align 2,0 - - .global gCommonTripleQuestionMark -gCommonTripleQuestionMark: @ 80D49BC - .4byte QuestionMarkText - - .global FelicityDeposit - FelicityDeposit: - .string "Deposit?\0" - .align 2,0 - - .global gCommonDepositPrompt -gCommonDepositPrompt: @ 80D49CC - .4byte FelicityDeposit - - .global FelicityWithdraw - FelicityWithdraw: - .string "Withdraw?\0" - .align 2,0 - - .global gCommonWithdrawPrompt -gCommonWithdrawPrompt: @ 80D49DC - .4byte FelicityWithdraw .global gCommonFelicity gCommonFelicity: @ 80D49E0 (Felicity Bank Dialogue) @@ -2618,6 +2464,4 @@ gUnknown_80DAEE0: .global gUnknown_80DAF54 gUnknown_80DAF54: - .string "Controls in Town 1\0" - -@ END [some global strings] \ No newline at end of file + .string "Controls in Town 1\0" \ No newline at end of file diff --git a/include/common_strings.h b/include/common_strings.h index e37a1fddf..55cca48af 100644 --- a/include/common_strings.h +++ b/include/common_strings.h @@ -1,6 +1,18 @@ #ifndef GUARD_COMMON_STRINGS_H #define GUARD_COMMON_STRINGS_H +enum FelicityBankMode +{ + FELICITY_BANK_MODE_AWAKE, + FELICITY_BANK_MODE_ASLEEP, + FELICITY_BANK_MODE_COUNT +}; +enum KangaskhanStorageMode +{ + KANGASKHAN_STORAGE_MODE_AWAKE, + KANGASKHAN_STORAGE_MODE_ASLEEP, + KANGASKHAN_STORAGE_MODE_COUNT +}; enum KecleonBrosMode { KECLEON_BROS_MODE_ITEMS_AWAKE, @@ -9,6 +21,24 @@ enum KecleonBrosMode KECLEON_BROS_MODE_WARES_ASLEEP, KECLEON_BROS_MODE_COUNT }; +enum WigglytuffShopMode +{ + WIGGLYTUFF_SHOP_MODE_AWAKE, + WIGGLYTUFF_SHOP_MODE_ASLEEP, + WIGGLYTUFF_SHOP_MODE_COUNT +}; +enum GulpinShopMode +{ + GULPIN_SHOP_MODE_AWAKE, + GULPIN_SHOP_MODE_ASLEEP, + GULPIN_SHOP_MODE_COUNT +}; +enum MakuhitaDojoMode +{ + MAKUHITA_DOJO_MODE_AWAKE, + MAKUHITA_DOJO_MODE_ASLEEP, + MAKUHITA_DOJO_MODE_COUNT +}; #define MAX_HINTS 5 @@ -19,30 +49,30 @@ typedef struct Hints const u8 *body; } Hints; -extern const u8 *gCommonYes[]; // 80D4920 -extern const u8 *gCommonNo[]; // 80D4928 -extern const u8 *gCommonCancel[]; // 80D4934 -extern const u8 *gCommonTrash[]; // 80D4940 -extern const u8 *gCommonDelete[]; // 80D494C -extern const u8 *gCommonStore[]; // 80D4958 -extern const u8 *gCommonTake[]; // 80D4964 -extern const u8 *gCommonInfo[]; // 80D4970 -extern const u8 *gCommonBuy[]; // 80D4978 -extern const u8 *gCommonSell[]; // 80D4984 -extern const u8 *gCommonAccept[]; // 80D4990 -extern const u8 *gCommonCheck[]; // 80D499C -extern const u8 *gCommonFriend[]; // 80D49A8 -extern const u8 *gCommonExit[]; // 80D49B4 -extern const u8 *gCommonTripleQuestionMark[]; // 80D49BC -extern const u8 *gCommonDepositPrompt[]; // 80D49CC -extern const u8 *gCommonWithdrawPrompt[]; // 80D49DC +extern const u8* const gCommonYes[]; +extern const u8* const gCommonNo[]; +extern const u8* const gCommonCancel[]; +extern const u8* const gCommonTrash[]; +extern const u8* const gCommonDelete[]; +extern const u8* const gCommonStore[]; +extern const u8* const gCommonTake[]; +extern const u8* const gCommonInfo[]; +extern const u8* const gCommonBuy[]; +extern const u8* const gCommonSell[]; +extern const u8* const gCommonAccept[]; +extern const u8* const gCommonCheck[]; +extern const u8* const gCommonFriend[]; +extern const u8* const gCommonExit[]; +extern const u8* const gCommonTripleQuestionMark[]; +extern const u8* const gCommonDepositPrompt[]; +extern const u8* const gCommonWithdrawPrompt[]; -extern const u8 *gCommonFelicity[2][15]; // 80D49E0 -extern const u8 *gCommonKangaskhanStorage[2][20]; // 80D5404 +extern const u8 *gCommonFelicity[FELICITY_BANK_MODE_COUNT][15]; // 80D49E0 +extern const u8 *gCommonKangaskhanStorage[KANGASKHAN_STORAGE_MODE_COUNT][20]; // 80D5404 extern const u8 *gCommonKecleonBros[KECLEON_BROS_MODE_COUNT][23]; // 80D5EC8 -extern const u8 *gCommonWigglytuff[2][20]; // 80D79A4 -extern const u8 *gCommonGulpin[2][25]; // 80D8888 -extern const u8 *gCommonMakuhita[2][10]; // 80D9FC8 +extern const u8 *gCommonWigglytuff[WIGGLYTUFF_SHOP_MODE_COUNT][20]; // 80D79A4 +extern const u8 *gCommonGulpin[GULPIN_SHOP_MODE_COUNT][25]; // 80D8888 +extern const u8 *gCommonMakuhita[MAKUHITA_DOJO_MODE_COUNT][10]; // 80D9FC8 extern const Hints gCommonHints[MAX_HINTS]; // 80DAA98 #endif // GUARD_COMMON_STRINGS_H \ No newline at end of file diff --git a/include/makuhita_dojo1.h b/include/makuhita_dojo1.h index ea9495d1c..a5b1cabb0 100644 --- a/include/makuhita_dojo1.h +++ b/include/makuhita_dojo1.h @@ -5,22 +5,22 @@ #include "menu.h" #include "text.h" -enum MakuhitaDojoMode +enum MakuhitaDojoInitMode { - MAKUHITA_DOJO_MODE_UNK0_AWAKE = 0, - MAKUHITA_DOJO_MODE_UNK1_AWAKE = 1, - MAKUHITA_DOJO_MODE_UNK2_AWAKE = 2, - MAKUHITA_DOJO_MODE_UNK3_AWAKE = 3, - MAKUHITA_DOJO_MODE_UNK4_ASLEEP = 4, - MAKUHITA_DOJO_MODE_UNK5_ASLEEP = 5, - MAKUHITA_DOJO_MODE_UNK6_ASLEEP = 6, - MAKUHITA_DOJO_MODE_UNK7_ASLEEP = 7, + MAKUHITA_DOJO_INIT_MODE_UNK0_AWAKE = 0, + MAKUHITA_DOJO_INIT_MODE_UNK1_AWAKE = 1, + MAKUHITA_DOJO_INIT_MODE_UNK2_AWAKE = 2, + MAKUHITA_DOJO_INIT_MODE_UNK3_AWAKE = 3, + MAKUHITA_DOJO_INIT_MODE_UNK4_ASLEEP = 4, + MAKUHITA_DOJO_INIT_MODE_UNK5_ASLEEP = 5, + MAKUHITA_DOJO_INIT_MODE_UNK6_ASLEEP = 6, + MAKUHITA_DOJO_INIT_MODE_UNK7_ASLEEP = 7, }; // size: 0xCC typedef struct MakuhitaDojoWork1 { - /* 0x0 */ u32 mode; // Corresponds to the enum: MakuhitaDojoMode + /* 0x0 */ u32 mode; // Corresponds to the enum: MakuhitaDojoInitMode /* 0x4 */ bool32 isAsleep; /* 0x8 */ s32 state; /* 0xC */ s32 fallbackState; diff --git a/ld_script.txt b/ld_script.txt index 8af8a0db3..d0ba2d31a 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -401,6 +401,7 @@ SECTIONS { src/quick_save_write.o(.rodata); src/menu_input.o(.rodata); data/data_80D47B8.o(.rodata); + src/common_strings.o(.rodata); data/common_strings.o(.rodata); data/data_80DAF70.o(.rodata); src/felicity_bank.o(.rodata); diff --git a/src/common_strings.c b/src/common_strings.c new file mode 100644 index 000000000..765ab36aa --- /dev/null +++ b/src/common_strings.c @@ -0,0 +1,57 @@ +#include "global.h" +#include "common_strings.h" + +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +// Probably had many entries per ptr because of languages, but USA release is english-only. Check other roms + +ALIGNED(4) static const u8 sYes0[] = _("Yes"); +ALIGNED(4) const u8* const gCommonYes[] = { sYes0 }; + +ALIGNED(4) static const u8 sNo0[] = _("No"); +ALIGNED(4) const u8* const gCommonNo[] = { sNo0 }; + +ALIGNED(4) static const u8 sCancel0[] = _("Cancel"); +ALIGNED(4) const u8* const gCommonCancel[] = { sCancel0 }; + +ALIGNED(4) static const u8 sTrash0[] = _("Trash "); +ALIGNED(4) const u8* const gCommonTrash[] = { sTrash0 }; + +ALIGNED(4) static const u8 sDelete0[] = _("Delete"); +ALIGNED(4) const u8* const gCommonDelete[] = { sDelete0 }; + +ALIGNED(4) static const u8 sStore0[] = _("Store"); +ALIGNED(4) const u8* const gCommonStore[] = { sStore0 }; + +ALIGNED(4) static const u8 sTake0[] = _("Take"); +ALIGNED(4) const u8* const gCommonTake[] = { sTake0 }; + +ALIGNED(4) static const u8 sInfo0[] = _("Info"); +ALIGNED(4) const u8* const gCommonInfo[] = { sInfo0 }; + +ALIGNED(4) static const u8 sBuy0[] = _("Buy"); +ALIGNED(4) const u8* const gCommonBuy[] = { sBuy0 }; + +ALIGNED(4) static const u8 sSell0[] = _("Sell "); +ALIGNED(4) const u8* const gCommonSell[] = { sSell0 }; + +ALIGNED(4) static const u8 sAccept0[] = _("Accept"); +ALIGNED(4) const u8* const gCommonAccept[] = { sAccept0 }; + +ALIGNED(4) static const u8 sCheck0[] = _("Check"); +ALIGNED(4) const u8* const gCommonCheck[] = { sCheck0 }; + +ALIGNED(4) static const u8 sFriend0[] = _("Friend"); +ALIGNED(4) const u8* const gCommonFriend[] = { sFriend0 }; + +ALIGNED(4) static const u8 sExit0[] = _("Exit"); +ALIGNED(4) const u8* const gCommonExit[] = { sExit0 }; + +ALIGNED(4) static const u8 sTripleQuestionMark0[] = _("???"); +ALIGNED(4) const u8* const gCommonTripleQuestionMark[] = { sTripleQuestionMark0 }; + +ALIGNED(4) static const u8 sDepositPrompt0[] = _("Deposit?"); +ALIGNED(4) const u8* const gCommonDepositPrompt[] = { sDepositPrompt0 }; + +ALIGNED(4) static const u8 sWithdrawPrompt0[] = _("Withdraw?"); +ALIGNED(4) const u8* const gCommonWithdrawPrompt[] = { sWithdrawPrompt0 }; \ No newline at end of file diff --git a/src/data/other_menus1.h b/src/data/other_menus1.h index 6aca4d165..56b8bb95c 100644 --- a/src/data/other_menus1.h +++ b/src/data/other_menus1.h @@ -1,20 +1,20 @@ ALIGNED(4) static const u8 sFill[] = _("pksdir0"); static const UnkTextStruct2 sUnknown_80E653C = { - 0, 0, 0, 0, - 3, - 0, 0, - 0, 0, - 0, 0, - NULL + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL }; const UnkTextStruct2 sUnknown_80E6554 = { // TODO: MAKE STATIC WHEN other_menus1.s IS DED - 0, 0, 0, 0, - 3, - 3, 8, - 24, 5, - 5, 0, - NULL + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL }; static const u8 sUnknown_80E65C4[]; @@ -25,7 +25,6 @@ const MenuItem sUnknown_80E656C[4] = { // TODO: MAKE STATIC WHEN other_menus1.s {sUnknown_80E65AC, 5}, {sUnknown_80E658C, 5}, {NULL, 3}, - }; ALIGNED(4) static const u8 sUnknown_80E658C[] = _("{CENTER_ALIGN}Don{APOSTROPHE}t turn the power off!"); ALIGNED(4) static const u8 sUnknown_80E65AC[] = _("{CENTER_ALIGN}Item transmitting!"); @@ -37,7 +36,6 @@ const MenuItem sUnknown_80E65D8[4] = { // TODO: MAKE STATIC WHEN other_menus1.s {sUnknown_80E65F8, 5}, {sUnknown_80E658C, 5}, {NULL, 3}, - }; ALIGNED(4) static const u8 sUnknown_80E65F8[] = _("{CENTER_ALIGN}Thank-You Mail in transmission!"); @@ -47,7 +45,6 @@ const MenuItem sUnknown_80E661C[4] = { // TODO: MAKE STATIC WHEN other_menus1.s {sUnknown_80E663C, 5}, {sUnknown_80E658C, 5}, {NULL, 3}, - }; ALIGNED(4) static const u8 sUnknown_80E663C[] = _("{CENTER_ALIGN}A-OK Mail in transmission!"); @@ -64,17 +61,16 @@ const MenuItem sUnknown_80E667C[4] = { // TODO: MAKE STATIC WHEN other_menus1.s {sUnknown_80E669C, 5}, {sUnknown_80E658C, 5}, {NULL, 3}, - }; ALIGNED(4) static const u8 sUnknown_80E669C[] = _("{CENTER_ALIGN}Wonder Mail in transmission!"); static const UnkTextStruct2 sUnknown_80E66BC = { - 0, 0, 0, 0, - 3, - 3, 8, - 24, 5, - 5, 0, - NULL + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL }; static const u8 sUnknown_80E6734[]; @@ -91,12 +87,12 @@ ALIGNED(4) static const u8 sUnknown_80E6710[] = _("{CENTER_ALIGN}Your adventure ALIGNED(4) static const u8 sUnknown_80E6734[] = _("{CENTER_ALIGN}{COLOR_1 LIGHT_BLUE}Success!{END_COLOR_TEXT_1} "); static const UnkTextStruct2 sUnknown_80E6748 = { - 0, 0, 0, 0, - 3, - 3, 8, - 24, 5, - 5, 0, - NULL + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL }; static const u8 sUnknown_80E6780[]; @@ -113,12 +109,12 @@ ALIGNED(4) static const u8 sUnknown_80E6794[] = _("{CENTER_ALIGN}Check the Game ALIGNED(4) static const u8 sUnknown_80E67B4[] = _("{CENTER_ALIGN}#C2Communication error!{END_COLOR_TEXT_1} "); static const UnkTextStruct2 sUnknown_80E67D4 = { - 0, 0, 0, 0, - 3, - 3, 8, - 24, 5, - 5, 0, - NULL + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL }; static const u8 sUnknown_80E680C[]; @@ -131,12 +127,12 @@ static const MenuItem sUnknown_80E67EC[4] = { ALIGNED(4) static const u8 sUnknown_80E680C[] = _("{CENTER_ALIGN}Check your communication mode and"); static const UnkTextStruct2 sUnknown_80E6830 = { - 0, 0, 0, 0, - 3, - 3, 8, - 24, 5, - 5, 0, - NULL + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL }; static const u8 sUnknown_80E6888[]; @@ -151,12 +147,12 @@ ALIGNED(4) static const u8 sUnknown_80E6868[] = _("{CENTER_ALIGN}Please inform t ALIGNED(4) static const u8 sUnknown_80E6888[] = _("{CENTER_ALIGN}Check sum error."); static const UnkTextStruct2 sUnknown_80E689C = { - 0, 0, 0, 0, - 3, - 3, 8, - 24, 5, - 5, 0, - NULL + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL }; static const u8 sUnknown_80E6928[]; @@ -173,12 +169,12 @@ ALIGNED(4) static const u8 sUnknown_80E68FC[] = _("{CENTER_ALIGN}An item could n ALIGNED(4) static const u8 sUnknown_80E6928[] = _("{CENTER_ALIGN}#C2Error!{END_COLOR_TEXT_1} "); static const UnkTextStruct2 sUnknown_80E6938 = { - 0, 0, 0, 0, - 3, - 3, 8, - 24, 5, - 5, 0, - NULL + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL }; static const u8 sUnknown_80E6988[]; @@ -193,12 +189,12 @@ ALIGNED(4) static const u8 sUnknown_80E6970[] = _("{CENTER_ALIGN}Please check ag ALIGNED(4) static const u8 sUnknown_80E6988[] = _("{CENTER_ALIGN}This {COLOR_1 LIGHT_BLUE}SOS Mail{END_COLOR_TEXT_1} can{APOSTROPHE}t be used."); static const UnkTextStruct2 sUnknown_80E69B0 = { - 0, 0, 0, 0, - 3, - 3, 8, - 24, 5, - 5, 0, - NULL + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL }; static const u8 sUnknown_80E69E8[]; @@ -211,12 +207,12 @@ static const MenuItem sUnknown_80E69C8[4] = { ALIGNED(4) static const u8 sUnknown_80E69E8[] = _("{CENTER_ALIGN}This {COLOR_1 LIGHT_BLUE}A-OK Mail{END_COLOR_TEXT_1} can{APOSTROPHE}t be used."); static const UnkTextStruct2 sUnknown_80E6A10 = { - 0, 0, 0, 0, - 3, - 3, 8, - 24, 5, - 5, 0, - NULL + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL }; static const u8 sUnknown_80E6A48[]; @@ -229,12 +225,12 @@ static const MenuItem sUnknown_80E6A28[4] = { ALIGNED(4) static const u8 sUnknown_80E6A48[] = _("{CENTER_ALIGN}This {COLOR_1 LIGHT_BLUE}Thank-You Mail{END_COLOR_TEXT_1} can{APOSTROPHE}t be used."); static const UnkTextStruct2 sUnknown_80E6A74 = { - 0, 0, 0, 0, - 3, - 3, 8, - 24, 5, - 5, 0, - NULL + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL }; static const u8 sUnknown_80E6AC8[]; @@ -249,12 +245,12 @@ ALIGNED(4) static const u8 sUnknown_80E6AAC[] = _("{CENTER_ALIGN}It can{APOSTROP ALIGNED(4) static const u8 sUnknown_80E6AC8[] = _("{CENTER_ALIGN}There is no space for new mail."); UNUSED static const UnkTextStruct2 sUnknown_80E6AEC = { - 0, 0, 0, 0, - 3, - 3, 8, - 24, 5, - 5, 0, - NULL + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL }; static const u8 sUnknown_80E6B4C[]; @@ -269,12 +265,12 @@ ALIGNED(4) static const u8 sUnknown_80E6B24[] = _("{CENTER_ALIGN}You need to go ALIGNED(4) static const u8 sUnknown_80E6B4C[] = _("{CENTER_ALIGN}You may not go to that {COLOR_1 LIGHT_BLUE}dungeon{END_COLOR_TEXT_1} yet."); static const UnkTextStruct2 sUnknown_80E6B78 = { - 0, 0, 0, 0, - 3, - 3, 8, - 24, 5, - 5, 0, - NULL + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL }; static const u8 sUnknown_80E6BC4[]; @@ -289,12 +285,12 @@ ALIGNED(4) static const u8 sUnknown_80E6BB0[] = _("{CENTER_ALIGN}Please try agai ALIGNED(4) static const u8 sUnknown_80E6BC4[] = _("{CENTER_ALIGN}There was a problem on your friend{APOSTROPHE}s end."); static const UnkTextStruct2 sUnknown_80E6BF4 = { - 0, 0, 0, 0, - 3, - 3, 8, - 24, 5, - 5, 0, - NULL + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL }; static const u8 sUnknown_80E6C2C[]; @@ -307,12 +303,12 @@ static const MenuItem sUnknown_80E6C0C[4] = { ALIGNED(4) static const u8 sUnknown_80E6C2C[] = _("{CENTER_ALIGN}Your friend is not responding."); static const UnkTextStruct2 sUnknown_80E6C50 = { - 0, 0, 0, 0, - 3, - 3, 8, - 24, 5, - 5, 0, - NULL + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL }; static const u8 sUnknown_80E6CA8[]; @@ -327,12 +323,12 @@ ALIGNED(4) static const u8 sUnknown_80E6C88[] = _("{CENTER_ALIGN}went through su ALIGNED(4) static const u8 sUnknown_80E6CA8[] = _("{CENTER_ALIGN}The item exchange with your friend"); static const UnkTextStruct2 sUnknown_80E6CD0 = { - 0, 0, 0, 0, - 3, - 3, 8, - 24, 5, - 5, 0, - NULL + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL }; static const u8 sUnknown_80E6D2C[]; @@ -347,12 +343,12 @@ ALIGNED(4) static const u8 sUnknown_80E6D08[] = _("{CENTER_ALIGN}you and your fr ALIGNED(4) static const u8 sUnknown_80E6D2C[] = _("{CENTER_ALIGN}Please communicate only after both"); static const UnkTextStruct2 sUnknown_80E6D54 = { - 0, 0, 0, 0, - 3, - 3, 8, - 24, 5, - 5, 0, - NULL + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL }; static const u8 sUnknown_80E6DB0[]; @@ -367,12 +363,12 @@ ALIGNED(4) static const u8 sUnknown_80E6D8C[] = _("{CENTER_ALIGN}connected. Plea ALIGNED(4) static const u8 sUnknown_80E6DB0[] = _("{CENTER_ALIGN}An incorrect number of GBA systems are"); static const UnkTextStruct2 sUnknown_80E6DDC = { - 0, 0, 0, 0, - 3, - 3, 8, - 24, 5, - 5, 0, - NULL + 0, 0, 0, 0, + 3, + 3, 8, + 24, 5, + 5, 0, + NULL }; static const u8 sUnknown_80E6E30[]; diff --git a/src/debug_menu2.c b/src/debug_menu2.c index 31e5c3806..e4f31436c 100644 --- a/src/debug_menu2.c +++ b/src/debug_menu2.c @@ -9,7 +9,7 @@ #include "text1.h" #include "text2.h" -EWRAM_DATA_2 static struct unkStruct_203B3F0 *sUnknown_203B3F0 = {0}; +static EWRAM_DATA_2 struct unkStruct_203B3F0 *sUnknown_203B3F0 = {0}; static const UnkTextStruct2 sUnknown_80E7E34 = { diff --git a/src/debug_menu3.c b/src/debug_menu3.c index a8e49fc82..2570630de 100644 --- a/src/debug_menu3.c +++ b/src/debug_menu3.c @@ -11,7 +11,7 @@ #include "text1.h" #include "text2.h" -EWRAM_DATA_2 static unkStruct_203B3F4 *sUnknown_203B3F4 = {0}; +static EWRAM_DATA_2 unkStruct_203B3F4 *sUnknown_203B3F4 = {0}; static const UnkTextStruct2 sUnknown_80E7E8C = { diff --git a/src/makuhita_dojo1.c b/src/makuhita_dojo1.c index 5c58af719..0b920ad34 100644 --- a/src/makuhita_dojo1.c +++ b/src/makuhita_dojo1.c @@ -46,35 +46,35 @@ bool8 MakuhitaDojo_New(u32 mode) sMakuhitaDojoWork1->mode = mode; switch (mode) { - case MAKUHITA_DOJO_MODE_UNK0_AWAKE: + case MAKUHITA_DOJO_INIT_MODE_UNK0_AWAKE: initialState = 0; sMakuhitaDojoWork1->isAsleep = FALSE; break; - case MAKUHITA_DOJO_MODE_UNK1_AWAKE: + case MAKUHITA_DOJO_INIT_MODE_UNK1_AWAKE: initialState = 7; sMakuhitaDojoWork1->isAsleep = FALSE; break; - case MAKUHITA_DOJO_MODE_UNK2_AWAKE: + case MAKUHITA_DOJO_INIT_MODE_UNK2_AWAKE: initialState = 6; sMakuhitaDojoWork1->isAsleep = FALSE; break; - case MAKUHITA_DOJO_MODE_UNK3_AWAKE: + case MAKUHITA_DOJO_INIT_MODE_UNK3_AWAKE: initialState = 8; sMakuhitaDojoWork1->isAsleep = FALSE; break; - case MAKUHITA_DOJO_MODE_UNK4_ASLEEP: + case MAKUHITA_DOJO_INIT_MODE_UNK4_ASLEEP: initialState = 0; sMakuhitaDojoWork1->isAsleep = TRUE; break; - case MAKUHITA_DOJO_MODE_UNK5_ASLEEP: + case MAKUHITA_DOJO_INIT_MODE_UNK5_ASLEEP: initialState = 7; sMakuhitaDojoWork1->isAsleep = TRUE; break; - case MAKUHITA_DOJO_MODE_UNK6_ASLEEP: + case MAKUHITA_DOJO_INIT_MODE_UNK6_ASLEEP: initialState = 6; sMakuhitaDojoWork1->isAsleep = TRUE; break; - case MAKUHITA_DOJO_MODE_UNK7_ASLEEP: + case MAKUHITA_DOJO_INIT_MODE_UNK7_ASLEEP: default: initialState = 8; sMakuhitaDojoWork1->isAsleep = TRUE; From 6a6f489d679975d3a6264ce73dda1a1da8b7a545 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Mon, 11 Sep 2023 19:23:20 -0400 Subject: [PATCH 08/47] ARG_VALUE_0 ARG_VALUE_1 and gCommonFelicity --- charmap.txt | 13 +- data/common_strings.s | 276 +----------------- data/data_80F59C8.s | 4 +- data/data_8106A4C.s | 2 +- data/data_810AE24.s | 50 ++-- include/common_strings.h | 20 +- .../constants/common_strings_felicity_bank.h | 30 ++ include/felicity_bank.h | 2 +- src/common_strings.c | 4 +- src/data/common_strings_felicity_bank.h | 209 +++++++++++++ src/data/other_menus1.h | 4 +- src/data/trade_items_menu.h | 6 +- src/felicity_bank.c | 34 +-- src/items.c | 2 +- src/main_menu.c | 2 +- src/status.c | 4 +- src/wonder_mail_3_mid.c | 8 +- sym_ewram.txt | 2 + 18 files changed, 332 insertions(+), 340 deletions(-) create mode 100644 include/constants/common_strings_felicity_bank.h create mode 100644 src/data/common_strings_felicity_bank.h diff --git a/charmap.txt b/charmap.txt index 06798beb6..941a6c30d 100644 --- a/charmap.txt +++ b/charmap.txt @@ -1,3 +1,5 @@ +'\0' = 00 +'\n' = 0A ' ' = 20 '!' = 21 '"' = 22 @@ -250,9 +252,6 @@ SELECT_BUTTON = 87 72 87 73 START_BUTTON = 87 53 87 71 DPAD = 87 52 -'\0' = 00 -'\n' = 0A - @ Character codes escaped with a '~'. APOSTROPHE = 7E 32 37 @ ~27 COMMA = 7E 32 63 @ ~2c @@ -260,6 +259,11 @@ QUOTE_START = 7E 39 33 @ ~93 QUOTE_END = 7E 39 34 @ ~94 @ Placeholders for message arguments to swap out for names within strings. +ARG_FRIEND_AREA = 24 68 @ $h +ARG_MOVE_ITEM_0 = 24 69 30 @ $i0 +ARG_MOVE_ITEM_1 = 24 69 31 @ $i1 +ARG_VALUE_0 = 24 64 30 @ $d0 +ARG_VALUE_1 = 24 64 31 @ $d1 ARG_POKEMON_0 = 24 6D 30 @ $m0 ARG_POKEMON_1 = 24 6D 31 @ $m1 ARG_POKEMON_2 = 24 6D 32 @ $m2 @@ -269,9 +273,6 @@ ARG_POKEMON_5 = 24 6D 35 @ $m5 ARG_POKEMON_6 = 24 6D 36 @ $m6 ARG_POKEMON_7 = 24 6D 37 @ $m7 ARG_POKEMON_8 = 24 6D 38 @ $m8 -ARG_MOVE_ITEM_0 = 24 69 30 @ $i0 -ARG_MOVE_ITEM_1 = 24 69 31 @ $i1 -ARG_FRIEND_AREA = 24 68 @ $h @ TEXT MACROS @ diff --git a/data/common_strings.s b/data/common_strings.s index 5873ca04f..d46957ea4 100644 --- a/data/common_strings.s +++ b/data/common_strings.s @@ -2,254 +2,6 @@ .align 2,0 - .global gCommonFelicity -gCommonFelicity: @ 80D49E0 (Felicity Bank Dialogue) - .4byte gUnknown_80D53E0 - .4byte gUnknown_80D53C8 - .4byte gUnknown_80D538C - .4byte gUnknown_80D5380 - .4byte gUnknown_80D5364 - .4byte gUnknown_80D5364 - .4byte gUnknown_80D5340 - .4byte gUnknown_80D52F8 - .4byte gUnknown_80D527C - .4byte gUnknown_80D5244 - .4byte gUnknown_80D5224 - .4byte gUnknown_80D51DC - .4byte gUnknown_80D5184 - .4byte gUnknown_80D5158 - .4byte gUnknown_80D4FC8 - .4byte gUnknown_80D4F94 - .4byte gUnknown_80D4F74 - .4byte gUnknown_80D4F24 - .4byte gUnknown_80D4F08 - .4byte gUnknown_80D4EDC - .4byte gUnknown_80D4EB0 - .4byte gUnknown_80D4E84 - .4byte gUnknown_80D4E28 - .4byte gUnknown_80D4D8C - .4byte gUnknown_80D4D44 - .4byte gUnknown_80D4D20 - .4byte gUnknown_80D4CC0 - .4byte gUnknown_80D4C50 - .4byte gUnknown_80D4C14 - .4byte gUnknown_80D4A58 - - .global gUnknown_80D4A58 -gUnknown_80D4A58: - .string " Sssnore...\n" - .string "Ah{COMMA} you wish to know how the bank\n" - .string "operates... Very well...{EXTRA_MSG}" - .string " Zzz...\n" - .string "If you{APOSTROPHE}re defeated in a dungeon{COMMA}\n" - .string "you{APOSTROPHE}ll lose all your money. Did you know?{EXTRA_MSG}" - .string " Purr...\n" - .string "But{COMMA} you{APOSTROPHE}ve nothing to fear if you leave\n" - .string "your money with Felicity Bank...{EXTRA_MSG}" - .string " Meow... Even if you\n" - .string "return defeated from a dungeon{COMMA} your\n" - .string "money will be safe with me...{EXTRA_MSG}" - .string " Sssnore...\n" - .string "I assure you{COMMA} my bank will keep your\n" - .string "money safe...{EXTRA_MSG}" - .string " Zzz...\n" - .string "Simple{COMMA} isn{APOSTROPHE}t it...?\0" - .align 2, 0 - - .global gUnknown_80D4C14 -gUnknown_80D4C14: - .string " {POKE}... Purr...\n" - .string "Very well{COMMA} {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" - .string "Here you are.\0" - .align 2, 0 - - .global gUnknown_80D4C50 -gUnknown_80D4C50: - .string " Fnarf? Hunh...?{EXTRA_MSG}" - .string " Purr... I so do apologize{COMMA}\n" - .string "but you couldn{APOSTROPHE}t possibly carry any more\n" - .string "money with you...\0" - .align 2, 0 - - .global gUnknown_80D4CC0 -gUnknown_80D4CC0: - .string " Fnarf? Meow...?{EXTRA_MSG}" - .string " Purr...\n" - .string "I so hate to disappoint{COMMA} but you have no\n" - .string "money saved with me...\0" - .align 2, 0 - - .global gUnknown_80D4D20 -gUnknown_80D4D20: - .string " Zzz...\n" - .string "How much will you withdraw?\0" - .align 2, 0 - - .global gUnknown_80D4D44 -gUnknown_80D4D44: - .string " Zzz...\n" - .string "{COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}... Very well...{WAIT_PRESS}\n" - .string "I will guard it jealously...\0" - .align 2, 0 - - .global gUnknown_80D4D8C -gUnknown_80D4D8C: - .string " Fnarf? Purr...\n" - .string "Meow! All this money...{WAIT_PRESS}\n" - .string "Our safe is about to burst...{EXTRA_MSG}" - .string " Purr...\n" - .string "I am so sorry to say{COMMA} but I can{APOSTROPHE}t accept\n" - .string "any more of your money...\0" - .align 2, 0 - - .global gUnknown_80D4E28 -gUnknown_80D4E28: - .string " Sssnore... Hmm?{EXTRA_MSG}" - .string " Zzz...\n" - .string "I{APOSTROPHE}m so sorry to say{COMMA} but you appear not\n" - .string "to have any money...\0" - .align 2, 0 - - .global gUnknown_80D4E84 -gUnknown_80D4E84: - .string " Purr...\n" - .string "How much do you wish to deposit?\0" - .align 2, 0 - - .global gUnknown_80D4EB0 -gUnknown_80D4EB0: - .string " Zzz... Meow...\n" - .string "I await your next visit...\0" - .align 2, 0 - - .global gUnknown_80D4EDC -gUnknown_80D4EDC: - .string " Zzz... Purr...\n" - .string "I await your next visit...\0" - .align 2, 0 - - .global gUnknown_80D4F08 -gUnknown_80D4F08: - .string " Sssnore...\n" - .string "Very well...\0" - .align 2, 0 - - .global gUnknown_80D4F24 -gUnknown_80D4F24: - .string " Sssnore... Purr...\n" - .string "Your account contains {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}...\n" - .string "How may I serve you?\0" - .align 2, 0 - - .global gUnknown_80D4F74 -gUnknown_80D4F74: - .string " Zzz...\n" - .string "How may I serve you?\0" - .align 2, 0 - - .global gUnknown_80D4F94 -gUnknown_80D4F94: - .string " Ssssnore... Welcome...\n" - .string "This is Felicity Bank...\0" - .align 2, 0 - - .global gUnknown_80D4FC8 -gUnknown_80D4FC8: - .string " Ah{COMMA} you wish to know how\n" - .string "the bank operates. Very well.{EXTRA_MSG}" - .string " If you are defeated\n" - .string "in a dungeon{COMMA} you{APOSTROPHE}ll lose all your money.\n" - .string "Did you know that?{EXTRA_MSG}" - .string " But you can avoid that!{WAIT_PRESS}\n" - .string "You{APOSTROPHE}ve nothing to fear if you leave your\n" - .string "money with Felicity Bank.{EXTRA_MSG}" - .string " Even if you return\n" - .string "defeated from a dungeon{COMMA} your money will\n" - .string "be safe with me!{EXTRA_MSG}" - .string " I assure you{COMMA} my bank\n" - .string "will keep your money safe.{EXTRA_MSG}" - .string " Simple{COMMA} isn{APOSTROPHE}t it?\0" - .align 2, 0 - - .global gUnknown_80D5158 -gUnknown_80D5158: - .string " Very well{COMMA} {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" - .string "Here you are.\0" - .align 2, 0 - - .global gUnknown_80D5184 -gUnknown_80D5184: - .string " Oh?{WAIT_PRESS} I do so apologize{COMMA}\n" - .string "but you couldn{APOSTROPHE}t possibly carry any more\n" - .string "money with you.\0" - .align 2, 0 - - .global gUnknown_80D51DC -gUnknown_80D51DC: - .string " Oh?{WAIT_PRESS} I so hate to disappoint{COMMA}\n" - .string "but you have no money saved with me.\0" - .align 2, 0 - - .global gUnknown_80D5224 -gUnknown_80D5224: - .string " How much will you\n" - .string "withdraw?\0" - .align 2, 0 - - .global gUnknown_80D5244 -gUnknown_80D5244: - .string " {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}. Very well.{WAIT_PRESS}\n" - .string "I will guard it jealously.\0" - .align 2, 0 - - .global gUnknown_80D527C -gUnknown_80D527C: - .string " Meow! All this money!{WAIT_PRESS}\n" - .string "Our safe is about to burst!{EXTRA_MSG}" - .string " I am so sorry to say{COMMA} but\n" - .string "I can{APOSTROPHE}t accept any more of your money!\0" - .align 2, 0 - - .global gUnknown_80D52F8 -gUnknown_80D52F8: - .string " Oh?{WAIT_PRESS} I{APOSTROPHE}m so sorry to say{COMMA}\n" - .string "but you appear not to have any money.\0" - .align 2, 0 - - .global gUnknown_80D5340 -gUnknown_80D5340: - .string " How much do you wish to\n" - .string "deposit?\0" - .align 2, 0 - - .global gUnknown_80D5364 -gUnknown_80D5364: - .string " I await your next visit.\0" - .align 2, 0 - - .global gUnknown_80D5380 -gUnknown_80D5380: - .string " Very well.\0" - .align 2, 0 - - .global gUnknown_80D538C -gUnknown_80D538C: - .string " Your account contains\n" - .string "{COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" - .string "How may I serve you?\0" - .align 2, 0 - - .global gUnknown_80D53C8 -gUnknown_80D53C8: - .string " How may I serve you?\0" - .align 2, 0 - - .global gUnknown_80D53E0 -gUnknown_80D53E0: - .string " Welcome.\n" - .string "This is Felicity Bank.\0" - .align 2, 0 - .global gCommonKangaskhanStorage gCommonKangaskhanStorage: @ 80D5404 .4byte gUnknown_80D5E9C @@ -749,14 +501,14 @@ gUnknown_80D6364: gUnknown_80D6394: .string " Zzz... Reep{COMMA} what...?\n" .string "For all that I can buy{COMMA} I will pay\n" - .string "{COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}... OK?\0" + .string "{COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}... OK?\0" .align 2, 0 .global gUnknown_80D63E8 gUnknown_80D63E8: .string " Zzzzzz... Zzzzzz...?\n" .string "{COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}?\n" - .string "Is {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE} OK?\0" + .string "Is {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE} OK?\0" .align 2, 0 .global gUnknown_80D6420 @@ -780,7 +532,7 @@ gUnknown_80D6478: .global gUnknown_80D6494 gUnknown_80D6494: .string " Zzzzzz...\n" - .string "{COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1} is {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}...\n" + .string "{COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1} is {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}...\n" .string "OK?\0" .align 2, 0 @@ -922,14 +674,14 @@ gUnknown_80D6B18: .global gUnknown_80D6B50 gUnknown_80D6B50: .string " For all that I can buy{COMMA} I can\n" - .string "offer you {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" + .string "offer you {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" .string "Is that acceptable?\0" .align 2, 0 .global gUnknown_80D6BA0 gUnknown_80D6BA0: .string " {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}{COMMA} you say?\n" - .string "For that{COMMA} I can offer {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" + .string "For that{COMMA} I can offer {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" .string "Is that acceptable?\0" .align 2, 0 @@ -948,7 +700,7 @@ gUnknown_80D6C1C: .global gUnknown_80D6C48 gUnknown_80D6C48: .string " {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}{COMMA} you say?\n" - .string "That will be {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" + .string "That will be {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" .string "Is that acceptable?\0" .align 2, 0 @@ -1070,7 +822,7 @@ gUnknown_80D7090: .global gUnknown_80D70B4 gUnknown_80D70B4: .string " Zzzzzz... Zzzzzz...?\n" - .string "I can pay you {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}\n" + .string "I can pay you {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}\n" .string "for everything I can buy... OK?\0" .align 2, 0 @@ -1078,7 +830,7 @@ gUnknown_80D70B4: gUnknown_80D7108: .string " Zzzzzz... Zzzzzz...?\n" .string "Selling that {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}...?\n" - .string "How about {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}?\0" + .string "How about {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}?\0" .align 2, 0 .global gUnknown_80D7154 @@ -1103,7 +855,7 @@ gUnknown_80D71B0: gUnknown_80D71CC: .string " Zzz... Meep meep...\n" .string "{COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}...?\n" - .string "{COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}{COMMA} OK?\0" + .string "{COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}{COMMA} OK?\0" .align 2, 0 .global gUnknown_80D7204 @@ -1234,14 +986,14 @@ gUnknown_80D7740: .global gUnknown_80D776C gUnknown_80D776C: .string " For everything I can buy{COMMA}\n" - .string "I can offer {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" + .string "I can offer {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" .string "Is that acceptable to you?\0" .align 2, 0 .global gUnknown_80D77C0 gUnknown_80D77C0: .string " {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}?\n" - .string "I can offer you {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" + .string "I can offer you {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" .string "Will you sell it for that price?\0" .align 2, 0 @@ -1266,7 +1018,7 @@ gUnknown_80D785C: .global gUnknown_80D788C gUnknown_80D788C: .string " {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}?\n" - .string "That will be {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" + .string "That will be {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" .string "Is that to your liking?\0" .align 2, 0 @@ -1466,7 +1218,7 @@ gUnknown_80D7F7C: .global gUnknown_80D8000 gUnknown_80D8000: .string " Kwoo? {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}?\n" - .string "That{APOSTROPHE}s {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}...\n" + .string "That{APOSTROPHE}s {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}...\n" .string "OK?\0" .align 2, 0 @@ -1617,7 +1369,7 @@ gUnknown_80D86E4: .global gUnknown_80D8738 gUnknown_80D8738: .string " {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}?\n" - .string "That will be {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" + .string "That will be {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" .string "Is that OK?\0" .align 2, 0 diff --git a/data/data_80F59C8.s b/data/data_80F59C8.s index f3d0df9a3..17ad7c665 100644 --- a/data/data_80F59C8.s +++ b/data/data_80F59C8.s @@ -9671,7 +9671,7 @@ gUnknown_8100208: @ 8100208 .global gMagnitudeMessage gMagnitudeMessage: @ 810020C - .string "It{APOSTROPHE}s Magnitude $d0!\0" + .string "It{APOSTROPHE}s Magnitude {ARG_VALUE_0}!\0" .align 2, 0 .global gPtrMagnitudeMessage @@ -9707,7 +9707,7 @@ gPtrSelfHealPreventedHungerMessage: @ 8100298 .global gUnknown_810029C gUnknown_810029C: @ 810029C - .string "Rescue challenges left: $d0\0" + .string "Rescue challenges left: {ARG_VALUE_0}\0" .align 2, 0 .global gUnknown_81002B8 diff --git a/data/data_8106A4C.s b/data/data_8106A4C.s index 68c609d4e..9fd1b62f3 100644 --- a/data/data_8106A4C.s +++ b/data/data_8106A4C.s @@ -290,7 +290,7 @@ gUnknown_8106E5C: @ 8106E5C .global gUnknown_8106E6C gUnknown_8106E6C: @ 8106E6C .string "Say bye to\n" - .string "$d0 more\0" + .string "{ARG_VALUE_0} more\0" .align 2,0 .global gUnknown_8106E80 diff --git a/data/data_810AE24.s b/data/data_810AE24.s index 6a13016e6..43af008de 100644 --- a/data/data_810AE24.s +++ b/data/data_810AE24.s @@ -250,32 +250,32 @@ AllFriendAreas_810B2A4: .global NumFloorsExplored_810B2C4 NumFloorsExplored_810B2C4: -.string "$d0 floors were explored.\0" +.string "{ARG_VALUE_0} floors were explored.\0" .align 2,0 .global NumThievingAttempts_810B2E0 NumThievingAttempts_810B2E0: -.string "$d0 thieving attempts succeeded.\0" +.string "{ARG_VALUE_0} thieving attempts succeeded.\0" .align 2,0 .global NumPokemonJoined_810B304 NumPokemonJoined_810B304: -.string "$d0 Pokémon joined the team.\0" +.string "{ARG_VALUE_0} Pokémon joined the team.\0" .align 2,0 .global NumPokemonEvolved_810B324 NumPokemonEvolved_810B324: -.string "$d0 Pokémon evolved.\0" +.string "{ARG_VALUE_0} Pokémon evolved.\0" .align 2,0 .global NumFriendRescues_810B33C NumFriendRescues_810B33C: -.string "$d0 Friend Rescues were successful.\0" +.string "{ARG_VALUE_0} Friend Rescues were successful.\0" .align 2,0 .global NumMoves_810B360 NumMoves_810B360: -.string "$d0 moves were learned.\0" +.string "{ARG_VALUE_0} moves were learned.\0" .align 2,0 .global SpottedMunchlax_810B378 @@ -2461,7 +2461,7 @@ gIQSkill810DD68_Ptr: @ 810DD68 .global Level_810DD6C Level_810DD6C: - .string "Level: #>82.$d0 \0" + .string "Level: #>82.{ARG_VALUE_0} \0" .align 2,0 .global gLevel810DD6C_Ptr @@ -2470,7 +2470,7 @@ gLevel810DD6C_Ptr: @ 810DD80 .global ExpPts_810DD84 ExpPts_810DD84: - .string "Exp. Pts.: #>82.$d1 \0" + .string "Exp. Pts.: #>82.{ARG_VALUE_1} \0" .align 2,0 .global gExpPts810DD9C_Ptr @@ -2479,7 +2479,7 @@ gExpPts810DD9C_Ptr: @ 810DD9C .global ToNextLevel_810DDA0 ToNextLevel_810DDA0: - .string "To next level:#>82.$d0\0" + .string "To next level:#>82.{ARG_VALUE_0}\0" .align 2,0 .global gUnknown_810DDB8 @@ -5129,7 +5129,7 @@ gUnknown_8113870: @ 8113870 .global Level_8113874 Level_8113874: - .string "Level #>42.$d1#>64.Exp. Pts. $d0 \0" + .string "Level #>42.{ARG_VALUE_1}#>64.Exp. Pts. {ARG_VALUE_0} \0" .align 2,0 .global gUnknown_8113898 @@ -5138,7 +5138,7 @@ gUnknown_8113898: @ 8113898 .global Level_811389C Level_811389C: - .string "Level #>35.$d1#>64.Exp. Pts.$d0 \0" + .string "Level #>35.{ARG_VALUE_1}#>64.Exp. Pts.{ARG_VALUE_0} \0" .align 2,0 .global gUnknown_81138C0 @@ -5147,7 +5147,7 @@ gUnknown_81138C0: @ 81138C0 .global HP_81138C4 HP_81138C4: - .string "HP#>42.$d0 \0" + .string "HP#>42.{ARG_VALUE_0} \0" .align 2,0 .global gUnknown_81138D0 @@ -5156,7 +5156,7 @@ gUnknown_81138D0: @ 81138D0 .global Attack_81138D4 Attack_81138D4: - .string "Attack#>42.$d0 \0" + .string "Attack#>42.{ARG_VALUE_0} \0" .align 2,0 .global gUnknown_81138E4 @@ -5165,7 +5165,7 @@ gUnknown_81138E4: @ 81138E4 .global Defense_81138E8 Defense_81138E8: - .string "#>80.Defense#>128.$d1 \0" + .string "#>80.Defense#>128.{ARG_VALUE_1} \0" .align 2,0 .global gUnknown_8113900 @@ -5174,7 +5174,7 @@ gUnknown_8113900: @ 8113900 .global SpAtk_8113904 SpAtk_8113904: - .string "Sp. Atk.#>42.$d0 \0" + .string "Sp. Atk.#>42.{ARG_VALUE_0} \0" .align 2,0 .global gUnknown_8113918 @@ -5183,7 +5183,7 @@ gUnknown_8113918: @ 8113918 .global SpDef_811391C SpDef_811391C: - .string "#>80.Sp. Def.#>128.$d1 \0" + .string "#>80.Sp. Def.#>128.{ARG_VALUE_1} \0" .align 2,0 .global gUnknown_8113934 @@ -5192,7 +5192,7 @@ gUnknown_8113934: @ 8113934 .global Attack_8113938 Attack_8113938: - .string "Attack#>42.{COLOR_2 RED}$d0{END_COLOR_TEXT_2} \0" + .string "Attack#>42.{COLOR_2 RED}{ARG_VALUE_0}{END_COLOR_TEXT_2} \0" .align 2,0 .global gUnknown_8113950 @@ -5201,7 +5201,7 @@ gUnknown_8113950: @ 8113950 .global Defense_8113954 Defense_8113954: - .string "#>80.Defense#>128.{COLOR_2 RED}$d1{END_COLOR_TEXT_2} \0" + .string "#>80.Defense#>128.{COLOR_2 RED}{ARG_VALUE_1}{END_COLOR_TEXT_2} \0" .align 2,0 .global gUnknown_8113974 @@ -5210,7 +5210,7 @@ gUnknown_8113974: @ 8113974 .global SpAtk_8113978 SpAtk_8113978: - .string "Sp. Atk.#>42.{COLOR_2 RED}$d0{END_COLOR_TEXT_2} \0" + .string "Sp. Atk.#>42.{COLOR_2 RED}{ARG_VALUE_0}{END_COLOR_TEXT_2} \0" .align 2,0 .global gUnknown_8113990 @@ -5219,7 +5219,7 @@ gUnknown_8113990: @ 8113990 .global SpDef_8113994 SpDef_8113994: - .string "#>80.Sp. Def.#>128.{COLOR_2 RED}$d1{END_COLOR_TEXT_2} \0" + .string "#>80.Sp. Def.#>128.{COLOR_2 RED}{ARG_VALUE_1}{END_COLOR_TEXT_2} \0" .align 2,0 .global gUnknown_81139B4 @@ -6276,7 +6276,7 @@ gUnknown_8115960: .global PPD0Text PPD0Text: - .string "PP $d0 \0" + .string "PP {ARG_VALUE_0} \0" .global gPtrPPD0Text gPtrPPD0Text: @ 8115970 @@ -6305,9 +6305,9 @@ gUnknown_8115A2C: @ 8115A2C .global ItemLimitText_8105A30 ItemLimitText_8105A30: - .string "Only $d0 items may be brought into\n" + .string "Only {ARG_VALUE_0} items may be brought into\n" .string "this dungeon.\n" - .string "Please put away $d1 item(s).\0" + .string "Please put away {ARG_VALUE_1} item(s).\0" .align 2,0 .global gUnknown_8115A80 @@ -6316,9 +6316,9 @@ gUnknown_8115A80: @ 8115A80 .global ItemLimitAlsoText_8105A84 ItemLimitAlsoText_8105A84: - .string "Also{COMMA} only $d0 items may be brought\n" + .string "Also{COMMA} only {ARG_VALUE_0} items may be brought\n" .string "into this dungeon.\n" - .string "Please put away $d1 item(s).\0" + .string "Please put away {ARG_VALUE_1} item(s).\0" .align 2,0 .global gUnknown_8115ADC diff --git a/include/common_strings.h b/include/common_strings.h index 55cca48af..f6a285548 100644 --- a/include/common_strings.h +++ b/include/common_strings.h @@ -1,12 +1,8 @@ #ifndef GUARD_COMMON_STRINGS_H #define GUARD_COMMON_STRINGS_H -enum FelicityBankMode -{ - FELICITY_BANK_MODE_AWAKE, - FELICITY_BANK_MODE_ASLEEP, - FELICITY_BANK_MODE_COUNT -}; +#include "constants/common_strings_felicity_bank.h" + enum KangaskhanStorageMode { KANGASKHAN_STORAGE_MODE_AWAKE, @@ -67,12 +63,12 @@ extern const u8* const gCommonTripleQuestionMark[]; extern const u8* const gCommonDepositPrompt[]; extern const u8* const gCommonWithdrawPrompt[]; -extern const u8 *gCommonFelicity[FELICITY_BANK_MODE_COUNT][15]; // 80D49E0 -extern const u8 *gCommonKangaskhanStorage[KANGASKHAN_STORAGE_MODE_COUNT][20]; // 80D5404 -extern const u8 *gCommonKecleonBros[KECLEON_BROS_MODE_COUNT][23]; // 80D5EC8 -extern const u8 *gCommonWigglytuff[WIGGLYTUFF_SHOP_MODE_COUNT][20]; // 80D79A4 -extern const u8 *gCommonGulpin[GULPIN_SHOP_MODE_COUNT][25]; // 80D8888 -extern const u8 *gCommonMakuhita[MAKUHITA_DOJO_MODE_COUNT][10]; // 80D9FC8 +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 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 +extern const u8* const gCommonMakuhita[MAKUHITA_DOJO_MODE_COUNT][10]; // 80D9FC8 extern const Hints gCommonHints[MAX_HINTS]; // 80DAA98 #endif // GUARD_COMMON_STRINGS_H \ No newline at end of file diff --git a/include/constants/common_strings_felicity_bank.h b/include/constants/common_strings_felicity_bank.h new file mode 100644 index 000000000..985079f60 --- /dev/null +++ b/include/constants/common_strings_felicity_bank.h @@ -0,0 +1,30 @@ +#ifndef GUARD_COMMON_STRINGS_FELICITY_BANK_H +#define GUARD_COMMON_STRINGS_FELICITY_BANK_H + +enum FelicityBankMode +{ + FEL_MODE_AWAKE, + FEL_MODE_ASLEEP, + FEL_MODE_COUNT +}; +enum FelicityBankDialogue +{ + FEL_DLG_WELCOME_TO_FELICITY, + FEL_DLG_HOW_MAY_I_SERVE__NO_MONEY, + FEL_DLG_HOW_MAY_I_SERVE__HAS_MONEY, + FEL_DLG_VERY_WELL, + FEL_DLG_BYE__NO_MONEY, + FEL_DLG_BYE__HAS_MONEY, + FEL_DLG_DEPOSIT__HOW_MUCH, + FEL_DLG_DEPOSIT__NO_MONEY, + FEL_DLG_DEPOSIT__BANK_FULL, + FEL_DLG_DEPOSIT__RECEIPT, + FEL_DLG_WITHDRAW__HOW_MUCH, + FEL_DLG_WITHDRAW__NO_MONEY, + FEL_DLG_WITHDRAW__WALLET_FULL, + FEL_DLG_WITHDRAW__RECEIPT, + FEL_DLG_HOW_IT_WORKS, + FEL_DLG_MAX +}; + +#endif // GUARD_COMMON_STRINGS_FELICITY_BANK_H \ No newline at end of file diff --git a/include/felicity_bank.h b/include/felicity_bank.h index 9cd148241..c6867dd31 100644 --- a/include/felicity_bank.h +++ b/include/felicity_bank.h @@ -11,7 +11,7 @@ // size: 0x108 typedef struct FelicityBankWork { - /* 0x0 */ u32 isAsleep; + /* 0x0 */ u32 mode; // Corresponds to the enum: FelicityBankMode /* 0x4 */ s32 currState; /* 0x8 */ u32 fallbackState; /* 0xC */ u32 chosenAmount; diff --git a/src/common_strings.c b/src/common_strings.c index 765ab36aa..85db060f8 100644 --- a/src/common_strings.c +++ b/src/common_strings.c @@ -54,4 +54,6 @@ ALIGNED(4) static const u8 sDepositPrompt0[] = _("Deposit?"); ALIGNED(4) const u8* const gCommonDepositPrompt[] = { sDepositPrompt0 }; ALIGNED(4) static const u8 sWithdrawPrompt0[] = _("Withdraw?"); -ALIGNED(4) const u8* const gCommonWithdrawPrompt[] = { sWithdrawPrompt0 }; \ No newline at end of file +ALIGNED(4) const u8* const gCommonWithdrawPrompt[] = { sWithdrawPrompt0 }; + +// TODO: Move remaining strings/arrays from common_strings.s diff --git a/src/data/common_strings_felicity_bank.h b/src/data/common_strings_felicity_bank.h new file mode 100644 index 000000000..461fde04f --- /dev/null +++ b/src/data/common_strings_felicity_bank.h @@ -0,0 +1,209 @@ +// TODO: The strings are in reverse-order if you insert them in-line with the array creation. +// Our preprocessor doesn't ALIGNED(4) for _("") strings. It does ALIGNED(1). This is why we do it this way for now until that's fixed + +static const u8 sUnknown_80D4A58[]; +static const u8 sUnknown_80D4C14[]; +static const u8 sUnknown_80D4C50[]; +static const u8 sUnknown_80D4CC0[]; +static const u8 sUnknown_80D4D20[]; +static const u8 sUnknown_80D4D44[]; +static const u8 sUnknown_80D4D8C[]; +static const u8 sUnknown_80D4E28[]; +static const u8 sUnknown_80D4E84[]; +static const u8 sUnknown_80D4EB0[]; +static const u8 sUnknown_80D4EDC[]; +static const u8 sUnknown_80D4F08[]; +static const u8 sUnknown_80D4F24[]; +static const u8 sUnknown_80D4F74[]; +static const u8 sUnknown_80D4F94[]; +static const u8 sUnknown_80D4FC8[]; +static const u8 sUnknown_80D5158[]; +static const u8 sUnknown_80D5184[]; +static const u8 sUnknown_80D51DC[]; +static const u8 sUnknown_80D5224[]; +static const u8 sUnknown_80D5244[]; +static const u8 sUnknown_80D527C[]; +static const u8 sUnknown_80D52F8[]; +static const u8 sUnknown_80D5340[]; +static const u8 sUnknown_80D5364[]; +static const u8 sUnknown_80D5380[]; +static const u8 sUnknown_80D538C[]; +static const u8 sUnknown_80D53C8[]; +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_HOW_MAY_I_SERVE__NO_MONEY] = sUnknown_80D53C8, + [FEL_DLG_HOW_MAY_I_SERVE__HAS_MONEY] = sUnknown_80D538C, + [FEL_DLG_VERY_WELL] = sUnknown_80D5380, + [FEL_DLG_BYE__NO_MONEY] = sUnknown_80D5364, + [FEL_DLG_BYE__HAS_MONEY] = sUnknown_80D5364, + [FEL_DLG_DEPOSIT__HOW_MUCH] = sUnknown_80D5340, + [FEL_DLG_DEPOSIT__NO_MONEY] = sUnknown_80D52F8, + [FEL_DLG_DEPOSIT__BANK_FULL] = sUnknown_80D527C, + [FEL_DLG_DEPOSIT__RECEIPT] = sUnknown_80D5244, + [FEL_DLG_WITHDRAW__HOW_MUCH] = sUnknown_80D5224, + [FEL_DLG_WITHDRAW__NO_MONEY] = sUnknown_80D51DC, + [FEL_DLG_WITHDRAW__WALLET_FULL] = sUnknown_80D5184, + [FEL_DLG_WITHDRAW__RECEIPT] = sUnknown_80D5158, + [FEL_DLG_HOW_IT_WORKS] = sUnknown_80D4FC8 + }, + [FEL_MODE_ASLEEP] = { + [FEL_DLG_WELCOME_TO_FELICITY] = 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, + [FEL_DLG_BYE__NO_MONEY] = sUnknown_80D4EDC, + [FEL_DLG_BYE__HAS_MONEY] = sUnknown_80D4EB0, + [FEL_DLG_DEPOSIT__HOW_MUCH] = sUnknown_80D4E84, + [FEL_DLG_DEPOSIT__NO_MONEY] = sUnknown_80D4E28, + [FEL_DLG_DEPOSIT__BANK_FULL] = sUnknown_80D4D8C, + [FEL_DLG_DEPOSIT__RECEIPT] = sUnknown_80D4D44, + [FEL_DLG_WITHDRAW__HOW_MUCH] = sUnknown_80D4D20, + [FEL_DLG_WITHDRAW__NO_MONEY] = sUnknown_80D4CC0, + [FEL_DLG_WITHDRAW__WALLET_FULL] = sUnknown_80D4C50, + [FEL_DLG_WITHDRAW__RECEIPT] = sUnknown_80D4C14, + [FEL_DLG_HOW_IT_WORKS] = sUnknown_80D4A58 + } +}; + +ALIGNED(4) static const u8 sUnknown_80D4A58[] = _( + " Sssnore...\n" + "Ah{COMMA} you wish to know how the bank\n" + "operates... Very well...{EXTRA_MSG} Zzz...\n" + "If you{APOSTROPHE}re defeated in a dungeon{COMMA}\n" + "you{APOSTROPHE}ll lose all your money. Did you know?{EXTRA_MSG} Purr...\n" + "But{COMMA} you{APOSTROPHE}ve nothing to fear if you leave\n" + "your money with Felicity Bank...{EXTRA_MSG} Meow... Even if you\n" + "return defeated from a dungeon{COMMA} your\n" + "money will be safe with me...{EXTRA_MSG} Sssnore...\n" + "I assure you{COMMA} my bank will keep your\n" + "money safe...{EXTRA_MSG} Zzz...\n" + "Simple{COMMA} isn{APOSTROPHE}t it...?"); + +ALIGNED(4) static const u8 sUnknown_80D4C14[] = _( + " {POKE}... Purr...\n" + "Very well{COMMA} {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" + "Here you are."); + +ALIGNED(4) static const u8 sUnknown_80D4C50[] = _( + " Fnarf? Hunh...?{EXTRA_MSG} Purr... I so do apologize{COMMA}\n" + "but you couldn{APOSTROPHE}t possibly carry any more\n" + "money with you..."); + +ALIGNED(4) static const u8 sUnknown_80D4CC0[] = _( + " Fnarf? Meow...?{EXTRA_MSG} Purr...\n" + "I so hate to disappoint{COMMA} but you have no\n" + "money saved with me..."); + +ALIGNED(4) static const u8 sUnknown_80D4D20[] = _( + " Zzz...\n" + "How much will you withdraw?"); + +ALIGNED(4) static const u8 sUnknown_80D4D44[] = _( + " Zzz...\n" + "{COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}... Very well...{WAIT_PRESS}\n" + "I will guard it jealously..."); + +ALIGNED(4) static const u8 sUnknown_80D4D8C[] = _( + " Fnarf? Purr...\n" + "Meow! All this money...{WAIT_PRESS}\n" + "Our safe is about to burst...{EXTRA_MSG} Purr...\n" + "I am so sorry to say{COMMA} but I can{APOSTROPHE}t accept\n" + "any more of your money..."); + +ALIGNED(4) static const u8 sUnknown_80D4E28[] = _( + " Sssnore... Hmm?{EXTRA_MSG} Zzz...\n" + "I{APOSTROPHE}m so sorry to say{COMMA} but you appear not\n" + "to have any money..."); + +ALIGNED(4) static const u8 sUnknown_80D4E84[] = _( + " Purr...\n" + "How much do you wish to deposit?"); + +ALIGNED(4) static const u8 sUnknown_80D4EB0[] = _( + " Zzz... Meow...\n" + "I await your next visit..."); + +ALIGNED(4) static const u8 sUnknown_80D4EDC[] = _( + " Zzz... Purr...\n" + "I await your next visit..."); + +ALIGNED(4) static const u8 sUnknown_80D4F08[] = _( + " Sssnore...\n" + "Very well..."); + +ALIGNED(4) static const u8 sUnknown_80D4F24[] = _( + " Sssnore... Purr...\n" + "Your account contains {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}...\n" + "How may I serve you?"); + +ALIGNED(4) static const u8 sUnknown_80D4F74[] = _( + " Zzz...\n" + "How may I serve you?"); + +ALIGNED(4) static const u8 sUnknown_80D4F94[] = _( + " Ssssnore... Welcome...\n" + "This is Felicity Bank..."); + +ALIGNED(4) static const u8 sUnknown_80D4FC8[] = _( + " Ah{COMMA} you wish to know how\n" + "the bank operates. Very well.{EXTRA_MSG} If you are defeated\n" + "in a dungeon{COMMA} you{APOSTROPHE}ll lose all your money.\n" + "Did you know that?{EXTRA_MSG} But you can avoid that!{WAIT_PRESS}\n" + "You{APOSTROPHE}ve nothing to fear if you leave your\n" + "money with Felicity Bank.{EXTRA_MSG} Even if you return\n" + "defeated from a dungeon{COMMA} your money will\n" + "be safe with me!{EXTRA_MSG} I assure you{COMMA} my bank\n" + "will keep your money safe.{EXTRA_MSG} Simple{COMMA} isn{APOSTROPHE}t it?"); + +ALIGNED(4) static const u8 sUnknown_80D5158[] = _( + " Very well{COMMA} {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" + "Here you are."); + +ALIGNED(4) static const u8 sUnknown_80D5184[] = _( + " Oh?{WAIT_PRESS} I do so apologize{COMMA}\n" + "but you couldn{APOSTROPHE}t possibly carry any more\n" + "money with you."); + +ALIGNED(4) static const u8 sUnknown_80D51DC[] = _( + " Oh?{WAIT_PRESS} I so hate to disappoint{COMMA}\n" + "but you have no money saved with me."); + +ALIGNED(4) static const u8 sUnknown_80D5224[] = _( + " How much will you\n" + "withdraw?"); + +ALIGNED(4) static const u8 sUnknown_80D5244[] = _( + " {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}. Very well.{WAIT_PRESS}\n" + "I will guard it jealously."); + +ALIGNED(4) static const u8 sUnknown_80D527C[] = _( + " Meow! All this money!{WAIT_PRESS}\n" + "Our safe is about to burst!{EXTRA_MSG} I am so sorry to say{COMMA} but\n" + "I can{APOSTROPHE}t accept any more of your money!"); + +ALIGNED(4) static const u8 sUnknown_80D52F8[] = _( + " Oh?{WAIT_PRESS} I{APOSTROPHE}m so sorry to say{COMMA}\n" + "but you appear not to have any money."); + +ALIGNED(4) static const u8 sUnknown_80D5340[] = _( + " How much do you wish to\n" + "deposit?"); + +ALIGNED(4) static const u8 sUnknown_80D5364[] = _(" I await your next visit."); + +ALIGNED(4) static const u8 sUnknown_80D5380[] = _(" Very well."); + +ALIGNED(4) static const u8 sUnknown_80D538C[] = _( + " Your account contains\n" + "{COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" + "How may I serve you?"); + +ALIGNED(4) static const u8 sUnknown_80D53C8[] = _(" How may I serve you?"); + +ALIGNED(4) static const u8 sUnknown_80D53E0[] = _( + " Welcome.\n" + "This is Felicity Bank."); \ No newline at end of file diff --git a/src/data/other_menus1.h b/src/data/other_menus1.h index 56b8bb95c..99cae4f1d 100644 --- a/src/data/other_menus1.h +++ b/src/data/other_menus1.h @@ -106,7 +106,7 @@ static const MenuItem sUnknown_80E6760[4] = { }; ALIGNED(4) static const u8 sUnknown_80E6780[] = _("{CENTER_ALIGN}please try again."); ALIGNED(4) static const u8 sUnknown_80E6794[] = _("{CENTER_ALIGN}Check the Game Link cable and"); -ALIGNED(4) static const u8 sUnknown_80E67B4[] = _("{CENTER_ALIGN}#C2Communication error!{END_COLOR_TEXT_1} "); +ALIGNED(4) static const u8 sUnknown_80E67B4[] = _("{CENTER_ALIGN}{COLOR_1 RED}Communication error!{END_COLOR_TEXT_1} "); static const UnkTextStruct2 sUnknown_80E67D4 = { 0, 0, 0, 0, @@ -166,7 +166,7 @@ static const MenuItem sUnknown_80E68B4[4] = { }; ALIGNED(4) static const u8 sUnknown_80E68D4[] = _("{CENTER_ALIGN}someone{APOSTROPHE}s storage space was full."); ALIGNED(4) static const u8 sUnknown_80E68FC[] = _("{CENTER_ALIGN}An item could not be transferred because"); -ALIGNED(4) static const u8 sUnknown_80E6928[] = _("{CENTER_ALIGN}#C2Error!{END_COLOR_TEXT_1} "); +ALIGNED(4) static const u8 sUnknown_80E6928[] = _("{CENTER_ALIGN}{COLOR_1 RED}Error!{END_COLOR_TEXT_1} "); static const UnkTextStruct2 sUnknown_80E6938 = { 0, 0, 0, 0, diff --git a/src/data/trade_items_menu.h b/src/data/trade_items_menu.h index 8bb112d2f..bd6fe0e13 100644 --- a/src/data/trade_items_menu.h +++ b/src/data/trade_items_menu.h @@ -64,7 +64,7 @@ static const MenuItem sUnknown_80E618C[3] = { ALIGNED(4) static const u8 sWhatDoPrompt[] = "What would you like to do? "; ALIGNED(4) static const u8 sPleaseChooseItem[] = "Please choose the item to be sent."; ALIGNED(4) static const u8 sFmtWillBeSentPrompt[] = _( - "{COLOR_1 LIGHT_BLUE}$d0{END_COLOR_TEXT_1} {COLOR_1 GREEN_2}{ARG_MOVE_ITEM_0}(s){END_COLOR_TEXT_1}\n" + "{COLOR_1 LIGHT_BLUE}{ARG_VALUE_0}{END_COLOR_TEXT_1} {COLOR_1 GREEN_2}{ARG_MOVE_ITEM_0}(s){END_COLOR_TEXT_1}\n" "will be sent.\n" "Is that OK?"); @@ -85,10 +85,10 @@ ALIGNED(4) static const u8 sInCommunication[] = _( ALIGNED(4) static const u8 sFmtYouReceived[] = _( "You received\n" - "{COLOR_1 LIGHT_BLUE}$d0{END_COLOR_TEXT_1} {COLOR_1 GREEN_2}{ARG_MOVE_ITEM_0}(s){END_COLOR_TEXT_1}.\n" + "{COLOR_1 LIGHT_BLUE}{ARG_VALUE_0}{END_COLOR_TEXT_1} {COLOR_1 GREEN_2}{ARG_MOVE_ITEM_0}(s){END_COLOR_TEXT_1}.\n" "Your adventure will be saved."); -ALIGNED(4) static const u8 sFmtYouSent[] = _("You sent {COLOR_1 LIGHT_BLUE}$d0{END_COLOR_TEXT_1} {COLOR_1 GREEN_2}{ARG_MOVE_ITEM_0}(s){END_COLOR_TEXT_1}."); +ALIGNED(4) static const u8 sFmtYouSent[] = _("You sent {COLOR_1 LIGHT_BLUE}{ARG_VALUE_0}{END_COLOR_TEXT_1} {COLOR_1 GREEN_2}{ARG_MOVE_ITEM_0}(s){END_COLOR_TEXT_1}."); // Trade Items Menu Link Error Messages ALIGNED(4) static const u8 sCommunicationError[] = "There was a communication error."; diff --git a/src/felicity_bank.c b/src/felicity_bank.c index 640688aaa..cc046916d 100644 --- a/src/felicity_bank.c +++ b/src/felicity_bank.c @@ -39,13 +39,13 @@ bool8 CreateFelicityBank(s32 mode) sub_800641C(NULL, TRUE, TRUE); sFelicityBankWork = MemoryAlloc(sizeof(FelicityBankWork), 8); sFelicityBankWork->menuAction = 0; - sFelicityBankWork->isAsleep = mode; + sFelicityBankWork->mode = mode; CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_PERSIAN); CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_PERSIAN); monName = GetMonSpecies(MONSTER_PERSIAN); strcpy(gUnknown_202E1C8 - 80, monName); - if (sFelicityBankWork->isAsleep == 1) + if (sFelicityBankWork->mode == FEL_MODE_ASLEEP) sFelicityBankWork->unkA4 = NULL; else sFelicityBankWork->unkA4 = &sFelicityBankWork->faceFile; @@ -149,49 +149,49 @@ static void UpdateFelicityBankDialogue(void) switch (sFelicityBankWork->currState) { case 0: sFelicityBankWork->fallbackState = 1; - sub_80141B4(gCommonFelicity[sFelicityBankWork->isAsleep][0], 0, sFelicityBankWork->unkA4, 0x10D); + sub_80141B4(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_WELCOME_TO_FELICITY], 0, sFelicityBankWork->unkA4, 0x10D); break; case 1: CreateFelicityBankShopMenu(); sFelicityBankWork->fallbackState = 2; if (gTeamInventoryRef->teamSavings == 0) - sub_8014248(gCommonFelicity[sFelicityBankWork->isAsleep][1], 0, sFelicityBankWork->menuAction, + sub_8014248(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_HOW_MAY_I_SERVE__NO_MONEY], 0, sFelicityBankWork->menuAction, sFelicityBankWork->unk14, sFelicityBankWork->unk54, 4, 0, sFelicityBankWork->unkA4, 0xC); else { gUnknown_202DE30 = gTeamInventoryRef->teamSavings; - sub_8014248(gCommonFelicity[sFelicityBankWork->isAsleep][2], 0, sFelicityBankWork->menuAction, + sub_8014248(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_HOW_MAY_I_SERVE__HAS_MONEY], 0, sFelicityBankWork->menuAction, sFelicityBankWork->unk14, sFelicityBankWork->unk54, 4, 0, sFelicityBankWork->unkA4, 0xC); } break; case 3: sFelicityBankWork->fallbackState = 1; - sub_80141B4(gCommonFelicity[sFelicityBankWork->isAsleep][14], 0, sFelicityBankWork->unkA4, 0x10D); + sub_80141B4(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_HOW_IT_WORKS], 0, sFelicityBankWork->unkA4, 0x10D); break; case 4: sFelicityBankWork->fallbackState = 6; if (gTeamInventoryRef->teamSavings == 0) - sub_80141B4(gCommonFelicity[sFelicityBankWork->isAsleep][4], 0, sFelicityBankWork->unkA4, 0x10D); + sub_80141B4(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_BYE__NO_MONEY], 0, sFelicityBankWork->unkA4, 0x10D); else { gUnknown_202DE30 = gTeamInventoryRef->teamSavings; - sub_80141B4(gCommonFelicity[sFelicityBankWork->isAsleep][5], 0, sFelicityBankWork->unkA4, 0x10D); + sub_80141B4(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_BYE__HAS_MONEY], 0, sFelicityBankWork->unkA4, 0x10D); } break; case 5: sFelicityBankWork->fallbackState = 1; - sub_80141B4(gCommonFelicity[sFelicityBankWork->isAsleep][3], 0, sFelicityBankWork->unkA4, 0x10D); + sub_80141B4(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_VERY_WELL], 0, sFelicityBankWork->unkA4, 0x10D); break; case 7: if (gTeamInventoryRef->teamMoney == 0) { sFelicityBankWork->fallbackState = 1; - sub_80141B4(gCommonFelicity[sFelicityBankWork->isAsleep][7], 0, sFelicityBankWork->unkA4, 0x10D); + sub_80141B4(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_DEPOSIT__NO_MONEY], 0, sFelicityBankWork->unkA4, 0x10D); } else if (gTeamInventoryRef->teamSavings >= MAX_TEAM_SAVINGS) { sFelicityBankWork->fallbackState = 1; - sub_80141B4(gCommonFelicity[sFelicityBankWork->isAsleep][8], 0, sFelicityBankWork->unkA4, 0x10D); + sub_80141B4(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_DEPOSIT__BANK_FULL], 0, sFelicityBankWork->unkA4, 0x10D); } else { sFelicityBankWork->fallbackState = 8; - sub_80141B4(gCommonFelicity[sFelicityBankWork->isAsleep][6], 0, sFelicityBankWork->unkA4, 0x10D); + sub_80141B4(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_DEPOSIT__HOW_MUCH], 0, sFelicityBankWork->unkA4, 0x10D); } break; case 8: @@ -212,21 +212,21 @@ static void UpdateFelicityBankDialogue(void) case 9: sFelicityBankWork->fallbackState = 1; gUnknown_202DE30 = sFelicityBankWork->chosenAmount; - sub_80141B4(gCommonFelicity[sFelicityBankWork->isAsleep][9], 0, sFelicityBankWork->unkA4, 0x10D); + sub_80141B4(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_DEPOSIT__RECEIPT], 0, sFelicityBankWork->unkA4, 0x10D); break; case 10: if (gTeamInventoryRef->teamMoney >= MAX_TEAM_MONEY) { sFelicityBankWork->fallbackState = 1; - sub_80141B4(gCommonFelicity[sFelicityBankWork->isAsleep][12], 0, sFelicityBankWork->unkA4, 0x10D); + sub_80141B4(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_WITHDRAW__WALLET_FULL], 0, sFelicityBankWork->unkA4, 0x10D); } else if (gTeamInventoryRef->teamSavings == 0) { sFelicityBankWork->fallbackState = 1; - sub_80141B4(gCommonFelicity[sFelicityBankWork->isAsleep][11], 0, sFelicityBankWork->unkA4, 0x10D); + sub_80141B4(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_WITHDRAW__NO_MONEY], 0, sFelicityBankWork->unkA4, 0x10D); } else { sFelicityBankWork->fallbackState = 11; gUnknown_202DE30 = gTeamInventoryRef->teamSavings; - sub_80141B4(gCommonFelicity[sFelicityBankWork->isAsleep][10], 0, sFelicityBankWork->unkA4, 0x10D); + sub_80141B4(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_WITHDRAW__HOW_MUCH], 0, sFelicityBankWork->unkA4, 0x10D); } break; case 11: @@ -250,7 +250,7 @@ static void UpdateFelicityBankDialogue(void) case 12: sFelicityBankWork->fallbackState = 1; gUnknown_202DE30 = sFelicityBankWork->chosenAmount; - sub_80141B4(gCommonFelicity[sFelicityBankWork->isAsleep][13], 0, sFelicityBankWork->unkA4, 0x10D); + sub_80141B4(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_WITHDRAW__RECEIPT], 0, sFelicityBankWork->unkA4, 0x10D); break; } } diff --git a/src/items.c b/src/items.c index ed121b076..7c7a319d4 100644 --- a/src/items.c +++ b/src/items.c @@ -22,7 +22,7 @@ extern u16 gGummiStatBoostLUT[]; extern u8 gUnknown_202DE58[]; extern u32 gUnknown_202DE30; extern u8* gPtrTypeText; // ptr to "Type\0" -extern u8* gPtrPPD0Text; // ptr to "PP $d0 \0" +extern u8* gPtrPPD0Text; // ptr to "PP {ARG_VALUE_0} \0" extern u32 gUnknown_810A3F0[100]; extern u32 gUnknown_81097E8[4]; // some sort of lookup table (16, 18, 20, 22) extern u32 gUnknown_81097F8[4]; // some sort of lookup table (17, 19, 21, 23) diff --git a/src/main_menu.c b/src/main_menu.c index 9f2b3fdb9..cbf4382ea 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -303,7 +303,7 @@ const MenuItem gUnknown_80E5DF0[] = { {0, 0xFFDD} }; -static const u8 sUnknown_80E5E08[] = _("#C2Beware#R! This will delete it forever!"); +static const u8 sUnknown_80E5E08[] = _("{COLOR_1 RED}Beware{END_COLOR_TEXT_1}! This will delete it forever!"); static const u8 sUnknown_80E5E34[] = "This will delete your saved game data."; const MenuItem gUnknown_80E5E5C[] = { diff --git a/src/status.c b/src/status.c index df26e8153..eb9139d51 100644 --- a/src/status.c +++ b/src/status.c @@ -688,7 +688,7 @@ void HealTargetHP(Entity *pokemon, Entity *target, s32 param_3, s32 param_4, boo if (sub_8045888(target) != 0) { r8 = maxHPStat; } - sub_80522F4(pokemon,target,*gUnknown_80FB240); // m0$'s max HP rose by $d1 + sub_80522F4(pokemon,target,*gUnknown_80FB240); // m0$'s max HP rose by {ARG_VALUE_1} } if (HP != 0) { if (sub_8045888(target) != 0) { @@ -699,7 +699,7 @@ void HealTargetHP(Entity *pokemon, Entity *target, s32 param_3, s32 param_4, boo sub_80522F4(pokemon,target,*gUnknown_80FB1E0); // $m0 was fully healed } else { - sub_80522F4(pokemon,target,*gUnknown_80FB1C4); // $m0 recovered $d0 HP + sub_80522F4(pokemon,target,*gUnknown_80FB1C4); // $m0 recovered {ARG_VALUE_0} HP } } } diff --git a/src/wonder_mail_3_mid.c b/src/wonder_mail_3_mid.c index ce9506e89..923af2224 100644 --- a/src/wonder_mail_3_mid.c +++ b/src/wonder_mail_3_mid.c @@ -162,15 +162,15 @@ const UnkTextStruct2 gUnknown_80E041C = { ALIGNED(4) const u8 gUnknown_80E0434[] = _( " Here{APOSTROPHE}s your reward!\n" - "{COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}!"); + "{COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}!"); ALIGNED(4) const u8 gUnknown_80E045C[] = _( "{CENTER_ALIGN}{COLOR_1 YELLOW_5}{ARG_POKEMON_0}{END_COLOR_TEXT_1} received\n" - "{CENTER_ALIGN}{COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}."); + "{CENTER_ALIGN}{COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}."); ALIGNED(4) const u8 gUnknown_80E0484[] = _( "{CENTER_ALIGN}{COLOR_1 YELLOW_5}{ARG_POKEMON_0}{END_COLOR_TEXT_1}{APOSTROPHE}s team received\n" - "{CENTER_ALIGN}{COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}."); + "{CENTER_ALIGN}{COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}."); ALIGNED(4) const u8 gUnknown_80E04B4[]= _( " As your reward{COMMA} you can\n" @@ -202,7 +202,7 @@ ALIGNED(4) const u8 gUnknown_80E0640[] = _( ALIGNED(4) const u8 gUnknown_80E0670[] = _( "{CENTER_ALIGN}Rescue Team {COLOR_1 LIGHT_BLUE}$t{END_COLOR_TEXT_1}\n" - "{CENTER_ALIGN}gained {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} rescue points."); + "{CENTER_ALIGN}gained {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} rescue points."); ALIGNED(4) const u8 gUnknown_80E06A8[] = _( "{CENTER_ALIGN}Congratulations!{EXTRA_MSG}" diff --git a/sym_ewram.txt b/sym_ewram.txt index e2344f283..cf560acd7 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -250,6 +250,8 @@ gUnknown_202DE28: /* 202DE28 (save) */ .space 0x4 .align 4 +/* gUnknown_202DE30[0] seems to be the s32 value to insert in place of "$d0" (ARG_VALUE_0) in strings */ +/* gUnknown_202DE30[1] is used for "$d1" (ARG_VALUE_1). "$d2" is not in any strings so it may not exist */ gUnknown_202DE30: /* 202DE30 */ .space 0x28 From 53d035662c0e1f7c97adb8169074d54ae726ef58 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Mon, 11 Sep 2023 19:23:37 -0400 Subject: [PATCH 09/47] BRO HOW DID IT EXCLUDE THIS --- src/common_strings.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/common_strings.c b/src/common_strings.c index 85db060f8..ad05e8b69 100644 --- a/src/common_strings.c +++ b/src/common_strings.c @@ -57,3 +57,5 @@ ALIGNED(4) static const u8 sWithdrawPrompt0[] = _("Withdraw?"); 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 From 1d539e7b3bbaa3aa144b30381294a5660a53e1a5 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Mon, 11 Sep 2023 23:25:58 -0400 Subject: [PATCH 10/47] Fix incorrect shift for SpriteOAM --- include/sprite_oam.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/sprite_oam.h b/include/sprite_oam.h index 424c44c98..0f08fef1f 100644 --- a/include/sprite_oam.h +++ b/include/sprite_oam.h @@ -59,7 +59,7 @@ typedef struct SpriteOAM #define SPRITEOAM_MASK_MATRIXNUM (SPRITEOAM_MAX_MATRIXNUM << SPRITEOAM_SHIFT_MATRIXNUM) #define SPRITEOAM_MAX_SIZE 3 -#define SPRITEOAM_SHIFT_SIZE 12 +#define SPRITEOAM_SHIFT_SIZE 14 #define SPRITEOAM_MASK_SIZE (SPRITEOAM_MAX_SIZE << SPRITEOAM_SHIFT_SIZE) // attrib3 From 56f5aca297c1210c60aa97f6fe97109ec37babad Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Tue, 12 Sep 2023 00:25:01 -0400 Subject: [PATCH 11/47] Match sub_8039174 --- src/rescue_password_menu.c | 67 ++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 36 deletions(-) diff --git a/src/rescue_password_menu.c b/src/rescue_password_menu.c index bad35cafe..d057accc4 100644 --- a/src/rescue_password_menu.c +++ b/src/rescue_password_menu.c @@ -684,52 +684,47 @@ u32 sub_8039068(u32 mailMode, u8 *passwordBuffer, unkStruct_203B480 *param_3) void sub_8039174(void) { - u16 temp; - #ifndef NONMATCHING - register u32 r2 asm("r2"); - #else - u32 r2; // r4 but should be r2 - #endif //NONMATCHING - SpriteOAM* spr; // r2 but should be r3 - u16 r4; // r3 but should be r4 + struct SpriteOAM* spr; + s32 temp; + s32 test1; + s32 test2; + s32 test3; + s32 test4; + s16 earlyF; spr = &gRescuePasswordMenu->unk208; - spr->attrib1 &= ~SPRITEOAM_MASK_AFFINEMODE1; + spr->atrib1 &= ~SPRITEOAM_MASK_AFFINEMODE1; + spr->atrib1 &= ~SPRITEOAM_MASK_AFFINEMODE2; + spr->atrib1 &= ~SPRITEOAM_MASK_OBJMODE; + spr->atrib1 &= ~SPRITEOAM_MASK_MOSAIC; + spr->atrib1 &= ~SPRITEOAM_MASK_BPP; - spr->attrib1 &= ~SPRITEOAM_MASK_AFFINEMODE2; + test1 = 1 << SPRITEOAM_SHIFT_SHAPE; + spr->atrib1 &= ~SPRITEOAM_MASK_SHAPE; + spr->atrib1 |= test1; + while(0); - spr->attrib1 &= ~SPRITEOAM_MASK_OBJMODE; + test2 = 0x3F0 << SPRITEOAM_SHIFT_TILENUM; + spr->atrib3 &= ~SPRITEOAM_MASK_TILENUM; + spr->atrib3 |= test2; + while(0); - spr->attrib1 &= ~SPRITEOAM_MASK_MOSAIC; + spr->atrib3 &= ~SPRITEOAM_MASK_PRIORITY; - spr->attrib1 &= ~SPRITEOAM_MASK_BPP; + earlyF = (s16)~SPRITEOAM_MASK_UNK6_B; - r2 = 1 << SPRITEOAM_SHIFT_SHAPE; - spr->attrib1 &= ~SPRITEOAM_MASK_SHAPE; - spr->attrib1 |= r2; + test3 = 15 << SPRITEOAM_SHIFT_PALETTENUM; + spr->atrib3 &= ~SPRITEOAM_MASK_PALETTENUM; + spr->atrib3 |= test3; + while(0); - r2 = 0x3F0 << SPRITEOAM_SHIFT_TILENUM; - spr->attrib3 &= ~SPRITEOAM_MASK_TILENUM; - spr->attrib3 |= r2; + test4 = 0; + spr->atrib2 = test4; - spr->attrib3 &= ~SPRITEOAM_MASK_PRIORITY; - - r2 = (u16)~SPRITEOAM_MASK_UNK6_4; - - r4 = 15 << SPRITEOAM_SHIFT_PALETTENUM; - spr->attrib3 &= ~SPRITEOAM_MASK_PALETTENUM; - spr->attrib3 |= r4; - - #ifndef NONMATCHING - while (0) ; - #endif //NONMATCHING - spr->attrib2 = 0; // Without the while(0), this 0 is loaded super early and also into r3 - - temp = 192 << SPRITEOAM_SHIFT_UNK6_4; - r2 &= spr->unk6; - r2 |= temp; - spr->unk6 = r2; + temp = 192 << SPRITEOAM_SHIFT_UNK6_B; + spr->unk6 &= earlyF; + spr->unk6 |= temp; } void sub_80391F8(void) From d93c4ee60aa1c7472546241a9fa9a17169cc3433 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Tue, 12 Sep 2023 01:40:03 -0400 Subject: [PATCH 12/47] Oops --- src/rescue_password_menu.c | 60 ++++++++++++++++++++------------------ 1 file changed, 31 insertions(+), 29 deletions(-) diff --git a/src/rescue_password_menu.c b/src/rescue_password_menu.c index d057accc4..711ca8d5d 100644 --- a/src/rescue_password_menu.c +++ b/src/rescue_password_menu.c @@ -685,46 +685,48 @@ u32 sub_8039068(u32 mailMode, u8 *passwordBuffer, unkStruct_203B480 *param_3) void sub_8039174(void) { struct SpriteOAM* spr; - s32 temp; - s32 test1; - s32 test2; - s32 test3; - s32 test4; s16 earlyF; spr = &gRescuePasswordMenu->unk208; - spr->atrib1 &= ~SPRITEOAM_MASK_AFFINEMODE1; - spr->atrib1 &= ~SPRITEOAM_MASK_AFFINEMODE2; - spr->atrib1 &= ~SPRITEOAM_MASK_OBJMODE; - spr->atrib1 &= ~SPRITEOAM_MASK_MOSAIC; - spr->atrib1 &= ~SPRITEOAM_MASK_BPP; + spr->attrib1 &= ~SPRITEOAM_MASK_AFFINEMODE1; + spr->attrib1 &= ~SPRITEOAM_MASK_AFFINEMODE2; + spr->attrib1 &= ~SPRITEOAM_MASK_OBJMODE; + spr->attrib1 &= ~SPRITEOAM_MASK_MOSAIC; + spr->attrib1 &= ~SPRITEOAM_MASK_BPP; - test1 = 1 << SPRITEOAM_SHIFT_SHAPE; - spr->atrib1 &= ~SPRITEOAM_MASK_SHAPE; - spr->atrib1 |= test1; - while(0); + { + s32 temp = 1 << SPRITEOAM_SHIFT_SHAPE; + spr->attrib1 &= ~SPRITEOAM_MASK_SHAPE; + spr->attrib1 |= temp; + } while(0); - test2 = 0x3F0 << SPRITEOAM_SHIFT_TILENUM; - spr->atrib3 &= ~SPRITEOAM_MASK_TILENUM; - spr->atrib3 |= test2; - while(0); + { + s32 temp = 0x3F0 << SPRITEOAM_SHIFT_TILENUM; + spr->attrib3 &= ~SPRITEOAM_MASK_TILENUM; + spr->attrib3 |= temp; + } while(0); - spr->atrib3 &= ~SPRITEOAM_MASK_PRIORITY; + spr->attrib3 &= ~SPRITEOAM_MASK_PRIORITY; - earlyF = (s16)~SPRITEOAM_MASK_UNK6_B; + earlyF = (s16)~SPRITEOAM_MASK_UNK6_4; - test3 = 15 << SPRITEOAM_SHIFT_PALETTENUM; - spr->atrib3 &= ~SPRITEOAM_MASK_PALETTENUM; - spr->atrib3 |= test3; - while(0); + { + s32 temp = 15 << SPRITEOAM_SHIFT_PALETTENUM; + spr->attrib3 &= ~SPRITEOAM_MASK_PALETTENUM; + spr->attrib3 |= temp; + } while(0); - test4 = 0; - spr->atrib2 = test4; + { + s32 temp = 0; + spr->attrib2 = temp; + } while(0); - temp = 192 << SPRITEOAM_SHIFT_UNK6_B; - spr->unk6 &= earlyF; - spr->unk6 |= temp; + { + s32 temp = 192 << SPRITEOAM_SHIFT_UNK6_4; + spr->unk6 &= earlyF; + spr->unk6 |= temp; + } while(0); } void sub_80391F8(void) From 11d12d5012470758dad9b1be76b2d37552617618 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Tue, 12 Sep 2023 08:27:10 -0400 Subject: [PATCH 13/47] Match sub_8013AA0, gCommonKangStorage --- asm/code_80130A8.s | 141 ------- data/common_strings.s | 366 +++--------------- include/code_80130A8.h | 5 +- include/common_strings.h | 9 +- .../constants/common_strings_felicity_bank.h | 2 +- .../common_strings_kangaskhan_storage.h | 35 ++ include/debug_menu2.h | 12 +- include/debug_menu4.h | 11 +- include/felicity_bank.h | 11 +- include/kangaskhan_storage1.h | 37 +- include/kangaskhan_storage2.h | 11 +- include/menu.h | 20 + include/menu_input.h | 4 +- include/trade_items_menu.h | 11 +- src/code_801C620.c | 1 - src/common_strings.c | 3 +- src/data/common_strings_felicity_bank.h | 4 +- src/data/common_strings_kangaskhan_storage.h | 271 +++++++++++++ src/debug_menu2.c | 26 +- src/debug_menu4.c | 26 +- src/felicity_bank.c | 56 +-- src/kangaskhan_storage1.c | 148 +++---- src/kangaskhan_storage2.c | 28 +- src/menu_input.c | 70 +++- src/other_menus1.c | 2 +- src/save_menu.c | 2 +- src/trade_items_menu.c | 41 +- src/unk_menu_203B360.c | 2 +- 28 files changed, 644 insertions(+), 711 deletions(-) create mode 100644 include/constants/common_strings_kangaskhan_storage.h create mode 100644 src/data/common_strings_kangaskhan_storage.h 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 From efadf60a61727c8053486e3510854e4acc82cd98 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Tue, 12 Sep 2023 08:58:10 -0400 Subject: [PATCH 14/47] Match sub_8013BBC --- asm/code_80130A8.s | 86 ------------------------------------------ include/code_80130A8.h | 3 +- include/menu_input.h | 1 + src/menu_input.c | 42 +++++++++++++++++++++ src/wigglytuff_shop.c | 3 +- 5 files changed, 46 insertions(+), 89 deletions(-) diff --git a/asm/code_80130A8.s b/asm/code_80130A8.s index 6893221d9..0bb02cdb9 100644 --- a/asm/code_80130A8.s +++ b/asm/code_80130A8.s @@ -5,92 +5,6 @@ .text - thumb_func_start sub_8013BBC -sub_8013BBC: - push {r4-r7,lr} - adds r7, r0, 0 - adds r4, r7, 0 - adds r4, 0x26 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - adds r0, r7, 0 - bl sub_8013D10 - ldrb r1, [r4] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08013C26 - movs r2, 0x80 - lsls r2, 6 - ldrh r1, [r7, 0x2A] - ldr r4, _08013C38 - adds r0, r4, 0 - ands r0, r1 - orrs r0, r2 - strh r0, [r7, 0x2A] - adds r5, r7, 0 - adds r5, 0x28 - movs r6, 0x80 - lsls r6, 1 - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0 - movs r3, 0 - bl AddSprite - ldrh r0, [r7, 0x2A] - ands r4, r0 - strh r4, [r7, 0x2A] - ldrh r1, [r7, 0x2E] - ldr r0, _08013C3C - lsrs r1, 4 - adds r1, 0x10 - ands r1, r0 - lsls r1, 4 - ldrh r2, [r7, 0x2E] - movs r0, 0xF - ands r0, r2 - orrs r0, r1 - strh r0, [r7, 0x2E] - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0 - movs r3, 0 - bl AddSprite -_08013C26: - adds r0, r7, 0 - bl sub_8013DD0 - lsls r0, 24 - cmp r0, 0 - beq _08013C40 - movs r0, 0x1 - b _08013C62 - .align 2, 0 -_08013C38: .4byte 0x0000c1ff -_08013C3C: .4byte 0x00000fff -_08013C40: - bl sub_8012AE8 - cmp r0, 0x1 - beq _08013C56 - cmp r0, 0x2 - bne _08013C60 - movs r0, 0x1 - bl PlayMenuSoundEffect - movs r0, 0x2 - b _08013C62 -_08013C56: - movs r0, 0 - bl PlayMenuSoundEffect - movs r0, 0x3 - b _08013C62 -_08013C60: - movs r0, 0 -_08013C62: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8013BBC - thumb_func_start sub_8013C68 sub_8013C68: push {r4-r6,lr} diff --git a/include/code_80130A8.h b/include/code_80130A8.h index 1fc127e52..f7e90c498 100644 --- a/include/code_80130A8.h +++ b/include/code_80130A8.h @@ -6,8 +6,9 @@ #include "text.h" // code_80130A8.s -extern u32 sub_8013BBC(unkStructFor8013AA0 *); extern void sub_8013C68(unkStructFor8013AA0 *); +extern void sub_8013D10(unkStructFor8013AA0 *); +extern bool8 sub_8013DD0(unkStructFor8013AA0 *); extern void sub_8013F84(void); extern void sub_80140B4(UnkTextStruct2 *); extern void sub_80140DC(void); diff --git a/include/menu_input.h b/include/menu_input.h index 07b721822..6993a8529 100644 --- a/include/menu_input.h +++ b/include/menu_input.h @@ -53,5 +53,6 @@ void AddMenuCursorSprite_(MenuInputStruct *, u32); void nullsub_34(MenuInputStructSub *); void sub_8013AA0(unkStructFor8013AA0 *); +u32 sub_8013BBC(unkStructFor8013AA0 *); #endif // GUARD_MENU_INPUT_H \ No newline at end of file diff --git a/src/menu_input.c b/src/menu_input.c index 8a1064aca..56843f28f 100644 --- a/src/menu_input.c +++ b/src/menu_input.c @@ -1244,4 +1244,46 @@ void sub_8013AA0(unkStructFor8013AA0 *a0) while (sp[a0->unk24] == 0 && a0->unk24 != 0) a0->unk24--; +} + +u32 sub_8013BBC(unkStructFor8013AA0 *a0) +{ + a0->unk26++; + + sub_8013D10(a0); + + if (a0->unk26 & 8) { + { + s32 temp = 16 << SPRITEOAM_SHIFT_MATRIXNUM; + a0->unk28.attrib2 &= ~SPRITEOAM_MASK_MATRIXNUM; + a0->unk28.attrib2 |= temp; + } + AddSprite(&a0->unk28, 0x100, NULL, NULL); + + a0->unk28.attrib2 &= ~SPRITEOAM_MASK_MATRIXNUM; + { + u32 temp = a0->unk28.unk6; + s32 max = SPRITEOAM_MAX_UNK6_4; + temp >>= SPRITEOAM_SHIFT_UNK6_4; + temp += 16; + temp &= max; + temp <<= SPRITEOAM_SHIFT_UNK6_4; + a0->unk28.unk6 &= ~SPRITEOAM_MASK_UNK6_4; + a0->unk28.unk6 |= temp; + } + AddSprite(&a0->unk28, 0x100, NULL, NULL); + } + + if (sub_8013DD0(a0)) + return 1; + + switch (sub_8012AE8()) { + case 2: + PlayMenuSoundEffect(1); + return 2; + case 1: + PlayMenuSoundEffect(0); + return 3; + } + return 0; } \ No newline at end of file diff --git a/src/wigglytuff_shop.c b/src/wigglytuff_shop.c index e4ab8617b..b42d8c8a2 100644 --- a/src/wigglytuff_shop.c +++ b/src/wigglytuff_shop.c @@ -22,6 +22,7 @@ #include "event_flag.h" #include "exclusive_pokemon.h" #include "common_strings.h" +#include "code_80118A4.h" // TODO: This file was originally 3 files. Split properly // 4 files if you count code_8023144.s @@ -131,8 +132,6 @@ s32 sub_8021664(void); void sub_8021410(void); s32 sub_8021B58(s16 species); -extern void PlayMenuSoundEffect(u32); - // split1 bool8 sub_80211AC(u32 mode, u32 param_2) From d41f643fdbf2689eb7f3ef53043ec54724c38bcf Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Wed, 13 Sep 2023 01:42:28 -0400 Subject: [PATCH 15/47] Match sub_8013C68 --- asm/code_80130A8.s | 93 ------------------------------------------ include/code_80130A8.h | 1 - include/menu_input.h | 1 + src/menu_input.c | 25 +++++++++++- 4 files changed, 25 insertions(+), 95 deletions(-) diff --git a/asm/code_80130A8.s b/asm/code_80130A8.s index 0bb02cdb9..659346406 100644 --- a/asm/code_80130A8.s +++ b/asm/code_80130A8.s @@ -5,99 +5,6 @@ .text - thumb_func_start sub_8013C68 -sub_8013C68: - push {r4-r6,lr} - sub sp, 0x2C - adds r5, r0, 0 - ldr r1, [r5] - ldr r2, [r5, 0x10] - add r0, sp, 0x4 - bl ConvertToDecimal - ldr r0, [r5, 0x10] - subs r4, r0, 0x1 - cmp r4, 0 - ble _08013CA0 - lsls r0, r4, 2 - mov r1, sp - adds r1, r0 - adds r1, 0x4 - ldr r0, [r1] - cmp r0, 0 - bne _08013CA0 - movs r2, 0xFF -_08013C90: - str r2, [r1] - subs r1, 0x4 - subs r4, 0x1 - cmp r4, 0 - ble _08013CA0 - ldr r0, [r1] - cmp r0, 0 - beq _08013C90 -_08013CA0: - movs r4, 0 - adds r0, r5, 0 - adds r0, 0x25 - adds r6, r0, 0 - b _08013CDA -_08013CAA: - lsls r0, r4, 2 - add r0, sp - adds r0, 0x4 - ldr r0, [r0] - cmp r0, 0xFF - bne _08013CBA - movs r3, 0x2A - b _08013CC0 -_08013CBA: - adds r0, 0x30 - lsls r0, 24 - lsrs r3, r0, 24 -_08013CC0: - adds r4, 0x1 - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 2 - ldr r0, [r5, 0x1C] - subs r0, r1 - ldr r1, [r5, 0x20] - ldr r2, [r5, 0x14] - str r2, [sp] - adds r2, r3, 0 - movs r3, 0x7 - bl sub_8012C60 -_08013CDA: - ldrb r0, [r6] - cmp r4, r0 - blt _08013CAA - movs r4, 0 - b _08013D02 -_08013CE4: - ldr r0, [r5, 0x14] - adds r4, 0x1 - lsls r2, r4, 1 - adds r2, r4 - lsls r2, 2 - ldr r1, [r5, 0x1C] - subs r1, r2 - subs r1, 0x1 - ldr r2, [r5, 0x20] - adds r2, 0xA - movs r3, 0x5 - str r3, [sp] - movs r3, 0xB - bl sub_800792C -_08013D02: - ldr r0, [r5, 0x10] - cmp r4, r0 - blt _08013CE4 - add sp, 0x2C - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8013C68 - thumb_func_start sub_8013D10 sub_8013D10: push {r4-r7,lr} diff --git a/include/code_80130A8.h b/include/code_80130A8.h index f7e90c498..ef1ecd5fb 100644 --- a/include/code_80130A8.h +++ b/include/code_80130A8.h @@ -6,7 +6,6 @@ #include "text.h" // code_80130A8.s -extern void sub_8013C68(unkStructFor8013AA0 *); extern void sub_8013D10(unkStructFor8013AA0 *); extern bool8 sub_8013DD0(unkStructFor8013AA0 *); extern void sub_8013F84(void); diff --git a/include/menu_input.h b/include/menu_input.h index 6993a8529..ca05fdcc8 100644 --- a/include/menu_input.h +++ b/include/menu_input.h @@ -54,5 +54,6 @@ void nullsub_34(MenuInputStructSub *); void sub_8013AA0(unkStructFor8013AA0 *); u32 sub_8013BBC(unkStructFor8013AA0 *); +void sub_8013C68(unkStructFor8013AA0 *); #endif // GUARD_MENU_INPUT_H \ No newline at end of file diff --git a/src/menu_input.c b/src/menu_input.c index 56843f28f..9129c6109 100644 --- a/src/menu_input.c +++ b/src/menu_input.c @@ -1028,7 +1028,6 @@ void sub_8013818(MenuInputStruct *param_1, s32 param_2, u32 param_3, s32 param_4 sub_80137F8(param_1, 12); } - void sub_8013848(MenuInputStruct *param_1, s32 param_2, u32 param_3, s32 param_4) { param_1->unk0 = param_4; @@ -1286,4 +1285,28 @@ u32 sub_8013BBC(unkStructFor8013AA0 *a0) return 3; } return 0; +} + +void sub_8013C68(unkStructFor8013AA0 *a0) +{ + u8 ch; + s32 i; + s32 sp[10]; + + ConvertToDecimal(sp, a0->unk0, a0->unk10); + + for (i = a0->unk10 - 1; i > 0 && sp[i] == 0; i--) + sp[i] = 0xFF; + + for (i = 0; i < a0->unk25; i++) { + if (sp[i] == 0xFF) + ch = '*'; + else + ch = '0' + sp[i]; + + sub_8012C60(a0->unk1C - ((i + 1) * 12), a0->unk20, ch, 7, a0->unk14); + } + + for (i = 0; i < a0->unk10; i++) + sub_800792C(a0->unk14, a0->unk1C - ((i + 1) * 12) - 1, a0->unk20 + 10, 11, 5); } \ No newline at end of file From 7e2926f75c532195784b5d058f46659a72a04220 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Wed, 13 Sep 2023 02:48:56 -0400 Subject: [PATCH 16/47] Match sub_8013D10 --- asm/code_80130A8.s | 104 ----------------------------------------- include/code_80130A8.h | 1 - include/menu_input.h | 1 + src/menu_input.c | 40 ++++++++++++++++ 4 files changed, 41 insertions(+), 105 deletions(-) diff --git a/asm/code_80130A8.s b/asm/code_80130A8.s index 659346406..d41ae56ec 100644 --- a/asm/code_80130A8.s +++ b/asm/code_80130A8.s @@ -5,110 +5,6 @@ .text - thumb_func_start sub_8013D10 -sub_8013D10: - push {r4-r7,lr} - adds r6, r0, 0 - ldr r0, [r6, 0x14] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 3 - ldr r0, _08013D34 - adds r7, r1, r0 - adds r4, r6, 0 - adds r4, 0x24 - ldrb r5, [r4] - bl sub_8012AE8 - cmp r0, 0x9 - beq _08013D38 - cmp r0, 0xA - beq _08013D4E - b _08013D62 - .align 2, 0 -_08013D34: .4byte gUnknown_2027370 -_08013D38: - ldrb r1, [r4] - adds r0, r6, 0 - adds r0, 0x25 - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - bge _08013D4A - adds r0, r1, 0x1 - b _08013D5C -_08013D4A: - movs r0, 0 - b _08013D60 -_08013D4E: - ldrb r0, [r4] - cmp r0, 0 - bne _08013D5A - adds r0, r6, 0 - adds r0, 0x25 - ldrb r0, [r0] -_08013D5A: - subs r0, 0x1 -_08013D5C: - lsls r0, 24 - lsrs r0, 24 -_08013D60: - adds r5, r0, 0 -_08013D62: - adds r4, r6, 0 - adds r4, 0x24 - ldrb r0, [r4] - cmp r5, r0 - beq _08013D7C - strb r5, [r4] - movs r0, 0x3 - bl PlayMenuSoundEffect - adds r1, r6, 0 - adds r1, 0x26 - movs r0, 0x8 - strb r0, [r1] -_08013D7C: - ldrb r0, [r4] - adds r0, 0x1 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - ldr r2, [r6, 0x1C] - subs r2, r1 - movs r1, 0 - ldrsh r0, [r7, r1] - lsls r0, 3 - adds r2, r0 - subs r2, 0x3 - ldr r0, _08013DC8 - ands r2, r0 - ldrh r1, [r6, 0x2A] - movs r0, 0xFE - lsls r0, 8 - ands r0, r1 - orrs r0, r2 - strh r0, [r6, 0x2A] - movs r1, 0x2 - ldrsh r0, [r7, r1] - lsls r0, 3 - ldr r1, [r6, 0x20] - adds r1, r0 - subs r1, 0x7 - ldr r0, _08013DCC - ands r1, r0 - lsls r1, 4 - ldrh r2, [r6, 0x2E] - movs r0, 0xF - ands r0, r2 - orrs r0, r1 - strh r0, [r6, 0x2E] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08013DC8: .4byte 0x000001ff -_08013DCC: .4byte 0x00000fff - thumb_func_end sub_8013D10 - thumb_func_start sub_8013DD0 sub_8013DD0: push {r4,r5,lr} diff --git a/include/code_80130A8.h b/include/code_80130A8.h index ef1ecd5fb..659a32413 100644 --- a/include/code_80130A8.h +++ b/include/code_80130A8.h @@ -6,7 +6,6 @@ #include "text.h" // code_80130A8.s -extern void sub_8013D10(unkStructFor8013AA0 *); extern bool8 sub_8013DD0(unkStructFor8013AA0 *); extern void sub_8013F84(void); extern void sub_80140B4(UnkTextStruct2 *); diff --git a/include/menu_input.h b/include/menu_input.h index ca05fdcc8..9a8993999 100644 --- a/include/menu_input.h +++ b/include/menu_input.h @@ -55,5 +55,6 @@ void nullsub_34(MenuInputStructSub *); void sub_8013AA0(unkStructFor8013AA0 *); u32 sub_8013BBC(unkStructFor8013AA0 *); void sub_8013C68(unkStructFor8013AA0 *); +void sub_8013D10(unkStructFor8013AA0 *); #endif // GUARD_MENU_INPUT_H \ No newline at end of file diff --git a/src/menu_input.c b/src/menu_input.c index 9129c6109..a3757c783 100644 --- a/src/menu_input.c +++ b/src/menu_input.c @@ -1309,4 +1309,44 @@ void sub_8013C68(unkStructFor8013AA0 *a0) for (i = 0; i < a0->unk10; i++) sub_800792C(a0->unk14, a0->unk1C - ((i + 1) * 12) - 1, a0->unk20 + 10, 11, 5); +} + +void sub_8013D10(unkStructFor8013AA0 *a0) +{ + u8 uVar4; + UnkTextStruct1 *ptr; + + ptr = &gUnknown_2027370[a0->unk14]; + uVar4 = a0->unk24; + + switch (sub_8012AE8()) { + case 9: + uVar4 = a0->unk24 < a0->unk25 - 1 ? a0->unk24 + 1 : 0; + break; + case 10: + uVar4 = a0->unk24 == 0 ? a0->unk25 - 1 : a0->unk24 - 1; + break; + } + + if (uVar4 != a0->unk24) { + a0->unk24 = uVar4; + PlayMenuSoundEffect(3); + a0->unk26 = 8; + } + + { + s32 temp = (a0->unk1C - ((a0->unk24 + 1) * 12) + (ptr->unk0 * 8)) - 3; + temp &= SPRITEOAM_MAX_X; + temp <<= SPRITEOAM_SHIFT_X; + a0->unk28.attrib2 &= ~SPRITEOAM_MASK_X; + a0->unk28.attrib2 |= temp; + } while (0); + + { + s32 temp = a0->unk20 + (ptr->unk2 * 8) - 7; + temp &= SPRITEOAM_MAX_UNK6_4; + temp <<= SPRITEOAM_SHIFT_UNK6_4; + a0->unk28.unk6 &= ~SPRITEOAM_MASK_UNK6_4; + a0->unk28.unk6 |= temp; + } while (0); } \ No newline at end of file From 2b74ea0c1ad16a32fe2d5b38465bd300900c200a Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Wed, 13 Sep 2023 04:10:45 -0400 Subject: [PATCH 17/47] Match sub_8013DD0 --- asm/code_80130A8.s | 71 ------------------------------------------ data/data_80D47B8.s | 11 +++++-- include/code_80130A8.h | 1 - src/menu_input.c | 40 ++++++++++++++++++++++++ 4 files changed, 49 insertions(+), 74 deletions(-) diff --git a/asm/code_80130A8.s b/asm/code_80130A8.s index d41ae56ec..0b058ce9e 100644 --- a/asm/code_80130A8.s +++ b/asm/code_80130A8.s @@ -5,77 +5,6 @@ .text - thumb_func_start sub_8013DD0 -sub_8013DD0: - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_8012AE8 - cmp r0, 0x7 - beq _08013DE4 - cmp r0, 0x8 - beq _08013E10 - movs r0, 0 - b _08013E4C -_08013DE4: - ldr r2, [r4] - ldr r0, [r4, 0xC] - cmp r2, r0 - beq _08013E18 - ldr r1, _08013E0C - adds r0, r4, 0 - adds r0, 0x24 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - adds r5, r2, r0 - movs r0, 0x3 - bl PlayMenuSoundEffect - ldr r0, [r4, 0xC] - cmp r5, r0 - bgt _08013E3E - b _08013E48 - .align 2, 0 -_08013E0C: .4byte gUnknown_80D4830 -_08013E10: - ldr r2, [r4] - ldr r0, [r4, 0x8] - cmp r2, r0 - bne _08013E22 -_08013E18: - movs r0, 0x2 - bl PlayMenuSoundEffect - movs r0, 0 - b _08013E4C -_08013E22: - ldr r1, _08013E44 - adds r0, r4, 0 - adds r0, 0x24 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - subs r5, r2, r0 - movs r0, 0x3 - bl PlayMenuSoundEffect - ldr r0, [r4, 0x8] - cmp r5, r0 - bge _08013E48 -_08013E3E: - str r0, [r4] - b _08013E4A - .align 2, 0 -_08013E44: .4byte gUnknown_80D4830 -_08013E48: - str r5, [r4] -_08013E4A: - movs r0, 0x1 -_08013E4C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8013DD0 - thumb_func_start sub_8013E54 sub_8013E54: push {r4-r6,lr} diff --git a/data/data_80D47B8.s b/data/data_80D47B8.s index d993e653d..9ccab5220 100644 --- a/data/data_80D47B8.s +++ b/data/data_80D47B8.s @@ -44,8 +44,15 @@ gUnknown_80D4828: @ 80D4828 .global gUnknown_80D4830 gUnknown_80D4830: @ 80D4830 - .byte 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0xe8, 0x03, 0x00, 0x00, 0x10, 0x27, 0x00, 0x00, 0xa0, 0x86, 0x01, 0x00, 0x40, 0x42, 0x0f, 0x00, 0x80, 0x96, 0x98, 0x00 - .byte 0x00, 0xe1, 0xf5, 0x05 + .4byte 1 + .4byte 10 + .4byte 100 + .4byte 1000 + .4byte 10000 + .4byte 100000 + .4byte 1000000 + .4byte 10000000 + .4byte 100000000 @ END code_80130A8 #1 diff --git a/include/code_80130A8.h b/include/code_80130A8.h index 659a32413..f9158894f 100644 --- a/include/code_80130A8.h +++ b/include/code_80130A8.h @@ -6,7 +6,6 @@ #include "text.h" // code_80130A8.s -extern bool8 sub_8013DD0(unkStructFor8013AA0 *); extern void sub_8013F84(void); extern void sub_80140B4(UnkTextStruct2 *); extern void sub_80140DC(void); diff --git a/src/menu_input.c b/src/menu_input.c index a3757c783..7cf7ea5cd 100644 --- a/src/menu_input.c +++ b/src/menu_input.c @@ -14,6 +14,7 @@ // data_80D47B8.s extern const u8 gUnknown_80D4828[]; +extern const s32 gUnknown_80D4830[9]; // text.s extern s32 sub_8008ED0(const u8 *); @@ -22,6 +23,7 @@ extern s16 sub_8009614(u32, u32); static void sub_8013134(MenuInputStruct *, u32, u32); static void sub_801332C(s16 *); static void sub_8013470(MenuInputStruct *); +static bool8 sub_8013DD0(unkStructFor8013AA0 *); ALIGNED(4) static const char fill_save7[] = _("pksdir0"); const u32 gDefaultMenuTextColors[3] = { COLOR_WHITE_2, COLOR_RED, COLOR_RED }; @@ -1349,4 +1351,42 @@ void sub_8013D10(unkStructFor8013AA0 *a0) a0->unk28.unk6 &= ~SPRITEOAM_MASK_UNK6_4; a0->unk28.unk6 |= temp; } while (0); +} + +static bool8 sub_8013DD0(unkStructFor8013AA0 *a0) +{ + s32 iVar2; + + switch (sub_8012AE8()) { + case 7: + if (a0->unk0 == a0->unkC) { + PlayMenuSoundEffect(2); + return FALSE; + } + + iVar2 = a0->unk0 + gUnknown_80D4830[a0->unk24]; + PlayMenuSoundEffect(3); + + if (iVar2 > a0->unkC) + a0->unk0 = a0->unkC; + else + a0->unk0 = iVar2; + return TRUE; + case 8: + if (a0->unk0 == a0->unk8) { + PlayMenuSoundEffect(2); + return FALSE; + } + + iVar2 = a0->unk0 - gUnknown_80D4830[a0->unk24]; + PlayMenuSoundEffect(3); + + if (iVar2 < a0->unk8) + a0->unk0 = a0->unk8; + else + a0->unk0 = iVar2; + return TRUE; + default: + return FALSE; + } } \ No newline at end of file From 805fa045a797d7daddb7b03c29211b4c36f4035b Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Thu, 14 Sep 2023 21:38:05 -0400 Subject: [PATCH 18/47] Split credits --- asm/code_80130A8.s | 5 + data/{text/credits.inc => credits1.s} | 96 ++++++++- data/data_80D47B8.s | 8 +- data/{data_80E2068.s => friend_rescue.s} | 108 +--------- include/code_8098BDC.h | 3 + include/credits1.h | 29 +++ include/credits2.h | 15 ++ include/event_flag.h | 1 + include/main_menu.h | 9 + include/menu_input.h | 9 - ld_script.txt | 7 +- src/code.c | 1 - src/code_2.c | 1 - src/code_80972F4.c | 1 - src/credits.c | 246 --------------------- src/credits1.c | 141 ++++++++++++ src/credits2.c | 78 +++++++ src/data/credits2.h | 14 ++ src/ground_main.c | 1 - src/ground_map.c | 2 +- src/main_menu.c | 264 ++++++++++++----------- src/wigglytuff_shop.c | 38 ++-- sym_ewram2.txt | 3 +- 23 files changed, 560 insertions(+), 520 deletions(-) rename data/{text/credits.inc => credits1.s} (92%) rename data/{data_80E2068.s => friend_rescue.s} (93%) create mode 100644 include/credits1.h create mode 100644 include/credits2.h delete mode 100644 src/credits.c create mode 100644 src/credits1.c create mode 100644 src/credits2.c create mode 100644 src/data/credits2.h diff --git a/asm/code_80130A8.s b/asm/code_80130A8.s index 0b058ce9e..b6212f12d 100644 --- a/asm/code_80130A8.s +++ b/asm/code_80130A8.s @@ -324,6 +324,11 @@ _080140BC: _080140D8: .4byte gUnknown_80D47C8 thumb_func_end sub_80140B4 + +@ May be the start of a new file, since menu_input data has been used already + + + thumb_func_start sub_80140DC sub_80140DC: push {lr} diff --git a/data/text/credits.inc b/data/credits1.s similarity index 92% rename from data/text/credits.inc rename to data/credits1.s index 0e6ea9f6f..9133b7063 100644 --- a/data/text/credits.inc +++ b/data/credits1.s @@ -1,3 +1,95 @@ + .section .rodata + +@ credits1.c +.string "pksdir0\0" +.align 2,0 + + + .global gUnknown_80E4A10 +gUnknown_80E4A10: @ 80E4A10 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E4A28 +gUnknown_80E4A28: @ 80E4A28 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x02, 0x00, 0x00, 0x00 + .byte 0x02, 0x00, 0x02, 0x00 + .byte 0x1a, 0x00, 0x10, 0x00 + .byte 0x10, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E4A40 +gUnknown_80E4A40: @ 80E4A40 + .byte 0x18, 0x18 + .byte 0x38, 0x00 + .byte 0x21, 0xff + .byte 0x22, 0xff + .byte 0x23, 0xff + .byte 0x24, 0xff + .byte 0x25, 0xff + .byte 0x26, 0xff + .byte 0x27, 0xff + .byte 0x28, 0xff + .byte 0x29, 0xff + .byte 0x2a, 0xff + .byte 0x2b, 0xff + .byte 0x2c, 0xff + .byte 0x2d, 0xff + .byte 0x2e, 0xff + .byte 0x2f, 0xff + .byte 0x30, 0xff + .byte 0x31, 0xff + .byte 0x32, 0xff + .byte 0x33, 0xff + .byte 0x34, 0xff + .byte 0x35, 0xff + .byte 0x36, 0xff + .byte 0x37, 0xff + .byte 0x38, 0xff + .byte 0x39, 0xff + .byte 0x3a, 0xff + .byte 0x41, 0xff + .byte 0x42, 0xff + .byte 0x43, 0xff + .byte 0x44, 0xff + .byte 0x45, 0xff + .byte 0x46, 0xff + .byte 0x47, 0xff + .byte 0x48, 0xff + .byte 0x49, 0xff + .byte 0x4a, 0xff + .byte 0x4b, 0xff + .byte 0x4c, 0xff + .byte 0x4d, 0xff + .byte 0x4e, 0xff + .byte 0x4f, 0xff + .byte 0x50, 0xff + .byte 0x51, 0xff + .byte 0x52, 0xff + .byte 0x53, 0xff + .byte 0x54, 0xff + .byte 0x55, 0xff + .byte 0x56, 0xff + .byte 0x57, 0xff + .byte 0x58, 0xff + .byte 0x59, 0xff + .byte 0x5a, 0xff + .byte 0x10, 0xff + .byte 0x11, 0xff + .byte 0x12, 0xff + .byte 0x13, 0xff + .byte 0x14, 0xff + .byte 0x15, 0xff + .byte 0x16, 0xff + .byte 0x17, 0xff + .byte 0x18, 0xff + .byte 0x19, 0xff + @ Actual Start of Credits .global Credits_StaffCredits Credits_StaffCredits: @@ -915,6 +1007,4 @@ gCreditsTable: @ 80E591C .4byte Credits_OriginalDirector .4byte Credits_Producers .4byte Credits_ExecutiveProducer - .4byte Credits_ExecutiveProducer2 - .string "pksdir0\0" - .align 2,0 + .4byte Credits_ExecutiveProducer2 \ No newline at end of file diff --git a/data/data_80D47B8.s b/data/data_80D47B8.s index 9ccab5220..81388dc98 100644 --- a/data/data_80D47B8.s +++ b/data/data_80D47B8.s @@ -1,6 +1,6 @@ .section .rodata -@ START code_80130A8 #1 (probably part of menu_input because the "pksdir0" is in there) +@ START menu_input .align 2, 0 .global UnkData_80D47C4 @@ -54,9 +54,9 @@ gUnknown_80D4830: @ 80D4830 .4byte 10000000 .4byte 100000000 -@ END code_80130A8 #1 +@ END menu_input -@ START code_80130A8 #2 +@ START code_80130A8 .asciz "pksdir0" .global gUnknown_80D485C @@ -155,4 +155,4 @@ gUnknown_80D4908: @ 80D4908 gUnknown_80D4910: @ 80D4910 .string "$\0" -@ END code_80130A8 #2 \ No newline at end of file +@ END code_80130A8 \ No newline at end of file diff --git a/data/data_80E2068.s b/data/friend_rescue.s similarity index 93% rename from data/data_80E2068.s rename to data/friend_rescue.s index cd14806ab..d42b65fb0 100644 --- a/data/data_80E2068.s +++ b/data/friend_rescue.s @@ -1,5 +1,7 @@ .section .rodata +@ friend_rescue.c + .global gUnknown_80E2068 gUnknown_80E2068: @ 80E2068 .4byte GoRescue_80E20AC @@ -1129,108 +1131,4 @@ gUnknown_80E499C: @ 80E499C gUnknown_80E49C4: @ 80E49C4 .string "This password does not appear to be\n" .string "that of a {COLOR_1 LIGHT_BLUE}Thank-You Mail{END_COLOR_TEXT_1}.\0" -.align 2,0 -.string "pksdir0\0" -.align 2,0 - - - .global gUnknown_80E4A10 -gUnknown_80E4A10: @ 80E4A10 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E4A28 -gUnknown_80E4A28: @ 80E4A28 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x00 - .byte 0x1a, 0x00, 0x10, 0x00 - .byte 0x10, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E4A40 -gUnknown_80E4A40: @ 80E4A40 - .byte 0x18, 0x18 - .byte 0x38, 0x00 - .byte 0x21, 0xff - .byte 0x22, 0xff - .byte 0x23, 0xff - .byte 0x24, 0xff - .byte 0x25, 0xff - .byte 0x26, 0xff - .byte 0x27, 0xff - .byte 0x28, 0xff - .byte 0x29, 0xff - .byte 0x2a, 0xff - .byte 0x2b, 0xff - .byte 0x2c, 0xff - .byte 0x2d, 0xff - .byte 0x2e, 0xff - .byte 0x2f, 0xff - .byte 0x30, 0xff - .byte 0x31, 0xff - .byte 0x32, 0xff - .byte 0x33, 0xff - .byte 0x34, 0xff - .byte 0x35, 0xff - .byte 0x36, 0xff - .byte 0x37, 0xff - .byte 0x38, 0xff - .byte 0x39, 0xff - .byte 0x3a, 0xff - .byte 0x41, 0xff - .byte 0x42, 0xff - .byte 0x43, 0xff - .byte 0x44, 0xff - .byte 0x45, 0xff - .byte 0x46, 0xff - .byte 0x47, 0xff - .byte 0x48, 0xff - .byte 0x49, 0xff - .byte 0x4a, 0xff - .byte 0x4b, 0xff - .byte 0x4c, 0xff - .byte 0x4d, 0xff - .byte 0x4e, 0xff - .byte 0x4f, 0xff - .byte 0x50, 0xff - .byte 0x51, 0xff - .byte 0x52, 0xff - .byte 0x53, 0xff - .byte 0x54, 0xff - .byte 0x55, 0xff - .byte 0x56, 0xff - .byte 0x57, 0xff - .byte 0x58, 0xff - .byte 0x59, 0xff - .byte 0x5a, 0xff - .byte 0x10, 0xff - .byte 0x11, 0xff - .byte 0x12, 0xff - .byte 0x13, 0xff - .byte 0x14, 0xff - .byte 0x15, 0xff - .byte 0x16, 0xff - .byte 0x17, 0xff - .byte 0x18, 0xff - .byte 0x19, 0xff - - #include "text/credits.inc" - - .global gUnknown_80E5990 -gUnknown_80E5990: @ 80E5990 - .byte 0x06, 0x02 - .byte 0x40, 0x00 - .byte 0x80, 0x00 - .byte 0x10, 0x00 - .byte 0x20, 0x00 - .byte 0x01, 0x00 - .byte 0x02, 0x00 - .byte 0x00, 0x00 - .string "pksdir0\0" - .align 2,0 - +.align 2,0 \ No newline at end of file diff --git a/include/code_8098BDC.h b/include/code_8098BDC.h index 1567849af..49bfdc684 100644 --- a/include/code_8098BDC.h +++ b/include/code_8098BDC.h @@ -5,5 +5,8 @@ extern void sub_80993D8(void); extern void sub_80993E4(void); extern void sub_8099690(u32); +extern void sub_8099A5C(u32, u32, u32); +extern void sub_8099AFC(u32, u32, u32); +extern u8 sub_8099B94(void); #endif // GUARD_CODE_8098BDC_H \ No newline at end of file diff --git a/include/credits1.h b/include/credits1.h new file mode 100644 index 000000000..eecd55d44 --- /dev/null +++ b/include/credits1.h @@ -0,0 +1,29 @@ +#ifndef GUARD_CREDITS1_H +#define GUARD_CREDITS1_H + +#include "text.h" + +// size: 0x6C +typedef struct Credits1Work +{ + UnkTextStruct2 unk0[4]; + s32 unk60; + s32 unk64; + /* 0x68 */ s32 creditsCategoryIndex; +} Credits1Work; + +// size: 0xC +typedef struct CreditsData +{ + /* 0x0 */ s16 type; + /* 0x2 */ s16 x; + /* 0x4 */ s16 y; + /* 0x8 */ u8 *text; +} CreditsData; + +bool8 DrawCredits(s32 creditsCategoryIndex, s32); + +s32 sub_8035574(void); +void sub_803565C(void); + +#endif // GUARD_CREDITS1_H \ No newline at end of file diff --git a/include/credits2.h b/include/credits2.h new file mode 100644 index 000000000..3e57f03b5 --- /dev/null +++ b/include/credits2.h @@ -0,0 +1,15 @@ +#ifndef GUARD_CREDITS2_H +#define GUARD_CREDITS2_H + +// size: 0x8 +typedef struct Credits2Work +{ + /* 0x0 */ u32 state; + u32 unk4; // timer for not holding any inputs +} Credits2Work; + +bool8 sub_8035678(void); +u32 sub_80356A0(void); +void sub_8035758(void); + +#endif // GUARD_CREDITS2_H \ No newline at end of file diff --git a/include/event_flag.h b/include/event_flag.h index 8bda1139d..03e6f0af0 100644 --- a/include/event_flag.h +++ b/include/event_flag.h @@ -33,6 +33,7 @@ void sub_8002758(s32 r0); u8 sub_800276C(void); // event_flag.s +extern void sub_80015C0(u32, u32); extern u32 sub_8001658(u32, u32); #endif // GUARD_EVENT_FLAG_H diff --git a/include/main_menu.h b/include/main_menu.h index 6bb68c7f2..b1b5455db 100644 --- a/include/main_menu.h +++ b/include/main_menu.h @@ -36,6 +36,15 @@ enum MainMenuScreens MENU_NO_SCREEN_CHANGE = 65500 }; +// size: 0x1A8 +typedef struct unkStruct_203B34C +{ + u32 unk0; + MenuStruct unk4[4]; + UnkTextStruct2 unk144[4]; + /* 0x1A4 */ u32 currMenuChoice; +} unkStruct_203B34C; + // size: 0x8 typedef struct unkStruct_8035D94 { diff --git a/include/menu_input.h b/include/menu_input.h index 9a8993999..8dcb2919a 100644 --- a/include/menu_input.h +++ b/include/menu_input.h @@ -4,15 +4,6 @@ #include "menu.h" #include "text.h" -// size: 0x1A8 -struct unkStruct_203B34C -{ - u32 unk0; - MenuStruct unk4[4]; - UnkTextStruct2 unk144[4]; - /* 0x1A4 */ u32 currMenuChoice; -}; - u32 sub_8012A64(MenuInputStructSub *r0, s32 r1); s32 GetKeyPress(MenuInputStruct *r0); s32 sub_8012AE8(void); diff --git a/ld_script.txt b/ld_script.txt index d0ba2d31a..fb47e7477 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -147,7 +147,8 @@ SECTIONS { src/code_8031D70.o(.text); src/adventure_log.o(.text); src/friend_rescue.o(.text); - src/credits.o(.text); + src/credits1.o(.text); + src/credits2.o(.text); src/main_menu.o(.text); src/trade_items_menu.o(.text); src/other_menus1.o(.text); @@ -442,7 +443,9 @@ SECTIONS { src/post_office_guide2.o(.rodata); src/code_8031D70.o(.rodata); src/adventure_log.o(.rodata); - data/data_80E2068.o(.rodata); + data/friend_rescue.o(.rodata); + data/credits1.o(.rodata); + src/credits2.o(.rodata); src/main_menu.o(.rodata); src/trade_items_menu.o(.rodata); src/other_menus1.o(.rodata); diff --git a/src/code.c b/src/code.c index 936db6fe4..35602e813 100644 --- a/src/code.c +++ b/src/code.c @@ -50,7 +50,6 @@ struct unkStruct_80B7394 }; extern struct unkStruct_80B7394 gUnknown_80B7394[]; -extern void sub_80015C0(u32, u32); extern void sub_800199C(u32, s32, u32, s32); extern void sub_80018D8(u32, u32, u32); extern void sub_80972F4(void); diff --git a/src/code_2.c b/src/code_2.c index 755cf17b0..480086be1 100644 --- a/src/code_2.c +++ b/src/code_2.c @@ -39,7 +39,6 @@ extern void LoadMailInfo(void); extern void sub_800DAAC(void); extern void sub_800135C(void); extern void xxx_script_related_8001334(u32); -extern void sub_80015C0(u32, u32); extern void LoadTitleScreen(void); extern void sub_80095CC(u32, u32); extern s32 GetFirstIndexofMailType(u8); diff --git a/src/code_80972F4.c b/src/code_80972F4.c index d9d83e2d1..0fe55f8f0 100644 --- a/src/code_80972F4.c +++ b/src/code_80972F4.c @@ -23,7 +23,6 @@ void RestoreWonderMail(struct unkStruct_8094924 *a, WonderMail *b); extern s32 sub_8096EB0(WonderMail *); extern void SaveDungeonLocation(struct unkStruct_8094924*, DungeonLocation*); extern void RestoreDungeonLocation(struct unkStruct_8094924*, DungeonLocation*); -extern void sub_80015C0(u8, u8); extern u32 sub_8001784(u32, u32, u16); extern void GeneratePelipperJobs(void); extern void sub_80018D8(u8, u8, u32); diff --git a/src/credits.c b/src/credits.c deleted file mode 100644 index 91cb9a8a6..000000000 --- a/src/credits.c +++ /dev/null @@ -1,246 +0,0 @@ -#include "global.h" -#include "code_8098BDC.h" -#include "event_flag.h" -#include "input.h" -#include "memory.h" -#include "text1.h" -#include "text2.h" - -// size: 0x6C -struct unkCreditsStruct_203B340 -{ - UnkTextStruct2 unk0[4]; - s32 unk60; // Unsure if s32/u32/ptr - s32 unk64; - /* 0x68 */ s32 creditsCategoryIndex; -}; - -// size: 0x8 -struct unkCreditsStruct_203B344 -{ - /* 0x0 */ u32 state; // state variable - u32 unk4; // timer? -}; - -// size: 0xC -struct CreditsData -{ - /* 0x0 */ s16 type; - s16 x; - s16 y; - /* 0x8 */ u8 *text; -}; - -EWRAM_DATA_2 struct unkCreditsStruct_203B340 *gUnknown_203B340 = {0}; -EWRAM_DATA_2 struct unkCreditsStruct_203B344 *gUnknown_203B344 = {0}; - -extern UnkTextStruct2 gUnknown_80E4A10; -extern UnkTextStruct2 gUnknown_80E4A28; -extern const u32 gUnknown_80E4A40[]; -extern struct CreditsData* gCreditsTable[27]; -extern u16 gUnknown_80E5990[]; - -extern void sub_80015C0(u32, u32); -extern void sub_8099A5C(u32, u32, u32); -extern void sub_8099AFC(u32, u32, u32); -extern u8 sub_8099B94(); - -// Unsure if param_2 is a s32/u32/ptr -s32 DrawCredits(s32 creditsCategoryIndex, s32 param_2) -{ - s32 i; - s32 x; - s32 y; - struct CreditsData *cred; - u8 *srcText; - u8 *destText1; - u8 *destText2; - u8 curChar; - u8 buffer[128]; - - gUnknown_203B340 = MemoryAlloc(sizeof(struct unkCreditsStruct_203B340), 8); - gUnknown_203B340->unk60 = 0; - gUnknown_203B340->unk64 = param_2; - gUnknown_203B340->creditsCategoryIndex = creditsCategoryIndex; - - for (i = 0; i < 4; i++) - gUnknown_203B340->unk0[i] = gUnknown_80E4A10; - gUnknown_203B340->unk0[0] = gUnknown_80E4A28; - - ResetUnusedInputStruct(); - sub_800641C(&gUnknown_203B340->unk0[0], TRUE, TRUE); - sub_8099690(2); - sub_80073B8(0); - - cred = creditsCategoryIndex[gCreditsTable]; // WTF - y = 0; - while (cred->text != NULL) { - srcText = cred->text; - if (cred->y >= 0) - y = cred->y; - else - y -= cred->y; - x = cred->x; - - switch (cred->type) { - case 1: - destText1 = buffer; - while ((curChar = *srcText) != 0) { - *destText1 = curChar; - srcText++; - destText1++; - } - *destText1 = 0; - srcText = buffer; - break; - case 2: - destText2 = buffer; - while ((curChar = *srcText) != 0) { - *destText2 = curChar; - srcText++; - destText2++; - } - *destText2 = 0; - srcText = buffer; - break; - } - - xxx_call_draw_string(x, y, srcText, 0, 0); - cred++; - } - - sub_80073E0(0); - SelectCharmap(0); - do { - const u32 *a = gUnknown_80E4A40; - int b = 9; - unsigned long long c = b; - sub_8099AFC(c, 0, a[0]); - } while(0); - return 1; -} - -s32 sub_8035574(void) -{ - #ifdef NONMATCHING - u32 const *p; - #else - register u32 const *p asm("r2"); - #endif - - switch (gUnknown_203B340->unk60) { - case 0: - if (sub_8099B94() == 0) { - gUnknown_203B340->unk60 = 1; - p = gUnknown_80E4A40; - sub_8099A5C(9, 30, p[0]); // Probably same/similar macro from the above func - Kermalis - } - break; - case 1: - if (sub_8099B94() == 0) - gUnknown_203B340->unk60 = 2; - break; - case 2: - if (gUnknown_203B340->unk64 < 1) { - gUnknown_203B340->unk60 = 3; - p = gUnknown_80E4A40; - sub_8099AFC(9, 30, p[0]); - } - gUnknown_203B340->unk64--; - break; - case 3: - if (sub_8099B94() == 0) { - ResetUnusedInputStruct(); - sub_800641C(NULL, TRUE, TRUE); - gUnknown_203B340->unk60 = 4; - } - break; - case 4: - sub_8099690(0); - p = gUnknown_80E4A40; - sub_8099A5C(1, 0, p[0]); - return 3; - } - return 0; -} - -// Frees gUnknown_203B340 -void sub_803565C(void) -{ - if (gUnknown_203B340 != NULL) { - MemoryFree(gUnknown_203B340); - gUnknown_203B340 = NULL; - } -} - -u32 sub_8035678(void) -{ - gUnknown_203B344 = MemoryAlloc(sizeof(struct unkCreditsStruct_203B344), 8); - gUnknown_203B344->state = 0; - gUnknown_203B344->unk4 = 0; - sub_80015C0(0, 0x39); - return 1; -} - -u32 sub_80356A0(void) -{ - u16 uVar1; - u16 held_input; - - held_input = gRealInputs.held; - uVar1 = gUnknown_80E5990[gUnknown_203B344->unk4]; - - switch (gUnknown_203B344->state) { - case 0: - gUnknown_203B344->state = 3; - break; - case 1: - if (uVar1 == 0) - gUnknown_203B344->state = 4; - else { - if (held_input == uVar1) - gUnknown_203B344->state = 2; - else { - // NOTE: couldn't match with OR'd condition so split up to match - if ((uVar1 & held_input) != held_input) - gUnknown_203B344->state = 3; - else - { - if (gUnknown_203B344->unk4 == 0) - gUnknown_203B344->state = 3; - } - } - } - break; - case 2: - if (held_input == 0) { - gUnknown_203B344->state = 1; - gUnknown_203B344->unk4++; - } - else { - if ((uVar1 & held_input) != held_input) - gUnknown_203B344->state = 3; - } - break; - case 3: - return 2; - case 4: - return 3; // sub_809C478 clears the flash data when this is returned - } - - if (sub_8001658(0, 0x39) != 0) { - gUnknown_203B344->state = 3; - return 2; - } - else - return 0; -} - -// Frees gUnknown_203B344 -void sub_8035758(void) -{ - if (gUnknown_203B344 != NULL) { - MemoryFree(gUnknown_203B344); - gUnknown_203B344 = NULL; - } -} diff --git a/src/credits1.c b/src/credits1.c new file mode 100644 index 000000000..321bfb284 --- /dev/null +++ b/src/credits1.c @@ -0,0 +1,141 @@ +#include "global.h" +#include "code_8098BDC.h" +#include "credits1.h" +#include "event_flag.h" +#include "input.h" +#include "memory.h" +#include "text1.h" +#include "text2.h" + +static EWRAM_DATA_2 Credits1Work *sCredits1Work = {0}; + +extern const UnkTextStruct2 gUnknown_80E4A10; +extern const UnkTextStruct2 gUnknown_80E4A28; +extern const u32 gUnknown_80E4A40[]; +extern const CreditsData* gCreditsTable[27]; + +bool8 DrawCredits(s32 creditsCategoryIndex, s32 param_2) +{ + s32 i; + s32 x; + s32 y; + const CreditsData *cred; + u8 *srcText; + u8 *destText1; + u8 *destText2; + u8 curChar; + u8 buffer[128]; + + sCredits1Work = MemoryAlloc(sizeof(Credits1Work), 8); + sCredits1Work->unk60 = 0; + sCredits1Work->unk64 = param_2; + sCredits1Work->creditsCategoryIndex = creditsCategoryIndex; + + for (i = 0; i < 4; i++) + sCredits1Work->unk0[i] = gUnknown_80E4A10; + sCredits1Work->unk0[0] = gUnknown_80E4A28; + + ResetUnusedInputStruct(); + sub_800641C(&sCredits1Work->unk0[0], TRUE, TRUE); + sub_8099690(2); + sub_80073B8(0); + + cred = creditsCategoryIndex[gCreditsTable]; // WTF + y = 0; + while (cred->text != NULL) { + srcText = cred->text; + if (cred->y >= 0) + y = cred->y; + else + y -= cred->y; + x = cred->x; + + switch (cred->type) { + case 1: + destText1 = buffer; + while ((curChar = *srcText) != 0) { + *destText1 = curChar; + srcText++; + destText1++; + } + *destText1 = 0; + srcText = buffer; + break; + case 2: + destText2 = buffer; + while ((curChar = *srcText) != 0) { + *destText2 = curChar; + srcText++; + destText2++; + } + *destText2 = 0; + srcText = buffer; + break; + } + + xxx_call_draw_string(x, y, srcText, 0, 0); + cred++; + } + + sub_80073E0(0); + SelectCharmap(0); + do { + const u32 *a = gUnknown_80E4A40; + int b = 9; + unsigned long long c = b; + sub_8099AFC(c, 0, a[0]); + } while(0); + return TRUE; +} + +s32 sub_8035574(void) +{ + #ifdef NONMATCHING + u32 const *p; + #else + register u32 const *p asm("r2"); + #endif + + switch (sCredits1Work->unk60) { + case 0: + if (sub_8099B94() == 0) { + sCredits1Work->unk60 = 1; + p = gUnknown_80E4A40; + sub_8099A5C(9, 30, p[0]); // Probably same/similar macro from the above func - Kermalis + } + break; + case 1: + if (sub_8099B94() == 0) + sCredits1Work->unk60 = 2; + break; + case 2: + if (sCredits1Work->unk64 < 1) { + sCredits1Work->unk60 = 3; + p = gUnknown_80E4A40; + sub_8099AFC(9, 30, p[0]); + } + sCredits1Work->unk64--; + break; + case 3: + if (sub_8099B94() == 0) { + ResetUnusedInputStruct(); + sub_800641C(NULL, TRUE, TRUE); + sCredits1Work->unk60 = 4; + } + break; + case 4: + sub_8099690(0); + p = gUnknown_80E4A40; + sub_8099A5C(1, 0, p[0]); + return 3; + } + return 0; +} + +void sub_803565C(void) +{ + if (sCredits1Work != NULL) { + MemoryFree(sCredits1Work); + sCredits1Work = NULL; + } +} \ No newline at end of file diff --git a/src/credits2.c b/src/credits2.c new file mode 100644 index 000000000..903402818 --- /dev/null +++ b/src/credits2.c @@ -0,0 +1,78 @@ +#include "global.h" +#include "credits2.h" +#include "event_flag.h" +#include "input.h" +#include "memory.h" + +static EWRAM_DATA_2 Credits2Work *sCredits2Work = {0}; + +#include "data/credits2.h" + +bool8 sub_8035678(void) +{ + sCredits2Work = MemoryAlloc(sizeof(Credits2Work), 8); + sCredits2Work->state = 0; + sCredits2Work->unk4 = 0; + sub_80015C0(0, 57); + return TRUE; +} + +u32 sub_80356A0(void) +{ + u16 uVar1; + u16 held_input; + + held_input = gRealInputs.held; + uVar1 = sUnknown_80E5990[sCredits2Work->unk4]; + + switch (sCredits2Work->state) { + case 0: + sCredits2Work->state = 3; + break; + case 1: + if (uVar1 == 0) + sCredits2Work->state = 4; + else { + if (held_input == uVar1) + sCredits2Work->state = 2; + else { + if ((uVar1 & held_input) != held_input) + sCredits2Work->state = 3; + else { + if (sCredits2Work->unk4 == 0) + sCredits2Work->state = 3; + } + } + } + break; + case 2: + if (held_input == 0) { + sCredits2Work->state = 1; + sCredits2Work->unk4++; + } + else { + if ((uVar1 & held_input) != held_input) + sCredits2Work->state = 3; + } + break; + case 3: + return 2; + case 4: + return 3; // sub_809C478 clears the flash data when this is returned + } + + if (sub_8001658(0, 57) != 0) { + sCredits2Work->state = 3; + return 2; + } + + return 0; +} + +void sub_8035758(void) +{ + if (sCredits2Work != NULL) { + MemoryFree(sCredits2Work); + sCredits2Work = NULL; + } +} \ No newline at end of file diff --git a/src/data/credits2.h b/src/data/credits2.h new file mode 100644 index 000000000..1c92393b0 --- /dev/null +++ b/src/data/credits2.h @@ -0,0 +1,14 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +// Inputs related. These are probably buttons OR'd together +static const u16 sUnknown_80E5990[8] = +{ + 518, + 64, + 128, + 16, + 32, + 1, + 2, + 0 +}; \ No newline at end of file diff --git a/src/ground_main.c b/src/ground_main.c index 9476cffe5..b71087c51 100644 --- a/src/ground_main.c +++ b/src/ground_main.c @@ -53,7 +53,6 @@ extern void GroundEffect_Action(); extern s32 sub_8001784(u8, u8, u8); extern void sub_809CB8C(); -extern void sub_80015C0(u8, u8); extern void sub_80018D8(u8, u8, u32); extern void sub_800199C(u8, u8, u8, s32); extern void sub_8098CC8(); diff --git a/src/ground_map.c b/src/ground_map.c index 54fb3c78a..2c029a7c8 100644 --- a/src/ground_map.c +++ b/src/ground_map.c @@ -1,5 +1,6 @@ #include "global.h" #include "debug.h" +#include "event_flag.h" #include "ground_map.h" #include "ground_map_2.h" #include "ground_script.h" @@ -14,7 +15,6 @@ extern const DebugLocation gUnknown_8117538[]; extern void sub_809D600(void *, const u8 *, u32, u32, u32); extern void sub_809D648(void *); extern void sub_80A2D00(unkStruct_3001B70 *); -extern void sub_80015C0(u32, u32); extern void sub_809D754(GroundScript_ExecutePP_1 *, const DebugLocation *); extern void sub_80A2D68(unkStruct_3001B70 *); extern void sub_80A2D88(unkStruct_3001B70 *); diff --git a/src/main_menu.c b/src/main_menu.c index cbf4382ea..deee9c0d8 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -31,10 +31,12 @@ // NOTE: 0x2E // Deletes the Save -EWRAM_DATA_2 MainMenu *gMainMenu = {0}; -EWRAM_DATA_2 struct unkStruct_203B34C *gUnknown_203B34C = {0}; -EWRAM_DATA_2 u32 gUnknown_203B350 = {0}; -EWRAM_DATA_2 u32 gUnknown_203B354 = {0}; // unused everywhere else except here.. +// split 1/2 +static EWRAM_DATA_2 MainMenu *sMainMenu = {0}; +// split 2/2 +static EWRAM_DATA_2 unkStruct_203B34C *sUnknown_203B34C = {0}; +static EWRAM_DATA_2 u32 sUnknown_203B350 = {0}; +static EWRAM_DATA_2 u32 sUnknown_203B354 = {0}; extern void SetWindowBGColor(void); extern void CreateWonderMailMenu(void); @@ -73,8 +75,9 @@ static const u8 sUnknown_80E5FB0[]; static const u8 sUnknown_80E5F98[]; static const u8 sUnknown_80E5FE4[]; static const u8 sUnknown_80E6008[]; -static const u8 sUnknown_80E6048[]; -static const u8 sUnknown_80E6070[]; + +// split 1/2 +static const u8 sFillllllllllllllllllllllllllllll[] = "pksdir0"; const UnkTextStruct2 gUnknown_80E59A8 = { 0x00, 0x00, 0x00, 0x00, @@ -85,7 +88,8 @@ const UnkTextStruct2 gUnknown_80E59A8 = { NULL }; -static const char main_menu_fill[] = "pksdir0"; +// split 2/2 +static const u8 sFill[] = "pksdir0"; const UnkTextStruct2 gUnknown_80E59C8 = { 0x00, 0x00, 0x00, 0x00, @@ -351,6 +355,9 @@ const MenuItem gUnknown_80E5FCC[] = { static const u8 sUnknown_80E5FE4[] = "receive teams from your friends."; ALIGNED(4) static const u8 sUnknown_80E6008[] = _("Using the Dual Slot function{COMMA} you can"); +static const u8 sUnknown_80E6048[]; +static const u8 sUnknown_80E6070[]; + const MenuItem gUnknown_80E6030[] = { {sUnknown_80E6070, 0xFFDE}, {sUnknown_80E6048, 0xFFDE}, @@ -361,36 +368,42 @@ static const u8 sUnknown_80E6048[] = "go on an adventure to unknown worlds."; ALIGNED(4) static const u8 sUnknown_80E6070[] = _("Using wireless communication{COMMA} you can"); + +// SPLIT 1/2 + + + + void InitMainMenu(void) { - if (gMainMenu == NULL) { - gMainMenu = MemoryAlloc(sizeof(MainMenu),8); - MemoryFill8((u8 *)gMainMenu, 0, sizeof(MainMenu)); + if (sMainMenu == NULL) { + sMainMenu = MemoryAlloc(sizeof(MainMenu),8); + MemoryFill8((u8 *)sMainMenu, 0, sizeof(MainMenu)); } - gMainMenu->currMenu = MENU_NO_SCREEN_CHANGE; - gMainMenu->nextMenu = MENU_MAIN_SCREEN; - gMainMenu->lastMenu = MENU_MAIN_SCREEN; - gMainMenu->unk38 = -1; - gMainMenu->unk3C = -1; - gMainMenu->sub.unk2E = 0; - gMainMenu->sub.unk2C = 1; - gMainMenu->sub.unk2D = 0; + sMainMenu->currMenu = MENU_NO_SCREEN_CHANGE; + sMainMenu->nextMenu = MENU_MAIN_SCREEN; + sMainMenu->lastMenu = MENU_MAIN_SCREEN; + sMainMenu->unk38 = -1; + sMainMenu->unk3C = -1; + sMainMenu->sub.unk2E = 0; + sMainMenu->sub.unk2C = 1; + sMainMenu->sub.unk2D = 0; sub_8035DA0(); - gMainMenu->unk3A = 0; + sMainMenu->unk3A = 0; } void DeleteMainMenu(void) { - if(gMainMenu){ - MemoryFree(gMainMenu); - gMainMenu = NULL; + if(sMainMenu){ + MemoryFree(sMainMenu); + sMainMenu = NULL; } } void SetUpMenu(void) { - if (gMainMenu->currMenu != gMainMenu->nextMenu) { - switch(gMainMenu->nextMenu) { + if (sMainMenu->currMenu != sMainMenu->nextMenu) { + switch(sMainMenu->nextMenu) { case MENU_MAIN_SCREEN: SetWindowBGColor(); sub_8099690(0); @@ -400,14 +413,14 @@ void SetUpMenu(void) case MENU_CONTINUE: case MENU_DELETE_SAVE_PROMPT: case MENU_DELETE_SAVE_CONFIRM: - CreateLoadScreen(gMainMenu->nextMenu); + CreateLoadScreen(sMainMenu->nextMenu); break; case MENU_TRADE_ITEMS: CreateTradeItemsMenu(); break; case MENU_COMMUNICATION_1: case MENU_COMMUNICATION_2: - sub_8036FDC(sub_8035DB4(gMainMenu->nextMenu)); + sub_8036FDC(sub_8035DB4(sMainMenu->nextMenu)); break; case MENU_FRIEND_RESCUE: CreateFriendRescueMenu(); @@ -423,7 +436,7 @@ void SetUpMenu(void) break; case MENU_DISPLAY_RESCUE_PASSWORD: case MENU_RESCUE_PASSWORD_ENTRY: - CreateRescuePasswordMenu(gMainMenu->nextMenu); + CreateRescuePasswordMenu(sMainMenu->nextMenu); break; case MENU_ADVENTURE_LOG: CreateAdventureLogMenu(); @@ -434,13 +447,13 @@ void SetUpMenu(void) case 0x2c: case 0x2d: case MENU_DELETE_SAVE: - CreateSaveMenu(gMainMenu->nextMenu); + CreateSaveMenu(sMainMenu->nextMenu); break; case MENU_DEBUG: CreateDebugMenu(); break; } - gMainMenu->currMenu = gMainMenu->nextMenu; + sMainMenu->currMenu = sMainMenu->nextMenu; } } @@ -450,7 +463,7 @@ s32 UpdateMenu(void) s32 nextMenu; nextMenu = MENU_NO_SCREEN_CHANGE; - switch(gMainMenu->nextMenu) { + switch(sMainMenu->nextMenu) { case MENU_MAIN_SCREEN: nextMenu = UpdateMainMenu(); break; @@ -522,15 +535,15 @@ s32 UpdateMenu(void) break; } if (nextMenu != MENU_NO_SCREEN_CHANGE) { - gMainMenu->nextMenu = nextMenu; + sMainMenu->nextMenu = nextMenu; } return nextMenu; } void CleanUpMenu(void) { - if (gMainMenu->lastMenu != gMainMenu->nextMenu) { - switch(gMainMenu->lastMenu) { + if (sMainMenu->lastMenu != sMainMenu->nextMenu) { + switch(sMainMenu->lastMenu) { case MENU_MAIN_SCREEN: CleanMainMenu(); break; @@ -585,27 +598,25 @@ void CleanUpMenu(void) DeleteDebugMenu(); break; } - gMainMenu->lastMenu = gMainMenu->nextMenu; + sMainMenu->lastMenu = sMainMenu->nextMenu; } } -// Unused -void sub_8035C00(MainMenuSub *param) +UNUSED static void sub_8035C00(MainMenuSub *param) { - gMainMenu->sub = *param; + sMainMenu->sub = *param; } -// Unused -MainMenuSub *sub_8035C10(void) +UNUSED static MainMenuSub *sub_8035C10(void) { - return &gMainMenu->sub; + return &sMainMenu->sub; } void sub_8035C1C(void) { - gMainMenu->sub.unk2E = 0; - gMainMenu->sub.unk2C = 1; - gMainMenu->sub.unk2D = 0; + sMainMenu->sub.unk2E = 0; + sMainMenu->sub.unk2C = 1; + sMainMenu->sub.unk2D = 0; } void SetMenuItems(MenuStruct *param_1, UnkTextStruct2 *unkData, s32 index, @@ -631,8 +642,8 @@ void sub_8035CC0(UnkTextStruct2 *dataArray, u32 index) sub_800641C(dataArray, TRUE, TRUE); } -void sub_8035CF4(MenuStruct * Menu, u32 index, bool8 r2) - { +void sub_8035CF4(MenuStruct *Menu, u32 index, bool8 r2) +{ Menu[index].unk4C = r2; Menu[index].unk4D = 1; Menu[index].menuAction = -1; @@ -641,46 +652,41 @@ void sub_8035CF4(MenuStruct * Menu, u32 index, bool8 r2) void sub_8035D1C(void) { - gMainMenu->unk38 = -1; + sMainMenu->unk38 = -1; } -// Unused -void sub_8035D30(s32 r0) +UNUSED static void sub_8035D30(s32 r0) { - gMainMenu->unk38 = r0; + sMainMenu->unk38 = r0; } s16 sub_8035D3C(void) { - return gMainMenu->unk38; + return sMainMenu->unk38; } MainMenu *GetMainMenu(void) { - return gMainMenu; + return sMainMenu; } -// Unused -void sub_8035D58(void) +UNUSED static void sub_8035D58(void) { - gMainMenu->unk3C = -1; + sMainMenu->unk3C = -1; } -// Unused -void sub_8035D68(s32 r0) +UNUSED static void sub_8035D68(s32 r0) { - gMainMenu->unk3C = r0; + sMainMenu->unk3C = r0; } s32 sub_8035D74(void) { - return gMainMenu->unk3C; + return sMainMenu->unk3C; } -// Unused -void sub_8035D80(unkStruct_8035D94 *item) +UNUSED static void sub_8035D80(unkStruct_8035D94 *item) { - #ifndef NONMATCHING register u32 numItem asm("r1"); #else @@ -690,7 +696,7 @@ void sub_8035D80(unkStruct_8035D94 *item) u32 itemIndex; MainMenu *preload; - preload = gMainMenu; + preload = sMainMenu; numItem = item->numItems; itemIndex = item->itemIndex.itemIndex_u32; preload->unk30.itemIndex.itemIndex_u32 = itemIndex; @@ -699,13 +705,13 @@ void sub_8035D80(unkStruct_8035D94 *item) unkStruct_8035D94 *sub_8035D94(void) { - return &gMainMenu->unk30; + return &sMainMenu->unk30; } void sub_8035DA0(void) { - gMainMenu->unk30.itemIndex.itemIndex_u8 = ITEM_NOTHING; - gMainMenu->unk30.numItems = 0; + sMainMenu->unk30.itemIndex.itemIndex_u8 = ITEM_NOTHING; + sMainMenu->unk30.numItems = 0; } s32 sub_8035DB4(u32 currMenu) @@ -741,60 +747,72 @@ s32 sub_8035DB4(u32 currMenu) return returnVar; } + + + + + +// SPLIT 2/2 + + + + + + void DrawMainMenu(void) { s32 index; - if(gUnknown_203B34C == NULL) + if(sUnknown_203B34C == NULL) { - gUnknown_203B34C = MemoryAlloc(sizeof(struct unkStruct_203B34C), 8); - MemoryFill8((u8 *)gUnknown_203B34C, 0, sizeof(struct unkStruct_203B34C)); + sUnknown_203B34C = MemoryAlloc(sizeof(unkStruct_203B34C), 8); + MemoryFill8((u8 *)sUnknown_203B34C, 0, sizeof(unkStruct_203B34C)); } for(index = 0; index < 4; index++) { - gUnknown_203B34C->unk144[index] = gUnknown_80E59C8; + sUnknown_203B34C->unk144[index] = gUnknown_80E59C8; } ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B34C->unk144, TRUE, TRUE); + sub_800641C(sUnknown_203B34C->unk144, TRUE, TRUE); SetMainMenuItems(); - gUnknown_203B34C->currMenuChoice = -1; + sUnknown_203B34C->currMenuChoice = -1; if(SetMainMenuText()) { - sub_8035CF4(gUnknown_203B34C->unk4,2,FALSE); + sub_8035CF4(sUnknown_203B34C->unk4,2,FALSE); } - sub_8035CF4(gUnknown_203B34C->unk4,0,TRUE); - gUnknown_203B34C->unk0 = 1; + sub_8035CF4(sUnknown_203B34C->unk4,0,TRUE); + sUnknown_203B34C->unk0 = 1; } void CleanMainMenu(void) { ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); - if(gUnknown_203B34C != NULL) + if(sUnknown_203B34C != NULL) { - MemoryFree(gUnknown_203B34C); - gUnknown_203B34C = NULL; + MemoryFree(sUnknown_203B34C); + sUnknown_203B34C = NULL; } } u32 UpdateMainMenu(void) { u32 nextMenu = MENU_NO_SCREEN_CHANGE; - switch(gUnknown_203B34C->unk0) + switch(sUnknown_203B34C->unk0) { case 1: - sub_8012FD8(&gUnknown_203B34C->unk4[2]); - if(!sub_8012FD8(gUnknown_203B34C->unk4)) - sub_8013114(gUnknown_203B34C->unk4, &nextMenu); + sub_8012FD8(&sUnknown_203B34C->unk4[2]); + if(!sub_8012FD8(sUnknown_203B34C->unk4)) + sub_8013114(sUnknown_203B34C->unk4, &nextMenu); if(SetMainMenuText()) { - sub_8035CF4(gUnknown_203B34C->unk4, 0, TRUE); - sub_8035CF4(gUnknown_203B34C->unk4, 2, FALSE); + sub_8035CF4(sUnknown_203B34C->unk4, 0, TRUE); + sub_8035CF4(sUnknown_203B34C->unk4, 2, FALSE); } switch(nextMenu) { @@ -802,15 +820,15 @@ u32 UpdateMainMenu(void) nextMenu = MENU_NO_SCREEN_CHANGE; break; case 0xffdd: - gUnknown_203B34C->unk0 = 1; + sUnknown_203B34C->unk0 = 1; nextMenu = MENU_NO_SCREEN_CHANGE; ResetUnusedInputStruct(); - sub_8035CF4(gUnknown_203B34C->unk4, 0, TRUE); - sub_8035CF4(gUnknown_203B34C->unk4, 2, FALSE); + sub_8035CF4(sUnknown_203B34C->unk4, 0, TRUE); + sub_8035CF4(sUnknown_203B34C->unk4, 2, FALSE); break; case MENU_TRADE_ITEMS: sub_8035DA0(); - gUnknown_203B350 = nextMenu; + sUnknown_203B350 = nextMenu; break; case MENU_NEW_GAME: case MENU_AWAITING_RESCUE: @@ -823,27 +841,27 @@ u32 UpdateMainMenu(void) case MENU_DUAL_SLOT: case MENU_WIRELESS_COMMS: case MENU_DEBUG: - gUnknown_203B350 = nextMenu; + sUnknown_203B350 = nextMenu; break; } break; case 0xC: - if(!sub_8012FD8(&gUnknown_203B34C->unk4[1])) - sub_8013114(&gUnknown_203B34C->unk4[1], &nextMenu); + if(!sub_8012FD8(&sUnknown_203B34C->unk4[1])) + sub_8013114(&sUnknown_203B34C->unk4[1], &nextMenu); switch(nextMenu) { case 0xffdd: sub_803623C(); - gUnknown_203B34C->unk0 = 1; + sUnknown_203B34C->unk0 = 1; nextMenu = MENU_NO_SCREEN_CHANGE; break; case MENU_SEND_ITEMS: - gUnknown_203B354 = nextMenu; + sUnknown_203B354 = nextMenu; nextMenu = MENU_TRADE_ITEMS; break; case MENU_RECEIVE_ITEMS: - gUnknown_203B354 = nextMenu; + sUnknown_203B354 = nextMenu; nextMenu = MENU_COMMUNICATION_2; break; case MENU_NO_SCREEN_CHANGE: @@ -866,62 +884,62 @@ bool8 SetMainMenuText(void) const MenuItem *preload; // Have to load the pointer before the index - preload = gUnknown_203B34C->unk4[0].menuItems; - menuChoice = preload[gUnknown_203B34C->unk4[0].input.menuIndex].menuAction; // chosen menu action? - if (gUnknown_203B34C->currMenuChoice == menuChoice) { + preload = sUnknown_203B34C->unk4[0].menuItems; + menuChoice = preload[sUnknown_203B34C->unk4[0].input.menuIndex].menuAction; // chosen menu action? + if (sUnknown_203B34C->currMenuChoice == menuChoice) { return FALSE; } - gUnknown_203B34C->currMenuChoice = menuChoice; - sub_8035CC0(gUnknown_203B34C->unk144,2); - sub_8035CC0(gUnknown_203B34C->unk144,3); + sUnknown_203B34C->currMenuChoice = menuChoice; + sub_8035CC0(sUnknown_203B34C->unk144,2); + sub_8035CC0(sUnknown_203B34C->unk144,3); switch(menuChoice) { case MENU_WIRELESS_COMMS: // Using wireless communications, you can go on an adventure to unknown worlds. - SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E6030,0,0,0); + SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E6030,0,0,0); break; case MENU_WONDER_MAIL: // Using passwords, you can receive Wonder Mail - SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F80,0,0,0); + SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F80,0,0,0); break; case MENU_AWAITING_RESCUE: // You are awaiting resuce by a friend // You can give up waiting for rescue - SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F1C,0,0,0); + SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F1C,0,0,0); break; case MENU_NEW_GAME: // Start an entirely new adventure - SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5CCC,0,0,0); + SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5CCC,0,0,0); break; case MENU_CONTINUE: // Resume your adventure from where you last saved - SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DA0,0,0,0); + SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DA0,0,0,0); break; case MENU_DELETE_SAVE_PROMPT: // This will delete your saved game data. // Beware! This will delete it forever - SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DF0,0,0,0); + SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DF0,0,0,0); break; case MENU_ADVENTURE_LOG: // Check your career as an adventurer - SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D0C,0,0,0); + SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D0C,0,0,0); break; case MENU_FRIEND_RESCUE: // Using a Game Link cable or passwords, friends may rescue each other - SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5E5C,0,0,0); + SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5E5C,0,0,0); break; case MENU_TRADE_ITEMS: // Using a Game Link cable you can trade stored items with a friend - SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5EBC,0,0,0); + SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5EBC,0,0,0); break; case MENU_DUAL_SLOT: // Using Dual Slot function, you can receive teams from your friends - SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5FCC,0,0,0); + SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5FCC,0,0,0); break; case MENU_DEBUG: // This is the Debug Mode. // It won't be in the release version - SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D48,0,0,0); + SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D48,0,0,0); break; default: break; @@ -931,13 +949,13 @@ bool8 SetMainMenuText(void) void sub_803623C(void) { - sub_8035CC0(gUnknown_203B34C->unk144,1); + sub_8035CC0(sUnknown_203B34C->unk144,1); SetMainMenuItems(); - gUnknown_203B34C->currMenuChoice = -1; + sUnknown_203B34C->currMenuChoice = -1; if (SetMainMenuText()) { - sub_8035CF4(gUnknown_203B34C->unk4,2,FALSE); + sub_8035CF4(sUnknown_203B34C->unk4,2,FALSE); } - sub_8035CF4(gUnknown_203B34C->unk4,0,TRUE); + sub_8035CF4(sUnknown_203B34C->unk4,0,TRUE); } void SetMainMenuItems(void) @@ -952,7 +970,7 @@ void SetMainMenuItems(void) // Friend Rescue // Trade Items // Wonder Mail - SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5C18,1,gUnknown_203B350,1); + SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5C18,1,sUnknown_203B350,1); } else { // Revive Team @@ -960,7 +978,7 @@ void SetMainMenuItems(void) // Adventure Log // Friend Rescue // Trade Items - SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5BC4,gUnknown_80E5BDC,1,gUnknown_203B350,1); + SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,0,&gUnknown_80E5BC4,gUnknown_80E5BDC,1,sUnknown_203B350,1); } } else { @@ -971,7 +989,7 @@ void SetMainMenuItems(void) // Friend Rescue // Trade Items // Wonder Mail - SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5AFC,1,gUnknown_203B350,1); + SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5AFC,1,sUnknown_203B350,1); } else { // Continue @@ -979,7 +997,7 @@ void SetMainMenuItems(void) // Adventure Log // Friend Rescue // Trade Items - SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A60,gUnknown_80E5A90,1,gUnknown_203B350,1); + SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,0,&gUnknown_80E5A60,gUnknown_80E5A90,1,sUnknown_203B350,1); } } } @@ -991,7 +1009,7 @@ void SetMainMenuItems(void) // Friend Rescue // Trade Items // Wonder Mail - SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5B8C,1,gUnknown_203B350,1); + SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5B8C,1,sUnknown_203B350,1); } else { // Awaiting Rescue @@ -999,7 +1017,7 @@ void SetMainMenuItems(void) // Adventure Log // Friend Rescue // Trade Items - SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5B34,gUnknown_80E5B4C,1,gUnknown_203B350,1); + SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,0,&gUnknown_80E5B34,gUnknown_80E5B4C,1,sUnknown_203B350,1); } } } @@ -1007,15 +1025,15 @@ void SetMainMenuItems(void) { // New Game // Adventure Log - SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E59E0,gUnknown_80E59F8,1,gUnknown_203B350,1); + SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,0,&gUnknown_80E59E0,gUnknown_80E59F8,1,sUnknown_203B350,1); } } bool8 sub_80363E0(void) { - if(gUnknown_203B34C == NULL) + if(sUnknown_203B34C == NULL) return FALSE; - if(gUnknown_203B34C->unk0 == 0xC) + if(sUnknown_203B34C->unk0 == 0xC) return FALSE; return TRUE; } diff --git a/src/wigglytuff_shop.c b/src/wigglytuff_shop.c index b42d8c8a2..2dfce8d2a 100644 --- a/src/wigglytuff_shop.c +++ b/src/wigglytuff_shop.c @@ -1,28 +1,25 @@ #include "global.h" -#include "constants/friend_area.h" -#include "pokemon.h" -#include "constants/input.h" -#include "file_system.h" -#include "menu.h" -#include "pokemon.h" -#include "pokemon_3.h" -#include "input.h" -#include "text1.h" -#include "text2.h" -#include "memory.h" -#include "menu_input.h" -#include "friend_area.h" -#include "wigglytuff_shop.h" -#include "felicity_bank.h" +#include "code_800D090.h" +#include "code_80118A4.h" #include "code_80130A8.h" #include "code_801EE10_mid.h" #include "code_8021774.h" -#include "code_80118A4.h" -#include "code_800D090.h" +#include "code_8098BDC.h" +#include "common_strings.h" +#include "constants/friend_area.h" +#include "constants/input.h" #include "event_flag.h" #include "exclusive_pokemon.h" -#include "common_strings.h" -#include "code_80118A4.h" +#include "felicity_bank.h" +#include "file_system.h" +#include "friend_area.h" +#include "menu_input.h" +#include "memory.h" +#include "pokemon.h" +#include "pokemon_3.h" +#include "text1.h" +#include "text2.h" +#include "wigglytuff_shop.h" // TODO: This file was originally 3 files. Split properly // 4 files if you count code_8023144.s @@ -100,9 +97,6 @@ extern void sub_8022380(void); bool8 sub_8023144(s32 param_1, s32 index, UnkTextStruct2_sub *sub, u32 param_4); void sub_8023354(u8 param_1); extern void CreateWigglytuffConfirmFriendAreaMenu(void); -extern u8 sub_8099B94(void); -extern void sub_8099AFC(u32, u32, u32); -extern void sub_8099A5C(u32, u32, u32); extern u32 sub_8023278(u32); void sub_80233A0(void); diff --git a/sym_ewram2.txt b/sym_ewram2.txt index 75c10e911..27c91c416 100644 --- a/sym_ewram2.txt +++ b/sym_ewram2.txt @@ -323,7 +323,8 @@ gUnknown_203B328: /* 203B328 (wonder_mail_6) */ .include "src/code_8031D70.o" .include "src/adventure_log.o" .include "src/friend_rescue.o" -.include "src/credits.o" +.include "src/credits1.o" +.include "src/credits2.o" .include "src/main_menu.o" .include "src/trade_items_menu.o" .include "src/other_menus1.o" From 7de83b9dc3a53eabf23087c82739429d8aef17c4 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Thu, 14 Sep 2023 23:26:58 -0400 Subject: [PATCH 19/47] Split main_menu.c --- include/constants/mailbox.h | 4 +- include/constants/main_menu.h | 40 ++ include/game_options.h | 7 +- include/main_menu.h | 97 --- include/main_menu1.h | 57 ++ include/main_menu2.h | 22 + include/other_menus1.h | 2 +- include/save_menu.h | 19 + include/unk_menu_203B360.h | 7 + include/util.h | 2 +- include/wonder_mail_main_menu.h | 8 + ld_script.txt | 6 +- src/adventure_log_menu.c | 2 +- src/code_2.c | 5 +- src/code_803D0D8.c | 4 +- src/data/main_menu1.h | 10 + src/data/main_menu2.h | 291 +++++++++ src/debug_menu1.c | 5 +- src/friend_rescue.c | 11 +- src/game_options.c | 1 - src/load_screen.c | 17 +- src/main_menu.c | 1039 ------------------------------- src/main_menu1.c | 418 +++++++++++++ src/main_menu2.c | 296 +++++++++ src/options_menu.c | 1 - src/other_menus1.c | 10 +- src/other_menus2.c | 6 +- src/rescue_password_menu.c | 25 +- src/save_menu.c | 139 ++--- src/thank_you_wonder_mail.c | 6 +- src/trade_items_menu.c | 6 +- src/unk_menu_203B360.c | 66 +- src/wonder_mail.c | 6 +- src/wonder_mail_main_menu.c | 3 +- sym_ewram2.txt | 3 +- 35 files changed, 1334 insertions(+), 1307 deletions(-) create mode 100644 include/constants/main_menu.h delete mode 100644 include/main_menu.h create mode 100644 include/main_menu1.h create mode 100644 include/main_menu2.h create mode 100644 include/save_menu.h create mode 100644 include/unk_menu_203B360.h create mode 100644 include/wonder_mail_main_menu.h create mode 100644 src/data/main_menu1.h create mode 100644 src/data/main_menu2.h delete mode 100644 src/main_menu.c create mode 100644 src/main_menu1.c create mode 100644 src/main_menu2.c diff --git a/include/constants/mailbox.h b/include/constants/mailbox.h index 8d57c1f6e..f6d1d3fcc 100644 --- a/include/constants/mailbox.h +++ b/include/constants/mailbox.h @@ -1,5 +1,5 @@ #ifndef GUARD_CONSTANTS_MAILBOX_H -#define GUARD_CONSTANTS_MAILBOX_H +#define GUARD_CONSTANTS_MAILBOX_H #define MAX_ACCEPTED_JOBS 8 #define NUM_MAILBOX_SLOTS 4 @@ -18,4 +18,4 @@ enum JOB_LIST_MAIL_TYPES MAIL_TYPE_UNK9, }; -#endif // GUARD_CONSTANTS_MAILBOX_H +#endif // GUARD_CONSTANTS_MAILBOX_H \ No newline at end of file diff --git a/include/constants/main_menu.h b/include/constants/main_menu.h new file mode 100644 index 000000000..03f5d897a --- /dev/null +++ b/include/constants/main_menu.h @@ -0,0 +1,40 @@ +#ifndef GUARD_CONSTANTS_MAIN_MENU_H +#define GUARD_CONSTANTS_MAIN_MENU_H + +enum MainMenuScreens +{ + MENU_MAIN_SCREEN = 1, + // + MENU_NEW_GAME = 3, + // + MENU_AWAITING_RESCUE = 6, + MENU_CONTINUE, // used by Revive Team/Continue + MENU_DELETE_SAVE_PROMPT, + MENU_DELETE_SAVE_CONFIRM, + MENU_ADVENTURE_LOG, + MENU_FRIEND_RESCUE, + MENU_TRADE_ITEMS, + MENU_WONDER_MAIL, + MENU_DUAL_SLOT, + MENU_WIRELESS_COMMS, + MENU_DEBUG, + MENU_SEND_ITEMS, + MENU_RECEIVE_ITEMS, + MENU_COMMUNICATION_1, + MENU_COMMUNICATION_2, + // NOTE: 27 - 34 used by Rescue Password Menu + MENU_DISPLAY_RESCUE_PASSWORD = 33, + MENU_RESCUE_PASSWORD_ENTRY, + // + MENU_DELETE_SAVE = 46, + MENU_DEBUG_DUNGEON, + MENU_DEBUG_FIELD, + MENU_DEBUG_FIELD_MAP, + MENU_DEBUG_FIELD_SCRIPT, + MENU_DEBUG_DEBUG_MENU, + MENU_DEBUG_UNKNOWN_1, + // + MENU_NO_SCREEN_CHANGE = 65500 // (s16)-36 +}; + +#endif // GUARD_CONSTANTS_MAIN_MENU_H \ No newline at end of file diff --git a/include/game_options.h b/include/game_options.h index cae7a7638..1f468a382 100644 --- a/include/game_options.h +++ b/include/game_options.h @@ -59,9 +59,10 @@ typedef struct GameOptions /* 0xC */ u8 unkC; } GameOptions; -void LoadGameOptions(void); -GameOptions * GetGameOptions(void); -void InitializeGameOptions(bool8 initializeGender); +GameOptions *GetGameOptions(void); bool8 GameOptionsNotChange(GameOptions *); +void InitializeGameOptions(bool8 initializeGender); +void LoadGameOptions(void); +void SetWindowBGColor(void); #endif // GUARD_GAME_OPTIONS_H \ No newline at end of file diff --git a/include/main_menu.h b/include/main_menu.h deleted file mode 100644 index b1b5455db..000000000 --- a/include/main_menu.h +++ /dev/null @@ -1,97 +0,0 @@ -#ifndef GUARD_MAIN_MENU_H -#define GUARD_MAIN_MENU_H - -#include "menu.h" -#include "text.h" - -enum MainMenuScreens -{ - MENU_MAIN_SCREEN = 1, - MENU_NEW_GAME = 3, - MENU_AWAITING_RESCUE = 6, - MENU_CONTINUE = 7, // used by Revive Team/Continue - MENU_DELETE_SAVE_PROMPT, - MENU_DELETE_SAVE_CONFIRM, - MENU_ADVENTURE_LOG = 10, - MENU_FRIEND_RESCUE, - MENU_TRADE_ITEMS, - MENU_WONDER_MAIL, - MENU_DUAL_SLOT, - MENU_WIRELESS_COMMS, - MENU_DEBUG = 16, - MENU_SEND_ITEMS, - MENU_RECEIVE_ITEMS, - MENU_COMMUNICATION_1 = 19, - MENU_COMMUNICATION_2, - // NOTE: 0x1B - 0x22 used by Rescue Password Menu - MENU_DISPLAY_RESCUE_PASSWORD = 33, - MENU_RESCUE_PASSWORD_ENTRY, - MENU_DELETE_SAVE = 46, - MENU_DEBUG_DUNGEON, - MENU_DEBUG_FIELD, - MENU_DEBUG_FIELD_MAP, - MENU_DEBUG_FIELD_SCRIPT, - MENU_DEBUG_DEBUG_MENU, - MENU_DEBUG_UNKNOWN_1, - MENU_NO_SCREEN_CHANGE = 65500 -}; - -// size: 0x1A8 -typedef struct unkStruct_203B34C -{ - u32 unk0; - MenuStruct unk4[4]; - UnkTextStruct2 unk144[4]; - /* 0x1A4 */ u32 currMenuChoice; -} unkStruct_203B34C; - -// size: 0x8 -typedef struct unkStruct_8035D94 -{ - union { - u8 itemIndex_u8; - u32 itemIndex_u32; - } itemIndex; - s32 numItems; -} unkStruct_8035D94; - -// size: 0x4 -typedef struct MainMenuSub -{ - u8 unk2C; - u8 unk2D; - u8 unk2E; -} MainMenuSub; - -// size: 0x40 -typedef struct MainMenu -{ - /* 0x0 */ s32 currMenu; - /* 0x4 */ s32 nextMenu; - /* 0x8 */ s32 lastMenu; - u8 padding[0x20]; - /* 0x2C */ MainMenuSub sub; - unkStruct_8035D94 unk30; - s16 unk38; - u8 unk3A; - u8 unk3B; - s32 unk3C; -} MainMenu; - -void CleanUpMenu(void); -void DeleteMainMenu(void); -MainMenu *GetMainMenu(void); -void InitMainMenu(void); -void SetMenuItems(MenuStruct *, UnkTextStruct2 *, s32, const UnkTextStruct2 *, const MenuItem *, u8, u32, u32); -void SetUpMenu(void); -s32 UpdateMenu(void); - -void sub_8035CC0(UnkTextStruct2 *, u32); -void sub_8035CF4(MenuStruct*, u32, bool8); -s16 sub_8035D3C(void); -s32 sub_8035D74(void); -unkStruct_8035D94 *sub_8035D94(void); -void sub_8035DA0(void); -bool8 sub_80363E0(void); - -#endif // GUARD_MAIN_MENU_H diff --git a/include/main_menu1.h b/include/main_menu1.h new file mode 100644 index 000000000..c2d880ee6 --- /dev/null +++ b/include/main_menu1.h @@ -0,0 +1,57 @@ +#ifndef GUARD_MAIN_MENU1_H +#define GUARD_MAIN_MENU1_H + +#include "menu.h" +#include "text.h" + +// size: 0x8 +typedef struct unkStruct_8035D94 +{ + union { + u8 itemIndex_u8; + u32 itemIndex_u32; + } itemIndex; + s32 numItems; +} unkStruct_8035D94; + +// size: 0x4 +typedef struct MainMenuSub +{ + u8 unk2C; + u8 unk2D; + u8 unk2E; +} MainMenuSub; + +// size: 0x40 +typedef struct MainMenu1Work +{ + /* 0x0 */ s32 currMenu; + /* 0x4 */ s32 nextMenu; + /* 0x8 */ s32 lastMenu; + u8 padding[0x20]; + /* 0x2C */ MainMenuSub sub; + unkStruct_8035D94 unk30; + s16 unk38; + u8 unk3A; + u8 unk3B; + s32 unk3C; +} MainMenu1Work; + +void CleanUpMenu(void); +void DeleteMainMenu(void); +MainMenu1Work *GetMainMenu(void); +void InitMainMenu(void); +void SetMenuItems(MenuStruct *, UnkTextStruct2 *, s32 index, const UnkTextStruct2 *, const MenuItem *menuItems, bool8, u32 menuAction, u32 unused); +void SetUpMenu(void); +s32 UpdateMenu(void); + +void sub_8035C1C(void); +void sub_8035CC0(UnkTextStruct2 *dataArray, u32 index); +void sub_8035CF4(MenuStruct *menu, u32 index, bool8); +void sub_8035D1C(void); +s16 sub_8035D3C(void); +s32 sub_8035D74(void); +unkStruct_8035D94 *sub_8035D94(void); +void sub_8035DA0(void); + +#endif // GUARD_MAIN_MENU1_H \ No newline at end of file diff --git a/include/main_menu2.h b/include/main_menu2.h new file mode 100644 index 000000000..6ce11f33d --- /dev/null +++ b/include/main_menu2.h @@ -0,0 +1,22 @@ +#ifndef GUARD_MAIN_MENU2_H +#define GUARD_MAIN_MENU2_H + +#include "menu.h" +#include "text.h" + +// size: 0x1A8 +typedef struct MainMenu2Work +{ + u32 unk0; + MenuStruct unk4[4]; + UnkTextStruct2 unk144[4]; + /* 0x1A4 */ u32 currMenuChoice; +} MainMenu2Work; + +void CleanMainMenu(void); +void DrawMainMenu(void); +u32 UpdateMainMenu(void); + +bool8 sub_80363E0(void); + +#endif // GUARD_MAIN_MENU2_H \ No newline at end of file diff --git a/include/other_menus1.h b/include/other_menus1.h index 5d3c92b9c..f2e6f49e2 100644 --- a/include/other_menus1.h +++ b/include/other_menus1.h @@ -2,7 +2,7 @@ #define GUARD_OTHER_MENUS1_H #include "code_8094F88.h" -#include "main_menu.h" +#include "main_menu1.h" #include "menu.h" #include "pokemon.h" #include "sprite_oam.h" diff --git a/include/save_menu.h b/include/save_menu.h new file mode 100644 index 000000000..349e1edb4 --- /dev/null +++ b/include/save_menu.h @@ -0,0 +1,19 @@ +#ifndef GUARD_SAVE_MENU_H +#define GUARD_SAVE_MENU_H + +// size: 0x1B4 +typedef struct SaveMenuWork +{ + /* 0x0 */ u32 currMenu; + u32 unk4; + MenuStruct unk8[4]; + UnkTextStruct2 unk148[4]; + SpriteOAM unk1A8; + u32 unk1B0; // Sprite count? +} SaveMenuWork; + +void CleanSaveMenu(void); +void CreateSaveMenu(s32 currMenu); +s32 UpdateSaveMenu(void); + +#endif // GUARD_SAVE_MENU_H \ No newline at end of file diff --git a/include/unk_menu_203B360.h b/include/unk_menu_203B360.h new file mode 100644 index 000000000..4821dfe14 --- /dev/null +++ b/include/unk_menu_203B360.h @@ -0,0 +1,7 @@ +#ifndef GUARD_UNK_MENU_203B360_H +#define GUARD_UNK_MENU_203B360_H + +void sub_80383A8(void); +u32 sub_80383D4(void); + +#endif // GUARD_UNK_MENU_203B360_H \ No newline at end of file diff --git a/include/util.h b/include/util.h index 3da2beb90..95cf657df 100644 --- a/include/util.h +++ b/include/util.h @@ -7,4 +7,4 @@ s32 ConvertFromDecimal(s32 *decimal, s32 sign, s32 len); s32 ConvertFromBCD(s32 bcd); s32 ConvertToBCD(s32 n); -#endif // GUARD_UTIL_H +#endif // GUARD_UTIL_H \ No newline at end of file diff --git a/include/wonder_mail_main_menu.h b/include/wonder_mail_main_menu.h new file mode 100644 index 000000000..3c18f0a70 --- /dev/null +++ b/include/wonder_mail_main_menu.h @@ -0,0 +1,8 @@ +#ifndef GUARD_WONDER_MAIL_MAIN_MENU_H +#define GUARD_WONDER_MAIL_MAIN_MENU_H + +void CleanWonderMailMenu(void); +bool8 CreateWonderMailMenu(void); +u32 UpdateWonderMailMenu(void); + +#endif // GUARD_WONDER_MAIL_MAIN_MENU_H \ No newline at end of file diff --git a/ld_script.txt b/ld_script.txt index fb47e7477..36fb50add 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -149,7 +149,8 @@ SECTIONS { src/friend_rescue.o(.text); src/credits1.o(.text); src/credits2.o(.text); - src/main_menu.o(.text); + src/main_menu1.o(.text); + src/main_menu2.o(.text); src/trade_items_menu.o(.text); src/other_menus1.o(.text); asm/other_menus1.o(.text); @@ -446,7 +447,8 @@ SECTIONS { data/friend_rescue.o(.rodata); data/credits1.o(.rodata); src/credits2.o(.rodata); - src/main_menu.o(.rodata); + src/main_menu1.o(.rodata); + src/main_menu2.o(.rodata); src/trade_items_menu.o(.rodata); src/other_menus1.o(.rodata); src/other_menus2.o(.rodata); diff --git a/src/adventure_log_menu.c b/src/adventure_log_menu.c index 69684af72..523c9da43 100644 --- a/src/adventure_log_menu.c +++ b/src/adventure_log_menu.c @@ -1,8 +1,8 @@ #include "global.h" #include "adventure_log.h" #include "adventure_log_menu.h" +#include "constants/main_menu.h" #include "input.h" -#include "main_menu.h" #include "text1.h" void CreateAdventureLogMenu(void) diff --git a/src/code_2.c b/src/code_2.c index 480086be1..2ecf645c6 100644 --- a/src/code_2.c +++ b/src/code_2.c @@ -9,6 +9,7 @@ #include "code_8094F88.h" #include "code_8097670.h" #include "constants/bg_music.h" +#include "constants/main_menu.h" #include "cpu.h" #include "debug.h" #include "event_flag.h" @@ -17,7 +18,8 @@ #include "friend_area.h" #include "game_options.h" #include "input.h" -#include "main_menu.h" +#include "main_menu1.h" +#include "main_menu2.h" #include "memory.h" #include "moves.h" #include "music.h" @@ -33,7 +35,6 @@ extern void NDS_LoadOverlay_GroundMain(void); extern void sub_8014144(void); extern void LoadGameOptions(void); -extern void SetWindowBGColor(void); extern void LoadItemParameters(void); extern void LoadMailInfo(void); extern void sub_800DAAC(void); diff --git a/src/code_803D0D8.c b/src/code_803D0D8.c index e8d3804ec..9234514c9 100644 --- a/src/code_803D0D8.c +++ b/src/code_803D0D8.c @@ -10,9 +10,9 @@ u8 sub_803D0D8() return sUnknown_203B408; } -UNUSED static void sub_803D0E4(u8 r0) +UNUSED static void sub_803D0E4(u8 a0) { - sUnknown_203B408 = r0; + sUnknown_203B408 = a0; } u8 sub_803D0F0(u8 r0) diff --git a/src/data/main_menu1.h b/src/data/main_menu1.h new file mode 100644 index 000000000..4b36df5c7 --- /dev/null +++ b/src/data/main_menu1.h @@ -0,0 +1,10 @@ +static const u8 sFill[] = "pksdir0"; + +static const UnkTextStruct2 sUnknown_80E59A8 = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; \ No newline at end of file diff --git a/src/data/main_menu2.h b/src/data/main_menu2.h new file mode 100644 index 000000000..710f7c54b --- /dev/null +++ b/src/data/main_menu2.h @@ -0,0 +1,291 @@ +static const u8 sFill[] = "pksdir0"; + +static const UnkTextStruct2 sUnknown_80E59C8 = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; + +static const UnkTextStruct2 sUnknown_80E59E0 = { + 0, 0, 0, 0, + 3, + 2, 2, + 10, 3, + 3, 0, + NULL +}; + +static const MenuItem sUnknown_80E59F8[] = +{ + {"New Game", MENU_NEW_GAME}, + {"Adventure Log", MENU_ADVENTURE_LOG}, + {NULL, 0xffdd}, +}; + +UNUSED static const UnkTextStruct2 sUnknown_80E5A29 = { + 0, 0, 0, 0, + 3, + 2, 2, + 10, 2, + 2, 0, + NULL +}; + +UNUSED static const MenuItem sUnknown_80E5A44[] = +{ + {"Wonder Mail", MENU_WONDER_MAIL}, + {NULL, 0xffdd}, +}; + +static const UnkTextStruct2 sUnknown_80E5A60 = { + 0, 0, 0, 0, + 3, + 2, 2, + 10, 8, + 8, 0, + NULL +}; + +static const UnkTextStruct2 sUnknown_80E5A78 = { + 0, 0, 0, 0, + 3, + 2, 2, + 11, 9, + 9, 0, + NULL +}; + +static const MenuItem sUnknown_80E5A90[] = +{ + {"Continue", MENU_CONTINUE}, + {"Delete Save Data", MENU_DELETE_SAVE_PROMPT}, + {"Adventure Log", MENU_ADVENTURE_LOG}, + {"Friend Rescue", MENU_FRIEND_RESCUE}, + {"Trade Items", MENU_TRADE_ITEMS}, + {NULL, 0xffdd}, +}; + +static const MenuItem sUnknown_80E5AFC[] = +{ + {"Continue", MENU_CONTINUE}, + {"Delete Save Data", MENU_DELETE_SAVE_PROMPT}, + {"Adventure Log", MENU_ADVENTURE_LOG}, + {"Friend Rescue", MENU_FRIEND_RESCUE}, + {"Trade Items", MENU_TRADE_ITEMS}, + {"Wonder Mail", MENU_WONDER_MAIL}, + {NULL, 0xffdd}, +}; + +static const UnkTextStruct2 sUnknown_80E5B34 = { + 0, 0, 0, 0, + 3, + 2, 2, + 10, 8, + 8, 0, + NULL +}; + +static const MenuItem sUnknown_80E5B4C[] = +{ + {"Awaiting Rescue", MENU_AWAITING_RESCUE}, + {"Delete Save Data", MENU_DELETE_SAVE_PROMPT}, + {"Adventure Log", MENU_ADVENTURE_LOG}, + {"Friend Rescue", MENU_FRIEND_RESCUE}, + {"Trade Items", MENU_TRADE_ITEMS}, + {NULL, 0xffdd}, +}; + +static const MenuItem sUnknown_80E5B8C[] = +{ + {"Awaiting Rescue", MENU_AWAITING_RESCUE}, + {"Delete Save Data", MENU_DELETE_SAVE_PROMPT}, + {"Adventure Log", MENU_ADVENTURE_LOG}, + {"Friend Rescue", MENU_FRIEND_RESCUE}, + {"Trade Items", MENU_TRADE_ITEMS}, + {"Wonder Mail", MENU_WONDER_MAIL}, + {NULL, 0xffdd}, +}; + +static const UnkTextStruct2 sUnknown_80E5BC4 = { + 0, 0, 0, 0, + 3, + 2, 2, + 10, 8, + 8, 0, + NULL +}; + +static const MenuItem sUnknown_80E5BDC[] = +{ + {"Revive Team", MENU_CONTINUE}, + {"Delete Save Data", MENU_DELETE_SAVE_PROMPT}, + {"Adventure Log", MENU_ADVENTURE_LOG}, + {"Friend Rescue", MENU_FRIEND_RESCUE}, + {"Trade Items", MENU_TRADE_ITEMS}, + {NULL, 0xffdd}, +}; + +static const MenuItem sUnknown_80E5C18[] = +{ + {"Revive Team", MENU_CONTINUE}, + {"Delete Save Data", MENU_DELETE_SAVE_PROMPT}, + {"Adventure Log", MENU_ADVENTURE_LOG}, + {"Friend Rescue", MENU_FRIEND_RESCUE}, + {"Trade Items", MENU_TRADE_ITEMS}, + {"Wonder Mail", MENU_WONDER_MAIL}, + {NULL, 0xffdd}, +}; + +UNUSED static const UnkTextStruct2 sUnknown_80E5C50 = { + 0, 0, 0, 0, + 3, + 2, 2, + 10, 3, + 3, 0, + NULL +}; + +UNUSED static const MenuItem sUnknown_80E5C68[] = +{ + {"Send Items", MENU_SEND_ITEMS}, + {"Receive Items", MENU_RECEIVE_ITEMS}, + {NULL, 0xffdd}, +}; + +UNUSED static const MenuItem sUnknown_80E5C9C[] = +{ + {"Send Items", -1}, + {"Receive Items", MENU_RECEIVE_ITEMS}, + {NULL, 0xffdd}, +}; + +static const UnkTextStruct2 sUnknown_80E5CB4 = { + 0, 0, 0, 0, + 3, + 2, 15, + 26, 3, + 3, 0, + NULL +}; + +static const u8 sUnknown_80E5CE4[]; +static const u8 sUnknown_80E5CE8[]; +static const MenuItem sUnknown_80E5CCC[] = +{ + {sUnknown_80E5CE8, 0xffde}, + {sUnknown_80E5CE4, 0xffde}, + {NULL, 0xffdd}, +}; +ALIGNED(4) static const u8 sUnknown_80E5CE4[] = _(" "); +ALIGNED(4) static const u8 sUnknown_80E5CE8[] = _("Start an entirely new adventure."); + +static const u8 sUnknown_80E5D24[]; +static const MenuItem sUnknown_80E5D0C[] = +{ + {sUnknown_80E5D24, 0xffde}, + {sUnknown_80E5CE4, 0xffde}, + {NULL, 0xffdd}, +}; +ALIGNED(4) static const u8 sUnknown_80E5D24[] = _("Check your career as an adventurer."); + +static const u8 sUnknown_80E5D60[]; +static const u8 sUnknown_80E5D88[]; +static const MenuItem sUnknown_80E5D48[] = +{ + {sUnknown_80E5D88, 0xffde}, + {sUnknown_80E5D60, 0xffde}, + {NULL, 0xffdd}, +}; +ALIGNED(4) static const u8 sUnknown_80E5D60[] = _("It won{APOSTROPHE}t be in the release version."); +ALIGNED(4) static const u8 sUnknown_80E5D88[] = _("This is the Debug Mode."); + +static const u8 sUnknown_80E5DB8[]; +static const u8 sUnknown_80E5DCC[]; +static const MenuItem sUnknown_80E5DA0[] = +{ + {sUnknown_80E5DCC, 0xffde}, + {sUnknown_80E5DB8, 0xffde}, + {NULL, 0xffdd}, +}; +ALIGNED(4) static const u8 sUnknown_80E5DB8[] = _("you last saved. "); +ALIGNED(4) static const u8 sUnknown_80E5DCC[] = _("Resume your adventure from where"); + +static const u8 sUnknown_80E5E08[]; +static const u8 sUnknown_80E5E34[]; +static const MenuItem sUnknown_80E5DF0[] = +{ + {sUnknown_80E5E34, 0xFFDE}, + {sUnknown_80E5E08, 0xFFDE}, + {0, 0xFFDD} +}; +ALIGNED(4) static const u8 sUnknown_80E5E08[] = _("{COLOR_1 RED}Beware{END_COLOR_TEXT_1}! This will delete it forever!"); +ALIGNED(4) static const u8 sUnknown_80E5E34[] = _("This will delete your saved game data."); + +static const u8 sUnknown_80E5E74[]; +static const u8 sUnknown_80E5EA0[]; +static const MenuItem sUnknown_80E5E5C[] = +{ + {sUnknown_80E5EA0, 0xFFDE}, + {sUnknown_80E5E74, 0xFFDE}, + {0, 0xFFDD} +}; +ALIGNED(4) static const u8 sUnknown_80E5E74[] = _("passwords{COMMA} friends may rescue each other."); +ALIGNED(4) static const u8 sUnknown_80E5EA0[] = _("Using a Game Link cable or"); + +static const u8 sUnknown_80E5ED4[]; +static const u8 sUnknown_80E5EF8[]; +static const MenuItem sUnknown_80E5EBC[] = +{ + {sUnknown_80E5EF8, 0xFFDE}, + {sUnknown_80E5ED4, 0xFFDE}, + {0, 0xFFDD} +}; +ALIGNED(4) static const u8 sUnknown_80E5ED4[] = _("trade stored items with a friend."); +ALIGNED(4) static const u8 sUnknown_80E5EF8[] = _("Using a Game Link cable{COMMA} you can"); + +static const u8 sUnknown_80E5F34[]; +static const u8 sUnknown_80E5F58[]; +static const MenuItem sUnknown_80E5F1C[] = +{ + {sUnknown_80E5F58, 0xFFDE}, + {sUnknown_80E5F34, 0xFFDE}, + {0, 0xFFDD} +}; +ALIGNED(4) static const u8 sUnknown_80E5F34[] = _("You can give up waiting for rescue."); +ALIGNED(4) static const u8 sUnknown_80E5F58[] = _("You are awaiting rescue by a friend."); + +static const u8 sUnknown_80E5F98[]; +static const u8 sUnknown_80E5FB0[]; +static const MenuItem sUnknown_80E5F80[] = +{ + {sUnknown_80E5FB0, 0xFFDE}, + {sUnknown_80E5F98, 0xFFDE}, + {0, 0xFFDD} +}; +ALIGNED(4) static const u8 sUnknown_80E5F98[] = _("receive Wonder Mail."); +ALIGNED(4) static const u8 sUnknown_80E5FB0[] = _("Using passwords{COMMA} you can"); + +static const u8 sUnknown_80E5FE4[]; +static const u8 sUnknown_80E6008[]; +static const MenuItem sUnknown_80E5FCC[] = +{ + {sUnknown_80E6008, 0xFFDE}, + {sUnknown_80E5FE4, 0xFFDE}, + {NULL, 0xFFDD} +}; +ALIGNED(4) static const u8 sUnknown_80E5FE4[] = _("receive teams from your friends."); +ALIGNED(4) static const u8 sUnknown_80E6008[] = _("Using the Dual Slot function{COMMA} you can"); + +static const u8 sUnknown_80E6048[]; +static const u8 sUnknown_80E6070[]; +static const MenuItem sUnknown_80E6030[] = +{ + {sUnknown_80E6070, 0xFFDE}, + {sUnknown_80E6048, 0xFFDE}, + {NULL, 0xFFDD} +}; +ALIGNED(4) static const u8 sUnknown_80E6048[] = _("go on an adventure to unknown worlds."); +ALIGNED(4) static const u8 sUnknown_80E6070[] = _("Using wireless communication{COMMA} you can"); \ No newline at end of file diff --git a/src/debug_menu1.c b/src/debug_menu1.c index 3014d8b7a..d9912ba25 100644 --- a/src/debug_menu1.c +++ b/src/debug_menu1.c @@ -1,9 +1,10 @@ #include "global.h" #include "code_8097670.h" #include "constants/friend_area.h" +#include "constants/main_menu.h" #include "debug_menu1.h" #include "friend_area.h" -#include "main_menu.h" +#include "main_menu1.h" #include "memory.h" #include "menu_input.h" #include "pokemon.h" @@ -138,7 +139,7 @@ u32 UpdateDebugMenu(void) void SetDebugMenuItems(void) { - SetMenuItems(sDebugMenu->unk0, sDebugMenu->unk140, 0, &sUnknown_80E7D58, sDebugMenuItems, 1, 13, 0); + SetMenuItems(sDebugMenu->unk0, sDebugMenu->unk140, 0, &sUnknown_80E7D58, sDebugMenuItems, TRUE, 13, 0); sub_8035CF4(sDebugMenu->unk0, 0, 1); } diff --git a/src/friend_rescue.c b/src/friend_rescue.c index 8ee6bf724..73f21e415 100644 --- a/src/friend_rescue.c +++ b/src/friend_rescue.c @@ -11,7 +11,7 @@ #include "cpu.h" #include "friend_rescue.h" #include "items.h" -#include "main_menu.h" +#include "main_menu1.h" #include "memory.h" #include "menu_input.h" #include "other_menus2.h" @@ -269,7 +269,6 @@ extern void sub_8031E00(void); extern u8 sub_8024108(u32); extern void sub_802452C(void); extern u32 sub_80244E4(void); -extern void sub_8035D1C(void); extern u32 sub_8039068(u32, u8 *passwordBuffer, unkStruct_203B480 *r0); extern void sub_803084C(void); @@ -889,7 +888,7 @@ void sub_8032828(void) break; case 0x27: sub_8006518(gUnknown_203B33C->unk35C); - SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E2334, &gUnknown_80E234C, 1, 0, 0); + SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E2334, &gUnknown_80E234C, TRUE, 0, 0); sub_8023DA4(); sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1); break; @@ -1052,7 +1051,7 @@ void sub_8032828(void) break; case 0x5D: sub_8006518(gUnknown_203B33C->unk35C); - SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E231C, &gUnknown_80E2408, 1, 0, 0); + SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E231C, &gUnknown_80E2408, TRUE, 0, 0); sub_803092C(); sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1); break; @@ -1068,7 +1067,7 @@ void sub_8032828(void) break; case 0x60: sub_8006518(gUnknown_203B33C->unk35C); - SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E23F0, &gUnknown_80E2408, 1, 0, 0); + SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E23F0, &gUnknown_80E2408, TRUE, 0, 0); sub_801CCD8(); sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1); break; @@ -1231,7 +1230,7 @@ void sub_8032828(void) case 0x1E: case 0x33: sub_8006518(gUnknown_203B33C->unk35C); - SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E231C, &gUnknown_80E234C, 1, 0, 0); + SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E231C, &gUnknown_80E234C, TRUE, 0, 0); sub_803092C(); sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1); break; diff --git a/src/game_options.c b/src/game_options.c index f73d4b30c..81ee10465 100644 --- a/src/game_options.c +++ b/src/game_options.c @@ -19,7 +19,6 @@ extern struct WindowBG gWindowBGColors; EWRAM_DATA_2 GameOptions *gGameOptionsRef = {0}; EWRAM_DATA GameOptions gGameOptions = {0}; -extern void SetWindowBGColor(void); void LoadGameOptions(void) { diff --git a/src/load_screen.c b/src/load_screen.c index 9cec7ca26..4a7700fe7 100644 --- a/src/load_screen.c +++ b/src/load_screen.c @@ -3,11 +3,12 @@ #include "code_800D090.h" #include "code_8094F88.h" #include "code_8097670.h" +#include "constants/main_menu.h" #include "constants/wonder_mail.h" #include "event_flag.h" #include "file_system.h" #include "input.h" -#include "main_menu.h" +#include "main_menu1.h" #include "memory.h" #include "menu.h" #include "menu_input.h" @@ -164,25 +165,25 @@ void CreateLoadScreen(u32 currMenu) } ResetUnusedInputStruct(); sub_800641C(gLoadScreen->unk144, TRUE, TRUE); - SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,0,&gUnknown_80E7610,gUnknown_203B378,0,6,0); + SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,0,&gUnknown_80E7610,gUnknown_203B378,FALSE,6,0); switch(gLoadScreen->currMenu){ case MENU_CONTINUE: if (IsQuickSave()) - SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gResumeQuicksaveMenuItems,0,6,0); + SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gResumeQuicksaveMenuItems,FALSE,6,0); else - SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gResumeAdventureMenuItems,0,6,0); + SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gResumeAdventureMenuItems,FALSE,6,0); break; case MENU_AWAITING_RESCUE: - SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gQuitWaitingRescueMenuItems,0,6,0); + SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gQuitWaitingRescueMenuItems,FALSE,6,0); break; case MENU_DELETE_SAVE_PROMPT: - SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gDeleteSavePromptMenuItems,0,6,0); + SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gDeleteSavePromptMenuItems,FALSE,6,0); break; case MENU_DELETE_SAVE_CONFIRM: - SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C, gDeleteSaveConfirmMenuItems,0,6,0); + SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C, gDeleteSaveConfirmMenuItems,FALSE,6,0); break; } - SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,2,&gUnknown_80E7784,gLoadScreenYesNoMenu,1,2,0); + SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,2,&gUnknown_80E7784,gLoadScreenYesNoMenu,TRUE,2,0); sub_8035CF4(gLoadScreen->unk4,0,0); sub_8035CF4(gLoadScreen->unk4,1,0); sub_8035CF4(gLoadScreen->unk4,2,1); diff --git a/src/main_menu.c b/src/main_menu.c deleted file mode 100644 index deee9c0d8..000000000 --- a/src/main_menu.c +++ /dev/null @@ -1,1039 +0,0 @@ -#include "global.h" -#include "adventure_log_menu.h" -#include "code_803D0D8.h" -#include "code_8098BDC.h" -#include "constants/wonder_mail.h" -#include "debug_menu1.h" -#include "ds_menus.h" -#include "friend_rescue.h" -#include "load_screen.h" -#include "main_menu.h" -#include "memory.h" -#include "menu_input.h" -#include "other_menus1.h" -#include "pokemon.h" -#include "rescue_password_menu.h" -#include "save.h" -#include "text1.h" -#include "text2.h" -#include "trade_items_menu.h" - -// NOTE: 0x13 and 0x14 -// Communication Screen? -// Got Communication warning when I wrote them to the struct - -// NOTE: 0x29, 0x2A, 0x2B, 0x2C -// Triggers a save - -// NOTE: 0x2D -// Triggers a save and then goes to 0x13 (comms warning) - -// NOTE: 0x2E -// Deletes the Save - -// split 1/2 -static EWRAM_DATA_2 MainMenu *sMainMenu = {0}; -// split 2/2 -static EWRAM_DATA_2 unkStruct_203B34C *sUnknown_203B34C = {0}; -static EWRAM_DATA_2 u32 sUnknown_203B350 = {0}; -static EWRAM_DATA_2 u32 sUnknown_203B354 = {0}; - -extern void SetWindowBGColor(void); -extern void CreateWonderMailMenu(void); -extern void CreateSaveMenu(u32); -extern u32 UpdateMainMenu(void); -extern s32 UpdateWonderMailMenu(void); -extern s32 sub_80383D4(void); -extern s32 UpdateSaveMenu(void); -extern void CleanWonderMailMenu(void); -extern void sub_80383A8(void); -extern void CleanSaveMenu(void); - -void CleanMainMenu(void); -void DrawMainMenu(void); -s32 sub_8035DB4(u32); -void sub_803623C(void); -bool8 SetMainMenuText(); -void SetMainMenuItems(); - -static const u8 sUnknown_80E5CE4[]; -static const u8 sUnknown_80E5CE8[]; -static const u8 sUnknown_80E5D24[]; -static const u8 sUnknown_80E5D60[]; -static const u8 sUnknown_80E5D88[]; -static const u8 sUnknown_80E5DB8[]; -static const u8 sUnknown_80E5DCC[]; -static const u8 sUnknown_80E5E08[]; -static const u8 sUnknown_80E5E34[]; -static const u8 sUnknown_80E5EA0[]; -static const u8 sUnknown_80E5E74[]; -static const u8 sUnknown_80E5EF8[]; -static const u8 sUnknown_80E5ED4[]; -static const u8 sUnknown_80E5F58[]; -static const u8 sUnknown_80E5F34[]; -static const u8 sUnknown_80E5FB0[]; -static const u8 sUnknown_80E5F98[]; -static const u8 sUnknown_80E5FE4[]; -static const u8 sUnknown_80E6008[]; - -// split 1/2 -static const u8 sFillllllllllllllllllllllllllllll[] = "pksdir0"; - -const UnkTextStruct2 gUnknown_80E59A8 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - NULL -}; - -// split 2/2 -static const u8 sFill[] = "pksdir0"; - -const UnkTextStruct2 gUnknown_80E59C8 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - NULL -}; - -const UnkTextStruct2 gUnknown_80E59E0 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x02, 0x02, - 0x0A, 0x03, - 0x03, 0x00, - NULL -}; - -const MenuItem gUnknown_80E59F8[] = -{ - {"New Game", MENU_NEW_GAME}, - {"Adventure Log", MENU_ADVENTURE_LOG}, - {NULL, 0xffdd}, -}; - -const UnkTextStruct2 gUnknown_80E5A29 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x02, 0x02, - 0x0A, 0x02, - 0x02, 0x00, - NULL -}; - -const MenuItem gUnknown_80E5A44[] = -{ - {"Wonder Mail", MENU_WONDER_MAIL}, - {NULL, 0xffdd}, -}; - -const UnkTextStruct2 gUnknown_80E5A60 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x02, 0x02, - 0x0A, 0x08, - 0x08, 0x00, - NULL -}; - -const UnkTextStruct2 gUnknown_80E5A78 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x02, 0x02, - 0x0B, 0x09, - 0x09, 0x00, - NULL -}; - -const MenuItem gUnknown_80E5A90[] = -{ - {"Continue", MENU_CONTINUE}, - {"Delete Save Data", MENU_DELETE_SAVE_PROMPT}, - {"Adventure Log", MENU_ADVENTURE_LOG}, - {"Friend Rescue", MENU_FRIEND_RESCUE}, - {"Trade Items", MENU_TRADE_ITEMS}, - {NULL, 0xffdd}, -}; - -const MenuItem gUnknown_80E5AFC[] = -{ - {"Continue", MENU_CONTINUE}, - {"Delete Save Data", MENU_DELETE_SAVE_PROMPT}, - {"Adventure Log", MENU_ADVENTURE_LOG}, - {"Friend Rescue", MENU_FRIEND_RESCUE}, - {"Trade Items", MENU_TRADE_ITEMS}, - {"Wonder Mail", MENU_WONDER_MAIL}, - {NULL, 0xffdd}, -}; - -const UnkTextStruct2 gUnknown_80E5B34 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x02, 0x02, - 0x0A, 0x08, - 0x08, 0x00, - NULL -}; - -const MenuItem gUnknown_80E5B4C[] = -{ - {"Awaiting Rescue", MENU_AWAITING_RESCUE}, - {"Delete Save Data", MENU_DELETE_SAVE_PROMPT}, - {"Adventure Log", MENU_ADVENTURE_LOG}, - {"Friend Rescue", MENU_FRIEND_RESCUE}, - {"Trade Items", MENU_TRADE_ITEMS}, - {NULL, 0xffdd}, -}; - -const MenuItem gUnknown_80E5B8C[] = -{ - {"Awaiting Rescue", MENU_AWAITING_RESCUE}, - {"Delete Save Data", MENU_DELETE_SAVE_PROMPT}, - {"Adventure Log", MENU_ADVENTURE_LOG}, - {"Friend Rescue", MENU_FRIEND_RESCUE}, - {"Trade Items", MENU_TRADE_ITEMS}, - {"Wonder Mail", MENU_WONDER_MAIL}, - {NULL, 0xffdd}, -}; - -const UnkTextStruct2 gUnknown_80E5BC4 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x02, 0x02, - 0x0A, 0x08, - 0x08, 0x00, - NULL -}; - -const MenuItem gUnknown_80E5BDC[] = -{ - {"Revive Team", MENU_CONTINUE}, - {"Delete Save Data", MENU_DELETE_SAVE_PROMPT}, - {"Adventure Log", MENU_ADVENTURE_LOG}, - {"Friend Rescue", MENU_FRIEND_RESCUE}, - {"Trade Items", MENU_TRADE_ITEMS}, - {NULL, 0xffdd}, -}; - -const MenuItem gUnknown_80E5C18[] = -{ - {"Revive Team", MENU_CONTINUE}, - {"Delete Save Data", MENU_DELETE_SAVE_PROMPT}, - {"Adventure Log", MENU_ADVENTURE_LOG}, - {"Friend Rescue", MENU_FRIEND_RESCUE}, - {"Trade Items", MENU_TRADE_ITEMS}, - {"Wonder Mail", MENU_WONDER_MAIL}, - {NULL, 0xffdd}, -}; - -const UnkTextStruct2 gUnknown_80E5C50 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x02, 0x02, - 0x0A, 0x03, - 0x03, 0x00, - NULL -}; - -const MenuItem gUnknown_80E5C68[] = -{ - {"Send Items", MENU_SEND_ITEMS}, - {"Receive Items", MENU_RECEIVE_ITEMS}, - {NULL, 0xffdd}, -}; - -const MenuItem gUnknown_80E5C9C[] = -{ - {"Send Items", -1}, - {"Receive Items", MENU_RECEIVE_ITEMS}, - {NULL, 0xffdd}, -}; - -const UnkTextStruct2 gUnknown_80E5CB4 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x02, 0x0F, - 0x1A, 0x03, - 0x03, 0x00, - NULL -}; - -const MenuItem gUnknown_80E5CCC[] = -{ - {sUnknown_80E5CE8, 0xffde}, - {sUnknown_80E5CE4, 0xffde}, - {NULL, 0xffdd}, -}; - -static const u8 sUnknown_80E5CE4[] = " "; -static const u8 sUnknown_80E5CE8[] = "Start an entirely new adventure."; - -const MenuItem gUnknown_80E5D0C[] = -{ - {sUnknown_80E5D24, 0xffde}, - {sUnknown_80E5CE4, 0xffde}, - {NULL, 0xffdd}, -}; - -static const u8 sUnknown_80E5D24[] = "Check your career as an adventurer."; - -const MenuItem gUnknown_80E5D48[] = -{ - {sUnknown_80E5D88, 0xffde}, - {sUnknown_80E5D60, 0xffde}, - {NULL, 0xffdd}, -}; - -static const u8 sUnknown_80E5D60[] = _("It won{APOSTROPHE}t be in the release version."); -static const u8 sUnknown_80E5D88[] = "This is the Debug Mode."; - -const MenuItem gUnknown_80E5DA0[] = -{ - {sUnknown_80E5DCC, 0xffde}, - {sUnknown_80E5DB8, 0xffde}, - {NULL, 0xffdd}, -}; - -static const u8 sUnknown_80E5DB8[] = "you last saved. "; -static const u8 sUnknown_80E5DCC[] = "Resume your adventure from where"; - -const MenuItem gUnknown_80E5DF0[] = { - {sUnknown_80E5E34, 0xFFDE}, - {sUnknown_80E5E08, 0xFFDE}, - {0, 0xFFDD} -}; - -static const u8 sUnknown_80E5E08[] = _("{COLOR_1 RED}Beware{END_COLOR_TEXT_1}! This will delete it forever!"); -static const u8 sUnknown_80E5E34[] = "This will delete your saved game data."; - -const MenuItem gUnknown_80E5E5C[] = { - {sUnknown_80E5EA0, 0xFFDE}, - {sUnknown_80E5E74, 0xFFDE}, - {0, 0xFFDD} -}; - -ALIGNED(4) static const u8 sUnknown_80E5E74[] = _("passwords{COMMA} friends may rescue each other."); -static const u8 sUnknown_80E5EA0[] = "Using a Game Link cable or"; - -const MenuItem gUnknown_80E5EBC[] = { - {sUnknown_80E5EF8, 0xFFDE}, - {sUnknown_80E5ED4, 0xFFDE}, - {0, 0xFFDD} -}; - -static const u8 sUnknown_80E5ED4[] = "trade stored items with a friend."; -ALIGNED(4) static const u8 sUnknown_80E5EF8[] = _("Using a Game Link cable{COMMA} you can"); - -const MenuItem gUnknown_80E5F1C[] = { - {sUnknown_80E5F58, 0xFFDE}, - {sUnknown_80E5F34, 0xFFDE}, - {0, 0xFFDD} -}; - -static const u8 sUnknown_80E5F34[] = "You can give up waiting for rescue."; -static const u8 sUnknown_80E5F58[] = "You are awaiting rescue by a friend."; - -const MenuItem gUnknown_80E5F80[] = { - {sUnknown_80E5FB0, 0xFFDE}, - {sUnknown_80E5F98, 0xFFDE}, - {0, 0xFFDD} -}; - -static const u8 sUnknown_80E5F98[] = "receive Wonder Mail."; -ALIGNED(4) static const u8 sUnknown_80E5FB0[] = _("Using passwords{COMMA} you can"); - -const MenuItem gUnknown_80E5FCC[] = { - {sUnknown_80E6008, 0xFFDE}, - {sUnknown_80E5FE4, 0xFFDE}, - {NULL, 0xFFDD} -}; - -static const u8 sUnknown_80E5FE4[] = "receive teams from your friends."; -ALIGNED(4) static const u8 sUnknown_80E6008[] = _("Using the Dual Slot function{COMMA} you can"); - -static const u8 sUnknown_80E6048[]; -static const u8 sUnknown_80E6070[]; - -const MenuItem gUnknown_80E6030[] = { - {sUnknown_80E6070, 0xFFDE}, - {sUnknown_80E6048, 0xFFDE}, - {NULL, 0xFFDD} -}; - -static const u8 sUnknown_80E6048[] = "go on an adventure to unknown worlds."; -ALIGNED(4) static const u8 sUnknown_80E6070[] = _("Using wireless communication{COMMA} you can"); - - - -// SPLIT 1/2 - - - - -void InitMainMenu(void) -{ - if (sMainMenu == NULL) { - sMainMenu = MemoryAlloc(sizeof(MainMenu),8); - MemoryFill8((u8 *)sMainMenu, 0, sizeof(MainMenu)); - } - sMainMenu->currMenu = MENU_NO_SCREEN_CHANGE; - sMainMenu->nextMenu = MENU_MAIN_SCREEN; - sMainMenu->lastMenu = MENU_MAIN_SCREEN; - sMainMenu->unk38 = -1; - sMainMenu->unk3C = -1; - sMainMenu->sub.unk2E = 0; - sMainMenu->sub.unk2C = 1; - sMainMenu->sub.unk2D = 0; - sub_8035DA0(); - sMainMenu->unk3A = 0; -} - -void DeleteMainMenu(void) -{ - if(sMainMenu){ - MemoryFree(sMainMenu); - sMainMenu = NULL; - } -} - -void SetUpMenu(void) -{ - if (sMainMenu->currMenu != sMainMenu->nextMenu) { - switch(sMainMenu->nextMenu) { - case MENU_MAIN_SCREEN: - SetWindowBGColor(); - sub_8099690(0); - DrawMainMenu(); - break; - case MENU_AWAITING_RESCUE: - case MENU_CONTINUE: - case MENU_DELETE_SAVE_PROMPT: - case MENU_DELETE_SAVE_CONFIRM: - CreateLoadScreen(sMainMenu->nextMenu); - break; - case MENU_TRADE_ITEMS: - CreateTradeItemsMenu(); - break; - case MENU_COMMUNICATION_1: - case MENU_COMMUNICATION_2: - sub_8036FDC(sub_8035DB4(sMainMenu->nextMenu)); - break; - case MENU_FRIEND_RESCUE: - CreateFriendRescueMenu(); - break; - case MENU_WONDER_MAIL: - CreateWonderMailMenu(); - break; - case MENU_DUAL_SLOT: - CreateDualSlotMenu(); - break; - case MENU_WIRELESS_COMMS: - CreateWirelessCommsMenu(); - break; - case MENU_DISPLAY_RESCUE_PASSWORD: - case MENU_RESCUE_PASSWORD_ENTRY: - CreateRescuePasswordMenu(sMainMenu->nextMenu); - break; - case MENU_ADVENTURE_LOG: - CreateAdventureLogMenu(); - break; - case 0x29: - case 0x2a: - case 0x2b: - case 0x2c: - case 0x2d: - case MENU_DELETE_SAVE: - CreateSaveMenu(sMainMenu->nextMenu); - break; - case MENU_DEBUG: - CreateDebugMenu(); - break; - } - sMainMenu->currMenu = sMainMenu->nextMenu; - } -} - -s32 UpdateMenu(void) -{ - s32 nextMenu1; - s32 nextMenu; - - nextMenu = MENU_NO_SCREEN_CHANGE; - switch(sMainMenu->nextMenu) { - case MENU_MAIN_SCREEN: - nextMenu = UpdateMainMenu(); - break; - case MENU_AWAITING_RESCUE: - case MENU_CONTINUE: - case MENU_DELETE_SAVE_PROMPT: - case MENU_DELETE_SAVE_CONFIRM: - nextMenu = UpdateLoadScreenMenu(); - break; - case MENU_TRADE_ITEMS: - nextMenu1 = UpdateTradeItemsMenu(); - nextMenu = MENU_MAIN_SCREEN; - if (nextMenu1 != 3) { - nextMenu = MENU_NO_SCREEN_CHANGE; - } - break; - case MENU_FRIEND_RESCUE: - nextMenu1 = UpdateFriendRescueMenu(); - nextMenu = MENU_MAIN_SCREEN; - if (nextMenu1 != 3) { - nextMenu = MENU_NO_SCREEN_CHANGE; - } - break; - case MENU_WONDER_MAIL: - nextMenu1 = UpdateWonderMailMenu(); - nextMenu = MENU_MAIN_SCREEN; - if (nextMenu1 != 3) { - nextMenu = MENU_NO_SCREEN_CHANGE; - } - break; - case MENU_DUAL_SLOT: - nextMenu1 = UpdateDualSlotMenu(); - nextMenu = MENU_MAIN_SCREEN; - if (nextMenu1 != 3) { - nextMenu = MENU_NO_SCREEN_CHANGE; - } - break; - case MENU_WIRELESS_COMMS: - nextMenu1 = UpdateWirelessCommsMenu(); - nextMenu = 5; - if ((nextMenu1 != 3) && (nextMenu = MENU_NO_SCREEN_CHANGE, nextMenu1 == 2)) { - nextMenu = MENU_MAIN_SCREEN; - } - break; - case MENU_DISPLAY_RESCUE_PASSWORD: - case MENU_RESCUE_PASSWORD_ENTRY: - nextMenu = UpdateRescuePasswordMenu(); - break; - case MENU_ADVENTURE_LOG: - nextMenu = UpdateAdventureLogMenu(); - break; - case 0x24: - case 0x25: - case 0x26: - case 0x27: - case 0x28: - nextMenu = sub_80383D4(); - break; - case 0x29: - case 0x2a: - case 0x2b: - case 0x2c: - case 0x2d: - case MENU_DELETE_SAVE: - nextMenu = UpdateSaveMenu(); - break; - case MENU_DEBUG: - nextMenu = UpdateDebugMenu(); - break; - } - if (nextMenu != MENU_NO_SCREEN_CHANGE) { - sMainMenu->nextMenu = nextMenu; - } - return nextMenu; -} - -void CleanUpMenu(void) -{ - if (sMainMenu->lastMenu != sMainMenu->nextMenu) { - switch(sMainMenu->lastMenu) { - case MENU_MAIN_SCREEN: - CleanMainMenu(); - break; - case MENU_AWAITING_RESCUE: - case MENU_CONTINUE: - case MENU_DELETE_SAVE_PROMPT: - case MENU_DELETE_SAVE_CONFIRM: - CleanLoadScreen(); - break; - case MENU_TRADE_ITEMS: - CleanTradeItemsMenu(); - break; - case MENU_COMMUNICATION_1: - case MENU_COMMUNICATION_2: - sub_80370D4(); - break; - case MENU_FRIEND_RESCUE: - CleanFriendRescueMenu(); - break; - case MENU_WONDER_MAIL: - CleanWonderMailMenu(); - break; - case MENU_DUAL_SLOT: - CleanDualSlotMenu(); - break; - case MENU_WIRELESS_COMMS: - CleanWirelessCommsMenu(); - break; - case MENU_DISPLAY_RESCUE_PASSWORD: - case MENU_RESCUE_PASSWORD_ENTRY: - CleanRescuePasswordMenu(); - break; - case MENU_ADVENTURE_LOG: - CleanAdventureLogMenu(); - break; - case 0x24: - case 0x25: - case 0x26: - case 0x27: - case 0x28: - sub_80383A8(); - break; - case 0x29: - case 0x2a: - case 0x2b: - case 0x2c: - case 0x2d: - case MENU_DELETE_SAVE: - CleanSaveMenu(); - break; - case MENU_DEBUG: - DeleteDebugMenu(); - break; - } - sMainMenu->lastMenu = sMainMenu->nextMenu; - } -} - -UNUSED static void sub_8035C00(MainMenuSub *param) -{ - sMainMenu->sub = *param; -} - -UNUSED static MainMenuSub *sub_8035C10(void) -{ - return &sMainMenu->sub; -} - -void sub_8035C1C(void) -{ - sMainMenu->sub.unk2E = 0; - sMainMenu->sub.unk2C = 1; - sMainMenu->sub.unk2D = 0; -} - -void SetMenuItems(MenuStruct *param_1, UnkTextStruct2 *unkData, s32 index, - const UnkTextStruct2 *param_4, const MenuItem *menuItems, u8 param_6, u32 menuAction, u32 unused_8) -{ - unkData[index] = *param_4; - ResetUnusedInputStruct(); - sub_800641C(unkData, TRUE, TRUE); - if (param_6 != 0) { - sub_8012D60(¶m_1[index],menuItems,0,0,menuAction,index); - } - else { - sub_8012E04(¶m_1[index],menuItems,0,0,0,index); - } - param_1[index].unk4C = TRUE; -} - -void sub_8035CC0(UnkTextStruct2 *dataArray, u32 index) -{ - sub_8006518(dataArray); - dataArray[index] = gUnknown_80E59A8; - ResetUnusedInputStruct(); - sub_800641C(dataArray, TRUE, TRUE); -} - -void sub_8035CF4(MenuStruct *Menu, u32 index, bool8 r2) -{ - Menu[index].unk4C = r2; - Menu[index].unk4D = 1; - Menu[index].menuAction = -1; - sub_8012EBC(&Menu[index]); -} - -void sub_8035D1C(void) -{ - sMainMenu->unk38 = -1; -} - -UNUSED static void sub_8035D30(s32 r0) -{ - sMainMenu->unk38 = r0; -} - -s16 sub_8035D3C(void) -{ - return sMainMenu->unk38; -} - -MainMenu *GetMainMenu(void) -{ - return sMainMenu; -} - -UNUSED static void sub_8035D58(void) -{ - sMainMenu->unk3C = -1; -} - -UNUSED static void sub_8035D68(s32 r0) -{ - sMainMenu->unk3C = r0; -} - -s32 sub_8035D74(void) -{ - return sMainMenu->unk3C; -} - -UNUSED static void sub_8035D80(unkStruct_8035D94 *item) -{ -#ifndef NONMATCHING - register u32 numItem asm("r1"); -#else - u32 numItem; -#endif - - u32 itemIndex; - MainMenu *preload; - - preload = sMainMenu; - numItem = item->numItems; - itemIndex = item->itemIndex.itemIndex_u32; - preload->unk30.itemIndex.itemIndex_u32 = itemIndex; - preload->unk30.numItems = numItem; -} - -unkStruct_8035D94 *sub_8035D94(void) -{ - return &sMainMenu->unk30; -} - -void sub_8035DA0(void) -{ - sMainMenu->unk30.itemIndex.itemIndex_u8 = ITEM_NOTHING; - sMainMenu->unk30.numItems = 0; -} - -s32 sub_8035DB4(u32 currMenu) -{ - s32 returnVar = 8; - switch(currMenu) - { - case MENU_COMMUNICATION_1: - returnVar = 0; - break; - case MENU_COMMUNICATION_2: - returnVar = 1; - break; - case 0x15: - returnVar = 2; - break; - case 0x16: - returnVar = 3; - break; - case 0x17: - returnVar = 4; - break; - case 0x18: - returnVar = 5; - break; - case 0x19: - returnVar = 6; - break; - case 0x1a: - returnVar = 7; - break; - } - return returnVar; -} - - - - - - -// SPLIT 2/2 - - - - - - -void DrawMainMenu(void) -{ - s32 index; - - if(sUnknown_203B34C == NULL) - { - sUnknown_203B34C = MemoryAlloc(sizeof(unkStruct_203B34C), 8); - MemoryFill8((u8 *)sUnknown_203B34C, 0, sizeof(unkStruct_203B34C)); - } - - for(index = 0; index < 4; index++) - { - sUnknown_203B34C->unk144[index] = gUnknown_80E59C8; - } - - ResetUnusedInputStruct(); - sub_800641C(sUnknown_203B34C->unk144, TRUE, TRUE); - SetMainMenuItems(); - sUnknown_203B34C->currMenuChoice = -1; - - if(SetMainMenuText()) - { - sub_8035CF4(sUnknown_203B34C->unk4,2,FALSE); - } - - sub_8035CF4(sUnknown_203B34C->unk4,0,TRUE); - sUnknown_203B34C->unk0 = 1; -} - -void CleanMainMenu(void) -{ - ResetUnusedInputStruct(); - sub_800641C(NULL, TRUE, TRUE); - if(sUnknown_203B34C != NULL) - { - MemoryFree(sUnknown_203B34C); - sUnknown_203B34C = NULL; - } -} - -u32 UpdateMainMenu(void) -{ - u32 nextMenu = MENU_NO_SCREEN_CHANGE; - switch(sUnknown_203B34C->unk0) - { - case 1: - sub_8012FD8(&sUnknown_203B34C->unk4[2]); - if(!sub_8012FD8(sUnknown_203B34C->unk4)) - sub_8013114(sUnknown_203B34C->unk4, &nextMenu); - - if(SetMainMenuText()) - { - sub_8035CF4(sUnknown_203B34C->unk4, 0, TRUE); - sub_8035CF4(sUnknown_203B34C->unk4, 2, FALSE); - } - switch(nextMenu) - { - case MENU_NO_SCREEN_CHANGE: - nextMenu = MENU_NO_SCREEN_CHANGE; - break; - case 0xffdd: - sUnknown_203B34C->unk0 = 1; - nextMenu = MENU_NO_SCREEN_CHANGE; - ResetUnusedInputStruct(); - sub_8035CF4(sUnknown_203B34C->unk4, 0, TRUE); - sub_8035CF4(sUnknown_203B34C->unk4, 2, FALSE); - break; - case MENU_TRADE_ITEMS: - sub_8035DA0(); - sUnknown_203B350 = nextMenu; - break; - case MENU_NEW_GAME: - case MENU_AWAITING_RESCUE: - case MENU_CONTINUE: - case MENU_DELETE_SAVE_PROMPT: - case MENU_DELETE_SAVE_CONFIRM: - case MENU_ADVENTURE_LOG: - case MENU_FRIEND_RESCUE: - case MENU_WONDER_MAIL: - case MENU_DUAL_SLOT: - case MENU_WIRELESS_COMMS: - case MENU_DEBUG: - sUnknown_203B350 = nextMenu; - break; - - } - break; - case 0xC: - if(!sub_8012FD8(&sUnknown_203B34C->unk4[1])) - sub_8013114(&sUnknown_203B34C->unk4[1], &nextMenu); - switch(nextMenu) - { - case 0xffdd: - sub_803623C(); - sUnknown_203B34C->unk0 = 1; - nextMenu = MENU_NO_SCREEN_CHANGE; - break; - case MENU_SEND_ITEMS: - sUnknown_203B354 = nextMenu; - nextMenu = MENU_TRADE_ITEMS; - break; - case MENU_RECEIVE_ITEMS: - sUnknown_203B354 = nextMenu; - nextMenu = MENU_COMMUNICATION_2; - break; - case MENU_NO_SCREEN_CHANGE: - nextMenu = MENU_NO_SCREEN_CHANGE; - break; - default: - break; - } - break; - default: - case 0xD: // forces the bls switch - break; - } - return nextMenu; -} - -bool8 SetMainMenuText(void) -{ - u32 menuChoice; - const MenuItem *preload; - - // Have to load the pointer before the index - preload = sUnknown_203B34C->unk4[0].menuItems; - menuChoice = preload[sUnknown_203B34C->unk4[0].input.menuIndex].menuAction; // chosen menu action? - if (sUnknown_203B34C->currMenuChoice == menuChoice) { - return FALSE; - } - - sUnknown_203B34C->currMenuChoice = menuChoice; - sub_8035CC0(sUnknown_203B34C->unk144,2); - sub_8035CC0(sUnknown_203B34C->unk144,3); - switch(menuChoice) { - case MENU_WIRELESS_COMMS: - // Using wireless communications, you can go on an adventure to unknown worlds. - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E6030,0,0,0); - break; - case MENU_WONDER_MAIL: - // Using passwords, you can receive Wonder Mail - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F80,0,0,0); - break; - case MENU_AWAITING_RESCUE: - // You are awaiting resuce by a friend - // You can give up waiting for rescue - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F1C,0,0,0); - break; - case MENU_NEW_GAME: - // Start an entirely new adventure - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5CCC,0,0,0); - break; - case MENU_CONTINUE: - // Resume your adventure from where you last saved - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DA0,0,0,0); - break; - case MENU_DELETE_SAVE_PROMPT: - // This will delete your saved game data. - // Beware! This will delete it forever - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DF0,0,0,0); - break; - case MENU_ADVENTURE_LOG: - // Check your career as an adventurer - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D0C,0,0,0); - break; - case MENU_FRIEND_RESCUE: - // Using a Game Link cable or passwords, friends may rescue each other - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5E5C,0,0,0); - break; - case MENU_TRADE_ITEMS: - // Using a Game Link cable you can trade stored items with a friend - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5EBC,0,0,0); - break; - case MENU_DUAL_SLOT: - // Using Dual Slot function, you can receive teams from your friends - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5FCC,0,0,0); - break; - case MENU_DEBUG: - // This is the Debug Mode. - // It won't be in the release version - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D48,0,0,0); - break; - default: - break; - } - return TRUE; -} - -void sub_803623C(void) -{ - sub_8035CC0(sUnknown_203B34C->unk144,1); - SetMainMenuItems(); - sUnknown_203B34C->currMenuChoice = -1; - if (SetMainMenuText()) { - sub_8035CF4(sUnknown_203B34C->unk4,2,FALSE); - } - sub_8035CF4(sUnknown_203B34C->unk4,0,TRUE); -} - -void SetMainMenuItems(void) -{ - if (sub_8011C34() != -1) { - if (CountMailType(WONDER_MAIL_TYPE_SOS) == 0) { - if (CountMailType(WONDER_MAIL_TYPE_OKD) != 0) { - if (sub_803D0D8() != 0) { - // Revive Team - // Delete Save Data - // Adventure Log - // Friend Rescue - // Trade Items - // Wonder Mail - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5C18,1,sUnknown_203B350,1); - } - else { - // Revive Team - // Delete Save Data - // Adventure Log - // Friend Rescue - // Trade Items - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,0,&gUnknown_80E5BC4,gUnknown_80E5BDC,1,sUnknown_203B350,1); - } - } - else { - if (sub_803D0D8() != 0) { - // Continue - // Delete Save Data - // Adventure Log - // Friend Rescue - // Trade Items - // Wonder Mail - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5AFC,1,sUnknown_203B350,1); - } - else { - // Continue - // Delete Save Data - // Adventure Log - // Friend Rescue - // Trade Items - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,0,&gUnknown_80E5A60,gUnknown_80E5A90,1,sUnknown_203B350,1); - } - } - } - else { - if (sub_803D0D8() != 0) { - // Awaiting Rescue - // Delete Save Data - // Adventure Log - // Friend Rescue - // Trade Items - // Wonder Mail - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5B8C,1,sUnknown_203B350,1); - } - else { - // Awaiting Rescue - // Delete Save Data - // Adventure Log - // Friend Rescue - // Trade Items - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,0,&gUnknown_80E5B34,gUnknown_80E5B4C,1,sUnknown_203B350,1); - } - } - } - else - { - // New Game - // Adventure Log - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,0,&gUnknown_80E59E0,gUnknown_80E59F8,1,sUnknown_203B350,1); - } -} - -bool8 sub_80363E0(void) -{ - if(sUnknown_203B34C == NULL) - return FALSE; - if(sUnknown_203B34C->unk0 == 0xC) - return FALSE; - return TRUE; -} diff --git a/src/main_menu1.c b/src/main_menu1.c new file mode 100644 index 000000000..fb1d3364e --- /dev/null +++ b/src/main_menu1.c @@ -0,0 +1,418 @@ +#include "global.h" +#include "adventure_log_menu.h" +#include "code_8098BDC.h" +#include "constants/item.h" +#include "constants/main_menu.h" +#include "debug_menu1.h" +#include "ds_menus.h" +#include "friend_rescue.h" +#include "game_options.h" +#include "load_screen.h" +#include "main_menu1.h" +#include "main_menu2.h" +#include "memory.h" +#include "menu_input.h" +#include "other_menus1.h" +#include "rescue_password_menu.h" +#include "save_menu.h" +#include "text1.h" +#include "text2.h" +#include "trade_items_menu.h" +#include "unk_menu_203B360.h" +#include "wonder_mail_main_menu.h" + +// NOTE: 0x13 and 0x14 +// Communication Screen? +// Got Communication warning when I wrote them to the struct + +// NOTE: 0x29, 0x2A, 0x2B, 0x2C +// Triggers a save + +// NOTE: 0x2D +// Triggers a save and then goes to 0x13 (comms warning) + +// NOTE: 0x2E +// Deletes the Save + +static EWRAM_DATA_2 MainMenu1Work *sMainMenu = {0}; + +#include "data/main_menu1.h" + +static s32 sub_8035DB4(u32 currMenu); + +void InitMainMenu(void) +{ + if (sMainMenu == NULL) { + sMainMenu = MemoryAlloc(sizeof(MainMenu1Work), 8); + MemoryFill8((u8 *)sMainMenu, 0, sizeof(MainMenu1Work)); + } + + sMainMenu->currMenu = MENU_NO_SCREEN_CHANGE; + sMainMenu->nextMenu = MENU_MAIN_SCREEN; + sMainMenu->lastMenu = MENU_MAIN_SCREEN; + sMainMenu->unk38 = -1; + sMainMenu->unk3C = -1; + sMainMenu->sub.unk2E = 0; + sMainMenu->sub.unk2C = 1; + sMainMenu->sub.unk2D = 0; + sub_8035DA0(); + sMainMenu->unk3A = 0; +} + +void DeleteMainMenu(void) +{ + if (sMainMenu) { + MemoryFree(sMainMenu); + sMainMenu = NULL; + } +} + +void SetUpMenu(void) +{ + if (sMainMenu->currMenu == sMainMenu->nextMenu) + return; + + switch (sMainMenu->nextMenu) { + case MENU_MAIN_SCREEN: + SetWindowBGColor(); + sub_8099690(0); + DrawMainMenu(); + break; + case MENU_AWAITING_RESCUE: + case MENU_CONTINUE: + case MENU_DELETE_SAVE_PROMPT: + case MENU_DELETE_SAVE_CONFIRM: + CreateLoadScreen(sMainMenu->nextMenu); + break; + case MENU_TRADE_ITEMS: + CreateTradeItemsMenu(); + break; + case MENU_COMMUNICATION_1: + case MENU_COMMUNICATION_2: + sub_8036FDC(sub_8035DB4(sMainMenu->nextMenu)); + break; + case MENU_FRIEND_RESCUE: + CreateFriendRescueMenu(); + break; + case MENU_WONDER_MAIL: + CreateWonderMailMenu(); + break; + case MENU_DUAL_SLOT: + CreateDualSlotMenu(); + break; + case MENU_WIRELESS_COMMS: + CreateWirelessCommsMenu(); + break; + case MENU_DISPLAY_RESCUE_PASSWORD: + case MENU_RESCUE_PASSWORD_ENTRY: + CreateRescuePasswordMenu(sMainMenu->nextMenu); + break; + case MENU_ADVENTURE_LOG: + CreateAdventureLogMenu(); + break; + case 0x29: + case 0x2A: + case 0x2B: + case 0x2C: + case 0x2D: + case MENU_DELETE_SAVE: + CreateSaveMenu(sMainMenu->nextMenu); + break; + case MENU_DEBUG: + CreateDebugMenu(); + break; + } + + sMainMenu->currMenu = sMainMenu->nextMenu; +} + +s32 UpdateMenu(void) +{ + s32 nextMenu1; + s32 nextMenu; + + nextMenu = MENU_NO_SCREEN_CHANGE; + + switch (sMainMenu->nextMenu) { + case MENU_MAIN_SCREEN: + nextMenu = UpdateMainMenu(); + break; + case MENU_AWAITING_RESCUE: + case MENU_CONTINUE: + case MENU_DELETE_SAVE_PROMPT: + case MENU_DELETE_SAVE_CONFIRM: + nextMenu = UpdateLoadScreenMenu(); + break; + case MENU_TRADE_ITEMS: + nextMenu1 = UpdateTradeItemsMenu(); + nextMenu = MENU_MAIN_SCREEN; + if (nextMenu1 != 3) + nextMenu = MENU_NO_SCREEN_CHANGE; + break; + case MENU_FRIEND_RESCUE: + nextMenu1 = UpdateFriendRescueMenu(); + nextMenu = MENU_MAIN_SCREEN; + if (nextMenu1 != 3) + nextMenu = MENU_NO_SCREEN_CHANGE; + break; + case MENU_WONDER_MAIL: + nextMenu1 = UpdateWonderMailMenu(); + nextMenu = MENU_MAIN_SCREEN; + if (nextMenu1 != 3) + nextMenu = MENU_NO_SCREEN_CHANGE; + break; + case MENU_DUAL_SLOT: + nextMenu1 = UpdateDualSlotMenu(); + nextMenu = MENU_MAIN_SCREEN; + if (nextMenu1 != 3) + nextMenu = MENU_NO_SCREEN_CHANGE; + break; + case MENU_WIRELESS_COMMS: + nextMenu1 = UpdateWirelessCommsMenu(); + nextMenu = 5; + if (nextMenu1 != 3) { + nextMenu = MENU_NO_SCREEN_CHANGE; + if (nextMenu1 == 2) + nextMenu = MENU_MAIN_SCREEN; + } + break; + case MENU_DISPLAY_RESCUE_PASSWORD: + case MENU_RESCUE_PASSWORD_ENTRY: + nextMenu = UpdateRescuePasswordMenu(); + break; + case MENU_ADVENTURE_LOG: + nextMenu = UpdateAdventureLogMenu(); + break; + case 0x24: + case 0x25: + case 0x26: + case 0x27: + case 0x28: + nextMenu = sub_80383D4(); + break; + case 0x29: + case 0x2A: + case 0x2B: + case 0x2C: + case 0x2D: + case MENU_DELETE_SAVE: + nextMenu = UpdateSaveMenu(); + break; + case MENU_DEBUG: + nextMenu = UpdateDebugMenu(); + break; + } + + if (nextMenu != MENU_NO_SCREEN_CHANGE) + sMainMenu->nextMenu = nextMenu; + + return nextMenu; +} + +void CleanUpMenu(void) +{ + if (sMainMenu->lastMenu == sMainMenu->nextMenu) + return; + + switch (sMainMenu->lastMenu) { + case MENU_MAIN_SCREEN: + CleanMainMenu(); + break; + case MENU_AWAITING_RESCUE: + case MENU_CONTINUE: + case MENU_DELETE_SAVE_PROMPT: + case MENU_DELETE_SAVE_CONFIRM: + CleanLoadScreen(); + break; + case MENU_TRADE_ITEMS: + CleanTradeItemsMenu(); + break; + case MENU_COMMUNICATION_1: + case MENU_COMMUNICATION_2: + sub_80370D4(); + break; + case MENU_FRIEND_RESCUE: + CleanFriendRescueMenu(); + break; + case MENU_WONDER_MAIL: + CleanWonderMailMenu(); + break; + case MENU_DUAL_SLOT: + CleanDualSlotMenu(); + break; + case MENU_WIRELESS_COMMS: + CleanWirelessCommsMenu(); + break; + case MENU_DISPLAY_RESCUE_PASSWORD: + case MENU_RESCUE_PASSWORD_ENTRY: + CleanRescuePasswordMenu(); + break; + case MENU_ADVENTURE_LOG: + CleanAdventureLogMenu(); + break; + case 0x24: + case 0x25: + case 0x26: + case 0x27: + case 0x28: + sub_80383A8(); + break; + case 0x29: + case 0x2A: + case 0x2B: + case 0x2C: + case 0x2D: + case MENU_DELETE_SAVE: + CleanSaveMenu(); + break; + case MENU_DEBUG: + DeleteDebugMenu(); + break; + } + + sMainMenu->lastMenu = sMainMenu->nextMenu; +} + +UNUSED static void sub_8035C00(MainMenuSub *a0) +{ + sMainMenu->sub = *a0; +} + +UNUSED static MainMenuSub *sub_8035C10(void) +{ + return &sMainMenu->sub; +} + +void sub_8035C1C(void) +{ + sMainMenu->sub.unk2E = 0; + sMainMenu->sub.unk2C = 1; + sMainMenu->sub.unk2D = 0; +} + +void SetMenuItems(MenuStruct *a0, UnkTextStruct2 *a1, s32 index, const UnkTextStruct2 *a3, const MenuItem *menuItems, bool8 a5, u32 menuAction, u32 unused) +{ + a1[index] = *a3; + ResetUnusedInputStruct(); + sub_800641C(a1, TRUE, TRUE); + + if (a5) + sub_8012D60(&a0[index], menuItems, 0, 0, menuAction, index); + else + sub_8012E04(&a0[index], menuItems, 0, 0, 0, index); + + a0[index].unk4C = TRUE; +} + +void sub_8035CC0(UnkTextStruct2 *dataArray, u32 index) +{ + sub_8006518(dataArray); + dataArray[index] = sUnknown_80E59A8; + ResetUnusedInputStruct(); + sub_800641C(dataArray, TRUE, TRUE); +} + +void sub_8035CF4(MenuStruct *menu, u32 index, bool8 a2) +{ + menu[index].unk4C = a2; + menu[index].unk4D = 1; + menu[index].menuAction = -1; + sub_8012EBC(&menu[index]); +} + +void sub_8035D1C(void) +{ + sMainMenu->unk38 = -1; +} + +UNUSED static void sub_8035D30(s32 a0) +{ + sMainMenu->unk38 = a0; +} + +s16 sub_8035D3C(void) +{ + return sMainMenu->unk38; +} + +MainMenu1Work *GetMainMenu(void) +{ + return sMainMenu; +} + +UNUSED static void sub_8035D58(void) +{ + sMainMenu->unk3C = -1; +} + +UNUSED static void sub_8035D68(s32 a0) +{ + sMainMenu->unk3C = a0; +} + +s32 sub_8035D74(void) +{ + return sMainMenu->unk3C; +} + +UNUSED static void sub_8035D80(unkStruct_8035D94 *item) +{ +#ifndef NONMATCHING + register u32 numItem asm("r1"); +#else + u32 numItem; +#endif + + u32 itemIndex; + MainMenu1Work *preload; + + preload = sMainMenu; + numItem = item->numItems; + itemIndex = item->itemIndex.itemIndex_u32; + preload->unk30.itemIndex.itemIndex_u32 = itemIndex; + preload->unk30.numItems = numItem; +} + +unkStruct_8035D94 *sub_8035D94(void) +{ + return &sMainMenu->unk30; +} + +void sub_8035DA0(void) +{ + sMainMenu->unk30.itemIndex.itemIndex_u8 = ITEM_NOTHING; + sMainMenu->unk30.numItems = 0; +} + +static s32 sub_8035DB4(u32 currMenu) +{ + s32 returnVar = 8; + + switch (currMenu) { + case MENU_COMMUNICATION_1: + returnVar = 0; + break; + case MENU_COMMUNICATION_2: + returnVar = 1; + break; + case 0x15: + returnVar = 2; + break; + case 0x16: + returnVar = 3; + break; + case 0x17: + returnVar = 4; + break; + case 0x18: + returnVar = 5; + break; + case 0x19: + returnVar = 6; + break; + case 0x1A: + returnVar = 7; + break; + } + return returnVar; +} \ No newline at end of file diff --git a/src/main_menu2.c b/src/main_menu2.c new file mode 100644 index 000000000..1310418c3 --- /dev/null +++ b/src/main_menu2.c @@ -0,0 +1,296 @@ +#include "global.h" +#include "code_803D0D8.h" +#include "constants/main_menu.h" +#include "constants/wonder_mail.h" +#include "main_menu1.h" +#include "main_menu2.h" +#include "memory.h" +#include "menu_input.h" +#include "save.h" +#include "text1.h" + +static EWRAM_DATA_2 MainMenu2Work *sUnknown_203B34C = {0}; +static EWRAM_DATA_2 u32 sUnknown_203B350 = {0}; +static EWRAM_DATA_2 u32 sUnknown_203B354 = {0}; + +#include "data/main_menu2.h" + +static void SetMainMenuItems(void); +static bool8 SetMainMenuText(void); + +static void sub_803623C(void); + +void DrawMainMenu(void) +{ + s32 i; + + if (sUnknown_203B34C == NULL) { + sUnknown_203B34C = MemoryAlloc(sizeof(MainMenu2Work), 8); + MemoryFill8((u8 *)sUnknown_203B34C, 0, sizeof(MainMenu2Work)); + } + + for (i = 0; i < 4; i++) + sUnknown_203B34C->unk144[i] = sUnknown_80E59C8; + + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B34C->unk144, TRUE, TRUE); + SetMainMenuItems(); + sUnknown_203B34C->currMenuChoice = -1; + + if (SetMainMenuText()) + sub_8035CF4(sUnknown_203B34C->unk4, 2, FALSE); + + sub_8035CF4(sUnknown_203B34C->unk4, 0, TRUE); + sUnknown_203B34C->unk0 = 1; +} + +void CleanMainMenu(void) +{ + ResetUnusedInputStruct(); + sub_800641C(NULL, TRUE, TRUE); + + if (sUnknown_203B34C != NULL) { + MemoryFree(sUnknown_203B34C); + sUnknown_203B34C = NULL; + } +} + +u32 UpdateMainMenu(void) +{ + u32 nextMenu = MENU_NO_SCREEN_CHANGE; + + switch (sUnknown_203B34C->unk0) { + case 1: + sub_8012FD8(&sUnknown_203B34C->unk4[2]); + + if (!sub_8012FD8(sUnknown_203B34C->unk4)) + sub_8013114(sUnknown_203B34C->unk4, &nextMenu); + + if (SetMainMenuText()) { + sub_8035CF4(sUnknown_203B34C->unk4, 0, TRUE); + sub_8035CF4(sUnknown_203B34C->unk4, 2, FALSE); + } + + switch (nextMenu) { + case MENU_NO_SCREEN_CHANGE: + nextMenu = MENU_NO_SCREEN_CHANGE; + break; + case 0xFFDD: + sUnknown_203B34C->unk0 = 1; + nextMenu = MENU_NO_SCREEN_CHANGE; + ResetUnusedInputStruct(); + sub_8035CF4(sUnknown_203B34C->unk4, 0, TRUE); + sub_8035CF4(sUnknown_203B34C->unk4, 2, FALSE); + break; + case MENU_TRADE_ITEMS: + sub_8035DA0(); + sUnknown_203B350 = nextMenu; + break; + case MENU_NEW_GAME: + case MENU_AWAITING_RESCUE: + case MENU_CONTINUE: + case MENU_DELETE_SAVE_PROMPT: + case MENU_DELETE_SAVE_CONFIRM: + case MENU_ADVENTURE_LOG: + case MENU_FRIEND_RESCUE: + case MENU_WONDER_MAIL: + case MENU_DUAL_SLOT: + case MENU_WIRELESS_COMMS: + case MENU_DEBUG: + sUnknown_203B350 = nextMenu; + break; + } + break; + case 12: + if (!sub_8012FD8(&sUnknown_203B34C->unk4[1])) + sub_8013114(&sUnknown_203B34C->unk4[1], &nextMenu); + + switch (nextMenu) { + case 0xFFDD: + sub_803623C(); + sUnknown_203B34C->unk0 = 1; + nextMenu = MENU_NO_SCREEN_CHANGE; + break; + case MENU_SEND_ITEMS: + sUnknown_203B354 = nextMenu; + nextMenu = MENU_TRADE_ITEMS; + break; + case MENU_RECEIVE_ITEMS: + sUnknown_203B354 = nextMenu; + nextMenu = MENU_COMMUNICATION_2; + break; + case MENU_NO_SCREEN_CHANGE: + nextMenu = MENU_NO_SCREEN_CHANGE; + break; + default: + break; + } + break; + default: + case 13: // forces the bls switch + break; + } + + return nextMenu; +} + +static bool8 SetMainMenuText(void) +{ + u32 menuChoice; + const MenuItem *preload; + + // Have to load the pointer before the index + preload = sUnknown_203B34C->unk4[0].menuItems; + menuChoice = preload[sUnknown_203B34C->unk4[0].input.menuIndex].menuAction; // chosen menu action? + if (sUnknown_203B34C->currMenuChoice == menuChoice) + return FALSE; + + sUnknown_203B34C->currMenuChoice = menuChoice; + sub_8035CC0(sUnknown_203B34C->unk144, 2); + sub_8035CC0(sUnknown_203B34C->unk144, 3); + + switch (menuChoice) { + case MENU_WIRELESS_COMMS: + // Using wireless communications, you can go on an adventure to unknown worlds. + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E6030, FALSE, 0, 0); + break; + case MENU_WONDER_MAIL: + // Using passwords, you can receive Wonder Mail + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5F80, FALSE, 0, 0); + break; + case MENU_AWAITING_RESCUE: + // You are awaiting resuce by a friend + // You can give up waiting for rescue + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5F1C, FALSE, 0, 0); + break; + case MENU_NEW_GAME: + // Start an entirely new adventure + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5CCC, FALSE, 0, 0); + break; + case MENU_CONTINUE: + // Resume your adventure from where you last saved + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5DA0, FALSE, 0, 0); + break; + case MENU_DELETE_SAVE_PROMPT: + // This will delete your saved game data. + // Beware! This will delete it forever + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5DF0, FALSE, 0, 0); + break; + case MENU_ADVENTURE_LOG: + // Check your career as an adventurer + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5D0C, FALSE, 0, 0); + break; + case MENU_FRIEND_RESCUE: + // Using a Game Link cable or passwords, friends may rescue each other + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5E5C, FALSE, 0, 0); + break; + case MENU_TRADE_ITEMS: + // Using a Game Link cable you can trade stored items with a friend + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5EBC, FALSE, 0, 0); + break; + case MENU_DUAL_SLOT: + // Using Dual Slot function, you can receive teams from your friends + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5FCC, FALSE, 0, 0); + break; + case MENU_DEBUG: + // This is the Debug Mode. + // It won't be in the release version + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5D48, FALSE, 0, 0); + break; + default: + break; + } + + return TRUE; +} + +static void sub_803623C(void) +{ + sub_8035CC0(sUnknown_203B34C->unk144, 1); + SetMainMenuItems(); + sUnknown_203B34C->currMenuChoice = -1; + + if (SetMainMenuText()) + sub_8035CF4(sUnknown_203B34C->unk4, 2, FALSE); + + sub_8035CF4(sUnknown_203B34C->unk4, 0, TRUE); +} + +static void SetMainMenuItems(void) +{ + if (sub_8011C34() != -1) { + if (CountMailType(WONDER_MAIL_TYPE_SOS) == 0) { + if (CountMailType(WONDER_MAIL_TYPE_OKD) != 0) { + if (sub_803D0D8()) { + // Revive Team + // Delete Save Data + // Adventure Log + // Friend Rescue + // Trade Items + // Wonder Mail + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5A78, sUnknown_80E5C18, TRUE, sUnknown_203B350, 1); + } + else { + // Revive Team + // Delete Save Data + // Adventure Log + // Friend Rescue + // Trade Items + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5BC4, sUnknown_80E5BDC, TRUE, sUnknown_203B350, 1); + } + } + else { + if (sub_803D0D8()) { + // Continue + // Delete Save Data + // Adventure Log + // Friend Rescue + // Trade Items + // Wonder Mail + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5A78, sUnknown_80E5AFC, TRUE, sUnknown_203B350, 1); + } + else { + // Continue + // Delete Save Data + // Adventure Log + // Friend Rescue + // Trade Items + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5A60, sUnknown_80E5A90, TRUE, sUnknown_203B350, 1); + } + } + } + else { + if (sub_803D0D8()) { + // Awaiting Rescue + // Delete Save Data + // Adventure Log + // Friend Rescue + // Trade Items + // Wonder Mail + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5A78, sUnknown_80E5B8C, TRUE, sUnknown_203B350, 1); + } + else { + // Awaiting Rescue + // Delete Save Data + // Adventure Log + // Friend Rescue + // Trade Items + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5B34, sUnknown_80E5B4C, TRUE, sUnknown_203B350, 1); + } + } + } + else { + // New Game + // Adventure Log + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E59E0, sUnknown_80E59F8, TRUE, sUnknown_203B350, 1); + } +} + +bool8 sub_80363E0(void) +{ + if (sUnknown_203B34C == NULL) + return FALSE; + if (sUnknown_203B34C->unk0 == 12) + return FALSE; + return TRUE; +} \ No newline at end of file diff --git a/src/options_menu.c b/src/options_menu.c index a41b83eb3..11815abf0 100644 --- a/src/options_menu.c +++ b/src/options_menu.c @@ -77,7 +77,6 @@ extern u32 HandleHintDisplayScreenInput(void); extern void DestroyHintDisplayScreen(void); extern u32 sub_801E218(void); extern void sub_801E2C4(void); -extern void SetWindowBGColor(void); enum { diff --git a/src/other_menus1.c b/src/other_menus1.c index 217e461db..effa69d92 100644 --- a/src/other_menus1.c +++ b/src/other_menus1.c @@ -6,6 +6,7 @@ #include "code_80118A4.h" #include "code_80130A8.h" #include "constants/communication_error_codes.h" +#include "constants/main_menu.h" #include "dungeon_global_data.h" #include "input.h" #include "items.h" @@ -63,7 +64,7 @@ void sub_8036FDC(s32 param_1) ResetUnusedInputStruct(); sub_800641C(sUnknown_203B35C->unk15C, TRUE, TRUE); - SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, &sUnknown_80E6CD0, sUnknown_80E6CE8, 0, 6, 0); + SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, &sUnknown_80E6CD0, sUnknown_80E6CE8, FALSE, 6, 0); sub_8035CF4(sUnknown_203B35C->unk1C, 0, TRUE); sub_80376CC(); } @@ -137,7 +138,7 @@ static void sub_80371B8(void) // Success! // The item exchange with your friend // went through successfully - SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, &sUnknown_80E6C50, sUnknown_80E6C68, 0, 6, 0); + SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, &sUnknown_80E6C50, sUnknown_80E6C68, FALSE, 6, 0); sub_8035CF4(sUnknown_203B35C->unk1C, 0, TRUE); } } @@ -199,7 +200,7 @@ static void sub_80371B8(void) break; } - SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, puVar5, MenuItems, 0, 6, 0); + SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, puVar5, MenuItems, FALSE, 6, 0); sub_8035CF4(sUnknown_203B35C->unk1C, 0, TRUE); if (sUnknown_203B35C->linkStatus != COMMS_GOOD && sUnknown_203B35C->unk0 == 0) { @@ -295,8 +296,7 @@ static void sub_8037400(void) case 4: mailIndex = sub_8035D74(); sUnknown_203B35C->unk28C = *GetMailatIndex(mailIndex); - // TODO: int16 memes? - if (sub_8035D3C() << 0x10 != 0xffff0000) { + if ((u16)sub_8035D3C() != 0xFFFF) { species = sub_8035D3C(); sUnknown_203B35C->unk2BC = gRecruitedPokemonRef->pokemon[(s16)species]; } diff --git a/src/other_menus2.c b/src/other_menus2.c index 7069b3707..0da04a099 100644 --- a/src/other_menus2.c +++ b/src/other_menus2.c @@ -3,7 +3,7 @@ #include "constants/communication_error_codes.h" #include "constants/dungeon.h" #include "dungeon_global_data.h" -#include "main_menu.h" +#include "main_menu1.h" #include "memory.h" #include "other_menus1.h" #include "other_menus2.h" @@ -253,8 +253,8 @@ static void sub_8037EBC(WonderMailStruct_203B2C0_sub *param_1, WonderMailStruct static void sub_8037F4C(unkStruct_203B480 *param_1, unkStruct_203B480 *param_2) { unkStruct_203B480 *mail; - MainMenu *mainMenu; - + MainMenu1Work *mainMenu; + if(sub_800D588() == 0) { param_2 = param_1; diff --git a/src/rescue_password_menu.c b/src/rescue_password_menu.c index 711ca8d5d..4df3ce39f 100644 --- a/src/rescue_password_menu.c +++ b/src/rescue_password_menu.c @@ -1,10 +1,11 @@ #include "global.h" #include "code_80130A8.h" #include "code_8094F88.h" +#include "constants/main_menu.h" #include "dungeon.h" #include "input.h" #include "items.h" -#include "main_menu.h" +#include "main_menu1.h" #include "memory.h" #include "menu_input.h" #include "pokemon.h" @@ -345,7 +346,7 @@ s32 UpdateRescuePasswordMenu(void) unkStruct_203B480 *mailPtr1; unkStruct_203B480 *mailPtr2; u32 iVar7; - MainMenu *mainMenuPtr; + MainMenu1Work *mainMenuPtr; s32 nextMenu; unkStruct_203B480 mail; u32 menuAction; @@ -554,31 +555,31 @@ void DisplayRescuePasswordError(u32 passwordError) sub_80155F0(); switch(passwordError) { case PASSWORD_ENTRY_INCORRECT_PASSWORD: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E71FC,gUnknown_80E7214,0,0xd,0); + SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E71FC,gUnknown_80E7214,FALSE,0xd,0); break; case PASSWORD_ENTRY_NOT_SOS_MAIL: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E72EC,gUnknown_80E7304,0,0xd,0); + SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E72EC,gUnknown_80E7304,FALSE,0xd,0); break; case PASSWORD_ENTRY_DUPLICATE_SOS_MAIL: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7344,gUnknown_80E735C,0,0xd,0); + SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7344,gUnknown_80E735C,FALSE,0xd,0); break; case PASSWORD_ENTRY_NO_SPACE: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7588,gUnknown_80E75A0,0,0xd,0); + SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7588,gUnknown_80E75A0,FALSE,0xd,0); break; case PASSWORD_ENTRY_NOT_AOK_MAIL: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E73AC,gUnknown_80E73C4,0,0xd,0); + SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E73AC,gUnknown_80E73C4,FALSE,0xd,0); break; case PASSWORD_ENTRY_DUPLICATE_AOK_MAIL: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7408,gUnknown_80E7420,0,0xd,0); + SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7408,gUnknown_80E7420,FALSE,0xd,0); break; case PASSWORD_ENTRY_NOT_THANK_YOU_MAIL: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7468,gUnknown_80E7480,0,0xd,0); + SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7468,gUnknown_80E7480,FALSE,0xd,0); break; case PASSWORD_ENTRY_DUPLICATE_THANK_YOU_MAIL: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E74C8,gUnknown_80E74E0,0,0xd,0); + SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E74C8,gUnknown_80E74E0,FALSE,0xd,0); break; case PASSWORD_ENTRY_NOT_WONDER_MAIL: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E752C,gUnknown_80E7544,0,0xd,0); + SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E752C,gUnknown_80E7544,FALSE,0xd,0); break; default: break; @@ -592,7 +593,7 @@ void DisplayPasswordAcceptScreen(void) ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); sub_80155F0(); - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7278,gUnknown_80E7290,0,0xd,0); + SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7278,gUnknown_80E7290,FALSE,0xd,0); sub_8035CF4(gRescuePasswordMenu->unk8,0,TRUE); } diff --git a/src/save_menu.c b/src/save_menu.c index 1e36db6cf..f4dd5f840 100644 --- a/src/save_menu.c +++ b/src/save_menu.c @@ -1,24 +1,15 @@ #include "global.h" -#include "main_menu.h" -#include "memory.h" -#include "text1.h" -#include "save.h" -#include "menu_input.h" -#include "sprite.h" #include "code_80130A8.h" +#include "constants/main_menu.h" +#include "main_menu1.h" +#include "memory.h" +#include "menu_input.h" +#include "save.h" +#include "save_menu.h" +#include "sprite.h" +#include "text1.h" -struct unkStruct_203B360 -{ - // size: 0x1b4 - u32 currMenu; - u32 unk4; - MenuStruct unk8[4]; - UnkTextStruct2 unk148[4]; - SpriteOAM unk1A8; - u32 unk1B0; // Sprite count? -}; - -EWRAM_DATA_2 struct unkStruct_203B360 *gUnknown_203B364 = {0}; +static EWRAM_DATA_2 SaveMenuWork *sUnknown_203B364 = {0}; const UnkTextStruct2 gUnknown_80E6F20 = { @@ -134,29 +125,29 @@ void CreateSaveMenu(s32 currMenu) { s32 index; - if (gUnknown_203B364 == NULL) { - gUnknown_203B364 = MemoryAlloc(sizeof(struct unkStruct_203B360),8); - MemoryFill8((u8 *)gUnknown_203B364,0,sizeof(struct unkStruct_203B360)); + if (sUnknown_203B364 == NULL) { + sUnknown_203B364 = MemoryAlloc(sizeof(SaveMenuWork),8); + MemoryFill8((u8 *)sUnknown_203B364,0,sizeof(SaveMenuWork)); } for(index = 0; index < 4; index++){ - gUnknown_203B364->unk148[index] = gUnknown_80E6F20; + sUnknown_203B364->unk148[index] = gUnknown_80E6F20; } ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B364->unk148, TRUE, TRUE); + sub_800641C(sUnknown_203B364->unk148, TRUE, TRUE); if (currMenu == MENU_DELETE_SAVE) { // Beware, Deleting your Adventure - SetMenuItems(gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,gDeletingYourAdventureMenuItems, - 0,6,0); + SetMenuItems(sUnknown_203B364->unk8,sUnknown_203B364->unk148,0,&gUnknown_80E6F38,gDeletingYourAdventureMenuItems, + FALSE,6,0); } else { // Saving your Adventure - SetMenuItems(gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,gSavingAdventureMenuItems, - 0,6,0); + SetMenuItems(sUnknown_203B364->unk8,sUnknown_203B364->unk148,0,&gUnknown_80E6F38,gSavingAdventureMenuItems, + FALSE,6,0); } - sub_8035CF4(gUnknown_203B364->unk8,0,TRUE); - gUnknown_203B364->unk4 = 0; - gUnknown_203B364->currMenu = currMenu; + sub_8035CF4(sUnknown_203B364->unk8,0,TRUE); + sUnknown_203B364->unk4 = 0; + sUnknown_203B364->currMenu = currMenu; sub_8038830(); } @@ -164,31 +155,31 @@ void CleanSaveMenu(void) { ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); - if (gUnknown_203B364 != NULL) { - MemoryFree(gUnknown_203B364); - gUnknown_203B364 = NULL; + if (sUnknown_203B364 != NULL) { + MemoryFree(sUnknown_203B364); + sUnknown_203B364 = NULL; } } s32 UpdateSaveMenu(void) { - int saveStatus; - MainMenu *mainMenu; + s32 saveStatus; + MainMenu1Work *mainMenu; u32 menu; u32 uStack_18; u32 action; - + menu = MENU_NO_SCREEN_CHANGE; action = 3; - switch(gUnknown_203B364->unk4) + switch(sUnknown_203B364->unk4) { default: case 2: menu = MENU_NO_SCREEN_CHANGE; break; case 0: - sub_8012FD8(&gUnknown_203B364->unk8[0]); + sub_8012FD8(&sUnknown_203B364->unk8[0]); uStack_18 = 0; sub_80140F8(); saveStatus = WriteSavetoPak(&uStack_18,sub_8011C1C()); @@ -196,76 +187,76 @@ s32 UpdateSaveMenu(void) switch(saveStatus) { case SAVE_COMPLETED: - sub_8035CC0(gUnknown_203B364->unk148,0); - if (gUnknown_203B364->currMenu == MENU_DELETE_SAVE) { - SetMenuItems(gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38, - gDeletedSaveMenuItems,0,6,0); + sub_8035CC0(sUnknown_203B364->unk148,0); + if (sUnknown_203B364->currMenu == MENU_DELETE_SAVE) { + SetMenuItems(sUnknown_203B364->unk8,sUnknown_203B364->unk148,0,&gUnknown_80E6F38, + gDeletedSaveMenuItems,FALSE,6,0); } else { - SetMenuItems(gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38, - gAdventureSavedMenuItems,0,6,0); + SetMenuItems(sUnknown_203B364->unk8,sUnknown_203B364->unk148,0,&gUnknown_80E6F38, + gAdventureSavedMenuItems,FALSE,6,0); } - if (gUnknown_203B364->currMenu == 0x2d) { - gUnknown_203B364->unk4 = 1; + if (sUnknown_203B364->currMenu == 0x2d) { + sUnknown_203B364->unk4 = 1; return MENU_COMMUNICATION_1; } - sub_8035CF4(gUnknown_203B364->unk8,0,TRUE); - gUnknown_203B364->unk4 = 1; + sub_8035CF4(sUnknown_203B364->unk8,0,TRUE); + sUnknown_203B364->unk4 = 1; break; case SAVE_NOT_WRTTEN: sub_80141B4(gUnknown_80E7178,0,0,0); - gUnknown_203B364->unk4 = 5; + sUnknown_203B364->unk4 = 5; break; default: - sub_8035CC0(gUnknown_203B364->unk148,0); - if (gUnknown_203B364->currMenu == MENU_DELETE_SAVE) { - SetMenuItems(gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38, - gAdventureCouldNotBeDeletedMenuItems,0,6,0); + sub_8035CC0(sUnknown_203B364->unk148,0); + if (sUnknown_203B364->currMenu == MENU_DELETE_SAVE) { + SetMenuItems(sUnknown_203B364->unk8,sUnknown_203B364->unk148,0,&gUnknown_80E6F38, + gAdventureCouldNotBeDeletedMenuItems,FALSE,6,0); } else { - SetMenuItems(gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38, - gAdventureCouldNotBeSavedMenuItems,0,6,0); + SetMenuItems(sUnknown_203B364->unk8,sUnknown_203B364->unk148,0,&gUnknown_80E6F38, + gAdventureCouldNotBeSavedMenuItems,FALSE,6,0); } - sub_8035CF4(gUnknown_203B364->unk8,0,TRUE); - gUnknown_203B364->unk4 = 1; + sub_8035CF4(sUnknown_203B364->unk8,0,TRUE); + sUnknown_203B364->unk4 = 1; break; } menu = MENU_NO_SCREEN_CHANGE; break; case 1: - if (sub_80130A8(&gUnknown_203B364->unk8[0]) == '\0') { - sub_8013114(&gUnknown_203B364->unk8[0],&action); + if (sub_80130A8(&sUnknown_203B364->unk8[0]) == '\0') { + sub_8013114(&sUnknown_203B364->unk8[0],&action); } switch(action) { case 2: case 4: - if ((gUnknown_203B364->currMenu == 0x29) || (gUnknown_203B364->currMenu == MENU_DELETE_SAVE)) { - gUnknown_203B364->unk4 = 1; + if ((sUnknown_203B364->currMenu == 0x29) || (sUnknown_203B364->currMenu == MENU_DELETE_SAVE)) { + sUnknown_203B364->unk4 = 1; menu = MENU_MAIN_SCREEN; } - else if (gUnknown_203B364->currMenu == 0x2d) { - gUnknown_203B364->unk4 = 1; + else if (sUnknown_203B364->currMenu == 0x2d) { + sUnknown_203B364->unk4 = 1; menu = MENU_COMMUNICATION_1; } - else if (gUnknown_203B364->currMenu == 0x2c) { - gUnknown_203B364->unk4 = 1; + else if (sUnknown_203B364->currMenu == 0x2c) { + sUnknown_203B364->unk4 = 1; menu = 0x1f; } else { mainMenu = GetMainMenu(); if (mainMenu->unk3A != 0) { - gUnknown_203B364->unk4 = 1; + sUnknown_203B364->unk4 = 1; menu = 0x35; } else { - gUnknown_203B364->unk4 = 1; - menu = gUnknown_203B364->currMenu == 0x2b ? MENU_WONDER_MAIL : MENU_FRIEND_RESCUE; + sUnknown_203B364->unk4 = 1; + menu = sUnknown_203B364->currMenu == 0x2b ? MENU_WONDER_MAIL : MENU_FRIEND_RESCUE; } } break; case 3: - gUnknown_203B364->unk4 = 1; + sUnknown_203B364->unk4 = 1; break; } sub_80388C4(); @@ -288,7 +279,7 @@ void sub_8038830(void) SpriteOAM *sprite; r5 = 0; - sprite = &gUnknown_203B364->unk1A8; + sprite = &sUnknown_203B364->unk1A8; r1 = sprite->attrib1; r0 = (u16)~SPRITEOAM_MASK_AFFINEMODE1; @@ -329,14 +320,14 @@ void sub_8038830(void) r2 |= r1; sprite->unk6 = r2; - gUnknown_203B364->unk1B0 = r5; + sUnknown_203B364->unk1B0 = r5; ResetSprites(FALSE); } void sub_80388C4(void) { - if (gUnknown_203B364->unk1B0 & 8) - AddSprite(&gUnknown_203B364->unk1A8, 0x100, NULL, NULL); + if (sUnknown_203B364->unk1B0 & 8) + AddSprite(&sUnknown_203B364->unk1A8, 0x100, NULL, NULL); - gUnknown_203B364->unk1B0++; + sUnknown_203B364->unk1B0++; } diff --git a/src/thank_you_wonder_mail.c b/src/thank_you_wonder_mail.c index 44e234513..fcc7074f6 100644 --- a/src/thank_you_wonder_mail.c +++ b/src/thank_you_wonder_mail.c @@ -8,7 +8,7 @@ #include "constants/communication_error_codes.h" #include "cpu.h" #include "items.h" -#include "main_menu.h" +#include "main_menu1.h" #include "memory.h" #include "menu_input.h" #include "other_menus2.h" @@ -1278,7 +1278,7 @@ void UpdateThankYouMailText(void) break; case 0x11: sub_8006518(gUnknown_203B2C4->unk35C); - SetMenuItems(gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED60,gUnknown_80DED78,1,0,0); + SetMenuItems(gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED60,gUnknown_80DED78,TRUE,0,0); sub_803092C(); sub_8035CF4(gUnknown_203B2C4->unk21C,3,TRUE); break; @@ -1294,7 +1294,7 @@ void UpdateThankYouMailText(void) break; case 0x14: sub_8006518(gUnknown_203B2C4->unk35C); - SetMenuItems(gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED48,gUnknown_80DED78,1,0,0); + SetMenuItems(gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED48,gUnknown_80DED78,TRUE,0,0); sub_801CCD8(); sub_8035CF4(gUnknown_203B2C4->unk21C,3,TRUE); break; diff --git a/src/trade_items_menu.c b/src/trade_items_menu.c index 1b8772735..df15f7b20 100644 --- a/src/trade_items_menu.c +++ b/src/trade_items_menu.c @@ -6,7 +6,7 @@ #include "constants/communication_error_codes.h" #include "cpu.h" #include "items.h" -#include "main_menu.h" +#include "main_menu1.h" #include "memory.h" #include "menu_input.h" #include "other_menus2.h" @@ -22,8 +22,6 @@ static EWRAM_DATA_2 struct TradeItemsMenu *sTradeItemsMenu = {0}; #include "data/trade_items_menu.h" -extern void sub_8035C1C(); - extern u32 sub_801D008(); extern s32 sub_8037B28(u32); @@ -522,7 +520,7 @@ void sub_8036B28(void) case TRADE_ITEMS_SEND_ITEM_POPUP_MENU: sub_8006518(sTradeItemsMenu->unk184); SetMenuItems(sTradeItemsMenu->unk44,sTradeItemsMenu->unk184,3,&sUnknown_80E60EC, - sUnknown_80E6104,1,0,0); + sUnknown_80E6104,TRUE,0,0); sub_801CCD8(); sub_8035CF4(sTradeItemsMenu->unk44,3,TRUE); break; diff --git a/src/unk_menu_203B360.c b/src/unk_menu_203B360.c index 49d1b154f..9f764c4bd 100644 --- a/src/unk_menu_203B360.c +++ b/src/unk_menu_203B360.c @@ -1,25 +1,25 @@ #include "global.h" -#include "input.h" -#include "main_menu.h" +#include "constants/main_menu.h" +#include "main_menu1.h" #include "memory.h" -#include "menu.h" -#include "text1.h" #include "menu_input.h" #include "sprite.h" +#include "text1.h" +#include "unk_menu_203B360.h" -// Similar to RescuePasswordMenu -struct unkStruct_203B360 +// Size: 0x1B4. Similar to SaveMenuWork +typedef struct unkStruct_203B360 { - // size: 0x1b4 - u32 currMenu; + /* 0x0 */ u32 currMenu; u32 unk4; // state MenuStruct unk8[4]; UnkTextStruct2 unk148[4]; SpriteOAM unk1A8; u32 unk1B0; // sprite count? -}; +} unkStruct_203B360; + +static EWRAM_DATA_2 unkStruct_203B360 *sUnknown_203B360 = {0}; -EWRAM_DATA_2 struct unkStruct_203B360 *gUnknown_203B360 = {0}; const UnkTextStruct2 gUnknown_80E6E7C = { 0x00, 0x00, 0x00, 0x00, 0x03, @@ -61,25 +61,25 @@ void sub_80382E4(s32 currMenu) { s32 index; - if (gUnknown_203B360 == NULL) { - gUnknown_203B360 = MemoryAlloc(sizeof(struct unkStruct_203B360), 8); - MemoryFill8((u8 *)gUnknown_203B360, 0, sizeof(struct unkStruct_203B360)); + if (sUnknown_203B360 == NULL) { + sUnknown_203B360 = MemoryAlloc(sizeof(unkStruct_203B360), 8); + MemoryFill8((u8 *)sUnknown_203B360, 0, sizeof(unkStruct_203B360)); } for(index = 0; index < 4; index++){ - gUnknown_203B360->unk148[index] = gUnknown_80E6E7C; + sUnknown_203B360->unk148[index] = gUnknown_80E6E7C; } ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B360->unk148, TRUE, TRUE); + sub_800641C(sUnknown_203B360->unk148, TRUE, TRUE); if (currMenu == 0x25) { // Caution! // The storage space is empty! // Please check again. - SetMenuItems(gUnknown_203B360->unk8,gUnknown_203B360->unk148,0,&gUnknown_80E6E94,gUnknown_80E6EAC, - 0,4,0); + SetMenuItems(sUnknown_203B360->unk8,sUnknown_203B360->unk148,0,&gUnknown_80E6E94,gUnknown_80E6EAC, + FALSE,4,0); } - sub_8035CF4(gUnknown_203B360->unk8,0,TRUE); - gUnknown_203B360->currMenu = currMenu; - gUnknown_203B360->unk4 = 0; + sub_8035CF4(sUnknown_203B360->unk8,0,TRUE); + sUnknown_203B360->currMenu = currMenu; + sUnknown_203B360->unk4 = 0; sub_8038440(); } @@ -87,9 +87,9 @@ void sub_80383A8(void) { ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); - if (gUnknown_203B360 != 0) { - MemoryFree(gUnknown_203B360); - gUnknown_203B360 = 0; + if (sUnknown_203B360 != 0) { + MemoryFree(sUnknown_203B360); + sUnknown_203B360 = 0; } } @@ -101,19 +101,19 @@ u32 sub_80383D4(void) menuAction = 2; nextMenu = MENU_NO_SCREEN_CHANGE; - if (gUnknown_203B360->unk4 == 0){ - if (sub_80130A8(&gUnknown_203B360->unk8[0]) == '\0') { - sub_8013114(&gUnknown_203B360->unk8[0], &menuAction); + if (sUnknown_203B360->unk4 == 0){ + if (sub_80130A8(&sUnknown_203B360->unk8[0]) == '\0') { + sub_8013114(&sUnknown_203B360->unk8[0], &menuAction); } switch(menuAction) { case 3: case 1: - gUnknown_203B360->unk4 = 0; + sUnknown_203B360->unk4 = 0; nextMenu = MENU_MAIN_SCREEN; break; case 2: - gUnknown_203B360->unk4 = 0; + sUnknown_203B360->unk4 = 0; default: break; } @@ -138,7 +138,7 @@ void sub_8038440(void) SpriteOAM *sprite; r5 = 0; - sprite = &gUnknown_203B360->unk1A8; + sprite = &sUnknown_203B360->unk1A8; r1 = sprite->attrib1; r0 = (u16)~SPRITEOAM_MASK_AFFINEMODE1; @@ -181,15 +181,15 @@ void sub_8038440(void) r2 |= r1; sprite->unk6 = r2; - gUnknown_203B360->unk1B0 = r5; + sUnknown_203B360->unk1B0 = r5; } void sub_80384D0(void) { - if ((gUnknown_203B360->unk1B0 & 8) != 0) { - AddSprite(&gUnknown_203B360->unk1A8, 0x100, NULL, NULL); + if ((sUnknown_203B360->unk1B0 & 8) != 0) { + AddSprite(&sUnknown_203B360->unk1A8, 0x100, NULL, NULL); } - gUnknown_203B360->unk1B0++; + sUnknown_203B360->unk1B0++; } diff --git a/src/wonder_mail.c b/src/wonder_mail.c index 7a869701c..c26efa85b 100644 --- a/src/wonder_mail.c +++ b/src/wonder_mail.c @@ -7,7 +7,7 @@ #include "constants/communication_error_codes.h" #include "cpu.h" #include "items.h" -#include "main_menu.h" +#include "main_menu1.h" #include "memory.h" #include "menu_input.h" #include "other_menus2.h" @@ -542,7 +542,7 @@ void sub_8028348(void) break; case 0x34: sub_8006518(gUnknown_203B2C0->unk35C); - SetMenuItems(gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, &gUnknown_80DDAE4, gUnknown_80DDAFC, 1, 0, 0); + SetMenuItems(gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, &gUnknown_80DDAE4, gUnknown_80DDAFC, TRUE, 0, 0); sub_8023DA4(); sub_8035CF4(gUnknown_203B2C0->unk21C, 3, TRUE); break; @@ -697,7 +697,7 @@ void sub_8028348(void) case 0x20: case 0x2B: sub_8006518(gUnknown_203B2C0->unk35C); - SetMenuItems(gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, &gUnknown_80DDACC, gUnknown_80DDAFC, 1, 0, 0); + SetMenuItems(gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, &gUnknown_80DDACC, gUnknown_80DDAFC, TRUE, 0, 0); sub_803092C(); sub_8035CF4(gUnknown_203B2C0->unk21C, 3, TRUE); break; diff --git a/src/wonder_mail_main_menu.c b/src/wonder_mail_main_menu.c index 38195a6de..a032b6c2e 100644 --- a/src/wonder_mail_main_menu.c +++ b/src/wonder_mail_main_menu.c @@ -15,6 +15,7 @@ #include "text2.h" #include "wonder_mail.h" #include "wonder_mail_3.h" +#include "wonder_mail_main_menu.h" #define SELECT_WONDER_MAIL_MODE_MAIN_SCREEN 0 #define SEND_WONDER_MAIL_MAIN_SCREEN 1 @@ -186,7 +187,7 @@ bool8 CreateWonderMailMenu(void) return 1; } -u8 UpdateWonderMailMenu(void) +u32 UpdateWonderMailMenu(void) { switch(gUnknown_203B3E8->state) { case RECEIVE_WONDER_MAIL_MAIN_SCREEN: diff --git a/sym_ewram2.txt b/sym_ewram2.txt index 27c91c416..bbd222b66 100644 --- a/sym_ewram2.txt +++ b/sym_ewram2.txt @@ -325,7 +325,8 @@ gUnknown_203B328: /* 203B328 (wonder_mail_6) */ .include "src/friend_rescue.o" .include "src/credits1.o" .include "src/credits2.o" -.include "src/main_menu.o" +.include "src/main_menu1.o" +.include "src/main_menu2.o" .include "src/trade_items_menu.o" .include "src/other_menus1.o" .include "src/unk_menu_203B360.o" From 7e713ef0eb7d540d7c69ded9a3fbbfa8ce6f71ac Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Thu, 14 Sep 2023 23:55:49 -0400 Subject: [PATCH 20/47] Luminous Cave data --- data/data_80DC464.s | 42 +--- include/code_8098BDC.h | 1 + include/luminous_cave.h | 26 +-- include/menu.h | 2 +- include/pokemon_3.h | 13 +- src/data/luminous_cave.h | 203 ++++++++++------- src/friend_area_action_menu.c | 1 - src/friend_list_menu.c | 1 - src/luminous_cave.c | 409 +++++++++++++++++----------------- src/party_list_menu.c | 1 - 10 files changed, 340 insertions(+), 359 deletions(-) diff --git a/data/data_80DC464.s b/data/data_80DC464.s index a9815c5aa..f01eb44f1 100644 --- a/data/data_80DC464.s +++ b/data/data_80DC464.s @@ -370,44 +370,4 @@ gUnknown_80DC9C8: @ 80DC9C8 .byte 0x02, 0x00, 0x02, 0x00 .byte 0x12, 0x00, 0x0e, 0x00 .byte 0x12, 0x00, 0x02, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - -@ luminous_cave -.string "pksdir0\0" - .align 2,0 - - .global gUnknown_80DC9E8 -gUnknown_80DC9E8: @ 80DC9E8 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DCA00 -gUnknown_80DCA00: @ 80DCA00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x14, 0x00, 0x04, 0x00 - .byte 0x06, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DCA18 -gUnknown_80DCA18: @ 80DCA18 - .string "Evolve\0" - .align 2,0 - .4byte gUnknown_80DCA18 - - .global gUnknown_80DCA24 -gUnknown_80DCA24: @ 80DCA24 - .string "No\0" - .align 2,0 - .4byte gUnknown_80DCA24 - - .global gUnknown_80DCA2C -gUnknown_80DCA2C: @ 80DCA2C - .string "Yes\0" - .align 2,0 - .4byte gUnknown_80DCA2C \ No newline at end of file + .byte 0x00, 0x00, 0x00, 0x00 \ No newline at end of file diff --git a/include/code_8098BDC.h b/include/code_8098BDC.h index 49bfdc684..f807b23b5 100644 --- a/include/code_8098BDC.h +++ b/include/code_8098BDC.h @@ -2,6 +2,7 @@ #define GUARD_CODE_8098BDC_H // code_8098DBC.s +extern void nullsub_104(void); extern void sub_80993D8(void); extern void sub_80993E4(void); extern void sub_8099690(u32); diff --git a/include/luminous_cave.h b/include/luminous_cave.h index 3d695cca4..7ea21ffbf 100644 --- a/include/luminous_cave.h +++ b/include/luminous_cave.h @@ -7,21 +7,21 @@ #include "pokemon_3.h" #include "text.h" -struct unkStruct_203B2B0 +// size: 0x174 +typedef struct LuminousCaveWork { - // size: 0x174 - bool8 evolutionComplete; - EvolveStatus evolveStatus; - PokemonStruct1 *pokeStruct; + /* 0x0 */ bool8 evolutionComplete; + /* 0x4 */ EvolveStatus evolveStatus; + /* 0xC */ PokemonStruct1 *pokeStruct; /* 0x10 */ bool8 pokeRenamed; /* 0x14 */ u32 evoItem1_InvIndex; // inventory index of item /* 0x18 */ u32 evoItem2_InvIndex; // inventory index of item - Item chosenItem; - u32 state; - u32 fallbackState; - u32 menuAction1; - u32 menuAction2; - u32 menuAction3; + /* 0x1C */ Item chosenItem; + /* 0x20 */ u32 state; + /* 0x24 */ u32 fallbackState; + /* 0x28 */ u32 menuAction1; + /* 0x2C */ u32 menuAction2; + /* 0x30 */ u32 menuAction3; MenuItem unk34[8]; u16 unk74[0x8]; MenuStruct unk84; @@ -34,7 +34,7 @@ struct unkStruct_203B2B0 u8 unk111; u8 unk112; UnkTextStruct2 unk114[4]; -}; +} LuminousCaveWork; void CleanLuminousCave(void); bool8 HasEvolutionCompleted(void); @@ -42,4 +42,4 @@ bool8 HasEvolutionCompleted(void); u32 sub_802465C(void); u32 sub_80246F0(void); -#endif // GUARD_LUMINOUS_CAVE_H +#endif // GUARD_LUMINOUS_CAVE_H \ No newline at end of file diff --git a/include/menu.h b/include/menu.h index d0ba9cf7e..5ed4f66b7 100644 --- a/include/menu.h +++ b/include/menu.h @@ -45,4 +45,4 @@ typedef struct unkStructFor8013AA0 SpriteOAM unk28; } unkStructFor8013AA0; -#endif // GUARD_MENU_H +#endif // GUARD_MENU_H \ No newline at end of file diff --git a/include/pokemon_3.h b/include/pokemon_3.h index 6e79a87d5..17931c9b1 100644 --- a/include/pokemon_3.h +++ b/include/pokemon_3.h @@ -3,13 +3,14 @@ #include "pokemon.h" +// size: 0x8 typedef struct EvolveStatus { - u8 evoItem1; - u8 evoItem2; - u8 unk6; - u16 evolutionConditionStatus; - s16 targetEvolveSpecies; + /* 0x0 */ u8 evoItem1; + /* 0x1 */ u8 evoItem2; + /* 0x2 */ u8 unk6; + /* 0x4 */ u16 evolutionConditionStatus; + /* 0x6 */ s16 targetEvolveSpecies; } EvolveStatus; bool8 HasRecruitedMon(s16 species); @@ -29,4 +30,4 @@ void SetDefaultIQSkills(u8 *param_1, bool8 enableSelfCurer); void sub_808F468(PokemonStruct1 *param_1, EvolveStatus *evolveStatus, u8 param_3); u32 sub_808F734(PokemonStruct1 *pokemon, s16 _species); -#endif +#endif // GUARD_POKEMON_3_H \ No newline at end of file diff --git a/src/data/luminous_cave.h b/src/data/luminous_cave.h index 337a62c3b..33ff16e42 100644 --- a/src/data/luminous_cave.h +++ b/src/data/luminous_cave.h @@ -1,106 +1,137 @@ -ALIGNED(4) static const u8 sLuminousCaveSeekAwakening[] = _( - "{CENTER_ALIGN}...{WAIT_PRESS}A voice emanates from somewhere...{EXTRA_MSG}" - "{CENTER_ALIGN}...Ye who seek awakening...{EXTRA_MSG}" - "{CENTER_ALIGN}This is Luminous Cave.{WAIT_PRESS}\n" - "{CENTER_ALIGN}Do ye seek a new evolution?"); +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); -ALIGNED(4) static const u8 sLuminousCaveAskEvolution[] = _( - "{CENTER_ALIGN}Do ye seek evolution?"); +// TODO: Add "$n0" to charmap -ALIGNED(4) static const u8 sLuminousCaveEvolutionInfo[] = _( - "{CENTER_ALIGN}There are those among Pokémon\n" - "{CENTER_ALIGN}that can evolve.{EXTRA_MSG}" - "{CENTER_ALIGN}Such Pokémon can evolve at this very\n" - "{CENTER_ALIGN}spot if they satisfy certain conditions.{EXTRA_MSG}" - "{CENTER_ALIGN}Evolution brings about changes\n" - "{CENTER_ALIGN}in appearance and abilities.{EXTRA_MSG}" - "{CENTER_ALIGN}Not only that{COMMA} some Pokémon even change\n" - "{CENTER_ALIGN}type and learn different moves.{EXTRA_MSG}" - "{CENTER_ALIGN}However...{WAIT_PRESS} The requirements for\n" - "{CENTER_ALIGN}evolution differ among Pokémon.{EXTRA_MSG}" - "{CENTER_ALIGN}Some become ready for evolution\n" - "{CENTER_ALIGN}merely by leveling up.{EXTRA_MSG}" - "{CENTER_ALIGN}Still others may need special items\n" - "{CENTER_ALIGN}to attain evolution.{EXTRA_MSG}" - "{CENTER_ALIGN}Ye must also be aware of this:{EXTRA_MSG}" - "{CENTER_ALIGN}Once it has evolved{COMMA} a Pokémon\n" - "{CENTER_ALIGN}can never regain its previous form.{EXTRA_MSG}" - "{CENTER_ALIGN}That is why ye must think carefully\n" - "{CENTER_ALIGN}before committing to evolution."); +static const UnkTextStruct2 sUnknown_80DC9E8 = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; -ALIGNED(4) static const u8 sLuminousCaveYeShallReturn[] = _( - "{CENTER_ALIGN}Ye shall return if evolution\n" - "{CENTER_ALIGN}is what ye seek..."); +static const UnkTextStruct2 sUnknown_80DCA00 = { + 0, 0, 0, 0, + 3, + 20, 4, + 6, 3, + 3, 0, + NULL +}; -ALIGNED(4) static const u8 sLuminousCaveGiveItem[] = _( - "{CENTER_ALIGN}Will ye give an item for evolution?"); +ALIGNED(4) static const u8 sEvolve0[] = _("Evolve"); +UNUSED ALIGNED(4) const u8* const sEvolve[] = { sEvolve0 }; -ALIGNED(4) static const u8 sLuminousCaveGiveAnotherItem[] = _( - "{CENTER_ALIGN}Will ye give yet another item?"); +ALIGNED(4) static const u8 sNo0[] = _("No"); +UNUSED ALIGNED(4) const u8* const sNo[] = { sNo0 }; -ALIGNED(4) static const u8 sLuminousCaveLackWhatIsNeeded[] = _( - "{CENTER_ALIGN}Alas{COMMA} ye seem to lack what is needed\n" - "{CENTER_ALIGN}for evolution."); +ALIGNED(4) static const u8 sYes0[] = _("Yes"); +UNUSED ALIGNED(4) const u8* const sYes[] = { sYes0 }; -ALIGNED(4) static const u8 sLuminousCaveOnlyOneItem[] = _( - "{CENTER_ALIGN}Ye seem to have but one item."); +ALIGNED(4) static const u8 sSeekEvolutionIntro[] = _( + "{CENTER_ALIGN}...{WAIT_PRESS}A voice emanates from somewhere...{EXTRA_MSG}" + "{CENTER_ALIGN}...Ye who seek awakening...{EXTRA_MSG}" + "{CENTER_ALIGN}This is Luminous Cave.{WAIT_PRESS}\n" + "{CENTER_ALIGN}Do ye seek a new evolution?"); -ALIGNED(4) static const u8 sLuminousCaveLetUsBegin[] = _( - "{CENTER_ALIGN}...Ye who seek awakening...\n" - "{CENTER_ALIGN}Let us begin."); +ALIGNED(4) static const u8 sSeekEvolutionPrompt[] = _( + "{CENTER_ALIGN}Do ye seek evolution?"); -ALIGNED(4) static const u8 sLuminousCaveChangedAppearance[] = _( - "{CENTER_ALIGN}...{WAIT_PRESS}$n0 is undergoing changes...{EXTRA_MSG}" - "{CENTER_ALIGN}$n0{APOSTROPHE}s appearance changed...{EXTRA_MSG}"); +ALIGNED(4) static const u8 sEvolveInfo[] = _( + "{CENTER_ALIGN}There are those among Pokémon\n" + "{CENTER_ALIGN}that can evolve.{EXTRA_MSG}" + "{CENTER_ALIGN}Such Pokémon can evolve at this very\n" + "{CENTER_ALIGN}spot if they satisfy certain conditions.{EXTRA_MSG}" + "{CENTER_ALIGN}Evolution brings about changes\n" + "{CENTER_ALIGN}in appearance and abilities.{EXTRA_MSG}" + "{CENTER_ALIGN}Not only that{COMMA} some Pokémon even change\n" + "{CENTER_ALIGN}type and learn different moves.{EXTRA_MSG}" + "{CENTER_ALIGN}However...{WAIT_PRESS} The requirements for\n" + "{CENTER_ALIGN}evolution differ among Pokémon.{EXTRA_MSG}" + "{CENTER_ALIGN}Some become ready for evolution\n" + "{CENTER_ALIGN}merely by leveling up.{EXTRA_MSG}" + "{CENTER_ALIGN}Still others may need special items\n" + "{CENTER_ALIGN}to attain evolution.{EXTRA_MSG}" + "{CENTER_ALIGN}Ye must also be aware of this:{EXTRA_MSG}" + "{CENTER_ALIGN}Once it has evolved{COMMA} a Pokémon\n" + "{CENTER_ALIGN}can never regain its previous form.{EXTRA_MSG}" + "{CENTER_ALIGN}That is why ye must think carefully\n" + "{CENTER_ALIGN}before committing to evolution."); -ALIGNED(4) static const u8 sLuminousCaveEvolved[] = _( - "{CENTER_ALIGN}It evolved from {COLOR_1 GREEN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}\n" - "{CENTER_ALIGN}to {COLOR_1 YELLOW}{ARG_POKEMON_1}{END_COLOR_TEXT_1}!"); +ALIGNED(4) static const u8 sYeShallReturn[] = _( + "{CENTER_ALIGN}Ye shall return if evolution\n" + "{CENTER_ALIGN}is what ye seek..."); -ALIGNED(4) static const u8 sLuminousCaveComeAlone[] = _( - "{CENTER_ALIGN}...{EXTRA_MSG}" - "{CENTER_ALIGN}One cannot evolve if one\n" - "{CENTER_ALIGN}is in the company of others.{EXTRA_MSG}" - "{CENTER_ALIGN}Come alone if ye wish to evolve."); +ALIGNED(4) static const u8 sGiveItemPrompt[] = _( + "{CENTER_ALIGN}Will ye give an item for evolution?"); -ALIGNED(4) static const u8 sLuminousCaveLackLevel[] = _( - "{CENTER_ALIGN}...{EXTRA_MSG}" - "{CENTER_ALIGN}Ye cannot evolve yet.{EXTRA_MSG}" - "{CENTER_ALIGN}Ye have not high enough a level."); +ALIGNED(4) static const u8 sGiveAnotherItemPrompt[] = _( + "{CENTER_ALIGN}Will ye give yet another item?"); -ALIGNED(4) static const u8 sLuminousCaveCantEvolveAnymore[] = _( - "{CENTER_ALIGN}...{EXTRA_MSG}" - "{CENTER_ALIGN}Ye cannot evolve anymore."); +ALIGNED(4) static const u8 sLackWhatIsNeeded[] = _( + "{CENTER_ALIGN}Alas{COMMA} ye seem to lack what is needed\n" + "{CENTER_ALIGN}for evolution."); -ALIGNED(4) static const u8 sLuminousCaveLackFriendArea[] = _( - "{CENTER_ALIGN}...{EXTRA_MSG}" - "{CENTER_ALIGN}Ye cannot evolve yet.{EXTRA_MSG}" - "{CENTER_ALIGN}Ye need your Friend Area to evolve."); +ALIGNED(4) static const u8 sOnlyOneItem[] = _( + "{CENTER_ALIGN}Ye seem to have but one item."); -ALIGNED(4) static const u8 sLuminousCaveLackRoom[] = _( - "{CENTER_ALIGN}...{EXTRA_MSG}" - "{CENTER_ALIGN}Ye cannot evolve yet.{EXTRA_MSG}" - "{CENTER_ALIGN}The Friend Area to which ye shall go\n" - "{CENTER_ALIGN}has no room for ye."); +ALIGNED(4) static const u8 sLetUsBegin[] = _( + "{CENTER_ALIGN}...Ye who seek awakening...\n" + "{CENTER_ALIGN}Let us begin."); -ALIGNED(4) static const u8 sLuminousCaveLackIQ[] = _( - "{CENTER_ALIGN}...{EXTRA_MSG}" - "{CENTER_ALIGN}Ye cannot evolve yet.{EXTRA_MSG}" - "{CENTER_ALIGN}Ye seem to lack the IQ to evolve."); +ALIGNED(4) static const u8 sFmtChangedAppearance[] = _( + "{CENTER_ALIGN}...{WAIT_PRESS}$n0 is undergoing changes...{EXTRA_MSG}" + "{CENTER_ALIGN}$n0{APOSTROPHE}s appearance changed...{EXTRA_MSG}"); -ALIGNED(4) static const u8 sLuminousCaveLackItem[] = _( - "{CENTER_ALIGN}{CENTER_ALIGN}...{EXTRA_MSG}" - "{CENTER_ALIGN}Ye cannot evolve yet.{EXTRA_MSG}" - "{CENTER_ALIGN}Ye seem to lack an item to evolve."); +ALIGNED(4) static const u8 sFmtEvolved[] = _( + "{CENTER_ALIGN}It evolved from {COLOR_1 GREEN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}\n" + "{CENTER_ALIGN}to {COLOR_1 YELLOW}{ARG_POKEMON_1}{END_COLOR_TEXT_1}!"); -ALIGNED(4) static const u8 sLuminousCaveCantEvolveYet[] = _( - "{CENTER_ALIGN}{CENTER_ALIGN}...{EXTRA_MSG}" - "{CENTER_ALIGN}Ye cannot evolve yet. "); +ALIGNED(4) static const u8 sComeAlone[] = _( + "{CENTER_ALIGN}...{EXTRA_MSG}" + "{CENTER_ALIGN}One cannot evolve if one\n" + "{CENTER_ALIGN}is in the company of others.{EXTRA_MSG}" + "{CENTER_ALIGN}Come alone if ye wish to evolve."); -ALIGNED(4) static const u8 sLuminousCaveGiveName[] = _( - "{CENTER_ALIGN}Ye must give a name to\n" - "{CENTER_ALIGN}the evolved Pokémon. "); +ALIGNED(4) static const u8 sLackLevel[] = _( + "{CENTER_ALIGN}...{EXTRA_MSG}" + "{CENTER_ALIGN}Ye cannot evolve yet.{EXTRA_MSG}" + "{CENTER_ALIGN}Ye have not high enough a level."); -ALIGNED(4) static const u8 sFill1[] = "pksdir0"; -// TODO: This may be for the file after, which has no data? -ALIGNED(4) static const u8 sFill2[] = "pksdir0"; \ No newline at end of file +ALIGNED(4) static const u8 sNoMoreEvolutions[] = _( + "{CENTER_ALIGN}...{EXTRA_MSG}" + "{CENTER_ALIGN}Ye cannot evolve anymore."); + +ALIGNED(4) static const u8 sLackFriendArea[] = _( + "{CENTER_ALIGN}...{EXTRA_MSG}" + "{CENTER_ALIGN}Ye cannot evolve yet.{EXTRA_MSG}" + "{CENTER_ALIGN}Ye need your Friend Area to evolve."); + +ALIGNED(4) static const u8 sLackFriendAreaRoom[] = _( + "{CENTER_ALIGN}...{EXTRA_MSG}" + "{CENTER_ALIGN}Ye cannot evolve yet.{EXTRA_MSG}" + "{CENTER_ALIGN}The Friend Area to which ye shall go\n" + "{CENTER_ALIGN}has no room for ye."); + +ALIGNED(4) static const u8 sLackIQ[] = _( + "{CENTER_ALIGN}...{EXTRA_MSG}" + "{CENTER_ALIGN}Ye cannot evolve yet.{EXTRA_MSG}" + "{CENTER_ALIGN}Ye seem to lack the IQ to evolve."); + +ALIGNED(4) static const u8 sLackItem[] = _( + "{CENTER_ALIGN}{CENTER_ALIGN}...{EXTRA_MSG}" + "{CENTER_ALIGN}Ye cannot evolve yet.{EXTRA_MSG}" + "{CENTER_ALIGN}Ye seem to lack an item to evolve."); + +ALIGNED(4) static const u8 sCannotEvolveYet[] = _( + "{CENTER_ALIGN}{CENTER_ALIGN}...{EXTRA_MSG}" + "{CENTER_ALIGN}Ye cannot evolve yet. "); + +ALIGNED(4) static const u8 sMustGiveName[] = _( + "{CENTER_ALIGN}Ye must give a name to\n" + "{CENTER_ALIGN}the evolved Pokémon. "); + +// TODO: These are for 2 files after, which have no data +ALIGNED(4) static const u8 sFill1[] = _("pksdir0"); +ALIGNED(4) static const u8 sFill2[] = _("pksdir0"); \ No newline at end of file diff --git a/src/friend_area_action_menu.c b/src/friend_area_action_menu.c index cbf01c9e8..e4eb31388 100644 --- a/src/friend_area_action_menu.c +++ b/src/friend_area_action_menu.c @@ -46,7 +46,6 @@ extern u8 sub_8027DCC(PokemonStruct1 *); extern void SetFriendAreaActionMenuState(u32); extern void PlaySound(u32); -extern void nullsub_104(); extern void sub_808D31C(PokemonStruct1 *); extern PokemonStruct1 *sub_808D3F8(void); diff --git a/src/friend_list_menu.c b/src/friend_list_menu.c index 6aac460ef..39605aac2 100644 --- a/src/friend_list_menu.c +++ b/src/friend_list_menu.c @@ -59,7 +59,6 @@ EWRAM_DATA_2 unkStruct_203B2B4 *gUnknown_203B2B4 = {0}; extern s16 sub_80A5728(void); extern u8 sub_8002658(s16); extern bool8 sub_8024108(u32); -extern void nullsub_104(void); extern void sub_808ED00(void); extern u32 sub_80244E4(void); diff --git a/src/luminous_cave.c b/src/luminous_cave.c index 33ea0d14b..be978c125 100644 --- a/src/luminous_cave.c +++ b/src/luminous_cave.c @@ -21,44 +21,6 @@ #include "text1.h" #include "text2.h" -extern u8 gAvailablePokemonNames[]; // 202DF98 -extern u8 gPlayerName[]; // 202E2B8 - -static EWRAM_DATA_2 struct unkStruct_203B2B0 *sUnknown_203B2B0 = {0}; - -extern const UnkTextStruct2 gUnknown_80DC9E8; -extern const UnkTextStruct2 gUnknown_80DCA00; -extern const u8 gUnknown_80DCA18[]; -extern const u8 gUnknown_80DCA24[]; -extern const u8 gUnknown_80DCA2C[]; - -#include "data/luminous_cave.h" - -// code_8098BDC.s -extern void nullsub_104(void); - -static void LuminousCave_AdvancetoFallbackState(void); -static bool8 LuminousCave_HasOnly1Member(void); -static void UpdateLuminousCaveDialogue(void); -static void UpdateLuminousCaveState(u32); - -static void sub_8024804(void); -static void sub_8024CFC(void); -static void sub_8024D48(void); -static void sub_8024DBC(void); -static void sub_8024E30(void); -static void sub_8024E9C(void); -static void sub_8024F00(void); -static void sub_8024F70(void); -static void sub_8024FD4(void); -static void sub_8025058(void); -static void sub_80250EC(void); -static void sub_802515C(void); -static void sub_80251CC(void); -static void sub_80251E8(void); -static void sub_8025204(void); -static void sub_8025254(void); - enum { LUMINOUS_CAVE_ENTRY, @@ -87,34 +49,63 @@ enum LUMINOUS_CAVE_CANT_EVOLVE_YET, }; +extern u8 gAvailablePokemonNames[]; // 202DF98 +extern u8 gPlayerName[]; // 202E2B8 + +static EWRAM_DATA_2 LuminousCaveWork *sLuminousCaveWork = {0}; + +#include "data/luminous_cave.h" + +static void LuminousCave_AdvancetoFallbackState(void); +static bool8 LuminousCave_HasOnly1Member(void); +static void UpdateLuminousCaveDialogue(void); +static void UpdateLuminousCaveState(u32); + +static void sub_8024804(void); +static void sub_8024CFC(void); +static void sub_8024D48(void); +static void sub_8024DBC(void); +static void sub_8024E30(void); +static void sub_8024E9C(void); +static void sub_8024F00(void); +static void sub_8024F70(void); +static void sub_8024FD4(void); +static void sub_8025058(void); +static void sub_80250EC(void); +static void sub_802515C(void); +static void sub_80251CC(void); +static void sub_80251E8(void); +static void sub_8025204(void); +static void sub_8025254(void); + u32 sub_802465C(void) { OpenedFile *faceFile; ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); - sUnknown_203B2B0 = MemoryAlloc(sizeof(struct unkStruct_203B2B0), 8); - sUnknown_203B2B0->menuAction1 = 0; - sUnknown_203B2B0->menuAction2 = 0; - sUnknown_203B2B0->menuAction3 = 0; - sUnknown_203B2B0->pokeStruct = GetPlayerPokemonStruct(); - sUnknown_203B2B0->pokeRenamed = IsPokemonRenamed(sUnknown_203B2B0->pokeStruct); - sUnknown_203B2B0->evolutionComplete = FALSE; + sLuminousCaveWork = MemoryAlloc(sizeof(LuminousCaveWork), 8); + sLuminousCaveWork->menuAction1 = 0; + sLuminousCaveWork->menuAction2 = 0; + sLuminousCaveWork->menuAction3 = 0; + sLuminousCaveWork->pokeStruct = GetPlayerPokemonStruct(); + sLuminousCaveWork->pokeRenamed = IsPokemonRenamed(sLuminousCaveWork->pokeStruct); + sLuminousCaveWork->evolutionComplete = FALSE; faceFile = GetDialogueSpriteDataPtr(MONSTER_GULPIN); - sUnknown_203B2B0->unk104 = faceFile; - sUnknown_203B2B0->unk108 = faceFile->data; - sUnknown_203B2B0->unk110 = 0; - sUnknown_203B2B0->unk111 = 0; - sUnknown_203B2B0->unk112 = 0; - sUnknown_203B2B0->unk10C = 2; - sUnknown_203B2B0->unk10E = 8; + sLuminousCaveWork->unk104 = faceFile; + sLuminousCaveWork->unk108 = faceFile->data; + sLuminousCaveWork->unk110 = 0; + sLuminousCaveWork->unk111 = 0; + sLuminousCaveWork->unk112 = 0; + sLuminousCaveWork->unk10C = 2; + sLuminousCaveWork->unk10E = 8; UpdateLuminousCaveState(LUMINOUS_CAVE_ENTRY); return TRUE; } u32 sub_80246F0(void) { - switch (sUnknown_203B2B0->state) { + switch (sLuminousCaveWork->state) { case LUMINOUS_CAVE_ENTRY: case LUMINOUS_CAVE_ASK_EVOLVE: sub_8024E9C(); @@ -159,21 +150,21 @@ u32 sub_80246F0(void) bool8 HasEvolutionCompleted(void) { - return sUnknown_203B2B0->evolutionComplete; + return sLuminousCaveWork->evolutionComplete; } void CleanLuminousCave(void) { - if (sUnknown_203B2B0 != NULL) { - CloseFile(sUnknown_203B2B0->unk104); - MemoryFree(sUnknown_203B2B0); - sUnknown_203B2B0 = NULL; + if (sLuminousCaveWork != NULL) { + CloseFile(sLuminousCaveWork->unk104); + MemoryFree(sLuminousCaveWork); + sLuminousCaveWork = NULL; } } static void UpdateLuminousCaveState(u32 newState) { - sUnknown_203B2B0->state = newState; + sLuminousCaveWork->state = newState; sub_8024804(); UpdateLuminousCaveDialogue(); } @@ -182,12 +173,12 @@ static void sub_8024804(void) { s32 i; - sub_8006518(sUnknown_203B2B0->unk114); + sub_8006518(sLuminousCaveWork->unk114); - switch (sUnknown_203B2B0->state) { + switch (sLuminousCaveWork->state) { case 8: case 13: - sUnknown_203B2B0->unk114[2] = gUnknown_80DCA00; + sLuminousCaveWork->unk114[2] = sUnknown_80DCA00; break; case LUMINOUS_CAVE_LET_US_BEGIN: case LUMINOUS_CAVE_CHANGED_APPEARANCE: @@ -202,44 +193,44 @@ static void sub_8024804(void) break; default: for (i = 0; i < 4; i++) - sUnknown_203B2B0->unk114[i] = gUnknown_80DC9E8; + sLuminousCaveWork->unk114[i] = sUnknown_80DC9E8; break; } ResetUnusedInputStruct(); - sub_800641C(sUnknown_203B2B0->unk114, TRUE, TRUE); + sub_800641C(sLuminousCaveWork->unk114, TRUE, TRUE); } static void UpdateLuminousCaveDialogue(void) { u8 *monName; - switch (sUnknown_203B2B0->state) { + switch (sLuminousCaveWork->state) { case LUMINOUS_CAVE_ENTRY: if (LuminousCave_HasOnly1Member()) - sUnknown_203B2B0->menuAction1 = 3; + sLuminousCaveWork->menuAction1 = 3; else - sUnknown_203B2B0->menuAction1 = 1; + sLuminousCaveWork->menuAction1 = 1; sub_8024CFC(); - sub_8014248(sLuminousCaveSeekAwakening,0,sUnknown_203B2B0->menuAction1,sUnknown_203B2B0->unk34,sUnknown_203B2B0->unk74,4,0,0,5); + sub_8014248(sSeekEvolutionIntro,0,sLuminousCaveWork->menuAction1,sLuminousCaveWork->unk34,sLuminousCaveWork->unk74,4,0,0,5); break; case LUMINOUS_CAVE_ASK_EVOLVE: sub_8024CFC(); - sub_8014248(sLuminousCaveAskEvolution,0,sUnknown_203B2B0->menuAction1,sUnknown_203B2B0->unk34,sUnknown_203B2B0->unk74,4,0,0,5); + sub_8014248(sSeekEvolutionPrompt,0,sLuminousCaveWork->menuAction1,sLuminousCaveWork->unk34,sLuminousCaveWork->unk74,4,0,0,5); break; case LUMINOUS_CAVE_EVOLVE_INFO: - sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_ASK_EVOLVE; - sub_80141B4(sLuminousCaveEvolutionInfo,0,0,0x105); + sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_ASK_EVOLVE; + sub_80141B4(sEvolveInfo,0,0,0x105); break; case LUMINOUS_CAVE_SHALL_RETURN: - sUnknown_203B2B0->fallbackState = 4; + sLuminousCaveWork->fallbackState = 4; xxx_call_fade_in_new_bgm(MUS_FILE_SELECT,0x3c); - sub_80141B4(sLuminousCaveYeShallReturn,0,0,0x305); + sub_80141B4(sYeShallReturn,0,0,0x305); break; case LUMINOUS_CAVE_GIVE_ITEM_1: sub_8024D48(); - sub_8014248(sLuminousCaveGiveItem,0,sUnknown_203B2B0->menuAction2,sUnknown_203B2B0->unk34,sUnknown_203B2B0->unk74,4,0,0,5); + sub_8014248(sGiveItemPrompt,0,sLuminousCaveWork->menuAction2,sLuminousCaveWork->unk34,sLuminousCaveWork->unk74,4,0,0,5); break; case 6: sub_801A5D8(2,3,NULL,10); @@ -249,132 +240,132 @@ static void UpdateLuminousCaveDialogue(void) break; case LUMINOUS_CAVE_GIVE_ITEM_2: sub_8024DBC(); - sub_8014248(sLuminousCaveGiveAnotherItem,0,sUnknown_203B2B0->menuAction2,sUnknown_203B2B0->unk34,sUnknown_203B2B0->unk74,4,0,0,5); + sub_8014248(sGiveAnotherItemPrompt,0,sLuminousCaveWork->menuAction2,sLuminousCaveWork->unk34,sLuminousCaveWork->unk74,4,0,0,5); break; case 11: sub_801A5D8(2,3,NULL,10); - sub_801AEE4(sUnknown_203B2B0->evoItem1_InvIndex,1); + sub_801AEE4(sLuminousCaveWork->evoItem1_InvIndex,1); sub_801A9E0(); break; case 12: sub_801A8D0(TRUE); - sub_801AEE4(sUnknown_203B2B0->evoItem1_InvIndex,1); + sub_801AEE4(sLuminousCaveWork->evoItem1_InvIndex,1); sub_801A9E0(); break; case 8: case 13: sub_801A9E0(); sub_8024E30(); - sub_8012D60(&sUnknown_203B2B0->unk84,sUnknown_203B2B0->unk34,0,sUnknown_203B2B0->unk74, - sUnknown_203B2B0->menuAction3,2); + sub_8012D60(&sLuminousCaveWork->unk84,sLuminousCaveWork->unk34,0,sLuminousCaveWork->unk74, + sLuminousCaveWork->menuAction3,2); break; case 9: case 14: - sub_801B3C0(&sUnknown_203B2B0->chosenItem); + sub_801B3C0(&sLuminousCaveWork->chosenItem); break; case LUMINOUS_CAVE_LACK_WHAT_NEEDED: - sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_GIVE_ITEM_1; - sub_80141B4(sLuminousCaveLackWhatIsNeeded,0,0,0x105); + sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_GIVE_ITEM_1; + sub_80141B4(sLackWhatIsNeeded,0,0,0x105); break; case LUMINOUS_CAVE_ONLY_ONE_ITEM: - sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_GIVE_ITEM_2; - sub_80141B4(sLuminousCaveOnlyOneItem,0,0,0x105); + sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_GIVE_ITEM_2; + sub_80141B4(sOnlyOneItem,0,0,0x105); break; case LUMINOUS_CAVE_LET_US_BEGIN: sub_8025254(); - if((sUnknown_203B2B0->evolveStatus.evolutionConditionStatus & EVOLUTION_GOOD)) - sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_CHANGED_APPEARANCE; - else if(sUnknown_203B2B0->evolveStatus.evolutionConditionStatus == EVOLUTION_NO_MORE) - sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_CANT_EVOLVE_ANYMORE; - else if(sUnknown_203B2B0->evolveStatus.evolutionConditionStatus == EVOLUTION_LACK_LEVEL) - sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_LACK_LEVEL; - else if(sUnknown_203B2B0->evolveStatus.evolutionConditionStatus == EVOLUTION_LACK_IQ) - sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_LACK_IQ; - else if(sUnknown_203B2B0->evolveStatus.evolutionConditionStatus == EVOLUTION_LACK_FRIEND_AREA) - sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_LACK_FRIEND_AREA; - else if(sUnknown_203B2B0->evolveStatus.evolutionConditionStatus == EVOLUTION_LACK_ROOM) - sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_LACK_ROOM; - else if(sUnknown_203B2B0->evolveStatus.evolutionConditionStatus == EVOLUTION_LACK_ITEM) - sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_LACK_ITEM; + if((sLuminousCaveWork->evolveStatus.evolutionConditionStatus & EVOLUTION_GOOD)) + sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_CHANGED_APPEARANCE; + else if(sLuminousCaveWork->evolveStatus.evolutionConditionStatus == EVOLUTION_NO_MORE) + sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_CANT_EVOLVE_ANYMORE; + else if(sLuminousCaveWork->evolveStatus.evolutionConditionStatus == EVOLUTION_LACK_LEVEL) + sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_LACK_LEVEL; + else if(sLuminousCaveWork->evolveStatus.evolutionConditionStatus == EVOLUTION_LACK_IQ) + sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_LACK_IQ; + else if(sLuminousCaveWork->evolveStatus.evolutionConditionStatus == EVOLUTION_LACK_FRIEND_AREA) + sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_LACK_FRIEND_AREA; + else if(sLuminousCaveWork->evolveStatus.evolutionConditionStatus == EVOLUTION_LACK_ROOM) + sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_LACK_ROOM; + else if(sLuminousCaveWork->evolveStatus.evolutionConditionStatus == EVOLUTION_LACK_ITEM) + sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_LACK_ITEM; else - sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_CANT_EVOLVE_YET; + sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_CANT_EVOLVE_YET; xxx_call_fade_out_bgm(0x3c); - sub_80141B4(sLuminousCaveLetUsBegin,0,0,0x105); + sub_80141B4(sLetUsBegin,0,0,0x105); break; case LUMINOUS_CAVE_CHANGED_APPEARANCE: - PrintColoredPokeNameToBuffer(gPlayerName,sUnknown_203B2B0->pokeStruct, COLOR_CYAN); + PrintColoredPokeNameToBuffer(gPlayerName,sLuminousCaveWork->pokeStruct, COLOR_CYAN); PlaySound(0x1ff); - sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_EVOLVED; - sub_80141B4(sLuminousCaveChangedAppearance,0,0,0x105); + sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_EVOLVED; + sub_80141B4(sFmtChangedAppearance,0,0,0x105); break; case LUMINOUS_CAVE_EVOLVED: - monName = GetMonSpecies(sUnknown_203B2B0->pokeStruct->speciesNum); + monName = GetMonSpecies(sLuminousCaveWork->pokeStruct->speciesNum); strcpy(gAvailablePokemonNames,monName); - monName = GetMonSpecies(sUnknown_203B2B0->evolveStatus.targetEvolveSpecies); + monName = GetMonSpecies(sLuminousCaveWork->evolveStatus.targetEvolveSpecies); strcpy(gAvailablePokemonNames + 0x50,monName); - sUnknown_203B2B0->evolutionComplete = TRUE; + sLuminousCaveWork->evolutionComplete = TRUE; sub_80977D0(); - sub_808F734(sUnknown_203B2B0->pokeStruct,sUnknown_203B2B0->evolveStatus.targetEvolveSpecies); + sub_808F734(sLuminousCaveWork->pokeStruct,sLuminousCaveWork->evolveStatus.targetEvolveSpecies); nullsub_104(); - sUnknown_203B2B0->pokeStruct = GetPlayerPokemonStruct(); - if (sUnknown_203B2B0->evoItem1_InvIndex != INVENTORY_SIZE) { - ClearItemSlotAt(sUnknown_203B2B0->evoItem1_InvIndex); + sLuminousCaveWork->pokeStruct = GetPlayerPokemonStruct(); + if (sLuminousCaveWork->evoItem1_InvIndex != INVENTORY_SIZE) { + ClearItemSlotAt(sLuminousCaveWork->evoItem1_InvIndex); } - if (sUnknown_203B2B0->evoItem2_InvIndex != INVENTORY_SIZE) { - ClearItemSlotAt(sUnknown_203B2B0->evoItem2_InvIndex); + if (sLuminousCaveWork->evoItem2_InvIndex != INVENTORY_SIZE) { + ClearItemSlotAt(sLuminousCaveWork->evoItem2_InvIndex); } FillInventoryGaps(); xxx_call_stop_fanfare_se(0x1ff); PlaySound(0xd2); - if (sUnknown_203B2B0->pokeRenamed) { - BoundedCopyStringtoBuffer(sUnknown_203B2B0->pokeStruct->name,GetMonSpecies(sUnknown_203B2B0->pokeStruct->speciesNum),POKEMON_NAME_LENGTH); + if (sLuminousCaveWork->pokeRenamed) { + BoundedCopyStringtoBuffer(sLuminousCaveWork->pokeStruct->name,GetMonSpecies(sLuminousCaveWork->pokeStruct->speciesNum),POKEMON_NAME_LENGTH); } - sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; - sub_80141B4(sLuminousCaveEvolved,0,0,0x105); + sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; + sub_80141B4(sFmtEvolved,0,0,0x105); break; case LUMINOUS_CAVE_COME_ALONE: - sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; - sub_80141B4(sLuminousCaveComeAlone,0,0,0x105); + sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; + sub_80141B4(sComeAlone,0,0,0x105); break; case LUMINOUS_CAVE_LACK_LEVEL: - sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; - sub_80141B4(sLuminousCaveLackLevel,0,0,0x105); + sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; + sub_80141B4(sLackLevel,0,0,0x105); break; case LUMINOUS_CAVE_CANT_EVOLVE_ANYMORE: - sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; - sub_80141B4(sLuminousCaveCantEvolveAnymore,0,0,0x105); + sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; + sub_80141B4(sNoMoreEvolutions,0,0,0x105); break; case LUMINOUS_CAVE_LACK_FRIEND_AREA: - sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; - sub_80141B4(sLuminousCaveLackFriendArea,0,0,0x105); + sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; + sub_80141B4(sLackFriendArea,0,0,0x105); break; case LUMINOUS_CAVE_LACK_ROOM: - sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; - sub_80141B4(sLuminousCaveLackRoom,0,0,0x105); + sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; + sub_80141B4(sLackFriendAreaRoom,0,0,0x105); break; case LUMINOUS_CAVE_LACK_IQ: - sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; - sub_80141B4(sLuminousCaveLackIQ,0,0,0x105); + sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; + sub_80141B4(sLackIQ,0,0,0x105); break; case LUMINOUS_CAVE_LACK_ITEM: - sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; - sub_80141B4(sLuminousCaveLackItem,0,0,0x105); + sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; + sub_80141B4(sLackItem,0,0,0x105); break; case LUMINOUS_CAVE_CANT_EVOLVE_YET: - sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; - sub_80141B4(sLuminousCaveCantEvolveYet,0,0,0x105); + sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_SHALL_RETURN; + sub_80141B4(sCannotEvolveYet,0,0,0x105); break; case LUMINOUS_CAVE_PROMPT_NAME: xxx_call_fade_in_new_bgm(8,0x3c); - sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_FINISH_NAME; - sub_80141B4(sLuminousCaveGiveName,0,0,0x105); + sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_FINISH_NAME; + sub_80141B4(sMustGiveName,0,0,0x105); break; case LUMINOUS_CAVE_FINISH_NAME: - if (sUnknown_203B2B0->pokeRenamed) { - BoundedCopyStringtoBuffer(sUnknown_203B2B0->pokeStruct->name,GetMonSpecies(sUnknown_203B2B0->pokeStruct->speciesNum),POKEMON_NAME_LENGTH); + if (sLuminousCaveWork->pokeRenamed) { + BoundedCopyStringtoBuffer(sLuminousCaveWork->pokeStruct->name,GetMonSpecies(sLuminousCaveWork->pokeStruct->speciesNum),POKEMON_NAME_LENGTH); } - sub_801602C(0,sUnknown_203B2B0->pokeStruct->name); + sub_801602C(0,sLuminousCaveWork->pokeStruct->name); break; default: break; @@ -385,22 +376,22 @@ static void sub_8024CFC(void) { s32 loopMax = 0; - MemoryFill16(sUnknown_203B2B0->unk74, 0, sizeof(sUnknown_203B2B0->unk74)); + MemoryFill16(sLuminousCaveWork->unk74, 0, sizeof(sLuminousCaveWork->unk74)); - sUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA18; - sUnknown_203B2B0->unk34[loopMax].menuAction = 3; + sLuminousCaveWork->unk34[loopMax].text = sEvolve0; + sLuminousCaveWork->unk34[loopMax].menuAction = 3; loopMax += 1; - sUnknown_203B2B0->unk34[loopMax].text = *gCommonInfo; - sUnknown_203B2B0->unk34[loopMax].menuAction = 2; + sLuminousCaveWork->unk34[loopMax].text = gCommonInfo[0]; + sLuminousCaveWork->unk34[loopMax].menuAction = 2; loopMax += 1; - sUnknown_203B2B0->unk34[loopMax].text = *gCommonCancel; - sUnknown_203B2B0->unk34[loopMax].menuAction = 1; + sLuminousCaveWork->unk34[loopMax].text = gCommonCancel[0]; + sLuminousCaveWork->unk34[loopMax].menuAction = 1; loopMax += 1; - sUnknown_203B2B0->unk34[loopMax].text = NULL; - sUnknown_203B2B0->unk34[loopMax].menuAction = 1; + sLuminousCaveWork->unk34[loopMax].text = NULL; + sLuminousCaveWork->unk34[loopMax].menuAction = 1; } static void sub_8024D48(void) @@ -409,27 +400,27 @@ static void sub_8024D48(void) s32 loopMax; loopMax = 0; - MemoryFill16(sUnknown_203B2B0->unk74, 0, sizeof(sUnknown_203B2B0->unk74)); - sUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA24; - sUnknown_203B2B0->unk34[loopMax].menuAction = 4; + MemoryFill16(sLuminousCaveWork->unk74, 0, sizeof(sLuminousCaveWork->unk74)); + sLuminousCaveWork->unk34[loopMax].text = sNo0; + sLuminousCaveWork->unk34[loopMax].menuAction = 4; loopMax += 1; - sUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA2C; - sUnknown_203B2B0->unk34[loopMax].menuAction = 5; + sLuminousCaveWork->unk34[loopMax].text = sYes0; + sLuminousCaveWork->unk34[loopMax].menuAction = 5; loopMax += 1; - sUnknown_203B2B0->unk34[loopMax].text = *gCommonCancel; - sUnknown_203B2B0->unk34[loopMax].menuAction = 1; + sLuminousCaveWork->unk34[loopMax].text = gCommonCancel[0]; + sLuminousCaveWork->unk34[loopMax].menuAction = 1; loopMax += 1; - sUnknown_203B2B0->unk34[loopMax].text = NULL; - sUnknown_203B2B0->unk34[loopMax].menuAction = 1; + sLuminousCaveWork->unk34[loopMax].text = NULL; + sLuminousCaveWork->unk34[loopMax].menuAction = 1; for (index = 0; index < loopMax; index++) { - if (sUnknown_203B2B0->unk74[index] == 0) { - if (sUnknown_203B2B0->unk34[index].menuAction == sUnknown_203B2B0->menuAction2) + if (sLuminousCaveWork->unk74[index] == 0) { + if (sLuminousCaveWork->unk34[index].menuAction == sLuminousCaveWork->menuAction2) return; } } - sUnknown_203B2B0->menuAction2 = 4; + sLuminousCaveWork->menuAction2 = 4; } static void sub_8024DBC(void) @@ -438,29 +429,29 @@ static void sub_8024DBC(void) s32 loopMax; loopMax = 0; - MemoryFill16(sUnknown_203B2B0->unk74, 0, sizeof(sUnknown_203B2B0->unk74)); - sUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA24; - sUnknown_203B2B0->unk34[loopMax].menuAction = 4; + MemoryFill16(sLuminousCaveWork->unk74, 0, sizeof(sLuminousCaveWork->unk74)); + sLuminousCaveWork->unk34[loopMax].text = sNo0; + sLuminousCaveWork->unk34[loopMax].menuAction = 4; loopMax += 1; - sUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA2C; - sUnknown_203B2B0->unk34[loopMax].menuAction = 5; + sLuminousCaveWork->unk34[loopMax].text = sYes0; + sLuminousCaveWork->unk34[loopMax].menuAction = 5; loopMax += 1; - sUnknown_203B2B0->unk34[loopMax].text = *gCommonCancel; - sUnknown_203B2B0->unk34[loopMax].menuAction = 1; + sLuminousCaveWork->unk34[loopMax].text = gCommonCancel[0]; + sLuminousCaveWork->unk34[loopMax].menuAction = 1; loopMax += 1; - sUnknown_203B2B0->unk34[loopMax].text = NULL; - sUnknown_203B2B0->unk34[loopMax].menuAction = 1; + sLuminousCaveWork->unk34[loopMax].text = NULL; + sLuminousCaveWork->unk34[loopMax].menuAction = 1; for(index = 0; index < loopMax; index++) { - if(sUnknown_203B2B0->unk74[index] == 0) + if(sLuminousCaveWork->unk74[index] == 0) { - if(sUnknown_203B2B0->unk34[index].menuAction == sUnknown_203B2B0->menuAction2) + if(sLuminousCaveWork->unk34[index].menuAction == sLuminousCaveWork->menuAction2) return; } } - sUnknown_203B2B0->menuAction2 = 4; + sLuminousCaveWork->menuAction2 = 4; } static void sub_8024E30(void) @@ -469,26 +460,26 @@ static void sub_8024E30(void) s32 loopMax; loopMax = 0; - MemoryFill16(sUnknown_203B2B0->unk74, 0, sizeof(sUnknown_203B2B0->unk74)); - sUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA2C; - sUnknown_203B2B0->unk34[loopMax].menuAction = 5; + MemoryFill16(sLuminousCaveWork->unk74, 0, sizeof(sLuminousCaveWork->unk74)); + sLuminousCaveWork->unk34[loopMax].text = sYes0; + sLuminousCaveWork->unk34[loopMax].menuAction = 5; loopMax += 1; - sUnknown_203B2B0->unk34[loopMax].text = *gCommonInfo; - sUnknown_203B2B0->unk34[loopMax].menuAction = 2; + sLuminousCaveWork->unk34[loopMax].text = gCommonInfo[0]; + sLuminousCaveWork->unk34[loopMax].menuAction = 2; loopMax += 1; - sUnknown_203B2B0->unk34[loopMax].text = NULL; - sUnknown_203B2B0->unk34[loopMax].menuAction = 1; + sLuminousCaveWork->unk34[loopMax].text = NULL; + sLuminousCaveWork->unk34[loopMax].menuAction = 1; for(index = 0; index < loopMax; index++) { - if(sUnknown_203B2B0->unk74[index] == 0) + if(sLuminousCaveWork->unk74[index] == 0) { - if(sUnknown_203B2B0->unk34[index].menuAction == sUnknown_203B2B0->menuAction3) + if(sLuminousCaveWork->unk34[index].menuAction == sLuminousCaveWork->menuAction3) return; } } - sUnknown_203B2B0->menuAction3 = 5; + sLuminousCaveWork->menuAction3 = 5; } static void sub_8024E9C(void) @@ -496,7 +487,7 @@ static void sub_8024E9C(void) s32 menuAction; if(sub_80144A4(&menuAction) == 0) { - if(menuAction != 1) sUnknown_203B2B0->menuAction1 = menuAction; + if(menuAction != 1) sLuminousCaveWork->menuAction1 = menuAction; switch(menuAction) { case 3: @@ -520,12 +511,12 @@ static void sub_8024F00(void) s32 menuAction; if(sub_80144A4(&menuAction) == 0) { - if(menuAction != 1) sUnknown_203B2B0->menuAction2 = menuAction; + if(menuAction != 1) sLuminousCaveWork->menuAction2 = menuAction; switch(menuAction) { case 4: - sUnknown_203B2B0->evoItem1_InvIndex = INVENTORY_SIZE; - sUnknown_203B2B0->evoItem2_InvIndex = INVENTORY_SIZE; + sLuminousCaveWork->evoItem1_InvIndex = INVENTORY_SIZE; + sLuminousCaveWork->evoItem2_InvIndex = INVENTORY_SIZE; UpdateLuminousCaveState(LUMINOUS_CAVE_LET_US_BEGIN); break; case 5: @@ -546,7 +537,7 @@ static void sub_8024F70(void) s32 menuAction; if(sub_80144A4(&menuAction) == 0) { - if(menuAction != 1) sUnknown_203B2B0->menuAction2 = menuAction; + if(menuAction != 1) sLuminousCaveWork->menuAction2 = menuAction; switch(menuAction) { case 4: @@ -570,13 +561,13 @@ static void sub_8024FD4(void) switch(sub_801A6E8(TRUE)) { case 3: - sUnknown_203B2B0->evoItem1_InvIndex = sub_801A8AC(); - sUnknown_203B2B0->evoItem2_InvIndex = INVENTORY_SIZE; - sUnknown_203B2B0->chosenItem = gTeamInventoryRef->teamItems[sUnknown_203B2B0->evoItem1_InvIndex]; + sLuminousCaveWork->evoItem1_InvIndex = sub_801A8AC(); + sLuminousCaveWork->evoItem2_InvIndex = INVENTORY_SIZE; + sLuminousCaveWork->chosenItem = gTeamInventoryRef->teamItems[sLuminousCaveWork->evoItem1_InvIndex]; UpdateLuminousCaveState(8); break; case 4: - sUnknown_203B2B0->chosenItem = gTeamInventoryRef->teamItems[sub_801A8AC()]; + sLuminousCaveWork->chosenItem = gTeamInventoryRef->teamItems[sub_801A8AC()]; sub_8099690(0); UpdateLuminousCaveState(9); break; @@ -592,17 +583,17 @@ static void sub_8025058(void) switch(sub_801A6E8(TRUE)) { case 3: - if(sUnknown_203B2B0->evoItem1_InvIndex != sub_801A8AC()) + if(sLuminousCaveWork->evoItem1_InvIndex != sub_801A8AC()) { - sUnknown_203B2B0->evoItem2_InvIndex = sub_801A8AC(); - sUnknown_203B2B0->chosenItem = gTeamInventoryRef->teamItems[sUnknown_203B2B0->evoItem2_InvIndex]; + sLuminousCaveWork->evoItem2_InvIndex = sub_801A8AC(); + sLuminousCaveWork->chosenItem = gTeamInventoryRef->teamItems[sLuminousCaveWork->evoItem2_InvIndex]; UpdateLuminousCaveState(0xD); } else PlayMenuSoundEffect(2); break; case 4: - sUnknown_203B2B0->chosenItem = gTeamInventoryRef->teamItems[sub_801A8AC()]; + sLuminousCaveWork->chosenItem = gTeamInventoryRef->teamItems[sub_801A8AC()]; sub_8099690(0); UpdateLuminousCaveState(0xE); break; @@ -619,10 +610,10 @@ static void sub_80250EC(void) menuAction = 0; sub_801A6E8(FALSE); - if(!sub_8012FD8(&sUnknown_203B2B0->unk84)) + if(!sub_8012FD8(&sLuminousCaveWork->unk84)) { - sub_8013114(&sUnknown_203B2B0->unk84, &menuAction); - if(menuAction != 1) sUnknown_203B2B0->menuAction3 = menuAction; + sub_8013114(&sLuminousCaveWork->unk84, &menuAction); + if(menuAction != 1) sLuminousCaveWork->menuAction3 = menuAction; } switch(menuAction) { @@ -646,10 +637,10 @@ static void sub_802515C(void) menuAction = 0; sub_801A6E8(FALSE); - if(!sub_8012FD8(&sUnknown_203B2B0->unk84)) + if(!sub_8012FD8(&sLuminousCaveWork->unk84)) { - sub_8013114(&sUnknown_203B2B0->unk84, &menuAction); - if(menuAction != 1) sUnknown_203B2B0->menuAction3 = menuAction; + sub_8013114(&sLuminousCaveWork->unk84, &menuAction); + if(menuAction != 1) sLuminousCaveWork->menuAction3 = menuAction; } switch(menuAction) { @@ -703,7 +694,7 @@ static void sub_8025204(void) { case 3: sub_80160D8(); - sUnknown_203B2B0->pokeRenamed = IsPokemonRenamed(sUnknown_203B2B0->pokeStruct); + sLuminousCaveWork->pokeRenamed = IsPokemonRenamed(sLuminousCaveWork->pokeStruct); UpdateLuminousCaveState(LUMINOUS_CAVE_SHALL_RETURN); break; default: @@ -716,27 +707,27 @@ static void LuminousCave_AdvancetoFallbackState(void) s32 temp; if(sub_80144A4(&temp) == 0) { - UpdateLuminousCaveState(sUnknown_203B2B0->fallbackState); + UpdateLuminousCaveState(sLuminousCaveWork->fallbackState); } } static void sub_8025254(void) { - if(sUnknown_203B2B0->evoItem1_InvIndex == INVENTORY_SIZE) - sUnknown_203B2B0->evolveStatus.evoItem1 = 0; + if(sLuminousCaveWork->evoItem1_InvIndex == INVENTORY_SIZE) + sLuminousCaveWork->evolveStatus.evoItem1 = 0; else { - sUnknown_203B2B0->evolveStatus.evoItem1 = gTeamInventoryRef->teamItems[sUnknown_203B2B0->evoItem1_InvIndex].id; + sLuminousCaveWork->evolveStatus.evoItem1 = gTeamInventoryRef->teamItems[sLuminousCaveWork->evoItem1_InvIndex].id; } - if(sUnknown_203B2B0->evoItem2_InvIndex == INVENTORY_SIZE) - sUnknown_203B2B0->evolveStatus.evoItem2 = 0; + if(sLuminousCaveWork->evoItem2_InvIndex == INVENTORY_SIZE) + sLuminousCaveWork->evolveStatus.evoItem2 = 0; else { - sUnknown_203B2B0->evolveStatus.evoItem2 = gTeamInventoryRef->teamItems[sUnknown_203B2B0->evoItem2_InvIndex].id; + sLuminousCaveWork->evolveStatus.evoItem2 = gTeamInventoryRef->teamItems[sLuminousCaveWork->evoItem2_InvIndex].id; } - sUnknown_203B2B0->evolveStatus.unk6 = RandInt(0xFF); - sub_808F468(sUnknown_203B2B0->pokeStruct, &sUnknown_203B2B0->evolveStatus, 1); + sLuminousCaveWork->evolveStatus.unk6 = RandInt(0xFF); + sub_808F468(sLuminousCaveWork->pokeStruct, &sLuminousCaveWork->evolveStatus, 1); } static bool8 LuminousCave_HasOnly1Member(void) diff --git a/src/party_list_menu.c b/src/party_list_menu.c index ed9548bbd..911b6599d 100644 --- a/src/party_list_menu.c +++ b/src/party_list_menu.c @@ -63,7 +63,6 @@ bool8 CanTakePokemonHeldItem(PokemonStruct1 *r0); extern PokemonStruct1 *sub_808D3F8(void); extern PokemonStruct1 *sub_808D3BC(void); extern s32 sub_8008ED0(u8 *); -extern void nullsub_104(void); extern u32 sub_8022860(void); extern void sub_8022908(void); extern u32 sub_80244E4(void); From 7936c6dc4c4555d46ef12a7bfdd3efb660612ee6 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Fri, 15 Sep 2023 01:03:00 -0400 Subject: [PATCH 21/47] Document wurmple evolution rand value --- include/pokemon_3.h | 2 +- src/luminous_cave.c | 2 +- src/pokemon_3.c | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/include/pokemon_3.h b/include/pokemon_3.h index 17931c9b1..50a4d1e2a 100644 --- a/include/pokemon_3.h +++ b/include/pokemon_3.h @@ -8,7 +8,7 @@ typedef struct EvolveStatus { /* 0x0 */ u8 evoItem1; /* 0x1 */ u8 evoItem2; - /* 0x2 */ u8 unk6; + /* 0x2 */ u8 wurmpleVal; /* 0x4 */ u16 evolutionConditionStatus; /* 0x6 */ s16 targetEvolveSpecies; } EvolveStatus; diff --git a/src/luminous_cave.c b/src/luminous_cave.c index be978c125..56df9414b 100644 --- a/src/luminous_cave.c +++ b/src/luminous_cave.c @@ -726,7 +726,7 @@ static void sub_8025254(void) sLuminousCaveWork->evolveStatus.evoItem2 = gTeamInventoryRef->teamItems[sLuminousCaveWork->evoItem2_InvIndex].id; } - sLuminousCaveWork->evolveStatus.unk6 = RandInt(0xFF); + sLuminousCaveWork->evolveStatus.wurmpleVal = RandInt(0xFF); sub_808F468(sLuminousCaveWork->pokeStruct, &sLuminousCaveWork->evolveStatus, 1); } diff --git a/src/pokemon_3.c b/src/pokemon_3.c index 1a88445ce..21ce326d1 100644 --- a/src/pokemon_3.c +++ b/src/pokemon_3.c @@ -1048,12 +1048,12 @@ void sub_808F468(PokemonStruct1 *param_1, EvolveStatus *evolveStatus, u8 param_3 continue; } } - else if (evolveConditions.evolutionRequirements.additionalRequirement == 0xb) { - if ((evolveStatus->unk6 & 1) == 0) goto _0808F6CA; + else if (evolveConditions.evolutionRequirements.additionalRequirement == 11) { + if (!(evolveStatus->wurmpleVal & 1)) goto _0808F6CA; else continue; } - else if (evolveConditions.evolutionRequirements.additionalRequirement == 0xc) { - if ((evolveStatus->unk6 & 1)) goto _0808F6CA; + else if (evolveConditions.evolutionRequirements.additionalRequirement == 12) { + if ((evolveStatus->wurmpleVal & 1)) goto _0808F6CA; else continue; } else if (evolveConditions.evolutionRequirements.additionalRequirement == 10) { From 9fa7035ded729a9ee312bc9b0e70eb78c20498be Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Fri, 15 Sep 2023 01:28:50 -0400 Subject: [PATCH 22/47] Debug menu 1 data --- data/data_80E7D40.s | 40 +++++++++++++-------- include/debug_menu1.h | 12 ------- include/main_menu1.h | 2 +- src/code_803B050.c | 2 ++ src/data/debug_menu1.h | 41 ++++++++++++++++++++++ src/debug_menu1.c | 70 ++++++++++++------------------------- src/debug_menu2.c | 3 +- src/debug_menu3.c | 3 +- src/debug_menu4.c | 5 +-- src/friend_rescue.c | 8 ++--- src/load_screen.c | 14 ++++---- src/main_menu1.c | 2 +- src/main_menu2.c | 36 +++++++++---------- src/other_menus1.c | 6 ++-- src/rescue_password_menu.c | 20 +++++------ src/save_menu.c | 12 +++---- src/thank_you_wonder_mail.c | 4 +-- src/trade_items_menu.c | 2 +- src/unk_menu_203B360.c | 2 +- src/wonder_mail.c | 4 +-- src/wonder_mail_main_menu.c | 1 - 21 files changed, 155 insertions(+), 134 deletions(-) create mode 100644 src/data/debug_menu1.h diff --git a/data/data_80E7D40.s b/data/data_80E7D40.s index a25be2d84..ff413ec93 100644 --- a/data/data_80E7D40.s +++ b/data/data_80E7D40.s @@ -1,6 +1,9 @@ .section .rodata - .global gUnknown_80E7F3C +@ code_803B050 #1 + .align 2,0 + .string "pksdir0\0" + .global gUnknown_80E7F3C gUnknown_80E7F3C: @ 80E7F3C .byte 0x00, 0x00, 0x00, 0x00 .byte 0x03, 0x00, 0x00, 0x00 @@ -9,7 +12,7 @@ gUnknown_80E7F3C: @ 80E7F3C .byte 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 - .global gUnknown_80E7F54 + .global gUnknown_80E7F54 gUnknown_80E7F54: @ 80E7F54 .byte 0x00, 0x00, 0x00, 0x00 .byte 0x06, 0x00, 0x00, 0x00 @@ -18,19 +21,27 @@ gUnknown_80E7F54: @ 80E7F54 .byte 0x11, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 - .global gUnknown_80E7F6C + .global gUnknown_80E7F6C gUnknown_80E7F6C: @ 80E7F6C .string "Script\0" - .align 2,0 - .string "pksdir0\0" - .align 2,0 - .string "pksdir0\0" - .align 2,0 - .string "pksdir0\0" - .align 2,0 - .string "pksdir0\0" - .align 2,0 +@ code_803B050 #2 + .align 2,0 + .string "pksdir0\0" + +@ code_803B050 #3 + .align 2,0 + .string "pksdir0\0" + +@ code_803B050 #4 + .align 2,0 + .string "pksdir0\0" + +@ code_803B050 #5 + .align 2,0 + .string "pksdir0\0" + + .align 2,0 .global gUnknown_80E7F94 gUnknown_80E7F94: @ 80E7F94 .macro st_80E7F94 a, b, c, e, f, g, h, i, j, k, m, n @@ -75,7 +86,7 @@ sUnknown_80E8088: @ 80E8088 .string "SHOW TITLE00\0" .align 2, 0 -sUnknown_80E8098: @ 80E8098 +@ code_803B050 #6 (code_803C1D0) .string "pksdir0\0" .align 2, 0 @@ -1174,12 +1185,13 @@ gRewardText: @ 80E8B74 gUnknown_80E8B7C: @ 80E8B7C .string "Wonder Mail:\0" .align 2,0 + +@ code_803B050 #7 .string "pksdir0\0" .align 2,0 .global gUnknown_80E8B94 gUnknown_80E8B94: @ 80E8B94 -@ replacing .incbin "baserom.gba", 0x000e8b94, 0x38 .4byte UnkData_80E8BC8 .4byte UnkData_80E8BC4 .4byte UnkData_80E8BC0 diff --git a/include/debug_menu1.h b/include/debug_menu1.h index c570f1e30..cec60adc3 100644 --- a/include/debug_menu1.h +++ b/include/debug_menu1.h @@ -12,18 +12,6 @@ struct DebugMenu u32 fill1A0; }; -enum DebugMenuOptions -{ - MENU_DEBUG_MENU_DUNGEONS = 0, - MENU_DEBUG_MENU_FIELD, - MENU_DEBUG_MENU_FIELD_MAP, - MENU_DEBUG_MENU_FIELD_SCRIPT, - MENU_DEBUG_MENU_DEBUG_MENU, - MENU_DEBUG_MENU_UNKNOWN_1, - MENU_DEBUG_MENU_STORAGE, - MENU_DEBUG_MENU_H_OPEN = 9, -}; - void CreateDebugMenu(void); void DeleteDebugMenu(void); u32 UpdateDebugMenu(void); diff --git a/include/main_menu1.h b/include/main_menu1.h index c2d880ee6..419b88081 100644 --- a/include/main_menu1.h +++ b/include/main_menu1.h @@ -41,7 +41,7 @@ void CleanUpMenu(void); void DeleteMainMenu(void); MainMenu1Work *GetMainMenu(void); void InitMainMenu(void); -void SetMenuItems(MenuStruct *, UnkTextStruct2 *, s32 index, const UnkTextStruct2 *, const MenuItem *menuItems, bool8, u32 menuAction, u32 unused); +void SetMenuItems(MenuStruct *, UnkTextStruct2 *, s32 index, const UnkTextStruct2 *, const MenuItem *menuItems, bool8, u32 menuAction, bool8 unused); void SetUpMenu(void); s32 UpdateMenu(void); diff --git a/src/code_803B050.c b/src/code_803B050.c index bff021daa..674ab5348 100644 --- a/src/code_803B050.c +++ b/src/code_803B050.c @@ -15,6 +15,8 @@ #include "wonder_mail.h" #include "dungeon.h" +// This file was originally 7 files. Check data_80E7D40.s + extern s16 gUnknown_80E80E0[]; extern s16 gUnknown_80E8126[]; extern u8 gUnknown_80E888C[]; diff --git a/src/data/debug_menu1.h b/src/data/debug_menu1.h new file mode 100644 index 000000000..d02496e65 --- /dev/null +++ b/src/data/debug_menu1.h @@ -0,0 +1,41 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 sUnknown_80E7D40 = +{ + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; + +static const UnkTextStruct2 sUnknown_80E7D58 = +{ + 0, 0, 0, 0, + 3, + 2, 2, + 9, 11, + 11, 0, + NULL +}; + +static const MenuItem sDebugMenuItems[8] = +{ + {"Dungeons", MENU_DEBUG_MENU_DUNGEONS}, + {"Field", MENU_DEBUG_MENU_FIELD}, + {"Field Map", MENU_DEBUG_MENU_FIELD_MAP}, + {"Field Script", MENU_DEBUG_MENU_FIELD_SCRIPT}, + {"Debug Menu", MENU_DEBUG_MENU_DEBUG_MENU}, + {"Storage", MENU_DEBUG_MENU_STORAGE}, + {"h-open", MENU_DEBUG_MENU_H_OPEN}, + {NULL, 10}, +}; + +// TODO: These belong to files after, which have no data. More stripped-out debug menus..? They'd be between debug_menu1.c and debug_menu2.c +ALIGNED(4) static const u8 sFill1[] = _("pksdir0"); +ALIGNED(4) static const u8 sFill2[] = _("pksdir0"); +ALIGNED(4) static const u8 sFill3[] = _("pksdir0"); +ALIGNED(4) static const u8 sFill4[] = _("pksdir0"); +ALIGNED(4) static const u8 sFill5[] = _("pksdir0"); +ALIGNED(4) static const u8 sFill6[] = _("pksdir0"); \ No newline at end of file diff --git a/src/debug_menu1.c b/src/debug_menu1.c index d9912ba25..381ffbfcd 100644 --- a/src/debug_menu1.c +++ b/src/debug_menu1.c @@ -12,51 +12,27 @@ #include "text_util.h" #include "text1.h" -EWRAM_DATA_2 static struct DebugMenu *sDebugMenu = {0}; - -static const UnkTextStruct2 sUnknown_80E7D40 = +enum DebugMenuOptions { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - NULL + MENU_DEBUG_MENU_DUNGEONS, + MENU_DEBUG_MENU_FIELD, + MENU_DEBUG_MENU_FIELD_MAP, + MENU_DEBUG_MENU_FIELD_SCRIPT, + MENU_DEBUG_MENU_DEBUG_MENU, + MENU_DEBUG_MENU_UNKNOWN_1, + MENU_DEBUG_MENU_STORAGE, + // + MENU_DEBUG_MENU_H_OPEN = 9, }; -static const UnkTextStruct2 sUnknown_80E7D58 = -{ - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x02, 0x02, - 0x09, 0x0b, - 0x0b, 0x00, - NULL -}; +static EWRAM_DATA_2 struct DebugMenu *sDebugMenu = {0}; -static const MenuItem sDebugMenuItems[8] = -{ - {"Dungeons", MENU_DEBUG_MENU_DUNGEONS}, - {"Field", MENU_DEBUG_MENU_FIELD}, - {"Field Map", MENU_DEBUG_MENU_FIELD_MAP}, - {"Field Script", MENU_DEBUG_MENU_FIELD_SCRIPT}, - {"Debug Menu", MENU_DEBUG_MENU_DEBUG_MENU}, - {"Storage", MENU_DEBUG_MENU_STORAGE}, - {"h-open", MENU_DEBUG_MENU_H_OPEN}, - {NULL, 10}, -}; +#include "data/debug_menu1.h" -ALIGNED(4) static const u8 sDebugMenuFill1[] = "pksdir0"; -ALIGNED(4) static const u8 sDebugMenuFill2[] = "pksdir0"; -ALIGNED(4) static const u8 sDebugMenuFill3[] = "pksdir0"; -ALIGNED(4) static const u8 sDebugMenuFill4[] = "pksdir0"; -ALIGNED(4) static const u8 sDebugMenuFill5[] = "pksdir0"; -ALIGNED(4) static const u8 sDebugMenuFill6[] = "pksdir0"; -ALIGNED(4) static const u8 sDebugMenuFill7[] = "pksdir0"; +static void SetDebugMenuItems(void); -void SetDebugMenuItems(void); -void sub_803A3A0(void); -void sub_803A3BC(void); +static void sub_803A3A0(void); +static void sub_803A3BC(void); void CreateDebugMenu(void) { @@ -137,23 +113,23 @@ u32 UpdateDebugMenu(void) return nextMenu; } -void SetDebugMenuItems(void) +static void SetDebugMenuItems(void) { - SetMenuItems(sDebugMenu->unk0, sDebugMenu->unk140, 0, &sUnknown_80E7D58, sDebugMenuItems, TRUE, 13, 0); + SetMenuItems(sDebugMenu->unk0, sDebugMenu->unk140, 0, &sUnknown_80E7D58, sDebugMenuItems, TRUE, 13, FALSE); sub_8035CF4(sDebugMenu->unk0, 0, 1); } -void sub_803A3A0(void) +static void sub_803A3A0(void) { sub_8035CC0(sDebugMenu->unk140, 0); } -void sub_803A3BC(void) +static void sub_803A3BC(void) { s32 speciesIndex; - u8 sp_0x8 [88]; + u8 sp_0x8[88]; u16 r7 [4]; // r7 - u8 buffer [20]; // r6 + u8 buffer[20]; // r6 u32 sp_0x7C; s32 sp_0x80; @@ -176,7 +152,7 @@ void sub_803A3BC(void) r9 = 0; sp_0x7C = 0x1006; index++; - speciesIndex = index * 0x10000 >> 0x10; // dumb way to force s16 + speciesIndex = index * 0x10000 >> 0x10; // TODO: dumb way to force s16. Temp var may fix the regswap memset(r7, 0, 8); r7[0] = 0x27; CopyMonsterNametoBuffer(buffer, speciesIndex); @@ -188,4 +164,4 @@ void sub_803A3BC(void) sp_0x80 = r9; WriteSavetoPak(&sp_0x80, 1); -} +} \ No newline at end of file diff --git a/src/debug_menu2.c b/src/debug_menu2.c index 6ee5b0f77..f9b4cf0f9 100644 --- a/src/debug_menu2.c +++ b/src/debug_menu2.c @@ -11,6 +11,8 @@ static EWRAM_DATA_2 struct unkStruct_203B3F0 *sUnknown_203B3F0 = {0}; +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + static const UnkTextStruct2 sUnknown_80E7E34 = { 0x00, 0x00, 0x00, 0x00, @@ -40,7 +42,6 @@ static const UnkTextStruct2 sUnknown_80E7E64 = }; ALIGNED(4) static const u8 sNumberPrompt[] = "Number?"; -ALIGNED(4) static const u8 sFill[] = "pksdir0"; void sub_803A504(u32); void sub_803A51C(void); diff --git a/src/debug_menu3.c b/src/debug_menu3.c index 2570630de..cf504f19d 100644 --- a/src/debug_menu3.c +++ b/src/debug_menu3.c @@ -13,6 +13,8 @@ static EWRAM_DATA_2 unkStruct_203B3F4 *sUnknown_203B3F4 = {0}; +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + static const UnkTextStruct2 sUnknown_80E7E8C = { 0x00, 0x00, 0x00, 0x00, @@ -34,7 +36,6 @@ static const UnkTextStruct2 sUnknown_80E7EA4 = ALIGNED(4) static const u8 sClose[] = "CLOSE"; ALIGNED(4) static const u8 sOpen[] = "OPEN"; -ALIGNED(4) static const u8 sFill[] = "pksdir0"; void sub_803A924(u32); void sub_803A93C(void); diff --git a/src/debug_menu4.c b/src/debug_menu4.c index 3cb912a61..0fc2a1f5c 100644 --- a/src/debug_menu4.c +++ b/src/debug_menu4.c @@ -8,7 +8,9 @@ #include "text1.h" #include "text2.h" -EWRAM_DATA_2 static unkStruct_203B3F8 *sUnknown_203B3F8 = {0}; +static EWRAM_DATA_2 unkStruct_203B3F8 *sUnknown_203B3F8 = {0}; + +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); static const UnkTextStruct2 sUnknown_80E7ED4 = { @@ -40,7 +42,6 @@ static const UnkTextStruct2 sUnknown_80E7F04 = ALIGNED(4) static const u8 sNumberPrompt[] = "Number?"; ALIGNED(4) static const u8 sLevel[] = "LEVEL"; ALIGNED(4) static const u8 sName[] = "Name"; -static const u8 sFill[] = "pksdir0"; void sub_803ACD0(u32); void sub_803ACE8(void); diff --git a/src/friend_rescue.c b/src/friend_rescue.c index 73f21e415..030a91a2c 100644 --- a/src/friend_rescue.c +++ b/src/friend_rescue.c @@ -888,7 +888,7 @@ void sub_8032828(void) break; case 0x27: sub_8006518(gUnknown_203B33C->unk35C); - SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E2334, &gUnknown_80E234C, TRUE, 0, 0); + SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E2334, &gUnknown_80E234C, TRUE, 0, FALSE); sub_8023DA4(); sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1); break; @@ -1051,7 +1051,7 @@ void sub_8032828(void) break; case 0x5D: sub_8006518(gUnknown_203B33C->unk35C); - SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E231C, &gUnknown_80E2408, TRUE, 0, 0); + SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E231C, &gUnknown_80E2408, TRUE, 0, FALSE); sub_803092C(); sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1); break; @@ -1067,7 +1067,7 @@ void sub_8032828(void) break; case 0x60: sub_8006518(gUnknown_203B33C->unk35C); - SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E23F0, &gUnknown_80E2408, TRUE, 0, 0); + SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E23F0, &gUnknown_80E2408, TRUE, 0, FALSE); sub_801CCD8(); sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1); break; @@ -1230,7 +1230,7 @@ void sub_8032828(void) case 0x1E: case 0x33: sub_8006518(gUnknown_203B33C->unk35C); - SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E231C, &gUnknown_80E234C, TRUE, 0, 0); + SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E231C, &gUnknown_80E234C, TRUE, 0, FALSE); sub_803092C(); sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1); break; diff --git a/src/load_screen.c b/src/load_screen.c index 4a7700fe7..82bfb323d 100644 --- a/src/load_screen.c +++ b/src/load_screen.c @@ -165,25 +165,25 @@ void CreateLoadScreen(u32 currMenu) } ResetUnusedInputStruct(); sub_800641C(gLoadScreen->unk144, TRUE, TRUE); - SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,0,&gUnknown_80E7610,gUnknown_203B378,FALSE,6,0); + SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,0,&gUnknown_80E7610,gUnknown_203B378,FALSE,6,FALSE); switch(gLoadScreen->currMenu){ case MENU_CONTINUE: if (IsQuickSave()) - SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gResumeQuicksaveMenuItems,FALSE,6,0); + SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gResumeQuicksaveMenuItems,FALSE,6,FALSE); else - SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gResumeAdventureMenuItems,FALSE,6,0); + SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gResumeAdventureMenuItems,FALSE,6,FALSE); break; case MENU_AWAITING_RESCUE: - SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gQuitWaitingRescueMenuItems,FALSE,6,0); + SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gQuitWaitingRescueMenuItems,FALSE,6,FALSE); break; case MENU_DELETE_SAVE_PROMPT: - SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gDeleteSavePromptMenuItems,FALSE,6,0); + SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gDeleteSavePromptMenuItems,FALSE,6,FALSE); break; case MENU_DELETE_SAVE_CONFIRM: - SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C, gDeleteSaveConfirmMenuItems,FALSE,6,0); + SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C, gDeleteSaveConfirmMenuItems,FALSE,6,FALSE); break; } - SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,2,&gUnknown_80E7784,gLoadScreenYesNoMenu,TRUE,2,0); + SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,2,&gUnknown_80E7784,gLoadScreenYesNoMenu,TRUE,2,FALSE); sub_8035CF4(gLoadScreen->unk4,0,0); sub_8035CF4(gLoadScreen->unk4,1,0); sub_8035CF4(gLoadScreen->unk4,2,1); diff --git a/src/main_menu1.c b/src/main_menu1.c index fb1d3364e..0ced9b756 100644 --- a/src/main_menu1.c +++ b/src/main_menu1.c @@ -290,7 +290,7 @@ void sub_8035C1C(void) sMainMenu->sub.unk2D = 0; } -void SetMenuItems(MenuStruct *a0, UnkTextStruct2 *a1, s32 index, const UnkTextStruct2 *a3, const MenuItem *menuItems, bool8 a5, u32 menuAction, u32 unused) +void SetMenuItems(MenuStruct *a0, UnkTextStruct2 *a1, s32 index, const UnkTextStruct2 *a3, const MenuItem *menuItems, bool8 a5, u32 menuAction, bool8 unused) { a1[index] = *a3; ResetUnusedInputStruct(); diff --git a/src/main_menu2.c b/src/main_menu2.c index 1310418c3..578f9cc3e 100644 --- a/src/main_menu2.c +++ b/src/main_menu2.c @@ -152,50 +152,50 @@ static bool8 SetMainMenuText(void) switch (menuChoice) { case MENU_WIRELESS_COMMS: // Using wireless communications, you can go on an adventure to unknown worlds. - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E6030, FALSE, 0, 0); + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E6030, FALSE, 0, FALSE); break; case MENU_WONDER_MAIL: // Using passwords, you can receive Wonder Mail - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5F80, FALSE, 0, 0); + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5F80, FALSE, 0, FALSE); break; case MENU_AWAITING_RESCUE: // You are awaiting resuce by a friend // You can give up waiting for rescue - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5F1C, FALSE, 0, 0); + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5F1C, FALSE, 0, FALSE); break; case MENU_NEW_GAME: // Start an entirely new adventure - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5CCC, FALSE, 0, 0); + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5CCC, FALSE, 0, FALSE); break; case MENU_CONTINUE: // Resume your adventure from where you last saved - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5DA0, FALSE, 0, 0); + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5DA0, FALSE, 0, FALSE); break; case MENU_DELETE_SAVE_PROMPT: // This will delete your saved game data. // Beware! This will delete it forever - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5DF0, FALSE, 0, 0); + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5DF0, FALSE, 0, FALSE); break; case MENU_ADVENTURE_LOG: // Check your career as an adventurer - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5D0C, FALSE, 0, 0); + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5D0C, FALSE, 0, FALSE); break; case MENU_FRIEND_RESCUE: // Using a Game Link cable or passwords, friends may rescue each other - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5E5C, FALSE, 0, 0); + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5E5C, FALSE, 0, FALSE); break; case MENU_TRADE_ITEMS: // Using a Game Link cable you can trade stored items with a friend - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5EBC, FALSE, 0, 0); + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5EBC, FALSE, 0, FALSE); break; case MENU_DUAL_SLOT: // Using Dual Slot function, you can receive teams from your friends - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5FCC, FALSE, 0, 0); + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5FCC, FALSE, 0, FALSE); break; case MENU_DEBUG: // This is the Debug Mode. // It won't be in the release version - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5D48, FALSE, 0, 0); + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5D48, FALSE, 0, FALSE); break; default: break; @@ -228,7 +228,7 @@ static void SetMainMenuItems(void) // Friend Rescue // Trade Items // Wonder Mail - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5A78, sUnknown_80E5C18, TRUE, sUnknown_203B350, 1); + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5A78, sUnknown_80E5C18, TRUE, sUnknown_203B350, TRUE); } else { // Revive Team @@ -236,7 +236,7 @@ static void SetMainMenuItems(void) // Adventure Log // Friend Rescue // Trade Items - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5BC4, sUnknown_80E5BDC, TRUE, sUnknown_203B350, 1); + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5BC4, sUnknown_80E5BDC, TRUE, sUnknown_203B350, TRUE); } } else { @@ -247,7 +247,7 @@ static void SetMainMenuItems(void) // Friend Rescue // Trade Items // Wonder Mail - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5A78, sUnknown_80E5AFC, TRUE, sUnknown_203B350, 1); + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5A78, sUnknown_80E5AFC, TRUE, sUnknown_203B350, TRUE); } else { // Continue @@ -255,7 +255,7 @@ static void SetMainMenuItems(void) // Adventure Log // Friend Rescue // Trade Items - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5A60, sUnknown_80E5A90, TRUE, sUnknown_203B350, 1); + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5A60, sUnknown_80E5A90, TRUE, sUnknown_203B350, TRUE); } } } @@ -267,7 +267,7 @@ static void SetMainMenuItems(void) // Friend Rescue // Trade Items // Wonder Mail - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5A78, sUnknown_80E5B8C, TRUE, sUnknown_203B350, 1); + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5A78, sUnknown_80E5B8C, TRUE, sUnknown_203B350, TRUE); } else { // Awaiting Rescue @@ -275,14 +275,14 @@ static void SetMainMenuItems(void) // Adventure Log // Friend Rescue // Trade Items - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5B34, sUnknown_80E5B4C, TRUE, sUnknown_203B350, 1); + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5B34, sUnknown_80E5B4C, TRUE, sUnknown_203B350, TRUE); } } } else { // New Game // Adventure Log - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E59E0, sUnknown_80E59F8, TRUE, sUnknown_203B350, 1); + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E59E0, sUnknown_80E59F8, TRUE, sUnknown_203B350, TRUE); } } diff --git a/src/other_menus1.c b/src/other_menus1.c index effa69d92..1ef435a18 100644 --- a/src/other_menus1.c +++ b/src/other_menus1.c @@ -64,7 +64,7 @@ void sub_8036FDC(s32 param_1) ResetUnusedInputStruct(); sub_800641C(sUnknown_203B35C->unk15C, TRUE, TRUE); - SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, &sUnknown_80E6CD0, sUnknown_80E6CE8, FALSE, 6, 0); + SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, &sUnknown_80E6CD0, sUnknown_80E6CE8, FALSE, 6, FALSE); sub_8035CF4(sUnknown_203B35C->unk1C, 0, TRUE); sub_80376CC(); } @@ -138,7 +138,7 @@ static void sub_80371B8(void) // Success! // The item exchange with your friend // went through successfully - SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, &sUnknown_80E6C50, sUnknown_80E6C68, FALSE, 6, 0); + SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, &sUnknown_80E6C50, sUnknown_80E6C68, FALSE, 6, FALSE); sub_8035CF4(sUnknown_203B35C->unk1C, 0, TRUE); } } @@ -200,7 +200,7 @@ static void sub_80371B8(void) break; } - SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, puVar5, MenuItems, FALSE, 6, 0); + SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, puVar5, MenuItems, FALSE, 6, FALSE); sub_8035CF4(sUnknown_203B35C->unk1C, 0, TRUE); if (sUnknown_203B35C->linkStatus != COMMS_GOOD && sUnknown_203B35C->unk0 == 0) { diff --git a/src/rescue_password_menu.c b/src/rescue_password_menu.c index 4df3ce39f..8f9828e06 100644 --- a/src/rescue_password_menu.c +++ b/src/rescue_password_menu.c @@ -555,31 +555,31 @@ void DisplayRescuePasswordError(u32 passwordError) sub_80155F0(); switch(passwordError) { case PASSWORD_ENTRY_INCORRECT_PASSWORD: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E71FC,gUnknown_80E7214,FALSE,0xd,0); + SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E71FC,gUnknown_80E7214,FALSE,13,FALSE); break; case PASSWORD_ENTRY_NOT_SOS_MAIL: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E72EC,gUnknown_80E7304,FALSE,0xd,0); + SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E72EC,gUnknown_80E7304,FALSE,13,FALSE); break; case PASSWORD_ENTRY_DUPLICATE_SOS_MAIL: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7344,gUnknown_80E735C,FALSE,0xd,0); + SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7344,gUnknown_80E735C,FALSE,13,FALSE); break; case PASSWORD_ENTRY_NO_SPACE: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7588,gUnknown_80E75A0,FALSE,0xd,0); + SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7588,gUnknown_80E75A0,FALSE,13,FALSE); break; case PASSWORD_ENTRY_NOT_AOK_MAIL: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E73AC,gUnknown_80E73C4,FALSE,0xd,0); + SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E73AC,gUnknown_80E73C4,FALSE,13,FALSE); break; case PASSWORD_ENTRY_DUPLICATE_AOK_MAIL: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7408,gUnknown_80E7420,FALSE,0xd,0); + SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7408,gUnknown_80E7420,FALSE,13,FALSE); break; case PASSWORD_ENTRY_NOT_THANK_YOU_MAIL: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7468,gUnknown_80E7480,FALSE,0xd,0); + SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7468,gUnknown_80E7480,FALSE,13,FALSE); break; case PASSWORD_ENTRY_DUPLICATE_THANK_YOU_MAIL: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E74C8,gUnknown_80E74E0,FALSE,0xd,0); + SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E74C8,gUnknown_80E74E0,FALSE,13,FALSE); break; case PASSWORD_ENTRY_NOT_WONDER_MAIL: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E752C,gUnknown_80E7544,FALSE,0xd,0); + SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E752C,gUnknown_80E7544,FALSE,13,FALSE); break; default: break; @@ -593,7 +593,7 @@ void DisplayPasswordAcceptScreen(void) ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); sub_80155F0(); - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7278,gUnknown_80E7290,FALSE,0xd,0); + SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7278,gUnknown_80E7290,FALSE,13,FALSE); sub_8035CF4(gRescuePasswordMenu->unk8,0,TRUE); } diff --git a/src/save_menu.c b/src/save_menu.c index f4dd5f840..eec52d552 100644 --- a/src/save_menu.c +++ b/src/save_menu.c @@ -138,12 +138,12 @@ void CreateSaveMenu(s32 currMenu) if (currMenu == MENU_DELETE_SAVE) { // Beware, Deleting your Adventure SetMenuItems(sUnknown_203B364->unk8,sUnknown_203B364->unk148,0,&gUnknown_80E6F38,gDeletingYourAdventureMenuItems, - FALSE,6,0); + FALSE,6,FALSE); } else { // Saving your Adventure SetMenuItems(sUnknown_203B364->unk8,sUnknown_203B364->unk148,0,&gUnknown_80E6F38,gSavingAdventureMenuItems, - FALSE,6,0); + FALSE,6,FALSE); } sub_8035CF4(sUnknown_203B364->unk8,0,TRUE); sUnknown_203B364->unk4 = 0; @@ -190,11 +190,11 @@ s32 UpdateSaveMenu(void) sub_8035CC0(sUnknown_203B364->unk148,0); if (sUnknown_203B364->currMenu == MENU_DELETE_SAVE) { SetMenuItems(sUnknown_203B364->unk8,sUnknown_203B364->unk148,0,&gUnknown_80E6F38, - gDeletedSaveMenuItems,FALSE,6,0); + gDeletedSaveMenuItems,FALSE,6,FALSE); } else { SetMenuItems(sUnknown_203B364->unk8,sUnknown_203B364->unk148,0,&gUnknown_80E6F38, - gAdventureSavedMenuItems,FALSE,6,0); + gAdventureSavedMenuItems,FALSE,6,FALSE); } if (sUnknown_203B364->currMenu == 0x2d) { sUnknown_203B364->unk4 = 1; @@ -211,11 +211,11 @@ s32 UpdateSaveMenu(void) sub_8035CC0(sUnknown_203B364->unk148,0); if (sUnknown_203B364->currMenu == MENU_DELETE_SAVE) { SetMenuItems(sUnknown_203B364->unk8,sUnknown_203B364->unk148,0,&gUnknown_80E6F38, - gAdventureCouldNotBeDeletedMenuItems,FALSE,6,0); + gAdventureCouldNotBeDeletedMenuItems,FALSE,6,FALSE); } else { SetMenuItems(sUnknown_203B364->unk8,sUnknown_203B364->unk148,0,&gUnknown_80E6F38, - gAdventureCouldNotBeSavedMenuItems,FALSE,6,0); + gAdventureCouldNotBeSavedMenuItems,FALSE,6,FALSE); } sub_8035CF4(sUnknown_203B364->unk8,0,TRUE); sUnknown_203B364->unk4 = 1; diff --git a/src/thank_you_wonder_mail.c b/src/thank_you_wonder_mail.c index fcc7074f6..cab430129 100644 --- a/src/thank_you_wonder_mail.c +++ b/src/thank_you_wonder_mail.c @@ -1278,7 +1278,7 @@ void UpdateThankYouMailText(void) break; case 0x11: sub_8006518(gUnknown_203B2C4->unk35C); - SetMenuItems(gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED60,gUnknown_80DED78,TRUE,0,0); + SetMenuItems(gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED60,gUnknown_80DED78,TRUE,0,FALSE); sub_803092C(); sub_8035CF4(gUnknown_203B2C4->unk21C,3,TRUE); break; @@ -1294,7 +1294,7 @@ void UpdateThankYouMailText(void) break; case 0x14: sub_8006518(gUnknown_203B2C4->unk35C); - SetMenuItems(gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED48,gUnknown_80DED78,TRUE,0,0); + SetMenuItems(gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED48,gUnknown_80DED78,TRUE,0,FALSE); sub_801CCD8(); sub_8035CF4(gUnknown_203B2C4->unk21C,3,TRUE); break; diff --git a/src/trade_items_menu.c b/src/trade_items_menu.c index df15f7b20..2965ac563 100644 --- a/src/trade_items_menu.c +++ b/src/trade_items_menu.c @@ -520,7 +520,7 @@ void sub_8036B28(void) case TRADE_ITEMS_SEND_ITEM_POPUP_MENU: sub_8006518(sTradeItemsMenu->unk184); SetMenuItems(sTradeItemsMenu->unk44,sTradeItemsMenu->unk184,3,&sUnknown_80E60EC, - sUnknown_80E6104,TRUE,0,0); + sUnknown_80E6104,TRUE,0,FALSE); sub_801CCD8(); sub_8035CF4(sTradeItemsMenu->unk44,3,TRUE); break; diff --git a/src/unk_menu_203B360.c b/src/unk_menu_203B360.c index 9f764c4bd..54c61c9e0 100644 --- a/src/unk_menu_203B360.c +++ b/src/unk_menu_203B360.c @@ -75,7 +75,7 @@ void sub_80382E4(s32 currMenu) // The storage space is empty! // Please check again. SetMenuItems(sUnknown_203B360->unk8,sUnknown_203B360->unk148,0,&gUnknown_80E6E94,gUnknown_80E6EAC, - FALSE,4,0); + FALSE,4,FALSE); } sub_8035CF4(sUnknown_203B360->unk8,0,TRUE); sUnknown_203B360->currMenu = currMenu; diff --git a/src/wonder_mail.c b/src/wonder_mail.c index c26efa85b..caa729a6d 100644 --- a/src/wonder_mail.c +++ b/src/wonder_mail.c @@ -542,7 +542,7 @@ void sub_8028348(void) break; case 0x34: sub_8006518(gUnknown_203B2C0->unk35C); - SetMenuItems(gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, &gUnknown_80DDAE4, gUnknown_80DDAFC, TRUE, 0, 0); + SetMenuItems(gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, &gUnknown_80DDAE4, gUnknown_80DDAFC, TRUE, 0, FALSE); sub_8023DA4(); sub_8035CF4(gUnknown_203B2C0->unk21C, 3, TRUE); break; @@ -697,7 +697,7 @@ void sub_8028348(void) case 0x20: case 0x2B: sub_8006518(gUnknown_203B2C0->unk35C); - SetMenuItems(gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, &gUnknown_80DDACC, gUnknown_80DDAFC, TRUE, 0, 0); + SetMenuItems(gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, &gUnknown_80DDACC, gUnknown_80DDAFC, TRUE, 0, FALSE); sub_803092C(); sub_8035CF4(gUnknown_203B2C0->unk21C, 3, TRUE); break; diff --git a/src/wonder_mail_main_menu.c b/src/wonder_mail_main_menu.c index a032b6c2e..3fbbdf35f 100644 --- a/src/wonder_mail_main_menu.c +++ b/src/wonder_mail_main_menu.c @@ -82,7 +82,6 @@ ALIGNED(4) const char Cancel_80E7D24[] = "Cancel"; ALIGNED(4) const char Yes_80E7D2C[] = "Yes"; ALIGNED(4) const char wonder_mail_main_fill1[] = "pksdir0"; -ALIGNED(4) const char wonder_mail_main_fill2[] = "pksdir0"; struct unkStruct_203B3E8 { From 9c105309ee65722b3c175196ec94c4bf65e588a3 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Fri, 15 Sep 2023 01:41:06 -0400 Subject: [PATCH 23/47] Data for debug_menu2/3/4 --- include/debug_menu2.h | 4 +- src/data/debug_menu1.h | 1 - src/data/debug_menu2.h | 31 +++++++++++++++ src/data/debug_menu3.h | 23 +++++++++++ src/data/debug_menu4.h | 33 ++++++++++++++++ src/debug_menu2.c | 87 +++++++++++++----------------------------- src/debug_menu3.c | 76 ++++++++++++------------------------ src/debug_menu4.c | 71 ++++++++++------------------------ 8 files changed, 161 insertions(+), 165 deletions(-) create mode 100644 src/data/debug_menu2.h create mode 100644 src/data/debug_menu3.h create mode 100644 src/data/debug_menu4.h diff --git a/include/debug_menu2.h b/include/debug_menu2.h index f630ef2d5..b941db0d8 100644 --- a/include/debug_menu2.h +++ b/include/debug_menu2.h @@ -5,7 +5,7 @@ #include "text.h" // size: 0x138 -struct unkStruct_203B3F0 +typedef struct unkStruct_203B3F0 { /* 0x0 */ u32 state; /* 0x4 */ u8 id; @@ -15,6 +15,6 @@ struct unkStruct_203B3F0 unkStructFor8013AA0 unk9C; u8 fillCC[0xD8 - 0xCC]; UnkTextStruct2 unkD8[4]; -}; +} unkStruct_203B3F0; #endif // GUARD_DEBUG_MENU2_H \ No newline at end of file diff --git a/src/data/debug_menu1.h b/src/data/debug_menu1.h index d02496e65..0a353c684 100644 --- a/src/data/debug_menu1.h +++ b/src/data/debug_menu1.h @@ -9,7 +9,6 @@ static const UnkTextStruct2 sUnknown_80E7D40 = 0, 0, NULL }; - static const UnkTextStruct2 sUnknown_80E7D58 = { 0, 0, 0, 0, diff --git a/src/data/debug_menu2.h b/src/data/debug_menu2.h new file mode 100644 index 000000000..99eb11fcd --- /dev/null +++ b/src/data/debug_menu2.h @@ -0,0 +1,31 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 sUnknown_80E7E34 = +{ + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; +static const UnkTextStruct2 sUnknown_80E7E4C = +{ + 0, 0, 0, 0, + 3, + 20, 4, + 6, 3, + 3, 0, + NULL +}; +static const UnkTextStruct2 sUnknown_80E7E64 = +{ + 0, 0, 0, 0, + 3, + 20, 14, + 6, 4, + 4, 0, + NULL +}; + +ALIGNED(4) static const u8 sNumberPrompt[] = _("Number?"); \ No newline at end of file diff --git a/src/data/debug_menu3.h b/src/data/debug_menu3.h new file mode 100644 index 000000000..fbe3b94dc --- /dev/null +++ b/src/data/debug_menu3.h @@ -0,0 +1,23 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 sUnknown_80E7E8C = +{ + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; +static const UnkTextStruct2 sUnknown_80E7EA4 = +{ + 0, 0, 0, 0, + 3, + 21, 4, + 6, 3, + 3, 0, + NULL +}; + +ALIGNED(4) static const u8 sClose[] = _("CLOSE"); +ALIGNED(4) static const u8 sOpen[] = _("OPEN"); \ No newline at end of file diff --git a/src/data/debug_menu4.h b/src/data/debug_menu4.h new file mode 100644 index 000000000..f9de94427 --- /dev/null +++ b/src/data/debug_menu4.h @@ -0,0 +1,33 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 sUnknown_80E7ED4 = +{ + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; +static const UnkTextStruct2 sUnknown_80E7EEC = +{ + 0, 0, 0, 0, + 3, + 19, 4, + 9, 3, + 3, 0, + NULL +}; +static const UnkTextStruct2 sUnknown_80E7F04 = +{ + 0, 0, 0, 0, + 3, + 19, 14, + 6, 4, + 4, 0, + NULL +}; + +ALIGNED(4) static const u8 sNumberPrompt[] = _("Number?"); +ALIGNED(4) static const u8 sLevel[] = _("LEVEL"); +ALIGNED(4) static const u8 sName[] = _("Name"); \ No newline at end of file diff --git a/src/debug_menu2.c b/src/debug_menu2.c index f9b4cf0f9..49e1f5ade 100644 --- a/src/debug_menu2.c +++ b/src/debug_menu2.c @@ -9,62 +9,30 @@ #include "text1.h" #include "text2.h" -static EWRAM_DATA_2 struct unkStruct_203B3F0 *sUnknown_203B3F0 = {0}; +static EWRAM_DATA_2 unkStruct_203B3F0 *sUnknown_203B3F0 = {0}; -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); +#include "data/debug_menu2.h" -static const UnkTextStruct2 sUnknown_80E7E34 = -{ - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - NULL -}; -static const UnkTextStruct2 sUnknown_80E7E4C = -{ - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x14, 0x04, - 0x06, 0x03, - 0x03, 0x00, - NULL -}; -static const UnkTextStruct2 sUnknown_80E7E64 = -{ - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x14, 0x0e, - 0x06, 0x04, - 0x04, 0x00, - NULL -}; +static void sub_803A504(u32 newState); +static void sub_803A51C(void); +static void sub_803A5A0(void); +static void sub_803A690(void); +static void sub_803A6F0(void); +static void sub_803A740(void); +static void sub_803A7B0(void); +static void sub_803A810(void); +static void sub_803A86C(void); -ALIGNED(4) static const u8 sNumberPrompt[] = "Number?"; - -void sub_803A504(u32); -void sub_803A51C(void); -void sub_803A5A0(void); -void sub_803A690(void); -void sub_803A6F0(void); -void sub_803A740(void); -void sub_803A7B0(void); -void sub_803A810(void); -void sub_803A86C(void); - -// Unused -u32 sub_803A45C(void) +UNUSED static bool8 sub_803A45C(void) { ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); - sUnknown_203B3F0 = MemoryAlloc(sizeof(struct unkStruct_203B3F0), 8); + sUnknown_203B3F0 = MemoryAlloc(sizeof(unkStruct_203B3F0), 8); sub_803A504(0); - return 1; + return TRUE; } -// Unused -u32 sub_803A48C(void) +UNUSED static u32 sub_803A48C(void) { switch (sUnknown_203B3F0->state) { case 0: @@ -86,8 +54,7 @@ u32 sub_803A48C(void) return 0; } -// Unused -void sub_803A4E8(void) +UNUSED static void sub_803A4E8(void) { if (sUnknown_203B3F0 != NULL) { MemoryFree(sUnknown_203B3F0); @@ -95,14 +62,14 @@ void sub_803A4E8(void) } } -void sub_803A504(u32 newState) +static void sub_803A504(u32 newState) { sUnknown_203B3F0->state = newState; sub_803A51C(); sub_803A5A0(); } -void sub_803A51C(void) +static void sub_803A51C(void) { s32 i; @@ -125,7 +92,7 @@ void sub_803A51C(void) sub_800641C(sUnknown_203B3F0->unkD8, TRUE, TRUE); } -void sub_803A5A0(void) +static void sub_803A5A0(void) { Item item; @@ -162,7 +129,7 @@ void sub_803A5A0(void) } } -void sub_803A690(void) +static void sub_803A690(void) { sub_8008C54(sUnknown_203B3F0->unk9C.unk14); sub_80073B8(sUnknown_203B3F0->unk9C.unk14); @@ -173,7 +140,7 @@ void sub_803A690(void) sub_8012EA4(&sUnknown_203B3F0->unk4C, 0); } -void sub_803A6F0(void) +static void sub_803A6F0(void) { s32 loopMax = 0; @@ -185,16 +152,16 @@ void sub_803A6F0(void) sUnknown_203B3F0->menuAction = 3; } - loopMax += 1; + loopMax++; sUnknown_203B3F0->menuItems[loopMax].text = *gCommonInfo; sUnknown_203B3F0->menuItems[loopMax].menuAction = 3; - loopMax += 1; + loopMax++; sUnknown_203B3F0->menuItems[loopMax].text = NULL; sUnknown_203B3F0->menuItems[loopMax].menuAction = 1; } -void sub_803A740(void) +static void sub_803A740(void) { switch (sub_801CA08(TRUE)) { case 0: @@ -215,7 +182,7 @@ void sub_803A740(void) } } -void sub_803A7B0(void) +static void sub_803A7B0(void) { s32 menuAction; @@ -239,7 +206,7 @@ void sub_803A7B0(void) } } -void sub_803A810(void) +static void sub_803A810(void) { sub_801CA08(FALSE); sub_8012FD8(&sUnknown_203B3F0->unk4C); @@ -257,7 +224,7 @@ void sub_803A810(void) } } -void sub_803A86C(void) +static void sub_803A86C(void) { switch (sub_801B410()) { case 1: diff --git a/src/debug_menu3.c b/src/debug_menu3.c index cf504f19d..dc170d5c9 100644 --- a/src/debug_menu3.c +++ b/src/debug_menu3.c @@ -13,51 +13,27 @@ static EWRAM_DATA_2 unkStruct_203B3F4 *sUnknown_203B3F4 = {0}; -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); +#include "data/debug_menu3.h" -static const UnkTextStruct2 sUnknown_80E7E8C = -{ - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - NULL -}; -static const UnkTextStruct2 sUnknown_80E7EA4 = -{ - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x15, 0x04, - 0x06, 0x03, - 0x03, 0x00, - NULL -}; +static void sub_803A924(u32 newState); +static void sub_803A93C(void); +static void sub_803A9AC(void); +static void sub_803AA34(void); +static void sub_803AAC4(void); +static void sub_803AB34(void); +static void sub_803ABAC(void); +static bool8 sub_803ABC8(void); -ALIGNED(4) static const u8 sClose[] = "CLOSE"; -ALIGNED(4) static const u8 sOpen[] = "OPEN"; - -void sub_803A924(u32); -void sub_803A93C(void); -void sub_803A9AC(void); -void sub_803AA34(void); -void sub_803AAC4(void); -void sub_803AB34(void); -void sub_803ABAC(void); -bool8 sub_803ABC8(void); - -// Unused -u32 sub_803A888(void) +UNUSED static bool8 sub_803A888(void) { ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); sUnknown_203B3F4 = MemoryAlloc(sizeof(unkStruct_203B3F4), 8); sub_803A924(0); - return 1; + return TRUE; } -// Unused -u32 sub_803A8B8(void) +UNUSED static u32 sub_803A8B8(void) { switch (sUnknown_203B3F4->state) { case 0: @@ -76,8 +52,7 @@ u32 sub_803A8B8(void) return 0; } -// Unused -void sub_803A908(void) +UNUSED static void sub_803A908(void) { if (sUnknown_203B3F4 != NULL) { MemoryFree(sUnknown_203B3F4); @@ -85,14 +60,14 @@ void sub_803A908(void) } } -void sub_803A924(u32 newState) +static void sub_803A924(u32 newState) { sUnknown_203B3F4->state = newState; sub_803A93C(); sub_803A9AC(); } -void sub_803A93C(void) +static void sub_803A93C(void) { s32 i; @@ -109,7 +84,7 @@ void sub_803A93C(void) sub_800641C(sUnknown_203B3F4->unk9C, TRUE, TRUE); } -void sub_803A9AC(void) +static void sub_803A9AC(void) { switch (sUnknown_203B3F4->state) { case 0: @@ -131,17 +106,16 @@ void sub_803A9AC(void) } } -void sub_803AA34(void) +static void sub_803AA34(void) { s32 index; - u8 *FriendAreas; + u8 *friendAreas; index = 0; - // So dumb that it matches... - FriendAreas = gFriendAreas; + friendAreas = gFriendAreas; - if (FriendAreas[sUnknown_203B3F4->friendArea]) { + if (friendAreas[sUnknown_203B3F4->friendArea]) { sUnknown_203B3F4->menuItems[0].text = sClose; if (sub_803ABC8()) @@ -155,7 +129,7 @@ void sub_803AA34(void) } index++; - sUnknown_203B3F4->menuItems[index].text = *gCommonInfo; + sUnknown_203B3F4->menuItems[index].text = gCommonInfo[0]; sUnknown_203B3F4->menuItems[index].menuAction = 4; index++; @@ -165,7 +139,7 @@ void sub_803AA34(void) sUnknown_203B3F4->menuAction = sUnknown_203B3F4->menuItems[0].menuAction; } -void sub_803AAC4(void) +static void sub_803AAC4(void) { switch (sub_8021274(TRUE)) { case 0: @@ -186,7 +160,7 @@ void sub_803AAC4(void) } } -void sub_803AB34(void) +static void sub_803AB34(void) { s32 menuAction; @@ -215,7 +189,7 @@ void sub_803AB34(void) } } -void sub_803ABAC(void) +static void sub_803ABAC(void) { switch (sub_80217EC()) { case 2: @@ -229,7 +203,7 @@ void sub_803ABAC(void) } } -bool8 sub_803ABC8(void) +static bool8 sub_803ABC8(void) { PokemonStruct1 *mon; s32 i; diff --git a/src/debug_menu4.c b/src/debug_menu4.c index 0fc2a1f5c..7903afb95 100644 --- a/src/debug_menu4.c +++ b/src/debug_menu4.c @@ -10,48 +10,17 @@ static EWRAM_DATA_2 unkStruct_203B3F8 *sUnknown_203B3F8 = {0}; -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); +#include "data/debug_menu4.h" -static const UnkTextStruct2 sUnknown_80E7ED4 = -{ - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - NULL -}; -static const UnkTextStruct2 sUnknown_80E7EEC = -{ - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x13, 0x04, - 0x09, 0x03, - 0x03, 0x00, - NULL -}; -static const UnkTextStruct2 sUnknown_80E7F04 = -{ - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x13, 0x0e, - 0x06, 0x04, - 0x04, 0x00, - NULL -}; -ALIGNED(4) static const u8 sNumberPrompt[] = "Number?"; -ALIGNED(4) static const u8 sLevel[] = "LEVEL"; -ALIGNED(4) static const u8 sName[] = "Name"; - -void sub_803ACD0(u32); -void sub_803ACE8(void); -void sub_803AD88(void); -void sub_803AE58(void); -void sub_803AEB0(void); -void sub_803AF38(void); -void sub_803AF88(void); -void sub_803AFE8(void); -void sub_803B034(void); +static void sub_803ACD0(u32 newState); +static void sub_803ACE8(void); +static void sub_803AD88(void); +static void sub_803AE58(void); +static void sub_803AEB0(void); +static void sub_803AF38(void); +static void sub_803AF88(void); +static void sub_803AFE8(void); +static void sub_803B034(void); UNUSED static bool8 sub_803AC24(void) { @@ -95,14 +64,14 @@ UNUSED static void sub_803ACB4(void) } } -void sub_803ACD0(u32 newState) +static void sub_803ACD0(u32 newState) { sUnknown_203B3F8->state = newState; sub_803ACE8(); sub_803AD88(); } -void sub_803ACE8(void) +static void sub_803ACE8(void) { s32 i; @@ -127,7 +96,7 @@ void sub_803ACE8(void) sub_800641C(sUnknown_203B3F8->unkE0, TRUE, TRUE); } -void sub_803AD88(void) +static void sub_803AD88(void) { switch (sUnknown_203B3F8->state) { case 1: @@ -163,7 +132,7 @@ void sub_803AD88(void) } } -void sub_803AE58(void) +static void sub_803AE58(void) { sub_8008C54(sUnknown_203B3F8->unk60.unk14); sub_80073B8(sUnknown_203B3F8->unk60.unk14); @@ -174,7 +143,7 @@ void sub_803AE58(void) sub_8012EA4(&sUnknown_203B3F8->unk10, 0); } -void sub_803AEB0(void) +static void sub_803AEB0(void) { s32 i; s32 loopMax; @@ -201,7 +170,7 @@ void sub_803AEB0(void) } } -void sub_803AF38(void) +static void sub_803AF38(void) { switch (sub_8023A94(TRUE)) { case 3: @@ -219,7 +188,7 @@ void sub_803AF38(void) } } -void sub_803AF88(void) +static void sub_803AF88(void) { s32 menuAction; @@ -245,7 +214,7 @@ void sub_803AF88(void) } } -void sub_803AFE8(void) +static void sub_803AFE8(void) { sub_8023A94(FALSE); sub_8012FD8(&sUnknown_203B3F8->unk10); @@ -265,7 +234,7 @@ void sub_803AFE8(void) } } -void sub_803B034(void) +static void sub_803B034(void) { switch (sub_8016080()) { case 2: @@ -274,4 +243,4 @@ void sub_803B034(void) sub_803ACD0(2); break; } -} +} \ No newline at end of file From 322e13a6be2534be9b9038c443d67eecd7745c6d Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Mon, 18 Sep 2023 01:13:13 -0400 Subject: [PATCH 24/47] Properly split+data code_801C620/code_801D760 --- charmap.txt | 5 +- data/data_80DBD98.s | 208 ----- data/monster/monster_data.json | 8 +- include/code_80130A8.h | 1 + include/code_801BEEC.h | 29 + include/code_801C244.h | 35 + include/code_801C620.h | 34 +- include/code_801C8C4.h | 34 + include/code_801D014.h | 39 + include/code_801D9E4.h | 35 + include/code_801EE10_1.h | 2 + include/code_8021774.h | 8 - include/code_8021774_pre.h | 10 - include/code_8023144.h | 4 + include/code_8096AF8.h | 7 + include/code_8097DD0.h | 8 + include/constants/friend_area.h | 2 +- include/constants/iq_skill.h | 52 +- include/friend_area_action_menu.h | 70 +- include/ground_lives.h | 7 + include/ground_main.h | 1 + include/ground_map_1.h | 3 + include/options_menu.h | 8 + include/party_list_menu.h | 43 + include/pokemon.h | 1 + include/text2.h | 1 + include/wonder_mail_2_1.h | 21 +- ld_script.txt | 12 +- src/code_8012A18_1.c | 2 + src/code_801BEEC.c | 207 +++++ src/code_801C244.c | 246 ++++++ src/code_801C620.c | 1291 ++--------------------------- src/code_801C8C4.c | 341 ++++++++ src/code_801D014.c | 622 ++++++++++++++ src/code_801D760.c | 686 --------------- src/code_801D9E4.c | 188 +++++ src/code_801EE10_1.c | 2 +- src/code_8023144_pre.c | 1 - src/code_809447C.c | 41 +- src/code_80958E8_mid.c | 2 +- src/data/code_801BEEC.h | 20 + src/data/code_801C244.h | 23 + src/data/code_801C620.h | 4 + src/data/code_801C8C4.h | 20 + src/data/code_801D014.h | 66 ++ src/data/code_801D9E4.h | 20 + src/data/friend_area_settings.h | 2 +- src/debug_menu2.c | 2 +- src/debug_menu3.c | 3 +- src/friend_area_action_menu.c | 4 +- src/friend_list_menu.c | 6 +- src/friend_rescue.c | 7 +- src/ground_main.c | 2 +- src/gulpin_shop_801FB50.c | 5 +- src/hints_menu.c | 7 + src/items.c | 3 +- src/kangaskhan_storage1.c | 2 +- src/kangaskhan_storage2.c | 2 +- src/load_screen.c | 5 +- src/mailbox.c | 5 +- src/menu_input.c | 1 - src/moves.c | 4 +- src/options_menu.c | 25 +- src/party_list_menu.c | 58 +- src/pelipper_board.c | 5 +- src/pokemon_mid.c | 3 +- src/thank_you_wonder_mail.c | 5 +- src/trade_items_menu.c | 5 +- src/wigglytuff_shop.c | 1 - src/wonder_mail.c | 2 - src/wonder_mail_2_1.c | 1 - src/wonder_mail_3.c | 1 - src/wonder_mail_main_menu.c | 2 +- sym_ewram2.txt | 107 +-- 74 files changed, 2357 insertions(+), 2388 deletions(-) create mode 100644 include/code_801BEEC.h create mode 100644 include/code_801C244.h create mode 100644 include/code_801C8C4.h create mode 100644 include/code_801D014.h create mode 100644 include/code_801D9E4.h delete mode 100644 include/code_8021774.h delete mode 100644 include/code_8021774_pre.h create mode 100644 include/code_8096AF8.h create mode 100644 include/code_8097DD0.h create mode 100644 include/ground_lives.h create mode 100644 include/options_menu.h create mode 100644 include/party_list_menu.h create mode 100644 src/code_801BEEC.c create mode 100644 src/code_801C244.c create mode 100644 src/code_801C8C4.c create mode 100644 src/code_801D014.c delete mode 100644 src/code_801D760.c create mode 100644 src/code_801D9E4.c create mode 100644 src/data/code_801BEEC.h create mode 100644 src/data/code_801C244.h create mode 100644 src/data/code_801C620.h create mode 100644 src/data/code_801C8C4.h create mode 100644 src/data/code_801D014.h create mode 100644 src/data/code_801D9E4.h diff --git a/charmap.txt b/charmap.txt index 941a6c30d..1fce33a2b 100644 --- a/charmap.txt +++ b/charmap.txt @@ -240,10 +240,11 @@ 'ナ' = 83 69 POKE = 83 BF 83 C4 + +UNK_ICON_40 = 87 40 +STAR_BULLET = 87 42 TM = 87 4E ORB = 87 4F - -STAR_BULLET = 87 42 A_BUTTON = 87 50 B_BUTTON = 87 51 L_BUTTON = 87 74 diff --git a/data/data_80DBD98.s b/data/data_80DBD98.s index 2d93e98d4..cde0e8af0 100644 --- a/data/data_80DBD98.s +++ b/data/data_80DBD98.s @@ -1,213 +1,5 @@ .section .rodata -@ code_801C620 #1 - .align 2,0 -.string "pksdir0\0" - - .global gUnknown_80DBD98 -gUnknown_80DBD98: @ 80DBD98 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - - .global gUnknown_80DBDB0 -gUnknown_80DBDB0: @ 80DBDB0 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x14, 0x00, 0x04, 0x00 - .byte 0x06, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DBDC8 -gUnknown_80DBDC8: @ 80DBDC8 - .string "Switch\0" - -@ code_801C620 #2 - .align 2,0 -.string "pksdir0\0" - .align 2,0 - - .global gUnknown_80DBDD8 -gUnknown_80DBDD8: @ 80DBDD8 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DBDF0 -gUnknown_80DBDF0: @ 80DBDF0 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x06, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x00 - .byte 0x10, 0x00, 0x11, 0x00 - .byte 0x13, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DBE08 -gUnknown_80DBE08: @ 80DBE08 - .string "IQ Skills\0" - .align 2,0 - - .global gUnknown_80DBE14 -gUnknown_80DBE14: @ 80DBE14 - .byte 0x87, 0x42, 0x00, 0x00 - - .global gUnknown_80DBE18 -gUnknown_80DBE18: @ 80DBE18 - .byte 0x87, 0x40, 0x00, 0x00 - - .global gUnknown_80DBE1C -gUnknown_80DBE1C: @ 80DBE1C - .string "{ARG_MOVE_ITEM_0}{ARG_MOVE_ITEM_1}\0" - -@ code_801C620 #3 - .align 2,0 -.string "pksdir0\0" - .align 2,0 - - .global gUnknown_80DBE2C -gUnknown_80DBE2C: @ 80DBE2C - .string "{ARG_MOVE_ITEM_0}\0" - .align 2,0 - - .global gUnknown_80DBE30 -gUnknown_80DBE30: @ 80DBE30 - .string "{ARG_POKEMON_0}\0" - -@ code_801C620 #4 -.string "pksdir0\0" - .align 2,0 - - .global gUnknown_80DBE3C -gUnknown_80DBE3C: @ 80DBE3C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DBE54 -gUnknown_80DBE54: @ 80DBE54 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x06, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x00 - .byte 0x10, 0x00, 0x0E, 0x00 - .byte 0x10, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DBE6C -gUnknown_80DBE6C: @ 80DBE6C - -@ code_801C620 #5 - .string "Storage\0" -.string "pksdir0\0" - .align 2,0 - - .global gUnknown_80DBE7C -gUnknown_80DBE7C: @ 80DBE7C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global UnkData_80DBE94 - UnkData_80DBE94: - .byte 0x01, 0x00, 0x07, 0x00 - - .global gUnknown_80DBE98 -gUnknown_80DBE98: @ 80DBE98 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x06, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x00 - .byte 0x09, 0x00, 0x06, 0x00 - .byte 0x06, 0x00, 0x00, 0x00 - - .4byte UnkData_80DBE94 - - .global gUnknown_80DBEB0 -gUnknown_80DBEB0: @ 80DBEB0 - .byte 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x08, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 - .byte 0x0c, 0x00, 0x04, 0x00, 0x10, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0e, 0x00, 0x1a, 0x00, 0x04, 0x00 - .byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global gMenuItems -gMenuItems: @ 80DBF10 - .string "Items\0" - .align 2,0 - - .global gMenuTeam -gMenuTeam: @ 80DBF18 - .string "Team\0" - .align 2,0 - - .global gMenuJobList -gMenuJobList: @ 80DBF20 - .string "Job List\0" - .align 2,0 - - .global gMenuOthers -gMenuOthers: @ 80DBF2C - .string "Others\0" - .align 2,0 - - .global gUnknown_80DBF34 -gUnknown_80DBF34: @ 80DBF34 - .byte 0x81, 0x48 - .byte 0x81, 0x48 - .byte 0x81, 0x48 - .byte 0x00, 0x00 - - .global gUnknown_80DBF3C -gUnknown_80DBF3C: @ 80DBF3C - .string "%s {COLOR_1 CYAN}%d{END_COLOR_TEXT_1} Pts.\0" - .align 2,0 - - .global gUnknown_80DBF4C -gUnknown_80DBF4C: @ 80DBF4C - .string "Money: {COLOR_1 CYAN}%d{END_COLOR_TEXT_1} {POKE}" - .align 2,0 - - .global gTeamRankBadgeFileName -gTeamRankBadgeFileName: @ 80DBF60 - .string "tmrkpat\0" - -@ code_801D760 - .align 2,0 -.string "pksdir0\0" - .align 2,0 - - .global gUnknown_80DBF70 -gUnknown_80DBF70: @ 80DBF70 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DBF88 -gUnknown_80DBF88: @ 80DBF88 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x06, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x00 - .byte 0x18, 0x00, 0x11, 0x00 - .byte 0x11, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DBFA0 -gUnknown_80DBFA0: @ 80DBFA0 - .string "Field\0" - @ options_menu #1 .align 2,0 .string "pksdir0\0" diff --git a/data/monster/monster_data.json b/data/monster/monster_data.json index 8cd939540..4a2d00d22 100644 --- a/data/monster/monster_data.json +++ b/data/monster/monster_data.json @@ -8,7 +8,7 @@ "types": [ "TYPE_NORMAL" ], - "friendArea": "NONE", + "friendArea": "FRIEND_AREA_NONE", "abilities": [ "ABILITY_OVERGROW" ], @@ -19959,7 +19959,7 @@ "types": [ "TYPE_PSYCHIC" ], - "friendArea": "NONE", + "friendArea": "FRIEND_AREA_NONE", "abilities": [ "ABILITY_PRESSURE" ], @@ -20002,7 +20002,7 @@ "types": [ "TYPE_STEEL" ], - "friendArea": "NONE", + "friendArea": "FRIEND_AREA_NONE", "abilities": [ "ABILITY_PRESSURE" ], @@ -20045,7 +20045,7 @@ "types": [ "TYPE_WATER" ], - "friendArea": "NONE", + "friendArea": "FRIEND_AREA_NONE", "abilities": [ "ABILITY_DRIZZLE" ], diff --git a/include/code_80130A8.h b/include/code_80130A8.h index f9158894f..315ad5b27 100644 --- a/include/code_80130A8.h +++ b/include/code_80130A8.h @@ -15,5 +15,6 @@ extern void sub_8014248(const u8 *, u32, u32, const MenuItem *, void *, u32, u32 extern s32 sub_80144A4(s32 *); extern void xxx_draw_string_80144C4(void); extern void xxx_format_and_draw(u32, u32, const u8 *, u32, u32); +extern void xxx_format_string(const u8 *, u8 *, u8 *, u32); #endif // GUARD_CODE_80130A8_H \ No newline at end of file diff --git a/include/code_801BEEC.h b/include/code_801BEEC.h new file mode 100644 index 000000000..f3517efa7 --- /dev/null +++ b/include/code_801BEEC.h @@ -0,0 +1,29 @@ +#ifndef GUARD_CODE_801BEEC_H +#define GUARD_CODE_801BEEC_H + +#include "constants/iq_skill.h" +#include "menu.h" +#include "pokemon.h" +#include "text.h" + +// size: 0x124 +struct unkStruct_203B238 +{ + /* 0x0 */ u32 state; + /* 0x4 */ s16 species; + /* 0x8 */ PokemonStruct1 *pokeStruct; + /* 0xC */ u8 iqSkills[NUM_IQ_SKILLS]; + u32 unk24; + /* 0x28 */ u8 iqSkillIndex; + /* 0x2C */ u32 numIQSkills; + /* 0x30 */ s32 menuAction; + MenuItem unk34[8]; + MenuStruct unk74; + UnkTextStruct2 unkC4[4]; +}; + +bool8 sub_801BEEC(s16 species); +u32 sub_801BF48(void); +void sub_801BF98(void); + +#endif // GUARD_CODE_801BEEC_H \ No newline at end of file diff --git a/include/code_801C244.h b/include/code_801C244.h new file mode 100644 index 000000000..ee6efc886 --- /dev/null +++ b/include/code_801C244.h @@ -0,0 +1,35 @@ +#ifndef GUARD_CODE_801C244_H +#define GUARD_CODE_801C244_H + +#include "constants/iq_skill.h" +#include "menu.h" +#include "pokemon.h" +#include "text.h" + +// size: 0xC4 +struct unkStruct_203B23C +{ + /* 0x0 */ s16 species; + /* 0x4 */ PokemonStruct1 *pokeStruct; + /* 0x8 */ u8 iqSkills[NUM_IQ_SKILLS]; + /* 0x20 */ s32 numIQSkills; + /* 0x24 */ MenuInputStruct input; + u32 unk58; + UnkTextStruct2 *unk5C; + UnkTextStruct2 unk60[4]; + u8 unkC0; + u8 unkC1; + u8 unkC2; + u8 unkC3; +}; + +bool8 HasNoAvailIQSkills(s16 species); + +bool8 sub_801C244(s16 species, u32 index, u32); +u32 sub_801C308(bool8); +s32 sub_801C390(void); +void sub_801C3B0(bool8); +void sub_801C3F8(void); +void sub_801C4C8(void); + +#endif // GUARD_CODE_801C244_H \ No newline at end of file diff --git a/include/code_801C620.h b/include/code_801C620.h index 99060bddd..71eac44e9 100644 --- a/include/code_801C620.h +++ b/include/code_801C620.h @@ -1,21 +1,27 @@ #ifndef GUARD_CODE_801C620_H #define GUARD_CODE_801C620_H +#include "menu.h" +#include "subStruct_203B240.h" #include "text.h" -bool8 sub_801BEEC(s16 species); -u32 sub_801BF48(void); -void sub_801BF98(void); -bool8 sub_801C8C4(s32, s32, UnkTextStruct2_sub *, u32); -u32 sub_801CA08(bool8); -u8 sub_801CB24(void); -void sub_801CB5C(bool8); -void sub_801CBB8(void); -void sub_801CCD8(void); -bool8 sub_801CF14(s32); -bool8 sub_801CF50(s32); -void sub_801CF94(void); -s32 sub_801CFB8(void); -u32 sub_801CFE0(u8 index); +// size: 0x94 +struct unkStruct_203B240 +{ + /* 0x0 */ s32 state; + /* 0x4 */ u8 chosenIQSkill; + s32 unk8; + s32 unkC; + struct subStruct_203B240 *unk10[2]; + u8 fill14[0x20 - 0x18]; + u32 unk20; + u32 unk24; + UnkTextStruct2 unk28[4]; + MenuInputStructSub unk88; +}; + +bool8 sub_801C620(u8 iqSkill); +u32 sub_801C674(void); +void sub_801C6B4(void); #endif // GUARD_CODE_801C620_H \ No newline at end of file diff --git a/include/code_801C8C4.h b/include/code_801C8C4.h new file mode 100644 index 000000000..e0b67a5d4 --- /dev/null +++ b/include/code_801C8C4.h @@ -0,0 +1,34 @@ +#ifndef GUARD_CODE_801C8C4_H +#define GUARD_CODE_801C8C4_H + +#include "constants/item.h" +#include "menu.h" +#include "text.h" + +// size: 0x554 +struct unkStruct_203B244 +{ + u32 unk0; + /* 0x4 */ u8 itemIDs[NUMBER_OF_ITEM_IDS]; + u32 unkF4[NUMBER_OF_ITEM_IDS]; + /* 0x4B4 */ MenuInputStruct input; + u32 unk4E8; + UnkTextStruct2 *unk4EC; + UnkTextStruct2 unk4F0[4]; + u8 unk550[4]; +}; + +bool8 sub_801C8C4(s32, s32, UnkTextStruct2_sub *, u32); +u32 sub_801CA08(bool8); +u8 sub_801CB24(void); +void sub_801CB5C(bool8); +void sub_801CBB8(void); +void sub_801CCD8(void); +bool8 sub_801CF14(s32); +bool8 sub_801CF50(s32); +void sub_801CF94(void); +s32 sub_801CFB8(void); +u32 sub_801CFE0(u8 index); +struct unkStruct_203B244 *sub_801D008(void); + +#endif // GUARD_CODE_801C8C4_H \ No newline at end of file diff --git a/include/code_801D014.h b/include/code_801D014.h new file mode 100644 index 000000000..82f7189c6 --- /dev/null +++ b/include/code_801D014.h @@ -0,0 +1,39 @@ +#ifndef GUARD_CODE_801D014_H +#define GUARD_CODE_801D014_H + +#include "menu.h" +#include "pokemon.h" +#include "text.h" + +// size: 0x118 +struct unk_203B250 +{ + /* 0x0 */ PokemonStruct1 *pokeStruct; + /* 0x4 */ s16 index; + /* 0x6 */ u8 currFriendAreaLocation; // 0 when not in a friend area + u8 unk7; + u8 unk8; + u8 unk9; + PokemonStruct1 *unkC; + /* 0x10 */ u32 state; + /* 0x14 */ u32 menuAction; + MenuStruct unk18; + MenuItem unk68[8]; + u16 unkA8[8]; + UnkTextStruct2 unkB8[4]; +}; + +// size: 0x8 +struct TeamBadgeData +{ + /* 0x0 */ u8 *pics; // probably a pointer to an arrays of pixels? + /* 0x4 */ u8 *pallete; // Pics share common pallete +}; + +bool8 sub_801D014(PokemonStruct1 *); +u32 sub_801D0DC(void); +u32 sub_801D178(void); +u8 sub_801D1D4(void); +void sub_801D1E0(void); + +#endif // GUARD_CODE_801D014_H \ No newline at end of file diff --git a/include/code_801D9E4.h b/include/code_801D9E4.h new file mode 100644 index 000000000..5d2a87d9e --- /dev/null +++ b/include/code_801D9E4.h @@ -0,0 +1,35 @@ +#ifndef GUARD_CODE_801D9E4_H +#define GUARD_CODE_801D9E4_H + +#include "menu.h" +#include "text.h" + +// size: 0xA0 +struct unkStruct_203B258 +{ + /* 0x0 */ MenuInputStruct input; + u32 unk34; + UnkTextStruct2 *unk38; + UnkTextStruct2 unk3C[4]; + u8 unk9C[4]; +}; + +// size: 0x1C +struct unkStruct_81188F0 +{ + /* 0x0 */ u8 *text1; + /* 0x4 */ u8 *text2; + /* 0x8 */ u8 *text3; + /* 0xC */ u8 *text4; + /* 0x10 */ u32 unk1; + /* 0x14 */ u32 unk2; + /* 0x18 */ u32 unk3; +}; + +bool8 sub_801D9E4(void); +void sub_801DA58(s16); +u32 sub_801DA78(void); +s16 sub_801DAC0(void); +void sub_801DB0C(void); + +#endif // GUARD_CODE_801D9E4_H \ No newline at end of file diff --git a/include/code_801EE10_1.h b/include/code_801EE10_1.h index 3aee11c67..f900a0560 100644 --- a/include/code_801EE10_1.h +++ b/include/code_801EE10_1.h @@ -2,6 +2,7 @@ #define GUARD_CODE_801EE10_1_H bool8 sub_8024458(s16 speciesNum, s32); +u32 sub_80244E4(void); void sub_802453C(void); // code_801EE10_1.s @@ -11,5 +12,6 @@ extern s16 sub_8023B44(void); extern void sub_8023B7C(u32); extern void sub_8023C60(void); extern void sub_8023DA4(void); +extern bool8 sub_8024108(u32); #endif // GUARD_CODE_801EE10_1_H \ No newline at end of file diff --git a/include/code_8021774.h b/include/code_8021774.h deleted file mode 100644 index 8a123147d..000000000 --- a/include/code_8021774.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef GUARD_CODE_8021774_H -#define GUARD_CODE_8021774_H - -bool8 sub_8021774(u8, u8, s32); -u32 sub_80217EC(void); -void sub_8021830(void); - -#endif // GUARD_CODE_8021774_H \ No newline at end of file diff --git a/include/code_8021774_pre.h b/include/code_8021774_pre.h deleted file mode 100644 index a5559eeb2..000000000 --- a/include/code_8021774_pre.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef GUARD_CODE_8021774_PRE_H -#define GUARD_CODE_8021774_PRE_H - -bool8 sub_80211AC(u32, u32); -u32 sub_8021274(bool8); -u8 sub_802132C(void); -void sub_8021354(bool8); -void sub_80213A0(void); - -#endif // GUARD_CODE_8021774_PRE_H \ No newline at end of file diff --git a/include/code_8023144.h b/include/code_8023144.h index 3cbf484e1..19b86d8c0 100644 --- a/include/code_8023144.h +++ b/include/code_8023144.h @@ -48,4 +48,8 @@ typedef struct unkStruct_3001B5C u8 unk3F8[4]; } unkStruct_3001B5C; +bool8 sub_80227B8(PokemonStruct1 *pokeStruct); +u32 sub_8022860(void); +void sub_8022908(void); + #endif // GUARD_CODE_8023144_H \ No newline at end of file diff --git a/include/code_8096AF8.h b/include/code_8096AF8.h new file mode 100644 index 000000000..587856050 --- /dev/null +++ b/include/code_8096AF8.h @@ -0,0 +1,7 @@ +#ifndef GUARD_CODE_8096AF8_H +#define GUARD_CODE_8096AF8_H + +// code_8096AF8.s +extern bool8 sub_8096E2C(void); + +#endif // GUARD_CODE_8096AF8_H \ No newline at end of file diff --git a/include/code_8097DD0.h b/include/code_8097DD0.h new file mode 100644 index 000000000..11c718a73 --- /dev/null +++ b/include/code_8097DD0.h @@ -0,0 +1,8 @@ +#ifndef GUARD_CODE_8097DD0_H +#define GUARD_CODE_8097DD0_H + +#include "subStruct_203B240.h" + +extern u32 sub_8097DF0(u8 *, struct subStruct_203B240 **); + +#endif // GUARD_CODE_8097DD0_H \ No newline at end of file diff --git a/include/constants/friend_area.h b/include/constants/friend_area.h index c94e2e71c..99e9e878a 100644 --- a/include/constants/friend_area.h +++ b/include/constants/friend_area.h @@ -10,7 +10,7 @@ #define UNLOCK_WONDER_MAIL 2 #define UNLOCK_LEGENDARY_REQUEST 3 -#define NONE 0 +#define FRIEND_AREA_NONE 0 #define BOUNTIFUL_SEA 1 #define TREASURE_SEA 2 #define SERENE_SEA 3 diff --git a/include/constants/iq_skill.h b/include/constants/iq_skill.h index 89156aa5e..da6b3e3ec 100644 --- a/include/constants/iq_skill.h +++ b/include/constants/iq_skill.h @@ -3,31 +3,31 @@ enum IQSkillID { - IQ_NONE = 0x0, - IQ_TYPE_ADVANTAGE_MASTER = 0x1, - IQ_ITEM_CATCHER = 0x2, - IQ_COURSE_CHECKER = 0x3, - IQ_SURE_HIT_ATTACKER = 0x4, - IQ_QUICK_DODGER = 0x5, - IQ_PP_CHECKER = 0x6, - IQ_NONTRAITOR = 0x7, - IQ_STATUS_CHECKER = 0x8, - IQ_EXP_GO_GETTER = 0x9, - IQ_EFFICIENCY_EXPERT = 0xA, - IQ_WEAK_TYPE_PICKER = 0xB, - IQ_ALL_TERRAIN_HIKER = 0xC, - IQ_SUPER_MOBILE = 0xD, - IQ_TRAP_AVOIDER = 0xE, - IQ_HOUSE_AVOIDER = 0xF, - IQ_ENERGY_SAVER = 0x10, - IQ_NONSLEEPER = 0x11, - IQ_SELF_CURER = 0x12, - IQ_TRAP_SEER = 0x13, - IQ_LAVA_EVADER = 0x14, - IQ_DEDICATED_TRAVELER = 0x15, - IQ_ITEM_MASTER = 0x16, - IQ_EXCLUSIVE_MOVE_USER = 0x17, - NUM_IQ_SKILLS = 0x18 + IQ_NONE, + IQ_TYPE_ADVANTAGE_MASTER, + IQ_ITEM_CATCHER, + IQ_COURSE_CHECKER, + IQ_SURE_HIT_ATTACKER, + IQ_QUICK_DODGER, + IQ_PP_CHECKER, + IQ_NONTRAITOR, + IQ_STATUS_CHECKER, + IQ_EXP_GO_GETTER, + IQ_EFFICIENCY_EXPERT, + IQ_WEAK_TYPE_PICKER, + IQ_ALL_TERRAIN_HIKER, + IQ_SUPER_MOBILE, + IQ_TRAP_AVOIDER, + IQ_HOUSE_AVOIDER, + IQ_ENERGY_SAVER, + IQ_NONSLEEPER, + IQ_SELF_CURER, + IQ_TRAP_SEER, + IQ_LAVA_EVADER, + IQ_DEDICATED_TRAVELER, + IQ_ITEM_MASTER, + IQ_EXCLUSIVE_MOVE_USER, + NUM_IQ_SKILLS }; -#endif +#endif // GUARD_CONSTANTS_IQ_SKILL_H \ No newline at end of file diff --git a/include/friend_area_action_menu.h b/include/friend_area_action_menu.h index 7eb18c0b4..cb1b1f252 100644 --- a/include/friend_area_action_menu.h +++ b/include/friend_area_action_menu.h @@ -1,10 +1,47 @@ #ifndef GUARD_FRIEND_AREA_ACTION_MENU_H #define GUARD_FRIEND_AREA_ACTION_MENU_H +#include "constants/move.h" +#include "items.h" #include "menu.h" +#include "pokemon.h" +#include "text.h" + +enum FriendAreaActionMenuStates +{ + FRIEND_AREA_ACTION_MENU_INIT, + FRIEND_AREA_ACTION_MENU_MAIN, + FRIEND_AREA_ACTION_MENU_MAIN_2, + // + FRIEND_AREA_ACTION_MENU_SUMMARY = 4, + FRIEND_AREA_ACTION_MENU_CHECK_IQ, + // + FRIEND_AREA_ACTION_MENU_SAY_FAREWELL_PROMPT = 8, + FRIEND_AREA_ACTION_MENU_SAY_FAREWELL_CONFIRM, + // + FRIEND_AREA_ACTION_MENU_EXIT = 17, +}; + +enum FriendAreaActionMenuActions +{ + FRIEND_AREA_ACTION_MENU_ACTION_NONE = 1, + FRIEND_AREA_ACTION_MENU_ACTION_YES, + FRIEND_AREA_ACTION_MENU_ACTION_NO, + FRIEND_AREA_ACTION_MENU_ACTION_INFO = 4, + FRIEND_AREA_ACTION_MENU_ACTION_SUMMARY = 4, + FRIEND_AREA_ACTION_MENU_ACTION_CHECK_IQ, + FRIEND_AREA_ACTION_MENU_ACTION_JOIN_TEAM, + FRIEND_AREA_ACTION_MENU_ACTION_STANDBY, + FRIEND_AREA_ACTION_MENU_ACTION_MAKE_LEADER, + FRIEND_AREA_ACTION_MENU_ACTION_SAY_FAREWELL, + FRIEND_AREA_ACTION_MENU_ACTION_GIVE, + FRIEND_AREA_ACTION_MENU_ACTION_TAKE, + FRIEND_AREA_ACTION_MENU_ACTION_MOVES, +}; + +// size: 0x1E0 struct unkStruct_203B2BC { - // size: 0x1E0 u32 state; u32 fallbackState; s16 targetPoke; @@ -31,31 +68,8 @@ struct unkStruct_203B2BC UnkTextStruct2 unk180[4]; }; -enum FriendAreaActionMenuStates { - FRIEND_AREA_ACTION_MENU_INIT, - FRIEND_AREA_ACTION_MENU_MAIN, - FRIEND_AREA_ACTION_MENU_MAIN_2, - FRIEND_AREA_ACTION_MENU_SUMMARY = 4, - FRIEND_AREA_ACTION_MENU_CHECK_IQ = 5, - FRIEND_AREA_ACTION_MENU_SAY_FAREWELL_PROMPT = 8, - FRIEND_AREA_ACTION_MENU_SAY_FAREWELL_CONFIRM, - FRIEND_AREA_ACTION_MENU_EXIT = 0x11, -}; +u32 sub_8027074(void); +u32 sub_80270A4(void); +void sub_8027168(void); -enum FriendAreaActionMenuActions { - FRIEND_AREA_ACTION_MENU_ACTION_NONE = 1, - FRIEND_AREA_ACTION_MENU_ACTION_YES, - FRIEND_AREA_ACTION_MENU_ACTION_NO, - FRIEND_AREA_ACTION_MENU_ACTION_INFO = 4, - FRIEND_AREA_ACTION_MENU_ACTION_SUMMARY = 4, - FRIEND_AREA_ACTION_MENU_ACTION_CHECK_IQ, - FRIEND_AREA_ACTION_MENU_ACTION_JOIN_TEAM, - FRIEND_AREA_ACTION_MENU_ACTION_STANDBY, - FRIEND_AREA_ACTION_MENU_ACTION_MAKE_LEADER, - FRIEND_AREA_ACTION_MENU_ACTION_SAY_FAREWELL, - FRIEND_AREA_ACTION_MENU_ACTION_GIVE, - FRIEND_AREA_ACTION_MENU_ACTION_TAKE, - FRIEND_AREA_ACTION_MENU_ACTION_MOVES, -}; - -#endif +#endif // GUARD_FRIEND_AREA_ACTION_MENU_H \ No newline at end of file diff --git a/include/ground_lives.h b/include/ground_lives.h new file mode 100644 index 000000000..6d11a7793 --- /dev/null +++ b/include/ground_lives.h @@ -0,0 +1,7 @@ +#ifndef GUARD_GROUND_LIVES_H +#define GUARD_GROUND_LIVES_H + +// ground_lives.s +s16 sub_80A7AE8(s32); + +#endif // GUARD_GROUND_LIVES_H \ No newline at end of file diff --git a/include/ground_main.h b/include/ground_main.h index d73b4da62..7bf59241a 100644 --- a/include/ground_main.h +++ b/include/ground_main.h @@ -12,5 +12,6 @@ typedef struct unkStruct_811BAF4 } unkStruct_811BAF4; bool8 sub_8098F88(void); +const char *sub_8098FB4(void); #endif // GUARD_GROUND_MAIN_H \ No newline at end of file diff --git a/include/ground_map_1.h b/include/ground_map_1.h index 47ca59213..abcda7e96 100644 --- a/include/ground_map_1.h +++ b/include/ground_map_1.h @@ -8,4 +8,7 @@ void GroundMap_ExecuteStation(s16, s16, s8, u32); bool8 sub_80A4D2C(s16); bool8 sub_80A4D48(s16 index); +// ground_map_1.s +extern s16 sub_80A5728(void); + #endif // GUARD_GROUND_MAP_1_H \ No newline at end of file diff --git a/include/options_menu.h b/include/options_menu.h new file mode 100644 index 000000000..6c86bea52 --- /dev/null +++ b/include/options_menu.h @@ -0,0 +1,8 @@ +#ifndef GUARD_OPTIONS_MENU_H +#define GUARD_OPTIONS_MENU_H + +bool8 sub_801DCC4(void); +u32 sub_801DCE8(void); +void sub_801DD50(void); + +#endif // GUARD_OPTIONS_MENU_H \ No newline at end of file diff --git a/include/party_list_menu.h b/include/party_list_menu.h new file mode 100644 index 000000000..8e2394b4c --- /dev/null +++ b/include/party_list_menu.h @@ -0,0 +1,43 @@ +#ifndef GUARD_PARTY_LIST_MENU_H +#define GUARD_PARTY_LIST_MENU_H + +#include "constants/move.h" +#include "items.h" +#include "menu.h" +#include "pokemon.h" +#include "text.h" + +// size: 0x280 +typedef struct unkStruct_203B2B8 +{ + /* 0x0 */ s32 state; + /* 0x4 */ s32 fallbackState; + bool8 unk8; + /* 0xA */ s16 pokeSpecies; + /* 0xC */ u32 id; + /* 0x10 */ BulkItem item1; + /* 0x14 */ BulkItem item2; + /* 0x18 */ PokemonStruct1 *pokeStruct; + /* 0x1C */ bool8 isTeamLeader; + /* 0x20 */ u32 moveIndex; + /* 0x24 */ u16 moveID; + /* 0x28 */ Move moves[8]; + /* 0x68 */ u16 moveIDs[4]; // some list of move IDs + /* 0x70 */ u32 menuAction1; + /* 0x74 */ u32 menuAction2; + /* 0x78 */ u32 menuAction3; // unused + MenuStruct unk7C; + MenuStruct unkCC; + MenuStruct unk11C; // unused + MenuItem unk16C[10]; + MenuItem unk1BC[10]; + u16 unk20C[10]; + UnkTextStruct2 unk220[4]; +} unkStruct_203B2B8; + +bool8 sub_8025EF4(PokemonStruct1 *pokeStruct); +u32 sub_8025F68(void); +bool8 sub_802604C(void); +void sub_8026058(void); + +#endif // GUARD_PARTY_LIST_MENU_H \ No newline at end of file diff --git a/include/pokemon.h b/include/pokemon.h index dfa51fe6c..60f06b73b 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -250,6 +250,7 @@ s32 sub_808E218(unkStruct_808E218_arg *, PokemonStruct1 *pokemon); extern PokemonStruct1 *GetPlayerPokemonStruct(void); extern void sub_808CFD0(u8 *, s16, u8 *, u8, u32 *, u16 *); extern u32 sub_808D1DC(u8 *); +extern PokemonStruct1 *sub_808D3F8(void); extern s32 sub_808D544(u32); extern s32 sub_808D580(s32 *); diff --git a/include/text2.h b/include/text2.h index a9d980ed3..9520dfe35 100644 --- a/include/text2.h +++ b/include/text2.h @@ -47,6 +47,7 @@ extern void InitGraphics(void); extern void sub_800898C(void); extern void sub_80089AC(const UnkTextStruct2 *, UnkTextStruct2_sub *); extern void sub_8008C54(u32); +extern s32 sub_8008ED0(const u8 *); extern void sub_8009388(void); extern void xxx_call_draw_string(s32 x, u32 y, const u8 *str, u32 , u32); diff --git a/include/wonder_mail_2_1.h b/include/wonder_mail_2_1.h index a6d10144e..660d1506f 100644 --- a/include/wonder_mail_2_1.h +++ b/include/wonder_mail_2_1.h @@ -1,6 +1,15 @@ +#ifndef GUARD_WONDER_MAIL_2_1_H +#define GUARD_WONDER_MAIL_2_1_H + +#include "code_802C39C.h" +#include "constants/mailbox.h" +#include "input.h" +#include "menu.h" +#include "text.h" + +// size: 0xA8 struct unkStruct_203B2E8 { - // size: 0xA8 u8 pelipperBoardSlots[MAX_ACCEPTED_JOBS]; MenuInputStruct input; u32 unk3C; @@ -9,9 +18,9 @@ struct unkStruct_203B2E8 u8 unkA4[4]; }; +// size: 0x1FC struct unkStruct_203B2F0 { - // size: 0x1FC u32 unk0; u32 state; u8 unk8[0xC - 0x8]; @@ -25,3 +34,11 @@ struct unkStruct_203B2F0 u8 fill18C[0x19C - 0x18C]; UnkTextStruct2 unk19C[4]; }; + +bool8 HasNoAcceptedJobs(void); +bool8 InitializeJobListMenu(u32); + +u32 sub_802C898(void); +void sub_802C8F4(void); + +#endif // GUARD_WONDER_MAIL_2_1_H \ No newline at end of file diff --git a/ld_script.txt b/ld_script.txt index 36fb50add..e1a3c2c37 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -105,8 +105,12 @@ SECTIONS { src/code_801AFA4.o(.text); src/code_801B3C0.o(.text); src/code_801B60C.o(.text); + src/code_801BEEC.o(.text); + src/code_801C244.o(.text); src/code_801C620.o(.text); - src/code_801D760.o(.text); + src/code_801C8C4.o(.text); + src/code_801D014.o(.text); + src/code_801D9E4.o(.text); src/options_menu.o(.text); src/hints_menu.o(.text); src/gulpin_shop.o(.text); @@ -416,6 +420,12 @@ SECTIONS { src/code_801AFA4.o(.rodata); src/code_801B3C0.o(.rodata); src/code_801B60C.o(.rodata); + src/code_801BEEC.o(.rodata); + src/code_801C244.o(.rodata); + src/code_801C620.o(.rodata); + src/code_801C8C4.o(.rodata); + src/code_801D014.o(.rodata); + src/code_801D9E4.o(.rodata); data/data_80DBD98.o(.rodata); src/gulpin_shop.o(.rodata); data/data_80DC240.o(.rodata); diff --git a/src/code_8012A18_1.c b/src/code_8012A18_1.c index 3a9998022..e40274fd6 100644 --- a/src/code_8012A18_1.c +++ b/src/code_8012A18_1.c @@ -75,6 +75,8 @@ s32 sub_8016028(void) return 60; } +///////////// THIS IS ITS OWN FILE + u32 sub_801602C(u32 r0, u8 *name) { ResetUnusedInputStruct(); diff --git a/src/code_801BEEC.c b/src/code_801BEEC.c new file mode 100644 index 000000000..9d9f99233 --- /dev/null +++ b/src/code_801BEEC.c @@ -0,0 +1,207 @@ +#include "global.h" +#include "code_80118A4.h" +#include "code_801BEEC.h" +#include "code_801C244.h" +#include "code_801C620.h" +#include "common_strings.h" +#include "memory.h" +#include "menu_input.h" +#include "pokemon_3.h" +#include "text1.h" +#include "text2.h" + +static EWRAM_DATA_2 struct unkStruct_203B238 *sUnknown_203B238 = {0}; + +#include "data/code_801BEEC.h" + +static void sub_801BFB4(s32 newState); +static void sub_801BFCC(void); +static void sub_801C03C(void); +static void sub_801C0C8(void); +static void sub_801C118(void); +static void sub_801C1A0(void); +static void sub_801C228(void); + +bool8 sub_801BEEC(s16 species) +{ + s32 species_s32 = species; + + if (HasNoAvailIQSkills(species_s32)) + return FALSE; + + sUnknown_203B238 = MemoryAlloc(sizeof(struct unkStruct_203B238), 8); + sUnknown_203B238->menuAction = 0; + sUnknown_203B238->species = species_s32; + sUnknown_203B238->pokeStruct = &gRecruitedPokemonRef->pokemon[species_s32]; + sUnknown_203B238->numIQSkills = GetNumAvailableIQSkills(sUnknown_203B238->iqSkills, sUnknown_203B238->pokeStruct->IQ); + sub_801BFB4(0); + return TRUE; +} + +u32 sub_801BF48(void) +{ + switch (sUnknown_203B238->state) { + case 4: + return 3; + case 0: + case 1: + sub_801C118(); + break; + case 2: + sub_801C1A0(); + break; + case 3: + sub_801C228(); + break; + } + return 0; +} + +void sub_801BF98(void) +{ + if (sUnknown_203B238 != NULL) { + MemoryFree(sUnknown_203B238); + sUnknown_203B238 = NULL; + } +} + +static void sub_801BFB4(s32 newState) +{ + sUnknown_203B238->state = newState; + sub_801BFCC(); + sub_801C03C(); +} + +static void sub_801BFCC(void) +{ + s32 i; + + sub_8006518(sUnknown_203B238->unkC4); + + if (sUnknown_203B238->state == 2) + sUnknown_203B238->unkC4[2] = sUnknown_80DBDB0; + else { + for (i = 0; i < 4; i++) + sUnknown_203B238->unkC4[i] = sUnknown_80DBD98; + } + + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B238->unkC4, TRUE, TRUE); +} + +static void sub_801C03C(void) +{ + switch (sUnknown_203B238->state) { + case 0: + sub_801C244(sUnknown_203B238->species, 0, 8); + break; + case 1: + sub_801C3B0(TRUE); + break; + case 2: + sub_801C4C8(); + sub_801C0C8(); + sub_8012D60(&sUnknown_203B238->unk74, sUnknown_203B238->unk34, 0, 0, sUnknown_203B238->menuAction, 2); + break; + case 3: + sub_801C620(sUnknown_203B238->iqSkillIndex); + break; + case 4: + break; + } +} + +static void sub_801C0C8(void) +{ + struct unkStruct_203B238 *puVar1; + s32 i; + u8 *nullText; + u32 menuAction; + s32 max; + + puVar1 = sUnknown_203B238; + nullText = NULL; + + sUnknown_203B238->unk34[0].text = sSwitch; + puVar1->unk34[0].menuAction = 2; + + menuAction = 1; + puVar1->unk34[1].text = gCommonInfo[0]; + puVar1->unk34[1].menuAction = 3; + + max = 2; + puVar1->unk34[2].text = nullText; + puVar1->unk34[2].menuAction = menuAction; + + for (i = 0; i < max; i++) { + if (sUnknown_203B238->unk34[i].menuAction == sUnknown_203B238->menuAction) + return; + } + + sUnknown_203B238->menuAction = 2; +} + +static void sub_801C118(void) +{ + switch (sub_801C308(TRUE)) { + case 3: + sUnknown_203B238->unk24 = sub_801C390(); + sUnknown_203B238->iqSkillIndex = sUnknown_203B238->iqSkills[sUnknown_203B238->unk24]; + sub_801BFB4(2); + break; + case 4: + sUnknown_203B238->unk24 = sub_801C390(); + sUnknown_203B238->iqSkillIndex = sUnknown_203B238->iqSkills[sUnknown_203B238->unk24]; + sub_801BFB4(3); + break; + case 2: + sub_801C3F8(); + sub_801BFB4(4); + break; + case 0: + case 1: + break; + } +} + +static void sub_801C1A0(void) +{ + s32 menuAction; + + menuAction = 0; + sub_801C308(FALSE); + + if (!sub_8012FD8(&sUnknown_203B238->unk74)) { + sub_8013114(&sUnknown_203B238->unk74, &menuAction); + + if (menuAction != 1) + sUnknown_203B238->menuAction = menuAction; + } + + switch (menuAction) { + case 2: + PlaySound(307); + ToggleIQSkill((u8 *)&sUnknown_203B238->pokeStruct->IQSkills, sUnknown_203B238->iqSkillIndex); + sub_801BFB4(1); + break; + case 3: + sub_801BFB4(3); + break; + case 1: + sub_801BFB4(1); + break; + } +} + +static void sub_801C228(void) +{ + switch (sub_801C674()) { + case 2: + case 3: + sub_801C6B4(); + sub_801BFB4(1); + case 0: + case 1: + break; + } +} \ No newline at end of file diff --git a/src/code_801C244.c b/src/code_801C244.c new file mode 100644 index 000000000..4ef9fe4bb --- /dev/null +++ b/src/code_801C244.c @@ -0,0 +1,246 @@ +#include "global.h" +#include "code_80118A4.h" +#include "code_80130A8.h" +#include "code_801C244.h" +#include "memory.h" +#include "menu_input.h" +#include "pokemon_3.h" +#include "text1.h" +#include "text2.h" + +extern u8 gUnknown_202DEA8[]; + +static EWRAM_DATA_2 struct unkStruct_203B23C *sUnknown_203B23C = {0}; + +#include "data/code_801C244.h" + +static void sub_801C440(void); + +bool8 sub_801C244(s16 species, u32 index, u32 a2) +{ +#ifndef NONMATCHING + register s32 species_s32 asm("r4"); +#else + s32 species_s32; +#endif + + species_s32 = species; + + if (HasNoAvailIQSkills(species)) + return FALSE; + + if (sUnknown_203B23C == NULL) + sUnknown_203B23C = MemoryAlloc(sizeof(struct unkStruct_203B23C), 8); + + sUnknown_203B23C->species = species_s32; + sUnknown_203B23C->pokeStruct = &gRecruitedPokemonRef->pokemon[species_s32]; + sUnknown_203B23C->numIQSkills = GetNumAvailableIQSkills(sUnknown_203B23C->iqSkills, sUnknown_203B23C->pokeStruct->IQ); + sUnknown_203B23C->unk58 = index; + sUnknown_203B23C->unk5C = &sUnknown_203B23C->unk60[index]; + sub_8006518(sUnknown_203B23C->unk60); + sUnknown_203B23C->unk60[sUnknown_203B23C->unk58] = sUnknown_80DBDF0; + sUnknown_203B23C->unk5C->unk14 = &sUnknown_203B23C->unkC0; + sub_8012D08(sUnknown_203B23C->unk5C, a2); + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B23C->unk60, TRUE, TRUE); + sub_8013818(&sUnknown_203B23C->input, sUnknown_203B23C->numIQSkills, a2, index); + sub_801C440(); + sub_801C4C8(); + return TRUE; +} + +u32 sub_801C308(bool8 a0) +{ + if (!a0) { + sub_8013660(&sUnknown_203B23C->input); + return 0; + } + + switch (GetKeyPress(&sUnknown_203B23C->input)) { + case 2: + PlayMenuSoundEffect(1); + return 2; + case 1: + PlayMenuSoundEffect(0); + return 3; + case 4: + PlayMenuSoundEffect(4); + return 4; + default: + if (sub_80138B8(&sUnknown_203B23C->input, 1) != 0) { + sub_801C440(); + sub_801C4C8(); + return 1; + } + return 0; + } +} + +s32 sub_801C390(void) +{ + return (sUnknown_203B23C->input.unk1E * sUnknown_203B23C->input.unk1C) + sUnknown_203B23C->input.menuIndex; +} + +void sub_801C3B0(bool8 r0) +{ + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B23C->unk60, FALSE, FALSE); + sUnknown_203B23C->input.unk22 = sUnknown_203B23C->numIQSkills; + sub_8013984(&sUnknown_203B23C->input); + sub_801C440(); + sub_801C4C8(); + + if (r0) + AddMenuCursorSprite(&sUnknown_203B23C->input); +} + +void sub_801C3F8(void) +{ + if (sUnknown_203B23C != NULL) { + sUnknown_203B23C->unk60[sUnknown_203B23C->unk58] = sUnknown_80DBDD8; + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B23C->unk60, TRUE, TRUE); + MemoryFree(sUnknown_203B23C); + sUnknown_203B23C = NULL; + } +} + +#ifdef NONMATCHING // sub_80095E4 memes +// https://decomp.me/scratch/NdDP3 (98.06% matching) - Seth +static void sub_801C440(void) +{ + u16 sVar2; + + sUnknown_203B23C->unkC0 = sUnknown_203B23C->unk24.unk20; + sUnknown_203B23C->unkC1 = sUnknown_203B23C->unk24.unk1E; + sUnknown_203B23C->unkC2 = 10; + sUnknown_203B23C->unkC3 = 0; + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B23C->unk60, TRUE, TRUE); + sVar2 = sub_80095E4(sUnknown_203B23C->unk24.unk1A, 12) + 2; + sUnknown_203B23C->unk60[sUnknown_203B23C->unk58].unkE = sVar2; + sUnknown_203B23C->unk60[sUnknown_203B23C->unk58].unk10 = sVar2; + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B23C->unk60, TRUE, TRUE); +} +#else +NAKED +static void sub_801C440(void) +{ + asm_unified( + "\tpush {r4,lr}\n" + "\tldr r4, _0801C4C4\n" + "\tldr r0, [r4]\n" + "\tadds r1, r0, 0\n" + "\tadds r1, 0x44\n" + "\tldrh r1, [r1]\n" + "\tadds r0, 0xC0\n" + "\tmovs r2, 0\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tadds r1, r0, 0\n" + "\tadds r1, 0x42\n" + "\tldrh r1, [r1]\n" + "\tadds r0, 0xC1\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0xC2\n" + "\tmovs r1, 0xA\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0xC3\n" + "\tstrb r2, [r0]\n" + "\tbl ResetUnusedInputStruct\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x60\n" + "\tmovs r1, 0x1\n" + "\tmovs r2, 0x1\n" + "\tbl sub_800641C\n" + "\tldr r0, [r4]\n" + "\tmovs r1, 0x3E\n" + "\tldrsh r0, [r0, r1]\n" + "\tmovs r1, 0xC\n" + "\tbl sub_80095E4\n" + "\tadds r0, 0x2\n" + "\tldr r2, [r4]\n" + "\tldr r3, [r2, 0x58]\n" + "\tlsls r1, r3, 1\n" + "\tadds r1, r3\n" + "\tlsls r1, 3\n" + "\tadds r1, r2, r1\n" + "\tadds r1, 0x6E\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 16\n" + "\tstrh r0, [r1]\n" + "\tldr r3, [r2, 0x58]\n" + "\tlsls r1, r3, 1\n" + "\tadds r1, r3\n" + "\tlsls r1, 3\n" + "\tadds r2, r1\n" + "\tadds r2, 0x70\n" + "\tstrh r0, [r2]\n" + "\tbl ResetUnusedInputStruct\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x60\n" + "\tmovs r1, 0x1\n" + "\tmovs r2, 0x1\n" + "\tbl sub_800641C\n" + "\tpop {r4}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" +"_0801C4C4: .4byte sUnknown_203B23C" + ); +} +#endif + +void sub_801C4C8(void) +{ + u32 y; + s32 x; + s32 x2; + u32 skillIndex; + s32 counter; + + sub_8008C54(sUnknown_203B23C->unk58); + sub_80073B8(sUnknown_203B23C->unk58); + x = sUnknown_203B23C->input.unk1E * 8; + x2 = x; + x2 += 10; + xxx_call_draw_string(x2, 0, sIQSkills, sUnknown_203B23C->unk58, 0); + + x += 4; + x2 = x + sUnknown_203B23C->unkC2 * 8; + sub_8012BC4(x2, 0, sUnknown_203B23C->input.unk1E + 1, 1, 7, sUnknown_203B23C->unk58); + + for (counter = 0; counter < sUnknown_203B23C->input.unk1A; counter++) { + skillIndex = sUnknown_203B23C->iqSkills[(sUnknown_203B23C->input.unk1E * sUnknown_203B23C->input.unk1C) + counter]; + + y = sub_8013800(&sUnknown_203B23C->input, counter); + strncpy(gUnknown_202DEA8, GetIQSkillName(skillIndex), 80); + + if (IsIQSkillSet((u8 *)&sUnknown_203B23C->pokeStruct->IQSkills, 1 << skillIndex)) + strcpy(gUnknown_202DEA8 - 80, sStarBullet); + else + strcpy(gUnknown_202DEA8 - 80, sUnknown_80DBE18); + + xxx_format_and_draw(12, y, sFmt01, sUnknown_203B23C->unk58, 0); + } + + sub_80073E0(sUnknown_203B23C->unk58); +} + +bool8 HasNoAvailIQSkills(s16 species) +{ + s32 species_s32; + u8 iqSkillBuffer[NUM_IQ_SKILLS]; + PokemonStruct1 *pokeStruct; + + species_s32 = species; + pokeStruct = &gRecruitedPokemonRef->pokemon[species_s32]; + + if (GetNumAvailableIQSkills(iqSkillBuffer, pokeStruct->IQ) == 0) + return TRUE; + + return FALSE; +} \ No newline at end of file diff --git a/src/code_801C620.c b/src/code_801C620.c index 1377619d2..8f105ecf0 100644 --- a/src/code_801C620.c +++ b/src/code_801C620.c @@ -1,628 +1,45 @@ #include "global.h" #include "code_80118A4.h" +#include "code_80130A8.h" #include "code_801C620.h" -#include "common_strings.h" -#include "constants/item.h" -#include "constants/iq_skill.h" -#include "items.h" +#include "code_8097DD0.h" #include "memory.h" -#include "pokemon.h" +#include "menu_input.h" #include "pokemon_3.h" +#include "sprite.h" #include "text1.h" #include "text2.h" -#include "subStruct_203B240.h" -#include "menu_input.h" -#include "sprite.h" -#include "code_80130A8.h" -// TODO: This 1 file was originally 5 files. Split properly - -// size: 0x124 -struct unkStruct_203B238 -{ - u32 state; - s16 species; - PokemonStruct1 *pokeStruct; - u8 iqSkills[NUM_IQ_SKILLS]; - u32 unk24; - u8 iqSkillIndex; - u32 numIQSkills; - s32 menuAction; - MenuItem unk34[8]; - MenuStruct unk74; - UnkTextStruct2 unkC4[4]; -}; - -// size: 0xC4 -struct unkStruct_203B23C -{ - /* 0x0 */ s16 species; - /* 0x4 */ PokemonStruct1 *pokeStruct; - /* 0x8 */ u8 iqSkills[NUM_IQ_SKILLS]; - /* 0x20 */ s32 numIQSkills; - /* 0x24 */ MenuInputStruct input; - u32 unk58; - UnkTextStruct2 *unk5C; - UnkTextStruct2 unk60[4]; - u8 unkC0; - u8 unkC1; - u8 unkC2; - u8 unkC3; -}; - -// size: 0x94 -struct unkStruct_203B240 -{ - /* 0x0 */ s32 state; - /* 0x4 */ u8 chosenIQSkill; - s32 unk8; - s32 unkC; - struct subStruct_203B240 *unk10[2]; - u8 fill14[0x20 - 0x18]; - u32 unk20; - u32 unk24; - UnkTextStruct2 unk28[4]; - MenuInputStructSub unk88; -}; - -// size: 0x554 -struct unkStruct_203B244 -{ - u32 unk0; - /* 0x4 */ u8 itemIDs[NUMBER_OF_ITEM_IDS]; - u32 unkF4[NUMBER_OF_ITEM_IDS]; - /* 0x4B4 */ MenuInputStruct input; - u32 unk4E8; - UnkTextStruct2 * unk4EC; - UnkTextStruct2 unk4F0[4]; - u8 unk550[4]; -}; - -// size: 0x118 -struct unk_203B250 -{ - /* 0x0 */ PokemonStruct1 *pokeStruct; - /* 0x4 */ s16 index; - /* 0x6 */ u8 currFriendAreaLocation; // 0 when not in a friend area - u8 unk7; - u8 unk8; - u8 unk9; - PokemonStruct1 *unkC; - /* 0x10 */ u32 state; - /* 0x14 */ u32 menuAction; - MenuStruct unk18; - MenuItem unk68[8]; - u16 unkA8[8]; - UnkTextStruct2 unkB8[4]; -}; - -extern struct unk_203B250 *gUnknown_203B250; -extern u32 gUnknown_203B254; - -extern u8 sub_8002658(s16); -extern s16 sub_80A5728(void); -extern void sub_801D208(u32); -extern void sub_801D4C0(void); -extern void sub_801D680(void); -extern void sub_801D760(void); -extern void sub_801D77C(void); -extern void sub_801D798(void); -extern void sub_801D7CC(void); -extern void sub_801D808(void); -extern void sub_801D824(void); -extern void sub_801D840(void); -extern void sub_801D85C(void); -extern void sub_801D878(void); -s16 sub_80A7AE8(s32); -extern PokemonStruct1 *sub_808D3F8(void); - -extern const UnkTextStruct2 gUnknown_80DBE54; -extern const UnkTextStruct2 gUnknown_80DBDD8; -extern const UnkTextStruct2 gUnknown_80DBDF0; -extern const UnkTextStruct2 gUnknown_80DBDB0; -extern const UnkTextStruct2 gUnknown_80DBD98; -extern const UnkTextStruct2 gUnknown_80DBE3C; -extern const UnkTextStruct2 gUnknown_80DBE7C; -extern const UnkTextStruct2 gUnknown_80DBE98; -extern const UnkTextStruct2 gUnknown_80DBEB0[4]; - -extern struct unkStruct_203B238 *gUnknown_203B238; -extern struct unkStruct_203B23C *gUnknown_203B23C; -extern struct unkStruct_203B240 *gUnknown_203B240; -extern struct unkStruct_203B244 *gUnknown_203B244; - -extern u32 gUnknown_203B248; -extern u16 gUnknown_203B24C; -extern u16 gUnknown_203B24E; -extern u8 gAvailablePokemonNames[0x58]; - -extern u8 gUnknown_80DBE6C[]; -extern u8 gUnknown_80DBE18[]; -extern u8 gUnknown_80DBE14[]; -extern u8 gUnknown_202DEA8[]; extern u8 gUnknown_202DE58[]; -extern u8 gUnknown_80DBE08[]; -extern u8 gUnknown_80DBE1C[]; -extern char gUnknown_80DBE2C[]; // {ARG_MOVE_ITEM_0} -extern char gUnknown_80DBE30[]; // {ARG_POKEMON_0} -extern u8 gUnknown_80DBDC8[]; +extern u8 gAvailablePokemonNames[]; // 202DF98 -extern u32 sub_801CE58(void); -extern void sub_801CC38(void); -extern u32 sub_8097DF0(char *, struct subStruct_203B240 **); -extern void PlayMenuSoundEffect(u32); -extern void xxx_format_and_draw(u32, u32, const u8 *, u32, u32); -extern u32 sub_80095E4(s16, u32); -extern void sub_801C440(void); -extern void sub_801C4C8(void); -extern bool8 HasNoAvailIQSkills(s16 species); -extern u32 sub_801C674(void); -extern void sub_801C6B4(void); +static EWRAM_DATA_2 struct unkStruct_203B240 *sUnknown_203B240 = {0}; -void sub_801BFB4(s32); -void sub_801C6D0(s32); -void sub_801C7D4(void); -void sub_801C6E4(void); -void sub_801C848(void); +#include "data/code_801C620.h" -u32 sub_801C308(u8); -s32 sub_801C390(void); -void sub_801C3F8(void); +static void sub_801C6D0(s32 newState); +static void sub_801C6E4(void); +static void sub_801C7D4(void); +static void sub_801C848(void); -bool8 sub_801C244(s16 species, u32 index, u32 param_3); -void sub_801C0C8(void); -u32 sub_801C620(u8 iqSkill); -void sub_801C3B0(u8); -void sub_801BFCC(void); -void sub_801C03C(void); - -void sub_801C118(void); -void sub_801C1A0(void); -void sub_801C228(void); - -void sub_801D220(void); -extern void sub_801D3A8(void); - - -bool8 sub_801BEEC(s16 species) +bool8 sub_801C620(u8 iqSkill) { - s32 species_s32 = species; - if (HasNoAvailIQSkills(species_s32)) { - return FALSE; - } - else { - gUnknown_203B238 = MemoryAlloc(sizeof(struct unkStruct_203B238),8); - gUnknown_203B238->menuAction = 0; - gUnknown_203B238->species = species_s32; - gUnknown_203B238->pokeStruct = &gRecruitedPokemonRef->pokemon[species_s32]; - gUnknown_203B238->numIQSkills = GetNumAvailableIQSkills(gUnknown_203B238->iqSkills,gUnknown_203B238->pokeStruct->IQ); - sub_801BFB4(0); + ResetSprites(TRUE); + + sUnknown_203B240 = MemoryAlloc(sizeof(struct unkStruct_203B240), 8); + sUnknown_203B240->chosenIQSkill = iqSkill; + sub_801317C(&sUnknown_203B240->unk88); + sUnknown_203B240->unk24 = 0; + sub_80140B4(sUnknown_203B240->unk28); + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B240->unk28, TRUE, TRUE); + sub_801C6D0(0); return TRUE; - } -} - -u32 sub_801BF48(void) -{ - switch(gUnknown_203B238->state) - { - case 4: - return 3; - case 0: - case 1: - sub_801C118(); - break; - case 2: - sub_801C1A0(); - break; - case 3: - sub_801C228(); - break; - } - return 0; -} - -void sub_801BF98(void) -{ - if(gUnknown_203B238 != NULL) - { - MemoryFree(gUnknown_203B238); - gUnknown_203B238 = NULL; - } -} - -void sub_801BFB4(s32 newState) -{ - gUnknown_203B238->state = newState; - sub_801BFCC(); - sub_801C03C(); -} - -void sub_801BFCC(void) -{ - s32 index; - - sub_8006518(gUnknown_203B238->unkC4); - if(gUnknown_203B238->state == 2) - { - gUnknown_203B238->unkC4[2] = gUnknown_80DBDB0; - } - else - { - for(index = 0; index < 4; index++) - { - gUnknown_203B238->unkC4[index] = gUnknown_80DBD98; - } - - } - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B238->unkC4, TRUE, TRUE); -} - -void sub_801C03C(void) -{ - switch(gUnknown_203B238->state) { - case 0: - sub_801C244(gUnknown_203B238->species,0,8); - break; - case 1: - sub_801C3B0(1); - break; - case 2: - sub_801C4C8(); - sub_801C0C8(); - sub_8012D60(&gUnknown_203B238->unk74,gUnknown_203B238->unk34,0,0,gUnknown_203B238->menuAction,2); - break; - case 3: - sub_801C620(gUnknown_203B238->iqSkillIndex); - break; - case 4: - break; - } -} - -void sub_801C0C8(void) -{ - struct unkStruct_203B238 *puVar1; - int index; - u8 *nullText; - u32 menuAction; - s32 max; - - puVar1 = gUnknown_203B238; - nullText = NULL; - gUnknown_203B238->unk34[0].text = gUnknown_80DBDC8; - puVar1->unk34[0].menuAction = 2; - menuAction = 1; - puVar1->unk34[1].text = *gCommonInfo; - puVar1->unk34[1].menuAction = 3; - - max = 2; - puVar1->unk34[2].text = nullText; - puVar1->unk34[2].menuAction = menuAction; - - for(index = 0; index < max; index++) - { - if(gUnknown_203B238->unk34[index].menuAction == gUnknown_203B238->menuAction) - return; - } - gUnknown_203B238->menuAction = 2; -} - -void sub_801C118(void) -{ - switch(sub_801C308(1)) { - case 3: - gUnknown_203B238->unk24 = sub_801C390(); - gUnknown_203B238->iqSkillIndex = gUnknown_203B238->iqSkills[gUnknown_203B238->unk24]; - sub_801BFB4(2); - break; - case 4: - gUnknown_203B238->unk24 = sub_801C390(); - gUnknown_203B238->iqSkillIndex = gUnknown_203B238->iqSkills[gUnknown_203B238->unk24]; - sub_801BFB4(3); - break; - case 2: - sub_801C3F8(); - sub_801BFB4(4); - break; - case 0: - case 1: - break; - } -} - -void sub_801C1A0(void) -{ - s32 menuAction; - - menuAction = 0; - sub_801C308(0); - if (!(sub_8012FD8(&gUnknown_203B238->unk74)) && (sub_8013114(&gUnknown_203B238->unk74,&menuAction), menuAction != 1)) { - gUnknown_203B238->menuAction = menuAction; - } - - switch(menuAction) - { - case 2: - PlaySound(0x133); - ToggleIQSkill((u8 *)&gUnknown_203B238->pokeStruct->IQSkills,gUnknown_203B238->iqSkillIndex); - sub_801BFB4(1); - break; - case 3: - sub_801BFB4(3); - break; - case 1: - sub_801BFB4(1); - break; - } -} - -void sub_801C228(void) -{ - switch(sub_801C674()) - { - case 2: - case 3: - sub_801C6B4(); - sub_801BFB4(1); - case 0: - case 1: - break; - } -} - -bool8 sub_801C244(s16 species, u32 index, u32 param_3) -{ -#ifndef NONMATCHING - register s32 species_s32 asm("r4"); -#else - s32 species_s32; -#endif - - species_s32 = species; - - if (HasNoAvailIQSkills(species)) { - return FALSE; - } - else - { - if (gUnknown_203B23C == NULL) { - gUnknown_203B23C = MemoryAlloc(sizeof(struct unkStruct_203B23C),8); - } - gUnknown_203B23C->species = species_s32; - gUnknown_203B23C->pokeStruct = &gRecruitedPokemonRef->pokemon[species_s32]; - gUnknown_203B23C->numIQSkills = GetNumAvailableIQSkills(gUnknown_203B23C->iqSkills,gUnknown_203B23C->pokeStruct->IQ); - gUnknown_203B23C->unk58 = index; - gUnknown_203B23C->unk5C = &gUnknown_203B23C->unk60[index]; - sub_8006518(gUnknown_203B23C->unk60); - gUnknown_203B23C->unk60[gUnknown_203B23C->unk58] = gUnknown_80DBDF0; - gUnknown_203B23C->unk5C->unk14 = &gUnknown_203B23C->unkC0; - sub_8012D08(gUnknown_203B23C->unk5C,param_3); - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B23C->unk60, TRUE, TRUE); - sub_8013818(&gUnknown_203B23C->input,gUnknown_203B23C->numIQSkills,param_3,index); - sub_801C440(); - sub_801C4C8(); - return TRUE; - } -} - -u32 sub_801C308(u8 r0) -{ - if(r0 == 0) - { - sub_8013660(&gUnknown_203B23C->input); - return 0; - } - switch(GetKeyPress(&gUnknown_203B23C->input)) - { - case 2: - PlayMenuSoundEffect(1); - return 2; - case 1: - PlayMenuSoundEffect(0); - return 3; - case 4: - PlayMenuSoundEffect(4); - return 4; - default: - if(sub_80138B8(&gUnknown_203B23C->input, 1) != 0) - { - sub_801C440(); - sub_801C4C8(); - return 1; - } - else - return 0; - } -} - -s32 sub_801C390(void) -{ - return (gUnknown_203B23C->input.unk1E * gUnknown_203B23C->input.unk1C) + gUnknown_203B23C->input.menuIndex; -} - -void sub_801C3B0(u8 r0) -{ - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B23C->unk60, FALSE, FALSE); - gUnknown_203B23C->input.unk22 = gUnknown_203B23C->numIQSkills; - sub_8013984(&gUnknown_203B23C->input); - sub_801C440(); - sub_801C4C8(); - if(r0) - AddMenuCursorSprite(&gUnknown_203B23C->input); -} - -void sub_801C3F8(void) -{ - if(gUnknown_203B23C != NULL) - { - gUnknown_203B23C->unk60[gUnknown_203B23C->unk58] = gUnknown_80DBDD8; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B23C->unk60, TRUE, TRUE); - MemoryFree(gUnknown_203B23C); - gUnknown_203B23C = NULL; - } -} - -#ifdef NONMATCHING // sub_80095E4 memes -// https://decomp.me/scratch/NdDP3 (98.06% matching) - Seth -void sub_801C440(void) -{ - u16 sVar2; - - gUnknown_203B23C->unkC0 = gUnknown_203B23C->unk24.unk20; - gUnknown_203B23C->unkC1 = gUnknown_203B23C->unk24.unk1E; - gUnknown_203B23C->unkC2 = 0xA; - gUnknown_203B23C->unkC3 = 0; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B23C->unk60, TRUE, TRUE); - sVar2 = sub_80095E4(gUnknown_203B23C->unk24.unk1A, 0xc) + 2; - gUnknown_203B23C->unk60[gUnknown_203B23C->unk58].unkE = sVar2; - gUnknown_203B23C->unk60[gUnknown_203B23C->unk58].unk10 = sVar2; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B23C->unk60, TRUE, TRUE); -} -#else -NAKED -void sub_801C440(void) -{ - asm_unified( - "\tpush {r4,lr}\n" - "\tldr r4, _0801C4C4\n" - "\tldr r0, [r4]\n" - "\tadds r1, r0, 0\n" - "\tadds r1, 0x44\n" - "\tldrh r1, [r1]\n" - "\tadds r0, 0xC0\n" - "\tmovs r2, 0\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tadds r1, r0, 0\n" - "\tadds r1, 0x42\n" - "\tldrh r1, [r1]\n" - "\tadds r0, 0xC1\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0xC2\n" - "\tmovs r1, 0xA\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0xC3\n" - "\tstrb r2, [r0]\n" - "\tbl ResetUnusedInputStruct\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x60\n" - "\tmovs r1, 0x1\n" - "\tmovs r2, 0x1\n" - "\tbl sub_800641C\n" - "\tldr r0, [r4]\n" - "\tmovs r1, 0x3E\n" - "\tldrsh r0, [r0, r1]\n" - "\tmovs r1, 0xC\n" - "\tbl sub_80095E4\n" - "\tadds r0, 0x2\n" - "\tldr r2, [r4]\n" - "\tldr r3, [r2, 0x58]\n" - "\tlsls r1, r3, 1\n" - "\tadds r1, r3\n" - "\tlsls r1, 3\n" - "\tadds r1, r2, r1\n" - "\tadds r1, 0x6E\n" - "\tlsls r0, 16\n" - "\tlsrs r0, 16\n" - "\tstrh r0, [r1]\n" - "\tldr r3, [r2, 0x58]\n" - "\tlsls r1, r3, 1\n" - "\tadds r1, r3\n" - "\tlsls r1, 3\n" - "\tadds r2, r1\n" - "\tadds r2, 0x70\n" - "\tstrh r0, [r2]\n" - "\tbl ResetUnusedInputStruct\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x60\n" - "\tmovs r1, 0x1\n" - "\tmovs r2, 0x1\n" - "\tbl sub_800641C\n" - "\tpop {r4}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" -"_0801C4C4: .4byte gUnknown_203B23C" - ); -} -#endif - - -void sub_801C4C8(void) -{ - u32 y; - s32 x; - s32 x2; - u32 skillIndex; - s32 counter; - - sub_8008C54(gUnknown_203B23C->unk58); - sub_80073B8(gUnknown_203B23C->unk58); - x = gUnknown_203B23C->input.unk1E * 8; - x2 = x; - x2 += 10; - xxx_call_draw_string(x2,0,gUnknown_80DBE08,gUnknown_203B23C->unk58,0); - x += 4; - x2 = x + gUnknown_203B23C->unkC2 * 8; - sub_8012BC4(x2,0,gUnknown_203B23C->input.unk1E + 1,1,7, - gUnknown_203B23C->unk58); - for (counter = 0; counter < gUnknown_203B23C->input.unk1A; counter++) { - skillIndex = gUnknown_203B23C->iqSkills - [gUnknown_203B23C->input.unk1E * gUnknown_203B23C->input.unk1C + counter]; - y = sub_8013800(&gUnknown_203B23C->input,counter); - strncpy(gUnknown_202DEA8,GetIQSkillName(skillIndex),0x50); - if (IsIQSkillSet((u8 *)&gUnknown_203B23C->pokeStruct->IQSkills,1 << skillIndex)) { - strcpy(gUnknown_202DEA8 - 0x50,gUnknown_80DBE14); - } - else { - strcpy(gUnknown_202DEA8 - 0x50,gUnknown_80DBE18); - } - xxx_format_and_draw(0xc,y,gUnknown_80DBE1C,gUnknown_203B23C->unk58,0); - } - sub_80073E0(gUnknown_203B23C->unk58); -} - -bool8 HasNoAvailIQSkills(s16 species) -{ - s32 species_s32; - u8 iqSkillBuffer[NUM_IQ_SKILLS]; - PokemonStruct1 *pokeStruct; - - species_s32 = species; - - pokeStruct = &gRecruitedPokemonRef->pokemon[species_s32]; - if(GetNumAvailableIQSkills(iqSkillBuffer, pokeStruct->IQ) == 0) - return TRUE; - else - return FALSE; -} - -u32 sub_801C620(u8 iqSkill) -{ - ResetSprites(TRUE); - gUnknown_203B240 = MemoryAlloc(sizeof(struct unkStruct_203B240),8); - gUnknown_203B240->chosenIQSkill = iqSkill; - sub_801317C(&gUnknown_203B240->unk88); - gUnknown_203B240->unk24 = 0; - sub_80140B4(gUnknown_203B240->unk28); - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B240->unk28, TRUE, TRUE); - sub_801C6D0(0); - return 1; } u32 sub_801C674(void) { - switch(gUnknown_203B240->state) - { + switch (sUnknown_203B240->state) { case 0: sub_801C7D4(); break; @@ -640,625 +57,99 @@ u32 sub_801C674(void) void sub_801C6B4(void) { - if(gUnknown_203B240 != NULL) - { - MemoryFree(gUnknown_203B240); - gUnknown_203B240 = NULL; + if (sUnknown_203B240 != NULL) { + MemoryFree(sUnknown_203B240); + sUnknown_203B240 = NULL; } } -void sub_801C6D0(s32 newState) +static void sub_801C6D0(s32 newState) { - gUnknown_203B240->state = newState; + sUnknown_203B240->state = newState; sub_801C6E4(); } -void sub_801C6E4(void) +static void sub_801C6E4(void) { - char *skillName; - struct subStruct_203B240 *preload; + u8 *skillName; + struct subStruct_203B240 *preload; - switch(gUnknown_203B240->state) - { - case 0: - sub_8008C54(gUnknown_203B240->unk24); - sub_80073B8(gUnknown_203B240->unk24); - skillName = GetIQSkillName(gUnknown_203B240->chosenIQSkill); - strcpy(gUnknown_202DE58,skillName); - xxx_format_and_draw(16,0,gUnknown_80DBE2C,0,0); // {ARG_MOVE_ITEM_0} - xxx_call_draw_string(8,16,GetIQSkillDescription(gUnknown_203B240->chosenIQSkill),gUnknown_203B240->unk24,0); - sub_80073E0(gUnknown_203B240->unk24); - gUnknown_203B240->unkC = sub_8097DF0(GetIQSkillDescription(gUnknown_203B240->chosenIQSkill),gUnknown_203B240->unk10); - gUnknown_203B240->unk20 = 0; - break; - case 1: - sub_8008C54(gUnknown_203B240->unk24); - sub_80073B8(gUnknown_203B240->unk24); - preload = gUnknown_203B240->unk10[gUnknown_203B240->unk8]; - strcpy(gAvailablePokemonNames,preload->pokeName); - xxx_format_and_draw(16,0,gUnknown_80DBE30,gUnknown_203B240->unk24,0); // {ARG_POKEMON_0} - xxx_format_and_draw(4,16,gUnknown_203B240->unk10[gUnknown_203B240->unk8]->unk4, gUnknown_203B240->unk24,0); - sub_80073E0(gUnknown_203B240->unk24); - break; - case 2: - case 3: - break; - } -} - -void sub_801C7D4(void) -{ - if (gUnknown_203B240->unkC != 0) { - if ((gUnknown_203B240->unk20 & 8)) { - sub_8013F84(); - } - gUnknown_203B240->unk20++; - } - switch(sub_8012A64(&gUnknown_203B240->unk88,gUnknown_203B240->unk24)) - { - case 1: - PlayMenuSoundEffect(0); - if (gUnknown_203B240->unkC != 0) { - gUnknown_203B240->unk8 = 0; - sub_801C6D0(1); - } - else { - sub_801C6D0(3); - } - break; - case 2: - PlayMenuSoundEffect(1); - sub_801C6D0(2); - break; - } -} - -void sub_801C848(void) -{ - - if (gUnknown_203B240->unk8 < (gUnknown_203B240->unkC - 1)) { - if ((gUnknown_203B240->unk20 & 8)) { - sub_8013F84(); - } - gUnknown_203B240->unk20++; - } - switch(sub_8012A64(&gUnknown_203B240->unk88,gUnknown_203B240->unk24)) - { - case 1: - PlayMenuSoundEffect(0); - gUnknown_203B240->unk8++; - if (gUnknown_203B240->unk8 < gUnknown_203B240->unkC) { - sub_801C6D0(1); - } - else { - sub_801C6D0(0); - } - break; - case 2: - PlayMenuSoundEffect(1); - sub_801C6D0(2); - break; - } -} - -bool8 sub_801C8C4(s32 param_1, s32 param_2, UnkTextStruct2_sub *param_3, u32 param_4) -{ - if (sub_801CF14(param_1)) { - return FALSE; - } - else - { - if (gUnknown_203B244 == NULL) { - gUnknown_203B244 = MemoryAlloc(sizeof(struct unkStruct_203B244), 8); - } - gUnknown_203B244->unk0 = param_1; - sub_801CF94(); - gUnknown_203B244->unk4E8 = param_2; - gUnknown_203B244->unk4EC = &gUnknown_203B244->unk4F0[param_2]; - sub_8006518(gUnknown_203B244->unk4F0); - gUnknown_203B244->unk4F0[gUnknown_203B244->unk4E8] = gUnknown_80DBE54; - gUnknown_203B244->unk4EC->unk14 = gUnknown_203B244->unk550; - - if (param_3 != NULL) - gUnknown_203B244->unk4F0[gUnknown_203B244->unk4E8].unk8 = *param_3; - - sub_8012D08(gUnknown_203B244->unk4EC, param_4); - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B244->unk4F0, TRUE, TRUE); - sub_8013818(&gUnknown_203B244->input, sub_801CE58(), param_4, param_2); - if (gUnknown_203B248 == gUnknown_203B244->unk0) { - gUnknown_203B244->input.menuIndex = gUnknown_203B24C; - gUnknown_203B244->input.unk1E = gUnknown_203B24E; - sub_8013984(&gUnknown_203B244->input); - } - sub_801CC38(); - sub_801CCD8(); - return TRUE; - } -} - -u32 sub_801CA08(bool8 param_1) -{ - u32 index; - u32 temp; - u32 flag; - - if (param_1 == FALSE) { - sub_8013660(&gUnknown_203B244->input); - return 0; - } - switch(GetKeyPress(&(gUnknown_203B244->input))) - { - case 2: - PlayMenuSoundEffect(1); - return 2; - case 1: - PlayMenuSoundEffect(0); - return 3; - case 5: - case 6: - if (gUnknown_203B244->unk0 != 1) goto _0801CAF2; - index = sub_801CB24(); - if ((temp = sub_801CFE0(index), flag = FALSE, temp != 0) || (flag = (INVENTORY_SIZE > GetNumberOfFilledInventorySlots() + sub_801CFB8())) || flag != 0 ) { - PlayMenuSoundEffect(6); - gUnknown_203B244->unkF4[index] = gUnknown_203B244->unkF4[index] ^ 1; - sub_80138B8(&gUnknown_203B244->input,0); - sub_801CCD8(); - return 1; - } - else - { - PlayMenuSoundEffect(2); - goto _0801CAF2; - } - case 4: - PlayMenuSoundEffect(4); - return 4; - default: -_0801CAF2: - if (sub_80138B8(&gUnknown_203B244->input,1) != 0) { - sub_801CC38(); - sub_801CCD8(); - return 1; - } - else - { - return 0; - } - } -} - -u8 sub_801CB24(void) { - return gUnknown_203B244->itemIDs[(gUnknown_203B244->input.unk1E * gUnknown_203B244->input.unk1C) + gUnknown_203B244->input.menuIndex]; -} - -void sub_801CB5C(bool8 r0) { - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B244->unk4F0, FALSE, FALSE); - gUnknown_203B244->input.unk22 = sub_801CE58(); - sub_8013984(&gUnknown_203B244->input); - sub_801CC38(); - sub_801CCD8(); - if(r0) - { - AddMenuCursorSprite(&gUnknown_203B244->input); - } -} - -void sub_801CBB8(void) { - if(gUnknown_203B244 != NULL) - { - gUnknown_203B248 = gUnknown_203B244->unk0; - gUnknown_203B24C = gUnknown_203B244->input.menuIndex; - gUnknown_203B24E = gUnknown_203B244->input.unk1E; - gUnknown_203B244->unk4F0[gUnknown_203B244->unk4E8] = gUnknown_80DBE3C; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B244->unk4F0, TRUE, TRUE); - MemoryFree(gUnknown_203B244); - gUnknown_203B244 = NULL; - } -} - -NAKED -void sub_801CC38(void) -{ - asm_unified( - "\tpush {r4,r5,lr}\n" - "\tldr r4, _0801CCC4\n" - "\tldr r0, [r4]\n" - "\tmovs r1, 0xAA\n" - "\tlsls r1, 3\n" - "\tadds r0, r1\n" - "\tmovs r2, 0\n" - "\tmovs r1, 0x1\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tldr r1, _0801CCC8\n" - "\tadds r0, r1\n" - "\tstrb r2, [r0]\n" - "\tldr r0, [r4]\n" - "\tadds r1, 0x1\n" - "\tadds r0, r1\n" - "\tmovs r1, 0xC\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tldr r1, _0801CCCC\n" - "\tadds r0, r1\n" - "\tstrb r2, [r0]\n" - "\tldr r0, [r4]\n" - "\tldr r2, _0801CCD0\n" - "\tadds r0, r2\n" - "\tmovs r1, 0\n" - "\tldrsh r0, [r0, r1]\n" - "\tmovs r1, 0xC\n" - "\tbl sub_80095E4\n" - "\tadds r0, 0x2\n" - "\tlsls r0, 16\n" - "\tldr r3, [r4]\n" - "\tmovs r2, 0x9D\n" - "\tlsls r2, 3\n" - "\tadds r5, r3, r2\n" - "\tldr r2, [r5]\n" - "\tlsls r1, r2, 1\n" - "\tadds r1, r2\n" - "\tlsls r1, 3\n" - "\tadds r1, r3, r1\n" - "\tldr r2, _0801CCD4\n" - "\tadds r1, r2\n" - "\tasrs r2, r0, 16\n" - "\tlsrs r0, 16\n" - "\tstrh r0, [r1]\n" - "\tldr r1, [r5]\n" - "\tlsls r0, r1, 1\n" - "\tadds r0, r1\n" - "\tlsls r0, 3\n" - "\tadds r3, r0\n" - "\tadds r2, 0x2\n" - "\tmovs r0, 0xA0\n" - "\tlsls r0, 3\n" - "\tadds r3, r0\n" - "\tstrh r2, [r3]\n" - "\tbl ResetUnusedInputStruct\n" - "\tldr r0, [r4]\n" - "\tmovs r1, 0x9E\n" - "\tlsls r1, 3\n" - "\tadds r0, r1\n" - "\tmovs r1, 0x1\n" - "\tmovs r2, 0x1\n" - "\tbl sub_800641C\n" - "\tpop {r4,r5}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" -"_0801CCC4: .4byte gUnknown_203B244\n" -"_0801CCC8: .4byte 0x00000551\n" -"_0801CCCC: .4byte 0x00000553\n" -"_0801CCD0: .4byte 0x000004ce\n" -"_0801CCD4: .4byte 0x000004fe"); -} - -void sub_801CCD8(void) -{ - u32 y; - u32 y2; - u32 uVar3; - int index; - u8 buffer [80]; - - sub_8008C54(gUnknown_203B244->unk4E8); - sub_80073B8(gUnknown_203B244->unk4E8); - xxx_call_draw_string(10,0,gUnknown_80DBE6C,gUnknown_203B244->unk4E8,0); - sub_8012BC4(gUnknown_203B244->unk550[2] * 8 + 4,0, - gUnknown_203B244->input.unk1E + 1,2,7,gUnknown_203B244->unk4E8); - for(index = 0; index < gUnknown_203B244->input.unk1A; index++) { - uVar3 = gUnknown_203B244->itemIDs[(gUnknown_203B244->input.unk1E * gUnknown_203B244->input.unk1C) + index]; - BufferItemName(buffer,uVar3,NULL); - y = sub_8013800(&gUnknown_203B244->input,index); - xxx_call_draw_string(8,y,buffer,gUnknown_203B244->unk4E8,0); - y2 = sub_8013800(&gUnknown_203B244->input,index); - sub_8012BC4((gUnknown_203B244->unk4EC->unkC << 3) - 2,y2, - gTeamInventoryRef->teamStorage[uVar3],3,5,gUnknown_203B244->unk4E8); - if ((sub_801CFE0(uVar3) & 1) != 0) { - sub_8007B7C(gUnknown_203B244->unk4E8,0x8,sub_8013800(&gUnknown_203B244->input,index), (gUnknown_203B244->unk4EC->unkC + -1) * '\b',10); - } - } - sub_80073E0(gUnknown_203B244->unk4E8); -} - -u32 sub_801CE58(void) -{ - u8 uVar1; - int orderL; - int orderR; - int itemCount; - int itemR; - s32 itemIndex; // re-used variable to match - - itemCount = 0; - for(itemIndex = 1; itemIndex < NUMBER_OF_ITEM_IDS; itemIndex++) - { - if ((gUnknown_203B244->unk0 == 2) || - ((gTeamInventoryRef->teamStorage[itemIndex] != 0) && (IsNotMoneyOrUsedTMItem(itemIndex)))) { - gUnknown_203B244->itemIDs[itemCount] = itemIndex; - itemCount++; - } - } - - for(itemIndex = 0; itemIndex < itemCount - 1; itemIndex++) { - for(itemR = itemIndex + 1; itemR < itemCount; itemR++) { - orderL = GetItemOrder(gUnknown_203B244->itemIDs[itemIndex]); - orderR = GetItemOrder(gUnknown_203B244->itemIDs[itemR]); - if (orderL > orderR) { - uVar1 = gUnknown_203B244->itemIDs[itemIndex]; - gUnknown_203B244->itemIDs[itemIndex] = gUnknown_203B244->itemIDs[itemR]; - gUnknown_203B244->itemIDs[itemR] = uVar1; - } - } - } - return itemCount; -} - -bool8 sub_801CF14(s32 param_1) { - s32 itemID; - if(param_1 == 2){ - return FALSE; - } - else { - for(itemID = ITEM_STICK; itemID < NUMBER_OF_ITEM_IDS; itemID++) - { - if ((gTeamInventoryRef->teamStorage[itemID] != 0) && (IsNotMoneyOrUsedTMItem(itemID))) return FALSE; - } - return TRUE; - } -} - -bool8 sub_801CF50(s32 param_1) { - s32 itemID; - if(param_1 == 2){ - return FALSE; - } - else { - for(itemID = ITEM_STICK; itemID < NUMBER_OF_ITEM_IDS; itemID++) - { - if ((IsNotMoneyOrUsedTMItem(itemID)) && (gTeamInventoryRef->teamStorage[itemID] < 999)) return FALSE; - } - return TRUE; - } -} - -void sub_801CF94(void) -{ - s32 itemID; - - for(itemID = ITEM_NOTHING; itemID < NUMBER_OF_ITEM_IDS; itemID++) - { - gUnknown_203B244->unkF4[itemID] = 0; - } -} - -s32 sub_801CFB8(void) -{ - s32 itemID; - s32 counter; - - counter = 0; - for(itemID = ITEM_NOTHING; itemID < NUMBER_OF_ITEM_IDS; itemID++) - { - if(gUnknown_203B244->unkF4[itemID] != 0) - { - counter++; - } - } - return counter; -} - -u32 sub_801CFE0(u8 index) -{ - return gUnknown_203B244->unkF4[index]; -} - -// Unused -void sub_801CFF4(u8 index, u32 value) -{ - gUnknown_203B244->unkF4[index] = value; -} - -struct unkStruct_203B244 *sub_801D008(void) -{ - return gUnknown_203B244; -} - -bool8 sub_801D014(PokemonStruct1 *param_1) -{ - s32 index; - PokemonStruct1 *pokemon; - struct unk_203B250 *preload; - - ResetUnusedInputStruct(); - sub_800641C(NULL, TRUE, TRUE); - gUnknown_203B250 = MemoryAlloc(sizeof(struct unk_203B250), 8); - gUnknown_203B250->menuAction = gUnknown_203B254; - gUnknown_203B250->pokeStruct = param_1; - if (gUnknown_203B250->pokeStruct != NULL) { - for(index = 0; index < NUM_MONSTERS; index++) - { - preload = gUnknown_203B250; - pokemon = &gRecruitedPokemonRef->pokemon[(s16)index]; // cast is needed here - if(preload->pokeStruct == pokemon) - { - preload->index = index; - break; - } - } - } - else { - gUnknown_203B250->index = NUM_MONSTERS; - } - gUnknown_203B250->currFriendAreaLocation = sub_8002658(sub_80A5728()); - gUnknown_203B250->unk8 = 0; - gUnknown_203B250->unk9 = 0; - gUnknown_203B250->unkC = GetPlayerPokemonStruct(); - gUnknown_203B250->unk7 = 0; - if (gUnknown_203B250->pokeStruct != NULL) { - sub_801D208(5); - } - else { - sub_801D208(0); - } - return 1; -} - -u32 sub_801D0DC(void) -{ - switch(gUnknown_203B250->state) - { + switch (sUnknown_203B240->state) { case 0: - case 1: - sub_801D680(); + sub_8008C54(sUnknown_203B240->unk24); + sub_80073B8(sUnknown_203B240->unk24); + skillName = GetIQSkillName(sUnknown_203B240->chosenIQSkill); + strcpy(gUnknown_202DE58, skillName); + xxx_format_and_draw(16, 0, sFmtMoveItem0, 0, 0); // {ARG_MOVE_ITEM_0} + xxx_call_draw_string(8, 16, GetIQSkillDescription(sUnknown_203B240->chosenIQSkill), sUnknown_203B240->unk24, 0); + sub_80073E0(sUnknown_203B240->unk24); + sUnknown_203B240->unkC = sub_8097DF0(GetIQSkillDescription(sUnknown_203B240->chosenIQSkill), sUnknown_203B240->unk10); + sUnknown_203B240->unk20 = 0; break; + case 1: + sub_8008C54(sUnknown_203B240->unk24); + sub_80073B8(sUnknown_203B240->unk24); + preload = sUnknown_203B240->unk10[sUnknown_203B240->unk8]; + strcpy(gAvailablePokemonNames, preload->pokeName); + xxx_format_and_draw(16, 0, sFmtPkmn0, sUnknown_203B240->unk24, 0); // {ARG_POKEMON_0} + xxx_format_and_draw(4, 16, sUnknown_203B240->unk10[sUnknown_203B240->unk8]->unk4, sUnknown_203B240->unk24, 0); + sub_80073E0(sUnknown_203B240->unk24); + break; + case 2: case 3: - sub_801D760(); break; - case 4: - sub_801D77C(); - break; - case 5: - sub_801D798(); - break; - case 6: - case 7: - sub_801D7CC(); - break; - case 8: - sub_801D808(); - break; - case 9: - sub_801D824(); - break; - case 10: - sub_801D840(); - break; - case 0xb: - sub_801D85C(); - break; - case 0xc: - sub_801D878(); - break; - default: - return 3; - } - return 0; -} - - -u32 sub_801D178(void) -{ - PokemonStruct1 *pokeStruct; - - if (gUnknown_203B250->unk9 != 0) - { - return 2; - } - else if (gUnknown_203B250->unk7 != 0) - { - return 3; - } - else if (gUnknown_203B250->unk8 != 0) - { - return 1; - } - else if (gUnknown_203B250->unkC != GetPlayerPokemonStruct()) - { - goto _ret4; - } - else if (sub_80A7AE8(7) < 0) - { - return 0; - } - else if((pokeStruct = sub_808D3F8(), (pokeStruct->unk0 >> 1 & 1) == 0)) - { -_ret4: - return 4; - } - else - { - return 0; } } -u8 sub_801D1D4(void) +static void sub_801C7D4(void) { - return gUnknown_203B250->unk7; -} + if (sUnknown_203B240->unkC != 0) { + if (sUnknown_203B240->unk20 & 8) + sub_8013F84(); -void sub_801D1E0(void) -{ - if(gUnknown_203B250 != NULL) - { - gUnknown_203B254 = gUnknown_203B250->menuAction; - MemoryFree(gUnknown_203B250); - gUnknown_203B250 = NULL; + sUnknown_203B240->unk20++; } -} -void sub_801D208(u32 newState) -{ - gUnknown_203B250->state = newState; - sub_801D220(); - sub_801D3A8(); -} - -void sub_801D220(void) -{ - s32 i; - - sub_8006518(gUnknown_203B250->unkB8); - - switch (gUnknown_203B250->state) { - case 0: - sub_801D4C0(); - - if (gUnknown_203B250->pokeStruct != NULL) { - for (i = 0; i < 4; i++) - gUnknown_203B250->unkB8[i] = gUnknown_80DBE7C; - - gUnknown_203B250->unkB8[0] = gUnknown_80DBE98; - sub_8012CAC(gUnknown_203B250->unkB8, gUnknown_203B250->unk68); - gUnknown_203B250->unkB8[0].unkC = 9; - } - else { - for (i = 0; i < 4; i++) - gUnknown_203B250->unkB8[i] = gUnknown_80DBEB0[i]; - - sub_8012CAC(gUnknown_203B250->unkB8, gUnknown_203B250->unk68); - gUnknown_203B250->unkB8[0].unkC = 8; - } - break; + switch (sub_8012A64(&sUnknown_203B240->unk88, sUnknown_203B240->unk24)) { case 1: - sub_801D4C0(); + PlayMenuSoundEffect(0); - if (gUnknown_203B250->pokeStruct != NULL) { - for (i = 0; i < 4; i++) - gUnknown_203B250->unkB8[i] = gUnknown_80DBE7C; - - gUnknown_203B250->unkB8[0] = gUnknown_80DBE98; - sub_8012CAC(gUnknown_203B250->unkB8, gUnknown_203B250->unk68); - gUnknown_203B250->unkB8[0].unkC = 9; - } - else { - for (i = 0; i < 4; i++) - gUnknown_203B250->unkB8[i] = gUnknown_80DBEB0[i]; - - sub_8012CAC(gUnknown_203B250->unkB8, gUnknown_203B250->unk68); - gUnknown_203B250->unkB8[0].unkC = 8; + if (sUnknown_203B240->unkC != 0) { + sUnknown_203B240->unk8 = 0; + sub_801C6D0(1); } + else + sub_801C6D0(3); break; - default: - for (i = 0; i < 4; i++) - gUnknown_203B250->unkB8[i] = gUnknown_80DBE7C; + case 2: + PlayMenuSoundEffect(1); + sub_801C6D0(2); break; } +} - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B250->unkB8, TRUE, TRUE); +static void sub_801C848(void) +{ + if (sUnknown_203B240->unk8 < sUnknown_203B240->unkC - 1) { + if (sUnknown_203B240->unk20 & 8) + sub_8013F84(); + + sUnknown_203B240->unk20++; + } + + switch (sub_8012A64(&sUnknown_203B240->unk88, sUnknown_203B240->unk24)) { + case 1: + PlayMenuSoundEffect(0); + sUnknown_203B240->unk8++; + + if (sUnknown_203B240->unk8 < sUnknown_203B240->unkC) + sub_801C6D0(1); + else + sub_801C6D0(0); + break; + case 2: + PlayMenuSoundEffect(1); + sub_801C6D0(2); + break; + } } \ No newline at end of file diff --git a/src/code_801C8C4.c b/src/code_801C8C4.c new file mode 100644 index 000000000..5f8deebef --- /dev/null +++ b/src/code_801C8C4.c @@ -0,0 +1,341 @@ +#include "global.h" +#include "code_80118A4.h" +#include "code_801C8C4.h" +#include "items.h" +#include "memory.h" +#include "menu_input.h" +#include "text1.h" +#include "text2.h" + +static EWRAM_DATA_2 struct unkStruct_203B244 *sUnknown_203B244 = {0}; +static EWRAM_DATA_2 u32 sUnknown_203B248 = {0}; +static EWRAM_DATA_2 u16 sUnknown_203B24C = {0}; +static EWRAM_DATA_2 u16 sUnknown_203B24E = {0}; + +#include "data/code_801C8C4.h" + +static void sub_801CC38(void); +static u32 sub_801CE58(void); + +bool8 sub_801C8C4(s32 a0, s32 a1, UnkTextStruct2_sub *a2, u32 a3) +{ + if (sub_801CF14(a0)) + return FALSE; + + if (sUnknown_203B244 == NULL) + sUnknown_203B244 = MemoryAlloc(sizeof(struct unkStruct_203B244), 8); + + sUnknown_203B244->unk0 = a0; + sub_801CF94(); + sUnknown_203B244->unk4E8 = a1; + sUnknown_203B244->unk4EC = &sUnknown_203B244->unk4F0[a1]; + sub_8006518(sUnknown_203B244->unk4F0); + sUnknown_203B244->unk4F0[sUnknown_203B244->unk4E8] = sUnknown_80DBE54; + sUnknown_203B244->unk4EC->unk14 = sUnknown_203B244->unk550; + + if (a2 != NULL) + sUnknown_203B244->unk4F0[sUnknown_203B244->unk4E8].unk8 = *a2; + + sub_8012D08(sUnknown_203B244->unk4EC, a3); + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B244->unk4F0, TRUE, TRUE); + sub_8013818(&sUnknown_203B244->input, sub_801CE58(), a3, a1); + + if (sUnknown_203B248 == sUnknown_203B244->unk0) { + sUnknown_203B244->input.menuIndex = sUnknown_203B24C; + sUnknown_203B244->input.unk1E = sUnknown_203B24E; + sub_8013984(&sUnknown_203B244->input); + } + + sub_801CC38(); + sub_801CCD8(); + return TRUE; +} + +u32 sub_801CA08(bool8 a0) +{ + u32 index; + u32 temp; + u32 flag; + + if (a0 == FALSE) { + sub_8013660(&sUnknown_203B244->input); + return 0; + } + + switch (GetKeyPress(&sUnknown_203B244->input)) { + case 2: + PlayMenuSoundEffect(1); + return 2; + case 1: + PlayMenuSoundEffect(0); + return 3; + case 5: + case 6: + if (sUnknown_203B244->unk0 != 1) + goto _0801CAF2; + + index = sub_801CB24(); + temp = sub_801CFE0(index); + flag = FALSE; + if (temp != 0 || (flag = (INVENTORY_SIZE > GetNumberOfFilledInventorySlots() + sub_801CFB8())) || flag) { + PlayMenuSoundEffect(6); + sUnknown_203B244->unkF4[index] = sUnknown_203B244->unkF4[index] ^ 1; + sub_80138B8(&sUnknown_203B244->input,0); + sub_801CCD8(); + return 1; + } + + PlayMenuSoundEffect(2); + goto _0801CAF2; + case 4: + PlayMenuSoundEffect(4); + return 4; + default: + _0801CAF2: + if (sub_80138B8(&sUnknown_203B244->input, 1)) { + sub_801CC38(); + sub_801CCD8(); + return 1; + } + return 0; + } +} + +u8 sub_801CB24(void) +{ + return sUnknown_203B244->itemIDs[(sUnknown_203B244->input.unk1E * sUnknown_203B244->input.unk1C) + sUnknown_203B244->input.menuIndex]; +} + +void sub_801CB5C(bool8 a0) +{ + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B244->unk4F0, FALSE, FALSE); + sUnknown_203B244->input.unk22 = sub_801CE58(); + sub_8013984(&sUnknown_203B244->input); + sub_801CC38(); + sub_801CCD8(); + + if (a0) + AddMenuCursorSprite(&sUnknown_203B244->input); +} + +void sub_801CBB8(void) +{ + if (sUnknown_203B244 != NULL) { + sUnknown_203B248 = sUnknown_203B244->unk0; + sUnknown_203B24C = sUnknown_203B244->input.menuIndex; + sUnknown_203B24E = sUnknown_203B244->input.unk1E; + sUnknown_203B244->unk4F0[sUnknown_203B244->unk4E8] = sUnknown_80DBE3C; + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B244->unk4F0, TRUE, TRUE); + MemoryFree(sUnknown_203B244); + sUnknown_203B244 = NULL; + } +} + +NAKED +static void sub_801CC38(void) +{ + asm_unified( + "\tpush {r4,r5,lr}\n" + "\tldr r4, _0801CCC4\n" + "\tldr r0, [r4]\n" + "\tmovs r1, 0xAA\n" + "\tlsls r1, 3\n" + "\tadds r0, r1\n" + "\tmovs r2, 0\n" + "\tmovs r1, 0x1\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tldr r1, _0801CCC8\n" + "\tadds r0, r1\n" + "\tstrb r2, [r0]\n" + "\tldr r0, [r4]\n" + "\tadds r1, 0x1\n" + "\tadds r0, r1\n" + "\tmovs r1, 0xC\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tldr r1, _0801CCCC\n" + "\tadds r0, r1\n" + "\tstrb r2, [r0]\n" + "\tldr r0, [r4]\n" + "\tldr r2, _0801CCD0\n" + "\tadds r0, r2\n" + "\tmovs r1, 0\n" + "\tldrsh r0, [r0, r1]\n" + "\tmovs r1, 0xC\n" + "\tbl sub_80095E4\n" + "\tadds r0, 0x2\n" + "\tlsls r0, 16\n" + "\tldr r3, [r4]\n" + "\tmovs r2, 0x9D\n" + "\tlsls r2, 3\n" + "\tadds r5, r3, r2\n" + "\tldr r2, [r5]\n" + "\tlsls r1, r2, 1\n" + "\tadds r1, r2\n" + "\tlsls r1, 3\n" + "\tadds r1, r3, r1\n" + "\tldr r2, _0801CCD4\n" + "\tadds r1, r2\n" + "\tasrs r2, r0, 16\n" + "\tlsrs r0, 16\n" + "\tstrh r0, [r1]\n" + "\tldr r1, [r5]\n" + "\tlsls r0, r1, 1\n" + "\tadds r0, r1\n" + "\tlsls r0, 3\n" + "\tadds r3, r0\n" + "\tadds r2, 0x2\n" + "\tmovs r0, 0xA0\n" + "\tlsls r0, 3\n" + "\tadds r3, r0\n" + "\tstrh r2, [r3]\n" + "\tbl ResetUnusedInputStruct\n" + "\tldr r0, [r4]\n" + "\tmovs r1, 0x9E\n" + "\tlsls r1, 3\n" + "\tadds r0, r1\n" + "\tmovs r1, 0x1\n" + "\tmovs r2, 0x1\n" + "\tbl sub_800641C\n" + "\tpop {r4,r5}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" +"_0801CCC4: .4byte sUnknown_203B244\n" +"_0801CCC8: .4byte 0x00000551\n" +"_0801CCCC: .4byte 0x00000553\n" +"_0801CCD0: .4byte 0x000004ce\n" +"_0801CCD4: .4byte 0x000004fe"); +} + +void sub_801CCD8(void) +{ + u32 y; + u32 y2; + u32 uVar3; + s32 index; + u8 buffer[80]; + + sub_8008C54(sUnknown_203B244->unk4E8); + sub_80073B8(sUnknown_203B244->unk4E8); + xxx_call_draw_string(10, 0, sStorage, sUnknown_203B244->unk4E8, 0); + sub_8012BC4(sUnknown_203B244->unk550[2] * 8 + 4, 0, sUnknown_203B244->input.unk1E + 1, 2, 7, sUnknown_203B244->unk4E8); + + for(index = 0; index < sUnknown_203B244->input.unk1A; index++) { + uVar3 = sUnknown_203B244->itemIDs[(sUnknown_203B244->input.unk1E * sUnknown_203B244->input.unk1C) + index]; + BufferItemName(buffer, uVar3, NULL); + y = sub_8013800(&sUnknown_203B244->input, index); + xxx_call_draw_string(8, y, buffer, sUnknown_203B244->unk4E8, 0); + y2 = sub_8013800(&sUnknown_203B244->input, index); + sub_8012BC4((sUnknown_203B244->unk4EC->unkC * 8) - 2, y2, gTeamInventoryRef->teamStorage[uVar3], 3, 5, sUnknown_203B244->unk4E8); + + if (sub_801CFE0(uVar3) & 1) + sub_8007B7C(sUnknown_203B244->unk4E8, 8, sub_8013800(&sUnknown_203B244->input, index), (sUnknown_203B244->unk4EC->unkC - 1) * '\b', 10); // TODO: Ghidra being crazy + } + + sub_80073E0(sUnknown_203B244->unk4E8); +} + +static u32 sub_801CE58(void) +{ + u8 uVar1; + s32 orderL; + s32 orderR; + s32 itemCount; + s32 itemR; + s32 itemIndex; // re-used variable to match + + itemCount = 0; + for (itemIndex = 1; itemIndex < NUMBER_OF_ITEM_IDS; itemIndex++) { + if (sUnknown_203B244->unk0 == 2 || (gTeamInventoryRef->teamStorage[itemIndex] != 0 && IsNotMoneyOrUsedTMItem(itemIndex))) { + sUnknown_203B244->itemIDs[itemCount] = itemIndex; + itemCount++; + } + } + + for (itemIndex = 0; itemIndex < itemCount - 1; itemIndex++) { + for (itemR = itemIndex + 1; itemR < itemCount; itemR++) { + orderL = GetItemOrder(sUnknown_203B244->itemIDs[itemIndex]); + orderR = GetItemOrder(sUnknown_203B244->itemIDs[itemR]); + + if (orderL > orderR) { + uVar1 = sUnknown_203B244->itemIDs[itemIndex]; + sUnknown_203B244->itemIDs[itemIndex] = sUnknown_203B244->itemIDs[itemR]; + sUnknown_203B244->itemIDs[itemR] = uVar1; + } + } + } + + return itemCount; +} + +bool8 sub_801CF14(s32 a0) +{ + s32 itemID; + + if (a0 == 2) + return FALSE; + + for (itemID = ITEM_STICK; itemID < NUMBER_OF_ITEM_IDS; itemID++) { + if (gTeamInventoryRef->teamStorage[itemID] != 0 && IsNotMoneyOrUsedTMItem(itemID)) + return FALSE; + } + + return TRUE; +} + +bool8 sub_801CF50(s32 a0) +{ + s32 itemID; + + if (a0 == 2) + return FALSE; + + for (itemID = ITEM_STICK; itemID < NUMBER_OF_ITEM_IDS; itemID++) { + if (IsNotMoneyOrUsedTMItem(itemID) && gTeamInventoryRef->teamStorage[itemID] < 999) + return FALSE; + } + + return TRUE; +} + +void sub_801CF94(void) +{ + s32 itemID; + + for (itemID = ITEM_NOTHING; itemID < NUMBER_OF_ITEM_IDS; itemID++) + sUnknown_203B244->unkF4[itemID] = 0; +} + +s32 sub_801CFB8(void) +{ + s32 itemID; + s32 counter; + + counter = 0; + for (itemID = ITEM_NOTHING; itemID < NUMBER_OF_ITEM_IDS; itemID++) { + if (sUnknown_203B244->unkF4[itemID] != 0) + counter++; + } + + return counter; +} + +u32 sub_801CFE0(u8 index) +{ + return sUnknown_203B244->unkF4[index]; +} + +UNUSED static void sub_801CFF4(u8 index, u32 value) +{ + sUnknown_203B244->unkF4[index] = value; +} + +struct unkStruct_203B244 *sub_801D008(void) +{ + return sUnknown_203B244; +} \ No newline at end of file diff --git a/src/code_801D014.c b/src/code_801D014.c new file mode 100644 index 000000000..526289e27 --- /dev/null +++ b/src/code_801D014.c @@ -0,0 +1,622 @@ +#include "global.h" +#include "bg_palette_buffer.h" +#include "code_800D090.h" +#include "code_80130A8.h" +#include "code_801BEEC.h" +#include "code_801D014.h" +#include "code_801EE10_1.h" +#include "code_8023144.h" +#include "code_8096AF8.h" +#include "common_strings.h" +#include "constants/friend_area.h" +#include "event_flag.h" +#include "friend_area.h" +#include "friend_area_action_menu.h" +#include "friend_list_menu.h" +#include "ground_lives.h" +#include "ground_main.h" +#include "ground_map_1.h" +#include "memory.h" +#include "menu_input.h" +#include "options_menu.h" +#include "party_list_menu.h" +#include "rescue_team_info.h" +#include "text1.h" +#include "text2.h" +#include "wigglytuff_shop.h" +#include "wonder_mail_2_1.h" + +extern u8 gAvailablePokemonNames[]; // 202DF98 + +static EWRAM_DATA_2 struct unk_203B250 *sUnknown_203B250 = {0}; +static EWRAM_DATA_2 u32 sUnknown_203B254 = {0}; + +extern const struct FileArchive gTitleMenuFileArchive; + +#include "data/code_801D014.h" + +static void LoadTeamRankBadge(u32, u32, u32); + +static void sub_801D208(u32 newState); +static void sub_801D220(void); +static void sub_801D3A8(void); +static void sub_801D4C0(void); +static void sub_801D680(void); +static void sub_801D760(void); +static void sub_801D77C(void); +static void sub_801D798(void); +static void sub_801D7CC(void); +static void sub_801D808(void); +static void sub_801D824(void); +static void sub_801D840(void); +static void sub_801D85C(void); +static void sub_801D878(void); +static void sub_801D894(void); + +bool8 sub_801D014(PokemonStruct1 *a0) +{ + s32 index; + PokemonStruct1 *pokemon; + struct unk_203B250 *preload; + + ResetUnusedInputStruct(); + sub_800641C(NULL, TRUE, TRUE); + + sUnknown_203B250 = MemoryAlloc(sizeof(struct unk_203B250), 8); + sUnknown_203B250->menuAction = sUnknown_203B254; + sUnknown_203B250->pokeStruct = a0; + + if (sUnknown_203B250->pokeStruct != NULL) { + for (index = 0; index < NUM_MONSTERS; index++) { + preload = sUnknown_203B250; + pokemon = &gRecruitedPokemonRef->pokemon[(s16)index]; // cast is needed here + + if (preload->pokeStruct == pokemon) { + preload->index = index; + break; + } + } + } + else + sUnknown_203B250->index = NUM_MONSTERS; + + sUnknown_203B250->currFriendAreaLocation = sub_8002658(sub_80A5728()); + sUnknown_203B250->unk8 = 0; + sUnknown_203B250->unk9 = 0; + sUnknown_203B250->unkC = GetPlayerPokemonStruct(); + sUnknown_203B250->unk7 = 0; + + if (sUnknown_203B250->pokeStruct != NULL) + sub_801D208(5); + else + sub_801D208(0); + + return TRUE; +} + +u32 sub_801D0DC(void) +{ + switch (sUnknown_203B250->state) { + case 0: + case 1: + sub_801D680(); + break; + case 3: + sub_801D760(); + break; + case 4: + sub_801D77C(); + break; + case 5: + sub_801D798(); + break; + case 6: + case 7: + sub_801D7CC(); + break; + case 8: + sub_801D808(); + break; + case 9: + sub_801D824(); + break; + case 10: + sub_801D840(); + break; + case 11: + sub_801D85C(); + break; + case 12: + sub_801D878(); + break; + default: + return 3; + } + return 0; +} + +u32 sub_801D178(void) +{ + PokemonStruct1 *pokeStruct; + + if (sUnknown_203B250->unk9 != 0) + return 2; + + if (sUnknown_203B250->unk7 != 0) + return 3; + + if (sUnknown_203B250->unk8 != 0) + return 1; + + if (sUnknown_203B250->unkC != GetPlayerPokemonStruct()) + goto _ret4; + + if (sub_80A7AE8(7) < 0) + return 0; + + pokeStruct = sub_808D3F8(); + if (!(pokeStruct->unk0 >> 1 & 1)) +_ret4: + return 4; + + return 0; +} + +u8 sub_801D1D4(void) +{ + return sUnknown_203B250->unk7; +} + +void sub_801D1E0(void) +{ + if (sUnknown_203B250 != NULL) { + sUnknown_203B254 = sUnknown_203B250->menuAction; + MemoryFree(sUnknown_203B250); + sUnknown_203B250 = NULL; + } +} + +static void sub_801D208(u32 newState) +{ + sUnknown_203B250->state = newState; + sub_801D220(); + sub_801D3A8(); +} + +static void sub_801D220(void) +{ + s32 i; + + sub_8006518(sUnknown_203B250->unkB8); + + switch (sUnknown_203B250->state) { + case 0: + sub_801D4C0(); + + if (sUnknown_203B250->pokeStruct != NULL) { + for (i = 0; i < 4; i++) + sUnknown_203B250->unkB8[i] = sUnknown_80DBE7C; + + sUnknown_203B250->unkB8[0] = sUnknown_80DBE98; + sub_8012CAC(sUnknown_203B250->unkB8, sUnknown_203B250->unk68); + sUnknown_203B250->unkB8[0].unkC = 9; + } + else { + for (i = 0; i < 4; i++) + sUnknown_203B250->unkB8[i] = sUnknown_80DBEB0[i]; + + sub_8012CAC(sUnknown_203B250->unkB8, sUnknown_203B250->unk68); + sUnknown_203B250->unkB8[0].unkC = 8; + } + break; + case 1: + sub_801D4C0(); + + if (sUnknown_203B250->pokeStruct != NULL) { + for (i = 0; i < 4; i++) + sUnknown_203B250->unkB8[i] = sUnknown_80DBE7C; + + sUnknown_203B250->unkB8[0] = sUnknown_80DBE98; + sub_8012CAC(sUnknown_203B250->unkB8, sUnknown_203B250->unk68); + sUnknown_203B250->unkB8[0].unkC = 9; + } + else { + for (i = 0; i < 4; i++) + sUnknown_203B250->unkB8[i] = sUnknown_80DBEB0[i]; + + sub_8012CAC(sUnknown_203B250->unkB8, sUnknown_203B250->unk68); + sUnknown_203B250->unkB8[0].unkC = 8; + } + break; + default: + for (i = 0; i < 4; i++) + sUnknown_203B250->unkB8[i] = sUnknown_80DBE7C; + break; + } + + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B250->unkB8, TRUE, TRUE); +} + +static void sub_801D3A8(void) +{ + switch (sUnknown_203B250->state) { + case 0: + case 1: + if (sUnknown_203B250->pokeStruct != NULL) { + PrintColoredPokeNameToBuffer(gAvailablePokemonNames, sUnknown_203B250->pokeStruct, 7); + sUnknown_203B250->unk18.unk0 = gAvailablePokemonNames; + sub_8012D60(&sUnknown_203B250->unk18, sUnknown_203B250->unk68, 0, sUnknown_203B250->unkA8, sUnknown_203B250->menuAction, 0); + } + else { + sub_801D894(); + sub_8012D60(&sUnknown_203B250->unk18, sUnknown_203B250->unk68, 0, sUnknown_203B250->unkA8, sUnknown_203B250->menuAction, 0); + } + break; + case 3: + sub_80227B8(sUnknown_203B250->pokeStruct); + break; + case 4: + sub_8027074(); + break; + case 5: + sub_8025EF4(sUnknown_203B250->pokeStruct); + break; + case 6: + sub_80252F0(0); + break; + case 7: + sub_80252F0(1); + break; + case 8: + sub_8024458(sUnknown_203B250->index, 2); + break; + case 9: + sub_801BEEC(sUnknown_203B250->index); + break; + case 10: + sub_8021774(sUnknown_203B250->currFriendAreaLocation, TRUE, 2); + break; + case 11: + InitializeJobListMenu(0); + break; + case 12: + sub_801DCC4(); + break; + } +} + +static void sub_801D4C0(void) +{ + s32 index; + s32 loopMax; + + loopMax = 0; + MemoryFill16(sUnknown_203B250->unkA8, 0, sizeof(sUnknown_203B250->unkA8)); + + if (sUnknown_203B250->currFriendAreaLocation == 0) { + if (sub_8096E2C()) { + sUnknown_203B250->unk68[loopMax].menuAction = 2; + sUnknown_203B250->unk68[loopMax].text = sItems; + if (GetNumberOfFilledInventorySlots() == 0) + sUnknown_203B250->unkA8[loopMax] = 1; + + loopMax++; + sUnknown_203B250->unk68[loopMax].text = sTeam; + sUnknown_203B250->unk68[loopMax].menuAction = 4; + + loopMax++; + if (sub_80023E4(2)) { + sUnknown_203B250->unk68[loopMax].text = sJobList; + sUnknown_203B250->unk68[loopMax].menuAction = 9; + if (HasNoAcceptedJobs()) + sUnknown_203B250->unkA8[loopMax] = 1; + + loopMax++; + } + } + + sUnknown_203B250->unk68[loopMax].text = sOthers; + sUnknown_203B250->unk68[loopMax].menuAction = 11; + loopMax++; + } + else { + strcpy(gAvailablePokemonNames, sTripleQuestionMark); + + if (sub_8096E2C()) { + sUnknown_203B250->unk68[loopMax].text = gCommonFriend[0]; + sUnknown_203B250->unk68[loopMax].menuAction = 5; + if (sub_8024108(4)) + sUnknown_203B250->unkA8[loopMax] = 1; + + loopMax++; + sUnknown_203B250->unk68[loopMax].menuAction = 2; + sUnknown_203B250->unk68[loopMax].text = sItems; + if (GetNumberOfFilledInventorySlots() == 0) + sUnknown_203B250->unkA8[loopMax] = 1; + + loopMax++; + } + + sUnknown_203B250->unk68[loopMax].text = gCommonInfo[0]; + sUnknown_203B250->unk68[loopMax].menuAction = 8; + + loopMax++; + sUnknown_203B250->unk68[loopMax].text = gCommonExit[0]; + sUnknown_203B250->unk68[loopMax].menuAction = 10; + + loopMax++; + } + + sUnknown_203B250->unk68[loopMax].text = NULL; + sUnknown_203B250->unk68[loopMax].menuAction = 1; + + for (index = 0; index < loopMax; index++) { + if (sUnknown_203B250->unkA8[index] == 0) { + if (sUnknown_203B250->unk68[index].menuAction == sUnknown_203B250->menuAction) + return; + } + } + + for (index = 0; index < loopMax; index++) { + if (sUnknown_203B250->unkA8[index] == 0) { + sUnknown_203B250->menuAction = sUnknown_203B250->unk68[index].menuAction; + break; + } + } +} + +static void sub_801D680(void) +{ + s32 menuAction; + + menuAction = 0; + + if (!sub_8012FD8(&sUnknown_203B250->unk18)) { + sub_8013114(&sUnknown_203B250->unk18, &menuAction); + if (menuAction != 1) + sUnknown_203B250->menuAction = menuAction; + } + + switch (menuAction) { + case 2: + sub_801D208(3); + break; + case 4: + sub_801D208(6); + break; + case 3: + sub_801D208(4); + break; + case 5: + sub_801D208(7); + break; + case 6: + sub_801D208(8); + break; + case 7: + sub_801D208(9); + break; + case 8: + sub_801D208(10); + break; + case 9: + sub_801D208(11); + break; + case 10: + sUnknown_203B250->unk9 = 1; + sub_801D208(2); + break; + case 11: + sub_801D208(12); + break; + case 1: + sub_801D208(2); + break; + } +} + +static void sub_801D760(void) +{ + switch (sub_8022860()) { + case 0: + case 1: + default: + break; + case 2: + case 3: + sub_8022908(); + sub_801D208(1); + break; + } +} + +static void sub_801D77C(void) +{ + switch (sub_80270A4()) { + case 0: + case 1: + default: + break; + case 2: + case 3: + sub_8027168(); + sub_801D208(1); + break; + } +} + +static void sub_801D798(void) +{ + switch (sub_8025F68()) { + case 0: + case 1: + default: + break; + case 2: + case 3: + if (sub_802604C()) + sUnknown_203B250->unk7 = sUnknown_203B250->currFriendAreaLocation; + + sub_8026058(); + sub_801D208(2); + break; + } +} + +static void sub_801D7CC(void) +{ + switch (sub_8025354()) { + case 0: + case 1: + default: + break; + case 2: + case 3: + sUnknown_203B250->unk7 = sub_802540C(); + sub_8025418(); + + if (sUnknown_203B250->unk7 != 0) + sub_801D208(2); + else + sub_801D208(1); + break; + } +} + +static void sub_801D808(void) +{ + switch (sub_80244E4()) { + case 0: + case 1: + default: + break; + case 2: + case 3: + sub_802453C(); + sub_801D208(1); + break; + } +} + +static void sub_801D824(void) +{ + switch (sub_801BF48()) { + case 0: + case 1: + default: + break; + case 2: + case 3: + sub_801BF98(); + sub_801D208(1); + break; + } +} + +static void sub_801D840(void) +{ + switch (sub_80217EC()) { + case 0: + case 1: + default: + break; + case 2: + case 3: + sub_8021830(); + sub_801D208(1); + break; + } +} + +static void sub_801D85C(void) +{ + switch (sub_802C898()) { + case 0: + case 1: + default: + break; + case 2: + case 3: + sub_802C8F4(); + sub_801D208(1); + break; + } +} + +static void sub_801D878(void) +{ + switch (sub_801DCE8()) { + case 0: + case 1: + default: + break; + case 2: + case 3: + sub_801DD50(); + sub_801D208(1); + break; + } +} + +static void sub_801D894(void) +{ + u8 rank; + const u8 *location; + s32 location_length; + s32 x_coord; + + // Stored on stack + u32 *preload_string; + const u8 *r5; // R5 + u8 buffer[96]; // sp +4 + + if (sUnknown_203B250->currFriendAreaLocation == FRIEND_AREA_NONE) + location = sub_8098FB4(); + else + location = GetFriendAreaName(sUnknown_203B250->currFriendAreaLocation); + + // TODO this is def a hack + xxx_format_string(location, buffer, (u8 *)(&preload_string + 1), 0); + location_length = sub_8008ED0(buffer); + x_coord = (128 - location_length) / 2; // Centers the location name + sub_8008C54(1); + sub_80073B8(1); + xxx_call_draw_string(x_coord, 4, buffer, 1, 0); + sub_80073E0(1); + sub_8008C54(2); + sub_80073B8(2); + LoadTeamRankBadge(2, 8, 6); + + // Have to load before TeamRank funcs + r5 = sFmtPointsCyan; // %s {COLOR_1 CYAN}%d{END_COLOR_TEXT_1} Pts. + rank = GetRescueTeamRank(); + sprintfStatic(buffer, r5, GetTeamRankString(rank), GetTeamRankPts()); + xxx_call_draw_string(32, 4, buffer, 2, 0); + sprintfStatic(buffer, sFmtMoneyCyan, gTeamInventoryRef->teamMoney); + xxx_call_draw_string(32, 18, buffer, 2, 0); + sub_80073E0(2); +} + +static void LoadTeamRankBadge(u32 a0, u32 a1, u32 a2) +{ + OpenedFile *teamBadgeFile; + s32 palleteIndex; + u8 rank; + u8 *colorArray; + u8 *teamBadgePic; + + teamBadgeFile = OpenFileAndGetFileDataPtr(sTeamRankBadgeFileName, &gTitleMenuFileArchive); + teamBadgePic = ((struct TeamBadgeData *)(teamBadgeFile->data))->pics; + colorArray = ((struct TeamBadgeData *)(teamBadgeFile->data))->pallete; + + for (palleteIndex = 0; palleteIndex < 16; palleteIndex++) { + SetBGPaletteBufferColorArray(palleteIndex + 224, colorArray); + colorArray = colorArray + 4; + } + + rank = GetRescueTeamRank(); + teamBadgePic = &teamBadgePic[rank * 128]; + sub_8007E20(a0, a1, a2, 16, 16, teamBadgePic, 14); + CloseFile(teamBadgeFile); +} \ No newline at end of file diff --git a/src/code_801D760.c b/src/code_801D760.c deleted file mode 100644 index 3ff99cbd6..000000000 --- a/src/code_801D760.c +++ /dev/null @@ -1,686 +0,0 @@ -#include "global.h" -#include "bg_palette_buffer.h" -#include "code_801EE10_1.h" -#include "friend_area.h" -#include "constants/friend_area.h" -#include "constants/input.h" -#include "file_system.h" -#include "friend_list_menu.h" -#include "items.h" -#include "menu.h" -#include "pokemon.h" -#include "memory.h" -#include "input.h" -#include "text1.h" -#include "text2.h" -#include "rescue_team_info.h" -#include "code_800D090.h" -#include "menu_input.h" -#include "code_8021774.h" -#include "code_80118A4.h" -#include "wigglytuff_shop.h" -#include "event_flag.h" -#include "ground_main.h" -#include "code_801C620.h" -#include "common_strings.h" - -struct unkStruct_203B258 -{ - // size: 0xA0 - MenuInputStruct input; - u32 unk34; - UnkTextStruct2 *unk38; - UnkTextStruct2 unk3C[4]; - u8 unk9C[4]; -}; - -extern struct unkStruct_203B258 *gUnknown_203B258; -extern UnkTextStruct2 gUnknown_80DBF88; -extern UnkTextStruct2 gUnknown_80DBF70; - -extern unkStruct_811BAF4 gUnknown_811BAF4[10]; - -struct unkStruct_81188F0 -{ - u8 *text1; - u8 *text2; - u8 *text3; - u8 *text4; - u32 unk1; - u32 unk2; - u32 unk3; -}; - -extern struct unkStruct_81188F0 gUnknown_81188F0[10]; -extern u8 gUnknown_80DBFA0[]; // Field - - -extern void sub_801DB54(); -extern void sub_801DBD4(); - -extern void sub_801D208(u8); -extern u32 sub_801DCE8(void); -extern void sub_801DD50(void); -extern u32 sub_8022860(); -extern void sub_8022908(); -extern u32 sub_80244E4(void); -extern u32 sub_8025F68(); -extern u8 sub_802604C(); -extern void sub_8026058(); -extern void sub_8027168(); -extern u32 sub_80270A4(); -extern u32 sub_802C898(void); -extern void sub_802C8F4(void); -extern void InitializeJobListMenu(u32); - -extern const char *sub_8098FB4(); -extern void xxx_format_string(const char *, u8 *, u32 **, u32); -extern s32 sub_8008ED0(u8 *); -void LoadTeamRankBadge(u32, u32, u32); - -extern struct FileArchive gTitleMenuFileArchive; -extern const char gTeamRankBadgeFileName; - -extern u8 gAvailablePokemonNames[]; - -extern char gUnknown_80DBF3C[]; -extern char gUnknown_80DBF4C[]; -extern u8 gMenuItems[]; -extern u8 gMenuJobList[]; -extern u8 gMenuTeam[]; -extern u8 gMenuOthers[]; -extern u8 gUnknown_80DBF34[]; - -struct TeamBadgeData -{ - /* 0x0 */ u8 *pics; // probably a pointer to an arrays of pixels? - /* 0x4 */ u8 *pallete; // Pics share common pallete -}; - -struct unk_203B250 -{ - PokemonStruct1 *pokeStruct; - s16 index; - /* 0x6 */ u8 currFriendAreaLocation; // 0 when not in a friend area - u8 unk7; - u8 unk8; - u8 unk9; - PokemonStruct1 *unkC; - u32 state; - u32 menuAction; - MenuStruct unk18; - MenuItem unk68[8]; - u16 unkA8[8]; - UnkTextStruct2 unkB8[4]; -}; - -struct unk_203B250 *gUnknown_203B250; - -extern bool8 HasNoAcceptedJobs(void); -extern bool8 sub_8024108(u32); -extern bool8 sub_8096E2C(void); -extern u32 sub_801DCC4(void); -extern u32 sub_8027074(void); -extern void sub_80227B8(PokemonStruct1 *); -void sub_801D894(void); -u32 sub_8025EF4(PokemonStruct1 *); - -void sub_801D3A8(void) -{ - switch(gUnknown_203B250->state) - { - case 0: - case 1: - if(gUnknown_203B250->pokeStruct != NULL) - { - PrintColoredPokeNameToBuffer(gAvailablePokemonNames, gUnknown_203B250->pokeStruct, 7); - gUnknown_203B250->unk18.unk0 = gAvailablePokemonNames; - sub_8012D60(&gUnknown_203B250->unk18, gUnknown_203B250->unk68, 0, gUnknown_203B250->unkA8, gUnknown_203B250->menuAction, 0); - } - else { - sub_801D894(); - sub_8012D60(&gUnknown_203B250->unk18, gUnknown_203B250->unk68, 0, gUnknown_203B250->unkA8, gUnknown_203B250->menuAction, 0); - } - break; - case 3: - sub_80227B8(gUnknown_203B250->pokeStruct); - break; - case 4: - sub_8027074(); - break; - case 5: - sub_8025EF4(gUnknown_203B250->pokeStruct); - break; - case 6: - sub_80252F0(0); - break; - case 7: - sub_80252F0(1); - break; - case 8: - sub_8024458(gUnknown_203B250->index, 2); - break; - case 9: - sub_801BEEC(gUnknown_203B250->index); - break; - case 10: - sub_8021774(gUnknown_203B250->currFriendAreaLocation, TRUE, 2); - break; - case 11: - InitializeJobListMenu(0); - break; - case 12: - sub_801DCC4(); - break; - } -} - -void sub_801D4C0(void) -{ - s32 index; - s32 loopMax; - - loopMax = 0; - MemoryFill16(gUnknown_203B250->unkA8,0,sizeof(gUnknown_203B250->unkA8)); - if (gUnknown_203B250->currFriendAreaLocation == 0) { - if (sub_8096E2C()) { - gUnknown_203B250->unk68[loopMax].menuAction = 2; - gUnknown_203B250->unk68[loopMax].text = gMenuItems; - if (GetNumberOfFilledInventorySlots() == 0) { - gUnknown_203B250->unkA8[loopMax] = 1; - } - loopMax++; - gUnknown_203B250->unk68[loopMax].text = gMenuTeam; - gUnknown_203B250->unk68[loopMax].menuAction = 4; - loopMax++; - if (sub_80023E4(2)) { - gUnknown_203B250->unk68[loopMax].text = gMenuJobList; - gUnknown_203B250->unk68[loopMax].menuAction = 9; - if (HasNoAcceptedJobs()) { - gUnknown_203B250->unkA8[loopMax] = 1; - } - loopMax++; - } - } - gUnknown_203B250->unk68[loopMax].text = gMenuOthers; - gUnknown_203B250->unk68[loopMax].menuAction = 0xb; - loopMax++; - } - else { - strcpy(gAvailablePokemonNames,gUnknown_80DBF34); - if (sub_8096E2C()) { - gUnknown_203B250->unk68[loopMax].text = *gCommonFriend; - gUnknown_203B250->unk68[loopMax].menuAction = 5; - if (sub_8024108(4)) { - gUnknown_203B250->unkA8[loopMax] = 1; - } - loopMax++; - gUnknown_203B250->unk68[loopMax].menuAction = 2; - gUnknown_203B250->unk68[loopMax].text = gMenuItems; - if (GetNumberOfFilledInventorySlots() == 0) { - gUnknown_203B250->unkA8[loopMax] = 1; - } - loopMax++; - } - - gUnknown_203B250->unk68[loopMax].text = *gCommonInfo; - gUnknown_203B250->unk68[loopMax].menuAction = 8; - loopMax++; - gUnknown_203B250->unk68[loopMax].text = *gCommonExit; - gUnknown_203B250->unk68[loopMax].menuAction = 10; - loopMax++; - } - gUnknown_203B250->unk68[loopMax].text = NULL; - gUnknown_203B250->unk68[loopMax].menuAction = 1; - - for(index = 0; index < loopMax; index++) - { - if(gUnknown_203B250->unkA8[index] == 0) - { - if(gUnknown_203B250->unk68[index].menuAction == gUnknown_203B250->menuAction) - { - return; - } - } - } - - for(index = 0; index < loopMax; index++) - { - if(gUnknown_203B250->unkA8[index] == 0) - { - gUnknown_203B250->menuAction = gUnknown_203B250->unk68[index].menuAction; - break; - } - } -} - -void sub_801D680(void) -{ - int menuAction; - - menuAction = 0; - if (!(sub_8012FD8(&gUnknown_203B250->unk18)) && (sub_8013114(&gUnknown_203B250->unk18,&menuAction), menuAction != 1)) { - gUnknown_203B250->menuAction = menuAction; - } - switch(menuAction) { - case 2: - sub_801D208(3); - break; - case 4: - sub_801D208(6); - break; - case 3: - sub_801D208(4); - break; - case 5: - sub_801D208(7); - break; - case 6: - sub_801D208(8); - break; - case 7: - sub_801D208(9); - break; - case 8: - sub_801D208(10); - break; - case 9: - sub_801D208(0xb); - break; - case 10: - gUnknown_203B250->unk9 = 1; - sub_801D208(2); - break; - case 11: - sub_801D208(0xc); - break; - case 1: - sub_801D208(2); - break; - } -} - -void sub_801D760() -{ - switch(sub_8022860()) - { - case 0: - case 1: - default: - break; - case 2: - case 3: - sub_8022908(); - sub_801D208(1); - break; - } -} - -void sub_801D77C() -{ - switch(sub_80270A4()) - { - case 0: - case 1: - default: - break; - case 2: - case 3: - sub_8027168(); - sub_801D208(1); - break; - } -} - -void sub_801D798(void) -{ - switch(sub_8025F68()) - { - case 0: - case 1: - default: - break; - case 2: - case 3: - if(sub_802604C() != 0) - gUnknown_203B250->unk7 = gUnknown_203B250->currFriendAreaLocation; - sub_8026058(); - sub_801D208(2); - break; - } -} - -void sub_801D7CC() -{ - switch(sub_8025354()) - { - case 0: - case 1: - default: - break; - case 2: - case 3: - gUnknown_203B250->unk7 = sub_802540C(); - sub_8025418(); - if(gUnknown_203B250->unk7 != 0) - { - sub_801D208(2); - } - else - { - sub_801D208(1); - } - break; - } -} - -void sub_801D808(void) -{ - switch(sub_80244E4()) - { - case 0: - case 1: - default: - break; - case 2: - case 3: - sub_802453C(); - sub_801D208(1); - break; - } -} - -void sub_801D824(void) -{ - switch(sub_801BF48()) - { - case 0: - case 1: - default: - break; - case 2: - case 3: - sub_801BF98(); - sub_801D208(1); - break; - } -} - -void sub_801D840(void) -{ - switch(sub_80217EC()) - { - case 0: - case 1: - default: - break; - case 2: - case 3: - sub_8021830(); - sub_801D208(1); - break; - } -} - -void sub_801D85C(void) -{ - switch(sub_802C898()) - { - case 0: - case 1: - default: - break; - case 2: - case 3: - sub_802C8F4(); - sub_801D208(1); - break; - } -} - -void sub_801D878(void) -{ - switch(sub_801DCE8()) - { - case 0: - case 1: - default: - break; - case 2: - case 3: - sub_801DD50(); - sub_801D208(1); - break; - } -} - -void sub_801D894(void) -{ - u8 rank; - const char *location; - int location_length; - s32 x_coord; - - // Stored on stack - u32 *preload_string; - char *r5; // R5 - char buffer [96]; // sp +4 - - if (gUnknown_203B250->currFriendAreaLocation == NONE) { - location = sub_8098FB4(); - } - else { - location = GetFriendAreaName(gUnknown_203B250->currFriendAreaLocation); - } - // TODO this is def a hack - xxx_format_string(location, buffer, &preload_string + 1, 0); - location_length = sub_8008ED0(buffer); - x_coord = (128 - location_length) / 2; // Centers the location name - sub_8008C54(1); - sub_80073B8(1); - xxx_call_draw_string(x_coord, 4, buffer, 1, 0); - sub_80073E0(1); - sub_8008C54(2); - sub_80073B8(2); - LoadTeamRankBadge(2, 8, 6); - -// Have to load before TeamRank funcs - r5 = gUnknown_80DBF3C; // %s {COLOR_1 CYAN}%d{END_COLOR_TEXT_1} Pts. - rank = GetRescueTeamRank(); - sprintfStatic(buffer, r5, GetTeamRankString(rank), GetTeamRankPts()); - xxx_call_draw_string(32, 4, buffer, 2, 0); - sprintfStatic(buffer, gUnknown_80DBF4C, gTeamInventoryRef->teamMoney); - xxx_call_draw_string(32, 18, buffer, 2, 0); - sub_80073E0(2); -} - -void LoadTeamRankBadge(u32 param_1, u32 param_2, u32 param_3) -{ - OpenedFile *teamBadgeFile; - s32 palleteIndex; - u8 rank; - u8 *colorArray; - u8 *teamBadgePic; - - teamBadgeFile = OpenFileAndGetFileDataPtr(&gTeamRankBadgeFileName, &gTitleMenuFileArchive); - teamBadgePic = ((struct TeamBadgeData *)(teamBadgeFile->data))->pics; - colorArray = ((struct TeamBadgeData *)(teamBadgeFile->data))->pallete; - for(palleteIndex = 0; palleteIndex < 16; palleteIndex++){ - SetBGPaletteBufferColorArray(palleteIndex + 224,colorArray); - colorArray = colorArray + 4; - } - rank = GetRescueTeamRank(); - teamBadgePic = &teamBadgePic[rank << 7]; // TODO figure out why the lft shft 7 is needed - sub_8007E20(param_1, param_2, param_3, 16, 16, teamBadgePic, 14); - CloseFile(teamBadgeFile); -} - -u32 sub_801D9E4(void) -{ - gUnknown_203B258 = MemoryAlloc(sizeof(struct unkStruct_203B258),8); - gUnknown_203B258->unk34 = 3; - gUnknown_203B258->unk38 = &gUnknown_203B258->unk3C[3]; - sub_8006518(gUnknown_203B258->unk3C); - gUnknown_203B258->unk3C[gUnknown_203B258->unk34] = gUnknown_80DBF88; - gUnknown_203B258->unk38->unk14 = gUnknown_203B258->unk9C; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B258->unk3C, TRUE, TRUE); - sub_8013818(&gUnknown_203B258->input,0xe5,10,gUnknown_203B258->unk34); - sub_801DB54(); - sub_801DBD4(); - return 1; -} - -void sub_801DA58(s16 param_0) -{ - s32 cast; - cast = param_0; - sub_8013878(&gUnknown_203B258->input, cast); - sub_801DB54(); - sub_801DBD4(); -} - -u32 sub_801DA78(void) -{ - switch(GetKeyPress(&gUnknown_203B258->input)) - { - case INPUT_B_BUTTON: - PlayMenuSoundEffect(1); - return 2; - case INPUT_A_BUTTON: - return 3; - default: - if(sub_80138B8(&gUnknown_203B258->input, 1) != 0) - { - sub_801DB54(); - sub_801DBD4(); - return 1; - } - else { - return 0; - } - } -} - -s16 sub_801DAC0(void) -{ - return (gUnknown_203B258->input.unk1E * gUnknown_203B258->input.unk1C) + gUnknown_203B258->input.menuIndex; -} - -void sub_801DADC(u8 r0) -{ - gUnknown_203B258->input.unk22 = 0xE5; - sub_8013984(&gUnknown_203B258->input); - sub_801DB54(); - sub_801DBD4(); - if(r0) - AddMenuCursorSprite(&gUnknown_203B258->input); -} - -void sub_801DB0C(void) -{ - if(gUnknown_203B258 != NULL) - { - gUnknown_203B258->unk3C[gUnknown_203B258->unk34] = gUnknown_80DBF70; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B258->unk3C, TRUE, TRUE); - MemoryFree(gUnknown_203B258); - gUnknown_203B258 = NULL; - } -} - -NAKED // sub_80095E4 memes -void sub_801DB54(void) -{ - asm_unified( - "\tpush {r4,lr}\n" - "\tldr r4, _0801DBD0\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x9C\n" - "\tmovs r2, 0\n" - "\tmovs r1, 0x1\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x9D\n" - "\tstrb r2, [r0]\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x9E\n" - "\tmovs r1, 0x8\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x9F\n" - "\tstrb r2, [r0]\n" - "\tbl ResetUnusedInputStruct\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x3C\n" - "\tmovs r1, 0x1\n" - "\tmovs r2, 0x1\n" - "\tbl sub_800641C\n" - "\tldr r0, [r4]\n" - "\tmovs r1, 0x1A\n" - "\tldrsh r0, [r0, r1]\n" - "\tmovs r1, 0xC\n" - "\tbl sub_80095E4\n" - "\tadds r0, 0x2\n" - "\tlsls r0, 16\n" - "\tldr r2, [r4]\n" - "\tldr r3, [r2, 0x34]\n" - "\tlsls r1, r3, 1\n" - "\tadds r1, r3\n" - "\tlsls r1, 3\n" - "\tadds r1, r2, r1\n" - "\tadds r1, 0x4A\n" - "\tasrs r3, r0, 16\n" - "\tlsrs r0, 16\n" - "\tstrh r0, [r1]\n" - "\tldr r1, [r2, 0x34]\n" - "\tlsls r0, r1, 1\n" - "\tadds r0, r1\n" - "\tlsls r0, 3\n" - "\tadds r2, r0\n" - "\tadds r3, 0x2\n" - "\tadds r2, 0x4C\n" - "\tstrh r3, [r2]\n" - "\tbl ResetUnusedInputStruct\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x3C\n" - "\tmovs r1, 0x1\n" - "\tmovs r2, 0x1\n" - "\tbl sub_800641C\n" - "\tpop {r4}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" -"_0801DBD0: .4byte gUnknown_203B258"); -} - -void sub_801DBD4(void) -{ - unkStruct_811BAF4 *temp; - struct unkStruct_81188F0 *temp2; - s32 y; -#ifndef NONMATCHING - register s32 x asm("r4"); -#else - s32 x; -#endif - s16 index; - int counter; - - sub_8008C54(gUnknown_203B258->unk34); - sub_80073B8(gUnknown_203B258->unk34); - xxx_call_draw_string(10,0,gUnknown_80DBFA0,gUnknown_203B258->unk34,0); // Field - x = gUnknown_203B258->unk9C[2] * 8 - 2; - sub_8012BC4(x,0,gUnknown_203B258->input.unk1E + 1,2,7,gUnknown_203B258->unk34); - for(counter = 0; counter < gUnknown_203B258->input.unk1A; counter++) - { - index = gUnknown_203B258->input.unk1E * gUnknown_203B258->input.unk1C + counter; - temp = &gUnknown_811BAF4[index]; - temp2 = &gUnknown_81188F0[temp->unk4]; - y = sub_8013800(&gUnknown_203B258->input, counter); - xxx_call_draw_string(8,y,temp2->text1,gUnknown_203B258->unk34,0); - y = sub_8013800(&gUnknown_203B258->input,counter); - xxx_call_draw_string(0x3e,y,temp->text,gUnknown_203B258->unk34,0); - } - sub_80073E0(gUnknown_203B258->unk34); -} diff --git a/src/code_801D9E4.c b/src/code_801D9E4.c new file mode 100644 index 000000000..e3ab6b38a --- /dev/null +++ b/src/code_801D9E4.c @@ -0,0 +1,188 @@ +#include "global.h" +#include "code_80118A4.h" +#include "code_801D9E4.h" +#include "constants/input.h" +#include "ground_main.h" +#include "memory.h" +#include "menu_input.h" +#include "text1.h" +#include "text2.h" + +static EWRAM_DATA_2 struct unkStruct_203B258 *sUnknown_203B258 = {0}; + +extern struct unkStruct_81188F0 gUnknown_81188F0[10]; +extern unkStruct_811BAF4 gUnknown_811BAF4[10]; + +#include "data/code_801D9E4.h" + +static void sub_801DB54(void); +static void sub_801DBD4(void); + +bool8 sub_801D9E4(void) +{ + sUnknown_203B258 = MemoryAlloc(sizeof(struct unkStruct_203B258), 8); + sUnknown_203B258->unk34 = 3; + sUnknown_203B258->unk38 = &sUnknown_203B258->unk3C[3]; + sub_8006518(sUnknown_203B258->unk3C); + sUnknown_203B258->unk3C[sUnknown_203B258->unk34] = sUnknown_80DBF88; + sUnknown_203B258->unk38->unk14 = sUnknown_203B258->unk9C; + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B258->unk3C, TRUE, TRUE); + sub_8013818(&sUnknown_203B258->input, 229, 10, sUnknown_203B258->unk34); + sub_801DB54(); + sub_801DBD4(); + return TRUE; +} + +void sub_801DA58(s16 a0) +{ + s32 cast; + cast = a0; + sub_8013878(&sUnknown_203B258->input, cast); + sub_801DB54(); + sub_801DBD4(); +} + +u32 sub_801DA78(void) +{ + switch (GetKeyPress(&sUnknown_203B258->input)) { + case INPUT_B_BUTTON: + PlayMenuSoundEffect(1); + return 2; + case INPUT_A_BUTTON: + return 3; + default: + if (sub_80138B8(&sUnknown_203B258->input, 1)) { + sub_801DB54(); + sub_801DBD4(); + return 1; + } + return 0; + } +} + +s16 sub_801DAC0(void) +{ + return (sUnknown_203B258->input.unk1E * sUnknown_203B258->input.unk1C) + sUnknown_203B258->input.menuIndex; +} + +UNUSED static void sub_801DADC(bool8 a0) +{ + sUnknown_203B258->input.unk22 = 229; + sub_8013984(&sUnknown_203B258->input); + sub_801DB54(); + sub_801DBD4(); + if (a0) + AddMenuCursorSprite(&sUnknown_203B258->input); +} + +void sub_801DB0C(void) +{ + if (sUnknown_203B258 != NULL) { + sUnknown_203B258->unk3C[sUnknown_203B258->unk34] = sUnknown_80DBF70; + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B258->unk3C, TRUE, TRUE); + MemoryFree(sUnknown_203B258); + sUnknown_203B258 = NULL; + } +} + +NAKED // sub_80095E4 memes +static void sub_801DB54(void) +{ + asm_unified( + "\tpush {r4,lr}\n" + "\tldr r4, _0801DBD0\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x9C\n" + "\tmovs r2, 0\n" + "\tmovs r1, 0x1\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x9D\n" + "\tstrb r2, [r0]\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x9E\n" + "\tmovs r1, 0x8\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x9F\n" + "\tstrb r2, [r0]\n" + "\tbl ResetUnusedInputStruct\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x3C\n" + "\tmovs r1, 0x1\n" + "\tmovs r2, 0x1\n" + "\tbl sub_800641C\n" + "\tldr r0, [r4]\n" + "\tmovs r1, 0x1A\n" + "\tldrsh r0, [r0, r1]\n" + "\tmovs r1, 0xC\n" + "\tbl sub_80095E4\n" + "\tadds r0, 0x2\n" + "\tlsls r0, 16\n" + "\tldr r2, [r4]\n" + "\tldr r3, [r2, 0x34]\n" + "\tlsls r1, r3, 1\n" + "\tadds r1, r3\n" + "\tlsls r1, 3\n" + "\tadds r1, r2, r1\n" + "\tadds r1, 0x4A\n" + "\tasrs r3, r0, 16\n" + "\tlsrs r0, 16\n" + "\tstrh r0, [r1]\n" + "\tldr r1, [r2, 0x34]\n" + "\tlsls r0, r1, 1\n" + "\tadds r0, r1\n" + "\tlsls r0, 3\n" + "\tadds r2, r0\n" + "\tadds r3, 0x2\n" + "\tadds r2, 0x4C\n" + "\tstrh r3, [r2]\n" + "\tbl ResetUnusedInputStruct\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x3C\n" + "\tmovs r1, 0x1\n" + "\tmovs r2, 0x1\n" + "\tbl sub_800641C\n" + "\tpop {r4}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" +"_0801DBD0: .4byte sUnknown_203B258"); +} + +static void sub_801DBD4(void) +{ + unkStruct_811BAF4 *temp; + struct unkStruct_81188F0 *temp2; + s32 y; +#ifndef NONMATCHING + register s32 x asm("r4"); +#else + s32 x; +#endif + s16 index; + int counter; + + sub_8008C54(sUnknown_203B258->unk34); + sub_80073B8(sUnknown_203B258->unk34); + xxx_call_draw_string(10, 0, sField, sUnknown_203B258->unk34, 0); // Field + + x = (sUnknown_203B258->unk9C[2] * 8) - 2; + sub_8012BC4(x, 0, sUnknown_203B258->input.unk1E + 1, 2, 7, sUnknown_203B258->unk34); + + for (counter = 0; counter < sUnknown_203B258->input.unk1A; counter++) { + index = (sUnknown_203B258->input.unk1E * sUnknown_203B258->input.unk1C) + counter; + temp = &gUnknown_811BAF4[index]; + temp2 = &gUnknown_81188F0[temp->unk4]; + + y = sub_8013800(&sUnknown_203B258->input, counter); + xxx_call_draw_string(8, y, temp2->text1, sUnknown_203B258->unk34, 0); + + y = sub_8013800(&sUnknown_203B258->input, counter); + xxx_call_draw_string(62, y, temp->text, sUnknown_203B258->unk34, 0); + } + + sub_80073E0(sUnknown_203B258->unk34); +} \ No newline at end of file diff --git a/src/code_801EE10_1.c b/src/code_801EE10_1.c index 5ba23f460..241ed0f2b 100644 --- a/src/code_801EE10_1.c +++ b/src/code_801EE10_1.c @@ -237,7 +237,7 @@ bool8 sub_8024458(s16 speciesNum, s32 param_2) return TRUE; } -u8 sub_80244E4(void) +u32 sub_80244E4(void) { switch(GetKeyPress(&gUnknown_203B2AC->input)) { diff --git a/src/code_8023144_pre.c b/src/code_8023144_pre.c index ac9526c71..85a386a5c 100644 --- a/src/code_8023144_pre.c +++ b/src/code_8023144_pre.c @@ -6,7 +6,6 @@ #include "menu.h" #include "pokemon.h" #include "pokemon_3.h" - #include "text1.h" #include "input.h" #include "items.h" diff --git a/src/code_809447C.c b/src/code_809447C.c index e72ee1a8f..c7741de53 100644 --- a/src/code_809447C.c +++ b/src/code_809447C.c @@ -19,29 +19,26 @@ extern u8 gUnknown_202DE58[]; extern u8 gAvailablePokemonNames[]; extern s32 gUnknown_202DE30[2]; -extern u8 *gUnknown_811383C[]; -extern u8 *gUnknown_8113850[]; -extern u8 *gUnknown_8113868[]; -extern u8 *gUnknown_8113898[]; -extern u8 *gUnknown_81138C0[]; -extern u8 *gUnknown_81138D0[]; -extern u8 *gUnknown_81138E4[]; -extern u8 *gUnknown_8113950[]; -extern u8 *gUnknown_8113900[]; -extern u8 *gUnknown_8113974[]; -extern u8 *gUnknown_8113918[]; -extern u8 *gUnknown_8113990[]; -extern u8 *gUnknown_8113934[]; -extern u8 *gUnknown_81139B4[]; -extern u8 *gUnknown_81139B8[]; -extern u8 *gUnknown_81139CC[]; -extern u8 *gUnknown_8113870[]; +extern const u8 *gUnknown_811383C[]; +extern const u8 *gUnknown_8113850[]; +extern const u8 *gUnknown_8113868[]; +extern const u8 *gUnknown_8113898[]; +extern const u8 *gUnknown_81138C0[]; +extern const u8 *gUnknown_81138D0[]; +extern const u8 *gUnknown_81138E4[]; +extern const u8 *gUnknown_8113950[]; +extern const u8 *gUnknown_8113900[]; +extern const u8 *gUnknown_8113974[]; +extern const u8 *gUnknown_8113918[]; +extern const u8 *gUnknown_8113990[]; +extern const u8 *gUnknown_8113934[]; +extern const u8 *gUnknown_81139B4[]; +extern const u8 *gUnknown_81139B8[]; +extern const u8 *gUnknown_81139CC[]; +extern const u8 *gUnknown_8113870[]; extern struct unkStruct_8113080 gUnknown_8113080[]; -extern void xxx_format_string(const char *, u8 *, void *, u32); -extern s32 sub_8008ED0(u8 *); - void sub_809447C(struct unkStruct_8094924 *r0, u8 *r1) { RestoreIntegerBits(r0, r1, 0x10); @@ -100,11 +97,11 @@ void sub_8094558(u32 param_1,u8 *param_2,unkDungeonGlobal_unk1CE98_sub *param_3) sub_80922B4(gAvailablePokemonNames + 0x50, param_3->buffer2, POKEMON_NAME_LENGTH); if (sub_8094528(param_3->moveID) != 0) { // $m1 was defeated by - xxx_format_string(*gUnknown_8113868,buffer,(u32 **)&buffer + 50,0); // TODO: fix this hack + xxx_format_string(*gUnknown_8113868,buffer,(u8*)((u32 **)&buffer + 50),0); // TODO: fix this hack } else { // $m1 - xxx_format_string(*gUnknown_8113870,buffer,(u32 **)&buffer + 50,0); // TODO: fix this hack + xxx_format_string(*gUnknown_8113870,buffer,(u8*)((u32 **)&buffer + 50),0); // TODO: fix this hack } iVar2 = sub_8008ED0(buffer); xxx_format_and_draw(((0xb0 - iVar2) / 2),y,buffer,param_1,0); diff --git a/src/code_80958E8_mid.c b/src/code_80958E8_mid.c index 31e343abe..3d5639a68 100644 --- a/src/code_80958E8_mid.c +++ b/src/code_80958E8_mid.c @@ -147,7 +147,7 @@ u8 sub_8095E78(void) return friendAreaStack[RandInt(counter)]; } else { - return NONE; + return FRIEND_AREA_NONE; } } diff --git a/src/data/code_801BEEC.h b/src/data/code_801BEEC.h new file mode 100644 index 000000000..013457906 --- /dev/null +++ b/src/data/code_801BEEC.h @@ -0,0 +1,20 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 sUnknown_80DBD98 = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; +static const UnkTextStruct2 sUnknown_80DBDB0 = { + 0, 0, 0, 0, + 3, + 20, 4, + 6, 3, + 3, 0, + NULL +}; + +ALIGNED(4) static const u8 sSwitch[] = _("Switch"); \ No newline at end of file diff --git a/src/data/code_801C244.h b/src/data/code_801C244.h new file mode 100644 index 000000000..38a258e5e --- /dev/null +++ b/src/data/code_801C244.h @@ -0,0 +1,23 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 sUnknown_80DBDD8 = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; +static const UnkTextStruct2 sUnknown_80DBDF0 = { + 0, 0, 0, 0, + 6, + 2, 2, + 16, 17, + 19, 0, + NULL +}; + +ALIGNED(4) static const u8 sIQSkills[] = _("IQ Skills"); +ALIGNED(4) static const u8 sStarBullet[] = _("{STAR_BULLET}"); +ALIGNED(4) static const u8 sUnknown_80DBE18[] = _("{UNK_ICON_40}"); +ALIGNED(4) static const u8 sFmt01[] = _("{ARG_MOVE_ITEM_0}{ARG_MOVE_ITEM_1}"); \ No newline at end of file diff --git a/src/data/code_801C620.h b/src/data/code_801C620.h new file mode 100644 index 000000000..e7bff4a3f --- /dev/null +++ b/src/data/code_801C620.h @@ -0,0 +1,4 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +ALIGNED(4) static const u8 sFmtMoveItem0[] = _("{ARG_MOVE_ITEM_0}"); +ALIGNED(4) static const u8 sFmtPkmn0[] = _("{ARG_POKEMON_0}"); \ No newline at end of file diff --git a/src/data/code_801C8C4.h b/src/data/code_801C8C4.h new file mode 100644 index 000000000..477519fc1 --- /dev/null +++ b/src/data/code_801C8C4.h @@ -0,0 +1,20 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 sUnknown_80DBE3C = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; +static const UnkTextStruct2 sUnknown_80DBE54 = { + 0, 0, 0, 0, + 6, + 2, 2, + 16, 14, + 16, 0, + NULL +}; + +ALIGNED(4) static const u8 sStorage[] = _("Storage"); \ No newline at end of file diff --git a/src/data/code_801D014.h b/src/data/code_801D014.h new file mode 100644 index 000000000..a1e29e4de --- /dev/null +++ b/src/data/code_801D014.h @@ -0,0 +1,66 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 sUnknown_80DBE7C = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; + +static const u8 sUnknown_80DBE94[] = {1, 0, 7, 0}; + +static const UnkTextStruct2 sUnknown_80DBE98 = { + 0, 0, 0, 0, + 6, + 2, 2, + 9, 6, + 6, 0, + sUnknown_80DBE94 +}; + +static const UnkTextStruct2 sUnknown_80DBEB0[4] = +{ + { + 0, 0, 0, 0, + 3, + 2, 3, + 8, 6, + 6, 0, + NULL + }, + { + 0, 0, 0, 0, + 3, + 12, 4, + 16, 2, + 2, 0, + NULL + }, + { + 0, 0, 0, 0, + 3, + 2, 14, + 26, 4, + 4, 0, + NULL + }, + { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL + } +}; + +ALIGNED(4) static const u8 sItems[] = _("Items"); +ALIGNED(4) static const u8 sTeam[] = _("Team"); +ALIGNED(4) static const u8 sJobList[] = _("Job List"); +ALIGNED(4) static const u8 sOthers[] = _("Others"); +ALIGNED(4) static const u8 sTripleQuestionMark[] = _("???"); +ALIGNED(4) static const u8 sFmtPointsCyan[] = _("%s {COLOR_1 CYAN}%d{END_COLOR_TEXT_1} Pts."); +ALIGNED(4) static const u8 sFmtMoneyCyan[] = _("Money: {COLOR_1 CYAN}%d{END_COLOR_TEXT_1} {POKE}"); +ALIGNED(4) static const u8 sTeamRankBadgeFileName[] = _("tmrkpat"); \ No newline at end of file diff --git a/src/data/code_801D9E4.h b/src/data/code_801D9E4.h new file mode 100644 index 000000000..637948c1f --- /dev/null +++ b/src/data/code_801D9E4.h @@ -0,0 +1,20 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 sUnknown_80DBF70 = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; +static const UnkTextStruct2 sUnknown_80DBF88 = { + 0, 0, 0, 0, + 6, + 2, 2, + 24, 17, + 17, 0, + NULL +}; + +ALIGNED(4) static const u8 sField[] = _("Field"); \ No newline at end of file diff --git a/src/data/friend_area_settings.h b/src/data/friend_area_settings.h index ebae07149..4a1bafd5f 100644 --- a/src/data/friend_area_settings.h +++ b/src/data/friend_area_settings.h @@ -1,6 +1,6 @@ static const FriendAreaSettings sFriendAreaSettings[NUM_FRIEND_AREAS] = // 810AA90 { - [NONE] = { + [FRIEND_AREA_NONE] = { .num_pokemon = 0, .unlock_condition = UNLOCK_SHOP_STORY, .price = 0, diff --git a/src/debug_menu2.c b/src/debug_menu2.c index 49e1f5ade..a92caf4b7 100644 --- a/src/debug_menu2.c +++ b/src/debug_menu2.c @@ -1,7 +1,7 @@ #include "global.h" #include "code_80130A8.h" #include "code_801B3C0.h" -#include "code_801C620.h" +#include "code_801C8C4.h" #include "common_strings.h" #include "debug_menu2.h" #include "memory.h" diff --git a/src/debug_menu3.c b/src/debug_menu3.c index dc170d5c9..804ea83eb 100644 --- a/src/debug_menu3.c +++ b/src/debug_menu3.c @@ -1,7 +1,5 @@ #include "global.h" #include "code_801EE10_mid.h" -#include "code_8021774.h" -#include "code_8021774_pre.h" #include "common_strings.h" #include "debug_menu3.h" #include "friend_area.h" @@ -10,6 +8,7 @@ #include "pokemon.h" #include "text1.h" #include "text2.h" +#include "wigglytuff_shop.h" static EWRAM_DATA_2 unkStruct_203B3F4 *sUnknown_203B3F4 = {0}; diff --git a/src/friend_area_action_menu.c b/src/friend_area_action_menu.c index e4eb31388..fffc40810 100644 --- a/src/friend_area_action_menu.c +++ b/src/friend_area_action_menu.c @@ -1,7 +1,7 @@ #include "global.h" #include "code_80130A8.h" #include "code_801B3C0.h" -#include "code_801C620.h" +#include "code_801BEEC.h" #include "code_801EE10.h" #include "code_801EE10_1.h" #include "code_801EE10_mid.h" @@ -48,10 +48,8 @@ extern void SetFriendAreaActionMenuState(u32); extern void PlaySound(u32); extern void sub_808D31C(PokemonStruct1 *); -extern PokemonStruct1 *sub_808D3F8(void); extern PokemonStruct1 *sub_808D3BC(void); extern u8 gUnknown_202DE58[]; -extern u32 sub_80244E4(void); extern bool8 sub_808D750(s16 index_); extern void sub_808ED00(void); diff --git a/src/friend_list_menu.c b/src/friend_list_menu.c index 39605aac2..56e144f5a 100644 --- a/src/friend_list_menu.c +++ b/src/friend_list_menu.c @@ -3,7 +3,7 @@ #include "code_8012A18_1.h" #include "code_80130A8.h" #include "code_801B3C0.h" -#include "code_801C620.h" +#include "code_801BEEC.h" #include "code_801EE10.h" #include "code_801EE10_1.h" #include "code_801EE10_mid.h" @@ -11,6 +11,7 @@ #include "common_strings.h" #include "constants/dungeon.h" #include "event_flag.h" +#include "ground_map_1.h" #include "items.h" #include "kecleon_bros4.h" #include "memory.h" @@ -56,11 +57,8 @@ EWRAM_DATA_2 unkStruct_203B2B4 *gUnknown_203B2B4 = {0}; #include "data/friend_list_menu.h" -extern s16 sub_80A5728(void); extern u8 sub_8002658(s16); -extern bool8 sub_8024108(u32); extern void sub_808ED00(void); -extern u32 sub_80244E4(void); extern void sub_80160D8(void); extern u32 sub_8016080(void); diff --git a/src/friend_rescue.c b/src/friend_rescue.c index 030a91a2c..08793e2ad 100644 --- a/src/friend_rescue.c +++ b/src/friend_rescue.c @@ -3,7 +3,7 @@ #include "code_80130A8.h" #include "code_801B3C0.h" #include "code_801EE10_1.h" -#include "code_801C620.h" +#include "code_801C8C4.h" #include "code_8094F88.h" #include "constants/communication_error_codes.h" #include "constants/monster.h" @@ -266,9 +266,7 @@ extern u8 sub_80307EC(void); extern u32 sub_8031DCC(void); extern void sub_8031E10(void); extern void sub_8031E00(void); -extern u8 sub_8024108(u32); extern void sub_802452C(void); -extern u32 sub_80244E4(void); extern u32 sub_8039068(u32, u8 *passwordBuffer, unkStruct_203B480 *r0); extern void sub_803084C(void); @@ -278,7 +276,6 @@ extern void sub_802F2C0(void); extern void sub_8030DE4(void); extern u8 sub_800D588(void); extern void sub_80151C0(u32, u8 *); -extern u32 sub_801D008(void); extern u32 sub_8023CE8(void); extern void sub_802F204(unkStruct_802F204 *, u32); extern u32 sub_80306A8(u32 wonderMailType, u32, UnkTextStruct2_sub *, u32); @@ -1056,7 +1053,7 @@ void sub_8032828(void) sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1); break; case 0x5F: - if (sub_801D008() == 0) { + if (sub_801D008() == NULL) { ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); { diff --git a/src/ground_main.c b/src/ground_main.c index b71087c51..16275e998 100644 --- a/src/ground_main.c +++ b/src/ground_main.c @@ -303,7 +303,7 @@ s16 sub_8098FA0(void) return sub_8001658(0, 0x11); } -const char *sub_8098FB4(void) +const char *sub_8098FB4(void) { return sub_80A2B18(sub_8001658(0, 0x11)); } diff --git a/src/gulpin_shop_801FB50.c b/src/gulpin_shop_801FB50.c index 16fe8b5b7..3e242ce69 100644 --- a/src/gulpin_shop_801FB50.c +++ b/src/gulpin_shop_801FB50.c @@ -1,7 +1,7 @@ #include "global.h" #include "code_80118A4.h" #include "code_80130A8.h" -#include "code_801C620.h" +#include "code_801BEEC.h" #include "code_801EE10.h" #include "code_801EE10_1.h" #include "code_801EE10_mid.h" @@ -27,9 +27,6 @@ extern u8 gUnknown_202E5D8[]; #include "data/gulpin_shop_801FB50.h" -// code_801EE10_1.c (return var type) -extern u32 sub_80244E4(void); - static void CreateGulpinLinkMenu(void); static void CreateGulpinShopMenu(void); diff --git a/src/hints_menu.c b/src/hints_menu.c index c71bb6d48..535be5e4f 100644 --- a/src/hints_menu.c +++ b/src/hints_menu.c @@ -178,6 +178,13 @@ void DrawHintSelectionMenu(void) sub_80073E0(gUnknown_203B264->unk34); } + + +// THIS IS A NEW FILE + + + + u32 CreateHintDisplayScreen(u32 index) { gUnknown_203B268 = MemoryAlloc(sizeof(struct unkStruct_203B268), 8); diff --git a/src/items.c b/src/items.c index 7c7a319d4..50d55ee68 100644 --- a/src/items.c +++ b/src/items.c @@ -1,11 +1,11 @@ #include "global.h" +#include "code_8097DD0.h" #include "constants/colors.h" #include "items.h" #include "moves.h" #include "random.h" #include "pokemon.h" #include "random.h" -#include "subStruct_203B240.h" #include "code_800D090.h" #include "text_util.h" #include "text2.h" @@ -36,7 +36,6 @@ EWRAM_DATA ItemDataEntry *gItemParametersData = {0}; EWRAM_DATA TeamInventory gTeamInventory = {0}; EWRAM_DATA_2 TeamInventory *gTeamInventoryRef = {0}; -extern u32 sub_8097DF0(char *, struct subStruct_203B240 **); extern s32 sub_8091E94(s32 a1, s32 a2, s32 a3); extern void SortKecleonShopInventory(); bool8 AddKecleonWareItem(u8); diff --git a/src/kangaskhan_storage1.c b/src/kangaskhan_storage1.c index 9d0d3d884..23ef10098 100644 --- a/src/kangaskhan_storage1.c +++ b/src/kangaskhan_storage1.c @@ -1,7 +1,7 @@ #include "global.h" #include "code_80130A8.h" #include "code_801B3C0.h" -#include "code_801C620.h" +#include "code_801C8C4.h" #include "code_8098BDC.h" #include "common_strings.h" #include "kangaskhan_storage1.h" diff --git a/src/kangaskhan_storage2.c b/src/kangaskhan_storage2.c index 3163f0ce4..b2d7c919c 100644 --- a/src/kangaskhan_storage2.c +++ b/src/kangaskhan_storage2.c @@ -1,7 +1,7 @@ #include "global.h" #include "code_80130A8.h" #include "code_801B3C0.h" -#include "code_801C620.h" +#include "code_801C8C4.h" #include "code_8098BDC.h" #include "common_strings.h" #include "kangaskhan_storage2.h" diff --git a/src/load_screen.c b/src/load_screen.c index 82bfb323d..0391319be 100644 --- a/src/load_screen.c +++ b/src/load_screen.c @@ -1,12 +1,14 @@ #include "global.h" #include "bg_palette_buffer.h" #include "code_800D090.h" +#include "code_80130A8.h" #include "code_8094F88.h" #include "code_8097670.h" #include "constants/main_menu.h" #include "constants/wonder_mail.h" #include "event_flag.h" #include "file_system.h" +#include "ground_main.h" #include "input.h" #include "main_menu1.h" #include "memory.h" @@ -47,11 +49,8 @@ void DrawLoadScreenText(void); void sub_80397B4(void); extern void sub_80920D8(u8 *); -extern u8 *sub_8098FB4(); extern void PrintDungeonLocationtoBuffer(u8 *, DungeonLocation *); -extern void xxx_format_string(u8 *, u8 *, u8 *, u32); - const UnkTextStruct2 gUnknown_80E75F8 = { 0x00, 0x00, 0x00, 0x00, 0x03, diff --git a/src/mailbox.c b/src/mailbox.c index 6046d5810..fd94418e3 100644 --- a/src/mailbox.c +++ b/src/mailbox.c @@ -9,6 +9,7 @@ #include "wonder_mail.h" #include "menu_input.h" #include "code_80118A4.h" +#include "wonder_mail_2_1.h" EWRAM_DATA_2 struct unkStruct_203B304 *gUnknown_203B304 = {0}; @@ -82,7 +83,6 @@ extern void CreateMailMenu(void); extern void CreateMailAcceptedStatusBox(u32); extern void sub_803B35C(WonderMail *, unkStruct_802C39C *); extern void sub_802DE84(unkStruct_802C39C *); -extern void InitializeJobListMenu(u32); extern void sub_802B640(u32, u32, u32); extern void sub_802B7D0(u32); extern void sub_802B9FC(u8); @@ -91,8 +91,6 @@ extern void sub_802BACC(void); extern u8 GetPokemonNewsIndex(void); extern void sub_802B81C(void); extern u32 sub_802B720(u32); -extern u32 sub_802C898(void); -extern void sub_802C8F4(void); extern u32 sub_802DEE0(void); extern void sub_802DF24(void); extern WonderMail *GetMailboxSlotInfo(u8); @@ -106,7 +104,6 @@ extern void ReceivePKMNNews(u8); extern void sub_8096078(void); extern void sub_802BEDC(void); extern u8 sub_802BE74(void); -extern u8 HasNoAcceptedJobs(void); extern u8 HasNoPelipperBoardJobs(void); extern u8 HasNoPKMNNews(void); diff --git a/src/menu_input.c b/src/menu_input.c index 7cf7ea5cd..e18d91c0d 100644 --- a/src/menu_input.c +++ b/src/menu_input.c @@ -17,7 +17,6 @@ extern const u8 gUnknown_80D4828[]; extern const s32 gUnknown_80D4830[9]; // text.s -extern s32 sub_8008ED0(const u8 *); extern s16 sub_8009614(u32, u32); static void sub_8013134(MenuInputStruct *, u32, u32); diff --git a/src/moves.c b/src/moves.c index e690dc13f..fdc189390 100644 --- a/src/moves.c +++ b/src/moves.c @@ -2,6 +2,7 @@ #include "code_800D090.h" #include "code_80130A8.h" #include "code_8092334.h" +#include "code_8097DD0.h" #include "constants/colors.h" #include "constants/monster.h" #include "memory.h" @@ -39,9 +40,6 @@ extern const u8* gUnknown_810CF00; // "Range#=@.$m0 " // system_sbin.s extern const struct FileArchive gSystemFileArchive; -// code_8097DD0.s -extern u32 sub_8097DF0(u8 *, struct subStruct_203B240 **); - static void CopyAndResetMove(Move *, Move *); static bool8 sub_80933D8(s32, Move *); static s32 unk_FindMarkedMoveInLinkedSequences44(Move [MAX_MON_MOVES][MAX_MON_MOVES]); diff --git a/src/options_menu.c b/src/options_menu.c index 11815abf0..fc2380ba3 100644 --- a/src/options_menu.c +++ b/src/options_menu.c @@ -8,6 +8,7 @@ #include "game_options.h" #include "memory.h" #include "menu_input.h" +#include "options_menu.h" #include "text1.h" #include "text2.h" @@ -24,7 +25,7 @@ struct unkStruct_203B25C UnkTextStruct2 unkBC[4]; }; -struct unkStruct_203B260 +struct unkStruct_203B260 { GameOptions *optionsMenu; MenuInputStructSub unk4; @@ -42,18 +43,17 @@ extern const UnkTextStruct2 gUnknown_80DBFCC; extern const UnkTextStruct2 gUnknown_80DC020; extern const UnkTextStruct2 gUnknown_80DC03C; -extern u8 gWindowBGTitle[]; -extern u8 gUnknown_80DC064[]; -extern u8 gWindowBGGreenString[]; -extern u8 gWindowBGRedString[]; -extern u8 gWindowBGBlueString[]; +extern const u8 gWindowBGTitle[]; +extern const u8 gUnknown_80DC064[]; +extern const u8 gWindowBGGreenString[]; +extern const u8 gWindowBGRedString[]; +extern const u8 gWindowBGBlueString[]; extern const char gOthers_MenuOption[]; extern const char gUnknown_80DBFEC[]; extern const char gOthers_GameOptions[]; extern const char gOthers_Hints[]; -extern s32 sub_8008ED0(u8 *); extern void CreateOthersMenu(void); void CreateOptionsMenu(void); void nullsub_38(void); @@ -98,11 +98,11 @@ enum OptionsMenuStates { OPTIONS_MENU_CONFIRM_NEW_OPTIONS, }; -u32 sub_801DCC4(void) +bool8 sub_801DCC4(void) { gUnknown_203B25C = MemoryAlloc(sizeof(struct unkStruct_203B25C), 8); SetOptionsMenuState(OPTIONS_MENU_INIT); - return 1; + return TRUE; } u32 sub_801DCE8(void) @@ -365,6 +365,13 @@ void HandleChangeSettingsMenu(void) } } + + + +// THIS IS A NEW FILE + + + bool8 sub_801E198(GameOptions *optionsMenu) { gUnknown_203B260 = MemoryAlloc(sizeof(struct unkStruct_203B260), 8); diff --git a/src/party_list_menu.c b/src/party_list_menu.c index 911b6599d..9b6eee69c 100644 --- a/src/party_list_menu.c +++ b/src/party_list_menu.c @@ -3,10 +3,11 @@ #include "code_80118A4.h" #include "code_80130A8.h" #include "code_801B3C0.h" -#include "code_801C620.h" +#include "code_801BEEC.h" #include "code_801EE10.h" #include "code_801EE10_1.h" #include "code_801EE10_mid.h" +#include "code_8023144.h" #include "code_8098BDC.h" #include "common_strings.h" #include "constants/dungeon.h" @@ -16,56 +17,25 @@ #include "memory.h" #include "menu_input.h" #include "moves.h" +#include "party_list_menu.h" #include "pokemon.h" #include "text_util.h" #include "text1.h" #include "text2.h" -// size: 0x280 -typedef struct unkStruct_203B2B8 -{ - s32 state; - s32 fallbackState; - bool8 unk8; - /* 0xA */ s16 pokeSpecies; - u32 id; - /* 0x10 */ BulkItem item1; - /* 0x14 */ BulkItem item2; - PokemonStruct1 *pokeStruct; - bool8 isTeamLeader; - u32 moveIndex; - /* 0x24 */ u16 moveID; - Move moves[8]; - u16 moveIDs[4]; // some list of move IDs - u32 menuAction1; - u32 menuAction2; - u32 menuAction3; // unused - MenuStruct unk7C; - MenuStruct unkCC; - MenuStruct unk11C; // unused - MenuItem unk16C[10]; - MenuItem unk1BC[10]; - u16 unk20C[10]; - UnkTextStruct2 unk220[4]; -} unkStruct_203B2B8; +// TODO: Clean this -extern u8 gUnknown_202DE58[0x58]; -extern u8 gUnknown_202DEA8[0x58]; -extern u8 gAvailablePokemonNames[0x58]; // 202DF98 +extern u8 gUnknown_202DE58[]; +extern u8 gUnknown_202DEA8[]; +extern u8 gAvailablePokemonNames[]; // 202DF98 static EWRAM_DATA_2 unkStruct_203B2B8 *sUnknown_203B2B8 = {0}; #include "data/party_list_menu.h" extern u32 sub_8026F04(PokemonStruct1 *); -extern void sub_8026074(s32); bool8 CanTakePokemonHeldItem(PokemonStruct1 *r0); -extern PokemonStruct1 *sub_808D3F8(void); extern PokemonStruct1 *sub_808D3BC(void); -extern s32 sub_8008ED0(u8 *); -extern u32 sub_8022860(void); -extern void sub_8022908(void); -extern u32 sub_80244E4(void); extern bool8 sub_808D750(s16 index_); extern void sub_808ED00(void); bool8 sub_8026E88(PokemonStruct1 *r0); @@ -75,12 +45,10 @@ void sub_8026E08(u32 r0); void sub_8026DAC(u32 r0, BulkItem *item); void sub_8026FA4(void); void sub_8026878(void); -extern void sub_80227B8(PokemonStruct1 *); extern void sub_808D31C(PokemonStruct1 *); void sub_802678C(void); void sub_80264CC(void); -void sub_802608C(void); void sub_80261D0(void); void sub_80268CC(void); @@ -96,7 +64,10 @@ void sub_8026D0C(void); void sub_8026D6C(void); void sub_8026D88(void); -u32 sub_8025EF4(PokemonStruct1 *pokeStruct) +static void sub_8026074(s32 newState); +static void sub_802608C(void); + +bool8 sub_8025EF4(PokemonStruct1 *pokeStruct) { s32 i; @@ -176,21 +147,20 @@ bool8 sub_802604C(void) void sub_8026058(void) { - if(sUnknown_203B2B8) - { + if (sUnknown_203B2B8) { MemoryFree(sUnknown_203B2B8); sUnknown_203B2B8 = NULL; } } -void sub_8026074(s32 newState) +static void sub_8026074(s32 newState) { sUnknown_203B2B8->state = newState; sub_802608C(); sub_80261D0(); } -void sub_802608C(void) +static void sub_802608C(void) { s32 index; sub_8006518(sUnknown_203B2B8->unk220); diff --git a/src/pelipper_board.c b/src/pelipper_board.c index 56d79e814..c71df4130 100644 --- a/src/pelipper_board.c +++ b/src/pelipper_board.c @@ -12,6 +12,7 @@ #include "common_strings.h" #include "pelipper_board.h" #include "code_80118A4.h" +#include "wonder_mail_2_1.h" EWRAM_DATA_2 struct unkStruct_203B308 *gPelipperBoard = {0}; @@ -78,10 +79,7 @@ extern void DrawPelipperBoardJobMenu(void); extern void CreatePelipperAcceptedStatusBox(u32); extern void sub_803B35C(WonderMail *, unkStruct_802C39C *); extern void sub_802DE84(unkStruct_802C39C *); -extern void InitializeJobListMenu(u32); -extern u32 sub_802C898(void); -extern void sub_802C8F4(void); extern u32 sub_802DEE0(void); extern void sub_802DF24(void); extern WonderMail *GetPelipperBoardSlotInfo(u8); @@ -94,7 +92,6 @@ extern void sub_80965F4(void); extern void sub_802C2D4(void); extern u32 sub_802C1E4(u32); extern u8 sub_802C26C(void); -extern u8 HasNoAcceptedJobs(void); extern bool8 IsMailinJobSlot(WonderMail *mail); void SetPelipperBoardState(u32); diff --git a/src/pokemon_mid.c b/src/pokemon_mid.c index 918a0a326..49dc259ce 100644 --- a/src/pokemon_mid.c +++ b/src/pokemon_mid.c @@ -1,5 +1,6 @@ #include "global.h" #include "code_800D090.h" +#include "code_8097DD0.h" #include "constants/colors.h" #include "constants/move_id.h" #include "decompress.h" @@ -8,7 +9,6 @@ #include "pokemon.h" #include "pokemon_3.h" #include "pokemon_mid.h" -#include "subStruct_203B240.h" #include "text_util.h" extern MonsterDataEntry *gMonsterParameters; @@ -36,7 +36,6 @@ extern u32 ReturnIntFromChar(u8 r0); extern void sub_80943A0(void*, s32); extern void xxx_pokemon2_to_pokemonstruct_808DF44(PokemonStruct1*, PokemonStruct2*); extern const u8 *DecompressMoveID(const u8 *a1, u16 *a2); -extern u32 sub_8097DF0(char *, struct subStruct_203B240 **); extern u8 GetBodySize(s16 index); diff --git a/src/thank_you_wonder_mail.c b/src/thank_you_wonder_mail.c index cab430129..0a55b3120 100644 --- a/src/thank_you_wonder_mail.c +++ b/src/thank_you_wonder_mail.c @@ -3,7 +3,7 @@ #include "code_80118A4.h" #include "code_80130A8.h" #include "code_801B3C0.h" -#include "code_801C620.h" +#include "code_801C8C4.h" #include "code_8094F88.h" #include "constants/communication_error_codes.h" #include "cpu.h" @@ -220,7 +220,6 @@ extern void sub_80151C0(u32, u8 *); extern void sub_803092C(void); extern s32 sub_8037B28(u32); extern u32 sub_8030894(void); -extern u32 sub_801D008(void); extern void sub_80306A8(u32, u32, u32, u32); extern u8 sub_800D588(void); extern u32 GetDungeonTeamRankPts(DungeonLocation *, u32); @@ -1283,7 +1282,7 @@ void UpdateThankYouMailText(void) sub_8035CF4(gUnknown_203B2C4->unk21C,3,TRUE); break; case 0x13: - if (sub_801D008() != 0) + if (sub_801D008() != NULL) break; ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); diff --git a/src/trade_items_menu.c b/src/trade_items_menu.c index 2965ac563..65dddd35a 100644 --- a/src/trade_items_menu.c +++ b/src/trade_items_menu.c @@ -2,7 +2,7 @@ #include "code_80118A4.h" #include "code_80130A8.h" #include "code_801B3C0.h" -#include "code_801C620.h" +#include "code_801C8C4.h" #include "constants/communication_error_codes.h" #include "cpu.h" #include "items.h" @@ -22,7 +22,6 @@ static EWRAM_DATA_2 struct TradeItemsMenu *sTradeItemsMenu = {0}; #include "data/trade_items_menu.h" -extern u32 sub_801D008(); extern s32 sub_8037B28(u32); void sub_8036F74(void); @@ -508,7 +507,7 @@ void sub_8036B28(void) sub_80141B4(sPleaseChooseItem,0,0,0x101); break; case TRADE_ITEMS_SEND_ITEM_SELECTION: - if (sub_801D008() == 0) { + if (sub_801D008() == NULL) { ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); { diff --git a/src/wigglytuff_shop.c b/src/wigglytuff_shop.c index 2dfce8d2a..129636aa4 100644 --- a/src/wigglytuff_shop.c +++ b/src/wigglytuff_shop.c @@ -3,7 +3,6 @@ #include "code_80118A4.h" #include "code_80130A8.h" #include "code_801EE10_mid.h" -#include "code_8021774.h" #include "code_8098BDC.h" #include "common_strings.h" #include "constants/friend_area.h" diff --git a/src/wonder_mail.c b/src/wonder_mail.c index caa729a6d..c2365a6c0 100644 --- a/src/wonder_mail.c +++ b/src/wonder_mail.c @@ -46,9 +46,7 @@ extern u32 sub_80154F0(); extern u32 sub_8039068(u32, u8 *r1, unkStruct_203B480 *r0); extern void sub_8095274(u32); extern void sub_80155F0(); -extern u32 sub_80244E4(); extern void sub_802452C(); -extern u8 sub_8024108(u32); extern u32 sub_8031DCC(); extern void sub_8031E10(); extern void sub_8031E00(); diff --git a/src/wonder_mail_2_1.c b/src/wonder_mail_2_1.c index 213727f6a..5853c3144 100644 --- a/src/wonder_mail_2_1.c +++ b/src/wonder_mail_2_1.c @@ -116,7 +116,6 @@ extern void sub_802DE84(unkStruct_802C39C *); extern void sub_802CBAC(void); s32 CountAcceptedJobs(void); -bool8 HasNoAcceptedJobs(void); s32 CountPelipperBoardSlots(void) { diff --git a/src/wonder_mail_3.c b/src/wonder_mail_3.c index b407508d5..d7f3420fa 100644 --- a/src/wonder_mail_3.c +++ b/src/wonder_mail_3.c @@ -158,7 +158,6 @@ extern void sub_802DF24(void); extern void SetJobListState(u32); extern u32 sub_802DEE0(void); extern void ResetJobSlot(u8); -extern u8 HasNoAcceptedJobs(void); u32 sub_802C598(u8 param_1); extern void sub_802C688(void); extern u8 GetPelipperBoardSlotIndex(void); diff --git a/src/wonder_mail_main_menu.c b/src/wonder_mail_main_menu.c index 3fbbdf35f..89d1630f4 100644 --- a/src/wonder_mail_main_menu.c +++ b/src/wonder_mail_main_menu.c @@ -2,7 +2,7 @@ #include "code_80118A4.h" #include "code_80130A8.h" #include "code_801B3C0.h" -#include "code_801C620.h" +#include "code_801C8C4.h" #include "code_8094F88.h" #include "constants/communication_error_codes.h" #include "constants/wonder_mail.h" diff --git a/sym_ewram2.txt b/sym_ewram2.txt index bbd222b66..666b5855e 100644 --- a/sym_ewram2.txt +++ b/sym_ewram2.txt @@ -1,7 +1,7 @@ .align 2 - .include "src/m4a.o" - .include "src/agb_flash.o" +.include "src/m4a.o" +.include "src/agb_flash.o" errno: /* 203B034 */ .space 0x4 @@ -17,36 +17,35 @@ gUnknown_203B03C: /* 203B03C */ gUnknown_203B040: /* 203B040 */ .space 0x30 - .include "src/other_random.o" - +.include "src/other_random.o" .space 0x2 - .include "src/sprite.o" +.include "src/sprite.o" -gUnknown_203B078: /* 203B078 */ +gUnknown_203B078: /* 203B078 (sub_80057E8 - sub_8006438) */ .space 0x4 - .include "src/random.o" +.include "src/random.o" -gUnknown_203B080: /* 203B080 */ +gUnknown_203B080: /* 203B080 (sub_8053540 - sub_806806C) */ .space 0x4 -gUnknown_203B084: /* 203B084 */ +gUnknown_203B084: /* 203B084 (sub_8053430 - sub_806806C) */ .space 0x4 -gUnknown_203B088: /* 203B088 */ +gUnknown_203B088: /* 203B088 (xxx_draw_string_80144C4) */ .space 0x4 -gUnknown_203B08C: /* 203B08C */ +gUnknown_203B08C: /* 203B08C (xxx_draw_string_80524F0) */ .space 0x4 -gUnknown_203B090: /* 203B090 */ +gUnknown_203B090: /* 203B090 (InitGraphics) */ .space 0x4 - .include "src/file_system.o" - .include "src/main.o" +.include "src/file_system.o" +.include "src/main.o" -gUnknown_203B099: /* 203B099 */ +gUnknown_203B099: /* 203B099 (VBlankIntr - xxx_update_bg_sound_input) */ .space 0x1 gUnknown_203B09A: /* 203B09A */ @@ -82,43 +81,43 @@ gUnknown_203B0B0: /* 203B0B0 */ gUnknown_203B0B2: /* 203B0B2 */ .space 0x2 - .include "src/flash.o" +.include "src/flash.o" .space 0x3 -gUnknown_203B0B8: /* 203B0B8 */ +gUnknown_203B0B8: /* 203B0B8 (sub_800CB20 - sub_800CB50) */ .space 0x4 -gRawKeyInput: /* 203B0BC */ +gRawKeyInput: /* 203B0BC (sub_800CB20 - ReadKeyInput) */ .space 0x2 -gUnknown_203B0BE: /* 203B0BE */ +gUnknown_203B0BE: /* 203B0BE (sub_800CDA8) */ .space 0xE -gUnknown_203B0CC: /* 203B0CC */ +gUnknown_203B0CC: /* 203B0CC (sub_800DE8C - sub_800DC14) */ .space 0x4 -gUnknown_203B0D0: /* 203B0D0 */ +gUnknown_203B0D0: /* 203B0D0 (sub_800ED38 - sub_800EF64) */ .space 0x4 -gUnknown_203B0D4: /* 203B0D4 */ +gUnknown_203B0D4: /* 203B0D4 (sub_800F034 - sub_800F19C) */ .space 0x4 -gDungeonPokemonSprites: /* 203B0D8 */ +gDungeonPokemonSprites: /* 203B0D8 (GetDungeonPokemonSprite - sub_800F958) */ .space 0x4 -gUnknown_203B0DC: /* 203B0DC */ +gUnknown_203B0DC: /* 203B0DC (DrawStatusSprite) */ .space 0x8 -gUnknown_203B0E4: /* 203B0E4 */ +gUnknown_203B0E4: /* 203B0E4 (sub_800F990 - sub_801169C) */ .space 0x4 -gUnknown_203B0E8: /* 203B0E8 */ +gUnknown_203B0E8: /* 203B0E8 (sub_8010268 - sub_8010B74) */ .space 0x4 -gUnknown_203B0EC: /* 203B0EC */ +gUnknown_203B0EC: /* 203B0EC (sub_8010C58) */ .space 0x60 - .include "src/debug.o" +.include "src/debug.o" .space 0x2B .include "src/save.o" @@ -127,16 +126,16 @@ gUnknown_203B0EC: /* 203B0EC */ .include "src/quick_save_read.o" .include "src/quick_save_write.o" -gUnknown_203B198: /* 203B198 */ +gUnknown_203B198: /* 203B198 (sub_8014248 - sub_8014A88) */ .space 0x60 -gUnknown_203B1F8: /* 203B1F8 */ +gUnknown_203B1F8: /* 203B1F8 (sub_8015080 - sub_80151A4) */ .space 0x4 -gUnknown_203B1FC: /* 203B1FC */ +gUnknown_203B1FC: /* 203B1FC (sub_80151C0 - sub_8015F84) */ .space 0x4 -gUnknown_203B200: /* 203B200 */ +gUnknown_203B200: /* 203B200 (sub_801602C - IsNameEmpty) */ .space 0x4 .include "src/felicity_bank.o" @@ -149,47 +148,23 @@ gUnknown_203B200: /* 203B200 */ .include "src/code_801AFA4.o" .include "src/code_801B3C0.o" .include "src/code_801B60C.o" +.include "src/code_801BEEC.o" +.include "src/code_801C244.o" +.include "src/code_801C620.o" +.include "src/code_801C8C4.o" +.include "src/code_801D014.o" +.include "src/code_801D9E4.o" -gUnknown_203B238: /* 203B238 */ +gUnknown_203B25C: /* 203B25C (sub_801DCC4 - HandleChangeSettingsMenu) */ .space 0x4 -gUnknown_203B23C: /* 203B23C */ +gUnknown_203B260: /* 203B260 (sub_801E198 - CreateOptionsMenu) */ .space 0x4 -gUnknown_203B240: /* 203B240 */ +gUnknown_203B264: /* 203B264 (sub_801E3F0 - DrawHintSelectionMenu) */ .space 0x4 -gUnknown_203B244: /* 203B244 */ - .space 0x4 - -gUnknown_203B248: /* 203B248 */ - .space 0x4 - -gUnknown_203B24C: /* 203B24C */ - .space 0x2 - -gUnknown_203B24E: /* 203B24E */ - .space 0x2 - -gUnknown_203B250: /* 203B250 */ - .space 0x4 - -gUnknown_203B254: /* 203B254 */ - .space 0x4 - -gUnknown_203B258: /* 203B258 */ - .space 0x4 - -gUnknown_203B25C: /* 203B25C */ - .space 0x4 - -gUnknown_203B260: /* 203B260 */ - .space 0x4 - -gUnknown_203B264: /* 203B264 */ - .space 0x4 - -gUnknown_203B268: /* 203B268 */ +gUnknown_203B268: /* 203B268 (CreateHintDisplayScreen - DisplayChosenHint) */ .space 0x4 .include "src/gulpin_shop.o" From 6b419cc73b6e6447b0032a0032be3e522501123c Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Mon, 18 Sep 2023 19:58:43 -0400 Subject: [PATCH 25/47] Split+data wigglytuff_shop --- data/data_80DC464.s | 122 ---- include/code_801EE10_mid.h | 3 - include/code_8023144.h | 6 + include/code_8098BDC.h | 2 +- include/wigglytuff_shop.h | 79 --- include/wigglytuff_shop1.h | 27 + include/wigglytuff_shop2.h | 25 + include/wigglytuff_shop3.h | 73 +++ ld_script.txt | 7 +- src/code_801D014.c | 2 +- src/code_801EE10_1.c | 10 + src/code_8023144.c | 31 +- src/credits1.c | 6 +- src/data/wigglytuff_shop1.h | 23 + src/data/wigglytuff_shop2.h | 24 + src/data/wigglytuff_shop3.h | 28 + src/debug_menu3.c | 3 +- src/event_flag.c | 1 + src/pokemon_news.c | 11 + src/wigglytuff_shop.c | 1130 ----------------------------------- src/wigglytuff_shop1.c | 297 +++++++++ src/wigglytuff_shop2.c | 187 ++++++ src/wigglytuff_shop3.c | 597 ++++++++++++++++++ src/wonder_mail_2_mid.c | 7 + sym_ewram2.txt | 26 +- 25 files changed, 1362 insertions(+), 1365 deletions(-) delete mode 100644 include/wigglytuff_shop.h create mode 100644 include/wigglytuff_shop1.h create mode 100644 include/wigglytuff_shop2.h create mode 100644 include/wigglytuff_shop3.h create mode 100644 src/data/wigglytuff_shop1.h create mode 100644 src/data/wigglytuff_shop2.h create mode 100644 src/data/wigglytuff_shop3.h delete mode 100644 src/wigglytuff_shop.c create mode 100644 src/wigglytuff_shop1.c create mode 100644 src/wigglytuff_shop2.c create mode 100644 src/wigglytuff_shop3.c diff --git a/data/data_80DC464.s b/data/data_80DC464.s index f01eb44f1..d3fde0ea1 100644 --- a/data/data_80DC464.s +++ b/data/data_80DC464.s @@ -1,127 +1,5 @@ .section .rodata -@ wigglytuff_shop1 - .align 2,0 -.string "pksdir0\0" - .align 2,0 - - .global gUnknown_80DC464 -gUnknown_80DC464: @ 80DC464 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DC47C -gUnknown_80DC47C: @ 80DC47C - .byte 0x00, 0x00 - .byte 0x00, 0x00 - .byte 0x06, 0x00 - .byte 0x00, 0x00 - .byte 0x02, 0x00 - .byte 0x02, 0x00 - .byte 0x11, 0x00 - .byte 0x11, 0x00 - .byte 0x11, 0x00 - .byte 0x00, 0x00 - .byte 0x00, 0x00 - .byte 0x00, 0x00 - - .global gUnknown_80DC494 -gUnknown_80DC494: @ 80DC494 - .string "Friend Areas\0" - .align 2,0 - - .global gUnknown_80DC4A4 -gUnknown_80DC4A4: @ 80DC4A4 - .string "{COLOR_1 RED}%s{END_COLOR_TEXT_1}\0" - .align 2,0 - - .global gUnknown_80DC4AC -gUnknown_80DC4AC: @ 80DC4AC - .string "{COLOR_1 GREEN}%s{END_COLOR_TEXT_1}\0" - .align 2,0 - -@ wigglytuff_shop2 -.string "pksdir0\0" - .align 2,0 - - .global gUnknown_80DC4BC -gUnknown_80DC4BC: @ 80DC4BC - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DC4D4 -gUnknown_80DC4D4: @ 80DC4D4 - .byte 0x01, 0x00, 0x12, 0x00 - - .global gUnknown_80DC4D8 -gUnknown_80DC4D8: @ 80DC4D8 - .byte 0x00, 0x00 - .byte 0x00, 0x00 - .byte 0x06, 0x00 - .byte 0x00, 0x00 - .byte 0x02, 0x00 - .byte 0x02, 0x00 - .byte 0x1a, 0x00 - .byte 0x11, 0x00 - .byte 0x11, 0x00 - .byte 0x00, 0x00 - - .4byte gUnknown_80DC4D4 - - .global gUnknown_80DC4F0 -gUnknown_80DC4F0: @ 80DC4F0 - .string "Inhabitants (Friends: {COLOR_2 CYAN}Light blue{END_COLOR_TEXT_2})\0" - .align 2,0 - - .global gUnknown_80DC518 -gUnknown_80DC518: @ 80DC518 - .string "Inhabitants\0" - .align 2,0 - - .global gUnknown_80DC524 -gUnknown_80DC524: @ 80DC524 - .string "{COLOR_2 CYAN}%s{END_COLOR_TEXT_2}\0" - .align 2,0 - -@ wigglytuff_shop3 -.string "pksdir0\0" - .align 2,0 - - .global gUnknown_80DC534 -gUnknown_80DC534: @ 80DC534 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DC54C -gUnknown_80DC54C: @ 80DC54C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x15, 0x00, 0x04, 0x00 - .byte 0x06, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DC564 -gUnknown_80DC564: @ 80DC564 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x15, 0x00, 0x0e, 0x00 - .byte 0x06, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - @ code_8023144 .string "pksdir0\0" .align 2,0 diff --git a/include/code_801EE10_mid.h b/include/code_801EE10_mid.h index ef3d3eb6e..a501c5e05 100644 --- a/include/code_801EE10_mid.h +++ b/include/code_801EE10_mid.h @@ -11,7 +11,4 @@ bool8 sub_801F808(u16 *moveIDs); u32 sub_801F890(void); void sub_801F8D0(void); -// code_801EE10_mid.s -extern void sub_8021494(void); - #endif // GUARD_CODE_801EE10_MID_H \ No newline at end of file diff --git a/include/code_8023144.h b/include/code_8023144.h index 19b86d8c0..66c250ac0 100644 --- a/include/code_8023144.h +++ b/include/code_8023144.h @@ -52,4 +52,10 @@ bool8 sub_80227B8(PokemonStruct1 *pokeStruct); u32 sub_8022860(void); void sub_8022908(void); +bool8 sub_8023144(s32, s32 index, UnkTextStruct2_sub *sub, u32); +u32 sub_8023278(u8); +s16 sub_802331C(void); +void sub_8023354(bool8 cursorSprite); +void sub_80233A0(void); + #endif // GUARD_CODE_8023144_H \ No newline at end of file diff --git a/include/code_8098BDC.h b/include/code_8098BDC.h index f807b23b5..1d1d3b591 100644 --- a/include/code_8098BDC.h +++ b/include/code_8098BDC.h @@ -8,6 +8,6 @@ extern void sub_80993E4(void); extern void sub_8099690(u32); extern void sub_8099A5C(u32, u32, u32); extern void sub_8099AFC(u32, u32, u32); -extern u8 sub_8099B94(void); +extern bool8 sub_8099B94(void); #endif // GUARD_CODE_8098BDC_H \ No newline at end of file diff --git a/include/wigglytuff_shop.h b/include/wigglytuff_shop.h deleted file mode 100644 index 39f6372b0..000000000 --- a/include/wigglytuff_shop.h +++ /dev/null @@ -1,79 +0,0 @@ -#ifndef GUARD_WIGGLYTUFF_SHOP_H -#define GUARD_WIGGLYTUFF_SHOP_H - -#include "file_system.h" -#include "menu.h" -#include "text.h" - -enum WigglytuffStates -{ - WIGGLYTUFF_INIT = 0, - WIGGLYTUFF_MAIN_MENU = 1, - WIGGLYTUFF_INFO = 2, - WIGGLYTUFF_PRE_EXIT = 3, - WIGGLYTUFF_EXIT = 4, - WIGGLYTUFF_CANT_ADD_FRIEND_AREA = 5, - NO_MONEY = 6, - FRIEND_AREA_SELECT_BUY = 7, - FRIEND_AREA_SELECT_BUY_AGAIN = 8, - WIGGLYTUFF_UNK9 = 9, - WIGGLYTUFF_UNKA = 10, - WIGGLYTUFF_UNKB = 11, - CONFIRM_BUY_FRIEND_AREA = 12, - WIGGLYTUFF_UNKD = 13, - WIGGLYTUFF_UNKE = 14, - FRIEND_AREA_UNLOCKED = 15, - FRIEND_AREA_INFO = 16, - BUY_FRIEND_AREA = 17, - NO_FRIEND_AREAS = 18, - NOT_ENOUGH_MONEY = 19, - WIGGLYTUFF_CHECK = 20, - WIGGLYTUFF_CHECK_AGAIN = 21, - WIGGLYTUFF_UNK16 = 22, - WIGGLYTUFF_UNK17 = 23, - DISPLAY_POKEMON_FRIEND_AREA_INFO = 24, - WIGGLYTUFF_CHECK_HAS_FRIEND_AREA = 25, - WIGGLYTUFF_CHECK_POST_GAME = 26, - WIGGLYTUFF_CHECK_WONDER_MAIL = 27, - WIGGLYTUFF_CHECK_LEGENDARY = 28, -}; - -// size: 0x138 -typedef struct WigglytuffShop -{ - bool32 isAsleep; - s32 state; - s32 fallbackState; - s32 friendAreaPrice; - u8 chosenFriendArea; - s16 chosenSpecies; - u32 menuAction1; - u32 menuAction2; - MenuItem unk1C[8]; - u16 unk5C[0x8]; - MenuStruct unk6C; - /* 0xBC */ OpenedFile *faceFile; - /* 0xC0 */ u8 *faceData; - u16 unkC4; - u16 unkC6; - u8 unkC8; - u8 unkC9; - u8 unkCA; - u8 fillCB; - OpenedFile **unkCC; - UnkTextStruct2 unkD0[4]; - u32 unk130; - u32 unk134; -} WigglytuffShop; - -bool8 sub_80211AC(u32 mode, u32); -bool8 sub_8021774(u8 friendArea, bool8, s32); -u32 sub_8021274(bool8); -u8 sub_802132C(void); -void sub_8021354(bool8); -void sub_80213A0(void); -void sub_8021494(void); -u32 sub_80217EC(void); -void sub_8021830(void); - -#endif // GUARD_WIGGLYTUFF_SHOP_H \ No newline at end of file diff --git a/include/wigglytuff_shop1.h b/include/wigglytuff_shop1.h new file mode 100644 index 000000000..f58172469 --- /dev/null +++ b/include/wigglytuff_shop1.h @@ -0,0 +1,27 @@ +#ifndef GUARD_WIGGLYTUFF_SHOP1_H +#define GUARD_WIGGLYTUFF_SHOP1_H + +#include "constants/friend_area.h" +#include "menu.h" +#include "text.h" + +typedef struct WigglytuffShop1Work +{ + /* 0x0 */ u8 friendAreas[NUM_FRIEND_AREAS]; + /* 0x3C */ u32 mode; + MenuInputStruct unk40; + s32 unk74; + UnkTextStruct2 *unk78; + UnkTextStruct2 unk7C[4]; + u8 unkDC[4]; +} WigglytuffShop1Work; + +bool8 sub_80211AC(u32 mode, u32); +u32 sub_8021274(bool8); +u8 sub_802132C(void); +void sub_8021354(bool8 cursorSprite); +void sub_80213A0(void); +void sub_8021494(void); +bool8 sub_8021700(u32 kind); + +#endif // GUARD_WIGGLYTUFF_SHOP1_H \ No newline at end of file diff --git a/include/wigglytuff_shop2.h b/include/wigglytuff_shop2.h new file mode 100644 index 000000000..ea7442c8e --- /dev/null +++ b/include/wigglytuff_shop2.h @@ -0,0 +1,25 @@ +#ifndef GUARD_WIGGLYTUFF_SHOP2_H +#define GUARD_WIGGLYTUFF_SHOP2_H + +#include "input.h" +#include "text.h" + +typedef struct WigglytuffShop2Work +{ + MenuInputStructSub unk0; + /* 0xC */ u8 friendArea; + bool8 unkD; + s16 unkE[0x10]; + u32 unk30[0x10]; + /* 0x70 */ s32 numPokemoninFriendArea; + s32 unk74; + UnkTextStruct2 *unk78; + UnkTextStruct2 unk7C[4]; + u8 unkDC[4]; +} WigglytuffShop2Work; + +bool8 sub_8021774(u8 friendArea, bool8, s32); +u32 sub_80217EC(void); +void sub_8021830(void); + +#endif // GUARD_WIGGLYTUFF_SHOP2_H \ No newline at end of file diff --git a/include/wigglytuff_shop3.h b/include/wigglytuff_shop3.h new file mode 100644 index 000000000..bf971dc98 --- /dev/null +++ b/include/wigglytuff_shop3.h @@ -0,0 +1,73 @@ +#ifndef GUARD_WIGGLYTUFF_SHOP3_H +#define GUARD_WIGGLYTUFF_SHOP3_H + +#include "file_system.h" +#include "menu.h" +#include "text.h" + +enum WigglytuffStates +{ + WIGGLYTUFF_INIT, + WIGGLYTUFF_MAIN_MENU, + WIGGLYTUFF_INFO, + WIGGLYTUFF_PRE_EXIT, + WIGGLYTUFF_EXIT, + WIGGLYTUFF_CANT_ADD_FRIEND_AREA, + NO_MONEY, + FRIEND_AREA_SELECT_BUY, + FRIEND_AREA_SELECT_BUY_AGAIN, + WIGGLYTUFF_UNK9, + WIGGLYTUFF_UNKA, + WIGGLYTUFF_UNKB, + CONFIRM_BUY_FRIEND_AREA, + WIGGLYTUFF_UNKD, + WIGGLYTUFF_UNKE, + FRIEND_AREA_UNLOCKED, + FRIEND_AREA_INFO, + BUY_FRIEND_AREA, + NO_FRIEND_AREAS, + NOT_ENOUGH_MONEY, + WIGGLYTUFF_CHECK, + WIGGLYTUFF_CHECK_AGAIN, + WIGGLYTUFF_UNK16, + WIGGLYTUFF_UNK17, + DISPLAY_POKEMON_FRIEND_AREA_INFO, + WIGGLYTUFF_CHECK_HAS_FRIEND_AREA, + WIGGLYTUFF_CHECK_POST_GAME, + WIGGLYTUFF_CHECK_WONDER_MAIL, + WIGGLYTUFF_CHECK_LEGENDARY, +}; + +// size: 0x138 +typedef struct WigglytuffShop3Work +{ + u32 mode; + s32 state; + s32 fallbackState; + s32 friendAreaPrice; + u8 chosenFriendArea; + s16 chosenSpecies; + u32 menuAction1; + u32 menuAction2; + MenuItem unk1C[8]; + u16 unk5C[8]; + MenuStruct unk6C; + /* 0xBC */ OpenedFile *faceFile; + /* 0xC0 */ u8 *faceData; + u16 unkC4; + u16 unkC6; + u8 unkC8; + u8 unkC9; + u8 unkCA; + u8 fillCB; + OpenedFile **unkCC; + UnkTextStruct2 unkD0[4]; + u32 unk130; + u32 unk134; +} WigglytuffShop3Work; + +bool8 CreateWigglytuffShop(u32 mode); +u32 sub_8021C5C(void); +void sub_8021D1C(void); + +#endif // GUARD_WIGGLYTUFF_SHOP3_H \ No newline at end of file diff --git a/ld_script.txt b/ld_script.txt index e1a3c2c37..eee1ecb18 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -118,7 +118,9 @@ SECTIONS { asm/code_801EE10.o(.text); src/code_801EE10_mid.o(.text); src/gulpin_shop_801FB50.o(.text); - src/wigglytuff_shop.o(.text); + src/wigglytuff_shop1.o(.text); + src/wigglytuff_shop2.o(.text); + src/wigglytuff_shop3.o(.text); src/code_8023144_pre.o(.text); asm/code_8023144.o(.text); src/code_8023144.o(.text); @@ -430,6 +432,9 @@ SECTIONS { src/gulpin_shop.o(.rodata); data/data_80DC240.o(.rodata); src/gulpin_shop_801FB50.o(.rodata); + src/wigglytuff_shop1.o(.rodata); + src/wigglytuff_shop2.o(.rodata); + src/wigglytuff_shop3.o(.rodata); data/data_80DC464.o(.rodata); src/luminous_cave.o(.rodata); src/friend_list_menu.o(.rodata); diff --git a/src/code_801D014.c b/src/code_801D014.c index 526289e27..cefdcfea1 100644 --- a/src/code_801D014.c +++ b/src/code_801D014.c @@ -23,7 +23,7 @@ #include "rescue_team_info.h" #include "text1.h" #include "text2.h" -#include "wigglytuff_shop.h" +#include "wigglytuff_shop2.h" #include "wonder_mail_2_1.h" extern u8 gAvailablePokemonNames[]; // 202DF98 diff --git a/src/code_801EE10_1.c b/src/code_801EE10_1.c index 241ed0f2b..a5e3fb2ee 100644 --- a/src/code_801EE10_1.c +++ b/src/code_801EE10_1.c @@ -220,6 +220,16 @@ PokemonStruct1 *sub_80243E8(void) return pokeStruct; } + + + + +// THIS IS A NEW FILE: + + + + + bool8 sub_8024458(s16 speciesNum, s32 param_2) { s32 speciesNum_s32 = speciesNum; diff --git a/src/code_8023144.c b/src/code_8023144.c index a06b754f8..2a557c721 100644 --- a/src/code_8023144.c +++ b/src/code_8023144.c @@ -39,6 +39,11 @@ extern void sub_80234BC(void); extern u32 sub_80236A4(void); +extern u8 gUnknown_80DC934[]; + +extern void sub_8008C54(u32); +extern u8 gUnknown_80DC93C[]; + extern u8 gUnknown_80DC5EC[]; extern u8 gUnknown_202DE58[]; extern u8 gUnknown_80DC8F0[]; @@ -257,6 +262,15 @@ void sub_8023120(void) } } + + +// THIS IS A NEW FILE: + + + + + + bool8 sub_8023144(s32 param_1, s32 index, UnkTextStruct2_sub *sub, u32 param_4) { u8 param_1_u8 = param_1; @@ -292,8 +306,7 @@ bool8 sub_8023144(s32 param_1, s32 index, UnkTextStruct2_sub *sub, u32 param_4) return 1; } - -u8 sub_8023278(u8 param_1) +u32 sub_8023278(u8 param_1) { s32 iVar3; u32 temp; @@ -334,18 +347,17 @@ s16 sub_802331C(void) return gUnknown_3001B5C->unkC[gUnknown_3001B5C->input.unk1E * gUnknown_3001B5C->input.unk1C + gUnknown_3001B5C->input.menuIndex]; } -void sub_8023354(u8 param_1) +void sub_8023354(bool8 cursorSprite) { ResetUnusedInputStruct(); sub_800641C(gUnknown_3001B5C->unk398, FALSE, FALSE); sub_8013984(&gUnknown_3001B5C->input); sub_8023420(); sub_80234BC(); - if (param_1 != 0) { - AddMenuCursorSprite(&gUnknown_3001B5C->input); - } -} + if (cursorSprite) + AddMenuCursorSprite(&gUnknown_3001B5C->input); +} void sub_80233A0(void) { @@ -437,11 +449,6 @@ void sub_8023420(void) "_080234B8: .4byte 0x000003a6"); } -extern u8 gUnknown_80DC934[]; - -extern void sub_8008C54(u32); -extern u8 gUnknown_80DC93C[]; - void sub_80234BC(void) { u8 cVar2; diff --git a/src/credits1.c b/src/credits1.c index 321bfb284..da79399b6 100644 --- a/src/credits1.c +++ b/src/credits1.c @@ -98,14 +98,14 @@ s32 sub_8035574(void) switch (sCredits1Work->unk60) { case 0: - if (sub_8099B94() == 0) { + if (!sub_8099B94()) { sCredits1Work->unk60 = 1; p = gUnknown_80E4A40; sub_8099A5C(9, 30, p[0]); // Probably same/similar macro from the above func - Kermalis } break; case 1: - if (sub_8099B94() == 0) + if (!sub_8099B94()) sCredits1Work->unk60 = 2; break; case 2: @@ -117,7 +117,7 @@ s32 sub_8035574(void) sCredits1Work->unk64--; break; case 3: - if (sub_8099B94() == 0) { + if (!sub_8099B94()) { ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); sCredits1Work->unk60 = 4; diff --git a/src/data/wigglytuff_shop1.h b/src/data/wigglytuff_shop1.h new file mode 100644 index 000000000..fbeacc694 --- /dev/null +++ b/src/data/wigglytuff_shop1.h @@ -0,0 +1,23 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 gUnknown_80DC464 = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; + +static const UnkTextStruct2 gUnknown_80DC47C = { + 0, 0, 0, 0, + 6, + 2, 2, + 17, 17, + 17, 0, + NULL +}; + +ALIGNED(4) static const u8 gUnknown_80DC494[] = _("Friend Areas"); +ALIGNED(4) static const u8 gUnknown_80DC4A4[] = _("{COLOR_1 RED}%s{END_COLOR_TEXT_1}"); +ALIGNED(4) static const u8 gUnknown_80DC4AC[] = _("{COLOR_1 GREEN}%s{END_COLOR_TEXT_1}"); \ No newline at end of file diff --git a/src/data/wigglytuff_shop2.h b/src/data/wigglytuff_shop2.h new file mode 100644 index 000000000..20870f335 --- /dev/null +++ b/src/data/wigglytuff_shop2.h @@ -0,0 +1,24 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 gUnknown_80DC4BC = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; + +static const u8 sUnknown_80DC4D4[] = {1, 0, 18, 0}; +static const UnkTextStruct2 gUnknown_80DC4D8 = { + 0, 0, 0, 0, + 6, + 2, 2, + 26, 17, + 17, 0, + sUnknown_80DC4D4 +}; + +ALIGNED(4) static const u8 gUnknown_80DC4F0[] = _("Inhabitants (Friends: {COLOR_2 CYAN}Light blue{END_COLOR_TEXT_2})"); +ALIGNED(4) static const u8 gUnknown_80DC518[] = _("Inhabitants"); +ALIGNED(4) static const u8 gUnknown_80DC524[] = _("{COLOR_2 CYAN}%s{END_COLOR_TEXT_2}"); \ No newline at end of file diff --git a/src/data/wigglytuff_shop3.h b/src/data/wigglytuff_shop3.h new file mode 100644 index 000000000..f94e1e678 --- /dev/null +++ b/src/data/wigglytuff_shop3.h @@ -0,0 +1,28 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 gUnknown_80DC534 = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; + +static const UnkTextStruct2 gUnknown_80DC54C = { + 0, 0, 0, 0, + 3, + 21, 4, + 6, 3, + 3, 0, + NULL +}; + +static const UnkTextStruct2 gUnknown_80DC564 = { + 0, 0, 0, 0, + 3, + 21, 14, + 6, 3, + 3, 0, + NULL +}; \ No newline at end of file diff --git a/src/debug_menu3.c b/src/debug_menu3.c index 804ea83eb..1e6859a25 100644 --- a/src/debug_menu3.c +++ b/src/debug_menu3.c @@ -8,7 +8,8 @@ #include "pokemon.h" #include "text1.h" #include "text2.h" -#include "wigglytuff_shop.h" +#include "wigglytuff_shop1.h" +#include "wigglytuff_shop2.h" static EWRAM_DATA_2 unkStruct_203B3F4 *sUnknown_203B3F4 = {0}; diff --git a/src/event_flag.c b/src/event_flag.c index 210e87c8a..5f7738306 100644 --- a/src/event_flag.c +++ b/src/event_flag.c @@ -486,6 +486,7 @@ u8 *sub_80023C4(u32 param_1) } } +// 6 checks for post game being reached bool8 sub_80023E4(u32 param_1) { switch(param_1) { diff --git a/src/pokemon_news.c b/src/pokemon_news.c index 2b5e7c028..3502ca46a 100644 --- a/src/pokemon_news.c +++ b/src/pokemon_news.c @@ -521,6 +521,17 @@ void sub_802BCC4(void) } } + + + + +// THIS IS A NEW FILE: + + + + + + u32 sub_802BD14(s32 param_1, UnkTextStruct2_sub *param_2, u32 param_3) { if (HasNoMailinMailbox()) diff --git a/src/wigglytuff_shop.c b/src/wigglytuff_shop.c deleted file mode 100644 index 129636aa4..000000000 --- a/src/wigglytuff_shop.c +++ /dev/null @@ -1,1130 +0,0 @@ -#include "global.h" -#include "code_800D090.h" -#include "code_80118A4.h" -#include "code_80130A8.h" -#include "code_801EE10_mid.h" -#include "code_8098BDC.h" -#include "common_strings.h" -#include "constants/friend_area.h" -#include "constants/input.h" -#include "event_flag.h" -#include "exclusive_pokemon.h" -#include "felicity_bank.h" -#include "file_system.h" -#include "friend_area.h" -#include "menu_input.h" -#include "memory.h" -#include "pokemon.h" -#include "pokemon_3.h" -#include "text1.h" -#include "text2.h" -#include "wigglytuff_shop.h" - -// TODO: This file was originally 3 files. Split properly -// 4 files if you count code_8023144.s - -// split1 - -typedef struct unkStruct_203B280 -{ - /* 0x0 */ u8 friendAreas[NUM_FRIEND_AREAS]; - /* 0x3C */ u32 mode; - MenuInputStruct unk40; - s32 unk74; - UnkTextStruct2 *unk78; - UnkTextStruct2 unk7C[4]; - u8 unkDC[4]; -} unkStruct_203B280; -EWRAM_DATA_2 unkStruct_203B280 *gUnknown_203B280 = {0}; -EWRAM_DATA_2 u32 gUnknown_203B284 = {0}; -EWRAM_DATA_2 u16 gUnknown_203B288 = {0}; -EWRAM_DATA_2 u16 gUnknown_203B28A = {0}; - -// split2 - -typedef struct unkStruct_203B28C -{ - MenuInputStructSub unk0; - /* 0xC */ u8 friendArea; - bool8 unkD; - s16 unkE[0x10]; - u32 unk30[0x10]; - /* 0x70 */ s32 numPokemoninFriendArea; - s32 unk74; - UnkTextStruct2 *unk78; - UnkTextStruct2 unk7C[4]; - u8 unkDC[4]; -} unkStruct_203B28C; -EWRAM_DATA_2 unkStruct_203B28C *gUnknown_203B28C = {0}; - -// split3 - -static EWRAM_DATA_2 WigglytuffShop *sWigglytuffShop = {0}; - -// other stuff - -extern u8 *gFriendAreas; -extern u32 gUnknown_202DE30[2]; -extern u8 gAvailablePokemonNames[]; // 202DF98 -extern u8 gUnknown_202E1C8[]; -extern u8 gUnknown_202E5D8[]; -extern u8 gUnknown_202E628[]; - -// split1 -extern const UnkTextStruct2 gUnknown_80DC464; -extern const UnkTextStruct2 gUnknown_80DC47C; -extern const u8 gUnknown_80DC494[]; -extern const u8 gUnknown_80DC4A4[]; -extern const u8 gUnknown_80DC4AC[]; -// split2 -extern const UnkTextStruct2 gUnknown_80DC4BC; -extern const UnkTextStruct2 gUnknown_80DC4D8; -extern const u8 gUnknown_80DC4F0[]; -extern const u8 gUnknown_80DC518[]; -extern const u8 gUnknown_80DC524[]; -// split3 -extern const UnkTextStruct2 gUnknown_80DC534; -extern const UnkTextStruct2 gUnknown_80DC54C; -extern const UnkTextStruct2 gUnknown_80DC564; - -u8 sub_8021700(u32); -void sub_8092578(u8 *buffer, u8 index, u8 r2); -extern void sub_803AA34(); -extern u8 sub_803ABC8(void); -extern u8 sub_802132C(void); -extern void sub_8022380(void); -bool8 sub_8023144(s32 param_1, s32 index, UnkTextStruct2_sub *sub, u32 param_4); -void sub_8023354(u8 param_1); -extern void CreateWigglytuffConfirmFriendAreaMenu(void); - -extern u32 sub_8023278(u32); -void sub_80233A0(void); -s16 sub_802331C(void); - -void sub_8022460(void); -void sub_8022538(void); -void sub_80225C8(void); -void HandleWigglytuffConfirmFriendAreaMenu(void); -void sub_80226F0(void); -void sub_8022790(void); -void sub_8022668(void); -void sub_8022684(void); -void sub_80226CC(void); -void sub_80222C8(void); -void SetWigglytuffState(s32); -void sub_8021D5C(void); -void UpdateWigglytuffDialogue(void); - -extern void sub_8008C54(u32); - -void sub_8021878(void); -void sub_8021894(void); -void sub_8021820(void); -void sub_8021A60(void); -s32 sub_8021664(void); -void sub_8021410(void); -s32 sub_8021B58(s16 species); - -// split1 - -bool8 sub_80211AC(u32 mode, u32 param_2) -{ - if (sub_8021700(mode)) - return FALSE; - - gUnknown_203B280 = MemoryAlloc(sizeof(unkStruct_203B280), 8); - gUnknown_203B280->mode = mode; - gUnknown_203B280->unk74 = param_2; - gUnknown_203B280->unk78 = &gUnknown_203B280->unk7C[gUnknown_203B280->unk74]; - sub_8006518(gUnknown_203B280->unk7C); - gUnknown_203B280->unk7C[gUnknown_203B280->unk74] = gUnknown_80DC47C; - gUnknown_203B280->unk78->unk14 = gUnknown_203B280->unkDC; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B280->unk7C, TRUE, TRUE); - sub_8013818(&gUnknown_203B280->unk40, sub_8021664(), 10, param_2); - - if (gUnknown_203B284 == gUnknown_203B280->mode) { - gUnknown_203B280->unk40.menuIndex = gUnknown_203B288; - gUnknown_203B280->unk40.unk1E = gUnknown_203B28A; - sub_8013984(&gUnknown_203B280->unk40); - } - - sub_8021410(); - sub_8021494(); - return TRUE; -} - -u32 sub_8021274(bool8 param_1) -{ - if (!param_1) { - sub_8013660(&gUnknown_203B280->unk40); - return 0; - } - - switch (GetKeyPress(&gUnknown_203B280->unk40)) { - case INPUT_B_BUTTON: - PlayMenuSoundEffect(1); - return 2; - case INPUT_A_BUTTON: - if (gUnknown_203B280->mode == 2 && GetFriendAreaPrice(sub_802132C()) > gTeamInventoryRef->teamMoney) - PlayMenuSoundEffect(2); - else - PlayMenuSoundEffect(0); - return 3; - case INPUT_START_BUTTON: - PlayMenuSoundEffect(4); - return 4; - default: - if (sub_80138B8(&gUnknown_203B280->unk40, 1) != 0) { - sub_8021410(); - sub_8021494(); - return 1; - } - return 0; - } -} - -u8 sub_802132C(void) -{ - return gUnknown_203B280->friendAreas[gUnknown_203B280->unk40.unk1E * gUnknown_203B280->unk40.unk1C + gUnknown_203B280->unk40.menuIndex]; -} - -void sub_8021354(bool8 a0) -{ - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B280->unk7C, FALSE, FALSE); - gUnknown_203B280->unk40.unk22 = sub_8021664(); - sub_8013984(&gUnknown_203B280->unk40); - sub_8021410(); - sub_8021494(); - if (a0) - AddMenuCursorSprite(&gUnknown_203B280->unk40); -} - -void sub_80213A0(void) -{ - if (gUnknown_203B280) { - gUnknown_203B284 = gUnknown_203B280->mode; - gUnknown_203B288 = gUnknown_203B280->unk40.menuIndex; - gUnknown_203B28A = gUnknown_203B280->unk40.unk1E; - gUnknown_203B280->unk7C[gUnknown_203B280->unk74] = gUnknown_80DC464; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B280->unk7C, TRUE, TRUE); - MemoryFree(gUnknown_203B280); - gUnknown_203B280 = NULL; - } -} - -NAKED // sub_80095E4 memes -void sub_8021410(void) -{ - asm_unified( - "\tpush {r4,lr}\n" - "\tldr r4, _08021490\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0xDC\n" - "\tmovs r2, 0\n" - "\tmovs r1, 0x1\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0xDD\n" - "\tstrb r2, [r0]\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0xDE\n" - "\tmovs r1, 0xC\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0xDF\n" - "\tstrb r2, [r0]\n" - "\tbl ResetUnusedInputStruct\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x7C\n" - "\tmovs r1, 0x1\n" - "\tmovs r2, 0x1\n" - "\tbl sub_800641C\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x5A\n" - "\tmovs r1, 0\n" - "\tldrsh r0, [r0, r1]\n" - "\tmovs r1, 0xC\n" - "\tbl sub_80095E4\n" - "\tadds r0, 0x2\n" - "\tlsls r0, 16\n" - "\tldr r2, [r4]\n" - "\tldr r3, [r2, 0x74]\n" - "\tlsls r1, r3, 1\n" - "\tadds r1, r3\n" - "\tlsls r1, 3\n" - "\tadds r1, r2, r1\n" - "\tadds r1, 0x8A\n" - "\tasrs r3, r0, 16\n" - "\tlsrs r0, 16\n" - "\tstrh r0, [r1]\n" - "\tldr r1, [r2, 0x74]\n" - "\tlsls r0, r1, 1\n" - "\tadds r0, r1\n" - "\tlsls r0, 3\n" - "\tadds r2, r0\n" - "\tadds r3, 0x2\n" - "\tadds r2, 0x8C\n" - "\tstrh r3, [r2]\n" - "\tbl ResetUnusedInputStruct\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x7C\n" - "\tmovs r1, 0x1\n" - "\tmovs r2, 0x1\n" - "\tbl sub_800641C\n" - "\tpop {r4}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" -"_08021490: .4byte gUnknown_203B280"); -} - -void sub_8021494(void) -{ - u8 friendAreaIndex; - s32 index; - u8 buffer1[80]; - u8 buffer2[80]; - - sub_8008C54(gUnknown_203B280->unk74); - sub_80073B8(gUnknown_203B280->unk74); - xxx_call_draw_string(10,0,gUnknown_80DC494,gUnknown_203B280->unk74,0); // Friend Areas - sub_8012BC4(gUnknown_203B280->unkDC[2] * 8 + 4,0,(gUnknown_203B280->unk40).unk1E + 1,1,7,gUnknown_203B280->unk74); - - for (index = 0; index < (gUnknown_203B280->unk40).unk1A; index++) { - friendAreaIndex = gUnknown_203B280->friendAreas[(gUnknown_203B280->unk40).unk1E * (gUnknown_203B280->unk40).unk1C + index]; - - if (gUnknown_203B280->mode == 2) { - sub_8092578(buffer1,friendAreaIndex,TRUE); - - if (GetFriendAreaPrice(friendAreaIndex) <= gTeamInventoryRef->teamMoney) { - xxx_call_draw_string(8,sub_8013800(&gUnknown_203B280->unk40,index),buffer1,gUnknown_203B280->unk74,0); - } - else { - sprintfStatic(buffer2,gUnknown_80DC4A4,buffer1); // {RED} %s {END} - xxx_call_draw_string(8,sub_8013800(&gUnknown_203B280->unk40,index),buffer2,gUnknown_203B280->unk74,0); - } - } - else if (gUnknown_203B280->mode == 0) { - if (gFriendAreas[friendAreaIndex] == 1) { - xxx_call_draw_string(8,sub_8013800(&gUnknown_203B280->unk40,index),GetFriendAreaName(friendAreaIndex),gUnknown_203B280->unk74,0); - } - else - { - sprintfStatic(buffer2,gUnknown_80DC4AC,GetFriendAreaName(friendAreaIndex)); // {GREEN} %s {END} - xxx_call_draw_string(8,sub_8013800(&gUnknown_203B280->unk40,index),buffer2,gUnknown_203B280->unk74,0); - } - } - else { - xxx_call_draw_string(8,sub_8013800(&gUnknown_203B280->unk40,index),GetFriendAreaName(friendAreaIndex),gUnknown_203B280->unk74,0); - } - } - sub_80073E0(gUnknown_203B280->unk74); -} - -s32 sub_8021664(void) -{ - s32 index; - s32 counter; - - counter = 0; - switch(gUnknown_203B280->mode) - { - case 0: - for(index = BOUNTIFUL_SEA; index < NUM_FRIEND_AREAS; index++) - { - gUnknown_203B280->friendAreas[counter] = index; - counter++; - } - break; - case 1: - for(index = BOUNTIFUL_SEA; index < NUM_FRIEND_AREAS; index++) - { - if(gFriendAreas[index]) - { - gUnknown_203B280->friendAreas[counter] = index; - counter++; - } - } - break; - case 2: - for(index = BOUNTIFUL_SEA; index < NUM_FRIEND_AREAS; index++) - { - if (gFriendAreas[index] == 0) { - switch(GetFriendAreaUnlockCondition(index)) - { - case UNLOCK_SHOP_STORY: - gUnknown_203B280->friendAreas[counter] = index; - counter++; - break; - case UNLOCK_SHOP_POST_GAME: - if(sub_80023E4(6) != 0) { - gUnknown_203B280->friendAreas[counter] = index; - counter++; - } - break; - } - } - } - break; - } - return counter; -} - -u8 sub_8021700(u32 mode) -{ - s32 index; - - switch(mode) - { - case 0: - return FALSE; - case 1: - for(index = BOUNTIFUL_SEA; index < NUM_FRIEND_AREAS; index++) - { - if (gFriendAreas[index] != 0) { - return FALSE; - } - } - break; - case 2: - for(index = BOUNTIFUL_SEA; index < NUM_FRIEND_AREAS; index++) - { - if (gFriendAreas[index] == 0) { - switch(GetFriendAreaUnlockCondition(index)) - { - case UNLOCK_SHOP_STORY: - return FALSE; - case UNLOCK_SHOP_POST_GAME: - if(sub_80023E4(6) != 0) { - return FALSE; - } - break; - } - } - } - break; - } - return TRUE; -} - -// split2 - -bool8 sub_8021774(u8 friendArea, bool8 param_2, s32 param_3) -{ - gUnknown_203B28C = MemoryAlloc(sizeof(unkStruct_203B28C), 8); - gUnknown_203B28C->friendArea = friendArea; - gUnknown_203B28C->unkD = param_2; - sub_801317C(&gUnknown_203B28C->unk0); - sub_8021A60(); - gUnknown_203B28C->unk74 = param_3; - gUnknown_203B28C->unk78 = &gUnknown_203B28C->unk7C[param_3]; - sub_8006518(gUnknown_203B28C->unk7C); - gUnknown_203B28C->unk7C[gUnknown_203B28C->unk74] = gUnknown_80DC4D8; - sub_8021820(); - return TRUE; -} - -u32 sub_80217EC(void) -{ - switch(sub_8012A64(&gUnknown_203B28C->unk0, gUnknown_203B28C->unk74)) - { - case 2: - PlayMenuSoundEffect(1); - return 2; - case 1: - PlayMenuSoundEffect(0); - return 3; - default: - return 0; - } -} - -void sub_8021820(void) -{ - sub_8021878(); - sub_8021894(); -} - -void sub_8021830(void) -{ - if(gUnknown_203B28C) - { - gUnknown_203B28C->unk7C[gUnknown_203B28C->unk74] = gUnknown_80DC4BC; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B28C->unk7C, TRUE, TRUE); - MemoryFree(gUnknown_203B28C); - gUnknown_203B28C = NULL; - } -} - -void sub_8021878(void) -{ - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B28C->unk7C, TRUE, TRUE); -} - -void sub_8021894(void) -{ - const u8 *string; - u32 y; - u32 x; - s32 index; - u8 buffer1 [256]; - u8 buffer2 [100]; - - sub_80073B8(gUnknown_203B28C->unk74); - sub_8092578(buffer1,gUnknown_203B28C->friendArea,FALSE); - xxx_call_draw_string(0x14,0,buffer1,gUnknown_203B28C->unk74,0); - string = GetFriendAreaDescription(gUnknown_203B28C->friendArea); - xxx_call_draw_string(10,0x14,string,gUnknown_203B28C->unk74,0); - if (gUnknown_203B28C->unkD != 0) { - xxx_call_draw_string(0x20,0x3c,gUnknown_80DC4F0,gUnknown_203B28C->unk74,0); - } - else { - xxx_call_draw_string(0x20,0x3c,gUnknown_80DC518,gUnknown_203B28C->unk74,0); // Inhabitants - } - sub_800792C(gUnknown_203B28C->unk74,4,0x40,0x14,4); - if (gUnknown_203B28C->unkD != 0) { - sub_800792C(gUnknown_203B28C->unk74,0xb8,0x40,0x14,4); - } - else { - sub_800792C(gUnknown_203B28C->unk74,0x5e,0x40,0x6e,4); - } - sub_800792C(gUnknown_203B28C->unk74,4,0x82,200,4); - sub_8007A78(gUnknown_203B28C->unk74,3,0x40,0x43,4); - sub_8007A78(gUnknown_203B28C->unk74,0xcc,0x40,0x43,4); - for(index = 0; index < gUnknown_203B28C->numPokemoninFriendArea; index++) - { - x = (index % 3) * 63 + 7; - y = (index / 3) * 12 + 0x47; - sub_808D930(buffer2, gUnknown_203B28C->unkE[index]); - switch(gUnknown_203B28C->unk30[index]) - { - case 0: // Not recruited/seen - xxx_call_draw_string(x,y,*gCommonTripleQuestionMark,gUnknown_203B28C->unk74,0); - break; - case 1: // Seen but not recruited - xxx_call_draw_string(x,y,buffer2,gUnknown_203B28C->unk74,0); // %s - break; - case 2: - sprintfStatic(buffer1,gUnknown_80DC524,buffer2); // {CYAN} %s {END_COLOR} - xxx_call_draw_string(x,y,buffer1,gUnknown_203B28C->unk74,0); - break; - } - } - sub_80073E0(gUnknown_203B28C->unk74); -} - -void sub_8021A60(void) -{ - s32 sVar4; - s32 iVar6; - s32 index; - PokemonStruct1 *pokeStruct; - - gUnknown_203B28C->numPokemoninFriendArea = 0; - for(index = 0; index < 0x10; index++) - { - gUnknown_203B28C->unkE[index] = 0; - gUnknown_203B28C->unk30[index] = 0; - } - for(index = 0; index < 0x1A8; index++) - { - s32 index2 = (s16)index; - if ((gUnknown_203B28C->friendArea == GetFriendArea(index2)) && - (index2 == GetBaseSpeciesNoUnown(index2))) { - iVar6 = gUnknown_203B28C->numPokemoninFriendArea; - gUnknown_203B28C->unkE[iVar6] = index2; - gUnknown_203B28C->numPokemoninFriendArea = iVar6 + 1; - } - } - for(index = 0; index < 0x1A8; index++) - { - if ((sub_8098134(index)) && (sVar4 = sub_8021B58(index), sVar4 != -1)) { - gUnknown_203B28C->unk30[sVar4] = 1; - } - } - for(index = 0; index < NUM_MONSTERS; index++) - { - pokeStruct = &gRecruitedPokemonRef->pokemon[index]; - if (((u8)pokeStruct->unk0 & 1) && - (sVar4 = sub_8021B58(pokeStruct->speciesNum), sVar4 != -1)) { - gUnknown_203B28C->unk30[sVar4] = 2; - } - } -} - -s32 sub_8021B58(s16 species) -{ - s32 baseSpecies; - int index; - - baseSpecies = GetBaseSpeciesNoUnown(species); - for(index = 0; index < gUnknown_203B28C->numPokemoninFriendArea; index++) - { - if (baseSpecies == gUnknown_203B28C->unkE[index]) return index; - } - return -1; -} - -// split3 - -bool8 CreateWigglytuffShop(bool32 isAsleep) -{ - u8 *string; - OpenedFile *file; - - ResetUnusedInputStruct(); - sub_800641C(NULL, TRUE, TRUE); - sWigglytuffShop = MemoryAlloc(sizeof(WigglytuffShop), 8); - sWigglytuffShop->menuAction1 = 0; - sWigglytuffShop->menuAction2 = 0; - sWigglytuffShop->isAsleep = isAsleep; - CopyYellowMonsterNametoBuffer(gUnknown_202E5D8,MONSTER_WIGGLYTUFF); - CopyYellowMonsterNametoBuffer(gUnknown_202E1C8,MONSTER_WIGGLYTUFF); - string = GetMonSpecies(MONSTER_WIGGLYTUFF); - strcpy(gUnknown_202E1C8 - 0x50, string); - if (sWigglytuffShop->isAsleep == TRUE) { - sWigglytuffShop->unkCC = NULL; - } - else { - sWigglytuffShop->unkCC = &sWigglytuffShop->faceFile; - } - file = GetDialogueSpriteDataPtr(MONSTER_WIGGLYTUFF); - sWigglytuffShop->faceFile = file; - sWigglytuffShop->faceData = file->data; - sWigglytuffShop->unkC8 = 0; - sWigglytuffShop->unkC9 = 0; - sWigglytuffShop->unkCA = 0; - sWigglytuffShop->unkC4 = 2; - sWigglytuffShop->unkC6 = 8; - SetWigglytuffState(WIGGLYTUFF_INIT); - return TRUE; -} - -u32 sub_8021C5C(void) -{ - switch(sWigglytuffShop->state) - { - case WIGGLYTUFF_INIT: - case WIGGLYTUFF_MAIN_MENU: - sub_8022460(); - break; - case WIGGLYTUFF_UNK9: - case WIGGLYTUFF_UNKA: - sub_8022538(); - break; - case WIGGLYTUFF_UNKB: - sub_80225C8(); - break; - case BUY_FRIEND_AREA: - HandleWigglytuffConfirmFriendAreaMenu(); - break; - case WIGGLYTUFF_UNKD: - sub_80226F0(); - break; - case WIGGLYTUFF_UNKE: - sub_8022790(); - break; - case FRIEND_AREA_INFO: - sub_8022668(); - break; - case WIGGLYTUFF_UNK16: - case WIGGLYTUFF_UNK17: - sub_8022684(); - break; - case WIGGLYTUFF_EXIT: - return 3; - default: - sub_80226CC(); - break; - } - return 0; -} - -void sub_8021D1C(void) -{ - if(sWigglytuffShop) - { - CloseFile(sWigglytuffShop->faceFile); - MemoryFree(sWigglytuffShop); - sWigglytuffShop = NULL; - } -} - -void SetWigglytuffState(s32 newState) -{ - sWigglytuffShop->state = newState; - sub_8021D5C(); - UpdateWigglytuffDialogue(); -} - -void sub_8021D5C(void) -{ - s32 index; - - sub_8006518(sWigglytuffShop->unkD0); - switch(sWigglytuffShop->state) - { - case WIGGLYTUFF_UNK9: - case WIGGLYTUFF_UNKA: - sWigglytuffShop->unkD0[0] = gUnknown_80DC534; - sWigglytuffShop->unkD0[2] = gUnknown_80DC534; - sWigglytuffShop->unkD0[1] = gUnknown_80DC564; - break; - case WIGGLYTUFF_UNKB: - sWigglytuffShop->unkD0[2] = gUnknown_80DC54C; - break; - default: - for(index = 0; index < 4; index++) - { - sWigglytuffShop->unkD0[index] = gUnknown_80DC534; - } - break; - - } - ResetUnusedInputStruct(); - sub_800641C(sWigglytuffShop->unkD0, TRUE, TRUE); -} - -void UpdateWigglytuffDialogue(void) -{ - char *string; - unkStruct_8092638 uStack_14; - - switch(sWigglytuffShop->state) - { - case WIGGLYTUFF_INIT: - sub_80222C8(); - sub_8014248(gCommonWigglytuff[sWigglytuffShop->isAsleep][0],0,sWigglytuffShop->menuAction1,sWigglytuffShop->unk1C,sWigglytuffShop->unk5C,4,0,sWigglytuffShop->unkCC,0xc); - break; - case WIGGLYTUFF_MAIN_MENU: - sub_80222C8(); - sub_8014248(gCommonWigglytuff[sWigglytuffShop->isAsleep][1],0,sWigglytuffShop->menuAction1,sWigglytuffShop->unk1C,sWigglytuffShop->unk5C,4,0,sWigglytuffShop->unkCC,0xc); - break; - case FRIEND_AREA_SELECT_BUY: - sWigglytuffShop->fallbackState = WIGGLYTUFF_UNK9; - sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][3],0,sWigglytuffShop->unkCC,0x10d); - break; - case FRIEND_AREA_SELECT_BUY_AGAIN: - sWigglytuffShop->fallbackState = WIGGLYTUFF_UNKA; - sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][4],0,sWigglytuffShop->unkCC,0x10d); - break; - case WIGGLYTUFF_INFO: - sWigglytuffShop->fallbackState = WIGGLYTUFF_MAIN_MENU; - sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][19],0,sWigglytuffShop->unkCC,0x10d); - break; - case WIGGLYTUFF_PRE_EXIT: - sWigglytuffShop->fallbackState = WIGGLYTUFF_EXIT; - sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][2],0,sWigglytuffShop->unkCC,0x30d); - break; - default: - break; - case WIGGLYTUFF_CANT_ADD_FRIEND_AREA: - sWigglytuffShop->fallbackState = WIGGLYTUFF_PRE_EXIT; - sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][8],0,sWigglytuffShop->unkCC,0x10d); - break; - case NO_MONEY: - sWigglytuffShop->fallbackState = WIGGLYTUFF_UNKA; - sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][9],0,sWigglytuffShop->unkCC,0x10d); - break; - case NO_FRIEND_AREAS: - sWigglytuffShop->fallbackState = WIGGLYTUFF_PRE_EXIT; - sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][10],0,sWigglytuffShop->unkCC,0x10d); - break; - case NOT_ENOUGH_MONEY: - sWigglytuffShop->fallbackState = WIGGLYTUFF_UNKA; - sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][11],0,sWigglytuffShop->unkCC,0x10d); - break; - case WIGGLYTUFF_UNK9: - sub_80211AC(2,3); - DrawTeamMoneyBox(1); - break; - case WIGGLYTUFF_UNKA: - sub_8021354(TRUE); - DrawTeamMoneyBox(1); - break; - case WIGGLYTUFF_UNKB: - sub_8021494(); - DrawTeamMoneyBox(1); - sub_8022380(); - sub_8012D60(&sWigglytuffShop->unk6C,sWigglytuffShop->unk1C,0,sWigglytuffShop->unk5C, sWigglytuffShop->menuAction2,2); - break; - case BUY_FRIEND_AREA: - CreateWigglytuffConfirmFriendAreaMenu(); - sub_8092578(gUnknown_202E628,sWigglytuffShop->chosenFriendArea,FALSE); - gUnknown_202DE30[0] = sWigglytuffShop->friendAreaPrice; - sub_8014248(gCommonWigglytuff[sWigglytuffShop->isAsleep][5],0,5,sWigglytuffShop->unk1C,0,4,0,sWigglytuffShop->unkCC,0xc); - break; - case FRIEND_AREA_INFO: - sub_8021774(sWigglytuffShop->chosenFriendArea,FALSE,2); - break; - case CONFIRM_BUY_FRIEND_AREA: - sWigglytuffShop->fallbackState = WIGGLYTUFF_UNKD; - sub_8092578(gUnknown_202E628,sWigglytuffShop->chosenFriendArea,FALSE); - sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][6],0,sWigglytuffShop->unkCC,0x10d); - break; - case WIGGLYTUFF_UNKD: - sWigglytuffShop->fallbackState = WIGGLYTUFF_UNKE; - PlaySound(0x25b); - sWigglytuffShop->unk130 = 1; - break; - case WIGGLYTUFF_UNKE: - sWigglytuffShop->fallbackState = FRIEND_AREA_UNLOCKED; - sWigglytuffShop->unk134 = 30; - break; - case FRIEND_AREA_UNLOCKED: - if (sub_8021700(2) != 0) { - sub_80213A0(); - sWigglytuffShop->fallbackState = NO_FRIEND_AREAS; - } - else { - sWigglytuffShop->fallbackState = FRIEND_AREA_SELECT_BUY_AGAIN; - } - PlaySound(0xce); - sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][7],0,sWigglytuffShop->unkCC,0x10d); - break; - case WIGGLYTUFF_CHECK: - sWigglytuffShop->fallbackState = WIGGLYTUFF_UNK16; - sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][12],0,sWigglytuffShop->unkCC,0x10d); - break; - case WIGGLYTUFF_CHECK_AGAIN: - sWigglytuffShop->fallbackState = WIGGLYTUFF_UNK17; - sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][13],0,sWigglytuffShop->unkCC,0x10d); - break; - case WIGGLYTUFF_UNK16: - sub_8023144(0,3,0,10); - break; - case WIGGLYTUFF_UNK17: - sub_8023354(1); - break; - case DISPLAY_POKEMON_FRIEND_AREA_INFO: - sub_8092638(sWigglytuffShop->chosenFriendArea,&uStack_14,FALSE,FALSE); - if (uStack_14.hasFriendArea) { - sWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_HAS_FRIEND_AREA; - } - else - { - switch(GetFriendAreaUnlockCondition(sWigglytuffShop->chosenFriendArea)) - { - case UNLOCK_SHOP_POST_GAME: - if (sub_80023E4(6) != 0) { - sWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_AGAIN; - } - else { - sWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_POST_GAME; - } - break; - case UNLOCK_WONDER_MAIL: - sWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_WONDER_MAIL; - break; - case UNLOCK_LEGENDARY_REQUEST: - sWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_LEGENDARY; - break; - default: - sWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_AGAIN; - break; - } - } - string = GetMonSpecies(sWigglytuffShop->chosenSpecies); - strcpy(gAvailablePokemonNames,string); - sub_8092578(gUnknown_202E628,sWigglytuffShop->chosenFriendArea,FALSE); - sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][14],0,sWigglytuffShop->unkCC,0x10d); - break; - case WIGGLYTUFF_CHECK_HAS_FRIEND_AREA: - sWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_AGAIN; - sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][15],0,sWigglytuffShop->unkCC,0x10d); - break; - case WIGGLYTUFF_CHECK_POST_GAME: - sWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_AGAIN; - sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][16],0,sWigglytuffShop->unkCC,0x10d); - break; - case WIGGLYTUFF_CHECK_WONDER_MAIL: - sWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_AGAIN; - sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][17],0,sWigglytuffShop->unkCC,0x10d); - break; - case WIGGLYTUFF_CHECK_LEGENDARY: - sWigglytuffShop->fallbackState = WIGGLYTUFF_CHECK_AGAIN; - sub_80141B4(gCommonWigglytuff[sWigglytuffShop->isAsleep][18],0,sWigglytuffShop->unkCC,0x10d); - break; - } -} - -void sub_80222C8(void) -{ - s32 i; - s32 index = 0; - MemoryFill16(sWigglytuffShop->unk5C, 0, sizeof(sWigglytuffShop->unk5C)); - sWigglytuffShop->unk1C[index].text = *gCommonBuy; - sWigglytuffShop->unk1C[index].menuAction = 2; - index++; - sWigglytuffShop->unk1C[index].text = *gCommonCheck; - sWigglytuffShop->unk1C[index].menuAction = 3; - index++; - sWigglytuffShop->unk1C[index].text = *gCommonInfo; - sWigglytuffShop->unk1C[index].menuAction = 4; - index++; - sWigglytuffShop->unk1C[index].text = *gCommonCancel; - sWigglytuffShop->unk1C[index].menuAction = 1; - index++; - sWigglytuffShop->unk1C[index].text = NULL; - sWigglytuffShop->unk1C[index].menuAction = 1; - - for(i = 0; i < index; i++) - { - if(sWigglytuffShop->unk5C[i] == 0 && sWigglytuffShop->unk1C[i].menuAction == sWigglytuffShop->menuAction1) - return; - } - for(i = 0; i < index; i++) - { - if(sWigglytuffShop->unk5C[i] == 0) - { - sWigglytuffShop->menuAction1 = sWigglytuffShop->unk1C[i].menuAction; - break; - } - } -} - -void sub_8022380(void) -{ - s32 i; - s32 index = 0; - MemoryFill16(sWigglytuffShop->unk5C, 0, sizeof(sWigglytuffShop->unk5C)); - sWigglytuffShop->unk1C[index].text = *gCommonBuy; - sWigglytuffShop->unk1C[index].menuAction = 2; - index++; - sWigglytuffShop->unk1C[index].text = *gCommonInfo; - sWigglytuffShop->unk1C[index].menuAction = 4; - index++; - sWigglytuffShop->unk1C[index].text = NULL; - sWigglytuffShop->unk1C[index].menuAction = 1; - - for(i = 0; i < index; i++) - { - if(sWigglytuffShop->unk5C[i] == 0 && sWigglytuffShop->unk1C[i].menuAction == sWigglytuffShop->menuAction2) - return; - } - for(i = 0; i < index; i++) - { - if(sWigglytuffShop->unk5C[i] == 0) - { - sWigglytuffShop->menuAction2 = sWigglytuffShop->unk1C[i].menuAction; - break; - } - } -} - -void CreateWigglytuffConfirmFriendAreaMenu(void) -{ - s32 index = 0; - MemoryFill16(sWigglytuffShop->unk5C, 0, sizeof(sWigglytuffShop->unk5C)); - sWigglytuffShop->unk1C[index].text = *gCommonYes; - sWigglytuffShop->unk1C[index].menuAction = 5; - index++; - sWigglytuffShop->unk1C[index].text = *gCommonNo; - sWigglytuffShop->unk1C[index].menuAction = 6; - index++; - sWigglytuffShop->unk1C[index].text = NULL; - sWigglytuffShop->unk1C[index].menuAction = 1; -} - -void sub_8022460(void) -{ - s32 menuAction; - - if (sub_80144A4(&menuAction) == 0) - { - if (menuAction != 1) { - sWigglytuffShop->menuAction1 = menuAction; - } - switch(menuAction) - { - case 2: - if (sub_8021700(2) != 0) { - SetWigglytuffState(WIGGLYTUFF_CANT_ADD_FRIEND_AREA); - } - else { - SetWigglytuffState(FRIEND_AREA_SELECT_BUY); - } - break; - case 3: - SetWigglytuffState(WIGGLYTUFF_CHECK); - break; - case 4: - SetWigglytuffState(WIGGLYTUFF_INFO); - break; - case 1: - SetWigglytuffState(WIGGLYTUFF_PRE_EXIT); - break; - } - } -} - -void HandleWigglytuffConfirmFriendAreaMenu(void) -{ - s32 menuAction; - - if (sub_80144A4(&menuAction) == 0) { - switch(menuAction) - { - case 5: - gTeamInventoryRef->teamMoney -= sWigglytuffShop->friendAreaPrice; - UnlockFriendArea(sWigglytuffShop->chosenFriendArea); - PlaySound(0x14C); - SetWigglytuffState(CONFIRM_BUY_FRIEND_AREA); - break; - case 1: - case 6: - SetWigglytuffState(WIGGLYTUFF_UNKA); - break; - } - } -} - -void sub_8022538(void) -{ - switch(sub_8021274(TRUE)) - { - case 3: - sWigglytuffShop->chosenFriendArea = sub_802132C(); - sWigglytuffShop->friendAreaPrice = GetFriendAreaPrice(sWigglytuffShop->chosenFriendArea); - SetWigglytuffState(WIGGLYTUFF_UNKB); - break; - case 4: - sWigglytuffShop->chosenFriendArea = sub_802132C(); - sWigglytuffShop->friendAreaPrice = GetFriendAreaPrice(sWigglytuffShop->chosenFriendArea); - SetWigglytuffState(FRIEND_AREA_INFO); - break; - case 0: - break; - case 2: - sub_80213A0(); - SetWigglytuffState(WIGGLYTUFF_MAIN_MENU); - break; - case 1: - default: - DrawTeamMoneyBox(1); - break; - } -} - -void sub_80225C8(void) -{ - s32 menuAction = 0; - sub_8021274(FALSE); - if(sub_8012FD8(&sWigglytuffShop->unk6C) == 0) - { - sub_8013114(&sWigglytuffShop->unk6C, &menuAction); - if(menuAction != 1) sWigglytuffShop->menuAction2 = menuAction; - } - switch(menuAction) - { - case 2: - if(gTeamInventoryRef->teamMoney == 0) - { - SetWigglytuffState(NO_MONEY); - } - else if(sWigglytuffShop->friendAreaPrice > gTeamInventoryRef->teamMoney) - { - SetWigglytuffState(NOT_ENOUGH_MONEY); - } - else - { - SetWigglytuffState(BUY_FRIEND_AREA); - } - break; - case 4: - SetWigglytuffState(FRIEND_AREA_INFO); - break; - case 1: - SetWigglytuffState(WIGGLYTUFF_UNKA); - break; - } -} - -void sub_8022668(void) -{ - switch(sub_80217EC()) - { - case 2: - case 3: - sub_8021830(); - SetWigglytuffState(WIGGLYTUFF_UNKA); - break; - case 0: - case 1: - break; - } -} - -void sub_8022684(void) -{ - switch(sub_8023278(1)) - { - case 3: - sWigglytuffShop->chosenSpecies = sub_802331C(); - sWigglytuffShop->chosenFriendArea = GetFriendArea(sWigglytuffShop->chosenSpecies); - SetWigglytuffState(DISPLAY_POKEMON_FRIEND_AREA_INFO); - break; - case 2: - sub_80233A0(); - SetWigglytuffState(WIGGLYTUFF_MAIN_MENU); - break; - case 0: - case 1: - break; - } -} - -void sub_80226CC(void) -{ - s32 temp; - - if (sub_80144A4(&temp) == 0) - SetWigglytuffState(sWigglytuffShop->fallbackState); -} - -void sub_80226F0(void) -{ - union { - vu32 a; - vu8 b[4]; - } temp; - vu8 *ptr = temp.b; - u32 r2 = 0; - ptr[0] = 0x80; - ptr[1] = 0x80; - ptr[2] = 0x10; - ptr[3] = r2; - if(sub_8099B94() == 0) - { - switch(sWigglytuffShop->unk130) - { - case 1: - case 3: - sub_8099AFC(5, 2, temp.a); - break; - case 2: - case 4: - sub_8099A5C(5, 2, temp.a); - break; - case 0: - default: - SetWigglytuffState(sWigglytuffShop->fallbackState); - sWigglytuffShop->unk130 = 0; - break; - } - sWigglytuffShop->unk130++; - } -} - -void sub_8022790(void) -{ - if (sWigglytuffShop->unk134 != 0) - sWigglytuffShop->unk134--; - else - SetWigglytuffState(sWigglytuffShop->fallbackState); -} diff --git a/src/wigglytuff_shop1.c b/src/wigglytuff_shop1.c new file mode 100644 index 000000000..fa37d1c35 --- /dev/null +++ b/src/wigglytuff_shop1.c @@ -0,0 +1,297 @@ +#include "global.h" +#include "code_800D090.h" +#include "code_80118A4.h" +#include "constants/input.h" +#include "event_flag.h" +#include "friend_area.h" +#include "items.h" +#include "memory.h" +#include "menu_input.h" +#include "text1.h" +#include "text2.h" +#include "wigglytuff_shop1.h" + +static EWRAM_DATA_2 WigglytuffShop1Work *sWigglytuffShop1Work = {0}; +static EWRAM_DATA_2 u32 sUnknown_203B284 = {0}; +static EWRAM_DATA_2 u16 sUnknown_203B288 = {0}; +static EWRAM_DATA_2 u16 sUnknown_203B28A = {0}; + +#include "data/wigglytuff_shop1.h" + +static void sub_8021410(void); +static s32 sub_8021664(void); + +bool8 sub_80211AC(u32 mode, u32 a1) +{ + if (sub_8021700(mode)) + return FALSE; + + sWigglytuffShop1Work = MemoryAlloc(sizeof(WigglytuffShop1Work), 8); + sWigglytuffShop1Work->mode = mode; + sWigglytuffShop1Work->unk74 = a1; + sWigglytuffShop1Work->unk78 = &sWigglytuffShop1Work->unk7C[sWigglytuffShop1Work->unk74]; + sub_8006518(sWigglytuffShop1Work->unk7C); + sWigglytuffShop1Work->unk7C[sWigglytuffShop1Work->unk74] = gUnknown_80DC47C; + sWigglytuffShop1Work->unk78->unk14 = sWigglytuffShop1Work->unkDC; + ResetUnusedInputStruct(); + sub_800641C(sWigglytuffShop1Work->unk7C, TRUE, TRUE); + sub_8013818(&sWigglytuffShop1Work->unk40, sub_8021664(), 10, a1); + + if (sUnknown_203B284 == sWigglytuffShop1Work->mode) { + sWigglytuffShop1Work->unk40.menuIndex = sUnknown_203B288; + sWigglytuffShop1Work->unk40.unk1E = sUnknown_203B28A; + sub_8013984(&sWigglytuffShop1Work->unk40); + } + + sub_8021410(); + sub_8021494(); + return TRUE; +} + +u32 sub_8021274(bool8 a0) +{ + if (!a0) { + sub_8013660(&sWigglytuffShop1Work->unk40); + return 0; + } + + switch (GetKeyPress(&sWigglytuffShop1Work->unk40)) { + case INPUT_B_BUTTON: + PlayMenuSoundEffect(1); + return 2; + case INPUT_A_BUTTON: + if (sWigglytuffShop1Work->mode == 2 && GetFriendAreaPrice(sub_802132C()) > gTeamInventoryRef->teamMoney) + PlayMenuSoundEffect(2); + else + PlayMenuSoundEffect(0); + return 3; + case INPUT_START_BUTTON: + PlayMenuSoundEffect(4); + return 4; + default: + if (sub_80138B8(&sWigglytuffShop1Work->unk40, 1) != 0) { + sub_8021410(); + sub_8021494(); + return 1; + } + return 0; + } +} + +u8 sub_802132C(void) +{ + return sWigglytuffShop1Work->friendAreas[(sWigglytuffShop1Work->unk40.unk1E * sWigglytuffShop1Work->unk40.unk1C) + sWigglytuffShop1Work->unk40.menuIndex]; +} + +void sub_8021354(bool8 cursorSprite) +{ + ResetUnusedInputStruct(); + sub_800641C(sWigglytuffShop1Work->unk7C, FALSE, FALSE); + sWigglytuffShop1Work->unk40.unk22 = sub_8021664(); + sub_8013984(&sWigglytuffShop1Work->unk40); + sub_8021410(); + sub_8021494(); + + if (cursorSprite) + AddMenuCursorSprite(&sWigglytuffShop1Work->unk40); +} + +void sub_80213A0(void) +{ + if (sWigglytuffShop1Work) { + sUnknown_203B284 = sWigglytuffShop1Work->mode; + sUnknown_203B288 = sWigglytuffShop1Work->unk40.menuIndex; + sUnknown_203B28A = sWigglytuffShop1Work->unk40.unk1E; + sWigglytuffShop1Work->unk7C[sWigglytuffShop1Work->unk74] = gUnknown_80DC464; + ResetUnusedInputStruct(); + sub_800641C(sWigglytuffShop1Work->unk7C, TRUE, TRUE); + MemoryFree(sWigglytuffShop1Work); + sWigglytuffShop1Work = NULL; + } +} + +NAKED // sub_80095E4 memes +static void sub_8021410(void) +{ + asm_unified( + "\tpush {r4,lr}\n" + "\tldr r4, _08021490\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0xDC\n" + "\tmovs r2, 0\n" + "\tmovs r1, 0x1\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0xDD\n" + "\tstrb r2, [r0]\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0xDE\n" + "\tmovs r1, 0xC\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0xDF\n" + "\tstrb r2, [r0]\n" + "\tbl ResetUnusedInputStruct\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x7C\n" + "\tmovs r1, 0x1\n" + "\tmovs r2, 0x1\n" + "\tbl sub_800641C\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x5A\n" + "\tmovs r1, 0\n" + "\tldrsh r0, [r0, r1]\n" + "\tmovs r1, 0xC\n" + "\tbl sub_80095E4\n" + "\tadds r0, 0x2\n" + "\tlsls r0, 16\n" + "\tldr r2, [r4]\n" + "\tldr r3, [r2, 0x74]\n" + "\tlsls r1, r3, 1\n" + "\tadds r1, r3\n" + "\tlsls r1, 3\n" + "\tadds r1, r2, r1\n" + "\tadds r1, 0x8A\n" + "\tasrs r3, r0, 16\n" + "\tlsrs r0, 16\n" + "\tstrh r0, [r1]\n" + "\tldr r1, [r2, 0x74]\n" + "\tlsls r0, r1, 1\n" + "\tadds r0, r1\n" + "\tlsls r0, 3\n" + "\tadds r2, r0\n" + "\tadds r3, 0x2\n" + "\tadds r2, 0x8C\n" + "\tstrh r3, [r2]\n" + "\tbl ResetUnusedInputStruct\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x7C\n" + "\tmovs r1, 0x1\n" + "\tmovs r2, 0x1\n" + "\tbl sub_800641C\n" + "\tpop {r4}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" +"_08021490: .4byte sWigglytuffShop1Work"); +} + +void sub_8021494(void) +{ + u8 friendAreaIndex; + s32 i; + u8 buffer1[80]; + u8 buffer2[80]; + + sub_8008C54(sWigglytuffShop1Work->unk74); + sub_80073B8(sWigglytuffShop1Work->unk74); + xxx_call_draw_string(10, 0, gUnknown_80DC494, sWigglytuffShop1Work->unk74, 0); + + sub_8012BC4((sWigglytuffShop1Work->unkDC[2] * 8) + 4, 0, sWigglytuffShop1Work->unk40.unk1E + 1, 1, 7, sWigglytuffShop1Work->unk74); + + for (i = 0; i < sWigglytuffShop1Work->unk40.unk1A; i++) { + friendAreaIndex = sWigglytuffShop1Work->friendAreas[(sWigglytuffShop1Work->unk40.unk1E * sWigglytuffShop1Work->unk40.unk1C) + i]; + + if (sWigglytuffShop1Work->mode == 2) { + sub_8092578(buffer1, friendAreaIndex, TRUE); + + if (GetFriendAreaPrice(friendAreaIndex) <= gTeamInventoryRef->teamMoney) + xxx_call_draw_string(8,sub_8013800(&sWigglytuffShop1Work->unk40, i), buffer1, sWigglytuffShop1Work->unk74, 0); + else { + sprintfStatic(buffer2, gUnknown_80DC4A4, buffer1); + xxx_call_draw_string(8, sub_8013800(&sWigglytuffShop1Work->unk40, i), buffer2, sWigglytuffShop1Work->unk74, 0); + } + } + else if (sWigglytuffShop1Work->mode == 0) { + if (gFriendAreas[friendAreaIndex] == TRUE) + xxx_call_draw_string(8, sub_8013800(&sWigglytuffShop1Work->unk40, i), GetFriendAreaName(friendAreaIndex), sWigglytuffShop1Work->unk74, 0); + else { + sprintfStatic(buffer2, gUnknown_80DC4AC, GetFriendAreaName(friendAreaIndex)); + xxx_call_draw_string(8, sub_8013800(&sWigglytuffShop1Work->unk40, i), buffer2, sWigglytuffShop1Work->unk74, 0); + } + } + else + xxx_call_draw_string(8, sub_8013800(&sWigglytuffShop1Work->unk40, i), GetFriendAreaName(friendAreaIndex), sWigglytuffShop1Work->unk74, 0); + } + + sub_80073E0(sWigglytuffShop1Work->unk74); +} + +static s32 sub_8021664(void) +{ + s32 i; + s32 counter; + + counter = 0; + + switch (sWigglytuffShop1Work->mode) { + case 0: + for (i = BOUNTIFUL_SEA; i < NUM_FRIEND_AREAS; i++) { + sWigglytuffShop1Work->friendAreas[counter] = i; + counter++; + } + break; + case 1: + for (i = BOUNTIFUL_SEA; i < NUM_FRIEND_AREAS; i++) { + if (gFriendAreas[i]) { + sWigglytuffShop1Work->friendAreas[counter] = i; + counter++; + } + } + break; + case 2: + for (i = BOUNTIFUL_SEA; i < NUM_FRIEND_AREAS; i++) { + if (gFriendAreas[i]) + continue; + + switch (GetFriendAreaUnlockCondition(i)) { + case UNLOCK_SHOP_STORY: + sWigglytuffShop1Work->friendAreas[counter] = i; + counter++; + break; + case UNLOCK_SHOP_POST_GAME: + if (sub_80023E4(6)) { + sWigglytuffShop1Work->friendAreas[counter] = i; + counter++; + } + break; + } + } + break; + } + + return counter; +} + +bool8 sub_8021700(u32 kind) +{ + s32 i; + + switch (kind) { + case 0: + return FALSE; + case 1: + for (i = BOUNTIFUL_SEA; i < NUM_FRIEND_AREAS; i++) { + if (gFriendAreas[i]) + return FALSE; + } + break; + case 2: + for (i = BOUNTIFUL_SEA; i < NUM_FRIEND_AREAS; i++) { + if (gFriendAreas[i]) + continue; + + switch (GetFriendAreaUnlockCondition(i)) { + case UNLOCK_SHOP_STORY: + return FALSE; + case UNLOCK_SHOP_POST_GAME: + if (sub_80023E4(6)) + return FALSE; + break; + } + } + break; + } + + return TRUE; +} \ No newline at end of file diff --git a/src/wigglytuff_shop2.c b/src/wigglytuff_shop2.c new file mode 100644 index 000000000..e3531601f --- /dev/null +++ b/src/wigglytuff_shop2.c @@ -0,0 +1,187 @@ +#include "global.h" +#include "code_800D090.h" +#include "code_80118A4.h" +#include "common_strings.h" +#include "exclusive_pokemon.h" +#include "friend_area.h" +#include "memory.h" +#include "menu_input.h" +#include "pokemon.h" +#include "pokemon_3.h" +#include "text1.h" +#include "text2.h" +#include "wigglytuff_shop2.h" + +static EWRAM_DATA_2 WigglytuffShop2Work *sWigglytuffShop2Work = {0}; + +#include "data/wigglytuff_shop2.h" + +static void sub_8021820(void); +static void sub_8021878(void); +static void sub_8021894(void); +static void sub_8021A60(void); +static s32 sub_8021B58(s16 species); + +bool8 sub_8021774(u8 friendArea, bool8 a1, s32 a2) +{ + sWigglytuffShop2Work = MemoryAlloc(sizeof(WigglytuffShop2Work), 8); + sWigglytuffShop2Work->friendArea = friendArea; + sWigglytuffShop2Work->unkD = a1; + sub_801317C(&sWigglytuffShop2Work->unk0); + sub_8021A60(); + sWigglytuffShop2Work->unk74 = a2; + sWigglytuffShop2Work->unk78 = &sWigglytuffShop2Work->unk7C[a2]; + sub_8006518(sWigglytuffShop2Work->unk7C); + sWigglytuffShop2Work->unk7C[sWigglytuffShop2Work->unk74] = gUnknown_80DC4D8; + sub_8021820(); + return TRUE; +} + +u32 sub_80217EC(void) +{ + switch (sub_8012A64(&sWigglytuffShop2Work->unk0, sWigglytuffShop2Work->unk74)) { + case 2: + PlayMenuSoundEffect(1); + return 2; + case 1: + PlayMenuSoundEffect(0); + return 3; + default: + return 0; + } +} + +static void sub_8021820(void) +{ + sub_8021878(); + sub_8021894(); +} + +void sub_8021830(void) +{ + if (sWigglytuffShop2Work) { + sWigglytuffShop2Work->unk7C[sWigglytuffShop2Work->unk74] = gUnknown_80DC4BC; + ResetUnusedInputStruct(); + sub_800641C(sWigglytuffShop2Work->unk7C, TRUE, TRUE); + MemoryFree(sWigglytuffShop2Work); + sWigglytuffShop2Work = NULL; + } +} + +static void sub_8021878(void) +{ + ResetUnusedInputStruct(); + sub_800641C(sWigglytuffShop2Work->unk7C, TRUE, TRUE); +} + +static void sub_8021894(void) +{ + const u8 *string; + u32 y; + u32 x; + s32 i; + u8 buffer1[256]; + u8 buffer2[100]; + + sub_80073B8(sWigglytuffShop2Work->unk74); + sub_8092578(buffer1, sWigglytuffShop2Work->friendArea, FALSE); + xxx_call_draw_string(20, 0, buffer1, sWigglytuffShop2Work->unk74, 0); + + string = GetFriendAreaDescription(sWigglytuffShop2Work->friendArea); + xxx_call_draw_string(10, 20, string, sWigglytuffShop2Work->unk74, 0); + + if (sWigglytuffShop2Work->unkD != 0) + xxx_call_draw_string(32, 60, gUnknown_80DC4F0, sWigglytuffShop2Work->unk74, 0); + else + xxx_call_draw_string(32, 60, gUnknown_80DC518, sWigglytuffShop2Work->unk74, 0); + + sub_800792C(sWigglytuffShop2Work->unk74, 4, 64, 20, 4); + + if (sWigglytuffShop2Work->unkD != 0) + sub_800792C(sWigglytuffShop2Work->unk74, 184, 64, 20, 4); + else + sub_800792C(sWigglytuffShop2Work->unk74, 94, 64, 110, 4); + + sub_800792C(sWigglytuffShop2Work->unk74, 4, 130, 200, 4); + sub_8007A78(sWigglytuffShop2Work->unk74, 3, 64, 67, 4); + sub_8007A78(sWigglytuffShop2Work->unk74, 204, 64, 67, 4); + + for (i = 0; i < sWigglytuffShop2Work->numPokemoninFriendArea; i++) { + x = (i % 3) * 63 + 7; + y = (i / 3) * 12 + 71; + sub_808D930(buffer2, sWigglytuffShop2Work->unkE[i]); + + switch (sWigglytuffShop2Work->unk30[i]) { + case 0: // Not recruited/seen + xxx_call_draw_string(x, y, gCommonTripleQuestionMark[0], sWigglytuffShop2Work->unk74, 0); + break; + case 1: // Seen but not recruited + xxx_call_draw_string(x, y, buffer2, sWigglytuffShop2Work->unk74, 0); + break; + case 2: + sprintfStatic(buffer1, gUnknown_80DC524, buffer2); + xxx_call_draw_string(x, y, buffer1, sWigglytuffShop2Work->unk74, 0); + break; + } + } + + sub_80073E0(sWigglytuffShop2Work->unk74); +} + +static void sub_8021A60(void) +{ + s32 sVar4; + s32 iVar6; + s32 index; + PokemonStruct1 *pokeStruct; + + sWigglytuffShop2Work->numPokemoninFriendArea = 0; + + for (index = 0; index < 0x10; index++) { + sWigglytuffShop2Work->unkE[index] = 0; + sWigglytuffShop2Work->unk30[index] = 0; + } + + for (index = 0; index <= MONSTER_MAX; index++) { + s32 index2 = (s16)index; + + if (sWigglytuffShop2Work->friendArea == GetFriendArea(index2) && index2 == GetBaseSpeciesNoUnown(index2)) { + iVar6 = sWigglytuffShop2Work->numPokemoninFriendArea; + sWigglytuffShop2Work->unkE[iVar6] = index2; + sWigglytuffShop2Work->numPokemoninFriendArea = iVar6 + 1; + } + } + + for (index = 0; index <= MONSTER_MAX; index++) { + if (!sub_8098134(index)) + continue; + + sVar4 = sub_8021B58(index); + if (sVar4 != -1) + sWigglytuffShop2Work->unk30[sVar4] = 1; + } + + for (index = 0; index < NUM_MONSTERS; index++) { + pokeStruct = &gRecruitedPokemonRef->pokemon[index]; + if (!((u8)pokeStruct->unk0 & 1)) + continue; + + sVar4 = sub_8021B58(pokeStruct->speciesNum); + if (sVar4 != -1) + sWigglytuffShop2Work->unk30[sVar4] = 2; + } +} + +static s32 sub_8021B58(s16 species) +{ + s32 baseSpecies; + s32 i; + + baseSpecies = GetBaseSpeciesNoUnown(species); + + for (i = 0; i < sWigglytuffShop2Work->numPokemoninFriendArea; i++) { + if (baseSpecies == sWigglytuffShop2Work->unkE[i]) + return i; + } + return -1; +} \ No newline at end of file diff --git a/src/wigglytuff_shop3.c b/src/wigglytuff_shop3.c new file mode 100644 index 000000000..047104134 --- /dev/null +++ b/src/wigglytuff_shop3.c @@ -0,0 +1,597 @@ +#include "global.h" +#include "code_80118A4.h" +#include "code_80130A8.h" +#include "code_8023144.h" +#include "code_8098BDC.h" +#include "common_strings.h" +#include "event_flag.h" +#include "felicity_bank.h" +#include "friend_area.h" +#include "memory.h" +#include "menu_input.h" +#include "pokemon.h" +#include "text1.h" +#include "text2.h" +#include "wigglytuff_shop1.h" +#include "wigglytuff_shop2.h" +#include "wigglytuff_shop3.h" + +extern u32 gUnknown_202DE30[2]; +extern u8 gAvailablePokemonNames[]; // 202DF98 +extern u8 gUnknown_202E1C8[]; +extern u8 gUnknown_202E5D8[]; +extern u8 gUnknown_202E628[]; + +static EWRAM_DATA_2 WigglytuffShop3Work *sWigglytuffShop3Work = {0}; + +#include "data/wigglytuff_shop3.h" + +static void CreateWigglytuffConfirmFriendAreaMenu(void); +static void HandleWigglytuffConfirmFriendAreaMenu(void); +static void SetWigglytuffState(s32 newState); +static void UpdateWigglytuffDialogue(void); + +static void sub_8021D5C(void); +static void sub_80222C8(void); +static void sub_8022380(void); +static void sub_8022460(void); +static void sub_8022538(void); +static void sub_80225C8(void); +static void sub_8022668(void); +static void sub_8022684(void); +static void sub_80226CC(void); +static void sub_80226F0(void); +static void sub_8022790(void); + +bool8 CreateWigglytuffShop(u32 mode) +{ + u8 *str; + OpenedFile *file; + + ResetUnusedInputStruct(); + sub_800641C(NULL, TRUE, TRUE); + + sWigglytuffShop3Work = MemoryAlloc(sizeof(WigglytuffShop3Work), 8); + sWigglytuffShop3Work->menuAction1 = 0; + sWigglytuffShop3Work->menuAction2 = 0; + sWigglytuffShop3Work->mode = mode; + CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_WIGGLYTUFF); + CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_WIGGLYTUFF); + str = GetMonSpecies(MONSTER_WIGGLYTUFF); + strcpy(gUnknown_202E1C8 - 80, str); + + if (sWigglytuffShop3Work->mode == 1) + sWigglytuffShop3Work->unkCC = NULL; + else + sWigglytuffShop3Work->unkCC = &sWigglytuffShop3Work->faceFile; + + file = GetDialogueSpriteDataPtr(MONSTER_WIGGLYTUFF); + sWigglytuffShop3Work->faceFile = file; + sWigglytuffShop3Work->faceData = file->data; + sWigglytuffShop3Work->unkC8 = 0; + sWigglytuffShop3Work->unkC9 = 0; + sWigglytuffShop3Work->unkCA = 0; + sWigglytuffShop3Work->unkC4 = 2; + sWigglytuffShop3Work->unkC6 = 8; + SetWigglytuffState(WIGGLYTUFF_INIT); + return TRUE; +} + +u32 sub_8021C5C(void) +{ + switch (sWigglytuffShop3Work->state) { + case WIGGLYTUFF_INIT: + case WIGGLYTUFF_MAIN_MENU: + sub_8022460(); + break; + case WIGGLYTUFF_UNK9: + case WIGGLYTUFF_UNKA: + sub_8022538(); + break; + case WIGGLYTUFF_UNKB: + sub_80225C8(); + break; + case BUY_FRIEND_AREA: + HandleWigglytuffConfirmFriendAreaMenu(); + break; + case WIGGLYTUFF_UNKD: + sub_80226F0(); + break; + case WIGGLYTUFF_UNKE: + sub_8022790(); + break; + case FRIEND_AREA_INFO: + sub_8022668(); + break; + case WIGGLYTUFF_UNK16: + case WIGGLYTUFF_UNK17: + sub_8022684(); + break; + case WIGGLYTUFF_EXIT: + return 3; + default: + sub_80226CC(); + break; + } + return 0; +} + +void sub_8021D1C(void) +{ + if (sWigglytuffShop3Work) { + CloseFile(sWigglytuffShop3Work->faceFile); + MemoryFree(sWigglytuffShop3Work); + sWigglytuffShop3Work = NULL; + } +} + +static void SetWigglytuffState(s32 newState) +{ + sWigglytuffShop3Work->state = newState; + sub_8021D5C(); + UpdateWigglytuffDialogue(); +} + +static void sub_8021D5C(void) +{ + s32 i; + + sub_8006518(sWigglytuffShop3Work->unkD0); + + switch (sWigglytuffShop3Work->state) { + case WIGGLYTUFF_UNK9: + case WIGGLYTUFF_UNKA: + sWigglytuffShop3Work->unkD0[0] = gUnknown_80DC534; + sWigglytuffShop3Work->unkD0[2] = gUnknown_80DC534; + sWigglytuffShop3Work->unkD0[1] = gUnknown_80DC564; + break; + case WIGGLYTUFF_UNKB: + sWigglytuffShop3Work->unkD0[2] = gUnknown_80DC54C; + break; + default: + for (i = 0; i < 4; i++) + sWigglytuffShop3Work->unkD0[i] = gUnknown_80DC534; + break; + } + + ResetUnusedInputStruct(); + sub_800641C(sWigglytuffShop3Work->unkD0, TRUE, TRUE); +} + +static void UpdateWigglytuffDialogue(void) +{ + u8 *string; + unkStruct_8092638 uStack_14; + + switch (sWigglytuffShop3Work->state) { + case WIGGLYTUFF_INIT: + sub_80222C8(); + sub_8014248(gCommonWigglytuff[sWigglytuffShop3Work->mode][0], 0, sWigglytuffShop3Work->menuAction1, sWigglytuffShop3Work->unk1C, sWigglytuffShop3Work->unk5C, 4, 0, sWigglytuffShop3Work->unkCC, 12); + break; + case WIGGLYTUFF_MAIN_MENU: + sub_80222C8(); + sub_8014248(gCommonWigglytuff[sWigglytuffShop3Work->mode][1], 0, sWigglytuffShop3Work->menuAction1, sWigglytuffShop3Work->unk1C, sWigglytuffShop3Work->unk5C, 4, 0, sWigglytuffShop3Work->unkCC, 12); + break; + case FRIEND_AREA_SELECT_BUY: + sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_UNK9; + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][3], 0, sWigglytuffShop3Work->unkCC, 0x10d); + break; + case FRIEND_AREA_SELECT_BUY_AGAIN: + sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_UNKA; + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][4], 0, sWigglytuffShop3Work->unkCC, 0x10d); + break; + case WIGGLYTUFF_INFO: + sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_MAIN_MENU; + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][19], 0, sWigglytuffShop3Work->unkCC, 0x10d); + break; + case WIGGLYTUFF_PRE_EXIT: + sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_EXIT; + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][2], 0, sWigglytuffShop3Work->unkCC, 0x30d); + break; + default: + break; + case WIGGLYTUFF_CANT_ADD_FRIEND_AREA: + sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_PRE_EXIT; + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][8], 0, sWigglytuffShop3Work->unkCC, 0x10d); + break; + case NO_MONEY: + sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_UNKA; + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][9], 0, sWigglytuffShop3Work->unkCC, 0x10d); + break; + case NO_FRIEND_AREAS: + sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_PRE_EXIT; + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][10], 0, sWigglytuffShop3Work->unkCC, 0x10d); + break; + case NOT_ENOUGH_MONEY: + sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_UNKA; + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][11], 0, sWigglytuffShop3Work->unkCC, 0x10d); + break; + case WIGGLYTUFF_UNK9: + sub_80211AC(2, 3); + DrawTeamMoneyBox(1); + break; + case WIGGLYTUFF_UNKA: + sub_8021354(TRUE); + DrawTeamMoneyBox(1); + break; + case WIGGLYTUFF_UNKB: + sub_8021494(); + DrawTeamMoneyBox(1); + sub_8022380(); + sub_8012D60(&sWigglytuffShop3Work->unk6C, sWigglytuffShop3Work->unk1C, 0, sWigglytuffShop3Work->unk5C, sWigglytuffShop3Work->menuAction2, 2); + break; + case BUY_FRIEND_AREA: + CreateWigglytuffConfirmFriendAreaMenu(); + sub_8092578(gUnknown_202E628, sWigglytuffShop3Work->chosenFriendArea, FALSE); + gUnknown_202DE30[0] = sWigglytuffShop3Work->friendAreaPrice; + sub_8014248(gCommonWigglytuff[sWigglytuffShop3Work->mode][5], 0, 5, sWigglytuffShop3Work->unk1C, 0, 4, 0, sWigglytuffShop3Work->unkCC, 12); + break; + case FRIEND_AREA_INFO: + sub_8021774(sWigglytuffShop3Work->chosenFriendArea, FALSE, 2); + break; + case CONFIRM_BUY_FRIEND_AREA: + sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_UNKD; + sub_8092578(gUnknown_202E628, sWigglytuffShop3Work->chosenFriendArea, FALSE); + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][6], 0, sWigglytuffShop3Work->unkCC, 0x10d); + break; + case WIGGLYTUFF_UNKD: + sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_UNKE; + PlaySound(603); + sWigglytuffShop3Work->unk130 = 1; + break; + case WIGGLYTUFF_UNKE: + sWigglytuffShop3Work->fallbackState = FRIEND_AREA_UNLOCKED; + sWigglytuffShop3Work->unk134 = 30; + break; + case FRIEND_AREA_UNLOCKED: + if (sub_8021700(2)) { + sub_80213A0(); + sWigglytuffShop3Work->fallbackState = NO_FRIEND_AREAS; + } + else + sWigglytuffShop3Work->fallbackState = FRIEND_AREA_SELECT_BUY_AGAIN; + + PlaySound(206); + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][7], 0, sWigglytuffShop3Work->unkCC, 0x10d); + break; + case WIGGLYTUFF_CHECK: + sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_UNK16; + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][12], 0, sWigglytuffShop3Work->unkCC, 0x10d); + break; + case WIGGLYTUFF_CHECK_AGAIN: + sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_UNK17; + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][13], 0, sWigglytuffShop3Work->unkCC, 0x10d); + break; + case WIGGLYTUFF_UNK16: + sub_8023144(0, 3, 0, 10); + break; + case WIGGLYTUFF_UNK17: + sub_8023354(1); + break; + case DISPLAY_POKEMON_FRIEND_AREA_INFO: + sub_8092638(sWigglytuffShop3Work->chosenFriendArea, &uStack_14, FALSE, FALSE); + + if (uStack_14.hasFriendArea) + sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_CHECK_HAS_FRIEND_AREA; + else { + switch (GetFriendAreaUnlockCondition(sWigglytuffShop3Work->chosenFriendArea)) { + case UNLOCK_SHOP_POST_GAME: + if (sub_80023E4(6) != 0) + sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_CHECK_AGAIN; + else + sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_CHECK_POST_GAME; + break; + case UNLOCK_WONDER_MAIL: + sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_CHECK_WONDER_MAIL; + break; + case UNLOCK_LEGENDARY_REQUEST: + sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_CHECK_LEGENDARY; + break; + default: + sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_CHECK_AGAIN; + break; + } + } + + string = GetMonSpecies(sWigglytuffShop3Work->chosenSpecies); + strcpy(gAvailablePokemonNames, string); + sub_8092578(gUnknown_202E628, sWigglytuffShop3Work->chosenFriendArea, FALSE); + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][14], 0, sWigglytuffShop3Work->unkCC, 0x10d); + break; + case WIGGLYTUFF_CHECK_HAS_FRIEND_AREA: + sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_CHECK_AGAIN; + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][15], 0, sWigglytuffShop3Work->unkCC, 0x10d); + break; + case WIGGLYTUFF_CHECK_POST_GAME: + sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_CHECK_AGAIN; + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][16], 0, sWigglytuffShop3Work->unkCC, 0x10d); + break; + case WIGGLYTUFF_CHECK_WONDER_MAIL: + sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_CHECK_AGAIN; + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][17], 0, sWigglytuffShop3Work->unkCC, 0x10d); + break; + case WIGGLYTUFF_CHECK_LEGENDARY: + sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_CHECK_AGAIN; + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][18], 0, sWigglytuffShop3Work->unkCC, 0x10d); + break; + } +} + +static void sub_80222C8(void) +{ + s32 i; + s32 index = 0; + + MemoryFill16(sWigglytuffShop3Work->unk5C, 0, sizeof(sWigglytuffShop3Work->unk5C)); + + sWigglytuffShop3Work->unk1C[index].text = gCommonBuy[0]; + sWigglytuffShop3Work->unk1C[index].menuAction = 2; + + index++; + sWigglytuffShop3Work->unk1C[index].text = gCommonCheck[0]; + sWigglytuffShop3Work->unk1C[index].menuAction = 3; + + index++; + sWigglytuffShop3Work->unk1C[index].text = gCommonInfo[0]; + sWigglytuffShop3Work->unk1C[index].menuAction = 4; + + index++; + sWigglytuffShop3Work->unk1C[index].text = gCommonCancel[0]; + sWigglytuffShop3Work->unk1C[index].menuAction = 1; + + index++; + sWigglytuffShop3Work->unk1C[index].text = NULL; + sWigglytuffShop3Work->unk1C[index].menuAction = 1; + + for (i = 0; i < index; i++) { + if (sWigglytuffShop3Work->unk5C[i] == 0 && sWigglytuffShop3Work->unk1C[i].menuAction == sWigglytuffShop3Work->menuAction1) + return; + } + + for (i = 0; i < index; i++) { + if (sWigglytuffShop3Work->unk5C[i] == 0) { + sWigglytuffShop3Work->menuAction1 = sWigglytuffShop3Work->unk1C[i].menuAction; + break; + } + } +} + +static void sub_8022380(void) +{ + s32 i; + s32 index = 0; + + MemoryFill16(sWigglytuffShop3Work->unk5C, 0, sizeof(sWigglytuffShop3Work->unk5C)); + + sWigglytuffShop3Work->unk1C[index].text = gCommonBuy[0]; + sWigglytuffShop3Work->unk1C[index].menuAction = 2; + + index++; + sWigglytuffShop3Work->unk1C[index].text = gCommonInfo[0]; + sWigglytuffShop3Work->unk1C[index].menuAction = 4; + + index++; + sWigglytuffShop3Work->unk1C[index].text = NULL; + sWigglytuffShop3Work->unk1C[index].menuAction = 1; + + for (i = 0; i < index; i++) { + if (sWigglytuffShop3Work->unk5C[i] == 0 && sWigglytuffShop3Work->unk1C[i].menuAction == sWigglytuffShop3Work->menuAction2) + return; + } + + for (i = 0; i < index; i++) { + if (sWigglytuffShop3Work->unk5C[i] == 0) { + sWigglytuffShop3Work->menuAction2 = sWigglytuffShop3Work->unk1C[i].menuAction; + break; + } + } +} + +static void CreateWigglytuffConfirmFriendAreaMenu(void) +{ + s32 index = 0; + + MemoryFill16(sWigglytuffShop3Work->unk5C, 0, sizeof(sWigglytuffShop3Work->unk5C)); + + sWigglytuffShop3Work->unk1C[index].text = gCommonYes[0]; + sWigglytuffShop3Work->unk1C[index].menuAction = 5; + + index++; + sWigglytuffShop3Work->unk1C[index].text = gCommonNo[0]; + sWigglytuffShop3Work->unk1C[index].menuAction = 6; + + index++; + sWigglytuffShop3Work->unk1C[index].text = NULL; + sWigglytuffShop3Work->unk1C[index].menuAction = 1; +} + +static void sub_8022460(void) +{ + s32 menuAction; + + if (sub_80144A4(&menuAction) != 0) + return; + + if (menuAction != 1) + sWigglytuffShop3Work->menuAction1 = menuAction; + + switch (menuAction) { + case 2: + if (sub_8021700(2)) + SetWigglytuffState(WIGGLYTUFF_CANT_ADD_FRIEND_AREA); + else + SetWigglytuffState(FRIEND_AREA_SELECT_BUY); + break; + case 3: + SetWigglytuffState(WIGGLYTUFF_CHECK); + break; + case 4: + SetWigglytuffState(WIGGLYTUFF_INFO); + break; + case 1: + SetWigglytuffState(WIGGLYTUFF_PRE_EXIT); + break; + } +} + +static void HandleWigglytuffConfirmFriendAreaMenu(void) +{ + s32 menuAction; + + if (sub_80144A4(&menuAction) != 0) + return; + + switch (menuAction) { + case 5: + gTeamInventoryRef->teamMoney -= sWigglytuffShop3Work->friendAreaPrice; + UnlockFriendArea(sWigglytuffShop3Work->chosenFriendArea); + PlaySound(332); + SetWigglytuffState(CONFIRM_BUY_FRIEND_AREA); + break; + case 1: + case 6: + SetWigglytuffState(WIGGLYTUFF_UNKA); + break; + } +} + +static void sub_8022538(void) +{ + switch (sub_8021274(TRUE)) { + case 3: + sWigglytuffShop3Work->chosenFriendArea = sub_802132C(); + sWigglytuffShop3Work->friendAreaPrice = GetFriendAreaPrice(sWigglytuffShop3Work->chosenFriendArea); + SetWigglytuffState(WIGGLYTUFF_UNKB); + break; + case 4: + sWigglytuffShop3Work->chosenFriendArea = sub_802132C(); + sWigglytuffShop3Work->friendAreaPrice = GetFriendAreaPrice(sWigglytuffShop3Work->chosenFriendArea); + SetWigglytuffState(FRIEND_AREA_INFO); + break; + case 0: + break; + case 2: + sub_80213A0(); + SetWigglytuffState(WIGGLYTUFF_MAIN_MENU); + break; + case 1: + default: + DrawTeamMoneyBox(1); + break; + } +} + +static void sub_80225C8(void) +{ + s32 menuAction = 0; + + sub_8021274(FALSE); + + if (sub_8012FD8(&sWigglytuffShop3Work->unk6C) == 0) { + sub_8013114(&sWigglytuffShop3Work->unk6C, &menuAction); + + if (menuAction != 1) + sWigglytuffShop3Work->menuAction2 = menuAction; + } + + switch (menuAction) { + case 2: + if (gTeamInventoryRef->teamMoney == 0) + SetWigglytuffState(NO_MONEY); + else if (sWigglytuffShop3Work->friendAreaPrice > gTeamInventoryRef->teamMoney) + SetWigglytuffState(NOT_ENOUGH_MONEY); + else + SetWigglytuffState(BUY_FRIEND_AREA); + break; + case 4: + SetWigglytuffState(FRIEND_AREA_INFO); + break; + case 1: + SetWigglytuffState(WIGGLYTUFF_UNKA); + break; + } +} + +static void sub_8022668(void) +{ + switch (sub_80217EC()) { + case 2: + case 3: + sub_8021830(); + SetWigglytuffState(WIGGLYTUFF_UNKA); + break; + case 0: + case 1: + break; + } +} + +static void sub_8022684(void) +{ + switch (sub_8023278(1)) { + case 3: + sWigglytuffShop3Work->chosenSpecies = sub_802331C(); + sWigglytuffShop3Work->chosenFriendArea = GetFriendArea(sWigglytuffShop3Work->chosenSpecies); + SetWigglytuffState(DISPLAY_POKEMON_FRIEND_AREA_INFO); + break; + case 2: + sub_80233A0(); + SetWigglytuffState(WIGGLYTUFF_MAIN_MENU); + break; + case 0: + case 1: + break; + } +} + +static void sub_80226CC(void) +{ + s32 temp; + + if (sub_80144A4(&temp) == 0) + SetWigglytuffState(sWigglytuffShop3Work->fallbackState); +} + +static void sub_80226F0(void) +{ + union { + vu32 a; + vu8 b[4]; + } temp; + + vu8 *ptr = temp.b; + u32 r2 = 0; + ptr[0] = 0x80; + ptr[1] = 0x80; + ptr[2] = 0x10; + ptr[3] = r2; + + if (sub_8099B94()) + return; + + switch (sWigglytuffShop3Work->unk130) { + case 1: + case 3: + sub_8099AFC(5, 2, temp.a); + break; + case 2: + case 4: + sub_8099A5C(5, 2, temp.a); + break; + case 0: + default: + SetWigglytuffState(sWigglytuffShop3Work->fallbackState); + sWigglytuffShop3Work->unk130 = 0; + break; + } + + sWigglytuffShop3Work->unk130++; +} + +static void sub_8022790(void) +{ + if (sWigglytuffShop3Work->unk134 != 0) + sWigglytuffShop3Work->unk134--; + else + SetWigglytuffState(sWigglytuffShop3Work->fallbackState); +} \ No newline at end of file diff --git a/src/wonder_mail_2_mid.c b/src/wonder_mail_2_mid.c index b1e382dc0..8101524ce 100644 --- a/src/wonder_mail_2_mid.c +++ b/src/wonder_mail_2_mid.c @@ -122,6 +122,13 @@ bool8 HasNoMailinMailbox(void) } + + +// THIS IS A NEW FILE: + + + + bool8 sub_802C10C(s32 param_1,UnkTextStruct2_sub *param_2,s32 param_3) { if (HasNoPelipperBoardJobs() != 0) { diff --git a/sym_ewram2.txt b/sym_ewram2.txt index 666b5855e..deb468df4 100644 --- a/sym_ewram2.txt +++ b/sym_ewram2.txt @@ -179,40 +179,42 @@ gUnknown_203B278: /* 203B278 */ .space 0x4 .include "src/gulpin_shop_801FB50.o" -.include "src/wigglytuff_shop.o" +.include "src/wigglytuff_shop1.o" +.include "src/wigglytuff_shop2.o" +.include "src/wigglytuff_shop3.o" -gUnknown_203B294: /* 203B294 */ +gUnknown_203B294: /* 203B294 (sub_80227B8 - sub_8023120) */ .space 0x4 -gUnknown_203B298: /* 203B298 */ +gUnknown_203B298: /* 203B298 (sub_8023144 - sub_80233A0) */ .space 0x4 -gUnknown_203B29C: /* 203B29C */ +gUnknown_203B29C: /* 203B29C (sub_8023144 - sub_80233A0) */ .space 0x2 -gUnknown_203B29E: /* 203B29E */ +gUnknown_203B29E: /* 203B29E (sub_8023144 - sub_80233A0) */ .space 0x2 -gUnknown_203B2A0: /* 203B2A0 */ +gUnknown_203B2A0: /* 203B2A0 (sub_8023868 - sub_8023C60) */ .space 0x4 -gUnknown_203B2A4: /* 203B2A4 */ +gUnknown_203B2A4: /* 203B2A4 (sub_8023868 - sub_8023C60) */ .space 0x4 -gUnknown_203B2A8: /* 203B2A8 */ +gUnknown_203B2A8: /* 203B2A8 (sub_8023868 - sub_8023C60) */ .space 0x2 -gUnknown_203B2AA: /* 203B2AA */ +gUnknown_203B2AA: /* 203B2AA (sub_8023868 - sub_8023C60) */ .space 0x2 -gUnknown_203B2AC: /* 203B2AC */ +gUnknown_203B2AC: /* 203B2AC (sub_8024458 - sub_8024604) */ .space 0x4 .include "src/luminous_cave.o" .include "src/friend_list_menu.o" .include "src/party_list_menu.o" -gUnknown_203B2BC: /* 203B2BC (friend_area_action_menu) */ +gUnknown_203B2BC: /* 203B2BC (sub_8027074 - sub_8027EB8) */ .space 0x4 gUnknown_203B2C0: /* 203B2C0 (wonder_mail) */ @@ -236,7 +238,7 @@ gUnknown_203B2D2: /* 203B2D2 (pokemon_news) */ gUnknown_203B2D4: /* 203B2D4 (pokemon_news) */ .space 0x4 -gUnknown_203B2D8: /* 203B2D8 (pokemon_news / wonder_mail_2_mid) */ +gUnknown_203B2D8: /* 203B2D8 (sub_802BD14 - CountEmptyMailSlots) */ .space 0x4 gUnknown_203B2DC: /* 203B2DC (pokemon_news) */ From 8b7c5e5ff5d790249d24628ca0d61ee6cc5e8c33 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Mon, 18 Sep 2023 20:54:51 -0400 Subject: [PATCH 26/47] Split+data code_801EE10_1 --- asm/code_801EE10_1.s | 1186 +------------------------------- asm/code_8023868.s | 1190 +++++++++++++++++++++++++++++++++ data/data_80DC464.s | 65 +- include/code_801EE10_1.h | 17 - include/code_8023868.h | 30 + include/code_8024458.h | 28 + include/pokemon_3.h | 4 + include/pokemon_mid.h | 1 + ld_script.txt | 6 +- src/code_801D014.c | 3 +- src/code_801EE10_1.c | 318 --------- src/code_8023868.c | 174 +++++ src/code_8024458.c | 101 +++ src/data/code_8023868.h | 29 + src/data/code_8024458.h | 19 + src/data/wigglytuff_shop1.h | 10 +- src/data/wigglytuff_shop2.h | 10 +- src/data/wigglytuff_shop3.h | 6 +- src/debug_menu4.c | 2 +- src/friend_area_action_menu.c | 3 +- src/friend_list_menu.c | 3 +- src/friend_rescue.c | 4 +- src/gulpin_shop_801FB50.c | 3 +- src/party_list_menu.c | 2 +- src/pokemon_mid.c | 3 +- src/wigglytuff_shop1.c | 10 +- src/wigglytuff_shop2.c | 10 +- src/wigglytuff_shop3.c | 10 +- src/wonder_mail.c | 4 +- sym_ewram2.txt | 4 +- sym_iwram.txt | 3 +- 31 files changed, 1629 insertions(+), 1629 deletions(-) create mode 100644 asm/code_8023868.s delete mode 100644 include/code_801EE10_1.h create mode 100644 include/code_8023868.h create mode 100644 include/code_8024458.h delete mode 100644 src/code_801EE10_1.c create mode 100644 src/code_8023868.c create mode 100644 src/code_8024458.c create mode 100644 src/data/code_8023868.h create mode 100644 src/data/code_8024458.h diff --git a/asm/code_801EE10_1.s b/asm/code_801EE10_1.s index beedcfd3d..7d5c77ecd 100644 --- a/asm/code_801EE10_1.s +++ b/asm/code_801EE10_1.s @@ -151,1188 +151,4 @@ _08023854: bx r0 .align 2, 0 _08023864: .4byte gUnknown_3001B5C - thumb_func_end sub_80237E0 - - thumb_func_start sub_8023868 -sub_8023868: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r5, r0, 0 - mov r8, r1 - mov r9, r2 - mov r10, r3 - bl sub_8024108 - lsls r0, 24 - cmp r0, 0 - beq _08023888 - movs r0, 0 - b _08023A6E -_08023888: - ldr r4, _080238AC - ldr r0, [r4] - cmp r0, 0 - bne _0802389C - movs r0, 0xFE - lsls r0, 2 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r4] -_0802389C: - ldr r1, [r4] - str r5, [r1] - ldr r0, _080238B0 - ldr r0, [r0] - cmp r0, r5 - beq _080238B4 - movs r0, 0x1 - b _080238B8 - .align 2, 0 -_080238AC: .4byte gUnknown_3001B60 -_080238B0: .4byte gUnknown_203B2A0 -_080238B4: - ldr r0, _080238E4 - ldr r0, [r0] -_080238B8: - str r0, [r1, 0x4] - ldr r2, _080238E8 - ldr r0, [r2] - movs r1, 0 - strb r1, [r0, 0x14] - ldr r0, [r2] - strb r1, [r0, 0x15] - ldr r0, [r2] - strb r1, [r0, 0x16] - ldr r0, [r2] - strb r1, [r0, 0x17] - ldr r0, [r2] - strb r1, [r0, 0x18] - ldr r0, [r2] - ldr r0, [r0] - cmp r0, 0x4 - bhi _08023980 - lsls r0, 2 - ldr r1, _080238EC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080238E4: .4byte gUnknown_203B2A4 -_080238E8: .4byte gUnknown_3001B60 -_080238EC: .4byte _080238F0 - .align 2, 0 -_080238F0: - .4byte _08023958 - .4byte _08023904 - .4byte _08023914 - .4byte _08023924 - .4byte _0802393C -_08023904: - ldr r0, _08023910 - ldr r1, [r0] - movs r0, 0x1 - strb r0, [r1, 0x18] - b _08023958 - .align 2, 0 -_08023910: .4byte gUnknown_3001B60 -_08023914: - ldr r0, _08023920 - ldr r1, [r0] - movs r0, 0x1 - strb r0, [r1, 0x14] - b _08023958 - .align 2, 0 -_08023920: .4byte gUnknown_3001B60 -_08023924: - ldr r2, _08023938 - ldr r0, [r2] - movs r1, 0x1 - strb r1, [r0, 0x17] - ldr r0, [r2] - strb r1, [r0, 0x15] - ldr r0, [r2] - strb r1, [r0, 0x16] - b _08023958 - .align 2, 0 -_08023938: .4byte gUnknown_3001B60 -_0802393C: - ldr r5, _0802397C - ldr r0, [r5] - movs r4, 0x1 - strb r4, [r0, 0x18] - ldr r0, [r5] - strb r4, [r0, 0x15] - movs r0, 0x9 - bl sub_80023E4 - lsls r0, 24 - cmp r0, 0 - bne _08023958 - ldr r0, [r5] - strb r4, [r0, 0x16] -_08023958: - ldr r4, _0802397C - ldr r0, [r4] - ldr r0, [r0] - cmp r0, 0x4 - bne _08023980 - bl sub_80A5728 - lsls r0, 16 - asrs r0, 16 - bl sub_8002658 - ldr r1, [r4] - movs r2, 0xD5 - lsls r2, 2 - adds r1, r2 - strb r0, [r1] - b _0802398E - .align 2, 0 -_0802397C: .4byte gUnknown_3001B60 -_08023980: - ldr r0, _08023A7C - ldr r0, [r0] - movs r3, 0xD5 - lsls r3, 2 - adds r0, r3 - movs r1, 0 - strb r1, [r0] -_0802398E: - ldr r5, _08023A7C - ldr r0, [r5] - movs r4, 0xE3 - lsls r4, 2 - adds r1, r0, r4 - mov r2, r8 - str r2, [r1] - movs r7, 0xE4 - lsls r7, 2 - adds r2, r0, r7 - mov r3, r8 - lsls r1, r3, 1 - add r1, r8 - lsls r1, 3 - movs r6, 0xE5 - lsls r6, 2 - adds r1, r6 - adds r1, r0, r1 - str r1, [r2] - adds r0, r6 - bl sub_8006518 - ldr r1, [r5] - adds r4, r1, r4 - ldr r2, [r4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r1, r6 - ldr r0, _08023A80 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldr r2, [r5] - adds r0, r2, r7 - ldr r1, [r0] - movs r4, 0xFD - lsls r4, 2 - adds r0, r2, r4 - str r0, [r1, 0x14] - mov r0, r9 - cmp r0, 0 - beq _08023A04 - movs r1, 0xE3 - lsls r1, 2 - adds r0, r2, r1 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - movs r3, 0xE7 - lsls r3, 2 - adds r1, r2, r3 - adds r1, r0 - mov r4, r9 - ldr r0, [r4] - str r0, [r1] -_08023A04: - ldr r0, [r5] - adds r0, r7 - ldr r0, [r0] - mov r1, r10 - bl sub_8012D08 - bl ResetUnusedInputStruct - ldr r0, [r5] - adds r0, r6 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r4, [r5] - movs r0, 0xD6 - lsls r0, 2 - adds r4, r0 - bl sub_8023F8C - adds r1, r0, 0 - adds r0, r4, 0 - mov r2, r10 - mov r3, r8 - bl sub_8013818 - ldr r0, _08023A84 - ldr r4, [r5] - ldr r1, [r0] - ldr r0, [r4] - cmp r1, r0 - bne _08023A64 - ldr r0, _08023A88 - ldrh r1, [r0] - movs r2, 0xDC - lsls r2, 2 - adds r0, r4, r2 - strh r1, [r0] - ldr r0, _08023A8C - ldrh r1, [r0] - ldr r3, _08023A90 - adds r0, r4, r3 - strh r1, [r0] - movs r1, 0xD6 - lsls r1, 2 - adds r0, r4, r1 - bl sub_8013984 -_08023A64: - bl sub_8023CF4 - bl sub_8023DA4 - movs r0, 0x1 -_08023A6E: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08023A7C: .4byte gUnknown_3001B60 -_08023A80: .4byte gUnknown_80DC968 -_08023A84: .4byte gUnknown_203B2A0 -_08023A88: .4byte gUnknown_203B2A8 -_08023A8C: .4byte gUnknown_203B2AA -_08023A90: .4byte 0x00000376 - thumb_func_end sub_8023868 - - thumb_func_start sub_8023A94 -sub_8023A94: - push {r4,lr} - lsls r0, 24 - cmp r0, 0 - bne _08023AB4 - ldr r0, _08023AB0 - ldr r0, [r0] - movs r1, 0xD6 - lsls r1, 2 - adds r0, r1 - bl sub_8013660 - movs r0, 0 - b _08023B3E - .align 2, 0 -_08023AB0: .4byte gUnknown_3001B60 -_08023AB4: - ldr r4, _08023AD0 - ldr r0, [r4] - movs r1, 0xD6 - lsls r1, 2 - adds r0, r1 - bl GetKeyPress - cmp r0, 0x2 - beq _08023ADE - cmp r0, 0x2 - bgt _08023AD4 - cmp r0, 0x1 - beq _08023AF2 - b _08023B16 - .align 2, 0 -_08023AD0: .4byte gUnknown_3001B60 -_08023AD4: - cmp r0, 0x3 - beq _08023AFC - cmp r0, 0x4 - beq _08023AE8 - b _08023B16 -_08023ADE: - movs r0, 0x1 - bl PlayMenuSoundEffect - movs r0, 0x2 - b _08023B3E -_08023AE8: - movs r0, 0x4 - bl PlayMenuSoundEffect - movs r0, 0x4 - b _08023B3E -_08023AF2: - movs r0, 0 - bl PlayMenuSoundEffect - movs r0, 0x3 - b _08023B3E -_08023AFC: - movs r0, 0x5 - bl PlayMenuSoundEffect - ldr r0, [r4] - ldr r1, [r0, 0x4] - movs r2, 0x1 - cmp r1, 0x2 - bhi _08023B0E - adds r2, r1, 0x1 -_08023B0E: - str r2, [r0, 0x4] - bl sub_8023F8C - b _08023B34 -_08023B16: - ldr r0, _08023B30 - ldr r0, [r0] - movs r1, 0xD6 - lsls r1, 2 - adds r0, r1 - movs r1, 0x1 - bl sub_80138B8 - lsls r0, 24 - cmp r0, 0 - bne _08023B34 - movs r0, 0 - b _08023B3E - .align 2, 0 -_08023B30: .4byte gUnknown_3001B60 -_08023B34: - bl sub_8023CF4 - bl sub_8023DA4 - movs r0, 0x1 -_08023B3E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8023A94 - - thumb_func_start sub_8023B44 -sub_8023B44: - ldr r0, _08023B74 - ldr r0, [r0] - ldr r2, _08023B78 - adds r1, r0, r2 - movs r3, 0 - ldrsh r2, [r1, r3] - movs r3, 0xDD - lsls r3, 2 - adds r1, r0, r3 - movs r3, 0 - ldrsh r1, [r1, r3] - muls r1, r2 - movs r3, 0xDC - lsls r3, 2 - adds r2, r0, r3 - movs r3, 0 - ldrsh r2, [r2, r3] - adds r1, r2 - lsls r1, 1 - adds r0, 0x1A - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - bx lr - .align 2, 0 -_08023B74: .4byte gUnknown_3001B60 -_08023B78: .4byte 0x00000376 - thumb_func_end sub_8023B44 - - thumb_func_start sub_8023B7C -sub_8023B7C: - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl ResetUnusedInputStruct - ldr r5, _08023BD0 - ldr r0, [r5] - movs r1, 0xE5 - lsls r1, 2 - adds r0, r1 - movs r1, 0 - movs r2, 0 - bl sub_800641C - bl sub_8023BD8 - adds r2, r0, 0 - ldr r0, [r5] - ldr r3, _08023BD4 - adds r1, r0, r3 - strh r2, [r1] - movs r1, 0xD6 - lsls r1, 2 - adds r0, r1 - bl sub_8013984 - bl sub_8023CF4 - bl sub_8023DA4 - cmp r4, 0 - beq _08023BCA - ldr r0, [r5] - movs r3, 0xD6 - lsls r3, 2 - adds r0, r3 - bl AddMenuCursorSprite -_08023BCA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08023BD0: .4byte gUnknown_3001B60 -_08023BD4: .4byte 0x0000037a - thumb_func_end sub_8023B7C - - thumb_func_start sub_8023BD8 -sub_8023BD8: - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r3, 0 - ldr r1, _08023C58 - ldr r0, [r1] - ldr r0, [r0, 0x8] - adds r7, r1, 0 - cmp r3, r0 - bge _08023C4A - ldr r0, _08023C5C - mov r8, r0 - mov r12, r7 -_08023BF2: - ldr r2, [r1] - lsls r4, r3, 1 - adds r0, r2, 0 - adds r0, 0x1A - adds r0, r4 - movs r5, 0 - ldrsh r1, [r0, r5] - movs r0, 0x58 - muls r0, r1 - mov r5, r8 - ldr r1, [r5] - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - adds r6, r3, 0x1 - cmp r0, 0 - bne _08023C3E - ldr r0, [r2, 0x8] - subs r0, 0x1 - str r0, [r2, 0x8] - cmp r3, r0 - bge _08023C3E - mov r5, r12 - adds r4, 0x2 -_08023C24: - ldr r2, [r5] - lsls r1, r3, 1 - adds r0, r2, 0 - adds r0, 0x1A - adds r1, r0, r1 - adds r0, r4 - ldrh r0, [r0] - strh r0, [r1] - adds r4, 0x2 - adds r3, 0x1 - ldr r0, [r2, 0x8] - cmp r3, r0 - blt _08023C24 -_08023C3E: - adds r3, r6, 0 - adds r1, r7, 0 - ldr r0, [r7] - ldr r0, [r0, 0x8] - cmp r3, r0 - blt _08023BF2 -_08023C4A: - ldr r0, [r7] - ldr r0, [r0, 0x8] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08023C58: .4byte gUnknown_3001B60 -_08023C5C: .4byte gRecruitedPokemonRef - thumb_func_end sub_8023BD8 - - thumb_func_start sub_8023C60 -sub_8023C60: - push {r4-r6,lr} - ldr r5, _08023CCC - ldr r2, [r5] - cmp r2, 0 - beq _08023CC6 - ldr r1, _08023CD0 - ldr r0, [r2] - str r0, [r1] - ldr r1, _08023CD4 - ldr r0, [r2, 0x4] - str r0, [r1] - ldr r1, _08023CD8 - movs r3, 0xDC - lsls r3, 2 - adds r0, r2, r3 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _08023CDC - ldr r6, _08023CE0 - adds r0, r2, r6 - ldrh r0, [r0] - strh r0, [r1] - movs r1, 0xE3 - lsls r1, 2 - adds r0, r2, r1 - ldr r0, [r0] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, r2, r1 - movs r4, 0xE5 - lsls r4, 2 - adds r1, r4 - ldr r0, _08023CE4 - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - bl ResetUnusedInputStruct - ldr r0, [r5] - adds r0, r4 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r5] - bl MemoryFree - movs r0, 0 - str r0, [r5] -_08023CC6: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08023CCC: .4byte gUnknown_3001B60 -_08023CD0: .4byte gUnknown_203B2A0 -_08023CD4: .4byte gUnknown_203B2A4 -_08023CD8: .4byte gUnknown_203B2A8 -_08023CDC: .4byte gUnknown_203B2AA -_08023CE0: .4byte 0x00000376 -_08023CE4: .4byte gUnknown_80DC950 - thumb_func_end sub_8023C60 - - thumb_func_start sub_8023CE8 -sub_8023CE8: - ldr r0, _08023CF0 - ldr r0, [r0] - bx lr - .align 2, 0 -_08023CF0: .4byte gUnknown_3001B60 - thumb_func_end sub_8023CE8 - - thumb_func_start sub_8023CF4 -sub_8023CF4: - push {r4,r5,lr} - ldr r2, _08023D28 - ldr r0, [r2] - movs r1, 0xFD - lsls r1, 2 - adds r0, r1 - movs r3, 0 - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r2] - ldr r1, _08023D2C - adds r0, r1 - strb r3, [r0] - ldr r0, [r2] - adds r1, 0x2 - adds r0, r1 - strb r3, [r0] - ldr r1, [r2] - ldr r0, [r1] - adds r5, r2, 0 - cmp r0, 0x2 - bne _08023D34 - ldr r0, _08023D30 - adds r1, r0 - b _08023D38 - .align 2, 0 -_08023D28: .4byte gUnknown_3001B60 -_08023D2C: .4byte 0x000003f5 -_08023D30: .4byte 0x000003f6 -_08023D34: - ldr r2, _08023D98 - adds r1, r2 -_08023D38: - movs r0, 0xC - strb r0, [r1] - ldr r0, [r5] - ldr r1, _08023D9C - adds r0, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - movs r1, 0xC - bl sub_80095E4 - adds r0, 0x2 - ldr r3, [r5] - movs r1, 0xE3 - lsls r1, 2 - adds r4, r3, r1 - ldr r2, [r4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 3 - adds r1, r3, r1 - ldr r2, _08023DA0 - adds r1, r2 - lsls r0, 16 - lsrs r0, 16 - strh r0, [r1] - ldr r2, [r4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 3 - adds r3, r1 - movs r1, 0xE9 - lsls r1, 2 - adds r3, r1 - strh r0, [r3] - bl ResetUnusedInputStruct - ldr r0, [r5] - movs r2, 0xE5 - lsls r2, 2 - adds r0, r2 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08023D98: .4byte 0x000003f6 -_08023D9C: .4byte 0x00000372 -_08023DA0: .4byte 0x000003a2 - thumb_func_end sub_8023CF4 - - thumb_func_start sub_8023DA4 -sub_8023DA4: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x58 - ldr r4, _08023DD8 - ldr r0, [r4] - movs r5, 0xE3 - lsls r5, 2 - adds r0, r5 - ldr r0, [r0] - bl sub_8008C54 - ldr r0, [r4] - adds r0, r5 - ldr r0, [r0] - bl sub_80073B8 - ldr r0, [r4] - ldr r1, [r0] - cmp r1, 0x2 - beq _08023DE0 - cmp r1, 0x4 - beq _08023E00 - ldr r2, _08023DDC - b _08023E02 - .align 2, 0 -_08023DD8: .4byte gUnknown_3001B60 -_08023DDC: .4byte gUnknown_80DC988 -_08023DE0: - add r0, sp, 0x8 - bl sub_80920D8 - ldr r0, [r4] - movs r1, 0xE3 - lsls r1, 2 - adds r0, r1 - ldr r3, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0xA - movs r1, 0 - add r2, sp, 0x8 - bl xxx_call_draw_string - b _08023E3C -_08023E00: - ldr r2, _08023EBC -_08023E02: - adds r0, r5 - ldr r3, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0xA - movs r1, 0 - bl xxx_call_draw_string - ldr r1, [r4] - ldr r2, _08023EC0 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 3 - adds r3, r0, 0x4 - ldr r4, _08023EC4 - adds r0, r1, r4 - movs r4, 0 - ldrsh r2, [r0, r4] - adds r2, 0x1 - movs r0, 0x7 - str r0, [sp] - adds r1, r5 - ldr r0, [r1] - str r0, [sp, 0x4] - adds r0, r3, 0 - movs r1, 0 - movs r3, 0x2 - bl sub_8012BC4 -_08023E3C: - movs r7, 0 - ldr r1, _08023EC8 - ldr r0, [r1] - ldr r2, _08023ECC - adds r0, r2 - movs r4, 0 - ldrsh r0, [r0, r4] - cmp r7, r0 - blt _08023E50 - b _08023F62 -_08023E50: - mov r8, r1 - add r0, sp, 0x30 - mov r9, r0 -_08023E56: - ldr r3, [r1] - ldr r1, _08023EC4 - adds r0, r3, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - movs r4, 0xDD - lsls r4, 2 - adds r0, r3, r4 - movs r2, 0 - ldrsh r0, [r0, r2] - muls r1, r0 - adds r1, r7 - lsls r1, 1 - adds r0, r3, 0 - adds r0, 0x1A - adds r0, r1 - movs r4, 0 - ldrsh r5, [r0, r4] - ldr r2, _08023ED0 - movs r0, 0x58 - adds r1, r5, 0 - muls r1, r0 - ldr r0, [r2] - adds r4, r0, r1 - movs r6, 0x7 - ldrh r0, [r4] - lsrs r0, 1 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08023ED4 - movs r0, 0 - ldrb r1, [r4, 0x4] - cmp r1, 0x41 - bne _08023E9E - movs r0, 0x1 -_08023E9E: - cmp r0, 0 - beq _08023EA4 - movs r6, 0x6 -_08023EA4: - movs r0, 0 - cmp r1, 0x40 - bne _08023EAC - movs r0, 0x1 -_08023EAC: - cmp r0, 0 - beq _08023EB2 - movs r6, 0x6 -_08023EB2: - ldrb r0, [r4, 0x2] - cmp r0, 0 - beq _08023EEA - movs r6, 0x5 - b _08023EEA - .align 2, 0 -_08023EBC: .4byte gUnknown_80DC980 -_08023EC0: .4byte 0x000003f6 -_08023EC4: .4byte 0x00000376 -_08023EC8: .4byte gUnknown_3001B60 -_08023ECC: .4byte 0x00000372 -_08023ED0: .4byte gRecruitedPokemonRef -_08023ED4: - ldrb r0, [r3, 0x18] - cmp r0, 0 - beq _08023EEA - adds r0, r5, 0 - bl sub_808D750 - lsls r0, 24 - movs r6, 0x2 - cmp r0, 0 - beq _08023EEA - movs r6, 0x4 -_08023EEA: - mov r0, r8 - ldr r1, [r0] - ldr r0, [r1] - cmp r0, 0x4 - bne _08023F02 - movs r2, 0xD5 - lsls r2, 2 - adds r0, r1, r2 - ldrb r1, [r0] - adds r0, r4, 0 - bl sub_8024184 -_08023F02: - adds r1, r4, 0 - adds r1, 0x4C - mov r0, r9 - movs r2, 0xA - bl sub_80922B4 - movs r0, 0x8 - ldrsh r1, [r4, r0] - add r0, sp, 0x44 - bl sub_808D930 - add r0, sp, 0x8 - ldr r1, _08023F80 - adds r2, r6, 0 - mov r3, r9 - bl sprintfStatic - mov r1, r8 - ldr r0, [r1] - movs r2, 0xD6 - lsls r2, 2 - adds r0, r2 - adds r1, r7, 0 - bl sub_8013800 - adds r1, r0, 0 - mov r4, r8 - ldr r0, [r4] - movs r2, 0xE3 - lsls r2, 2 - adds r0, r2 - ldr r3, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x8 - add r2, sp, 0x8 - bl xxx_call_draw_string - adds r7, 0x1 - mov r1, r8 - ldr r0, [r4] - ldr r4, _08023F84 - adds r0, r4 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r7, r0 - bge _08023F62 - b _08023E56 -_08023F62: - ldr r0, _08023F88 - ldr r0, [r0] - movs r4, 0xE3 - lsls r4, 2 - adds r0, r4 - ldr r0, [r0] - bl sub_80073E0 - add sp, 0x58 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08023F80: .4byte gUnknown_80DC998 -_08023F84: .4byte 0x00000372 -_08023F88: .4byte gUnknown_3001B60 - thumb_func_end sub_8023DA4 - - thumb_func_start sub_8023F8C -sub_8023F8C: - push {r4-r7,lr} - ldr r2, _08023FD0 - ldr r1, [r2] - movs r0, 0 - str r0, [r1, 0x8] - ldrb r0, [r1, 0x15] - adds r6, r2, 0 - cmp r0, 0 - bne _08023FE2 - movs r4, 0 - ldr r2, _08023FD4 -_08023FA2: - movs r0, 0x58 - adds r1, r4, 0 - muls r1, r0 - ldr r0, [r2] - adds r1, r0, r1 - ldrb r0, [r1, 0x2] - cmp r0, 0 - beq _08023FD8 - ldrb r1, [r1] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08023FD8 - ldr r3, [r6] - ldr r1, [r3, 0x8] - lsls r2, r1, 1 - adds r0, r3, 0 - adds r0, 0x1A - adds r0, r2 - strh r4, [r0] - adds r1, 0x1 - str r1, [r3, 0x8] - b _08023FE2 - .align 2, 0 -_08023FD0: .4byte gUnknown_3001B60 -_08023FD4: .4byte gRecruitedPokemonRef -_08023FD8: - adds r4, 0x1 - movs r0, 0xCE - lsls r0, 1 - cmp r4, r0 - ble _08023FA2 -_08023FE2: - ldr r0, [r6] - ldrb r0, [r0, 0x16] - cmp r0, 0 - bne _08024042 - movs r4, 0 - ldr r3, _08024034 -_08023FEE: - movs r0, 0x58 - adds r1, r4, 0 - muls r1, r0 - ldr r0, [r3] - adds r1, r0, r1 - movs r2, 0 - ldrb r0, [r1, 0x4] - cmp r0, 0x41 - bne _08024002 - movs r2, 0x1 -_08024002: - cmp r2, 0 - beq _08024038 - ldrb r0, [r1, 0x2] - cmp r0, 0 - bne _08024038 - ldrh r1, [r1] - lsrs r0, r1, 1 - movs r2, 0x1 - ands r0, r2 - cmp r0, 0 - beq _08024038 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _08024038 - ldr r3, [r6] - ldr r1, [r3, 0x8] - lsls r2, r1, 1 - adds r0, r3, 0 - adds r0, 0x1A - adds r0, r2 - strh r4, [r0] - adds r1, 0x1 - str r1, [r3, 0x8] - b _08024042 - .align 2, 0 -_08024034: .4byte gRecruitedPokemonRef -_08024038: - adds r4, 0x1 - movs r0, 0xCE - lsls r0, 1 - cmp r4, r0 - ble _08023FEE -_08024042: - ldr r0, [r6] - ldr r1, [r0, 0x8] - str r1, [r0, 0xC] - ldrb r0, [r0, 0x17] - cmp r0, 0 - bne _080240A4 - movs r4, 0 - ldr r7, _08024100 - movs r5, 0x1 -_08024054: - movs r0, 0x58 - adds r1, r4, 0 - muls r1, r0 - ldr r0, [r7] - adds r1, r0, r1 - ldrh r2, [r1] - lsrs r0, r2, 1 - ands r0, r5 - cmp r0, 0 - beq _0802409A - adds r0, r5, 0 - ands r0, r2 - cmp r0, 0 - beq _0802409A - ldrb r0, [r1, 0x2] - cmp r0, 0 - bne _0802409A - movs r2, 0 - ldrb r0, [r1, 0x4] - cmp r0, 0x41 - bne _08024080 - movs r2, 0x1 -_08024080: - cmp r2, 0 - bne _0802409A - ldr r3, [r6] - ldr r1, [r3, 0x8] - lsls r2, r1, 1 - adds r0, r3, 0 - adds r0, 0x1A - adds r0, r2 - strh r4, [r0] - adds r1, 0x1 - str r1, [r3, 0x8] - cmp r1, 0x3 - bgt _080240A4 -_0802409A: - adds r4, 0x1 - movs r0, 0xCE - lsls r0, 1 - cmp r4, r0 - ble _08024054 -_080240A4: - ldr r0, [r6] - ldr r1, [r0, 0x8] - str r1, [r0, 0x10] - ldrb r0, [r0, 0x14] - cmp r0, 0 - bne _080240EE - movs r4, 0 - ldr r7, _08024100 - movs r5, 0x1 -_080240B6: - movs r0, 0x58 - adds r1, r4, 0 - muls r1, r0 - ldr r0, [r7] - adds r1, r0, r1 - ldrh r1, [r1] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _080240E4 - lsrs r0, r1, 1 - ands r0, r5 - cmp r0, 0 - bne _080240E4 - ldr r3, [r6] - ldr r1, [r3, 0x8] - lsls r2, r1, 1 - adds r0, r3, 0 - adds r0, 0x1A - adds r0, r2 - strh r4, [r0] - adds r1, 0x1 - str r1, [r3, 0x8] -_080240E4: - adds r4, 0x1 - movs r0, 0xCE - lsls r0, 1 - cmp r4, r0 - ble _080240B6 -_080240EE: - bl sub_80241A8 - ldr r0, _08024104 - ldr r0, [r0] - ldr r0, [r0, 0x8] - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08024100: .4byte gRecruitedPokemonRef -_08024104: .4byte gUnknown_3001B60 - thumb_func_end sub_8023F8C - - thumb_func_start sub_8024108 -sub_8024108: - push {r4-r7,lr} - adds r5, r0, 0 - movs r7, 0 - movs r6, 0x1 -_08024110: - ldr r2, _08024134 - movs r0, 0x58 - adds r1, r7, 0 - muls r1, r0 - ldr r0, [r2] - adds r4, r0, r1 - ldrh r1, [r4] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _08024172 - cmp r5, 0x2 - bne _08024138 - lsrs r0, r1, 1 - ands r0, r6 - cmp r0, 0 - beq _08024172 - b _0802416E - .align 2, 0 -_08024134: .4byte gRecruitedPokemonRef -_08024138: - cmp r5, 0x3 - bne _08024140 - lsrs r0, r1, 1 - b _08024168 -_08024140: - cmp r5, 0x4 - bne _0802416E - ldrb r0, [r4, 0x2] - cmp r0, 0 - bne _08024172 - movs r0, 0x9 - bl sub_80023E4 - lsls r0, 24 - cmp r0, 0 - bne _0802416E - movs r1, 0 - ldrb r0, [r4, 0x4] - cmp r0, 0x41 - bne _08024160 - movs r1, 0x1 -_08024160: - cmp r1, 0 - beq _0802416E - ldrh r0, [r4] - lsrs r0, 1 -_08024168: - ands r0, r6 - cmp r0, 0 - bne _08024172 -_0802416E: - movs r0, 0 - b _0802417E -_08024172: - adds r7, 0x1 - movs r0, 0xCE - lsls r0, 1 - cmp r7, r0 - ble _08024110 - movs r0, 0x1 -_0802417E: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8024108 - - .align 2,0 + thumb_func_end sub_80237E0 \ No newline at end of file diff --git a/asm/code_8023868.s b/asm/code_8023868.s new file mode 100644 index 000000000..4ea50d5e0 --- /dev/null +++ b/asm/code_8023868.s @@ -0,0 +1,1190 @@ + #include "asm/constants/gba_constants.inc" + #include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_8023868 +sub_8023868: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r5, r0, 0 + mov r8, r1 + mov r9, r2 + mov r10, r3 + bl sub_8024108 + lsls r0, 24 + cmp r0, 0 + beq _08023888 + movs r0, 0 + b _08023A6E +_08023888: + ldr r4, _080238AC + ldr r0, [r4] + cmp r0, 0 + bne _0802389C + movs r0, 0xFE + lsls r0, 2 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r4] +_0802389C: + ldr r1, [r4] + str r5, [r1] + ldr r0, _080238B0 + ldr r0, [r0] + cmp r0, r5 + beq _080238B4 + movs r0, 0x1 + b _080238B8 + .align 2, 0 +_080238AC: .4byte gUnknown_3001B60 +_080238B0: .4byte gUnknown_203B2A0 +_080238B4: + ldr r0, _080238E4 + ldr r0, [r0] +_080238B8: + str r0, [r1, 0x4] + ldr r2, _080238E8 + ldr r0, [r2] + movs r1, 0 + strb r1, [r0, 0x14] + ldr r0, [r2] + strb r1, [r0, 0x15] + ldr r0, [r2] + strb r1, [r0, 0x16] + ldr r0, [r2] + strb r1, [r0, 0x17] + ldr r0, [r2] + strb r1, [r0, 0x18] + ldr r0, [r2] + ldr r0, [r0] + cmp r0, 0x4 + bhi _08023980 + lsls r0, 2 + ldr r1, _080238EC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080238E4: .4byte gUnknown_203B2A4 +_080238E8: .4byte gUnknown_3001B60 +_080238EC: .4byte _080238F0 + .align 2, 0 +_080238F0: + .4byte _08023958 + .4byte _08023904 + .4byte _08023914 + .4byte _08023924 + .4byte _0802393C +_08023904: + ldr r0, _08023910 + ldr r1, [r0] + movs r0, 0x1 + strb r0, [r1, 0x18] + b _08023958 + .align 2, 0 +_08023910: .4byte gUnknown_3001B60 +_08023914: + ldr r0, _08023920 + ldr r1, [r0] + movs r0, 0x1 + strb r0, [r1, 0x14] + b _08023958 + .align 2, 0 +_08023920: .4byte gUnknown_3001B60 +_08023924: + ldr r2, _08023938 + ldr r0, [r2] + movs r1, 0x1 + strb r1, [r0, 0x17] + ldr r0, [r2] + strb r1, [r0, 0x15] + ldr r0, [r2] + strb r1, [r0, 0x16] + b _08023958 + .align 2, 0 +_08023938: .4byte gUnknown_3001B60 +_0802393C: + ldr r5, _0802397C + ldr r0, [r5] + movs r4, 0x1 + strb r4, [r0, 0x18] + ldr r0, [r5] + strb r4, [r0, 0x15] + movs r0, 0x9 + bl sub_80023E4 + lsls r0, 24 + cmp r0, 0 + bne _08023958 + ldr r0, [r5] + strb r4, [r0, 0x16] +_08023958: + ldr r4, _0802397C + ldr r0, [r4] + ldr r0, [r0] + cmp r0, 0x4 + bne _08023980 + bl sub_80A5728 + lsls r0, 16 + asrs r0, 16 + bl sub_8002658 + ldr r1, [r4] + movs r2, 0xD5 + lsls r2, 2 + adds r1, r2 + strb r0, [r1] + b _0802398E + .align 2, 0 +_0802397C: .4byte gUnknown_3001B60 +_08023980: + ldr r0, _08023A7C + ldr r0, [r0] + movs r3, 0xD5 + lsls r3, 2 + adds r0, r3 + movs r1, 0 + strb r1, [r0] +_0802398E: + ldr r5, _08023A7C + ldr r0, [r5] + movs r4, 0xE3 + lsls r4, 2 + adds r1, r0, r4 + mov r2, r8 + str r2, [r1] + movs r7, 0xE4 + lsls r7, 2 + adds r2, r0, r7 + mov r3, r8 + lsls r1, r3, 1 + add r1, r8 + lsls r1, 3 + movs r6, 0xE5 + lsls r6, 2 + adds r1, r6 + adds r1, r0, r1 + str r1, [r2] + adds r0, r6 + bl sub_8006518 + ldr r1, [r5] + adds r4, r1, r4 + ldr r2, [r4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r1, r6 + ldr r0, _08023A80 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldr r2, [r5] + adds r0, r2, r7 + ldr r1, [r0] + movs r4, 0xFD + lsls r4, 2 + adds r0, r2, r4 + str r0, [r1, 0x14] + mov r0, r9 + cmp r0, 0 + beq _08023A04 + movs r1, 0xE3 + lsls r1, 2 + adds r0, r2, r1 + ldr r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + movs r3, 0xE7 + lsls r3, 2 + adds r1, r2, r3 + adds r1, r0 + mov r4, r9 + ldr r0, [r4] + str r0, [r1] +_08023A04: + ldr r0, [r5] + adds r0, r7 + ldr r0, [r0] + mov r1, r10 + bl sub_8012D08 + bl ResetUnusedInputStruct + ldr r0, [r5] + adds r0, r6 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r4, [r5] + movs r0, 0xD6 + lsls r0, 2 + adds r4, r0 + bl sub_8023F8C + adds r1, r0, 0 + adds r0, r4, 0 + mov r2, r10 + mov r3, r8 + bl sub_8013818 + ldr r0, _08023A84 + ldr r4, [r5] + ldr r1, [r0] + ldr r0, [r4] + cmp r1, r0 + bne _08023A64 + ldr r0, _08023A88 + ldrh r1, [r0] + movs r2, 0xDC + lsls r2, 2 + adds r0, r4, r2 + strh r1, [r0] + ldr r0, _08023A8C + ldrh r1, [r0] + ldr r3, _08023A90 + adds r0, r4, r3 + strh r1, [r0] + movs r1, 0xD6 + lsls r1, 2 + adds r0, r4, r1 + bl sub_8013984 +_08023A64: + bl sub_8023CF4 + bl sub_8023DA4 + movs r0, 0x1 +_08023A6E: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08023A7C: .4byte gUnknown_3001B60 +_08023A80: .4byte sUnknown_80DC968 +_08023A84: .4byte gUnknown_203B2A0 +_08023A88: .4byte gUnknown_203B2A8 +_08023A8C: .4byte gUnknown_203B2AA +_08023A90: .4byte 0x00000376 + thumb_func_end sub_8023868 + + thumb_func_start sub_8023A94 +sub_8023A94: + push {r4,lr} + lsls r0, 24 + cmp r0, 0 + bne _08023AB4 + ldr r0, _08023AB0 + ldr r0, [r0] + movs r1, 0xD6 + lsls r1, 2 + adds r0, r1 + bl sub_8013660 + movs r0, 0 + b _08023B3E + .align 2, 0 +_08023AB0: .4byte gUnknown_3001B60 +_08023AB4: + ldr r4, _08023AD0 + ldr r0, [r4] + movs r1, 0xD6 + lsls r1, 2 + adds r0, r1 + bl GetKeyPress + cmp r0, 0x2 + beq _08023ADE + cmp r0, 0x2 + bgt _08023AD4 + cmp r0, 0x1 + beq _08023AF2 + b _08023B16 + .align 2, 0 +_08023AD0: .4byte gUnknown_3001B60 +_08023AD4: + cmp r0, 0x3 + beq _08023AFC + cmp r0, 0x4 + beq _08023AE8 + b _08023B16 +_08023ADE: + movs r0, 0x1 + bl PlayMenuSoundEffect + movs r0, 0x2 + b _08023B3E +_08023AE8: + movs r0, 0x4 + bl PlayMenuSoundEffect + movs r0, 0x4 + b _08023B3E +_08023AF2: + movs r0, 0 + bl PlayMenuSoundEffect + movs r0, 0x3 + b _08023B3E +_08023AFC: + movs r0, 0x5 + bl PlayMenuSoundEffect + ldr r0, [r4] + ldr r1, [r0, 0x4] + movs r2, 0x1 + cmp r1, 0x2 + bhi _08023B0E + adds r2, r1, 0x1 +_08023B0E: + str r2, [r0, 0x4] + bl sub_8023F8C + b _08023B34 +_08023B16: + ldr r0, _08023B30 + ldr r0, [r0] + movs r1, 0xD6 + lsls r1, 2 + adds r0, r1 + movs r1, 0x1 + bl sub_80138B8 + lsls r0, 24 + cmp r0, 0 + bne _08023B34 + movs r0, 0 + b _08023B3E + .align 2, 0 +_08023B30: .4byte gUnknown_3001B60 +_08023B34: + bl sub_8023CF4 + bl sub_8023DA4 + movs r0, 0x1 +_08023B3E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8023A94 + + thumb_func_start sub_8023B44 +sub_8023B44: + ldr r0, _08023B74 + ldr r0, [r0] + ldr r2, _08023B78 + adds r1, r0, r2 + movs r3, 0 + ldrsh r2, [r1, r3] + movs r3, 0xDD + lsls r3, 2 + adds r1, r0, r3 + movs r3, 0 + ldrsh r1, [r1, r3] + muls r1, r2 + movs r3, 0xDC + lsls r3, 2 + adds r2, r0, r3 + movs r3, 0 + ldrsh r2, [r2, r3] + adds r1, r2 + lsls r1, 1 + adds r0, 0x1A + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + bx lr + .align 2, 0 +_08023B74: .4byte gUnknown_3001B60 +_08023B78: .4byte 0x00000376 + thumb_func_end sub_8023B44 + + thumb_func_start sub_8023B7C +sub_8023B7C: + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl ResetUnusedInputStruct + ldr r5, _08023BD0 + ldr r0, [r5] + movs r1, 0xE5 + lsls r1, 2 + adds r0, r1 + movs r1, 0 + movs r2, 0 + bl sub_800641C + bl sub_8023BD8 + adds r2, r0, 0 + ldr r0, [r5] + ldr r3, _08023BD4 + adds r1, r0, r3 + strh r2, [r1] + movs r1, 0xD6 + lsls r1, 2 + adds r0, r1 + bl sub_8013984 + bl sub_8023CF4 + bl sub_8023DA4 + cmp r4, 0 + beq _08023BCA + ldr r0, [r5] + movs r3, 0xD6 + lsls r3, 2 + adds r0, r3 + bl AddMenuCursorSprite +_08023BCA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08023BD0: .4byte gUnknown_3001B60 +_08023BD4: .4byte 0x0000037a + thumb_func_end sub_8023B7C + + thumb_func_start sub_8023BD8 +sub_8023BD8: + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r3, 0 + ldr r1, _08023C58 + ldr r0, [r1] + ldr r0, [r0, 0x8] + adds r7, r1, 0 + cmp r3, r0 + bge _08023C4A + ldr r0, _08023C5C + mov r8, r0 + mov r12, r7 +_08023BF2: + ldr r2, [r1] + lsls r4, r3, 1 + adds r0, r2, 0 + adds r0, 0x1A + adds r0, r4 + movs r5, 0 + ldrsh r1, [r0, r5] + movs r0, 0x58 + muls r0, r1 + mov r5, r8 + ldr r1, [r5] + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + adds r6, r3, 0x1 + cmp r0, 0 + bne _08023C3E + ldr r0, [r2, 0x8] + subs r0, 0x1 + str r0, [r2, 0x8] + cmp r3, r0 + bge _08023C3E + mov r5, r12 + adds r4, 0x2 +_08023C24: + ldr r2, [r5] + lsls r1, r3, 1 + adds r0, r2, 0 + adds r0, 0x1A + adds r1, r0, r1 + adds r0, r4 + ldrh r0, [r0] + strh r0, [r1] + adds r4, 0x2 + adds r3, 0x1 + ldr r0, [r2, 0x8] + cmp r3, r0 + blt _08023C24 +_08023C3E: + adds r3, r6, 0 + adds r1, r7, 0 + ldr r0, [r7] + ldr r0, [r0, 0x8] + cmp r3, r0 + blt _08023BF2 +_08023C4A: + ldr r0, [r7] + ldr r0, [r0, 0x8] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08023C58: .4byte gUnknown_3001B60 +_08023C5C: .4byte gRecruitedPokemonRef + thumb_func_end sub_8023BD8 + + thumb_func_start sub_8023C60 +sub_8023C60: + push {r4-r6,lr} + ldr r5, _08023CCC + ldr r2, [r5] + cmp r2, 0 + beq _08023CC6 + ldr r1, _08023CD0 + ldr r0, [r2] + str r0, [r1] + ldr r1, _08023CD4 + ldr r0, [r2, 0x4] + str r0, [r1] + ldr r1, _08023CD8 + movs r3, 0xDC + lsls r3, 2 + adds r0, r2, r3 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _08023CDC + ldr r6, _08023CE0 + adds r0, r2, r6 + ldrh r0, [r0] + strh r0, [r1] + movs r1, 0xE3 + lsls r1, 2 + adds r0, r2, r1 + ldr r0, [r0] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, r2, r1 + movs r4, 0xE5 + lsls r4, 2 + adds r1, r4 + ldr r0, _08023CE4 + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + bl ResetUnusedInputStruct + ldr r0, [r5] + adds r0, r4 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r5] + bl MemoryFree + movs r0, 0 + str r0, [r5] +_08023CC6: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08023CCC: .4byte gUnknown_3001B60 +_08023CD0: .4byte gUnknown_203B2A0 +_08023CD4: .4byte gUnknown_203B2A4 +_08023CD8: .4byte gUnknown_203B2A8 +_08023CDC: .4byte gUnknown_203B2AA +_08023CE0: .4byte 0x00000376 +_08023CE4: .4byte sUnknown_80DC950 + thumb_func_end sub_8023C60 + + thumb_func_start sub_8023CE8 +sub_8023CE8: + ldr r0, _08023CF0 + ldr r0, [r0] + bx lr + .align 2, 0 +_08023CF0: .4byte gUnknown_3001B60 + thumb_func_end sub_8023CE8 + + thumb_func_start sub_8023CF4 +sub_8023CF4: + push {r4,r5,lr} + ldr r2, _08023D28 + ldr r0, [r2] + movs r1, 0xFD + lsls r1, 2 + adds r0, r1 + movs r3, 0 + movs r1, 0x1 + strb r1, [r0] + ldr r0, [r2] + ldr r1, _08023D2C + adds r0, r1 + strb r3, [r0] + ldr r0, [r2] + adds r1, 0x2 + adds r0, r1 + strb r3, [r0] + ldr r1, [r2] + ldr r0, [r1] + adds r5, r2, 0 + cmp r0, 0x2 + bne _08023D34 + ldr r0, _08023D30 + adds r1, r0 + b _08023D38 + .align 2, 0 +_08023D28: .4byte gUnknown_3001B60 +_08023D2C: .4byte 0x000003f5 +_08023D30: .4byte 0x000003f6 +_08023D34: + ldr r2, _08023D98 + adds r1, r2 +_08023D38: + movs r0, 0xC + strb r0, [r1] + ldr r0, [r5] + ldr r1, _08023D9C + adds r0, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + movs r1, 0xC + bl sub_80095E4 + adds r0, 0x2 + ldr r3, [r5] + movs r1, 0xE3 + lsls r1, 2 + adds r4, r3, r1 + ldr r2, [r4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 3 + adds r1, r3, r1 + ldr r2, _08023DA0 + adds r1, r2 + lsls r0, 16 + lsrs r0, 16 + strh r0, [r1] + ldr r2, [r4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 3 + adds r3, r1 + movs r1, 0xE9 + lsls r1, 2 + adds r3, r1 + strh r0, [r3] + bl ResetUnusedInputStruct + ldr r0, [r5] + movs r2, 0xE5 + lsls r2, 2 + adds r0, r2 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08023D98: .4byte 0x000003f6 +_08023D9C: .4byte 0x00000372 +_08023DA0: .4byte 0x000003a2 + thumb_func_end sub_8023CF4 + + thumb_func_start sub_8023DA4 +sub_8023DA4: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x58 + ldr r4, _08023DD8 + ldr r0, [r4] + movs r5, 0xE3 + lsls r5, 2 + adds r0, r5 + ldr r0, [r0] + bl sub_8008C54 + ldr r0, [r4] + adds r0, r5 + ldr r0, [r0] + bl sub_80073B8 + ldr r0, [r4] + ldr r1, [r0] + cmp r1, 0x2 + beq _08023DE0 + cmp r1, 0x4 + beq _08023E00 + ldr r2, _08023DDC + b _08023E02 + .align 2, 0 +_08023DD8: .4byte gUnknown_3001B60 +_08023DDC: .4byte sUnknown_80DC988 +_08023DE0: + add r0, sp, 0x8 + bl sub_80920D8 + ldr r0, [r4] + movs r1, 0xE3 + lsls r1, 2 + adds r0, r1 + ldr r3, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0xA + movs r1, 0 + add r2, sp, 0x8 + bl xxx_call_draw_string + b _08023E3C +_08023E00: + ldr r2, _08023EBC +_08023E02: + adds r0, r5 + ldr r3, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0xA + movs r1, 0 + bl xxx_call_draw_string + ldr r1, [r4] + ldr r2, _08023EC0 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 3 + adds r3, r0, 0x4 + ldr r4, _08023EC4 + adds r0, r1, r4 + movs r4, 0 + ldrsh r2, [r0, r4] + adds r2, 0x1 + movs r0, 0x7 + str r0, [sp] + adds r1, r5 + ldr r0, [r1] + str r0, [sp, 0x4] + adds r0, r3, 0 + movs r1, 0 + movs r3, 0x2 + bl sub_8012BC4 +_08023E3C: + movs r7, 0 + ldr r1, _08023EC8 + ldr r0, [r1] + ldr r2, _08023ECC + adds r0, r2 + movs r4, 0 + ldrsh r0, [r0, r4] + cmp r7, r0 + blt _08023E50 + b _08023F62 +_08023E50: + mov r8, r1 + add r0, sp, 0x30 + mov r9, r0 +_08023E56: + ldr r3, [r1] + ldr r1, _08023EC4 + adds r0, r3, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + movs r4, 0xDD + lsls r4, 2 + adds r0, r3, r4 + movs r2, 0 + ldrsh r0, [r0, r2] + muls r1, r0 + adds r1, r7 + lsls r1, 1 + adds r0, r3, 0 + adds r0, 0x1A + adds r0, r1 + movs r4, 0 + ldrsh r5, [r0, r4] + ldr r2, _08023ED0 + movs r0, 0x58 + adds r1, r5, 0 + muls r1, r0 + ldr r0, [r2] + adds r4, r0, r1 + movs r6, 0x7 + ldrh r0, [r4] + lsrs r0, 1 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08023ED4 + movs r0, 0 + ldrb r1, [r4, 0x4] + cmp r1, 0x41 + bne _08023E9E + movs r0, 0x1 +_08023E9E: + cmp r0, 0 + beq _08023EA4 + movs r6, 0x6 +_08023EA4: + movs r0, 0 + cmp r1, 0x40 + bne _08023EAC + movs r0, 0x1 +_08023EAC: + cmp r0, 0 + beq _08023EB2 + movs r6, 0x6 +_08023EB2: + ldrb r0, [r4, 0x2] + cmp r0, 0 + beq _08023EEA + movs r6, 0x5 + b _08023EEA + .align 2, 0 +_08023EBC: .4byte sUnknown_80DC980 +_08023EC0: .4byte 0x000003f6 +_08023EC4: .4byte 0x00000376 +_08023EC8: .4byte gUnknown_3001B60 +_08023ECC: .4byte 0x00000372 +_08023ED0: .4byte gRecruitedPokemonRef +_08023ED4: + ldrb r0, [r3, 0x18] + cmp r0, 0 + beq _08023EEA + adds r0, r5, 0 + bl sub_808D750 + lsls r0, 24 + movs r6, 0x2 + cmp r0, 0 + beq _08023EEA + movs r6, 0x4 +_08023EEA: + mov r0, r8 + ldr r1, [r0] + ldr r0, [r1] + cmp r0, 0x4 + bne _08023F02 + movs r2, 0xD5 + lsls r2, 2 + adds r0, r1, r2 + ldrb r1, [r0] + adds r0, r4, 0 + bl sub_8024184 +_08023F02: + adds r1, r4, 0 + adds r1, 0x4C + mov r0, r9 + movs r2, 0xA + bl sub_80922B4 + movs r0, 0x8 + ldrsh r1, [r4, r0] + add r0, sp, 0x44 + bl sub_808D930 + add r0, sp, 0x8 + ldr r1, _08023F80 + adds r2, r6, 0 + mov r3, r9 + bl sprintfStatic + mov r1, r8 + ldr r0, [r1] + movs r2, 0xD6 + lsls r2, 2 + adds r0, r2 + adds r1, r7, 0 + bl sub_8013800 + adds r1, r0, 0 + mov r4, r8 + ldr r0, [r4] + movs r2, 0xE3 + lsls r2, 2 + adds r0, r2 + ldr r3, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0x8 + add r2, sp, 0x8 + bl xxx_call_draw_string + adds r7, 0x1 + mov r1, r8 + ldr r0, [r4] + ldr r4, _08023F84 + adds r0, r4 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r7, r0 + bge _08023F62 + b _08023E56 +_08023F62: + ldr r0, _08023F88 + ldr r0, [r0] + movs r4, 0xE3 + lsls r4, 2 + adds r0, r4 + ldr r0, [r0] + bl sub_80073E0 + add sp, 0x58 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08023F80: .4byte sUnknown_80DC998 +_08023F84: .4byte 0x00000372 +_08023F88: .4byte gUnknown_3001B60 + thumb_func_end sub_8023DA4 + + thumb_func_start sub_8023F8C +sub_8023F8C: + push {r4-r7,lr} + ldr r2, _08023FD0 + ldr r1, [r2] + movs r0, 0 + str r0, [r1, 0x8] + ldrb r0, [r1, 0x15] + adds r6, r2, 0 + cmp r0, 0 + bne _08023FE2 + movs r4, 0 + ldr r2, _08023FD4 +_08023FA2: + movs r0, 0x58 + adds r1, r4, 0 + muls r1, r0 + ldr r0, [r2] + adds r1, r0, r1 + ldrb r0, [r1, 0x2] + cmp r0, 0 + beq _08023FD8 + ldrb r1, [r1] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08023FD8 + ldr r3, [r6] + ldr r1, [r3, 0x8] + lsls r2, r1, 1 + adds r0, r3, 0 + adds r0, 0x1A + adds r0, r2 + strh r4, [r0] + adds r1, 0x1 + str r1, [r3, 0x8] + b _08023FE2 + .align 2, 0 +_08023FD0: .4byte gUnknown_3001B60 +_08023FD4: .4byte gRecruitedPokemonRef +_08023FD8: + adds r4, 0x1 + movs r0, 0xCE + lsls r0, 1 + cmp r4, r0 + ble _08023FA2 +_08023FE2: + ldr r0, [r6] + ldrb r0, [r0, 0x16] + cmp r0, 0 + bne _08024042 + movs r4, 0 + ldr r3, _08024034 +_08023FEE: + movs r0, 0x58 + adds r1, r4, 0 + muls r1, r0 + ldr r0, [r3] + adds r1, r0, r1 + movs r2, 0 + ldrb r0, [r1, 0x4] + cmp r0, 0x41 + bne _08024002 + movs r2, 0x1 +_08024002: + cmp r2, 0 + beq _08024038 + ldrb r0, [r1, 0x2] + cmp r0, 0 + bne _08024038 + ldrh r1, [r1] + lsrs r0, r1, 1 + movs r2, 0x1 + ands r0, r2 + cmp r0, 0 + beq _08024038 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _08024038 + ldr r3, [r6] + ldr r1, [r3, 0x8] + lsls r2, r1, 1 + adds r0, r3, 0 + adds r0, 0x1A + adds r0, r2 + strh r4, [r0] + adds r1, 0x1 + str r1, [r3, 0x8] + b _08024042 + .align 2, 0 +_08024034: .4byte gRecruitedPokemonRef +_08024038: + adds r4, 0x1 + movs r0, 0xCE + lsls r0, 1 + cmp r4, r0 + ble _08023FEE +_08024042: + ldr r0, [r6] + ldr r1, [r0, 0x8] + str r1, [r0, 0xC] + ldrb r0, [r0, 0x17] + cmp r0, 0 + bne _080240A4 + movs r4, 0 + ldr r7, _08024100 + movs r5, 0x1 +_08024054: + movs r0, 0x58 + adds r1, r4, 0 + muls r1, r0 + ldr r0, [r7] + adds r1, r0, r1 + ldrh r2, [r1] + lsrs r0, r2, 1 + ands r0, r5 + cmp r0, 0 + beq _0802409A + adds r0, r5, 0 + ands r0, r2 + cmp r0, 0 + beq _0802409A + ldrb r0, [r1, 0x2] + cmp r0, 0 + bne _0802409A + movs r2, 0 + ldrb r0, [r1, 0x4] + cmp r0, 0x41 + bne _08024080 + movs r2, 0x1 +_08024080: + cmp r2, 0 + bne _0802409A + ldr r3, [r6] + ldr r1, [r3, 0x8] + lsls r2, r1, 1 + adds r0, r3, 0 + adds r0, 0x1A + adds r0, r2 + strh r4, [r0] + adds r1, 0x1 + str r1, [r3, 0x8] + cmp r1, 0x3 + bgt _080240A4 +_0802409A: + adds r4, 0x1 + movs r0, 0xCE + lsls r0, 1 + cmp r4, r0 + ble _08024054 +_080240A4: + ldr r0, [r6] + ldr r1, [r0, 0x8] + str r1, [r0, 0x10] + ldrb r0, [r0, 0x14] + cmp r0, 0 + bne _080240EE + movs r4, 0 + ldr r7, _08024100 + movs r5, 0x1 +_080240B6: + movs r0, 0x58 + adds r1, r4, 0 + muls r1, r0 + ldr r0, [r7] + adds r1, r0, r1 + ldrh r1, [r1] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _080240E4 + lsrs r0, r1, 1 + ands r0, r5 + cmp r0, 0 + bne _080240E4 + ldr r3, [r6] + ldr r1, [r3, 0x8] + lsls r2, r1, 1 + adds r0, r3, 0 + adds r0, 0x1A + adds r0, r2 + strh r4, [r0] + adds r1, 0x1 + str r1, [r3, 0x8] +_080240E4: + adds r4, 0x1 + movs r0, 0xCE + lsls r0, 1 + cmp r4, r0 + ble _080240B6 +_080240EE: + bl sub_80241A8 + ldr r0, _08024104 + ldr r0, [r0] + ldr r0, [r0, 0x8] + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08024100: .4byte gRecruitedPokemonRef +_08024104: .4byte gUnknown_3001B60 + thumb_func_end sub_8023F8C + + thumb_func_start sub_8024108 +sub_8024108: + push {r4-r7,lr} + adds r5, r0, 0 + movs r7, 0 + movs r6, 0x1 +_08024110: + ldr r2, _08024134 + movs r0, 0x58 + adds r1, r7, 0 + muls r1, r0 + ldr r0, [r2] + adds r4, r0, r1 + ldrh r1, [r4] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _08024172 + cmp r5, 0x2 + bne _08024138 + lsrs r0, r1, 1 + ands r0, r6 + cmp r0, 0 + beq _08024172 + b _0802416E + .align 2, 0 +_08024134: .4byte gRecruitedPokemonRef +_08024138: + cmp r5, 0x3 + bne _08024140 + lsrs r0, r1, 1 + b _08024168 +_08024140: + cmp r5, 0x4 + bne _0802416E + ldrb r0, [r4, 0x2] + cmp r0, 0 + bne _08024172 + movs r0, 0x9 + bl sub_80023E4 + lsls r0, 24 + cmp r0, 0 + bne _0802416E + movs r1, 0 + ldrb r0, [r4, 0x4] + cmp r0, 0x41 + bne _08024160 + movs r1, 0x1 +_08024160: + cmp r1, 0 + beq _0802416E + ldrh r0, [r4] + lsrs r0, 1 +_08024168: + ands r0, r6 + cmp r0, 0 + bne _08024172 +_0802416E: + movs r0, 0 + b _0802417E +_08024172: + adds r7, 0x1 + movs r0, 0xCE + lsls r0, 1 + cmp r7, r0 + ble _08024110 + movs r0, 0x1 +_0802417E: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8024108 + + .align 2,0 \ No newline at end of file diff --git a/data/data_80DC464.s b/data/data_80DC464.s index d3fde0ea1..4e248f016 100644 --- a/data/data_80DC464.s +++ b/data/data_80DC464.s @@ -185,67 +185,4 @@ gUnknown_80DC934: @ 80DC934 .global gUnknown_80DC93C gUnknown_80DC93C: @ 80DC93C - .string "{COLOR_2}%c%s{END_COLOR_TEXT_2}\0" - .align 2,0 - -@ code_801EE10_1 -.string "pksdir0\0" - .align 2,0 - - .global gUnknown_80DC950 -gUnknown_80DC950: @ 80DC950 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DC968 -gUnknown_80DC968: @ 80DC968 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x06, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x00 - .byte 0x0f, 0x00, 0x0e, 0x00 - .byte 0x0e, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DC980 -gUnknown_80DC980: @ 80DC980 - .string "Friends\0" - - .global gUnknown_80DC988 -gUnknown_80DC988: @ 80DC988 - .string "Pokémon Friends\0" - - .global gUnknown_80DC998 -gUnknown_80DC998: @ 80DC998 - .string "{COLOR_2}%c%s{END_COLOR_TEXT_2}\0" - .align 2,0 - - .global gUnknown_80DC9A4 -gUnknown_80DC9A4: @ 80DC9A4 - .string "%s\0" - .align 2,0 - -@ code_801EE10_1 #2 -.string "pksdir0\0" - .align 2,0 - - .global gUnknown_80DC9B0 -gUnknown_80DC9B0: @ 80DC9B0 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DC9C8 -gUnknown_80DC9C8: @ 80DC9C8 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x06, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x00 - .byte 0x12, 0x00, 0x0e, 0x00 - .byte 0x12, 0x00, 0x02, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 \ No newline at end of file + .string "{COLOR_2}%c%s{END_COLOR_TEXT_2}\0" \ No newline at end of file diff --git a/include/code_801EE10_1.h b/include/code_801EE10_1.h deleted file mode 100644 index f900a0560..000000000 --- a/include/code_801EE10_1.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef GUARD_CODE_801EE10_1_H -#define GUARD_CODE_801EE10_1_H - -bool8 sub_8024458(s16 speciesNum, s32); -u32 sub_80244E4(void); -void sub_802453C(void); - -// code_801EE10_1.s -extern void sub_8023868(u32, u32, u32, u32); -extern u32 sub_8023A94(bool8); -extern s16 sub_8023B44(void); -extern void sub_8023B7C(u32); -extern void sub_8023C60(void); -extern void sub_8023DA4(void); -extern bool8 sub_8024108(u32); - -#endif // GUARD_CODE_801EE10_1_H \ No newline at end of file diff --git a/include/code_8023868.h b/include/code_8023868.h new file mode 100644 index 000000000..548472a71 --- /dev/null +++ b/include/code_8023868.h @@ -0,0 +1,30 @@ +#ifndef GUARD_CODE_8023868_H +#define GUARD_CODE_8023868_H + +struct unkStruct_3001B60 +{ + u32 unk0; + u32 sortMethod; + u32 unk8; + u32 unkC; + u32 unk10; + u8 fill14[0x18 - 0x14]; + s16 unk18; + s16 unk1A[2]; + u8 fill1C[0x370 - 0x1E]; + s16 unk370; + s16 unk372; + s16 unk374; + s16 unk376; +}; + +// code_8023868.s +extern void sub_8023868(u32, u32, u32, u32); +extern u32 sub_8023A94(bool8); +extern s16 sub_8023B44(void); +extern void sub_8023B7C(u32); +extern void sub_8023C60(void); +extern void sub_8023DA4(void); +extern bool8 sub_8024108(u32); + +#endif // GUARD_CODE_8023868_H \ No newline at end of file diff --git a/include/code_8024458.h b/include/code_8024458.h new file mode 100644 index 000000000..3c271f455 --- /dev/null +++ b/include/code_8024458.h @@ -0,0 +1,28 @@ +#ifndef GUARD_CODE_8024458_H +#define GUARD_CODE_8024458_H + +#include "input.h" +#include "text.h" + +struct unkStruct_203B2AC +{ + MenuInputStruct input; + u32 unk34[3]; + u8 unk40[0x48 - 0x40]; + s16 speciesNum; + u32 unk4C; + u8 unk50[0xB0 - 0x50]; + u32 unkB0; + u8 fillB4[0xE0 - 0xB4]; + u32 unkE0; + UnkTextStruct2 *unkE4; + UnkTextStruct2 unkE8[4]; + u8 unk148[4]; +}; + +bool8 sub_8024458(s16 speciesNum, s32); +u32 sub_80244E4(void); +void sub_802452C(void); +void sub_802453C(void); + +#endif // GUARD_CODE_8024458_H \ No newline at end of file diff --git a/include/pokemon_3.h b/include/pokemon_3.h index 50a4d1e2a..1891b89cc 100644 --- a/include/pokemon_3.h +++ b/include/pokemon_3.h @@ -30,4 +30,8 @@ void SetDefaultIQSkills(u8 *param_1, bool8 enableSelfCurer); void sub_808F468(PokemonStruct1 *param_1, EvolveStatus *evolveStatus, u8 param_3); u32 sub_808F734(PokemonStruct1 *pokemon, s16 _species); +// pokemon_3.s +extern void CreatePokemonInfoTabScreen(u32, s16, u32 *, u32 *, u32); +extern void sub_808FF20(u32 *, PokemonStruct1 *, bool8); + #endif // GUARD_POKEMON_3_H \ No newline at end of file diff --git a/include/pokemon_mid.h b/include/pokemon_mid.h index 2e638ea81..4d261c99b 100644 --- a/include/pokemon_mid.h +++ b/include/pokemon_mid.h @@ -3,6 +3,7 @@ #include "pokemon.h" +bool8 ComparePokemonNames(s16, s16); void PrintPokeNameToBuffer(u8 *buffer, PokemonStruct1 *pokemon); bool8 sub_808DA44(s32, u32); diff --git a/ld_script.txt b/ld_script.txt index eee1ecb18..d4b0e54a8 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -125,7 +125,9 @@ SECTIONS { asm/code_8023144.o(.text); src/code_8023144.o(.text); asm/code_801EE10_1.o(.text); - src/code_801EE10_1.o(.text); + asm/code_8023868.o(.text); + src/code_8023868.o(.text); + src/code_8024458.o(.text); src/luminous_cave.o(.text); src/friend_list_menu.o(.text); src/party_list_menu.o(.text); @@ -436,6 +438,8 @@ SECTIONS { src/wigglytuff_shop2.o(.rodata); src/wigglytuff_shop3.o(.rodata); data/data_80DC464.o(.rodata); + src/code_8023868.o(.rodata); + src/code_8024458.o(.rodata); src/luminous_cave.o(.rodata); src/friend_list_menu.o(.rodata); src/party_list_menu.o(.rodata); diff --git a/src/code_801D014.c b/src/code_801D014.c index cefdcfea1..f8b6a17d7 100644 --- a/src/code_801D014.c +++ b/src/code_801D014.c @@ -4,8 +4,9 @@ #include "code_80130A8.h" #include "code_801BEEC.h" #include "code_801D014.h" -#include "code_801EE10_1.h" #include "code_8023144.h" +#include "code_8023868.h" +#include "code_8024458.h" #include "code_8096AF8.h" #include "common_strings.h" #include "constants/friend_area.h" diff --git a/src/code_801EE10_1.c b/src/code_801EE10_1.c deleted file mode 100644 index a5e3fb2ee..000000000 --- a/src/code_801EE10_1.c +++ /dev/null @@ -1,318 +0,0 @@ -#include "global.h" -#include "code_801EE10_1.h" -#include "constants/input.h" -#include "code_800D090.h" -#include "pokemon.h" -#include "input.h" -#include "memory.h" -#include "text1.h" -#include "text2.h" -#include "text_util.h" -#include "menu_input.h" -#include "code_80118A4.h" -#include "event_flag.h" - -struct unkStruct_203B2AC -{ - MenuInputStruct input; - u32 unk34[3]; - u8 unk40[0x48 - 0x40]; - s16 speciesNum; - u32 unk4C; - u8 unk50[0xB0 - 0x50]; - u32 unkB0; - u8 fillB4[0xE0 - 0xB4]; - u32 unkE0; - UnkTextStruct2 *unkE4; - UnkTextStruct2 unkE8[4]; - u8 unk148[4]; -}; -extern struct unkStruct_203B2AC *gUnknown_203B2AC; - -struct unkStruct_3001B60 -{ - u32 unk0; - u32 sortMethod; - u32 unk8; - u32 unkC; - u32 unk10; - u8 fill14[0x18 - 0x14]; - s16 unk18; - s16 unk1A[2]; - u8 fill1C[0x370 - 0x1E]; - s16 unk370; - s16 unk372; - s16 unk374; - s16 unk376; -}; - -extern struct unkStruct_3001B60 *gUnknown_3001B60; - -extern UnkTextStruct2 gUnknown_80DC9B0; -extern UnkTextStruct2 gUnknown_80DC9C8; - -extern void sub_808FF20(u32 *, PokemonStruct1 *, bool8); -extern void CreatePokemonInfoTabScreen(u32, s16, u32 *, u32 *, u32); -extern void sub_802452C(void); -bool8 ComparePokemonNames(s16 a1, s16 a2); - -void sub_8024588(void); -void sub_80245D0(void); -void sub_8024604(void); - -extern u8 gUnknown_80DC9A4[]; - -void SortbyInternalNo(s32 param_1, s32 param_2); -void SortbyAlphabetNo(s32 param_1,s32 param_2); -void SortbyName(s32 param_1,s32 param_2); - -bool8 sub_8024184(PokemonStruct1 *pokemon, u8 area) -{ - if(area == GetFriendArea(pokemon->speciesNum)) - return TRUE; - else - return FALSE; -} - -void sub_80241A8(void) -{ - switch(gUnknown_3001B60->sortMethod) - { - case 2: - if (gUnknown_3001B60->unkC != gUnknown_3001B60->unk10) { - SortbyAlphabetNo(gUnknown_3001B60->unkC, gUnknown_3001B60->unk10); - } - if (gUnknown_3001B60->unk10 != gUnknown_3001B60->unk8) { - SortbyAlphabetNo(gUnknown_3001B60->unk10, gUnknown_3001B60->unk8); - } - break; - case 3: - if (gUnknown_3001B60->unkC != gUnknown_3001B60->unk10) { - SortbyName(gUnknown_3001B60->unkC, gUnknown_3001B60->unk10); - } - if (gUnknown_3001B60->unk10 != gUnknown_3001B60->unk8) { - SortbyName(gUnknown_3001B60->unk10, gUnknown_3001B60->unk8); - } - break; - case 1: - if (gUnknown_3001B60->unkC != gUnknown_3001B60->unk10) { - SortbyInternalNo(gUnknown_3001B60->unkC, gUnknown_3001B60->unk10); - } - if (gUnknown_3001B60->unk10 != gUnknown_3001B60->unk8) { - SortbyInternalNo(gUnknown_3001B60->unk10, gUnknown_3001B60->unk8); - } - break; - } -} - - -void SortbyInternalNo(s32 param_1, s32 param_2) -{ - s16 *r4; - s32 iVar4; - s16 *r10; - s16 *r5; - s32 r6; - s32 r1; - s32 r7; - s32 r9; - - r10 = &gUnknown_3001B60->unk18 + param_2; - r7 = param_1; - r1 = param_2 - 1; - if (r7 < r1) { - r9 = r1; - do { - r4 = r10; - r6 = r1; - iVar4 = r7 + 1; - for (; r6 > r7; r6--) { - if (GetInternalNo(gRecruitedPokemonRef->pokemon[r5 = r4 - 1, *r5].speciesNum) > GetInternalNo(gRecruitedPokemonRef->pokemon[*r4].speciesNum)) { - r1 = *r4; - *r4 = *r5; - *r5 = r1; - } - r4 = r5; - } - r7 = iVar4; - r1 = r9; - } while (iVar4 < r1); - } -} - -void SortbyAlphabetNo(s32 param_1,s32 param_2) -{ - s16 *r4; - s32 iVar4; - s16 *r10; - s16 *r5; - s32 r6; - s32 r1; - s32 r7; - s32 r9; - - r10 = &gUnknown_3001B60->unk18 + param_2; - r7 = param_1; - r1 = param_2 - 1; - if (r7 < r1) { - r9 = r1; - do { - r4 = r10; - r6 = r1; - iVar4 = r7 + 1; - for (; r6 > r7; r6--) { - if (GetAlphabetParentNo(gRecruitedPokemonRef->pokemon[r5 = r4 - 1, *r5].speciesNum, 0) > GetAlphabetParentNo(gRecruitedPokemonRef->pokemon[*r4].speciesNum, 0)) { - r1 = *r4; - *r4 = *r5; - *r5 = r1; - } - r4 = r5; - } - r7 = iVar4; - r1 = r9; - } while (iVar4 < r1); - } -} - -void SortbyName(s32 param_1,s32 param_2) -{ - s16 *r4; - s32 iVar4; - s16 *r10; - s16 *r5; - s32 r6; - s32 r1; - s32 r7; - s32 r9; - - r10 = &gUnknown_3001B60->unk18 + param_2; - r7 = param_1; - r1 = param_2 - 1; - if (r7 < r1) { - r9 = r1; - do { - r4 = r10; - r6 = r1; - iVar4 = r7 + 1; - for (; r6 > r7; r6--) { - r5 = r4 - 1; - if (ComparePokemonNames(*r5, *r4)) { - r1 = *r4; - *r4 = *r5; - *r5 = r1; - } - r4 = r5; - } - r7 = iVar4; - r1 = r9; - } while (iVar4 < r1); - } -} - -PokemonStruct1 *sub_80243E8(void) -{ - u8 buffer [40]; - u8 nameBuffer [20]; - PokemonStruct1 *pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_3001B60->unk1A[gUnknown_3001B60->unk376 * gUnknown_3001B60->unk374 + gUnknown_3001B60->unk370]]; - - sub_80922B4(nameBuffer, pokeStruct->name, POKEMON_NAME_LENGTH); - sprintfStatic(buffer, gUnknown_80DC9A4,nameBuffer); // %s - return pokeStruct; -} - - - - - -// THIS IS A NEW FILE: - - - - - -bool8 sub_8024458(s16 speciesNum, s32 param_2) -{ - s32 speciesNum_s32 = speciesNum; - gUnknown_203B2AC = MemoryAlloc(sizeof(struct unkStruct_203B2AC), 8); - gUnknown_203B2AC->speciesNum = speciesNum_s32; - gUnknown_203B2AC->unkE0 = param_2; - gUnknown_203B2AC->unkE4 = &gUnknown_203B2AC->unkE8[param_2]; - sub_8006518(gUnknown_203B2AC->unkE8); - gUnknown_203B2AC->unkE8[gUnknown_203B2AC->unkE0] = gUnknown_80DC9C8; - gUnknown_203B2AC->unkE4->unk14 = gUnknown_203B2AC->unk148; - gUnknown_203B2AC->unk148[2] = 10; - sub_8024604(); - sub_802452C(); - sub_8013984(&gUnknown_203B2AC->input); - return TRUE; -} - -u32 sub_80244E4(void) -{ - switch(GetKeyPress(&gUnknown_203B2AC->input)) - { - case INPUT_B_BUTTON: - PlayMenuSoundEffect(1); - return 2; - case INPUT_A_BUTTON: - PlayMenuSoundEffect(0); - return 3; - default: - if (sub_8013938(&gUnknown_203B2AC->input) != 0) { - sub_802452C(); - return 1; - } - else { - return 0; - } - } -} - -void sub_802452C(void) -{ - sub_8024588(); - sub_80245D0(); -} - -void sub_802453C(void) -{ - if(gUnknown_203B2AC) - { - gUnknown_203B2AC->unkE8[gUnknown_203B2AC->unkE0] = gUnknown_80DC9B0; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2AC->unkE8, TRUE, TRUE); - MemoryFree(gUnknown_203B2AC); - gUnknown_203B2AC = NULL; - } -} - -void sub_8024588(void) -{ - gUnknown_203B2AC->unk148[0] = gUnknown_203B2AC->input.unk20; - gUnknown_203B2AC->unk148[1] = gUnknown_203B2AC->input.unk1E; - gUnknown_203B2AC->unk148[3] = 0; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2AC->unkE8, TRUE, TRUE); -} - -void sub_80245D0(void) -{ - CreatePokemonInfoTabScreen - (gUnknown_203B2AC->unk34[gUnknown_203B2AC->input.unk1E], - gUnknown_203B2AC->input.unk1E,&gUnknown_203B2AC->unk4C, - &gUnknown_203B2AC->unkB0,gUnknown_203B2AC->unkE0); -} - -void sub_8024604(void) -{ - PokemonStruct1 *pokeStruct; - u32 *iVar3; - - gUnknown_203B2AC->unk34[0] = 2; - gUnknown_203B2AC->unk34[1] = 3; - gUnknown_203B2AC->unk34[2] = 5; - sub_8013818(&gUnknown_203B2AC->input,3,1,gUnknown_203B2AC->unkE0); - iVar3 = &gUnknown_203B2AC->unk4C; - pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_203B2AC->speciesNum]; - sub_808FF20(iVar3,pokeStruct, sub_80023E4(7)); -} diff --git a/src/code_8023868.c b/src/code_8023868.c new file mode 100644 index 000000000..33e3d0c2a --- /dev/null +++ b/src/code_8023868.c @@ -0,0 +1,174 @@ +#include "global.h" +#include "code_800D090.h" +#include "code_8023868.h" +#include "pokemon.h" +#include "pokemon_mid.h" +#include "text.h" +#include "text_util.h" + +//static // MAKE STATIC WHEN code_8023868.s IS DONE +IWRAM_DATA struct unkStruct_3001B60 *gUnknown_3001B60 = {0}; + +#include "data/code_8023868.h" + +static void SortbyAlphabetNo(s32, s32); +static void SortbyInternalNo(s32, s32); +static void SortbyName(s32, s32); + +//static bool8 sub_8024184(PokemonStruct1 *pokemon, u8 area); +//static void sub_80241A8(void); + +// THE REMAINING CODE FROM THIS FILE IS IN code_8023868.s STARTING WITH sub_8023868 + +//static // MAKE STATIC WHEN code_8023868.s IS DONE +bool8 sub_8024184(PokemonStruct1 *pokemon, u8 area) +{ + if (area == GetFriendArea(pokemon->speciesNum)) + return TRUE; + return FALSE; +} + +//static // MAKE STATIC WHEN code_8023868.s IS DONE +void sub_80241A8(void) +{ + switch (gUnknown_3001B60->sortMethod) { + case 2: + if (gUnknown_3001B60->unkC != gUnknown_3001B60->unk10) + SortbyAlphabetNo(gUnknown_3001B60->unkC, gUnknown_3001B60->unk10); + + if (gUnknown_3001B60->unk10 != gUnknown_3001B60->unk8) + SortbyAlphabetNo(gUnknown_3001B60->unk10, gUnknown_3001B60->unk8); + break; + case 3: + if (gUnknown_3001B60->unkC != gUnknown_3001B60->unk10) + SortbyName(gUnknown_3001B60->unkC, gUnknown_3001B60->unk10); + + if (gUnknown_3001B60->unk10 != gUnknown_3001B60->unk8) + SortbyName(gUnknown_3001B60->unk10, gUnknown_3001B60->unk8); + break; + case 1: + if (gUnknown_3001B60->unkC != gUnknown_3001B60->unk10) + SortbyInternalNo(gUnknown_3001B60->unkC, gUnknown_3001B60->unk10); + + if (gUnknown_3001B60->unk10 != gUnknown_3001B60->unk8) + SortbyInternalNo(gUnknown_3001B60->unk10, gUnknown_3001B60->unk8); + break; + } +} + +// TODO: Remove hacky if/do +static void SortbyInternalNo(s32 param_1, s32 param_2) +{ + s16 *r4; + s32 iVar4; + s16 *r10; + s16 *r5; + s32 r6; + s32 r1; + s32 r7; + s32 r9; + + r10 = &gUnknown_3001B60->unk18 + param_2; + r7 = param_1; + r1 = param_2 - 1; + if (r7 < r1) { + r9 = r1; + do { + r4 = r10; + r6 = r1; + iVar4 = r7 + 1; + for (; r6 > r7; r6--) { + if (GetInternalNo(gRecruitedPokemonRef->pokemon[r5 = r4 - 1, *r5].speciesNum) > GetInternalNo(gRecruitedPokemonRef->pokemon[*r4].speciesNum)) { + r1 = *r4; + *r4 = *r5; + *r5 = r1; + } + r4 = r5; + } + r7 = iVar4; + r1 = r9; + } while (iVar4 < r1); + } +} + +// TODO: Remove hacky if/do +static void SortbyAlphabetNo(s32 param_1, s32 param_2) +{ + s16 *r4; + s32 iVar4; + s16 *r10; + s16 *r5; + s32 r6; + s32 r1; + s32 r7; + s32 r9; + + r10 = &gUnknown_3001B60->unk18 + param_2; + r7 = param_1; + r1 = param_2 - 1; + if (r7 < r1) { + r9 = r1; + do { + r4 = r10; + r6 = r1; + iVar4 = r7 + 1; + for (; r6 > r7; r6--) { + if (GetAlphabetParentNo(gRecruitedPokemonRef->pokemon[r5 = r4 - 1, *r5].speciesNum, 0) > GetAlphabetParentNo(gRecruitedPokemonRef->pokemon[*r4].speciesNum, 0)) { + r1 = *r4; + *r4 = *r5; + *r5 = r1; + } + r4 = r5; + } + r7 = iVar4; + r1 = r9; + } while (iVar4 < r1); + } +} + +// TODO: Remove hacky if/do +static void SortbyName(s32 param_1, s32 param_2) +{ + s16 *r4; + s32 iVar4; + s16 *r10; + s16 *r5; + s32 r6; + s32 r1; + s32 r7; + s32 r9; + + r10 = &gUnknown_3001B60->unk18 + param_2; + r7 = param_1; + r1 = param_2 - 1; + if (r7 < r1) { + r9 = r1; + do { + r4 = r10; + r6 = r1; + iVar4 = r7 + 1; + for (; r6 > r7; r6--) { + r5 = r4 - 1; + if (ComparePokemonNames(*r5, *r4)) { + r1 = *r4; + *r4 = *r5; + *r5 = r1; + } + r4 = r5; + } + r7 = iVar4; + r1 = r9; + } while (iVar4 < r1); + } +} + +UNUSED static PokemonStruct1 *sub_80243E8(void) +{ + u8 buffer[40]; + u8 nameBuffer[20]; + PokemonStruct1 *pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_3001B60->unk1A[(gUnknown_3001B60->unk376 * gUnknown_3001B60->unk374) + gUnknown_3001B60->unk370]]; + + sub_80922B4(nameBuffer, pokeStruct->name, POKEMON_NAME_LENGTH); + sprintfStatic(buffer, sUnknown_80DC9A4, nameBuffer); + return pokeStruct; +} \ No newline at end of file diff --git a/src/code_8024458.c b/src/code_8024458.c new file mode 100644 index 000000000..59ed7c2a5 --- /dev/null +++ b/src/code_8024458.c @@ -0,0 +1,101 @@ +#include "global.h" +#include "code_80118A4.h" +#include "code_8024458.h" +#include "constants/input.h" +#include "event_flag.h" +#include "memory.h" +#include "menu_input.h" +#include "pokemon.h" +#include "pokemon_3.h" +#include "text1.h" +#include "text2.h" + +static EWRAM_DATA_2 struct unkStruct_203B2AC *sUnknown_203B2AC = {0}; + +#include "data/code_8024458.h" + +static void sub_8024588(void); +static void sub_80245D0(void); +static void sub_8024604(void); + +bool8 sub_8024458(s16 speciesNum, s32 a1) +{ + s32 speciesNum_s32 = speciesNum; + + sUnknown_203B2AC = MemoryAlloc(sizeof(struct unkStruct_203B2AC), 8); + sUnknown_203B2AC->speciesNum = speciesNum_s32; + sUnknown_203B2AC->unkE0 = a1; + sUnknown_203B2AC->unkE4 = &sUnknown_203B2AC->unkE8[a1]; + sub_8006518(sUnknown_203B2AC->unkE8); + sUnknown_203B2AC->unkE8[sUnknown_203B2AC->unkE0] = sUnknown_80DC9C8; + sUnknown_203B2AC->unkE4->unk14 = sUnknown_203B2AC->unk148; + sUnknown_203B2AC->unk148[2] = 10; + sub_8024604(); + sub_802452C(); + sub_8013984(&sUnknown_203B2AC->input); + return TRUE; +} + +u32 sub_80244E4(void) +{ + switch (GetKeyPress(&sUnknown_203B2AC->input)) { + case INPUT_B_BUTTON: + PlayMenuSoundEffect(1); + return 2; + case INPUT_A_BUTTON: + PlayMenuSoundEffect(0); + return 3; + default: + if (sub_8013938(&sUnknown_203B2AC->input)) { + sub_802452C(); + return 1; + } + return 0; + } +} + +void sub_802452C(void) +{ + sub_8024588(); + sub_80245D0(); +} + +void sub_802453C(void) +{ + if (sUnknown_203B2AC != NULL) { + sUnknown_203B2AC->unkE8[sUnknown_203B2AC->unkE0] = sUnknown_80DC9B0; + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B2AC->unkE8, TRUE, TRUE); + MemoryFree(sUnknown_203B2AC); + sUnknown_203B2AC = NULL; + } +} + +static void sub_8024588(void) +{ + sUnknown_203B2AC->unk148[0] = sUnknown_203B2AC->input.unk20; + sUnknown_203B2AC->unk148[1] = sUnknown_203B2AC->input.unk1E; + sUnknown_203B2AC->unk148[3] = 0; + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B2AC->unkE8, TRUE, TRUE); +} + +static void sub_80245D0(void) +{ + CreatePokemonInfoTabScreen(sUnknown_203B2AC->unk34[sUnknown_203B2AC->input.unk1E], sUnknown_203B2AC->input.unk1E, &sUnknown_203B2AC->unk4C, &sUnknown_203B2AC->unkB0, sUnknown_203B2AC->unkE0); +} + +static void sub_8024604(void) +{ + PokemonStruct1 *pokeStruct; + u32 *iVar3; + + sUnknown_203B2AC->unk34[0] = 2; + sUnknown_203B2AC->unk34[1] = 3; + sUnknown_203B2AC->unk34[2] = 5; + + sub_8013818(&sUnknown_203B2AC->input, 3, 1, sUnknown_203B2AC->unkE0); + iVar3 = &sUnknown_203B2AC->unk4C; + pokeStruct = &gRecruitedPokemonRef->pokemon[sUnknown_203B2AC->speciesNum]; + sub_808FF20(iVar3, pokeStruct, sub_80023E4(7)); +} \ No newline at end of file diff --git a/src/data/code_8023868.h b/src/data/code_8023868.h new file mode 100644 index 000000000..0b23b586f --- /dev/null +++ b/src/data/code_8023868.h @@ -0,0 +1,29 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +//static // MAKE STATIC WHEN code_8023868.s IS DONE +const UnkTextStruct2 sUnknown_80DC950 = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; +//static // MAKE STATIC WHEN code_8023868.s IS DONE +const UnkTextStruct2 sUnknown_80DC968 = { + 0, 0, 0, 0, + 6, + 2, 2, + 15, 14, + 14, 0, + NULL +}; + +ALIGNED(4) //static // MAKE STATIC WHEN code_8023868.s IS DONE +const u8 sUnknown_80DC980[] = _("Friends"); +ALIGNED(4) //static // MAKE STATIC WHEN code_8023868.s IS DONE +const u8 sUnknown_80DC988[] = _("Pokémon Friends"); +ALIGNED(4) //static // MAKE STATIC WHEN code_8023868.s IS DONE +const u8 sUnknown_80DC998[] = _("{COLOR_2}%c%s{END_COLOR_TEXT_2}"); +ALIGNED(4) //static // MAKE STATIC WHEN code_8023868.s IS DONE +const u8 sUnknown_80DC9A4[] = _("%s"); \ No newline at end of file diff --git a/src/data/code_8024458.h b/src/data/code_8024458.h new file mode 100644 index 000000000..0686a44a6 --- /dev/null +++ b/src/data/code_8024458.h @@ -0,0 +1,19 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 sUnknown_80DC9B0 = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; + +static const UnkTextStruct2 sUnknown_80DC9C8 = { + 0, 0, 0, 0, + 6, + 2, 2, + 18, 14, + 18, 2, + NULL +}; \ No newline at end of file diff --git a/src/data/wigglytuff_shop1.h b/src/data/wigglytuff_shop1.h index fbeacc694..baa530295 100644 --- a/src/data/wigglytuff_shop1.h +++ b/src/data/wigglytuff_shop1.h @@ -1,6 +1,6 @@ ALIGNED(4) static const u8 sFill[] = _("pksdir0"); -static const UnkTextStruct2 gUnknown_80DC464 = { +static const UnkTextStruct2 sUnknown_80DC464 = { 0, 0, 0, 0, 3, 0, 0, @@ -9,7 +9,7 @@ static const UnkTextStruct2 gUnknown_80DC464 = { NULL }; -static const UnkTextStruct2 gUnknown_80DC47C = { +static const UnkTextStruct2 sUnknown_80DC47C = { 0, 0, 0, 0, 6, 2, 2, @@ -18,6 +18,6 @@ static const UnkTextStruct2 gUnknown_80DC47C = { NULL }; -ALIGNED(4) static const u8 gUnknown_80DC494[] = _("Friend Areas"); -ALIGNED(4) static const u8 gUnknown_80DC4A4[] = _("{COLOR_1 RED}%s{END_COLOR_TEXT_1}"); -ALIGNED(4) static const u8 gUnknown_80DC4AC[] = _("{COLOR_1 GREEN}%s{END_COLOR_TEXT_1}"); \ No newline at end of file +ALIGNED(4) static const u8 sFriendAreas[] = _("Friend Areas"); +ALIGNED(4) static const u8 sFmtRedString[] = _("{COLOR_1 RED}%s{END_COLOR_TEXT_1}"); +ALIGNED(4) static const u8 sFmtGreenString[] = _("{COLOR_1 GREEN}%s{END_COLOR_TEXT_1}"); \ No newline at end of file diff --git a/src/data/wigglytuff_shop2.h b/src/data/wigglytuff_shop2.h index 20870f335..c686529ac 100644 --- a/src/data/wigglytuff_shop2.h +++ b/src/data/wigglytuff_shop2.h @@ -1,6 +1,6 @@ ALIGNED(4) static const u8 sFill[] = _("pksdir0"); -static const UnkTextStruct2 gUnknown_80DC4BC = { +static const UnkTextStruct2 sUnknown_80DC4BC = { 0, 0, 0, 0, 3, 0, 0, @@ -10,7 +10,7 @@ static const UnkTextStruct2 gUnknown_80DC4BC = { }; static const u8 sUnknown_80DC4D4[] = {1, 0, 18, 0}; -static const UnkTextStruct2 gUnknown_80DC4D8 = { +static const UnkTextStruct2 sUnknown_80DC4D8 = { 0, 0, 0, 0, 6, 2, 2, @@ -19,6 +19,6 @@ static const UnkTextStruct2 gUnknown_80DC4D8 = { sUnknown_80DC4D4 }; -ALIGNED(4) static const u8 gUnknown_80DC4F0[] = _("Inhabitants (Friends: {COLOR_2 CYAN}Light blue{END_COLOR_TEXT_2})"); -ALIGNED(4) static const u8 gUnknown_80DC518[] = _("Inhabitants"); -ALIGNED(4) static const u8 gUnknown_80DC524[] = _("{COLOR_2 CYAN}%s{END_COLOR_TEXT_2}"); \ No newline at end of file +ALIGNED(4) static const u8 sUnknown_80DC4F0[] = _("Inhabitants (Friends: {COLOR_2 CYAN}Light blue{END_COLOR_TEXT_2})"); +ALIGNED(4) static const u8 sInhabitants[] = _("Inhabitants"); +ALIGNED(4) static const u8 sFmtCyanString[] = _("{COLOR_2 CYAN}%s{END_COLOR_TEXT_2}"); \ No newline at end of file diff --git a/src/data/wigglytuff_shop3.h b/src/data/wigglytuff_shop3.h index f94e1e678..be6359c7c 100644 --- a/src/data/wigglytuff_shop3.h +++ b/src/data/wigglytuff_shop3.h @@ -1,6 +1,6 @@ ALIGNED(4) static const u8 sFill[] = _("pksdir0"); -static const UnkTextStruct2 gUnknown_80DC534 = { +static const UnkTextStruct2 sUnknown_80DC534 = { 0, 0, 0, 0, 3, 0, 0, @@ -9,7 +9,7 @@ static const UnkTextStruct2 gUnknown_80DC534 = { NULL }; -static const UnkTextStruct2 gUnknown_80DC54C = { +static const UnkTextStruct2 sUnknown_80DC54C = { 0, 0, 0, 0, 3, 21, 4, @@ -18,7 +18,7 @@ static const UnkTextStruct2 gUnknown_80DC54C = { NULL }; -static const UnkTextStruct2 gUnknown_80DC564 = { +static const UnkTextStruct2 sUnknown_80DC564 = { 0, 0, 0, 0, 3, 21, 14, diff --git a/src/debug_menu4.c b/src/debug_menu4.c index 7903afb95..26813102f 100644 --- a/src/debug_menu4.c +++ b/src/debug_menu4.c @@ -1,7 +1,7 @@ #include "global.h" #include "code_8012A18_1.h" #include "code_80130A8.h" -#include "code_801EE10_1.h" +#include "code_8023868.h" #include "debug_menu4.h" #include "memory.h" #include "menu_input.h" diff --git a/src/friend_area_action_menu.c b/src/friend_area_action_menu.c index fffc40810..e04df070f 100644 --- a/src/friend_area_action_menu.c +++ b/src/friend_area_action_menu.c @@ -3,8 +3,9 @@ #include "code_801B3C0.h" #include "code_801BEEC.h" #include "code_801EE10.h" -#include "code_801EE10_1.h" #include "code_801EE10_mid.h" +#include "code_8023868.h" +#include "code_8024458.h" #include "code_8098BDC.h" #include "common_strings.h" #include "constants/dungeon.h" diff --git a/src/friend_list_menu.c b/src/friend_list_menu.c index 56e144f5a..6a3a37a68 100644 --- a/src/friend_list_menu.c +++ b/src/friend_list_menu.c @@ -5,8 +5,9 @@ #include "code_801B3C0.h" #include "code_801BEEC.h" #include "code_801EE10.h" -#include "code_801EE10_1.h" #include "code_801EE10_mid.h" +#include "code_8023868.h" +#include "code_8024458.h" #include "code_8098BDC.h" #include "common_strings.h" #include "constants/dungeon.h" diff --git a/src/friend_rescue.c b/src/friend_rescue.c index 08793e2ad..1b81310e4 100644 --- a/src/friend_rescue.c +++ b/src/friend_rescue.c @@ -2,8 +2,9 @@ #include "code_80118A4.h" #include "code_80130A8.h" #include "code_801B3C0.h" -#include "code_801EE10_1.h" #include "code_801C8C4.h" +#include "code_8023868.h" +#include "code_8024458.h" #include "code_8094F88.h" #include "constants/communication_error_codes.h" #include "constants/monster.h" @@ -266,7 +267,6 @@ extern u8 sub_80307EC(void); extern u32 sub_8031DCC(void); extern void sub_8031E10(void); extern void sub_8031E00(void); -extern void sub_802452C(void); extern u32 sub_8039068(u32, u8 *passwordBuffer, unkStruct_203B480 *r0); extern void sub_803084C(void); diff --git a/src/gulpin_shop_801FB50.c b/src/gulpin_shop_801FB50.c index 3e242ce69..a65f57859 100644 --- a/src/gulpin_shop_801FB50.c +++ b/src/gulpin_shop_801FB50.c @@ -3,8 +3,9 @@ #include "code_80130A8.h" #include "code_801BEEC.h" #include "code_801EE10.h" -#include "code_801EE10_1.h" #include "code_801EE10_mid.h" +#include "code_8023868.h" +#include "code_8024458.h" #include "common_strings.h" #include "felicity_bank.h" #include "gulpin_shop.h" diff --git a/src/party_list_menu.c b/src/party_list_menu.c index 9b6eee69c..c4bc5f50f 100644 --- a/src/party_list_menu.c +++ b/src/party_list_menu.c @@ -5,9 +5,9 @@ #include "code_801B3C0.h" #include "code_801BEEC.h" #include "code_801EE10.h" -#include "code_801EE10_1.h" #include "code_801EE10_mid.h" #include "code_8023144.h" +#include "code_8024458.h" #include "code_8098BDC.h" #include "common_strings.h" #include "constants/dungeon.h" diff --git a/src/pokemon_mid.c b/src/pokemon_mid.c index 49dc259ce..d108fe999 100644 --- a/src/pokemon_mid.c +++ b/src/pokemon_mid.c @@ -207,7 +207,8 @@ bool8 IsPokemonRenamed(PokemonStruct1* pokemon) { return TRUE; } -bool8 ComparePokemonNames(s16 a1, s16 a2) { +bool8 ComparePokemonNames(s16 a1, s16 a2) +{ s32 index1 = a1; s32 index2 = a2; u8* name1 = gRecruitedPokemonRef->pokemon[index1].name; diff --git a/src/wigglytuff_shop1.c b/src/wigglytuff_shop1.c index fa37d1c35..3122cb8bc 100644 --- a/src/wigglytuff_shop1.c +++ b/src/wigglytuff_shop1.c @@ -31,7 +31,7 @@ bool8 sub_80211AC(u32 mode, u32 a1) sWigglytuffShop1Work->unk74 = a1; sWigglytuffShop1Work->unk78 = &sWigglytuffShop1Work->unk7C[sWigglytuffShop1Work->unk74]; sub_8006518(sWigglytuffShop1Work->unk7C); - sWigglytuffShop1Work->unk7C[sWigglytuffShop1Work->unk74] = gUnknown_80DC47C; + sWigglytuffShop1Work->unk7C[sWigglytuffShop1Work->unk74] = sUnknown_80DC47C; sWigglytuffShop1Work->unk78->unk14 = sWigglytuffShop1Work->unkDC; ResetUnusedInputStruct(); sub_800641C(sWigglytuffShop1Work->unk7C, TRUE, TRUE); @@ -102,7 +102,7 @@ void sub_80213A0(void) sUnknown_203B284 = sWigglytuffShop1Work->mode; sUnknown_203B288 = sWigglytuffShop1Work->unk40.menuIndex; sUnknown_203B28A = sWigglytuffShop1Work->unk40.unk1E; - sWigglytuffShop1Work->unk7C[sWigglytuffShop1Work->unk74] = gUnknown_80DC464; + sWigglytuffShop1Work->unk7C[sWigglytuffShop1Work->unk74] = sUnknown_80DC464; ResetUnusedInputStruct(); sub_800641C(sWigglytuffShop1Work->unk7C, TRUE, TRUE); MemoryFree(sWigglytuffShop1Work); @@ -185,7 +185,7 @@ void sub_8021494(void) sub_8008C54(sWigglytuffShop1Work->unk74); sub_80073B8(sWigglytuffShop1Work->unk74); - xxx_call_draw_string(10, 0, gUnknown_80DC494, sWigglytuffShop1Work->unk74, 0); + xxx_call_draw_string(10, 0, sFriendAreas, sWigglytuffShop1Work->unk74, 0); sub_8012BC4((sWigglytuffShop1Work->unkDC[2] * 8) + 4, 0, sWigglytuffShop1Work->unk40.unk1E + 1, 1, 7, sWigglytuffShop1Work->unk74); @@ -198,7 +198,7 @@ void sub_8021494(void) if (GetFriendAreaPrice(friendAreaIndex) <= gTeamInventoryRef->teamMoney) xxx_call_draw_string(8,sub_8013800(&sWigglytuffShop1Work->unk40, i), buffer1, sWigglytuffShop1Work->unk74, 0); else { - sprintfStatic(buffer2, gUnknown_80DC4A4, buffer1); + sprintfStatic(buffer2, sFmtRedString, buffer1); xxx_call_draw_string(8, sub_8013800(&sWigglytuffShop1Work->unk40, i), buffer2, sWigglytuffShop1Work->unk74, 0); } } @@ -206,7 +206,7 @@ void sub_8021494(void) if (gFriendAreas[friendAreaIndex] == TRUE) xxx_call_draw_string(8, sub_8013800(&sWigglytuffShop1Work->unk40, i), GetFriendAreaName(friendAreaIndex), sWigglytuffShop1Work->unk74, 0); else { - sprintfStatic(buffer2, gUnknown_80DC4AC, GetFriendAreaName(friendAreaIndex)); + sprintfStatic(buffer2, sFmtGreenString, GetFriendAreaName(friendAreaIndex)); xxx_call_draw_string(8, sub_8013800(&sWigglytuffShop1Work->unk40, i), buffer2, sWigglytuffShop1Work->unk74, 0); } } diff --git a/src/wigglytuff_shop2.c b/src/wigglytuff_shop2.c index e3531601f..473a5ae23 100644 --- a/src/wigglytuff_shop2.c +++ b/src/wigglytuff_shop2.c @@ -32,7 +32,7 @@ bool8 sub_8021774(u8 friendArea, bool8 a1, s32 a2) sWigglytuffShop2Work->unk74 = a2; sWigglytuffShop2Work->unk78 = &sWigglytuffShop2Work->unk7C[a2]; sub_8006518(sWigglytuffShop2Work->unk7C); - sWigglytuffShop2Work->unk7C[sWigglytuffShop2Work->unk74] = gUnknown_80DC4D8; + sWigglytuffShop2Work->unk7C[sWigglytuffShop2Work->unk74] = sUnknown_80DC4D8; sub_8021820(); return TRUE; } @@ -60,7 +60,7 @@ static void sub_8021820(void) void sub_8021830(void) { if (sWigglytuffShop2Work) { - sWigglytuffShop2Work->unk7C[sWigglytuffShop2Work->unk74] = gUnknown_80DC4BC; + sWigglytuffShop2Work->unk7C[sWigglytuffShop2Work->unk74] = sUnknown_80DC4BC; ResetUnusedInputStruct(); sub_800641C(sWigglytuffShop2Work->unk7C, TRUE, TRUE); MemoryFree(sWigglytuffShop2Work); @@ -91,9 +91,9 @@ static void sub_8021894(void) xxx_call_draw_string(10, 20, string, sWigglytuffShop2Work->unk74, 0); if (sWigglytuffShop2Work->unkD != 0) - xxx_call_draw_string(32, 60, gUnknown_80DC4F0, sWigglytuffShop2Work->unk74, 0); + xxx_call_draw_string(32, 60, sUnknown_80DC4F0, sWigglytuffShop2Work->unk74, 0); else - xxx_call_draw_string(32, 60, gUnknown_80DC518, sWigglytuffShop2Work->unk74, 0); + xxx_call_draw_string(32, 60, sInhabitants, sWigglytuffShop2Work->unk74, 0); sub_800792C(sWigglytuffShop2Work->unk74, 4, 64, 20, 4); @@ -119,7 +119,7 @@ static void sub_8021894(void) xxx_call_draw_string(x, y, buffer2, sWigglytuffShop2Work->unk74, 0); break; case 2: - sprintfStatic(buffer1, gUnknown_80DC524, buffer2); + sprintfStatic(buffer1, sFmtCyanString, buffer2); xxx_call_draw_string(x, y, buffer1, sWigglytuffShop2Work->unk74, 0); break; } diff --git a/src/wigglytuff_shop3.c b/src/wigglytuff_shop3.c index 047104134..a98776ae2 100644 --- a/src/wigglytuff_shop3.c +++ b/src/wigglytuff_shop3.c @@ -141,16 +141,16 @@ static void sub_8021D5C(void) switch (sWigglytuffShop3Work->state) { case WIGGLYTUFF_UNK9: case WIGGLYTUFF_UNKA: - sWigglytuffShop3Work->unkD0[0] = gUnknown_80DC534; - sWigglytuffShop3Work->unkD0[2] = gUnknown_80DC534; - sWigglytuffShop3Work->unkD0[1] = gUnknown_80DC564; + sWigglytuffShop3Work->unkD0[0] = sUnknown_80DC534; + sWigglytuffShop3Work->unkD0[2] = sUnknown_80DC534; + sWigglytuffShop3Work->unkD0[1] = sUnknown_80DC564; break; case WIGGLYTUFF_UNKB: - sWigglytuffShop3Work->unkD0[2] = gUnknown_80DC54C; + sWigglytuffShop3Work->unkD0[2] = sUnknown_80DC54C; break; default: for (i = 0; i < 4; i++) - sWigglytuffShop3Work->unkD0[i] = gUnknown_80DC534; + sWigglytuffShop3Work->unkD0[i] = sUnknown_80DC534; break; } diff --git a/src/wonder_mail.c b/src/wonder_mail.c index c2365a6c0..56b882987 100644 --- a/src/wonder_mail.c +++ b/src/wonder_mail.c @@ -1,7 +1,8 @@ #include "global.h" #include "code_80118A4.h" -#include "code_801EE10_1.h" #include "code_80130A8.h" +#include "code_8023868.h" +#include "code_8024458.h" #include "code_8094F88.h" #include "code_80A26CC.h" #include "constants/communication_error_codes.h" @@ -46,7 +47,6 @@ extern u32 sub_80154F0(); extern u32 sub_8039068(u32, u8 *r1, unkStruct_203B480 *r0); extern void sub_8095274(u32); extern void sub_80155F0(); -extern void sub_802452C(); extern u32 sub_8031DCC(); extern void sub_8031E10(); extern void sub_8031E00(); diff --git a/sym_ewram2.txt b/sym_ewram2.txt index deb468df4..cb615395a 100644 --- a/sym_ewram2.txt +++ b/sym_ewram2.txt @@ -207,9 +207,7 @@ gUnknown_203B2A8: /* 203B2A8 (sub_8023868 - sub_8023C60) */ gUnknown_203B2AA: /* 203B2AA (sub_8023868 - sub_8023C60) */ .space 0x2 -gUnknown_203B2AC: /* 203B2AC (sub_8024458 - sub_8024604) */ - .space 0x4 - +.include "src/code_8024458.o" .include "src/luminous_cave.o" .include "src/friend_list_menu.o" .include "src/party_list_menu.o" diff --git a/sym_iwram.txt b/sym_iwram.txt index 9abe20dbc..39a8e9b31 100644 --- a/sym_iwram.txt +++ b/sym_iwram.txt @@ -29,8 +29,7 @@ gUnknown_3001B5A: /* 3001B5A */ gUnknown_3001B5C: /* 3001B5C */ .space 0x4 -gUnknown_3001B60: /* 3001B60 */ - .space 0x4 +.include "src/code_8023868.o" gUnknown_3001B64: /* 3001B64 */ .space 0x4 From fdcef19d85b5e2e66662beef13296712df523aac Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Wed, 20 Sep 2023 22:26:35 -0400 Subject: [PATCH 27/47] Split+data code_8023144/code_80227B8 --- asm/code_801EE10_1.s | 154 ---- asm/code_8023144.s | 382 -------- data/data_80DC464.s | 188 ---- include/adventure_log.h | 2 +- include/charge_move.h | 2 +- include/code_80130A8.h | 2 +- include/code_801B3C0.h | 4 +- include/code_801B60C.h | 2 +- include/code_801BEEC.h | 2 +- include/code_801C244.h | 2 +- include/code_801C620.h | 4 +- include/code_801C8C4.h | 2 +- include/code_801D014.h | 2 +- include/code_801D9E4.h | 2 +- include/code_801EE10.h | 2 +- include/code_80227B8.h | 36 + include/code_8023144.h | 38 +- include/code_8024458.h | 2 +- include/code_80521D0.h | 2 +- include/code_806CD90.h | 2 +- include/code_80869E4.h | 2 +- include/code_8094F88.h | 2 +- include/code_8097670.h | 2 +- include/code_8097DD0.h | 2 +- include/constants/input.h | 7 +- include/constants/item.h | 2 + include/constants/mailbox.h | 4 +- include/constants/monster.h | 2 +- include/constants/move.h | 36 - include/credits1.h | 2 +- include/debug_menu1.h | 2 +- include/debug_menu2.h | 2 +- include/debug_menu3.h | 2 +- include/debug_menu4.h | 2 +- include/dungeon.h | 2 +- include/dungeon_action.h | 2 +- include/dungeon_ai.h | 2 +- include/dungeon_ai_attack.h | 2 +- include/dungeon_ai_item_weight.h | 2 +- include/dungeon_ai_items.h | 4 +- include/dungeon_ai_leader.h | 2 +- include/dungeon_ai_movement.h | 2 +- include/dungeon_ai_targeting.h | 2 +- include/dungeon_capabilities.h | 2 +- include/dungeon_items.h | 2 +- include/dungeon_leader.h | 2 +- include/dungeon_map_access.h | 2 +- include/dungeon_movement.h | 2 +- include/dungeon_pokemon_attributes.h | 2 +- include/dungeon_pokemon_sprites.h | 2 +- include/dungeon_range.h | 2 +- include/dungeon_util.h | 4 +- include/dungeon_util_1.h | 2 +- include/dungeon_visibility.h | 2 +- include/felicity_bank.h | 2 +- include/friend_area_action_menu.h | 2 +- include/gulpin_shop.h | 2 +- include/gulpin_shop_801FB50.h | 2 +- include/items.h | 87 +- include/kangaskhan_storage1.h | 2 +- include/kangaskhan_storage2.h | 2 +- include/kecleon_bros1.h | 2 +- include/kecleon_bros2.h | 2 +- include/kecleon_bros3.h | 2 +- include/kecleon_bros4.h | 2 +- include/luminous_cave.h | 2 +- include/mailbox.h | 2 +- include/main_menu1.h | 2 +- include/main_menu2.h | 2 +- include/makuhita_dojo1.h | 2 +- include/makuhita_dojo2.h | 2 +- include/menu.h | 2 +- include/menu_input.h | 2 +- include/move_util.h | 2 +- include/moves.h | 2 +- include/other_menus1.h | 2 +- include/party_list_menu.h | 2 +- include/personality_test.h | 2 +- include/pokemon.h | 163 +--- include/position_util.h | 2 +- include/post_office_guide2.h | 2 +- include/rescue_password_menu.h | 2 +- include/save.h | 11 +- include/sprite.h | 2 +- include/status.h | 2 +- include/status_actions.h | 2 +- include/status_checks.h | 2 +- include/status_checks_1.h | 2 +- include/{ => structs}/dungeon_entity.h | 6 +- include/{ => structs}/map.h | 4 +- .../str_dungeon.h} | 14 +- include/structs/str_items.h | 88 ++ include/structs/str_moves.h | 42 + include/structs/str_pokemon.h | 167 ++++ .../{position.h => structs/str_position.h} | 6 +- include/{text.h => structs/str_text.h} | 6 +- include/{ => structs}/subStruct_203B240.h | 8 +- include/targeting.h | 2 +- include/targeting_flags.h | 2 +- include/text1.h | 2 +- include/text2.h | 2 +- include/tile_types.h | 2 +- include/trade_items_menu.h | 2 +- include/trap.h | 2 +- include/type_effectiveness.h | 2 +- include/weather.h | 2 +- include/wigglytuff_shop1.h | 2 +- include/wigglytuff_shop2.h | 2 +- include/wigglytuff_shop3.h | 2 +- include/wonder_mail.h | 2 +- include/wonder_mail_2_1.h | 2 +- include/wonder_mail_3.h | 2 +- ld_script.txt | 7 +- src/code_801D014.c | 2 +- src/code_801EE10_mid.c | 8 +- src/code_80227B8.c | 852 ++++++++++++++++++ src/code_8023144.c | 702 +++++++-------- src/code_8023144_pre.c | 140 --- src/code_8023868.c | 2 +- src/code_8031D70.c | 2 +- src/code_8040094.c | 4 +- src/code_8041AD0.c | 30 +- src/code_80428A0.c | 4 +- src/code_8045A00.c | 4 +- src/code_8048480.c | 6 +- src/code_8057824.c | 6 +- src/code_8057824_1.c | 4 +- src/code_805A120.c | 4 +- src/code_805D8C8.c | 4 +- src/code_8069E0C.c | 4 +- src/code_806CD90.c | 2 +- src/code_806E8B0.c | 2 +- src/code_8073CF0.c | 2 +- src/code_8077274_1.c | 4 +- src/code_807CD9C.c | 2 +- src/code_807E5AC.c | 2 +- src/code_808417C.c | 2 +- src/code_80848F0.c | 2 +- src/code_80869E4.c | 2 +- src/code_8086A3C.c | 4 +- src/code_809447C.c | 2 +- src/code_80958E8.c | 4 +- src/data/code_80227B8.h | 90 ++ src/data/code_8023144.h | 23 + src/dungeon_action.c | 4 +- src/dungeon_ai.c | 4 +- src/dungeon_ai_attack.c | 2 +- src/dungeon_ai_items.c | 6 +- src/dungeon_ai_movement.c | 4 +- src/dungeon_ai_targeting.c | 4 +- src/dungeon_capabilities.c | 2 +- src/dungeon_engine.c | 4 +- src/dungeon_items.c | 2 +- src/dungeon_leader.c | 2 +- src/dungeon_map_access.c | 2 +- src/dungeon_map_access_1.c | 2 +- src/dungeon_movement.c | 4 +- src/dungeon_music.c | 2 +- src/dungeon_pokemon_attributes.c | 2 +- src/dungeon_range.c | 4 +- src/dungeon_util.c | 2 +- src/dungeon_util_1.c | 2 +- src/exclusive_pokemon.c | 4 +- src/items.c | 2 +- src/move_checks.c | 2 +- src/move_effects_target.c | 4 +- src/move_util.c | 2 +- src/other_menus1.c | 2 +- src/other_menus2.c | 2 +- src/party_list_menu.c | 3 +- src/pokemon_3.c | 6 +- src/pokemon_mid.c | 2 +- src/rescue_password_menu.c | 2 +- src/status.c | 4 +- src/status_actions.c | 4 +- src/status_checks_1.c | 2 +- src/tile_types.c | 2 +- src/trap.c | 2 +- src/type_effectiveness.c | 2 +- src/weather.c | 2 +- src/wigglytuff_shop2.c | 4 +- src/wigglytuff_shop3.c | 4 +- sym_ewram2.txt | 14 +- sym_iwram.txt | 4 +- 184 files changed, 1862 insertions(+), 1834 deletions(-) delete mode 100644 asm/code_801EE10_1.s delete mode 100644 asm/code_8023144.s delete mode 100644 data/data_80DC464.s create mode 100644 include/code_80227B8.h rename include/{ => structs}/dungeon_entity.h (99%) rename include/{ => structs}/map.h (95%) rename include/{dungeon_global_data.h => structs/str_dungeon.h} (97%) create mode 100644 include/structs/str_items.h create mode 100644 include/structs/str_moves.h create mode 100644 include/structs/str_pokemon.h rename include/{position.h => structs/str_position.h} (68%) rename include/{text.h => structs/str_text.h} (94%) rename include/{ => structs}/subStruct_203B240.h (55%) create mode 100644 src/code_80227B8.c delete mode 100644 src/code_8023144_pre.c create mode 100644 src/data/code_80227B8.h create mode 100644 src/data/code_8023144.h diff --git a/asm/code_801EE10_1.s b/asm/code_801EE10_1.s deleted file mode 100644 index 7d5c77ecd..000000000 --- a/asm/code_801EE10_1.s +++ /dev/null @@ -1,154 +0,0 @@ - #include "asm/constants/gba_constants.inc" - #include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_8023758 -sub_8023758: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - ldr r3, _080237DC - ldr r2, [r3] - ldr r1, [r2, 0x8] - lsls r0, r1, 1 - adds r0, 0xA - adds r2, r0 - mov r9, r2 - movs r2, 0 - subs r1, 0x1 - cmp r2, r1 - bge _080237CC -_08023778: - mov r5, r9 - ldr r0, [r3] - ldr r0, [r0, 0x8] - subs r7, r0, 0x1 - adds r0, r2, 0x1 - mov r8, r0 - cmp r7, r2 - ble _080237BE -_08023788: - subs r6, r5, 0x2 - movs r1, 0 - ldrsh r0, [r6, r1] - movs r1, 0x1 - str r2, [sp] - bl GetAlphabetParentNo - adds r4, r0, 0 - movs r1, 0 - ldrsh r0, [r5, r1] - movs r1, 0x1 - bl GetAlphabetParentNo - lsls r4, 16 - lsls r0, 16 - ldr r2, [sp] - cmp r4, r0 - ble _080237B6 - movs r0, 0 - ldrsh r1, [r5, r0] - ldrh r0, [r6] - strh r0, [r5] - strh r1, [r6] -_080237B6: - adds r5, r6, 0 - subs r7, 0x1 - cmp r7, r2 - bgt _08023788 -_080237BE: - mov r2, r8 - ldr r3, _080237DC - ldr r0, [r3] - ldr r0, [r0, 0x8] - subs r0, 0x1 - cmp r2, r0 - blt _08023778 -_080237CC: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080237DC: .4byte gUnknown_3001B5C - thumb_func_end sub_8023758 - - thumb_func_start sub_80237E0 -sub_80237E0: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - ldr r3, _08023864 - ldr r2, [r3] - ldr r1, [r2, 0x8] - lsls r0, r1, 1 - adds r0, 0xA - adds r2, r0 - mov r9, r2 - movs r2, 0 - subs r1, 0x1 - cmp r2, r1 - bge _08023854 -_08023800: - mov r5, r9 - ldr r0, [r3] - ldr r0, [r0, 0x8] - subs r7, r0, 0x1 - adds r0, r2, 0x1 - mov r8, r0 - cmp r7, r2 - ble _08023846 -_08023810: - subs r6, r5, 0x2 - movs r1, 0 - ldrsh r0, [r6, r1] - movs r1, 0 - str r2, [sp] - bl GetAlphabetParentNo - adds r4, r0, 0 - movs r1, 0 - ldrsh r0, [r5, r1] - movs r1, 0 - bl GetAlphabetParentNo - lsls r4, 16 - lsls r0, 16 - ldr r2, [sp] - cmp r4, r0 - ble _0802383E - movs r0, 0 - ldrsh r1, [r5, r0] - ldrh r0, [r6] - strh r0, [r5] - strh r1, [r6] -_0802383E: - adds r5, r6, 0 - subs r7, 0x1 - cmp r7, r2 - bgt _08023810 -_08023846: - mov r2, r8 - ldr r3, _08023864 - ldr r0, [r3] - ldr r0, [r0, 0x8] - subs r0, 0x1 - cmp r2, r0 - blt _08023800 -_08023854: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08023864: .4byte gUnknown_3001B5C - thumb_func_end sub_80237E0 \ No newline at end of file diff --git a/asm/code_8023144.s b/asm/code_8023144.s deleted file mode 100644 index 04ae5a9fd..000000000 --- a/asm/code_8023144.s +++ /dev/null @@ -1,382 +0,0 @@ - #include "asm/constants/gba_constants.inc" - #include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_8022A10 -sub_8022A10: - push {r4-r7,lr} - sub sp, 0x8 - ldr r1, _08022A2C - ldr r0, [r1] - ldr r0, [r0] - adds r4, r1, 0 - cmp r0, 0x16 - bls _08022A22 - b _08022D1E -_08022A22: - lsls r0, 2 - ldr r1, _08022A30 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08022A2C: .4byte gUnknown_203B294 -_08022A30: .4byte _08022A34 - .align 2, 0 -_08022A34: - .4byte _08022A90 - .4byte _08022AAA - .4byte _08022AB2 - .4byte _08022AE0 - .4byte _08022B10 - .4byte _08022B1A - .4byte _08022B24 - .4byte _08022B34 - .4byte _08022B44 - .4byte _08022B54 - .4byte _08022B64 - .4byte _08022C28 - .4byte _08022CA0 - .4byte _08022CA8 - .4byte _08022CB0 - .4byte _08022CB8 - .4byte _08022CC0 - .4byte _08022CC8 - .4byte _08022CD8 - .4byte _08022CE8 - .4byte _08022CF8 - .4byte _08022D14 - .4byte _08022D1E -_08022A90: - ldr r0, [r4] - ldr r0, [r0, 0x48] - cmp r0, 0 - beq _08022A9C - movs r0, 0x5 - b _08022A9E -_08022A9C: - movs r0, 0x1 -_08022A9E: - movs r1, 0x3 - movs r2, 0 - movs r3, 0xA - bl sub_801A5D8 - b _08022D22 -_08022AAA: - movs r0, 0x1 - bl sub_801A8D0 - b _08022D22 -_08022AB2: - bl sub_801A9E0 - ldr r0, _08022ADC - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x54 - adds r1, r2, 0 - adds r1, 0xF8 - movs r4, 0x9C - lsls r4, 1 - adds r3, r2, r4 - adds r2, 0xF4 - ldr r2, [r2] - str r2, [sp] - movs r2, 0x2 - str r2, [sp, 0x4] - movs r2, 0 - bl sub_8012D60 - b _08022D22 - .align 2, 0 -_08022ADC: .4byte gUnknown_203B294 -_08022AE0: - bl sub_801A9E0 - ldr r4, _08022B08 - ldr r0, [r4] - adds r0, 0x54 - movs r1, 0 - bl sub_8012EA4 - ldr r0, [r4] - adds r0, 0xA4 - ldr r1, _08022B0C - movs r2, 0x3 - str r2, [sp] - movs r2, 0x1 - str r2, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_8012D60 - b _08022D22 - .align 2, 0 -_08022B08: .4byte gUnknown_203B294 -_08022B0C: .4byte gUnknown_80DC584 -_08022B10: - ldr r0, [r4] - adds r0, 0x50 - bl sub_801B3C0 - b _08022D22 -_08022B1A: - ldr r0, _08022B20 - b _08022D00 - .align 2, 0 -_08022B20: .4byte gUnknown_80DC5F4 -_08022B24: - ldr r0, _08022B2C - ldr r3, _08022B30 - b _08022D02 - .align 2, 0 -_08022B2C: .4byte gUnknown_80DC618 -_08022B30: .4byte 0x00000101 -_08022B34: - ldr r0, _08022B3C - ldr r3, _08022B40 - b _08022D02 - .align 2, 0 -_08022B3C: .4byte gUnknown_80DC674 -_08022B40: .4byte 0x00000101 -_08022B44: - ldr r0, _08022B4C - ldr r3, _08022B50 - b _08022D02 - .align 2, 0 -_08022B4C: .4byte gUnknown_80DC6CC -_08022B50: .4byte 0x00000101 -_08022B54: - ldr r0, _08022B5C - ldr r3, _08022B60 - b _08022D02 - .align 2, 0 -_08022B5C: .4byte gUnknown_80DC728 -_08022B60: .4byte 0x00000101 -_08022B64: - ldr r7, _08022B68 - b _08022B78 - .align 2, 0 -_08022B68: .4byte gUnknown_203B294 -_08022B6C: - ldr r1, [r4] - ldr r0, [r1, 0x40] - adds r0, 0x1 - str r0, [r1, 0x40] - cmp r0, 0x17 - bgt _08022C10 -_08022B78: - movs r5, 0 - movs r6, 0 - movs r3, 0 - ldr r2, [r4] - ldr r0, [r2, 0x38] - cmp r5, r0 - bge _08022BA4 - ldrb r1, [r2, 0x8] - b _08022B9C -_08022B8A: - adds r3, 0x1 - ldr r2, [r4] - ldr r0, [r2, 0x38] - cmp r3, r0 - bge _08022BA4 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r3 - ldrb r1, [r0] -_08022B9C: - ldr r0, [r2, 0x40] - cmp r1, r0 - bne _08022B8A - movs r5, 0x1 -_08022BA4: - movs r3, 0 - ldr r2, [r4] - ldr r0, [r2, 0x3C] - cmp r3, r0 - bge _08022BCE - adds r0, r2, 0 - adds r0, 0x20 - b _08022BC4 -_08022BB4: - adds r3, 0x1 - ldr r2, [r4] - ldr r0, [r2, 0x3C] - cmp r3, r0 - bge _08022BCE - adds r0, r2, 0 - adds r0, 0x20 - adds r0, r3 -_08022BC4: - ldrb r1, [r0] - ldr r0, [r2, 0x40] - cmp r1, r0 - bne _08022BB4 - movs r6, 0x1 -_08022BCE: - cmp r5, r6 - beq _08022B6C - ldr r1, [r7] - movs r0, 0xA - str r0, [r1, 0x4] - ldr r0, [r1, 0x40] - lsls r0, 24 - lsrs r0, 24 - bl GetIQSkillName - adds r1, r0, 0 - ldr r0, _08022C18 - bl strcpy - movs r0, 0xCB - bl PlaySound - ldr r0, _08022C1C - movs r1, 0 - movs r2, 0 - ldr r3, _08022C20 - bl sub_80141B4 - ldr r1, [r7] - ldr r0, [r1, 0x40] - adds r0, 0x1 - str r0, [r1, 0x40] - ldr r0, _08022C24 - ldr r0, [r0] - ldr r0, [r0, 0x40] - cmp r0, 0x17 - bgt _08022C10 - b _08022D22 -_08022C10: - movs r0, 0xB - bl sub_8022924 - b _08022D22 - .align 2, 0 -_08022C18: .4byte gUnknown_202DEA8 -_08022C1C: .4byte gUnknown_80DC788 -_08022C20: .4byte 0x00000101 -_08022C24: .4byte gUnknown_203B294 -_08022C28: - ldr r1, [r4] - movs r0, 0x16 - str r0, [r1, 0x4] - bl nullsub_104 - ldr r0, [r4] - adds r0, 0x46 - ldrh r0, [r0] - cmp r0, 0x8 - bhi _08022C98 - lsls r0, 2 - ldr r1, _08022C48 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08022C48: .4byte _08022C4C - .align 2, 0 -_08022C4C: - .4byte _08022C70 - .4byte _08022C78 - .4byte _08022C80 - .4byte _08022C98 - .4byte _08022C88 - .4byte _08022C98 - .4byte _08022C98 - .4byte _08022C98 - .4byte _08022C90 -_08022C70: - movs r0, 0x16 - bl sub_8022924 - b _08022D22 -_08022C78: - movs r0, 0xD - bl sub_8022924 - b _08022D22 -_08022C80: - movs r0, 0xE - bl sub_8022924 - b _08022D22 -_08022C88: - movs r0, 0xF - bl sub_8022924 - b _08022D22 -_08022C90: - movs r0, 0x10 - bl sub_8022924 - b _08022D22 -_08022C98: - movs r0, 0xC - bl sub_8022924 - b _08022D22 -_08022CA0: - ldr r0, _08022CA4 - b _08022D00 - .align 2, 0 -_08022CA4: .4byte gUnknown_80DC7B4 -_08022CA8: - ldr r0, _08022CAC - b _08022D00 - .align 2, 0 -_08022CAC: .4byte gUnknown_80DC7FC -_08022CB0: - ldr r0, _08022CB4 - b _08022D00 - .align 2, 0 -_08022CB4: .4byte gUnknown_80DC81C -_08022CB8: - ldr r0, _08022CBC - b _08022D00 - .align 2, 0 -_08022CBC: .4byte gUnknown_80DC844 -_08022CC0: - ldr r0, _08022CC4 - b _08022D00 - .align 2, 0 -_08022CC4: .4byte gUnknown_80DC864 -_08022CC8: - ldr r1, [r4] - movs r0, 0x16 - str r0, [r1, 0x4] - ldr r0, _08022CD4 - b _08022D00 - .align 2, 0 -_08022CD4: .4byte gUnknown_80DC88C -_08022CD8: - ldr r1, [r4] - movs r0, 0x16 - str r0, [r1, 0x4] - ldr r0, _08022CE4 - b _08022D00 - .align 2, 0 -_08022CE4: .4byte gUnknown_80DC8AC -_08022CE8: - ldr r1, [r4] - movs r0, 0x16 - str r0, [r1, 0x4] - ldr r0, _08022CF4 - b _08022D00 - .align 2, 0 -_08022CF4: .4byte gUnknown_80DC8C8 -_08022CF8: - ldr r1, [r4] - movs r0, 0x16 - str r0, [r1, 0x4] - ldr r0, _08022D0C -_08022D00: - ldr r3, _08022D10 -_08022D02: - movs r1, 0 - movs r2, 0 - bl sub_80141B4 - b _08022D22 - .align 2, 0 -_08022D0C: .4byte gUnknown_80DC8DC -_08022D10: .4byte 0x00000301 -_08022D14: - ldr r0, [r4] - ldr r0, [r0, 0x4C] - bl sub_801AFA4 - b _08022D22 -_08022D1E: - bl sub_801A928 -_08022D22: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8022A10 - - .align 2,0 diff --git a/data/data_80DC464.s b/data/data_80DC464.s deleted file mode 100644 index 4e248f016..000000000 --- a/data/data_80DC464.s +++ /dev/null @@ -1,188 +0,0 @@ - .section .rodata - -@ code_8023144 -.string "pksdir0\0" - .align 2,0 - - .global gUnknown_80DC584 -gUnknown_80DC584: @ 80DC584 - .4byte Yes_80DC5A0 - .byte 0x02, 0x00, 0x00, 0x00 - .4byte No_80DC59C - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00 - - .global No_80DC59C - No_80DC59C: - .string "No\0" - .align 2,0 - .global Yes_80DC5A0 - Yes_80DC5A0: - .string "Yes\0" - .align 2,0 - - .global gUnknown_80DC5A4 -gUnknown_80DC5A4: @ 80DC5A4 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DC5BC -gUnknown_80DC5BC: @ 80DC5BC - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x14, 0x00, 0x04, 0x00 - .byte 0x06, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DC5D4 -gUnknown_80DC5D4: @ 80DC5D4 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x14, 0x00, 0x0b, 0x00 - .byte 0x06, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DC5EC -gUnknown_80DC5EC: @ 80DC5EC - .byte 0x81, 0x48 - .byte 0x81, 0x48 - .byte 0x81, 0x48 - .byte 0x00, 0x00 - - .global gUnknown_80DC5F4 -gUnknown_80DC5F4: @ 80DC5F4 - .string "It doesn{APOSTROPHE}t appear to be hungry.\0" - .align 2,0 - - .global gUnknown_80DC618 -gUnknown_80DC618: @ 80DC618 - .string "{ARG_POKEMON_1} took the Gummi and ate it.\n" - .string "This Gummi looks like a big favorite!\n" - .string "{ARG_POKEMON_1}{APOSTROPHE}s IQ went up!\0" - .align 2,0 - - .global gUnknown_80DC674 -gUnknown_80DC674: @ 80DC674 - .string "{ARG_POKEMON_1} took the Gummi and ate it.\n" - .string "This Gummi looks like a favorite!\n" - .string "{ARG_POKEMON_1}{APOSTROPHE}s IQ went up!\0" - .align 2,0 - - .global gUnknown_80DC6CC -gUnknown_80DC6CC: @ 80DC6CC - .string "{ARG_POKEMON_1} took the Gummi and ate it.\n" - .string "It doesn{APOSTROPHE}t seem to dislike this Gummi.\n" - .string "{ARG_POKEMON_1}{APOSTROPHE}s IQ went up!\0" - .align 2,0 - - .global gUnknown_80DC728 -gUnknown_80DC728: @ 80DC728 - .string "{ARG_POKEMON_1} took the Gummi and ate it.\n" - .string "It appears to be just a little satisfied.\n" - .string "{ARG_POKEMON_1}{APOSTROPHE}s IQ went up!\0" - .align 2,0 - - .global gUnknown_80DC788 -gUnknown_80DC788: @ 80DC788 - .string "{ARG_POKEMON_1}{APOSTROPHE}s IQ helped it learn how to\n" - .string "use {ARG_MOVE_ITEM_1}!\0" - .align 2,0 - - .global gUnknown_80DC7B4 -gUnknown_80DC7B4: @ 80DC7B4 - .string "Yes! {ARG_POKEMON_1} grew explosively!\n" - .string "Attack{COMMA} Defense{COMMA} and so on rose by 1!\0" - .align 2,0 - - .global gUnknown_80DC7FC -gUnknown_80DC7FC: @ 80DC7FC - .string "Yes!\n" - .string "{ARG_POKEMON_1}{APOSTROPHE}s Attack rose by 1!\0" - .align 2,0 - - .global gUnknown_80DC81C -gUnknown_80DC81C: @ 80DC81C - .string "Yes!\n" - .string "{ARG_POKEMON_1}{APOSTROPHE}s Special Attack rose by 1!\0" - .align 2,0 - - .global gUnknown_80DC844 -gUnknown_80DC844: @ 80DC844 - .string "Yes!\n" - .string "{ARG_POKEMON_1}{APOSTROPHE}s Defense rose by 1!\0" - .align 2,0 - - - .global gUnknown_80DC864 -gUnknown_80DC864: @ 80DC864 - .string "Yes!\n" - .string "{ARG_POKEMON_1}{APOSTROPHE}s Special Defense rose by 1!\0" - .align 2,0 - - .global gUnknown_80DC88C -gUnknown_80DC88C: @ 80DC88C - .string "You don{APOSTROPHE}t have any Gummis.\0" - .align 2,0 - - .global gUnknown_80DC8AC -gUnknown_80DC8AC: @ 80DC8AC - .string "You don{APOSTROPHE}t have an item.\0" - .align 2,0 - - .global gUnknown_80DC8C8 -gUnknown_80DC8C8: @ 80DC8C8 - .string "The Gummi is gone!\0" - .align 2,0 - - .global gUnknown_80DC8DC -gUnknown_80DC8DC: @ 80DC8DC - .string "The item is gone!\0" - .align 2,0 - - .global gUnknown_80DC8F0 -gUnknown_80DC8F0: @ 80DC8F0 - .string "Give\0" - .align 2,0 - - .global gUnknown_80DC8F8 -gUnknown_80DC8F8: @ 80DC8F8 - .string "Use\0" - .align 2,0 - -@ code_8023144 #2 -.string "pksdir0\0" - .align 2,0 - - .global gUnknown_80DC904 -gUnknown_80DC904: @ 80DC904 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DC91C -gUnknown_80DC91C: @ 80DC91C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x06, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x00 - .byte 0x0f, 0x00, 0x0e, 0x00 - .byte 0x0e, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DC934 -gUnknown_80DC934: @ 80DC934 - .string "Pokémon\0" - .align 2,0 - - .global gUnknown_80DC93C -gUnknown_80DC93C: @ 80DC93C - .string "{COLOR_2}%c%s{END_COLOR_TEXT_2}\0" \ No newline at end of file diff --git a/include/adventure_log.h b/include/adventure_log.h index adc46347b..a2fef9277 100644 --- a/include/adventure_log.h +++ b/include/adventure_log.h @@ -2,7 +2,7 @@ #define GUARD_ADVENTURE_LOG_H #include "input.h" -#include "text.h" +#include "structs/str_text.h" // size: 0xA0 typedef struct AdventureLog diff --git a/include/charge_move.h b/include/charge_move.h index 6f745c7b4..32d632909 100644 --- a/include/charge_move.h +++ b/include/charge_move.h @@ -1,7 +1,7 @@ #ifndef GUARD_CHARGE_MOVE_H #define GUARD_CHARGE_MOVE_H -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" bool8 MoveMatchesChargingStatus(Entity *pokemon, Move *move); // checkCharge = Check for the move named Charge. diff --git a/include/code_80130A8.h b/include/code_80130A8.h index 315ad5b27..81f3a9824 100644 --- a/include/code_80130A8.h +++ b/include/code_80130A8.h @@ -3,7 +3,7 @@ #include "file_system.h" #include "menu.h" -#include "text.h" +#include "structs/str_text.h" // code_80130A8.s extern void sub_8013F84(void); diff --git a/include/code_801B3C0.h b/include/code_801B3C0.h index ca7410c06..6ab0d10f7 100644 --- a/include/code_801B3C0.h +++ b/include/code_801B3C0.h @@ -3,8 +3,8 @@ #include "input.h" #include "items.h" -#include "subStruct_203B240.h" -#include "text.h" +#include "structs/subStruct_203B240.h" +#include "structs/str_text.h" // size: 0x94 typedef struct unkStruct_203B230 diff --git a/include/code_801B60C.h b/include/code_801B60C.h index 78920cea8..407dfabd8 100644 --- a/include/code_801B60C.h +++ b/include/code_801B60C.h @@ -3,7 +3,7 @@ #include "items.h" #include "menu.h" -#include "text.h" +#include "structs/str_text.h" // size: 0x154 typedef struct unkStruct_203B234 diff --git a/include/code_801BEEC.h b/include/code_801BEEC.h index f3517efa7..a12baee52 100644 --- a/include/code_801BEEC.h +++ b/include/code_801BEEC.h @@ -4,7 +4,7 @@ #include "constants/iq_skill.h" #include "menu.h" #include "pokemon.h" -#include "text.h" +#include "structs/str_text.h" // size: 0x124 struct unkStruct_203B238 diff --git a/include/code_801C244.h b/include/code_801C244.h index ee6efc886..3c78d407d 100644 --- a/include/code_801C244.h +++ b/include/code_801C244.h @@ -4,7 +4,7 @@ #include "constants/iq_skill.h" #include "menu.h" #include "pokemon.h" -#include "text.h" +#include "structs/str_text.h" // size: 0xC4 struct unkStruct_203B23C diff --git a/include/code_801C620.h b/include/code_801C620.h index 71eac44e9..f9623bd2b 100644 --- a/include/code_801C620.h +++ b/include/code_801C620.h @@ -2,8 +2,8 @@ #define GUARD_CODE_801C620_H #include "menu.h" -#include "subStruct_203B240.h" -#include "text.h" +#include "structs/subStruct_203B240.h" +#include "structs/str_text.h" // size: 0x94 struct unkStruct_203B240 diff --git a/include/code_801C8C4.h b/include/code_801C8C4.h index e0b67a5d4..65a3e1b3e 100644 --- a/include/code_801C8C4.h +++ b/include/code_801C8C4.h @@ -3,7 +3,7 @@ #include "constants/item.h" #include "menu.h" -#include "text.h" +#include "structs/str_text.h" // size: 0x554 struct unkStruct_203B244 diff --git a/include/code_801D014.h b/include/code_801D014.h index 82f7189c6..ab29a0ff5 100644 --- a/include/code_801D014.h +++ b/include/code_801D014.h @@ -3,7 +3,7 @@ #include "menu.h" #include "pokemon.h" -#include "text.h" +#include "structs/str_text.h" // size: 0x118 struct unk_203B250 diff --git a/include/code_801D9E4.h b/include/code_801D9E4.h index 5d2a87d9e..a08365796 100644 --- a/include/code_801D9E4.h +++ b/include/code_801D9E4.h @@ -2,7 +2,7 @@ #define GUARD_CODE_801D9E4_H #include "menu.h" -#include "text.h" +#include "structs/str_text.h" // size: 0xA0 struct unkStruct_203B258 diff --git a/include/code_801EE10.h b/include/code_801EE10.h index ec613bf49..c67fe4299 100644 --- a/include/code_801EE10.h +++ b/include/code_801EE10.h @@ -5,7 +5,7 @@ #include "input.h" #include "pokemon.h" -#include "text.h" +#include "structs/str_text.h" // size 0xBC typedef struct unkStruct_203B270 diff --git a/include/code_80227B8.h b/include/code_80227B8.h new file mode 100644 index 000000000..62eba30d9 --- /dev/null +++ b/include/code_80227B8.h @@ -0,0 +1,36 @@ +#ifndef GUARD_CODE_80227B8_H +#define GUARD_CODE_80227B8_H + +#include "constants/iq_skill.h" +#include "items.h" +#include "menu.h" +#include "pokemon.h" +#include "structs/str_text.h" + +// size: 0x1A8 +typedef struct unkStruct_203B294 +{ + /* 0x0 */ s32 state; + /* 0x4 */ s32 fallbackState; + /* 0x8 */ u8 iqSkillPreGummi[NUM_IQ_SKILLS]; + /* 0x20 */ u8 iqSkillPostGummi[NUM_IQ_SKILLS]; + /* 0x38 */ s32 availIQSkillPreGummi; + /* 0x3C */ s32 availIQSkillPostGummi; + s32 unk40; // Gummi eaten flag? + /* 0x44 */ Gummi gummi; + /* 0x48 */ PokemonStruct1 *pokeStruct; + /* 0x4C */ u32 itemIndex; + /* 0x50 */ Item item; + MenuStruct unk54; + MenuStruct unkA4; + /* 0xF4 */ u32 menuAction; + MenuItem unkF8[8]; + u16 unk138[8]; + UnkTextStruct2 unk148[4]; +} unkStruct_203B294; + +bool8 sub_80227B8(PokemonStruct1 *pkmn); +u32 sub_8022860(void); +void sub_8022908(void); + +#endif // GUARD_CODE_80227B8_H \ No newline at end of file diff --git a/include/code_8023144.h b/include/code_8023144.h index 66c250ac0..772b0fd2e 100644 --- a/include/code_8023144.h +++ b/include/code_8023144.h @@ -1,59 +1,29 @@ #ifndef GUARD_CODE_8023144_H #define GUARD_CODE_8023144_H -#include "constants/iq_skill.h" #include "input.h" -#include "items.h" -#include "menu.h" -#include "pokemon.h" -#include "text.h" - -// size: 0x1A8 -typedef struct unkStruct_203B294 -{ - /* 0x0 */ s32 state; - /* 0x4 */ s32 fallbackState; - u8 iqSkillPreGummi[NUM_IQ_SKILLS]; - u8 iqSkillPostGummi[NUM_IQ_SKILLS]; - u32 availIQSkillPreGummi; - u32 availIQSkillPostGummi; - u32 unk40; // Gummi eaten flag? - Gummi gummi; - /* 0x48 */ PokemonStruct1 *pokeStruct; - u32 itemIndex; - Item item; - MenuStruct unk54; - MenuStruct unkA4; - u32 menuAction; - MenuItem unkF8[0x8]; - u16 unk138[0x8]; - UnkTextStruct2 unk148[4]; -} unkStruct_203B294; +#include "structs/str_text.h" // size: 0x3FC typedef struct unkStruct_3001B5C { u8 unk0; u32 unk4; - u32 unk8; + s32 unk8; s16 unkC[2]; u32 unk10; u8 fill14[0x354 - 0x14]; u8 unk354; u8 fill355[0x35C - 0x355]; - MenuInputStruct input; + /* 0x35C */ MenuInputStruct input; u32 unk390; UnkTextStruct2 *unk394; UnkTextStruct2 unk398[4]; u8 unk3F8[4]; } unkStruct_3001B5C; -bool8 sub_80227B8(PokemonStruct1 *pokeStruct); -u32 sub_8022860(void); -void sub_8022908(void); - bool8 sub_8023144(s32, s32 index, UnkTextStruct2_sub *sub, u32); -u32 sub_8023278(u8); +u32 sub_8023278(bool8); s16 sub_802331C(void); void sub_8023354(bool8 cursorSprite); void sub_80233A0(void); diff --git a/include/code_8024458.h b/include/code_8024458.h index 3c271f455..8cbf206c3 100644 --- a/include/code_8024458.h +++ b/include/code_8024458.h @@ -2,7 +2,7 @@ #define GUARD_CODE_8024458_H #include "input.h" -#include "text.h" +#include "structs/str_text.h" struct unkStruct_203B2AC { diff --git a/include/code_80521D0.h b/include/code_80521D0.h index 008c54f13..bc98b6563 100644 --- a/include/code_80521D0.h +++ b/include/code_80521D0.h @@ -1,7 +1,7 @@ #ifndef GUARD_CODE_80521D0_H #define GUARD_CODE_80521D0_H -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" void SendMessage(Entity *pokemon, const char message[]); diff --git a/include/code_806CD90.h b/include/code_806CD90.h index 3a172ea7b..d578aa839 100644 --- a/include/code_806CD90.h +++ b/include/code_806CD90.h @@ -1,7 +1,7 @@ #ifndef GUARD_CODE_806CD90_H #define GUARD_CODE_806CD90_H -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" void sub_806CC10(void); void sub_806CC70(void); diff --git a/include/code_80869E4.h b/include/code_80869E4.h index 3aad7eed3..64ca99035 100644 --- a/include/code_80869E4.h +++ b/include/code_80869E4.h @@ -1,7 +1,7 @@ #ifndef GUARD_CODE_80869E4_H #define GUARD_CODE_80869E4_H -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" // size: 0x8 typedef struct unkStruct_202F3D0 diff --git a/include/code_8094F88.h b/include/code_8094F88.h index 726599afc..8a450601c 100644 --- a/include/code_8094F88.h +++ b/include/code_8094F88.h @@ -2,7 +2,7 @@ #define GUARD_CODE_8094F88_H #include "code_8092334.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "items.h" #include "pokemon.h" diff --git a/include/code_8097670.h b/include/code_8097670.h index 887bedd59..aa640196e 100644 --- a/include/code_8097670.h +++ b/include/code_8097670.h @@ -1,7 +1,7 @@ #ifndef GUARD_CODE_8097670_H #define GUARD_CODE_8097670_H -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" // size: 0xC4 struct unkStruct_203B494 diff --git a/include/code_8097DD0.h b/include/code_8097DD0.h index 11c718a73..6a8ae9003 100644 --- a/include/code_8097DD0.h +++ b/include/code_8097DD0.h @@ -1,7 +1,7 @@ #ifndef GUARD_CODE_8097DD0_H #define GUARD_CODE_8097DD0_H -#include "subStruct_203B240.h" +#include "structs/subStruct_203B240.h" extern u32 sub_8097DF0(u8 *, struct subStruct_203B240 **); diff --git a/include/constants/input.h b/include/constants/input.h index e7d42ad79..4cf5ca76e 100644 --- a/include/constants/input.h +++ b/include/constants/input.h @@ -12,14 +12,11 @@ #define INPUT_DPAD_DOWN 8 #define INPUT_DPAD_LEFT 9 #define INPUT_DPAD_RIGHT 10 - -// When R button is pressed in combination with other keys +// When R button is pressed in combination with other keys: #define INPUT_R_A_BUTTONS 11 #define INPUT_R_DPAD_UP_BUTTONS 12 #define INPUT_R_DPAD_DOWN_BUTTONS 13 #define INPUT_R_DPAD_LEFT_BUTTONS 14 #define INPUT_R_DPAD_RIGHT_BUTTONS 15 - -#endif // GUARD_CONSTANTS_INPUT_H - +#endif // GUARD_CONSTANTS_INPUT_H \ No newline at end of file diff --git a/include/constants/item.h b/include/constants/item.h index 54712661a..104c3d441 100644 --- a/include/constants/item.h +++ b/include/constants/item.h @@ -1,6 +1,8 @@ #ifndef GUARD_CONSTANTS_ITEM_H #define GUARD_CONSTANTS_ITEM_H +// Cannot include enums in this file since it's used by the data_item and data_monster assemblers + #define MAX_KECLEON_ITEM_SHOP_ITEMS 8 #define MAX_KECLEON_WARE_SHOP_ITEMS 4 diff --git a/include/constants/mailbox.h b/include/constants/mailbox.h index f6d1d3fcc..db5153151 100644 --- a/include/constants/mailbox.h +++ b/include/constants/mailbox.h @@ -6,12 +6,12 @@ enum JOB_LIST_MAIL_TYPES { - MAIL_TYPE_NONE = 0, + MAIL_TYPE_NONE, MAIL_TYPE_UNK1, MAIL_TYPE_UNK2, MAIL_TYPE_UNK3, MAIL_TYPE_UNK4, - MAIL_TYPE_SUSPENDED_JOB = 5, + MAIL_TYPE_SUSPENDED_JOB, MAIL_TYPE_TAKEN_JOB, MAIL_TYPE_UNK7, MAIL_TYPE_UNK8, diff --git a/include/constants/monster.h b/include/constants/monster.h index 3d4c09296..9664c990a 100644 --- a/include/constants/monster.h +++ b/include/constants/monster.h @@ -428,6 +428,6 @@ #define MONSTER_RAYQUAZA_CUTSCENE 423 #define NUM_MONSTERS MONSTER_JIRACHI -#define MONSTER_MAX MONSTER_RAYQUAZA_CUTSCENE +#define MONSTER_MAX (MONSTER_RAYQUAZA_CUTSCENE + 1) #endif // GUARD_CONSTANTS_MONSTER_H \ No newline at end of file diff --git a/include/constants/move.h b/include/constants/move.h index 62fba6d03..b5b09e6ef 100644 --- a/include/constants/move.h +++ b/include/constants/move.h @@ -34,42 +34,6 @@ enum AccuracyType NUM_ACCURACY_TYPES }; -// size: 0x24 -typedef struct MoveDataEntry -{ - /* 0x0 */ u8 *name; - /* 0x4 */ s16 basePower; - /* 0x6 */ u8 type; - // Determines the range of moves. - /* 0x8 */ u16 targetingFlags[2]; // 0 for player and 1 for AI - // The AI consider certain moves to have different range than they actually do. - /* 0xC */ u8 basePP; - /* 0xD */ u8 aiWeight; - // There are multiple accuracy values. These are define with the AccuracyType enum. - /* 0xE */ u8 accuracy[NUM_ACCURACY_TYPES]; - /* 0x11 */ u8 numberOfChainedHits; // Maximum number of times the move will hit. Used for multi-hit moves like Fury Attack. - /* 0x12 */ u8 maxUpgradeLevel; - /* 0x13 */ u8 critChance; - /* 0x14 */ bool8 affectedByMagicCoat; // If true, this move is reflected by Magic Coat. - /* 0x15 */ bool8 isSnatchable; - /* 0x16 */ bool8 usesMouth; // If true, this move can't be used with the Muzzled status. - /* 0x17 */ bool8 cannotHitFrozen; // Used by Status Checker to determine if a move can be used on a frozen target. - /* 0x18 */ bool8 ignoresTaunted; - /* 0x19 */ u8 rangeID; - /* 0x1C */ u8 *description; - /* 0x20 */ u8 *useText; // The text displayed when this move is used. -} MoveDataEntry; - -// size: 0x8 -typedef struct Move -{ - u8 moveFlags; - u8 moveFlags2; - u16 id; - u8 PP; - u8 ginseng; // How much the move is boosted by Ginsengs. -} Move; - enum TargetingFlag { TARGETING_FLAG_TARGET_OTHER = 0x0, diff --git a/include/credits1.h b/include/credits1.h index eecd55d44..83217ad18 100644 --- a/include/credits1.h +++ b/include/credits1.h @@ -1,7 +1,7 @@ #ifndef GUARD_CREDITS1_H #define GUARD_CREDITS1_H -#include "text.h" +#include "structs/str_text.h" // size: 0x6C typedef struct Credits1Work diff --git a/include/debug_menu1.h b/include/debug_menu1.h index cec60adc3..bc27efef2 100644 --- a/include/debug_menu1.h +++ b/include/debug_menu1.h @@ -2,7 +2,7 @@ #define GUARD_DEBUG_MENU1_H #include "menu.h" -#include "text.h" +#include "structs/str_text.h" // size: 0x1A4 struct DebugMenu diff --git a/include/debug_menu2.h b/include/debug_menu2.h index b941db0d8..b42ab1ca3 100644 --- a/include/debug_menu2.h +++ b/include/debug_menu2.h @@ -2,7 +2,7 @@ #define GUARD_DEBUG_MENU2_H #include "menu.h" -#include "text.h" +#include "structs/str_text.h" // size: 0x138 typedef struct unkStruct_203B3F0 diff --git a/include/debug_menu3.h b/include/debug_menu3.h index 232271bbe..df9b4531d 100644 --- a/include/debug_menu3.h +++ b/include/debug_menu3.h @@ -2,7 +2,7 @@ #define GUARD_DEBUG_MENU3_H #include "menu.h" -#include "text.h" +#include "structs/str_text.h" // size: 0xFC typedef struct unkStruct_203B3F4 diff --git a/include/debug_menu4.h b/include/debug_menu4.h index 095e8338d..2b2dbb230 100644 --- a/include/debug_menu4.h +++ b/include/debug_menu4.h @@ -3,7 +3,7 @@ #include "pokemon.h" #include "menu.h" -#include "text.h" +#include "structs/str_text.h" // size: 0x140 typedef struct unkStruct_203B3F8 diff --git a/include/dungeon.h b/include/dungeon.h index f1ed51a9b..e88ff9324 100644 --- a/include/dungeon.h +++ b/include/dungeon.h @@ -1,7 +1,7 @@ #ifndef GUARD_DUNGEON_H #define GUARD_DUNGEON_H -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" // size: 0x8 typedef struct DungeonName diff --git a/include/dungeon_action.h b/include/dungeon_action.h index 2e606d346..c9127eda6 100644 --- a/include/dungeon_action.h +++ b/include/dungeon_action.h @@ -1,7 +1,7 @@ #ifndef GUARD_DUNGEON_ACTION_H #define GUARD_DUNGEON_ACTION_H -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" void ClearMonsterActionFields(ActionContainer *actionPointer); void SetMonsterActionFields(ActionContainer *actionPointer, u16 action); diff --git a/include/dungeon_ai.h b/include/dungeon_ai.h index bf2597573..4e2716ff4 100644 --- a/include/dungeon_ai.h +++ b/include/dungeon_ai.h @@ -1,7 +1,7 @@ #ifndef GUARD_DUNGEON_AI_H #define GUARD_DUNGEON_AI_H -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" u32 sub_8075818(Entity *entity); void sub_8075900(Entity *pokemon, u8 r1); diff --git a/include/dungeon_ai_attack.h b/include/dungeon_ai_attack.h index 00f3eae60..95a5f84ab 100644 --- a/include/dungeon_ai_attack.h +++ b/include/dungeon_ai_attack.h @@ -1,7 +1,7 @@ #ifndef GUARD_DUNGEON_AI_ATTACK_H #define GUARD_DUNGEON_AI_ATTACK_H -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" #define RANGED_ATTACK_RANGE 10 diff --git a/include/dungeon_ai_item_weight.h b/include/dungeon_ai_item_weight.h index a612a98d5..ff33d993f 100644 --- a/include/dungeon_ai_item_weight.h +++ b/include/dungeon_ai_item_weight.h @@ -1,7 +1,7 @@ #ifndef GUARD_DUNGEON_AI_ITEM_WEIGHT_H #define GUARD_DUNGEON_AI_ITEM_WEIGHT_H -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" u32 EvaluateItem(Entity *targetPokemon, Item *item, u32 itemTargetFlags); bool8 CanTargetAdjacentPokemon(Entity *pokemon); diff --git a/include/dungeon_ai_items.h b/include/dungeon_ai_items.h index 10f9a0e17..bafbac478 100644 --- a/include/dungeon_ai_items.h +++ b/include/dungeon_ai_items.h @@ -1,8 +1,8 @@ #ifndef GUARD_DUNGEON_AI_ITEMS_H #define GUARD_DUNGEON_AI_ITEMS_H -#include "dungeon_entity.h" -#include "position.h" +#include "structs/dungeon_entity.h" +#include "structs/str_position.h" void DecideUseItem(Entity *pokemon); void FindStraightThrowableTargets(Entity *pokemon, s32 thrownAIFlag, Item *item, bool8 ignoreRollChance); diff --git a/include/dungeon_ai_leader.h b/include/dungeon_ai_leader.h index a62688e4d..a66e5804e 100644 --- a/include/dungeon_ai_leader.h +++ b/include/dungeon_ai_leader.h @@ -1,7 +1,7 @@ #ifndef GUARD_DUNGEON_AI_LEADER_H #define GUARD_DUNGEON_AI_LEADER_H -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" bool8 TargetLeader(Entity *pokemon); Entity* GetLeaderIfVisible(Entity *pokemon); diff --git a/include/dungeon_ai_movement.h b/include/dungeon_ai_movement.h index dd8e877fd..5324a3f3c 100644 --- a/include/dungeon_ai_movement.h +++ b/include/dungeon_ai_movement.h @@ -1,7 +1,7 @@ #ifndef GUARD_DUNGEON_AI_MOVEMENT_H #define GUARD_DUNGEON_AI_MOVEMENT_H -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" void MoveIfPossible(Entity *pokemon, bool8 showRunAwayEffect); bool8 CanTakeItem(Entity *pokemon); diff --git a/include/dungeon_ai_targeting.h b/include/dungeon_ai_targeting.h index f0509ea61..6cb73fe22 100644 --- a/include/dungeon_ai_targeting.h +++ b/include/dungeon_ai_targeting.h @@ -1,7 +1,7 @@ #ifndef GUARD_DUNGEON_AI_TARGETING_H #define GUARD_DUNGEON_AI_TARGETING_H -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" bool8 CanAttackInDirection(Entity *pokemon, s32 direction); bool8 CanAIMonsterMoveInDirection(Entity *pokemon, s32 direction, bool8 *pokemonInFront); diff --git a/include/dungeon_capabilities.h b/include/dungeon_capabilities.h index fa0ee214d..9d0948fa6 100644 --- a/include/dungeon_capabilities.h +++ b/include/dungeon_capabilities.h @@ -1,7 +1,7 @@ #ifndef GUARD_DUNGEON_CAPABILITIES_H #define GUARD_DUNGEON_CAPABILITIES_H -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" bool8 CannotMove(Entity *pokemon, bool8 checkBlinker); bool8 sub_8070BC0(Entity* entity); diff --git a/include/dungeon_items.h b/include/dungeon_items.h index 3931919d2..a9cab2bc3 100644 --- a/include/dungeon_items.h +++ b/include/dungeon_items.h @@ -1,7 +1,7 @@ #ifndef GUARD_DUNGEON_ITEMS_H #define GUARD_DUNGEON_ITEMS_H -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" bool8 HasHeldItem(Entity *pokemon, u8 id); diff --git a/include/dungeon_leader.h b/include/dungeon_leader.h index a7cdf8598..abd4dedb0 100644 --- a/include/dungeon_leader.h +++ b/include/dungeon_leader.h @@ -1,7 +1,7 @@ #ifndef GUARD_DUNGEON_LEADER_H #define GUARD_DUNGEON_LEADER_H -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" Entity* GetLeader(void); EntityInfo* GetLeaderInfo(void); diff --git a/include/dungeon_map_access.h b/include/dungeon_map_access.h index c57be0e4b..931ace038 100644 --- a/include/dungeon_map_access.h +++ b/include/dungeon_map_access.h @@ -1,7 +1,7 @@ #ifndef GUARD_DUNGEON_MAP_ACCESS_H #define GUARD_DUNGEON_MAP_ACCESS_H -#include "map.h" +#include "structs/map.h" typedef struct unkStruct_202F190 { diff --git a/include/dungeon_movement.h b/include/dungeon_movement.h index 89052c951..e206c26fb 100644 --- a/include/dungeon_movement.h +++ b/include/dungeon_movement.h @@ -1,7 +1,7 @@ #ifndef GUARD_DUNGEON_MOVEMENT #define GUARD_DUNGEON_MOVEMENT -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" u8 GetCrossableTerrain(s16 species); u8 sub_807034C(s16 id, struct Tile *tile); diff --git a/include/dungeon_pokemon_attributes.h b/include/dungeon_pokemon_attributes.h index 47d70b072..93a97cc89 100644 --- a/include/dungeon_pokemon_attributes.h +++ b/include/dungeon_pokemon_attributes.h @@ -1,7 +1,7 @@ #ifndef GUARD_DUNGEON_POKEMON_ATTRIBUTES_H #define GUARD_DUNGEON_POKEMON_ATTRIBUTES_H -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" bool8 HasSafeguardStatus(Entity * param_1, Entity * param_2, bool8 displayMessage); bool8 sub_80717A4(Entity *pokemon, u16 moveID); diff --git a/include/dungeon_pokemon_sprites.h b/include/dungeon_pokemon_sprites.h index 62da2adfe..79fbcc670 100644 --- a/include/dungeon_pokemon_sprites.h +++ b/include/dungeon_pokemon_sprites.h @@ -1,7 +1,7 @@ #ifndef GUARD_DUNGEON_POKEMON_SPRITES_H #define GUARD_DUNGEON_POKEMON_SPRITES_H -#include "position.h" +#include "structs/str_position.h" // size: 0x8 typedef struct DungeonPokemonStatusSprite diff --git a/include/dungeon_range.h b/include/dungeon_range.h index 7cb1b1cc6..905163fb5 100644 --- a/include/dungeon_range.h +++ b/include/dungeon_range.h @@ -1,7 +1,7 @@ #ifndef GUARD_DUNGEON_RANGE_H #define GUARD_DUNGEON_RANGE_H -#include "position.h" +#include "structs/str_position.h" bool8 IsPositionActuallyInSight(Position *pos1, Position *pos2); bool8 IsPositionInSight(Position *pos1, Position *pos2); diff --git a/include/dungeon_util.h b/include/dungeon_util.h index 73e01a0aa..ebe1b74d3 100644 --- a/include/dungeon_util.h +++ b/include/dungeon_util.h @@ -2,8 +2,8 @@ #define GUARD_DUNGEON_UTIL_H #include "constants/direction.h" -#include "dungeon_entity.h" -#include "position.h" +#include "structs/dungeon_entity.h" +#include "structs/str_position.h" extern const Position gAdjacentTileOffsets[NUM_DIRECTIONS]; diff --git a/include/dungeon_util_1.h b/include/dungeon_util_1.h index 61d791807..d6aad4754 100644 --- a/include/dungeon_util_1.h +++ b/include/dungeon_util_1.h @@ -1,7 +1,7 @@ #ifndef GUARD_DUNGEON_UTIL_1_H #define GUARD_DUNGEON_UTIL_1_H -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" Entity *xxx_call_GetLeader(void); Entity *GetPartnerEntity(void); diff --git a/include/dungeon_visibility.h b/include/dungeon_visibility.h index 15bd0df65..935735e6f 100644 --- a/include/dungeon_visibility.h +++ b/include/dungeon_visibility.h @@ -1,7 +1,7 @@ #ifndef GUARD_DUNGEON_VISIBILITY_H #define GUARD_DUNGEON_VISIBILITY_H -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" bool8 CanSeeTarget(Entity *entity, Entity *targetEntity); bool8 CanTargetEntity(Entity *entity, Entity *targetEntity); diff --git a/include/felicity_bank.h b/include/felicity_bank.h index 87a5c9903..bba4b7168 100644 --- a/include/felicity_bank.h +++ b/include/felicity_bank.h @@ -3,7 +3,7 @@ #include "file_system.h" #include "menu.h" -#include "text.h" +#include "structs/str_text.h" #define FELICITY_BANK_ACTION_WITHDRAW 0 #define FELICITY_BANK_ACTION_DEPOSIT 1 diff --git a/include/friend_area_action_menu.h b/include/friend_area_action_menu.h index cb1b1f252..3441fe650 100644 --- a/include/friend_area_action_menu.h +++ b/include/friend_area_action_menu.h @@ -5,7 +5,7 @@ #include "items.h" #include "menu.h" #include "pokemon.h" -#include "text.h" +#include "structs/str_text.h" enum FriendAreaActionMenuStates { diff --git a/include/gulpin_shop.h b/include/gulpin_shop.h index c108eab7c..a9409134a 100644 --- a/include/gulpin_shop.h +++ b/include/gulpin_shop.h @@ -4,7 +4,7 @@ #include "constants/move.h" #include "file_system.h" #include "menu.h" -#include "text.h" +#include "structs/str_text.h" // size: 0x18C typedef struct GulpinShopWork diff --git a/include/gulpin_shop_801FB50.h b/include/gulpin_shop_801FB50.h index 68bc30ff6..b31c4a851 100644 --- a/include/gulpin_shop_801FB50.h +++ b/include/gulpin_shop_801FB50.h @@ -5,7 +5,7 @@ #include "file_system.h" #include "menu.h" #include "pokemon.h" -#include "text.h" +#include "structs/str_text.h" // size: 0x1E0 typedef struct unkStruct_203B27C diff --git a/include/items.h b/include/items.h index 764025f98..712921a61 100644 --- a/include/items.h +++ b/include/items.h @@ -1,89 +1,10 @@ #ifndef GUARD_ITEMS_H #define GUARD_ITEMS_H -#include "constants/item.h" #include "code_8092334.h" -#include "subStruct_203B240.h" - -// size: 0x20 -typedef struct ItemDataEntry -{ - /* 0x0 */ u8 *name; - /* 0x4 */ u32 buyPrice; - /* 0x8 */ u32 sellPrice; - /* 0xC */ u8 category; - /* 0xD */ u8 icon; - /* 0x10 */ u8 *description; - // Determines how the AI can use the item. - // Index 0: Item can be used on self. - // Index 1: Item can be thrown at allies. - // Index 2: Item can be thrown at enemies. - /* 0x14 */ bool8 aiFlags[3]; - /* 0x18 */ s16 moveID; - /* 0x1A */ u8 order; // Numbered order they are in storage - /* 0x1B */ u8 spawnAmountRange[2]; - /* 0x1D */ u8 palette; - /* 0x1E */ u8 actionType; -} ItemDataEntry; - -// size: 0x4 -typedef struct Item -{ - /* 0x0 */ u8 flags; - /* 0x1 */ u8 quantity; - /* 0x2 */ u8 id; -} Item; - -// size: 0x4 -typedef struct BulkItem -{ - /* 0x0 */ u8 id; - /* 0x1 */ u8 quantity; -} BulkItem; - -// size: 0x4 -typedef struct Gummi -{ - /* 0x0 */ s16 boostAmount; - /* 0x2 */ u16 flags; -} Gummi; - -// size: 0xC -typedef struct unkStruct_8090F58 -{ - u32 unk0; - u8 unk4; - u8 unk5; - s16 unk6; - u8 unk8; -} unkStruct_8090F58; - -// size: 0x268 -typedef struct TeamInventory -{ - /* 0x0 */ Item teamItems[INVENTORY_SIZE]; - /* 0x50 */ u16 teamStorage[STORAGE_SIZE]; - /* 0x230 */ BulkItem kecleonShopItems[MAX_KECLEON_ITEM_SHOP_ITEMS]; - /* 0x250 */ BulkItem kecleonWareItems[MAX_KECLEON_WARE_SHOP_ITEMS]; - /* 0x260 */ s32 teamMoney; - /* 0x264 */ s32 teamSavings; -} TeamInventory; - -enum ItemFlag -{ - ITEM_FLAG_EXISTS = 1 << 0, - ITEM_FLAG_IN_SHOP = 1 << 1, // in a Kecleon shop - ITEM_FLAG_UNPAID = 1 << 2, // Picked up in Kecleon shop but not paid for yet - ITEM_FLAG_STICKY = 1 << 3, - ITEM_FLAG_SET = 1 << 4 // This item can be thrown by pressing L+R instead of having to go to the bag menu. -}; - -enum ItemAIFlag -{ - ITEM_AI_FLAG_TARGET_SELF, - ITEM_AI_FLAG_TARGET_ALLY, - ITEM_AI_FLAG_TARGET_ENEMY -}; +#include "structs/str_items.h" +#include "structs/str_pokemon.h" +#include "structs/subStruct_203B240.h" extern TeamInventory *gTeamInventoryRef; @@ -143,6 +64,8 @@ bool8 IsHMItem(u8 id); bool8 IsEdibleItem(u8 id); u8 xxx_bit_lut_lookup_8091E50(u8 i0, u8 i1); bool8 IsInvalidItemReward(u8 itemID); +bool8 HasGummiItem(void); +void GetGummiItemStatBoost(PokemonStruct1* pokemon, u8 id, bool8 checkBoostFlags, Gummi *gummi); void RestoreHeldItem(unkStruct_8094924 *, BulkItem *); void SaveHeldItem(unkStruct_8094924 *, BulkItem *); diff --git a/include/kangaskhan_storage1.h b/include/kangaskhan_storage1.h index 70e5f460b..973f93d01 100644 --- a/include/kangaskhan_storage1.h +++ b/include/kangaskhan_storage1.h @@ -4,7 +4,7 @@ #include "file_system.h" #include "items.h" #include "menu.h" -#include "text.h" +#include "structs/str_text.h" enum KangaskhanStorageStates { diff --git a/include/kangaskhan_storage2.h b/include/kangaskhan_storage2.h index 73acd94d9..2bbaf45b4 100644 --- a/include/kangaskhan_storage2.h +++ b/include/kangaskhan_storage2.h @@ -3,7 +3,7 @@ #include "items.h" #include "menu.h" -#include "text.h" +#include "structs/str_text.h" // size: 0x150 typedef struct unkStruct_203B20C diff --git a/include/kecleon_bros1.h b/include/kecleon_bros1.h index 6983967e4..28cbb234a 100644 --- a/include/kecleon_bros1.h +++ b/include/kecleon_bros1.h @@ -4,7 +4,7 @@ #include "file_system.h" #include "items.h" #include "menu.h" -#include "text.h" +#include "structs/str_text.h" enum KecleonStoreStates { diff --git a/include/kecleon_bros2.h b/include/kecleon_bros2.h index ac806b8c8..12bafad76 100644 --- a/include/kecleon_bros2.h +++ b/include/kecleon_bros2.h @@ -2,7 +2,7 @@ #define GUARD_KECLEON_BROS2_H #include "input.h" -#include "text.h" +#include "structs/str_text.h" // size: 0xA0 typedef struct unkStruct_203B214 diff --git a/include/kecleon_bros3.h b/include/kecleon_bros3.h index 8bfaf7218..d4f6bb67c 100644 --- a/include/kecleon_bros3.h +++ b/include/kecleon_bros3.h @@ -2,7 +2,7 @@ #define GUARD_KECLEON_BROS3_H #include "input.h" -#include "text.h" +#include "structs/str_text.h" // size: 0xA0 typedef struct unkStruct_203B21C diff --git a/include/kecleon_bros4.h b/include/kecleon_bros4.h index 473169fac..dd31848f7 100644 --- a/include/kecleon_bros4.h +++ b/include/kecleon_bros4.h @@ -3,7 +3,7 @@ #include "constants/item.h" #include "input.h" -#include "text.h" +#include "structs/str_text.h" // size: 0xF4 typedef struct unkStruct_203B224 diff --git a/include/luminous_cave.h b/include/luminous_cave.h index 7ea21ffbf..49ce0c5c5 100644 --- a/include/luminous_cave.h +++ b/include/luminous_cave.h @@ -5,7 +5,7 @@ #include "items.h" #include "menu.h" #include "pokemon_3.h" -#include "text.h" +#include "structs/str_text.h" // size: 0x174 typedef struct LuminousCaveWork diff --git a/include/mailbox.h b/include/mailbox.h index 6b7d83086..1e20d269c 100644 --- a/include/mailbox.h +++ b/include/mailbox.h @@ -2,7 +2,7 @@ #define GUARD_MAILBOX_H #include "menu.h" -#include "text.h" +#include "structs/str_text.h" #include "constants/mailbox.h" #include "code_802C39C.h" diff --git a/include/main_menu1.h b/include/main_menu1.h index 419b88081..c18c90768 100644 --- a/include/main_menu1.h +++ b/include/main_menu1.h @@ -2,7 +2,7 @@ #define GUARD_MAIN_MENU1_H #include "menu.h" -#include "text.h" +#include "structs/str_text.h" // size: 0x8 typedef struct unkStruct_8035D94 diff --git a/include/main_menu2.h b/include/main_menu2.h index 6ce11f33d..529b13d61 100644 --- a/include/main_menu2.h +++ b/include/main_menu2.h @@ -2,7 +2,7 @@ #define GUARD_MAIN_MENU2_H #include "menu.h" -#include "text.h" +#include "structs/str_text.h" // size: 0x1A8 typedef struct MainMenu2Work diff --git a/include/makuhita_dojo1.h b/include/makuhita_dojo1.h index a5b1cabb0..76ef805b6 100644 --- a/include/makuhita_dojo1.h +++ b/include/makuhita_dojo1.h @@ -3,7 +3,7 @@ #include "file_system.h" #include "menu.h" -#include "text.h" +#include "structs/str_text.h" enum MakuhitaDojoInitMode { diff --git a/include/makuhita_dojo2.h b/include/makuhita_dojo2.h index ad3d11b56..e50c338fb 100644 --- a/include/makuhita_dojo2.h +++ b/include/makuhita_dojo2.h @@ -3,7 +3,7 @@ #include "constants/dungeon.h" #include "input.h" -#include "text.h" +#include "structs/str_text.h" // size: 0xD0 typedef struct MakuhitaDojoWork2 diff --git a/include/menu.h b/include/menu.h index 5ed4f66b7..bd0de04cf 100644 --- a/include/menu.h +++ b/include/menu.h @@ -3,7 +3,7 @@ #include "input.h" #include "sprite_oam.h" -#include "text.h" +#include "structs/str_text.h" // size: 0x8 typedef struct MenuItem diff --git a/include/menu_input.h b/include/menu_input.h index 8dcb2919a..dc14e0a30 100644 --- a/include/menu_input.h +++ b/include/menu_input.h @@ -2,7 +2,7 @@ #define GUARD_MENU_INPUT_H #include "menu.h" -#include "text.h" +#include "structs/str_text.h" u32 sub_8012A64(MenuInputStructSub *r0, s32 r1); s32 GetKeyPress(MenuInputStruct *r0); diff --git a/include/move_util.h b/include/move_util.h index e72ae901c..931fef8ab 100644 --- a/include/move_util.h +++ b/include/move_util.h @@ -1,7 +1,7 @@ #ifndef GUARD_MOVE_UTIL_H #define GUARD_MOVE_UTIL_H -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" u32 sub_8057144(Entity * pokemon); bool8 sub_80571F0(Entity * pokemon, Move *move); diff --git a/include/moves.h b/include/moves.h index 9301f937b..ca21c661a 100644 --- a/include/moves.h +++ b/include/moves.h @@ -5,7 +5,7 @@ #include "constants/move.h" #include "constants/move_id.h" #include "pokemon.h" -#include "subStruct_203B240.h" +#include "structs/subStruct_203B240.h" // size: 0x8 typedef struct MoveLearnset diff --git a/include/other_menus1.h b/include/other_menus1.h index f2e6f49e2..bd91a1266 100644 --- a/include/other_menus1.h +++ b/include/other_menus1.h @@ -6,7 +6,7 @@ #include "menu.h" #include "pokemon.h" #include "sprite_oam.h" -#include "text.h" +#include "structs/str_text.h" // size: 0x504 typedef struct unkStruct_203B35C diff --git a/include/party_list_menu.h b/include/party_list_menu.h index 8e2394b4c..3887cf815 100644 --- a/include/party_list_menu.h +++ b/include/party_list_menu.h @@ -5,7 +5,7 @@ #include "items.h" #include "menu.h" #include "pokemon.h" -#include "text.h" +#include "structs/str_text.h" // size: 0x280 typedef struct unkStruct_203B2B8 diff --git a/include/personality_test.h b/include/personality_test.h index 339595cce..d75755e07 100644 --- a/include/personality_test.h +++ b/include/personality_test.h @@ -3,7 +3,7 @@ #include "constants/personality_test.h" #include "input.h" -#include "text.h" +#include "structs/str_text.h" // Definitely wrong but need to figure out better structure later struct FaceData diff --git a/include/pokemon.h b/include/pokemon.h index 60f06b73b..eee2502e5 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -1,177 +1,18 @@ #ifndef GUARD_POKEMON_H #define GUARD_POKEMON_H -#include "dungeon_global_data.h" +#include "constants/move.h" #include "file_system.h" #include "items.h" -#include "constants/move.h" - +#include "structs/str_pokemon.h" #define OFFENSE_NRM 0 #define OFFENSE_SP 1 -// size: 0x4 -typedef struct Offense -{ - /* 0x0 */ u8 att[2]; // Atk, SpAtk - /* 0x2 */ u8 def[2]; // Def, SpDef -} Offense; - -// size: 0x4 -typedef struct unkPokeSubStruct_C -{ - u8 level; - u8 fill1[3]; -} unkPokeSubStruct_C; - enum PokemonUnk0Flags { FLAG_ON_TEAM = 2, }; -// size: 0x58 -typedef struct PokemonStruct1 -{ - u16 unk0; // Probably a union: Sometimes ldrh and sometimes ldrb. Recruited?? - /* 0x2 */ bool8 isTeamLeader; - /* 0x3 */ u8 level; - /* 0x4 */ DungeonLocation dungeonLocation; - /* 0x8 */ s16 speciesNum; - unkPokeSubStruct_C unkC[2]; - /* 0x14 */ s16 IQ; - /* 0x16 */ u16 pokeHP; - /* 0x18 */ Offense offense; - /* 0x1C */ u32 currExp; - /* 0x20 */ u32 IQSkills; - /* 0x24 */ u8 tacticIndex; - /* 0x28 */ BulkItem heldItem; - /* 0x2C */ Move moves[MAX_MON_MOVES]; - /* 0x4C */ u8 name[POKEMON_NAME_LENGTH]; -} PokemonStruct1; - -// size: 0x4 -typedef struct unkStruct_808E6F4 -{ - s16 unk0; - u8 unk2; -} unkStruct_808E6F4; - -// size: 0x4 -typedef struct EvolveStage -{ - /* 0x0 */ s16 speciesNum; - /* 0x2 */ u8 level; -} EvolveStage; - -// size: 0x24 -typedef struct unkStruct_8094184 -{ - /* 0x0 */ Move moves[MAX_MON_MOVES]; - u8 unk20; -} unkStruct_8094184; - -// size: 0x64 -typedef struct PokemonStruct2 -{ - u16 unk0; // corresponds to unk0 in PokemonStruct - /* 0x2 */ bool8 isTeamLeader; - /* 0x3 */ u8 level; - /* 0x4 */ DungeonLocation dungeonLocation; - /* 0x8 */ u16 IQ; - s16 unkA; - u16 unkC; - /* 0xE */ s16 speciesNum; - u16 unk10; // pokeHP - u16 unk12; // pokeHP - /* 0x14 */ Offense offense; // offense (other offset) - /* 0x18 */ u32 currExp; - /* 0x1C */ unkStruct_8094184 moves; - /* 0x40 */ Item itemSlot; // heldItem - u32 unk44; // some struct - u32 unk48; // some struct (same type as 44) - /* 0x4C */ u32 IQSkills; // unk20 - /* 0x50 */ u8 tacticIndex; - unkStruct_808E6F4 unk54; - /* 0x58 */ u8 name[POKEMON_NAME_LENGTH]; // name (other offset) -} PokemonStruct2; - -// size: 0x90E8 -typedef struct unkStruct_203B45C -{ - /* 0x0 */ PokemonStruct1 pokemon[NUM_MONSTERS]; - /* 0x8DF8 */ PokemonStruct2 pokemon2[4]; - /* 0x8F88 */ PokemonStruct1 team[MAX_TEAM_MEMBERS]; -} unkStruct_203B45C; - -// size: 0x4 -typedef struct PreEvolution -{ - /* 0x0 */ s16 evolveFrom; - /* 0x2 */ u16 evolveType; -} PreEvolution; - -// size: 0x4 -typedef struct EvolutionRequirements -{ - /* 0x0 */ s16 mainRequirement; - /* 0x2 */ u16 additionalRequirement; -} EvolutionRequirements; - -// size: 0x8 -typedef struct unkEvolve -{ - /* 0x0 */ PreEvolution preEvolution; - /* 0x4 */ EvolutionRequirements evolutionRequirements; -} unkEvolve; - -// size: 0x48 -typedef struct MonsterDataEntry -{ - /* 0x0 */ u8* species; - /* 0x4 */ u8* category; - /* 0x8 */ u8 overworldPalette; - /* 0x9 */ u8 bodySize; - /* 0xC */ s32 movementSpeed; - /* 0x10 */ u16 dialogueSprites; // Bitwise flags for whether a dialogue sprite/portrait is available for each emotion. - bool8 unk12; - /* 0x13 */ u8 types[2]; - /* 0x15 */ u8 movementType; - /* 0x16 */ u8 friendArea; - /* 0x17 */ u8 abilities[2]; - /* 0x19 */ u8 shadowSize; - u8 fill1A; // 0 for all Pokémon. - /* 0x1B */ u8 regenSpeed; // 100 for all Pokémon. - /* 0x1C */ bool8 canMove; // Set to false for Pokémon who don't move unless they're the leader, like Kakuna. - /* 0x1D */ u8 chanceAsleep; - /* 0x1E */ u16 baseHP; - /* 0x20 */ s32 expYield; - /* 0x24 */ u16 baseAtkSpAtk[2]; - /* 0x28 */ u16 baseDefSpDef[2]; - /* 0x2C */ u16 weight; - /* 0x2E */ u16 size; - u8 unk30; // 10 for all Pokémon. - u8 unk31; // 10 for all Pokémon. - u8 unk32; // 24 for all Pokémon. - /* 0x33 */ bool8 toolboxEnabled; // If false, the AI can't use items. Doesn't seem to be used, as it's true for all Pokémon. - /* 0x34 */ PreEvolution preEvolution; - /* 0x38 */ EvolutionRequirements evolutionRequirements; - /* 0x3C */ s16 dexInternal[2]; // dexNo and internalNo - /* 0x40 */ s16 recruitRate; - /* 0x42 */ s16 alphabetParent[2]; // alphabetNo and parentNo -} MonsterDataEntry; - -// size: 0xC | https://www.pokecommunity.com/showthread.php?t=407371 -typedef struct LevelData -{ - /* 0x0 */ s32 expRequired; - /* 0x4 */ u8 gainHP; - /* 0x5 */ u8 gainUnused; - /* 0x6 */ u8 gainAtt; - /* 0x7 */ u8 gainSPAtt; - /* 0x8 */ u8 gainDef; - /* 0x9 */ u8 gainSPDef; - u16 fillA; -} LevelData; - // size: 0x1A4 typedef struct unkStruct_808E218_arg { diff --git a/include/position_util.h b/include/position_util.h index eeb6cf82e..03d5f9e29 100644 --- a/include/position_util.h +++ b/include/position_util.h @@ -1,7 +1,7 @@ #ifndef GUARD_POSITION_UTIL_H #define GUARD_POSITION_UTIL_H -#include "position.h" +#include "structs/str_position.h" s32 GetDirectionTowardsPosition(Position *originPos, Position *targetPos); s32 GetDistance(Position *pos1, Position *pos2); diff --git a/include/post_office_guide2.h b/include/post_office_guide2.h index 06b1a6f46..f06409d80 100644 --- a/include/post_office_guide2.h +++ b/include/post_office_guide2.h @@ -2,7 +2,7 @@ #define GUARD_POST_OFFICE_GUIDE2_H #include "input.h" -#include "text.h" +#include "structs/str_text.h" // size: 0x78 typedef struct unkStruct_203B330 diff --git a/include/rescue_password_menu.h b/include/rescue_password_menu.h index 5883102fa..c87598d19 100644 --- a/include/rescue_password_menu.h +++ b/include/rescue_password_menu.h @@ -3,7 +3,7 @@ #include "menu.h" #include "sprite.h" -#include "text.h" +#include "structs/str_text.h" // Similar to unkStruct_203B360 struct RescuePasswordMenu diff --git a/include/save.h b/include/save.h index f351fccfe..6ba2fe0e9 100644 --- a/include/save.h +++ b/include/save.h @@ -23,9 +23,9 @@ enum READ_SAVE_CHECKSUM_ERROR }; - -struct UnkStruct_sub_8011DAC { - // size: 0x57D4 +// size: 0x57D4 +struct UnkStruct_sub_8011DAC +{ u8 fill000[0x4]; u8 unk004[0x400]; u8 gameInternalName[0x10]; // has "POKE_DUNGEON__05" @@ -45,8 +45,9 @@ struct UnkStruct_sub_8011DAC { u8 unk448[0x538C]; }; - -struct UnkStruct_203B184 { +// size: 0x5C +struct UnkStruct_203B184 +{ /* 0x0 */ TeamInventory *MoneyItems; /* 0x4 */ unkStruct_203B45C *recruitedPokemon; /* 0x8 */ unkStruct_203B480 *unk8; diff --git a/include/sprite.h b/include/sprite.h index 1bf4e163a..573edc194 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -3,7 +3,7 @@ #include "axdata.h" #include "ground_sprite.h" -#include "position.h" +#include "structs/str_position.h" #include "sprite_oam.h" // size: 0x8 diff --git a/include/status.h b/include/status.h index 011a987f3..98b290e79 100644 --- a/include/status.h +++ b/include/status.h @@ -1,7 +1,7 @@ #ifndef GUARD_STATUS_H #define GUARD_STATUS_H -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" #define FLASH_FIRE_STATUS_NONE 0 #define FLASH_FIRE_STATUS_MAXED 1 diff --git a/include/status_actions.h b/include/status_actions.h index 953bf93c8..174642611 100644 --- a/include/status_actions.h +++ b/include/status_actions.h @@ -2,7 +2,7 @@ #define GUARD_STATUS_ACTIONS_H #include "constants/move.h" -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" bool8 sub_805B668(Entity *pokemon, Entity *target, Move *move, s32 param_4); bool8 sub_805B734(Entity *pokemon, Entity *target); diff --git a/include/status_checks.h b/include/status_checks.h index 9de47e033..3bf06b6ef 100644 --- a/include/status_checks.h +++ b/include/status_checks.h @@ -1,7 +1,7 @@ #ifndef GUARD_STATUS_CHECKS_H #define GUARD_STATUS_CHECKS_H -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" extern const s16 gConfusedAttackChance; diff --git a/include/status_checks_1.h b/include/status_checks_1.h index 68b94027d..c44cfbe97 100644 --- a/include/status_checks_1.h +++ b/include/status_checks_1.h @@ -1,7 +1,7 @@ #ifndef GUARD_STATUS_CHECKS_1_H #define GUARD_STATUS_CHECKS_1_H -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" bool8 HasNegativeStatus(Entity *pokemon); bool8 IsSleeping(Entity *pokemon); diff --git a/include/dungeon_entity.h b/include/structs/dungeon_entity.h similarity index 99% rename from include/dungeon_entity.h rename to include/structs/dungeon_entity.h index 76f7ff7e7..3c6602677 100644 --- a/include/dungeon_entity.h +++ b/include/structs/dungeon_entity.h @@ -2,10 +2,10 @@ #define GUARD_DUNGEON_ENTITY_H #include "constants/global.h" -#include "constants/move.h" -#include "items.h" -#include "position.h" +#include "structs/str_position.h" #include "sprite.h" +#include "structs/str_items.h" +#include "structs/str_moves.h" #define MAX_STAT_STAGE 20 #define STAT_MULTIPLIER_THRESHOLD 63 diff --git a/include/map.h b/include/structs/map.h similarity index 95% rename from include/map.h rename to include/structs/map.h index 2ce5f1397..dda57e86f 100644 --- a/include/map.h +++ b/include/structs/map.h @@ -1,8 +1,8 @@ #ifndef GUARD_MAP_H #define GUARD_MAP_H -#include "dungeon_entity.h" -#include "position.h" +#include "structs/dungeon_entity.h" +#include "structs/str_position.h" #define MAX_ROOM_COUNT 24 // Empirical max, not sure if the code supports any more. #define CORRIDOR_ROOM 0xFF diff --git a/include/dungeon_global_data.h b/include/structs/str_dungeon.h similarity index 97% rename from include/dungeon_global_data.h rename to include/structs/str_dungeon.h index d41e27026..bb65b6992 100644 --- a/include/dungeon_global_data.h +++ b/include/structs/str_dungeon.h @@ -1,12 +1,12 @@ -#ifndef GUARD_DUNGEON_DATA_H -#define GUARD_DUNGEON_DATA_H +#ifndef GUARD_STR_DUNGEON_H +#define GUARD_STR_DUNGEON_H #include "global.h" #include "constants/monster.h" -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" #include "file_system.h" -#include "map.h" -#include "position.h" +#include "structs/map.h" +#include "structs/str_position.h" #include "sprite.h" #define DUNGEON_MAX_SIZE_X 56 @@ -202,7 +202,7 @@ typedef struct Dungeon /* 0x17B38 */ u32 unk17B38; /* 0x17B3C */ u32 unk17B3C; u8 fill17B40[0x17B44 - 0x17B40]; - /* 0x17B44 */ OpenedFile *sprites[MONSTER_MAX + 1]; + /* 0x17B44 */ OpenedFile *sprites[MONSTER_MAX]; /* 0x181E4 */ OpenedFile *paletFile; /* 0x181E8 */ Position cameraPos; /* 0x181EC */ Position cameraPosMirror; @@ -236,4 +236,4 @@ typedef struct Dungeon extern Dungeon *gDungeon; -#endif +#endif // GUARD_STR_DUNGEON_H \ No newline at end of file diff --git a/include/structs/str_items.h b/include/structs/str_items.h new file mode 100644 index 000000000..ab1933e6e --- /dev/null +++ b/include/structs/str_items.h @@ -0,0 +1,88 @@ +#ifndef GUARD_STR_ITEMS_H +#define GUARD_STR_ITEMS_H + +#include "constants/item.h" + +// size: 0x20 +typedef struct ItemDataEntry +{ + /* 0x0 */ u8 *name; + /* 0x4 */ u32 buyPrice; + /* 0x8 */ u32 sellPrice; + /* 0xC */ u8 category; + /* 0xD */ u8 icon; + /* 0x10 */ u8 *description; + // Determines how the AI can use the item. + // Index 0: Item can be used on self. + // Index 1: Item can be thrown at allies. + // Index 2: Item can be thrown at enemies. + /* 0x14 */ bool8 aiFlags[3]; + /* 0x18 */ s16 moveID; + /* 0x1A */ u8 order; // Numbered order they are in storage + /* 0x1B */ u8 spawnAmountRange[2]; + /* 0x1D */ u8 palette; + /* 0x1E */ u8 actionType; +} ItemDataEntry; + +// size: 0x4 +typedef struct Item +{ + /* 0x0 */ u8 flags; + /* 0x1 */ u8 quantity; + /* 0x2 */ u8 id; +} Item; + +// size: 0x4 +typedef struct BulkItem +{ + /* 0x0 */ u8 id; + /* 0x1 */ u8 quantity; +} BulkItem; + +// size: 0x4 +typedef struct Gummi +{ + /* 0x0 */ s16 boostAmount; + /* 0x2 */ u16 flags; +} Gummi; + +// size: 0xC +typedef struct unkStruct_8090F58 +{ + u32 unk0; + u8 unk4; + u8 unk5; + s16 unk6; + u8 unk8; +} unkStruct_8090F58; + +// size: 0x268 +typedef struct TeamInventory +{ + /* 0x0 */ Item teamItems[INVENTORY_SIZE]; + /* 0x50 */ u16 teamStorage[STORAGE_SIZE]; + /* 0x230 */ BulkItem kecleonShopItems[MAX_KECLEON_ITEM_SHOP_ITEMS]; + /* 0x250 */ BulkItem kecleonWareItems[MAX_KECLEON_WARE_SHOP_ITEMS]; + /* 0x260 */ s32 teamMoney; + /* 0x264 */ s32 teamSavings; +} TeamInventory; + +// TODO: These should be in constants/ + +enum ItemFlag +{ + ITEM_FLAG_EXISTS = 1 << 0, + ITEM_FLAG_IN_SHOP = 1 << 1, // in a Kecleon shop + ITEM_FLAG_UNPAID = 1 << 2, // Picked up in Kecleon shop but not paid for yet + ITEM_FLAG_STICKY = 1 << 3, + ITEM_FLAG_SET = 1 << 4 // This item can be thrown by pressing L+R instead of having to go to the bag menu. +}; + +enum ItemAIFlag +{ + ITEM_AI_FLAG_TARGET_SELF, + ITEM_AI_FLAG_TARGET_ALLY, + ITEM_AI_FLAG_TARGET_ENEMY +}; + +#endif // GUARD_STR_ITEMS_H \ No newline at end of file diff --git a/include/structs/str_moves.h b/include/structs/str_moves.h new file mode 100644 index 000000000..68b63ca97 --- /dev/null +++ b/include/structs/str_moves.h @@ -0,0 +1,42 @@ +#ifndef GUARD_STR_MOVES_H +#define GUARD_STR_MOVES_H + +#include "constants/move.h" + +// size: 0x24 +typedef struct MoveDataEntry +{ + /* 0x0 */ u8 *name; + /* 0x4 */ s16 basePower; + /* 0x6 */ u8 type; + // Determines the range of moves. + /* 0x8 */ u16 targetingFlags[2]; // 0 for player and 1 for AI + // The AI consider certain moves to have different range than they actually do. + /* 0xC */ u8 basePP; + /* 0xD */ u8 aiWeight; + // There are multiple accuracy values. These are define with the AccuracyType enum. + /* 0xE */ u8 accuracy[NUM_ACCURACY_TYPES]; + /* 0x11 */ u8 numberOfChainedHits; // Maximum number of times the move will hit. Used for multi-hit moves like Fury Attack. + /* 0x12 */ u8 maxUpgradeLevel; + /* 0x13 */ u8 critChance; + /* 0x14 */ bool8 affectedByMagicCoat; // If true, this move is reflected by Magic Coat. + /* 0x15 */ bool8 isSnatchable; + /* 0x16 */ bool8 usesMouth; // If true, this move can't be used with the Muzzled status. + /* 0x17 */ bool8 cannotHitFrozen; // Used by Status Checker to determine if a move can be used on a frozen target. + /* 0x18 */ bool8 ignoresTaunted; + /* 0x19 */ u8 rangeID; + /* 0x1C */ u8 *description; + /* 0x20 */ u8 *useText; // The text displayed when this move is used. +} MoveDataEntry; + +// size: 0x8 +typedef struct Move +{ + u8 moveFlags; + u8 moveFlags2; + u16 id; + u8 PP; + u8 ginseng; // How much the move is boosted by Ginsengs. +} Move; + +#endif // GUARD_STR_MOVES_H \ No newline at end of file diff --git a/include/structs/str_pokemon.h b/include/structs/str_pokemon.h new file mode 100644 index 000000000..b09029254 --- /dev/null +++ b/include/structs/str_pokemon.h @@ -0,0 +1,167 @@ +#ifndef GUARD_STR_POKEMON_H +#define GUARD_STR_POKEMON_H + +#include "constants/monster.h" +#include "structs/str_dungeon.h" +#include "structs/str_items.h" +#include "structs/str_moves.h" + +// size: 0x4 +typedef struct Offense +{ + /* 0x0 */ u8 att[2]; // Atk, SpAtk + /* 0x2 */ u8 def[2]; // Def, SpDef +} Offense; + +// size: 0x4 +typedef struct unkPokeSubStruct_C +{ + u8 level; + u8 fill1[3]; +} unkPokeSubStruct_C; + +// size: 0x58 +typedef struct PokemonStruct1 +{ + u16 unk0; // Probably a union: Sometimes ldrh and sometimes ldrb. Recruited?? + /* 0x2 */ bool8 isTeamLeader; + /* 0x3 */ u8 level; + /* 0x4 */ DungeonLocation dungeonLocation; + /* 0x8 */ s16 speciesNum; + unkPokeSubStruct_C unkC[2]; + /* 0x14 */ s16 IQ; + /* 0x16 */ u16 pokeHP; + /* 0x18 */ Offense offense; + /* 0x1C */ u32 currExp; + /* 0x20 */ u32 IQSkills; + /* 0x24 */ u8 tacticIndex; + /* 0x28 */ BulkItem heldItem; + /* 0x2C */ Move moves[MAX_MON_MOVES]; + /* 0x4C */ u8 name[POKEMON_NAME_LENGTH]; +} PokemonStruct1; + +// size: 0x4 +typedef struct unkStruct_808E6F4 +{ + s16 unk0; + u8 unk2; +} unkStruct_808E6F4; + +// size: 0x4 +typedef struct EvolveStage +{ + /* 0x0 */ s16 speciesNum; + /* 0x2 */ u8 level; +} EvolveStage; + +// size: 0x24 +typedef struct unkStruct_8094184 +{ + /* 0x0 */ Move moves[MAX_MON_MOVES]; + u8 unk20; +} unkStruct_8094184; + +// size: 0x64 +typedef struct PokemonStruct2 +{ + u16 unk0; // corresponds to unk0 in PokemonStruct + /* 0x2 */ bool8 isTeamLeader; + /* 0x3 */ u8 level; + /* 0x4 */ DungeonLocation dungeonLocation; + /* 0x8 */ u16 IQ; + s16 unkA; + u16 unkC; + /* 0xE */ s16 speciesNum; + u16 unk10; // pokeHP + u16 unk12; // pokeHP + /* 0x14 */ Offense offense; // offense (other offset) + /* 0x18 */ u32 currExp; + /* 0x1C */ unkStruct_8094184 moves; + /* 0x40 */ Item itemSlot; // heldItem + u32 unk44; // some struct + u32 unk48; // some struct (same type as 44) + /* 0x4C */ u32 IQSkills; // unk20 + /* 0x50 */ u8 tacticIndex; + unkStruct_808E6F4 unk54; + /* 0x58 */ u8 name[POKEMON_NAME_LENGTH]; // name (other offset) +} PokemonStruct2; + +// size: 0x90E8 +typedef struct unkStruct_203B45C +{ + /* 0x0 */ PokemonStruct1 pokemon[NUM_MONSTERS]; + /* 0x8DF8 */ PokemonStruct2 pokemon2[4]; + /* 0x8F88 */ PokemonStruct1 team[MAX_TEAM_MEMBERS]; +} unkStruct_203B45C; + +// size: 0x4 +typedef struct PreEvolution +{ + /* 0x0 */ s16 evolveFrom; + /* 0x2 */ u16 evolveType; +} PreEvolution; + +// size: 0x4 +typedef struct EvolutionRequirements +{ + /* 0x0 */ s16 mainRequirement; + /* 0x2 */ u16 additionalRequirement; +} EvolutionRequirements; + +// size: 0x8 +typedef struct unkEvolve +{ + /* 0x0 */ PreEvolution preEvolution; + /* 0x4 */ EvolutionRequirements evolutionRequirements; +} unkEvolve; + +// size: 0x48 +typedef struct MonsterDataEntry +{ + /* 0x0 */ u8* species; + /* 0x4 */ u8* category; + /* 0x8 */ u8 overworldPalette; + /* 0x9 */ u8 bodySize; + /* 0xC */ s32 movementSpeed; + /* 0x10 */ u16 dialogueSprites; // Bitwise flags for whether a dialogue sprite/portrait is available for each emotion. + bool8 unk12; + /* 0x13 */ u8 types[2]; + /* 0x15 */ u8 movementType; + /* 0x16 */ u8 friendArea; + /* 0x17 */ u8 abilities[2]; + /* 0x19 */ u8 shadowSize; + u8 fill1A; // 0 for all Pokémon. + /* 0x1B */ u8 regenSpeed; // 100 for all Pokémon. + /* 0x1C */ bool8 canMove; // Set to false for Pokémon who don't move unless they're the leader, like Kakuna. + /* 0x1D */ u8 chanceAsleep; + /* 0x1E */ u16 baseHP; + /* 0x20 */ s32 expYield; + /* 0x24 */ u16 baseAtkSpAtk[2]; + /* 0x28 */ u16 baseDefSpDef[2]; + /* 0x2C */ u16 weight; + /* 0x2E */ u16 size; + u8 unk30; // 10 for all Pokémon. + u8 unk31; // 10 for all Pokémon. + u8 unk32; // 24 for all Pokémon. + /* 0x33 */ bool8 toolboxEnabled; // If false, the AI can't use items. Doesn't seem to be used, as it's true for all Pokémon. + /* 0x34 */ PreEvolution preEvolution; + /* 0x38 */ EvolutionRequirements evolutionRequirements; + /* 0x3C */ s16 dexInternal[2]; // dexNo and internalNo + /* 0x40 */ s16 recruitRate; + /* 0x42 */ s16 alphabetParent[2]; // alphabetNo and parentNo +} MonsterDataEntry; + +// size: 0xC | https://www.pokecommunity.com/showthread.php?t=407371 +typedef struct LevelData +{ + /* 0x0 */ s32 expRequired; + /* 0x4 */ u8 gainHP; + /* 0x5 */ u8 gainUnused; + /* 0x6 */ u8 gainAtt; + /* 0x7 */ u8 gainSPAtt; + /* 0x8 */ u8 gainDef; + /* 0x9 */ u8 gainSPDef; + u16 fillA; +} LevelData; + +#endif // GUARD_STR_POKEMON_H \ No newline at end of file diff --git a/include/position.h b/include/structs/str_position.h similarity index 68% rename from include/position.h rename to include/structs/str_position.h index f2be31c70..cfd0f7701 100644 --- a/include/position.h +++ b/include/structs/str_position.h @@ -1,5 +1,5 @@ -#ifndef GUARD_POSITION_H -#define GUARD_POSITION_H +#ifndef GUARD_STR_POSITION_H +#define GUARD_STR_POSITION_H // size: 0x4 typedef struct Position @@ -15,4 +15,4 @@ typedef struct Position32 /* 0x4 */ s32 y; } Position32; -#endif // GUARD_POSITION_H \ No newline at end of file +#endif // GUARD_STR_POSITION_H \ No newline at end of file diff --git a/include/text.h b/include/structs/str_text.h similarity index 94% rename from include/text.h rename to include/structs/str_text.h index c1fdee4a9..d30e4756c 100644 --- a/include/text.h +++ b/include/structs/str_text.h @@ -1,5 +1,5 @@ -#ifndef GUARD_TEXT_H -#define GUARD_TEXT_H +#ifndef GUARD_STR_TEXT_H +#define GUARD_STR_TEXT_H // size: 0x48 typedef struct UnkTextStruct1 @@ -58,4 +58,4 @@ typedef struct UnkTextStruct2 const u8 *unk14; } UnkTextStruct2; -#endif // GUARD_TEXT_H \ No newline at end of file +#endif // GUARD_STR_TEXT_H \ No newline at end of file diff --git a/include/subStruct_203B240.h b/include/structs/subStruct_203B240.h similarity index 55% rename from include/subStruct_203B240.h rename to include/structs/subStruct_203B240.h index 882102e1f..422c6b4de 100644 --- a/include/subStruct_203B240.h +++ b/include/structs/subStruct_203B240.h @@ -1,11 +1,11 @@ #ifndef GUARD_SUBSTRUCT_203B240_H #define GUARD_SUBSTRUCT_203B240_H +// size: 0x8 struct subStruct_203B240 { - char * pokeName; - char * unk4; + u8 *pokeName; + u8 *unk4; }; - -#endif +#endif // GUARD_SUBSTRUCT_203B240_H \ No newline at end of file diff --git a/include/targeting.h b/include/targeting.h index 647e7291a..e4602f3fb 100644 --- a/include/targeting.h +++ b/include/targeting.h @@ -1,7 +1,7 @@ #ifndef GUARD_TARGETING_H #define GUARD_TARGETING_H -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" void TargetTileInFront(Entity *pokemon); diff --git a/include/targeting_flags.h b/include/targeting_flags.h index eddbe8d71..7960d5c0a 100644 --- a/include/targeting_flags.h +++ b/include/targeting_flags.h @@ -2,7 +2,7 @@ #define GUARD_TARGETING_FLAGS_H #include "constants/move.h" -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" s16 GetMoveTargetAndRangeForPokemon(Entity *pokemon, Move *move, bool32 isAI); diff --git a/include/text1.h b/include/text1.h index 4b7acb1f8..fa1e70186 100644 --- a/include/text1.h +++ b/include/text1.h @@ -1,7 +1,7 @@ #ifndef GUARD_TEXT1_H #define GUARD_TEXT1_H -#include "text.h" +#include "structs/str_text.h" extern UnkTextStruct1 gUnknown_2027370[4]; extern UnkTextStruct2 gUnknown_202AFC0[4]; diff --git a/include/text2.h b/include/text2.h index 9520dfe35..2b526dbed 100644 --- a/include/text2.h +++ b/include/text2.h @@ -1,7 +1,7 @@ #ifndef GUARD_TEXT2_H #define GUARD_TEXT2_H -#include "text.h" +#include "structs/str_text.h" // size: 0x10 struct unkShiftData diff --git a/include/tile_types.h b/include/tile_types.h index e83466f19..0c7edcd75 100644 --- a/include/tile_types.h +++ b/include/tile_types.h @@ -1,7 +1,7 @@ #ifndef GUARD_TILE_TYPES_H #define GUARD_TILE_TYPES_H -#include "map.h" +#include "structs/map.h" #define DUNGEON_WATER_TYPE_NONE 0 #define DUNGEON_WATER_TYPE_LAVA 1 diff --git a/include/trade_items_menu.h b/include/trade_items_menu.h index f55cf086a..b409692e3 100644 --- a/include/trade_items_menu.h +++ b/include/trade_items_menu.h @@ -1,7 +1,7 @@ #ifndef GUARD_TRADE_ITEMS_MENU_H #define GUARD_TRADE_ITEMS_MENU_H -#include "text.h" +#include "structs/str_text.h" #include "items.h" #include "menu.h" diff --git a/include/trap.h b/include/trap.h index 67db9287d..6781e9fc2 100644 --- a/include/trap.h +++ b/include/trap.h @@ -1,7 +1,7 @@ #ifndef GUARD_TRAP_H #define GUARD_TRAP_H -#include "position.h" +#include "structs/str_position.h" bool8 CanLayTrap(Position *pos); diff --git a/include/type_effectiveness.h b/include/type_effectiveness.h index 61d7975a7..3cb0a0778 100644 --- a/include/type_effectiveness.h +++ b/include/type_effectiveness.h @@ -1,7 +1,7 @@ #ifndef GUARD_TYPE_EFFECTIVENESS_H #define GUARD_TYPE_EFFECTIVENESS_H -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" s32 WeightWeakTypePicker(Entity *user, Entity *target, u8 moveType); diff --git a/include/weather.h b/include/weather.h index 9b45f9883..f1a0407ac 100644 --- a/include/weather.h +++ b/include/weather.h @@ -1,7 +1,7 @@ #ifndef GUARD_WEATHER_H #define GUARD_WEATHER_H -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" u8 GetApparentWeather(Entity *pokemon); diff --git a/include/wigglytuff_shop1.h b/include/wigglytuff_shop1.h index f58172469..86cf59dbc 100644 --- a/include/wigglytuff_shop1.h +++ b/include/wigglytuff_shop1.h @@ -3,7 +3,7 @@ #include "constants/friend_area.h" #include "menu.h" -#include "text.h" +#include "structs/str_text.h" typedef struct WigglytuffShop1Work { diff --git a/include/wigglytuff_shop2.h b/include/wigglytuff_shop2.h index ea7442c8e..68a73faa8 100644 --- a/include/wigglytuff_shop2.h +++ b/include/wigglytuff_shop2.h @@ -2,7 +2,7 @@ #define GUARD_WIGGLYTUFF_SHOP2_H #include "input.h" -#include "text.h" +#include "structs/str_text.h" typedef struct WigglytuffShop2Work { diff --git a/include/wigglytuff_shop3.h b/include/wigglytuff_shop3.h index bf971dc98..7525511ae 100644 --- a/include/wigglytuff_shop3.h +++ b/include/wigglytuff_shop3.h @@ -3,7 +3,7 @@ #include "file_system.h" #include "menu.h" -#include "text.h" +#include "structs/str_text.h" enum WigglytuffStates { diff --git a/include/wonder_mail.h b/include/wonder_mail.h index 8794f94f5..e30e7a595 100644 --- a/include/wonder_mail.h +++ b/include/wonder_mail.h @@ -7,7 +7,7 @@ #include "items.h" #include "menu.h" #include "pokemon.h" -#include "text.h" +#include "structs/str_text.h" // size: 0x28 typedef struct unkStruct_802F204 diff --git a/include/wonder_mail_2_1.h b/include/wonder_mail_2_1.h index 660d1506f..8a5be2d8c 100644 --- a/include/wonder_mail_2_1.h +++ b/include/wonder_mail_2_1.h @@ -5,7 +5,7 @@ #include "constants/mailbox.h" #include "input.h" #include "menu.h" -#include "text.h" +#include "structs/str_text.h" // size: 0xA8 struct unkStruct_203B2E8 diff --git a/include/wonder_mail_3.h b/include/wonder_mail_3.h index 9bc3bc55c..4aa751a4c 100644 --- a/include/wonder_mail_3.h +++ b/include/wonder_mail_3.h @@ -4,7 +4,7 @@ #include "code_802C39C.h" #include "input.h" #include "menu.h" -#include "text.h" +#include "structs/str_text.h" #include "wonder_mail.h" // size: 0xB4 diff --git a/ld_script.txt b/ld_script.txt index d4b0e54a8..ae7a88863 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -121,10 +121,8 @@ SECTIONS { src/wigglytuff_shop1.o(.text); src/wigglytuff_shop2.o(.text); src/wigglytuff_shop3.o(.text); - src/code_8023144_pre.o(.text); - asm/code_8023144.o(.text); + src/code_80227B8.o(.text); src/code_8023144.o(.text); - asm/code_801EE10_1.o(.text); asm/code_8023868.o(.text); src/code_8023868.o(.text); src/code_8024458.o(.text); @@ -437,7 +435,8 @@ SECTIONS { src/wigglytuff_shop1.o(.rodata); src/wigglytuff_shop2.o(.rodata); src/wigglytuff_shop3.o(.rodata); - data/data_80DC464.o(.rodata); + src/code_80227B8.o(.rodata); + src/code_8023144.o(.rodata); src/code_8023868.o(.rodata); src/code_8024458.o(.rodata); src/luminous_cave.o(.rodata); diff --git a/src/code_801D014.c b/src/code_801D014.c index f8b6a17d7..62011ec3d 100644 --- a/src/code_801D014.c +++ b/src/code_801D014.c @@ -4,7 +4,7 @@ #include "code_80130A8.h" #include "code_801BEEC.h" #include "code_801D014.h" -#include "code_8023144.h" +#include "code_80227B8.h" #include "code_8023868.h" #include "code_8024458.h" #include "code_8096AF8.h" diff --git a/src/code_801EE10_mid.c b/src/code_801EE10_mid.c index 6ff2742a7..387cc8b43 100644 --- a/src/code_801EE10_mid.c +++ b/src/code_801EE10_mid.c @@ -7,7 +7,7 @@ #include "moves.h" #include "code_801EE10.h" #include "menu_input.h" -#include "subStruct_203B240.h" +#include "structs/subStruct_203B240.h" #include "sprite.h" #include "code_80130A8.h" #include "code_801EE10_mid.h" @@ -333,9 +333,9 @@ void sub_801F930(void) void sub_801F9A4(void) { - char **name; - switch(gUnknown_203B278->state) - { + u8 **name; + + switch (gUnknown_203B278->state) { case 0: sub_8008C54(gUnknown_203B278->unk5C); gUnknown_203B278->unk8 = gUnknown_203B278->moveIDs[gUnknown_203B278->unk28.unk1E]; diff --git a/src/code_80227B8.c b/src/code_80227B8.c new file mode 100644 index 000000000..ebdc1628e --- /dev/null +++ b/src/code_80227B8.c @@ -0,0 +1,852 @@ +#include "global.h" +#include "code_80130A8.h" +#include "code_801AFA4.h" +#include "code_801B3C0.h" +#include "code_80227B8.h" +#include "code_8098BDC.h" +#include "common_strings.h" +#include "constants/colors.h" +#include "kecleon_bros4.h" +#include "memory.h" +#include "menu_input.h" +#include "pokemon_3.h" +#include "text1.h" +#include "text2.h" + +extern u8 gUnknown_202DE58[]; +extern u8 gAvailablePokemonNames[]; // 202DF98 + +static EWRAM_DATA_2 unkStruct_203B294 *sUnknown_203B294 = {0}; + +#include "data/code_80227B8.h" + +static void sub_8022924(s32 newState); +static void sub_802293C(void); +static void sub_8022A10(void); +static void sub_8022D2C(void); +static void sub_8022E78(void); +static void sub_8022EF4(void); +static void sub_8023068(void); +static void sub_80230E8(void); +static void sub_8023104(void); +static void sub_8023120(void); + +bool8 sub_80227B8(PokemonStruct1 *pkmn) +{ + ResetUnusedInputStruct(); + sub_800641C(NULL, TRUE, TRUE); + + sUnknown_203B294 = MemoryAlloc(sizeof(unkStruct_203B294), 8); + sUnknown_203B294->menuAction = 0; + sUnknown_203B294->pokeStruct = pkmn; + + if (pkmn != NULL) { + PrintColoredPokeNameToBuffer(gAvailablePokemonNames, pkmn, COLOR_WHITE_2); + PrintColoredPokeNameToBuffer(gAvailablePokemonNames + 80, pkmn, COLOR_YELLOW); + + if (HasGummiItem()) + sub_8022924(0); + else + sub_8022924(17); + } + else { + strcpy(gAvailablePokemonNames, sTripleQuestionMark); + strcpy(gAvailablePokemonNames + 80, sTripleQuestionMark); + + if (GetNumberOfFilledInventorySlots() == 0) + sub_8022924(18); + else + sub_8022924(00); + } + + return TRUE; +} + +u32 sub_8022860(void) +{ + switch (sUnknown_203B294->state) { + case 0: + case 1: + sub_8022E78(); + break; + case 2: + sub_8022EF4(); + break; + case 3: + sub_8023068(); + break; + case 4: + sub_80230E8(); + break; + case 0x15: + sub_8023104(); + break; + case 0x16: + return 3; + default: + sub_8023120(); + break; + } + return 0; +} + +void sub_8022908(void) +{ + if (sUnknown_203B294) { + MemoryFree(sUnknown_203B294); + sUnknown_203B294 = NULL; + } +} + +static void sub_8022924(s32 newState) +{ + sUnknown_203B294->state = newState; + sub_802293C(); + sub_8022A10(); +} + +static void sub_802293C(void) +{ + s32 i; + + sub_8006518(sUnknown_203B294->unk148); + + switch (sUnknown_203B294->state) { + case 2: + sub_8022D2C(); + sUnknown_203B294->unk148[2] = sUnknown_80DC5BC; + sub_8012CAC(&sUnknown_203B294->unk148[2], sUnknown_203B294->unkF8); + sUnknown_203B294->unk148[2].unkC = 6; + break; + case 3: + sUnknown_203B294->unk148[1] = sUnknown_80DC5D4; + break; + default: + for (i = 0; i < 4; i++) + sUnknown_203B294->unk148[i] = sUnknown_80DC5A4; + break; + case 10 ... 16: + break; + } + + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B294->unk148, TRUE, TRUE); +} + +#ifdef NONMATCHING // 90.42%. Functionally equivalent but code is placed in the wrong location: https://decomp.me/scratch/HzklC +static void sub_8022A10(void) +{ + s32 r3; + bool8 r5; + bool8 r6; + + switch (sUnknown_203B294->state) { + case 0: + if (sUnknown_203B294->pokeStruct != NULL) + sub_801A5D8(5, 3, NULL, 10); + else + sub_801A5D8(1, 3, NULL, 10); + break; + case 1: + sub_801A8D0(TRUE); + break; + case 2: + sub_801A9E0(); + sub_8012D60(&sUnknown_203B294->unk54, sUnknown_203B294->unkF8, 0, sUnknown_203B294->unk138, sUnknown_203B294->menuAction, 2); + break; + case 3: + sub_801A9E0(); + sub_8012EA4(&sUnknown_203B294->unk54, FALSE); + sub_8012D60(&sUnknown_203B294->unkA4, sUnknown_80DC584, 0, 0, 3, 1); + break; + case 4: + sub_801B3C0(&sUnknown_203B294->item); + break; + case 5: + sub_80141B4(sDoesNotAppearHungry, 0, 0, 0x301); + break; + case 6: + sub_80141B4(sFmtGummiBigFav, 0, 0, 0x101); + break; + case 7: + sub_80141B4(sFmtGummiFav, 0, 0, 0x101); + break; + case 8: + sub_80141B4(sFmtGummiOkay, 0, 0, 0x101); + break; + case 9: + sub_80141B4(sFmtGummiSatisfied, 0, 0, 0x101); + break; + case 10: + while (++sUnknown_203B294->unk40 < NUM_IQ_SKILLS) { + r5 = FALSE; + r6 = FALSE; + + for (r3 = 0; r3 < sUnknown_203B294->availIQSkillPreGummi; r3++) { + if (sUnknown_203B294->iqSkillPreGummi[r3] == sUnknown_203B294->unk40) { + r5 = TRUE; + break; + } + } + + for (r3 = 0; r3 < sUnknown_203B294->availIQSkillPostGummi; r3++) { + if (sUnknown_203B294->iqSkillPostGummi[r3] == sUnknown_203B294->unk40) { + r6 = TRUE; + break; + } + } + + if (r5 != r6) { + sUnknown_203B294->fallbackState = 10; + strcpy(gUnknown_202DEA8, GetIQSkillName(sUnknown_203B294->unk40)); + PlaySound(203); + sub_80141B4(sFmtIQHelpedLearn, 0, 0, 0x101); + sUnknown_203B294->unk40++; + break; + } + } + if (sUnknown_203B294->unk40 >= NUM_IQ_SKILLS) + sub_8022924(11); + break; + case 11: + sUnknown_203B294->fallbackState = 22; + nullsub_104(); + + switch (sUnknown_203B294->gummi.flags) { + case 0: + sub_8022924(22); + break; + case 1: + sub_8022924(13); + break; + case 2: + sub_8022924(14); + break; + case 4: + sub_8022924(15); + break; + case 8: + sub_8022924(16); + break; + default: + sub_8022924(12); + break; + } + break; + case 12: + sub_80141B4(sFmtPlusEverything, 0, 0, 0x301); + break; + case 13: + sub_80141B4(sFmtPlusAtk, 0, 0, 0x301); + break; + case 14: + sub_80141B4(sFmtPlusSpAtk, 0, 0, 0x301); + break; + case 15: + sub_80141B4(sFmtPlusDef, 0, 0, 0x301); + break; + case 16: + sub_80141B4(sFmtPlusSpDef, 0, 0, 0x301); + break; + case 17: + sUnknown_203B294->fallbackState = 22; + sub_80141B4(sNoGummis, 0, 0, 0x301); + break; + case 18: + sUnknown_203B294->fallbackState = 22; + sub_80141B4(sNoItem, 0, 0, 0x301); + break; + case 19: + sUnknown_203B294->fallbackState = 22; + sub_80141B4(sGummiGone, 0, 0, 0x301); + break; + case 20: + sUnknown_203B294->fallbackState = 22; + sub_80141B4(sItemGone, 0, 0, 0x301); + break; + case 21: + sub_801AFA4(sUnknown_203B294->itemIndex); + break; + case 22: + default: + sub_801A928(); + break; + } +} +#else +NAKED static void sub_8022A10(void) +{ + asm_unified( + "\tpush {r4-r7,lr}\n" + "\tsub sp, 0x8\n" + "\tldr r1, _08022A2C\n" + "\tldr r0, [r1]\n" + "\tldr r0, [r0]\n" + "\tadds r4, r1, 0\n" + "\tcmp r0, 0x16\n" + "\tbls _08022A22\n" + "\tb _08022D1E\n" +"_08022A22:\n" + "\tlsls r0, 2\n" + "\tldr r1, _08022A30\n" + "\tadds r0, r1\n" + "\tldr r0, [r0]\n" + "\tmov pc, r0\n" + "\t.align 2, 0\n" +"_08022A2C: .4byte sUnknown_203B294\n" +"_08022A30: .4byte _08022A34\n" + "\t.align 2, 0\n" +"_08022A34:\n" + "\t.4byte _08022A90\n" + "\t.4byte _08022AAA\n" + "\t.4byte _08022AB2\n" + "\t.4byte _08022AE0\n" + "\t.4byte _08022B10\n" + "\t.4byte _08022B1A\n" + "\t.4byte _08022B24\n" + "\t.4byte _08022B34\n" + "\t.4byte _08022B44\n" + "\t.4byte _08022B54\n" + "\t.4byte _08022B64\n" + "\t.4byte _08022C28\n" + "\t.4byte _08022CA0\n" + "\t.4byte _08022CA8\n" + "\t.4byte _08022CB0\n" + "\t.4byte _08022CB8\n" + "\t.4byte _08022CC0\n" + "\t.4byte _08022CC8\n" + "\t.4byte _08022CD8\n" + "\t.4byte _08022CE8\n" + "\t.4byte _08022CF8\n" + "\t.4byte _08022D14\n" + "\t.4byte _08022D1E\n" +"_08022A90:\n" + "\tldr r0, [r4]\n" + "\tldr r0, [r0, 0x48]\n" + "\tcmp r0, 0\n" + "\tbeq _08022A9C\n" + "\tmovs r0, 0x5\n" + "\tb _08022A9E\n" +"_08022A9C:\n" + "\tmovs r0, 0x1\n" +"_08022A9E:\n" + "\tmovs r1, 0x3\n" + "\tmovs r2, 0\n" + "\tmovs r3, 0xA\n" + "\tbl sub_801A5D8\n" + "\tb _08022D22\n" +"_08022AAA:\n" + "\tmovs r0, 0x1\n" + "\tbl sub_801A8D0\n" + "\tb _08022D22\n" +"_08022AB2:\n" + "\tbl sub_801A9E0\n" + "\tldr r0, _08022ADC\n" + "\tldr r2, [r0]\n" + "\tadds r0, r2, 0\n" + "\tadds r0, 0x54\n" + "\tadds r1, r2, 0\n" + "\tadds r1, 0xF8\n" + "\tmovs r4, 0x9C\n" + "\tlsls r4, 1\n" + "\tadds r3, r2, r4\n" + "\tadds r2, 0xF4\n" + "\tldr r2, [r2]\n" + "\tstr r2, [sp]\n" + "\tmovs r2, 0x2\n" + "\tstr r2, [sp, 0x4]\n" + "\tmovs r2, 0\n" + "\tbl sub_8012D60\n" + "\tb _08022D22\n" + "\t.align 2, 0\n" +"_08022ADC: .4byte sUnknown_203B294\n" +"_08022AE0:\n" + "\tbl sub_801A9E0\n" + "\tldr r4, _08022B08\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x54\n" + "\tmovs r1, 0\n" + "\tbl sub_8012EA4\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0xA4\n" + "\tldr r1, _08022B0C\n" + "\tmovs r2, 0x3\n" + "\tstr r2, [sp]\n" + "\tmovs r2, 0x1\n" + "\tstr r2, [sp, 0x4]\n" + "\tmovs r2, 0\n" + "\tmovs r3, 0\n" + "\tbl sub_8012D60\n" + "\tb _08022D22\n" + "\t.align 2, 0\n" +"_08022B08: .4byte sUnknown_203B294\n" +"_08022B0C: .4byte sUnknown_80DC584\n" +"_08022B10:\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x50\n" + "\tbl sub_801B3C0\n" + "\tb _08022D22\n" +"_08022B1A:\n" + "\tldr r0, _08022B20\n" + "\tb _08022D00\n" + "\t.align 2, 0\n" +"_08022B20: .4byte sDoesNotAppearHungry\n" +"_08022B24:\n" + "\tldr r0, _08022B2C\n" + "\tldr r3, _08022B30\n" + "\tb _08022D02\n" + "\t.align 2, 0\n" +"_08022B2C: .4byte sFmtGummiBigFav\n" +"_08022B30: .4byte 0x00000101\n" +"_08022B34:\n" + "\tldr r0, _08022B3C\n" + "\tldr r3, _08022B40\n" + "\tb _08022D02\n" + "\t.align 2, 0\n" +"_08022B3C: .4byte sFmtGummiFav\n" +"_08022B40: .4byte 0x00000101\n" +"_08022B44:\n" + "\tldr r0, _08022B4C\n" + "\tldr r3, _08022B50\n" + "\tb _08022D02\n" + "\t.align 2, 0\n" +"_08022B4C: .4byte sFmtGummiOkay\n" +"_08022B50: .4byte 0x00000101\n" +"_08022B54:\n" + "\tldr r0, _08022B5C\n" + "\tldr r3, _08022B60\n" + "\tb _08022D02\n" + "\t.align 2, 0\n" +"_08022B5C: .4byte sFmtGummiSatisfied\n" +"_08022B60: .4byte 0x00000101\n" +"_08022B64:\n" + "\tldr r7, _08022B68\n" + "\tb _08022B78\n" + "\t.align 2, 0\n" +"_08022B68: .4byte sUnknown_203B294\n" +"_08022B6C:\n" + "\tldr r1, [r4]\n" + "\tldr r0, [r1, 0x40]\n" + "\tadds r0, 0x1\n" + "\tstr r0, [r1, 0x40]\n" + "\tcmp r0, 0x17\n" + "\tbgt _08022C10\n" +"_08022B78:\n" + "\tmovs r5, 0\n" + "\tmovs r6, 0\n" + "\tmovs r3, 0\n" + "\tldr r2, [r4]\n" + "\tldr r0, [r2, 0x38]\n" + "\tcmp r5, r0\n" + "\tbge _08022BA4\n" + "\tldrb r1, [r2, 0x8]\n" + "\tb _08022B9C\n" +"_08022B8A:\n" + "\tadds r3, 0x1\n" + "\tldr r2, [r4]\n" + "\tldr r0, [r2, 0x38]\n" + "\tcmp r3, r0\n" + "\tbge _08022BA4\n" + "\tadds r0, r2, 0\n" + "\tadds r0, 0x8\n" + "\tadds r0, r3\n" + "\tldrb r1, [r0]\n" +"_08022B9C:\n" + "\tldr r0, [r2, 0x40]\n" + "\tcmp r1, r0\n" + "\tbne _08022B8A\n" + "\tmovs r5, 0x1\n" +"_08022BA4:\n" + "\tmovs r3, 0\n" + "\tldr r2, [r4]\n" + "\tldr r0, [r2, 0x3C]\n" + "\tcmp r3, r0\n" + "\tbge _08022BCE\n" + "\tadds r0, r2, 0\n" + "\tadds r0, 0x20\n" + "\tb _08022BC4\n" +"_08022BB4:\n" + "\tadds r3, 0x1\n" + "\tldr r2, [r4]\n" + "\tldr r0, [r2, 0x3C]\n" + "\tcmp r3, r0\n" + "\tbge _08022BCE\n" + "\tadds r0, r2, 0\n" + "\tadds r0, 0x20\n" + "\tadds r0, r3\n" +"_08022BC4:\n" + "\tldrb r1, [r0]\n" + "\tldr r0, [r2, 0x40]\n" + "\tcmp r1, r0\n" + "\tbne _08022BB4\n" + "\tmovs r6, 0x1\n" +"_08022BCE:\n" + "\tcmp r5, r6\n" + "\tbeq _08022B6C\n" + "\tldr r1, [r7]\n" + "\tmovs r0, 0xA\n" + "\tstr r0, [r1, 0x4]\n" + "\tldr r0, [r1, 0x40]\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tbl GetIQSkillName\n" + "\tadds r1, r0, 0\n" + "\tldr r0, _08022C18\n" + "\tbl strcpy\n" + "\tmovs r0, 0xCB\n" + "\tbl PlaySound\n" + "\tldr r0, _08022C1C\n" + "\tmovs r1, 0\n" + "\tmovs r2, 0\n" + "\tldr r3, _08022C20\n" + "\tbl sub_80141B4\n" + "\tldr r1, [r7]\n" + "\tldr r0, [r1, 0x40]\n" + "\tadds r0, 0x1\n" + "\tstr r0, [r1, 0x40]\n" + "\tldr r0, _08022C24\n" + "\tldr r0, [r0]\n" + "\tldr r0, [r0, 0x40]\n" + "\tcmp r0, 0x17\n" + "\tbgt _08022C10\n" + "\tb _08022D22\n" +"_08022C10:\n" + "\tmovs r0, 0xB\n" + "\tbl sub_8022924\n" + "\tb _08022D22\n" + "\t.align 2, 0\n" +"_08022C18: .4byte gUnknown_202DEA8\n" +"_08022C1C: .4byte sFmtIQHelpedLearn\n" +"_08022C20: .4byte 0x00000101\n" +"_08022C24: .4byte sUnknown_203B294\n" +"_08022C28:\n" + "\tldr r1, [r4]\n" + "\tmovs r0, 0x16\n" + "\tstr r0, [r1, 0x4]\n" + "\tbl nullsub_104\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x46\n" + "\tldrh r0, [r0]\n" + "\tcmp r0, 0x8\n" + "\tbhi _08022C98\n" + "\tlsls r0, 2\n" + "\tldr r1, _08022C48\n" + "\tadds r0, r1\n" + "\tldr r0, [r0]\n" + "\tmov pc, r0\n" + "\t.align 2, 0\n" +"_08022C48: .4byte _08022C4C\n" + "\t.align 2, 0\n" +"_08022C4C:\n" + "\t.4byte _08022C70\n" + "\t.4byte _08022C78\n" + "\t.4byte _08022C80\n" + "\t.4byte _08022C98\n" + "\t.4byte _08022C88\n" + "\t.4byte _08022C98\n" + "\t.4byte _08022C98\n" + "\t.4byte _08022C98\n" + "\t.4byte _08022C90\n" +"_08022C70:\n" + "\tmovs r0, 0x16\n" + "\tbl sub_8022924\n" + "\tb _08022D22\n" +"_08022C78:\n" + "\tmovs r0, 0xD\n" + "\tbl sub_8022924\n" + "\tb _08022D22\n" +"_08022C80:\n" + "\tmovs r0, 0xE\n" + "\tbl sub_8022924\n" + "\tb _08022D22\n" +"_08022C88:\n" + "\tmovs r0, 0xF\n" + "\tbl sub_8022924\n" + "\tb _08022D22\n" +"_08022C90:\n" + "\tmovs r0, 0x10\n" + "\tbl sub_8022924\n" + "\tb _08022D22\n" +"_08022C98:\n" + "\tmovs r0, 0xC\n" + "\tbl sub_8022924\n" + "\tb _08022D22\n" +"_08022CA0:\n" + "\tldr r0, _08022CA4\n" + "\tb _08022D00\n" + "\t.align 2, 0\n" +"_08022CA4: .4byte sFmtPlusEverything\n" +"_08022CA8:\n" + "\tldr r0, _08022CAC\n" + "\tb _08022D00\n" + "\t.align 2, 0\n" +"_08022CAC: .4byte sFmtPlusAtk\n" +"_08022CB0:\n" + "\tldr r0, _08022CB4\n" + "\tb _08022D00\n" + "\t.align 2, 0\n" +"_08022CB4: .4byte sFmtPlusSpAtk\n" +"_08022CB8:\n" + "\tldr r0, _08022CBC\n" + "\tb _08022D00\n" + "\t.align 2, 0\n" +"_08022CBC: .4byte sFmtPlusDef\n" +"_08022CC0:\n" + "\tldr r0, _08022CC4\n" + "\tb _08022D00\n" + "\t.align 2, 0\n" +"_08022CC4: .4byte sFmtPlusSpDef\n" +"_08022CC8:\n" + "\tldr r1, [r4]\n" + "\tmovs r0, 0x16\n" + "\tstr r0, [r1, 0x4]\n" + "\tldr r0, _08022CD4\n" + "\tb _08022D00\n" + "\t.align 2, 0\n" +"_08022CD4: .4byte sNoGummis\n" +"_08022CD8:\n" + "\tldr r1, [r4]\n" + "\tmovs r0, 0x16\n" + "\tstr r0, [r1, 0x4]\n" + "\tldr r0, _08022CE4\n" + "\tb _08022D00\n" + "\t.align 2, 0\n" +"_08022CE4: .4byte sNoItem\n" +"_08022CE8:\n" + "\tldr r1, [r4]\n" + "\tmovs r0, 0x16\n" + "\tstr r0, [r1, 0x4]\n" + "\tldr r0, _08022CF4\n" + "\tb _08022D00\n" + "\t.align 2, 0\n" +"_08022CF4: .4byte sGummiGone\n" +"_08022CF8:\n" + "\tldr r1, [r4]\n" + "\tmovs r0, 0x16\n" + "\tstr r0, [r1, 0x4]\n" + "\tldr r0, _08022D0C\n" +"_08022D00:\n" + "\tldr r3, _08022D10\n" +"_08022D02:\n" + "\tmovs r1, 0\n" + "\tmovs r2, 0\n" + "\tbl sub_80141B4\n" + "\tb _08022D22\n" + "\t.align 2, 0\n" +"_08022D0C: .4byte sItemGone\n" +"_08022D10: .4byte 0x00000301\n" +"_08022D14:\n" + "\tldr r0, [r4]\n" + "\tldr r0, [r0, 0x4C]\n" + "\tbl sub_801AFA4\n" + "\tb _08022D22\n" +"_08022D1E:\n" + "\tbl sub_801A928\n" +"_08022D22:\n" + "\tadd sp, 0x8\n" + "\tpop {r4-r7}\n" + "\tpop {r0}\n" + "\tbx r0"); +} +#endif // NONMATCHING + +static void sub_8022D2C(void) +{ + s32 index; + s32 loopMax = 0; + + MemoryFill16(sUnknown_203B294->unk138, 0, sizeof(sUnknown_203B294->unk138)); + + if (sUnknown_203B294->pokeStruct) { + sUnknown_203B294->unkF8[loopMax].text = sGive; + sUnknown_203B294->unkF8[loopMax].menuAction = 5; + if (!IsGummiItem(sUnknown_203B294->item.id)) + sUnknown_203B294->unk138[loopMax] = 1; + + loopMax++; + } + else { + if (GetItemCategory(sUnknown_203B294->item.id) == CATEGORY_TMS_HMS) { + sUnknown_203B294->unkF8[loopMax].text = sUse; + sUnknown_203B294->unkF8[loopMax].menuAction = 6; + loopMax++; + } + + sUnknown_203B294->unkF8[loopMax].text = gCommonTrash[0]; + sUnknown_203B294->unkF8[loopMax].menuAction = 4; + loopMax++; + } + + sUnknown_203B294->unkF8[loopMax].text = gCommonInfo[0]; + sUnknown_203B294->unkF8[loopMax].menuAction = 7; + + loopMax++; + sUnknown_203B294->unkF8[loopMax].text = NULL; + sUnknown_203B294->unkF8[loopMax].menuAction = 1; + + for (index = 0; index < loopMax; index++) { + if (sUnknown_203B294->unk138[index] == 0) { + if (sUnknown_203B294->unkF8[index].menuAction == sUnknown_203B294->menuAction) + return; + } + } + + for (index = 0; index < loopMax; index++) { + if (sUnknown_203B294->unk138[index] == 0) { + sUnknown_203B294->menuAction = sUnknown_203B294->unkF8[index].menuAction; + break; + } + } +} + +static void sub_8022E78(void) +{ + switch (sub_801A6E8(TRUE)) { + case 3: + sUnknown_203B294->itemIndex = sub_801A8AC(); + sUnknown_203B294->item = gTeamInventoryRef->teamItems[sUnknown_203B294->itemIndex]; + sub_8022924(2); + break; + case 4: + sUnknown_203B294->itemIndex = sub_801A8AC(); + sUnknown_203B294->item = gTeamInventoryRef->teamItems[sUnknown_203B294->itemIndex]; + sub_8099690(0); + sub_8022924(4); + break; + case 2: + sub_8022924(22); + break; + } +} + +static void sub_8022EF4(void) +{ + s32 menuAction; + s32 boostAmount; + + menuAction = 0; + sub_801A6E8(FALSE); + + if (sub_8012FD8(&sUnknown_203B294->unk54) == 0) { + sub_8013114(&sUnknown_203B294->unk54, &menuAction); + if (menuAction != 1) + sUnknown_203B294->menuAction = menuAction; + } + + switch (menuAction) { + case 1: + sub_8022924(1); + break; + case 2: + case 3: + break; + case 5: + sUnknown_203B294->availIQSkillPreGummi = GetNumAvailableIQSkills(sUnknown_203B294->iqSkillPreGummi, sUnknown_203B294->pokeStruct->IQ); + GetGummiItemStatBoost(sUnknown_203B294->pokeStruct, sUnknown_203B294->item.id, FALSE, &sUnknown_203B294->gummi); + sUnknown_203B294->availIQSkillPostGummi = GetNumAvailableIQSkills(sUnknown_203B294->iqSkillPostGummi, sUnknown_203B294->pokeStruct->IQ); + sUnknown_203B294->unk40 = 1; + boostAmount = sUnknown_203B294->gummi.boostAmount; + + sub_8090E14(gUnknown_202DE58, &gTeamInventoryRef->teamItems[sUnknown_203B294->itemIndex], NULL); + + if (boostAmount != -1) + ShiftItemsDownFrom(sUnknown_203B294->itemIndex); + + sub_8099690(0); + sUnknown_203B294->fallbackState = 10; + + switch (boostAmount + 1) { + case 1: + sub_8022924(6); + break; + case 2: + sub_8022924(7); + break; + case 3: + sub_8022924(8); + break; + case 4: + sub_8022924(9); + break; + default: + case 0: + sUnknown_203B294->fallbackState = 22; + sub_8022924(5); + break; + } + break; + case 6: + sub_8022924(21); + break; + case 4: + sub_8022924(3); + break; + case 7: + sub_8099690(0); + sub_8022924(4); + break; + } +} + +static void sub_8023068(void) +{ + s32 menuAction; + + menuAction = 0; + sub_801A6E8(FALSE); + sub_8012FD8(&sUnknown_203B294->unk54); + + if (sub_8012FD8(&sUnknown_203B294->unkA4) == 0) + sub_8013114(&sUnknown_203B294->unkA4, &menuAction); + + switch (menuAction) { + case 1: + case 3: + sub_8022924(1); + break; + case 2: + ShiftItemsDownFrom(sUnknown_203B294->itemIndex); + if (GetNumberOfFilledInventorySlots() == 0) { + sub_8099690(0); + sub_801A928(); + sub_8022924(20); + } + else + sub_8022924(1); + break; + } +} + +static void sub_80230E8(void) +{ + switch (sub_801B410()) { + case 2: + case 3: + sub_801B450(); + sub_8022924(1); + case 1: + case 0: + break; + } +} + +static void sub_8023104(void) +{ + switch (sub_801B00C()) { + case 2: + case 3: + sub_801B048(); + sub_8022924(1); + case 1: + case 0: + break; + } +} + +static void sub_8023120(void) +{ + s32 temp; + + if (sub_80144A4(&temp) == 0) + sub_8022924(sUnknown_203B294->fallbackState); +} \ No newline at end of file diff --git a/src/code_8023144.c b/src/code_8023144.c index 2a557c721..831bd8733 100644 --- a/src/code_8023144.c +++ b/src/code_8023144.c @@ -1,322 +1,79 @@ #include "global.h" #include "code_800D090.h" #include "code_80118A4.h" -#include "code_80130A8.h" -#include "code_801AFA4.h" -#include "code_801B3C0.h" #include "code_8023144.h" -#include "code_8098BDC.h" -#include "common_strings.h" #include "constants/colors.h" #include "constants/input.h" -#include "constants/iq_skill.h" #include "exclusive_pokemon.h" #include "friend_area.h" -#include "items.h" -#include "kecleon_bros4.h" #include "memory.h" #include "menu_input.h" -#include "pokemon.h" #include "pokemon_3.h" #include "text1.h" #include "text2.h" -IWRAM_DATA unkStruct_3001B5C *gUnknown_3001B5C; -unkStruct_203B294 *gUnknown_203B294; +static EWRAM_DATA_2 u32 gUnknown_203B298 = {0}; +static EWRAM_DATA_2 u16 gUnknown_203B29C = {0}; +static EWRAM_DATA_2 u16 gUnknown_203B29E = {0}; -extern u32 gUnknown_203B298; -extern u16 gUnknown_203B29C; -extern u16 gUnknown_203B29E; -extern UnkTextStruct2 gUnknown_80DC91C; -extern UnkTextStruct2 gUnknown_80DC904; +static IWRAM_DATA unkStruct_3001B5C *gUnknown_3001B5C = {0}; -void sub_8023758(void); -void sub_80237E0(void); -extern void sub_8023730(void); -extern u8 sub_8023704(u8); -extern void sub_8023420(void); -extern void sub_80234BC(void); -extern u32 sub_80236A4(void); +#include "data/code_8023144.h" +static void sub_8023420(void); +static void sub_80234BC(void); +static u32 sub_80236A4(void); +static bool8 sub_8023704(u8 unused); +static void sub_8023730(void); +static void sub_8023758(void); +static void sub_80237E0(void); -extern u8 gUnknown_80DC934[]; - -extern void sub_8008C54(u32); -extern u8 gUnknown_80DC93C[]; - -extern u8 gUnknown_80DC5EC[]; -extern u8 gUnknown_202DE58[]; -extern u8 gUnknown_80DC8F0[]; -extern u8 gUnknown_80DC8F8[]; -extern void sub_8022924(s32); - -void GetGummiItemStatBoost(PokemonStruct1* pokemon, u8 id, bool8 checkBoostFlags, Gummi *gummi); - -extern void sub_801A928(void); - -void sub_8022D2C(void) { - s32 index; - s32 loopMax = 0; - MemoryFill16(gUnknown_203B294->unk138, 0, sizeof(gUnknown_203B294->unk138)); - if(gUnknown_203B294->pokeStruct) - { - gUnknown_203B294->unkF8[loopMax].text = gUnknown_80DC8F0; - gUnknown_203B294->unkF8[loopMax].menuAction = 5; - if(!IsGummiItem(gUnknown_203B294->item.id)) - { - gUnknown_203B294->unk138[loopMax] = 1; - } - loopMax += 1; - } - else { - if(GetItemCategory(gUnknown_203B294->item.id) == CATEGORY_TMS_HMS) - { - gUnknown_203B294->unkF8[loopMax].text = gUnknown_80DC8F8; - gUnknown_203B294->unkF8[loopMax].menuAction = 6; - loopMax += 1; - } - gUnknown_203B294->unkF8[loopMax].text = *gCommonTrash; - gUnknown_203B294->unkF8[loopMax].menuAction = 4; - loopMax += 1; - } - gUnknown_203B294->unkF8[loopMax].text = *gCommonInfo; - gUnknown_203B294->unkF8[loopMax].menuAction = 7; - loopMax += 1; - gUnknown_203B294->unkF8[loopMax].text = NULL; - gUnknown_203B294->unkF8[loopMax].menuAction = 1; - - for(index = 0; index < loopMax; index++) - { - if(gUnknown_203B294->unk138[index] == 0) - { - if(gUnknown_203B294->unkF8[index].menuAction == gUnknown_203B294->menuAction) - return; - } - } - - for(index = 0; index < loopMax; index++) - { - if(gUnknown_203B294->unk138[index] == 0) - { - gUnknown_203B294->menuAction = gUnknown_203B294->unkF8[index].menuAction; - break; - } - } -} - -void sub_8022E78(void) -{ - switch(sub_801A6E8(TRUE)) - { - case 3: - gUnknown_203B294->itemIndex = sub_801A8AC(); - gUnknown_203B294->item = gTeamInventoryRef->teamItems[gUnknown_203B294->itemIndex]; - sub_8022924(2); - break; - case 4: - gUnknown_203B294->itemIndex = sub_801A8AC(); - gUnknown_203B294->item = gTeamInventoryRef->teamItems[gUnknown_203B294->itemIndex]; - sub_8099690(0); - sub_8022924(4); - break; - case 2: - sub_8022924(0x16); - break; - } -} - -void sub_8022EF4(void) +bool8 sub_8023144(s32 a0, s32 index, UnkTextStruct2_sub *sub, u32 a3) { - s32 menuAction; - s32 boostAmount; - - menuAction = 0; - sub_801A6E8(FALSE); - if (sub_8012FD8(&gUnknown_203B294->unk54) == 0) { - sub_8013114(&gUnknown_203B294->unk54,&menuAction); - if(menuAction != 1) gUnknown_203B294->menuAction = menuAction; - } + u8 param_1_u8 = a0; - switch(menuAction) - { - case 1: - sub_8022924(1); - break; - case 2: - case 3: - break; - case 5: - gUnknown_203B294->availIQSkillPreGummi = GetNumAvailableIQSkills(gUnknown_203B294->iqSkillPreGummi, gUnknown_203B294->pokeStruct->IQ); - GetGummiItemStatBoost(gUnknown_203B294->pokeStruct, gUnknown_203B294->item.id, FALSE, &gUnknown_203B294->gummi); - gUnknown_203B294->availIQSkillPostGummi = GetNumAvailableIQSkills(gUnknown_203B294->iqSkillPostGummi, gUnknown_203B294->pokeStruct->IQ); - gUnknown_203B294->unk40 = 1; - boostAmount = gUnknown_203B294->gummi.boostAmount; + if (sub_8023704(param_1_u8)) + return FALSE; - sub_8090E14(gUnknown_202DE58, &gTeamInventoryRef->teamItems[gUnknown_203B294->itemIndex], NULL); - - if(boostAmount != -1) - ShiftItemsDownFrom(gUnknown_203B294->itemIndex); + if (gUnknown_3001B5C == NULL) + gUnknown_3001B5C = MemoryAlloc(sizeof(unkStruct_3001B5C), 8); - sub_8099690(0); - gUnknown_203B294->fallbackState = 0xA; + gUnknown_3001B5C->unk0 = param_1_u8; + gUnknown_3001B5C->unk4 = gUnknown_203B298; - switch(boostAmount + 1) - { - case 1: - sub_8022924(6); - break; - case 2: - sub_8022924(7); - break; - case 3: - sub_8022924(8); - break; - case 4: - sub_8022924(9); - break; - default: - case 0: - gUnknown_203B294->fallbackState = 0x16; - sub_8022924(5); - break; - } - break; - case 6: - sub_8022924(0x15); - break; - case 4: - sub_8022924(3); - break; - case 7: - sub_8099690(0); - sub_8022924(4); - break; - } + gUnknown_3001B5C->unk390 = index; + gUnknown_3001B5C->unk394 = &gUnknown_3001B5C->unk398[index]; + sub_8006518(gUnknown_3001B5C->unk398); + gUnknown_3001B5C->unk398[gUnknown_3001B5C->unk390] = sUnknown_80DC91C; + + gUnknown_3001B5C->unk394->unk14 = gUnknown_3001B5C->unk3F8; + + if (sub != NULL) + gUnknown_3001B5C->unk398[gUnknown_3001B5C->unk390].unk8 = *sub; + + sub_8012D08(gUnknown_3001B5C->unk394, a3); + ResetUnusedInputStruct(); + sub_800641C(gUnknown_3001B5C->unk398, TRUE, TRUE); + sub_8013818(&gUnknown_3001B5C->input, sub_80236A4(), a3, index); + gUnknown_3001B5C->input.menuIndex = gUnknown_203B29C; + gUnknown_3001B5C->input.unk1E = gUnknown_203B29E; + sub_8013984(&gUnknown_3001B5C->input); + sub_8023420(); + sub_80234BC(); + return TRUE; } -void sub_8023068(void) -{ - s32 menuAction; - - menuAction = 0; - sub_801A6E8(FALSE); - sub_8012FD8(&gUnknown_203B294->unk54); - if (sub_8012FD8(&gUnknown_203B294->unkA4) == 0) { - sub_8013114(&gUnknown_203B294->unkA4,&menuAction); - } - - switch(menuAction) - { - case 1: - case 3: - sub_8022924(1); - break; - case 2: - ShiftItemsDownFrom(gUnknown_203B294->itemIndex); - if (GetNumberOfFilledInventorySlots() == 0) { - sub_8099690(0); - sub_801A928(); - sub_8022924(0x14); - } - else { - sub_8022924(1); - } - break; - } -} - -void sub_80230E8(void) -{ - switch(sub_801B410()) - { - case 2: - case 3: - sub_801B450(); - sub_8022924(1); - case 1: - case 0: - break; - } -} - -void sub_8023104(void) -{ - switch(sub_801B00C()) - { - case 2: - case 3: - sub_801B048(); - sub_8022924(1); - case 1: - case 0: - break; - } -} - -void sub_8023120(void) -{ - s32 temp; - if(sub_80144A4(&temp) == 0) - { - sub_8022924(gUnknown_203B294->fallbackState); - } -} - - - -// THIS IS A NEW FILE: - - - - - - -bool8 sub_8023144(s32 param_1, s32 index, UnkTextStruct2_sub *sub, u32 param_4) -{ - u8 param_1_u8 = param_1; - - if (sub_8023704(param_1_u8)) - return 0; - - if (gUnknown_3001B5C == NULL) - gUnknown_3001B5C = MemoryAlloc(sizeof(unkStruct_3001B5C), 8); - - gUnknown_3001B5C->unk0 = param_1_u8; - gUnknown_3001B5C->unk4 = gUnknown_203B298; - - gUnknown_3001B5C->unk390 = index; - gUnknown_3001B5C->unk394 = &gUnknown_3001B5C->unk398[index]; - sub_8006518(gUnknown_3001B5C->unk398); - gUnknown_3001B5C->unk398[gUnknown_3001B5C->unk390] = gUnknown_80DC91C; - - gUnknown_3001B5C->unk394->unk14 = gUnknown_3001B5C->unk3F8; - - if (sub != NULL) - gUnknown_3001B5C->unk398[gUnknown_3001B5C->unk390].unk8 = *sub; - - sub_8012D08(gUnknown_3001B5C->unk394,param_4); - ResetUnusedInputStruct(); - sub_800641C(gUnknown_3001B5C->unk398, TRUE, TRUE); - sub_8013818(&gUnknown_3001B5C->input,sub_80236A4(),param_4,index); - gUnknown_3001B5C->input.menuIndex = gUnknown_203B29C; - gUnknown_3001B5C->input.unk1E = gUnknown_203B29E; - sub_8013984(&gUnknown_3001B5C->input); - sub_8023420(); - sub_80234BC(); - return 1; -} - -u32 sub_8023278(u8 param_1) +u32 sub_8023278(bool8 a0) { s32 iVar3; u32 temp; - if (param_1 == 0) { + if (!a0) { sub_8013660(&gUnknown_3001B5C->input); return 0; } - switch(GetKeyPress(&gUnknown_3001B5C->input)) - { + + switch (GetKeyPress(&gUnknown_3001B5C->input)) { case INPUT_B_BUTTON: PlayMenuSoundEffect(1); return 2; @@ -325,18 +82,18 @@ u32 sub_8023278(u8 param_1) return 3; case INPUT_SELECT_BUTTON: PlayMenuSoundEffect(5); - if (temp = gUnknown_3001B5C->unk4, iVar3 = 1, temp < 2) { + if (temp = gUnknown_3001B5C->unk4, iVar3 = 1, temp < 2) iVar3 = temp + 1; - } + gUnknown_3001B5C->unk4 = iVar3; sub_80236A4(); break; default: - if (sub_80138B8(&gUnknown_3001B5C->input, 1) == 0) { + if (sub_80138B8(&gUnknown_3001B5C->input, 1) == 0) return 0; - } break; } + sub_8023420(); sub_80234BC(); return 1; @@ -344,7 +101,7 @@ u32 sub_8023278(u8 param_1) s16 sub_802331C(void) { - return gUnknown_3001B5C->unkC[gUnknown_3001B5C->input.unk1E * gUnknown_3001B5C->input.unk1C + gUnknown_3001B5C->input.menuIndex]; + return gUnknown_3001B5C->unkC[(gUnknown_3001B5C->input.unk1E * gUnknown_3001B5C->input.unk1C) + gUnknown_3001B5C->input.menuIndex]; } void sub_8023354(bool8 cursorSprite) @@ -365,7 +122,7 @@ void sub_80233A0(void) gUnknown_203B298 = gUnknown_3001B5C->unk4; gUnknown_203B29C = gUnknown_3001B5C->input.menuIndex; gUnknown_203B29E = gUnknown_3001B5C->input.unk1E; - gUnknown_3001B5C->unk398[gUnknown_3001B5C->unk390] = gUnknown_80DC904; + gUnknown_3001B5C->unk398[gUnknown_3001B5C->unk390] = sUnknown_80DC904; ResetUnusedInputStruct(); sub_800641C(gUnknown_3001B5C->unk398, TRUE, TRUE); MemoryFree(gUnknown_3001B5C); @@ -374,74 +131,74 @@ void sub_80233A0(void) } NAKED // sub_80095E4 memes -void sub_8023420(void) +static void sub_8023420(void) { asm_unified( - "\tpush {r4,r5,lr}\n" - "\tldr r4, _080234A8\n" - "\tldr r0, [r4]\n" - "\tmovs r1, 0xFE\n" - "\tlsls r1, 2\n" - "\tadds r0, r1\n" - "\tmovs r2, 0\n" - "\tmovs r1, 0x1\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tldr r1, _080234AC\n" - "\tadds r0, r1\n" - "\tstrb r2, [r0]\n" - "\tldr r0, [r4]\n" - "\tadds r1, 0x1\n" - "\tadds r0, r1\n" - "\tmovs r1, 0xC\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tldr r1, _080234B0\n" - "\tadds r0, r1\n" - "\tstrb r2, [r0]\n" - "\tldr r0, [r4]\n" - "\tldr r2, _080234B4\n" - "\tadds r0, r2\n" - "\tmovs r1, 0\n" - "\tldrsh r0, [r0, r1]\n" - "\tmovs r1, 0xC\n" - "\tbl sub_80095E4\n" - "\tadds r0, 0x2\n" - "\tldr r3, [r4]\n" - "\tmovs r2, 0xE4\n" - "\tlsls r2, 2\n" - "\tadds r5, r3, r2\n" - "\tldr r2, [r5]\n" - "\tlsls r1, r2, 1\n" - "\tadds r1, r2\n" - "\tlsls r1, 3\n" - "\tadds r1, r3, r1\n" - "\tldr r2, _080234B8\n" - "\tadds r1, r2\n" - "\tlsls r0, 16\n" - "\tlsrs r0, 16\n" - "\tstrh r0, [r1]\n" - "\tldr r2, [r5]\n" - "\tlsls r1, r2, 1\n" - "\tadds r1, r2\n" - "\tlsls r1, 3\n" - "\tadds r3, r1\n" - "\tmovs r1, 0xEA\n" - "\tlsls r1, 2\n" - "\tadds r3, r1\n" - "\tstrh r0, [r3]\n" - "\tbl ResetUnusedInputStruct\n" - "\tldr r0, [r4]\n" - "\tmovs r2, 0xE6\n" - "\tlsls r2, 2\n" - "\tadds r0, r2\n" - "\tmovs r1, 0x1\n" - "\tmovs r2, 0x1\n" - "\tbl sub_800641C\n" - "\tpop {r4,r5}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" + "\tpush {r4,r5,lr}\n" + "\tldr r4, _080234A8\n" + "\tldr r0, [r4]\n" + "\tmovs r1, 0xFE\n" + "\tlsls r1, 2\n" + "\tadds r0, r1\n" + "\tmovs r2, 0\n" + "\tmovs r1, 0x1\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tldr r1, _080234AC\n" + "\tadds r0, r1\n" + "\tstrb r2, [r0]\n" + "\tldr r0, [r4]\n" + "\tadds r1, 0x1\n" + "\tadds r0, r1\n" + "\tmovs r1, 0xC\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tldr r1, _080234B0\n" + "\tadds r0, r1\n" + "\tstrb r2, [r0]\n" + "\tldr r0, [r4]\n" + "\tldr r2, _080234B4\n" + "\tadds r0, r2\n" + "\tmovs r1, 0\n" + "\tldrsh r0, [r0, r1]\n" + "\tmovs r1, 0xC\n" + "\tbl sub_80095E4\n" + "\tadds r0, 0x2\n" + "\tldr r3, [r4]\n" + "\tmovs r2, 0xE4\n" + "\tlsls r2, 2\n" + "\tadds r5, r3, r2\n" + "\tldr r2, [r5]\n" + "\tlsls r1, r2, 1\n" + "\tadds r1, r2\n" + "\tlsls r1, 3\n" + "\tadds r1, r3, r1\n" + "\tldr r2, _080234B8\n" + "\tadds r1, r2\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 16\n" + "\tstrh r0, [r1]\n" + "\tldr r2, [r5]\n" + "\tlsls r1, r2, 1\n" + "\tadds r1, r2\n" + "\tlsls r1, 3\n" + "\tadds r3, r1\n" + "\tmovs r1, 0xEA\n" + "\tlsls r1, 2\n" + "\tadds r3, r1\n" + "\tstrh r0, [r3]\n" + "\tbl ResetUnusedInputStruct\n" + "\tldr r0, [r4]\n" + "\tmovs r2, 0xE6\n" + "\tlsls r2, 2\n" + "\tadds r0, r2\n" + "\tmovs r1, 0x1\n" + "\tmovs r2, 0x1\n" + "\tbl sub_800641C\n" + "\tpop {r4,r5}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" "_080234A8: .4byte gUnknown_3001B5C\n" "_080234AC: .4byte 0x000003f9\n" "_080234B0: .4byte 0x000003fb\n" @@ -449,7 +206,7 @@ void sub_8023420(void) "_080234B8: .4byte 0x000003a6"); } -void sub_80234BC(void) +static void sub_80234BC(void) { u8 cVar2; u32 y; @@ -457,83 +214,236 @@ void sub_80234BC(void) s32 iVar4; s32 species; u32 color; - s32 index; - u8 buffer2 [256]; - u8 buffer1 [100]; + s32 i; + u8 buffer2[256]; + u8 buffer1[100]; unkStruct_8092638 auStack_2c; sub_8008C54(gUnknown_3001B5C->unk390); sub_80073B8(gUnknown_3001B5C->unk390); - xxx_call_draw_string(10,0,gUnknown_80DC934,gUnknown_3001B5C->unk390,0); // Pokemon - sub_8012BC4(gUnknown_3001B5C->unk3F8[2] * 8 + 4,0, - gUnknown_3001B5C->input.unk1E + 1,2,7,gUnknown_3001B5C->unk390); - for(index = 0; index < gUnknown_3001B5C->input.unk1A; index++) - { - y = sub_8013800(&gUnknown_3001B5C->input,index); - species = gUnknown_3001B5C->unkC[(gUnknown_3001B5C->input.unk1E * gUnknown_3001B5C->input.unk1C + index)]; - sub_8092638(GetFriendArea(species),&auStack_2c,FALSE,FALSE); + xxx_call_draw_string(10, 0, sPokemon, gUnknown_3001B5C->unk390, 0); + + sub_8012BC4((gUnknown_3001B5C->unk3F8[2] * 8) + 4, 0, gUnknown_3001B5C->input.unk1E + 1, 2, 7, gUnknown_3001B5C->unk390); + + for (i = 0; i < gUnknown_3001B5C->input.unk1A; i++) { + y = sub_8013800(&gUnknown_3001B5C->input, i); + species = gUnknown_3001B5C->unkC[(gUnknown_3001B5C->input.unk1E * gUnknown_3001B5C->input.unk1C) + i]; + sub_8092638(GetFriendArea(species), &auStack_2c, FALSE, FALSE); color = COLOR_WHITE_2; - if (auStack_2c.hasFriendArea) { + if (auStack_2c.hasFriendArea) color = HasRecruitedMon(species) ? COLOR_CYAN : COLOR_GREEN; - } - iVar4 = GetDexInternalNo(species,0); - cVar2 = (iVar4 % 10) + 0x30; - sub_8012C60(0x14,y,cVar2,color,gUnknown_3001B5C->unk390); + + iVar4 = GetDexInternalNo(species, 0); + cVar2 = (iVar4 % 10) + 48; + sub_8012C60(20, y, cVar2, color, gUnknown_3001B5C->unk390); + if (9 < iVar4) { iVar4 /= 10; - cVar2 = (iVar4 % 10) + 0x30; - sub_8012C60(0xd,y,cVar2,color,gUnknown_3001B5C->unk390); + cVar2 = (iVar4 % 10) + 48; + sub_8012C60(13, y, cVar2, color, gUnknown_3001B5C->unk390); + if (9 < iVar4) { uVar3 = iVar4 / 10; - cVar2 = (uVar3 % 10) + 0x30; - sub_8012C60(6,y,cVar2,color,gUnknown_3001B5C->unk390); + cVar2 = (uVar3 % 10) + 48; + sub_8012C60(6, y, cVar2, color, gUnknown_3001B5C->unk390); } } + sub_808D930(buffer1,species); - sprintfStatic(buffer2,gUnknown_80DC93C,color,buffer1); // {COLOR_2}%c%s - xxx_call_draw_string(0x24,y,buffer2,gUnknown_3001B5C->unk390,0); + sprintfStatic(buffer2, sFmtColoredString, color, buffer1); + xxx_call_draw_string(36, y, buffer2, gUnknown_3001B5C->unk390, 0); } + sub_80073E0(gUnknown_3001B5C->unk390); } -u32 sub_80236A4(void) +static u32 sub_80236A4(void) { s32 index; gUnknown_3001B5C->unk8 = 0; - for(index = 0; index < 0x1a8; index++) - { - if ((sub_8098134((s16)index)) && - ((s16)index == GetBaseSpeciesNoUnown(index))) { + + for (index = 0; index < MONSTER_MAX; index++) { + if (sub_8098134(index) && (s16)index == GetBaseSpeciesNoUnown(index)) gUnknown_3001B5C->unkC[gUnknown_3001B5C->unk8++] = index; - } } + sub_8023730(); return gUnknown_3001B5C->unk8; } -bool8 sub_8023704(u8 unused) +static bool8 sub_8023704(u8 unused) { s32 index; - for(index = 0; index < 0x1a8; index++) - { - if (sub_8098134((s16)index)) + for (index = 0; index < MONSTER_MAX; index++) { + if (sub_8098134(index)) return FALSE; } + return TRUE; } -void sub_8023730(void) +static void sub_8023730(void) { - switch(gUnknown_3001B5C->unk4) - { + switch (gUnknown_3001B5C->unk4) { case 1: sub_8023758(); break; case 2: sub_80237E0(); break; - } } + +// 41.34%. Similar to SortbyAlphabetNo: https://decomp.me/scratch/Wmgj6 +NAKED static void sub_8023758(void) +{ + asm_unified( + "\tpush {r4-r7,lr}\n" + "\tmov r7, r9\n" + "\tmov r6, r8\n" + "\tpush {r6,r7}\n" + "\tsub sp, 0x4\n" + "\tldr r3, _080237DC\n" + "\tldr r2, [r3]\n" + "\tldr r1, [r2, 0x8]\n" + "\tlsls r0, r1, 1\n" + "\tadds r0, 0xA\n" + "\tadds r2, r0\n" + "\tmov r9, r2\n" + "\tmovs r2, 0\n" + "\tsubs r1, 0x1\n" + "\tcmp r2, r1\n" + "\tbge _080237CC\n" +"_08023778:\n" + "\tmov r5, r9\n" + "\tldr r0, [r3]\n" + "\tldr r0, [r0, 0x8]\n" + "\tsubs r7, r0, 0x1\n" + "\tadds r0, r2, 0x1\n" + "\tmov r8, r0\n" + "\tcmp r7, r2\n" + "\tble _080237BE\n" +"_08023788:\n" + "\tsubs r6, r5, 0x2\n" + "\tmovs r1, 0\n" + "\tldrsh r0, [r6, r1]\n" + "\tmovs r1, 0x1\n" + "\tstr r2, [sp]\n" + "\tbl GetAlphabetParentNo\n" + "\tadds r4, r0, 0\n" + "\tmovs r1, 0\n" + "\tldrsh r0, [r5, r1]\n" + "\tmovs r1, 0x1\n" + "\tbl GetAlphabetParentNo\n" + "\tlsls r4, 16\n" + "\tlsls r0, 16\n" + "\tldr r2, [sp]\n" + "\tcmp r4, r0\n" + "\tble _080237B6\n" + "\tmovs r0, 0\n" + "\tldrsh r1, [r5, r0]\n" + "\tldrh r0, [r6]\n" + "\tstrh r0, [r5]\n" + "\tstrh r1, [r6]\n" +"_080237B6:\n" + "\tadds r5, r6, 0\n" + "\tsubs r7, 0x1\n" + "\tcmp r7, r2\n" + "\tbgt _08023788\n" +"_080237BE:\n" + "\tmov r2, r8\n" + "\tldr r3, _080237DC\n" + "\tldr r0, [r3]\n" + "\tldr r0, [r0, 0x8]\n" + "\tsubs r0, 0x1\n" + "\tcmp r2, r0\n" + "\tblt _08023778\n" +"_080237CC:\n" + "\tadd sp, 0x4\n" + "\tpop {r3,r4}\n" + "\tmov r8, r3\n" + "\tmov r9, r4\n" + "\tpop {r4-r7}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" +"_080237DC: .4byte gUnknown_3001B5C"); +} + + // SIMILAR TO ABOVE: https://decomp.me/scratch/BG2JR +NAKED static void sub_80237E0(void) +{ + asm_unified( + "\tpush {r4-r7,lr}\n" + "\tmov r7, r9\n" + "\tmov r6, r8\n" + "\tpush {r6,r7}\n" + "\tsub sp, 0x4\n" + "\tldr r3, _08023864\n" + "\tldr r2, [r3]\n" + "\tldr r1, [r2, 0x8]\n" + "\tlsls r0, r1, 1\n" + "\tadds r0, 0xA\n" + "\tadds r2, r0\n" + "\tmov r9, r2\n" + "\tmovs r2, 0\n" + "\tsubs r1, 0x1\n" + "\tcmp r2, r1\n" + "\tbge _08023854\n" +"_08023800:\n" + "\tmov r5, r9\n" + "\tldr r0, [r3]\n" + "\tldr r0, [r0, 0x8]\n" + "\tsubs r7, r0, 0x1\n" + "\tadds r0, r2, 0x1\n" + "\tmov r8, r0\n" + "\tcmp r7, r2\n" + "\tble _08023846\n" +"_08023810:\n" + "\tsubs r6, r5, 0x2\n" + "\tmovs r1, 0\n" + "\tldrsh r0, [r6, r1]\n" + "\tmovs r1, 0\n" + "\tstr r2, [sp]\n" + "\tbl GetAlphabetParentNo\n" + "\tadds r4, r0, 0\n" + "\tmovs r1, 0\n" + "\tldrsh r0, [r5, r1]\n" + "\tmovs r1, 0\n" + "\tbl GetAlphabetParentNo\n" + "\tlsls r4, 16\n" + "\tlsls r0, 16\n" + "\tldr r2, [sp]\n" + "\tcmp r4, r0\n" + "\tble _0802383E\n" + "\tmovs r0, 0\n" + "\tldrsh r1, [r5, r0]\n" + "\tldrh r0, [r6]\n" + "\tstrh r0, [r5]\n" + "\tstrh r1, [r6]\n" +"_0802383E:\n" + "\tadds r5, r6, 0\n" + "\tsubs r7, 0x1\n" + "\tcmp r7, r2\n" + "\tbgt _08023810\n" +"_08023846:\n" + "\tmov r2, r8\n" + "\tldr r3, _08023864\n" + "\tldr r0, [r3]\n" + "\tldr r0, [r0, 0x8]\n" + "\tsubs r0, 0x1\n" + "\tcmp r2, r0\n" + "\tblt _08023800\n" +"_08023854:\n" + "\tadd sp, 0x4\n" + "\tpop {r3,r4}\n" + "\tmov r8, r3\n" + "\tmov r9, r4\n" + "\tpop {r4-r7}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" +"_08023864: .4byte gUnknown_3001B5C"); +} \ No newline at end of file diff --git a/src/code_8023144_pre.c b/src/code_8023144_pre.c deleted file mode 100644 index 85a386a5c..000000000 --- a/src/code_8023144_pre.c +++ /dev/null @@ -1,140 +0,0 @@ -#include "global.h" -#include "constants/colors.h" -#include "constants/input.h" -#include "constants/iq_skill.h" -#include "memory.h" -#include "menu.h" -#include "pokemon.h" -#include "pokemon_3.h" -#include "text1.h" -#include "input.h" -#include "items.h" -#include "menu_input.h" -#include "code_8023144.h" -#include "text2.h" - -unkStruct_203B294 *gUnknown_203B294; -extern u8 gAvailablePokemonNames[]; -extern u8 gUnknown_80DC5EC[]; -extern u8 HasGummiItem(void); -extern void sub_8022924(s32); -extern void sub_8022E78(void); -extern void sub_8022EF4(void); -extern void sub_8023068(void); -extern void sub_80230E8(void); -extern void sub_8023120(void); -extern void sub_8023104(void); -extern void sub_802293C(void); -extern void sub_8022A10(void); -extern void sub_8022D2C(void); - -extern UnkTextStruct2 gUnknown_80DC5A4; -extern UnkTextStruct2 gUnknown_80DC5D4; -extern UnkTextStruct2 gUnknown_80DC5BC; - -bool8 sub_80227B8(PokemonStruct1 *pokeStruct) -{ - ResetUnusedInputStruct(); - sub_800641C(NULL, TRUE, TRUE); - gUnknown_203B294 = MemoryAlloc(sizeof(unkStruct_203B294), 8); - gUnknown_203B294->menuAction = 0; - gUnknown_203B294->pokeStruct = pokeStruct; - if(pokeStruct != NULL) - { - PrintColoredPokeNameToBuffer(gAvailablePokemonNames, pokeStruct, COLOR_WHITE_2); - PrintColoredPokeNameToBuffer(gAvailablePokemonNames + 0x50, pokeStruct, COLOR_YELLOW); - if(HasGummiItem()) - { - sub_8022924(0x0); - } - else - { - sub_8022924(0x11); - } - } - else { - strcpy(gAvailablePokemonNames, gUnknown_80DC5EC); - strcpy(gAvailablePokemonNames + 0x50, gUnknown_80DC5EC); - if(GetNumberOfFilledInventorySlots() == 0) - { - sub_8022924(0x12); - - } - else { - sub_8022924(0x0); - } - } - return TRUE; -} - -u32 sub_8022860(void) -{ - switch(gUnknown_203B294->state) { - case 0: - case 1: - sub_8022E78(); - break; - case 2: - sub_8022EF4(); - break; - case 3: - sub_8023068(); - break; - case 4: - sub_80230E8(); - break; - case 0x15: - sub_8023104(); - break; - case 0x16: - return 3; - default: - sub_8023120(); - break; - } - return 0; -} - -void sub_8022908(void) -{ - if(gUnknown_203B294) - { - MemoryFree(gUnknown_203B294); - gUnknown_203B294 = NULL; - } -} - -void sub_8022924(s32 newState) -{ - gUnknown_203B294->state = newState; - sub_802293C(); - sub_8022A10(); -} - -void sub_802293C(void) { - s32 index; - sub_8006518(gUnknown_203B294->unk148); - switch(gUnknown_203B294->state) - { - case 2: - sub_8022D2C(); - gUnknown_203B294->unk148[2] = gUnknown_80DC5BC; - sub_8012CAC(&gUnknown_203B294->unk148[2], gUnknown_203B294->unkF8); - gUnknown_203B294->unk148[2].unkC = 6; - break; - case 3: - gUnknown_203B294->unk148[1] = gUnknown_80DC5D4; - break; - default: - for(index = 0; index < 4; index++) - { - gUnknown_203B294->unk148[index] = gUnknown_80DC5A4; - } - break; - case 0xA ... 0x10: - break; - } - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B294->unk148, TRUE, TRUE); - -} diff --git a/src/code_8023868.c b/src/code_8023868.c index 33e3d0c2a..bb7468d0f 100644 --- a/src/code_8023868.c +++ b/src/code_8023868.c @@ -3,7 +3,7 @@ #include "code_8023868.h" #include "pokemon.h" #include "pokemon_mid.h" -#include "text.h" +#include "structs/str_text.h" #include "text_util.h" //static // MAKE STATIC WHEN code_8023868.s IS DONE diff --git a/src/code_8031D70.c b/src/code_8031D70.c index 0ee4fd371..918172eb1 100644 --- a/src/code_8031D70.c +++ b/src/code_8031D70.c @@ -5,7 +5,7 @@ #include "memory.h" #include "text1.h" #include "text2.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "pokemon.h" #include "code_8094F88.h" #include "menu_input.h" diff --git a/src/code_8040094.c b/src/code_8040094.c index 83b43865c..9e53e91be 100644 --- a/src/code_8040094.c +++ b/src/code_8040094.c @@ -3,8 +3,8 @@ #include "code_800C9CC.h" #include "code_80118A4.h" #include "code_80521D0.h" -#include "dungeon_entity.h" -#include "dungeon_global_data.h" +#include "structs/dungeon_entity.h" +#include "structs/str_dungeon.h" #include "dungeon_map_access.h" #include "dungeon_music.h" #include "file_system.h" diff --git a/src/code_8041AD0.c b/src/code_8041AD0.c index a8e53af12..22af484e0 100644 --- a/src/code_8041AD0.c +++ b/src/code_8041AD0.c @@ -3,8 +3,8 @@ #include "constants/direction.h" #include "constants/status.h" #include "constants/type.h" -#include "dungeon_entity.h" -#include "dungeon_global_data.h" +#include "structs/dungeon_entity.h" +#include "structs/str_dungeon.h" #include "dungeon_pokemon_attributes.h" #include "dungeon_util.h" #include "items.h" @@ -208,18 +208,18 @@ void EntityUpdateStatusSprites(Entity *entity) void sub_8041AD0(Entity *pokemon) { - sub_804151C(pokemon, 0xA2 << 1, 1); + sub_804151C(pokemon, 324, 1); } void sub_8041AE0(Entity *pokemon) { - sub_804151C(pokemon, 0x143, 1); + sub_804151C(pokemon, 323, 1); } void sub_8041AF4(Entity *pokemon) { - sub_804151C(pokemon, 0x25, 1); - sub_80421C0(pokemon, 0x197); + sub_804151C(pokemon, 37, 1); + sub_80421C0(pokemon, 407); } void nullsub_57(void) @@ -228,7 +228,7 @@ void nullsub_57(void) void sub_8041B18(Entity *pokemon) { - sub_804151C(pokemon, 0x141, 1); + sub_804151C(pokemon, 321, 1); } void nullsub_58(void) @@ -259,7 +259,7 @@ void nullsub_61(void) void sub_8041B5C(Entity *pokemon) { - sub_804151C(pokemon, 0x171, 1); + sub_804151C(pokemon, 369, 1); } void nullsub_62(Entity *pokemon) @@ -268,7 +268,7 @@ void nullsub_62(Entity *pokemon) void sub_8041B74(Entity *pokemon) { - sub_804151C(pokemon, 0x171, 0); + sub_804151C(pokemon, 369, 0); } void nullsub_63(void) @@ -281,7 +281,7 @@ void nullsub_64(void) void sub_8041B90(Entity *pokemon) { - sub_804151C(pokemon, 0xD6 << 1, 0); + sub_804151C(pokemon, 428, 0); } void nullsub_65(void) @@ -303,7 +303,7 @@ void nullsub_67(void) void sub_8041BBC(Entity *pokemon) { - sub_804151C(pokemon, 0xD4 << 1, 1); + sub_804151C(pokemon, 424, 1); } void nullsub_68(void) @@ -316,12 +316,12 @@ void sub_8041BD0(Entity *pokemon, u8 r1) { return; } - sub_80421C0(pokemon, 0x1a5); + sub_80421C0(pokemon, 421); } void sub_8041BE8(Entity *pokemon) { - sub_80421C0(pokemon, 0xCB << 1); + sub_80421C0(pokemon, 406); } void sub_8041BF8(Entity *pokemon) @@ -331,12 +331,12 @@ void sub_8041BF8(Entity *pokemon) void sub_8041C08(Entity *pokemon) { - sub_804151C(pokemon, 0x1a7, 1); + sub_804151C(pokemon, 423, 1); } void sub_8041C1C(Entity *pokemon) { - sub_804151C(pokemon, 0x1a7, 1); + sub_804151C(pokemon, 423, 1); } void nullsub_69(void) diff --git a/src/code_80428A0.c b/src/code_80428A0.c index 4b4e88b71..6d605ee95 100644 --- a/src/code_80428A0.c +++ b/src/code_80428A0.c @@ -1,6 +1,6 @@ #include "global.h" -#include "dungeon_entity.h" -#include "dungeon_global_data.h" +#include "structs/dungeon_entity.h" +#include "structs/str_dungeon.h" extern void sub_804151C(Entity *r0, u32 r1, u8 r2); extern void sub_803E708(u32 r0, u32 r1); diff --git a/src/code_8045A00.c b/src/code_8045A00.c index 9d35d8626..98f40c2cc 100644 --- a/src/code_8045A00.c +++ b/src/code_8045A00.c @@ -1,11 +1,11 @@ #include "global.h" #include "constants/item.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "dungeon_map_access.h" #include "dungeon_util.h" #include "dungeon_random.h" #include "items.h" -#include "map.h" +#include "structs/map.h" extern u8 *gUnknown_80FE6F4[]; extern struct unkStruct_8090F58 gUnknown_80F699C; diff --git a/src/code_8048480.c b/src/code_8048480.c index c5013179e..f58c96e44 100644 --- a/src/code_8048480.c +++ b/src/code_8048480.c @@ -5,9 +5,9 @@ #include "constants/status.h" #include "constants/type.h" #include "dungeon_action.h" -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" #include "dungeon_util.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "move_effects_target.h" #include "dungeon_capabilities.h" #include "dungeon_pokemon_attributes.h" @@ -17,7 +17,7 @@ #include "code_8077274_1.h" #include "code_80521D0.h" #include "pokemon.h" -#include "position.h" +#include "structs/str_position.h" #include "status.h" extern u8 gAvailablePokemonNames[]; diff --git a/src/code_8057824.c b/src/code_8057824.c index 27703acdd..4443fb012 100644 --- a/src/code_8057824.c +++ b/src/code_8057824.c @@ -3,14 +3,14 @@ #include "constants/status.h" #include "constants/weather.h" #include "charge_move.h" -#include "dungeon_global_data.h" -#include "dungeon_entity.h" +#include "structs/str_dungeon.h" +#include "structs/dungeon_entity.h" #include "dungeon_pokemon_attributes.h" #include "dungeon_random.h" #include "dungeon_util.h" #include "code_8077274_1.h" #include "code_808417C.h" -#include "map.h" +#include "structs/map.h" #include "moves.h" #include "move_effects_target.h" #include "pokemon.h" diff --git a/src/code_8057824_1.c b/src/code_8057824_1.c index b449246f4..59f77a2d3 100644 --- a/src/code_8057824_1.c +++ b/src/code_8057824_1.c @@ -5,8 +5,8 @@ #include "constants/direction.h" #include "constants/friend_area.h" #include "constants/weather.h" -#include "dungeon_global_data.h" -#include "dungeon_entity.h" +#include "structs/str_dungeon.h" +#include "structs/dungeon_entity.h" #include "dungeon_leader.h" #include "dungeon_map_access.h" #include "dungeon_music.h" diff --git a/src/code_805A120.c b/src/code_805A120.c index e2f59063a..73e02a4d5 100644 --- a/src/code_805A120.c +++ b/src/code_805A120.c @@ -6,8 +6,8 @@ #include "constants/targeting.h" #include "constants/type.h" #include "constants/weather.h" -#include "dungeon_entity.h" -#include "dungeon_global_data.h" +#include "structs/dungeon_entity.h" +#include "structs/str_dungeon.h" #include "dungeon_ai_targeting.h" #include "dungeon_pokemon_attributes.h" #include "dungeon_items.h" diff --git a/src/code_805D8C8.c b/src/code_805D8C8.c index 5e22c7704..b2c205f94 100644 --- a/src/code_805D8C8.c +++ b/src/code_805D8C8.c @@ -1,6 +1,6 @@ #include "global.h" #include "code_805D8C8.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "dungeon_util.h" // monster_sbin.s @@ -129,7 +129,7 @@ void CloseAllSpriteFiles(void) { s32 i; - for (i = 0; i <= MONSTER_MAX; i++) { + for (i = 0; i < MONSTER_MAX; i++) { if (gDungeon->sprites[i] != NULL) { CloseFile(gDungeon->sprites[i]); gDungeon->sprites[i] = NULL; diff --git a/src/code_8069E0C.c b/src/code_8069E0C.c index c0419cc04..30fa57885 100644 --- a/src/code_8069E0C.c +++ b/src/code_8069E0C.c @@ -4,8 +4,8 @@ #include "constants/status.h" #include "constants/type.h" #include "constants/weather.h" -#include "dungeon_entity.h" -#include "dungeon_global_data.h" +#include "structs/dungeon_entity.h" +#include "structs/str_dungeon.h" #include "dungeon_pokemon_attributes.h" #include "dungeon_random.h" #include "dungeon_util.h" diff --git a/src/code_806CD90.c b/src/code_806CD90.c index 273647b98..d6a479ab4 100644 --- a/src/code_806CD90.c +++ b/src/code_806CD90.c @@ -3,7 +3,7 @@ #include "code_806CD90.h" #include "constants/direction.h" #include "constants/status.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "dungeon_util.h" #include "pokemon.h" #include "pokemon_mid.h" diff --git a/src/code_806E8B0.c b/src/code_806E8B0.c index 80ad86f6d..5dad07aa2 100644 --- a/src/code_806E8B0.c +++ b/src/code_806E8B0.c @@ -1,6 +1,6 @@ #include "global.h" #include "constants/ability.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "dungeon_pokemon_attributes.h" #include "status_checks_1.h" #include "text_util.h" diff --git a/src/code_8073CF0.c b/src/code_8073CF0.c index b69c2ddcc..ed619e5c1 100644 --- a/src/code_8073CF0.c +++ b/src/code_8073CF0.c @@ -1,5 +1,5 @@ #include "global.h" -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" extern void sub_8067110(Entity *); extern void sub_80671A0(Entity *); diff --git a/src/code_8077274_1.c b/src/code_8077274_1.c index e83d7b160..a6695c4d7 100644 --- a/src/code_8077274_1.c +++ b/src/code_8077274_1.c @@ -8,8 +8,8 @@ #include "constants/item.h" #include "constants/status.h" #include "constants/type.h" -#include "dungeon_entity.h" -#include "dungeon_global_data.h" +#include "structs/dungeon_entity.h" +#include "structs/str_dungeon.h" #include "dungeon_items.h" #include "dungeon_movement.h" #include "dungeon_pokemon_attributes.h" diff --git a/src/code_807CD9C.c b/src/code_807CD9C.c index 3251c4dab..183c97985 100644 --- a/src/code_807CD9C.c +++ b/src/code_807CD9C.c @@ -2,7 +2,7 @@ #include "constants/ability.h" #include "constants/type.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "dungeon_leader.h" #include "dungeon_util.h" #include "code_80521D0.h" diff --git a/src/code_807E5AC.c b/src/code_807E5AC.c index acb2fcd9f..ddd05fcd8 100644 --- a/src/code_807E5AC.c +++ b/src/code_807E5AC.c @@ -1,5 +1,5 @@ #include "global.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" void sub_807FC3C(Position *pos, u32 param_2, u32 param_3) { diff --git a/src/code_808417C.c b/src/code_808417C.c index 99577cbc9..11db9facc 100644 --- a/src/code_808417C.c +++ b/src/code_808417C.c @@ -1,7 +1,7 @@ #include "global.h" #include "constants/ability.h" #include "constants/iq_skill.h" -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" #include "dungeon_pokemon_attributes.h" #include "dungeon_random.h" #include "dungeon_util.h" diff --git a/src/code_80848F0.c b/src/code_80848F0.c index 79baac250..455a4130e 100644 --- a/src/code_80848F0.c +++ b/src/code_80848F0.c @@ -1,5 +1,5 @@ #include "global.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "dungeon_music.h" #include "exclusive_pokemon.h" diff --git a/src/code_80869E4.c b/src/code_80869E4.c index 027ec7546..9e9b198aa 100644 --- a/src/code_80869E4.c +++ b/src/code_80869E4.c @@ -2,7 +2,7 @@ #include "code_806CD90.h" #include "code_80869E4.h" #include "constants/direction.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "dungeon_util_1.h" #include "random.h" diff --git a/src/code_8086A3C.c b/src/code_8086A3C.c index c7b17fea0..28eca49e8 100644 --- a/src/code_8086A3C.c +++ b/src/code_8086A3C.c @@ -4,8 +4,8 @@ #include "constants/bg_music.h" #include "constants/direction.h" #include "constants/monster.h" -#include "dungeon_entity.h" -#include "dungeon_global_data.h" +#include "structs/dungeon_entity.h" +#include "structs/str_dungeon.h" #include "dungeon_music.h" #include "dungeon_pokemon_attributes.h" #include "dungeon_util.h" diff --git a/src/code_809447C.c b/src/code_809447C.c index c7741de53..f6e1fd923 100644 --- a/src/code_809447C.c +++ b/src/code_809447C.c @@ -3,7 +3,7 @@ #include "code_8092334.h" #include "code_809447C.h" #include "dungeon.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "items.h" #include "moves.h" #include "text_util.h" diff --git a/src/code_80958E8.c b/src/code_80958E8.c index ee0953b18..ac25ec345 100644 --- a/src/code_80958E8.c +++ b/src/code_80958E8.c @@ -101,14 +101,14 @@ bool8 ValidateWonderMail(WonderMail *data) if(data->clientSpecies == MONSTER_NONE) return FALSE; - if(data->clientSpecies > MONSTER_MAX) + if(data->clientSpecies >= MONSTER_MAX) return FALSE; if(data->clientSpecies != GetBaseSpecies(data->clientSpecies)) return FALSE; if(!sub_803C0DC(data->clientSpecies)) return FALSE; - if(data->targetSpecies > MONSTER_MAX) + if(data->targetSpecies >= MONSTER_MAX) return FALSE; if(data->targetSpecies != GetBaseSpecies(data->targetSpecies)) return FALSE; diff --git a/src/data/code_80227B8.h b/src/data/code_80227B8.h new file mode 100644 index 000000000..e62ee24a9 --- /dev/null +++ b/src/data/code_80227B8.h @@ -0,0 +1,90 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const MenuItem sUnknown_80DC584[3] = +{ + {"Yes", 2}, + {"No", 3}, + {NULL, 1}, +}; + +static const UnkTextStruct2 sUnknown_80DC5A4 = +{ + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; +static const UnkTextStruct2 sUnknown_80DC5BC = +{ + 0, 0, 0, 0, + 3, + 20, 4, + 6, 3, + 3, 0, + NULL +}; +static const UnkTextStruct2 sUnknown_80DC5D4 = +{ + 0, 0, 0, 0, + 3, + 20, 11, + 6, 3, + 3, 0, + NULL +}; + +ALIGNED(4) static const u8 sTripleQuestionMark[] = _("???"); +ALIGNED(4) static const u8 sDoesNotAppearHungry[] = _("It doesn{APOSTROPHE}t appear to be hungry."); + +ALIGNED(4) static const u8 sFmtGummiBigFav[] = _( + "{ARG_POKEMON_1} took the Gummi and ate it.\n" + "This Gummi looks like a big favorite!\n" + "{ARG_POKEMON_1}{APOSTROPHE}s IQ went up!"); + +ALIGNED(4) static const u8 sFmtGummiFav[] = _( + "{ARG_POKEMON_1} took the Gummi and ate it.\n" + "This Gummi looks like a favorite!\n" + "{ARG_POKEMON_1}{APOSTROPHE}s IQ went up!"); + +ALIGNED(4) static const u8 sFmtGummiOkay[] = _( + "{ARG_POKEMON_1} took the Gummi and ate it.\n" + "It doesn{APOSTROPHE}t seem to dislike this Gummi.\n" + "{ARG_POKEMON_1}{APOSTROPHE}s IQ went up!"); + +ALIGNED(4) static const u8 sFmtGummiSatisfied[] = _( + "{ARG_POKEMON_1} took the Gummi and ate it.\n" + "It appears to be just a little satisfied.\n" + "{ARG_POKEMON_1}{APOSTROPHE}s IQ went up!"); + +ALIGNED(4) static const u8 sFmtIQHelpedLearn[] = _( + "{ARG_POKEMON_1}{APOSTROPHE}s IQ helped it learn how to\n" + "use {ARG_MOVE_ITEM_1}!"); + +ALIGNED(4) static const u8 sFmtPlusEverything[] = _( + "Yes! {ARG_POKEMON_1} grew explosively!\n" + "Attack{COMMA} Defense{COMMA} and so on rose by 1!"); + +ALIGNED(4) static const u8 sFmtPlusAtk[] = _( + "Yes!\n" + "{ARG_POKEMON_1}{APOSTROPHE}s Attack rose by 1!"); + +ALIGNED(4) static const u8 sFmtPlusSpAtk[] = _( + "Yes!\n" + "{ARG_POKEMON_1}{APOSTROPHE}s Special Attack rose by 1!"); + +ALIGNED(4) static const u8 sFmtPlusDef[] = _( + "Yes!\n" + "{ARG_POKEMON_1}{APOSTROPHE}s Defense rose by 1!"); + +ALIGNED(4) static const u8 sFmtPlusSpDef[] = _( + "Yes!\n" + "{ARG_POKEMON_1}{APOSTROPHE}s Special Defense rose by 1!"); + +ALIGNED(4) static const u8 sNoGummis[] = _("You don{APOSTROPHE}t have any Gummis."); +ALIGNED(4) static const u8 sNoItem[] = _("You don{APOSTROPHE}t have an item."); +ALIGNED(4) static const u8 sGummiGone[] = _("The Gummi is gone!"); +ALIGNED(4) static const u8 sItemGone[] = _("The item is gone!"); +ALIGNED(4) static const u8 sGive[] = _("Give"); +ALIGNED(4) static const u8 sUse[] = _("Use"); \ No newline at end of file diff --git a/src/data/code_8023144.h b/src/data/code_8023144.h new file mode 100644 index 000000000..49276ee82 --- /dev/null +++ b/src/data/code_8023144.h @@ -0,0 +1,23 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 sUnknown_80DC904 = +{ + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; +static const UnkTextStruct2 sUnknown_80DC91C = +{ + 0, 0, 0, 0, + 6, + 2, 2, + 15, 14, + 14, 0, + NULL +}; + +ALIGNED(4) static const u8 sPokemon[] = _("Pokémon"); +ALIGNED(4) static const u8 sFmtColoredString[] = _("{COLOR_2}%c%s{END_COLOR_TEXT_2}"); \ No newline at end of file diff --git a/src/dungeon_action.c b/src/dungeon_action.c index e121602f3..8f9c42c92 100644 --- a/src/dungeon_action.c +++ b/src/dungeon_action.c @@ -3,8 +3,8 @@ #include "constants/ability.h" #include "constants/dungeon_action.h" #include "dungeon_ai.h" -#include "dungeon_entity.h" -#include "dungeon_global_data.h" +#include "structs/dungeon_entity.h" +#include "structs/str_dungeon.h" #include "dungeon_leader.h" #include "dungeon_movement.h" #include "dungeon_util.h" diff --git a/src/dungeon_ai.c b/src/dungeon_ai.c index d09cab10c..253e53bb1 100644 --- a/src/dungeon_ai.c +++ b/src/dungeon_ai.c @@ -18,7 +18,7 @@ #include "dungeon_ai_movement.h" #include "dungeon_ai_targeting.h" #include "dungeon_capabilities.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "dungeon_items.h" #include "dungeon_leader.h" #include "dungeon_map_access.h" @@ -27,7 +27,7 @@ #include "dungeon_util.h" #include "dungeon_util_1.h" #include "dungeon_visibility.h" -#include "map.h" +#include "structs/map.h" #include "pokemon.h" #include "status_checks.h" #include "targeting.h" diff --git a/src/dungeon_ai_attack.c b/src/dungeon_ai_attack.c index a576098d8..638c5a996 100644 --- a/src/dungeon_ai_attack.c +++ b/src/dungeon_ai_attack.c @@ -15,7 +15,7 @@ #include "dungeon_ai_targeting.h" #include "dungeon_ai_targeting.h" #include "dungeon_capabilities.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "dungeon_map_access.h" #include "dungeon_pokemon_attributes.h" #include "dungeon_random.h" diff --git a/src/dungeon_ai_items.c b/src/dungeon_ai_items.c index ed3e84e1a..9f985f5bf 100644 --- a/src/dungeon_ai_items.c +++ b/src/dungeon_ai_items.c @@ -11,15 +11,15 @@ #include "dungeon_ai_items.h" #include "dungeon_ai_targeting.h" #include "dungeon_capabilities.h" -#include "dungeon_entity.h" -#include "dungeon_global_data.h" +#include "structs/dungeon_entity.h" +#include "structs/str_dungeon.h" #include "dungeon_map_access.h" #include "dungeon_pokemon_attributes.h" #include "dungeon_random.h" #include "dungeon_util.h" #include "dungeon_visibility.h" #include "items.h" -#include "position.h" +#include "structs/str_position.h" #include "position_util.h" #include "status.h" diff --git a/src/dungeon_ai_movement.c b/src/dungeon_ai_movement.c index 54caf261c..8b10caed5 100644 --- a/src/dungeon_ai_movement.c +++ b/src/dungeon_ai_movement.c @@ -10,7 +10,7 @@ #include "dungeon_ai_leader.h" #include "dungeon_ai_targeting.h" #include "dungeon_capabilities.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "dungeon_map_access.h" #include "dungeon_movement.h" #include "dungeon_pokemon_attributes.h" @@ -18,7 +18,7 @@ #include "dungeon_range.h" #include "dungeon_util.h" #include "dungeon_visibility.h" -#include "map.h" +#include "structs/map.h" #include "number_util.h" #include "position_util.h" diff --git a/src/dungeon_ai_targeting.c b/src/dungeon_ai_targeting.c index 71c7104f4..6c450e6ec 100644 --- a/src/dungeon_ai_targeting.c +++ b/src/dungeon_ai_targeting.c @@ -10,14 +10,14 @@ #include "constants/targeting.h" #include "dungeon_engine.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "dungeon_items.h" #include "dungeon_map_access.h" #include "dungeon_movement.h" #include "dungeon_pokemon_attributes.h" #include "dungeon_random.h" #include "dungeon_util.h" -#include "map.h" +#include "structs/map.h" #include "tile_types.h" extern void ShowVisualFlags(Entity *r0); diff --git a/src/dungeon_capabilities.c b/src/dungeon_capabilities.c index 3b2836da5..51bbb62bc 100644 --- a/src/dungeon_capabilities.c +++ b/src/dungeon_capabilities.c @@ -13,7 +13,7 @@ #include "dungeon_movement.h" #include "dungeon_pokemon_attributes.h" #include "dungeon_util.h" -#include "map.h" +#include "structs/map.h" const u8 gDirectionBitMasks_1[] = {0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80}; diff --git a/src/dungeon_engine.c b/src/dungeon_engine.c index 92ab54603..782ab4d24 100644 --- a/src/dungeon_engine.c +++ b/src/dungeon_engine.c @@ -1,8 +1,8 @@ #include "global.h" -#include "dungeon_entity.h" +#include "structs/dungeon_entity.h" #include "dungeon_engine.h" #include "constants/dungeon.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "dungeon_ai.h" #include "dungeon_leader.h" #include "dungeon_movement.h" diff --git a/src/dungeon_items.c b/src/dungeon_items.c index 8878ec89b..baab94f97 100644 --- a/src/dungeon_items.c +++ b/src/dungeon_items.c @@ -2,7 +2,7 @@ #include "code_80869E4.h" #include "dungeon_items.h" #include "dungeon_capabilities.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "dungeon_leader.h" #include "dungeon_random.h" #include "dungeon_util.h" diff --git a/src/dungeon_leader.c b/src/dungeon_leader.c index 0082bba4b..20db12ad8 100644 --- a/src/dungeon_leader.c +++ b/src/dungeon_leader.c @@ -1,5 +1,5 @@ #include "global.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "dungeon_leader.h" #include "dungeon_util.h" diff --git a/src/dungeon_map_access.c b/src/dungeon_map_access.c index 8282ddda3..122c1cb1e 100644 --- a/src/dungeon_map_access.c +++ b/src/dungeon_map_access.c @@ -3,7 +3,7 @@ #include "constants/walkable_tile.h" #include "decompress.h" #include "dungeon_map_access.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "tile_types.h" #include "random.h" #include "dungeon_engine.h" diff --git a/src/dungeon_map_access_1.c b/src/dungeon_map_access_1.c index fa3d1775a..7e6ef6c1e 100644 --- a/src/dungeon_map_access_1.c +++ b/src/dungeon_map_access_1.c @@ -1,7 +1,7 @@ #include "global.h" #include "code_8009804.h" #include "dungeon_engine.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "dungeon_map_access.h" #include "file_system.h" #include "random.h" diff --git a/src/dungeon_movement.c b/src/dungeon_movement.c index 0040a8464..08b90bd3b 100644 --- a/src/dungeon_movement.c +++ b/src/dungeon_movement.c @@ -1,5 +1,5 @@ #include "global.h" -#include "map.h" +#include "structs/map.h" #include "dungeon_movement.h" #include "constants/item.h" @@ -9,7 +9,7 @@ #include "constants/weather.h" #include "dungeon_engine.h" #include "dungeon_items.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "dungeon_map_access.h" #include "dungeon_pokemon_attributes.h" #include "dungeon_util.h" diff --git a/src/dungeon_music.c b/src/dungeon_music.c index ba3658cf8..5499750e8 100644 --- a/src/dungeon_music.c +++ b/src/dungeon_music.c @@ -3,7 +3,7 @@ #include "constants/bg_music.h" #include "dungeon.h" #include "music.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "dungeon_music.h" #include "dungeon_util.h" #include "text_util.h" diff --git a/src/dungeon_pokemon_attributes.c b/src/dungeon_pokemon_attributes.c index 3275a7663..7b105e043 100644 --- a/src/dungeon_pokemon_attributes.c +++ b/src/dungeon_pokemon_attributes.c @@ -8,7 +8,7 @@ #include "constants/status.h" #include "constants/tactic.h" #include "constants/type.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "dungeon_items.h" #include "dungeon_util.h" #include "dungeon_visibility.h" diff --git a/src/dungeon_range.c b/src/dungeon_range.c index 026e93ad5..34392f6ff 100644 --- a/src/dungeon_range.c +++ b/src/dungeon_range.c @@ -1,9 +1,9 @@ #include "global.h" #include "dungeon_range.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "dungeon_map_access.h" -#include "map.h" +#include "structs/map.h" bool8 IsPositionActuallyInSight(Position *pos1, Position *pos2) { diff --git a/src/dungeon_util.c b/src/dungeon_util.c index 99a6b7777..dd6fceb20 100644 --- a/src/dungeon_util.c +++ b/src/dungeon_util.c @@ -2,7 +2,7 @@ #include "dungeon_util.h" #include "dungeon_map_access.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" extern u8 gUnknown_202EE70[0x6]; extern u8 gUnknown_202EE76[0x10]; diff --git a/src/dungeon_util_1.c b/src/dungeon_util_1.c index f72a6c782..a63ca88fc 100644 --- a/src/dungeon_util_1.c +++ b/src/dungeon_util_1.c @@ -4,7 +4,7 @@ #include "constants/direction.h" #include "constants/dungeon.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "dungeon_leader.h" #include "dungeon_util.h" #include "random.h" diff --git a/src/exclusive_pokemon.c b/src/exclusive_pokemon.c index 17106d6a2..caae7613f 100644 --- a/src/exclusive_pokemon.c +++ b/src/exclusive_pokemon.c @@ -250,7 +250,7 @@ void WriteExclusivePokemon(struct unkStruct_8094924 *r0) SaveIntegerBits(r0, gUnknown_203B498, 1); - for(index = 0; index < 424; index++) + for(index = 0; index < MONSTER_MAX; index++) { stack_0 = sub_8098134(index); SaveIntegerBits(r0, &stack_0, 1); @@ -285,7 +285,7 @@ void ReadExclusivePokemon(struct unkStruct_8094924 *r0) memset(gUnknown_203B498, 0, sizeof(struct ExclusivePokemonData)); RestoreIntegerBits(r0, gUnknown_203B498, 1); - for(index = 0; index < 424; index++) + for(index = 0; index < MONSTER_MAX; index++) { RestoreIntegerBits(r0, &stack_0, 1); if(stack_0) diff --git a/src/items.c b/src/items.c index 50d55ee68..77293bac8 100644 --- a/src/items.c +++ b/src/items.c @@ -925,7 +925,7 @@ bool8 IsGummiItem(u8 id) return TRUE; } -bool8 HasGummiItem() +bool8 HasGummiItem(void) { s32 i; for (i = 0; i < INVENTORY_SIZE; i++) { diff --git a/src/move_checks.c b/src/move_checks.c index 57825f325..3b6476f27 100644 --- a/src/move_checks.c +++ b/src/move_checks.c @@ -3,7 +3,7 @@ #include "constants/type.h" #include "constants/weather.h" #include "dungeon_engine.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "dungeon_items.h" #include "dungeon_map_access.h" #include "dungeon_pokemon_attributes.h" diff --git a/src/move_effects_target.c b/src/move_effects_target.c index f68e0461e..52f158e82 100644 --- a/src/move_effects_target.c +++ b/src/move_effects_target.c @@ -17,7 +17,7 @@ #include "dungeon_ai_movement.h" #include "dungeon_ai_targeting.h" #include "dungeon_capabilities.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "dungeon_items.h" #include "dungeon_leader.h" #include "dungeon_map_access.h" @@ -26,7 +26,7 @@ #include "dungeon_util.h" #include "dungeon_util_1.h" #include "dungeon_visibility.h" -#include "map.h" +#include "structs/map.h" #include "move_effects_target.h" #include "pokemon.h" #include "status_checks.h" diff --git a/src/move_util.c b/src/move_util.c index 2d8343e48..6218ed275 100644 --- a/src/move_util.c +++ b/src/move_util.c @@ -8,7 +8,7 @@ #include "dungeon_util.h" #include "dungeon_pokemon_attributes.h" #include "dungeon_random.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" extern bool8 sub_8044B28(void); diff --git a/src/other_menus1.c b/src/other_menus1.c index 1ef435a18..225fbf54d 100644 --- a/src/other_menus1.c +++ b/src/other_menus1.c @@ -7,7 +7,7 @@ #include "code_80130A8.h" #include "constants/communication_error_codes.h" #include "constants/main_menu.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "input.h" #include "items.h" #include "memory.h" diff --git a/src/other_menus2.c b/src/other_menus2.c index 0da04a099..e75c3c29c 100644 --- a/src/other_menus2.c +++ b/src/other_menus2.c @@ -2,7 +2,7 @@ #include "code_8094F88.h" #include "constants/communication_error_codes.h" #include "constants/dungeon.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "main_menu1.h" #include "memory.h" #include "other_menus1.h" diff --git a/src/party_list_menu.c b/src/party_list_menu.c index c4bc5f50f..5549a1bf6 100644 --- a/src/party_list_menu.c +++ b/src/party_list_menu.c @@ -6,7 +6,7 @@ #include "code_801BEEC.h" #include "code_801EE10.h" #include "code_801EE10_mid.h" -#include "code_8023144.h" +#include "code_80227B8.h" #include "code_8024458.h" #include "code_8098BDC.h" #include "common_strings.h" @@ -39,7 +39,6 @@ extern PokemonStruct1 *sub_808D3BC(void); extern bool8 sub_808D750(s16 index_); extern void sub_808ED00(void); bool8 sub_8026E88(PokemonStruct1 *r0); -bool8 HasGummiItem(); bool8 sub_8026EB8(PokemonStruct1 *r0); void sub_8026E08(u32 r0); void sub_8026DAC(u32 r0, BulkItem *item); diff --git a/src/pokemon_3.c b/src/pokemon_3.c index 21ce326d1..ff5852d12 100644 --- a/src/pokemon_3.c +++ b/src/pokemon_3.c @@ -922,7 +922,7 @@ void sub_808F468(PokemonStruct1 *param_1, EvolveStatus *evolveStatus, u8 param_3 #endif evolveStatus->evolutionConditionStatus = 0; - for(index = MONSTER_BULBASAUR; index <= MONSTER_MAX; index++) + for(index = MONSTER_BULBASAUR; index < MONSTER_MAX; index++) { if ((s16)index == MONSTER_ALAKAZAM) { GetPokemonEvolveConditions(MONSTER_ALAKAZAM, &evolveConditions); @@ -933,11 +933,11 @@ void sub_808F468(PokemonStruct1 *param_1, EvolveStatus *evolveStatus, u8 param_3 if(((evolveConditions.preEvolution.evolveType != EVOLVE_TYPE_NONE) && (param_1->speciesNum == evolveConditions.preEvolution.evolveFrom))) break; }; - if (index == MONSTER_MAX + 1) { + if (index == MONSTER_MAX) { evolveStatus->evolutionConditionStatus = EVOLUTION_NO_MORE; } else { - for(index = MONSTER_BULBASAUR, defaultReason = EVOLUTION_LACK_ITEM; index <= MONSTER_MAX; index++) + for(index = MONSTER_BULBASAUR, defaultReason = EVOLUTION_LACK_ITEM; index < MONSTER_MAX; index++) { evolFlag = FALSE; index2 = (s16)index; diff --git a/src/pokemon_mid.c b/src/pokemon_mid.c index d108fe999..b965810ad 100644 --- a/src/pokemon_mid.c +++ b/src/pokemon_mid.c @@ -880,7 +880,7 @@ s32 sub_808E400(s32 _species, s16* _a2, s32 _a3, s32 _a4) register s16* a2 asm("r6"); i = 1; a2 = _a2; - for (i = 1; i <= MONSTER_MAX; i++) { + for (i = 1; i < MONSTER_MAX; i++) { register s32 current asm("r8") = (s16)i; if (species != GetPokemonEvolveFrom(i)) { continue; diff --git a/src/rescue_password_menu.c b/src/rescue_password_menu.c index 8f9828e06..e884a3973 100644 --- a/src/rescue_password_menu.c +++ b/src/rescue_password_menu.c @@ -635,7 +635,7 @@ u32 sub_8039068(u32 mailMode, u8 *passwordBuffer, unkStruct_203B480 *param_3) { if ( (!sub_803D204(passwordBuffer, param_3)) || (WONDER_MAIL_TYPE_OKD < param_3->mailType) || (param_3->unk4.dungeon.floor >= GetDungeonFloorCount(param_3->unk4.dungeon.id)) || - (param_3->clientSpecies == MONSTER_NONE) || (MONSTER_MAX < param_3->clientSpecies) || + (param_3->clientSpecies == MONSTER_NONE) || (MONSTER_MAX - 1 < param_3->clientSpecies) || (IsInvalidItemReward(param_3->item.id))) { return PASSWORD_ENTRY_INCORRECT_PASSWORD; } diff --git a/src/status.c b/src/status.c index eb9139d51..29c7605f6 100644 --- a/src/status.c +++ b/src/status.c @@ -7,14 +7,14 @@ #include "dungeon_pokemon_attributes.h" #include "dungeon_ai_targeting.h" #include "dungeon_ai_movement.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "dungeon_map_access.h" #include "dungeon_util.h" #include "dungeon_items.h" #include "code_808417C.h" #include "code_8077274_1.h" #include "dungeon_movement.h" -#include "map.h" +#include "structs/map.h" extern u8 gAvailablePokemonNames[]; extern u8 gUnknown_202DE58[]; diff --git a/src/status_actions.c b/src/status_actions.c index 0510282cc..532e772e8 100644 --- a/src/status_actions.c +++ b/src/status_actions.c @@ -12,13 +12,13 @@ #include "constants/weather.h" #include "dungeon_engine.h" #include "dungeon_ai_targeting.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "dungeon_items.h" #include "dungeon_map_access.h" #include "dungeon_pokemon_attributes.h" #include "dungeon_util.h" #include "dungeon_visibility.h" -#include "map.h" +#include "structs/map.h" #include "moves.h" #include "number_util.h" //#include "pokemon.h" // NOTE: overriding some of the funcs below... when fixed, uncomment this diff --git a/src/status_checks_1.c b/src/status_checks_1.c index b7098f578..efa6d8ffd 100644 --- a/src/status_checks_1.c +++ b/src/status_checks_1.c @@ -6,7 +6,7 @@ #include "constants/status.h" #include "constants/weather.h" #include "dungeon_engine.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "dungeon_items.h" #include "dungeon_movement.h" #include "dungeon_pokemon_attributes.h" diff --git a/src/tile_types.c b/src/tile_types.c index 99e6265dd..81692b41f 100644 --- a/src/tile_types.c +++ b/src/tile_types.c @@ -1,7 +1,7 @@ #include "global.h" #include "tile_types.h" #include "code_806CD90.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "dungeon_map_access.h" #include "dungeon_util.h" diff --git a/src/trap.c b/src/trap.c index bfc27c148..768f38d1b 100644 --- a/src/trap.c +++ b/src/trap.c @@ -3,7 +3,7 @@ #include "dungeon_map_access.h" #include "dungeon_util.h" -#include "map.h" +#include "structs/map.h" bool8 CanLayTrap(Position *pos) { diff --git a/src/type_effectiveness.c b/src/type_effectiveness.c index a2a68eac0..6c9aba7bb 100644 --- a/src/type_effectiveness.c +++ b/src/type_effectiveness.c @@ -4,7 +4,7 @@ #include "constants/ability.h" #include "constants/status.h" #include "constants/weather.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "dungeon_pokemon_attributes.h" #include "dungeon_util.h" #include "status.h" diff --git a/src/weather.c b/src/weather.c index d1699a4f7..1bdc3e3c9 100644 --- a/src/weather.c +++ b/src/weather.c @@ -4,7 +4,7 @@ #include "constants/item.h" #include "constants/move_id.h" #include "constants/weather.h" -#include "dungeon_global_data.h" +#include "structs/str_dungeon.h" #include "dungeon_items.h" #include "dungeon_random.h" #include "dungeon_util.h" diff --git a/src/wigglytuff_shop2.c b/src/wigglytuff_shop2.c index 473a5ae23..49ba357df 100644 --- a/src/wigglytuff_shop2.c +++ b/src/wigglytuff_shop2.c @@ -142,7 +142,7 @@ static void sub_8021A60(void) sWigglytuffShop2Work->unk30[index] = 0; } - for (index = 0; index <= MONSTER_MAX; index++) { + for (index = 0; index < MONSTER_MAX; index++) { s32 index2 = (s16)index; if (sWigglytuffShop2Work->friendArea == GetFriendArea(index2) && index2 == GetBaseSpeciesNoUnown(index2)) { @@ -152,7 +152,7 @@ static void sub_8021A60(void) } } - for (index = 0; index <= MONSTER_MAX; index++) { + for (index = 0; index < MONSTER_MAX; index++) { if (!sub_8098134(index)) continue; diff --git a/src/wigglytuff_shop3.c b/src/wigglytuff_shop3.c index a98776ae2..5d9e74749 100644 --- a/src/wigglytuff_shop3.c +++ b/src/wigglytuff_shop3.c @@ -266,7 +266,7 @@ static void UpdateWigglytuffDialogue(void) sub_8023144(0, 3, 0, 10); break; case WIGGLYTUFF_UNK17: - sub_8023354(1); + sub_8023354(TRUE); break; case DISPLAY_POKEMON_FRIEND_AREA_INFO: sub_8092638(sWigglytuffShop3Work->chosenFriendArea, &uStack_14, FALSE, FALSE); @@ -528,7 +528,7 @@ static void sub_8022668(void) static void sub_8022684(void) { - switch (sub_8023278(1)) { + switch (sub_8023278(TRUE)) { case 3: sWigglytuffShop3Work->chosenSpecies = sub_802331C(); sWigglytuffShop3Work->chosenFriendArea = GetFriendArea(sWigglytuffShop3Work->chosenSpecies); diff --git a/sym_ewram2.txt b/sym_ewram2.txt index cb615395a..7e81e5e71 100644 --- a/sym_ewram2.txt +++ b/sym_ewram2.txt @@ -182,18 +182,8 @@ gUnknown_203B278: /* 203B278 */ .include "src/wigglytuff_shop1.o" .include "src/wigglytuff_shop2.o" .include "src/wigglytuff_shop3.o" - -gUnknown_203B294: /* 203B294 (sub_80227B8 - sub_8023120) */ - .space 0x4 - -gUnknown_203B298: /* 203B298 (sub_8023144 - sub_80233A0) */ - .space 0x4 - -gUnknown_203B29C: /* 203B29C (sub_8023144 - sub_80233A0) */ - .space 0x2 - -gUnknown_203B29E: /* 203B29E (sub_8023144 - sub_80233A0) */ - .space 0x2 +.include "src/code_80227B8.o" +.include "src/code_8023144.o" gUnknown_203B2A0: /* 203B2A0 (sub_8023868 - sub_8023C60) */ .space 0x4 diff --git a/sym_iwram.txt b/sym_iwram.txt index 39a8e9b31..933b16300 100644 --- a/sym_iwram.txt +++ b/sym_iwram.txt @@ -26,9 +26,7 @@ gUnknown_3001B58: /* 3001B58 */ gUnknown_3001B5A: /* 3001B5A */ .space 0x2 -gUnknown_3001B5C: /* 3001B5C */ - .space 0x4 - +.include "src/code_8023144.o" .include "src/code_8023868.o" gUnknown_3001B64: /* 3001B64 */ From c6bc80e6d87db9998251aaaa21d612d0e0d25d4c Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Wed, 20 Sep 2023 22:52:40 -0400 Subject: [PATCH 28/47] Split+data code_801602C --- data/data_80DAF70.s | 31 +--- include/code_8012A18_1.h | 11 +- include/code_80130A8.h | 5 +- include/code_801602C.h | 21 +++ include/code_801AFA4.h | 2 +- include/code_801B60C.h | 2 +- include/code_801BEEC.h | 2 +- include/code_801C244.h | 2 +- include/code_801C620.h | 2 +- include/code_801C8C4.h | 2 +- include/code_801D014.h | 2 +- include/code_801D9E4.h | 2 +- include/code_80227B8.h | 2 +- include/debug_menu1.h | 2 +- include/debug_menu2.h | 2 +- include/debug_menu3.h | 2 +- include/debug_menu4.h | 2 +- include/felicity_bank.h | 2 +- include/friend_area_action_menu.h | 2 +- include/friend_rescue.h | 2 +- include/gulpin_shop.h | 2 +- include/gulpin_shop_801FB50.h | 2 +- include/kangaskhan_storage1.h | 2 +- include/kangaskhan_storage2.h | 2 +- include/kecleon_bros1.h | 2 +- include/luminous_cave.h | 2 +- include/mailbox.h | 2 +- include/main_menu1.h | 2 +- include/main_menu2.h | 2 +- include/makuhita_dojo1.h | 2 +- include/menu_input.h | 2 +- include/other_menus1.h | 2 +- include/party_list_menu.h | 2 +- include/rescue_password_menu.h | 2 +- include/{ => structs}/menu.h | 0 include/trade_items_menu.h | 2 +- include/wigglytuff_shop1.h | 2 +- include/wigglytuff_shop3.h | 2 +- include/wonder_mail.h | 2 +- include/wonder_mail_2_1.h | 2 +- include/wonder_mail_3.h | 2 +- ld_script.txt | 2 + src/code_8012A18_1.c | 275 +++--------------------------- src/code_801602C.c | 215 +++++++++++++++++++++++ src/code_803B050.c | 2 +- src/data/code_801602C.h | 22 +++ src/debug_menu4.c | 2 +- src/friend_list_menu.c | 4 +- src/friend_rescue.c | 4 - src/load_screen.c | 2 +- src/luminous_cave.c | 2 +- src/mailbox.c | 2 +- src/pelipper_board.c | 2 +- src/personality_test.c | 4 +- src/post_office_guide1.c | 2 +- src/rescue_password_menu.c | 3 - src/thank_you_wonder_mail.c | 3 - src/wonder_mail.c | 4 - src/wonder_mail_2_1.c | 2 +- src/wonder_mail_main_menu.c | 3 - sym_ewram2.txt | 4 +- 61 files changed, 338 insertions(+), 361 deletions(-) create mode 100644 include/code_801602C.h rename include/{ => structs}/menu.h (100%) create mode 100644 src/code_801602C.c create mode 100644 src/data/code_801602C.h diff --git a/data/data_80DAF70.s b/data/data_80DAF70.s index 60dd9d5df..624d82d22 100644 --- a/data/data_80DAF70.s +++ b/data/data_80DAF70.s @@ -30,8 +30,6 @@ gUnknown_80DAFA0: @ 80DAFA0 .byte 0x06, 0x00, 0x03, 0x00 .byte 0x03, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 - - @ END code_80130A8 #3 @ START code_80130A8 #4 @@ -367,31 +365,4 @@ gUnknown_80DB664: @ 80DB664 .string "%s\0" .align 2,0 -@ END code_80130A8 #4 - -@ START code_8012A18_1 -.string "pksdir0\0" - - .align 2,0 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DB688 -gUnknown_80DB688: @ 80DB688 - .string "Is the name {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1} OK?\0" - .align 2,0 - - .global gUnknown_80DB6A4 -gUnknown_80DB6A4: @ 80DB6A4 - .string "This name is too long.\0" - .align 2,0 - - .global gUnknown_80DB6BC -gUnknown_80DB6BC: @ 80DB6BC - .string "Please enter a name.\0" - .align 2,0 -@ END code_8012A18_1 \ No newline at end of file +@ END code_80130A8 #4 \ No newline at end of file diff --git a/include/code_8012A18_1.h b/include/code_8012A18_1.h index 8752a5d42..99f960677 100644 --- a/include/code_8012A18_1.h +++ b/include/code_8012A18_1.h @@ -1,8 +1,7 @@ -#ifndef GUARD_CODE_8012A18_H -#define GUARD_CODE_8012A18_H +#ifndef GUARD_CODE_8012A18_1_H +#define GUARD_CODE_8012A18_1_H -u32 sub_801602C(u32, u8 *); -u32 sub_8016080(void); -void sub_80160D8(void); +s32 sub_8015FEC(u8 *buffer, s32 size); +s32 sub_8016028(void); -#endif // GUARD_CODE_8012A18_H \ No newline at end of file +#endif // GUARD_CODE_8012A18_1_H \ No newline at end of file diff --git a/include/code_80130A8.h b/include/code_80130A8.h index 81f3a9824..a38710fe5 100644 --- a/include/code_80130A8.h +++ b/include/code_80130A8.h @@ -2,7 +2,7 @@ #define GUARD_CODE_80130A8_H #include "file_system.h" -#include "menu.h" +#include "structs/menu.h" #include "structs/str_text.h" // code_80130A8.s @@ -13,6 +13,9 @@ extern void sub_8014114(void); extern void sub_80141B4(const u8 *, u32, OpenedFile **, u32); extern void sub_8014248(const u8 *, u32, u32, const MenuItem *, void *, u32, u32, OpenedFile **, u32); extern s32 sub_80144A4(s32 *); +extern void sub_80151C0(u32, u8 *); +extern u32 sub_80154F0(void); +extern void sub_80155F0(void); extern void xxx_draw_string_80144C4(void); extern void xxx_format_and_draw(u32, u32, const u8 *, u32, u32); extern void xxx_format_string(const u8 *, u8 *, u8 *, u32); diff --git a/include/code_801602C.h b/include/code_801602C.h new file mode 100644 index 000000000..7fd6bf2b1 --- /dev/null +++ b/include/code_801602C.h @@ -0,0 +1,21 @@ +#ifndef GUARD_CODE_801602C_H +#define GUARD_CODE_801602C_H + +#include "structs/menu.h" + +// size: 0x50 +struct unkStruct_203B200 +{ + u32 unk0; + u32 unk4; + /* 0x8 */ u8 *pokeName; + /* 0xC */ s32 state; + /* 0x10 */ MenuItem menus[3]; + u8 fill[0x50 - 0x28]; +}; + +u32 sub_801602C(u32 mode, u8 *name); +u32 sub_8016080(void); +void sub_80160D8(void); + +#endif // GUARD_CODE_801602C_H \ No newline at end of file diff --git a/include/code_801AFA4.h b/include/code_801AFA4.h index 91ae271db..355f1d016 100644 --- a/include/code_801AFA4.h +++ b/include/code_801AFA4.h @@ -3,7 +3,7 @@ #include "global.h" #include "constants/move.h" -#include "menu.h" +#include "structs/menu.h" #include "pokemon.h" // size: 0xA4 diff --git a/include/code_801B60C.h b/include/code_801B60C.h index 407dfabd8..7b7073892 100644 --- a/include/code_801B60C.h +++ b/include/code_801B60C.h @@ -2,7 +2,7 @@ #define GUARD_CODE_801B60C_H #include "items.h" -#include "menu.h" +#include "structs/menu.h" #include "structs/str_text.h" // size: 0x154 diff --git a/include/code_801BEEC.h b/include/code_801BEEC.h index a12baee52..c5d65660d 100644 --- a/include/code_801BEEC.h +++ b/include/code_801BEEC.h @@ -2,7 +2,7 @@ #define GUARD_CODE_801BEEC_H #include "constants/iq_skill.h" -#include "menu.h" +#include "structs/menu.h" #include "pokemon.h" #include "structs/str_text.h" diff --git a/include/code_801C244.h b/include/code_801C244.h index 3c78d407d..d739d5699 100644 --- a/include/code_801C244.h +++ b/include/code_801C244.h @@ -2,7 +2,7 @@ #define GUARD_CODE_801C244_H #include "constants/iq_skill.h" -#include "menu.h" +#include "structs/menu.h" #include "pokemon.h" #include "structs/str_text.h" diff --git a/include/code_801C620.h b/include/code_801C620.h index f9623bd2b..2213cba76 100644 --- a/include/code_801C620.h +++ b/include/code_801C620.h @@ -1,7 +1,7 @@ #ifndef GUARD_CODE_801C620_H #define GUARD_CODE_801C620_H -#include "menu.h" +#include "structs/menu.h" #include "structs/subStruct_203B240.h" #include "structs/str_text.h" diff --git a/include/code_801C8C4.h b/include/code_801C8C4.h index 65a3e1b3e..cf57d5617 100644 --- a/include/code_801C8C4.h +++ b/include/code_801C8C4.h @@ -2,7 +2,7 @@ #define GUARD_CODE_801C8C4_H #include "constants/item.h" -#include "menu.h" +#include "structs/menu.h" #include "structs/str_text.h" // size: 0x554 diff --git a/include/code_801D014.h b/include/code_801D014.h index ab29a0ff5..9df2e4f2d 100644 --- a/include/code_801D014.h +++ b/include/code_801D014.h @@ -1,7 +1,7 @@ #ifndef GUARD_CODE_801D014_H #define GUARD_CODE_801D014_H -#include "menu.h" +#include "structs/menu.h" #include "pokemon.h" #include "structs/str_text.h" diff --git a/include/code_801D9E4.h b/include/code_801D9E4.h index a08365796..6d88d641c 100644 --- a/include/code_801D9E4.h +++ b/include/code_801D9E4.h @@ -1,7 +1,7 @@ #ifndef GUARD_CODE_801D9E4_H #define GUARD_CODE_801D9E4_H -#include "menu.h" +#include "structs/menu.h" #include "structs/str_text.h" // size: 0xA0 diff --git a/include/code_80227B8.h b/include/code_80227B8.h index 62eba30d9..a7bcadfff 100644 --- a/include/code_80227B8.h +++ b/include/code_80227B8.h @@ -3,7 +3,7 @@ #include "constants/iq_skill.h" #include "items.h" -#include "menu.h" +#include "structs/menu.h" #include "pokemon.h" #include "structs/str_text.h" diff --git a/include/debug_menu1.h b/include/debug_menu1.h index bc27efef2..708296549 100644 --- a/include/debug_menu1.h +++ b/include/debug_menu1.h @@ -1,7 +1,7 @@ #ifndef GUARD_DEBUG_MENU1_H #define GUARD_DEBUG_MENU1_H -#include "menu.h" +#include "structs/menu.h" #include "structs/str_text.h" // size: 0x1A4 diff --git a/include/debug_menu2.h b/include/debug_menu2.h index b42ab1ca3..40a0baa3f 100644 --- a/include/debug_menu2.h +++ b/include/debug_menu2.h @@ -1,7 +1,7 @@ #ifndef GUARD_DEBUG_MENU2_H #define GUARD_DEBUG_MENU2_H -#include "menu.h" +#include "structs/menu.h" #include "structs/str_text.h" // size: 0x138 diff --git a/include/debug_menu3.h b/include/debug_menu3.h index df9b4531d..cf61cfdd8 100644 --- a/include/debug_menu3.h +++ b/include/debug_menu3.h @@ -1,7 +1,7 @@ #ifndef GUARD_DEBUG_MENU3_H #define GUARD_DEBUG_MENU3_H -#include "menu.h" +#include "structs/menu.h" #include "structs/str_text.h" // size: 0xFC diff --git a/include/debug_menu4.h b/include/debug_menu4.h index 2b2dbb230..c7925fc54 100644 --- a/include/debug_menu4.h +++ b/include/debug_menu4.h @@ -2,7 +2,7 @@ #define GUARD_DEBUG_MENU4_H #include "pokemon.h" -#include "menu.h" +#include "structs/menu.h" #include "structs/str_text.h" // size: 0x140 diff --git a/include/felicity_bank.h b/include/felicity_bank.h index bba4b7168..93ae9b2f2 100644 --- a/include/felicity_bank.h +++ b/include/felicity_bank.h @@ -2,7 +2,7 @@ #define GUARD_FELICITY_BANK_H #include "file_system.h" -#include "menu.h" +#include "structs/menu.h" #include "structs/str_text.h" #define FELICITY_BANK_ACTION_WITHDRAW 0 diff --git a/include/friend_area_action_menu.h b/include/friend_area_action_menu.h index 3441fe650..ba8af7951 100644 --- a/include/friend_area_action_menu.h +++ b/include/friend_area_action_menu.h @@ -3,7 +3,7 @@ #include "constants/move.h" #include "items.h" -#include "menu.h" +#include "structs/menu.h" #include "pokemon.h" #include "structs/str_text.h" diff --git a/include/friend_rescue.h b/include/friend_rescue.h index a2201a8e0..2c641cf26 100644 --- a/include/friend_rescue.h +++ b/include/friend_rescue.h @@ -5,7 +5,7 @@ #include "items.h" #include "pokemon.h" #include "wonder_mail.h" -#include "menu.h" +#include "structs/menu.h" // size: 0x568 typedef struct WonderMailStruct_203B33C diff --git a/include/gulpin_shop.h b/include/gulpin_shop.h index a9409134a..f3d7e1080 100644 --- a/include/gulpin_shop.h +++ b/include/gulpin_shop.h @@ -3,7 +3,7 @@ #include "constants/move.h" #include "file_system.h" -#include "menu.h" +#include "structs/menu.h" #include "structs/str_text.h" // size: 0x18C diff --git a/include/gulpin_shop_801FB50.h b/include/gulpin_shop_801FB50.h index b31c4a851..c1058991d 100644 --- a/include/gulpin_shop_801FB50.h +++ b/include/gulpin_shop_801FB50.h @@ -3,7 +3,7 @@ #include "constants/move.h" #include "file_system.h" -#include "menu.h" +#include "structs/menu.h" #include "pokemon.h" #include "structs/str_text.h" diff --git a/include/kangaskhan_storage1.h b/include/kangaskhan_storage1.h index 973f93d01..6fdc58fb0 100644 --- a/include/kangaskhan_storage1.h +++ b/include/kangaskhan_storage1.h @@ -3,7 +3,7 @@ #include "file_system.h" #include "items.h" -#include "menu.h" +#include "structs/menu.h" #include "structs/str_text.h" enum KangaskhanStorageStates diff --git a/include/kangaskhan_storage2.h b/include/kangaskhan_storage2.h index 2bbaf45b4..f7f92cb9e 100644 --- a/include/kangaskhan_storage2.h +++ b/include/kangaskhan_storage2.h @@ -2,7 +2,7 @@ #define GUARD_KANGASKHAN_STORAGE2_H #include "items.h" -#include "menu.h" +#include "structs/menu.h" #include "structs/str_text.h" // size: 0x150 diff --git a/include/kecleon_bros1.h b/include/kecleon_bros1.h index 28cbb234a..c7a1de6dc 100644 --- a/include/kecleon_bros1.h +++ b/include/kecleon_bros1.h @@ -3,7 +3,7 @@ #include "file_system.h" #include "items.h" -#include "menu.h" +#include "structs/menu.h" #include "structs/str_text.h" enum KecleonStoreStates diff --git a/include/luminous_cave.h b/include/luminous_cave.h index 49ce0c5c5..acf0a7bd6 100644 --- a/include/luminous_cave.h +++ b/include/luminous_cave.h @@ -3,7 +3,7 @@ #include "file_system.h" #include "items.h" -#include "menu.h" +#include "structs/menu.h" #include "pokemon_3.h" #include "structs/str_text.h" diff --git a/include/mailbox.h b/include/mailbox.h index 1e20d269c..649ee7b3f 100644 --- a/include/mailbox.h +++ b/include/mailbox.h @@ -1,7 +1,7 @@ #ifndef GUARD_MAILBOX_H #define GUARD_MAILBOX_H -#include "menu.h" +#include "structs/menu.h" #include "structs/str_text.h" #include "constants/mailbox.h" #include "code_802C39C.h" diff --git a/include/main_menu1.h b/include/main_menu1.h index c18c90768..a314abd50 100644 --- a/include/main_menu1.h +++ b/include/main_menu1.h @@ -1,7 +1,7 @@ #ifndef GUARD_MAIN_MENU1_H #define GUARD_MAIN_MENU1_H -#include "menu.h" +#include "structs/menu.h" #include "structs/str_text.h" // size: 0x8 diff --git a/include/main_menu2.h b/include/main_menu2.h index 529b13d61..9f4c53808 100644 --- a/include/main_menu2.h +++ b/include/main_menu2.h @@ -1,7 +1,7 @@ #ifndef GUARD_MAIN_MENU2_H #define GUARD_MAIN_MENU2_H -#include "menu.h" +#include "structs/menu.h" #include "structs/str_text.h" // size: 0x1A8 diff --git a/include/makuhita_dojo1.h b/include/makuhita_dojo1.h index 76ef805b6..edfad6da8 100644 --- a/include/makuhita_dojo1.h +++ b/include/makuhita_dojo1.h @@ -2,7 +2,7 @@ #define GUARD_MAKUHITA_DOJO1_H #include "file_system.h" -#include "menu.h" +#include "structs/menu.h" #include "structs/str_text.h" enum MakuhitaDojoInitMode diff --git a/include/menu_input.h b/include/menu_input.h index dc14e0a30..a0e26e4f0 100644 --- a/include/menu_input.h +++ b/include/menu_input.h @@ -1,7 +1,7 @@ #ifndef GUARD_MENU_INPUT_H #define GUARD_MENU_INPUT_H -#include "menu.h" +#include "structs/menu.h" #include "structs/str_text.h" u32 sub_8012A64(MenuInputStructSub *r0, s32 r1); diff --git a/include/other_menus1.h b/include/other_menus1.h index bd91a1266..92e216809 100644 --- a/include/other_menus1.h +++ b/include/other_menus1.h @@ -3,7 +3,7 @@ #include "code_8094F88.h" #include "main_menu1.h" -#include "menu.h" +#include "structs/menu.h" #include "pokemon.h" #include "sprite_oam.h" #include "structs/str_text.h" diff --git a/include/party_list_menu.h b/include/party_list_menu.h index 3887cf815..0ff829134 100644 --- a/include/party_list_menu.h +++ b/include/party_list_menu.h @@ -3,7 +3,7 @@ #include "constants/move.h" #include "items.h" -#include "menu.h" +#include "structs/menu.h" #include "pokemon.h" #include "structs/str_text.h" diff --git a/include/rescue_password_menu.h b/include/rescue_password_menu.h index c87598d19..c2382da0c 100644 --- a/include/rescue_password_menu.h +++ b/include/rescue_password_menu.h @@ -1,7 +1,7 @@ #ifndef GUARD_RESCUE_PASSWORD_MENU_H #define GUARD_RESCUE_PASSWORD_MENU_H -#include "menu.h" +#include "structs/menu.h" #include "sprite.h" #include "structs/str_text.h" diff --git a/include/menu.h b/include/structs/menu.h similarity index 100% rename from include/menu.h rename to include/structs/menu.h diff --git a/include/trade_items_menu.h b/include/trade_items_menu.h index b409692e3..c5ed2afc4 100644 --- a/include/trade_items_menu.h +++ b/include/trade_items_menu.h @@ -3,7 +3,7 @@ #include "structs/str_text.h" #include "items.h" -#include "menu.h" +#include "structs/menu.h" // 11 was another saving too? enum TradeItemsScreens diff --git a/include/wigglytuff_shop1.h b/include/wigglytuff_shop1.h index 86cf59dbc..1f422f5e3 100644 --- a/include/wigglytuff_shop1.h +++ b/include/wigglytuff_shop1.h @@ -2,7 +2,7 @@ #define GUARD_WIGGLYTUFF_SHOP1_H #include "constants/friend_area.h" -#include "menu.h" +#include "structs/menu.h" #include "structs/str_text.h" typedef struct WigglytuffShop1Work diff --git a/include/wigglytuff_shop3.h b/include/wigglytuff_shop3.h index 7525511ae..b1f643e52 100644 --- a/include/wigglytuff_shop3.h +++ b/include/wigglytuff_shop3.h @@ -2,7 +2,7 @@ #define GUARD_WIGGLYTUFF_SHOP3_H #include "file_system.h" -#include "menu.h" +#include "structs/menu.h" #include "structs/str_text.h" enum WigglytuffStates diff --git a/include/wonder_mail.h b/include/wonder_mail.h index e30e7a595..467fd9470 100644 --- a/include/wonder_mail.h +++ b/include/wonder_mail.h @@ -5,7 +5,7 @@ #include "constants/wonder_mail.h" #include "file_system.h" #include "items.h" -#include "menu.h" +#include "structs/menu.h" #include "pokemon.h" #include "structs/str_text.h" diff --git a/include/wonder_mail_2_1.h b/include/wonder_mail_2_1.h index 8a5be2d8c..b7e27dda3 100644 --- a/include/wonder_mail_2_1.h +++ b/include/wonder_mail_2_1.h @@ -4,7 +4,7 @@ #include "code_802C39C.h" #include "constants/mailbox.h" #include "input.h" -#include "menu.h" +#include "structs/menu.h" #include "structs/str_text.h" // size: 0xA8 diff --git a/include/wonder_mail_3.h b/include/wonder_mail_3.h index 4aa751a4c..1ef1e24df 100644 --- a/include/wonder_mail_3.h +++ b/include/wonder_mail_3.h @@ -3,7 +3,7 @@ #include "code_802C39C.h" #include "input.h" -#include "menu.h" +#include "structs/menu.h" #include "structs/str_text.h" #include "wonder_mail.h" diff --git a/ld_script.txt b/ld_script.txt index ae7a88863..b3aacade0 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -95,6 +95,7 @@ SECTIONS { src/menu_input.o(.text); asm/code_80130A8.o(.text); src/code_8012A18_1.o(.text); + src/code_801602C.o(.text); src/felicity_bank.o(.text); src/kangaskhan_storage1.o(.text); src/kangaskhan_storage2.o(.text); @@ -412,6 +413,7 @@ SECTIONS { src/common_strings.o(.rodata); data/common_strings.o(.rodata); data/data_80DAF70.o(.rodata); + src/code_801602C.o(.rodata); src/felicity_bank.o(.rodata); src/kangaskhan_storage1.o(.rodata); src/kangaskhan_storage2.o(.rodata); diff --git a/src/code_8012A18_1.c b/src/code_8012A18_1.c index e40274fd6..abc761f47 100644 --- a/src/code_8012A18_1.c +++ b/src/code_8012A18_1.c @@ -1,269 +1,34 @@ #include "global.h" #include "code_8012A18_1.h" -#include "code_80130A8.h" -#include "common_strings.h" -#include "memory.h" -#include "input.h" -#include "text1.h" -#include "text2.h" #include "text_util.h" +#include "text2.h" -struct unkStruct_203B200 -{ - // size: 0x50 - u32 unk0; - u32 unk4; - u8 *pokeName; - s32 state; - /* 0x10 */ MenuItem menus[3]; - u8 fill[0x50 - 0x28]; -}; -extern struct unkStruct_203B200 *gUnknown_203B200; - -extern const char gUnknown_80DB6A4; -extern const char gUnknown_80DB6BC; -extern const char gUnknown_80DB688; -extern u8 gAvailablePokemonNames[0x58]; - -extern void sub_80151C0(u32, u8 *); -extern void CreateConfirmNameMenu(void); -extern void sub_80160F4(u32); -bool8 IsNameEmpty(void); -extern u32 sub_80154F0(void); -extern void sub_80155F0(void); - -void nullsub_36(void); -void sub_8016110(void); -extern void sub_80161F8(void); -extern void HandleConfirmNameMenu(void); -extern void sub_8016280(void); -extern void sub_801629C(void); - - -enum -{ - MENU_ACTION_DEFAULT = 1, - MENU_ACTION_YES, - MENU_ACTION_NO, -}; +// TODO: Above code is in code_80130A8.s s32 sub_8015FEC(u8 *buffer, s32 size) { - struct unkChar *iVar2; - s32 currLength; - s32 length; - u8 *bufferPtr; + struct unkChar *iVar2; + s32 currLength; + s32 length; + u8 *bufferPtr; - length = 0; - currLength = 0; + length = 0; + currLength = 0; - if(currLength < size && *buffer != '\0') - { - bufferPtr = buffer; // Had to have another variable to match.. - do { - iVar2 = GetCharacter(ReturnIntFromChar2(*bufferPtr)); - length += iVar2->unk6; - bufferPtr++; - currLength++; - } while (currLength < size && *bufferPtr != '\0'); - } - return length; + if (currLength < size && *buffer != '\0') { + bufferPtr = buffer; // Had to have another variable to match.. + do { + iVar2 = GetCharacter(ReturnIntFromChar2(*bufferPtr)); + length += iVar2->unk6; + bufferPtr++; + currLength++; + } while (currLength < size && *bufferPtr != '\0'); + } + + return length; } s32 sub_8016028(void) { return 60; -} - -///////////// THIS IS ITS OWN FILE - -u32 sub_801602C(u32 r0, u8 *name) -{ - ResetUnusedInputStruct(); - sub_800641C(NULL, TRUE, TRUE); - gUnknown_203B200 = MemoryAlloc(sizeof(struct unkStruct_203B200), 8); - gUnknown_203B200->unk0 = r0; - gUnknown_203B200->pokeName = name; - switch(r0) - { - case 0: - gUnknown_203B200->unk4 = 0; - break; - case 1: - gUnknown_203B200->unk4 = 1; - break; - case 2: - gUnknown_203B200->unk4 = 2; - break; - case 3: - gUnknown_203B200->unk4 = 3; - break; - default: - break; - } - sub_80160F4(0); - return 1; -} - -u32 sub_8016080(void) -{ - switch(gUnknown_203B200->state) { - case 0: - sub_80161F8(); - break; - case 1: - HandleConfirmNameMenu(); - break; - case 2: - sub_8016280(); - break; - case 3: - sub_801629C(); - break; - case 4: - return 3; - } - return 0; -} - -void sub_80160D8(void) -{ - if(gUnknown_203B200 != NULL) - { - MemoryFree(gUnknown_203B200); - gUnknown_203B200 = NULL; - } -} - - -void sub_80160F4(u32 newState) -{ - gUnknown_203B200->state = newState; - nullsub_36(); - sub_8016110(); -} - -void nullsub_36(void) -{ -} - -void sub_8016110(void) -{ - switch(gUnknown_203B200->state) - { - case 0: - sub_80151C0(gUnknown_203B200->unk4,gUnknown_203B200->pokeName); - break; - case 1: - CreateConfirmNameMenu(); - if (gUnknown_203B200->unk4 == 1) { - sub_80922B4(gAvailablePokemonNames,gUnknown_203B200->pokeName, POKEMON_NAME_LENGTH); - } - else { - sub_80922B4(gAvailablePokemonNames,gUnknown_203B200->pokeName, POKEMON_NAME_LENGTH); - } - // Is the name {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1} OK? - sub_8014248(&gUnknown_80DB688,0,3,gUnknown_203B200->menus,0,4,0,0,0x20); - break; - - case 2: - // This name is too long - sub_80141B4(&gUnknown_80DB6A4,0,0,0x121); - break; - case 3: - // Please enter a name - sub_80141B4(&gUnknown_80DB6BC,0,0,0x121); - break; - default: - break; - } -} - -void CreateConfirmNameMenu(void) -{ - gUnknown_203B200->menus[0].text = *gCommonYes; - gUnknown_203B200->menus[0].menuAction = MENU_ACTION_YES; - gUnknown_203B200->menus[1].text = *gCommonNo; - gUnknown_203B200->menus[1].menuAction = MENU_ACTION_NO; - gUnknown_203B200->menus[2].text = NULL; - gUnknown_203B200->menus[2].menuAction = MENU_ACTION_DEFAULT; -} - -void sub_80161F8(void) -{ - s32 length; - s32 maxLength; - - if (sub_80154F0() == 3) { - sub_80155F0(); - if (IsNameEmpty()) { - sub_80160F4(3); - } - else{ - length = sub_8015FEC(gUnknown_203B200->pokeName, POKEMON_NAME_LENGTH); - maxLength = sub_8016028(); // returns 60 - if (length > maxLength) { - sub_80160F4(2); - } - else { - sub_80160F4(1); - } - } - } -} - -void HandleConfirmNameMenu(void) -{ - s32 temp; - - if (sub_80144A4(&temp) == 0) { - switch(temp) - { - case MENU_ACTION_YES: - sub_80160F4(4); - break; - case MENU_ACTION_NO: - case MENU_ACTION_DEFAULT: - sub_80160F4(0); - break; - default: - break; - } - } -} - -void sub_8016280(void) -{ - s32 temp; - - if (sub_80144A4(&temp) == 0) { - sub_80160F4(0); - } -} - - -void sub_801629C(void) -{ - s32 temp; - - if (sub_80144A4(&temp) == 0) { - sub_80160F4(0); - } -} - -bool8 IsNameEmpty(void) -{ - u8 character; - s32 index; - s32 max; - - max = POKEMON_NAME_LENGTH; // constant needed at top of loop to match - index = 0; - do { - character = gUnknown_203B200->pokeName[index]; - if (character == '\0') break; - if (character != ' ') return FALSE; - index++; - } while (index < max); - return TRUE; -} +} \ No newline at end of file diff --git a/src/code_801602C.c b/src/code_801602C.c new file mode 100644 index 000000000..1bc00f44e --- /dev/null +++ b/src/code_801602C.c @@ -0,0 +1,215 @@ +#include "global.h" +#include "code_8012A18_1.h" +#include "code_80130A8.h" +#include "code_801602C.h" +#include "common_strings.h" +#include "memory.h" +#include "text_util.h" +#include "text1.h" + +extern u8 gAvailablePokemonNames[]; // 202DF98 + +static EWRAM_DATA_2 struct unkStruct_203B200 *sUnknown_203B200 = {0}; + +#include "data/code_801602C.h" + +static void CreateConfirmNameMenu(void); +static void HandleConfirmNameMenu(void); +static bool8 IsNameEmpty(void); +static void nullsub_36(void); + +static void sub_80160F4(u32 newState); +static void sub_8016110(void); +static void sub_80161F8(void); +static void sub_8016280(void); +static void sub_801629C(void); + +u32 sub_801602C(u32 mode, u8 *name) +{ + ResetUnusedInputStruct(); + sub_800641C(NULL, TRUE, TRUE); + + sUnknown_203B200 = MemoryAlloc(sizeof(struct unkStruct_203B200), 8); + sUnknown_203B200->unk0 = mode; + sUnknown_203B200->pokeName = name; + + switch (mode) { + case 0: + sUnknown_203B200->unk4 = 0; + break; + case 1: + sUnknown_203B200->unk4 = 1; + break; + case 2: + sUnknown_203B200->unk4 = 2; + break; + case 3: + sUnknown_203B200->unk4 = 3; + break; + default: + break; + } + + sub_80160F4(0); + return 1; +} + +u32 sub_8016080(void) +{ + switch (sUnknown_203B200->state) { + case 0: + sub_80161F8(); + break; + case 1: + HandleConfirmNameMenu(); + break; + case 2: + sub_8016280(); + break; + case 3: + sub_801629C(); + break; + case 4: + return 3; + } + return 0; +} + +void sub_80160D8(void) +{ + if (sUnknown_203B200 != NULL) { + MemoryFree(sUnknown_203B200); + sUnknown_203B200 = NULL; + } +} + +static void sub_80160F4(u32 newState) +{ + sUnknown_203B200->state = newState; + nullsub_36(); + sub_8016110(); +} + +static void nullsub_36(void) +{ +} + +static void sub_8016110(void) +{ + switch (sUnknown_203B200->state) { + case 0: + sub_80151C0(sUnknown_203B200->unk4, sUnknown_203B200->pokeName); + break; + case 1: + CreateConfirmNameMenu(); + if (sUnknown_203B200->unk4 == 1) + sub_80922B4(gAvailablePokemonNames, sUnknown_203B200->pokeName, POKEMON_NAME_LENGTH); + else + sub_80922B4(gAvailablePokemonNames, sUnknown_203B200->pokeName, POKEMON_NAME_LENGTH); + + sub_8014248(sIsNameOKPrompt, 0, 3, sUnknown_203B200->menus, 0, 4, 0, NULL, 32); + break; + + case 2: + sub_80141B4(sNameTooLong, 0, 0, 0x121); + break; + case 3: + sub_80141B4(sEnterAName, 0, 0, 0x121); + break; + default: + break; + } +} + +static void CreateConfirmNameMenu(void) +{ + sUnknown_203B200->menus[0].text = gCommonYes[0]; + sUnknown_203B200->menus[0].menuAction = MENU_ACTION_YES; + + sUnknown_203B200->menus[1].text = gCommonNo[0]; + sUnknown_203B200->menus[1].menuAction = MENU_ACTION_NO; + + sUnknown_203B200->menus[2].text = NULL; + sUnknown_203B200->menus[2].menuAction = MENU_ACTION_DEFAULT; +} + +static void sub_80161F8(void) +{ + s32 length; + s32 maxLength; + + if (sub_80154F0() != 3) + return; + + sub_80155F0(); + + if (IsNameEmpty()) { + sub_80160F4(3); + } + else { + length = sub_8015FEC(sUnknown_203B200->pokeName, POKEMON_NAME_LENGTH); + maxLength = sub_8016028(); // returns 60 + if (length > maxLength) + sub_80160F4(2); + else + sub_80160F4(1); + } +} + +static void HandleConfirmNameMenu(void) +{ + s32 temp; + + if (sub_80144A4(&temp)) + return; + + switch (temp) { + case MENU_ACTION_YES: + sub_80160F4(4); + break; + case MENU_ACTION_NO: + case MENU_ACTION_DEFAULT: + sub_80160F4(0); + break; + default: + break; + } +} + +static void sub_8016280(void) +{ + s32 temp; + + if (sub_80144A4(&temp) == 0) + sub_80160F4(0); +} + +static void sub_801629C(void) +{ + s32 temp; + + if (sub_80144A4(&temp) == 0) + sub_80160F4(0); +} + +static bool8 IsNameEmpty(void) +{ + u8 character; + s32 index; + s32 max; + + max = POKEMON_NAME_LENGTH; // constant needed at top of loop to match + index = 0; + do { + character = sUnknown_203B200->pokeName[index]; + + if (character == '\0') + break; + if (character != ' ') + return FALSE; + + index++; + } while (index < max); + + return TRUE; +} \ No newline at end of file diff --git a/src/code_803B050.c b/src/code_803B050.c index 674ab5348..0306924d2 100644 --- a/src/code_803B050.c +++ b/src/code_803B050.c @@ -1,4 +1,5 @@ #include "global.h" +#include "code_8012A18_1.h" #include "code_803B050.h" #include "constants/colors.h" #include "constants/wonder_mail.h" @@ -74,7 +75,6 @@ extern u8 *gUnknown_80E8B94[]; extern PokemonStruct1 *sub_808D378(void); -s32 sub_8016028(void); extern void PrintDungeonLocationtoBuffer(u8 *, void *); extern u8 sub_803C1D0(WonderMailSub *, u8); extern u8 *sub_803C1F0(u8); diff --git a/src/data/code_801602C.h b/src/data/code_801602C.h new file mode 100644 index 000000000..629283012 --- /dev/null +++ b/src/data/code_801602C.h @@ -0,0 +1,22 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +enum +{ + MENU_ACTION_DEFAULT = 1, + MENU_ACTION_YES, + MENU_ACTION_NO, +}; + +UNUSED static const UnkTextStruct2 sUnknown_80DB670 = +{ + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; + +ALIGNED(4) static const u8 sIsNameOKPrompt[] = _("Is the name {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1} OK?"); +ALIGNED(4) static const u8 sNameTooLong[] = _("This name is too long."); +ALIGNED(4) static const u8 sEnterAName[] = _("Please enter a name."); \ No newline at end of file diff --git a/src/debug_menu4.c b/src/debug_menu4.c index 26813102f..f307074b5 100644 --- a/src/debug_menu4.c +++ b/src/debug_menu4.c @@ -1,6 +1,6 @@ #include "global.h" -#include "code_8012A18_1.h" #include "code_80130A8.h" +#include "code_801602C.h" #include "code_8023868.h" #include "debug_menu4.h" #include "memory.h" diff --git a/src/friend_list_menu.c b/src/friend_list_menu.c index 6a3a37a68..0db7f1e8f 100644 --- a/src/friend_list_menu.c +++ b/src/friend_list_menu.c @@ -1,7 +1,7 @@ #include "global.h" #include "code_80118A4.h" -#include "code_8012A18_1.h" #include "code_80130A8.h" +#include "code_801602C.h" #include "code_801B3C0.h" #include "code_801BEEC.h" #include "code_801EE10.h" @@ -61,8 +61,6 @@ EWRAM_DATA_2 unkStruct_203B2B4 *gUnknown_203B2B4 = {0}; extern u8 sub_8002658(s16); extern void sub_808ED00(void); -extern void sub_80160D8(void); -extern u32 sub_8016080(void); extern s32 sub_80144A4(s32 *); void sub_8025434(s32); diff --git a/src/friend_rescue.c b/src/friend_rescue.c index 1b81310e4..d3b56d08f 100644 --- a/src/friend_rescue.c +++ b/src/friend_rescue.c @@ -254,8 +254,6 @@ extern void sub_8035210(void); extern void sub_8035430(void); extern void sub_8034848(void); -extern u32 sub_80154F0(); -extern void sub_80155F0(); extern u32 sub_8030DA0(void); extern void sub_8030DE4(void); extern void sub_803092C(void); @@ -271,11 +269,9 @@ extern u32 sub_8039068(u32, u8 *passwordBuffer, unkStruct_203B480 *r0); extern void sub_803084C(void); extern void sub_8031E10(void); -extern void sub_80155F0(void); extern void sub_802F2C0(void); extern void sub_8030DE4(void); extern u8 sub_800D588(void); -extern void sub_80151C0(u32, u8 *); extern u32 sub_8023CE8(void); extern void sub_802F204(unkStruct_802F204 *, u32); extern u32 sub_80306A8(u32 wonderMailType, u32, UnkTextStruct2_sub *, u32); diff --git a/src/load_screen.c b/src/load_screen.c index 0391319be..6f714b1c1 100644 --- a/src/load_screen.c +++ b/src/load_screen.c @@ -12,7 +12,7 @@ #include "input.h" #include "main_menu1.h" #include "memory.h" -#include "menu.h" +#include "structs/menu.h" #include "menu_input.h" #include "play_time.h" #include "pokemon.h" diff --git a/src/luminous_cave.c b/src/luminous_cave.c index 56df9414b..fa0c65964 100644 --- a/src/luminous_cave.c +++ b/src/luminous_cave.c @@ -1,8 +1,8 @@ #include "global.h" #include "code_80118A4.h" -#include "code_8012A18_1.h" #include "code_80130A8.h" #include "code_80130A8.h" +#include "code_801602C.h" #include "code_801B3C0.h" #include "code_8097670.h" #include "code_8098BDC.h" diff --git a/src/mailbox.c b/src/mailbox.c index fd94418e3..40e9820f8 100644 --- a/src/mailbox.c +++ b/src/mailbox.c @@ -3,7 +3,7 @@ #include "memory.h" #include "text1.h" #include "text2.h" -#include "menu.h" +#include "structs/menu.h" #include "input.h" #include "mailbox.h" #include "wonder_mail.h" diff --git a/src/pelipper_board.c b/src/pelipper_board.c index c71df4130..a2c613faf 100644 --- a/src/pelipper_board.c +++ b/src/pelipper_board.c @@ -5,7 +5,7 @@ #include "memory.h" #include "text1.h" #include "text2.h" -#include "menu.h" +#include "structs/menu.h" #include "input.h" #include "wonder_mail.h" #include "menu_input.h" diff --git a/src/personality_test.c b/src/personality_test.c index 8e6f7ae93..1aebb3e79 100644 --- a/src/personality_test.c +++ b/src/personality_test.c @@ -1,8 +1,8 @@ #include "global.h" #include "bg_palette_buffer.h" #include "code_80118A4.h" -#include "code_8012A18_1.h" #include "code_80130A8.h" +#include "code_801602C.h" #include "code_8098BDC.h" #include "constants/emotions.h" #include "constants/input.h" @@ -682,7 +682,7 @@ void NicknamePartner(void) void PrintEndIntroText(void) { - if (sub_8016080() != 0) { + if (sub_8016080()) { sub_80160D8(); sub_80141B4(gEndIntroText, 0, 0, 0x301); gPersonalityTestTracker->TestState = PERSONALITY_ADVANCE_TO_TEST_END; diff --git a/src/post_office_guide1.c b/src/post_office_guide1.c index 5143788f4..be5529960 100644 --- a/src/post_office_guide1.c +++ b/src/post_office_guide1.c @@ -1,7 +1,7 @@ #include "global.h" #include "code_80130A8.h" #include "memory.h" -#include "menu.h" +#include "structs/menu.h" #include "pokemon.h" #include "post_office_guide1.h" #include "text1.h" diff --git a/src/rescue_password_menu.c b/src/rescue_password_menu.c index e884a3973..289324b36 100644 --- a/src/rescue_password_menu.c +++ b/src/rescue_password_menu.c @@ -243,11 +243,8 @@ ALIGNED(4) const u8 sUnknown_80E75CC[] = _("{CENTER_ALIGN}There is no space for static const u8 fill0[] = "pksdir0"; -extern void sub_80151C0(u32, u8 *); extern void sub_8031D70(u32, u32); -extern void sub_80155F0(void); extern void sub_8031E10(void); -extern u32 sub_80154F0(void); extern u32 sub_8031DCC(void); extern void sub_8031E00(void); diff --git a/src/thank_you_wonder_mail.c b/src/thank_you_wonder_mail.c index 0a55b3120..b73cf3cf8 100644 --- a/src/thank_you_wonder_mail.c +++ b/src/thank_you_wonder_mail.c @@ -211,12 +211,10 @@ extern void sub_802A828(); extern void sub_802A850(); extern void sub_8030DE4(); extern void sub_803084C(); -extern void sub_80155F0(); extern void sub_8031E10(); extern void sub_802F2C0(); extern void SetThankYouMailMenuState(u32); extern void sub_802F204(unkStruct_802F204 *, u32); -extern void sub_80151C0(u32, u8 *); extern void sub_803092C(void); extern s32 sub_8037B28(u32); extern u32 sub_8030894(void); @@ -227,7 +225,6 @@ extern void sub_8031D70(u8, u32); extern void sub_803092C(void); extern void sub_8011C28(u32); -extern u32 sub_80154F0(void); extern u32 sub_8039068(u32, u8 *r1, unkStruct_203B480 *r0); diff --git a/src/wonder_mail.c b/src/wonder_mail.c index 56b882987..16954eadc 100644 --- a/src/wonder_mail.c +++ b/src/wonder_mail.c @@ -43,10 +43,8 @@ extern u32 sub_8030DA0(void); extern void sub_8030DE4(void); extern void sub_803092C(void); -extern u32 sub_80154F0(); extern u32 sub_8039068(u32, u8 *r1, unkStruct_203B480 *r0); extern void sub_8095274(u32); -extern void sub_80155F0(); extern u32 sub_8031DCC(); extern void sub_8031E10(); extern void sub_8031E00(); @@ -56,7 +54,6 @@ extern void sub_8030DE4(); extern void sub_80306A8(u32, u32, u32, u32); extern s32 sub_8037B28(u32); extern void sub_8031D70(u8, u32); -extern void sub_80151C0(u32, u8 *); extern u32 sub_8023CE8(void); extern u32 sub_8030894(void); extern void sub_8030F58(u32); @@ -113,7 +110,6 @@ extern void sub_8028CFC(void); extern void sub_8028D4C(void); extern void sub_8031E10(void); extern void sub_803084C(void); -extern void sub_80155F0(void); extern void sub_80310B4(void); extern void sub_8030DE4(void); diff --git a/src/wonder_mail_2_1.c b/src/wonder_mail_2_1.c index 5853c3144..ed463e189 100644 --- a/src/wonder_mail_2_1.c +++ b/src/wonder_mail_2_1.c @@ -5,7 +5,7 @@ #include "memory.h" #include "text1.h" #include "text2.h" -#include "menu.h" +#include "structs/menu.h" #include "code_802C39C.h" #include "menu_input.h" #include "wonder_mail_2_1.h" diff --git a/src/wonder_mail_main_menu.c b/src/wonder_mail_main_menu.c index 89d1630f4..0423c188c 100644 --- a/src/wonder_mail_main_menu.c +++ b/src/wonder_mail_main_menu.c @@ -120,11 +120,9 @@ extern u32 sub_8011C1C(void); extern void SetWonderMailMainMenuState(u8); extern void sub_8030DE4(void); extern void sub_803084C(void); -extern void sub_80155F0(void); extern void sub_8031E10(void); extern u8 sub_800D588(void); -extern void sub_80151C0(u32, u8 *); extern void sub_802EF48(void); @@ -138,7 +136,6 @@ extern u32 sub_802D0E0(); extern bool8 GetWonderMailAccepted(); extern void sub_802D184(); -extern s32 sub_80154F0(); extern bool8 DecodeWonderMailPassword(u8 *, WonderMail *); extern bool8 IsValidWonderMail(WonderMail *WonderMailData); diff --git a/sym_ewram2.txt b/sym_ewram2.txt index 7e81e5e71..f4f75466b 100644 --- a/sym_ewram2.txt +++ b/sym_ewram2.txt @@ -135,9 +135,7 @@ gUnknown_203B1F8: /* 203B1F8 (sub_8015080 - sub_80151A4) */ gUnknown_203B1FC: /* 203B1FC (sub_80151C0 - sub_8015F84) */ .space 0x4 -gUnknown_203B200: /* 203B200 (sub_801602C - IsNameEmpty) */ - .space 0x4 - +.include "src/code_801602C.o" .include "src/felicity_bank.o" .include "src/kangaskhan_storage1.o" .include "src/kangaskhan_storage2.o" From b888afb5d961ea5e042ae71a09b455e646ae54ca Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Wed, 20 Sep 2023 23:11:41 -0400 Subject: [PATCH 29/47] Split+data hints_menu --- data/data_80DBD98.s | 57 +-------- include/hints_menu1.h | 23 ++++ include/hints_menu2.h | 21 ++++ ld_script.txt | 5 +- src/data/hints_menu1.h | 22 ++++ src/data/hints_menu2.h | 19 +++ src/hints_menu.c | 259 ----------------------------------------- src/hints_menu1.c | 153 ++++++++++++++++++++++++ src/hints_menu2.c | 87 ++++++++++++++ src/options_menu.c | 13 +-- sym_ewram2.txt | 8 +- 11 files changed, 335 insertions(+), 332 deletions(-) create mode 100644 include/hints_menu1.h create mode 100644 include/hints_menu2.h create mode 100644 src/data/hints_menu1.h create mode 100644 src/data/hints_menu2.h delete mode 100644 src/hints_menu.c create mode 100644 src/hints_menu1.c create mode 100644 src/hints_menu2.c diff --git a/data/data_80DBD98.s b/data/data_80DBD98.s index cde0e8af0..7b76fdee6 100644 --- a/data/data_80DBD98.s +++ b/data/data_80DBD98.s @@ -99,59 +99,4 @@ gWindowBGRedString: @ 80DC08C .global gWindowBGGreenString gWindowBGGreenString: @ 80DC090 - .string "Green\0" - -@ hints_menu #1 - .align 2,0 -.string "pksdir0\0" - .align 2,0 - - .global gUnknown_80DC0A0 -gUnknown_80DC0A0: @ 80DC0A0 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global Data_80DC0B8 - Data_80DC0B8: - .byte 0x01, 0x00, 0x08, 0x00 - - .global gUnknown_80DC0BC -gUnknown_80DC0BC: @ 80DC0BC - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x06, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x00 - .byte 0x18, 0x00, 0x0E, 0x00 - .byte 0x0E, 0x00, 0x00, 0x00 - - .4byte Data_80DC0B8 - - .global gUnknown_80DC0D4 -gUnknown_80DC0D4: @ 80DC0D4 - .string "Hints\0" - -@ hints_menu #2 - .align 2,0 -.string "pksdir0\0" - .align 2,0 - - .global gUnknown_80DC0E4 -gUnknown_80DC0E4: @ 80DC0E4 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DC0FC -gUnknown_80DC0FC: @ 80DC0FC - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x06, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x00 - .byte 0x1a, 0x00, 0x10, 0x00 - .byte 0x10, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 \ No newline at end of file + .string "Green\0" \ No newline at end of file diff --git a/include/hints_menu1.h b/include/hints_menu1.h new file mode 100644 index 000000000..c41636e32 --- /dev/null +++ b/include/hints_menu1.h @@ -0,0 +1,23 @@ +#ifndef GUARD_HINTS_MENU1_H +#define GUARD_HINTS_MENU1_H + +#include "input.h" +#include "structs/str_text.h" + +// size: 0x9C +struct unkStruct_203B264 +{ + MenuInputStruct input; + u32 unk34; + UnkTextStruct2 *unk38; + UnkTextStruct2 unk3C[4]; +}; + +void CreateHintSelectionScreen(bool8 cursorSprite); +s32 GetChosenHintIndex(void); + +bool8 sub_801E3F0(u32); +u32 sub_801E474(bool8); +void sub_801E54C(void); + +#endif // GUARD_HINTS_MENU1_H \ No newline at end of file diff --git a/include/hints_menu2.h b/include/hints_menu2.h new file mode 100644 index 000000000..203adb24d --- /dev/null +++ b/include/hints_menu2.h @@ -0,0 +1,21 @@ +#ifndef GUARD_HINTS_MENU2_H +#define GUARD_HINTS_MENU2_H + +#include "input.h" +#include "structs/str_text.h" + +// size: 0xA0 +struct unkStruct_203B268 +{ + MenuInputStruct input; + u32 unk34; + UnkTextStruct2 *unk38; + UnkTextStruct2 unk3C[4]; + u8 unk9C[4]; +}; + +bool8 CreateHintDisplayScreen(u32 index); +void DestroyHintDisplayScreen(void); +u32 HandleHintDisplayScreenInput(void); + +#endif // GUARD_HINTS_MENU2_H \ No newline at end of file diff --git a/ld_script.txt b/ld_script.txt index b3aacade0..38d876bfc 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -113,7 +113,8 @@ SECTIONS { src/code_801D014.o(.text); src/code_801D9E4.o(.text); src/options_menu.o(.text); - src/hints_menu.o(.text); + src/hints_menu1.o(.text); + src/hints_menu2.o(.text); src/gulpin_shop.o(.text); src/code_801EE10.o(.text); asm/code_801EE10.o(.text); @@ -431,6 +432,8 @@ SECTIONS { src/code_801D014.o(.rodata); src/code_801D9E4.o(.rodata); data/data_80DBD98.o(.rodata); + src/hints_menu1.o(.rodata); + src/hints_menu2.o(.rodata); src/gulpin_shop.o(.rodata); data/data_80DC240.o(.rodata); src/gulpin_shop_801FB50.o(.rodata); diff --git a/src/data/hints_menu1.h b/src/data/hints_menu1.h new file mode 100644 index 000000000..1150dfddf --- /dev/null +++ b/src/data/hints_menu1.h @@ -0,0 +1,22 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 sUnknown_80DC0A0 = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; + +static const u8 sUnknown_80DC0B8[] = {1, 0, 8, 0}; +static const UnkTextStruct2 sUnknown_80DC0BC = { + 0, 0, 0, 0, + 6, + 2, 2, + 24, 14, + 14, 0, + sUnknown_80DC0B8 +}; + +ALIGNED(4) static const u8 sHints[] = _("Hints"); \ No newline at end of file diff --git a/src/data/hints_menu2.h b/src/data/hints_menu2.h new file mode 100644 index 000000000..3d0fb16d8 --- /dev/null +++ b/src/data/hints_menu2.h @@ -0,0 +1,19 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 sUnknown_80DC0E4 = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; + +static const UnkTextStruct2 sUnknown_80DC0FC = { + 0, 0, 0, 0, + 6, + 2, 2, + 26, 16, + 16, 0, + NULL +}; \ No newline at end of file diff --git a/src/hints_menu.c b/src/hints_menu.c deleted file mode 100644 index 535be5e4f..000000000 --- a/src/hints_menu.c +++ /dev/null @@ -1,259 +0,0 @@ -#include "global.h" -#include "code_80118A4.h" -#include "common_strings.h" -#include "memory.h" -#include "menu_input.h" -#include "text1.h" -#include "text2.h" -#include "input.h" - -struct unkStruct_203B268 -{ - // size: 0xA0 - MenuInputStruct input; - u32 unk34; - UnkTextStruct2 *unk38; - UnkTextStruct2 unk3C[4]; - u8 unk9C[4]; -}; - -struct unkStruct_203B264 -{ - // size: 0x9C - MenuInputStruct input; - u32 unk34; - UnkTextStruct2 *unk38; - UnkTextStruct2 unk3C[4]; -}; - -extern struct unkStruct_203B264 *gUnknown_203B264; - -extern struct unkStruct_203B268 *gUnknown_203B268; - -extern UnkTextStruct2 gUnknown_80DC0A0; -extern UnkTextStruct2 gUnknown_80DC0BC; -extern UnkTextStruct2 gUnknown_80DC0E4; -extern UnkTextStruct2 gUnknown_80DC0FC; -extern u8 gUnknown_80DC0D4[MAX_HINTS]; - -extern void sub_801E714(void); -extern void sub_801E714(void); -extern void sub_801E76C(void); -extern void DisplayChosenHint(void); -void DrawHintSelectionMenu(void); -void sub_801E594(void); - -u32 sub_801E3F0(u32 r0) -{ - if(gUnknown_203B264 == NULL) - gUnknown_203B264 = MemoryAlloc(sizeof(struct unkStruct_203B264), 8); - gUnknown_203B264->unk34 = r0; - gUnknown_203B264->unk38 = &gUnknown_203B264->unk3C[r0]; - sub_8006518(gUnknown_203B264->unk3C); - gUnknown_203B264->unk3C[gUnknown_203B264->unk34] = gUnknown_80DC0BC; - sub_8012D08(gUnknown_203B264->unk38, 0xA); - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B264->unk3C, TRUE, TRUE); - sub_8013818(&gUnknown_203B264->input, 0x5, 0xA, r0); - sub_801E594(); - DrawHintSelectionMenu(); - return 1; -} - -u32 sub_801E474(u8 r0) -{ - if(r0 == 0) - { - sub_8013660(&gUnknown_203B264->input); - return 0; - } - switch(GetKeyPress(&gUnknown_203B264->input)) - { - case 2: - PlayMenuSoundEffect(1); - return 2; - case 1: - PlayMenuSoundEffect(0); - return 3; - case 4: - PlayMenuSoundEffect(4); - return 4; - default: - if(sub_80138B8(&gUnknown_203B264->input, 1)) - { - sub_801E594(); - DrawHintSelectionMenu(); - return 1; - } - else - return 0; - } -} - -s32 GetChosenHintIndex(void) -{ - return (gUnknown_203B264->input.unk1E * gUnknown_203B264->input.unk1C) + gUnknown_203B264->input.menuIndex; -} - -void CreateHintSelectionScreen(u8 r0) -{ - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B264->unk3C, FALSE, FALSE); - sub_8013984(&gUnknown_203B264->input); - sub_801E594(); - DrawHintSelectionMenu(); - if(r0) - AddMenuCursorSprite(&gUnknown_203B264->input); -} - -void sub_801E54C(void) -{ - if(gUnknown_203B264 != NULL) - { - gUnknown_203B264->unk3C[gUnknown_203B264->unk34] = gUnknown_80DC0A0; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B264->unk3C, TRUE, TRUE); - MemoryFree(gUnknown_203B264); - gUnknown_203B264 = NULL; - } -} - -NAKED // sub_80095E4 memes -void sub_801E594(void) -{ - asm_unified( - "\tpush {r4,lr}\n" - "\tldr r4, _0801E5E4\n" - "\tldr r0, [r4]\n" - "\tmovs r1, 0x1A\n" - "\tldrsh r0, [r0, r1]\n" - "\tmovs r1, 0xC\n" - "\tbl sub_80095E4\n" - "\tadds r0, 0x2\n" - "\tlsls r0, 16\n" - "\tldr r2, [r4]\n" - "\tldr r3, [r2, 0x34]\n" - "\tlsls r1, r3, 1\n" - "\tadds r1, r3\n" - "\tlsls r1, 3\n" - "\tadds r1, r2, r1\n" - "\tadds r1, 0x4A\n" - "\tasrs r3, r0, 16\n" - "\tlsrs r0, 16\n" - "\tstrh r0, [r1]\n" - "\tldr r1, [r2, 0x34]\n" - "\tlsls r0, r1, 1\n" - "\tadds r0, r1\n" - "\tlsls r0, 3\n" - "\tadds r2, r0\n" - "\tadds r3, 0x2\n" - "\tadds r2, 0x4C\n" - "\tstrh r3, [r2]\n" - "\tbl ResetUnusedInputStruct\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x3C\n" - "\tmovs r1, 0x1\n" - "\tmovs r2, 0x1\n" - "\tbl sub_800641C\n" - "\tpop {r4}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" -"_0801E5E4: .4byte gUnknown_203B264"); -} - -void DrawHintSelectionMenu(void) -{ - s32 hintIndex; - s32 y; - - sub_8008C54(gUnknown_203B264->unk34); - sub_80073B8(gUnknown_203B264->unk34); - xxx_call_draw_string(16, 0, gUnknown_80DC0D4, gUnknown_203B264->unk34, 0); - for(hintIndex = 0; hintIndex < MAX_HINTS; hintIndex++) - { - y = sub_8013800(&gUnknown_203B264->input, hintIndex); - xxx_call_draw_string(10, y, gCommonHints[hintIndex].heading, gUnknown_203B264->unk34, 0); - } - sub_80073E0(gUnknown_203B264->unk34); -} - - - -// THIS IS A NEW FILE - - - - -u32 CreateHintDisplayScreen(u32 index) -{ - gUnknown_203B268 = MemoryAlloc(sizeof(struct unkStruct_203B268), 8); - gUnknown_203B268->unk34 = 0; - gUnknown_203B268->unk38 = gUnknown_203B268->unk3C; - sub_8006518(gUnknown_203B268->unk3C); - gUnknown_203B268->unk3C[gUnknown_203B268->unk34] = gUnknown_80DC0FC; - gUnknown_203B268->unk38->unk14 = gUnknown_203B268->unk9C; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B268->unk3C, TRUE, TRUE); - sub_8013818(&gUnknown_203B268->input, 5, 1, gUnknown_203B268->unk34); - gUnknown_203B268->input.unk1E = index; - sub_801E714(); - - return 1; -} - -u32 HandleHintDisplayScreenInput(void) -{ - switch(GetKeyPress(&gUnknown_203B268->input)) - { - case 2: - PlayMenuSoundEffect(1); - return 2; - case 1: - PlayMenuSoundEffect(0); - return 3; - default: - if(sub_8013938(&gUnknown_203B268->input)){ - sub_801E714(); - return 1; - } - else - return 0; - } -} - -void sub_801E714(void) -{ - sub_801E76C(); - DisplayChosenHint(); -} - -void DestroyHintDisplayScreen(void) -{ - if(gUnknown_203B268 != NULL) - { - gUnknown_203B268->unk3C[gUnknown_203B268->unk34] = gUnknown_80DC0E4; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B268->unk3C, TRUE, TRUE); - MemoryFree(gUnknown_203B268); - gUnknown_203B268 = NULL; - } -} - -void sub_801E76C(void) -{ - gUnknown_203B268->unk9C[0] = gUnknown_203B268->input.unk20; - gUnknown_203B268->unk9C[1] = gUnknown_203B268->input.unk1E; - gUnknown_203B268->unk9C[2] = 0xF; - gUnknown_203B268->unk9C[3] = 0; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B268->unk3C, TRUE, TRUE); -} - -void DisplayChosenHint(void) -{ - sub_80073B8(gUnknown_203B268->unk34); - xxx_call_draw_string((gUnknown_203B268->input.unk1E << 3) + 0x10, 0, gCommonHints[gUnknown_203B268->input.unk1E].heading, gUnknown_203B268->unk34, 0); - xxx_call_draw_string(0xA, 0x14, gCommonHints[gUnknown_203B268->input.unk1E].body, gUnknown_203B268->unk34, 0); - sub_80073E0(gUnknown_203B268->unk34); -} diff --git a/src/hints_menu1.c b/src/hints_menu1.c new file mode 100644 index 000000000..e53591c7b --- /dev/null +++ b/src/hints_menu1.c @@ -0,0 +1,153 @@ +#include "global.h" +#include "code_80118A4.h" +#include "common_strings.h" +#include "hints_menu1.h" +#include "memory.h" +#include "menu_input.h" +#include "text1.h" +#include "text2.h" + +static EWRAM_DATA_2 struct unkStruct_203B264 *sUnknown_203B264 = {0}; + +#include "data/hints_menu1.h" + +static void DrawHintSelectionMenu(void); + +static void sub_801E594(void); + +bool8 sub_801E3F0(u32 a0) +{ + if (sUnknown_203B264 == NULL) + sUnknown_203B264 = MemoryAlloc(sizeof(struct unkStruct_203B264), 8); + + sUnknown_203B264->unk34 = a0; + sUnknown_203B264->unk38 = &sUnknown_203B264->unk3C[a0]; + sub_8006518(sUnknown_203B264->unk3C); + sUnknown_203B264->unk3C[sUnknown_203B264->unk34] = sUnknown_80DC0BC; + sub_8012D08(sUnknown_203B264->unk38, 10); + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B264->unk3C, TRUE, TRUE); + sub_8013818(&sUnknown_203B264->input, 5, 10, a0); + sub_801E594(); + DrawHintSelectionMenu(); + return TRUE; +} + +u32 sub_801E474(bool8 a0) +{ + if (a0 == 0) { + sub_8013660(&sUnknown_203B264->input); + return 0; + } + + switch(GetKeyPress(&sUnknown_203B264->input)) + { + case 2: + PlayMenuSoundEffect(1); + return 2; + case 1: + PlayMenuSoundEffect(0); + return 3; + case 4: + PlayMenuSoundEffect(4); + return 4; + default: + if(sub_80138B8(&sUnknown_203B264->input, 1)) + { + sub_801E594(); + DrawHintSelectionMenu(); + return 1; + } + else + return 0; + } +} + +s32 GetChosenHintIndex(void) +{ + return (sUnknown_203B264->input.unk1E * sUnknown_203B264->input.unk1C) + sUnknown_203B264->input.menuIndex; +} + +void CreateHintSelectionScreen(bool8 cursorSprite) +{ + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B264->unk3C, FALSE, FALSE); + sub_8013984(&sUnknown_203B264->input); + sub_801E594(); + DrawHintSelectionMenu(); + + if (cursorSprite) + AddMenuCursorSprite(&sUnknown_203B264->input); +} + +void sub_801E54C(void) +{ + if (sUnknown_203B264 != NULL) { + sUnknown_203B264->unk3C[sUnknown_203B264->unk34] = sUnknown_80DC0A0; + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B264->unk3C, TRUE, TRUE); + MemoryFree(sUnknown_203B264); + sUnknown_203B264 = NULL; + } +} + +NAKED // sub_80095E4 memes +static void sub_801E594(void) +{ + asm_unified( + "\tpush {r4,lr}\n" + "\tldr r4, _0801E5E4\n" + "\tldr r0, [r4]\n" + "\tmovs r1, 0x1A\n" + "\tldrsh r0, [r0, r1]\n" + "\tmovs r1, 0xC\n" + "\tbl sub_80095E4\n" + "\tadds r0, 0x2\n" + "\tlsls r0, 16\n" + "\tldr r2, [r4]\n" + "\tldr r3, [r2, 0x34]\n" + "\tlsls r1, r3, 1\n" + "\tadds r1, r3\n" + "\tlsls r1, 3\n" + "\tadds r1, r2, r1\n" + "\tadds r1, 0x4A\n" + "\tasrs r3, r0, 16\n" + "\tlsrs r0, 16\n" + "\tstrh r0, [r1]\n" + "\tldr r1, [r2, 0x34]\n" + "\tlsls r0, r1, 1\n" + "\tadds r0, r1\n" + "\tlsls r0, 3\n" + "\tadds r2, r0\n" + "\tadds r3, 0x2\n" + "\tadds r2, 0x4C\n" + "\tstrh r3, [r2]\n" + "\tbl ResetUnusedInputStruct\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x3C\n" + "\tmovs r1, 0x1\n" + "\tmovs r2, 0x1\n" + "\tbl sub_800641C\n" + "\tpop {r4}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" +"_0801E5E4: .4byte sUnknown_203B264"); +} + +static void DrawHintSelectionMenu(void) +{ + s32 hintIndex; + s32 y; + + sub_8008C54(sUnknown_203B264->unk34); + sub_80073B8(sUnknown_203B264->unk34); + xxx_call_draw_string(16, 0, sHints, sUnknown_203B264->unk34, 0); + + for (hintIndex = 0; hintIndex < MAX_HINTS; hintIndex++) { + y = sub_8013800(&sUnknown_203B264->input, hintIndex); + xxx_call_draw_string(10, y, gCommonHints[hintIndex].heading, sUnknown_203B264->unk34, 0); + } + + sub_80073E0(sUnknown_203B264->unk34); +} \ No newline at end of file diff --git a/src/hints_menu2.c b/src/hints_menu2.c new file mode 100644 index 000000000..3efe8b018 --- /dev/null +++ b/src/hints_menu2.c @@ -0,0 +1,87 @@ +#include "global.h" +#include "code_80118A4.h" +#include "common_strings.h" +#include "hints_menu2.h" +#include "memory.h" +#include "menu_input.h" +#include "text1.h" +#include "text2.h" + +static EWRAM_DATA_2 struct unkStruct_203B268 *sUnknown_203B268 = {0}; + +#include "data/hints_menu2.h" + +static void DisplayChosenHint(void); + +static void sub_801E714(void); +static void sub_801E76C(void); + +bool8 CreateHintDisplayScreen(u32 index) +{ + sUnknown_203B268 = MemoryAlloc(sizeof(struct unkStruct_203B268), 8); + sUnknown_203B268->unk34 = 0; + sUnknown_203B268->unk38 = sUnknown_203B268->unk3C; + sub_8006518(sUnknown_203B268->unk3C); + sUnknown_203B268->unk3C[sUnknown_203B268->unk34] = sUnknown_80DC0FC; + sUnknown_203B268->unk38->unk14 = sUnknown_203B268->unk9C; + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B268->unk3C, TRUE, TRUE); + sub_8013818(&sUnknown_203B268->input, 5, 1, sUnknown_203B268->unk34); + sUnknown_203B268->input.unk1E = index; + sub_801E714(); + + return TRUE; +} + +u32 HandleHintDisplayScreenInput(void) +{ + switch (GetKeyPress(&sUnknown_203B268->input)) { + case 2: + PlayMenuSoundEffect(1); + return 2; + case 1: + PlayMenuSoundEffect(0); + return 3; + default: + if (sub_8013938(&sUnknown_203B268->input)) { + sub_801E714(); + return 1; + } + return 0; + } +} + +static void sub_801E714(void) +{ + sub_801E76C(); + DisplayChosenHint(); +} + +void DestroyHintDisplayScreen(void) +{ + if (sUnknown_203B268 != NULL) { + sUnknown_203B268->unk3C[sUnknown_203B268->unk34] = sUnknown_80DC0E4; + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B268->unk3C, TRUE, TRUE); + MemoryFree(sUnknown_203B268); + sUnknown_203B268 = NULL; + } +} + +static void sub_801E76C(void) +{ + sUnknown_203B268->unk9C[0] = sUnknown_203B268->input.unk20; + sUnknown_203B268->unk9C[1] = sUnknown_203B268->input.unk1E; + sUnknown_203B268->unk9C[2] = 15; + sUnknown_203B268->unk9C[3] = 0; + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B268->unk3C, TRUE, TRUE); +} + +static void DisplayChosenHint(void) +{ + sub_80073B8(sUnknown_203B268->unk34); + xxx_call_draw_string((sUnknown_203B268->input.unk1E * 8) + 16, 0, gCommonHints[sUnknown_203B268->input.unk1E].heading, sUnknown_203B268->unk34, 0); + xxx_call_draw_string(10, 20, gCommonHints[sUnknown_203B268->input.unk1E].body, sUnknown_203B268->unk34, 0); + sub_80073E0(sUnknown_203B268->unk34); +} \ No newline at end of file diff --git a/src/options_menu.c b/src/options_menu.c index fc2380ba3..1241ed1fa 100644 --- a/src/options_menu.c +++ b/src/options_menu.c @@ -6,6 +6,8 @@ #include "constants/colors.h" #include "constants/input.h" #include "game_options.h" +#include "hints_menu1.h" +#include "hints_menu2.h" #include "memory.h" #include "menu_input.h" #include "options_menu.h" @@ -66,15 +68,7 @@ extern void HandleChangeSettingsMenu(); extern void sub_801DD84(); extern void sub_801DED0(); extern bool8 sub_801E198(GameOptions *); -extern void CreateHintDisplayScreen(u32); -extern void sub_801E3F0(u32); -extern void CreateHintSelectionScreen(u32); extern void CreateChangeSettingsConfirmMenu(void); -extern u32 sub_801E474(u32); -extern u32 GetChosenHintIndex(void); -extern void sub_801E54C(void); -extern u32 HandleHintDisplayScreenInput(void); -extern void DestroyHintDisplayScreen(void); extern u32 sub_801E218(void); extern void sub_801E2C4(void); @@ -285,8 +279,7 @@ void HandleOthersMenu(void) void sub_801E088(void) { - - switch(sub_801E474(1)) + switch(sub_801E474(TRUE)) { case 3: case 4: diff --git a/sym_ewram2.txt b/sym_ewram2.txt index f4f75466b..5765d784a 100644 --- a/sym_ewram2.txt +++ b/sym_ewram2.txt @@ -159,12 +159,8 @@ gUnknown_203B25C: /* 203B25C (sub_801DCC4 - HandleChangeSettingsMenu) */ gUnknown_203B260: /* 203B260 (sub_801E198 - CreateOptionsMenu) */ .space 0x4 -gUnknown_203B264: /* 203B264 (sub_801E3F0 - DrawHintSelectionMenu) */ - .space 0x4 - -gUnknown_203B268: /* 203B268 (CreateHintDisplayScreen - DisplayChosenHint) */ - .space 0x4 - +.include "src/hints_menu1.o" +.include "src/hints_menu2.o" .include "src/gulpin_shop.o" gUnknown_203B270: /* 203B270 */ From a9692bac45d47de9d3dc5122fc3de0ccf0ca41db Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Wed, 20 Sep 2023 23:39:32 -0400 Subject: [PATCH 30/47] Mark file boundaries --- src/code_801EE10_mid.c | 13 ++++ src/dungeon_ai_attack.c | 1 - src/ground_sprite.c | 3 +- src/wonder_mail_2_1.c | 19 ++++++ src/wonder_mail_3.c | 19 ++++++ src/wonder_mail_3_mid.c | 10 ++++ src/wonder_mail_802DF88.c | 6 ++ sym_ewram2.txt | 121 ++++++++++++++++---------------------- 8 files changed, 120 insertions(+), 72 deletions(-) diff --git a/src/code_801EE10_mid.c b/src/code_801EE10_mid.c index 387cc8b43..a90c4dbb5 100644 --- a/src/code_801EE10_mid.c +++ b/src/code_801EE10_mid.c @@ -83,6 +83,10 @@ s32 sub_801F3F8(void) return counter; } + + +// THIS IS A NEW FILE + bool8 sub_801F428(s16 index, s32 param_2) { s32 index_s32 = index; @@ -248,6 +252,15 @@ u32 sub_801F7E4(void) return gUnknown_203B274->unk4->count; } + + + + +// THIS IS A NEW FILE + + + + bool8 sub_801F808(u16 *moveIDs) { s32 index; diff --git a/src/dungeon_ai_attack.c b/src/dungeon_ai_attack.c index 638c5a996..95f840599 100644 --- a/src/dungeon_ai_attack.c +++ b/src/dungeon_ai_attack.c @@ -36,7 +36,6 @@ const s16 gRegularAttackWeights[] = {100, 20, 30, 40, 50}; extern bool8 gCanAttackInDirection[NUM_DIRECTIONS]; -extern s32 gNumPotentialTargets; extern s32 gPotentialAttackTargetWeights[NUM_DIRECTIONS]; extern u8 gPotentialAttackTargetDirections[NUM_DIRECTIONS]; extern Entity *gPotentialTargets[NUM_DIRECTIONS]; diff --git a/src/ground_sprite.c b/src/ground_sprite.c index 7a63b7a89..7f94a6b07 100644 --- a/src/ground_sprite.c +++ b/src/ground_sprite.c @@ -196,8 +196,7 @@ void sub_80A658C(void) gUnknown_3001B7C = NULL; } -// Unused -u16 sub_80A65D8(u16 *a0) +UNUSED static u16 sub_80A65D8(u16 *a0) { return a0[40]; } diff --git a/src/wonder_mail_2_1.c b/src/wonder_mail_2_1.c index ed463e189..ea6123d8e 100644 --- a/src/wonder_mail_2_1.c +++ b/src/wonder_mail_2_1.c @@ -143,6 +143,16 @@ bool8 HasNoPelipperBoardJobs(void) return TRUE; } + + + + +// THIS IS A NEW FILE: + + + + + bool8 sub_802C4C8(int param_1,UnkTextStruct2_sub *param_2,u32 param_3) { if (HasNoAcceptedJobs()) { @@ -349,6 +359,15 @@ bool8 HasNoAcceptedJobs(void) return TRUE; } + + + +// THIS IS A NEW FILE: + + + + + bool8 InitializeJobListMenu(u32 r0) { if(HasNoAcceptedJobs()) diff --git a/src/wonder_mail_3.c b/src/wonder_mail_3.c index d7f3420fa..79dd256d8 100644 --- a/src/wonder_mail_3.c +++ b/src/wonder_mail_3.c @@ -342,6 +342,15 @@ void sub_802CDB8(void) } } + + + +// THIS IS A NEW FILE: + + + + + bool8 sub_802CDD4(u32 r0) { if(gUnknown_203B2F4 == NULL) @@ -510,6 +519,16 @@ void sub_802CFD0(void) sub_80073E0(gUnknown_203B2F4->unk34); } + + + + + +// THIS IS A NEW FILE: + + + + u32 sub_802D098(unkSubStruct_203B2F8 *mail) { gUnknown_203B2F8 = MemoryAlloc(sizeof(unkStruct_203B2F8),8); diff --git a/src/wonder_mail_3_mid.c b/src/wonder_mail_3_mid.c index 923af2224..0a6021a8d 100644 --- a/src/wonder_mail_3_mid.c +++ b/src/wonder_mail_3_mid.c @@ -416,6 +416,10 @@ void sub_802F1E8(void) } +// THIS IS A NEW FILE: + + + u32 sub_802F204(unkStruct_802F204 *r0, bool8 displayClientSprite) { @@ -685,6 +689,12 @@ void ProceedToNextRewardSceneState(void) } } + + +// THIS IS A NEW FILE: + + + u32 sub_802F73C(u32 r0, UnkTextStruct2_sub *r1, u32 r2, u8 r3) { if (sub_802FCF0(r0)) diff --git a/src/wonder_mail_802DF88.c b/src/wonder_mail_802DF88.c index f6905ef63..6e90670f3 100644 --- a/src/wonder_mail_802DF88.c +++ b/src/wonder_mail_802DF88.c @@ -302,6 +302,12 @@ void sub_802DE60(void) } } + + +// THIS IS A NEW FILE: + + + u32 sub_802DE84(unkStruct_802C39C *mail) { gUnknown_203B300 = MemoryAlloc(sizeof(struct unkStruct_203B300), 8); diff --git a/sym_ewram2.txt b/sym_ewram2.txt index 5765d784a..b2c6bd962 100644 --- a/sym_ewram2.txt +++ b/sym_ewram2.txt @@ -8,12 +8,10 @@ errno: /* 203B034 */ ewramClearEnd: ewramClearEnd2: -gTitlePaletteFile: /* 203B038 */ +gTitlePaletteFile: /* 203B038 (GameLoop) */ .space 0x4 - gUnknown_203B03C: /* 203B03C */ .space 0x4 - gUnknown_203B040: /* 203B040 */ .space 0x30 @@ -45,39 +43,29 @@ gUnknown_203B090: /* 203B090 (InitGraphics) */ .include "src/file_system.o" .include "src/main.o" +/* reg_control */ gUnknown_203B099: /* 203B099 (VBlankIntr - xxx_update_bg_sound_input) */ .space 0x1 - -gUnknown_203B09A: /* 203B09A */ +gUnknown_203B09A: /* 203B09A (sub_800BA5C - xxx_update_bg_sound_input) */ .space 0x1 - gUnknown_203B09B: /* 203B09B */ .space 0x1 - gUnknown_203B09C: /* 203B09C */ .space 0x4 - gUnknown_203B0A0: /* 203B0A0 */ .space 0x4 - gUnknown_203B0A4: /* 203B0A4 */ .space 0x4 - gUnknown_203B0A8: /* 203B0A8 */ .space 0x2 - gUnknown_203B0AA: /* 203B0AA */ .space 0x2 - gUnknown_203B0AC: /* 203B0AC */ .space 0x2 - gUnknown_203B0AE: /* 203B0AE */ .space 0x2 - gUnknown_203B0B0: /* 203B0B0 */ .space 0x2 - gUnknown_203B0B2: /* 203B0B2 */ .space 0x2 @@ -152,24 +140,19 @@ gUnknown_203B1FC: /* 203B1FC (sub_80151C0 - sub_8015F84) */ .include "src/code_801C8C4.o" .include "src/code_801D014.o" .include "src/code_801D9E4.o" - -gUnknown_203B25C: /* 203B25C (sub_801DCC4 - HandleChangeSettingsMenu) */ - .space 0x4 - -gUnknown_203B260: /* 203B260 (sub_801E198 - CreateOptionsMenu) */ - .space 0x4 - +.include "src/options_menu1.o" +.include "src/options_menu2.o" .include "src/hints_menu1.o" .include "src/hints_menu2.o" .include "src/gulpin_shop.o" -gUnknown_203B270: /* 203B270 */ +gUnknown_203B270: /* 203B270 (sub_801EE10 - sub_801F3F8) */ .space 0x4 -gUnknown_203B274: /* 203B274 */ +gUnknown_203B274: /* 203B274 (sub_801F428 - sub_801F7E4) */ .space 0x4 -gUnknown_203B278: /* 203B278 */ +gUnknown_203B278: /* 203B278 (sub_801F808 - sub_801FAD4) */ .space 0x4 .include "src/gulpin_shop_801FB50.o" @@ -199,82 +182,82 @@ gUnknown_203B2AA: /* 203B2AA (sub_8023868 - sub_8023C60) */ gUnknown_203B2BC: /* 203B2BC (sub_8027074 - sub_8027EB8) */ .space 0x4 -gUnknown_203B2C0: /* 203B2C0 (wonder_mail) */ +gUnknown_203B2C0: /* 203B2C0 (sub_8027F88 - sub_8029AF4) */ .space 0x4 -gUnknown_203B2C4: /* 203B2C4 (thank_you_wonder_mail) */ +gUnknown_203B2C4: /* 203B2C4 (CreateThankYouMailPelipper - SetThankYouMailMenuState) */ .space 0x4 -gUnknown_203B2C8: /* 203B2C8 (wonder_mail_2) */ +gUnknown_203B2C8: /* 203B2C8 (sub_802B2D4 - sub_802B5B8) */ .space 0x4 -gUnknown_203B2CC: /* 203B2CC (pokemon_news) */ +gUnknown_203B2CC: /* 203B2CC (sub_802B640 - GetNumPKMNNews) */ .space 0x4 -gUnknown_203B2D0: /* 203B2D0 (pokemon_news) */ +gUnknown_203B2D0: /* 203B2D0 (sub_802B640 - sub_802B81C) */ .space 0x2 -gUnknown_203B2D2: /* 203B2D2 (pokemon_news) */ +gUnknown_203B2D2: /* 203B2D2 (sub_802B640 - sub_802B81C) */ .space 0x2 -gUnknown_203B2D4: /* 203B2D4 (pokemon_news) */ +gUnknown_203B2D4: /* 203B2D4 (sub_802B9FC - sub_802BCC4) */ .space 0x4 gUnknown_203B2D8: /* 203B2D8 (sub_802BD14 - CountEmptyMailSlots) */ .space 0x4 -gUnknown_203B2DC: /* 203B2DC (pokemon_news) */ +gUnknown_203B2DC: /* 203B2DC (sub_802BD14 - sub_802BEDC) */ .space 0x4 -gUnknown_203B2E0: /* 203B2E0 (wonder_mail_2_1 / wonder_mail_2_mid) */ +gUnknown_203B2E0: /* 203B2E0 (sub_802C10C - CountPelipperBoardSlots) */ .space 0x4 -gUnknown_203B2E4: /* 203B2E4 (wonder_mail_2_mid) */ +gUnknown_203B2E4: /* 203B2E4 (sub_802C10C - sub_802C2D4) */ .space 0x4 -gUnknown_203B2E8: /* 203B2E8 (wonder_mail_2_1) */ +gUnknown_203B2E8: /* 203B2E8 (sub_802C4C8 - CountAcceptedJobs) */ .space 0x4 -gUnknown_203B2EC: /* 203B2EC (wonder_mail_2_1) */ +gUnknown_203B2EC: /* 203B2EC (sub_802C4C8 - sub_802C688) */ .space 0x4 -gUnknown_203B2F0: /* 203B2F0 (wonder_mail_2_1 / wonder_mail_3) */ +gUnknown_203B2F0: /* 203B2F0 (InitializeJobListMenu - sub_802CD38) */ .space 0x4 -gUnknown_203B2F4: /* 203B2F4 (wonder_mail_4) */ +gUnknown_203B2F4: /* 203B2F4 (sub_802CDD4 - sub_802CFD0) */ .space 0x4 -gUnknown_203B2F8: /* 203B2F8 (wonder_mail_3) */ +gUnknown_203B2F8: /* 203B2F8 (sub_802D098 - sub_802DADC) */ .space 0x4 -gUnknown_203B2FC: /* 203B2FC (wonder_mail_802DF88) */ +gUnknown_203B2FC: /* 203B2FC (sub_802DB28 - sub_802DE60) */ .space 0x4 -gUnknown_203B300: /* 203B300 (wonder_mail_802DF88) */ +gUnknown_203B300: /* 203B300 (sub_802DE84 - sub_802DF88) */ .space 0x4 .include "src/mailbox.o" .include "src/pelipper_board.o" -gUnknown_203B30C: /* 203B30C (wonder_mail_3_mid) */ +gUnknown_203B30C: /* 203B30C (sub_802EF48 - sub_802F184) */ .space 0x4 -gUnknown_203B310: /* 203B310 (wonder_mail_3_mid) */ +gUnknown_203B310: /* 203B310 (sub_802F204 - ProceedToNextRewardSceneState) */ .space 0x4 -gUnknown_203B314: /* 203B314 (wonder_mail_3_mid) */ +gUnknown_203B314: /* 203B314 (sub_802F73C - sub_802FA50) */ .space 0x4 .include "src/makuhita_dojo1.o" .include "src/makuhita_dojo2.o" -gUnknown_203B320: /* 203B320 (wonder_mail_4) */ +gUnknown_203B320: /* 203B320 (sub_80306A8 - sub_8030A74) */ .space 0x4 -gUnknown_203B324: /* 203B324 (wonder_mail_5) */ +gUnknown_203B324: /* 203B324 (sub_8030D40 - sub_8030E48) */ .space 0x4 -gUnknown_203B328: /* 203B328 (wonder_mail_6) */ +gUnknown_203B328: /* 203B328 (sub_8030F58 - sub_80313D8) */ .space 0x4 .include "src/post_office_guide1.o" @@ -298,56 +281,56 @@ gUnknown_203B328: /* 203B328 (wonder_mail_6) */ .include "src/debug_menu3.o" .include "src/debug_menu4.o" -gUnknown_203B3FC: /* 203B3FC (code_803B050) */ +gUnknown_203B3FC: /* 203B3FC (sub_803B050 - sub_803B284) */ .space 0x4 .include "src/personality_test.o" .include "src/code_803D0D8.o" .space 0x3 -gUnknown_203B40C: /* 203B40C */ +gUnknown_203B40C: /* 203B40C (sub_803E46C - PrintFieldMessage) */ .space 0x1 -gUnknown_203B40D: /* 203B40D */ +gUnknown_203B40D: /* 203B40D (sub_803E250 - sub_807E698) */ .space 0x3 -gUnknown_203B410: /* 203B410 */ +gUnknown_203B410: /* 203B410 (sub_8040150 - sub_8082280) */ .space 0x4 -gUnknown_203B414: /* 203B414 */ +gUnknown_203B414: /* 203B414 (sub_8042B34 - sub_8042D7C) */ .space 0x4 gDungeon: /* 203B418 */ .space 0x4 -gUnknown_203B41C: /* 203B41C */ +gUnknown_203B41C: /* 203B41C (xxx_dungeon_8042F6C) */ .space 0x4 -gUnknown_203B420: /* 203B420 */ +gUnknown_203B420: /* 203B420 (sub_80462AC) */ .space 0x8 -gUnknown_203B428: /* 203B428 */ +gUnknown_203B428: /* 203B428 (sub_80462AC) */ .space 0x8 -gUnknown_203B430: /* 203B430 */ +gUnknown_203B430: /* 203B430 (GetTile - sub_8049840) */ .space 0x4 -gUnknown_203B434: /* 203B434 */ +gUnknown_203B434: /* 203B434 (sub_80521D0 - sub_8072CF4) */ .space 0x4 -gUnknown_203B438: /* 203B438 */ +gUnknown_203B438: /* 203B438 (sub_8055FA0 - sub_8056F80) */ .space 0x4 -gUnknown_203B43C: /* 203B43C */ +gUnknown_203B43C: /* 203B43C (sub_8065FB4) */ .space 0x4 -gNumPotentialTargets: /* 203B440 */ +gNumPotentialTargets: /* 203B440 (DecideUseItem - TargetThrownItem) */ .space 0x4 -gUnknown_203B444: /* 203B444 */ +gUnknown_203B444: /* 203B444 (sub_807DF38) */ .space 0xC -gLeaderPointer: /* 203B450 */ +gLeaderPointer: /* 203B450 (xxx_dungeon_8042F6C - sub_8082280) */ .space 0x4 .include "src/dungeon_random.o" @@ -358,10 +341,10 @@ gLeaderPointer: /* 203B450 */ .include "src/friend_area.o" .include "src/game_options.o" -gUnknown_203B470: /* 203B470 */ +gUnknown_203B470: /* 203B470 (sub_8094D28 - sub_8094E4C) */ .space 0x4 -gUnknown_203B474: /* 203B474 */ +gUnknown_203B474: /* 203B474 (sub_8094E4C) */ .space 0x8 .include "src/play_time.o" @@ -372,16 +355,16 @@ gUnknown_203B474: /* 203B474 */ .include "src/ground_main.o" .space 0x2 -gUnknown_203B4A0: /* 203B4A0 */ +gUnknown_203B4A0: /* 203B4A0 (sub_809CCDC) */ .space 0xC -gUnknown_203B4AC: /* 203B4AC */ +gUnknown_203B4AC: /* 203B4AC (ExecuteScriptCommand) */ .space 0x4 -gUnknown_203B4B0: /* 203B4B0 */ +gUnknown_203B4B0: /* 203B4B0 (sub_809D490 - HandleAction) */ .space 0x4 -gUnknown_203B4B4: /* 203B4B4 */ +gUnknown_203B4B4: /* 203B4B4 (sub_80A62F0 - sub_80A658C) */ .space 0x4 .include "src/ground_link.o" From d802903426babba8af9fbd9de279c7f8b3e2ea65 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Thu, 21 Sep 2023 00:48:44 -0400 Subject: [PATCH 31/47] Update pokemon_news.c --- src/pokemon_news.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/pokemon_news.c b/src/pokemon_news.c index 3502ca46a..49d2997d0 100644 --- a/src/pokemon_news.c +++ b/src/pokemon_news.c @@ -370,6 +370,15 @@ bool8 HasNoPKMNNews(void) return TRUE; } + + + + + + + +// THIS IS A NEW FILE + u32 sub_802B9FC(u8 mailIndex) { gUnknown_203B2D4 = MemoryAlloc(sizeof(struct unkStruct_203B2D4), 8); From a2f8b9241d75e05ad5660df637e2d2e5f129e083 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Thu, 21 Sep 2023 20:24:20 -0400 Subject: [PATCH 32/47] Mark EWRAM usage --- src/unused_vblank.c | 1 - src/wonder_mail_3_mid.c | 1 - sym_ewram.txt | 806 +++++++++++++++------------------------- 3 files changed, 303 insertions(+), 505 deletions(-) diff --git a/src/unused_vblank.c b/src/unused_vblank.c index d6cfdf5e4..035c5301a 100644 --- a/src/unused_vblank.c +++ b/src/unused_vblank.c @@ -2,7 +2,6 @@ #include "reg_control.h" extern unkStruct_202D648 gUnknown_202D608[8]; -extern unkStruct_202D648 gUnknown_202D648[8]; // Unused? s32 sub_800B720(s16 a0, IntrCallback a1) diff --git a/src/wonder_mail_3_mid.c b/src/wonder_mail_3_mid.c index 0a6021a8d..2f5a5b1fd 100644 --- a/src/wonder_mail_3_mid.c +++ b/src/wonder_mail_3_mid.c @@ -117,7 +117,6 @@ void HandleMissionReward(void); const u8 *sub_80974A0(s16 index); extern u8 gUnknown_202E038[]; -extern u8 gUnknown_202E088[]; extern u8 gUnknown_202E628[]; extern u8 gUnknown_202DEA8[]; extern u8 gUnknown_202E5D8[]; diff --git a/sym_ewram.txt b/sym_ewram.txt index cf560acd7..15abfdb35 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1,168 +1,131 @@ .include "src/m4a.o" -gUnknown_2000A80: /* 2000A80 (code_2) */ +gUnknown_2000A80: /* 2000A80 (GameLoop) */ .space 0x8 -gUnknown_2000A88: /* 2000A88 (code / event_flag) */ +gUnknown_2000A88: /* 2000A88 (sub_800135C - sub_8002718) */ .space 0x400 .include "src/memory.o" -gMainHeapFreeList: /* 2000ED0 (memory) */ +gMainHeapFreeList: /* 2000ED0 (InitHeapInternal) */ .space 0x300 -gMainHeap: /* 20011D0 (memory) */ +gMainHeap: /* 20011D0 (InitHeapInternal) */ .space 0x24000 .include "src/bg_palette_buffer.o" .include "src/input.o" .include "src/sprite.o" -gUnknown_2026E38: /* 2026E38 (cpu / code_800558C) */ +gUnknown_2026E38: /* 2026E38 (sub_80057E8 - VBlank_CB) */ .space 0x4 - -gUnknown_2026E3C: /* 2026E3C (cpu / code_800558C) */ +gUnknown_2026E3C: /* 2026E3C (sub_80057E8 - VBlank_CB) */ .space 0x4 - -gUnknown_2026E40: /* 2026E40 (code_800558C) */ +gUnknown_2026E40: /* 2026E40 (sub_8005838) */ .space 0x4 - -gUnknown_2026E44: /* 2026E44 (code_800558C) */ +gUnknown_2026E44: /* 2026E44 (sub_8005838) */ .space 0x4 - -gUnknown_2026E48: /* 2026E48 (code_800558C) */ +gUnknown_2026E48: /* 2026E48 (sub_8005838) */ .space 0x4 - -gUnknown_2026E4C: /* 2026E4C (code_800558C) */ +gUnknown_2026E4C: /* 2026E4C (sub_80057E8 - sub_8005838) */ .space 0x2 - -gUnknown_2026E4E: /* 2026E4E (code_800558C / code_2 / code_800DAC0 / code_8098BDC / code_80428A0 / code_8040094 / code_8098468 / ground_map_1 / code_8041AD0 / ground_map_2) */ +gUnknown_2026E4E: /* 2026E4E (GameLoop - GroundWeather_Select) */ .space 0x2 - -gUnknown_2026E50: /* 2026E50 (code_800558C) */ +gUnknown_2026E50: /* 2026E50 (sub_80057E8 - sub_80060EC) */ .space 0x4 - -gUnknown_2026E54: /* 2026E54 (code_800558C) */ +gUnknown_2026E54: /* 2026E54 (sub_80057E8 - sub_80060EC) */ .space 0x4 - -gUnknown_2026E58: /* 2026E58 (code_800558C) */ +gUnknown_2026E58: /* 2026E58 (sub_80057E8 - sub_80060EC) */ .space 0x8 - -gUnknown_2026E60: /* 2026E60 (code_800558C) */ +gUnknown_2026E60: /* 2026E60 (sub_8005838) */ + .space 0x288 +gUnknown_20270E8: /* 20270E8 (sub_8005838) */ .space 0x288 -gUnknown_20270E8: /* 20270E8 (code_800558C) */ - .space 0x288 - -gUnknown_2027370: /* 2027370 (code_80130A8 / code_805D8C8 / code_80521D0 / code_8272724 / text / menu_input / text1 / text2) */ +gUnknown_2027370: /* 2027370 (LoadCharmaps - sub_8272A78) */ .space 0x48 - -gUnknown_20273B8: /* 20273B8 (code_80130A8) */ +gUnknown_20273B8: /* 20273B8 (sub_80157D8) */ .space 0xD8 - -gCharmaps: /* 2027490 (text / text1) */ +gCharmaps: /* 2027490 (LoadCharmaps - GetCharacter) */ .space 0x8 - -gCharacterSpacing: /* 2027498 (text / text1 / text2) */ +gCharacterSpacing: /* 2027498 (LoadCharmaps - xxx_draw_string) */ .space 0x2 - -gUnknown_202749A: /* 202749A (text / code_805D8C8) */ +gUnknown_202749A: /* 202749A (HandleTextFormat - DrawFieldMenu) */ .space 0xB - -gUnknown_20274A5: /* 20274A5 (text / text1 / code_803D110) */ +gUnknown_20274A5: /* 20274A5 (LoadCharmaps - sub_803F9CC) */ .space 0x1 - -gUnknown_20274A6: /* 20274A6 (text) */ +gUnknown_20274A6: /* 20274A6 (HandleTextFormat) */ .space 0x6 - -gCurrentCharmap: /* 20274AC (text / text1 / text2) */ +gCurrentCharmap: /* 20274AC (LoadCharmaps - xxx_draw_string) */ .space 0x4 - -gUnknown_20274B0: /* 20274B0 (text1) */ +gUnknown_20274B0: /* 20274B0 (xxx_update_some_bg_tiles - sub_80063D8) */ .space 0x4 - -gUnknown_20274B4: /* 20274B4 (text1) */ +gUnknown_20274B4: /* 20274B4 (sub_8006438) */ .space 0x3B00 - -gCharmapFiles: /* 202AFB4 (text1) */ +gCharmapFiles: /* 202AFB4 (LoadCharmaps) */ .space 0xC - -gUnknown_202AFC0: /* 202AFC0 (text1 / text2) */ +gUnknown_202AFC0: /* 202AFC0 (sub_8006438 - sub_8006518) */ .space 0x60 - -gUnknown_202B020: /* 202B020 (text / text1) */ +gUnknown_202B020: /* 202B020 (LoadCharmaps - sub_80095CC) */ .space 0x4 - -gUnknown_202B024: /* 202B024 (text / text1) */ +gUnknown_202B024: /* 202B024 (LoadCharmaps - sub_80095CC) */ .space 0x4 - -gUnknown_202B028: /* 202B028 (text1 / text2) */ +gUnknown_202B028: /* 202B028 (LoadCharmaps - xxx_draw_char) */ .space 0x8 - -gUnknown_202B030: /* 202B030 (text1 / text2) */ +gUnknown_202B030: /* 202B030 (LoadCharmaps - sub_80078E8) */ .space 0x4 - -gUnknown_202B034: /* 202B034 (text1 / text2) */ +gUnknown_202B034: /* 202B034 (LoadCharmaps - xxx_draw_char) */ .space 0x4 - -gUnknown_202B038: /* 202B038 (text1 / text2 / dungeon_map_access_1 / code_8009804 / code_8040094 / code_80521D0 / code_803D110 / code_80A26CC_1 / code_2) */ +gUnknown_202B038: /* 202B038 (LoadTitleScreen - sub_80A2B40) */ .space 0x1000 -gUnknown_202C038: /* 202C038 (code_800DAC0 / code_80495E4) */ +gUnknown_202C038: /* 202C038 (sub_8010858 - sub_804A728) */ .space 0x800 - -gUnknown_202C838: /* 202C838 (code_800DAC0 / code_80495E4) */ +gUnknown_202C838: /* 202C838 (sub_8010858 - sub_804A49C) */ .space 0x720 -gUnknown_202CF58: /* 202CF58 (code_80130A8) */ +gUnknown_202CF58: /* 202CF58 (xxx_format_string) */ .space 0xE0 -gUnknown_202D038: /* 202D038 (code_8009804 / code_803D110 / code_80521D0) */ +gUnknown_202D038: /* 202D038 (sub_80097B0 - sub_8052FB8) */ .space 0x4 -gUnknown_202D03C: /* 202D03C (code_8040094) */ +gUnknown_202D03C: /* 202D03C (sub_8040238) */ .space 0x1C - -gUnknown_202D058: /* 202D058 (code_803D110) */ +gUnknown_202D058: /* 202D058 (sub_803E250 - sub_803EA10) */ .space 0x10 - -gUnknown_202D068: /* 202D068 (code_803D110) */ +gUnknown_202D068: /* 202D068 (sub_803FB74) */ .space 0x4 - -gUnknown_202D06C: /* 202D06C (code_803D110) */ +gUnknown_202D06C: /* 202D06C (sub_803F38C) */ .space 0xC -gUnknown_202D078: /* 202D078 (code_8098BDC) */ +gUnknown_202D078: /* 202D078 (sub_8099690) */ .space 0x20 -gUnknown_202D098: /* 202D098 (code_8098BDC) */ +gUnknown_202D098: /* 202D098 (xxx_format_string) */ .space 0x120 -gUnknown_202D1B8: /* 202D1B8 (code_8098BDC) */ +gUnknown_202D1B8: /* 202D1B8 (sub_8099690) */ + .space 0x40 +gUnknown_202D1F8: /* 202D1F8 (sub_8099690) */ .space 0x40 -gUnknown_202D1F8: /* 202D1F8 (code_8098BDC) */ - .space 0x40 - -gUnknown_202D238: /* 202D238 (code_8009804) */ +gUnknown_202D238: /* 202D238 (sub_80098A0 - sub_8009908) */ .space 0x4 - -gUnknown_202D23C: /* 202D23C (code_8009804) */ +gUnknown_202D23C: /* 202D23C (sub_80098A0 - sub_8009908) */ .space 0x4 - -gUnknown_202D240: /* 202D240 (code_8009804) */ +gUnknown_202D240: /* 202D240 (sub_80098BC - sub_8009908) */ .space 0x60 - -gUnknown_202D2A0: /* 202D2A0 (code_8009804) */ +gUnknown_202D2A0: /* 202D2A0 (sub_8009A1C - sub_8009BE4) */ .space 0x4 .include "src/file_system.o" .include "src/decompress.o" .include "src/main.o" -gUnknown_202D608: /* 202D608 (reg_control / unused_vblank) */ +gUnknown_202D608: /* 202D608 (sub_800B720 - VBlankIntr) */ .space 0x40 - -gUnknown_202D648: /* 202D648 (reg_control / unused_vblank) */ +gUnknown_202D648: /* 202D648 (VBlankIntr - VCountIntr) */ .space 0x40 .include "src/music.o" @@ -171,563 +134,426 @@ gUnknown_202D648: /* 202D648 (reg_control / unused_vblank) */ .include "src/bg_control.o" .space 0x140 -gBldAlpha: /* 202D7FA (bg_control / cpu) */ +gBldAlpha: /* 202D7FA (SetBldAlphaReg - VBlank_CB) */ + .space 0x2 +gBldCnt: /* 202D7FC (AgbMain - VBlank_CB) */ + .space 0x2 +gUnknown_202D7FE: /* 202D7FE (AgbMain - sub_800CD64) */ .space 0x2 -gBldCnt: /* 202D7FC (bg_control / cpu / main / reg_control) */ - .space 0x2 - -gUnknown_202D7FE: /* 202D7FE (bg_control / main / reg_control) */ - .space 0x2 - -gUnknown_202D800: /* 202D800 (cpu) */ +gUnknown_202D800: /* 202D800 (sub_800CDA8 - sub_800CDC8) */ .space 0x8 -gUnknown_202D808: /* 202D808 (code_800D090) */ +gUnknown_202D808: /* 202D808 (sub_800D2EC - sub_800D59C) */ .space 0x108 - -gUnknown_202D910: /* 202D910 (code_800D090) */ +gUnknown_202D910: /* 202D910 (sub_800D224 - sub_800D68C) */ .space 0x4 - -gUnknown_202D914: /* 202D914 (code_800D090) */ +gUnknown_202D914: /* 202D914 (sub_800D670) */ .space 0x20C - -gUnknown_202DB20: /* 202DB20 (code_800D090) */ +gUnknown_202DB20: /* 202DB20 (sub_800D2EC - sub_800D494) */ .space 0x10 - -gUnknown_202DB30: /* 202DB30 (code_800D090) */ +gUnknown_202DB30: /* 202DB30 (sub_800D1E0 - sub_800D494) */ .space 0x20 - -gUnknown_202DB50: /* 202DB50 (code_800D090) */ +gUnknown_202DB50: /* 202DB50 (sub_800D2EC - sub_800D494) */ .space 0x8 - -gUnknown_202DB58: /* 202DB58 (code_800D090) */ +gUnknown_202DB58: /* 202DB58 (sub_800D224 - sub_800D494) */ .space 0x8 - -gUnknown_202DB60: /* 202DB60 (code_800D090) */ +gUnknown_202DB60: /* 202DB60 (sub_800D1C0 - sub_800D494) */ .space 0x8 - -gUnknown_202DB68: /* 202DB68 (code_800D090) */ +gUnknown_202DB68: /* 202DB68 (sub_800D33C - sub_800D588) */ + .space 0x4 +gUnknown_202DB6C: /* 202DB6C (sub_800D33C - sub_800D494) */ + .space 0x4 +gUnknown_202DB70: /* 202DB70 (sub_800D33C - sub_800D57C) */ + .space 0x4 +gUnknown_202DB74: /* 202DB74 (sub_800D224 - sub_800D600) */ .space 0x4 -gUnknown_202DB6C: /* 202DB6C (code_800D090) */ - .space 0x4 - -gUnknown_202DB70: /* 202DB70 (code_800D090) */ - .space 0x4 - -gUnknown_202DB74: /* 202DB74 (code_800D090) */ - .space 0x4 - -gUnknown_202DB78: /* 202DB78 (code_800D090) */ +gUnknown_202DB78: /* 202DB78 (sub_800D6AC - sub_800D9B8) */ .space 0x40 - -gUnknown_202DBB8: /* 202DBB8 (code_800D090 / data_80B9BB8) */ +gUnknown_202DBB8: /* 202DBB8 (sub_800D6AC / data_80B9BB8) */ .space 0x140 -gUnknown_202DCF8: /* 202DCF8 (code_800D090 / arm_func) */ +gUnknown_202DCF8: /* 202DCF8 (sub_80001E8 - sub_800D9B8) */ .space 0x120 -gUnknown_202DE18: /* 202DE18 (code_800DAC0) */ +gUnknown_202DE18: /* 202DE18 (sub_800F990 - sub_8010014) */ .space 0x1 - -gUnknown_202DE19: /* 202DE19 (code_800DAC0) */ +gUnknown_202DE19: /* 202DE19 (sub_800F990 - sub_8010014) */ .space 0x3 -gUnknown_202DE1C: /* 202DE1C (code_80118A4) */ +gUnknown_202DE1C: /* 202DE1C (sub_801180C - sub_8011A2C) */ + .space 0x4 +gUnknown_202DE20: /* 202DE20 (sub_801180C - PlayMenuSoundEffect) */ + .space 0x2 +gUnknown_202DE22: /* 202DE22 (sub_801180C - sub_8011A04) */ + .space 0x2 +gUnknown_202DE24: /* 202DE24 (sub_801180C - sub_8011860) */ .space 0x4 -gUnknown_202DE20: /* 202DE20 (code_80118A4) */ - .space 0x2 - -gUnknown_202DE22: /* 202DE22 (code_80118A4) */ - .space 0x2 - -gUnknown_202DE24: /* 202DE24 (code_80118A4) */ - .space 0x4 - -gUnknown_202DE28: /* 202DE28 (save) */ +gUnknown_202DE28: /* 202DE28 (sub_8011C34 - sub_8011C40) */ .space 0x4 .align 4 /* gUnknown_202DE30[0] seems to be the s32 value to insert in place of "$d0" (ARG_VALUE_0) in strings */ /* gUnknown_202DE30[1] is used for "$d1" (ARG_VALUE_1). "$d2" is not in any strings so it may not exist */ -gUnknown_202DE30: /* 202DE30 */ +gUnknown_202DE30: /* 202DE30 [used everywhere tbh] */ .space 0x28 - /* Seems to be a general u8 buffer for text, mostly used with item names */ -gUnknown_202DE58: /* 202DE58 */ +gUnknown_202DE58: /* 202DE58 [used everywhere tbh] */ .space 80 - -gUnknown_202DEA8: /* 202DEA8 */ +gUnknown_202DEA8: /* 202DEA8 [used everywhere tbh] */ .space 240 - -gAvailablePokemonNames: /* 202DF98 gAvailablePokemonNames[80][] */ +gAvailablePokemonNames: /* 202DF98 [used everywhere tbh] gAvailablePokemonNames[80][] */ .space 80 - -gUnknown_202DFE8: /* 202DFE8 (code_805D8C8 / code_806CD90 / code_806E8B0 / code_8073CF0 / code_80521D0 / code_8057824 / code_8077274_1 / gulpin_shop_801FB50 / status_actions) */ +gUnknown_202DFE8: /* 202DFE8 (sub_801FF28 - PierceStatusTarget) */ .space 80 - -gUnknown_202E038: /* 202E038 (code_8057824_1 / code_8086A3C / code_808417C / wonder_mail_3_mid) ({ARG_POKEMON_2}) */ +gUnknown_202E038: /* 202E038 (HandleMissionReward - sub_808CD44) [{ARG_POKEMON_2}] */ .space 80 - -gUnknown_202E088: /* 202E088 (code_8057824_1 / code_806E8B0 / code_808417C / wonder_mail_3_mid) [{ARG_POKEMON_3}]? */ +gUnknown_202E088: /* 202E088 (sub_806FDF4 - sub_808C10C) [{ARG_POKEMON_3}]? */ .space 160 - -gUnknown_202E128: /* 202E128 (gulpin_shop_801FB50) */ +gUnknown_202E128: /* 202E128 (sub_8020A80) */ .space 160 - -gUnknown_202E1C8: /* 202E1C8 (code_801AFA4 / felicity_bank / gulpin_shop_801FB50 / kangaskhan_storage / kecleon_bros1 / makuhita_dojo1 / wigglytuff_shop / wonder_mail_802DF88) */ +gUnknown_202E1C8: /* 202E1C8 (CreateFelicityBank - MakuhitaDojo_New) */ .space 80 - -gUnknown_202E218: /* 202E218 (code_801AFA4) */ +gUnknown_202E218: /* 202E218 (sub_801B200) */ .space 160 - -gPlayerName: /* 202E2B8 (ground_script / code_8098BDC / luminous_cave / makuhita_dojo1) */ +gPlayerName: /* 202E2B8 (UpdateLuminousCaveDialogue - sub_80A14E8) */ .space 800 - -gUnknown_202E5D8: /* 202E5D8 (code_80130A8 / code_8098BDC / code_80521D0 / felicity_bank / friend_rescue / gulpin_shop_801FB50 / kangaskhan_storage / kecleon_bros1 / makuhita_dojo1 / pokemon_news / post_office_guide1 / thank_you_wonder_mail / wigglytuff_shop / wonder_mail_2 / wonder_mail_3_mid / wonder_mail_802DF88 / wonder_mail */ +gUnknown_202E5D8: /* 202E5D8 [used everywhere tbh] */ .space 80 - -gUnknown_202E628: /* 202E628 (code_80130A8 / code_806E8B0 / ground_script / wigglytuff_shop / wonder_mail_3_mid) */ +gUnknown_202E628: /* 202E628 (HandleMissionReward - sub_80A14E8) */ .space 0xB8 -gUnknown_202E6E0: /* 202E6E0 (code_80130A8) */ +gUnknown_202E6E0: /* 202E6E0 (xxx_draw_string_80144C4) */ .space 0x8 - -gTeamName: /* 202E6E8 (code_80130A8) */ +gTeamName: /* 202E6E8 (xxx_format_string) */ .space 80 - -gUnknown_202E738: /* 202E738 (code_80130A8) */ +gUnknown_202E738: /* 202E738 (sub_8014144 - xxx_draw_string_80144C4) */ .space 0x4 - -gUnknown_202E73C: /* 202E73C (code_80130A8) */ +gUnknown_202E73C: /* 202E73C (sub_8014144 - xxx_draw_string_80144C4) */ .space 0x4 - -gUnknown_202E740: /* 202E740 (code_80130A8) */ +gUnknown_202E740: /* 202E740 (sub_8014144 - xxx_draw_string_80144C4) */ .space 0x4 - -gUnknown_202E744: /* 202E744 (code_80130A8) */ +gUnknown_202E744: /* 202E744 (sub_8014144 - xxx_draw_string_80144C4) */ .space 0x4 - -gUnknown_202E748: /* 202E748 (code_80130A8) */ +gUnknown_202E748: /* 202E748 (sub_8014248 - xxx_draw_string_80144C4) */ .space 0x34 - -gUnknown_202E77C: /* 202E77C (code_80130A8) */ +gUnknown_202E77C: /* 202E77C (sub_8014248 - xxx_draw_string_80144C4) */ .space 0x4 - -gUnknown_202E780: /* 202E780 (code_80130A8) */ +gUnknown_202E780: /* 202E780 (xxx_draw_string_80144C4) */ .space 0x4 - -gUnknown_202E784: /* 202E784 (code_80130A8) */ +gUnknown_202E784: /* 202E784 (sub_8014248 - xxx_draw_string_80144C4) */ .space 0x4 - -gUnknown_202E788: /* 202E788 (code_80130A8) */ +gUnknown_202E788: /* 202E788 (sub_8014248 - xxx_draw_string_80144C4) */ .space 0x4 - -gUnknown_202E78C: /* 202E78C (code_80130A8) */ +gUnknown_202E78C: /* 202E78C (sub_8014248 - xxx_draw_string_80144C4) */ .space 0x4 - -gUnknown_202E790: /* 202E790 (code_80130A8) */ +gUnknown_202E790: /* 202E790 (sub_8014248 - xxx_draw_string_80144C4) */ .space 0x1 - -gUnknown_202E791: /* 202E791 (code_80130A8) */ +gUnknown_202E791: /* 202E791 (sub_8014248 - xxx_draw_string_80144C4) */ .space 0x3 - -gUnknown_202E794: /* 202E794 (code_80130A8) */ +gUnknown_202E794: /* 202E794 (sub_8014248 - xxx_draw_string_80144C4) */ .space 0x4 - -gUnknown_202E798: /* 202E798 (code_80130A8) [on screen dialogue text] */ - .space 0x3E8 - -gUnknown_202EB80: /* 202EB80 (code_80130A8) */ +gUnknown_202E798: /* 202E798 (sub_8014248) [on screen dialogue text] */ + .space 1000 +gUnknown_202EB80: /* 202EB80 (xxx_format_string) */ .space 0x40 - -gUnknown_202EBC0: /* 202EBC0 (code_80130A8) */ - .space 0x50 - -gUnknown_202EC10: /* 202EC10 (code_80130A8) */ +gUnknown_202EBC0: /* 202EBC0 (sub_8014A88 - sub_8014B94) */ + .space 80 +gUnknown_202EC10: /* 202EC10 (sub_8014248 - sub_8014A88) */ .space 0x4 - -gUnknown_202EC14: /* 202EC14 (code_80130A8) */ +gUnknown_202EC14: /* 202EC14 (sub_8014248 - sub_8014A88) */ .space 0x4 - -gUnknown_202EC18: /* 202EC18 (code_80130A8) */ +gUnknown_202EC18: /* 202EC18 (sub_8014248 - sub_8014A88) */ .space 0x4 - -gUnknown_202EC1C: /* 202EC1C (code_80130A8) */ +gUnknown_202EC1C: /* 202EC1C (sub_8014248 - sub_8014B94) */ .space 0x4 - -gUnknown_202EC20: /* 202EC20 (code_80130A8) */ +gUnknown_202EC20: /* 202EC20 (sub_8014A88) */ .space 0x8 - -gUnknown_202EC28: /* 202EC28 (code_80130A8) */ +gUnknown_202EC28: /* 202EC28 (sub_8014248 - xxx_draw_string_80144C4) */ .space 0x10 -gUnknown_202EC38: /* 202EC38 (other_menus2) */ +gUnknown_202EC38: /* 202EC38 (sub_8037B28) */ .space 0x8 - -gUnknown_202EC40: /* 202EC40 (other_menus2) */ +gUnknown_202EC40: /* 202EC40 (sub_8037A48 - sub_8037C10) */ .space 0x8 - -gUnknown_202EC48: /* 202EC48 (other_menus2) */ +gUnknown_202EC48: /* 202EC48 (sub_8037D64) */ .space 0x4 .include "src/rescue_password_menu.o" .space 0x2 -gDungeonNameBannerPalette: /* 202EC88 */ +gDungeonNameBannerPalette: /* 202EC88 (ShowDungeonNameBanner - xxx_dungeon_8042F6C) */ + .space 0x4 +gDungeonNameBannerFontFile: /* 202EC8C (ShowDungeonNameBanner - sub_803DEC8) */ + .space 0x4 +gDungeonNameBannerFont: /* 202EC90 (ShowDungeonNameBanner - sub_803DEC8) */ .space 0x4 -gDungeonNameBannerFontFile: /* 202EC8C */ +gUnknown_202EC94: /* 202EC94 (sub_803DF60 - sub_803ECE0) */ .space 0x4 - -gDungeonNameBannerFont: /* 202EC90 */ +gUnknown_202EC98: /* 202EC98 (sub_803DF60 - sub_803E214) */ .space 0x4 - -gUnknown_202EC94: /* 202EC94 */ +gUnknown_202EC9C: /* 202EC9C (sub_803DF60 - sub_803EF90) */ .space 0x4 - -gUnknown_202EC98: /* 202EC98 */ +gUnknown_202ECA0: /* 202ECA0 (sub_803DF60 - sub_807E88C) */ .space 0x4 - -gUnknown_202EC9C: /* 202EC9C */ - .space 0x4 - -gUnknown_202ECA0: /* 202ECA0 */ - .space 0x4 - -gUnknown_202ECA4: /* 202ECA4 */ +gUnknown_202ECA4: /* 202ECA4 (sub_803E02C - SetDungeonBGColorRGB) */ .space 0x84 - -gUnknown_202ED28: /* 202ED28 */ +gUnknown_202ED28: /* 202ED28 (sub_803E250 - sub_8083568) */ .space 0x8 - -gUnknown_202ED30: /* 202ED30 */ +gUnknown_202ED30: /* 202ED30 (sub_803E250) */ .space 0x88 - -gUnknown_202EDB8: /* 202EDB8 */ +gUnknown_202EDB8: /* 202EDB8 (sub_803E250) */ .space 0x8 - -gUnknown_202EDC0: /* 202EDC0 */ +gUnknown_202EDC0: /* 202EDC0 (sub_803E250 - sub_80462AC) */ .space 0x8 - -gUnknown_202EDC8: /* 202EDC8 */ +gUnknown_202EDC8: /* 202EDC8 (sub_803E250 - sub_8086794) */ .space 0x4 - -gUnknown_202EDCC: /* 202EDCC */ +gUnknown_202EDCC: /* 202EDCC (sub_803E490 - sub_807D148) */ .space 0x4 - -gUnknown_202EDD0: /* 202EDD0 (code_803D110 / code_804AFAC / code_8040094) */ +gUnknown_202EDD0: /* 202EDD0 (sub_803E250 - sub_8052210) */ .space 0x4 - -gUnknown_202EDD4: /* 202EDD4 (code_803D110) */ +gUnknown_202EDD4: /* 202EDD4 (sub_803E250 - sub_803E668) */ .space 0x4 - -gUnknown_202EDD8: /* 202EDD8 (code_803D110) */ +gUnknown_202EDD8: /* 202EDD8 (sub_803ECE0) */ .space 0x4 - -gUnknown_202EDDC: /* 202EDDC (code_803D110) */ +gUnknown_202EDDC: /* 202EDDC (sub_803EDF0) */ .space 0xC - -gUnknown_202EDE8: /* 202EDE8 (code_803D110) */ +gUnknown_202EDE8: /* 202EDE8 (sub_803E250 - sub_803EDF0) */ .space 0x14 - -gUnknown_202EDFC: /* 202EDFC (code_803D110) */ +gUnknown_202EDFC: /* 202EDFC (sub_803F27C - sub_803F878) */ .space 0x4 -gUnknown_202EE00: /* 202EE00 (code_8040094 / code_805D8C8) */ +gUnknown_202EE00: /* 202EE00 (sub_8040150 - sub_805D8C8) */ .space 0x1 - -gUnknown_202EE01: /* 202EE01 (code_8040094 / code_80521D0) */ +gUnknown_202EE01: /* 202EE01 (sub_8040124 - PrintFieldMessage) */ .space 0x1 - -gUnknown_202EE02: /* 202EE02 (code_8040094) */ +gUnknown_202EE02: /* 202EE02 (sub_8040894 - sub_8040A78) */ .space 0x2 - -gUnknown_202EE04: /* 202EE04 (code_8040094) */ +gUnknown_202EE04: /* 202EE04 (sub_8040130 - sub_80402AC) */ + .space 0x4 +gUnknown_202EE08: /* 202EE08 (sub_8040150 - sub_8040788) */ .space 0x4 -gUnknown_202EE08: /* 202EE08 (code_8040094) */ +gUnknown_202EE0C: /* 202EE0C (sub_80694C0 - sub_806B8CC) */ .space 0x4 -gUnknown_202EE0C: /* 202EE0C (code_805D8C8_1 / code_8069E0C) */ - .space 0x4 - -gUnknown_202EE10: /* 202EE10 */ +gUnknown_202EE10: /* 202EE10 (sub_803EC94 - sub_8083CE0) */ .space 0x28 -gUnknown_202EE38: /* 202EE38 (code_805D8C8) */ +gUnknown_202EE38: /* 202EE38 (sub_8063834) */ + .space 0x1 +gUnknown_202EE39: /* 202EE39 (sub_8060E38) */ .space 0x1 -gUnknown_202EE39: /* 202EE39 (code_805D8C8) */ - .space 0x1 - -gUnknown_202EE3A: /* 202EE3A (code_805D8C8) */ +gUnknown_202EE3A: /* 202EE3A (sub_8060E38 - sub_8065DBC) */ .space 0xA -gUnknown_202EE44: /* 202EE44 (code_805D8C8 / code_8044CC8) */ +gUnknown_202EE44: /* 202EE44 (sub_8044EC8 - sub_80647F0) */ .space 0x28 - -gUnknown_202EE6C: /* 202EE6C (code_805D8C8 / code_8044CC8) */ +gUnknown_202EE6C: /* 202EE6C (sub_8044F5C - sub_8067A80) */ .space 0x4 -gUnknown_202EE70: /* 202EE70 */ +gUnknown_202EE70: /* 202EE70 (sub_804513C - sub_80828E0) */ .space 0x6 - -gUnknown_202EE76: /* 202EE76 */ +gUnknown_202EE76: /* 202EE76 (sub_804513C - sub_8082A08) */ .space 0x12 -gDungeonPaletteFile: /* 202EE88 */ +gDungeonPaletteFile: /* 202EE88 (sub_803E874 - SetDungeonBGColorRGB) */ .space 0x4 - -gUnknown_202EE8C: /* 202EE8C */ +gUnknown_202EE8C: /* 202EE8C (sub_803E490 - SetDungeonBGColorRGB) */ .space 0x300 - -gUnknown_202F18C: /* 202F18C (dungeon_map_access) */ +gUnknown_202F18C: /* 202F18C (LoadDungeonTilesetAssets - sub_8049820) */ .space 0x4 - -gUnknown_202F190: /* 202F190 (dungeon_map_access) */ +gUnknown_202F190: /* 202F190 (GetTileSafe) */ .space 0x18 -gUnknown_202F1A8: /* 202F1A8 (code_804AFAC / code_80428A0) */ +gUnknown_202F1A8: /* 202F1A8 (sub_8043CE4 - sub_8051A74) */ .space 0x1 - -gUnknown_202F1A9: /* 202F1A9 (code_804AFAC) */ +gUnknown_202F1A9: /* 202F1A9 (sub_804AFAC) */ .space 0x1 - -gUnknown_202F1AA: /* 202F1AA (code_804AFAC) */ +gUnknown_202F1AA: /* 202F1AA (sub_804AFAC - sub_804EEE4) */ .space 0x1 - -gUnknown_202F1AB: /* 202F1AB (code_804AFAC) */ +gUnknown_202F1AB: /* 202F1AB (sub_804AFAC - sub_804EEE4) */ .space 0x1 - -gUnknown_202F1AC: /* 202F1AC (code_804AFAC) */ +gUnknown_202F1AC: /* 202F1AC (sub_804AFAC - sub_804F278) */ .space 0x1 - -gUnknown_202F1AD: /* 202F1AD (code_804AFAC) */ +gUnknown_202F1AD: /* 202F1AD (sub_804AFAC - sub_804D154) */ .space 0x1 - -gUnknown_202F1AE: /* 202F1AE (code_804AFAC) */ +gUnknown_202F1AE: /* 202F1AE (sub_804AFAC - sub_804D084) */ .space 0x2 - -gUnknown_202F1B0: /* 202F1B0 (code_804AFAC) */ +gUnknown_202F1B0: /* 202F1B0 (sub_804AFAC - sub_804C53C) */ .space 0x2 - -gUnknown_202F1B2: /* 202F1B2 (code_804AFAC) */ +gUnknown_202F1B2: /* 202F1B2 (sub_804AFAC - sub_804C53C) */ .space 0x2 - -gUnknown_202F1B4: /* 202F1B4 (code_804AFAC) */ +gUnknown_202F1B4: /* 202F1B4 (sub_804AFAC - sub_804FF08) */ .space 0x4 - -gUnknown_202F1B8: /* 202F1B8 (code_804AFAC) */ +gUnknown_202F1B8: /* 202F1B8 (sub_804AFAC - sub_8051654) */ .space 0x10 - -gUnknown_202F1C8: /* 202F1C8 (code_804AFAC) */ +gUnknown_202F1C8: /* 202F1C8 (sub_804AFAC - sub_804F694) */ + .space 0x4 +gUnknown_202F1CC: /* 202F1CC (sub_804D154) */ + .space 0x4 +gUnknown_202F1D0: /* 202F1D0 (sub_804AFAC) */ + .space 0x4 +gUnknown_202F1D4: /* 202F1D4 (sub_8050C30) */ + .space 0x4 +gUnknown_202F1D8: /* 202F1D8 (sub_804AFAC - sub_804EBC8) */ .space 0x4 -gUnknown_202F1CC: /* 202F1CC (code_804AFAC) */ +gUnknown_202F1DC: /* 202F1DC (sub_80511F0 - sub_8051438) */ .space 0x4 - -gUnknown_202F1D0: /* 202F1D0 (code_804AFAC) */ - .space 0x4 - -gUnknown_202F1D4: /* 202F1D4 (code_804AFAC) */ - .space 0x4 - -gUnknown_202F1D8: /* 202F1D8 (code_804AFAC) */ - .space 0x4 - -gUnknown_202F1DC: /* 202F1DC (code_804AFAC) */ - .space 0x4 - -gUnknown_202F1E0: /* 202F1E0 (code_804AFAC) */ +gUnknown_202F1E0: /* 202F1E0 (sub_80511F0) */ .space 0x1 - -gUnknown_202F1E1: /* 202F1E1 (code_804AFAC) */ +gUnknown_202F1E1: /* 202F1E1 (sub_80511F0 - sub_8051438) */ .space 0x7 -gUnknown_202F1E8: /* 202F1E8 (code_804AFAC / code_80521D0) */ +gUnknown_202F1E8: /* 202F1E8 (sub_80521D0 - sub_80523A8) */ .space 0x8 -gUnknown_202F1F0: /* 202F1F0 (code_80521D0) */ +gUnknown_202F1F0: /* 202F1F0 (sub_8052FB8) */ .space 0x8 -gUnknown_202F1F8: /* 202F1F8 (code_80521D0) */ +gUnknown_202F1F8: /* 202F1F8 (sub_80532B4 - sub_8053540) */ + .space 0x4 +gUnknown_202F1FC: /* 202F1FC (sub_80532B4 - sub_8053540) */ .space 0x4 -gUnknown_202F1FC: /* 202F1FC (code_80521D0) */ - .space 0x4 - -gUnknown_202F200: /* 202F200 (code_80521D0) */ +gUnknown_202F200: /* 202F200 (sub_805363C) */ .space 0x8 -gUnknown_202F208: /* 202F208 (code_80521D0 / code_805D8C8) */ +gUnknown_202F208: /* 202F208 (sub_8053704 - sub_8067904) */ .space 0x4 - -gUnknown_202F20C: /* 202F20C (code_80521D0) */ +gUnknown_202F20C: /* 202F20C (sub_8053704 - sub_8055FA0) */ .space 0x4 - -gUnknown_202F210: /* 202F210 (code_80521D0 / code_805A120) */ +gUnknown_202F210: /* 202F210 (sub_8055FA0 - sub_805A210) */ .space 0x4 - -gUnknown_202F214: /* 202F214 (code_80521D0 / code_805A120) */ +gUnknown_202F214: /* 202F214 (sub_8055FA0 - sub_8059988) */ .space 0x4 - -gUnknown_202F218: /* 202F218 (code_80521D0 / code_805A120) */ +gUnknown_202F218: /* 202F218 (sub_8055FA0 - sub_8059988) */ .space 0x1 - -gUnknown_202F219: /* 202F219 (code_80521D0 / code_8057824) */ +gUnknown_202F219: /* 202F219 (sub_8055FA0 - sub_80588B8) */ .space 0x1 - -gUnknown_202F21A: /* 202F21A (code_80521D0 / code_8057824) */ +gUnknown_202F21A: /* 202F21A (sub_8055FA0 - sub_8058A18) */ .space 0x2 - -gUnknown_202F21C: /* 202F21C (code_80521D0 / code_8057824) */ +gUnknown_202F21C: /* 202F21C (sub_8055FA0 - sub_805768C) */ .space 0x4 - -gUnknown_202F220: /* 202F220 (code_80521D0 / code_8057824) */ +gUnknown_202F220: /* 202F220 (sub_8055FA0 - sub_805768C) */ .space 0x1 - -gUnknown_202F221: /* 202F221 */ +gUnknown_202F221: /* 202F221 (sub_8055A00 - sub_8072CF4) */ .space 0x1 - -gUnknown_202F222: /* 202F222 */ +gUnknown_202F222: /* 202F222 (sub_8053704 - sub_8072CF4) */ .space 0x2 - -gUnknown_202F224: /* 202F224 */ +gUnknown_202F224: /* 202F224 (sub_8040DA0 - sub_805B264) */ + .space 0x4 +gUnknown_202F228: /* 202F228 (sub_8055FA0 - sub_805B618) */ .space 0x4 -gUnknown_202F228: /* 202F228 */ - .space 0x4 - -gUnknown_202F22C: /* 202F22C */ +gUnknown_202F22C: /* 202F22C (sub_805D8C8 - sub_805E2C4) */ .space 0x1 - -gUnknown_202F22D: /* 202F22D */ +gUnknown_202F22D: /* 202F22D (sub_805D8C8 - sub_805E2C4) */ .space 0x1 - -gUnknown_202F22E: /* 202F22E */ +gUnknown_202F22E: /* 202F22E (sub_805D8C8 - sub_805E2C4) */ .space 0x2 - -gUnknown_202F230: /* 202F230 */ +gUnknown_202F230: /* 202F230 (sub_805D8C8 - sub_805E2C4) */ .space 0x1 - -gUnknown_202F231: /* 202F231 */ +gUnknown_202F231: /* 202F231 (sub_805D8C8 - sub_805E2C4) */ .space 0x7 -gUnknown_202F238: /* 202F238 */ +gUnknown_202F238: /* 202F238 (sub_805FD74 - sub_8060CE8) */ .space 0x8 - -gUnknown_202F240: /* 202F240 */ +gUnknown_202F240: /* 202F240 (sub_805FD74 - CreateFieldItemMenu) */ .space 0x8 - -gUnknown_202F248: /* 202F248 */ +gUnknown_202F248: /* 202F248 (sub_805FD74 - sub_8060890) */ .space 0x10 - -gUnknown_202F258: /* 202F258 */ +gUnknown_202F258: /* 202F258 (sub_805FD74 - sub_8060800) */ .space 0x8 -gUnknown_202F260: /* 202F260 */ +gUnknown_202F260: /* 202F260 (ShowFieldMenu - DrawFieldTeamMenu) */ + .space 0x8 +gUnknown_202F268: /* 202F268 (sub_8062500) */ + .space 0x8 +gUnknown_202F270: /* 202F270 (sub_8060E38 - sub_8061A38) */ .space 0x8 -gUnknown_202F268: /* 202F268 */ - .space 0x8 - -gUnknown_202F270: /* 202F270 */ - .space 0x8 - -gUnknown_202F278: /* 202F278 */ +gUnknown_202F278: /* 202F278 (sub_80639E4) */ .space 0x60 -gUnknown_202F2D8: /* 202F2D8 */ +gUnknown_202F2D8: /* 202F2D8 (sub_8062F90 - sub_8064310) */ .space 0x8 -gUnknown_202F2E0: /* 202F2E0 */ +gUnknown_202F2E0: /* 202F2E0 (sub_8064BE0 - sub_8065250) */ .space 0x8 -gUnknown_202F2E8: /* 202F2E8 */ +gUnknown_202F2E8: /* 202F2E8 (sub_8064D74 - sub_8065B3C) */ .space 0x10 -gUnknown_202F2F8: /* 202F2F8 */ +gUnknown_202F2F8: /* 202F2F8 (sub_8065FB4 - sub_8066358) */ + .space 0x4 +gUnknown_202F2FC: /* 202F2FC (sub_8065FB4 - sub_8066358) */ .space 0x4 -gUnknown_202F2FC: /* 202F2FC */ - .space 0x4 - -gUnknown_202F300: /* 202F300 */ +gUnknown_202F300: /* 202F300 (sub_8066434) */ .space 0x8 -gUnknown_202F308: /* 202F308 */ +gUnknown_202F308: /* 202F308 (sub_8067A80 - sub_806806C) */ + .space 0x4 +gUnknown_202F30C: /* 202F30C (sub_8067A80 - sub_8067A80) */ + .space 0x4 +gUnknown_202F310: /* 202F310 (sub_8067A80 - sub_8068310) */ .space 0x4 -gUnknown_202F30C: /* 202F30C */ - .space 0x4 - -gUnknown_202F310: /* 202F310 */ - .space 0x4 - -gWalkableTileToCrossableTerrain: /* 202F314 (dungeon_map_access / dungeon_movement) */ +gWalkableTileToCrossableTerrain: /* 202F314 (LoadDungeonTilesetAssets - GetCrossableTerrain) */ .space 0x8 -gUnknown_202F31C: /* 202F31C (code_80718D8) */ +gUnknown_202F31C: /* 202F31C (sub_80723D0 - sub_80725A4) */ + .space 0x8 +gUnknown_202F324: /* 202F324 (sub_80723D0 - sub_80725A4) */ .space 0x8 -gUnknown_202F324: /* 202F324 (code_80718D8) */ - .space 0x8 - -gUnknown_202F32C: /* 202F32C (code_8072CF4 / code_80428A0 / code_8069E0C) */ +gUnknown_202F32C: /* 202F32C (xxx_dungeon_8042F6C - sub_8072CF4) */ .space 0x1 - -gUnknown_202F32D: /* 202F32D (code_8072CF4 / code_8073CF0) */ +gUnknown_202F32D: /* 202F32D (sub_8072CF4 - UseAttack) */ .space 0x3 -gPotentialItemTargetDirections: /* 202F330 (dungeon_ai_items) */ +gPotentialItemTargetDirections: /* 202F330 (DecideUseItem - TargetThrownItem) */ + .space 0x20 +gTargetAhead: /* 202F350 (FindStraightThrowableTargets - TargetThrownItem) */ + .space 0x8 +gPotentialItemTargetWeights: /* 202F358 (DecideUseItem - TargetThrownItem) */ .space 0x20 -gTargetAhead: /* 202F350 (dungeon_ai_items) */ +gUnknown_202F378: /* 202F378 (sub_8074FB0 - UseAttack) */ .space 0x8 -gPotentialItemTargetWeights: /* 202F358 (dungeon_ai_items) */ +gCanAttackInDirection: /* 202F380 (AIConsiderMove - TryAddTargetToAITargetList) */ + .space 0x8 +gPotentialAttackTargetDirections: /* 202F388 (AIConsiderMove - TryAddTargetToAITargetList) */ + .space 0x8 +gPotentialAttackTargetWeights: /* 202F390 (AIConsiderMove - TryAddTargetToAITargetList) */ + .space 0x20 +gPotentialTargets: /* 202F3B0 (AIConsiderMove - TryAddTargetToAITargetList) */ .space 0x20 -gUnknown_202F378: /* 202F378 (code_8073CF0) */ +gUnknown_202F3D0: /* 202F3D0 (sub_80867F4 - sub_8086854) */ .space 0x8 -gCanAttackInDirection: /* 202F380 (dungeon_ai_attack) */ +gUnknown_202F3D8: /* 202F3D8 (sub_8085B4C - sub_8085B80) */ .space 0x8 -gPotentialAttackTargetDirections: /* 202F388 (dungeon_ai_attack) */ - .space 0x8 - -gPotentialAttackTargetWeights: /* 202F390 (dungeon_ai_attack) */ - .space 0x20 - -gPotentialTargets: /* 202F3B0 (dungeon_ai_attack) */ - .space 0x20 - -gUnknown_202F3D0: /* 202F3D0 (code_80869E4) */ - .space 0x8 - -gUnknown_202F3D8: /* 202F3D8 (code_8085B0C) */ - .space 0x8 - -gMonsterParameters: /* 202F3E0 (pokemon / pokemon_mid) */ +gMonsterParameters: /* 202F3E0 (LoadMonsterParameters - IsPokemonDialogueSpriteAvail) */ .space 0x4 - -gMonsterParametersFile: /* 202F3E4 (pokemon) */ +gMonsterParametersFile: /* 202F3E4 (LoadMonsterParameters) */ .space 0x4 - -gUnknown_202F3E8: /* 202F3E8 (pokemon_2 / pokemon_3) */ +gUnknown_202F3E8: /* 202F3E8 (sub_808E53C - sub_808E668) */ .space 0x18 - -gRecruitedPokemon: /* 202F400 */ +gRecruitedPokemon: /* 202F400 [used everywhere tbh] */ .space 0x90E8 - -gLevelCurrentPokeId: /* 20384E8 (pokemon / pokemon_mid) */ +gLevelCurrentPokeId: /* 20384E8 (LoadMonsterParameters - GetPokemonLevelData) */ .space 0x8 - -gLevelCurrentData: /* 20384F0 (pokemon_mid) */ +gLevelCurrentData: /* 20384F0 (GetPokemonLevelData) */ .space 0x4B0 .include "src/items.o" @@ -749,103 +575,77 @@ gLevelCurrentData: /* 20384F0 (pokemon_mid) */ .include "src/ground_main.o" .space 0x2 -gUnknown_20398C8: /* 20398C8 (code_8098BDC) */ +gUnknown_20398C8: /* 20398C8 (sub_80991E0 - sub_8099220) */ .space 0x10 -gUnknown_20398D8: /* 20398D8 (code_8098BDC) */ +gUnknown_20398D8: /* 20398D8 (sub_809927C) */ .space 0x78 - -gUnknown_2039950: /* 2039950 (code_8098468 / code_8098BDC) */ +gUnknown_2039950: /* 2039950 (xxx_script_related_8098468 - sub_809927C) */ .space 0x8 -gUnknown_2039958: /* 2039958 (code_8098BDC) */ +gUnknown_2039958: /* 2039958 (sub_809977C - sub_8099BE4) */ .space 0x10 - -gUnknown_2039968: /* 2039968 (code_8098BDC) */ +gUnknown_2039968: /* 2039968 (sub_809977C - sub_8099BE4) */ .space 0x10 - -gUnknown_2039978: /* 2039978 (code_8098BDC) */ +gUnknown_2039978: /* 2039978 (sub_8099A5C - sub_8099E80) */ .space 0x8 - -gUnknown_2039980: /* 2039980 (code_8098BDC) */ +gUnknown_2039980: /* 2039980 (sub_809977C - sub_80997F4) */ .space 0x10 - -gUnknown_2039990: /* 2039990 (code_8098BDC) */ +gUnknown_2039990: /* 2039990 (sub_809977C - sub_8099BE4) */ .space 0x2 - -gUnknown_2039992: /* 2039992 (code_8098BDC) */ +gUnknown_2039992: /* 2039992 (sub_809977C - sub_8099BE4) */ .space 0x6 - -gUnknown_2039998: /* 2039998 (code_8098BDC) */ +gUnknown_2039998: /* 2039998 (sub_809977C - sub_8099E80) */ .space 0x44 -gUnknown_20399DC: /* 20399DC (code_8098BDC) */ +gUnknown_20399DC: /* 20399DC (sub_809A560 - sub_809B614) */ + .space 0x2 +gUnknown_20399DE: /* 20399DE (sub_809A560 - sub_809B614) */ .space 0x2 -gUnknown_20399DE: /* 20399DE (code_8098BDC) */ - .space 0x2 - -gUnknown_20399E0: /* 20399E0 (code_8098BDC) */ +gUnknown_20399E0: /* 20399E0 (sub_809CB50 - sub_809CCDC) */ .space 0x8 -gUnknown_20399E8: /* 20399E8 (code_809D148) */ +gUnknown_20399E8: /* 20399E8 (sub_809D0BC - sub_809D25C) */ .space 0x14 - -gUnknown_20399FC: /* 20399FC (code_809D148) */ +gUnknown_20399FC: /* 20399FC (sub_809D25C) */ .space 0x34 - -gUnknown_2039A30: /* 2039A30 (code_809D148 / ground_script) */ +gUnknown_2039A30: /* 2039A30 (sub_809D4B0 - ExecuteScriptCommand) */ .space 0x2 - -gUnknown_2039A32: /* 2039A32 (code_809D148 / ground_script) */ +gUnknown_2039A32: /* 2039A32 (sub_809D4B0 - ExecuteScriptCommand) */ .space 0x2 - -gUnknown_2039A34: /* 2039A34 (code_809D148 / ground_script) */ +gUnknown_2039A34: /* 2039A34 (sub_809D4B0 - ExecuteScriptCommand) */ .space 0x2 - -gUnknown_2039A36: /* 2039A36 (code_809D148 / ground_script) */ +gUnknown_2039A36: /* 2039A36 (sub_809D4B0 - GroundScript_Unlock) */ .space 0x2 - -gUnknown_2039A38: /* 2039A38 (code_809D148 / ground_script) */ +gUnknown_2039A38: /* 2039A38 (sub_809D4B0 - GroundScript_Unlock) */ .space 0x88 - -gUnknown_2039AC0: /* 2039AC0 (code_809D148 / ground_script) */ +gUnknown_2039AC0: /* 2039AC0 (sub_809D4B0 - GroundScript_Unlock) */ .space 0x88 - -gUnknown_2039B48: /* 2039B48 (code_809D148 / ground_script) */ +gUnknown_2039B48: /* 2039B48 (sub_809D4B0 - HandleAction) */ .space 0x208 - -gUnknown_2039D50: /* 2039D50 (ground_script) */ +gUnknown_2039D50: /* 2039D50 (ExecuteScriptCommand) */ .space 0x48 - -gUnknown_2039D98: /* 2039D98 (ground_script) (seems to be storage for strings.. used for both Team Name and Player Name) */ +gUnknown_2039D98: /* 2039D98 (HandleAction - sub_80A14E8) [seems to be storage for strings.. used for both Team Name and Player Name] */ .space 0xC - -gUnknown_2039DA4: /* 2039DA4 (ground_script) */ +gUnknown_2039DA4: /* 2039DA4 (HandleAction) */ .space 0x4 - -gUnknown_2039DA8: /* 2039DA8 (ground_script) */ +gUnknown_2039DA8: /* 2039DA8 (sub_80A14E8) */ .space 0x8 -gUnknown_2039DB0: /* 2039DB0 (ground_sprite) [unkStruct_2039DB0] */ +gUnknown_2039DB0: /* 2039DB0 (GroundSprite_Reset - sub_80A65F0) [unkStruct_2039DB0] */ .space 0x10 - -gUnknown_2039DC0: /* 2039DC0 (ground_sprite) [unkStruct_2039DB0] */ +gUnknown_2039DC0: /* 2039DC0 (GroundSprite_Reset - sub_80A65F0) [unkStruct_2039DB0] */ .space 0xC - -gUnknown_2039DCC: /* 2039DCC (ground_sprite) */ +gUnknown_2039DCC: /* 2039DCC (GroundSprite_Reset - sub_80A73EC) */ .space 0x2 - -gUnknown_2039DCE: /* 2039DCE (ground_sprite) */ +gUnknown_2039DCE: /* 2039DCE (GroundSprite_Reset - sub_80A73EC) */ .space 0x2 - -gUnknown_2039DD0: /* 2039DD0 (ground_sprite) */ +gUnknown_2039DD0: /* 2039DD0 (sub_80A62F0 - sub_80A69FC) */ .space 0x4 - -gUnknown_2039DD4: /* 2039DD4 (ground_sprite) */ +gUnknown_2039DD4: /* 2039DD4 (sub_80A62F0 - sub_80A69FC) */ .space 0x4 - -gUnknown_2039DD8: /* 2039DD8 (ground_sprite) */ +gUnknown_2039DD8: /* 2039DD8 (sub_80A6E80 - sub_80A7310) */ .space 0x8 .include "src/code_80A7714.o" From 36357469935014f876c99dd4a4281c5ea93cf37a Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Thu, 21 Sep 2023 20:59:20 -0400 Subject: [PATCH 33/47] #= text macro --- charmap.txt | 14 +++- data/data_80DBD98.s | 9 +-- data/data_80F59C8.s | 31 ++------ data/data_8107010.s | 152 ++++++++++++++++++++++++++++++++-------- data/data_810AE24.s | 2 +- src/data/pokemon_mail.h | 4 +- src/moves.c | 2 +- 7 files changed, 144 insertions(+), 70 deletions(-) diff --git a/charmap.txt b/charmap.txt index 1fce33a2b..82bcb12a8 100644 --- a/charmap.txt +++ b/charmap.txt @@ -278,12 +278,12 @@ ARG_POKEMON_8 = 24 6D 38 @ $m8 @ TEXT MACROS @ @ "#" is a text macro for different things -@ case is insensitive but need different -@ definitions to match +@ case is insensitive but need different definitions to match +CENTER_ALIGN = 23 2B @ #+ +UNK_MACRO_3D = 23 3D @ #= (Probably used to manually position text at an x coordinate) EXTRA_MSG = 23 50 @ #P WAIT_PRESS = 23 57 @ #W -CENTER_ALIGN = 23 2B @ #+ NEW_LINE = 23 6E @ #n @@ -322,3 +322,11 @@ GREEN_2 = 49 @ I CYAN_3 = 4D @ M YELLOW_5 = 4E @ N RED_2 = 57 @ W + +@ FOR UNK_MACRO_3D +M3D_50 = 32 @ 2 +M3D_64 = 40 2E @ @. +M3D_80 = 50 2E @ P. +M3D_120 = 78 2E @ x. +M3D_136 = 88 2E @ ˆ. +M3D_160 = A0 2E @ \u00A0. \ No newline at end of file diff --git a/data/data_80DBD98.s b/data/data_80DBD98.s index 7b76fdee6..0bf43051d 100644 --- a/data/data_80DBD98.s +++ b/data/data_80DBD98.s @@ -25,7 +25,6 @@ gUnknown_80DBFCC: @ 80DBFCC .byte 0x02, 0x00, 0x02, 0x00 .byte 0x0A, 0x00, 0x06, 0x00 .byte 0x06, 0x00, 0x00, 0x00 - .4byte UnkData_80DBFC8 .global gOthers_MenuOption @@ -62,9 +61,8 @@ gUnknown_80DC020: @ 80DC020 .byte 0x00, 0x00, 0x00, 0x00 .global UnkData_80DC038 - UnkData_80DC038: +UnkData_80DC038: .byte 0x01, 0x00, 0x0a, 0x00 - .global gUnknown_80DC03C gUnknown_80DC03C: @ 80DC03C .byte 0x00, 0x00, 0x00, 0x00 @@ -72,7 +70,6 @@ gUnknown_80DC03C: @ 80DC03C .byte 0x02, 0x00, 0x02, 0x00 .byte 0x18, 0x00, 0x10, 0x00 .byte 0x12, 0x00, 0x00, 0x00 - .4byte UnkData_80DC038 .global gWindowBGTitle @@ -82,9 +79,7 @@ gWindowBGTitle: @ 80DC054 .global gUnknown_80DC064 gUnknown_80DC064: @ 80DC064 - .string "Windows#=P.Blue#=x.Red#=" - .byte 0xA0 - .string ".Green\0" + .string "Windows{UNK_MACRO_3D M3D_80}Blue{UNK_MACRO_3D M3D_120}Red{UNK_MACRO_3D M3D_160}Green\0" .align 2,0 .global gWindowBGBlueString diff --git a/data/data_80F59C8.s b/data/data_80F59C8.s index 17ad7c665..109d3b95c 100644 --- a/data/data_80F59C8.s +++ b/data/data_80F59C8.s @@ -8376,9 +8376,7 @@ gUnknown_80FE748: @ 80FE748 .global OptionsSpeed OptionsSpeed: - .string "Speed#=P.Slow#=" - .byte 0x88 - .string ".Fast\0" + .string "Speed{UNK_MACRO_3D M3D_80}Slow{UNK_MACRO_3D M3D_136}Fast\0" .align 2,0 .global gUnknown_80FE764 @@ -8387,10 +8385,7 @@ gUnknown_80FE764: @ 80FE764 .global OptionsFarOffPals OptionsFarOffPals: - .string "Far-off pals#=" - .string "P.Self#=" - .byte 0x88 - .string ".Look\0" + .string "Far-off pals{UNK_MACRO_3D M3D_80}Self{UNK_MACRO_3D M3D_136}Look\0" .align 2,0 .global gUnknown_80FE788 @@ -8399,10 +8394,7 @@ gUnknown_80FE788: @ 80FE788 .global OptionsDamageTurn OptionsDamageTurn: - .string "Damage turn#=P." - .string "No#=" - .byte 0x88 - .string ".Yes\0" + .string "Damage turn{UNK_MACRO_3D M3D_80}No{UNK_MACRO_3D M3D_136}Yes\0" .align 2,0 .global gUnknown_80FE7A8 @@ -8411,10 +8403,7 @@ gUnknown_80FE7A8: @ 80FE7A8 .global OptionsGrid OptionsGrid: - .string "Grids#=P." - .string "Off#=" - .byte 0x88 - .string ".On\0" + .string "Grids{UNK_MACRO_3D M3D_80}Off{UNK_MACRO_3D M3D_136}On\0" .align 2,0 .global gUnknown_80FE7C0 @@ -8423,11 +8412,7 @@ gUnknown_80FE7C0: @ 80FE7C0 .global OptionsMap OptionsMap: - .string "Map#=P." - .string "Off#=x." - .string "Clear#=" - .byte 0xa0 - .string ".Shade\0" + .string "Map{UNK_MACRO_3D M3D_80}Off{UNK_MACRO_3D M3D_120}Clear{UNK_MACRO_3D M3D_160}Shade\0" .align 2,0 .global gUnknown_80FE7E4 @@ -8438,11 +8423,7 @@ gUnknown_80FE7E4: @ 80FE7E4 .global OptionsWindowColor OptionsWindowColor: - .string "Windows#=P." - .string "Blue#=x." - .string "Red#=" - .byte 0xa0 - .string ".Green\0" + .string "Windows{UNK_MACRO_3D M3D_80}Blue{UNK_MACRO_3D M3D_120}Red{UNK_MACRO_3D M3D_160}Green\0" .align 2,0 .global gOptionsWindowColorPtr diff --git a/data/data_8107010.s b/data/data_8107010.s index 47678d6a8..f59512566 100644 --- a/data/data_8107010.s +++ b/data/data_8107010.s @@ -1,10 +1,11 @@ .section .rodata - .string "pksdir0\0" +@ ??? +.string "pksdir0\0" - .string "pksdir0\0" -@ START code_80718D8 +@ sub_807218C +.string "pksdir0\0" .global gUnknown_8107010 gUnknown_8107010: @ 8107010 @@ -27,9 +28,6 @@ gUnknown_8107028: .global gUnknown_810702C gUnknown_810702C: .byte 0x00, 0x00, 0x00, 0x00 -.string "pksdir0\0" - -@ END code_80718D8 .string "pksdir0\0" @@ -75,7 +73,9 @@ gUnknown_810702C: .string "pksdir0\0" -@ START code_807CD9C + +@ sub_807DF38 +.string "pksdir0\0" .global gUnknown_81070E8 gUnknown_81070E8: @@ -98,26 +98,35 @@ gUnknown_8107178: @ 8107178 .4byte gUnknown_81070E8 .4byte gUnknown_81070E8 .4byte gUnknown_8107110 + +@ ??? .string "pksdir0\0" -@ END code_807CD9C - +@ ??? .string "pksdir0\0" +@ ??? .string "pksdir0\0" +@ ??? .string "pksdir0\0" +@ ??? .string "pksdir0\0" +@ ??? .string "pksdir0\0" +@ ??? .string "pksdir0\0" +@ ??? .string "pksdir0\0" +@ ??? .string "pksdir0\0" +@ sub_8080B30 - sub_808217C .string "pksdir0\0" .global gUnknown_81071D4 @@ -127,19 +136,24 @@ gUnknown_81071D4: @ 81071D4 .global gUnknown_81071E0 gUnknown_81071E0: @ 81071E0 .byte 0x82, 0xdd, 0x82, 0xb3, 0x82, 0xab, 0x97, 0x6c, 0x00, 0x00, 0x00, 0x00 + +@ ??? .string "pksdir0\0" +@ ??? .string "pksdir0\0" +@ ??? .string "pksdir0\0" +@ ??? .string "pksdir0\0" -.string "pksdir0\0" - +@ ??? .string "pksdir0\0" @ START code_808417C #1 +.string "pksdir0\0" .byte 0x70, 0x6b, 0x73, 0x64 .byte 0x69, 0x72, 0x30, 0x00 @@ -148,10 +162,11 @@ gUnknown_81071E0: @ 81071E0 gUnknown_8107224: @ 8107224 @ replacing .incbin "baserom.gba", 0x107224, 0x10 .byte 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x00 -.string "pksdir0\0" @ END code_808417C #1 +@ code_8085B0C +.string "pksdir0\0" .global gUnknown_8107234 gUnknown_8107234: @ 8107234 .byte 0x01, 0x01, 0x00, 0x02, 0x01, 0x03, 0x00, 0x00, 0x02, 0x04, 0x02, 0x05, 0x03, 0x06, 0x00, 0x00 @@ -189,13 +204,15 @@ gUnknown_8107374: @ 8107374 .global gUnknown_8107380 gUnknown_8107380: @ 8107380 .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + +@ ??? .string "pksdir0\0" +@ code_8086A3C #1 .string "pksdir0\0" .global gUnknown_810739C gUnknown_810739C: @ 810739C -@ replacing .incbin "baserom.gba", 0x10739C, 0x38 .byte 0x04, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00, 0x18, 0x00, 0x00, 0x00 .byte 0x04, 0x00, 0x02, 0x00, 0x18, 0x00, 0x00, 0x00, 0x05, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x00, 0x00 .byte 0x06, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 @@ -203,7 +220,6 @@ gUnknown_810739C: @ 810739C .global gUnknown_81073D4 gUnknown_81073D4: @ 81073D4 -@ replacing .incbin "baserom.gba", 0x1073D4, 0x38 .byte 0x04, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00, 0x18, 0x00, 0x00, 0x00 .byte 0x04, 0x00, 0x02, 0x00, 0x18, 0x00, 0x00, 0x00, 0x05, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x00, 0x00 .byte 0x06, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 @@ -211,56 +227,86 @@ gUnknown_81073D4: @ 81073D4 .global gUnknown_810740C gUnknown_810740C: @ 810740C -@ replacing .incbin "baserom.gba", 0x10740C, 0x40 .byte 0x04, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x05, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x00, 0x00 .byte 0x04, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00, 0x18, 0x00, 0x00, 0x00 .byte 0x03, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x0a, 0x00, 0x08, 0x00, 0x00, 0x00 + +@ code_8086A3C #2 .string "pksdir0\0" .global gUnknown_810744C gUnknown_810744C: @ 810744C -@ replacing .incbin "baserom.gba", 0x10744C, 0x18 .byte 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00 .global gUnknown_8107464 gUnknown_8107464: @ 8107464 -@ replacing .incbin "baserom.gba", 0x107464, 0x98 .byte 0x05, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x00, 0x00 .byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x07, 0x00, 0x00, 0x00 + .string "pksdir0\0" + .string "pksdir0\0" + .string "pksdir0\0" + .string "pksdir0\0" + .string "pksdir0\0" + .string "pksdir0\0" + .string "pksdir0\0" + + .string "pksdir0\0" + .string "pksdir0\0" + .string "pksdir0\0" + .string "pksdir0\0" + .string "pksdir0\0" + .string "pksdir0\0" + .string "pksdir0\0" + +@ ??? .string "pksdir0\0" .global gUnknown_81074FC gUnknown_81074FC: @ 81074FC -@ replacing .incbin "baserom.gba", 0x1074FC, 0x48 .byte 0x4e, 0x4f, 0x50, 0x51, 0x4a, 0x49, 0x3e, 0x38 + +@ ??? .string "pksdir0\0" + +@ ??? .string "pksdir0\0" + +@ ??? .string "pksdir0\0" + +@ ??? .string "pksdir0\0" + +@ ??? .string "pksdir0\0" + +@ ??? .string "pksdir0\0" + +@ ??? .string "pksdir0\0" + +@ ??? .string "pksdir0\0" .global gUnknown_8107544 gUnknown_8107544: @ 8107544 -@ replacing .incbin "baserom.gba", 0x107544, 0xB0 .byte 0x02, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x07, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00 @@ -272,6 +318,8 @@ gUnknown_8107544: @ 8107544 .byte 0x0d, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x17, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x12, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 + +@ pokemon .string "pksdir0\0" .global gUnknown_81075F4 @@ -345,6 +393,8 @@ gUnknown_81076C4: @ 81076C4 .4byte -4 .4byte -8 .4byte -16 + +@ pokemon_3 #1 .string "pksdir0\0" .global gIQSkillGroups @@ -373,7 +423,11 @@ gIQSkillGroups: @ 81076E4 .4byte 9 .4byte 17 .4byte 6 + +@ pokemon_3 #2 .string "pksdir0\0" + +@ pokemon_3 #3 .string "pksdir0\0" .global gUnknown_8107754 @@ -418,6 +472,8 @@ gUnknown_8107790: @ 8107790 gUnknown_8107798: @ 8107798 .string "Info\0" .align 2,0 + +@ dungeon .string "pksdir0\0" .align 2,0 @@ -1184,12 +1240,13 @@ gUnknown_8108F4A: @ 8108F4A gUnknown_8108F50: @ 8108F50 .string "No problem.\0" .align 2,0 + +@ items.c .string "pksdir0\0" .align 2,0 .global gUnknown_8108F64 gUnknown_8108F64: @ 8108F64 -@ replacing .incbin "baserom.gba", 0x108F64, 0x800 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x2c, 0x01, 0x04, 0x00, 0x00, 0x02, 0x00, 0x00 @@ -1396,9 +1453,10 @@ gUnknown_81097F8: @ 81097F8 .byte 0x13, 0x00, 0x00, 0x00 .byte 0x15, 0x00, 0x00, 0x00 .byte 0x17, 0x00, 0x00, 0x00 -.string "pksdir0\0" @ START rescue_team_info.c +.string "pksdir0\0" + .global gRescueRankMaxPoints gRescueRankMaxPoints: @ 8109810 .4byte 50 @@ -1412,9 +1470,11 @@ gRescueRankMaxPoints: @ 8109810 .global gTeamNamePlaceholder gTeamNamePlaceholder: @ 810982C .string "Pokémon\0" -.string "pksdir0\0" @ END rescue_team_info.c +@ text_util +.string "pksdir0\0" + .global gUnknown_810983C gUnknown_810983C: @ 810983C .4byte gUnknown_8109888 @@ -1457,13 +1517,15 @@ gUnknown_8109884: .global gUnknown_8109888 gUnknown_8109888: .byte 0x82, 0x4f, 0x00, 0x00 + +@ ??? .string "pksdir0\0" -.string "pksdir0\0" - +@ ??? .string "pksdir0\0" @ START friend_area.c +.string "pksdir0\0" .global sUnknown_81098A4 sUnknown_81098A4: @ 81098A4 @@ -1472,11 +1534,13 @@ sUnknown_81098A4: @ 81098A4 .global sUnknown_81098AC sUnknown_81098AC: @ 81098AC - .string "%s#=%c{COLOR_1 UNK_COLOR_4}%s{END_COLOR_TEXT_1}\0" + .string "%s{UNK_MACRO_3D}%c{COLOR_1 UNK_COLOR_4}%s{END_COLOR_TEXT_1}\0" .align 2,0 +@ END friend_area.c + +@ moves.c .string "pksdir0" -@ END friend_area.c .align 2,0 .global gUnknown_81098C4 @@ -1513,7 +1577,7 @@ gUnknown_810990C: @ 810990C .global gUnknown_8109910 gUnknown_8109910: @ 8109910 - .string "{COLOR_2}%c%s%s%s#=%c%2d/%2d{END_COLOR_TEXT_2}\0" + .string "{COLOR_2}%c%s%s%s{UNK_MACRO_3D}%c%2d/%2d{END_COLOR_TEXT_2}\0" .align 2,0 .global gUnknown_8109928 @@ -1533,12 +1597,20 @@ gUnknown_810992C: @ 810992C gUnknown_8109930: @ 8109930 .string "{ARG_POKEMON_0}\0" .align 2,0 + +@ ??? .string "pksdir0\0" .align 2,0 + +@ ??? .string "pksdir0\0" .align 2,0 + +@ ??? .string "pksdir0\0" .align 2,0 + +@ game_options.c .string "pksdir0\0" .align 2,0 @@ -1548,19 +1620,29 @@ gWindowBGColors: @ 8109954 .byte 0x80, 0x38, 0x20, 0x00 .byte 0x28, 0x80, 0x48, 0x00 .byte 0x28, 0x80, 0x48, 0x00 + +@ ??? .string "pksdir0\0" .align 2,0 + +@ ??? .string "pksdir0\0" .align 2,0 + +@ ??? .string "pksdir0\0" .align 2,0 + +@ ??? .string "pksdir0\0" .align 2,0 .global gUnknown_8109984 gUnknown_8109984: @ 8109984 .byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x02, 0x01, 0x00 - .string "pksdir0\0" + +@ ??? +.string "pksdir0\0" .align 2,0 .global gStoryMissionText @@ -1746,7 +1828,9 @@ gDummyScenarioText: @ 8109CA8 gUnknown_8109CC0: @ 8109CC0 .string "{COLOR_1 RED_2}???{END_COLOR_TEXT_1}\0" .align 2,0 - .string "pksdir0\0" + +@ code_80972F4.c +.string "pksdir0\0" .global gMeetNinetalesText gMeetNinetalesText: @ 8109CD4 @@ -1763,9 +1847,17 @@ gFinalScenarioText: @ 8109CF4 @ replacing .incbin "baserom.gba", 0x109CF4, 0x3C .byte 0x44, 0x65, 0x66, 0x65, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6e, 0x61, 0x6c .byte 0x20, 0x50, 0x6f, 0x6b, 0xe9, 0x6d, 0x6f, 0x6e, 0x2e, 0x00, 0x00, 0x00 + +@ ??? .string "pksdir0\0" + +@ ??? .string "pksdir0\0" + +@ ??? .string "pksdir0\0" + +@ ???.c .string "pksdir0\0" @ 8109D30 @@ -1860,7 +1952,6 @@ gUnknown_810A3F0: @ 810A3F0 (money related according to PMDe gTypeGummiIQBoost: @ 810A580 // s16[0x12][NUMBER_OF_GUMMIS = 18] // relates [type][gummi tyep] -> iq boost amount -@ replacing .incbin "baserom.gba", 0x10A580, 0x288 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00 @@ -1905,7 +1996,6 @@ gTypeGummiIQBoost: @ 810A580 .global gUnknown_810A808 gUnknown_810A808: @ 810A808 -@ replacing .incbin "baserom.gba", 0x10A808, 0x288 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00 diff --git a/data/data_810AE24.s b/data/data_810AE24.s index 43af008de..9e670e960 100644 --- a/data/data_810AE24.s +++ b/data/data_810AE24.s @@ -1557,7 +1557,7 @@ MoveRangeThreeTilesDiagonally: .global RangeText RangeText: -.string "Range#=@.{ARG_POKEMON_0} \0" +.string "Range{UNK_MACRO_3D M3D_64}{ARG_POKEMON_0} \0" .align 2,0 .global gUnknown_810CF00 diff --git a/src/data/pokemon_mail.h b/src/data/pokemon_mail.h index b53aa4fc1..6853e9d92 100644 --- a/src/data/pokemon_mail.h +++ b/src/data/pokemon_mail.h @@ -943,8 +943,8 @@ ALIGNED(4) const u8 gMail_WondersHeadline[] = _( ALIGNED(4) const u8 gMail_PollText[] = _( - "{COLOR_1 YELLOW}First#=2Gravelerock{END_COLOR_TEXT_1}\n" - "{COLOR_1 YELLOW}Second#=2Oran Berry{END_COLOR_TEXT_1}\n" + "{COLOR_1 YELLOW}First{UNK_MACRO_3D M3D_50}Gravelerock{END_COLOR_TEXT_1}\n" + "{COLOR_1 YELLOW}Second{UNK_MACRO_3D M3D_50}Oran Berry{END_COLOR_TEXT_1}\n" "In a nationwide survey involving rescue\n" "teams{COMMA} the most popular item was found to\n" "be {COLOR_1 GREEN}Gravelerocks{END_COLOR_TEXT_1}. According to Sudowoodo\n" diff --git a/src/moves.c b/src/moves.c index fdc189390..8e0496ae1 100644 --- a/src/moves.c +++ b/src/moves.c @@ -35,7 +35,7 @@ extern const u8 gUnknown_8109930[]; // data_810AE24.s extern const u8* gPtrTypeText; // "Type" extern const u8 *gRangeNames[]; -extern const u8* gUnknown_810CF00; // "Range#=@.$m0 " +extern const u8* gUnknown_810CF00; // system_sbin.s extern const struct FileArchive gSystemFileArchive; From 7fbe27f7b8c9e1bd52cd6241175cd356e8b3251d Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sat, 23 Sep 2023 03:33:46 -0400 Subject: [PATCH 34/47] Split+data options_menu --- data/data_80DBD98.s | 97 -------- include/game_options.h | 11 +- include/options_menu.h | 8 - include/options_menu1.h | 24 ++ include/options_menu2.h | 22 ++ ld_script.txt | 6 +- src/code_2.c | 1 - src/code_80118A4.c | 2 - src/code_8012A18.c | 2 - src/code_801D014.c | 2 +- src/code_8069E0C.c | 2 - src/data/options_menu1.h | 25 ++ src/data/options_menu2.h | 26 +++ src/options_menu.c | 486 --------------------------------------- src/options_menu1.c | 310 +++++++++++++++++++++++++ src/options_menu2.c | 125 ++++++++++ src/personality_test.c | 2 - src/pokemon_news.c | 2 +- src/save.c | 1 - 19 files changed, 545 insertions(+), 609 deletions(-) delete mode 100644 data/data_80DBD98.s delete mode 100644 include/options_menu.h create mode 100644 include/options_menu1.h create mode 100644 include/options_menu2.h create mode 100644 src/data/options_menu1.h create mode 100644 src/data/options_menu2.h delete mode 100644 src/options_menu.c create mode 100644 src/options_menu1.c create mode 100644 src/options_menu2.c diff --git a/data/data_80DBD98.s b/data/data_80DBD98.s deleted file mode 100644 index 0bf43051d..000000000 --- a/data/data_80DBD98.s +++ /dev/null @@ -1,97 +0,0 @@ - .section .rodata - -@ options_menu #1 - .align 2,0 -.string "pksdir0\0" - .align 2,0 - - .global gUnknown_80DBFB0 -gUnknown_80DBFB0: @ 80DBFB0 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global UnkData_80DBFC8 - UnkData_80DBFC8: - .byte 0x01, 0x00, 0x07, 0x00 - - .global gUnknown_80DBFCC -gUnknown_80DBFCC: @ 80DBFCC - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x06, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x00 - .byte 0x0A, 0x00, 0x06, 0x00 - .byte 0x06, 0x00, 0x00, 0x00 - .4byte UnkData_80DBFC8 - - .global gOthers_MenuOption -gOthers_MenuOption: @ 80DBFE4 - .string "Others\0" - .align 2,0 - - .global gUnknown_80DBFEC -gUnknown_80DBFEC: @ 80DBFEC - .string "Change settings?\0" - .align 2,0 - - .global gOthers_GameOptions -gOthers_GameOptions: @ 80DC000 - .string "Game Options\0" - .align 2,0 - - .global gOthers_Hints -gOthers_Hints: @ 80DC010 - .string "Hints\0" - -@ options_menu #2 - .align 2,0 -.string "pksdir0\0" - .align 2,0 - - .global gUnknown_80DC020 -gUnknown_80DC020: @ 80DC020 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global UnkData_80DC038 -UnkData_80DC038: - .byte 0x01, 0x00, 0x0a, 0x00 - .global gUnknown_80DC03C -gUnknown_80DC03C: @ 80DC03C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x06, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x00 - .byte 0x18, 0x00, 0x10, 0x00 - .byte 0x12, 0x00, 0x00, 0x00 - .4byte UnkData_80DC038 - - .global gWindowBGTitle -gWindowBGTitle: @ 80DC054 - .string "Game Options\0" - .align 2,0 - - .global gUnknown_80DC064 -gUnknown_80DC064: @ 80DC064 - .string "Windows{UNK_MACRO_3D M3D_80}Blue{UNK_MACRO_3D M3D_120}Red{UNK_MACRO_3D M3D_160}Green\0" - .align 2,0 - - .global gWindowBGBlueString -gWindowBGBlueString: @ 80DC084 - .string "Blue\0" - .align 2,0 - - .global gWindowBGRedString -gWindowBGRedString: @ 80DC08C - .string "Red\0" - .align 2,0 - - .global gWindowBGGreenString -gWindowBGGreenString: @ 80DC090 - .string "Green\0" \ No newline at end of file diff --git a/include/game_options.h b/include/game_options.h index 1f468a382..73f320bf0 100644 --- a/include/game_options.h +++ b/include/game_options.h @@ -16,7 +16,7 @@ enum FarOffPals // GBA has 3 options while DS has 7 enum MapOption { - MAP_OPTION_OFF = 0, + MAP_OPTION_OFF, MAP_OPTION_CLEAR, MAP_OPTION_SHADE, NUM_GBA_MAP_OPTIONS, @@ -24,7 +24,7 @@ enum MapOption enum DSMapOption { - TOP_TEAM_DATA_NO_BOTTOM = 0, + TOP_TEAM_DATA_NO_BOTTOM, TOP_TEAM_DATA_CLEAR_MAP_BOTTOM, TOP_TEAM_DATA_SHADED_MAP_BOTTOM, TOP_MESSAGE_LOG_NO_BOTTOM, @@ -36,12 +36,13 @@ enum DSMapOption enum windowColor { - WINDOW_COLOR_BLUE = 0, + WINDOW_COLOR_BLUE, WINDOW_COLOR_RED, WINDOW_COLOR_GREEN, NUM_WINDOW_COLORS, }; +// size: 0x10 typedef struct GameOptions { // TODO: find where Controls/Touch Screen are in this structure in PMD Blue @@ -52,13 +53,15 @@ typedef struct GameOptions /* 0x3 */ bool8 gridEnable; /* 0x4 */ u8 mapOption; /* 0x5 */ u8 fill5[3]; - /* 0x8 */ u8 windowColor; + /* 0x8 */ u8 windowColor; /* 0x9 */ u8 unk9; // maybe Controls? /* 0xA */ u8 unkA; // maybe Touch Screen? /* 0xB */ u8 playerGender; /* 0xC */ u8 unkC; } GameOptions; +extern GameOptions *gGameOptionsRef; + GameOptions *GetGameOptions(void); bool8 GameOptionsNotChange(GameOptions *); void InitializeGameOptions(bool8 initializeGender); diff --git a/include/options_menu.h b/include/options_menu.h deleted file mode 100644 index 6c86bea52..000000000 --- a/include/options_menu.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef GUARD_OPTIONS_MENU_H -#define GUARD_OPTIONS_MENU_H - -bool8 sub_801DCC4(void); -u32 sub_801DCE8(void); -void sub_801DD50(void); - -#endif // GUARD_OPTIONS_MENU_H \ No newline at end of file diff --git a/include/options_menu1.h b/include/options_menu1.h new file mode 100644 index 000000000..24baa5ba9 --- /dev/null +++ b/include/options_menu1.h @@ -0,0 +1,24 @@ +#ifndef GUARD_OPTIONS_MENU1_H +#define GUARD_OPTIONS_MENU1_H + +#include "game_options.h" +#include "structs/menu.h" + +// size: 0x11C +struct unkStruct_203B25C +{ + /* 0x0 */ u32 state; + /* 0x4 */ u32 chosenHintIndex; + /* 0x8 */ GameOptions newOptions; + /* 0x18 */ u32 menuAction; + /* 0x1C */ MenuStruct menu; + /* 0x6C */ MenuItem menuItems[8]; + u16 unkAC[8]; + UnkTextStruct2 unkBC[4]; +}; + +bool8 sub_801DCC4(void); +u32 sub_801DCE8(void); +void sub_801DD50(void); + +#endif // GUARD_OPTIONS_MENU1_H \ No newline at end of file diff --git a/include/options_menu2.h b/include/options_menu2.h new file mode 100644 index 000000000..2d7bdeadd --- /dev/null +++ b/include/options_menu2.h @@ -0,0 +1,22 @@ +#ifndef GUARD_OPTIONS_MENU2_H +#define GUARD_OPTIONS_MENU2_H + +#include "game_options.h" +#include "structs/menu.h" + +// size: 0xAC +struct unkStruct_203B260 +{ + /* 0x0 */ GameOptions *optionsMenu; + /* 0x4 */ MenuInputStructSub unk4; + /* 0x10 */ MenuInputStruct input; + u32 unk44; + UnkTextStruct2 *unk48; + UnkTextStruct2 unk4C[4]; +}; + +bool8 sub_801E198(GameOptions *optionsMenu); +u32 sub_801E218(void); +void sub_801E2C4(void); + +#endif // GUARD_OPTIONS_MENU2_H \ No newline at end of file diff --git a/ld_script.txt b/ld_script.txt index 38d876bfc..a25608a9d 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -112,7 +112,8 @@ SECTIONS { src/code_801C8C4.o(.text); src/code_801D014.o(.text); src/code_801D9E4.o(.text); - src/options_menu.o(.text); + src/options_menu1.o(.text); + src/options_menu2.o(.text); src/hints_menu1.o(.text); src/hints_menu2.o(.text); src/gulpin_shop.o(.text); @@ -431,7 +432,8 @@ SECTIONS { src/code_801C8C4.o(.rodata); src/code_801D014.o(.rodata); src/code_801D9E4.o(.rodata); - data/data_80DBD98.o(.rodata); + src/options_menu1.o(.rodata); + src/options_menu2.o(.rodata); src/hints_menu1.o(.rodata); src/hints_menu2.o(.rodata); src/gulpin_shop.o(.rodata); diff --git a/src/code_2.c b/src/code_2.c index 2ecf645c6..db574aaca 100644 --- a/src/code_2.c +++ b/src/code_2.c @@ -54,7 +54,6 @@ extern u32 gUnknown_203B03C; extern u16 gUnknown_2026E4E; extern s32 gUnknown_2000A80; extern OpenedFile *gTitlePaletteFile; -extern GameOptions *gGameOptionsRef; extern char gPMDBuildVersion[]; diff --git a/src/code_80118A4.c b/src/code_80118A4.c index dc68f08a4..34abab9d8 100644 --- a/src/code_80118A4.c +++ b/src/code_80118A4.c @@ -17,8 +17,6 @@ #include "sprite.h" #include "event_flag.h" -extern GameOptions *gGameOptionsRef; - // size: 0x4DD8 struct UnkBgStruct { diff --git a/src/code_8012A18.c b/src/code_8012A18.c index d6cdb40dc..1db9fd69f 100644 --- a/src/code_8012A18.c +++ b/src/code_8012A18.c @@ -12,8 +12,6 @@ extern void nullsub_8(u8); extern void xxx_call_update_bg_vram(); -extern GameOptions *gGameOptionsRef; - void sub_8012A18() { sub_8011860(); diff --git a/src/code_801D014.c b/src/code_801D014.c index 62011ec3d..6d46daf2e 100644 --- a/src/code_801D014.c +++ b/src/code_801D014.c @@ -19,7 +19,7 @@ #include "ground_map_1.h" #include "memory.h" #include "menu_input.h" -#include "options_menu.h" +#include "options_menu1.h" #include "party_list_menu.h" #include "rescue_team_info.h" #include "text1.h" diff --git a/src/code_8069E0C.c b/src/code_8069E0C.c index 30fa57885..24deca2fd 100644 --- a/src/code_8069E0C.c +++ b/src/code_8069E0C.c @@ -15,8 +15,6 @@ #include "game_options.h" #include "text_util.h" -extern GameOptions *gGameOptionsRef; - struct unkStruct_80F520C { u8 unk0; diff --git a/src/data/options_menu1.h b/src/data/options_menu1.h new file mode 100644 index 000000000..3e3e461ad --- /dev/null +++ b/src/data/options_menu1.h @@ -0,0 +1,25 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 sUnknown_80DBFB0 = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; + +static const u8 sUnknown_80DBFC8[] = {1, 0, 7, 0}; +static const UnkTextStruct2 sUnknown_80DBFCC = { + 0, 0, 0, 0, + 6, + 2, 2, + 10, 6, + 6, 0, + sUnknown_80DBFC8 +}; + +ALIGNED(4) static const u8 sOthers[] = _("Others"); +ALIGNED(4) static const u8 sChangeSettingsPrompt[] = _("Change settings?"); +ALIGNED(4) static const u8 sGameOptions[] = _("Game Options"); +ALIGNED(4) static const u8 sHints[] = _("Hints"); \ No newline at end of file diff --git a/src/data/options_menu2.h b/src/data/options_menu2.h new file mode 100644 index 000000000..cd386040c --- /dev/null +++ b/src/data/options_menu2.h @@ -0,0 +1,26 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 sUnknown_80DC020 = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; + +static const u8 sUnknown_80DC038[] = {1, 0, 10, 0}; +static const UnkTextStruct2 sUnknown_80DC03C = { + 0, 0, 0, 0, + 6, + 2, 2, + 24, 16, + 18, 0, + sUnknown_80DC038 +}; + +ALIGNED(4) static const u8 sGameOptions[] = _("Game Options"); +ALIGNED(4) static const u8 sUnknown_80DC064[] = _("Windows{UNK_MACRO_3D M3D_80}Blue{UNK_MACRO_3D M3D_120}Red{UNK_MACRO_3D M3D_160}Green"); +ALIGNED(4) static const u8 sBlue[] = _("Blue"); +ALIGNED(4) static const u8 sRed[] = _("Red"); +ALIGNED(4) static const u8 sGreen[] = _("Green"); \ No newline at end of file diff --git a/src/options_menu.c b/src/options_menu.c deleted file mode 100644 index 1241ed1fa..000000000 --- a/src/options_menu.c +++ /dev/null @@ -1,486 +0,0 @@ -#include "global.h" -#include "code_80118A4.h" -#include "code_80130A8.h" -#include "code_8098BDC.h" -#include "common_strings.h" -#include "constants/colors.h" -#include "constants/input.h" -#include "game_options.h" -#include "hints_menu1.h" -#include "hints_menu2.h" -#include "memory.h" -#include "menu_input.h" -#include "options_menu.h" -#include "text1.h" -#include "text2.h" - -struct unkStruct_203B25C -{ - // size: 0x11C - u32 state; - u32 chosenHintIndex; - GameOptions newOptions; - u32 menuAction; - MenuStruct menu; - MenuItem menuItems[8]; - u16 unkAC[8]; - UnkTextStruct2 unkBC[4]; -}; - -struct unkStruct_203B260 -{ - GameOptions *optionsMenu; - MenuInputStructSub unk4; - MenuInputStruct input; - u32 unk44; - UnkTextStruct2 * unk48; - UnkTextStruct2 unk4C[4]; -}; -struct unkStruct_203B260 *gUnknown_203B260; -extern GameOptions *gGameOptionsRef; -extern struct unkStruct_203B25C *gUnknown_203B25C; - -extern const UnkTextStruct2 gUnknown_80DBFB0; -extern const UnkTextStruct2 gUnknown_80DBFCC; -extern const UnkTextStruct2 gUnknown_80DC020; -extern const UnkTextStruct2 gUnknown_80DC03C; - -extern const u8 gWindowBGTitle[]; -extern const u8 gUnknown_80DC064[]; -extern const u8 gWindowBGGreenString[]; -extern const u8 gWindowBGRedString[]; -extern const u8 gWindowBGBlueString[]; - -extern const char gOthers_MenuOption[]; -extern const char gUnknown_80DBFEC[]; -extern const char gOthers_GameOptions[]; -extern const char gOthers_Hints[]; - -extern void CreateOthersMenu(void); -void CreateOptionsMenu(void); -void nullsub_38(void); -extern void SetOptionsMenuState(u32); -extern void HandleOthersMenu(); -extern void sub_801E088(); -extern void sub_801E0E0(); -extern void sub_801E0FC(); -extern void HandleChangeSettingsMenu(); -extern void sub_801DD84(); -extern void sub_801DED0(); -extern bool8 sub_801E198(GameOptions *); -extern void CreateChangeSettingsConfirmMenu(void); -extern u32 sub_801E218(void); -extern void sub_801E2C4(void); - -enum -{ - MENU_OPTION_DEFAULT = 1, - MENU_OPTION_HINTS, - MENU_OPTION_GAMEOPTIONS, - MENU_OPTION_YES, - MENU_OPTION_NO -}; - -enum OptionsMenuStates { - OPTIONS_MENU_INIT, - OPTIONS_MENU_MAIN, - OPTIONS_MENU_EXIT, - OPTIONS_MENU_PRE_HINT_SELECTION, - OPTIONS_MENU_HINT_SELECTION, - OPTIONS_MENU_DISPLAY_HINT, - OPTIONS_MENU_UNKNOWN_6, - OPTIONS_MENU_CONFIRM_NEW_OPTIONS, -}; - -bool8 sub_801DCC4(void) -{ - gUnknown_203B25C = MemoryAlloc(sizeof(struct unkStruct_203B25C), 8); - SetOptionsMenuState(OPTIONS_MENU_INIT); - return TRUE; -} - -u32 sub_801DCE8(void) -{ - switch(gUnknown_203B25C->state) - { - case OPTIONS_MENU_EXIT: - return 3; - case OPTIONS_MENU_INIT: - case OPTIONS_MENU_MAIN: - HandleOthersMenu(); - break; - case OPTIONS_MENU_PRE_HINT_SELECTION: - case OPTIONS_MENU_HINT_SELECTION: - sub_801E088(); - break; - case OPTIONS_MENU_DISPLAY_HINT: - sub_801E0E0(); - break; - case 6: - sub_801E0FC(); - break; - case OPTIONS_MENU_CONFIRM_NEW_OPTIONS: - HandleChangeSettingsMenu(); - break; - default: - break; - } - return 0; -} - -void sub_801DD50(void) -{ - if(gUnknown_203B25C != NULL) - { - MemoryFree(gUnknown_203B25C); - gUnknown_203B25C = NULL; - } -} - -void SetOptionsMenuState(u32 newState) -{ - gUnknown_203B25C->state = newState; - sub_801DD84(); - sub_801DED0(); -} - -void sub_801DD84(void) -{ - s32 index; - sub_8006518(gUnknown_203B25C->unkBC); - switch(gUnknown_203B25C->state) - { - case OPTIONS_MENU_INIT: - CreateOthersMenu(); - for(index = 0; index < 8; index++) - { - if(gUnknown_203B25C->unkAC[index] == 0) - { - gUnknown_203B25C->menuAction = gUnknown_203B25C->menuItems[index].menuAction; - break; - } - } - for(index = 0; index < 4; index++) - { - gUnknown_203B25C->unkBC[index] = gUnknown_80DBFB0; - } - gUnknown_203B25C->unkBC[0] = gUnknown_80DBFCC; - sub_8012CAC(&gUnknown_203B25C->unkBC[0], gUnknown_203B25C->menuItems); - gUnknown_203B25C->unkBC[0].unkC = 0xA; - break; - case OPTIONS_MENU_MAIN: - CreateOthersMenu(); - for(index = 0; index < 4; index++) - { - gUnknown_203B25C->unkBC[index] = gUnknown_80DBFB0; - } - gUnknown_203B25C->unkBC[0] = gUnknown_80DBFCC; - sub_8012CAC(&gUnknown_203B25C->unkBC[0], gUnknown_203B25C->menuItems); - gUnknown_203B25C->unkBC[0].unkC = 0xA; - break; - default: - for(index = 0; index < 4; index++) - { - gUnknown_203B25C->unkBC[index] = gUnknown_80DBFB0; - } - break; - } - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B25C->unkBC, TRUE, TRUE); -} - -void sub_801DED0(void) -{ - switch(gUnknown_203B25C->state) { - case OPTIONS_MENU_INIT: - case OPTIONS_MENU_MAIN: - gUnknown_203B25C->menu.unk0 = gOthers_MenuOption; - sub_8012D60(&gUnknown_203B25C->menu,gUnknown_203B25C->menuItems,0,gUnknown_203B25C->unkAC,gUnknown_203B25C->menuAction,0); - break; - case OPTIONS_MENU_PRE_HINT_SELECTION: - sub_801E3F0(0); - break; - case OPTIONS_MENU_HINT_SELECTION: - CreateHintSelectionScreen(1); - break; - case OPTIONS_MENU_DISPLAY_HINT: - CreateHintDisplayScreen(gUnknown_203B25C->chosenHintIndex); - break; - case 6: - // Load our current options? - gUnknown_203B25C->newOptions = *gGameOptionsRef; - sub_801E198(&gUnknown_203B25C->newOptions); - break; - case OPTIONS_MENU_CONFIRM_NEW_OPTIONS: - CreateChangeSettingsConfirmMenu(); - // Change settings? - sub_8014248(gUnknown_80DBFEC,0,4,gUnknown_203B25C->menuItems,0,4,0,0,0x20); - break; - } -} - -void CreateOthersMenu(void) -{ - s32 loopMax; - - MemoryFill16(gUnknown_203B25C->unkAC,0,sizeof(gUnknown_203B25C->unkAC)); - - loopMax = 0; - - gUnknown_203B25C->menuItems[loopMax].text = gOthers_GameOptions; - gUnknown_203B25C->menuItems[loopMax].menuAction = MENU_OPTION_GAMEOPTIONS; - loopMax += 1; - gUnknown_203B25C->menuItems[loopMax].text = gOthers_Hints; - gUnknown_203B25C->menuItems[loopMax].menuAction = MENU_OPTION_HINTS; - loopMax += 1; - gUnknown_203B25C->menuItems[loopMax].text = NULL; - gUnknown_203B25C->menuItems[loopMax].menuAction = MENU_OPTION_DEFAULT; -} - -void CreateChangeSettingsConfirmMenu(void) -{ - s32 loopMax; - - MemoryFill16(gUnknown_203B25C->unkAC,0,sizeof(gUnknown_203B25C->unkAC)); - loopMax = 0; - - gUnknown_203B25C->menuItems[loopMax].text = *gCommonYes; - gUnknown_203B25C->menuItems[loopMax].menuAction = MENU_OPTION_YES; - loopMax += 1; - gUnknown_203B25C->menuItems[loopMax].text = *gCommonNo; - gUnknown_203B25C->menuItems[loopMax].menuAction = MENU_OPTION_NO; - loopMax += 1; - gUnknown_203B25C->menuItems[loopMax].text = NULL; - gUnknown_203B25C->menuItems[loopMax].menuAction = MENU_OPTION_DEFAULT; -} - -void HandleOthersMenu(void) -{ - s32 menuAction; - - menuAction = 0; - if (sub_8012FD8(&gUnknown_203B25C->menu) == '\0') { - sub_8013114(&gUnknown_203B25C->menu,&menuAction); - gUnknown_203B25C->menuAction = menuAction; - } - switch(menuAction) - { - case MENU_OPTION_HINTS: - SetOptionsMenuState(OPTIONS_MENU_PRE_HINT_SELECTION); - break; - case MENU_OPTION_GAMEOPTIONS: - SetOptionsMenuState(6); - break; - case MENU_OPTION_DEFAULT: - SetOptionsMenuState(OPTIONS_MENU_EXIT); - break; - } -} - -void sub_801E088(void) -{ - switch(sub_801E474(TRUE)) - { - case 3: - case 4: - gUnknown_203B25C->chosenHintIndex = GetChosenHintIndex(); - SetOptionsMenuState(OPTIONS_MENU_DISPLAY_HINT); - break; - case 2: - sub_801E54C(); - SetOptionsMenuState(OPTIONS_MENU_MAIN); - break; - case 0: - case 1: - default: - break; - } -} - - -void sub_801E0E0(void) -{ - switch(HandleHintDisplayScreenInput()) - { - case 3: - case 2: - DestroyHintDisplayScreen(); - SetOptionsMenuState(OPTIONS_MENU_HINT_SELECTION); - break; - case 0: - case 1: - default: - break; - } -} - -void sub_801E0FC(void) -{ - switch(sub_801E218()) - { - case 2: - case 3: - sub_801E2C4(); - // Check to see if the options changed? - if (GameOptionsNotChange(&gUnknown_203B25C->newOptions)) { - SetOptionsMenuState(OPTIONS_MENU_MAIN); - } - else { - SetOptionsMenuState(OPTIONS_MENU_CONFIRM_NEW_OPTIONS); - } - break; - case 0: - case 1: - break; - } -} - -void HandleChangeSettingsMenu(void) -{ - s32 menuAction; - - if (sub_80144A4(&menuAction) == 0) - { - switch(menuAction) - { - case MENU_OPTION_YES: - // Save our option changes?? - *gGameOptionsRef = gUnknown_203B25C->newOptions; - SetWindowBGColor(); - sub_8099690(0); - SetOptionsMenuState(OPTIONS_MENU_MAIN); - break; - case MENU_OPTION_DEFAULT: - case MENU_OPTION_NO: - SetOptionsMenuState(OPTIONS_MENU_MAIN); - break; - } - } -} - - - - -// THIS IS A NEW FILE - - - -bool8 sub_801E198(GameOptions *optionsMenu) -{ - gUnknown_203B260 = MemoryAlloc(sizeof(struct unkStruct_203B260), 8); - gUnknown_203B260->optionsMenu = optionsMenu; - sub_801317C(&gUnknown_203B260->unk4); - gUnknown_203B260->unk44 = 0; - gUnknown_203B260->unk48 = &gUnknown_203B260->unk4C[0]; - sub_8006518(gUnknown_203B260->unk4C); - gUnknown_203B260->unk4C[gUnknown_203B260->unk44] = gUnknown_80DC03C; - sub_8012D08(gUnknown_203B260->unk48,1); - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B260->unk4C, TRUE, TRUE); - sub_8013818(&gUnknown_203B260->input,1,1,gUnknown_203B260->unk44); - nullsub_38(); - CreateOptionsMenu(); - return TRUE; -} - -u32 sub_801E218(void) -{ - bool32 flag; - - flag = FALSE; - - switch(sub_8012AE8()) - { - case INPUT_B_BUTTON: - PlayMenuSoundEffect(1); - return 2; - case INPUT_A_BUTTON: - PlayMenuSoundEffect(0); - return 3; - case INPUT_DPAD_LEFT: - if (gUnknown_203B260->input.menuIndex == 0) - { - if (gUnknown_203B260->optionsMenu->windowColor == WINDOW_COLOR_BLUE) { - gUnknown_203B260->optionsMenu->windowColor = WINDOW_COLOR_GREEN; - } - else { - gUnknown_203B260->optionsMenu->windowColor--; - } - PlayMenuSoundEffect(3); - flag = TRUE; - } - break; - case INPUT_DPAD_RIGHT: - if(gUnknown_203B260->input.menuIndex == 0) - { - if (gUnknown_203B260->optionsMenu->windowColor > WINDOW_COLOR_RED) { - gUnknown_203B260->optionsMenu->windowColor = WINDOW_COLOR_BLUE; - } - else - gUnknown_203B260->optionsMenu->windowColor++; - PlayMenuSoundEffect(3); - flag = TRUE; - } - break; - } - - // == 1 is needed for matching - if ((sub_80138B8(&gUnknown_203B260->input,1) != 0) || (flag == TRUE)) { - nullsub_38(); - CreateOptionsMenu(); - return 1; - } - else { - return 0; - } -} - -void sub_801E2C4(void) -{ - if(gUnknown_203B260 != NULL) - { - gUnknown_203B260->unk4C[gUnknown_203B260->unk44] = gUnknown_80DC020; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B260->unk4C, TRUE, TRUE); - MemoryFree(gUnknown_203B260); - gUnknown_203B260 = NULL; - } -} - - -void nullsub_38(void) -{ - -} - -void CreateOptionsMenu(void) -{ - u32 length; - u32 y; - - sub_8008C54(gUnknown_203B260->unk44); - sub_80073B8(gUnknown_203B260->unk44); - xxx_call_draw_string(0x10,0,gWindowBGTitle,gUnknown_203B260->unk44,0); - y = sub_8013800(&gUnknown_203B260->input,0); - xxx_call_draw_string(8,y,gUnknown_80DC064,gUnknown_203B260->unk44,0); - - switch(gUnknown_203B260->optionsMenu->windowColor) - { - case WINDOW_COLOR_BLUE: - length = sub_8008ED0(gWindowBGBlueString); - sub_80078A4(gUnknown_203B260->unk44,gUnknown_203B260->optionsMenu->windowColor * 0x28 + 0x50, - y + 0xA,length,COLOR_WHITE_2); - break; - case WINDOW_COLOR_RED: - length = sub_8008ED0(gWindowBGRedString); - sub_80078A4(gUnknown_203B260->unk44,gUnknown_203B260->optionsMenu->windowColor * 0x28 + 0x50, - y + 0xA,length,COLOR_WHITE_2); - break; - case WINDOW_COLOR_GREEN: - length = sub_8008ED0(gWindowBGGreenString); - sub_80078A4(gUnknown_203B260->unk44,gUnknown_203B260->optionsMenu->windowColor * 0x28 + 0x50, - y + 0xA,length,COLOR_WHITE_2); - break; - } - sub_80073E0(gUnknown_203B260->unk44); -} diff --git a/src/options_menu1.c b/src/options_menu1.c new file mode 100644 index 000000000..d61fce4cc --- /dev/null +++ b/src/options_menu1.c @@ -0,0 +1,310 @@ +#include "global.h" +#include "code_80130A8.h" +#include "code_8098BDC.h" +#include "common_strings.h" +#include "hints_menu1.h" +#include "hints_menu2.h" +#include "memory.h" +#include "menu_input.h" +#include "options_menu1.h" +#include "options_menu2.h" +#include "text1.h" +#include "text2.h" + +enum +{ + MENU_OPTION_DEFAULT = 1, + MENU_OPTION_HINTS, + MENU_OPTION_GAMEOPTIONS, + MENU_OPTION_YES, + MENU_OPTION_NO +}; + +enum OptionsMenuStates +{ + OPTIONS_MENU_INIT, + OPTIONS_MENU_MAIN, + OPTIONS_MENU_EXIT, + OPTIONS_MENU_PRE_HINT_SELECTION, + OPTIONS_MENU_HINT_SELECTION, + OPTIONS_MENU_DISPLAY_HINT, + OPTIONS_MENU_UNKNOWN_6, + OPTIONS_MENU_CONFIRM_NEW_OPTIONS, +}; + +static EWRAM_DATA_2 struct unkStruct_203B25C *sUnknown_203B25C = {0}; + +#include "data/options_menu1.h" + +static void CreateChangeSettingsConfirmMenu(void); +static void CreateOthersMenu(void); +static void HandleChangeSettingsMenu(void); +static void HandleOthersMenu(void); +static void SetOptionsMenuState(u32 newState); + +static void sub_801DD84(void); +static void sub_801DED0(void); +static void sub_801E088(void); +static void sub_801E0E0(void); +static void sub_801E0FC(void); + +bool8 sub_801DCC4(void) +{ + sUnknown_203B25C = MemoryAlloc(sizeof(struct unkStruct_203B25C), 8); + SetOptionsMenuState(OPTIONS_MENU_INIT); + return TRUE; +} + +u32 sub_801DCE8(void) +{ + switch (sUnknown_203B25C->state) { + case OPTIONS_MENU_EXIT: + return 3; + case OPTIONS_MENU_INIT: + case OPTIONS_MENU_MAIN: + HandleOthersMenu(); + break; + case OPTIONS_MENU_PRE_HINT_SELECTION: + case OPTIONS_MENU_HINT_SELECTION: + sub_801E088(); + break; + case OPTIONS_MENU_DISPLAY_HINT: + sub_801E0E0(); + break; + case 6: + sub_801E0FC(); + break; + case OPTIONS_MENU_CONFIRM_NEW_OPTIONS: + HandleChangeSettingsMenu(); + break; + default: + break; + } + + return 0; +} + +void sub_801DD50(void) +{ + if (sUnknown_203B25C != NULL) { + MemoryFree(sUnknown_203B25C); + sUnknown_203B25C = NULL; + } +} + +static void SetOptionsMenuState(u32 newState) +{ + sUnknown_203B25C->state = newState; + sub_801DD84(); + sub_801DED0(); +} + +static void sub_801DD84(void) +{ + s32 i; + + sub_8006518(sUnknown_203B25C->unkBC); + + switch (sUnknown_203B25C->state) { + case OPTIONS_MENU_INIT: + CreateOthersMenu(); + + for (i = 0; i < 8; i++) { + if (sUnknown_203B25C->unkAC[i] == 0) { + sUnknown_203B25C->menuAction = sUnknown_203B25C->menuItems[i].menuAction; + break; + } + } + + for(i = 0; i < 4; i++) + sUnknown_203B25C->unkBC[i] = sUnknown_80DBFB0; + + sUnknown_203B25C->unkBC[0] = sUnknown_80DBFCC; + sub_8012CAC(&sUnknown_203B25C->unkBC[0], sUnknown_203B25C->menuItems); + sUnknown_203B25C->unkBC[0].unkC = 10; + break; + case OPTIONS_MENU_MAIN: + CreateOthersMenu(); + + for (i = 0; i < 4; i++) + sUnknown_203B25C->unkBC[i] = sUnknown_80DBFB0; + + sUnknown_203B25C->unkBC[0] = sUnknown_80DBFCC; + sub_8012CAC(&sUnknown_203B25C->unkBC[0], sUnknown_203B25C->menuItems); + sUnknown_203B25C->unkBC[0].unkC = 10; + break; + default: + for (i = 0; i < 4; i++) + sUnknown_203B25C->unkBC[i] = sUnknown_80DBFB0; + break; + } + + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B25C->unkBC, TRUE, TRUE); +} + +static void sub_801DED0(void) +{ + switch (sUnknown_203B25C->state) { + case OPTIONS_MENU_INIT: + case OPTIONS_MENU_MAIN: + sUnknown_203B25C->menu.unk0 = sOthers; + sub_8012D60(&sUnknown_203B25C->menu, sUnknown_203B25C->menuItems, 0, sUnknown_203B25C->unkAC, sUnknown_203B25C->menuAction, 0); + break; + case OPTIONS_MENU_PRE_HINT_SELECTION: + sub_801E3F0(0); + break; + case OPTIONS_MENU_HINT_SELECTION: + CreateHintSelectionScreen(1); + break; + case OPTIONS_MENU_DISPLAY_HINT: + CreateHintDisplayScreen(sUnknown_203B25C->chosenHintIndex); + break; + case 6: + // Load our current options? + sUnknown_203B25C->newOptions = *gGameOptionsRef; + sub_801E198(&sUnknown_203B25C->newOptions); + break; + case OPTIONS_MENU_CONFIRM_NEW_OPTIONS: + CreateChangeSettingsConfirmMenu(); + sub_8014248(sChangeSettingsPrompt, 0, 4, sUnknown_203B25C->menuItems, 0, 4, 0, 0, 32); + break; + } +} + +static void CreateOthersMenu(void) +{ + s32 loopMax; + + MemoryFill16(sUnknown_203B25C->unkAC, 0, sizeof(sUnknown_203B25C->unkAC)); + loopMax = 0; + + sUnknown_203B25C->menuItems[loopMax].text = sGameOptions; + sUnknown_203B25C->menuItems[loopMax].menuAction = MENU_OPTION_GAMEOPTIONS; + + loopMax++; + sUnknown_203B25C->menuItems[loopMax].text = sHints; + sUnknown_203B25C->menuItems[loopMax].menuAction = MENU_OPTION_HINTS; + + loopMax++; + sUnknown_203B25C->menuItems[loopMax].text = NULL; + sUnknown_203B25C->menuItems[loopMax].menuAction = MENU_OPTION_DEFAULT; +} + +static void CreateChangeSettingsConfirmMenu(void) +{ + s32 loopMax; + + MemoryFill16(sUnknown_203B25C->unkAC, 0, sizeof(sUnknown_203B25C->unkAC)); + loopMax = 0; + + sUnknown_203B25C->menuItems[loopMax].text = gCommonYes[0]; + sUnknown_203B25C->menuItems[loopMax].menuAction = MENU_OPTION_YES; + + loopMax++; + sUnknown_203B25C->menuItems[loopMax].text = gCommonNo[0]; + sUnknown_203B25C->menuItems[loopMax].menuAction = MENU_OPTION_NO; + + loopMax++; + sUnknown_203B25C->menuItems[loopMax].text = NULL; + sUnknown_203B25C->menuItems[loopMax].menuAction = MENU_OPTION_DEFAULT; +} + +static void HandleOthersMenu(void) +{ + s32 menuAction; + + menuAction = 0; + + if (sub_8012FD8(&sUnknown_203B25C->menu) == 0) { + sub_8013114(&sUnknown_203B25C->menu, &menuAction); + sUnknown_203B25C->menuAction = menuAction; + } + + switch (menuAction) { + case MENU_OPTION_HINTS: + SetOptionsMenuState(OPTIONS_MENU_PRE_HINT_SELECTION); + break; + case MENU_OPTION_GAMEOPTIONS: + SetOptionsMenuState(6); + break; + case MENU_OPTION_DEFAULT: + SetOptionsMenuState(OPTIONS_MENU_EXIT); + break; + } +} + +static void sub_801E088(void) +{ + switch (sub_801E474(TRUE)) { + case 3: + case 4: + sUnknown_203B25C->chosenHintIndex = GetChosenHintIndex(); + SetOptionsMenuState(OPTIONS_MENU_DISPLAY_HINT); + break; + case 2: + sub_801E54C(); + SetOptionsMenuState(OPTIONS_MENU_MAIN); + break; + case 0: + case 1: + default: + break; + } +} + +static void sub_801E0E0(void) +{ + switch (HandleHintDisplayScreenInput()) { + case 3: + case 2: + DestroyHintDisplayScreen(); + SetOptionsMenuState(OPTIONS_MENU_HINT_SELECTION); + break; + case 0: + case 1: + default: + break; + } +} + +static void sub_801E0FC(void) +{ + switch (sub_801E218()) { + case 2: + case 3: + sub_801E2C4(); + + // Check to see if the options changed? + if (GameOptionsNotChange(&sUnknown_203B25C->newOptions)) + SetOptionsMenuState(OPTIONS_MENU_MAIN); + else + SetOptionsMenuState(OPTIONS_MENU_CONFIRM_NEW_OPTIONS); + break; + case 0: + case 1: + break; + } +} + +static void HandleChangeSettingsMenu(void) +{ + s32 menuAction; + + if (sub_80144A4(&menuAction)) + return; + + switch (menuAction) { + case MENU_OPTION_YES: + // Save our option changes?? + *gGameOptionsRef = sUnknown_203B25C->newOptions; + SetWindowBGColor(); + sub_8099690(0); + SetOptionsMenuState(OPTIONS_MENU_MAIN); + break; + case MENU_OPTION_DEFAULT: + case MENU_OPTION_NO: + SetOptionsMenuState(OPTIONS_MENU_MAIN); + break; + } +} \ No newline at end of file diff --git a/src/options_menu2.c b/src/options_menu2.c new file mode 100644 index 000000000..8056d28c8 --- /dev/null +++ b/src/options_menu2.c @@ -0,0 +1,125 @@ +#include "global.h" +#include "code_80118A4.h" +#include "constants/colors.h" +#include "constants/input.h" +#include "memory.h" +#include "menu_input.h" +#include "options_menu2.h" +#include "text1.h" +#include "text2.h" + +static EWRAM_DATA_2 struct unkStruct_203B260 *sUnknown_203B260 = {0}; + +#include "data/options_menu2.h" + +static void CreateOptionsMenu(void); +static void nullsub_38(void); + +bool8 sub_801E198(GameOptions *optionsMenu) +{ + sUnknown_203B260 = MemoryAlloc(sizeof(struct unkStruct_203B260), 8); + sUnknown_203B260->optionsMenu = optionsMenu; + sub_801317C(&sUnknown_203B260->unk4); + sUnknown_203B260->unk44 = 0; + sUnknown_203B260->unk48 = &sUnknown_203B260->unk4C[0]; + sub_8006518(sUnknown_203B260->unk4C); + sUnknown_203B260->unk4C[sUnknown_203B260->unk44] = sUnknown_80DC03C; + sub_8012D08(sUnknown_203B260->unk48, 1); + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B260->unk4C, TRUE, TRUE); + sub_8013818(&sUnknown_203B260->input, 1, 1, sUnknown_203B260->unk44); + nullsub_38(); + CreateOptionsMenu(); + return TRUE; +} + +u32 sub_801E218(void) +{ + bool32 flag; + + flag = FALSE; + + switch (sub_8012AE8()) { + case INPUT_B_BUTTON: + PlayMenuSoundEffect(1); + return 2; + case INPUT_A_BUTTON: + PlayMenuSoundEffect(0); + return 3; + case INPUT_DPAD_LEFT: + if (sUnknown_203B260->input.menuIndex == 0) { + if (sUnknown_203B260->optionsMenu->windowColor == WINDOW_COLOR_BLUE) + sUnknown_203B260->optionsMenu->windowColor = WINDOW_COLOR_GREEN; + else + sUnknown_203B260->optionsMenu->windowColor--; + + PlayMenuSoundEffect(3); + flag = TRUE; + } + break; + case INPUT_DPAD_RIGHT: + if (sUnknown_203B260->input.menuIndex == 0) { + if (sUnknown_203B260->optionsMenu->windowColor > WINDOW_COLOR_RED) + sUnknown_203B260->optionsMenu->windowColor = WINDOW_COLOR_BLUE; + else + sUnknown_203B260->optionsMenu->windowColor++; + + PlayMenuSoundEffect(3); + flag = TRUE; + } + break; + } + + // == 1 is needed for matching + if (sub_80138B8(&sUnknown_203B260->input, 1) != 0 || flag == TRUE) { + nullsub_38(); + CreateOptionsMenu(); + return 1; + } + return 0; +} + +void sub_801E2C4(void) +{ + if (sUnknown_203B260 != NULL) { + sUnknown_203B260->unk4C[sUnknown_203B260->unk44] = sUnknown_80DC020; + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B260->unk4C, TRUE, TRUE); + MemoryFree(sUnknown_203B260); + sUnknown_203B260 = NULL; + } +} + +static void nullsub_38(void) +{ +} + +static void CreateOptionsMenu(void) +{ + u32 length; + u32 y; + + sub_8008C54(sUnknown_203B260->unk44); + sub_80073B8(sUnknown_203B260->unk44); + xxx_call_draw_string(16, 0, sGameOptions,sUnknown_203B260->unk44, 0); + + y = sub_8013800(&sUnknown_203B260->input, 0); + xxx_call_draw_string(8, y, sUnknown_80DC064, sUnknown_203B260->unk44, 0); + + switch (sUnknown_203B260->optionsMenu->windowColor) { + case WINDOW_COLOR_BLUE: + length = sub_8008ED0(sBlue); + sub_80078A4(sUnknown_203B260->unk44, (sUnknown_203B260->optionsMenu->windowColor * 40) + 80, y + 10, length, COLOR_WHITE_2); + break; + case WINDOW_COLOR_RED: + length = sub_8008ED0(sRed); + sub_80078A4(sUnknown_203B260->unk44, (sUnknown_203B260->optionsMenu->windowColor * 40) + 80, y + 10, length, COLOR_WHITE_2); + break; + case WINDOW_COLOR_GREEN: + length = sub_8008ED0(sGreen); + sub_80078A4(sUnknown_203B260->unk44, (sUnknown_203B260->optionsMenu->windowColor * 40) + 80, y + 10, length, COLOR_WHITE_2); + break; + } + + sub_80073E0(sUnknown_203B260->unk44); +} \ No newline at end of file diff --git a/src/personality_test.c b/src/personality_test.c index 1aebb3e79..734c7b434 100644 --- a/src/personality_test.c +++ b/src/personality_test.c @@ -52,8 +52,6 @@ extern void RedrawPartnerSelectionMenu(void); extern u32 sub_80095E4(s16, u32); -extern GameOptions *gGameOptionsRef; - extern const char gStarterReveal[]; extern u8 gAvailablePokemonNames[0x50]; diff --git a/src/pokemon_news.c b/src/pokemon_news.c index 49d2997d0..f7c75e478 100644 --- a/src/pokemon_news.c +++ b/src/pokemon_news.c @@ -11,6 +11,7 @@ #include "code_80130A8.h" #include "code_80118A4.h" #include "code_803B050.h" +#include "game_options.h" struct unkStruct_203B2CC { @@ -49,7 +50,6 @@ struct unkStruct_203B2D8 u8 unkA0[4]; }; extern struct unkStruct_203B2D8 *gUnknown_203B2D8; -extern GameOptions *gGameOptionsRef; const UnkTextStruct2 gUnknown_80DFBD0 = { diff --git a/src/save.c b/src/save.c index 341b673b0..40b882dfe 100644 --- a/src/save.c +++ b/src/save.c @@ -15,7 +15,6 @@ EWRAM_DATA_2 u32 gUnknown_203B17C = {0}; EWRAM_DATA_2 char *gUnknown_203B180 = {0}; EWRAM_DATA_2 struct UnkStruct_203B184 *gUnknown_203B184 = {0}; -extern GameOptions *gGameOptionsRef; // size: 0x800 struct unk_struct From 63687bd7a5297e98a7db192236b5a1c27ee57dd3 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sat, 23 Sep 2023 04:20:16 -0400 Subject: [PATCH 35/47] Kecleon common_strings --- data/common_strings.s | 752 ------------------ data/data_80F59C8.s | 6 +- include/common_strings.h | 11 +- .../constants/common_strings_kecleon_bros.h | 40 + src/common_strings.c | 3 +- src/data/common_strings_felicity_bank.h | 45 +- src/data/common_strings_kangaskhan_storage.h | 15 +- src/data/common_strings_kecleon_bros.h | 656 +++++++++++++++ src/kecleon_bros1.c | 90 +-- 9 files changed, 789 insertions(+), 829 deletions(-) create mode 100644 include/constants/common_strings_kecleon_bros.h create mode 100644 src/data/common_strings_kecleon_bros.h diff --git a/data/common_strings.s b/data/common_strings.s index a20ef86be..f8ab6a43e 100644 --- a/data/common_strings.s +++ b/data/common_strings.s @@ -2,758 +2,6 @@ .align 2,0 - .global gCommonKecleonBros -gCommonKecleonBros: @ 80D5EC8 - .4byte gUnknown_80D797C - .4byte gUnknown_80D7958 - .4byte gUnknown_80D7934 - .4byte gUnknown_80D78F8 - .4byte gUnknown_80D78CC - .4byte gUnknown_80D788C - .4byte gUnknown_80D785C - .4byte gUnknown_80D7830 - .4byte gUnknown_80D780C - .4byte gUnknown_80D77C0 - .4byte gUnknown_80D776C - .4byte gUnknown_80D7740 - .4byte gUnknown_80D76D4 - .4byte gUnknown_80D76A8 - .4byte gUnknown_80D7640 - .4byte gUnknown_80D7610 - .4byte gUnknown_80D75E0 - .4byte gUnknown_80D75AC - .4byte gUnknown_80D7560 - .4byte gUnknown_80D7524 - .4byte gUnknown_80D74DC - .4byte gUnknown_80D7480 - .4byte gUnknown_80D72B8 - .4byte gUnknown_80D72A0 - .4byte gUnknown_80D7270 - .4byte gUnknown_80D7250 - .4byte gUnknown_80D7228 - .4byte gUnknown_80D7204 - .4byte gUnknown_80D71CC - .4byte gUnknown_80D71B0 - .4byte gUnknown_80D7184 - .4byte gUnknown_80D7154 - .4byte gUnknown_80D7108 - .4byte gUnknown_80D70B4 - .4byte gUnknown_80D7090 - .4byte gUnknown_80D7064 - .4byte gUnknown_80D7038 - .4byte gUnknown_80D6FD4 - .4byte gUnknown_80D6F8C - .4byte gUnknown_80D6F4C - .4byte gUnknown_80D6F18 - .4byte gUnknown_80D6EEC - .4byte gUnknown_80D6EA4 - .4byte gUnknown_80D6E78 - .4byte gUnknown_80D6E30 - .4byte gUnknown_80D6D98 - .4byte gUnknown_80D6D5C - .4byte gUnknown_80D6D38 - .4byte gUnknown_80D6D08 - .4byte gUnknown_80D6CB8 - .4byte gUnknown_80D6C90 - .4byte gUnknown_80D6C48 - .4byte gUnknown_80D6C1C - .4byte gUnknown_80D7830 - .4byte gUnknown_80D6BF4 - .4byte gUnknown_80D6BA0 - .4byte gUnknown_80D6B50 - .4byte gUnknown_80D6B18 - .4byte gUnknown_80D6AAC - .4byte gUnknown_80D6A74 - .4byte gUnknown_80D6A04 - .4byte gUnknown_80D69B0 - .4byte gUnknown_80D6980 - .4byte gUnknown_80D6938 - .4byte gUnknown_80D68E0 - .4byte gUnknown_80D68A4 - .4byte gUnknown_80D6868 - .4byte gUnknown_80D6818 - .4byte gUnknown_80D6564 - .4byte gUnknown_80D6544 - .4byte gUnknown_80D652C - .4byte gUnknown_80D6508 - .4byte gUnknown_80D64E8 - .4byte gUnknown_80D64C0 - .4byte gUnknown_80D6494 - .4byte gUnknown_80D6478 - .4byte gUnknown_80D6450 - .4byte gUnknown_80D6420 - .4byte gUnknown_80D63E8 - .4byte gUnknown_80D6394 - .4byte gUnknown_80D6364 - .4byte gUnknown_80D6338 - .4byte gUnknown_80D630C - .4byte gUnknown_80D62B0 - .4byte gUnknown_80D627C - .4byte gUnknown_80D6250 - .4byte gUnknown_80D6204 - .4byte gUnknown_80D61D4 - .4byte gUnknown_80D61B0 - .4byte gUnknown_80D6168 - .4byte gUnknown_80D6128 - .4byte gUnknown_80D6038 - - .global gUnknown_80D6038 -gUnknown_80D6038: - .string " Zzz... Reep reep...\n" - .string "Wonder Orbs are convenient...{EXTRA_MSG}" - .string " Zzzzzz...\n" - .string "They disappear after one use...{EXTRA_MSG}" - .string " Zzz... And moves...\n" - .string "They are ultimate...{EXTRA_MSG}" - .string " Zzz... Eep...\n" - .string "Learn moves with Technical Machines...{EXTRA_MSG}" - .string " Zzz...\n" - .string "My good wares...\n" - .string "Come buy... Reep...\0" - .align 2, 0 - - .global gUnknown_80D6128 -gUnknown_80D6128: - .string " Zzz... Eep? No{COMMA} no...{WAIT_PRESS}\n" - .string "You cannot hold any more money...\0" - .align 2, 0 - - .global gUnknown_80D6168 -gUnknown_80D6168: - .string " Zzz... Hunh? Wha--? Whoa!{WAIT_PRESS}\n" - .string "I... I can{APOSTROPHE}t accept anything like that!\0" - .align 2, 0 - - .global gUnknown_80D61B0 -gUnknown_80D61B0: - .string " Reep...? Eep!{WAIT_PRESS}\n" - .string "Not enough money!\0" - .align 2, 0 - - .global gUnknown_80D61D4 -gUnknown_80D61D4: - .string " Zzz... Uh-oh...{WAIT_PRESS}\n" - .string "All gone!\n" - .string "I am sold out...\0" - .align 2, 0 - - .global gUnknown_80D6204 -gUnknown_80D6204: - .string " Zzz... Hunh? Oh...{WAIT_PRESS}\n" - .string "Reep... No room... Reep...\n" - .string "No room for my wares...\0" - .align 2, 0 - - .global gUnknown_80D6250 -gUnknown_80D6250: - .string " Zzzzzz... Oh?{WAIT_PRESS}\n" - .string "You{APOSTROPHE}ve got nothing...\0" - .align 2, 0 - - .global gUnknown_80D627C -gUnknown_80D627C: - .string " Zzz... Oh...?{WAIT_PRESS}\n" - .string "You have nothing to sell...\n" - .string "Hunh?\0" - .align 2, 0 - - .global gUnknown_80D62B0 -gUnknown_80D62B0: - .string " Eep...? Zzz...\n" - .string "You have too much money!{EXTRA_MSG}" - .string " Zzz... Eh?\n" - .string "You can{APOSTROPHE}t hold any more money...\0" - .align 2, 0 - - .global gUnknown_80D630C -gUnknown_80D630C: - .string " Reep eep! Oh?{WAIT_PRESS}\n" - .string "Eep...?\n" - .string "You have no money?\0" - .align 2, 0 - - .global gUnknown_80D6338 -gUnknown_80D6338: - .string " ...{WAIT_PRESS}Zzz...\n" - .string "I am all sold out... Sorry...\0" - .align 2, 0 - - .global gUnknown_80D6364 -gUnknown_80D6364: - .string " Fine... Reep reep...\n" - .string "Done deal!\n" - .string "Thank you...\0" - .align 2, 0 - - .global gUnknown_80D6394 -gUnknown_80D6394: - .string " Zzz... Reep{COMMA} what...?\n" - .string "For all that I can buy{COMMA} I will pay\n" - .string "{COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}... OK?\0" - .align 2, 0 - - .global gUnknown_80D63E8 -gUnknown_80D63E8: - .string " Zzzzzz... Zzzzzz...?\n" - .string "{COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}?\n" - .string "Is {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE} OK?\0" - .align 2, 0 - - .global gUnknown_80D6420 -gUnknown_80D6420: - .string " Reep reep... Eep...\n" - .string "Anything else for sale?\0" - .align 2, 0 - - .global gUnknown_80D6450 -gUnknown_80D6450: - .string " Zzz... Eep...?\n" - .string "What will you sell...?\0" - .align 2, 0 - - .global gUnknown_80D6478 -gUnknown_80D6478: - .string " Zzz... Reep!\n" - .string "Thank you...\0" - .align 2, 0 - - .global gUnknown_80D6494 -gUnknown_80D6494: - .string " Zzzzzz...\n" - .string "{COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1} is {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}...\n" - .string "OK?\0" - .align 2, 0 - - .global gUnknown_80D64C0 -gUnknown_80D64C0: - .string " Anything? Zzz...\n" - .string "Buying anything else?\0" - .align 2, 0 - - .global gUnknown_80D64E8 -gUnknown_80D64E8: - .string " Ah... Zzz...\n" - .string "My merchandise...\0" - .align 2, 0 - - .global gUnknown_80D6508 -gUnknown_80D6508: - .string " Thank... Reep eep...\n" - .string "Come again...\0" - .align 2, 0 - - .global gUnknown_80D652C -gUnknown_80D652C: - .string " Reep...\n" - .string "Anything else?\0" - .align 2, 0 - - .global gUnknown_80D6544 -gUnknown_80D6544: - .string " Zzzzzz...\n" - .string "This is...my shop...\0" - .align 2, 0 - - .global gUnknown_80D6564 -gUnknown_80D6564: - .string " Wonder Orbs are very{COMMA}\n" - .string "very convenient〜♪{EXTRA_MSG}" - .string " However{COMMA} they disappear\n" - .string "after one use...{WAIT_PRESS}\n" - .string "But they are useful in a pinch!{EXTRA_MSG}" - .string " Use them cleverly{COMMA} and your\n" - .string "adventures will be made much easier〜♪{EXTRA_MSG}" - .string " And moves...{WAIT_PRESS}\n" - .string "They are the ultimate power!{EXTRA_MSG}" - .string " Smash rocks!{WAIT_PRESS} Fly!{WAIT_PRESS}\n" - .string "There are many kinds of moves{COMMA} all of\n" - .string "them dynamic{COMMA} yet elegant!{EXTRA_MSG}" - .string " There are even moves of\n" - .string "obscure rarity...{WAIT_PRESS}\n" - .string "Simply gorgeous{COMMA} they are!{EXTRA_MSG}" - .string " Now{COMMA} we have these moves!{WAIT_PRESS}\n" - .string "They can be learned using our Technical\n" - .string "Machines{COMMA} or TMs for short!{EXTRA_MSG}" - .string " You see?\n" - .string "Isn{APOSTROPHE}t it exciting? Even dreamy?{EXTRA_MSG}" - .string " Why{COMMA} it gets me so excited{COMMA}\n" - .string "my color has turned a rosy tint!{EXTRA_MSG}" - .string " I do hope you will shop\n" - .string "with us--me and my brother next to\n" - .string "me!\0" - .align 2, 0 - - .global gUnknown_80D6818 -gUnknown_80D6818: - .string " Oh{COMMA} no{COMMA} no!{WAIT_PRESS}\n" - .string "My friend{COMMA} you cannot add to your money!\n" - .string "I cannot do this.\0" - .align 2, 0 - - .global gUnknown_80D6868 -gUnknown_80D6868: - .string " Whoa{COMMA} whoa!{WAIT_PRESS}\n" - .string "I... I can{APOSTROPHE}t accept anything like that!\0" - .align 2, 0 - - .global gUnknown_80D68A4 -gUnknown_80D68A4: - .string " Eep! Oh{COMMA} dear!{WAIT_PRESS}\n" - .string "You{APOSTROPHE}re short on money{COMMA} my friend!\0" - .align 2, 0 - - .global gUnknown_80D68E0 -gUnknown_80D68E0: - .string " Oh? Uh-oh!{WAIT_PRESS}\n" - .string "My shelves are bare of wares!{EXTRA_MSG}" - .string " I am completely sold out{COMMA}\n" - .string "my friend!\0" - .align 2, 0 - - .global gUnknown_80D6938 -gUnknown_80D6938: - .string " Oh{COMMA} dear me!{WAIT_PRESS}\n" - .string "My friend{COMMA} you{APOSTROPHE}ve run out of space for\n" - .string "my wares!\0" - .align 2, 0 - - .global gUnknown_80D6980 -gUnknown_80D6980: - .string " Oh?{WAIT_PRESS}\n" - .string "My friend{COMMA} you seem to have nothing?\0" - .align 2, 0 - - .global gUnknown_80D69B0 -gUnknown_80D69B0: - .string " Oh{COMMA} oh{COMMA} oh?{WAIT_PRESS}\n" - .string "My friend{COMMA} you seem to not have anything\n" - .string "that you can sell?\0" - .align 2, 0 - - .global gUnknown_80D6A04 -gUnknown_80D6A04: - .string " Oh{COMMA} my{COMMA} my!\n" - .string "My friend{COMMA} you have too much money!{EXTRA_MSG}" - .string " You can{APOSTROPHE}t carry any more\n" - .string "money than you have now.\0" - .align 2, 0 - - .global gUnknown_80D6A74 -gUnknown_80D6A74: - .string " Oh?{WAIT_PRESS}\n" - .string "My friend{COMMA} you seem not to have\n" - .string "enough money?\0" - .align 2, 0 - - .global gUnknown_80D6AAC -gUnknown_80D6AAC: - .string " ...{WAIT_PRESS}I am all out of wares...\n" - .string "I am so sorry{COMMA} my friend...{EXTRA_MSG}" - .string " Tomorrow!\n" - .string "Tomorrow I shall have more wares!\0" - .align 2, 0 - - .global gUnknown_80D6B18 -gUnknown_80D6B18: - .string " Fine{COMMA} fine{COMMA} we have a deal!\n" - .string "Thank you so much〜♪ \0" - .align 2, 0 - - .global gUnknown_80D6B50 -gUnknown_80D6B50: - .string " For all that I can buy{COMMA} I can\n" - .string "offer you {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" - .string "Is that acceptable?\0" - .align 2, 0 - - .global gUnknown_80D6BA0 -gUnknown_80D6BA0: - .string " {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}{COMMA} you say?\n" - .string "For that{COMMA} I can offer {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" - .string "Is that acceptable?\0" - .align 2, 0 - - .global gUnknown_80D6BF4 -gUnknown_80D6BF4: - .string " Do you wish to sell me\n" - .string "anything else?\0" - .align 2, 0 - - .global gUnknown_80D6C1C -gUnknown_80D6C1C: - .string " Thank you so much〜♪\n" - .string "A very good choice!\0" - .align 2, 0 - - .global gUnknown_80D6C48 -gUnknown_80D6C48: - .string " {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}{COMMA} you say?\n" - .string "That will be {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" - .string "Is that acceptable?\0" - .align 2, 0 - - .global gUnknown_80D6C90 -gUnknown_80D6C90: - .string " Do you wish to purchase\n" - .string "anything else?\0" - .align 2, 0 - - .global gUnknown_80D6CB8 -gUnknown_80D6CB8: - .string " Ah{COMMA} very well!\n" - .string "Do examine my merchandise.\n" - .string "I have chosen it with pride〜♪ \0" - .align 2, 0 - - .global gUnknown_80D6D08 -gUnknown_80D6D08: - .string " Thank you so much!\n" - .string "Please do visit again〜♪ \0" - .align 2, 0 - - .global gUnknown_80D6D38 -gUnknown_80D6D38: - .string " May I assist you in any\n" - .string "other way?\0" - .align 2, 0 - - .global gUnknown_80D6D5C -gUnknown_80D6D5C: - .string " Welcome to Kecleon Wares!\n" - .string "The shop for Orbs and TMs〜♪ \0" - .align 2, 0 - - .global gUnknown_80D6D98 -gUnknown_80D6D98: - .string " Zzzzzz...\n" - .string "I sell items...{EXTRA_MSG}" - .string " Items... Meep meep...\n" - .string "Are useful in dungeons...{EXTRA_MSG}" - .string " Use... Zzz... Huh...?\n" - .string "Your imagination...and be clever...\n" - .string "With them...\0" - .align 2, 0 - - .global gUnknown_80D6E30 -gUnknown_80D6E30: - .string " Zzz... Hunh{COMMA} what...?{WAIT_PRESS}\n" - .string "Zzz... You can{APOSTROPHE}t hold any more money...\0" - .align 2, 0 - - .global gUnknown_80D6E78 -gUnknown_80D6E78: - .string " Zzz... Whoa...{WAIT_PRESS}\n" - .string "I... I can{APOSTROPHE}t take that!\0" - .align 2, 0 - - .global gUnknown_80D6EA4 -gUnknown_80D6EA4: - .string " Zzz... Huh{COMMA} my...!{WAIT_PRESS}\n" - .string "Meep... Meep...\n" - .string "You don{APOSTROPHE}t have enough money!\0" - .align 2, 0 - - .global gUnknown_80D6EEC -gUnknown_80D6EEC: - .string " Zzz... Uh-oh?!{WAIT_PRESS}\n" - .string "Eep!\n" - .string "Sold out! All gone!\0" - .align 2, 0 - - .global gUnknown_80D6F18 -gUnknown_80D6F18: - .string " Zzz... Oh{COMMA} my!{WAIT_PRESS}\n" - .string "Meep... You have no space...\0" - .align 2, 0 - - .global gUnknown_80D6F4C -gUnknown_80D6F4C: - .string " Zzz... Eep...?{WAIT_PRESS}\n" - .string "Meep... You don{APOSTROPHE}t seem to have\n" - .string "anything...?\0" - .align 2, 0 - - .global gUnknown_80D6F8C -gUnknown_80D6F8C: - .string " Zzz... Huh?{WAIT_PRESS}\n" - .string "Meep meep...\n" - .string "You don{APOSTROPHE}t seem to have anything to sell?\0" - .align 2, 0 - - .global gUnknown_80D6FD4 -gUnknown_80D6FD4: - .string " Zzz... Oh{COMMA} my!\n" - .string "You have so much money...!{EXTRA_MSG}" - .string " Zzz... Meep...\n" - .string "You can{APOSTROPHE}t carry any more money...\0" - .align 2, 0 - - .global gUnknown_80D7038 -gUnknown_80D7038: - .string " Hunh?{WAIT_PRESS}\n" - .string "Eep...?\n" - .string "You don{APOSTROPHE}t have money?\0" - .align 2, 0 - - .global gUnknown_80D7064 -gUnknown_80D7064: - .string " ...{WAIT_PRESS} ZZZ!\n" - .string "I{APOSTROPHE}m sold out... Forgive me...\0" - .align 2, 0 - - .global gUnknown_80D7090 -gUnknown_80D7090: - .string " Done... Meep! Deal!\n" - .string "Thank you...\0" - .align 2, 0 - - .global gUnknown_80D70B4 -gUnknown_80D70B4: - .string " Zzzzzz... Zzzzzz...?\n" - .string "I can pay you {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}\n" - .string "for everything I can buy... OK?\0" - .align 2, 0 - - .global gUnknown_80D7108 -gUnknown_80D7108: - .string " Zzzzzz... Zzzzzz...?\n" - .string "Selling that {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}...?\n" - .string "How about {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}?\0" - .align 2, 0 - - .global gUnknown_80D7154 -gUnknown_80D7154: - .string " Zzz... Meep...\n" - .string "Going to sell anything else?\0" - .align 2, 0 - - .global gUnknown_80D7184 -gUnknown_80D7184: - .string " Zzz... Zzz...?\n" - .string "You{APOSTROPHE}re selling what...?\0" - .align 2, 0 - - .global gUnknown_80D71B0 -gUnknown_80D71B0: - .string " Eep! Wah...?\n" - .string "Thank you...\0" - .align 2, 0 - - .global gUnknown_80D71CC -gUnknown_80D71CC: - .string " Zzz... Meep meep...\n" - .string "{COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}...?\n" - .string "{COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}{COMMA} OK?\0" - .align 2, 0 - - .global gUnknown_80D7204 -gUnknown_80D7204: - .string " Buy? Huh{COMMA} eep?\n" - .string "Anything else?\0" - .align 2, 0 - - .global gUnknown_80D7228 -gUnknown_80D7228: - .string " Zzz... Meep... Eep...\n" - .string "Look around...\0" - .align 2, 0 - - .global gUnknown_80D7250 -gUnknown_80D7250: - .string " Thank... Zzz...\n" - .string "Thank you...\0" - .align 2, 0 - - .global gUnknown_80D7270 -gUnknown_80D7270: - .string " Zzz... Meep...\n" - .string "Help you with anything else?\0" - .align 2, 0 - - .global gUnknown_80D72A0 -gUnknown_80D72A0: - .string " Zzzzzz...\n" - .string "Welcome...\0" - .align 2, 0 - - .global gUnknown_80D72B8 -gUnknown_80D72B8: - .string " We{COMMA} the {ARG_POKEMON_6}\n" - .string "Brothers{COMMA} have a passion for selling\n" - .string "items.{EXTRA_MSG}" - .string " Items are useful for your\n" - .string "dungeon adventures.{EXTRA_MSG}" - .string " Use your imagination and\n" - .string "discover innovative uses{COMMA} please.{EXTRA_MSG}" - .string " Ah{COMMA} yes.\n" - .string "If my shop sells out...{EXTRA_MSG}" - .string " New merchandise will\n" - .string "arrive the following day.{EXTRA_MSG}" - .string " Until then{COMMA} please go to\n" - .string "a dungeon and spend some time.\n" - .string "Please visit on your return〜♪{EXTRA_MSG}" - .string " Ah{COMMA} yes. The {ARG_POKEMON_6}\n" - .string "Shop is a nationwide chain.{EXTRA_MSG}" - .string " There are shops even in\n" - .string "dungeons.\n" - .string "Please do visit〜♪ \0" - .align 2, 0 - - .global gUnknown_80D7480 -gUnknown_80D7480: - .string " Oh{COMMA} my!{WAIT_PRESS}\n" - .string "You can{APOSTROPHE}t add any more to your money.\n" - .string "I can{APOSTROPHE}t complete this deal{COMMA} sorry.\0" - .align 2, 0 - - .global gUnknown_80D74DC -gUnknown_80D74DC: - .string " Oh{COMMA} whoa{COMMA} whoa!{WAIT_PRESS}\n" - .string "I... I couldn{APOSTROPHE}t possibly take that from you!\0" - .align 2, 0 - - .global gUnknown_80D7524 -gUnknown_80D7524: - .string " Oh{COMMA} my!{WAIT_PRESS}\n" - .string "Sorry{COMMA} but you don{APOSTROPHE}t have enough money!\0" - .align 2, 0 - - .global gUnknown_80D7560 -gUnknown_80D7560: - .string " Uh-oh?!{WAIT_PRESS}\n" - .string "That{APOSTROPHE}s it! No more merchandise!{EXTRA_MSG}" - .string " I{APOSTROPHE}m completely sold out!\0" - .align 2, 0 - - .global gUnknown_80D75AC -gUnknown_80D75AC: - .string " Oh{COMMA} my!{WAIT_PRESS}\n" - .string "You have no space for any more items!\0" - .align 2, 0 - - .global gUnknown_80D75E0 -gUnknown_80D75E0: - .string " Oh? Oh?{WAIT_PRESS}\n" - .string "You don{APOSTROPHE}t seem to have anything?\0" - .align 2, 0 - - .global gUnknown_80D7610 -gUnknown_80D7610: - .string " Oh? Oh?{WAIT_PRESS}\n" - .string "You seem to have nothing to sell?\0" - .align 2, 0 - - .global gUnknown_80D7640 -gUnknown_80D7640: - .string " Oh{COMMA} my goodness!\n" - .string "You{APOSTROPHE}re overflowing with money!{EXTRA_MSG}" - .string " You couldn{APOSTROPHE}t possibly carry\n" - .string "any more money! \0" - .align 2, 0 - - .global gUnknown_80D76A8 -gUnknown_80D76A8: - .string " Huh?{WAIT_PRESS}\n" - .string "You don{APOSTROPHE}t seem to have the money?\0" - .align 2, 0 - - .global gUnknown_80D76D4 -gUnknown_80D76D4: - .string " ...{WAIT_PRESS}I{APOSTROPHE}m sold out...\n" - .string "Please{COMMA} forgive me.{EXTRA_MSG}" - .string " I will have new merchandise\n" - .string "for you tomorrow{COMMA} I swear!\0" - .align 2, 0 - - .global gUnknown_80D7740 -gUnknown_80D7740: - .string " Good! Done deal!\n" - .string "Thank you so much〜♪ \0" - .align 2, 0 - - .global gUnknown_80D776C -gUnknown_80D776C: - .string " For everything I can buy{COMMA}\n" - .string "I can offer {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" - .string "Is that acceptable to you?\0" - .align 2, 0 - - .global gUnknown_80D77C0 -gUnknown_80D77C0: - .string " {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}?\n" - .string "I can offer you {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" - .string "Will you sell it for that price?\0" - .align 2, 0 - - .global gUnknown_80D780C -gUnknown_80D780C: - .string " Do you wish to sell\n" - .string "anything else?\0" - .align 2, 0 - - .global gUnknown_80D7830 -gUnknown_80D7830: - .string " Ah{COMMA} very well!\n" - .string "What do you wish to sell?\0" - .align 2, 0 - - .global gUnknown_80D785C -gUnknown_80D785C: - .string " Very well! Thank you〜♪\n" - .string "It is yours to take!\0" - .align 2, 0 - - .global gUnknown_80D788C -gUnknown_80D788C: - .string " {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}?\n" - .string "That will be {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" - .string "Is that to your liking?\0" - .align 2, 0 - - .global gUnknown_80D78CC -gUnknown_80D78CC: - .string " Do you wish to buy\n" - .string "anything else today?\0" - .align 2, 0 - - .global gUnknown_80D78F8 -gUnknown_80D78F8: - .string " Ah{COMMA} very well!\n" - .string "Feel free to examine my merchandise〜♪\0" - .align 2, 0 - - .global gUnknown_80D7934 -gUnknown_80D7934: - .string " Thank you!\n" - .string "Please call again〜♪ \0" - .align 2, 0 - - .global gUnknown_80D7958 -gUnknown_80D7958: - .string " May I help you with\n" - .string "anything else?\0" - .align 2, 0 - - .global gUnknown_80D797C -gUnknown_80D797C: - .string " Hello〜♪\n" - .string "Welcome to the {ARG_POKEMON_6} Shop〜♪ \0" - .align 2, 0 - - - - - - - - - - - - - - - .global gCommonWigglytuff gCommonWigglytuff: @ 80D79A4 (Friend Area Shop) .4byte gUnknown_80D883C diff --git a/data/data_80F59C8.s b/data/data_80F59C8.s index 109d3b95c..61bc97d60 100644 --- a/data/data_80F59C8.s +++ b/data/data_80F59C8.s @@ -11331,7 +11331,8 @@ gArticunoPostStoryPreFightDialogue_2: @ 81029B4 .global gUnknown_81029C0 gUnknown_81029C0: .string " Your arrival in this frozen\n" - .string "forest means only one thing...{EXTRA_MSG} You mean to challenge me!\0" + .string "forest means only one thing...{EXTRA_MSG}" + .string " You mean to challenge me!\0" .global gArticunoPostStoryPreFightDialogue_3 gArticunoPostStoryPreFightDialogue_3: @ 8102A18 @@ -11976,7 +11977,8 @@ gRayquazaPreFightDialogue_4: @ 81035D4 .global gUnknown_81035E0 gUnknown_81035E0: .string " Indeed I am.{WAIT_PRESS}\n" - .string "The sky is my domain.{EXTRA_MSG} Depart at once!\0" + .string "The sky is my domain.{EXTRA_MSG}" + .string " Depart at once!\0" .align 2,0 .global gRayquazaPreFightDialogue_5 diff --git a/include/common_strings.h b/include/common_strings.h index 35ca34150..d5e31a5ad 100644 --- a/include/common_strings.h +++ b/include/common_strings.h @@ -3,15 +3,8 @@ #include "constants/common_strings_felicity_bank.h" #include "constants/common_strings_kangaskhan_storage.h" +#include "constants/common_strings_kecleon_bros.h" -enum KecleonBrosMode -{ - KECLEON_BROS_MODE_ITEMS_AWAKE, - KECLEON_BROS_MODE_ITEMS_ASLEEP, - KECLEON_BROS_MODE_WARES_AWAKE, - KECLEON_BROS_MODE_WARES_ASLEEP, - KECLEON_BROS_MODE_COUNT -}; enum WigglytuffShopMode { WIGGLYTUFF_SHOP_MODE_AWAKE, @@ -60,7 +53,7 @@ extern const u8* const gCommonWithdrawPrompt[]; extern const u8* const gCommonFelicity[FEL_MODE_COUNT][FEL_DLG_MAX]; 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 gCommonKecleonBros[KECLEON_BROS_MODE_COUNT][KECLEON_DLG_MAX]; extern const u8* const gCommonWigglytuff[WIGGLYTUFF_SHOP_MODE_COUNT][20]; // 80D79A4 extern const u8* const gCommonGulpin[GULPIN_SHOP_MODE_COUNT][25]; // 80D8888 extern const u8* const gCommonMakuhita[MAKUHITA_DOJO_MODE_COUNT][10]; // 80D9FC8 diff --git a/include/constants/common_strings_kecleon_bros.h b/include/constants/common_strings_kecleon_bros.h new file mode 100644 index 000000000..d56eb0de9 --- /dev/null +++ b/include/constants/common_strings_kecleon_bros.h @@ -0,0 +1,40 @@ +#ifndef GUARD_COMMON_STRINGS_KECLEON_BROS_H +#define GUARD_COMMON_STRINGS_KECLEON_BROS_H + +enum KecleonBrosMode +{ + KECLEON_BROS_MODE_ITEMS_AWAKE, + KECLEON_BROS_MODE_ITEMS_ASLEEP, + KECLEON_BROS_MODE_WARES_AWAKE, + KECLEON_BROS_MODE_WARES_ASLEEP, + KECLEON_BROS_MODE_COUNT +}; +enum KecleonBrosDialogue +{ + KECLEON_DLG_00, + KECLEON_DLG_01, + KECLEON_DLG_02, + KECLEON_DLG_03, + KECLEON_DLG_04, + KECLEON_DLG_05, + KECLEON_DLG_06, + KECLEON_DLG_07, + KECLEON_DLG_08, + KECLEON_DLG_09, + KECLEON_DLG_10, + KECLEON_DLG_11, + KECLEON_DLG_12, + KECLEON_DLG_13, + KECLEON_DLG_14, + KECLEON_DLG_15, + KECLEON_DLG_16, + KECLEON_DLG_17, + KECLEON_DLG_18, + KECLEON_DLG_19, + KECLEON_DLG_20, + KECLEON_DLG_21, + KECLEON_DLG_22, + KECLEON_DLG_MAX +}; + +#endif // GUARD_COMMON_STRINGS_KECLEON_BROS_H \ No newline at end of file diff --git a/src/common_strings.c b/src/common_strings.c index 1efbb7d2e..b318b5b48 100644 --- a/src/common_strings.c +++ b/src/common_strings.c @@ -59,4 +59,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_kangaskhan_storage.h" \ No newline at end of file +#include "data/common_strings_kangaskhan_storage.h" +#include "data/common_strings_kecleon_bros.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 145a5b6b7..c7d7a27bc 100644 --- a/src/data/common_strings_felicity_bank.h +++ b/src/data/common_strings_felicity_bank.h @@ -72,15 +72,20 @@ ALIGNED(4) const u8* const gCommonFelicity[FEL_MODE_COUNT][FEL_DLG_MAX] = ALIGNED(4) static const u8 sUnknown_80D4A58[] = _( " Sssnore...\n" "Ah{COMMA} you wish to know how the bank\n" - "operates... Very well...{EXTRA_MSG} Zzz...\n" + "operates... Very well...{EXTRA_MSG}" + " Zzz...\n" "If you{APOSTROPHE}re defeated in a dungeon{COMMA}\n" - "you{APOSTROPHE}ll lose all your money. Did you know?{EXTRA_MSG} Purr...\n" + "you{APOSTROPHE}ll lose all your money. Did you know?{EXTRA_MSG}" + " Purr...\n" "But{COMMA} you{APOSTROPHE}ve nothing to fear if you leave\n" - "your money with Felicity Bank...{EXTRA_MSG} Meow... Even if you\n" + "your money with Felicity Bank...{EXTRA_MSG}" + " Meow... Even if you\n" "return defeated from a dungeon{COMMA} your\n" - "money will be safe with me...{EXTRA_MSG} Sssnore...\n" + "money will be safe with me...{EXTRA_MSG}" + " Sssnore...\n" "I assure you{COMMA} my bank will keep your\n" - "money safe...{EXTRA_MSG} Zzz...\n" + "money safe...{EXTRA_MSG}" + " Zzz...\n" "Simple{COMMA} isn{APOSTROPHE}t it...?"); ALIGNED(4) static const u8 sUnknown_80D4C14[] = _( @@ -89,12 +94,14 @@ ALIGNED(4) static const u8 sUnknown_80D4C14[] = _( "Here you are."); ALIGNED(4) static const u8 sUnknown_80D4C50[] = _( - " Fnarf? Hunh...?{EXTRA_MSG} Purr... I so do apologize{COMMA}\n" + " Fnarf? Hunh...?{EXTRA_MSG}" + " Purr... I so do apologize{COMMA}\n" "but you couldn{APOSTROPHE}t possibly carry any more\n" "money with you..."); ALIGNED(4) static const u8 sUnknown_80D4CC0[] = _( - " Fnarf? Meow...?{EXTRA_MSG} Purr...\n" + " Fnarf? Meow...?{EXTRA_MSG}" + " Purr...\n" "I so hate to disappoint{COMMA} but you have no\n" "money saved with me..."); @@ -110,12 +117,14 @@ ALIGNED(4) static const u8 sUnknown_80D4D44[] = _( ALIGNED(4) static const u8 sUnknown_80D4D8C[] = _( " Fnarf? Purr...\n" "Meow! All this money...{WAIT_PRESS}\n" - "Our safe is about to burst...{EXTRA_MSG} Purr...\n" + "Our safe is about to burst...{EXTRA_MSG}" + " Purr...\n" "I am so sorry to say{COMMA} but I can{APOSTROPHE}t accept\n" "any more of your money..."); ALIGNED(4) static const u8 sUnknown_80D4E28[] = _( - " Sssnore... Hmm?{EXTRA_MSG} Zzz...\n" + " Sssnore... Hmm?{EXTRA_MSG}" + " Zzz...\n" "I{APOSTROPHE}m so sorry to say{COMMA} but you appear not\n" "to have any money..."); @@ -150,14 +159,19 @@ ALIGNED(4) static const u8 sUnknown_80D4F94[] = _( ALIGNED(4) static const u8 sUnknown_80D4FC8[] = _( " Ah{COMMA} you wish to know how\n" - "the bank operates. Very well.{EXTRA_MSG} If you are defeated\n" + "the bank operates. Very well.{EXTRA_MSG}" + " If you are defeated\n" "in a dungeon{COMMA} you{APOSTROPHE}ll lose all your money.\n" - "Did you know that?{EXTRA_MSG} But you can avoid that!{WAIT_PRESS}\n" + "Did you know that?{EXTRA_MSG}" + " But you can avoid that!{WAIT_PRESS}\n" "You{APOSTROPHE}ve nothing to fear if you leave your\n" - "money with Felicity Bank.{EXTRA_MSG} Even if you return\n" + "money with Felicity Bank.{EXTRA_MSG}" + " Even if you return\n" "defeated from a dungeon{COMMA} your money will\n" - "be safe with me!{EXTRA_MSG} I assure you{COMMA} my bank\n" - "will keep your money safe.{EXTRA_MSG} Simple{COMMA} isn{APOSTROPHE}t it?"); + "be safe with me!{EXTRA_MSG}" + " I assure you{COMMA} my bank\n" + "will keep your money safe.{EXTRA_MSG}" + " Simple{COMMA} isn{APOSTROPHE}t it?"); ALIGNED(4) static const u8 sUnknown_80D5158[] = _( " Very well{COMMA} {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" @@ -182,7 +196,8 @@ ALIGNED(4) static const u8 sUnknown_80D5244[] = _( ALIGNED(4) static const u8 sUnknown_80D527C[] = _( " Meow! All this money!{WAIT_PRESS}\n" - "Our safe is about to burst!{EXTRA_MSG} I am so sorry to say{COMMA} but\n" + "Our safe is about to burst!{EXTRA_MSG}" + " I am so sorry to say{COMMA} but\n" "I can{APOSTROPHE}t accept any more of your money!"); ALIGNED(4) static const u8 sUnknown_80D52F8[] = _( diff --git a/src/data/common_strings_kangaskhan_storage.h b/src/data/common_strings_kangaskhan_storage.h index 60e2a11a6..fb395a03e 100644 --- a/src/data/common_strings_kangaskhan_storage.h +++ b/src/data/common_strings_kangaskhan_storage.h @@ -90,8 +90,10 @@ ALIGNED(4) const u8* const gCommonKangStorage[KANG_MODE_COUNT][KANG_DLG_MAX] = 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" + "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..."); @@ -185,11 +187,14 @@ ALIGNED(4) static const u8 sUnknown_80D5954[] = _( 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" + "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" + "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" + "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!"); diff --git a/src/data/common_strings_kecleon_bros.h b/src/data/common_strings_kecleon_bros.h new file mode 100644 index 000000000..4f520a878 --- /dev/null +++ b/src/data/common_strings_kecleon_bros.h @@ -0,0 +1,656 @@ +static const u8 gUnknown_80D6038[]; +static const u8 gUnknown_80D6128[]; +static const u8 gUnknown_80D6168[]; +static const u8 gUnknown_80D61B0[]; +static const u8 gUnknown_80D61D4[]; +static const u8 gUnknown_80D6204[]; +static const u8 gUnknown_80D6250[]; +static const u8 gUnknown_80D627C[]; +static const u8 gUnknown_80D62B0[]; +static const u8 gUnknown_80D630C[]; +static const u8 gUnknown_80D6338[]; +static const u8 gUnknown_80D6364[]; +static const u8 gUnknown_80D6394[]; +static const u8 gUnknown_80D63E8[]; +static const u8 gUnknown_80D6420[]; +static const u8 gUnknown_80D6450[]; +static const u8 gUnknown_80D6478[]; +static const u8 gUnknown_80D6494[]; +static const u8 gUnknown_80D64C0[]; +static const u8 gUnknown_80D64E8[]; +static const u8 gUnknown_80D6508[]; +static const u8 gUnknown_80D652C[]; +static const u8 gUnknown_80D6544[]; +static const u8 gUnknown_80D6564[]; +static const u8 gUnknown_80D6818[]; +static const u8 gUnknown_80D6868[]; +static const u8 gUnknown_80D68A4[]; +static const u8 gUnknown_80D68E0[]; +static const u8 gUnknown_80D6938[]; +static const u8 gUnknown_80D6980[]; +static const u8 gUnknown_80D69B0[]; +static const u8 gUnknown_80D6A04[]; +static const u8 gUnknown_80D6A74[]; +static const u8 gUnknown_80D6AAC[]; +static const u8 gUnknown_80D6B18[]; +static const u8 gUnknown_80D6B50[]; +static const u8 gUnknown_80D6BA0[]; +static const u8 gUnknown_80D6BF4[]; +static const u8 gUnknown_80D6C1C[]; +static const u8 gUnknown_80D6C48[]; +static const u8 gUnknown_80D6C90[]; +static const u8 gUnknown_80D6CB8[]; +static const u8 gUnknown_80D6D08[]; +static const u8 gUnknown_80D6D38[]; +static const u8 gUnknown_80D6D5C[]; +static const u8 gUnknown_80D6D98[]; +static const u8 gUnknown_80D6E30[]; +static const u8 gUnknown_80D6E78[]; +static const u8 gUnknown_80D6EA4[]; +static const u8 gUnknown_80D6EEC[]; +static const u8 gUnknown_80D6F18[]; +static const u8 gUnknown_80D6F4C[]; +static const u8 gUnknown_80D6F8C[]; +static const u8 gUnknown_80D6FD4[]; +static const u8 gUnknown_80D7038[]; +static const u8 gUnknown_80D7064[]; +static const u8 gUnknown_80D7090[]; +static const u8 gUnknown_80D70B4[]; +static const u8 gUnknown_80D7108[]; +static const u8 gUnknown_80D7154[]; +static const u8 gUnknown_80D7184[]; +static const u8 gUnknown_80D71B0[]; +static const u8 gUnknown_80D71CC[]; +static const u8 gUnknown_80D7204[]; +static const u8 gUnknown_80D7228[]; +static const u8 gUnknown_80D7250[]; +static const u8 gUnknown_80D7270[]; +static const u8 gUnknown_80D72A0[]; +static const u8 gUnknown_80D72B8[]; +static const u8 gUnknown_80D7480[]; +static const u8 gUnknown_80D74DC[]; +static const u8 gUnknown_80D7524[]; +static const u8 gUnknown_80D7560[]; +static const u8 gUnknown_80D75AC[]; +static const u8 gUnknown_80D75E0[]; +static const u8 gUnknown_80D7610[]; +static const u8 gUnknown_80D7640[]; +static const u8 gUnknown_80D76A8[]; +static const u8 gUnknown_80D76D4[]; +static const u8 gUnknown_80D7740[]; +static const u8 gUnknown_80D776C[]; +static const u8 gUnknown_80D77C0[]; +static const u8 gUnknown_80D780C[]; +static const u8 gUnknown_80D7830[]; +static const u8 gUnknown_80D785C[]; +static const u8 gUnknown_80D788C[]; +static const u8 gUnknown_80D78CC[]; +static const u8 gUnknown_80D78F8[]; +static const u8 gUnknown_80D7934[]; +static const u8 gUnknown_80D7958[]; +static const u8 gUnknown_80D797C[]; + +ALIGNED(4) const u8* const gCommonKecleonBros[KECLEON_BROS_MODE_COUNT][KECLEON_DLG_MAX] = +{ + [KECLEON_BROS_MODE_ITEMS_AWAKE] = { + [KECLEON_DLG_00] = gUnknown_80D797C, + [KECLEON_DLG_01] = gUnknown_80D7958, + [KECLEON_DLG_02] = gUnknown_80D7934, + [KECLEON_DLG_03] = gUnknown_80D78F8, + [KECLEON_DLG_04] = gUnknown_80D78CC, + [KECLEON_DLG_05] = gUnknown_80D788C, + [KECLEON_DLG_06] = gUnknown_80D785C, + [KECLEON_DLG_07] = gUnknown_80D7830, + [KECLEON_DLG_08] = gUnknown_80D780C, + [KECLEON_DLG_09] = gUnknown_80D77C0, + [KECLEON_DLG_10] = gUnknown_80D776C, + [KECLEON_DLG_11] = gUnknown_80D7740, + [KECLEON_DLG_12] = gUnknown_80D76D4, + [KECLEON_DLG_13] = gUnknown_80D76A8, + [KECLEON_DLG_14] = gUnknown_80D7640, + [KECLEON_DLG_15] = gUnknown_80D7610, + [KECLEON_DLG_16] = gUnknown_80D75E0, + [KECLEON_DLG_17] = gUnknown_80D75AC, + [KECLEON_DLG_18] = gUnknown_80D7560, + [KECLEON_DLG_19] = gUnknown_80D7524, + [KECLEON_DLG_20] = gUnknown_80D74DC, + [KECLEON_DLG_21] = gUnknown_80D7480, + [KECLEON_DLG_22] = gUnknown_80D72B8 + }, + [KECLEON_BROS_MODE_ITEMS_ASLEEP] = { + [KECLEON_DLG_00] = gUnknown_80D72A0, + [KECLEON_DLG_01] = gUnknown_80D7270, + [KECLEON_DLG_02] = gUnknown_80D7250, + [KECLEON_DLG_03] = gUnknown_80D7228, + [KECLEON_DLG_04] = gUnknown_80D7204, + [KECLEON_DLG_05] = gUnknown_80D71CC, + [KECLEON_DLG_06] = gUnknown_80D71B0, + [KECLEON_DLG_07] = gUnknown_80D7184, + [KECLEON_DLG_08] = gUnknown_80D7154, + [KECLEON_DLG_09] = gUnknown_80D7108, + [KECLEON_DLG_10] = gUnknown_80D70B4, + [KECLEON_DLG_11] = gUnknown_80D7090, + [KECLEON_DLG_12] = gUnknown_80D7064, + [KECLEON_DLG_13] = gUnknown_80D7038, + [KECLEON_DLG_14] = gUnknown_80D6FD4, + [KECLEON_DLG_15] = gUnknown_80D6F8C, + [KECLEON_DLG_16] = gUnknown_80D6F4C, + [KECLEON_DLG_17] = gUnknown_80D6F18, + [KECLEON_DLG_18] = gUnknown_80D6EEC, + [KECLEON_DLG_19] = gUnknown_80D6EA4, + [KECLEON_DLG_20] = gUnknown_80D6E78, + [KECLEON_DLG_21] = gUnknown_80D6E30, + [KECLEON_DLG_22] = gUnknown_80D6D98 + }, + [KECLEON_BROS_MODE_WARES_AWAKE] = { + [KECLEON_DLG_00] = gUnknown_80D6D5C, + [KECLEON_DLG_01] = gUnknown_80D6D38, + [KECLEON_DLG_02] = gUnknown_80D6D08, + [KECLEON_DLG_03] = gUnknown_80D6CB8, + [KECLEON_DLG_04] = gUnknown_80D6C90, + [KECLEON_DLG_05] = gUnknown_80D6C48, + [KECLEON_DLG_06] = gUnknown_80D6C1C, + [KECLEON_DLG_07] = gUnknown_80D7830, + [KECLEON_DLG_08] = gUnknown_80D6BF4, + [KECLEON_DLG_09] = gUnknown_80D6BA0, + [KECLEON_DLG_10] = gUnknown_80D6B50, + [KECLEON_DLG_11] = gUnknown_80D6B18, + [KECLEON_DLG_12] = gUnknown_80D6AAC, + [KECLEON_DLG_13] = gUnknown_80D6A74, + [KECLEON_DLG_14] = gUnknown_80D6A04, + [KECLEON_DLG_15] = gUnknown_80D69B0, + [KECLEON_DLG_16] = gUnknown_80D6980, + [KECLEON_DLG_17] = gUnknown_80D6938, + [KECLEON_DLG_18] = gUnknown_80D68E0, + [KECLEON_DLG_19] = gUnknown_80D68A4, + [KECLEON_DLG_20] = gUnknown_80D6868, + [KECLEON_DLG_21] = gUnknown_80D6818, + [KECLEON_DLG_22] = gUnknown_80D6564 + }, + [KECLEON_BROS_MODE_WARES_ASLEEP] = { + [KECLEON_DLG_00] = gUnknown_80D6544, + [KECLEON_DLG_01] = gUnknown_80D652C, + [KECLEON_DLG_02] = gUnknown_80D6508, + [KECLEON_DLG_03] = gUnknown_80D64E8, + [KECLEON_DLG_04] = gUnknown_80D64C0, + [KECLEON_DLG_05] = gUnknown_80D6494, + [KECLEON_DLG_06] = gUnknown_80D6478, + [KECLEON_DLG_07] = gUnknown_80D6450, + [KECLEON_DLG_08] = gUnknown_80D6420, + [KECLEON_DLG_09] = gUnknown_80D63E8, + [KECLEON_DLG_10] = gUnknown_80D6394, + [KECLEON_DLG_11] = gUnknown_80D6364, + [KECLEON_DLG_12] = gUnknown_80D6338, + [KECLEON_DLG_13] = gUnknown_80D630C, + [KECLEON_DLG_14] = gUnknown_80D62B0, + [KECLEON_DLG_15] = gUnknown_80D627C, + [KECLEON_DLG_16] = gUnknown_80D6250, + [KECLEON_DLG_17] = gUnknown_80D6204, + [KECLEON_DLG_18] = gUnknown_80D61D4, + [KECLEON_DLG_19] = gUnknown_80D61B0, + [KECLEON_DLG_20] = gUnknown_80D6168, + [KECLEON_DLG_21] = gUnknown_80D6128, + [KECLEON_DLG_22] = gUnknown_80D6038 + } +}; + +ALIGNED(4) static const u8 gUnknown_80D6038[] = _( + " Zzz... Reep reep...\n" + "Wonder Orbs are convenient...{EXTRA_MSG}" + " Zzzzzz...\n" + "They disappear after one use...{EXTRA_MSG}" + " Zzz... And moves...\n" + "They are ultimate...{EXTRA_MSG}" + " Zzz... Eep...\n" + "Learn moves with Technical Machines...{EXTRA_MSG}" + " Zzz...\n" + "My good wares...\n" + "Come buy... Reep..."); + +ALIGNED(4) static const u8 gUnknown_80D6128[] = _( + " Zzz... Eep? No{COMMA} no...{WAIT_PRESS}\n" + "You cannot hold any more money..."); + +ALIGNED(4) static const u8 gUnknown_80D6168[] = _( + " Zzz... Hunh? Wha--? Whoa!{WAIT_PRESS}\n" + "I... I can{APOSTROPHE}t accept anything like that!"); + +ALIGNED(4) static const u8 gUnknown_80D61B0[] = _( + " Reep...? Eep!{WAIT_PRESS}\n" + "Not enough money!"); + +ALIGNED(4) static const u8 gUnknown_80D61D4[] = _( + " Zzz... Uh-oh...{WAIT_PRESS}\n" + "All gone!\n" + "I am sold out..."); + +ALIGNED(4) static const u8 gUnknown_80D6204[] = _( + " Zzz... Hunh? Oh...{WAIT_PRESS}\n" + "Reep... No room... Reep...\n" + "No room for my wares..."); + +ALIGNED(4) static const u8 gUnknown_80D6250[] = _( + " Zzzzzz... Oh?{WAIT_PRESS}\n" + "You{APOSTROPHE}ve got nothing..."); + +ALIGNED(4) static const u8 gUnknown_80D627C[] = _( + " Zzz... Oh...?{WAIT_PRESS}\n" + "You have nothing to sell...\n" + "Hunh?"); + +ALIGNED(4) static const u8 gUnknown_80D62B0[] = _( + " Eep...? Zzz...\n" + "You have too much money!{EXTRA_MSG}" + " Zzz... Eh?\n" + "You can{APOSTROPHE}t hold any more money..."); + +ALIGNED(4) static const u8 gUnknown_80D630C[] = _( + " Reep eep! Oh?{WAIT_PRESS}\n" + "Eep...?\n" + "You have no money?"); + +ALIGNED(4) static const u8 gUnknown_80D6338[] = _( + " ...{WAIT_PRESS}Zzz...\n" + "I am all sold out... Sorry..."); + +ALIGNED(4) static const u8 gUnknown_80D6364[] = _( + " Fine... Reep reep...\n" + "Done deal!\n" + "Thank you..."); + +ALIGNED(4) static const u8 gUnknown_80D6394[] = _( + " Zzz... Reep{COMMA} what...?\n" + "For all that I can buy{COMMA} I will pay\n" + "{COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}... OK?"); + +ALIGNED(4) static const u8 gUnknown_80D63E8[] = _( + " Zzzzzz... Zzzzzz...?\n" + "{COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}?\n" + "Is {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE} OK?"); + +ALIGNED(4) static const u8 gUnknown_80D6420[] = _( + " Reep reep... Eep...\n" + "Anything else for sale?"); + +ALIGNED(4) static const u8 gUnknown_80D6450[] = _( + " Zzz... Eep...?\n" + "What will you sell...?"); + +ALIGNED(4) static const u8 gUnknown_80D6478[] = _( + " Zzz... Reep!\n" + "Thank you..."); + +ALIGNED(4) static const u8 gUnknown_80D6494[] = _( + " Zzzzzz...\n" + "{COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1} is {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}...\n" + "OK?"); + +ALIGNED(4) static const u8 gUnknown_80D64C0[] = _( + " Anything? Zzz...\n" + "Buying anything else?"); + +ALIGNED(4) static const u8 gUnknown_80D64E8[] = _( + " Ah... Zzz...\n" + "My merchandise..."); + +ALIGNED(4) static const u8 gUnknown_80D6508[] = _( + " Thank... Reep eep...\n" + "Come again..."); + +ALIGNED(4) static const u8 gUnknown_80D652C[] = _( + " Reep...\n" + "Anything else?"); + +ALIGNED(4) static const u8 gUnknown_80D6544[] = _( + " Zzzzzz...\n" + "This is...my shop..."); + +ALIGNED(4) static const u8 gUnknown_80D6564[] = _( + " Wonder Orbs are very{COMMA}\n" + "very convenient〜♪{EXTRA_MSG}" + " However{COMMA} they disappear\n" + "after one use...{WAIT_PRESS}\n" + "But they are useful in a pinch!{EXTRA_MSG}" + " Use them cleverly{COMMA} and your\n" + "adventures will be made much easier〜♪{EXTRA_MSG}" + " And moves...{WAIT_PRESS}\n" + "They are the ultimate power!{EXTRA_MSG}" + " Smash rocks!{WAIT_PRESS} Fly!{WAIT_PRESS}\n" + "There are many kinds of moves{COMMA} all of\n" + "them dynamic{COMMA} yet elegant!{EXTRA_MSG}" + " There are even moves of\n" + "obscure rarity...{WAIT_PRESS}\n" + "Simply gorgeous{COMMA} they are!{EXTRA_MSG}" + " Now{COMMA} we have these moves!{WAIT_PRESS}\n" + "They can be learned using our Technical\n" + "Machines{COMMA} or TMs for short!{EXTRA_MSG}" + " You see?\n" + "Isn{APOSTROPHE}t it exciting? Even dreamy?{EXTRA_MSG}" + " Why{COMMA} it gets me so excited{COMMA}\n" + "my color has turned a rosy tint!{EXTRA_MSG}" + " I do hope you will shop\n" + "with us--me and my brother next to\n" + "me!"); + +ALIGNED(4) static const u8 gUnknown_80D6818[] = _( + " Oh{COMMA} no{COMMA} no!{WAIT_PRESS}\n" + "My friend{COMMA} you cannot add to your money!\n" + "I cannot do this."); + +ALIGNED(4) static const u8 gUnknown_80D6868[] = _( + " Whoa{COMMA} whoa!{WAIT_PRESS}\n" + "I... I can{APOSTROPHE}t accept anything like that!"); + +ALIGNED(4) static const u8 gUnknown_80D68A4[] = _( + " Eep! Oh{COMMA} dear!{WAIT_PRESS}\n" + "You{APOSTROPHE}re short on money{COMMA} my friend!"); + +ALIGNED(4) static const u8 gUnknown_80D68E0[] = _( + " Oh? Uh-oh!{WAIT_PRESS}\n" + "My shelves are bare of wares!{EXTRA_MSG}" + " I am completely sold out{COMMA}\n" + "my friend!"); + +ALIGNED(4) static const u8 gUnknown_80D6938[] = _( + " Oh{COMMA} dear me!{WAIT_PRESS}\n" + "My friend{COMMA} you{APOSTROPHE}ve run out of space for\n" + "my wares!"); + +ALIGNED(4) static const u8 gUnknown_80D6980[] = _( + " Oh?{WAIT_PRESS}\n" + "My friend{COMMA} you seem to have nothing?"); + +ALIGNED(4) static const u8 gUnknown_80D69B0[] = _( + " Oh{COMMA} oh{COMMA} oh?{WAIT_PRESS}\n" + "My friend{COMMA} you seem to not have anything\n" + "that you can sell?"); + +ALIGNED(4) static const u8 gUnknown_80D6A04[] = _( + " Oh{COMMA} my{COMMA} my!\n" + "My friend{COMMA} you have too much money!{EXTRA_MSG}" + " You can{APOSTROPHE}t carry any more\n" + "money than you have now."); + +ALIGNED(4) static const u8 gUnknown_80D6A74[] = _( + " Oh?{WAIT_PRESS}\n" + "My friend{COMMA} you seem not to have\n" + "enough money?"); + +ALIGNED(4) static const u8 gUnknown_80D6AAC[] = _( + " ...{WAIT_PRESS}I am all out of wares...\n" + "I am so sorry{COMMA} my friend...{EXTRA_MSG}" + " Tomorrow!\n" + "Tomorrow I shall have more wares!"); + +ALIGNED(4) static const u8 gUnknown_80D6B18[] = _( + " Fine{COMMA} fine{COMMA} we have a deal!\n" + "Thank you so much〜♪ "); + +ALIGNED(4) static const u8 gUnknown_80D6B50[] = _( + " For all that I can buy{COMMA} I can\n" + "offer you {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" + "Is that acceptable?"); + +ALIGNED(4) static const u8 gUnknown_80D6BA0[] = _( + " {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}{COMMA} you say?\n" + "For that{COMMA} I can offer {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" + "Is that acceptable?"); + +ALIGNED(4) static const u8 gUnknown_80D6BF4[] = _( + " Do you wish to sell me\n" + "anything else?"); + +ALIGNED(4) static const u8 gUnknown_80D6C1C[] = _( + " Thank you so much〜♪\n" + "A very good choice!"); + +ALIGNED(4) static const u8 gUnknown_80D6C48[] = _( + " {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}{COMMA} you say?\n" + "That will be {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" + "Is that acceptable?"); + +ALIGNED(4) static const u8 gUnknown_80D6C90[] = _( + " Do you wish to purchase\n" + "anything else?"); + +ALIGNED(4) static const u8 gUnknown_80D6CB8[] = _( + " Ah{COMMA} very well!\n" + "Do examine my merchandise.\n" + "I have chosen it with pride〜♪ "); + +ALIGNED(4) static const u8 gUnknown_80D6D08[] = _( + " Thank you so much!\n" + "Please do visit again〜♪ "); + +ALIGNED(4) static const u8 gUnknown_80D6D38[] = _( + " May I assist you in any\n" + "other way?"); + +ALIGNED(4) static const u8 gUnknown_80D6D5C[] = _( + " Welcome to Kecleon Wares!\n" + "The shop for Orbs and TMs〜♪ "); + +ALIGNED(4) static const u8 gUnknown_80D6D98[] = _( + " Zzzzzz...\n" + "I sell items...{EXTRA_MSG}" + " Items... Meep meep...\n" + "Are useful in dungeons...{EXTRA_MSG}" + " Use... Zzz... Huh...?\n" + "Your imagination...and be clever...\n" + "With them..."); + +ALIGNED(4) static const u8 gUnknown_80D6E30[] = _( + " Zzz... Hunh{COMMA} what...?{WAIT_PRESS}\n" + "Zzz... You can{APOSTROPHE}t hold any more money..."); + +ALIGNED(4) static const u8 gUnknown_80D6E78[] = _( + " Zzz... Whoa...{WAIT_PRESS}\n" + "I... I can{APOSTROPHE}t take that!"); + +ALIGNED(4) static const u8 gUnknown_80D6EA4[] = _( + " Zzz... Huh{COMMA} my...!{WAIT_PRESS}\n" + "Meep... Meep...\n" + "You don{APOSTROPHE}t have enough money!"); + +ALIGNED(4) static const u8 gUnknown_80D6EEC[] = _( + " Zzz... Uh-oh?!{WAIT_PRESS}\n" + "Eep!\n" + "Sold out! All gone!"); + +ALIGNED(4) static const u8 gUnknown_80D6F18[] = _( + " Zzz... Oh{COMMA} my!{WAIT_PRESS}\n" + "Meep... You have no space..."); + +ALIGNED(4) static const u8 gUnknown_80D6F4C[] = _( + " Zzz... Eep...?{WAIT_PRESS}\n" + "Meep... You don{APOSTROPHE}t seem to have\n" + "anything...?"); + +ALIGNED(4) static const u8 gUnknown_80D6F8C[] = _( + " Zzz... Huh?{WAIT_PRESS}\n" + "Meep meep...\n" + "You don{APOSTROPHE}t seem to have anything to sell?"); + +ALIGNED(4) static const u8 gUnknown_80D6FD4[] = _( + " Zzz... Oh{COMMA} my!\n" + "You have so much money...!{EXTRA_MSG}" + " Zzz... Meep...\n" + "You can{APOSTROPHE}t carry any more money..."); + +ALIGNED(4) static const u8 gUnknown_80D7038[] = _( + " Hunh?{WAIT_PRESS}\n" + "Eep...?\n" + "You don{APOSTROPHE}t have money?"); + +ALIGNED(4) static const u8 gUnknown_80D7064[] = _( + " ...{WAIT_PRESS} ZZZ!\n" + "I{APOSTROPHE}m sold out... Forgive me..."); + +ALIGNED(4) static const u8 gUnknown_80D7090[] = _( + " Done... Meep! Deal!\n" + "Thank you..."); + +ALIGNED(4) static const u8 gUnknown_80D70B4[] = _( + " Zzzzzz... Zzzzzz...?\n" + "I can pay you {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}\n" + "for everything I can buy... OK?"); + +ALIGNED(4) static const u8 gUnknown_80D7108[] = _( + " Zzzzzz... Zzzzzz...?\n" + "Selling that {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}...?\n" + "How about {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}?"); + +ALIGNED(4) static const u8 gUnknown_80D7154[] = _( + " Zzz... Meep...\n" + "Going to sell anything else?"); + +ALIGNED(4) static const u8 gUnknown_80D7184[] = _( + " Zzz... Zzz...?\n" + "You{APOSTROPHE}re selling what...?"); + +ALIGNED(4) static const u8 gUnknown_80D71B0[] = _( + " Eep! Wah...?\n" + "Thank you..."); + +ALIGNED(4) static const u8 gUnknown_80D71CC[] = _( + " Zzz... Meep meep...\n" + "{COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}...?\n" + "{COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}{COMMA} OK?"); + +ALIGNED(4) static const u8 gUnknown_80D7204[] = _( + " Buy? Huh{COMMA} eep?\n" + "Anything else?"); + +ALIGNED(4) static const u8 gUnknown_80D7228[] = _( + " Zzz... Meep... Eep...\n" + "Look around..."); + +ALIGNED(4) static const u8 gUnknown_80D7250[] = _( + " Thank... Zzz...\n" + "Thank you..."); + +ALIGNED(4) static const u8 gUnknown_80D7270[] = _( + " Zzz... Meep...\n" + "Help you with anything else?"); + +ALIGNED(4) static const u8 gUnknown_80D72A0[] = _( + " Zzzzzz...\n" + "Welcome..."); + +ALIGNED(4) static const u8 gUnknown_80D72B8[] = _( + " We{COMMA} the {ARG_POKEMON_6}\n" + "Brothers{COMMA} have a passion for selling\n" + "items.{EXTRA_MSG}" + " Items are useful for your\n" + "dungeon adventures.{EXTRA_MSG}" + " Use your imagination and\n" + "discover innovative uses{COMMA} please.{EXTRA_MSG}" + " Ah{COMMA} yes.\n" + "If my shop sells out...{EXTRA_MSG}" + " New merchandise will\n" + "arrive the following day.{EXTRA_MSG}" + " Until then{COMMA} please go to\n" + "a dungeon and spend some time.\n" + "Please visit on your return〜♪{EXTRA_MSG}" + " Ah{COMMA} yes. The {ARG_POKEMON_6}\n" + "Shop is a nationwide chain.{EXTRA_MSG}" + " There are shops even in\n" + "dungeons.\n" + "Please do visit〜♪ "); + +ALIGNED(4) static const u8 gUnknown_80D7480[] = _( + " Oh{COMMA} my!{WAIT_PRESS}\n" + "You can{APOSTROPHE}t add any more to your money.\n" + "I can{APOSTROPHE}t complete this deal{COMMA} sorry."); + +ALIGNED(4) static const u8 gUnknown_80D74DC[] = _( + " Oh{COMMA} whoa{COMMA} whoa!{WAIT_PRESS}\n" + "I... I couldn{APOSTROPHE}t possibly take that from you!"); + +ALIGNED(4) static const u8 gUnknown_80D7524[] = _( + " Oh{COMMA} my!{WAIT_PRESS}\n" + "Sorry{COMMA} but you don{APOSTROPHE}t have enough money!"); + +ALIGNED(4) static const u8 gUnknown_80D7560[] = _( + " Uh-oh?!{WAIT_PRESS}\n" + "That{APOSTROPHE}s it! No more merchandise!{EXTRA_MSG}" + " I{APOSTROPHE}m completely sold out!"); + +ALIGNED(4) static const u8 gUnknown_80D75AC[] = _( + " Oh{COMMA} my!{WAIT_PRESS}\n" + "You have no space for any more items!"); + +ALIGNED(4) static const u8 gUnknown_80D75E0[] = _( + " Oh? Oh?{WAIT_PRESS}\n" + "You don{APOSTROPHE}t seem to have anything?"); + +ALIGNED(4) static const u8 gUnknown_80D7610[] = _( + " Oh? Oh?{WAIT_PRESS}\n" + "You seem to have nothing to sell?"); + +ALIGNED(4) static const u8 gUnknown_80D7640[] = _( + " Oh{COMMA} my goodness!\n" + "You{APOSTROPHE}re overflowing with money!{EXTRA_MSG}" + " You couldn{APOSTROPHE}t possibly carry\n" + "any more money! "); + +ALIGNED(4) static const u8 gUnknown_80D76A8[] = _( + " Huh?{WAIT_PRESS}\n" + "You don{APOSTROPHE}t seem to have the money?"); + +ALIGNED(4) static const u8 gUnknown_80D76D4[] = _( + " ...{WAIT_PRESS}I{APOSTROPHE}m sold out...\n" + "Please{COMMA} forgive me.{EXTRA_MSG}" + " I will have new merchandise\n" + "for you tomorrow{COMMA} I swear!"); + +ALIGNED(4) static const u8 gUnknown_80D7740[] = _( + " Good! Done deal!\n" + "Thank you so much〜♪ "); + +ALIGNED(4) static const u8 gUnknown_80D776C[] = _( + " For everything I can buy{COMMA}\n" + "I can offer {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" + "Is that acceptable to you?"); + +ALIGNED(4) static const u8 gUnknown_80D77C0[] = _( + " {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}?\n" + "I can offer you {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" + "Will you sell it for that price?"); + +ALIGNED(4) static const u8 gUnknown_80D780C[] = _( + " Do you wish to sell\n" + "anything else?"); + +ALIGNED(4) static const u8 gUnknown_80D7830[] = _( + " Ah{COMMA} very well!\n" + "What do you wish to sell?"); + +ALIGNED(4) static const u8 gUnknown_80D785C[] = _( + " Very well! Thank you〜♪\n" + "It is yours to take!"); + +ALIGNED(4) static const u8 gUnknown_80D788C[] = _( + " {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}?\n" + "That will be {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" + "Is that to your liking?"); + +ALIGNED(4) static const u8 gUnknown_80D78CC[] = _( + " Do you wish to buy\n" + "anything else today?"); + +ALIGNED(4) static const u8 gUnknown_80D78F8[] = _( + " Ah{COMMA} very well!\n" + "Feel free to examine my merchandise〜♪"); + +ALIGNED(4) static const u8 gUnknown_80D7934[] = _( + " Thank you!\n" + "Please call again〜♪ "); + +ALIGNED(4) static const u8 gUnknown_80D7958[] = _( + " May I help you with\n" + "anything else?"); + +ALIGNED(4) static const u8 gUnknown_80D797C[] = _( + " Hello〜♪\n" + "Welcome to the {ARG_POKEMON_6} Shop〜♪ "); \ No newline at end of file diff --git a/src/kecleon_bros1.c b/src/kecleon_bros1.c index 3267c787a..8f54aa6b7 100644 --- a/src/kecleon_bros1.c +++ b/src/kecleon_bros1.c @@ -216,86 +216,86 @@ static void UpdateKecleonStoreDialogue(void) sub_8019DAC(); sub_80194F8(); sub_8019E04(FALSE); - sub_8014248(gCommonKecleonBros[sKecleonBrosWork1->mode][0], 0, sKecleonBrosWork1->menuAction1, + sub_8014248(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_00], 0, sKecleonBrosWork1->menuAction1, sKecleonBrosWork1->menuItems, sKecleonBrosWork1->unk74, 4, 0, sKecleonBrosWork1->unkE4, 12); break; case 1: sub_8019DAC(); sub_80194F8(); sub_8019E04(FALSE); - sub_8014248(gCommonKecleonBros[sKecleonBrosWork1->mode][1], 0, sKecleonBrosWork1->menuAction1, + sub_8014248(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_01], 0, sKecleonBrosWork1->menuAction1, sKecleonBrosWork1->menuItems, sKecleonBrosWork1->unk74, 4, 0, sKecleonBrosWork1->unkE4, 12); break; case 2: sKecleonBrosWork1->fallbackState = 1; sub_8019E04(FALSE); - sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][22], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_22], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 3: sKecleonBrosWork1->fallbackState = 4; sub_8019E04(FALSE); - sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][2], 0, sKecleonBrosWork1->unkE4, 0x30D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_02], 0, sKecleonBrosWork1->unkE4, 0x30D); break; case 5: sKecleonBrosWork1->fallbackState = 1; sub_8019E04(FALSE); - sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][12], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_12], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 6: sKecleonBrosWork1->fallbackState = 16; sub_8019E04(TRUE); - sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][13], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_13], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 7: sKecleonBrosWork1->fallbackState = 1; sub_8019E04(TRUE); - sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][14], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_14], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 8: sKecleonBrosWork1->fallbackState = 1; sub_8019E04(TRUE); - sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][15], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_15], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 9: sKecleonBrosWork1->fallbackState = 1; sub_8019E04(TRUE); - sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][16], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_16], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 10: sKecleonBrosWork1->fallbackState = 1; sub_8019E04(TRUE); - sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][17], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_17], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 11: sKecleonBrosWork1->fallbackState = 1; sub_8019E04(FALSE); - sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][18], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_18], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 12: sKecleonBrosWork1->fallbackState = 16; sub_8019E04(TRUE); - sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][19], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_19], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 13: sub_8090E14(gUnknown_202DE58, &sKecleonBrosWork1->soldItem, NULL); sKecleonBrosWork1->fallbackState = 24; sub_8019E04(TRUE); - sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][20], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_20], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 14: sKecleonBrosWork1->fallbackState = 24; sub_8019E04(TRUE); - sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][21], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_21], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 15: sKecleonBrosWork1->fallbackState = 18; sub_8019E04(FALSE); - sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][3], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_03], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 16: sKecleonBrosWork1->fallbackState = 19; sub_8019E04(FALSE); - sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][4], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_04], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 18: if (sKecleonBrosWork1->isKecleonItemShop) @@ -331,7 +331,7 @@ static void UpdateKecleonStoreDialogue(void) sub_8090E14(gUnknown_202DE58, &sKecleonBrosWork1->soldItem, 0); gUnknown_202DE30 = sKecleonBrosWork1->itemSellPrice; sub_8019E04(FALSE); - sub_8014248(gCommonKecleonBros[sKecleonBrosWork1->mode][5], 0, 5,sKecleonBrosWork1->menuItems, NULL, 4, 0, sKecleonBrosWork1->unkE4, 12); + sub_8014248(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_05], 0, 5,sKecleonBrosWork1->menuItems, NULL, 4, 0, sKecleonBrosWork1->unkE4, 12); break; case 17: if (CountKecleonItems() == 0) { @@ -353,17 +353,17 @@ static void UpdateKecleonStoreDialogue(void) sKecleonBrosWork1->fallbackState = 16; } sub_8019E04(FALSE); - sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][6], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_06], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 23: sKecleonBrosWork1->fallbackState = 26; sub_8019E04(FALSE); - sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][7], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_07], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 24: sKecleonBrosWork1->fallbackState = 27; sub_8019E04(FALSE); - sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][8], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_08], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 26: sub_801A5D8(4, 3, NULL, 10); @@ -384,7 +384,7 @@ static void UpdateKecleonStoreDialogue(void) sub_8090E14(gUnknown_202DE58, &sKecleonBrosWork1->soldItem, NULL); gUnknown_202DE30 = sKecleonBrosWork1->itemSellPrice; sub_8019E04(FALSE); - sub_8014248(gCommonKecleonBros[sKecleonBrosWork1->mode][9], 0, 5, sKecleonBrosWork1->menuItems, NULL, 4, 0, sKecleonBrosWork1->unkE4, 12); + sub_8014248(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_09], 0, 5, sKecleonBrosWork1->menuItems, NULL, 4, 0, sKecleonBrosWork1->unkE4, 12); break; case 21: case 29: @@ -399,18 +399,18 @@ static void UpdateKecleonStoreDialogue(void) sKecleonBrosWork1->fallbackState = 24; sub_8019E04(FALSE); - sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][11], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_11], 0, sKecleonBrosWork1->unkE4, 0x10D); break; case 31: sub_8019700(); gUnknown_202DE30 = sKecleonBrosWork1->inventoryItemSellPrice; sub_8019E04(FALSE); - sub_8014248(gCommonKecleonBros[sKecleonBrosWork1->mode][10], 0, 5, sKecleonBrosWork1->menuItems, NULL, 4, 0, sKecleonBrosWork1->unkE4, 12); + sub_8014248(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_10], 0, 5, sKecleonBrosWork1->menuItems, NULL, 4, 0, sKecleonBrosWork1->unkE4, 12); break; case 32: sKecleonBrosWork1->fallbackState = 1; sub_8019E04(FALSE); - sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][11], 0, sKecleonBrosWork1->unkE4, 0x10D); + sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_11], 0, sKecleonBrosWork1->unkE4, 0x10D); break; } } @@ -423,26 +423,26 @@ static void sub_80194F8(void) MemoryFill16(sKecleonBrosWork1->unk74, 0, sizeof(sKecleonBrosWork1->unk74)); loopMax = 0; - sKecleonBrosWork1->menuItems[loopMax].text = *gCommonBuy; + sKecleonBrosWork1->menuItems[loopMax].text = gCommonBuy[0]; sKecleonBrosWork1->menuItems[loopMax].menuAction = 2; - loopMax += 1; - sKecleonBrosWork1->menuItems[loopMax].text = *gCommonSell; + loopMax++; + sKecleonBrosWork1->menuItems[loopMax].text = gCommonSell[0]; sKecleonBrosWork1->menuItems[loopMax].menuAction = 3; - loopMax += 1; + loopMax++; sKecleonBrosWork1->menuItems[loopMax].text = sSellAll; sKecleonBrosWork1->menuItems[loopMax].menuAction = 4; - loopMax += 1; - sKecleonBrosWork1->menuItems[loopMax].text = *gCommonInfo; + loopMax++; + sKecleonBrosWork1->menuItems[loopMax].text = gCommonInfo[0]; sKecleonBrosWork1->menuItems[loopMax].menuAction = 7; - loopMax += 1; - sKecleonBrosWork1->menuItems[loopMax].text = *gCommonCancel; + loopMax++; + sKecleonBrosWork1->menuItems[loopMax].text = gCommonCancel[0]; sKecleonBrosWork1->menuItems[loopMax].menuAction = 1; - loopMax += 1; + loopMax++; sKecleonBrosWork1->menuItems[loopMax].text = NULL; sKecleonBrosWork1->menuItems[loopMax].menuAction = 1; @@ -469,14 +469,14 @@ static void sub_80195C0(void) MemoryFill16(sKecleonBrosWork1->unk74, 0, sizeof(sKecleonBrosWork1->unk74)); loopMax = 0; - sKecleonBrosWork1->menuItems[loopMax].text = *gCommonBuy; + sKecleonBrosWork1->menuItems[loopMax].text = gCommonBuy[0]; sKecleonBrosWork1->menuItems[loopMax].menuAction = 2; - loopMax += 1; - sKecleonBrosWork1->menuItems[loopMax].text = *gCommonInfo; + loopMax++; + sKecleonBrosWork1->menuItems[loopMax].text = gCommonInfo[0]; sKecleonBrosWork1->menuItems[loopMax].menuAction = 7; - loopMax += 1; + loopMax++; sKecleonBrosWork1->menuItems[loopMax].text = NULL; sKecleonBrosWork1->menuItems[loopMax].menuAction = 1; @@ -503,14 +503,14 @@ static void sub_8019660(void) MemoryFill16(sKecleonBrosWork1->unk74, 0, sizeof(sKecleonBrosWork1->unk74)); loopMax = 0; - sKecleonBrosWork1->menuItems[loopMax].text = *gCommonSell; + sKecleonBrosWork1->menuItems[loopMax].text = gCommonSell[0]; sKecleonBrosWork1->menuItems[loopMax].menuAction = 3; - loopMax += 1; - sKecleonBrosWork1->menuItems[loopMax].text = *gCommonInfo; + loopMax++; + sKecleonBrosWork1->menuItems[loopMax].text = gCommonInfo[0]; sKecleonBrosWork1->menuItems[loopMax].menuAction = 7; - loopMax += 1; + loopMax++; sKecleonBrosWork1->menuItems[loopMax].text = NULL; sKecleonBrosWork1->menuItems[loopMax].menuAction = 1; @@ -532,14 +532,14 @@ static void sub_8019660(void) static void sub_8019700(void) { s32 loopMax = 0; - sKecleonBrosWork1->menuItems[loopMax].text = *gCommonYes; + sKecleonBrosWork1->menuItems[loopMax].text = gCommonYes[0]; sKecleonBrosWork1->menuItems[loopMax].menuAction = 5; - loopMax += 1; - sKecleonBrosWork1->menuItems[loopMax].text = *gCommonNo; + loopMax++; + sKecleonBrosWork1->menuItems[loopMax].text = gCommonNo[0]; sKecleonBrosWork1->menuItems[loopMax].menuAction = 6; - loopMax += 1; + loopMax++; sKecleonBrosWork1->menuItems[loopMax].text = NULL; sKecleonBrosWork1->menuItems[loopMax].menuAction = 1; } From df1e337cdf9489dee928d304455a82bf87bcfc61 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sat, 23 Sep 2023 04:34:55 -0400 Subject: [PATCH 36/47] Wigglytuff shop common_strings --- data/common_strings.s | 365 ------------------ include/common_strings.h | 9 +- .../common_strings_wigglytuff_shop.h | 35 ++ src/common_strings.c | 3 +- src/data/common_strings_wigglytuff_shop.h | 320 +++++++++++++++ src/wigglytuff_shop3.c | 40 +- 6 files changed, 379 insertions(+), 393 deletions(-) create mode 100644 include/constants/common_strings_wigglytuff_shop.h create mode 100644 src/data/common_strings_wigglytuff_shop.h diff --git a/data/common_strings.s b/data/common_strings.s index f8ab6a43e..774dc407f 100644 --- a/data/common_strings.s +++ b/data/common_strings.s @@ -2,371 +2,6 @@ .align 2,0 - .global gCommonWigglytuff -gCommonWigglytuff: @ 80D79A4 (Friend Area Shop) - .4byte gUnknown_80D883C - .4byte gUnknown_80D8818 - .4byte gUnknown_80D87E0 - .4byte gUnknown_80D8798 - .4byte gUnknown_80D876C - .4byte gUnknown_80D8738 - .4byte gUnknown_80D86E4 - .4byte gUnknown_80D8674 - .4byte gUnknown_80D8644 - .4byte gUnknown_80D8620 - .4byte gUnknown_80D85E4 - .4byte gUnknown_80D85AC - .4byte gUnknown_80D8584 - .4byte gUnknown_80D8550 - .4byte gUnknown_80D8528 - .4byte gUnknown_80D84F8 - .4byte gUnknown_80D8468 - .4byte gUnknown_80D8420 - .4byte gUnknown_80D8420 - .4byte gUnknown_80D8104 - .4byte gUnknown_80D80D4 - .4byte gUnknown_80D80B0 - .4byte gUnknown_80D8080 - .4byte gUnknown_80D8054 - .4byte gUnknown_80D8030 - .4byte gUnknown_80D8000 - .4byte gUnknown_80D7F7C - .4byte gUnknown_80D7F10 - .4byte gUnknown_80D7ED0 - .4byte gUnknown_80D7E9C - .4byte gUnknown_80D7E58 - .4byte gUnknown_80D7E2C - .4byte gUnknown_80D7E04 - .4byte gUnknown_80D7DE0 - .4byte gUnknown_80D7DA0 - .4byte gUnknown_80D7D64 - .4byte gUnknown_80D7CE8 - .4byte gUnknown_80D7C94 - .4byte gUnknown_80D7C94 - .4byte gUnknown_80D7A44 - - .global gUnknown_80D7A44 -gUnknown_80D7A44: - .string " Zzz...\n" - .string "Want more friends?{EXTRA_MSG}" - .string " Zzz... Kwoo...\n" - .string "You need Friend Areas for friends...{EXTRA_MSG}" - .string " Zzz... Zzz...\n" - .string "A Pokémon becomes your pal when it{APOSTROPHE}s in\n" - .string "the right Friend Area...{EXTRA_MSG}" - .string " Zzz... Dwee...\n" - .string "That{APOSTROPHE}s why you should get more Friend\n" - .string "Areas...{EXTRA_MSG}" - .string " Zzz... Pokémon can only\n" - .string "live in the right Friend Area for\n" - .string "their species...{EXTRA_MSG}" - .string " Kwoo... Sssnore...\n" - .string "See what Pokémon can live there by\n" - .string "checking {COLOR_1 YELLOW}Info{END_COLOR_TEXT_1}...{EXTRA_MSG}" - .string " Zzz...\n" - .string "I don{APOSTROPHE}t sell some Friend Areas...{EXTRA_MSG}" - .string " Kwoo...\n" - .string "Some rescue missions reward you with\n" - .string "Friend Areas...{EXTRA_MSG}" - .string " Zzz... Dwee...\n" - .string "Check the Pelipper Post Office{APOSTROPHE}s Bulletin\n" - .string "Board or your Mailbox for missions...\0" - .align 2, 0 - - .global gUnknown_80D7C94 -gUnknown_80D7C94: - .string " Sssnore...\n" - .string "{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}...?\n" - .string "I can{APOSTROPHE}t get that Friend Area...{EXTRA_MSG}" - .string " Zzz... Zzz...\n" - .string "Sorry...\0" - .align 2, 0 - - .global gUnknown_80D7CE8 -gUnknown_80D7CE8: - .string " Zzz... Hunh...?\n" - .string "{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}...?\n" - .string "I don{APOSTROPHE}t know... I{APOSTROPHE}ll check...{EXTRA_MSG}" - .string " Sssnore...\n" - .string "I{APOSTROPHE}ll have it for sale...\n" - .string "When I find out...\0" - .align 2, 0 - - .global gUnknown_80D7D64 -gUnknown_80D7D64: - .string " Sssnore...\n" - .string "You can already go...\n" - .string "Friend Area {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}...\0" - .align 2, 0 - - .global gUnknown_80D7DA0 -gUnknown_80D7DA0: - .string " Dwee... Kwoo...\n" - .string "{COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}{APOSTROPHE}s Friend Area...\n" - .string "Zzz... {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}...\0" - .align 2, 0 - - .global gUnknown_80D7DE0 -gUnknown_80D7DE0: - .string " Another Pokémon...\n" - .string "Zzz... Check?\0" - .align 2, 0 - - .global gUnknown_80D7E04 -gUnknown_80D7E04: - .string " Zzz... Kwoo...\n" - .string "Check which Pokémon?\0" - .align 2, 0 - - .global gUnknown_80D7E2C -gUnknown_80D7E2C: - .string " Zzz... Dwee...? Oops?{WAIT_PRESS}\n" - .string "Not enough money?\0" - .align 2, 0 - - .global gUnknown_80D7E58 -gUnknown_80D7E58: - .string " Zzz... Hunh?{WAIT_PRESS}\n" - .string "Sssnore... Sorry...\n" - .string "Fresh out of Friend Areas...\0" - .align 2, 0 - - .global gUnknown_80D7E9C -gUnknown_80D7E9C: - .string " Hunh...?{WAIT_PRESS}\n" - .string "You don{APOSTROPHE}t have any money...\n" - .string "Zzzzzz...\0" - .align 2, 0 - - .global gUnknown_80D7ED0 -gUnknown_80D7ED0: - .string " Zzz... Zzz?{WAIT_PRESS}\n" - .string "Hunh...?\n" - .string "You can{APOSTROPHE}t add to your Friend Areas...\0" - .align 2, 0 - - .global gUnknown_80D7F10 -gUnknown_80D7F10: - .string " Grats... Zzz...{WAIT_PRESS}\n" - .string "You can go to {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}...{EXTRA_MSG}" - .string " Dwee... Sssnore...\n" - .string "Make friends with Pokémon in...\n" - .string "{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}...\0" - .align 2, 0 - - .global gUnknown_80D7F7C -gUnknown_80D7F7C: - .string " Zzz... Dwee... Gotcha...{WAIT_PRESS}\n" - .string "Zzz... Let{APOSTROPHE}s do it...{EXTRA_MSG}" - .string " Sssnore♪ Sssnore♪\n" - .string "{ARG_POKEMON_6}〜♪ {ARG_POKEMON_6}〜♪\n" - .string "Let{APOSTROPHE}s be friends...{EXTRA_MSG}" - .string " Kwoo!\n" - .string "Taaaaaaah!\0" - .align 2, 0 - - .global gUnknown_80D8000 -gUnknown_80D8000: - .string " Kwoo? {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}?\n" - .string "That{APOSTROPHE}s {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}...\n" - .string "OK?\0" - .align 2, 0 - - .global gUnknown_80D8030 -gUnknown_80D8030: - .string " Zzz... Wha--?\n" - .string "More Friend Areas?\0" - .align 2, 0 - - .global gUnknown_80D8054 -gUnknown_80D8054: - .string " Dwee... Hunh?\n" - .string "Friend Areas...?\n" - .string "Which one?\0" - .align 2, 0 - - .global gUnknown_80D8080 -gUnknown_80D8080: - .string " Thank... Zzz... You...\n" - .string "Friends{COMMA} friend...\0" - .align 2, 0 - - .global gUnknown_80D80B0 -gUnknown_80D80B0: - .string " Anything? Kwoo...\n" - .string "Anything else?\0" - .align 2, 0 - - .global gUnknown_80D80D4 -gUnknown_80D80D4: - .string " Friends... Zzz...\n" - .string "Welcome to the {ARG_POKEMON_6} Club...\0" - .align 2, 0 - - .global gUnknown_80D8104 -gUnknown_80D8104: - .string " Would you like to get more\n" - .string "friends...{WAIT_PRESS}\n" - .string "...More members for your team?{EXTRA_MSG}" - .string " To add new friends{COMMA} what\n" - .string "you need are Friend Areas.{EXTRA_MSG}" - .string " A Pokémon can join your\n" - .string "rescue team only after it settles in\n" - .string "the right Friend Area.{EXTRA_MSG}" - .string " So{COMMA} if you want to recruit\n" - .string "new members{COMMA} you should add to your\n" - .string "Friend Areas.{EXTRA_MSG}" - .string " Oh{COMMA} yes{COMMA} Pokémon can\n" - .string "only live in the right Friend Area for\n" - .string "their species.{EXTRA_MSG}" - .string " If you{APOSTROPHE}re buying a Friend\n" - .string "Area{COMMA} you should confirm what Pokémon\n" - .string "can live there by checking {COLOR_1 YELLOW}Info{END_COLOR_TEXT_1}.{EXTRA_MSG}" - .string " Also{COMMA} there are some Friend\n" - .string "Areas that I don{APOSTROPHE}t sell.{EXTRA_MSG}" - .string " I think there are some\n" - .string "rescue missions that give you access\n" - .string "to Friend Areas{COMMA} too.{EXTRA_MSG}" - .string " You should check the\n" - .string "Pelipper Post Office{APOSTROPHE}s Bulletin Board or\n" - .string "your Mailbox for rescue requests.{EXTRA_MSG}" - .string " You know{COMMA} it makes me\n" - .string "delighted when you make new friends!\0" - .align 2, 0 - - .global gUnknown_80D8420 -gUnknown_80D8420: - .string " {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}?\n" - .string "I can{APOSTROPHE}t get that Friend Area for you.{WAIT_PRESS}\n" - .string "I{APOSTROPHE}m really sorry.\0" - .align 2, 0 - - .global gUnknown_80D8468 -gUnknown_80D8468: - .string " {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}?\n" - .string "I don{APOSTROPHE}t know much about it at all.{WAIT_PRESS}\n" - .string "I{APOSTROPHE}ll check up on it.{EXTRA_MSG}" - .string " I{APOSTROPHE}ll add it to the Friend\n" - .string "Areas you can buy when I find out more.\0" - .align 2, 0 - - .global gUnknown_80D84F8 -gUnknown_80D84F8: - .string " You can already go to the\n" - .string "Friend Area {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}.\0" - .align 2, 0 - - .global gUnknown_80D8528 -gUnknown_80D8528: - .string " {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}{APOSTROPHE}s Friend Area\n" - .string "is {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}.\0" - .align 2, 0 - - .global gUnknown_80D8550 -gUnknown_80D8550: - .string " Is there another Pokémon\n" - .string "you{APOSTROPHE}d like to check?\0" - .align 2, 0 - - .global gUnknown_80D8584 -gUnknown_80D8584: - .string " Which Pokémon would you\n" - .string "like to check?\0" - .align 2, 0 - - .global gUnknown_80D85AC -gUnknown_80D85AC: - .string " Oops?{WAIT_PRESS}\n" - .string "It doesn{APOSTROPHE}t look like you have enough\n" - .string "money!\0" - .align 2, 0 - - .global gUnknown_80D85E4 -gUnknown_80D85E4: - .string " Oops?{WAIT_PRESS}\n" - .string "Oh{COMMA} too bad.{WAIT_PRESS}\n" - .string "I{APOSTROPHE}m fresh out of Friend Areas.\0" - .align 2, 0 - - .global gUnknown_80D8620 -gUnknown_80D8620: - .string " Um?{WAIT_PRESS}\n" - .string "You don{APOSTROPHE}t have any money.\0" - .align 2, 0 - - .global gUnknown_80D8644 -gUnknown_80D8644: - .string " Oops!{WAIT_PRESS}\n" - .string "You can{APOSTROPHE}t add to your Friend Areas.\0" - .align 2, 0 - - .global gUnknown_80D8674 -gUnknown_80D8674: - .string " Congratulations!{WAIT_PRESS}\n" - .string "You can go to {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1} now!{EXTRA_MSG}" - .string " You can recruit\n" - .string "Pokémon that live in the Friend Area\n" - .string "{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}.\0" - .align 2, 0 - - .global gUnknown_80D86E4 -gUnknown_80D86E4: - .string " Gotcha! Let{APOSTROPHE}s do it!{WAIT_PRESS}\n" - .string "{ARG_POKEMON_6}〜♪ {ARG_POKEMON_6}〜♪{WAIT_PRESS}\n" - .string "Let{APOSTROPHE}s be friends... Yoomtaaaaaaah!\0" - .align 2, 0 - - .global gUnknown_80D8738 -gUnknown_80D8738: - .string " {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}?\n" - .string "That will be {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" - .string "Is that OK?\0" - .align 2, 0 - - .global gUnknown_80D876C -gUnknown_80D876C: - .string " Would you like to add\n" - .string "other Friend Areas?\0" - .align 2, 0 - - .global gUnknown_80D8798 -gUnknown_80D8798: - .string " You{APOSTROPHE}d like to add to your\n" - .string "Friend Areas?\n" - .string "Which one would you like?\0" - .align 2, 0 - - .global gUnknown_80D87E0 -gUnknown_80D87E0: - .string " Thank you! Come again!\n" - .string "We{APOSTROPHE}re all friends{COMMA} friend!\0" - .align 2, 0 - - .global gUnknown_80D8818 -gUnknown_80D8818: - .string " Anything else I can do for\n" - .string "you?\0" - .align 2, 0 - - .global gUnknown_80D883C -gUnknown_80D883C: - .string " Friends are my treasures!\n" - .string "Welcome to the {ARG_POKEMON_6} Club--\n" - .string "a circle of friends! \0" - .align 2, 0 - - - - - - - - - - - - - .global gCommonGulpin gCommonGulpin: @ 80D8888 (Gulpin Link Shop) .4byte gUnknown_80D9F74 diff --git a/include/common_strings.h b/include/common_strings.h index d5e31a5ad..79bded698 100644 --- a/include/common_strings.h +++ b/include/common_strings.h @@ -4,13 +4,8 @@ #include "constants/common_strings_felicity_bank.h" #include "constants/common_strings_kangaskhan_storage.h" #include "constants/common_strings_kecleon_bros.h" +#include "constants/common_strings_wigglytuff_shop.h" -enum WigglytuffShopMode -{ - WIGGLYTUFF_SHOP_MODE_AWAKE, - WIGGLYTUFF_SHOP_MODE_ASLEEP, - WIGGLYTUFF_SHOP_MODE_COUNT -}; enum GulpinShopMode { GULPIN_SHOP_MODE_AWAKE, @@ -54,7 +49,7 @@ extern const u8* const gCommonWithdrawPrompt[]; extern const u8* const gCommonFelicity[FEL_MODE_COUNT][FEL_DLG_MAX]; extern const u8* const gCommonKangStorage[KANG_MODE_COUNT][KANG_DLG_MAX]; extern const u8* const gCommonKecleonBros[KECLEON_BROS_MODE_COUNT][KECLEON_DLG_MAX]; -extern const u8* const gCommonWigglytuff[WIGGLYTUFF_SHOP_MODE_COUNT][20]; // 80D79A4 +extern const u8* const gCommonWigglytuff[WIGGLYTUFF_SHOP_MODE_COUNT][WIGGLY_DLG_MAX]; extern const u8* const gCommonGulpin[GULPIN_SHOP_MODE_COUNT][25]; // 80D8888 extern const u8* const gCommonMakuhita[MAKUHITA_DOJO_MODE_COUNT][10]; // 80D9FC8 extern const Hints gCommonHints[MAX_HINTS]; // 80DAA98 diff --git a/include/constants/common_strings_wigglytuff_shop.h b/include/constants/common_strings_wigglytuff_shop.h new file mode 100644 index 000000000..91010a937 --- /dev/null +++ b/include/constants/common_strings_wigglytuff_shop.h @@ -0,0 +1,35 @@ +#ifndef GUARD_COMMON_STRINGS_WIGGLYTUFF_SHOP_H +#define GUARD_COMMON_STRINGS_WIGGLYTUFF_SHOP_H + +enum WigglytuffShopMode +{ + WIGGLYTUFF_SHOP_MODE_AWAKE, + WIGGLYTUFF_SHOP_MODE_ASLEEP, + WIGGLYTUFF_SHOP_MODE_COUNT +}; +enum WigglytuffShopDialogue +{ + WIGGLY_DLG_00, + WIGGLY_DLG_01, + WIGGLY_DLG_02, + WIGGLY_DLG_03, + WIGGLY_DLG_04, + WIGGLY_DLG_05, + WIGGLY_DLG_06, + WIGGLY_DLG_07, + WIGGLY_DLG_08, + WIGGLY_DLG_09, + WIGGLY_DLG_10, + WIGGLY_DLG_11, + WIGGLY_DLG_12, + WIGGLY_DLG_13, + WIGGLY_DLG_14, + WIGGLY_DLG_15, + WIGGLY_DLG_16, + WIGGLY_DLG_17, + WIGGLY_DLG_18, + WIGGLY_DLG_19, + WIGGLY_DLG_MAX +}; + +#endif // GUARD_COMMON_STRINGS_WIGGLYTUFF_SHOP_H \ No newline at end of file diff --git a/src/common_strings.c b/src/common_strings.c index b318b5b48..ce9397446 100644 --- a/src/common_strings.c +++ b/src/common_strings.c @@ -60,4 +60,5 @@ ALIGNED(4) const u8* const gCommonWithdrawPrompt[] = { sWithdrawPrompt0 }; #include "data/common_strings_felicity_bank.h" #include "data/common_strings_kangaskhan_storage.h" -#include "data/common_strings_kecleon_bros.h" \ No newline at end of file +#include "data/common_strings_kecleon_bros.h" +#include "data/common_strings_wigglytuff_shop.h" \ No newline at end of file diff --git a/src/data/common_strings_wigglytuff_shop.h b/src/data/common_strings_wigglytuff_shop.h new file mode 100644 index 000000000..532b0baca --- /dev/null +++ b/src/data/common_strings_wigglytuff_shop.h @@ -0,0 +1,320 @@ +static const u8 gUnknown_80D7A44[]; +static const u8 gUnknown_80D7C94[]; +static const u8 gUnknown_80D7CE8[]; +static const u8 gUnknown_80D7D64[]; +static const u8 gUnknown_80D7DA0[]; +static const u8 gUnknown_80D7DE0[]; +static const u8 gUnknown_80D7E04[]; +static const u8 gUnknown_80D7E2C[]; +static const u8 gUnknown_80D7E58[]; +static const u8 gUnknown_80D7E9C[]; +static const u8 gUnknown_80D7ED0[]; +static const u8 gUnknown_80D7F10[]; +static const u8 gUnknown_80D7F7C[]; +static const u8 gUnknown_80D8000[]; +static const u8 gUnknown_80D8030[]; +static const u8 gUnknown_80D8054[]; +static const u8 gUnknown_80D8080[]; +static const u8 gUnknown_80D80B0[]; +static const u8 gUnknown_80D80D4[]; +static const u8 gUnknown_80D8104[]; +static const u8 gUnknown_80D8420[]; +static const u8 gUnknown_80D8468[]; +static const u8 gUnknown_80D84F8[]; +static const u8 gUnknown_80D8528[]; +static const u8 gUnknown_80D8550[]; +static const u8 gUnknown_80D8584[]; +static const u8 gUnknown_80D85AC[]; +static const u8 gUnknown_80D85E4[]; +static const u8 gUnknown_80D8620[]; +static const u8 gUnknown_80D8644[]; +static const u8 gUnknown_80D8674[]; +static const u8 gUnknown_80D86E4[]; +static const u8 gUnknown_80D8738[]; +static const u8 gUnknown_80D876C[]; +static const u8 gUnknown_80D8798[]; +static const u8 gUnknown_80D87E0[]; +static const u8 gUnknown_80D8818[]; +static const u8 gUnknown_80D883C[]; + +ALIGNED(4) const u8* const gCommonWigglytuff[WIGGLYTUFF_SHOP_MODE_COUNT][WIGGLY_DLG_MAX] = +{ + [WIGGLYTUFF_SHOP_MODE_AWAKE] = { + [WIGGLY_DLG_00] = gUnknown_80D883C, + [WIGGLY_DLG_01] = gUnknown_80D8818, + [WIGGLY_DLG_02] = gUnknown_80D87E0, + [WIGGLY_DLG_03] = gUnknown_80D8798, + [WIGGLY_DLG_04] = gUnknown_80D876C, + [WIGGLY_DLG_05] = gUnknown_80D8738, + [WIGGLY_DLG_06] = gUnknown_80D86E4, + [WIGGLY_DLG_07] = gUnknown_80D8674, + [WIGGLY_DLG_08] = gUnknown_80D8644, + [WIGGLY_DLG_09] = gUnknown_80D8620, + [WIGGLY_DLG_10] = gUnknown_80D85E4, + [WIGGLY_DLG_11] = gUnknown_80D85AC, + [WIGGLY_DLG_12] = gUnknown_80D8584, + [WIGGLY_DLG_13] = gUnknown_80D8550, + [WIGGLY_DLG_14] = gUnknown_80D8528, + [WIGGLY_DLG_15] = gUnknown_80D84F8, + [WIGGLY_DLG_16] = gUnknown_80D8468, + [WIGGLY_DLG_17] = gUnknown_80D8420, + [WIGGLY_DLG_18] = gUnknown_80D8420, + [WIGGLY_DLG_19] = gUnknown_80D8104 + }, + [WIGGLYTUFF_SHOP_MODE_ASLEEP] = { + [WIGGLY_DLG_00] = gUnknown_80D80D4, + [WIGGLY_DLG_01] = gUnknown_80D80B0, + [WIGGLY_DLG_02] = gUnknown_80D8080, + [WIGGLY_DLG_03] = gUnknown_80D8054, + [WIGGLY_DLG_04] = gUnknown_80D8030, + [WIGGLY_DLG_05] = gUnknown_80D8000, + [WIGGLY_DLG_06] = gUnknown_80D7F7C, + [WIGGLY_DLG_07] = gUnknown_80D7F10, + [WIGGLY_DLG_08] = gUnknown_80D7ED0, + [WIGGLY_DLG_09] = gUnknown_80D7E9C, + [WIGGLY_DLG_10] = gUnknown_80D7E58, + [WIGGLY_DLG_11] = gUnknown_80D7E2C, + [WIGGLY_DLG_12] = gUnknown_80D7E04, + [WIGGLY_DLG_13] = gUnknown_80D7DE0, + [WIGGLY_DLG_14] = gUnknown_80D7DA0, + [WIGGLY_DLG_15] = gUnknown_80D7D64, + [WIGGLY_DLG_16] = gUnknown_80D7CE8, + [WIGGLY_DLG_17] = gUnknown_80D7C94, + [WIGGLY_DLG_18] = gUnknown_80D7C94, + [WIGGLY_DLG_19] = gUnknown_80D7A44 + } +}; + +ALIGNED(4) static const u8 gUnknown_80D7A44[] = _( + " Zzz...\n" + "Want more friends?{EXTRA_MSG}" + " Zzz... Kwoo...\n" + "You need Friend Areas for friends...{EXTRA_MSG}" + " Zzz... Zzz...\n" + "A Pokémon becomes your pal when it{APOSTROPHE}s in\n" + "the right Friend Area...{EXTRA_MSG}" + " Zzz... Dwee...\n" + "That{APOSTROPHE}s why you should get more Friend\n" + "Areas...{EXTRA_MSG}" + " Zzz... Pokémon can only\n" + "live in the right Friend Area for\n" + "their species...{EXTRA_MSG}" + " Kwoo... Sssnore...\n" + "See what Pokémon can live there by\n" + "checking {COLOR_1 YELLOW}Info{END_COLOR_TEXT_1}...{EXTRA_MSG}" + " Zzz...\n" + "I don{APOSTROPHE}t sell some Friend Areas...{EXTRA_MSG}" + " Kwoo...\n" + "Some rescue missions reward you with\n" + "Friend Areas...{EXTRA_MSG}" + " Zzz... Dwee...\n" + "Check the Pelipper Post Office{APOSTROPHE}s Bulletin\n" + "Board or your Mailbox for missions..."); + +ALIGNED(4) static const u8 gUnknown_80D7C94[] = _( + " Sssnore...\n" + "{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}...?\n" + "I can{APOSTROPHE}t get that Friend Area...{EXTRA_MSG}" + " Zzz... Zzz...\n" + "Sorry..."); + +ALIGNED(4) static const u8 gUnknown_80D7CE8[] = _( + " Zzz... Hunh...?\n" + "{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}...?\n" + "I don{APOSTROPHE}t know... I{APOSTROPHE}ll check...{EXTRA_MSG}" + " Sssnore...\n" + "I{APOSTROPHE}ll have it for sale...\n" + "When I find out..."); + +ALIGNED(4) static const u8 gUnknown_80D7D64[] = _( + " Sssnore...\n" + "You can already go...\n" + "Friend Area {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}..."); + +ALIGNED(4) static const u8 gUnknown_80D7DA0[] = _( + " Dwee... Kwoo...\n" + "{COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}{APOSTROPHE}s Friend Area...\n" + "Zzz... {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}..."); + +ALIGNED(4) static const u8 gUnknown_80D7DE0[] = _( + " Another Pokémon...\n" + "Zzz... Check?"); + +ALIGNED(4) static const u8 gUnknown_80D7E04[] = _( + " Zzz... Kwoo...\n" + "Check which Pokémon?"); + +ALIGNED(4) static const u8 gUnknown_80D7E2C[] = _( + " Zzz... Dwee...? Oops?{WAIT_PRESS}\n" + "Not enough money?"); + +ALIGNED(4) static const u8 gUnknown_80D7E58[] = _( + " Zzz... Hunh?{WAIT_PRESS}\n" + "Sssnore... Sorry...\n" + "Fresh out of Friend Areas..."); + +ALIGNED(4) static const u8 gUnknown_80D7E9C[] = _( + " Hunh...?{WAIT_PRESS}\n" + "You don{APOSTROPHE}t have any money...\n" + "Zzzzzz..."); + +ALIGNED(4) static const u8 gUnknown_80D7ED0[] = _( + " Zzz... Zzz?{WAIT_PRESS}\n" + "Hunh...?\n" + "You can{APOSTROPHE}t add to your Friend Areas..."); + +ALIGNED(4) static const u8 gUnknown_80D7F10[] = _( + " Grats... Zzz...{WAIT_PRESS}\n" + "You can go to {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}...{EXTRA_MSG}" + " Dwee... Sssnore...\n" + "Make friends with Pokémon in...\n" + "{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}..."); + +ALIGNED(4) static const u8 gUnknown_80D7F7C[] = _( + " Zzz... Dwee... Gotcha...{WAIT_PRESS}\n" + "Zzz... Let{APOSTROPHE}s do it...{EXTRA_MSG}" + " Sssnore♪ Sssnore♪\n" + "{ARG_POKEMON_6}〜♪ {ARG_POKEMON_6}〜♪\n" + "Let{APOSTROPHE}s be friends...{EXTRA_MSG}" + " Kwoo!\n" + "Taaaaaaah!"); + +ALIGNED(4) static const u8 gUnknown_80D8000[] = _( + " Kwoo? {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}?\n" + "That{APOSTROPHE}s {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}...\n" + "OK?"); + +ALIGNED(4) static const u8 gUnknown_80D8030[] = _( + " Zzz... Wha--?\n" + "More Friend Areas?"); + +ALIGNED(4) static const u8 gUnknown_80D8054[] = _( + " Dwee... Hunh?\n" + "Friend Areas...?\n" + "Which one?"); + +ALIGNED(4) static const u8 gUnknown_80D8080[] = _( + " Thank... Zzz... You...\n" + "Friends{COMMA} friend..."); + +ALIGNED(4) static const u8 gUnknown_80D80B0[] = _( + " Anything? Kwoo...\n" + "Anything else?"); + +ALIGNED(4) static const u8 gUnknown_80D80D4[] = _( + " Friends... Zzz...\n" + "Welcome to the {ARG_POKEMON_6} Club..."); + +ALIGNED(4) static const u8 gUnknown_80D8104[] = _( + " Would you like to get more\n" + "friends...{WAIT_PRESS}\n" + "...More members for your team?{EXTRA_MSG}" + " To add new friends{COMMA} what\n" + "you need are Friend Areas.{EXTRA_MSG}" + " A Pokémon can join your\n" + "rescue team only after it settles in\n" + "the right Friend Area.{EXTRA_MSG}" + " So{COMMA} if you want to recruit\n" + "new members{COMMA} you should add to your\n" + "Friend Areas.{EXTRA_MSG}" + " Oh{COMMA} yes{COMMA} Pokémon can\n" + "only live in the right Friend Area for\n" + "their species.{EXTRA_MSG}" + " If you{APOSTROPHE}re buying a Friend\n" + "Area{COMMA} you should confirm what Pokémon\n" + "can live there by checking {COLOR_1 YELLOW}Info{END_COLOR_TEXT_1}.{EXTRA_MSG}" + " Also{COMMA} there are some Friend\n" + "Areas that I don{APOSTROPHE}t sell.{EXTRA_MSG}" + " I think there are some\n" + "rescue missions that give you access\n" + "to Friend Areas{COMMA} too.{EXTRA_MSG}" + " You should check the\n" + "Pelipper Post Office{APOSTROPHE}s Bulletin Board or\n" + "your Mailbox for rescue requests.{EXTRA_MSG}" + " You know{COMMA} it makes me\n" + "delighted when you make new friends!"); + +ALIGNED(4) static const u8 gUnknown_80D8420[] = _( + " {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}?\n" + "I can{APOSTROPHE}t get that Friend Area for you.{WAIT_PRESS}\n" + "I{APOSTROPHE}m really sorry."); + +ALIGNED(4) static const u8 gUnknown_80D8468[] = _( + " {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}?\n" + "I don{APOSTROPHE}t know much about it at all.{WAIT_PRESS}\n" + "I{APOSTROPHE}ll check up on it.{EXTRA_MSG}" + " I{APOSTROPHE}ll add it to the Friend\n" + "Areas you can buy when I find out more."); + +ALIGNED(4) static const u8 gUnknown_80D84F8[] = _( + " You can already go to the\n" + "Friend Area {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}."); + +ALIGNED(4) static const u8 gUnknown_80D8528[] = _( + " {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}{APOSTROPHE}s Friend Area\n" + "is {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}."); + +ALIGNED(4) static const u8 gUnknown_80D8550[] = _( + " Is there another Pokémon\n" + "you{APOSTROPHE}d like to check?"); + +ALIGNED(4) static const u8 gUnknown_80D8584[] = _( + " Which Pokémon would you\n" + "like to check?"); + +ALIGNED(4) static const u8 gUnknown_80D85AC[] = _( + " Oops?{WAIT_PRESS}\n" + "It doesn{APOSTROPHE}t look like you have enough\n" + "money!"); + +ALIGNED(4) static const u8 gUnknown_80D85E4[] = _( + " Oops?{WAIT_PRESS}\n" + "Oh{COMMA} too bad.{WAIT_PRESS}\n" + "I{APOSTROPHE}m fresh out of Friend Areas."); + +ALIGNED(4) static const u8 gUnknown_80D8620[] = _( + " Um?{WAIT_PRESS}\n" + "You don{APOSTROPHE}t have any money."); + +ALIGNED(4) static const u8 gUnknown_80D8644[] = _( + " Oops!{WAIT_PRESS}\n" + "You can{APOSTROPHE}t add to your Friend Areas."); + +ALIGNED(4) static const u8 gUnknown_80D8674[] = _( + " Congratulations!{WAIT_PRESS}\n" + "You can go to {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1} now!{EXTRA_MSG}" + " You can recruit\n" + "Pokémon that live in the Friend Area\n" + "{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}."); + +ALIGNED(4) static const u8 gUnknown_80D86E4[] = _( + " Gotcha! Let{APOSTROPHE}s do it!{WAIT_PRESS}\n" + "{ARG_POKEMON_6}〜♪ {ARG_POKEMON_6}〜♪{WAIT_PRESS}\n" + "Let{APOSTROPHE}s be friends... Yoomtaaaaaaah!"); + +ALIGNED(4) static const u8 gUnknown_80D8738[] = _( + " {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}?\n" + "That will be {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" + "Is that OK?"); + +ALIGNED(4) static const u8 gUnknown_80D876C[] = _( + " Would you like to add\n" + "other Friend Areas?"); + +ALIGNED(4) static const u8 gUnknown_80D8798[] = _( + " You{APOSTROPHE}d like to add to your\n" + "Friend Areas?\n" + "Which one would you like?"); + +ALIGNED(4) static const u8 gUnknown_80D87E0[] = _( + " Thank you! Come again!\n" + "We{APOSTROPHE}re all friends{COMMA} friend!"); + +ALIGNED(4) static const u8 gUnknown_80D8818[] = _( + " Anything else I can do for\n" + "you?"); + +ALIGNED(4) static const u8 gUnknown_80D883C[] = _( + " Friends are my treasures!\n" + "Welcome to the {ARG_POKEMON_6} Club--\n" + "a circle of friends! "); \ No newline at end of file diff --git a/src/wigglytuff_shop3.c b/src/wigglytuff_shop3.c index 5d9e74749..4b0ea5b83 100644 --- a/src/wigglytuff_shop3.c +++ b/src/wigglytuff_shop3.c @@ -166,45 +166,45 @@ static void UpdateWigglytuffDialogue(void) switch (sWigglytuffShop3Work->state) { case WIGGLYTUFF_INIT: sub_80222C8(); - sub_8014248(gCommonWigglytuff[sWigglytuffShop3Work->mode][0], 0, sWigglytuffShop3Work->menuAction1, sWigglytuffShop3Work->unk1C, sWigglytuffShop3Work->unk5C, 4, 0, sWigglytuffShop3Work->unkCC, 12); + sub_8014248(gCommonWigglytuff[sWigglytuffShop3Work->mode][WIGGLY_DLG_00], 0, sWigglytuffShop3Work->menuAction1, sWigglytuffShop3Work->unk1C, sWigglytuffShop3Work->unk5C, 4, 0, sWigglytuffShop3Work->unkCC, 12); break; case WIGGLYTUFF_MAIN_MENU: sub_80222C8(); - sub_8014248(gCommonWigglytuff[sWigglytuffShop3Work->mode][1], 0, sWigglytuffShop3Work->menuAction1, sWigglytuffShop3Work->unk1C, sWigglytuffShop3Work->unk5C, 4, 0, sWigglytuffShop3Work->unkCC, 12); + sub_8014248(gCommonWigglytuff[sWigglytuffShop3Work->mode][WIGGLY_DLG_01], 0, sWigglytuffShop3Work->menuAction1, sWigglytuffShop3Work->unk1C, sWigglytuffShop3Work->unk5C, 4, 0, sWigglytuffShop3Work->unkCC, 12); break; case FRIEND_AREA_SELECT_BUY: sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_UNK9; - sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][3], 0, sWigglytuffShop3Work->unkCC, 0x10d); + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][WIGGLY_DLG_03], 0, sWigglytuffShop3Work->unkCC, 0x10d); break; case FRIEND_AREA_SELECT_BUY_AGAIN: sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_UNKA; - sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][4], 0, sWigglytuffShop3Work->unkCC, 0x10d); + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][WIGGLY_DLG_04], 0, sWigglytuffShop3Work->unkCC, 0x10d); break; case WIGGLYTUFF_INFO: sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_MAIN_MENU; - sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][19], 0, sWigglytuffShop3Work->unkCC, 0x10d); + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][WIGGLY_DLG_19], 0, sWigglytuffShop3Work->unkCC, 0x10d); break; case WIGGLYTUFF_PRE_EXIT: sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_EXIT; - sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][2], 0, sWigglytuffShop3Work->unkCC, 0x30d); + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][WIGGLY_DLG_02], 0, sWigglytuffShop3Work->unkCC, 0x30d); break; default: break; case WIGGLYTUFF_CANT_ADD_FRIEND_AREA: sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_PRE_EXIT; - sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][8], 0, sWigglytuffShop3Work->unkCC, 0x10d); + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][WIGGLY_DLG_08], 0, sWigglytuffShop3Work->unkCC, 0x10d); break; case NO_MONEY: sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_UNKA; - sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][9], 0, sWigglytuffShop3Work->unkCC, 0x10d); + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][WIGGLY_DLG_09], 0, sWigglytuffShop3Work->unkCC, 0x10d); break; case NO_FRIEND_AREAS: sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_PRE_EXIT; - sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][10], 0, sWigglytuffShop3Work->unkCC, 0x10d); + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][WIGGLY_DLG_10], 0, sWigglytuffShop3Work->unkCC, 0x10d); break; case NOT_ENOUGH_MONEY: sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_UNKA; - sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][11], 0, sWigglytuffShop3Work->unkCC, 0x10d); + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][WIGGLY_DLG_11], 0, sWigglytuffShop3Work->unkCC, 0x10d); break; case WIGGLYTUFF_UNK9: sub_80211AC(2, 3); @@ -224,7 +224,7 @@ static void UpdateWigglytuffDialogue(void) CreateWigglytuffConfirmFriendAreaMenu(); sub_8092578(gUnknown_202E628, sWigglytuffShop3Work->chosenFriendArea, FALSE); gUnknown_202DE30[0] = sWigglytuffShop3Work->friendAreaPrice; - sub_8014248(gCommonWigglytuff[sWigglytuffShop3Work->mode][5], 0, 5, sWigglytuffShop3Work->unk1C, 0, 4, 0, sWigglytuffShop3Work->unkCC, 12); + sub_8014248(gCommonWigglytuff[sWigglytuffShop3Work->mode][WIGGLY_DLG_05], 0, 5, sWigglytuffShop3Work->unk1C, 0, 4, 0, sWigglytuffShop3Work->unkCC, 12); break; case FRIEND_AREA_INFO: sub_8021774(sWigglytuffShop3Work->chosenFriendArea, FALSE, 2); @@ -232,7 +232,7 @@ static void UpdateWigglytuffDialogue(void) case CONFIRM_BUY_FRIEND_AREA: sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_UNKD; sub_8092578(gUnknown_202E628, sWigglytuffShop3Work->chosenFriendArea, FALSE); - sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][6], 0, sWigglytuffShop3Work->unkCC, 0x10d); + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][WIGGLY_DLG_06], 0, sWigglytuffShop3Work->unkCC, 0x10d); break; case WIGGLYTUFF_UNKD: sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_UNKE; @@ -252,15 +252,15 @@ static void UpdateWigglytuffDialogue(void) sWigglytuffShop3Work->fallbackState = FRIEND_AREA_SELECT_BUY_AGAIN; PlaySound(206); - sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][7], 0, sWigglytuffShop3Work->unkCC, 0x10d); + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][WIGGLY_DLG_07], 0, sWigglytuffShop3Work->unkCC, 0x10d); break; case WIGGLYTUFF_CHECK: sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_UNK16; - sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][12], 0, sWigglytuffShop3Work->unkCC, 0x10d); + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][WIGGLY_DLG_12], 0, sWigglytuffShop3Work->unkCC, 0x10d); break; case WIGGLYTUFF_CHECK_AGAIN: sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_UNK17; - sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][13], 0, sWigglytuffShop3Work->unkCC, 0x10d); + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][WIGGLY_DLG_13], 0, sWigglytuffShop3Work->unkCC, 0x10d); break; case WIGGLYTUFF_UNK16: sub_8023144(0, 3, 0, 10); @@ -296,23 +296,23 @@ static void UpdateWigglytuffDialogue(void) string = GetMonSpecies(sWigglytuffShop3Work->chosenSpecies); strcpy(gAvailablePokemonNames, string); sub_8092578(gUnknown_202E628, sWigglytuffShop3Work->chosenFriendArea, FALSE); - sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][14], 0, sWigglytuffShop3Work->unkCC, 0x10d); + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][WIGGLY_DLG_14], 0, sWigglytuffShop3Work->unkCC, 0x10d); break; case WIGGLYTUFF_CHECK_HAS_FRIEND_AREA: sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_CHECK_AGAIN; - sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][15], 0, sWigglytuffShop3Work->unkCC, 0x10d); + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][WIGGLY_DLG_15], 0, sWigglytuffShop3Work->unkCC, 0x10d); break; case WIGGLYTUFF_CHECK_POST_GAME: sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_CHECK_AGAIN; - sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][16], 0, sWigglytuffShop3Work->unkCC, 0x10d); + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][WIGGLY_DLG_16], 0, sWigglytuffShop3Work->unkCC, 0x10d); break; case WIGGLYTUFF_CHECK_WONDER_MAIL: sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_CHECK_AGAIN; - sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][17], 0, sWigglytuffShop3Work->unkCC, 0x10d); + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][WIGGLY_DLG_17], 0, sWigglytuffShop3Work->unkCC, 0x10d); break; case WIGGLYTUFF_CHECK_LEGENDARY: sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_CHECK_AGAIN; - sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][18], 0, sWigglytuffShop3Work->unkCC, 0x10d); + sub_80141B4(gCommonWigglytuff[sWigglytuffShop3Work->mode][WIGGLY_DLG_18], 0, sWigglytuffShop3Work->unkCC, 0x10d); break; } } From 6dcc8e3ab5f633a62f6e9a415b203f791369e6d0 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sat, 23 Sep 2023 04:54:54 -0400 Subject: [PATCH 37/47] Gulpin shop common_strings --- data/common_strings.s | 518 ----------------- include/common_strings.h | 9 +- .../constants/common_strings_gulpin_shop.h | 40 ++ src/code_801B60C.c | 6 +- src/common_strings.c | 3 +- src/data/common_strings_gulpin_shop.h | 457 +++++++++++++++ src/data/common_strings_kecleon_bros.h | 548 +++++++++--------- src/data/common_strings_wigglytuff_shop.h | 232 ++++---- src/debug_menu2.c | 2 +- src/felicity_bank.c | 12 +- src/friend_area_action_menu.c | 6 +- src/friend_list_menu.c | 2 +- src/gulpin_shop.c | 10 +- src/gulpin_shop_801FB50.c | 72 +-- src/kangaskhan_storage1.c | 20 +- src/kangaskhan_storage2.c | 14 +- src/mailbox.c | 4 +- src/makuhita_dojo1.c | 4 +- src/party_list_menu.c | 6 +- src/pelipper_board.c | 4 +- src/wonder_mail_3.c | 24 +- src/wonder_mail_3_mid.c | 2 +- 22 files changed, 985 insertions(+), 1010 deletions(-) create mode 100644 include/constants/common_strings_gulpin_shop.h create mode 100644 src/data/common_strings_gulpin_shop.h diff --git a/data/common_strings.s b/data/common_strings.s index 774dc407f..4283989e4 100644 --- a/data/common_strings.s +++ b/data/common_strings.s @@ -2,524 +2,6 @@ .align 2,0 - .global gCommonGulpin -gCommonGulpin: @ 80D8888 (Gulpin Link Shop) - .4byte gUnknown_80D9F74 - .4byte gUnknown_80D9F24 - .4byte gUnknown_80D9EF4 - .4byte gUnknown_80D9EC0 - .4byte gUnknown_80D9E88 - .4byte gUnknown_80D9E48 - .4byte gUnknown_80D9E34 - .4byte gUnknown_80D9DF4 - .4byte gUnknown_80D9DCC - .4byte gUnknown_80D9DA4 - .4byte gUnknown_80D9D00 - .4byte gUnknown_80D9CC0 - .4byte gUnknown_80D9C68 - .4byte gUnknown_80D9BD8 - .4byte gUnknown_80D9B1C - .4byte gUnknown_80D9ACC - .4byte gUnknown_80D9A50 - .4byte gUnknown_80D9A2C - .4byte gUnknown_80D99F0 - .4byte gUnknown_80D9988 - .4byte gUnknown_80D9904 - .4byte gUnknown_80D98D4 - .4byte gUnknown_80D972C - .4byte gUnknown_80D9498 - .4byte gUnknown_80D9328 - .4byte gUnknown_80D92EC - .4byte gUnknown_80D92B4 - .4byte gUnknown_80D9290 - .4byte gUnknown_80D9268 - .4byte gUnknown_80D9234 - .4byte gUnknown_80D9204 - .4byte gUnknown_80D91E4 - .4byte gUnknown_80D91C4 - .4byte gUnknown_80D9194 - .4byte gUnknown_80D9168 - .4byte gUnknown_80D90BC - .4byte gUnknown_80D9080 - .4byte gUnknown_80D9034 - .4byte gUnknown_80D8F98 - .4byte gUnknown_80D8EC4 - .4byte gUnknown_80D8E9C - .4byte gUnknown_80D8E48 - .4byte gUnknown_80D8E28 - .4byte gUnknown_80D8DE8 - .4byte gUnknown_80D8D64 - .4byte gUnknown_80D8CC8 - .4byte gUnknown_80D8C98 - .4byte gUnknown_80D8BD4 - .4byte gUnknown_80D8AB8 - .4byte gUnknown_80D8950 - - .global gUnknown_80D8950 -gUnknown_80D8950: - .string " Zzz... Snuffle...\n" - .string "I{APOSTROPHE}d go broke if it weren{APOSTROPHE}t for those\n" - .string "forgetful Pokémon...{EXTRA_MSG}" - .string " Zzz... Gwaaah...\n" - .string "Especially that {COLOR_1 CYAN}{ARG_POKEMON_4}{END_COLOR_TEXT_1}...\n" - .string "It seems to be forgetful...{EXTRA_MSG}" - .string " Sssnore...\n" - .string "I hope it forgets more moves...\n" - .string "So it needs to see me...{EXTRA_MSG}" - .string " Zzz... Mumble...\n" - .string "But we decided to get rid of that\n" - .string "{COLOR_1 CYAN}{ARG_POKEMON_4}{END_COLOR_TEXT_1}...{EXTRA_MSG}" - .string " Gwaaaah... Gweh...\n" - .string "{COLOR_1 CYAN}{ARG_POKEMON_4}{END_COLOR_TEXT_1} won{APOSTROPHE}t be coming around\n" - .string "anymore... \0" - .align 2, 0 - - .global gUnknown_80D8AB8 -gUnknown_80D8AB8: - .string " Zzznork...{WAIT_PRESS}\n" - .string "Link moves to use them all in\n" - .string "one turn...{EXTRA_MSG}" - .string " Zzz... Fnurf...?\n" - .string "Linked moves...\n" - .string "Top one goes first...{EXTRA_MSG}" - .string " Zzz... Hah...?\n" - .string "Delink moves to break links...{EXTRA_MSG}" - .string " Zzzzz... Fwaaah...\n" - .string "Change order of moves with {R_BUTTON}...\n" - .string "And up and down on {DPAD}...{EXTRA_MSG}" - .string " Gwaaah... Gweh...\n" - .string "Make your own links...\0" - .align 2, 0 - - .global gUnknown_80D8BD4 -gUnknown_80D8BD4: - .string " Zzz... Zzz...\n" - .string "A set move can be used...\n" - .string "Press {L_BUTTON} and {A_BUTTON}...{EXTRA_MSG}" - .string " Sssnort... Set the move...{WAIT_PRESS}\n" - .string "Press {L_BUTTON} and {A_BUTTON}...{WAIT_PRESS} Use move!{WAIT_PRESS}\n" - .string "Convenient...{EXTRA_MSG}" - .string " Sssnore...\n" - .string "Switch the set move in a dungeon{COMMA} too...\0" - .align 2, 0 - - .global gUnknown_80D8C98 -gUnknown_80D8C98: - .string " Zzznork... Fnurfle?\n" - .string "What do you want to know?\0" - .align 2, 0 - - .global gUnknown_80D8CC8 -gUnknown_80D8CC8: - .string " Fgwaaah...\n" - .string "Here goes...{EXTRA_MSG}" - .string " Zzznort...\n" - .string "Gggggggg...{WAIT_PRESS} Pwah!{EXTRA_MSG}" - .string " Fwaaah hah!\n" - .string "There...{EXTRA_MSG}" - .string " Zzz... Mutter...\n" - .string "{COLOR_1 CYAN}{ARG_POKEMON_5}{END_COLOR_TEXT_1} forgot...\n" - .string "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and moves linked to it...\0" - .align 2, 0 - - .global gUnknown_80D8D64 -gUnknown_80D8D64: - .string " Fgwaaah...\n" - .string "Here goes...{EXTRA_MSG}" - .string " Zzznort...\n" - .string "Gggggggg...{WAIT_PRESS} Pwah!{EXTRA_MSG}" - .string " Fwaaah hah!\n" - .string "There...{EXTRA_MSG}" - .string " Zzz... Mumble...\n" - .string "{COLOR_1 CYAN}{ARG_POKEMON_5}{END_COLOR_TEXT_1} forgot...\n" - .string "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}...\0" - .align 2, 0 - - .global gUnknown_80D8DE8 -gUnknown_80D8DE8: - .string " Zzz... Fwaah? Forget...?\n" - .string "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and any moves\n" - .string "linked to it?\0" - .align 2, 0 - - .global gUnknown_80D8E28 -gUnknown_80D8E28: - .string " Zzz... Forget...?\n" - .string "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}?\0" - .align 2, 0 - - .global gUnknown_80D8E48 -gUnknown_80D8E48: - .string " Zzznork...? Hunh?\n" - .string "You{APOSTROPHE}re a special Pokémon...{EXTRA_MSG}" - .string " Mumble...\n" - .string "I can{APOSTROPHE}t help you...\0" - .align 2, 0 - - .global gUnknown_80D8E9C -gUnknown_80D8E9C: - .string " Zzz... Fwaah?\n" - .string "No moves to remember...\0" - .align 2, 0 - - .global gUnknown_80D8EC4 -gUnknown_80D8EC4: - .string " Fgwaaah...\n" - .string "Here goes...{EXTRA_MSG}" - .string " Zzznort...\n" - .string "Gggggggg...{WAIT_PRESS} Pwah! Gulpin!{EXTRA_MSG}" - .string " Fwaaah hah!\n" - .string "There...{EXTRA_MSG}" - .string " Zzz... Mumble...\n" - .string "{COLOR_1 CYAN_3}{ARG_POKEMON_5}{END_COLOR_TEXT_1}{APOSTROPHE}s OK...{EXTRA_MSG}" - .string " Sssnork... Forgotten...\n" - .string "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and moves linked to it...\n" - .string "Remembered {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}...\0" - .align 2, 0 - - .global gUnknown_80D8F98 -gUnknown_80D8F98: - .string " Fgwaah...\n" - .string "Here goes...{EXTRA_MSG}" - .string " Zzznort...\n" - .string "Gggggggg...{WAIT_PRESS} Pwah! Gulpin!{EXTRA_MSG}" - .string " Fwaah hah!\n" - .string "There...{EXTRA_MSG}" - .string " Zzz... Zzz... {COLOR_1 CYAN_3}{ARG_POKEMON_5}{END_COLOR_TEXT_1}\n" - .string "forgot {COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}...\n" - .string "Remembered {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}...\0" - .align 2, 0 - - .global gUnknown_80D9034 -gUnknown_80D9034: - .string " Zzz? Fnurf? \n" - .string "Forget {COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}...and moves linked\n" - .string "to it? Remember {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}?\0" - .align 2, 0 - - .global gUnknown_80D9080 -gUnknown_80D9080: - .string " Zzznort... Grumble...\n" - .string "Forget {COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}?\n" - .string "Remember {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}?\0" - .align 2, 0 - - .global gUnknown_80D90BC -gUnknown_80D90BC: - .string " Zzzznort... Move...?\n" - .string "Remember {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}?{EXTRA_MSG}" - .string " Fwaah...\n" - .string "Gggggggggggg...{WAIT_PRESS} Gulpin!{EXTRA_MSG}" - .string " Fgwaah...\n" - .string "There...{EXTRA_MSG}" - .string " Zzz... Zzz...\n" - .string "{COLOR_1 CYAN_3}{ARG_POKEMON_5}{END_COLOR_TEXT_1} remembered...\n" - .string "Hunh? That move{COMMA} {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}...\0" - .align 2, 0 - - .global gUnknown_80D9168 -gUnknown_80D9168: - .string " Zzz... Fgwah...?\n" - .string "Remember what? What move?\0" - .align 2, 0 - - .global gUnknown_80D9194 -gUnknown_80D9194: - .string " Gwaah... Gwaah...\n" - .string "Who{APOSTROPHE}s gonna link moves?\0" - .align 2, 0 - - .global gUnknown_80D91C4 -gUnknown_80D91C4: - .string " Zzz... Zzz...\n" - .string "Come again...\0" - .align 2, 0 - - .global gUnknown_80D91E4 -gUnknown_80D91E4: - .string " Zzz... Zzz...\n" - .string "Keep going...?\0" - .align 2, 0 - - .global gUnknown_80D9204 -gUnknown_80D9204: - .string " Zzznort... Zzznnort...\n" - .string "Can{APOSTROPHE}t forget that...\0" - .align 2, 0 - - .global gUnknown_80D9234 -gUnknown_80D9234: - .string " Sssnork... Sssnork...\n" - .string "Nothing to be delinked...\0" - .align 2, 0 - - .global gUnknown_80D9268 -gUnknown_80D9268: - .string " Zzz... Grumph...\n" - .string "Nothing to link...\0" - .align 2, 0 - - .global gUnknown_80D9290 -gUnknown_80D9290: - .string " Zzz... Grunt?\n" - .string "Not enough money...\0" - .align 2, 0 - - .global gUnknown_80D92B4 -gUnknown_80D92B4: - .string " Zzz... Gulpin Link Shop...\n" - .string "Link for just 150 {POKE}...\0" - .align 2, 0 - - .global gUnknown_80D92EC -gUnknown_80D92EC: - .string " Zzz... Hello...\n" - .string "Gulpin Link Shop...\n" - .string "Link for 150 {POKE}...\0" - .align 2, 0 - - .global gUnknown_80D9328 -gUnknown_80D9328: - .string " What if you had to forget\n" - .string "a move{COMMA} but you wanted it back?{WAIT_PRESS}\n" - .string "Ever face that situation?{EXTRA_MSG}" - .string " I can help!{WAIT_PRESS}\n" - .string "Come to me{COMMA} and I can make you instantly\n" - .string "remember forgotten moves!{EXTRA_MSG}" - .string " I...{WAIT_PRESS}\n" - .string "Well{COMMA} when Pokémon remember...{WAIT_PRESS}\n" - .string "I love seeing that instant!{EXTRA_MSG}" - .string " That look of enlightenment!{WAIT_PRESS}\n" - .string "That amazed look of pleasure!{EXTRA_MSG}" - .string " I run this business because\n" - .string "I live to see that moment!\0" - .align 2, 0 - - .global gUnknown_80D9498 -gUnknown_80D9498: - .string " When moves are linked...{WAIT_PRESS}\n" - .string "Two or more moves can be used one after\n" - .string "another in one turn!{EXTRA_MSG}" - .string " For example{COMMA} if the moves\n" - .string "{COLOR_1 CYAN}Scratch{END_COLOR_TEXT_1} and {COLOR_1 CYAN}Growl{END_COLOR_TEXT_1} are\n" - .string "linked...{EXTRA_MSG}" - .string " Both {COLOR_1 CYAN}Scratch{END_COLOR_TEXT_1} and {COLOR_1 CYAN}Growl{END_COLOR_TEXT_1} are\n" - .string "used in one turn!{WAIT_PRESS}\n" - .string "See? Amazing{COMMA} huh?{EXTRA_MSG}" - .string " Using links{COMMA} heheh...{WAIT_PRESS}\n" - .string "Well{COMMA} depending on the moves you link{COMMA}\n" - .string "you can get incredible results!{EXTRA_MSG}" - .string " Oh{COMMA} yes.\n" - .string "When moves are linked{COMMA} they are used in\n" - .string "sequence from the top one first.{EXTRA_MSG}" - .string " You can also separate linked\n" - .string "moves by selecting the Delink command.{EXTRA_MSG}" - .string " The sequence of moves can\n" - .string "be changed by pressing {R_BUTTON}{COMMA}\n" - .string "then pressing up or down on {DPAD}.{EXTRA_MSG}" - .string " Try to innovate with links.{WAIT_PRESS}\n" - .string "Try creating links of your very own!\0" - .align 2, 0 - - .global gUnknown_80D972C -gUnknown_80D972C: - .string " When you{APOSTROPHE}re in a dungeon\n" - .string "and you{APOSTROPHE}re about to use a move...{WAIT_PRESS}\n" - .string "Isn{APOSTROPHE}t it a pain to open a window each time?{EXTRA_MSG}" - .string " You can avoid that!{WAIT_PRESS}\n" - .string "You can just conveniently {QUOTE_START}Set{QUOTE_END}\n" - .string "a move for instant use!{EXTRA_MSG}" - .string " A set move can be instantly\n" - .string "used with {L_BUTTON} and {A_BUTTON}!{WAIT_PRESS}\n" - .string "See? Isn{APOSTROPHE}t it easy?{EXTRA_MSG}" - .string " Just set the move...{WAIT_PRESS}\n" - .string "Hold {L_BUTTON} and then press {A_BUTTON} to use it!{WAIT_PRESS}\n" - .string "It{APOSTROPHE}s very convenient!{EXTRA_MSG}" - .string " You can also switch the set\n" - .string "move in a dungeon.\n" - .string "Do try it out!\n" - .string "\0" - .align 2, 0 - - .global gUnknown_80D98D4 -gUnknown_80D98D4: - .string " Sure thing!\n" - .string "What do you need information on?\0" - .align 2, 0 - - .global gUnknown_80D9904 -gUnknown_80D9904: - .string " OK{COMMA} here goes!{EXTRA_MSG}" - .string " Gggggggg...{WAIT_PRESS} Poof!{EXTRA_MSG}" - .string " There!\n" - .string "Success!{EXTRA_MSG}" - .string " {COLOR_1 CYAN}{ARG_POKEMON_5}{END_COLOR_TEXT_1} has forgotten\n" - .string "the move {COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and any moves\n" - .string "linked to it!\0" - .align 2, 0 - - .global gUnknown_80D9988 -gUnknown_80D9988: - .string " OK{COMMA} here goes!{EXTRA_MSG}" - .string " Gggggggg...{WAIT_PRESS} Poof!{EXTRA_MSG}" - .string " There!\n" - .string "Success!{EXTRA_MSG}" - .string " {COLOR_1 CYAN}{ARG_POKEMON_5}{END_COLOR_TEXT_1} has forgotten\n" - .string "the move {COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}!\0" - .align 2, 0 - - .global gUnknown_80D99F0 -gUnknown_80D99F0: - .string " So{COMMA} forget the move\n" - .string "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and any moves linked to it?\0" - .align 2, 0 - - .global gUnknown_80D9A2C -gUnknown_80D9A2C: - .string " So{COMMA} forget the move\n" - .string "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}?\0" - .align 2, 0 - - .global gUnknown_80D9A50 -gUnknown_80D9A50: - .string " Uh... Huh?{WAIT_PRESS}\n" - .string "You appear to be a special Pokémon.{EXTRA_MSG}" - .string " I can{APOSTROPHE}t help you remember\n" - .string "any moves{COMMA} I don{APOSTROPHE}t think.\n" - .string "I{APOSTROPHE}m sorry.\0" - .align 2, 0 - - .global gUnknown_80D9ACC -gUnknown_80D9ACC: - .string " Uh... Hello?{WAIT_PRESS}\n" - .string "There don{APOSTROPHE}t appear to be any moves that\n" - .string "can be remembered.\0" - .align 2, 0 - - .global gUnknown_80D9B1C -gUnknown_80D9B1C: - .string " OK{COMMA} here goes!{EXTRA_MSG}" - .string " Gggggggg...{WAIT_PRESS} Pwah! Gulpin!{EXTRA_MSG}" - .string " There!\n" - .string "Success!{EXTRA_MSG}" - .string " {COLOR_1 CYAN_3}{ARG_POKEMON_5}{END_COLOR_TEXT_1} is done!{EXTRA_MSG}" - .string " It{APOSTROPHE}s forgotten the move\n" - .string "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and any moves linked to it{COMMA}\n" - .string "and {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1} has been remembered!\0" - .align 2, 0 - - .global gUnknown_80D9BD8 -gUnknown_80D9BD8: - .string " OK{COMMA} here goes!{EXTRA_MSG}" - .string " Gggggggg...{WAIT_PRESS} Pwah! Gulpin!{EXTRA_MSG}" - .string " There!\n" - .string "Success!{EXTRA_MSG}" - .string " {COLOR_1 CYAN_3}{ARG_POKEMON_5}{END_COLOR_TEXT_1} has forgotten\n" - .string "the move {COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and remembered\n" - .string "the move {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}!\0" - .align 2, 0 - - .global gUnknown_80D9C68 -gUnknown_80D9C68: - .string " So{COMMA} forget {COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}\n" - .string "and any moves linked to it{COMMA} and remember\n" - .string "the move {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}?\0" - .align 2, 0 - - .global gUnknown_80D9CC0 -gUnknown_80D9CC0: - .string " So{COMMA} forget the move\n" - .string "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and remember the move\n" - .string "{COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}?\0" - .align 2, 0 - - .global gUnknown_80D9D00 -gUnknown_80D9D00: - .string " So{COMMA} the move {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}\n" - .string "is the one to be remembered?{WAIT_PRESS}\n" - .string "OK{COMMA} here goes!{EXTRA_MSG}" - .string " Gggggggggggg...{WAIT_PRESS} Gulpin!{EXTRA_MSG}" - .string " There!\n" - .string "Success!{EXTRA_MSG}" - .string " {COLOR_1 CYAN_3}{ARG_POKEMON_5}{END_COLOR_TEXT_1} has\n" - .string "remembered the move {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}!\0" - .align 2, 0 - - .global gUnknown_80D9DA4 -gUnknown_80D9DA4: - .string " Which move would you like\n" - .string "to recall?\0" - .align 2, 0 - - .global gUnknown_80D9DCC -gUnknown_80D9DCC: - .string " Good!\n" - .string "Now{COMMA} who wants to link moves?\0" - .align 2, 0 - - .global gUnknown_80D9DF4 -gUnknown_80D9DF4: - .string " Whenever you get the urge\n" - .string "to link moves{COMMA} please come see me!\0" - .align 2, 0 - - .global gUnknown_80D9E34 -gUnknown_80D9E34: - .string " Shall we go on?\0" - .align 2, 0 - - .global gUnknown_80D9E48 -gUnknown_80D9E48: - .string " If you forget that move{COMMA}\n" - .string "you won{APOSTROPHE}t have any moves at all.\0" - .align 2, 0 - - .global gUnknown_80D9E88 -gUnknown_80D9E88: - .string " That move isn{APOSTROPHE}t linked{COMMA}\n" - .string "so it can{APOSTROPHE}t be delinked.\0" - .align 2, 0 - - .global gUnknown_80D9EC0 -gUnknown_80D9EC0: - .string " Too bad.\n" - .string "There are no moves that can be linked.\0" - .align 2, 0 - - .global gUnknown_80D9EF4 -gUnknown_80D9EF4: - .string " Uh... Hello?\n" - .string "You don{APOSTROPHE}t have enough money?\0" - .align 2, 0 - - .global gUnknown_80D9F24 -gUnknown_80D9F24: - .string " Welcome to the Gulpin\n" - .string "Link Shop!\n" - .string "Link moves all you like for just 150 {POKE}!\0" - .align 2, 0 - - .global gUnknown_80D9F74 -gUnknown_80D9F74: - .string " Hello!\n" - .string "Welcome to the Gulpin Link Shop!\n" - .string "Link moves all you like for just 150 {POKE}!\0" - .align 2, 0 - - - - - - - - - - - - - - - .global gCommonMakuhita gCommonMakuhita: @ 80D9FC8 (Makuhita Dojo) .4byte gUnknown_80DAA44 diff --git a/include/common_strings.h b/include/common_strings.h index 79bded698..db60faeb6 100644 --- a/include/common_strings.h +++ b/include/common_strings.h @@ -5,13 +5,8 @@ #include "constants/common_strings_kangaskhan_storage.h" #include "constants/common_strings_kecleon_bros.h" #include "constants/common_strings_wigglytuff_shop.h" +#include "constants/common_strings_gulpin_shop.h" -enum GulpinShopMode -{ - GULPIN_SHOP_MODE_AWAKE, - GULPIN_SHOP_MODE_ASLEEP, - GULPIN_SHOP_MODE_COUNT -}; enum MakuhitaDojoMode { MAKUHITA_DOJO_MODE_AWAKE, @@ -50,7 +45,7 @@ extern const u8* const gCommonFelicity[FEL_MODE_COUNT][FEL_DLG_MAX]; extern const u8* const gCommonKangStorage[KANG_MODE_COUNT][KANG_DLG_MAX]; extern const u8* const gCommonKecleonBros[KECLEON_BROS_MODE_COUNT][KECLEON_DLG_MAX]; extern const u8* const gCommonWigglytuff[WIGGLYTUFF_SHOP_MODE_COUNT][WIGGLY_DLG_MAX]; -extern const u8* const gCommonGulpin[GULPIN_SHOP_MODE_COUNT][25]; // 80D8888 +extern const u8* const gCommonGulpin[GULPIN_SHOP_MODE_COUNT][GULPIN_DLG_MAX]; extern const u8* const gCommonMakuhita[MAKUHITA_DOJO_MODE_COUNT][10]; // 80D9FC8 extern const Hints gCommonHints[MAX_HINTS]; // 80DAA98 diff --git a/include/constants/common_strings_gulpin_shop.h b/include/constants/common_strings_gulpin_shop.h new file mode 100644 index 000000000..fdcb0c798 --- /dev/null +++ b/include/constants/common_strings_gulpin_shop.h @@ -0,0 +1,40 @@ +#ifndef GUARD_COMMON_STRINGS_GULPIN_SHOP_H +#define GUARD_COMMON_STRINGS_GULPIN_SHOP_H + +enum GulpinShopMode +{ + GULPIN_SHOP_MODE_AWAKE, + GULPIN_SHOP_MODE_ASLEEP, + GULPIN_SHOP_MODE_COUNT +}; +enum GulpinShopDialogue +{ + GULPIN_DLG_00, + GULPIN_DLG_01, + GULPIN_DLG_02, + GULPIN_DLG_03, + GULPIN_DLG_04, + GULPIN_DLG_05, + GULPIN_DLG_06, + GULPIN_DLG_07, + GULPIN_DLG_08, + GULPIN_DLG_09, + GULPIN_DLG_10, + GULPIN_DLG_11, + GULPIN_DLG_12, + GULPIN_DLG_13, + GULPIN_DLG_14, + GULPIN_DLG_15, + GULPIN_DLG_16, + GULPIN_DLG_17, + GULPIN_DLG_18, + GULPIN_DLG_19, + GULPIN_DLG_20, + GULPIN_DLG_21, + GULPIN_DLG_22, + GULPIN_DLG_23, + GULPIN_DLG_24, + GULPIN_DLG_MAX +}; + +#endif // GUARD_COMMON_STRINGS_GULPIN_SHOP_H \ No newline at end of file diff --git a/src/code_801B60C.c b/src/code_801B60C.c index 06ef600c9..ab906ebed 100644 --- a/src/code_801B60C.c +++ b/src/code_801B60C.c @@ -308,7 +308,7 @@ static void sub_801BB5C(void) sUnknown_203B234->unkCC[loopMax].menuAction = 7; loopMax++; - sUnknown_203B234->unkCC[loopMax].text = *gCommonInfo; + sUnknown_203B234->unkCC[loopMax].text = gCommonInfo[0]; sUnknown_203B234->unkCC[loopMax].menuAction = 8; loopMax++; @@ -334,11 +334,11 @@ static void sub_801BC24(void) s32 loopMax; loopMax = 0; - sUnknown_203B234->unkCC[loopMax].text = *gCommonYes; + sUnknown_203B234->unkCC[loopMax].text = gCommonYes[0]; sUnknown_203B234->unkCC[loopMax].menuAction = 2; loopMax++; - sUnknown_203B234->unkCC[loopMax].text = *gCommonNo; + sUnknown_203B234->unkCC[loopMax].text = gCommonNo[0]; sUnknown_203B234->unkCC[loopMax].menuAction = 3; loopMax++; diff --git a/src/common_strings.c b/src/common_strings.c index ce9397446..c9191d3c7 100644 --- a/src/common_strings.c +++ b/src/common_strings.c @@ -61,4 +61,5 @@ ALIGNED(4) const u8* const gCommonWithdrawPrompt[] = { sWithdrawPrompt0 }; #include "data/common_strings_felicity_bank.h" #include "data/common_strings_kangaskhan_storage.h" #include "data/common_strings_kecleon_bros.h" -#include "data/common_strings_wigglytuff_shop.h" \ No newline at end of file +#include "data/common_strings_wigglytuff_shop.h" +#include "data/common_strings_gulpin_shop.h" \ No newline at end of file diff --git a/src/data/common_strings_gulpin_shop.h b/src/data/common_strings_gulpin_shop.h new file mode 100644 index 000000000..f5a497b5d --- /dev/null +++ b/src/data/common_strings_gulpin_shop.h @@ -0,0 +1,457 @@ +static const u8 sUnknown_80D8950[]; +static const u8 sUnknown_80D8AB8[]; +static const u8 sUnknown_80D8BD4[]; +static const u8 sUnknown_80D8C98[]; +static const u8 sUnknown_80D8CC8[]; +static const u8 sUnknown_80D8D64[]; +static const u8 sUnknown_80D8DE8[]; +static const u8 sUnknown_80D8E28[]; +static const u8 sUnknown_80D8E48[]; +static const u8 sUnknown_80D8E9C[]; +static const u8 sUnknown_80D8EC4[]; +static const u8 sUnknown_80D8F98[]; +static const u8 sUnknown_80D9034[]; +static const u8 sUnknown_80D9080[]; +static const u8 sUnknown_80D90BC[]; +static const u8 sUnknown_80D9168[]; +static const u8 sUnknown_80D9194[]; +static const u8 sUnknown_80D91C4[]; +static const u8 sUnknown_80D91E4[]; +static const u8 sUnknown_80D9204[]; +static const u8 sUnknown_80D9234[]; +static const u8 sUnknown_80D9268[]; +static const u8 sUnknown_80D9290[]; +static const u8 sUnknown_80D92B4[]; +static const u8 sUnknown_80D92EC[]; +static const u8 sUnknown_80D9328[]; +static const u8 sUnknown_80D9498[]; +static const u8 sUnknown_80D972C[]; +static const u8 sUnknown_80D98D4[]; +static const u8 sUnknown_80D9904[]; +static const u8 sUnknown_80D9988[]; +static const u8 sUnknown_80D99F0[]; +static const u8 sUnknown_80D9A2C[]; +static const u8 sUnknown_80D9A50[]; +static const u8 sUnknown_80D9ACC[]; +static const u8 sUnknown_80D9B1C[]; +static const u8 sUnknown_80D9BD8[]; +static const u8 sUnknown_80D9C68[]; +static const u8 sUnknown_80D9CC0[]; +static const u8 sUnknown_80D9D00[]; +static const u8 sUnknown_80D9DA4[]; +static const u8 sUnknown_80D9DCC[]; +static const u8 sUnknown_80D9DF4[]; +static const u8 sUnknown_80D9E34[]; +static const u8 sUnknown_80D9E48[]; +static const u8 sUnknown_80D9E88[]; +static const u8 sUnknown_80D9EC0[]; +static const u8 sUnknown_80D9EF4[]; +static const u8 sUnknown_80D9F24[]; +static const u8 sUnknown_80D9F74[]; + +ALIGNED(4) const u8* const gCommonGulpin[GULPIN_SHOP_MODE_COUNT][GULPIN_DLG_MAX] = +{ + [GULPIN_SHOP_MODE_AWAKE] = { + [GULPIN_DLG_00] = sUnknown_80D9F74, + [GULPIN_DLG_01] = sUnknown_80D9F24, + [GULPIN_DLG_02] = sUnknown_80D9EF4, + [GULPIN_DLG_03] = sUnknown_80D9EC0, + [GULPIN_DLG_04] = sUnknown_80D9E88, + [GULPIN_DLG_05] = sUnknown_80D9E48, + [GULPIN_DLG_06] = sUnknown_80D9E34, + [GULPIN_DLG_07] = sUnknown_80D9DF4, + [GULPIN_DLG_08] = sUnknown_80D9DCC, + [GULPIN_DLG_09] = sUnknown_80D9DA4, + [GULPIN_DLG_10] = sUnknown_80D9D00, + [GULPIN_DLG_11] = sUnknown_80D9CC0, + [GULPIN_DLG_12] = sUnknown_80D9C68, + [GULPIN_DLG_13] = sUnknown_80D9BD8, + [GULPIN_DLG_14] = sUnknown_80D9B1C, + [GULPIN_DLG_15] = sUnknown_80D9ACC, + [GULPIN_DLG_16] = sUnknown_80D9A50, + [GULPIN_DLG_17] = sUnknown_80D9A2C, + [GULPIN_DLG_18] = sUnknown_80D99F0, + [GULPIN_DLG_19] = sUnknown_80D9988, + [GULPIN_DLG_20] = sUnknown_80D9904, + [GULPIN_DLG_21] = sUnknown_80D98D4, + [GULPIN_DLG_22] = sUnknown_80D972C, + [GULPIN_DLG_23] = sUnknown_80D9498, + [GULPIN_DLG_24] = sUnknown_80D9328 + }, + [GULPIN_SHOP_MODE_ASLEEP] = { + [GULPIN_DLG_00] = sUnknown_80D92EC, + [GULPIN_DLG_01] = sUnknown_80D92B4, + [GULPIN_DLG_02] = sUnknown_80D9290, + [GULPIN_DLG_03] = sUnknown_80D9268, + [GULPIN_DLG_04] = sUnknown_80D9234, + [GULPIN_DLG_05] = sUnknown_80D9204, + [GULPIN_DLG_06] = sUnknown_80D91E4, + [GULPIN_DLG_07] = sUnknown_80D91C4, + [GULPIN_DLG_08] = sUnknown_80D9194, + [GULPIN_DLG_09] = sUnknown_80D9168, + [GULPIN_DLG_10] = sUnknown_80D90BC, + [GULPIN_DLG_11] = sUnknown_80D9080, + [GULPIN_DLG_12] = sUnknown_80D9034, + [GULPIN_DLG_13] = sUnknown_80D8F98, + [GULPIN_DLG_14] = sUnknown_80D8EC4, + [GULPIN_DLG_15] = sUnknown_80D8E9C, + [GULPIN_DLG_16] = sUnknown_80D8E48, + [GULPIN_DLG_17] = sUnknown_80D8E28, + [GULPIN_DLG_18] = sUnknown_80D8DE8, + [GULPIN_DLG_19] = sUnknown_80D8D64, + [GULPIN_DLG_20] = sUnknown_80D8CC8, + [GULPIN_DLG_21] = sUnknown_80D8C98, + [GULPIN_DLG_22] = sUnknown_80D8BD4, + [GULPIN_DLG_23] = sUnknown_80D8AB8, + [GULPIN_DLG_24] = sUnknown_80D8950 + } +}; + +ALIGNED(4) static const u8 sUnknown_80D8950[] = _( + " Zzz... Snuffle...\n" + "I{APOSTROPHE}d go broke if it weren{APOSTROPHE}t for those\n" + "forgetful Pokémon...{EXTRA_MSG}" + " Zzz... Gwaaah...\n" + "Especially that {COLOR_1 CYAN}{ARG_POKEMON_4}{END_COLOR_TEXT_1}...\n" + "It seems to be forgetful...{EXTRA_MSG}" + " Sssnore...\n" + "I hope it forgets more moves...\n" + "So it needs to see me...{EXTRA_MSG}" + " Zzz... Mumble...\n" + "But we decided to get rid of that\n" + "{COLOR_1 CYAN}{ARG_POKEMON_4}{END_COLOR_TEXT_1}...{EXTRA_MSG}" + " Gwaaaah... Gweh...\n" + "{COLOR_1 CYAN}{ARG_POKEMON_4}{END_COLOR_TEXT_1} won{APOSTROPHE}t be coming around\n" + "anymore... "); + +ALIGNED(4) static const u8 sUnknown_80D8AB8[] = _( + " Zzznork...{WAIT_PRESS}\n" + "Link moves to use them all in\n" + "one turn...{EXTRA_MSG}" + " Zzz... Fnurf...?\n" + "Linked moves...\n" + "Top one goes first...{EXTRA_MSG}" + " Zzz... Hah...?\n" + "Delink moves to break links...{EXTRA_MSG}" + " Zzzzz... Fwaaah...\n" + "Change order of moves with {R_BUTTON}...\n" + "And up and down on {DPAD}...{EXTRA_MSG}" + " Gwaaah... Gweh...\n" + "Make your own links..."); + +ALIGNED(4) static const u8 sUnknown_80D8BD4[] = _( + " Zzz... Zzz...\n" + "A set move can be used...\n" + "Press {L_BUTTON} and {A_BUTTON}...{EXTRA_MSG}" + " Sssnort... Set the move...{WAIT_PRESS}\n" + "Press {L_BUTTON} and {A_BUTTON}...{WAIT_PRESS} Use move!{WAIT_PRESS}\n" + "Convenient...{EXTRA_MSG}" + " Sssnore...\n" + "Switch the set move in a dungeon{COMMA} too..."); + +ALIGNED(4) static const u8 sUnknown_80D8C98[] = _( + " Zzznork... Fnurfle?\n" + "What do you want to know?"); + +ALIGNED(4) static const u8 sUnknown_80D8CC8[] = _( + " Fgwaaah...\n" + "Here goes...{EXTRA_MSG}" + " Zzznort...\n" + "Gggggggg...{WAIT_PRESS} Pwah!{EXTRA_MSG}" + " Fwaaah hah!\n" + "There...{EXTRA_MSG}" + " Zzz... Mutter...\n" + "{COLOR_1 CYAN}{ARG_POKEMON_5}{END_COLOR_TEXT_1} forgot...\n" + "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and moves linked to it..."); + +ALIGNED(4) static const u8 sUnknown_80D8D64[] = _( + " Fgwaaah...\n" + "Here goes...{EXTRA_MSG}" + " Zzznort...\n" + "Gggggggg...{WAIT_PRESS} Pwah!{EXTRA_MSG}" + " Fwaaah hah!\n" + "There...{EXTRA_MSG}" + " Zzz... Mumble...\n" + "{COLOR_1 CYAN}{ARG_POKEMON_5}{END_COLOR_TEXT_1} forgot...\n" + "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}..."); + +ALIGNED(4) static const u8 sUnknown_80D8DE8[] = _( + " Zzz... Fwaah? Forget...?\n" + "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and any moves\n" + "linked to it?"); + +ALIGNED(4) static const u8 sUnknown_80D8E28[] = _( + " Zzz... Forget...?\n" + "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}?"); + +ALIGNED(4) static const u8 sUnknown_80D8E48[] = _( + " Zzznork...? Hunh?\n" + "You{APOSTROPHE}re a special Pokémon...{EXTRA_MSG}" + " Mumble...\n" + "I can{APOSTROPHE}t help you..."); + +ALIGNED(4) static const u8 sUnknown_80D8E9C[] = _( + " Zzz... Fwaah?\n" + "No moves to remember..."); + +ALIGNED(4) static const u8 sUnknown_80D8EC4[] = _( + " Fgwaaah...\n" + "Here goes...{EXTRA_MSG}" + " Zzznort...\n" + "Gggggggg...{WAIT_PRESS} Pwah! Gulpin!{EXTRA_MSG}" + " Fwaaah hah!\n" + "There...{EXTRA_MSG}" + " Zzz... Mumble...\n" + "{COLOR_1 CYAN_3}{ARG_POKEMON_5}{END_COLOR_TEXT_1}{APOSTROPHE}s OK...{EXTRA_MSG}" + " Sssnork... Forgotten...\n" + "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and moves linked to it...\n" + "Remembered {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}..."); + +ALIGNED(4) static const u8 sUnknown_80D8F98[] = _( + " Fgwaah...\n" + "Here goes...{EXTRA_MSG}" + " Zzznort...\n" + "Gggggggg...{WAIT_PRESS} Pwah! Gulpin!{EXTRA_MSG}" + " Fwaah hah!\n" + "There...{EXTRA_MSG}" + " Zzz... Zzz... {COLOR_1 CYAN_3}{ARG_POKEMON_5}{END_COLOR_TEXT_1}\n" + "forgot {COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}...\n" + "Remembered {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}..."); + +ALIGNED(4) static const u8 sUnknown_80D9034[] = _( + " Zzz? Fnurf? \n" + "Forget {COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}...and moves linked\n" + "to it? Remember {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}?"); + +ALIGNED(4) static const u8 sUnknown_80D9080[] = _( + " Zzznort... Grumble...\n" + "Forget {COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}?\n" + "Remember {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}?"); + +ALIGNED(4) static const u8 sUnknown_80D90BC[] = _( + " Zzzznort... Move...?\n" + "Remember {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}?{EXTRA_MSG}" + " Fwaah...\n" + "Gggggggggggg...{WAIT_PRESS} Gulpin!{EXTRA_MSG}" + " Fgwaah...\n" + "There...{EXTRA_MSG}" + " Zzz... Zzz...\n" + "{COLOR_1 CYAN_3}{ARG_POKEMON_5}{END_COLOR_TEXT_1} remembered...\n" + "Hunh? That move{COMMA} {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}..."); + +ALIGNED(4) static const u8 sUnknown_80D9168[] = _( + " Zzz... Fgwah...?\n" + "Remember what? What move?"); + +ALIGNED(4) static const u8 sUnknown_80D9194[] = _( + " Gwaah... Gwaah...\n" + "Who{APOSTROPHE}s gonna link moves?"); + +ALIGNED(4) static const u8 sUnknown_80D91C4[] = _( + " Zzz... Zzz...\n" + "Come again..."); + +ALIGNED(4) static const u8 sUnknown_80D91E4[] = _( + " Zzz... Zzz...\n" + "Keep going...?"); + +ALIGNED(4) static const u8 sUnknown_80D9204[] = _( + " Zzznort... Zzznnort...\n" + "Can{APOSTROPHE}t forget that..."); + +ALIGNED(4) static const u8 sUnknown_80D9234[] = _( + " Sssnork... Sssnork...\n" + "Nothing to be delinked..."); + +ALIGNED(4) static const u8 sUnknown_80D9268[] = _( + " Zzz... Grumph...\n" + "Nothing to link..."); + +ALIGNED(4) static const u8 sUnknown_80D9290[] = _( + " Zzz... Grunt?\n" + "Not enough money..."); + +ALIGNED(4) static const u8 sUnknown_80D92B4[] = _( + " Zzz... Gulpin Link Shop...\n" + "Link for just 150 {POKE}..."); + +ALIGNED(4) static const u8 sUnknown_80D92EC[] = _( + " Zzz... Hello...\n" + "Gulpin Link Shop...\n" + "Link for 150 {POKE}..."); + +ALIGNED(4) static const u8 sUnknown_80D9328[] = _( + " What if you had to forget\n" + "a move{COMMA} but you wanted it back?{WAIT_PRESS}\n" + "Ever face that situation?{EXTRA_MSG}" + " I can help!{WAIT_PRESS}\n" + "Come to me{COMMA} and I can make you instantly\n" + "remember forgotten moves!{EXTRA_MSG}" + " I...{WAIT_PRESS}\n" + "Well{COMMA} when Pokémon remember...{WAIT_PRESS}\n" + "I love seeing that instant!{EXTRA_MSG}" + " That look of enlightenment!{WAIT_PRESS}\n" + "That amazed look of pleasure!{EXTRA_MSG}" + " I run this business because\n" + "I live to see that moment!"); + +ALIGNED(4) static const u8 sUnknown_80D9498[] = _( + " When moves are linked...{WAIT_PRESS}\n" + "Two or more moves can be used one after\n" + "another in one turn!{EXTRA_MSG}" + " For example{COMMA} if the moves\n" + "{COLOR_1 CYAN}Scratch{END_COLOR_TEXT_1} and {COLOR_1 CYAN}Growl{END_COLOR_TEXT_1} are\n" + "linked...{EXTRA_MSG}" + " Both {COLOR_1 CYAN}Scratch{END_COLOR_TEXT_1} and {COLOR_1 CYAN}Growl{END_COLOR_TEXT_1} are\n" + "used in one turn!{WAIT_PRESS}\n" + "See? Amazing{COMMA} huh?{EXTRA_MSG}" + " Using links{COMMA} heheh...{WAIT_PRESS}\n" + "Well{COMMA} depending on the moves you link{COMMA}\n" + "you can get incredible results!{EXTRA_MSG}" + " Oh{COMMA} yes.\n" + "When moves are linked{COMMA} they are used in\n" + "sequence from the top one first.{EXTRA_MSG}" + " You can also separate linked\n" + "moves by selecting the Delink command.{EXTRA_MSG}" + " The sequence of moves can\n" + "be changed by pressing {R_BUTTON}{COMMA}\n" + "then pressing up or down on {DPAD}.{EXTRA_MSG}" + " Try to innovate with links.{WAIT_PRESS}\n" + "Try creating links of your very own!"); + +ALIGNED(4) static const u8 sUnknown_80D972C[] = _( + " When you{APOSTROPHE}re in a dungeon\n" + "and you{APOSTROPHE}re about to use a move...{WAIT_PRESS}\n" + "Isn{APOSTROPHE}t it a pain to open a window each time?{EXTRA_MSG}" + " You can avoid that!{WAIT_PRESS}\n" + "You can just conveniently {QUOTE_START}Set{QUOTE_END}\n" + "a move for instant use!{EXTRA_MSG}" + " A set move can be instantly\n" + "used with {L_BUTTON} and {A_BUTTON}!{WAIT_PRESS}\n" + "See? Isn{APOSTROPHE}t it easy?{EXTRA_MSG}" + " Just set the move...{WAIT_PRESS}\n" + "Hold {L_BUTTON} and then press {A_BUTTON} to use it!{WAIT_PRESS}\n" + "It{APOSTROPHE}s very convenient!{EXTRA_MSG}" + " You can also switch the set\n" + "move in a dungeon.\n" + "Do try it out!\n"); + +ALIGNED(4) static const u8 sUnknown_80D98D4[] = _( + " Sure thing!\n" + "What do you need information on?"); + +ALIGNED(4) static const u8 sUnknown_80D9904[] = _( + " OK{COMMA} here goes!{EXTRA_MSG}" + " Gggggggg...{WAIT_PRESS} Poof!{EXTRA_MSG}" + " There!\n" + "Success!{EXTRA_MSG}" + " {COLOR_1 CYAN}{ARG_POKEMON_5}{END_COLOR_TEXT_1} has forgotten\n" + "the move {COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and any moves\n" + "linked to it!"); + +ALIGNED(4) static const u8 sUnknown_80D9988[] = _( + " OK{COMMA} here goes!{EXTRA_MSG}" + " Gggggggg...{WAIT_PRESS} Poof!{EXTRA_MSG}" + " There!\n" + "Success!{EXTRA_MSG}" + " {COLOR_1 CYAN}{ARG_POKEMON_5}{END_COLOR_TEXT_1} has forgotten\n" + "the move {COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}!"); + +ALIGNED(4) static const u8 sUnknown_80D99F0[] = _( + " So{COMMA} forget the move\n" + "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and any moves linked to it?"); + +ALIGNED(4) static const u8 sUnknown_80D9A2C[] = _( + " So{COMMA} forget the move\n" + "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}?"); + +ALIGNED(4) static const u8 sUnknown_80D9A50[] = _( + " Uh... Huh?{WAIT_PRESS}\n" + "You appear to be a special Pokémon.{EXTRA_MSG}" + " I can{APOSTROPHE}t help you remember\n" + "any moves{COMMA} I don{APOSTROPHE}t think.\n" + "I{APOSTROPHE}m sorry."); + +ALIGNED(4) static const u8 sUnknown_80D9ACC[] = _( + " Uh... Hello?{WAIT_PRESS}\n" + "There don{APOSTROPHE}t appear to be any moves that\n" + "can be remembered."); + +ALIGNED(4) static const u8 sUnknown_80D9B1C[] = _( + " OK{COMMA} here goes!{EXTRA_MSG}" + " Gggggggg...{WAIT_PRESS} Pwah! Gulpin!{EXTRA_MSG}" + " There!\n" + "Success!{EXTRA_MSG}" + " {COLOR_1 CYAN_3}{ARG_POKEMON_5}{END_COLOR_TEXT_1} is done!{EXTRA_MSG}" + " It{APOSTROPHE}s forgotten the move\n" + "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and any moves linked to it{COMMA}\n" + "and {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1} has been remembered!"); + +ALIGNED(4) static const u8 sUnknown_80D9BD8[] = _( + " OK{COMMA} here goes!{EXTRA_MSG}" + " Gggggggg...{WAIT_PRESS} Pwah! Gulpin!{EXTRA_MSG}" + " There!\n" + "Success!{EXTRA_MSG}" + " {COLOR_1 CYAN_3}{ARG_POKEMON_5}{END_COLOR_TEXT_1} has forgotten\n" + "the move {COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and remembered\n" + "the move {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}!"); + +ALIGNED(4) static const u8 sUnknown_80D9C68[] = _( + " So{COMMA} forget {COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}\n" + "and any moves linked to it{COMMA} and remember\n" + "the move {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}?"); + +ALIGNED(4) static const u8 sUnknown_80D9CC0[] = _( + " So{COMMA} forget the move\n" + "{COLOR_1 GREEN}{ARG_POKEMON_1}{END_COLOR_TEXT_1} and remember the move\n" + "{COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}?"); + +ALIGNED(4) static const u8 sUnknown_80D9D00[] = _( + " So{COMMA} the move {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}\n" + "is the one to be remembered?{WAIT_PRESS}\n" + "OK{COMMA} here goes!{EXTRA_MSG}" + " Gggggggggggg...{WAIT_PRESS} Gulpin!{EXTRA_MSG}" + " There!\n" + "Success!{EXTRA_MSG}" + " {COLOR_1 CYAN_3}{ARG_POKEMON_5}{END_COLOR_TEXT_1} has\n" + "remembered the move {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}!"); + +ALIGNED(4) static const u8 sUnknown_80D9DA4[] = _( + " Which move would you like\n" + "to recall?"); + +ALIGNED(4) static const u8 sUnknown_80D9DCC[] = _( + " Good!\n" + "Now{COMMA} who wants to link moves?"); + +ALIGNED(4) static const u8 sUnknown_80D9DF4[] = _( + " Whenever you get the urge\n" + "to link moves{COMMA} please come see me!"); + +ALIGNED(4) static const u8 sUnknown_80D9E34[] = _(" Shall we go on?"); + +ALIGNED(4) static const u8 sUnknown_80D9E48[] = _( + " If you forget that move{COMMA}\n" + "you won{APOSTROPHE}t have any moves at all."); + +ALIGNED(4) static const u8 sUnknown_80D9E88[] = _( + " That move isn{APOSTROPHE}t linked{COMMA}\n" + "so it can{APOSTROPHE}t be delinked."); + +ALIGNED(4) static const u8 sUnknown_80D9EC0[] = _( + " Too bad.\n" + "There are no moves that can be linked."); + +ALIGNED(4) static const u8 sUnknown_80D9EF4[] = _( + " Uh... Hello?\n" + "You don{APOSTROPHE}t have enough money?"); + +ALIGNED(4) static const u8 sUnknown_80D9F24[] = _( + " Welcome to the Gulpin\n" + "Link Shop!\n" + "Link moves all you like for just 150 {POKE}!"); + +ALIGNED(4) static const u8 sUnknown_80D9F74[] = _( + " Hello!\n" + "Welcome to the Gulpin Link Shop!\n" + "Link moves all you like for just 150 {POKE}!"); \ No newline at end of file diff --git a/src/data/common_strings_kecleon_bros.h b/src/data/common_strings_kecleon_bros.h index 4f520a878..ac4cbbaa6 100644 --- a/src/data/common_strings_kecleon_bros.h +++ b/src/data/common_strings_kecleon_bros.h @@ -1,200 +1,200 @@ -static const u8 gUnknown_80D6038[]; -static const u8 gUnknown_80D6128[]; -static const u8 gUnknown_80D6168[]; -static const u8 gUnknown_80D61B0[]; -static const u8 gUnknown_80D61D4[]; -static const u8 gUnknown_80D6204[]; -static const u8 gUnknown_80D6250[]; -static const u8 gUnknown_80D627C[]; -static const u8 gUnknown_80D62B0[]; -static const u8 gUnknown_80D630C[]; -static const u8 gUnknown_80D6338[]; -static const u8 gUnknown_80D6364[]; -static const u8 gUnknown_80D6394[]; -static const u8 gUnknown_80D63E8[]; -static const u8 gUnknown_80D6420[]; -static const u8 gUnknown_80D6450[]; -static const u8 gUnknown_80D6478[]; -static const u8 gUnknown_80D6494[]; -static const u8 gUnknown_80D64C0[]; -static const u8 gUnknown_80D64E8[]; -static const u8 gUnknown_80D6508[]; -static const u8 gUnknown_80D652C[]; -static const u8 gUnknown_80D6544[]; -static const u8 gUnknown_80D6564[]; -static const u8 gUnknown_80D6818[]; -static const u8 gUnknown_80D6868[]; -static const u8 gUnknown_80D68A4[]; -static const u8 gUnknown_80D68E0[]; -static const u8 gUnknown_80D6938[]; -static const u8 gUnknown_80D6980[]; -static const u8 gUnknown_80D69B0[]; -static const u8 gUnknown_80D6A04[]; -static const u8 gUnknown_80D6A74[]; -static const u8 gUnknown_80D6AAC[]; -static const u8 gUnknown_80D6B18[]; -static const u8 gUnknown_80D6B50[]; -static const u8 gUnknown_80D6BA0[]; -static const u8 gUnknown_80D6BF4[]; -static const u8 gUnknown_80D6C1C[]; -static const u8 gUnknown_80D6C48[]; -static const u8 gUnknown_80D6C90[]; -static const u8 gUnknown_80D6CB8[]; -static const u8 gUnknown_80D6D08[]; -static const u8 gUnknown_80D6D38[]; -static const u8 gUnknown_80D6D5C[]; -static const u8 gUnknown_80D6D98[]; -static const u8 gUnknown_80D6E30[]; -static const u8 gUnknown_80D6E78[]; -static const u8 gUnknown_80D6EA4[]; -static const u8 gUnknown_80D6EEC[]; -static const u8 gUnknown_80D6F18[]; -static const u8 gUnknown_80D6F4C[]; -static const u8 gUnknown_80D6F8C[]; -static const u8 gUnknown_80D6FD4[]; -static const u8 gUnknown_80D7038[]; -static const u8 gUnknown_80D7064[]; -static const u8 gUnknown_80D7090[]; -static const u8 gUnknown_80D70B4[]; -static const u8 gUnknown_80D7108[]; -static const u8 gUnknown_80D7154[]; -static const u8 gUnknown_80D7184[]; -static const u8 gUnknown_80D71B0[]; -static const u8 gUnknown_80D71CC[]; -static const u8 gUnknown_80D7204[]; -static const u8 gUnknown_80D7228[]; -static const u8 gUnknown_80D7250[]; -static const u8 gUnknown_80D7270[]; -static const u8 gUnknown_80D72A0[]; -static const u8 gUnknown_80D72B8[]; -static const u8 gUnknown_80D7480[]; -static const u8 gUnknown_80D74DC[]; -static const u8 gUnknown_80D7524[]; -static const u8 gUnknown_80D7560[]; -static const u8 gUnknown_80D75AC[]; -static const u8 gUnknown_80D75E0[]; -static const u8 gUnknown_80D7610[]; -static const u8 gUnknown_80D7640[]; -static const u8 gUnknown_80D76A8[]; -static const u8 gUnknown_80D76D4[]; -static const u8 gUnknown_80D7740[]; -static const u8 gUnknown_80D776C[]; -static const u8 gUnknown_80D77C0[]; -static const u8 gUnknown_80D780C[]; -static const u8 gUnknown_80D7830[]; -static const u8 gUnknown_80D785C[]; -static const u8 gUnknown_80D788C[]; -static const u8 gUnknown_80D78CC[]; -static const u8 gUnknown_80D78F8[]; -static const u8 gUnknown_80D7934[]; -static const u8 gUnknown_80D7958[]; -static const u8 gUnknown_80D797C[]; +static const u8 sUnknown_80D6038[]; +static const u8 sUnknown_80D6128[]; +static const u8 sUnknown_80D6168[]; +static const u8 sUnknown_80D61B0[]; +static const u8 sUnknown_80D61D4[]; +static const u8 sUnknown_80D6204[]; +static const u8 sUnknown_80D6250[]; +static const u8 sUnknown_80D627C[]; +static const u8 sUnknown_80D62B0[]; +static const u8 sUnknown_80D630C[]; +static const u8 sUnknown_80D6338[]; +static const u8 sUnknown_80D6364[]; +static const u8 sUnknown_80D6394[]; +static const u8 sUnknown_80D63E8[]; +static const u8 sUnknown_80D6420[]; +static const u8 sUnknown_80D6450[]; +static const u8 sUnknown_80D6478[]; +static const u8 sUnknown_80D6494[]; +static const u8 sUnknown_80D64C0[]; +static const u8 sUnknown_80D64E8[]; +static const u8 sUnknown_80D6508[]; +static const u8 sUnknown_80D652C[]; +static const u8 sUnknown_80D6544[]; +static const u8 sUnknown_80D6564[]; +static const u8 sUnknown_80D6818[]; +static const u8 sUnknown_80D6868[]; +static const u8 sUnknown_80D68A4[]; +static const u8 sUnknown_80D68E0[]; +static const u8 sUnknown_80D6938[]; +static const u8 sUnknown_80D6980[]; +static const u8 sUnknown_80D69B0[]; +static const u8 sUnknown_80D6A04[]; +static const u8 sUnknown_80D6A74[]; +static const u8 sUnknown_80D6AAC[]; +static const u8 sUnknown_80D6B18[]; +static const u8 sUnknown_80D6B50[]; +static const u8 sUnknown_80D6BA0[]; +static const u8 sUnknown_80D6BF4[]; +static const u8 sUnknown_80D6C1C[]; +static const u8 sUnknown_80D6C48[]; +static const u8 sUnknown_80D6C90[]; +static const u8 sUnknown_80D6CB8[]; +static const u8 sUnknown_80D6D08[]; +static const u8 sUnknown_80D6D38[]; +static const u8 sUnknown_80D6D5C[]; +static const u8 sUnknown_80D6D98[]; +static const u8 sUnknown_80D6E30[]; +static const u8 sUnknown_80D6E78[]; +static const u8 sUnknown_80D6EA4[]; +static const u8 sUnknown_80D6EEC[]; +static const u8 sUnknown_80D6F18[]; +static const u8 sUnknown_80D6F4C[]; +static const u8 sUnknown_80D6F8C[]; +static const u8 sUnknown_80D6FD4[]; +static const u8 sUnknown_80D7038[]; +static const u8 sUnknown_80D7064[]; +static const u8 sUnknown_80D7090[]; +static const u8 sUnknown_80D70B4[]; +static const u8 sUnknown_80D7108[]; +static const u8 sUnknown_80D7154[]; +static const u8 sUnknown_80D7184[]; +static const u8 sUnknown_80D71B0[]; +static const u8 sUnknown_80D71CC[]; +static const u8 sUnknown_80D7204[]; +static const u8 sUnknown_80D7228[]; +static const u8 sUnknown_80D7250[]; +static const u8 sUnknown_80D7270[]; +static const u8 sUnknown_80D72A0[]; +static const u8 sUnknown_80D72B8[]; +static const u8 sUnknown_80D7480[]; +static const u8 sUnknown_80D74DC[]; +static const u8 sUnknown_80D7524[]; +static const u8 sUnknown_80D7560[]; +static const u8 sUnknown_80D75AC[]; +static const u8 sUnknown_80D75E0[]; +static const u8 sUnknown_80D7610[]; +static const u8 sUnknown_80D7640[]; +static const u8 sUnknown_80D76A8[]; +static const u8 sUnknown_80D76D4[]; +static const u8 sUnknown_80D7740[]; +static const u8 sUnknown_80D776C[]; +static const u8 sUnknown_80D77C0[]; +static const u8 sUnknown_80D780C[]; +static const u8 sUnknown_80D7830[]; +static const u8 sUnknown_80D785C[]; +static const u8 sUnknown_80D788C[]; +static const u8 sUnknown_80D78CC[]; +static const u8 sUnknown_80D78F8[]; +static const u8 sUnknown_80D7934[]; +static const u8 sUnknown_80D7958[]; +static const u8 sUnknown_80D797C[]; ALIGNED(4) const u8* const gCommonKecleonBros[KECLEON_BROS_MODE_COUNT][KECLEON_DLG_MAX] = { [KECLEON_BROS_MODE_ITEMS_AWAKE] = { - [KECLEON_DLG_00] = gUnknown_80D797C, - [KECLEON_DLG_01] = gUnknown_80D7958, - [KECLEON_DLG_02] = gUnknown_80D7934, - [KECLEON_DLG_03] = gUnknown_80D78F8, - [KECLEON_DLG_04] = gUnknown_80D78CC, - [KECLEON_DLG_05] = gUnknown_80D788C, - [KECLEON_DLG_06] = gUnknown_80D785C, - [KECLEON_DLG_07] = gUnknown_80D7830, - [KECLEON_DLG_08] = gUnknown_80D780C, - [KECLEON_DLG_09] = gUnknown_80D77C0, - [KECLEON_DLG_10] = gUnknown_80D776C, - [KECLEON_DLG_11] = gUnknown_80D7740, - [KECLEON_DLG_12] = gUnknown_80D76D4, - [KECLEON_DLG_13] = gUnknown_80D76A8, - [KECLEON_DLG_14] = gUnknown_80D7640, - [KECLEON_DLG_15] = gUnknown_80D7610, - [KECLEON_DLG_16] = gUnknown_80D75E0, - [KECLEON_DLG_17] = gUnknown_80D75AC, - [KECLEON_DLG_18] = gUnknown_80D7560, - [KECLEON_DLG_19] = gUnknown_80D7524, - [KECLEON_DLG_20] = gUnknown_80D74DC, - [KECLEON_DLG_21] = gUnknown_80D7480, - [KECLEON_DLG_22] = gUnknown_80D72B8 + [KECLEON_DLG_00] = sUnknown_80D797C, + [KECLEON_DLG_01] = sUnknown_80D7958, + [KECLEON_DLG_02] = sUnknown_80D7934, + [KECLEON_DLG_03] = sUnknown_80D78F8, + [KECLEON_DLG_04] = sUnknown_80D78CC, + [KECLEON_DLG_05] = sUnknown_80D788C, + [KECLEON_DLG_06] = sUnknown_80D785C, + [KECLEON_DLG_07] = sUnknown_80D7830, + [KECLEON_DLG_08] = sUnknown_80D780C, + [KECLEON_DLG_09] = sUnknown_80D77C0, + [KECLEON_DLG_10] = sUnknown_80D776C, + [KECLEON_DLG_11] = sUnknown_80D7740, + [KECLEON_DLG_12] = sUnknown_80D76D4, + [KECLEON_DLG_13] = sUnknown_80D76A8, + [KECLEON_DLG_14] = sUnknown_80D7640, + [KECLEON_DLG_15] = sUnknown_80D7610, + [KECLEON_DLG_16] = sUnknown_80D75E0, + [KECLEON_DLG_17] = sUnknown_80D75AC, + [KECLEON_DLG_18] = sUnknown_80D7560, + [KECLEON_DLG_19] = sUnknown_80D7524, + [KECLEON_DLG_20] = sUnknown_80D74DC, + [KECLEON_DLG_21] = sUnknown_80D7480, + [KECLEON_DLG_22] = sUnknown_80D72B8 }, [KECLEON_BROS_MODE_ITEMS_ASLEEP] = { - [KECLEON_DLG_00] = gUnknown_80D72A0, - [KECLEON_DLG_01] = gUnknown_80D7270, - [KECLEON_DLG_02] = gUnknown_80D7250, - [KECLEON_DLG_03] = gUnknown_80D7228, - [KECLEON_DLG_04] = gUnknown_80D7204, - [KECLEON_DLG_05] = gUnknown_80D71CC, - [KECLEON_DLG_06] = gUnknown_80D71B0, - [KECLEON_DLG_07] = gUnknown_80D7184, - [KECLEON_DLG_08] = gUnknown_80D7154, - [KECLEON_DLG_09] = gUnknown_80D7108, - [KECLEON_DLG_10] = gUnknown_80D70B4, - [KECLEON_DLG_11] = gUnknown_80D7090, - [KECLEON_DLG_12] = gUnknown_80D7064, - [KECLEON_DLG_13] = gUnknown_80D7038, - [KECLEON_DLG_14] = gUnknown_80D6FD4, - [KECLEON_DLG_15] = gUnknown_80D6F8C, - [KECLEON_DLG_16] = gUnknown_80D6F4C, - [KECLEON_DLG_17] = gUnknown_80D6F18, - [KECLEON_DLG_18] = gUnknown_80D6EEC, - [KECLEON_DLG_19] = gUnknown_80D6EA4, - [KECLEON_DLG_20] = gUnknown_80D6E78, - [KECLEON_DLG_21] = gUnknown_80D6E30, - [KECLEON_DLG_22] = gUnknown_80D6D98 + [KECLEON_DLG_00] = sUnknown_80D72A0, + [KECLEON_DLG_01] = sUnknown_80D7270, + [KECLEON_DLG_02] = sUnknown_80D7250, + [KECLEON_DLG_03] = sUnknown_80D7228, + [KECLEON_DLG_04] = sUnknown_80D7204, + [KECLEON_DLG_05] = sUnknown_80D71CC, + [KECLEON_DLG_06] = sUnknown_80D71B0, + [KECLEON_DLG_07] = sUnknown_80D7184, + [KECLEON_DLG_08] = sUnknown_80D7154, + [KECLEON_DLG_09] = sUnknown_80D7108, + [KECLEON_DLG_10] = sUnknown_80D70B4, + [KECLEON_DLG_11] = sUnknown_80D7090, + [KECLEON_DLG_12] = sUnknown_80D7064, + [KECLEON_DLG_13] = sUnknown_80D7038, + [KECLEON_DLG_14] = sUnknown_80D6FD4, + [KECLEON_DLG_15] = sUnknown_80D6F8C, + [KECLEON_DLG_16] = sUnknown_80D6F4C, + [KECLEON_DLG_17] = sUnknown_80D6F18, + [KECLEON_DLG_18] = sUnknown_80D6EEC, + [KECLEON_DLG_19] = sUnknown_80D6EA4, + [KECLEON_DLG_20] = sUnknown_80D6E78, + [KECLEON_DLG_21] = sUnknown_80D6E30, + [KECLEON_DLG_22] = sUnknown_80D6D98 }, [KECLEON_BROS_MODE_WARES_AWAKE] = { - [KECLEON_DLG_00] = gUnknown_80D6D5C, - [KECLEON_DLG_01] = gUnknown_80D6D38, - [KECLEON_DLG_02] = gUnknown_80D6D08, - [KECLEON_DLG_03] = gUnknown_80D6CB8, - [KECLEON_DLG_04] = gUnknown_80D6C90, - [KECLEON_DLG_05] = gUnknown_80D6C48, - [KECLEON_DLG_06] = gUnknown_80D6C1C, - [KECLEON_DLG_07] = gUnknown_80D7830, - [KECLEON_DLG_08] = gUnknown_80D6BF4, - [KECLEON_DLG_09] = gUnknown_80D6BA0, - [KECLEON_DLG_10] = gUnknown_80D6B50, - [KECLEON_DLG_11] = gUnknown_80D6B18, - [KECLEON_DLG_12] = gUnknown_80D6AAC, - [KECLEON_DLG_13] = gUnknown_80D6A74, - [KECLEON_DLG_14] = gUnknown_80D6A04, - [KECLEON_DLG_15] = gUnknown_80D69B0, - [KECLEON_DLG_16] = gUnknown_80D6980, - [KECLEON_DLG_17] = gUnknown_80D6938, - [KECLEON_DLG_18] = gUnknown_80D68E0, - [KECLEON_DLG_19] = gUnknown_80D68A4, - [KECLEON_DLG_20] = gUnknown_80D6868, - [KECLEON_DLG_21] = gUnknown_80D6818, - [KECLEON_DLG_22] = gUnknown_80D6564 + [KECLEON_DLG_00] = sUnknown_80D6D5C, + [KECLEON_DLG_01] = sUnknown_80D6D38, + [KECLEON_DLG_02] = sUnknown_80D6D08, + [KECLEON_DLG_03] = sUnknown_80D6CB8, + [KECLEON_DLG_04] = sUnknown_80D6C90, + [KECLEON_DLG_05] = sUnknown_80D6C48, + [KECLEON_DLG_06] = sUnknown_80D6C1C, + [KECLEON_DLG_07] = sUnknown_80D7830, + [KECLEON_DLG_08] = sUnknown_80D6BF4, + [KECLEON_DLG_09] = sUnknown_80D6BA0, + [KECLEON_DLG_10] = sUnknown_80D6B50, + [KECLEON_DLG_11] = sUnknown_80D6B18, + [KECLEON_DLG_12] = sUnknown_80D6AAC, + [KECLEON_DLG_13] = sUnknown_80D6A74, + [KECLEON_DLG_14] = sUnknown_80D6A04, + [KECLEON_DLG_15] = sUnknown_80D69B0, + [KECLEON_DLG_16] = sUnknown_80D6980, + [KECLEON_DLG_17] = sUnknown_80D6938, + [KECLEON_DLG_18] = sUnknown_80D68E0, + [KECLEON_DLG_19] = sUnknown_80D68A4, + [KECLEON_DLG_20] = sUnknown_80D6868, + [KECLEON_DLG_21] = sUnknown_80D6818, + [KECLEON_DLG_22] = sUnknown_80D6564 }, [KECLEON_BROS_MODE_WARES_ASLEEP] = { - [KECLEON_DLG_00] = gUnknown_80D6544, - [KECLEON_DLG_01] = gUnknown_80D652C, - [KECLEON_DLG_02] = gUnknown_80D6508, - [KECLEON_DLG_03] = gUnknown_80D64E8, - [KECLEON_DLG_04] = gUnknown_80D64C0, - [KECLEON_DLG_05] = gUnknown_80D6494, - [KECLEON_DLG_06] = gUnknown_80D6478, - [KECLEON_DLG_07] = gUnknown_80D6450, - [KECLEON_DLG_08] = gUnknown_80D6420, - [KECLEON_DLG_09] = gUnknown_80D63E8, - [KECLEON_DLG_10] = gUnknown_80D6394, - [KECLEON_DLG_11] = gUnknown_80D6364, - [KECLEON_DLG_12] = gUnknown_80D6338, - [KECLEON_DLG_13] = gUnknown_80D630C, - [KECLEON_DLG_14] = gUnknown_80D62B0, - [KECLEON_DLG_15] = gUnknown_80D627C, - [KECLEON_DLG_16] = gUnknown_80D6250, - [KECLEON_DLG_17] = gUnknown_80D6204, - [KECLEON_DLG_18] = gUnknown_80D61D4, - [KECLEON_DLG_19] = gUnknown_80D61B0, - [KECLEON_DLG_20] = gUnknown_80D6168, - [KECLEON_DLG_21] = gUnknown_80D6128, - [KECLEON_DLG_22] = gUnknown_80D6038 + [KECLEON_DLG_00] = sUnknown_80D6544, + [KECLEON_DLG_01] = sUnknown_80D652C, + [KECLEON_DLG_02] = sUnknown_80D6508, + [KECLEON_DLG_03] = sUnknown_80D64E8, + [KECLEON_DLG_04] = sUnknown_80D64C0, + [KECLEON_DLG_05] = sUnknown_80D6494, + [KECLEON_DLG_06] = sUnknown_80D6478, + [KECLEON_DLG_07] = sUnknown_80D6450, + [KECLEON_DLG_08] = sUnknown_80D6420, + [KECLEON_DLG_09] = sUnknown_80D63E8, + [KECLEON_DLG_10] = sUnknown_80D6394, + [KECLEON_DLG_11] = sUnknown_80D6364, + [KECLEON_DLG_12] = sUnknown_80D6338, + [KECLEON_DLG_13] = sUnknown_80D630C, + [KECLEON_DLG_14] = sUnknown_80D62B0, + [KECLEON_DLG_15] = sUnknown_80D627C, + [KECLEON_DLG_16] = sUnknown_80D6250, + [KECLEON_DLG_17] = sUnknown_80D6204, + [KECLEON_DLG_18] = sUnknown_80D61D4, + [KECLEON_DLG_19] = sUnknown_80D61B0, + [KECLEON_DLG_20] = sUnknown_80D6168, + [KECLEON_DLG_21] = sUnknown_80D6128, + [KECLEON_DLG_22] = sUnknown_80D6038 } }; -ALIGNED(4) static const u8 gUnknown_80D6038[] = _( +ALIGNED(4) static const u8 sUnknown_80D6038[] = _( " Zzz... Reep reep...\n" "Wonder Orbs are convenient...{EXTRA_MSG}" " Zzzzzz...\n" @@ -207,105 +207,105 @@ ALIGNED(4) static const u8 gUnknown_80D6038[] = _( "My good wares...\n" "Come buy... Reep..."); -ALIGNED(4) static const u8 gUnknown_80D6128[] = _( +ALIGNED(4) static const u8 sUnknown_80D6128[] = _( " Zzz... Eep? No{COMMA} no...{WAIT_PRESS}\n" "You cannot hold any more money..."); -ALIGNED(4) static const u8 gUnknown_80D6168[] = _( +ALIGNED(4) static const u8 sUnknown_80D6168[] = _( " Zzz... Hunh? Wha--? Whoa!{WAIT_PRESS}\n" "I... I can{APOSTROPHE}t accept anything like that!"); -ALIGNED(4) static const u8 gUnknown_80D61B0[] = _( +ALIGNED(4) static const u8 sUnknown_80D61B0[] = _( " Reep...? Eep!{WAIT_PRESS}\n" "Not enough money!"); -ALIGNED(4) static const u8 gUnknown_80D61D4[] = _( +ALIGNED(4) static const u8 sUnknown_80D61D4[] = _( " Zzz... Uh-oh...{WAIT_PRESS}\n" "All gone!\n" "I am sold out..."); -ALIGNED(4) static const u8 gUnknown_80D6204[] = _( +ALIGNED(4) static const u8 sUnknown_80D6204[] = _( " Zzz... Hunh? Oh...{WAIT_PRESS}\n" "Reep... No room... Reep...\n" "No room for my wares..."); -ALIGNED(4) static const u8 gUnknown_80D6250[] = _( +ALIGNED(4) static const u8 sUnknown_80D6250[] = _( " Zzzzzz... Oh?{WAIT_PRESS}\n" "You{APOSTROPHE}ve got nothing..."); -ALIGNED(4) static const u8 gUnknown_80D627C[] = _( +ALIGNED(4) static const u8 sUnknown_80D627C[] = _( " Zzz... Oh...?{WAIT_PRESS}\n" "You have nothing to sell...\n" "Hunh?"); -ALIGNED(4) static const u8 gUnknown_80D62B0[] = _( +ALIGNED(4) static const u8 sUnknown_80D62B0[] = _( " Eep...? Zzz...\n" "You have too much money!{EXTRA_MSG}" " Zzz... Eh?\n" "You can{APOSTROPHE}t hold any more money..."); -ALIGNED(4) static const u8 gUnknown_80D630C[] = _( +ALIGNED(4) static const u8 sUnknown_80D630C[] = _( " Reep eep! Oh?{WAIT_PRESS}\n" "Eep...?\n" "You have no money?"); -ALIGNED(4) static const u8 gUnknown_80D6338[] = _( +ALIGNED(4) static const u8 sUnknown_80D6338[] = _( " ...{WAIT_PRESS}Zzz...\n" "I am all sold out... Sorry..."); -ALIGNED(4) static const u8 gUnknown_80D6364[] = _( +ALIGNED(4) static const u8 sUnknown_80D6364[] = _( " Fine... Reep reep...\n" "Done deal!\n" "Thank you..."); -ALIGNED(4) static const u8 gUnknown_80D6394[] = _( +ALIGNED(4) static const u8 sUnknown_80D6394[] = _( " Zzz... Reep{COMMA} what...?\n" "For all that I can buy{COMMA} I will pay\n" "{COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}... OK?"); -ALIGNED(4) static const u8 gUnknown_80D63E8[] = _( +ALIGNED(4) static const u8 sUnknown_80D63E8[] = _( " Zzzzzz... Zzzzzz...?\n" "{COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}?\n" "Is {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE} OK?"); -ALIGNED(4) static const u8 gUnknown_80D6420[] = _( +ALIGNED(4) static const u8 sUnknown_80D6420[] = _( " Reep reep... Eep...\n" "Anything else for sale?"); -ALIGNED(4) static const u8 gUnknown_80D6450[] = _( +ALIGNED(4) static const u8 sUnknown_80D6450[] = _( " Zzz... Eep...?\n" "What will you sell...?"); -ALIGNED(4) static const u8 gUnknown_80D6478[] = _( +ALIGNED(4) static const u8 sUnknown_80D6478[] = _( " Zzz... Reep!\n" "Thank you..."); -ALIGNED(4) static const u8 gUnknown_80D6494[] = _( +ALIGNED(4) static const u8 sUnknown_80D6494[] = _( " Zzzzzz...\n" "{COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1} is {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}...\n" "OK?"); -ALIGNED(4) static const u8 gUnknown_80D64C0[] = _( +ALIGNED(4) static const u8 sUnknown_80D64C0[] = _( " Anything? Zzz...\n" "Buying anything else?"); -ALIGNED(4) static const u8 gUnknown_80D64E8[] = _( +ALIGNED(4) static const u8 sUnknown_80D64E8[] = _( " Ah... Zzz...\n" "My merchandise..."); -ALIGNED(4) static const u8 gUnknown_80D6508[] = _( +ALIGNED(4) static const u8 sUnknown_80D6508[] = _( " Thank... Reep eep...\n" "Come again..."); -ALIGNED(4) static const u8 gUnknown_80D652C[] = _( +ALIGNED(4) static const u8 sUnknown_80D652C[] = _( " Reep...\n" "Anything else?"); -ALIGNED(4) static const u8 gUnknown_80D6544[] = _( +ALIGNED(4) static const u8 sUnknown_80D6544[] = _( " Zzzzzz...\n" "This is...my shop..."); -ALIGNED(4) static const u8 gUnknown_80D6564[] = _( +ALIGNED(4) static const u8 sUnknown_80D6564[] = _( " Wonder Orbs are very{COMMA}\n" "very convenient〜♪{EXTRA_MSG}" " However{COMMA} they disappear\n" @@ -332,105 +332,105 @@ ALIGNED(4) static const u8 gUnknown_80D6564[] = _( "with us--me and my brother next to\n" "me!"); -ALIGNED(4) static const u8 gUnknown_80D6818[] = _( +ALIGNED(4) static const u8 sUnknown_80D6818[] = _( " Oh{COMMA} no{COMMA} no!{WAIT_PRESS}\n" "My friend{COMMA} you cannot add to your money!\n" "I cannot do this."); -ALIGNED(4) static const u8 gUnknown_80D6868[] = _( +ALIGNED(4) static const u8 sUnknown_80D6868[] = _( " Whoa{COMMA} whoa!{WAIT_PRESS}\n" "I... I can{APOSTROPHE}t accept anything like that!"); -ALIGNED(4) static const u8 gUnknown_80D68A4[] = _( +ALIGNED(4) static const u8 sUnknown_80D68A4[] = _( " Eep! Oh{COMMA} dear!{WAIT_PRESS}\n" "You{APOSTROPHE}re short on money{COMMA} my friend!"); -ALIGNED(4) static const u8 gUnknown_80D68E0[] = _( +ALIGNED(4) static const u8 sUnknown_80D68E0[] = _( " Oh? Uh-oh!{WAIT_PRESS}\n" "My shelves are bare of wares!{EXTRA_MSG}" " I am completely sold out{COMMA}\n" "my friend!"); -ALIGNED(4) static const u8 gUnknown_80D6938[] = _( +ALIGNED(4) static const u8 sUnknown_80D6938[] = _( " Oh{COMMA} dear me!{WAIT_PRESS}\n" "My friend{COMMA} you{APOSTROPHE}ve run out of space for\n" "my wares!"); -ALIGNED(4) static const u8 gUnknown_80D6980[] = _( +ALIGNED(4) static const u8 sUnknown_80D6980[] = _( " Oh?{WAIT_PRESS}\n" "My friend{COMMA} you seem to have nothing?"); -ALIGNED(4) static const u8 gUnknown_80D69B0[] = _( +ALIGNED(4) static const u8 sUnknown_80D69B0[] = _( " Oh{COMMA} oh{COMMA} oh?{WAIT_PRESS}\n" "My friend{COMMA} you seem to not have anything\n" "that you can sell?"); -ALIGNED(4) static const u8 gUnknown_80D6A04[] = _( +ALIGNED(4) static const u8 sUnknown_80D6A04[] = _( " Oh{COMMA} my{COMMA} my!\n" "My friend{COMMA} you have too much money!{EXTRA_MSG}" " You can{APOSTROPHE}t carry any more\n" "money than you have now."); -ALIGNED(4) static const u8 gUnknown_80D6A74[] = _( +ALIGNED(4) static const u8 sUnknown_80D6A74[] = _( " Oh?{WAIT_PRESS}\n" "My friend{COMMA} you seem not to have\n" "enough money?"); -ALIGNED(4) static const u8 gUnknown_80D6AAC[] = _( +ALIGNED(4) static const u8 sUnknown_80D6AAC[] = _( " ...{WAIT_PRESS}I am all out of wares...\n" "I am so sorry{COMMA} my friend...{EXTRA_MSG}" " Tomorrow!\n" "Tomorrow I shall have more wares!"); -ALIGNED(4) static const u8 gUnknown_80D6B18[] = _( +ALIGNED(4) static const u8 sUnknown_80D6B18[] = _( " Fine{COMMA} fine{COMMA} we have a deal!\n" "Thank you so much〜♪ "); -ALIGNED(4) static const u8 gUnknown_80D6B50[] = _( +ALIGNED(4) static const u8 sUnknown_80D6B50[] = _( " For all that I can buy{COMMA} I can\n" "offer you {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" "Is that acceptable?"); -ALIGNED(4) static const u8 gUnknown_80D6BA0[] = _( +ALIGNED(4) static const u8 sUnknown_80D6BA0[] = _( " {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}{COMMA} you say?\n" "For that{COMMA} I can offer {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" "Is that acceptable?"); -ALIGNED(4) static const u8 gUnknown_80D6BF4[] = _( +ALIGNED(4) static const u8 sUnknown_80D6BF4[] = _( " Do you wish to sell me\n" "anything else?"); -ALIGNED(4) static const u8 gUnknown_80D6C1C[] = _( +ALIGNED(4) static const u8 sUnknown_80D6C1C[] = _( " Thank you so much〜♪\n" "A very good choice!"); -ALIGNED(4) static const u8 gUnknown_80D6C48[] = _( +ALIGNED(4) static const u8 sUnknown_80D6C48[] = _( " {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}{COMMA} you say?\n" "That will be {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" "Is that acceptable?"); -ALIGNED(4) static const u8 gUnknown_80D6C90[] = _( +ALIGNED(4) static const u8 sUnknown_80D6C90[] = _( " Do you wish to purchase\n" "anything else?"); -ALIGNED(4) static const u8 gUnknown_80D6CB8[] = _( +ALIGNED(4) static const u8 sUnknown_80D6CB8[] = _( " Ah{COMMA} very well!\n" "Do examine my merchandise.\n" "I have chosen it with pride〜♪ "); -ALIGNED(4) static const u8 gUnknown_80D6D08[] = _( +ALIGNED(4) static const u8 sUnknown_80D6D08[] = _( " Thank you so much!\n" "Please do visit again〜♪ "); -ALIGNED(4) static const u8 gUnknown_80D6D38[] = _( +ALIGNED(4) static const u8 sUnknown_80D6D38[] = _( " May I assist you in any\n" "other way?"); -ALIGNED(4) static const u8 gUnknown_80D6D5C[] = _( +ALIGNED(4) static const u8 sUnknown_80D6D5C[] = _( " Welcome to Kecleon Wares!\n" "The shop for Orbs and TMs〜♪ "); -ALIGNED(4) static const u8 gUnknown_80D6D98[] = _( +ALIGNED(4) static const u8 sUnknown_80D6D98[] = _( " Zzzzzz...\n" "I sell items...{EXTRA_MSG}" " Items... Meep meep...\n" @@ -439,105 +439,105 @@ ALIGNED(4) static const u8 gUnknown_80D6D98[] = _( "Your imagination...and be clever...\n" "With them..."); -ALIGNED(4) static const u8 gUnknown_80D6E30[] = _( +ALIGNED(4) static const u8 sUnknown_80D6E30[] = _( " Zzz... Hunh{COMMA} what...?{WAIT_PRESS}\n" "Zzz... You can{APOSTROPHE}t hold any more money..."); -ALIGNED(4) static const u8 gUnknown_80D6E78[] = _( +ALIGNED(4) static const u8 sUnknown_80D6E78[] = _( " Zzz... Whoa...{WAIT_PRESS}\n" "I... I can{APOSTROPHE}t take that!"); -ALIGNED(4) static const u8 gUnknown_80D6EA4[] = _( +ALIGNED(4) static const u8 sUnknown_80D6EA4[] = _( " Zzz... Huh{COMMA} my...!{WAIT_PRESS}\n" "Meep... Meep...\n" "You don{APOSTROPHE}t have enough money!"); -ALIGNED(4) static const u8 gUnknown_80D6EEC[] = _( +ALIGNED(4) static const u8 sUnknown_80D6EEC[] = _( " Zzz... Uh-oh?!{WAIT_PRESS}\n" "Eep!\n" "Sold out! All gone!"); -ALIGNED(4) static const u8 gUnknown_80D6F18[] = _( +ALIGNED(4) static const u8 sUnknown_80D6F18[] = _( " Zzz... Oh{COMMA} my!{WAIT_PRESS}\n" "Meep... You have no space..."); -ALIGNED(4) static const u8 gUnknown_80D6F4C[] = _( +ALIGNED(4) static const u8 sUnknown_80D6F4C[] = _( " Zzz... Eep...?{WAIT_PRESS}\n" "Meep... You don{APOSTROPHE}t seem to have\n" "anything...?"); -ALIGNED(4) static const u8 gUnknown_80D6F8C[] = _( +ALIGNED(4) static const u8 sUnknown_80D6F8C[] = _( " Zzz... Huh?{WAIT_PRESS}\n" "Meep meep...\n" "You don{APOSTROPHE}t seem to have anything to sell?"); -ALIGNED(4) static const u8 gUnknown_80D6FD4[] = _( +ALIGNED(4) static const u8 sUnknown_80D6FD4[] = _( " Zzz... Oh{COMMA} my!\n" "You have so much money...!{EXTRA_MSG}" " Zzz... Meep...\n" "You can{APOSTROPHE}t carry any more money..."); -ALIGNED(4) static const u8 gUnknown_80D7038[] = _( +ALIGNED(4) static const u8 sUnknown_80D7038[] = _( " Hunh?{WAIT_PRESS}\n" "Eep...?\n" "You don{APOSTROPHE}t have money?"); -ALIGNED(4) static const u8 gUnknown_80D7064[] = _( +ALIGNED(4) static const u8 sUnknown_80D7064[] = _( " ...{WAIT_PRESS} ZZZ!\n" "I{APOSTROPHE}m sold out... Forgive me..."); -ALIGNED(4) static const u8 gUnknown_80D7090[] = _( +ALIGNED(4) static const u8 sUnknown_80D7090[] = _( " Done... Meep! Deal!\n" "Thank you..."); -ALIGNED(4) static const u8 gUnknown_80D70B4[] = _( +ALIGNED(4) static const u8 sUnknown_80D70B4[] = _( " Zzzzzz... Zzzzzz...?\n" "I can pay you {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}\n" "for everything I can buy... OK?"); -ALIGNED(4) static const u8 gUnknown_80D7108[] = _( +ALIGNED(4) static const u8 sUnknown_80D7108[] = _( " Zzzzzz... Zzzzzz...?\n" "Selling that {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}...?\n" "How about {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}?"); -ALIGNED(4) static const u8 gUnknown_80D7154[] = _( +ALIGNED(4) static const u8 sUnknown_80D7154[] = _( " Zzz... Meep...\n" "Going to sell anything else?"); -ALIGNED(4) static const u8 gUnknown_80D7184[] = _( +ALIGNED(4) static const u8 sUnknown_80D7184[] = _( " Zzz... Zzz...?\n" "You{APOSTROPHE}re selling what...?"); -ALIGNED(4) static const u8 gUnknown_80D71B0[] = _( +ALIGNED(4) static const u8 sUnknown_80D71B0[] = _( " Eep! Wah...?\n" "Thank you..."); -ALIGNED(4) static const u8 gUnknown_80D71CC[] = _( +ALIGNED(4) static const u8 sUnknown_80D71CC[] = _( " Zzz... Meep meep...\n" "{COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}...?\n" "{COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}{COMMA} OK?"); -ALIGNED(4) static const u8 gUnknown_80D7204[] = _( +ALIGNED(4) static const u8 sUnknown_80D7204[] = _( " Buy? Huh{COMMA} eep?\n" "Anything else?"); -ALIGNED(4) static const u8 gUnknown_80D7228[] = _( +ALIGNED(4) static const u8 sUnknown_80D7228[] = _( " Zzz... Meep... Eep...\n" "Look around..."); -ALIGNED(4) static const u8 gUnknown_80D7250[] = _( +ALIGNED(4) static const u8 sUnknown_80D7250[] = _( " Thank... Zzz...\n" "Thank you..."); -ALIGNED(4) static const u8 gUnknown_80D7270[] = _( +ALIGNED(4) static const u8 sUnknown_80D7270[] = _( " Zzz... Meep...\n" "Help you with anything else?"); -ALIGNED(4) static const u8 gUnknown_80D72A0[] = _( +ALIGNED(4) static const u8 sUnknown_80D72A0[] = _( " Zzzzzz...\n" "Welcome..."); -ALIGNED(4) static const u8 gUnknown_80D72B8[] = _( +ALIGNED(4) static const u8 sUnknown_80D72B8[] = _( " We{COMMA} the {ARG_POKEMON_6}\n" "Brothers{COMMA} have a passion for selling\n" "items.{EXTRA_MSG}" @@ -558,99 +558,99 @@ ALIGNED(4) static const u8 gUnknown_80D72B8[] = _( "dungeons.\n" "Please do visit〜♪ "); -ALIGNED(4) static const u8 gUnknown_80D7480[] = _( +ALIGNED(4) static const u8 sUnknown_80D7480[] = _( " Oh{COMMA} my!{WAIT_PRESS}\n" "You can{APOSTROPHE}t add any more to your money.\n" "I can{APOSTROPHE}t complete this deal{COMMA} sorry."); -ALIGNED(4) static const u8 gUnknown_80D74DC[] = _( +ALIGNED(4) static const u8 sUnknown_80D74DC[] = _( " Oh{COMMA} whoa{COMMA} whoa!{WAIT_PRESS}\n" "I... I couldn{APOSTROPHE}t possibly take that from you!"); -ALIGNED(4) static const u8 gUnknown_80D7524[] = _( +ALIGNED(4) static const u8 sUnknown_80D7524[] = _( " Oh{COMMA} my!{WAIT_PRESS}\n" "Sorry{COMMA} but you don{APOSTROPHE}t have enough money!"); -ALIGNED(4) static const u8 gUnknown_80D7560[] = _( +ALIGNED(4) static const u8 sUnknown_80D7560[] = _( " Uh-oh?!{WAIT_PRESS}\n" "That{APOSTROPHE}s it! No more merchandise!{EXTRA_MSG}" " I{APOSTROPHE}m completely sold out!"); -ALIGNED(4) static const u8 gUnknown_80D75AC[] = _( +ALIGNED(4) static const u8 sUnknown_80D75AC[] = _( " Oh{COMMA} my!{WAIT_PRESS}\n" "You have no space for any more items!"); -ALIGNED(4) static const u8 gUnknown_80D75E0[] = _( +ALIGNED(4) static const u8 sUnknown_80D75E0[] = _( " Oh? Oh?{WAIT_PRESS}\n" "You don{APOSTROPHE}t seem to have anything?"); -ALIGNED(4) static const u8 gUnknown_80D7610[] = _( +ALIGNED(4) static const u8 sUnknown_80D7610[] = _( " Oh? Oh?{WAIT_PRESS}\n" "You seem to have nothing to sell?"); -ALIGNED(4) static const u8 gUnknown_80D7640[] = _( +ALIGNED(4) static const u8 sUnknown_80D7640[] = _( " Oh{COMMA} my goodness!\n" "You{APOSTROPHE}re overflowing with money!{EXTRA_MSG}" " You couldn{APOSTROPHE}t possibly carry\n" "any more money! "); -ALIGNED(4) static const u8 gUnknown_80D76A8[] = _( +ALIGNED(4) static const u8 sUnknown_80D76A8[] = _( " Huh?{WAIT_PRESS}\n" "You don{APOSTROPHE}t seem to have the money?"); -ALIGNED(4) static const u8 gUnknown_80D76D4[] = _( +ALIGNED(4) static const u8 sUnknown_80D76D4[] = _( " ...{WAIT_PRESS}I{APOSTROPHE}m sold out...\n" "Please{COMMA} forgive me.{EXTRA_MSG}" " I will have new merchandise\n" "for you tomorrow{COMMA} I swear!"); -ALIGNED(4) static const u8 gUnknown_80D7740[] = _( +ALIGNED(4) static const u8 sUnknown_80D7740[] = _( " Good! Done deal!\n" "Thank you so much〜♪ "); -ALIGNED(4) static const u8 gUnknown_80D776C[] = _( +ALIGNED(4) static const u8 sUnknown_80D776C[] = _( " For everything I can buy{COMMA}\n" "I can offer {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" "Is that acceptable to you?"); -ALIGNED(4) static const u8 gUnknown_80D77C0[] = _( +ALIGNED(4) static const u8 sUnknown_80D77C0[] = _( " {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}?\n" "I can offer you {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" "Will you sell it for that price?"); -ALIGNED(4) static const u8 gUnknown_80D780C[] = _( +ALIGNED(4) static const u8 sUnknown_80D780C[] = _( " Do you wish to sell\n" "anything else?"); -ALIGNED(4) static const u8 gUnknown_80D7830[] = _( +ALIGNED(4) static const u8 sUnknown_80D7830[] = _( " Ah{COMMA} very well!\n" "What do you wish to sell?"); -ALIGNED(4) static const u8 gUnknown_80D785C[] = _( +ALIGNED(4) static const u8 sUnknown_80D785C[] = _( " Very well! Thank you〜♪\n" "It is yours to take!"); -ALIGNED(4) static const u8 gUnknown_80D788C[] = _( +ALIGNED(4) static const u8 sUnknown_80D788C[] = _( " {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}?\n" "That will be {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" "Is that to your liking?"); -ALIGNED(4) static const u8 gUnknown_80D78CC[] = _( +ALIGNED(4) static const u8 sUnknown_80D78CC[] = _( " Do you wish to buy\n" "anything else today?"); -ALIGNED(4) static const u8 gUnknown_80D78F8[] = _( +ALIGNED(4) static const u8 sUnknown_80D78F8[] = _( " Ah{COMMA} very well!\n" "Feel free to examine my merchandise〜♪"); -ALIGNED(4) static const u8 gUnknown_80D7934[] = _( +ALIGNED(4) static const u8 sUnknown_80D7934[] = _( " Thank you!\n" "Please call again〜♪ "); -ALIGNED(4) static const u8 gUnknown_80D7958[] = _( +ALIGNED(4) static const u8 sUnknown_80D7958[] = _( " May I help you with\n" "anything else?"); -ALIGNED(4) static const u8 gUnknown_80D797C[] = _( +ALIGNED(4) static const u8 sUnknown_80D797C[] = _( " Hello〜♪\n" "Welcome to the {ARG_POKEMON_6} Shop〜♪ "); \ No newline at end of file diff --git a/src/data/common_strings_wigglytuff_shop.h b/src/data/common_strings_wigglytuff_shop.h index 532b0baca..ca680cc43 100644 --- a/src/data/common_strings_wigglytuff_shop.h +++ b/src/data/common_strings_wigglytuff_shop.h @@ -1,91 +1,91 @@ -static const u8 gUnknown_80D7A44[]; -static const u8 gUnknown_80D7C94[]; -static const u8 gUnknown_80D7CE8[]; -static const u8 gUnknown_80D7D64[]; -static const u8 gUnknown_80D7DA0[]; -static const u8 gUnknown_80D7DE0[]; -static const u8 gUnknown_80D7E04[]; -static const u8 gUnknown_80D7E2C[]; -static const u8 gUnknown_80D7E58[]; -static const u8 gUnknown_80D7E9C[]; -static const u8 gUnknown_80D7ED0[]; -static const u8 gUnknown_80D7F10[]; -static const u8 gUnknown_80D7F7C[]; -static const u8 gUnknown_80D8000[]; -static const u8 gUnknown_80D8030[]; -static const u8 gUnknown_80D8054[]; -static const u8 gUnknown_80D8080[]; -static const u8 gUnknown_80D80B0[]; -static const u8 gUnknown_80D80D4[]; -static const u8 gUnknown_80D8104[]; -static const u8 gUnknown_80D8420[]; -static const u8 gUnknown_80D8468[]; -static const u8 gUnknown_80D84F8[]; -static const u8 gUnknown_80D8528[]; -static const u8 gUnknown_80D8550[]; -static const u8 gUnknown_80D8584[]; -static const u8 gUnknown_80D85AC[]; -static const u8 gUnknown_80D85E4[]; -static const u8 gUnknown_80D8620[]; -static const u8 gUnknown_80D8644[]; -static const u8 gUnknown_80D8674[]; -static const u8 gUnknown_80D86E4[]; -static const u8 gUnknown_80D8738[]; -static const u8 gUnknown_80D876C[]; -static const u8 gUnknown_80D8798[]; -static const u8 gUnknown_80D87E0[]; -static const u8 gUnknown_80D8818[]; -static const u8 gUnknown_80D883C[]; +static const u8 sUnknown_80D7A44[]; +static const u8 sUnknown_80D7C94[]; +static const u8 sUnknown_80D7CE8[]; +static const u8 sUnknown_80D7D64[]; +static const u8 sUnknown_80D7DA0[]; +static const u8 sUnknown_80D7DE0[]; +static const u8 sUnknown_80D7E04[]; +static const u8 sUnknown_80D7E2C[]; +static const u8 sUnknown_80D7E58[]; +static const u8 sUnknown_80D7E9C[]; +static const u8 sUnknown_80D7ED0[]; +static const u8 sUnknown_80D7F10[]; +static const u8 sUnknown_80D7F7C[]; +static const u8 sUnknown_80D8000[]; +static const u8 sUnknown_80D8030[]; +static const u8 sUnknown_80D8054[]; +static const u8 sUnknown_80D8080[]; +static const u8 sUnknown_80D80B0[]; +static const u8 sUnknown_80D80D4[]; +static const u8 sUnknown_80D8104[]; +static const u8 sUnknown_80D8420[]; +static const u8 sUnknown_80D8468[]; +static const u8 sUnknown_80D84F8[]; +static const u8 sUnknown_80D8528[]; +static const u8 sUnknown_80D8550[]; +static const u8 sUnknown_80D8584[]; +static const u8 sUnknown_80D85AC[]; +static const u8 sUnknown_80D85E4[]; +static const u8 sUnknown_80D8620[]; +static const u8 sUnknown_80D8644[]; +static const u8 sUnknown_80D8674[]; +static const u8 sUnknown_80D86E4[]; +static const u8 sUnknown_80D8738[]; +static const u8 sUnknown_80D876C[]; +static const u8 sUnknown_80D8798[]; +static const u8 sUnknown_80D87E0[]; +static const u8 sUnknown_80D8818[]; +static const u8 sUnknown_80D883C[]; ALIGNED(4) const u8* const gCommonWigglytuff[WIGGLYTUFF_SHOP_MODE_COUNT][WIGGLY_DLG_MAX] = { [WIGGLYTUFF_SHOP_MODE_AWAKE] = { - [WIGGLY_DLG_00] = gUnknown_80D883C, - [WIGGLY_DLG_01] = gUnknown_80D8818, - [WIGGLY_DLG_02] = gUnknown_80D87E0, - [WIGGLY_DLG_03] = gUnknown_80D8798, - [WIGGLY_DLG_04] = gUnknown_80D876C, - [WIGGLY_DLG_05] = gUnknown_80D8738, - [WIGGLY_DLG_06] = gUnknown_80D86E4, - [WIGGLY_DLG_07] = gUnknown_80D8674, - [WIGGLY_DLG_08] = gUnknown_80D8644, - [WIGGLY_DLG_09] = gUnknown_80D8620, - [WIGGLY_DLG_10] = gUnknown_80D85E4, - [WIGGLY_DLG_11] = gUnknown_80D85AC, - [WIGGLY_DLG_12] = gUnknown_80D8584, - [WIGGLY_DLG_13] = gUnknown_80D8550, - [WIGGLY_DLG_14] = gUnknown_80D8528, - [WIGGLY_DLG_15] = gUnknown_80D84F8, - [WIGGLY_DLG_16] = gUnknown_80D8468, - [WIGGLY_DLG_17] = gUnknown_80D8420, - [WIGGLY_DLG_18] = gUnknown_80D8420, - [WIGGLY_DLG_19] = gUnknown_80D8104 + [WIGGLY_DLG_00] = sUnknown_80D883C, + [WIGGLY_DLG_01] = sUnknown_80D8818, + [WIGGLY_DLG_02] = sUnknown_80D87E0, + [WIGGLY_DLG_03] = sUnknown_80D8798, + [WIGGLY_DLG_04] = sUnknown_80D876C, + [WIGGLY_DLG_05] = sUnknown_80D8738, + [WIGGLY_DLG_06] = sUnknown_80D86E4, + [WIGGLY_DLG_07] = sUnknown_80D8674, + [WIGGLY_DLG_08] = sUnknown_80D8644, + [WIGGLY_DLG_09] = sUnknown_80D8620, + [WIGGLY_DLG_10] = sUnknown_80D85E4, + [WIGGLY_DLG_11] = sUnknown_80D85AC, + [WIGGLY_DLG_12] = sUnknown_80D8584, + [WIGGLY_DLG_13] = sUnknown_80D8550, + [WIGGLY_DLG_14] = sUnknown_80D8528, + [WIGGLY_DLG_15] = sUnknown_80D84F8, + [WIGGLY_DLG_16] = sUnknown_80D8468, + [WIGGLY_DLG_17] = sUnknown_80D8420, + [WIGGLY_DLG_18] = sUnknown_80D8420, + [WIGGLY_DLG_19] = sUnknown_80D8104 }, [WIGGLYTUFF_SHOP_MODE_ASLEEP] = { - [WIGGLY_DLG_00] = gUnknown_80D80D4, - [WIGGLY_DLG_01] = gUnknown_80D80B0, - [WIGGLY_DLG_02] = gUnknown_80D8080, - [WIGGLY_DLG_03] = gUnknown_80D8054, - [WIGGLY_DLG_04] = gUnknown_80D8030, - [WIGGLY_DLG_05] = gUnknown_80D8000, - [WIGGLY_DLG_06] = gUnknown_80D7F7C, - [WIGGLY_DLG_07] = gUnknown_80D7F10, - [WIGGLY_DLG_08] = gUnknown_80D7ED0, - [WIGGLY_DLG_09] = gUnknown_80D7E9C, - [WIGGLY_DLG_10] = gUnknown_80D7E58, - [WIGGLY_DLG_11] = gUnknown_80D7E2C, - [WIGGLY_DLG_12] = gUnknown_80D7E04, - [WIGGLY_DLG_13] = gUnknown_80D7DE0, - [WIGGLY_DLG_14] = gUnknown_80D7DA0, - [WIGGLY_DLG_15] = gUnknown_80D7D64, - [WIGGLY_DLG_16] = gUnknown_80D7CE8, - [WIGGLY_DLG_17] = gUnknown_80D7C94, - [WIGGLY_DLG_18] = gUnknown_80D7C94, - [WIGGLY_DLG_19] = gUnknown_80D7A44 + [WIGGLY_DLG_00] = sUnknown_80D80D4, + [WIGGLY_DLG_01] = sUnknown_80D80B0, + [WIGGLY_DLG_02] = sUnknown_80D8080, + [WIGGLY_DLG_03] = sUnknown_80D8054, + [WIGGLY_DLG_04] = sUnknown_80D8030, + [WIGGLY_DLG_05] = sUnknown_80D8000, + [WIGGLY_DLG_06] = sUnknown_80D7F7C, + [WIGGLY_DLG_07] = sUnknown_80D7F10, + [WIGGLY_DLG_08] = sUnknown_80D7ED0, + [WIGGLY_DLG_09] = sUnknown_80D7E9C, + [WIGGLY_DLG_10] = sUnknown_80D7E58, + [WIGGLY_DLG_11] = sUnknown_80D7E2C, + [WIGGLY_DLG_12] = sUnknown_80D7E04, + [WIGGLY_DLG_13] = sUnknown_80D7DE0, + [WIGGLY_DLG_14] = sUnknown_80D7DA0, + [WIGGLY_DLG_15] = sUnknown_80D7D64, + [WIGGLY_DLG_16] = sUnknown_80D7CE8, + [WIGGLY_DLG_17] = sUnknown_80D7C94, + [WIGGLY_DLG_18] = sUnknown_80D7C94, + [WIGGLY_DLG_19] = sUnknown_80D7A44 } }; -ALIGNED(4) static const u8 gUnknown_80D7A44[] = _( +ALIGNED(4) static const u8 sUnknown_80D7A44[] = _( " Zzz...\n" "Want more friends?{EXTRA_MSG}" " Zzz... Kwoo...\n" @@ -111,14 +111,14 @@ ALIGNED(4) static const u8 gUnknown_80D7A44[] = _( "Check the Pelipper Post Office{APOSTROPHE}s Bulletin\n" "Board or your Mailbox for missions..."); -ALIGNED(4) static const u8 gUnknown_80D7C94[] = _( +ALIGNED(4) static const u8 sUnknown_80D7C94[] = _( " Sssnore...\n" "{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}...?\n" "I can{APOSTROPHE}t get that Friend Area...{EXTRA_MSG}" " Zzz... Zzz...\n" "Sorry..."); -ALIGNED(4) static const u8 gUnknown_80D7CE8[] = _( +ALIGNED(4) static const u8 sUnknown_80D7CE8[] = _( " Zzz... Hunh...?\n" "{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}...?\n" "I don{APOSTROPHE}t know... I{APOSTROPHE}ll check...{EXTRA_MSG}" @@ -126,51 +126,51 @@ ALIGNED(4) static const u8 gUnknown_80D7CE8[] = _( "I{APOSTROPHE}ll have it for sale...\n" "When I find out..."); -ALIGNED(4) static const u8 gUnknown_80D7D64[] = _( +ALIGNED(4) static const u8 sUnknown_80D7D64[] = _( " Sssnore...\n" "You can already go...\n" "Friend Area {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}..."); -ALIGNED(4) static const u8 gUnknown_80D7DA0[] = _( +ALIGNED(4) static const u8 sUnknown_80D7DA0[] = _( " Dwee... Kwoo...\n" "{COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}{APOSTROPHE}s Friend Area...\n" "Zzz... {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}..."); -ALIGNED(4) static const u8 gUnknown_80D7DE0[] = _( +ALIGNED(4) static const u8 sUnknown_80D7DE0[] = _( " Another Pokémon...\n" "Zzz... Check?"); -ALIGNED(4) static const u8 gUnknown_80D7E04[] = _( +ALIGNED(4) static const u8 sUnknown_80D7E04[] = _( " Zzz... Kwoo...\n" "Check which Pokémon?"); -ALIGNED(4) static const u8 gUnknown_80D7E2C[] = _( +ALIGNED(4) static const u8 sUnknown_80D7E2C[] = _( " Zzz... Dwee...? Oops?{WAIT_PRESS}\n" "Not enough money?"); -ALIGNED(4) static const u8 gUnknown_80D7E58[] = _( +ALIGNED(4) static const u8 sUnknown_80D7E58[] = _( " Zzz... Hunh?{WAIT_PRESS}\n" "Sssnore... Sorry...\n" "Fresh out of Friend Areas..."); -ALIGNED(4) static const u8 gUnknown_80D7E9C[] = _( +ALIGNED(4) static const u8 sUnknown_80D7E9C[] = _( " Hunh...?{WAIT_PRESS}\n" "You don{APOSTROPHE}t have any money...\n" "Zzzzzz..."); -ALIGNED(4) static const u8 gUnknown_80D7ED0[] = _( +ALIGNED(4) static const u8 sUnknown_80D7ED0[] = _( " Zzz... Zzz?{WAIT_PRESS}\n" "Hunh...?\n" "You can{APOSTROPHE}t add to your Friend Areas..."); -ALIGNED(4) static const u8 gUnknown_80D7F10[] = _( +ALIGNED(4) static const u8 sUnknown_80D7F10[] = _( " Grats... Zzz...{WAIT_PRESS}\n" "You can go to {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}...{EXTRA_MSG}" " Dwee... Sssnore...\n" "Make friends with Pokémon in...\n" "{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}..."); -ALIGNED(4) static const u8 gUnknown_80D7F7C[] = _( +ALIGNED(4) static const u8 sUnknown_80D7F7C[] = _( " Zzz... Dwee... Gotcha...{WAIT_PRESS}\n" "Zzz... Let{APOSTROPHE}s do it...{EXTRA_MSG}" " Sssnore♪ Sssnore♪\n" @@ -179,33 +179,33 @@ ALIGNED(4) static const u8 gUnknown_80D7F7C[] = _( " Kwoo!\n" "Taaaaaaah!"); -ALIGNED(4) static const u8 gUnknown_80D8000[] = _( +ALIGNED(4) static const u8 sUnknown_80D8000[] = _( " Kwoo? {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}?\n" "That{APOSTROPHE}s {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}...\n" "OK?"); -ALIGNED(4) static const u8 gUnknown_80D8030[] = _( +ALIGNED(4) static const u8 sUnknown_80D8030[] = _( " Zzz... Wha--?\n" "More Friend Areas?"); -ALIGNED(4) static const u8 gUnknown_80D8054[] = _( +ALIGNED(4) static const u8 sUnknown_80D8054[] = _( " Dwee... Hunh?\n" "Friend Areas...?\n" "Which one?"); -ALIGNED(4) static const u8 gUnknown_80D8080[] = _( +ALIGNED(4) static const u8 sUnknown_80D8080[] = _( " Thank... Zzz... You...\n" "Friends{COMMA} friend..."); -ALIGNED(4) static const u8 gUnknown_80D80B0[] = _( +ALIGNED(4) static const u8 sUnknown_80D80B0[] = _( " Anything? Kwoo...\n" "Anything else?"); -ALIGNED(4) static const u8 gUnknown_80D80D4[] = _( +ALIGNED(4) static const u8 sUnknown_80D80D4[] = _( " Friends... Zzz...\n" "Welcome to the {ARG_POKEMON_6} Club..."); -ALIGNED(4) static const u8 gUnknown_80D8104[] = _( +ALIGNED(4) static const u8 sUnknown_80D8104[] = _( " Would you like to get more\n" "friends...{WAIT_PRESS}\n" "...More members for your team?{EXTRA_MSG}" @@ -234,87 +234,87 @@ ALIGNED(4) static const u8 gUnknown_80D8104[] = _( " You know{COMMA} it makes me\n" "delighted when you make new friends!"); -ALIGNED(4) static const u8 gUnknown_80D8420[] = _( +ALIGNED(4) static const u8 sUnknown_80D8420[] = _( " {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}?\n" "I can{APOSTROPHE}t get that Friend Area for you.{WAIT_PRESS}\n" "I{APOSTROPHE}m really sorry."); -ALIGNED(4) static const u8 gUnknown_80D8468[] = _( +ALIGNED(4) static const u8 sUnknown_80D8468[] = _( " {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}?\n" "I don{APOSTROPHE}t know much about it at all.{WAIT_PRESS}\n" "I{APOSTROPHE}ll check up on it.{EXTRA_MSG}" " I{APOSTROPHE}ll add it to the Friend\n" "Areas you can buy when I find out more."); -ALIGNED(4) static const u8 gUnknown_80D84F8[] = _( +ALIGNED(4) static const u8 sUnknown_80D84F8[] = _( " You can already go to the\n" "Friend Area {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}."); -ALIGNED(4) static const u8 gUnknown_80D8528[] = _( +ALIGNED(4) static const u8 sUnknown_80D8528[] = _( " {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}{APOSTROPHE}s Friend Area\n" "is {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}."); -ALIGNED(4) static const u8 gUnknown_80D8550[] = _( +ALIGNED(4) static const u8 sUnknown_80D8550[] = _( " Is there another Pokémon\n" "you{APOSTROPHE}d like to check?"); -ALIGNED(4) static const u8 gUnknown_80D8584[] = _( +ALIGNED(4) static const u8 sUnknown_80D8584[] = _( " Which Pokémon would you\n" "like to check?"); -ALIGNED(4) static const u8 gUnknown_80D85AC[] = _( +ALIGNED(4) static const u8 sUnknown_80D85AC[] = _( " Oops?{WAIT_PRESS}\n" "It doesn{APOSTROPHE}t look like you have enough\n" "money!"); -ALIGNED(4) static const u8 gUnknown_80D85E4[] = _( +ALIGNED(4) static const u8 sUnknown_80D85E4[] = _( " Oops?{WAIT_PRESS}\n" "Oh{COMMA} too bad.{WAIT_PRESS}\n" "I{APOSTROPHE}m fresh out of Friend Areas."); -ALIGNED(4) static const u8 gUnknown_80D8620[] = _( +ALIGNED(4) static const u8 sUnknown_80D8620[] = _( " Um?{WAIT_PRESS}\n" "You don{APOSTROPHE}t have any money."); -ALIGNED(4) static const u8 gUnknown_80D8644[] = _( +ALIGNED(4) static const u8 sUnknown_80D8644[] = _( " Oops!{WAIT_PRESS}\n" "You can{APOSTROPHE}t add to your Friend Areas."); -ALIGNED(4) static const u8 gUnknown_80D8674[] = _( +ALIGNED(4) static const u8 sUnknown_80D8674[] = _( " Congratulations!{WAIT_PRESS}\n" "You can go to {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1} now!{EXTRA_MSG}" " You can recruit\n" "Pokémon that live in the Friend Area\n" "{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}."); -ALIGNED(4) static const u8 gUnknown_80D86E4[] = _( +ALIGNED(4) static const u8 sUnknown_80D86E4[] = _( " Gotcha! Let{APOSTROPHE}s do it!{WAIT_PRESS}\n" "{ARG_POKEMON_6}〜♪ {ARG_POKEMON_6}〜♪{WAIT_PRESS}\n" "Let{APOSTROPHE}s be friends... Yoomtaaaaaaah!"); -ALIGNED(4) static const u8 gUnknown_80D8738[] = _( +ALIGNED(4) static const u8 sUnknown_80D8738[] = _( " {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}?\n" "That will be {COLOR_1 CYAN}{ARG_VALUE_0}{END_COLOR_TEXT_1} {POKE}.\n" "Is that OK?"); -ALIGNED(4) static const u8 gUnknown_80D876C[] = _( +ALIGNED(4) static const u8 sUnknown_80D876C[] = _( " Would you like to add\n" "other Friend Areas?"); -ALIGNED(4) static const u8 gUnknown_80D8798[] = _( +ALIGNED(4) static const u8 sUnknown_80D8798[] = _( " You{APOSTROPHE}d like to add to your\n" "Friend Areas?\n" "Which one would you like?"); -ALIGNED(4) static const u8 gUnknown_80D87E0[] = _( +ALIGNED(4) static const u8 sUnknown_80D87E0[] = _( " Thank you! Come again!\n" "We{APOSTROPHE}re all friends{COMMA} friend!"); -ALIGNED(4) static const u8 gUnknown_80D8818[] = _( +ALIGNED(4) static const u8 sUnknown_80D8818[] = _( " Anything else I can do for\n" "you?"); -ALIGNED(4) static const u8 gUnknown_80D883C[] = _( +ALIGNED(4) static const u8 sUnknown_80D883C[] = _( " Friends are my treasures!\n" "Welcome to the {ARG_POKEMON_6} Club--\n" "a circle of friends! "); \ No newline at end of file diff --git a/src/debug_menu2.c b/src/debug_menu2.c index a92caf4b7..fec7a2e9f 100644 --- a/src/debug_menu2.c +++ b/src/debug_menu2.c @@ -153,7 +153,7 @@ static void sub_803A6F0(void) } loopMax++; - sUnknown_203B3F0->menuItems[loopMax].text = *gCommonInfo; + sUnknown_203B3F0->menuItems[loopMax].text = gCommonInfo[0]; sUnknown_203B3F0->menuItems[loopMax].menuAction = 3; loopMax++; diff --git a/src/felicity_bank.c b/src/felicity_bank.c index 197082eae..4388c5794 100644 --- a/src/felicity_bank.c +++ b/src/felicity_bank.c @@ -264,19 +264,19 @@ static void CreateFelicityBankShopMenu(void) MemoryFill16(sFelicityBankWork->unk54, 0, sizeof(sFelicityBankWork->unk54)); - sFelicityBankWork->unk14[loopMax].text = *gCommonStore; + sFelicityBankWork->unk14[loopMax].text = gCommonStore[0]; sFelicityBankWork->unk14[loopMax].menuAction = 2; loopMax++; - sFelicityBankWork->unk14[loopMax].text = *gCommonTake; + sFelicityBankWork->unk14[loopMax].text = gCommonTake[0]; sFelicityBankWork->unk14[loopMax].menuAction = 3; loopMax++; - sFelicityBankWork->unk14[loopMax].text = *gCommonInfo; + sFelicityBankWork->unk14[loopMax].text = gCommonInfo[0]; sFelicityBankWork->unk14[loopMax].menuAction = 4; loopMax++; - sFelicityBankWork->unk14[loopMax].text = *gCommonCancel; + sFelicityBankWork->unk14[loopMax].text = gCommonCancel[0]; sFelicityBankWork->unk14[loopMax].menuAction = 1; loopMax++; @@ -383,9 +383,9 @@ static void sub_8016B48(u8 action) sub_80073B8(sFelicityBankWork->unk64.unk14); if (action != FELICITY_BANK_ACTION_WITHDRAW) - xxx_call_draw_string(12, 0, *gCommonDepositPrompt, sFelicityBankWork->unk64.unk14, 0); + xxx_call_draw_string(12, 0, gCommonDepositPrompt[0], sFelicityBankWork->unk64.unk14, 0); else - xxx_call_draw_string(12, 0, *gCommonWithdrawPrompt, sFelicityBankWork->unk64.unk14, 0); + xxx_call_draw_string(12, 0, gCommonWithdrawPrompt[0], sFelicityBankWork->unk64.unk14, 0); sub_8013C68(&sFelicityBankWork->unk64); sub_80073E0(sFelicityBankWork->unk64.unk14); diff --git a/src/friend_area_action_menu.c b/src/friend_area_action_menu.c index e04df070f..044ef8e2c 100644 --- a/src/friend_area_action_menu.c +++ b/src/friend_area_action_menu.c @@ -340,7 +340,7 @@ void sub_80276A8(void) gUnknown_203B2BC->unk16C[loopMax] = 1; } loopMax += 1; - gUnknown_203B2BC->menuItems[loopMax].text = *gCommonInfo; + gUnknown_203B2BC->menuItems[loopMax].text = gCommonInfo[0]; gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_INFO; loopMax += 1; gUnknown_203B2BC->menuItems[loopMax].text = 0; @@ -370,10 +370,10 @@ void sub_8027794(void) s32 loopMax = 0; MemoryFill16(gUnknown_203B2BC->unk16C,0,sizeof(gUnknown_203B2BC->unk16C)); - gUnknown_203B2BC->menuItems[loopMax].text = *gCommonYes; + gUnknown_203B2BC->menuItems[loopMax].text = gCommonYes[0]; gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_YES; loopMax += 1; - gUnknown_203B2BC->menuItems[loopMax].text = *gCommonNo; + gUnknown_203B2BC->menuItems[loopMax].text = gCommonNo[0]; gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_NO; loopMax += 1; gUnknown_203B2BC->menuItems[loopMax].text = NULL; diff --git a/src/friend_list_menu.c b/src/friend_list_menu.c index 0db7f1e8f..348922289 100644 --- a/src/friend_list_menu.c +++ b/src/friend_list_menu.c @@ -374,7 +374,7 @@ void sub_802591C(void) gUnknown_203B2B4->unk108[loopMax] = 1; } loopMax += 1; - gUnknown_203B2B4->unkC8[loopMax].text = *gCommonInfo; + gUnknown_203B2B4->unkC8[loopMax].text = gCommonInfo[0]; gUnknown_203B2B4->unkC8[loopMax].menuAction = 4; loopMax += 1; gUnknown_203B2B4->unkC8[loopMax].text = NULL; diff --git a/src/gulpin_shop.c b/src/gulpin_shop.c index 9ffd1dc7e..a22f78cb5 100644 --- a/src/gulpin_shop.c +++ b/src/gulpin_shop.c @@ -158,9 +158,9 @@ static void sub_801EA28(void) case 0: case 1: if (sGulpinShopWork->isNextMoveLinked) - sub_8014248(gCommonGulpin[sGulpinShopWork->isAsleep][12], 0, 5, &sGulpinShopWork->unk28[0], &sGulpinShopWork->unk68, 4, 0, sGulpinShopWork->unk128, 12); + sub_8014248(gCommonGulpin[sGulpinShopWork->isAsleep][GULPIN_DLG_12], 0, 5, &sGulpinShopWork->unk28[0], &sGulpinShopWork->unk68, 4, 0, sGulpinShopWork->unk128, 12); else - sub_8014248(gCommonGulpin[sGulpinShopWork->isAsleep][11], 0, 5, &sGulpinShopWork->unk28[0], &sGulpinShopWork->unk68, 4, 0, sGulpinShopWork->unk128, 12); + sub_8014248(gCommonGulpin[sGulpinShopWork->isAsleep][GULPIN_DLG_11], 0, 5, &sGulpinShopWork->unk28[0], &sGulpinShopWork->unk68, 4, 0, sGulpinShopWork->unk128, 12); break; case 2: if (sGulpinShopWork->isNextMoveLinked) @@ -188,7 +188,7 @@ static void sub_801EBC4(void) sGulpinShopWork->unk68[0] = 1; which++; - sGulpinShopWork->unk28[which].text = *gCommonInfo; + sGulpinShopWork->unk28[which].text = gCommonInfo[0]; sGulpinShopWork->unk28[which].menuAction = 3; which++; sGulpinShopWork->unk28[which].text = NULL; @@ -216,10 +216,10 @@ static void sub_801EC7C(void) which = 0; MemoryFill16(sGulpinShopWork->unk68, 0, sizeof(sGulpinShopWork->unk68)); - sGulpinShopWork->unk28[which].text = *gCommonYes; + sGulpinShopWork->unk28[which].text = gCommonYes[0]; sGulpinShopWork->unk28[which].menuAction = 4; which++; - sGulpinShopWork->unk28[which].text = *gCommonNo; + sGulpinShopWork->unk28[which].text = gCommonNo[0]; sGulpinShopWork->unk28[which].menuAction = 5; which++; sGulpinShopWork->unk28[which].text = NULL; diff --git a/src/gulpin_shop_801FB50.c b/src/gulpin_shop_801FB50.c index a65f57859..ad8f03290 100644 --- a/src/gulpin_shop_801FB50.c +++ b/src/gulpin_shop_801FB50.c @@ -233,63 +233,63 @@ static void sub_801FF28(void) gUnknown_203B27C->menuAction1 = 2; CreateGulpinShopMenu(); gUnknown_203B27C->fallbackState = 2; - sub_8014248(gCommonGulpin[gUnknown_203B27C->isAsleep][0],0,gUnknown_203B27C->menuAction1,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0,gUnknown_203B27C->unk17C,0xc); + sub_8014248(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_00],0,gUnknown_203B27C->menuAction1,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0,gUnknown_203B27C->unk17C,0xc); break; case 1: CreateGulpinShopMenu(); gUnknown_203B27C->fallbackState = 2; - sub_8014248(gCommonGulpin[gUnknown_203B27C->isAsleep][1],0,gUnknown_203B27C->menuAction1,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0,gUnknown_203B27C->unk17C,0xc); + sub_8014248(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_01],0,gUnknown_203B27C->menuAction1,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0,gUnknown_203B27C->unk17C,0xc); break; case 2: DrawTeamMoneyBox(3); break; case 3: gUnknown_203B27C->fallbackState = 0x1f; - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][2],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_02],0,gUnknown_203B27C->unk17C,0x10d); break; case 4: gUnknown_203B27C->fallbackState = 0x1f; - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][3],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_03],0,gUnknown_203B27C->unk17C,0x10d); break; case 5: gUnknown_203B27C->fallbackState = 0x1f; - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][4],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_04],0,gUnknown_203B27C->unk17C,0x10d); break; case 6: gUnknown_203B27C->fallbackState = 0x1f; - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][5],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_05],0,gUnknown_203B27C->unk17C,0x10d); break; case 7: sub_8020900(); - sub_8014248(gCommonGulpin[gUnknown_203B27C->isAsleep][6],0,0x10, + sub_8014248(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_06],0,0x10, gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0, gUnknown_203B27C->unk17C,0xc); break; case 8: sub_8020950(); - sub_8014248(gCommonGulpin[gUnknown_203B27C->isAsleep][21],0,0xd, + sub_8014248(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_21],0,0xd, gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0, gUnknown_203B27C->unk17C,0xc); break; case 9: gUnknown_203B27C->fallbackState = 1; - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][22],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_22],0,gUnknown_203B27C->unk17C,0x10d); break; case 10: gUnknown_203B27C->fallbackState = 1; - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][23],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_23],0,gUnknown_203B27C->unk17C,0x10d); break; case 0xb: gUnknown_203B27C->fallbackState = 1; - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][24],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_24],0,gUnknown_203B27C->unk17C,0x10d); break; case 0xc: gUnknown_203B27C->fallbackState = 0xd; - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][7],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_07],0,gUnknown_203B27C->unk17C,0x10d); break; case 0xe: gUnknown_203B27C->fallbackState = 0xf; - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][8],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_08],0,gUnknown_203B27C->unk17C,0x10d); break; case 0xf: sub_8023868(2,0,0,10); @@ -309,7 +309,7 @@ static void sub_801FF28(void) break; case 0x14: gUnknown_203B27C->fallbackState = 0x15; - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][9],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_09],0,gUnknown_203B27C->unk17C,0x10d); break; case 0x15: sub_801F428(gUnknown_203B27C->speciesNum,0); @@ -333,17 +333,17 @@ static void sub_801FF28(void) sub_8094060(gUnknown_203B27C->moves,gUnknown_203B27C->pokeStruct->moves); gUnknown_203B27C->fallbackState = 0x10; sub_8092C84(gAvailablePokemonNames,gUnknown_203B27C->unk1E); - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][10],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_10],0,gUnknown_203B27C->unk17C,0x10d); break; case 0x1a: sub_8094060(gUnknown_203B27C->moves,gUnknown_203B27C->pokeStruct->moves); gUnknown_203B27C->fallbackState = 0x10; if (gUnknown_203B27C->isNextMoveLinked) { - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][14],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_14],0,gUnknown_203B27C->unk17C,0x10d); } else { - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][13],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_13],0,gUnknown_203B27C->unk17C,0x10d); } break; case 0x1d: @@ -356,11 +356,11 @@ static void sub_801FF28(void) break; case 0x1b: gUnknown_203B27C->fallbackState = 0x10; - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][15],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_15],0,gUnknown_203B27C->unk17C,0x10d); break; case 0x1c: gUnknown_203B27C->fallbackState = 0x10; - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][16],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_16],0,gUnknown_203B27C->unk17C,0x10d); break; case 0x1e: @@ -382,11 +382,11 @@ static void sub_801FF28(void) sub_80208B0(); sub_8092C84(gUnknown_202DFE8,gUnknown_203B27C->unk20); if (gUnknown_203B27C->isNextMoveLinked) { - sub_8014248(gCommonGulpin[gUnknown_203B27C->isAsleep][18],0,0x11,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0, + sub_8014248(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_18],0,0x11,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0, gUnknown_203B27C->unk17C,0xc); } else { - sub_8014248(gCommonGulpin[gUnknown_203B27C->isAsleep][17],0,0x11,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0, + sub_8014248(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_17],0,0x11,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0, gUnknown_203B27C->unk17C,0xc); } break; @@ -395,11 +395,11 @@ static void sub_801FF28(void) sub_8092C84(gUnknown_202DFE8,gUnknown_203B27C->unk20); if (gUnknown_203B27C->isNextMoveLinked) { - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][20],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_20],0,gUnknown_203B27C->unk17C,0x10d); } else { - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][19],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_19],0,gUnknown_203B27C->unk17C,0x10d); } break; } @@ -415,7 +415,7 @@ static void CreateGulpinShopMenu(void) gUnknown_203B27C->unk7C[loopMax].text = gGulpinInfo; gUnknown_203B27C->unk7C[loopMax].menuAction = 0xb; loopMax++; - gUnknown_203B27C->unk7C[loopMax].text = *gCommonCancel; + gUnknown_203B27C->unk7C[loopMax].text = gCommonCancel[0]; gUnknown_203B27C->unk7C[loopMax].menuAction = 1; loopMax++; gUnknown_203B27C->unk7C[loopMax].text = 0x0; @@ -470,11 +470,11 @@ static void sub_802069C(void) MemoryFill16(gUnknown_203B27C->unkBC, 0, sizeof(gUnknown_203B27C->unkBC)); gUnknown_203B27C->unk7C[loopMax].text = gUnknown_80DC3F4; - gUnknown_203B27C->unk7C[loopMax].menuAction = 0x3; + gUnknown_203B27C->unk7C[loopMax].menuAction = 3; loopMax++; - gUnknown_203B27C->unk7C[loopMax].text = *gCommonInfo; - gUnknown_203B27C->unk7C[loopMax].menuAction = 0xB; + gUnknown_203B27C->unk7C[loopMax].text = gCommonInfo[0]; + gUnknown_203B27C->unk7C[loopMax].menuAction = 11; loopMax++; gUnknown_203B27C->unk7C[loopMax].text = NULL; @@ -528,19 +528,19 @@ static void CreateGulpinLinkMenu(void) loopMax++; gUnknown_203B27C->unk7C[loopMax].text = gGulpinLink; - gUnknown_203B27C->unk7C[loopMax].menuAction = 0x8; + gUnknown_203B27C->unk7C[loopMax].menuAction = 8; loopMax++; gUnknown_203B27C->unk7C[loopMax].text = gGulpinDelink; - gUnknown_203B27C->unk7C[loopMax].menuAction = 0x9; + gUnknown_203B27C->unk7C[loopMax].menuAction = 9; loopMax++; gUnknown_203B27C->unk7C[loopMax].text = gGulpinForget; - gUnknown_203B27C->unk7C[loopMax].menuAction = 0xA; + gUnknown_203B27C->unk7C[loopMax].menuAction = 10; loopMax++; - gUnknown_203B27C->unk7C[loopMax].text = *gCommonInfo; - gUnknown_203B27C->unk7C[loopMax].menuAction = 0xB; + gUnknown_203B27C->unk7C[loopMax].text = gCommonInfo[0]; + gUnknown_203B27C->unk7C[loopMax].menuAction = 11; loopMax++; gUnknown_203B27C->unk7C[loopMax].text = NULL; @@ -562,10 +562,10 @@ static void sub_80208B0(void) { s32 loopMax = 0; MemoryFill16(gUnknown_203B27C->unkBC, 0, sizeof(gUnknown_203B27C->unkBC)); - gUnknown_203B27C->unk7C[loopMax].text = *gCommonYes; + gUnknown_203B27C->unk7C[loopMax].text = gCommonYes[0]; gUnknown_203B27C->unk7C[loopMax].menuAction = 0x10; loopMax++; - gUnknown_203B27C->unk7C[loopMax].text = *gCommonNo; + gUnknown_203B27C->unk7C[loopMax].text = gCommonNo[0]; gUnknown_203B27C->unk7C[loopMax].menuAction = 0x11; loopMax++; gUnknown_203B27C->unk7C[loopMax].text = NULL; @@ -576,10 +576,10 @@ static void sub_8020900(void) { s32 loopMax = 0; MemoryFill16(gUnknown_203B27C->unkBC, 0, sizeof(gUnknown_203B27C->unkBC)); - gUnknown_203B27C->unk7C[loopMax].text = *gCommonYes; + gUnknown_203B27C->unk7C[loopMax].text = gCommonYes[0]; gUnknown_203B27C->unk7C[loopMax].menuAction = 0x10; loopMax++; - gUnknown_203B27C->unk7C[loopMax].text = *gCommonNo; + gUnknown_203B27C->unk7C[loopMax].text = gCommonNo[0]; gUnknown_203B27C->unk7C[loopMax].menuAction = 0x11; loopMax++; gUnknown_203B27C->unk7C[loopMax].text = NULL; diff --git a/src/kangaskhan_storage1.c b/src/kangaskhan_storage1.c index 23ef10098..e6db2592b 100644 --- a/src/kangaskhan_storage1.c +++ b/src/kangaskhan_storage1.c @@ -374,19 +374,19 @@ static void sub_80175FC(void) MemoryFill16(gKangaskhanStorageWork->unk4C,0, sizeof(gKangaskhanStorageWork->unk4C)); loopMax = 0; - gKangaskhanStorageWork->unk24[loopMax].text = *gCommonStore; + gKangaskhanStorageWork->unk24[loopMax].text = gCommonStore[0]; gKangaskhanStorageWork->unk24[loopMax].menuAction = 2; loopMax += 1; - gKangaskhanStorageWork->unk24[loopMax].text = *gCommonTake; + gKangaskhanStorageWork->unk24[loopMax].text = gCommonTake[0]; gKangaskhanStorageWork->unk24[loopMax].menuAction = 3; loopMax += 1; - gKangaskhanStorageWork->unk24[loopMax].text = *gCommonInfo; + gKangaskhanStorageWork->unk24[loopMax].text = gCommonInfo[0]; gKangaskhanStorageWork->unk24[loopMax].menuAction = 6; loopMax += 1; - gKangaskhanStorageWork->unk24[loopMax].text = *gCommonCancel; + gKangaskhanStorageWork->unk24[loopMax].text = gCommonCancel[0]; gKangaskhanStorageWork->unk24[loopMax].menuAction = 1; loopMax += 1; @@ -415,11 +415,11 @@ static void sub_80176B8(void) MemoryFill16(gKangaskhanStorageWork->unk4C, 0, sizeof(gKangaskhanStorageWork->unk4C)); loopMax = 0; - gKangaskhanStorageWork->unk24[loopMax].text = *gCommonStore; + gKangaskhanStorageWork->unk24[loopMax].text = gCommonStore[0]; gKangaskhanStorageWork->unk24[loopMax].menuAction = 2; loopMax++; - gKangaskhanStorageWork->unk24[loopMax].text = *gCommonInfo; + gKangaskhanStorageWork->unk24[loopMax].text = gCommonInfo[0]; gKangaskhanStorageWork->unk24[loopMax].menuAction = 6; loopMax++; @@ -448,11 +448,11 @@ static void sub_8017758(void) MemoryFill16(gKangaskhanStorageWork->unk4C, 0, sizeof(gKangaskhanStorageWork->unk4C)); loopMax = 0; - gKangaskhanStorageWork->unk24[loopMax].text = *gCommonTake; + gKangaskhanStorageWork->unk24[loopMax].text = gCommonTake[0]; gKangaskhanStorageWork->unk24[loopMax].menuAction = 3; loopMax++; - gKangaskhanStorageWork->unk24[loopMax].text = *gCommonInfo; + gKangaskhanStorageWork->unk24[loopMax].text = gCommonInfo[0]; gKangaskhanStorageWork->unk24[loopMax].menuAction = 6; loopMax++; @@ -479,11 +479,11 @@ static void sub_80177F8(void) s32 loopMax; loopMax = 0; - gKangaskhanStorageWork->unk24[loopMax].text = *gCommonYes; + gKangaskhanStorageWork->unk24[loopMax].text = gCommonYes[0]; gKangaskhanStorageWork->unk24[loopMax].menuAction = 4; loopMax++; - gKangaskhanStorageWork->unk24[loopMax].text = *gCommonNo; + gKangaskhanStorageWork->unk24[loopMax].text = gCommonNo[0]; gKangaskhanStorageWork->unk24[loopMax].menuAction = 5; loopMax++; diff --git a/src/kangaskhan_storage2.c b/src/kangaskhan_storage2.c index b2d7c919c..cd5631bc4 100644 --- a/src/kangaskhan_storage2.c +++ b/src/kangaskhan_storage2.c @@ -221,21 +221,21 @@ static void sub_80182E4(void) loopMax = 0; MemoryFill16(sUnknown_203B20C->unk60, 0, sizeof(sUnknown_203B20C->unk60)); - sUnknown_203B20C->unk20[0].text = *gCommonStore; + sUnknown_203B20C->unk20[0].text = gCommonStore[0]; sUnknown_203B20C->unk20[0].menuAction = 2; if (GetNumberOfFilledInventorySlots() == 0 || sub_801CF50(0)) sUnknown_203B20C->unk60[0] = 1; loopMax += 1; - sUnknown_203B20C->unk20[loopMax].text = *gCommonTake; + sUnknown_203B20C->unk20[loopMax].text = gCommonTake[0]; sUnknown_203B20C->unk20[loopMax].menuAction = 3; if (sub_801CF14(1) || INVENTORY_SIZE <= GetNumberOfFilledInventorySlots()) sUnknown_203B20C->unk60[loopMax] = 1; loopMax += 1; - sUnknown_203B20C->unk20[loopMax].text = *gCommonCancel; + sUnknown_203B20C->unk20[loopMax].text = gCommonCancel[0]; sUnknown_203B20C->unk20[loopMax].menuAction = 1; loopMax += 1; @@ -264,13 +264,13 @@ static void sub_801841C(void) loopMax = 0; MemoryFill16(sUnknown_203B20C->unk60,0,sizeof(sUnknown_203B20C->unk60)); - sUnknown_203B20C->unk20[0].text = *gCommonStore; + sUnknown_203B20C->unk20[0].text = gCommonStore[0]; sUnknown_203B20C->unk20[0].menuAction = 2; if (!sub_801ADA0(sUnknown_203B20C->itemIndex)) sUnknown_203B20C->unk60[0] = 1; loopMax += 1; - sUnknown_203B20C->unk20[loopMax].text = *gCommonInfo; + sUnknown_203B20C->unk20[loopMax].text = gCommonInfo[0]; sUnknown_203B20C->unk20[loopMax].menuAction = 4; loopMax += 1; @@ -299,14 +299,14 @@ static void sub_80184D4(void) loopMax = 0; MemoryFill16(sUnknown_203B20C->unk60, 0, sizeof(sUnknown_203B20C->unk60)); - sUnknown_203B20C->unk20[0].text = *gCommonTake; + sUnknown_203B20C->unk20[0].text = gCommonTake[0]; sUnknown_203B20C->unk20[0].menuAction = 3; if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) sUnknown_203B20C->unk60[0] = 1; loopMax += 1; - sUnknown_203B20C->unk20[loopMax].text = *gCommonInfo; + sUnknown_203B20C->unk20[loopMax].text = gCommonInfo[0]; sUnknown_203B20C->unk20[loopMax].menuAction = 4; loopMax += 1; diff --git a/src/mailbox.c b/src/mailbox.c index 40e9820f8..627ccc746 100644 --- a/src/mailbox.c +++ b/src/mailbox.c @@ -314,7 +314,7 @@ void CreateMailActionMenu(void) { } else { - gUnknown_203B304->menuItems[loopMax].text = *gCommonAccept; + gUnknown_203B304->menuItems[loopMax].text = gCommonAccept[0]; gUnknown_203B304->menuItems[loopMax].menuAction = 5; if(IsMailinJobSlot(mail) || GetNumAcceptedJobs() >= MAX_ACCEPTED_JOBS) @@ -323,7 +323,7 @@ void CreateMailActionMenu(void) { } loopMax += 1; - gUnknown_203B304->menuItems[loopMax].text = *gCommonInfo; + gUnknown_203B304->menuItems[loopMax].text = gCommonInfo[0]; gUnknown_203B304->menuItems[loopMax].menuAction = 8; loopMax += 1; } diff --git a/src/makuhita_dojo1.c b/src/makuhita_dojo1.c index 0b920ad34..2415aeedf 100644 --- a/src/makuhita_dojo1.c +++ b/src/makuhita_dojo1.c @@ -246,10 +246,10 @@ static void MakuhitaDojo_DrawMainMenu(void) } loopMax += 1; - sMakuhitaDojoWork1->unk18[loopMax].text = *gCommonInfo; + sMakuhitaDojoWork1->unk18[loopMax].text = gCommonInfo[0]; sMakuhitaDojoWork1->unk18[loopMax].menuAction = 3; loopMax += 1; - sMakuhitaDojoWork1->unk18[loopMax].text = *gCommonCancel; + sMakuhitaDojoWork1->unk18[loopMax].text = gCommonCancel[0]; sMakuhitaDojoWork1->unk18[loopMax].menuAction = 1; loopMax += 1; sMakuhitaDojoWork1->unk18[loopMax].text = NULL; diff --git a/src/party_list_menu.c b/src/party_list_menu.c index 5549a1bf6..46bddca58 100644 --- a/src/party_list_menu.c +++ b/src/party_list_menu.c @@ -423,7 +423,7 @@ void sub_802678C(void) sUnknown_203B2B8->unk20C[0] = 1; } loopMax += 1; - sUnknown_203B2B8->unk16C[loopMax].text = *gCommonInfo; + sUnknown_203B2B8->unk16C[loopMax].text = gCommonInfo[0]; sUnknown_203B2B8->unk16C[loopMax].menuAction = 4; loopMax += 1; sUnknown_203B2B8->unk16C[loopMax].text = NULL; @@ -449,10 +449,10 @@ void sub_802678C(void) void sub_8026878(void) { s32 loopMax = 0; - sUnknown_203B2B8->unk1BC[loopMax].text = *gCommonYes; + sUnknown_203B2B8->unk1BC[loopMax].text = gCommonYes[0]; sUnknown_203B2B8->unk1BC[loopMax].menuAction = 2; loopMax += 1; - sUnknown_203B2B8->unk1BC[loopMax].text = *gCommonNo; + sUnknown_203B2B8->unk1BC[loopMax].text = gCommonNo[0]; sUnknown_203B2B8->unk1BC[loopMax].menuAction = 3; loopMax += 1; sUnknown_203B2B8->unk1BC[loopMax].text = NULL; diff --git a/src/pelipper_board.c b/src/pelipper_board.c index a2c613faf..f12cb67c0 100644 --- a/src/pelipper_board.c +++ b/src/pelipper_board.c @@ -273,7 +273,7 @@ void sub_802EC10(void) { s32 index; s32 loopMax = 0; - gPelipperBoard->menuItems[loopMax].text = *gCommonAccept; + gPelipperBoard->menuItems[loopMax].text = gCommonAccept[0]; gPelipperBoard->menuItems[loopMax].menuAction = 4; if((IsMailinJobSlot(GetPelipperBoardSlotInfo(gPelipperBoard->jobIndex))) || (GetNumAcceptedJobs() >= MAX_ACCEPTED_JOBS)) @@ -282,7 +282,7 @@ void sub_802EC10(void) { } loopMax += 1; - gPelipperBoard->menuItems[loopMax].text = *gCommonInfo; + gPelipperBoard->menuItems[loopMax].text = gCommonInfo[0]; gPelipperBoard->menuItems[loopMax].menuAction = 5; loopMax += 1; gPelipperBoard->menuItems[loopMax].text = NULL; diff --git a/src/wonder_mail_3.c b/src/wonder_mail_3.c index 79dd256d8..c0e6ee944 100644 --- a/src/wonder_mail_3.c +++ b/src/wonder_mail_3.c @@ -202,10 +202,10 @@ void sub_802CAA4(void) { break; } } - gUnknown_203B2F0->unk10C[loopMax].text = *gCommonDelete; + gUnknown_203B2F0->unk10C[loopMax].text = gCommonDelete[0]; gUnknown_203B2F0->unk10C[loopMax].menuAction = 4; loopMax += 1; - gUnknown_203B2F0->unk10C[loopMax].text = *gCommonInfo; + gUnknown_203B2F0->unk10C[loopMax].text = gCommonInfo[0]; gUnknown_203B2F0->unk10C[loopMax].menuAction = 7; loopMax += 1; gUnknown_203B2F0->unk10C[loopMax].text = NULL; @@ -227,10 +227,10 @@ void sub_802CBAC(void) s32 loopMax; loopMax = 0; - gUnknown_203B2F0->unk14C[loopMax].text = *gCommonYes; + gUnknown_203B2F0->unk14C[loopMax].text = gCommonYes[0]; gUnknown_203B2F0->unk14C[loopMax].menuAction = 5; loopMax += 1; - gUnknown_203B2F0->unk14C[loopMax].text = *gCommonNo; + gUnknown_203B2F0->unk14C[loopMax].text = gCommonNo[0]; gUnknown_203B2F0->unk14C[loopMax].menuAction = 6; loopMax += 1; gUnknown_203B2F0->unk14C[loopMax].text = NULL; @@ -758,10 +758,10 @@ void sub_802D5A4(void) { loopMax = 0; MemoryFill16(gUnknown_203B2F8->unk198, 0, sizeof(gUnknown_203B2F8->unk198)); - gUnknown_203B2F8->unk118[loopMax].text = *gCommonDelete; + gUnknown_203B2F8->unk118[loopMax].text = gCommonDelete[0]; gUnknown_203B2F8->unk118[loopMax].menuAction = 2; loopMax += 1; - gUnknown_203B2F8->unk118[loopMax].text = *gCommonInfo; + gUnknown_203B2F8->unk118[loopMax].text = gCommonInfo[0]; gUnknown_203B2F8->unk118[loopMax].menuAction = 5; loopMax += 1; gUnknown_203B2F8->unk118[loopMax].text = NULL; @@ -779,10 +779,10 @@ void sub_802D5A4(void) { void sub_802D63C(void) { s32 loopMax = 0; - gUnknown_203B2F8->unk158[loopMax].text = *gCommonYes; + gUnknown_203B2F8->unk158[loopMax].text = gCommonYes[0]; gUnknown_203B2F8->unk158[loopMax].menuAction = 3; loopMax += 1; - gUnknown_203B2F8->unk158[loopMax].text = *gCommonNo; + gUnknown_203B2F8->unk158[loopMax].text = gCommonNo[0]; gUnknown_203B2F8->unk158[loopMax].menuAction = 4; loopMax += 1; gUnknown_203B2F8->unk158[loopMax].text = NULL; @@ -794,10 +794,10 @@ void sub_802D690(void) { s32 index; loopMax = 0; - gUnknown_203B2F8->unk158[loopMax].text = *gCommonYes; + gUnknown_203B2F8->unk158[loopMax].text = gCommonYes[0]; gUnknown_203B2F8->unk158[loopMax].menuAction = 3; loopMax += 1; - gUnknown_203B2F8->unk158[loopMax].text = *gCommonNo; + gUnknown_203B2F8->unk158[loopMax].text = gCommonNo[0]; gUnknown_203B2F8->unk158[loopMax].menuAction = 4; loopMax += 1; gUnknown_203B2F8->unk158[loopMax].text = gUnknown_80E014C; @@ -822,10 +822,10 @@ void sub_802D73C(void) { s32 index; loopMax = 0; - gUnknown_203B2F8->unk158[loopMax].text = *gCommonYes; + gUnknown_203B2F8->unk158[loopMax].text = gCommonYes[0]; gUnknown_203B2F8->unk158[loopMax].menuAction = 3; loopMax += 1; - gUnknown_203B2F8->unk158[loopMax].text = *gCommonNo; + gUnknown_203B2F8->unk158[loopMax].text = gCommonNo[0]; gUnknown_203B2F8->unk158[loopMax].menuAction = 4; loopMax += 1; gUnknown_203B2F8->unk158[loopMax].text = gUnknown_80E014C; diff --git a/src/wonder_mail_3_mid.c b/src/wonder_mail_3_mid.c index 2f5a5b1fd..88217f742 100644 --- a/src/wonder_mail_3_mid.c +++ b/src/wonder_mail_3_mid.c @@ -348,7 +348,7 @@ void sub_802F108(void) gUnknown_203B30C->unkB0[loopMax].text = gUnknown_80E040C; gUnknown_203B30C->unkB0[loopMax].menuAction = 2; loopMax += 1; - gUnknown_203B30C->unkB0[loopMax].text = *gCommonInfo; + gUnknown_203B30C->unkB0[loopMax].text = gCommonInfo[0]; gUnknown_203B30C->unkB0[loopMax].menuAction = 3; loopMax += 1; gUnknown_203B30C->unkB0[loopMax].text = NULL; From fad1832b013a79470169a66cb173134c84392450 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sat, 23 Sep 2023 05:11:06 -0400 Subject: [PATCH 38/47] Makuhita dojo common_strings --- data/common_strings.s | 233 ------------------ include/common_strings.h | 12 +- .../constants/common_strings_gulpin_shop.h | 3 +- .../constants/common_strings_makuhita_dojo.h | 25 ++ include/gulpin_shop.h | 4 +- include/gulpin_shop_801FB50.h | 2 +- include/makuhita_dojo1.h | 2 +- src/common_strings.c | 3 +- src/data/common_strings_gulpin_shop.h | 2 +- src/data/common_strings_makuhita_dojo.h | 202 +++++++++++++++ src/gulpin_shop.c | 18 +- src/gulpin_shop_801FB50.c | 52 ++-- src/makuhita_dojo1.c | 38 +-- 13 files changed, 293 insertions(+), 303 deletions(-) create mode 100644 include/constants/common_strings_makuhita_dojo.h create mode 100644 src/data/common_strings_makuhita_dojo.h diff --git a/data/common_strings.s b/data/common_strings.s index 4283989e4..c495e6091 100644 --- a/data/common_strings.s +++ b/data/common_strings.s @@ -2,239 +2,6 @@ .align 2,0 - .global gCommonMakuhita -gCommonMakuhita: @ 80D9FC8 (Makuhita Dojo) - .4byte gUnknown_80DAA44 - .4byte gUnknown_80DAA2C - .4byte gUnknown_80DA9F4 - .4byte gUnknown_80DA9D4 - .4byte gUnknown_80DA998 - .4byte gUnknown_80DA908 - .4byte gUnknown_80DA844 - .4byte gUnknown_80DA688 - .4byte gUnknown_80DA62C - .4byte gUnknown_80DA338 - .4byte gUnknown_80DA30C - .4byte gUnknown_80DA2F0 - .4byte gUnknown_80DA2D4 - .4byte gUnknown_80DA2B4 - .4byte gUnknown_80DA290 - .4byte gUnknown_80DA248 - .4byte gUnknown_80DA204 - .4byte gUnknown_80DA100 - .4byte gUnknown_80DA0DC - .4byte gUnknown_80DA018 - - .global gUnknown_80DA018 -gUnknown_80DA018: - .string " Zzznarr... Zzz...\n" - .string "This dojo...\n" - .string "Help rescue teams...{EXTRA_MSG}" - .string " Zzznarr... Urr...\n" - .string "Train in different rooms to level up...{EXTRA_MSG}" - .string " Zzznarr... Urr!\n" - .string "Make stronger rescue team...{EXTRA_MSG}" - .string " Urr... Zzznarr!\n" - .string "Don{APOSTROPHE}t let up!\0" - .align 2, 0 - - .global gUnknown_80DA0DC -gUnknown_80DA0DC: - .string " Zzznarr... Zzz...!\n" - .string "Keep working...\0" - .align 2, 0 - - .global gUnknown_80DA100 -gUnknown_80DA100: - .string " Ah... Zzznarr...\n" - .string "Cleared it...{EXTRA_MSG}" - .string " Zzzznarr... Urr...\n" - .string "Good going... Keep going...{WAIT_PRESS}\n" - .string "Hunh...{WAIT_PRESS} ...{EXTRA_MSG}" - .string " Gwoh?{WAIT_PRESS}\n" - .string "Gwogwogwoh?{EXTRA_MSG}" - .string " Mugawah?\n" - .string "Cleared everything?{EXTRA_MSG}" - .string " Zzznarr!\n" - .string "Congrazzz...{EXTRA_MSG}" - .string " Zzznarr... Zzznarr...\n" - .string "Your reward...\n" - .string "Promised...{EXTRA_MSG}" - .string " Zzz... Urr!\n" - .string "{COLOR_1 GREEN_2}Bonsly Doll{END_COLOR_TEXT_1}...\0" - .align 2, 0 - - .global gUnknown_80DA204 -gUnknown_80DA204: - .string " Ah... Zzznarr...\n" - .string "Cleared it...{EXTRA_MSG}" - .string " Congrazzz...\n" - .string "Keep going... Zzz...\0" - .align 2, 0 - - .global gUnknown_80DA248 -gUnknown_80DA248: - .string " Aiyah... Zzznarr...\n" - .string "Didn{APOSTROPHE}t finish...{EXTRA_MSG}" - .string " Zzz... Urr?\n" - .string "No giving up...\0" - .align 2, 0 - - .global gUnknown_80DA290 -gUnknown_80DA290: - .string " Zzz... Narr...\n" - .string "{ARG_POKEMON_0}? {APOSTROPHE}K{COMMA} go...\0" - .align 2, 0 - - .global gUnknown_80DA2B4 -gUnknown_80DA2B4: - .string " Zzznarr... Zzz...\n" - .string "Train where?\0" - .align 2, 0 - - .global gUnknown_80DA2D4 -gUnknown_80DA2D4: - .string " Urr... Narr...\n" - .string "See you...\0" - .align 2, 0 - - .global gUnknown_80DA2F0 -gUnknown_80DA2F0: - .string " Zzznarr... Urr?\n" - .string "What else?\0" - .align 2, 0 - - .global gUnknown_80DA30C -gUnknown_80DA30C: - .string " Zzznarr... Zzznarr...\n" - .string "Makuhita... Dojo...\0" - .align 2, 0 - - .global gUnknown_80DA338 -gUnknown_80DA338: - .string " This dojo was founded to\n" - .string "support the efforts of rescue teams.{EXTRA_MSG}" - .string " Train in different rooms to\n" - .string "level up...{WAIT_PRESS}\n" - .string "And toughen up your rescue team.{EXTRA_MSG}" - .string " Also...{WAIT_PRESS}\n" - .string "In the {COLOR_1 YELLOW_4}Fire Maze{END_COLOR_TEXT_1} you will find only\n" - .string "Fire-type Pokémon.{EXTRA_MSG}" - .string " In the {COLOR_1 YELLOW_4}Water Maze{END_COLOR_TEXT_1} there\n" - .string "will only be Water-type Pokémon.{EXTRA_MSG}" - .string " In such ways{COMMA} only one type\n" - .string "of Pokémon will be in a given room.\n" - .string "Study how types match up in battle.{EXTRA_MSG}" - .string " The Pokémon in this dojo{COMMA}\n" - .string "by the way{COMMA} are all volunteers.{EXTRA_MSG}" - .string " They are participating\n" - .string "because they want to see rescue teams\n" - .string "succeed.{EXTRA_MSG}" - .string " The only thanks they expect\n" - .string "is to see you become stronger.\n" - .string "Don{APOSTROPHE}t let them down!{EXTRA_MSG}" - .string " There{APOSTROPHE}s more.{WAIT_PRESS}\n" - .string "For a rescue team that successfully\n" - .string "completes all training courses...{EXTRA_MSG}" - .string " I have a special reward!{EXTRA_MSG}" - .string " Let that compel you to train\n" - .string "harder!\0" - .align 2, 0 - - .global gUnknown_80DA62C -gUnknown_80DA62C: - .string " Don{APOSTROPHE}t let up on your training!\n" - .string "Keep bettering yourself!{EXTRA_MSG}" - .string " May you never lose your\n" - .string "drive!\0" - .align 2, 0 - - .global gUnknown_80DA688 -gUnknown_80DA688: - .string " Ah...\n" - .string "You have succeeded in your training!{EXTRA_MSG}" - .string " You{APOSTROPHE}ve shown your worth!{WAIT_PRESS}\n" - .string "Without a doubt{COMMA} you have grown more\n" - .string "powerful from your training!{WAIT_PRESS} Wait...{WAIT_PRESS} ...{EXTRA_MSG}" - .string " Wuh?{WAIT_PRESS}\n" - .string "What{COMMA} what{COMMA} what?!{EXTRA_MSG}" - .string " Did you maybe...{WAIT_PRESS}\n" - .string "Conquer all the training courses?{EXTRA_MSG}" - .string " That{APOSTROPHE}s...{WAIT_PRESS} Amazing! You!{WAIT_PRESS}\n" - .string "Congratulations!{EXTRA_MSG}" - .string " I promised!{WAIT_PRESS}\n" - .string "I promised you a reward for completing\n" - .string "the training courses!{EXTRA_MSG}" - .string " So... Here it is!{WAIT_PRESS}\n" - .string "My {COLOR_1 GREEN_2}Bonsly Doll{END_COLOR_TEXT_1}!{EXTRA_MSG}" - .string " Isn{APOSTROPHE}t it smashing? Hey?!\0" - .align 2, 0 - - .global gUnknown_80DA844 -gUnknown_80DA844: - .string " Ah...\n" - .string "You have succeeded in your training!{EXTRA_MSG}" - .string " You{APOSTROPHE}ve shown your worth!{WAIT_PRESS}\n" - .string "Without a doubt{COMMA} you have grown more\n" - .string "powerful from your training!{EXTRA_MSG}" - .string " May this success drive\n" - .string "you to train even harder!\0" - .align 2, 0 - - .global gUnknown_80DA908 -gUnknown_80DA908: - .string " Aiyah...{WAIT_PRESS}\n" - .string "You failed to reach the end...{WAIT_PRESS}\n" - .string "More training is what you need.{EXTRA_MSG}" - .string " But effort is never wasted!{EXTRA_MSG}" - .string " Learn from this and move\n" - .string "forward!\0" - .align 2, 0 - - .global gUnknown_80DA998 -gUnknown_80DA998: - .string " The {ARG_POKEMON_0}?{WAIT_PRESS}\n" - .string "Your decision stands!{WAIT_PRESS}\n" - .string "Let the training begin!\0" - .align 2, 0 - - .global gUnknown_80DA9D4 -gUnknown_80DA9D4: - .string " Where do you wish to train?\0" - .align 2, 0 - - .global gUnknown_80DA9F4 -gUnknown_80DA9F4: - .string " Fine{COMMA} farewell.\n" - .string "Return if you seek more training.\0" - .align 2, 0 - - .global gUnknown_80DAA2C -gUnknown_80DAA2C: - .string " What else do you seek?\0" - .align 2, 0 - - .global gUnknown_80DAA44 -gUnknown_80DAA44: - .string " This is the Makuhita Dojo!{WAIT_PRESS}\n" - .string "Through rigorous training{COMMA} one begets\n" - .string "true power.\0" - .align 2, 0 - - - - - - - - - - - - - - - .global gCommonHints gCommonHints: @ 80DAA98 (Help Menu?) .4byte gUnknown_80DAF54 diff --git a/include/common_strings.h b/include/common_strings.h index db60faeb6..d2024bec6 100644 --- a/include/common_strings.h +++ b/include/common_strings.h @@ -6,13 +6,7 @@ #include "constants/common_strings_kecleon_bros.h" #include "constants/common_strings_wigglytuff_shop.h" #include "constants/common_strings_gulpin_shop.h" - -enum MakuhitaDojoMode -{ - MAKUHITA_DOJO_MODE_AWAKE, - MAKUHITA_DOJO_MODE_ASLEEP, - MAKUHITA_DOJO_MODE_COUNT -}; +#include "constants/common_strings_makuhita_dojo.h" #define MAX_HINTS 5 @@ -45,8 +39,8 @@ extern const u8* const gCommonFelicity[FEL_MODE_COUNT][FEL_DLG_MAX]; extern const u8* const gCommonKangStorage[KANG_MODE_COUNT][KANG_DLG_MAX]; extern const u8* const gCommonKecleonBros[KECLEON_BROS_MODE_COUNT][KECLEON_DLG_MAX]; extern const u8* const gCommonWigglytuff[WIGGLYTUFF_SHOP_MODE_COUNT][WIGGLY_DLG_MAX]; -extern const u8* const gCommonGulpin[GULPIN_SHOP_MODE_COUNT][GULPIN_DLG_MAX]; -extern const u8* const gCommonMakuhita[MAKUHITA_DOJO_MODE_COUNT][10]; // 80D9FC8 +extern const u8* const gCommonGulpin[GULPIN_SHOP_MODE_DIALOGUE_COUNT][GULPIN_DLG_MAX]; +extern const u8* const gCommonMakuhita[MAKUHITA_DOJO_MODE_COUNT][MAKUHITA_DLG_MAX]; extern const Hints gCommonHints[MAX_HINTS]; // 80DAA98 #endif // GUARD_COMMON_STRINGS_H \ No newline at end of file diff --git a/include/constants/common_strings_gulpin_shop.h b/include/constants/common_strings_gulpin_shop.h index fdcb0c798..b39bce666 100644 --- a/include/constants/common_strings_gulpin_shop.h +++ b/include/constants/common_strings_gulpin_shop.h @@ -5,7 +5,8 @@ enum GulpinShopMode { GULPIN_SHOP_MODE_AWAKE, GULPIN_SHOP_MODE_ASLEEP, - GULPIN_SHOP_MODE_COUNT + GULPIN_SHOP_MODE_UNK2, + GULPIN_SHOP_MODE_DIALOGUE_COUNT = 2 }; enum GulpinShopDialogue { diff --git a/include/constants/common_strings_makuhita_dojo.h b/include/constants/common_strings_makuhita_dojo.h new file mode 100644 index 000000000..9474591c8 --- /dev/null +++ b/include/constants/common_strings_makuhita_dojo.h @@ -0,0 +1,25 @@ +#ifndef GUARD_COMMON_STRINGS_MAKUHITA_DOJO_H +#define GUARD_COMMON_STRINGS_MAKUHITA_DOJO_H + +enum MakuhitaDojoMode +{ + MAKUHITA_DOJO_MODE_AWAKE, + MAKUHITA_DOJO_MODE_ASLEEP, + MAKUHITA_DOJO_MODE_COUNT +}; +enum MakuhitaDojoDialogue +{ + MAKUHITA_DLG_0, + MAKUHITA_DLG_1, + MAKUHITA_DLG_2, + MAKUHITA_DLG_3, + MAKUHITA_DLG_4, + MAKUHITA_DLG_5, + MAKUHITA_DLG_6, + MAKUHITA_DLG_7, + MAKUHITA_DLG_8, + MAKUHITA_DLG_9, + MAKUHITA_DLG_MAX +}; + +#endif // GUARD_COMMON_STRINGS_MAKUHITA_DOJO_H \ No newline at end of file diff --git a/include/gulpin_shop.h b/include/gulpin_shop.h index f3d7e1080..1642cd2a8 100644 --- a/include/gulpin_shop.h +++ b/include/gulpin_shop.h @@ -9,7 +9,7 @@ // size: 0x18C typedef struct GulpinShopWork { - /* 0x0 */ u32 isAsleep; + /* 0x0 */ u32 mode; // Corresponds to the enum: GulpinShopMode /* 0x4 */ s32 state; u32 unk8; /* 0xC */ s16 speciesNum; // species of chosen Pokemon @@ -36,7 +36,7 @@ typedef struct GulpinShopWork UnkTextStruct2 unk12C[4]; } GulpinShopWork; -bool8 CreateGulpinShop(s32 isAsleep, s16 pokeSpecies, Move *moves); +bool8 CreateGulpinShop(u32 mode, s16 pokeSpecies, Move *moves); void DestroyGulpinShop(void); bool8 GulpinIsNextMoveLinked(void); diff --git a/include/gulpin_shop_801FB50.h b/include/gulpin_shop_801FB50.h index c1058991d..375182732 100644 --- a/include/gulpin_shop_801FB50.h +++ b/include/gulpin_shop_801FB50.h @@ -10,7 +10,7 @@ // size: 0x1E0 typedef struct unkStruct_203B27C { - /* 0x0 */ bool32 isAsleep; + /* 0x0 */ u32 mode; // Corresponds to the enum: GulpinShopMode /* 0x4 */ s32 state; /* 0x8 */ u32 fallbackState; /* 0xC */ s16 speciesNum; diff --git a/include/makuhita_dojo1.h b/include/makuhita_dojo1.h index edfad6da8..083cb346e 100644 --- a/include/makuhita_dojo1.h +++ b/include/makuhita_dojo1.h @@ -21,7 +21,7 @@ enum MakuhitaDojoInitMode typedef struct MakuhitaDojoWork1 { /* 0x0 */ u32 mode; // Corresponds to the enum: MakuhitaDojoInitMode - /* 0x4 */ bool32 isAsleep; + /* 0x4 */ u32 dlgMode; // Corresponds to the enum: MakuhitaDojoMode /* 0x8 */ s32 state; /* 0xC */ s32 fallbackState; s16 unk10; diff --git a/src/common_strings.c b/src/common_strings.c index c9191d3c7..1a530420f 100644 --- a/src/common_strings.c +++ b/src/common_strings.c @@ -62,4 +62,5 @@ ALIGNED(4) const u8* const gCommonWithdrawPrompt[] = { sWithdrawPrompt0 }; #include "data/common_strings_kangaskhan_storage.h" #include "data/common_strings_kecleon_bros.h" #include "data/common_strings_wigglytuff_shop.h" -#include "data/common_strings_gulpin_shop.h" \ No newline at end of file +#include "data/common_strings_gulpin_shop.h" +#include "data/common_strings_makuhita_dojo.h" \ No newline at end of file diff --git a/src/data/common_strings_gulpin_shop.h b/src/data/common_strings_gulpin_shop.h index f5a497b5d..0a3a06502 100644 --- a/src/data/common_strings_gulpin_shop.h +++ b/src/data/common_strings_gulpin_shop.h @@ -49,7 +49,7 @@ static const u8 sUnknown_80D9EF4[]; static const u8 sUnknown_80D9F24[]; static const u8 sUnknown_80D9F74[]; -ALIGNED(4) const u8* const gCommonGulpin[GULPIN_SHOP_MODE_COUNT][GULPIN_DLG_MAX] = +ALIGNED(4) const u8* const gCommonGulpin[GULPIN_SHOP_MODE_DIALOGUE_COUNT][GULPIN_DLG_MAX] = { [GULPIN_SHOP_MODE_AWAKE] = { [GULPIN_DLG_00] = sUnknown_80D9F74, diff --git a/src/data/common_strings_makuhita_dojo.h b/src/data/common_strings_makuhita_dojo.h new file mode 100644 index 000000000..2bab2fce2 --- /dev/null +++ b/src/data/common_strings_makuhita_dojo.h @@ -0,0 +1,202 @@ +static const u8 sUnknown_80DA018[]; +static const u8 sUnknown_80DA0DC[]; +static const u8 sUnknown_80DA100[]; +static const u8 sUnknown_80DA204[]; +static const u8 sUnknown_80DA248[]; +static const u8 sUnknown_80DA290[]; +static const u8 sUnknown_80DA2B4[]; +static const u8 sUnknown_80DA2D4[]; +static const u8 sUnknown_80DA2F0[]; +static const u8 sUnknown_80DA30C[]; +static const u8 sUnknown_80DA338[]; +static const u8 sUnknown_80DA62C[]; +static const u8 sUnknown_80DA688[]; +static const u8 sUnknown_80DA844[]; +static const u8 sUnknown_80DA908[]; +static const u8 sUnknown_80DA998[]; +static const u8 sUnknown_80DA9D4[]; +static const u8 sUnknown_80DA9F4[]; +static const u8 sUnknown_80DAA2C[]; +static const u8 sUnknown_80DAA44[]; + +ALIGNED(4) const u8* const gCommonMakuhita[MAKUHITA_DOJO_MODE_COUNT][MAKUHITA_DLG_MAX] = +{ + [MAKUHITA_DOJO_MODE_AWAKE] = { + [MAKUHITA_DLG_0] = sUnknown_80DAA44, + [MAKUHITA_DLG_1] = sUnknown_80DAA2C, + [MAKUHITA_DLG_2] = sUnknown_80DA9F4, + [MAKUHITA_DLG_3] = sUnknown_80DA9D4, + [MAKUHITA_DLG_4] = sUnknown_80DA998, + [MAKUHITA_DLG_5] = sUnknown_80DA908, + [MAKUHITA_DLG_6] = sUnknown_80DA844, + [MAKUHITA_DLG_7] = sUnknown_80DA688, + [MAKUHITA_DLG_8] = sUnknown_80DA62C, + [MAKUHITA_DLG_9] = sUnknown_80DA338 + }, + [MAKUHITA_DOJO_MODE_ASLEEP] = { + [MAKUHITA_DLG_0] = sUnknown_80DA30C, + [MAKUHITA_DLG_1] = sUnknown_80DA2F0, + [MAKUHITA_DLG_2] = sUnknown_80DA2D4, + [MAKUHITA_DLG_3] = sUnknown_80DA2B4, + [MAKUHITA_DLG_4] = sUnknown_80DA290, + [MAKUHITA_DLG_5] = sUnknown_80DA248, + [MAKUHITA_DLG_6] = sUnknown_80DA204, + [MAKUHITA_DLG_7] = sUnknown_80DA100, + [MAKUHITA_DLG_8] = sUnknown_80DA0DC, + [MAKUHITA_DLG_9] = sUnknown_80DA018 + } +}; + +ALIGNED(4) static const u8 sUnknown_80DA018[] = _( + " Zzznarr... Zzz...\n" + "This dojo...\n" + "Help rescue teams...{EXTRA_MSG}" + " Zzznarr... Urr...\n" + "Train in different rooms to level up...{EXTRA_MSG}" + " Zzznarr... Urr!\n" + "Make stronger rescue team...{EXTRA_MSG}" + " Urr... Zzznarr!\n" + "Don{APOSTROPHE}t let up!"); + +ALIGNED(4) static const u8 sUnknown_80DA0DC[] = _( + " Zzznarr... Zzz...!\n" + "Keep working..."); + +ALIGNED(4) static const u8 sUnknown_80DA100[] = _( + " Ah... Zzznarr...\n" + "Cleared it...{EXTRA_MSG}" + " Zzzznarr... Urr...\n" + "Good going... Keep going...{WAIT_PRESS}\n" + "Hunh...{WAIT_PRESS} ...{EXTRA_MSG}" + " Gwoh?{WAIT_PRESS}\n" + "Gwogwogwoh?{EXTRA_MSG}" + " Mugawah?\n" + "Cleared everything?{EXTRA_MSG}" + " Zzznarr!\n" + "Congrazzz...{EXTRA_MSG}" + " Zzznarr... Zzznarr...\n" + "Your reward...\n" + "Promised...{EXTRA_MSG}" + " Zzz... Urr!\n" + "{COLOR_1 GREEN_2}Bonsly Doll{END_COLOR_TEXT_1}..."); + +ALIGNED(4) static const u8 sUnknown_80DA204[] = _( + " Ah... Zzznarr...\n" + "Cleared it...{EXTRA_MSG}" + " Congrazzz...\n" + "Keep going... Zzz..."); + +ALIGNED(4) static const u8 sUnknown_80DA248[] = _( + " Aiyah... Zzznarr...\n" + "Didn{APOSTROPHE}t finish...{EXTRA_MSG}" + " Zzz... Urr?\n" + "No giving up..."); + +ALIGNED(4) static const u8 sUnknown_80DA290[] = _( + " Zzz... Narr...\n" + "{ARG_POKEMON_0}? {APOSTROPHE}K{COMMA} go..."); + +ALIGNED(4) static const u8 sUnknown_80DA2B4[] = _( + " Zzznarr... Zzz...\n" + "Train where?"); + +ALIGNED(4) static const u8 sUnknown_80DA2D4[] = _( + " Urr... Narr...\n" + "See you..."); + +ALIGNED(4) static const u8 sUnknown_80DA2F0[] = _( + " Zzznarr... Urr?\n" + "What else?"); + +ALIGNED(4) static const u8 sUnknown_80DA30C[] = _( + " Zzznarr... Zzznarr...\n" + "Makuhita... Dojo..."); + +ALIGNED(4) static const u8 sUnknown_80DA338[] = _( + " This dojo was founded to\n" + "support the efforts of rescue teams.{EXTRA_MSG}" + " Train in different rooms to\n" + "level up...{WAIT_PRESS}\n" + "And toughen up your rescue team.{EXTRA_MSG}" + " Also...{WAIT_PRESS}\n" + "In the {COLOR_1 YELLOW_4}Fire Maze{END_COLOR_TEXT_1} you will find only\n" + "Fire-type Pokémon.{EXTRA_MSG}" + " In the {COLOR_1 YELLOW_4}Water Maze{END_COLOR_TEXT_1} there\n" + "will only be Water-type Pokémon.{EXTRA_MSG}" + " In such ways{COMMA} only one type\n" + "of Pokémon will be in a given room.\n" + "Study how types match up in battle.{EXTRA_MSG}" + " The Pokémon in this dojo{COMMA}\n" + "by the way{COMMA} are all volunteers.{EXTRA_MSG}" + " They are participating\n" + "because they want to see rescue teams\n" + "succeed.{EXTRA_MSG}" + " The only thanks they expect\n" + "is to see you become stronger.\n" + "Don{APOSTROPHE}t let them down!{EXTRA_MSG}" + " There{APOSTROPHE}s more.{WAIT_PRESS}\n" + "For a rescue team that successfully\n" + "completes all training courses...{EXTRA_MSG}" + " I have a special reward!{EXTRA_MSG}" + " Let that compel you to train\n" + "harder!"); + +ALIGNED(4) static const u8 sUnknown_80DA62C[] = _( + " Don{APOSTROPHE}t let up on your training!\n" + "Keep bettering yourself!{EXTRA_MSG}" + " May you never lose your\n" + "drive!"); + +ALIGNED(4) static const u8 sUnknown_80DA688[] = _( + " Ah...\n" + "You have succeeded in your training!{EXTRA_MSG}" + " You{APOSTROPHE}ve shown your worth!{WAIT_PRESS}\n" + "Without a doubt{COMMA} you have grown more\n" + "powerful from your training!{WAIT_PRESS} Wait...{WAIT_PRESS} ...{EXTRA_MSG}" + " Wuh?{WAIT_PRESS}\n" + "What{COMMA} what{COMMA} what?!{EXTRA_MSG}" + " Did you maybe...{WAIT_PRESS}\n" + "Conquer all the training courses?{EXTRA_MSG}" + " That{APOSTROPHE}s...{WAIT_PRESS} Amazing! You!{WAIT_PRESS}\n" + "Congratulations!{EXTRA_MSG}" + " I promised!{WAIT_PRESS}\n" + "I promised you a reward for completing\n" + "the training courses!{EXTRA_MSG}" + " So... Here it is!{WAIT_PRESS}\n" + "My {COLOR_1 GREEN_2}Bonsly Doll{END_COLOR_TEXT_1}!{EXTRA_MSG}" + " Isn{APOSTROPHE}t it smashing? Hey?!"); + +ALIGNED(4) static const u8 sUnknown_80DA844[] = _( + " Ah...\n" + "You have succeeded in your training!{EXTRA_MSG}" + " You{APOSTROPHE}ve shown your worth!{WAIT_PRESS}\n" + "Without a doubt{COMMA} you have grown more\n" + "powerful from your training!{EXTRA_MSG}" + " May this success drive\n" + "you to train even harder!"); + +ALIGNED(4) static const u8 sUnknown_80DA908[] = _( + " Aiyah...{WAIT_PRESS}\n" + "You failed to reach the end...{WAIT_PRESS}\n" + "More training is what you need.{EXTRA_MSG}" + " But effort is never wasted!{EXTRA_MSG}" + " Learn from this and move\n" + "forward!"); + +ALIGNED(4) static const u8 sUnknown_80DA998[] = _( + " The {ARG_POKEMON_0}?{WAIT_PRESS}\n" + "Your decision stands!{WAIT_PRESS}\n" + "Let the training begin!"); + +ALIGNED(4) static const u8 sUnknown_80DA9D4[] = _(" Where do you wish to train?"); + +ALIGNED(4) static const u8 sUnknown_80DA9F4[] = _( + " Fine{COMMA} farewell.\n" + "Return if you seek more training."); + +ALIGNED(4) static const u8 sUnknown_80DAA2C[] = _(" What else do you seek?"); + +ALIGNED(4) static const u8 sUnknown_80DAA44[] = _( + " This is the Makuhita Dojo!{WAIT_PRESS}\n" + "Through rigorous training{COMMA} one begets\n" + "true power."); \ No newline at end of file diff --git a/src/gulpin_shop.c b/src/gulpin_shop.c index a22f78cb5..481700205 100644 --- a/src/gulpin_shop.c +++ b/src/gulpin_shop.c @@ -29,7 +29,7 @@ static void sub_801ED28(void); static void sub_801EDA4(void); static void sub_801EDC0(void); -bool8 CreateGulpinShop(s32 isAsleep, s16 pokeSpecies, Move *moves) +bool8 CreateGulpinShop(u32 mode, s16 pokeSpecies, Move *moves) { OpenedFile *faceFile; s32 species_32; @@ -37,12 +37,12 @@ bool8 CreateGulpinShop(s32 isAsleep, s16 pokeSpecies, Move *moves) species_32 = pokeSpecies; // dumb cast needed to get lsr/asr combo sGulpinShopWork = MemoryAlloc(sizeof(GulpinShopWork), 8); - sGulpinShopWork->isAsleep = isAsleep; + sGulpinShopWork->mode = mode; sGulpinShopWork->speciesNum = species_32; sGulpinShopWork->moves = moves; sGulpinShopWork->unk1C = moves[4].id; // 5th move..? - if (isAsleep == 0) + if (mode == GULPIN_SHOP_MODE_AWAKE) sGulpinShopWork->unk128 = &sGulpinShopWork->faceFile; else sGulpinShopWork->unk128 = NULL; @@ -154,15 +154,15 @@ static void sub_801EA28(void) sub_8092C84(gAvailablePokemonNames, sGulpinShopWork->unk1C); sub_8092C84(&gAvailablePokemonNames[0x50], sGulpinShopWork->unk1E); - switch (sGulpinShopWork->isAsleep) { - case 0: - case 1: + switch (sGulpinShopWork->mode) { + case GULPIN_SHOP_MODE_AWAKE: + case GULPIN_SHOP_MODE_ASLEEP: if (sGulpinShopWork->isNextMoveLinked) - sub_8014248(gCommonGulpin[sGulpinShopWork->isAsleep][GULPIN_DLG_12], 0, 5, &sGulpinShopWork->unk28[0], &sGulpinShopWork->unk68, 4, 0, sGulpinShopWork->unk128, 12); + sub_8014248(gCommonGulpin[sGulpinShopWork->mode][GULPIN_DLG_12], 0, 5, &sGulpinShopWork->unk28[0], &sGulpinShopWork->unk68, 4, 0, sGulpinShopWork->unk128, 12); else - sub_8014248(gCommonGulpin[sGulpinShopWork->isAsleep][GULPIN_DLG_11], 0, 5, &sGulpinShopWork->unk28[0], &sGulpinShopWork->unk68, 4, 0, sGulpinShopWork->unk128, 12); + sub_8014248(gCommonGulpin[sGulpinShopWork->mode][GULPIN_DLG_11], 0, 5, &sGulpinShopWork->unk28[0], &sGulpinShopWork->unk68, 4, 0, sGulpinShopWork->unk128, 12); break; - case 2: + case GULPIN_SHOP_MODE_UNK2: if (sGulpinShopWork->isNextMoveLinked) sub_8014248(sForgetMoveAndLinkedOnes, 0, 5, &sGulpinShopWork->unk28[0], &sGulpinShopWork->unk68, 4, 0, NULL, 32); else diff --git a/src/gulpin_shop_801FB50.c b/src/gulpin_shop_801FB50.c index ad8f03290..f3994a857 100644 --- a/src/gulpin_shop_801FB50.c +++ b/src/gulpin_shop_801FB50.c @@ -69,7 +69,7 @@ bool8 sub_801FB50(u32 mode) gUnknown_203B27C->menuAction2 = 0; gUnknown_203B27C->menuAction3 = 0; gUnknown_203B27C->menuAction4 = 0; - gUnknown_203B27C->isAsleep = mode; + gUnknown_203B27C->mode = mode; gUnknown_203B27C->unk15 = FALSE; CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_GULPIN); CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_GULPIN); @@ -77,7 +77,7 @@ bool8 sub_801FB50(u32 mode) strcpy(gUnknown_202E1C8 - 80, name); PrintPokeNameToBuffer(gUnknown_202E1C8 - 0xF0, GetPlayerPokemonStruct()); - if (gUnknown_203B27C->isAsleep == TRUE) + if (gUnknown_203B27C->mode == GULPIN_SHOP_MODE_ASLEEP) gUnknown_203B27C->unk17C = NULL; else gUnknown_203B27C->unk17C = &gUnknown_203B27C->faceFile; @@ -233,63 +233,63 @@ static void sub_801FF28(void) gUnknown_203B27C->menuAction1 = 2; CreateGulpinShopMenu(); gUnknown_203B27C->fallbackState = 2; - sub_8014248(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_00],0,gUnknown_203B27C->menuAction1,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0,gUnknown_203B27C->unk17C,0xc); + sub_8014248(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_00],0,gUnknown_203B27C->menuAction1,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0,gUnknown_203B27C->unk17C,0xc); break; case 1: CreateGulpinShopMenu(); gUnknown_203B27C->fallbackState = 2; - sub_8014248(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_01],0,gUnknown_203B27C->menuAction1,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0,gUnknown_203B27C->unk17C,0xc); + sub_8014248(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_01],0,gUnknown_203B27C->menuAction1,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0,gUnknown_203B27C->unk17C,0xc); break; case 2: DrawTeamMoneyBox(3); break; case 3: gUnknown_203B27C->fallbackState = 0x1f; - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_02],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_02],0,gUnknown_203B27C->unk17C,0x10d); break; case 4: gUnknown_203B27C->fallbackState = 0x1f; - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_03],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_03],0,gUnknown_203B27C->unk17C,0x10d); break; case 5: gUnknown_203B27C->fallbackState = 0x1f; - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_04],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_04],0,gUnknown_203B27C->unk17C,0x10d); break; case 6: gUnknown_203B27C->fallbackState = 0x1f; - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_05],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_05],0,gUnknown_203B27C->unk17C,0x10d); break; case 7: sub_8020900(); - sub_8014248(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_06],0,0x10, + sub_8014248(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_06],0,0x10, gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0, gUnknown_203B27C->unk17C,0xc); break; case 8: sub_8020950(); - sub_8014248(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_21],0,0xd, + sub_8014248(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_21],0,0xd, gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0, gUnknown_203B27C->unk17C,0xc); break; case 9: gUnknown_203B27C->fallbackState = 1; - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_22],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_22],0,gUnknown_203B27C->unk17C,0x10d); break; case 10: gUnknown_203B27C->fallbackState = 1; - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_23],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_23],0,gUnknown_203B27C->unk17C,0x10d); break; case 0xb: gUnknown_203B27C->fallbackState = 1; - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_24],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_24],0,gUnknown_203B27C->unk17C,0x10d); break; case 0xc: gUnknown_203B27C->fallbackState = 0xd; - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_07],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_07],0,gUnknown_203B27C->unk17C,0x10d); break; case 0xe: gUnknown_203B27C->fallbackState = 0xf; - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_08],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_08],0,gUnknown_203B27C->unk17C,0x10d); break; case 0xf: sub_8023868(2,0,0,10); @@ -309,7 +309,7 @@ static void sub_801FF28(void) break; case 0x14: gUnknown_203B27C->fallbackState = 0x15; - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_09],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_09],0,gUnknown_203B27C->unk17C,0x10d); break; case 0x15: sub_801F428(gUnknown_203B27C->speciesNum,0); @@ -333,21 +333,21 @@ static void sub_801FF28(void) sub_8094060(gUnknown_203B27C->moves,gUnknown_203B27C->pokeStruct->moves); gUnknown_203B27C->fallbackState = 0x10; sub_8092C84(gAvailablePokemonNames,gUnknown_203B27C->unk1E); - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_10],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_10],0,gUnknown_203B27C->unk17C,0x10d); break; case 0x1a: sub_8094060(gUnknown_203B27C->moves,gUnknown_203B27C->pokeStruct->moves); gUnknown_203B27C->fallbackState = 0x10; if (gUnknown_203B27C->isNextMoveLinked) { - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_14],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_14],0,gUnknown_203B27C->unk17C,0x10d); } else { - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_13],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_13],0,gUnknown_203B27C->unk17C,0x10d); } break; case 0x1d: - if (gUnknown_203B27C->isAsleep == FALSE) { + if (gUnknown_203B27C->mode == GULPIN_SHOP_MODE_AWAKE) { CreateGulpinShop(FALSE,gUnknown_203B27C->speciesNum,gUnknown_203B27C->moves); } else { @@ -356,11 +356,11 @@ static void sub_801FF28(void) break; case 0x1b: gUnknown_203B27C->fallbackState = 0x10; - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_15],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_15],0,gUnknown_203B27C->unk17C,0x10d); break; case 0x1c: gUnknown_203B27C->fallbackState = 0x10; - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_16],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_16],0,gUnknown_203B27C->unk17C,0x10d); break; case 0x1e: @@ -382,11 +382,11 @@ static void sub_801FF28(void) sub_80208B0(); sub_8092C84(gUnknown_202DFE8,gUnknown_203B27C->unk20); if (gUnknown_203B27C->isNextMoveLinked) { - sub_8014248(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_18],0,0x11,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0, + sub_8014248(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_18],0,0x11,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0, gUnknown_203B27C->unk17C,0xc); } else { - sub_8014248(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_17],0,0x11,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0, + sub_8014248(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_17],0,0x11,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0, gUnknown_203B27C->unk17C,0xc); } break; @@ -395,11 +395,11 @@ static void sub_801FF28(void) sub_8092C84(gUnknown_202DFE8,gUnknown_203B27C->unk20); if (gUnknown_203B27C->isNextMoveLinked) { - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_20],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_20],0,gUnknown_203B27C->unk17C,0x10d); } else { - sub_80141B4(gCommonGulpin[gUnknown_203B27C->isAsleep][GULPIN_DLG_19],0,gUnknown_203B27C->unk17C,0x10d); + sub_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_19],0,gUnknown_203B27C->unk17C,0x10d); } break; } diff --git a/src/makuhita_dojo1.c b/src/makuhita_dojo1.c index 2415aeedf..25285039c 100644 --- a/src/makuhita_dojo1.c +++ b/src/makuhita_dojo1.c @@ -48,40 +48,40 @@ bool8 MakuhitaDojo_New(u32 mode) switch (mode) { case MAKUHITA_DOJO_INIT_MODE_UNK0_AWAKE: initialState = 0; - sMakuhitaDojoWork1->isAsleep = FALSE; + sMakuhitaDojoWork1->dlgMode = MAKUHITA_DOJO_MODE_AWAKE; break; case MAKUHITA_DOJO_INIT_MODE_UNK1_AWAKE: initialState = 7; - sMakuhitaDojoWork1->isAsleep = FALSE; + sMakuhitaDojoWork1->dlgMode = MAKUHITA_DOJO_MODE_AWAKE; break; case MAKUHITA_DOJO_INIT_MODE_UNK2_AWAKE: initialState = 6; - sMakuhitaDojoWork1->isAsleep = FALSE; + sMakuhitaDojoWork1->dlgMode = MAKUHITA_DOJO_MODE_AWAKE; break; case MAKUHITA_DOJO_INIT_MODE_UNK3_AWAKE: initialState = 8; - sMakuhitaDojoWork1->isAsleep = FALSE; + sMakuhitaDojoWork1->dlgMode = MAKUHITA_DOJO_MODE_AWAKE; break; case MAKUHITA_DOJO_INIT_MODE_UNK4_ASLEEP: initialState = 0; - sMakuhitaDojoWork1->isAsleep = TRUE; + sMakuhitaDojoWork1->dlgMode = MAKUHITA_DOJO_MODE_ASLEEP; break; case MAKUHITA_DOJO_INIT_MODE_UNK5_ASLEEP: initialState = 7; - sMakuhitaDojoWork1->isAsleep = TRUE; + sMakuhitaDojoWork1->dlgMode = MAKUHITA_DOJO_MODE_ASLEEP; break; case MAKUHITA_DOJO_INIT_MODE_UNK6_ASLEEP: initialState = 6; - sMakuhitaDojoWork1->isAsleep = TRUE; + sMakuhitaDojoWork1->dlgMode = MAKUHITA_DOJO_MODE_ASLEEP; break; case MAKUHITA_DOJO_INIT_MODE_UNK7_ASLEEP: default: initialState = 8; - sMakuhitaDojoWork1->isAsleep = TRUE; + sMakuhitaDojoWork1->dlgMode = MAKUHITA_DOJO_MODE_ASLEEP; break; } - if (sMakuhitaDojoWork1->isAsleep == TRUE) + if (sMakuhitaDojoWork1->dlgMode == MAKUHITA_DOJO_MODE_ASLEEP) sMakuhitaDojoWork1->unk68 = NULL; else sMakuhitaDojoWork1->unk68 = &sMakuhitaDojoWork1->faceFile; @@ -174,18 +174,18 @@ static void MakuhitaDojo_UpdateDialogue(void) switch (sMakuhitaDojoWork1->state) { case 0: MakuhitaDojo_DrawMainMenu(); - sub_8014248(gCommonMakuhita[sMakuhitaDojoWork1->isAsleep][0], 0, sMakuhitaDojoWork1->menuAction, sMakuhitaDojoWork1->unk18, NULL, 4, 0, sMakuhitaDojoWork1->unk68, 12); + sub_8014248(gCommonMakuhita[sMakuhitaDojoWork1->dlgMode][MAKUHITA_DLG_0], 0, sMakuhitaDojoWork1->menuAction, sMakuhitaDojoWork1->unk18, NULL, 4, 0, sMakuhitaDojoWork1->unk68, 12); break; case 1: - sub_8014248(gCommonMakuhita[sMakuhitaDojoWork1->isAsleep][1], 0, sMakuhitaDojoWork1->menuAction, sMakuhitaDojoWork1->unk18, NULL, 4, 0, sMakuhitaDojoWork1->unk68, 12); + sub_8014248(gCommonMakuhita[sMakuhitaDojoWork1->dlgMode][MAKUHITA_DLG_1], 0, sMakuhitaDojoWork1->menuAction, sMakuhitaDojoWork1->unk18, NULL, 4, 0, sMakuhitaDojoWork1->unk68, 12); break; case 2: sMakuhitaDojoWork1->fallbackState = 13; - sub_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->isAsleep][2], 0, sMakuhitaDojoWork1->unk68, 0x10D); + sub_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->dlgMode][MAKUHITA_DLG_2], 0, sMakuhitaDojoWork1->unk68, 0x10D); break; case 3: sMakuhitaDojoWork1->fallbackState = 4; - sub_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->isAsleep][3], 0, sMakuhitaDojoWork1->unk68, 0x10D); + sub_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->dlgMode][MAKUHITA_DLG_3], 0, sMakuhitaDojoWork1->unk68, 0x10D); break; case 4: sub_80302E8(3, NULL, 10); @@ -195,19 +195,19 @@ static void MakuhitaDojo_UpdateDialogue(void) dLoc.id = sub_80A2740(sMakuhitaDojoWork1->unk10); dLoc.floor = 1; PrintYellowDungeonNametoBuffer(gAvailablePokemonNames, &dLoc); - sub_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->isAsleep][4], 0, sMakuhitaDojoWork1->unk68, 0x10D); + sub_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->dlgMode][MAKUHITA_DLG_4], 0, sMakuhitaDojoWork1->unk68, 0x10D); break; case 7: sMakuhitaDojoWork1->fallbackState = 13; - sub_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->isAsleep][6], 0, sMakuhitaDojoWork1->unk68, 0x10D); + sub_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->dlgMode][MAKUHITA_DLG_6], 0, sMakuhitaDojoWork1->unk68, 0x10D); break; case 6: sMakuhitaDojoWork1->fallbackState = 13; - sub_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->isAsleep][5], 0, sMakuhitaDojoWork1->unk68, 0x10D); + sub_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->dlgMode][MAKUHITA_DLG_5], 0, sMakuhitaDojoWork1->unk68, 0x10D); break; case 8: sMakuhitaDojoWork1->fallbackState = 9; - sub_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->isAsleep][7], 0, sMakuhitaDojoWork1->unk68, 0x10D); + sub_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->dlgMode][MAKUHITA_DLG_7], 0, sMakuhitaDojoWork1->unk68, 0x10D); break; case 9: PrintColoredPokeNameToBuffer(gPlayerName, GetPlayerPokemonStruct(), COLOR_YELLOW); @@ -217,14 +217,14 @@ static void MakuhitaDojo_UpdateDialogue(void) break; case 10: sMakuhitaDojoWork1->fallbackState = 13; - sub_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->isAsleep][8], 0, sMakuhitaDojoWork1->unk68, 0x10D); + sub_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->dlgMode][MAKUHITA_DLG_8], 0, sMakuhitaDojoWork1->unk68, 0x10D); break; case 11: sub_801B60C(1, ITEM_GINSENG, 1); break; case 12: sMakuhitaDojoWork1->fallbackState = 1; - sub_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->isAsleep][9], 0, sMakuhitaDojoWork1->unk68, 0x10D); + sub_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->dlgMode][MAKUHITA_DLG_9], 0, sMakuhitaDojoWork1->unk68, 0x10D); break; case 13: return; From 281f29d03c07ca58cedc5d44bd7ed2e5866a8576 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sat, 23 Sep 2023 05:26:13 -0400 Subject: [PATCH 39/47] Finish common_strings FOINALLY --- data/common_strings.s | 93 ------------------------ include/common_strings.h | 12 +-- include/constants/common_strings_hints.h | 13 ++++ ld_script.txt | 1 - src/common_strings.c | 5 +- src/data/common_strings_hints.h | 67 +++++++++++++++++ src/hints_menu1.c | 2 +- 7 files changed, 85 insertions(+), 108 deletions(-) delete mode 100644 data/common_strings.s create mode 100644 include/constants/common_strings_hints.h create mode 100644 src/data/common_strings_hints.h diff --git a/data/common_strings.s b/data/common_strings.s deleted file mode 100644 index c495e6091..000000000 --- a/data/common_strings.s +++ /dev/null @@ -1,93 +0,0 @@ - .section .rodata - - .align 2,0 - - .global gCommonHints -gCommonHints: @ 80DAA98 (Help Menu?) - .4byte gUnknown_80DAF54 - .4byte gUnknown_80DAEE0 - .4byte gUnknown_80DAECC - .4byte gUnknown_80DADD4 - .4byte gUnknown_80DADCC - .4byte gUnknown_80DAD40 - .4byte gUnknown_80DAD28 - .4byte gUnknown_80DABE8 - .4byte gUnknown_80DABD8 - .4byte gUnknown_80DAAC0 - - .global gUnknown_80DAAC0 -gUnknown_80DAAC0: - .string "Before leaving on an adventure{COMMA} go visit\n" - .string "friends in their Friend Areas and pick\n" - .string "your mission members.\n" - .string "The team can include members up to\n" - .string "a total body size of 6{STAR_BULLET}. The body size\n" - .string "data is under the Info section.\n" - .string "Dungeons may also limit how many\n" - .string "members are allowed to go inside.\0" - .align 2, 0 - - .global gUnknown_80DABD8 -gUnknown_80DABD8: - .string "Building a Team\0" - .align 2, 0 - - .global gUnknown_80DABE8 -gUnknown_80DABE8: - .string "If new recruits join you{COMMA} try to return to\n" - .string "your base without letting them faint.\n" - .string "If you get them out safely{COMMA} they{APOSTROPHE}ll wait\n" - .string "for you in their Friend Areas.\n" - .string "Once you get them out{COMMA} they{APOSTROPHE}ll always\n" - .string "return home if they faint in a dungeon.\n" - .string "If you faint in a dungeon{COMMA} you lose all your\n" - .string "money and some items{COMMA} too.\0" - .align 2, 0 - - .global gUnknown_80DAD28 -gUnknown_80DAD28: - .string "Adventures with Friends\0" - .align 2, 0 - - .global gUnknown_80DAD40 -gUnknown_80DAD40: - .string "You can save your adventure by\n" - .string "hopping onto your bed in your base.\n" - .string "Get in the habit of saving regularly as\n" - .string "you progress in your adventure.\0" - .align 2, 0 - - .global gUnknown_80DADCC -gUnknown_80DADCC: - .string "Saving\0" - .align 2, 0 - - .global gUnknown_80DADD4 -gUnknown_80DADD4: - .string "Selecting multiple items in storage:\n" - .string " Select an item{COMMA} then press {L_BUTTON} or {R_BUTTON}.\n" - .string "Moving to the Friend Area Map:\n" - .string " Move out from the town{APOSTROPHE}s west side\n" - .string " while pressing {L_BUTTON} or {R_BUTTON}.\n" - .string "Moving diagonally on the Friend Area Map:\n" - .string " {DPAD} while keeping {R_BUTTON} pressed.\0" - .align 2, 0 - - .global gUnknown_80DAECC -gUnknown_80DAECC: - .string "Controls in Town 2\0" - .align 2, 0 - - .global gUnknown_80DAEE0 -gUnknown_80DAEE0: - .string "Talk: {A_BUTTON}\n" - .string "Move: {DPAD}\n" - .string "Window: {B_BUTTON} lightly\n" - .string "Message scroll: {A_BUTTON} or {B_BUTTON}\n" - .string "Cancel: {B_BUTTON}\n" - .string "Description: Choose item or move{COMMA} {START_BUTTON}\0" - .align 2, 0 - - .global gUnknown_80DAF54 -gUnknown_80DAF54: - .string "Controls in Town 1\0" \ No newline at end of file diff --git a/include/common_strings.h b/include/common_strings.h index d2024bec6..3c6e34f29 100644 --- a/include/common_strings.h +++ b/include/common_strings.h @@ -7,15 +7,7 @@ #include "constants/common_strings_wigglytuff_shop.h" #include "constants/common_strings_gulpin_shop.h" #include "constants/common_strings_makuhita_dojo.h" - -#define MAX_HINTS 5 - -// size: 0x8 -typedef struct Hints -{ - const u8 *heading; - const u8 *body; -} Hints; +#include "constants/common_strings_hints.h" extern const u8* const gCommonYes[]; extern const u8* const gCommonNo[]; @@ -41,6 +33,6 @@ extern const u8* const gCommonKecleonBros[KECLEON_BROS_MODE_COUNT][KECLEON_DLG_M extern const u8* const gCommonWigglytuff[WIGGLYTUFF_SHOP_MODE_COUNT][WIGGLY_DLG_MAX]; extern const u8* const gCommonGulpin[GULPIN_SHOP_MODE_DIALOGUE_COUNT][GULPIN_DLG_MAX]; extern const u8* const gCommonMakuhita[MAKUHITA_DOJO_MODE_COUNT][MAKUHITA_DLG_MAX]; -extern const Hints gCommonHints[MAX_HINTS]; // 80DAA98 +extern const Hints gCommonHints[NUM_HINTS]; #endif // GUARD_COMMON_STRINGS_H \ No newline at end of file diff --git a/include/constants/common_strings_hints.h b/include/constants/common_strings_hints.h new file mode 100644 index 000000000..7e319f47f --- /dev/null +++ b/include/constants/common_strings_hints.h @@ -0,0 +1,13 @@ +#ifndef GUARD_COMMON_STRINGS_HINTS_H +#define GUARD_COMMON_STRINGS_HINTS_H + +// size: 0x8 +typedef struct Hints +{ + const u8 *heading; + const u8 *body; +} Hints; + +#define NUM_HINTS 5 + +#endif // GUARD_COMMON_STRINGS_HINTS_H \ No newline at end of file diff --git a/ld_script.txt b/ld_script.txt index a25608a9d..8f571967a 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -413,7 +413,6 @@ SECTIONS { src/menu_input.o(.rodata); data/data_80D47B8.o(.rodata); src/common_strings.o(.rodata); - data/common_strings.o(.rodata); data/data_80DAF70.o(.rodata); src/code_801602C.o(.rodata); src/felicity_bank.o(.rodata); diff --git a/src/common_strings.c b/src/common_strings.c index 1a530420f..344112513 100644 --- a/src/common_strings.c +++ b/src/common_strings.c @@ -56,11 +56,10 @@ ALIGNED(4) const u8* const gCommonDepositPrompt[] = { sDepositPrompt0 }; ALIGNED(4) static const u8 sWithdrawPrompt0[] = _("Withdraw?"); 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_kangaskhan_storage.h" #include "data/common_strings_kecleon_bros.h" #include "data/common_strings_wigglytuff_shop.h" #include "data/common_strings_gulpin_shop.h" -#include "data/common_strings_makuhita_dojo.h" \ No newline at end of file +#include "data/common_strings_makuhita_dojo.h" +#include "data/common_strings_hints.h" \ No newline at end of file diff --git a/src/data/common_strings_hints.h b/src/data/common_strings_hints.h new file mode 100644 index 000000000..75314ad1e --- /dev/null +++ b/src/data/common_strings_hints.h @@ -0,0 +1,67 @@ +static const u8 sUnknown_80DAAC0[]; +static const u8 sUnknown_80DABD8[]; +static const u8 sUnknown_80DABE8[]; +static const u8 sUnknown_80DAD28[]; +static const u8 sUnknown_80DAD40[]; +static const u8 sUnknown_80DADCC[]; +static const u8 sUnknown_80DADD4[]; +static const u8 sUnknown_80DAECC[]; +static const u8 sUnknown_80DAEE0[]; +static const u8 sUnknown_80DAF54[]; + +ALIGNED(4) const Hints gCommonHints[NUM_HINTS] = +{ + {sUnknown_80DAF54, sUnknown_80DAEE0}, + {sUnknown_80DAECC, sUnknown_80DADD4}, + {sUnknown_80DADCC, sUnknown_80DAD40}, + {sUnknown_80DAD28, sUnknown_80DABE8}, + {sUnknown_80DABD8, sUnknown_80DAAC0} +}; + +ALIGNED(4) static const u8 sUnknown_80DAAC0[] = _( + "Before leaving on an adventure{COMMA} go visit\n" + "friends in their Friend Areas and pick\n" + "your mission members.\n" + "The team can include members up to\n" + "a total body size of 6{STAR_BULLET}. The body size\n" + "data is under the Info section.\n" + "Dungeons may also limit how many\n" + "members are allowed to go inside."); +ALIGNED(4) static const u8 sUnknown_80DABD8[] = _("Building a Team"); + +ALIGNED(4) static const u8 sUnknown_80DABE8[] = _( + "If new recruits join you{COMMA} try to return to\n" + "your base without letting them faint.\n" + "If you get them out safely{COMMA} they{APOSTROPHE}ll wait\n" + "for you in their Friend Areas.\n" + "Once you get them out{COMMA} they{APOSTROPHE}ll always\n" + "return home if they faint in a dungeon.\n" + "If you faint in a dungeon{COMMA} you lose all your\n" + "money and some items{COMMA} too."); +ALIGNED(4) static const u8 sUnknown_80DAD28[] = _("Adventures with Friends"); + +ALIGNED(4) static const u8 sUnknown_80DAD40[] = _( + "You can save your adventure by\n" + "hopping onto your bed in your base.\n" + "Get in the habit of saving regularly as\n" + "you progress in your adventure."); +ALIGNED(4) static const u8 sUnknown_80DADCC[] = _("Saving"); + +ALIGNED(4) static const u8 sUnknown_80DADD4[] = _( + "Selecting multiple items in storage:\n" + " Select an item{COMMA} then press {L_BUTTON} or {R_BUTTON}.\n" + "Moving to the Friend Area Map:\n" + " Move out from the town{APOSTROPHE}s west side\n" + " while pressing {L_BUTTON} or {R_BUTTON}.\n" + "Moving diagonally on the Friend Area Map:\n" + " {DPAD} while keeping {R_BUTTON} pressed."); +ALIGNED(4) static const u8 sUnknown_80DAECC[] = _("Controls in Town 2"); + +ALIGNED(4) static const u8 sUnknown_80DAEE0[] = _( + "Talk: {A_BUTTON}\n" + "Move: {DPAD}\n" + "Window: {B_BUTTON} lightly\n" + "Message scroll: {A_BUTTON} or {B_BUTTON}\n" + "Cancel: {B_BUTTON}\n" + "Description: Choose item or move{COMMA} {START_BUTTON}"); +ALIGNED(4) static const u8 sUnknown_80DAF54[] = _("Controls in Town 1"); \ No newline at end of file diff --git a/src/hints_menu1.c b/src/hints_menu1.c index e53591c7b..beaa55de2 100644 --- a/src/hints_menu1.c +++ b/src/hints_menu1.c @@ -144,7 +144,7 @@ static void DrawHintSelectionMenu(void) sub_80073B8(sUnknown_203B264->unk34); xxx_call_draw_string(16, 0, sHints, sUnknown_203B264->unk34, 0); - for (hintIndex = 0; hintIndex < MAX_HINTS; hintIndex++) { + for (hintIndex = 0; hintIndex < NUM_HINTS; hintIndex++) { y = sub_8013800(&sUnknown_203B264->input, hintIndex); xxx_call_draw_string(10, y, gCommonHints[hintIndex].heading, sUnknown_203B264->unk34, 0); } From 18869d6153a56ab03f15b9ded93a473f81232f42 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sat, 23 Sep 2023 06:03:07 -0400 Subject: [PATCH 40/47] Split+data code_802DB28/code_802DE84 --- include/code_802DB28.h | 30 +++ include/code_802DE84.h | 23 +++ include/code_802F204.h | 10 + include/code_803B050.h | 4 + include/code_803C1D0.h | 9 + include/code_80958E8_1.h | 10 + include/code_8096AF8.h | 1 + ld_script.txt | 6 +- src/code_802DB28.c | 199 +++++++++++++++++++ src/code_802DE84.c | 73 +++++++ src/code_803B050.c | 1 - src/code_80958E8_1.c | 7 - src/data/code_801D014.h | 1 - src/data/code_802DB28.h | 28 +++ src/data/code_802DE84.h | 20 ++ src/friend_rescue.c | 5 +- src/mailbox.c | 6 +- src/pelipper_board.c | 4 +- src/thank_you_wonder_mail.c | 4 +- src/wonder_mail_2.c | 4 +- src/wonder_mail_2_1.c | 2 +- src/wonder_mail_3.c | 7 +- src/wonder_mail_3_mid.c | 5 +- src/wonder_mail_802DF88.c | 368 ------------------------------------ sym_ewram2.txt | 8 +- 25 files changed, 425 insertions(+), 410 deletions(-) create mode 100644 include/code_802DB28.h create mode 100644 include/code_802DE84.h create mode 100644 include/code_802F204.h create mode 100644 include/code_803C1D0.h create mode 100644 src/code_802DB28.c create mode 100644 src/code_802DE84.c create mode 100644 src/data/code_802DB28.h create mode 100644 src/data/code_802DE84.h delete mode 100644 src/wonder_mail_802DF88.c diff --git a/include/code_802DB28.h b/include/code_802DB28.h new file mode 100644 index 000000000..f77b8328a --- /dev/null +++ b/include/code_802DB28.h @@ -0,0 +1,30 @@ +#ifndef GUARD_CODE_802DB28_H +#define GUARD_CODE_802DB28_H + +#include "file_system.h" +#include "wonder_mail.h" +#include "structs/str_text.h" + +// size: 0xA8 +struct unkStruct_203B2FC +{ + /* 0x0 */ u32 state; + /* 0x4 */ u32 fallbackState; + unkStruct_802F204 unk8; + /* 0x30 */ u8 jobSlotIndex; + /* 0x34 */ WonderMail *jobInfo; + /* 0x38 */ OpenedFile *faceFile; + /* 0x3C */ u8 *faceData; + u16 unk40; + u16 unk42; + u8 unk44; + u8 unk45; + u8 unk46; + UnkTextStruct2 unk48[4]; +}; + +bool8 sub_802DB28(u8 jobSlotIndex, u8 dungeon); +u32 sub_802DBD4(void); +void sub_802DC00(void); + +#endif // GUARD_CODE_802DB28_H \ No newline at end of file diff --git a/include/code_802DE84.h b/include/code_802DE84.h new file mode 100644 index 000000000..19b0e7a2f --- /dev/null +++ b/include/code_802DE84.h @@ -0,0 +1,23 @@ +#ifndef GUARD_CODE_802DE84_H +#define GUARD_CODE_802DE84_H + +#include "code_802C39C.h" +#include "input.h" +#include "structs/str_text.h" + +// size: 0x7C +struct unkStruct_203B300 +{ + MenuInputStructSub unk0; + /* 0xC */ unkStruct_802C39C *mail; + u32 unk10; + UnkTextStruct2 *unk14; + UnkTextStruct2 unk18[4]; + u8 unk78[4]; +}; + +bool8 sub_802DE84(unkStruct_802C39C *mail); +u32 sub_802DEE0(void); +void sub_802DF24(void); + +#endif // GUARD_CODE_802DE84_H \ No newline at end of file diff --git a/include/code_802F204.h b/include/code_802F204.h new file mode 100644 index 000000000..5f3b3353f --- /dev/null +++ b/include/code_802F204.h @@ -0,0 +1,10 @@ +#ifndef GUARD_CODE_802F204_H +#define GUARD_CODE_802F204_H + +#include "wonder_mail.h" + +u32 sub_802F204(unkStruct_802F204 *, bool8 displayClientSprite); +u32 sub_802F298(void); +void sub_802F2C0(void); + +#endif // GUARD_CODE_802F204_H \ No newline at end of file diff --git a/include/code_803B050.h b/include/code_803B050.h index be065c35f..af702c5c8 100644 --- a/include/code_803B050.h +++ b/include/code_803B050.h @@ -1,6 +1,8 @@ #ifndef GUARD_CODE_803B050_H #define GUARD_CODE_803B050_H +#include "code_802C39C.h" + // size: 0x8 typedef struct unkStruct_80E9920 { @@ -18,6 +20,8 @@ typedef struct unkStruct_80E9F8C /* 0x8 */ u8 *text2; } unkStruct_80E9F8C; +void CreateRescueDescription(unkStruct_802C39C *); + void sub_803B6B0(s32 x, s32 y, u8 index, u32); #endif // GUARD_CODE_803B050_H \ No newline at end of file diff --git a/include/code_803C1D0.h b/include/code_803C1D0.h new file mode 100644 index 000000000..453a16047 --- /dev/null +++ b/include/code_803C1D0.h @@ -0,0 +1,9 @@ +#ifndef GUARD_CODE_803C1D0_H +#define GUARD_CODE_803C1D0_H + +#include "wonder_mail.h" + +// code_803C1D0.s +extern void sub_803C21C(WonderMail *, unkStruct_802F204*); + +#endif // GUARD_CODE_803C1D0_H \ No newline at end of file diff --git a/include/code_80958E8_1.h b/include/code_80958E8_1.h index 144bd84dc..96088fb95 100644 --- a/include/code_80958E8_1.h +++ b/include/code_80958E8_1.h @@ -3,7 +3,17 @@ #include "wonder_mail.h" +// size: 0x8 +struct unkStruct_8096AF8 +{ + bool8 unk0; + /* 0x2 */ u16 clientSpecies; + /* 0x4 */ u16 targetSpecies; +}; + s32 CountJobsinDungeon(u8 dungeon); WonderMail *GetJobSlotInfo(u8 index); +void sub_8096AF8(struct unkStruct_8096AF8 *, u8 slotIndex, u8 dungeon); + #endif // GUARD_CODE_80958E8_1_H \ No newline at end of file diff --git a/include/code_8096AF8.h b/include/code_8096AF8.h index 587856050..b31155773 100644 --- a/include/code_8096AF8.h +++ b/include/code_8096AF8.h @@ -3,5 +3,6 @@ // code_8096AF8.s extern bool8 sub_8096E2C(void); +extern void sub_8096EEC(void); #endif // GUARD_CODE_8096AF8_H \ No newline at end of file diff --git a/ld_script.txt b/ld_script.txt index 8f571967a..ba39328a6 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -140,7 +140,8 @@ SECTIONS { src/wonder_mail_2_mid.o(.text); src/wonder_mail_2_1.o(.text); src/wonder_mail_3.o(.text); - src/wonder_mail_802DF88.o(.text); + src/code_802DB28.o(.text); + src/code_802DE84.o(.text); src/mailbox.o(.text); src/pelipper_board.o(.text); src/wonder_mail_3_mid.o(.text); @@ -455,7 +456,8 @@ SECTIONS { src/pokemon_news.o(.rodata); src/wonder_mail_2_1.o(.rodata); src/wonder_mail_3.o(.rodata); - src/wonder_mail_802DF88.o(.rodata); + src/code_802DB28.o(.rodata); + src/code_802DE84.o(.rodata); src/mailbox.o(.rodata); src/pelipper_board.o(.rodata); src/wonder_mail_3_mid.o(.rodata); diff --git a/src/code_802DB28.c b/src/code_802DB28.c new file mode 100644 index 000000000..4dfd4a6b4 --- /dev/null +++ b/src/code_802DB28.c @@ -0,0 +1,199 @@ +#include "global.h" +#include "code_80130A8.h" +#include "code_802DB28.h" +#include "code_802F204.h" +#include "code_803C1D0.h" +#include "code_80958E8_1.h" +#include "code_8096AF8.h" +#include "exclusive_pokemon.h" +#include "items.h" +#include "memory.h" +#include "text1.h" +#include "text2.h" + +extern u8 gUnknown_202DE58[]; +extern u8 gUnknown_202E1C8[]; +extern u8 gUnknown_202E5D8[]; + +static EWRAM_DATA_2 struct unkStruct_203B2FC *sUnknown_203B2FC = {0}; + +#include "data/code_802DB28.h" + +static void sub_802DC28(u32 newState); +static void sub_802DC40(void); +static void sub_802DC9C(void); +static void sub_802DE44(void); +static void sub_802DE60(void); + +bool8 sub_802DB28(u8 jobSlotIndex, u8 dungeon) +{ + struct unkStruct_8096AF8 local_18; + + sub_8096AF8(&local_18, jobSlotIndex, dungeon); + + if (!local_18.unk0) + return FALSE; + + ResetUnusedInputStruct(); + sub_800641C(NULL, TRUE, TRUE); + + sUnknown_203B2FC = MemoryAlloc(sizeof(struct unkStruct_203B2FC), 8); + sUnknown_203B2FC->jobSlotIndex = jobSlotIndex; + sUnknown_203B2FC->jobInfo = GetJobSlotInfo(jobSlotIndex); + sub_8096EEC(); + sub_803C21C(sUnknown_203B2FC->jobInfo, &sUnknown_203B2FC->unk8); + + sUnknown_203B2FC->faceFile = GetDialogueSpriteDataPtr(sUnknown_203B2FC->jobInfo->clientSpecies); + sUnknown_203B2FC->faceData = NULL; + sUnknown_203B2FC->unk44 = 0; + sUnknown_203B2FC->unk45 = 0; + sUnknown_203B2FC->unk46 = 0; + sUnknown_203B2FC->unk40 = 2; + sUnknown_203B2FC->unk42 = 8; + + if (sUnknown_203B2FC->faceFile != NULL) + sUnknown_203B2FC->faceData = sUnknown_203B2FC->faceFile->data; + + sub_802DC28(0); + return TRUE; +} + +u32 sub_802DBD4(void) +{ + switch (sUnknown_203B2FC->state) { + case 7: + sUnknown_203B2FC->jobInfo->mailType = WONDER_MAIL_TYPE_OKD; + return 3; + case 6: + sub_802DE44(); + return 0; + default: + sub_802DE60(); + return 0; + } +} + +void sub_802DC00(void) +{ + if (sUnknown_203B2FC != NULL) { + if (sUnknown_203B2FC->faceFile != NULL) + CloseFile(sUnknown_203B2FC->faceFile); + + MemoryFree(sUnknown_203B2FC); + sUnknown_203B2FC = NULL; + } +} + +static void sub_802DC28(u32 newState) +{ + sUnknown_203B2FC->state = newState; + sub_802DC40(); + sub_802DC9C(); +} + +static void sub_802DC40(void) +{ + s32 i; + + sub_8006518(sUnknown_203B2FC->unk48); + + switch (sUnknown_203B2FC->state) { + case 0: + case 7: + for (i = 0; i < 4; i++) + sUnknown_203B2FC->unk48[i] = sUnknown_80E016C; + break; + } + + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B2FC->unk48, TRUE, TRUE); +} + +static void sub_802DC9C(void) +{ + u8 *speciesText; + s32 index; + + switch (sUnknown_203B2FC->state) { + case 0: + CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, sUnknown_203B2FC->jobInfo->clientSpecies); + CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, sUnknown_203B2FC->jobInfo->clientSpecies); + speciesText = GetMonSpecies(sUnknown_203B2FC->jobInfo->clientSpecies); + strcpy(gUnknown_202E1C8 - 560, speciesText); + speciesText = GetMonSpecies(sUnknown_203B2FC->jobInfo->targetSpecies); + strcpy(gUnknown_202E1C8 - 480, speciesText); + UnlockExclusivePokemon(sUnknown_203B2FC->jobInfo->clientSpecies); + BufferItemName(gUnknown_202DE58, sUnknown_203B2FC->jobInfo->targetItem, NULL); + sUnknown_203B2FC->fallbackState = 6; + + switch (sUnknown_203B2FC->jobInfo->missionType) { + case WONDER_MAIL_MISSION_TYPE_DELIVER_ITEM: + sub_802DC28(5); + break; + case WONDER_MAIL_MISSION_TYPE_FIND_ITEM: + sub_802DC28(4); + break; + case WONDER_MAIL_MISSION_TYPE_RESCUE_TARGET: + sub_802DC28(2); + UnlockExclusivePokemon(sUnknown_203B2FC->jobInfo->targetSpecies); + break; + case WONDER_MAIL_MISSION_TYPE_ESCORT_CLIENT: + sub_802DC28(3); + UnlockExclusivePokemon(sUnknown_203B2FC->jobInfo->targetSpecies); + break; + default: + case WONDER_MAIL_MISSION_TYPE_RESCUE_CLIENT: + sub_802DC28(1); + break; + } + break; + case 1: + sub_80141B4(sThanksForRescuingMe, 0, &sUnknown_203B2FC->faceFile, 0x10D); + break; + case 2: + sub_80141B4(sThanksForRescuingThem, 0, &sUnknown_203B2FC->faceFile, 0x10D); + break; + case 3: + sub_80141B4(sThanksForEscortingMe, 0, &sUnknown_203B2FC->faceFile, 0x10D); + break; + case 5: + sub_80141B4(sThanksForDelivering, 0, &sUnknown_203B2FC->faceFile, 0x10D); + break; + case 4: + index = FindItemInInventory(sUnknown_203B2FC->jobInfo->targetItem); + if (index != -1) { + ShiftItemsDownFrom(index); + FillInventoryGaps(); + } + sub_80141B4(sThanksForGetting, 0, &sUnknown_203B2FC->faceFile, 0x10D); + break; + case 6: + sub_802F204(&sUnknown_203B2FC->unk8, 1); + break; + case 7: + default: + break; + } +} + +static void sub_802DE44(void) +{ + switch (sub_802F298()) { + case 2: + case 3: + sub_802F2C0(); + sub_802DC28(7); + break; + case 0: + case 1: + break; + } +} + +static void sub_802DE60(void) +{ + s32 temp; + + if (sub_80144A4(&temp) == 0) + sub_802DC28(sUnknown_203B2FC->fallbackState); +} \ No newline at end of file diff --git a/src/code_802DE84.c b/src/code_802DE84.c new file mode 100644 index 000000000..3f3b47dd1 --- /dev/null +++ b/src/code_802DE84.c @@ -0,0 +1,73 @@ +#include "global.h" +#include "code_80118A4.h" +#include "code_802DE84.h" +#include "code_803B050.h" +#include "memory.h" +#include "menu_input.h" +#include "text1.h" +#include "text2.h" + +static EWRAM_DATA_2 struct unkStruct_203B300 *sUnknown_203B300 = {0}; + +#include "data/code_802DE84.h" + +static void sub_802DF14(void); +static void sub_802DF6C(void); +static void sub_802DF88(void); + +bool8 sub_802DE84(unkStruct_802C39C *mail) +{ + sUnknown_203B300 = MemoryAlloc(sizeof(struct unkStruct_203B300), 8); + sUnknown_203B300->mail = mail; + sub_801317C(&sUnknown_203B300->unk0); + sUnknown_203B300->unk10 = sUnknown_203B300->mail->unk0[0]; + sUnknown_203B300->unk14 = &sUnknown_203B300->unk18[sUnknown_203B300->unk10]; + sub_8006518(sUnknown_203B300->unk18); + sUnknown_203B300->unk18[sUnknown_203B300->unk10] = sUnknown_80E0264; + sub_802DF14(); + return TRUE; +} + +u32 sub_802DEE0(void) +{ + switch (sub_8012A64(&sUnknown_203B300->unk0, sUnknown_203B300->unk10)) { + case 2: + PlayMenuSoundEffect(1); + return 2; + case 1: + PlayMenuSoundEffect(0); + return 3; + default: + return 0; + } +} + +static void sub_802DF14(void) +{ + sub_802DF6C(); + sub_802DF88(); +} + +void sub_802DF24(void) +{ + if (sUnknown_203B300 != NULL) { + sUnknown_203B300->unk18[sUnknown_203B300->unk10] = sUnknown_80E0248; + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B300->unk18, TRUE, TRUE); + MemoryFree(sUnknown_203B300); + sUnknown_203B300 = NULL; + } +} + +static void sub_802DF6C(void) +{ + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B300->unk18, TRUE, TRUE); +} + +static void sub_802DF88(void) +{ + sub_80073B8(sUnknown_203B300->unk10); + CreateRescueDescription(sUnknown_203B300->mail); + sub_80073E0(sUnknown_203B300->unk10); +} \ No newline at end of file diff --git a/src/code_803B050.c b/src/code_803B050.c index 0306924d2..55a7d0df3 100644 --- a/src/code_803B050.c +++ b/src/code_803B050.c @@ -8,7 +8,6 @@ #include "event_flag.h" #include "exclusive_pokemon.h" #include "code_8094F88.h" -#include "code_802C39C.h" #include "text_util.h" #include "text2.h" #include "code_800D090.h" diff --git a/src/code_80958E8_1.c b/src/code_80958E8_1.c index a26ceb157..997fb1e25 100644 --- a/src/code_80958E8_1.c +++ b/src/code_80958E8_1.c @@ -9,13 +9,6 @@ #include "random.h" #include "pokemon.h" -struct unkStruct_8096AF8 -{ - bool8 unk0; - u16 clientSpecies; - u16 targetSpecies; -}; - extern u8 IsJobSlotEmpty(u8); extern bool8 IsValidWonderMail(WonderMail *WonderMailData); extern u8 sub_8095E38(WonderMail *, u8, u8, bool8); diff --git a/src/data/code_801D014.h b/src/data/code_801D014.h index a1e29e4de..d189cf115 100644 --- a/src/data/code_801D014.h +++ b/src/data/code_801D014.h @@ -10,7 +10,6 @@ static const UnkTextStruct2 sUnknown_80DBE7C = { }; static const u8 sUnknown_80DBE94[] = {1, 0, 7, 0}; - static const UnkTextStruct2 sUnknown_80DBE98 = { 0, 0, 0, 0, 6, diff --git a/src/data/code_802DB28.h b/src/data/code_802DB28.h new file mode 100644 index 000000000..c3af8c6c2 --- /dev/null +++ b/src/data/code_802DB28.h @@ -0,0 +1,28 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 sUnknown_80E016C = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; + +ALIGNED(4) static const u8 sThanksForRescuingMe[] = _(" Thank you for rescuing me!"); + +ALIGNED(4) static const u8 sThanksForRescuingThem[] = _( + " Thank you for rescuing\n" + "{COLOR_1 CYAN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}!"); + +ALIGNED(4) static const u8 sThanksForEscortingMe[] = _( + " Thank you for escorting me\n" + "to {COLOR_1 CYAN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}! "); + +ALIGNED(4) static const u8 sThanksForDelivering[] = _( + " Thank you for delivering\n" + "the {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}!"); + +ALIGNED(4) static const u8 sThanksForGetting[] = _( + " Thank you for getting me\n" + "the {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}!"); \ No newline at end of file diff --git a/src/data/code_802DE84.h b/src/data/code_802DE84.h new file mode 100644 index 000000000..8c667b1c1 --- /dev/null +++ b/src/data/code_802DE84.h @@ -0,0 +1,20 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 sUnknown_80E0248 = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; + +static const u8 sUnknown_80E0260[] = {1, 0, 18, 0}; +static const UnkTextStruct2 sUnknown_80E0264 = { + 0, 0, 0, 0, + 6, + 2, 2, + 26, 16, + 16, 0, + sUnknown_80E0260 +}; \ No newline at end of file diff --git a/src/friend_rescue.c b/src/friend_rescue.c index d3b56d08f..876867ec1 100644 --- a/src/friend_rescue.c +++ b/src/friend_rescue.c @@ -5,6 +5,7 @@ #include "code_801C8C4.h" #include "code_8023868.h" #include "code_8024458.h" +#include "code_802F204.h" #include "code_8094F88.h" #include "constants/communication_error_codes.h" #include "constants/monster.h" @@ -24,8 +25,6 @@ #include "text2.h" extern void SetFriendRescueMenuState(u32); -extern void sub_802F2C0(); -extern u32 sub_802F298(); extern char gUnknown_202E5D8[0x50]; extern char gAvailablePokemonNames[0x50]; @@ -269,11 +268,9 @@ extern u32 sub_8039068(u32, u8 *passwordBuffer, unkStruct_203B480 *r0); extern void sub_803084C(void); extern void sub_8031E10(void); -extern void sub_802F2C0(void); extern void sub_8030DE4(void); extern u8 sub_800D588(void); extern u32 sub_8023CE8(void); -extern void sub_802F204(unkStruct_802F204 *, u32); extern u32 sub_80306A8(u32 wonderMailType, u32, UnkTextStruct2_sub *, u32); extern u32 sub_8030894(void); extern void sub_803092C(void); diff --git a/src/mailbox.c b/src/mailbox.c index 627ccc746..05db7cb01 100644 --- a/src/mailbox.c +++ b/src/mailbox.c @@ -1,4 +1,5 @@ #include "global.h" +#include "code_802DE84.h" #include "common_strings.h" #include "memory.h" #include "text1.h" @@ -13,6 +14,8 @@ EWRAM_DATA_2 struct unkStruct_203B304 *gUnknown_203B304 = {0}; +static const u8 wonder_mail_802DF88_fill1[] = "pksdir0"; + const UnkTextStruct2 gUnknown_80E0284 = { 0x00, 0x00, 0x00, 0x00, @@ -82,7 +85,6 @@ extern void sub_802BE94(u32); extern void CreateMailMenu(void); extern void CreateMailAcceptedStatusBox(u32); extern void sub_803B35C(WonderMail *, unkStruct_802C39C *); -extern void sub_802DE84(unkStruct_802C39C *); extern void sub_802B640(u32, u32, u32); extern void sub_802B7D0(u32); extern void sub_802B9FC(u8); @@ -91,8 +93,6 @@ extern void sub_802BACC(void); extern u8 GetPokemonNewsIndex(void); extern void sub_802B81C(void); extern u32 sub_802B720(u32); -extern u32 sub_802DEE0(void); -extern void sub_802DF24(void); extern WonderMail *GetMailboxSlotInfo(u8); extern u8 HasNoMailinMailbox(void); extern u32 sub_802BDEC(u32); diff --git a/src/pelipper_board.c b/src/pelipper_board.c index f12cb67c0..daa617f51 100644 --- a/src/pelipper_board.c +++ b/src/pelipper_board.c @@ -1,4 +1,5 @@ #include "global.h" +#include "code_802DE84.h" #include "mailbox.h" #include "pokemon.h" #include "items.h" @@ -78,10 +79,7 @@ extern void sub_802C28C(u32); extern void DrawPelipperBoardJobMenu(void); extern void CreatePelipperAcceptedStatusBox(u32); extern void sub_803B35C(WonderMail *, unkStruct_802C39C *); -extern void sub_802DE84(unkStruct_802C39C *); -extern u32 sub_802DEE0(void); -extern void sub_802DF24(void); extern WonderMail *GetPelipperBoardSlotInfo(u8); extern u8 HasNoPelipperBoardJobs(void); extern void sub_8096C80(void); diff --git a/src/thank_you_wonder_mail.c b/src/thank_you_wonder_mail.c index b73cf3cf8..51d51a89b 100644 --- a/src/thank_you_wonder_mail.c +++ b/src/thank_you_wonder_mail.c @@ -4,6 +4,7 @@ #include "code_80130A8.h" #include "code_801B3C0.h" #include "code_801C8C4.h" +#include "code_802F204.h" #include "code_8094F88.h" #include "constants/communication_error_codes.h" #include "cpu.h" @@ -164,7 +165,6 @@ const MenuItem gUnknown_80DEEE4[4] = extern void sub_8030810(u32); extern u32 sub_8031DCC(void); extern void sub_8031E00(void); -extern u32 sub_802F298(); extern u32 sub_8030768(u32); extern s8 sub_80307EC(void); extern void sub_8030D40(u8, u32); @@ -212,9 +212,7 @@ extern void sub_802A850(); extern void sub_8030DE4(); extern void sub_803084C(); extern void sub_8031E10(); -extern void sub_802F2C0(); extern void SetThankYouMailMenuState(u32); -extern void sub_802F204(unkStruct_802F204 *, u32); extern void sub_803092C(void); extern s32 sub_8037B28(u32); extern u32 sub_8030894(void); diff --git a/src/wonder_mail_2.c b/src/wonder_mail_2.c index 53beed183..8ee829f19 100644 --- a/src/wonder_mail_2.c +++ b/src/wonder_mail_2.c @@ -1,6 +1,7 @@ #include "global.h" #include "code_800D090.h" #include "code_80130A8.h" +#include "code_802F204.h" #include "code_8094F88.h" #include "code_8097670.h" #include "constants/item.h" @@ -40,8 +41,6 @@ extern struct unkStruct_203B2C8 *gUnknown_203B2C8; extern void sub_80920D8(u8 *buffer); extern char gUnknown_202E5D8[0x50]; extern char gAvailablePokemonNames[0x50]; -extern u32 sub_802F298(void); -extern void sub_802F2C0(void); extern u8 sub_8099394(u8 *); extern void sub_802B548(u32); @@ -51,7 +50,6 @@ extern void sub_802B5B8(void); extern void sub_802B5FC(void); extern void sub_802B624(void); -extern void sub_802F204(unkStruct_802F204 *, u32); extern void sub_803C37C(DungeonLocation *, u32, u8 *); extern u32 GetDungeonTeamRankPts(DungeonLocation *, u32); diff --git a/src/wonder_mail_2_1.c b/src/wonder_mail_2_1.c index ea6123d8e..23f591d04 100644 --- a/src/wonder_mail_2_1.c +++ b/src/wonder_mail_2_1.c @@ -1,4 +1,5 @@ #include "global.h" +#include "code_802DE84.h" #include "constants/input.h" #include "constants/mailbox.h" #include "input.h" @@ -112,7 +113,6 @@ extern void sub_802CD38(void); extern void sub_802CDB8(void); extern void sub_802C928(void); extern void sub_802C9D8(void); -extern void sub_802DE84(unkStruct_802C39C *); extern void sub_802CBAC(void); s32 CountAcceptedJobs(void); diff --git a/src/wonder_mail_3.c b/src/wonder_mail_3.c index c0e6ee944..1f0ec5cd5 100644 --- a/src/wonder_mail_3.c +++ b/src/wonder_mail_3.c @@ -1,5 +1,6 @@ -#include "constants/mailbox.h" #include "global.h" +#include "constants/mailbox.h" +#include "code_802DE84.h" #include "common_strings.h" #include "constants/dungeon.h" #include "constants/input.h" @@ -110,7 +111,6 @@ ALIGNED(4) const u8 gUnknown_80E0108[] = _( ALIGNED(4) const u8 gUnknown_80E014C[] = "New Mail"; ALIGNED(4) const u8 gUnknown_80E0158[] = "Old Mail"; -static const u8 wonder_mail_3_fill[] = "pksdir0"; extern void sub_802D63C(void); extern void sub_802D5A4(void); @@ -138,7 +138,6 @@ extern u8 *sub_8096DD8(void); extern u8 sub_8096C08(u8 *); extern void DrawJobListMenu(void); extern void sub_803B35C(WonderMail *, unkStruct_802C39C*); -extern void sub_802DE84(unkStruct_802C39C *); extern void sub_802D73C(void); extern void sub_802C640(u32); extern void sub_802C4C8(u32, u32, u32); @@ -154,9 +153,7 @@ extern u8 gUnknown_80DFDBC[]; extern void sub_802CF5C(void); extern void sub_802CFD0(void); -extern void sub_802DF24(void); extern void SetJobListState(u32); -extern u32 sub_802DEE0(void); extern void ResetJobSlot(u8); u32 sub_802C598(u8 param_1); extern void sub_802C688(void); diff --git a/src/wonder_mail_3_mid.c b/src/wonder_mail_3_mid.c index 88217f742..f1887d970 100644 --- a/src/wonder_mail_3_mid.c +++ b/src/wonder_mail_3_mid.c @@ -1,4 +1,6 @@ #include "global.h" +#include "code_802DE84.h" +#include "code_802F204.h" #include "constants/input.h" #include "memory.h" #include "text1.h" @@ -101,15 +103,12 @@ extern void sub_802F004(); extern void sub_802F088(); extern void sub_802F108(void); extern void sub_803B35C(WonderMail*, unkStruct_802C39C *); -extern void sub_802DE84(unkStruct_802C39C *); extern void sub_802CDD4(u32); extern void sub_802CED8(u32); extern void sub_802CFD0(void); extern u8 sub_802CEBC(void); extern u32 sub_802CE5C(u32); extern void sub_802CF14(void); -extern u32 sub_802DEE0(void); -extern void sub_802DF24(void); extern void sub_802F6FC(void); extern void ProceedToNextRewardSceneState(void); extern void sub_802F300(void); diff --git a/src/wonder_mail_802DF88.c b/src/wonder_mail_802DF88.c deleted file mode 100644 index 6e90670f3..000000000 --- a/src/wonder_mail_802DF88.c +++ /dev/null @@ -1,368 +0,0 @@ -#include "global.h" -#include "exclusive_pokemon.h" -#include "memory.h" -#include "code_802C39C.h" -#include "wonder_mail.h" -#include "menu_input.h" -#include "text1.h" -#include "text2.h" -#include "code_80130A8.h" -#include "code_80118A4.h" -#include "code_80958E8_1.h" - -struct unkStruct_203B2FC -{ - // size: 0xA8 - /* 0x0 */ u32 state; - /* 0x4 */ u32 fallbackState; - unkStruct_802F204 unk8; - u8 jobSlotIndex; - WonderMail *jobInfo; - OpenedFile *faceFile; - u8 *faceData; - u16 unk40; - u16 unk42; - u8 unk44; - u8 unk45; - u8 unk46; - u8 fill47[0x48 - 0x47]; - UnkTextStruct2 unk48[4]; -}; -extern struct unkStruct_203B2FC *gUnknown_203B2FC; - - -struct unkStruct_203B300 -{ - // size: 0x7C - MenuInputStructSub unk0; - unkStruct_802C39C *mail; - u32 unk10; - UnkTextStruct2 *unk14; - UnkTextStruct2 unk18[4]; - u8 unk78[4]; -}; - -extern struct unkStruct_203B300 *gUnknown_203B300; -extern u8 gUnknown_202E5D8[]; -extern u8 gUnknown_202E1C8[]; -extern u8 gUnknown_202DE58[]; - -const UnkTextStruct2 gUnknown_80E016C = -{ - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - NULL -}; - -ALIGNED(4) const u8 gWonderMailClientThanksForRescuingMe[] = " Thank you for rescuing me!"; - -ALIGNED(4) const u8 gWonderMailClientThanksForRescuingThem[] = _( - " Thank you for rescuing\n" - "{COLOR_1 CYAN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}!"); - -ALIGNED(4) const u8 gWonderMailClientEscorted[] = _( - " Thank you for escorting me\n" - "to {COLOR_1 CYAN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}! "); - -ALIGNED(4) const u8 gWonderMailClientItemDelivered1[] = _( - " Thank you for delivering\n" - "the {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}!"); - -ALIGNED(4) const u8 gWonderMailClientItemDelivered2[] = _( - " Thank you for getting me\n" - "the {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}!"); - -static const u8 wonder_mail_802DF88_fill[] = "pksdir0"; - -const UnkTextStruct2 gUnknown_80E0248 = -{ - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - NULL -}; - -const u8 UnkData_80E0260[] = {0x01, 0x00, 0x12, 0x00}; - -const UnkTextStruct2 gUnknown_80E0264 = -{ - 0x00, 0x00, 0x00, 0x00, - 0x06, - 0x02, 0x02, - 0x1A, 0x10, - 0x10, 0x00, - UnkData_80E0260 -}; - -static const u8 wonder_mail_802DF88_fill1[] = "pksdir0"; - -extern void CreateRescueDescription(unkStruct_802C39C *); -extern void sub_802DC28(u32); -extern void sub_802F2C0(void); -extern void sub_802DC28(u32); -extern u32 sub_802F298(void); -extern void sub_802F204(unkStruct_802F204*, u32); -extern void sub_802DC40(void); -extern void sub_802DC9C(void); -extern void sub_8096AF8(u8 *, u32, u32); -extern void sub_8096EEC(void); -extern void sub_803C21C(WonderMail *, unkStruct_802F204*); -extern u32 sub_802C598(s32); -extern void sub_802C688(void); -extern void sub_8096C80(void); -extern void ResetJobSlot(u8); -extern u8 GetPelipperBoardSlotIndex(void); - -void sub_802DE44(void); -void sub_802DE60(void); -void sub_802DF6C(void); -void sub_802DF88(void); -void sub_802DF14(void); -void sub_802D1A0(u32); -u32 sub_802DEE0(void); -void sub_802DF24(void); - -bool8 sub_802DB28(u8 jobSlotIndex, u8 dungeon) -{ - char local_18 [8]; - - sub_8096AF8(local_18,jobSlotIndex,dungeon); - if (local_18[0] == '\0') { - return FALSE; - } - else { - ResetUnusedInputStruct(); - sub_800641C(NULL, TRUE, TRUE); - gUnknown_203B2FC = MemoryAlloc(sizeof(struct unkStruct_203B2FC),8); - gUnknown_203B2FC->jobSlotIndex = jobSlotIndex; - gUnknown_203B2FC->jobInfo = GetJobSlotInfo(jobSlotIndex); - sub_8096EEC(); - sub_803C21C(gUnknown_203B2FC->jobInfo,&gUnknown_203B2FC->unk8); - gUnknown_203B2FC->faceFile = GetDialogueSpriteDataPtr(gUnknown_203B2FC->jobInfo->clientSpecies); - gUnknown_203B2FC->faceData = NULL; - gUnknown_203B2FC->unk44 = 0; - gUnknown_203B2FC->unk45 = 0; - gUnknown_203B2FC->unk46 = 0; - gUnknown_203B2FC->unk40 = 2; - gUnknown_203B2FC->unk42 = 8; - if (gUnknown_203B2FC->faceFile != NULL) { - gUnknown_203B2FC->faceData = gUnknown_203B2FC->faceFile->data; - } - sub_802DC28(0); - return TRUE; - } -} - -u32 sub_802DBD4(void) -{ - switch(gUnknown_203B2FC->state) - { - case 7: - gUnknown_203B2FC->jobInfo->mailType = WONDER_MAIL_TYPE_OKD; - return 3; - case 6: - sub_802DE44(); - return 0; - default: - sub_802DE60(); - return 0; - } -} - -void sub_802DC00(void) -{ - if(gUnknown_203B2FC != NULL) - { - if(gUnknown_203B2FC->faceFile != NULL) - { - CloseFile(gUnknown_203B2FC->faceFile); - } - MemoryFree(gUnknown_203B2FC); - gUnknown_203B2FC = NULL; - } -} - -void sub_802DC28(u32 newState) -{ - gUnknown_203B2FC->state = newState; - sub_802DC40(); - sub_802DC9C(); -} - -void sub_802DC40(void) -{ - s32 index; - sub_8006518(gUnknown_203B2FC->unk48); - switch(gUnknown_203B2FC->state) - { - case 0: - case 7: - for(index = 0; index < 4; index++) - { - gUnknown_203B2FC->unk48[index] = gUnknown_80E016C; - } - break; - } - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2FC->unk48, TRUE, TRUE); -} - -void sub_802DC9C(void) -{ - char *speciesText; - s32 index; - - switch(gUnknown_203B2FC->state) { - case 0: - CopyYellowMonsterNametoBuffer(gUnknown_202E5D8,gUnknown_203B2FC->jobInfo->clientSpecies); - CopyYellowMonsterNametoBuffer(gUnknown_202E1C8,gUnknown_203B2FC->jobInfo->clientSpecies); - speciesText = GetMonSpecies(gUnknown_203B2FC->jobInfo->clientSpecies); - strcpy(gUnknown_202E1C8 + 0xfffffdd0,speciesText); - speciesText = GetMonSpecies(gUnknown_203B2FC->jobInfo->targetSpecies); - strcpy(gUnknown_202E1C8 + 0xfffffe20,speciesText); - UnlockExclusivePokemon(gUnknown_203B2FC->jobInfo->clientSpecies); - BufferItemName(gUnknown_202DE58,gUnknown_203B2FC->jobInfo->targetItem,NULL); - gUnknown_203B2FC->fallbackState = 6; - switch(gUnknown_203B2FC->jobInfo->missionType) { - case WONDER_MAIL_MISSION_TYPE_DELIVER_ITEM: - sub_802DC28(5); - break; - case WONDER_MAIL_MISSION_TYPE_FIND_ITEM: - sub_802DC28(4); - break; - case WONDER_MAIL_MISSION_TYPE_RESCUE_TARGET: - sub_802DC28(2); - UnlockExclusivePokemon(gUnknown_203B2FC->jobInfo->targetSpecies); - break; - case WONDER_MAIL_MISSION_TYPE_ESCORT_CLIENT: - sub_802DC28(3); - UnlockExclusivePokemon(gUnknown_203B2FC->jobInfo->targetSpecies); - break; - default: - case WONDER_MAIL_MISSION_TYPE_RESCUE_CLIENT: - sub_802DC28(1); - break; - } - break; - case 1: - sub_80141B4(gWonderMailClientThanksForRescuingMe,0,&gUnknown_203B2FC->faceFile,0x10d); - break; - case 2: - sub_80141B4(gWonderMailClientThanksForRescuingThem,0,&gUnknown_203B2FC->faceFile,0x10d); - break; - case 3: - sub_80141B4(gWonderMailClientEscorted,0,&gUnknown_203B2FC->faceFile,0x10d); - break; - case 5: - sub_80141B4(gWonderMailClientItemDelivered1,0,&gUnknown_203B2FC->faceFile,0x10d); - break; - case 4: - index = FindItemInInventory(gUnknown_203B2FC->jobInfo->targetItem); - if (index != -1) { - ShiftItemsDownFrom(index); - FillInventoryGaps(); - } - sub_80141B4(gWonderMailClientItemDelivered2,0,&gUnknown_203B2FC->faceFile,0x10d); - break; - case 6: - sub_802F204(&gUnknown_203B2FC->unk8,1); - break; - case 7: - default: - break; - } -} - -void sub_802DE44(void) -{ - switch(sub_802F298()) - { - case 2: - case 3: - sub_802F2C0(); - sub_802DC28(7); - break; - case 0: - case 1: - break; - } -} - -void sub_802DE60(void) -{ - s32 temp; - if(sub_80144A4(&temp) == 0) - { - sub_802DC28(gUnknown_203B2FC->fallbackState); - } -} - - - -// THIS IS A NEW FILE: - - - -u32 sub_802DE84(unkStruct_802C39C *mail) -{ - gUnknown_203B300 = MemoryAlloc(sizeof(struct unkStruct_203B300), 8); - gUnknown_203B300->mail = mail; - sub_801317C(&gUnknown_203B300->unk0); - gUnknown_203B300->unk10 = gUnknown_203B300->mail->unk0[0]; - gUnknown_203B300->unk14 = &gUnknown_203B300->unk18[gUnknown_203B300->unk10]; - sub_8006518(gUnknown_203B300->unk18); - gUnknown_203B300->unk18[gUnknown_203B300->unk10] = gUnknown_80E0264; - sub_802DF14(); - return 1; -} - -u32 sub_802DEE0(void) -{ - switch(sub_8012A64(&gUnknown_203B300->unk0, gUnknown_203B300->unk10)) - { - case 2: - PlayMenuSoundEffect(1); - return 2; - case 1: - PlayMenuSoundEffect(0); - return 3; - default: - return 0; - } -} - -void sub_802DF14(void) -{ - sub_802DF6C(); - sub_802DF88(); -} - -void sub_802DF24(void) -{ - if(gUnknown_203B300 != NULL) - { - gUnknown_203B300->unk18[gUnknown_203B300->unk10] = gUnknown_80E0248; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B300->unk18, TRUE, TRUE); - MemoryFree(gUnknown_203B300); - gUnknown_203B300 = NULL; - } -} - -void sub_802DF6C(void) -{ - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B300->unk18, TRUE, TRUE); -} - -void sub_802DF88(void) -{ - sub_80073B8(gUnknown_203B300->unk10); - CreateRescueDescription(gUnknown_203B300->mail); - sub_80073E0(gUnknown_203B300->unk10); -} diff --git a/sym_ewram2.txt b/sym_ewram2.txt index b2c6bd962..4373881d5 100644 --- a/sym_ewram2.txt +++ b/sym_ewram2.txt @@ -230,12 +230,8 @@ gUnknown_203B2F4: /* 203B2F4 (sub_802CDD4 - sub_802CFD0) */ gUnknown_203B2F8: /* 203B2F8 (sub_802D098 - sub_802DADC) */ .space 0x4 -gUnknown_203B2FC: /* 203B2FC (sub_802DB28 - sub_802DE60) */ - .space 0x4 - -gUnknown_203B300: /* 203B300 (sub_802DE84 - sub_802DF88) */ - .space 0x4 - +.include "src/code_802DB28.o" +.include "src/code_802DE84.o" .include "src/mailbox.o" .include "src/pelipper_board.o" From 3a40d3f089fc08812d67b1b25c04622ddd3ee520 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sat, 23 Sep 2023 17:10:40 -0400 Subject: [PATCH 41/47] Update ARG_VALUE_x --- charmap.txt | 3 +++ sym_ewram.txt | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/charmap.txt b/charmap.txt index 82bcb12a8..db3f9095a 100644 --- a/charmap.txt +++ b/charmap.txt @@ -265,6 +265,9 @@ ARG_MOVE_ITEM_0 = 24 69 30 @ $i0 ARG_MOVE_ITEM_1 = 24 69 31 @ $i1 ARG_VALUE_0 = 24 64 30 @ $d0 ARG_VALUE_1 = 24 64 31 @ $d1 +ARG_VALUE_2 = 24 64 32 @ $d2 +ARG_VALUE_3 = 24 64 33 @ $d3 +ARG_VALUE_4 = 24 64 34 @ $d4 ARG_POKEMON_0 = 24 6D 30 @ $m0 ARG_POKEMON_1 = 24 6D 31 @ $m1 ARG_POKEMON_2 = 24 6D 32 @ $m2 diff --git a/sym_ewram.txt b/sym_ewram.txt index 15abfdb35..2ce3fefcf 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -196,7 +196,8 @@ gUnknown_202DE28: /* 202DE28 (sub_8011C34 - sub_8011C40) */ .align 4 /* gUnknown_202DE30[0] seems to be the s32 value to insert in place of "$d0" (ARG_VALUE_0) in strings */ -/* gUnknown_202DE30[1] is used for "$d1" (ARG_VALUE_1). "$d2" is not in any strings so it may not exist */ +/* gUnknown_202DE30[1] through gUnknown_202DE30[4] are for "$d1" (ARG_VALUE_1) through "$d4" (ARG_VALUE_4) */ +/* No known occurences after those (in pmd red) */ gUnknown_202DE30: /* 202DE30 [used everywhere tbh] */ .space 0x28 /* Seems to be a general u8 buffer for text, mostly used with item names */ From 9e3106a6340722e51898dbd002cc08b567b6a9cd Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sat, 23 Sep 2023 18:50:18 -0400 Subject: [PATCH 42/47] Split+data pokemon_news --- include/code_80130A8.h | 1 + include/code_803B050.h | 4 + include/code_80958E8_1.h | 5 + include/code_8096AF8.h | 1 + include/mailbox_8095F8C.h | 10 + include/pokemon.h | 1 + include/pokemon_mail.h | 8 +- include/pokemon_news1.h | 26 ++ include/pokemon_news2.h | 26 ++ include/pokemon_news3.h | 27 ++ include/structs/str_text.h | 2 +- include/wonder_mail_802C10C.h | 28 ++ ld_script.txt | 11 +- src/code_80958E8.c | 2 +- src/code_80958E8_1.c | 1 - src/data/pokemon_news1.h | 22 ++ src/data/pokemon_news2.h | 23 ++ src/data/pokemon_news3.h | 21 + src/data/wonder_mail_802C10C.h | 21 + src/friend_area_action_menu.c | 1 - src/mailbox.c | 42 +- src/mailbox_8095F8C.c | 8 +- src/party_list_menu.c | 1 - src/pelipper_board.c | 21 +- src/pokemon_mail.c | 5 +- src/pokemon_news.c | 690 --------------------------------- src/pokemon_news1.c | 220 +++++++++++ src/pokemon_news2.c | 174 +++++++++ src/pokemon_news3.c | 238 ++++++++++++ src/wonder_mail_2.c | 2 - src/wonder_mail_2_1.c | 41 +- src/wonder_mail_2_mid.c | 317 --------------- src/wonder_mail_3.c | 4 +- src/wonder_mail_3_mid.c | 2 +- src/wonder_mail_4.c | 3 +- src/wonder_mail_802C10C.c | 228 +++++++++++ sym_ewram2.txt | 26 +- 37 files changed, 1126 insertions(+), 1137 deletions(-) create mode 100644 include/mailbox_8095F8C.h create mode 100644 include/pokemon_news1.h create mode 100644 include/pokemon_news2.h create mode 100644 include/pokemon_news3.h create mode 100644 include/wonder_mail_802C10C.h create mode 100644 src/data/pokemon_news1.h create mode 100644 src/data/pokemon_news2.h create mode 100644 src/data/pokemon_news3.h create mode 100644 src/data/wonder_mail_802C10C.h delete mode 100644 src/pokemon_news.c create mode 100644 src/pokemon_news1.c create mode 100644 src/pokemon_news2.c create mode 100644 src/pokemon_news3.c delete mode 100644 src/wonder_mail_2_mid.c create mode 100644 src/wonder_mail_802C10C.c diff --git a/include/code_80130A8.h b/include/code_80130A8.h index a38710fe5..8858a8921 100644 --- a/include/code_80130A8.h +++ b/include/code_80130A8.h @@ -6,6 +6,7 @@ #include "structs/str_text.h" // code_80130A8.s +extern void sub_8013E54(void); extern void sub_8013F84(void); extern void sub_80140B4(UnkTextStruct2 *); extern void sub_80140DC(void); diff --git a/include/code_803B050.h b/include/code_803B050.h index af702c5c8..15575393f 100644 --- a/include/code_803B050.h +++ b/include/code_803B050.h @@ -21,7 +21,11 @@ typedef struct unkStruct_80E9F8C } unkStruct_80E9F8C; void CreateRescueDescription(unkStruct_802C39C *); +void CreateRescueTitle(unkStruct_802C39C *); void sub_803B6B0(s32 x, s32 y, u8 index, u32); +// code_803B050.s +extern void sub_803B35C(WonderMail *, unkStruct_802C39C *); + #endif // GUARD_CODE_803B050_H \ No newline at end of file diff --git a/include/code_80958E8_1.h b/include/code_80958E8_1.h index 96088fb95..22b4b644d 100644 --- a/include/code_80958E8_1.h +++ b/include/code_80958E8_1.h @@ -13,7 +13,12 @@ struct unkStruct_8096AF8 s32 CountJobsinDungeon(u8 dungeon); WonderMail *GetJobSlotInfo(u8 index); +bool8 IsMailinJobSlot(WonderMail *mail); void sub_8096AF8(struct unkStruct_8096AF8 *, u8 slotIndex, u8 dungeon); +// code_80958E8_1.s +extern WonderMail *GetPelipperBoardSlotInfo(u8); +extern bool8 IsPelipperBoardSlotEmpty(u8); + #endif // GUARD_CODE_80958E8_1_H \ No newline at end of file diff --git a/include/code_8096AF8.h b/include/code_8096AF8.h index b31155773..8397553f5 100644 --- a/include/code_8096AF8.h +++ b/include/code_8096AF8.h @@ -2,6 +2,7 @@ #define GUARD_CODE_8096AF8_H // code_8096AF8.s +extern u8 CheckPKMNNewsSlot(u8); extern bool8 sub_8096E2C(void); extern void sub_8096EEC(void); diff --git a/include/mailbox_8095F8C.h b/include/mailbox_8095F8C.h new file mode 100644 index 000000000..2f692e9f8 --- /dev/null +++ b/include/mailbox_8095F8C.h @@ -0,0 +1,10 @@ +#ifndef GUARD_MAILBOX_8095F8C_H +#define GUARD_MAILBOX_8095F8C_H + +#include "wonder_mail.h" + +WonderMail *GetMailboxSlotInfo(u8 index); +bool8 IsMailSlotEmpty(u8 index); +void ResetMailboxSlot(u8 index); + +#endif // GUARD_MAILBOX_8095F8C_H \ No newline at end of file diff --git a/include/pokemon.h b/include/pokemon.h index eee2502e5..d4d00d795 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -91,6 +91,7 @@ s32 sub_808E218(unkStruct_808E218_arg *, PokemonStruct1 *pokemon); extern PokemonStruct1 *GetPlayerPokemonStruct(void); extern void sub_808CFD0(u8 *, s16, u8 *, u8, u32 *, u16 *); extern u32 sub_808D1DC(u8 *); +extern PokemonStruct1 *sub_808D3BC(void); extern PokemonStruct1 *sub_808D3F8(void); extern s32 sub_808D544(u32); extern s32 sub_808D580(s32 *); diff --git a/include/pokemon_mail.h b/include/pokemon_mail.h index 600db740e..8af868d76 100644 --- a/include/pokemon_mail.h +++ b/include/pokemon_mail.h @@ -3,13 +3,13 @@ struct PokemonMail { - const char *headline; - const char *text; + const u8 *headline; + const u8 *text; }; #define NUM_POKEMON_MAIL 56 -const char *GetPokemonMailHeadline(u8 index); -const char *GetPokemonMailText(u8 index); +const u8 *GetPokemonMailHeadline(u8 index); +const u8 *GetPokemonMailText(u8 index); #endif // POKEMON_MAIL_H diff --git a/include/pokemon_news1.h b/include/pokemon_news1.h new file mode 100644 index 000000000..c8c113db7 --- /dev/null +++ b/include/pokemon_news1.h @@ -0,0 +1,26 @@ +#ifndef GUARD_POKEMON_NEWS1_H +#define GUARD_POKEMON_NEWS1_H + +#include "constants/wonder_mail.h" +#include "input.h" +#include "structs/str_text.h" + +// size: 0xD4; +struct unkStruct_203B2CC +{ + /* 0x0 */ u8 receivedNewsletters[NUM_POKEMON_NEWS]; + /* 0x38 */ MenuInputStruct input; + u32 unk6C; + UnkTextStruct2 *unk70; + UnkTextStruct2 unk74[4]; +}; + +u8 GetPokemonNewsIndex(void); +bool8 HasNoPKMNNews(void); + +bool8 sub_802B640(u32, UnkTextStruct2_sub *, u32); +u32 sub_802B720(bool8); +void sub_802B7D0(bool8 cursorSprite); +void sub_802B81C(void); + +#endif // GUARD_POKEMON_NEWS1_H \ No newline at end of file diff --git a/include/pokemon_news2.h b/include/pokemon_news2.h new file mode 100644 index 000000000..6a02b054c --- /dev/null +++ b/include/pokemon_news2.h @@ -0,0 +1,26 @@ +#ifndef GUARD_POKEMON_NEWS2_H +#define GUARD_POKEMON_NEWS2_H + +#include "input.h" +#include "structs/str_text.h" + +// size: 0x94 +struct unkStruct_203B2D4 +{ + /* 0x0 */ s32 state; + /* 0x4 */ u8 currMailIndex; + s32 unk8; + s32 unkC; + const u8 *unk10[4]; + u32 unk20; + u32 unk24; + UnkTextStruct2 unk28[4]; + MenuInputStructSub unk88; +}; + +bool8 sub_802B9FC(u8 mailIndex); +u32 sub_802BA8C(void); +void sub_802BACC(void); +void sub_802BC7C(void); + +#endif // GUARD_POKEMON_NEWS2_H \ No newline at end of file diff --git a/include/pokemon_news3.h b/include/pokemon_news3.h new file mode 100644 index 000000000..72a7a2222 --- /dev/null +++ b/include/pokemon_news3.h @@ -0,0 +1,27 @@ +#ifndef GUARD_POKEMON_NEWS3_H +#define GUARD_POKEMON_NEWS3_H + +#include "input.h" +#include "structs/str_text.h" + +// size: 0xA4 +struct unkStruct_203B2D8 +{ + u8 unk0[4]; + /* 0x4 */ MenuInputStruct input; + u32 unk38; + UnkTextStruct2 *unk3C; + UnkTextStruct2 unk40[4]; + u8 unkA0[4]; +}; + +void CreateMailMenu(void); +bool8 HasNoMailinMailbox(void); + +bool8 sub_802BD14(s32, UnkTextStruct2_sub *, u32); +u32 sub_802BDEC(bool8); +u8 sub_802BE74(void); +void sub_802BE94(bool8 cursorSprite); +void sub_802BEDC(void); + +#endif // GUARD_POKEMON_NEWS3_H \ No newline at end of file diff --git a/include/structs/str_text.h b/include/structs/str_text.h index d30e4756c..26353b193 100644 --- a/include/structs/str_text.h +++ b/include/structs/str_text.h @@ -55,7 +55,7 @@ typedef struct UnkTextStruct2 s16 unkE; s16 unk10; s16 unk12; - const u8 *unk14; + const u8 *unk14; // Pointer to 4 bytes which may be x-coord related } UnkTextStruct2; #endif // GUARD_STR_TEXT_H \ No newline at end of file diff --git a/include/wonder_mail_802C10C.h b/include/wonder_mail_802C10C.h new file mode 100644 index 000000000..538af7361 --- /dev/null +++ b/include/wonder_mail_802C10C.h @@ -0,0 +1,28 @@ +#ifndef GUARD_WONDER_MAIL_802C10C_H +#define GUARD_WONDER_MAIL_802C10C_H + +#include "constants/mailbox.h" +#include "input.h" +#include "structs/str_text.h" + +// size: 0xA8 +struct unkStruct_203B2E0 +{ + u8 pelipperBoardSlots[MAX_ACCEPTED_JOBS]; + /* 0x8 */ MenuInputStruct input; + s32 unk3C; + UnkTextStruct2 *unk40; + UnkTextStruct2 unk44[4]; + u8 unkA4[4]; +}; + +void DrawPelipperBoardJobMenu(void); +bool8 HasNoPelipperBoardJobs(void); + +bool8 sub_802C10C(s32, UnkTextStruct2_sub *, s32); +u32 sub_802C1E4(bool8); +u8 sub_802C26C(void); +void sub_802C28C(bool8 cursorSprite); +void sub_802C2D4(void); + +#endif // GUARD_WONDER_MAIL_802C10C_H \ No newline at end of file diff --git a/ld_script.txt b/ld_script.txt index ba39328a6..17e02cb36 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -136,8 +136,10 @@ SECTIONS { src/wonder_mail.o(.text); src/thank_you_wonder_mail.o(.text); src/wonder_mail_2.o(.text); - src/pokemon_news.o(.text); - src/wonder_mail_2_mid.o(.text); + src/pokemon_news1.o(.text); + src/pokemon_news2.o(.text); + src/pokemon_news3.o(.text); + src/wonder_mail_802C10C.o(.text); src/wonder_mail_2_1.o(.text); src/wonder_mail_3.o(.text); src/code_802DB28.o(.text); @@ -453,7 +455,10 @@ SECTIONS { src/wonder_mail.o(.rodata); src/thank_you_wonder_mail.o(.rodata); src/wonder_mail_2.o(.rodata); - src/pokemon_news.o(.rodata); + src/pokemon_news1.o(.rodata); + src/pokemon_news2.o(.rodata); + src/pokemon_news3.o(.rodata); + src/wonder_mail_802C10C.o(.rodata); src/wonder_mail_2_1.o(.rodata); src/wonder_mail_3.o(.rodata); src/code_802DB28.o(.rodata); diff --git a/src/code_80958E8.c b/src/code_80958E8.c index ac25ec345..a33c98421 100644 --- a/src/code_80958E8.c +++ b/src/code_80958E8.c @@ -10,11 +10,11 @@ #include "pokemon.h" #include "pokemon_3.h" #include "code_8094F88.h" +#include "mailbox_8095F8C.h" extern bool8 sub_809017C(DungeonLocation *); extern u8 sub_803C1D0(DungeonLocation *, u8); extern bool8 sub_803C0DC(s16); -extern void ResetMailboxSlot(u8); extern void ResetPelipperBoardSlot(u8); extern void ResetJobSlot(u8); extern bool8 ValidateWonderMail(WonderMail *); diff --git a/src/code_80958E8_1.c b/src/code_80958E8_1.c index 997fb1e25..c5125ad6b 100644 --- a/src/code_80958E8_1.c +++ b/src/code_80958E8_1.c @@ -17,7 +17,6 @@ extern void sub_8096C80(void); extern void sub_8096D24(void); extern void sub_80965F4(); extern void SortPelipperJobs(); -extern WonderMail *GetPelipperBoardSlotInfo(u8); u8 sub_8097318(s16 param_1); extern bool8 GenerateMailJobInfo(WonderMail *); diff --git a/src/data/pokemon_news1.h b/src/data/pokemon_news1.h new file mode 100644 index 000000000..6b0a78a77 --- /dev/null +++ b/src/data/pokemon_news1.h @@ -0,0 +1,22 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 sUnknown_80DFBD0 = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; + +static const u8 sUnknown_80DFBE8[] = {1, 0, 12, 0}; +static const UnkTextStruct2 sUnknown_80DFBEC = { + 0, 0, 0, 0, + 6, + 2, 2, + 24, 14, + 14, 0, + sUnknown_80DFBE8 +}; + +ALIGNED(4) static const u8 sNewsList[] = _("News List"); \ No newline at end of file diff --git a/src/data/pokemon_news2.h b/src/data/pokemon_news2.h new file mode 100644 index 000000000..14531203a --- /dev/null +++ b/src/data/pokemon_news2.h @@ -0,0 +1,23 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 sUnknown_80DFC18 = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; + +static const u8 sUnknown_80DFC30[] = {1, 0, 22, 0}; +static const UnkTextStruct2 sUnknown_80DFC34 = { + 0, 0, 0, 0, + 6, + 2, 2, + 26, 16, + 16, 0, + sUnknown_80DFC30 +}; + +ALIGNED(4) static const u8 sShe[] = _("She"); +ALIGNED(4) static const u8 sHe[] = _("He"); \ No newline at end of file diff --git a/src/data/pokemon_news3.h b/src/data/pokemon_news3.h new file mode 100644 index 000000000..037ceff99 --- /dev/null +++ b/src/data/pokemon_news3.h @@ -0,0 +1,21 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 sUnknown_80DFC5C = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; + +static const UnkTextStruct2 sUnknown_80DFC74 = { + 0, 0, 0, 0, + 6, + 2, 2, + 24, 14, + 14, 0, + NULL +}; + +ALIGNED(4) static const u8 sMailbox[] = _("Mailbox"); \ No newline at end of file diff --git a/src/data/wonder_mail_802C10C.h b/src/data/wonder_mail_802C10C.h new file mode 100644 index 000000000..df90236a3 --- /dev/null +++ b/src/data/wonder_mail_802C10C.h @@ -0,0 +1,21 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 sUnknown_80DFC9C = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; + +static const UnkTextStruct2 sUnknown_80DFCB4 = { + 0, 0, 0, 0, + 6, + 2, 2, + 24, 14, + 14, 0, + NULL +}; + +ALIGNED(4) static const u8 sBulletinBoard[] = _("Bulletin Board"); \ No newline at end of file diff --git a/src/friend_area_action_menu.c b/src/friend_area_action_menu.c index 044ef8e2c..768d43110 100644 --- a/src/friend_area_action_menu.c +++ b/src/friend_area_action_menu.c @@ -49,7 +49,6 @@ extern void SetFriendAreaActionMenuState(u32); extern void PlaySound(u32); extern void sub_808D31C(PokemonStruct1 *); -extern PokemonStruct1 *sub_808D3BC(void); extern u8 gUnknown_202DE58[]; extern bool8 sub_808D750(s16 index_); extern void sub_808ED00(void); diff --git a/src/mailbox.c b/src/mailbox.c index 05db7cb01..2a771bfb3 100644 --- a/src/mailbox.c +++ b/src/mailbox.c @@ -11,6 +11,12 @@ #include "menu_input.h" #include "code_80118A4.h" #include "wonder_mail_2_1.h" +#include "pokemon_news1.h" +#include "pokemon_news2.h" +#include "pokemon_news3.h" +#include "mailbox_8095F8C.h" +#include "code_803B050.h" +#include "code_80958E8_1.h" EWRAM_DATA_2 struct unkStruct_203B304 *gUnknown_203B304 = {0}; @@ -65,8 +71,6 @@ const u8 gMailAccepted[] = "Accepted"; const u8 gUnknown_80E0324[] = "/"; static const u8 mailbox_fill[] = "pksdir0"; -extern bool8 IsMailinJobSlot(WonderMail *mail); - void sub_802E578(void); void HandleMailActionMenu(void); void HandleMailboxMenu(void); @@ -80,32 +84,12 @@ void sub_802E7D0(void); extern void sub_802E088(u32); extern void CreateMailboxMenu(void); extern void CreateMailActionMenu(void); -extern void sub_802BD14(u32, u32, u32); -extern void sub_802BE94(u32); -extern void CreateMailMenu(void); extern void CreateMailAcceptedStatusBox(u32); -extern void sub_803B35C(WonderMail *, unkStruct_802C39C *); -extern void sub_802B640(u32, u32, u32); -extern void sub_802B7D0(u32); -extern void sub_802B9FC(u8); -extern u32 sub_802BA8C(void); -extern void sub_802BACC(void); -extern u8 GetPokemonNewsIndex(void); -extern void sub_802B81C(void); -extern u32 sub_802B720(u32); -extern WonderMail *GetMailboxSlotInfo(u8); -extern u8 HasNoMailinMailbox(void); -extern u32 sub_802BDEC(u32); extern void AcceptJob(WonderMail *); extern void sub_8096C80(void); extern void sub_8096D24(void); -extern void ResetMailboxSlot(u8); extern void ReceivePKMNNews(u8); extern void sub_8096078(void); -extern void sub_802BEDC(void); -extern u8 sub_802BE74(void); -extern u8 HasNoPelipperBoardJobs(void); -extern u8 HasNoPKMNNews(void); u32 sub_802DFB0(void) { @@ -213,10 +197,10 @@ void sub_802E1AC(void) sub_8012D60(&gUnknown_203B304->unk6C, gUnknown_203B304->menuItems, 0, gUnknown_203B304->unkFC, gUnknown_203B304->menuAction1, 2); break; case MAIL_MENU: - sub_802BD14(0, 0, 4); + sub_802BD14(0, NULL, 4); break; case MAIL_MENU_1: - sub_802BE94(1); + sub_802BE94(TRUE); break; case MAIL_ACTION_MENU: CreateMailMenu(); @@ -233,10 +217,10 @@ void sub_802E1AC(void) InitializeJobListMenu(0); break; case PKMN_NEWS_MENU: - sub_802B640(0, 0, 8); + sub_802B640(0, NULL, 8); break; case PKMN_NEWS_MENU_1: - sub_802B7D0(1); + sub_802B7D0(TRUE); break; case DISPLAY_SEL_PKMN_NEWS: sub_802B9FC(gUnknown_203B304->mailIndex); @@ -387,7 +371,7 @@ void sub_802E578(void) { WonderMail *mail; - switch(sub_802BDEC(1)) + switch(sub_802BDEC(TRUE)) { case 3: @@ -422,7 +406,7 @@ void HandleMailActionMenu(void) WonderMail *mail; - sub_802BDEC(0); + sub_802BDEC(FALSE); if(!sub_8012FD8(&gUnknown_203B304->unk6C)) { sub_8013114(&gUnknown_203B304->unk6C, &menuAction); @@ -517,7 +501,7 @@ void sub_802E758(void) void sub_802E774(void) { - switch(sub_802B720(1)) + switch(sub_802B720(TRUE)) { case 0: case 1: diff --git a/src/mailbox_8095F8C.c b/src/mailbox_8095F8C.c index 4f4996b81..395c568b0 100644 --- a/src/mailbox_8095F8C.c +++ b/src/mailbox_8095F8C.c @@ -1,12 +1,9 @@ #include "global.h" -#include "wonder_mail.h" #include "code_80958E8.h" +#include "mailbox_8095F8C.h" extern unkStruct_203B490 *gUnknown_203B490; -bool8 IsMailSlotEmpty(u8); -void ResetMailboxSlot(u8); - s32 CountFilledMailboxSlots(void) { s32 index; @@ -21,8 +18,7 @@ s32 CountFilledMailboxSlots(void) return counter; } -// Unused -bool8 sub_8095FB0(WonderMail *mail) +UNUSED static bool8 sub_8095FB0(WonderMail *mail) { s32 index; diff --git a/src/party_list_menu.c b/src/party_list_menu.c index 46bddca58..6408e0d9b 100644 --- a/src/party_list_menu.c +++ b/src/party_list_menu.c @@ -35,7 +35,6 @@ static EWRAM_DATA_2 unkStruct_203B2B8 *sUnknown_203B2B8 = {0}; extern u32 sub_8026F04(PokemonStruct1 *); bool8 CanTakePokemonHeldItem(PokemonStruct1 *r0); -extern PokemonStruct1 *sub_808D3BC(void); extern bool8 sub_808D750(s16 index_); extern void sub_808ED00(void); bool8 sub_8026E88(PokemonStruct1 *r0); diff --git a/src/pelipper_board.c b/src/pelipper_board.c index daa617f51..18a948af1 100644 --- a/src/pelipper_board.c +++ b/src/pelipper_board.c @@ -14,6 +14,9 @@ #include "pelipper_board.h" #include "code_80118A4.h" #include "wonder_mail_2_1.h" +#include "wonder_mail_802C10C.h" +#include "code_80958E8_1.h" +#include "code_803B050.h" EWRAM_DATA_2 struct unkStruct_203B308 *gPelipperBoard = {0}; @@ -74,23 +77,13 @@ extern void sub_802EA58(void); extern void CreatePelipperBoardMenu(void); extern void sub_802EC10(void); -extern void sub_802C10C(u32, u32, u32); -extern void sub_802C28C(u32); -extern void DrawPelipperBoardJobMenu(void); extern void CreatePelipperAcceptedStatusBox(u32); -extern void sub_803B35C(WonderMail *, unkStruct_802C39C *); -extern WonderMail *GetPelipperBoardSlotInfo(u8); -extern u8 HasNoPelipperBoardJobs(void); extern void sub_8096C80(void); extern void sub_8096D24(void); extern void AcceptJob(WonderMail*); extern void ResetPelipperBoardSlot(u8); extern void sub_80965F4(void); -extern void sub_802C2D4(void); -extern u32 sub_802C1E4(u32); -extern u8 sub_802C26C(void); -extern bool8 IsMailinJobSlot(WonderMail *mail); void SetPelipperBoardState(u32); @@ -199,10 +192,10 @@ void sub_802EA58(void) sub_8012D60(&gPelipperBoard->unk6C, gPelipperBoard->menuItems, 0, gPelipperBoard->unkFC, gPelipperBoard->menuAction1, 2); break; case 4: - sub_802C10C(0, 0, 4); + sub_802C10C(0, NULL, 4); break; case 5: - sub_802C28C(1); + sub_802C28C(TRUE); break; case 6: DrawPelipperBoardJobMenu(); @@ -333,7 +326,7 @@ void sub_802ECB4(void) void sub_802ED4C(void) { - switch(sub_802C1E4(1)) + switch(sub_802C1E4(TRUE)) { case 3: gPelipperBoard->jobIndex = sub_802C26C(); @@ -358,7 +351,7 @@ void sub_802EDBC(void) WonderMail *mail; s32 menuAction = 0; - sub_802C1E4(0); + sub_802C1E4(FALSE); if(!sub_8012FD8(&gPelipperBoard->unk6C)) { sub_8013114(&gPelipperBoard->unk6C, &menuAction); diff --git a/src/pokemon_mail.c b/src/pokemon_mail.c index a3d8fae05..c6caa28ee 100644 --- a/src/pokemon_mail.c +++ b/src/pokemon_mail.c @@ -1,13 +1,14 @@ #include "global.h" #include "pokemon_mail.h" + #include "data/pokemon_mail.h" -const char *GetPokemonMailHeadline(u8 index) +const u8 *GetPokemonMailHeadline(u8 index) { return gPokemonMail[index].headline; } -const char *GetPokemonMailText(u8 index) +const u8 *GetPokemonMailText(u8 index) { return gPokemonMail[index].text; } diff --git a/src/pokemon_news.c b/src/pokemon_news.c deleted file mode 100644 index f7c75e478..000000000 --- a/src/pokemon_news.c +++ /dev/null @@ -1,690 +0,0 @@ -#include "constants/input.h" -#include "global.h" -#include "pokemon.h" -#include "pokemon_mail.h" -#include "pokemon_mid.h" -#include "memory.h" -#include "text1.h" -#include "text2.h" -#include "save.h" -#include "menu_input.h" -#include "code_80130A8.h" -#include "code_80118A4.h" -#include "code_803B050.h" -#include "game_options.h" - -struct unkStruct_203B2CC -{ - // size: 0xD4; - u8 receivedNewsletters[NUM_POKEMON_NEWS]; - MenuInputStruct input; - u32 unk6C; - UnkTextStruct2 *unk70; - UnkTextStruct2 unk74[4]; -}; -extern struct unkStruct_203B2CC *gUnknown_203B2CC; - -struct unkStruct_203B2D4 -{ - // size: 0x94 - /* 0x0 */ s32 state; - /* 0x4 */ u8 currMailIndex; - s32 unk8; - s32 unkC; - const u8 *unk10[4]; - u32 unk20; - u32 unk24; - UnkTextStruct2 unk28[4]; - MenuInputStructSub unk88; -}; -extern struct unkStruct_203B2D4 *gUnknown_203B2D4; - -struct unkStruct_203B2D8 -{ - // size: 0xA4 - u8 unk0[4]; - MenuInputStruct input; - u32 unk38; - UnkTextStruct2 *unk3C; - UnkTextStruct2 unk40[4]; - u8 unkA0[4]; -}; -extern struct unkStruct_203B2D8 *gUnknown_203B2D8; - -const UnkTextStruct2 gUnknown_80DFBD0 = -{ - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - NULL -}; - -const u8 gUnknown_80DFBE8[] = { 0x01, 0x00, 0x0C, 0x00 }; - -const UnkTextStruct2 gUnknown_80DFBEC = -{ - 0x00, 0x00, 0x00, 0x00, - 0x06, - 0x02, 0x02, - 0x18, 0x0E, - 0x0E, 0x00, - gUnknown_80DFBE8 -}; - -ALIGNED(4) const u8 gUnknown_80DFC04[] = "News List"; -ALIGNED(4) static const char wonder_mail_2_fill1[] = "pksdir0"; - -const UnkTextStruct2 gUnknown_80DFC18 = -{ - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - NULL -}; - -const u8 gUnkData_80DFC30[] = { 0x01, 0x00, 0x16, 0x00 }; - -const UnkTextStruct2 gUnknown_80DFC34 = -{ - 0x00, 0x00, 0x00, 0x00, - 0x06, - 0x02, 0x02, - 0x1A, 0x10, - 0x10, 0x00, - gUnkData_80DFC30 -}; - -ALIGNED(4) const u8 gUnknown_80DFC4C[] = "She"; -ALIGNED(4) const u8 gUnknown_80DFC50[] = "He"; -ALIGNED(4) static const char wonder_mail_2_fill2[] = "pksdir0"; - -const UnkTextStruct2 gUnknown_80DFC5C = -{ - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - NULL -}; - -const UnkTextStruct2 gUnknown_80DFC74 = -{ - 0x00, 0x00, 0x00, 0x00, - 0x06, - 0x02, 0x02, - 0x18, 0x0E, - 0x0E, 0x00, - NULL -}; - -ALIGNED(4) const u8 gMailboxText[] = "Mailbox"; -ALIGNED(4) static const char wonder_mail_2_fill3[] = "pksdir0"; - -const UnkTextStruct2 gUnknown_80DFC9C = -{ - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - NULL -}; - -const UnkTextStruct2 gUnknown_80DFCB4 = -{ - 0x00, 0x00, 0x00, 0x00, - 0x06, - 0x02, 0x02, - 0x18, 0x0E, - 0x0E, 0x00, - NULL -}; - -ALIGNED(4) const u8 gBulletinBoardText[] = "Bulletin Board"; -ALIGNED(4) static const char wonder_mail_2_fill4[] = "pksdir0"; - -extern u8 HasNoPKMNNews(void); -extern u8 CheckPKMNNewsSlot(u8 r0); -extern u16 gUnknown_203B2D0; -extern u16 gUnknown_203B2D2; -extern u16 gUnknown_203B2DC; -extern s32 GetNumPKMNNews(void); -extern void sub_802B880(void); -extern void CreatePKMNNewsMenu(void); -extern void sub_802BCC4(void); -extern void sub_802BB14(u32); -extern u8 HasNoMailinMailbox(void); -extern void sub_802BF30(void); -extern void CreateMailMenu(void); -extern s32 CountEmptyMailSlots(void); -void sub_802BB28(void); -extern void sub_802BB98(void); -extern void sub_802BC08(void); -extern void sub_802BB28(void); -extern void sub_8013E54(void); -extern char gUnknown_202E5D8[0x50]; -extern char gAvailablePokemonNames[0x50]; -extern void sub_802BC7C(void); -extern PokemonStruct1 *sub_808D3BC(void); - -u32 sub_802B640(u32 r0, UnkTextStruct2_sub *r1, u32 r2) -{ - if (HasNoPKMNNews()) - return 0; - - if (gUnknown_203B2CC == NULL) - gUnknown_203B2CC = MemoryAlloc(sizeof(struct unkStruct_203B2CC), 8); - - gUnknown_203B2CC->unk6C = r0; - gUnknown_203B2CC->unk70 = &gUnknown_203B2CC->unk74[r0]; - - sub_8006518(gUnknown_203B2CC->unk74); - - gUnknown_203B2CC->unk74[gUnknown_203B2CC->unk6C] = gUnknown_80DFBEC; - - if (r1 != NULL) - gUnknown_203B2CC->unk74[gUnknown_203B2CC->unk6C].unk8 = *r1; - - sub_8012D08(gUnknown_203B2CC->unk70, r2); - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2CC->unk74, TRUE, TRUE); - - sub_8013818(&gUnknown_203B2CC->input, GetNumPKMNNews(), r2, r0); - - gUnknown_203B2CC->input.menuIndex = gUnknown_203B2D0; - gUnknown_203B2CC->input.unk1E = gUnknown_203B2D2; - - sub_8013984(&gUnknown_203B2CC->input); - sub_802B880(); - CreatePKMNNewsMenu(); - - return 1; -} - -u32 sub_802B720(u8 r0) -{ - if (r0 == 0) { - sub_8013660(&gUnknown_203B2CC->input); - return 0; - } - - switch (GetKeyPress(&gUnknown_203B2CC->input)) - { - case INPUT_B_BUTTON: - PlayMenuSoundEffect(1); - return 2; - case INPUT_A_BUTTON: - PlayMenuSoundEffect(0); - return 3; - case INPUT_START_BUTTON: - PlayMenuSoundEffect(4); - return 4; - } - - if (sub_80138B8(&gUnknown_203B2CC->input, 1) != 0) - { - sub_802B880(); - CreatePKMNNewsMenu(); - return 1; - } - else - return 0; -} - -u8 GetPokemonNewsIndex(void) -{ - return gUnknown_203B2CC->receivedNewsletters[(gUnknown_203B2CC->input.unk1E * gUnknown_203B2CC->input.unk1C) + gUnknown_203B2CC->input.menuIndex]; -} - -void sub_802B7D0(u8 r0) -{ - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2CC->unk74, FALSE, FALSE); - - gUnknown_203B2CC->input.unk22 = GetNumPKMNNews(); - sub_8013984(&gUnknown_203B2CC->input); - sub_802B880(); - CreatePKMNNewsMenu(); - - if (r0 != 0) - AddMenuCursorSprite(&gUnknown_203B2CC->input); -} - -void sub_802B81C(void) -{ - if (gUnknown_203B2CC != NULL) { - gUnknown_203B2D0 = gUnknown_203B2CC->input.menuIndex; - - gUnknown_203B2D2 = gUnknown_203B2CC->input.unk1E; - - gUnknown_203B2CC->unk74[gUnknown_203B2CC->unk6C] = gUnknown_80DFBD0; - - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2CC->unk74, TRUE, TRUE); - - MemoryFree(gUnknown_203B2CC); - gUnknown_203B2CC = NULL; - } -} - -NAKED // sub_80095E4 memes -void sub_802B880(void) -{ - asm_unified( - "\tpush {r4,lr}\n" - "\tldr r4, _0802B8D0\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x52\n" - "\tmovs r1, 0\n" - "\tldrsh r0, [r0, r1]\n" - "\tmovs r1, 0xC\n" - "\tbl sub_80095E4\n" - "\tadds r0, 0x2\n" - "\tlsls r0, 16\n" - "\tldr r2, [r4]\n" - "\tldr r3, [r2, 0x6C]\n" - "\tlsls r1, r3, 1\n" - "\tadds r1, r3\n" - "\tlsls r1, 3\n" - "\tadds r1, r2, r1\n" - "\tadds r1, 0x82\n" - "\tasrs r3, r0, 16\n" - "\tlsrs r0, 16\n" - "\tstrh r0, [r1]\n" - "\tldr r1, [r2, 0x6C]\n" - "\tlsls r0, r1, 1\n" - "\tadds r0, r1\n" - "\tlsls r0, 3\n" - "\tadds r2, r0\n" - "\tadds r3, 0x2\n" - "\tadds r2, 0x84\n" - "\tstrh r3, [r2]\n" - "\tbl ResetUnusedInputStruct\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x74\n" - "\tmovs r1, 0x1\n" - "\tmovs r2, 0x1\n" - "\tbl sub_800641C\n" - "\tpop {r4}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" -"\t_0802B8D0: .4byte gUnknown_203B2CC"); -} - -void CreatePKMNNewsMenu(void) -{ - s32 index; - s32 y; - s32 new_index; - u8 mailIndex; - - sub_8008C54(gUnknown_203B2CC->unk6C); - sub_80073B8(gUnknown_203B2CC->unk6C); - xxx_call_draw_string(0xA, 0, gUnknown_80DFC04, gUnknown_203B2CC->unk6C, 0); - sub_8012BC4(((gUnknown_80DFBE8[2] << 3) + 4), 0, gUnknown_203B2CC->input.unk1E + 1, 2, 7, gUnknown_203B2CC->unk6C); - - for (index = 0; index < gUnknown_203B2CC->input.unk1A; index++) { - y = sub_8013800(&gUnknown_203B2CC->input, index); - new_index = (gUnknown_203B2CC->input.unk1E * gUnknown_203B2CC->input.unk1C) + index; - mailIndex = gUnknown_203B2CC->receivedNewsletters[new_index]; - sub_803B6B0(0xA, y, 6, gUnknown_203B2CC->unk6C); - sub_802BC7C(); - xxx_format_and_draw(0x15, y, GetPokemonMailHeadline(mailIndex), gUnknown_203B2CC->unk6C, 0); - } - - sub_80073E0(gUnknown_203B2CC->unk6C); -} - -s32 GetNumPKMNNews(void) -{ - s32 index; - s32 newsCount; - - newsCount = 0; - - for (index = 0; index < NUM_POKEMON_NEWS; index++) { - if (CheckPKMNNewsSlot(index)) { - gUnknown_203B2CC->receivedNewsletters[newsCount] = index; - newsCount++; - } - } - - return newsCount; -} - -bool8 HasNoPKMNNews(void) -{ - s32 index; - - for (index = 0; index < NUM_POKEMON_NEWS; index++) { - if (CheckPKMNNewsSlot(index)) - return FALSE; - } - - return TRUE; -} - - - - - - - - -// THIS IS A NEW FILE - -u32 sub_802B9FC(u8 mailIndex) -{ - gUnknown_203B2D4 = MemoryAlloc(sizeof(struct unkStruct_203B2D4), 8); - gUnknown_203B2D4->currMailIndex = mailIndex; - sub_801317C(&gUnknown_203B2D4->unk88); - gUnknown_203B2D4->unk24 = 0; - gUnknown_203B2D4->unk28[0] = gUnknown_80DFC34; - gUnknown_203B2D4->unk28[1] = gUnknown_80DFC18; - gUnknown_203B2D4->unk28[2] = gUnknown_80DFC18; - gUnknown_203B2D4->unk28[3] = gUnknown_80DFC18; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2D4->unk28, TRUE, TRUE); - gUnknown_203B2D4->unk8 = 0; - sub_802BCC4(); - sub_802BC7C(); - sub_802BB14(0); - return 1; -} - -u32 sub_802BA8C(void) -{ - switch (gUnknown_203B2D4->state) { - case 0: - sub_802BB98(); - break; - case 1: - sub_802BC08(); - break; - case 3: - return 3; - case 2: - default: - return 2; - - } - return 0; -} - -void sub_802BACC(void) -{ - if (gUnknown_203B2D4 != NULL) { - gUnknown_203B2D4->unk28[gUnknown_203B2D4->unk24] = gUnknown_80DFC18; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2D4->unk28, TRUE, TRUE); - MemoryFree(gUnknown_203B2D4); - gUnknown_203B2D4 = NULL; - } -} - -void sub_802BB14(u32 newState) -{ - gUnknown_203B2D4->state = newState; - sub_802BB28(); -} - -void sub_802BB28(void) -{ - switch (gUnknown_203B2D4->state) { - case 0: - case 1: - sub_8008C54(gUnknown_203B2D4->unk24); - sub_80073B8(gUnknown_203B2D4->unk24); - xxx_format_and_draw(0xA, 0, GetPokemonMailHeadline(gUnknown_203B2D4->currMailIndex), gUnknown_203B2D4->unk24, 0); - xxx_format_and_draw(0x6, 0x14, gUnknown_203B2D4->unk10[gUnknown_203B2D4->unk8], gUnknown_203B2D4->unk24, 0); - sub_80073E0(gUnknown_203B2D4->unk24); - gUnknown_203B2D4->unk8++; - break; - case 2: - case 3: - break; - } -} - -void sub_802BB98(void) -{ - if (gUnknown_203B2D4->unkC != 0) { - if (gUnknown_203B2D4->unk20 & 8) - sub_8013E54(); - gUnknown_203B2D4->unk20++; - } - - switch (sub_8012A64(&gUnknown_203B2D4->unk88, gUnknown_203B2D4->unk24)) { - case 1: - PlayMenuSoundEffect(0); - if (gUnknown_203B2D4->unkC != 0) - sub_802BB14(1); - else - sub_802BB14(3); - break; - case 2: - PlayMenuSoundEffect(1); - sub_802BB14(2); - break; - } -} - -void sub_802BC08(void) -{ - if (gUnknown_203B2D4->unk8 < gUnknown_203B2D4->unkC) { - if (gUnknown_203B2D4->unk20 & 8) - sub_8013E54(); - gUnknown_203B2D4->unk20++; - } - - switch (sub_8012A64(&gUnknown_203B2D4->unk88, gUnknown_203B2D4->unk24)) { - case 1: - PlayMenuSoundEffect(0); - if (gUnknown_203B2D4->unk8 < gUnknown_203B2D4->unkC) - sub_802BB14(1); - else - sub_802BB14(3); - break; - case 2: - PlayMenuSoundEffect(1); - sub_802BB14(2); - break; - } -} - -void sub_802BC7C(void) -{ - PrintPokeNameToBuffer(gAvailablePokemonNames, sub_808D3BC()); - if (gGameOptionsRef->playerGender == FEMALE) - strcpy(gAvailablePokemonNames + 0x50, gUnknown_80DFC4C); // She - else - strcpy(gAvailablePokemonNames + 0x50, gUnknown_80DFC50); // He -} - -void sub_802BCC4(void) -{ - const char *mailTextPtr; - - mailTextPtr = GetPokemonMailText(gUnknown_203B2D4->currMailIndex); - gUnknown_203B2D4->unkC = 0; - gUnknown_203B2D4->unk10[0] = mailTextPtr; - - // Count all the {EXTRA_MSG}'s - while (*mailTextPtr != '\0') { - if (*mailTextPtr == '#') { - if ((mailTextPtr[1] == 'P') || (mailTextPtr[1] == 'p')) { - gUnknown_203B2D4->unkC++; - gUnknown_203B2D4->unk10[gUnknown_203B2D4->unkC] = mailTextPtr + 2; - } - mailTextPtr += 2; - } - else { - mailTextPtr++; - } - } -} - - - - - -// THIS IS A NEW FILE: - - - - - - -u32 sub_802BD14(s32 param_1, UnkTextStruct2_sub *param_2, u32 param_3) -{ - if (HasNoMailinMailbox()) - return 0; - - if (gUnknown_203B2D8 == NULL) - gUnknown_203B2D8 = MemoryAlloc(sizeof(struct unkStruct_203B2D8), 8); - - gUnknown_203B2D8->unk38 = param_1; - gUnknown_203B2D8->unk3C = &gUnknown_203B2D8->unk40[param_1]; - sub_8006518(gUnknown_203B2D8->unk40); - gUnknown_203B2D8->unk40[gUnknown_203B2D8->unk38] = gUnknown_80DFC74; - gUnknown_203B2D8->unk3C->unk14 = gUnknown_203B2D8->unkA0; - - if (param_2 != NULL) - gUnknown_203B2D8->unk40[gUnknown_203B2D8->unk38].unk8 = *param_2; - - sub_8012D34(gUnknown_203B2D8->unk3C,param_3); - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2D8->unk40, TRUE, TRUE); - sub_8013848(&gUnknown_203B2D8->input,CountEmptyMailSlots(),param_3,param_1); - gUnknown_203B2D8->input.menuIndex = gUnknown_203B2DC; - sub_8013984(&gUnknown_203B2D8->input); - sub_802BF30(); - CreateMailMenu(); - return 1; -} - -u32 sub_802BDEC(u8 r0) -{ - if (r0 == 0) { - sub_8013660(&gUnknown_203B2D8->input); - return 0; - } - - switch (GetKeyPress(&gUnknown_203B2D8->input)) { - case INPUT_B_BUTTON: - PlayMenuSoundEffect(1); - return 2; - case INPUT_A_BUTTON: - PlayMenuSoundEffect(0); - return 3; - case INPUT_START_BUTTON: - PlayMenuSoundEffect(4); - return 4; - default: - if (sub_80138B8(&gUnknown_203B2D8->input, 1) != 0) { - sub_802BF30(); - CreateMailMenu(); - return 1; - } - else - return 0; - } -} - -u8 sub_802BE74(void) -{ - return gUnknown_203B2D8->unk0[(gUnknown_203B2D8->input.unk1E * gUnknown_203B2D8->input.unk1C) + gUnknown_203B2D8->input.menuIndex]; -} - -void sub_802BE94(u8 r0) -{ - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2D8->unk40, FALSE, FALSE); - - gUnknown_203B2D8->input.unk22 = CountEmptyMailSlots(); - sub_8013984(&gUnknown_203B2D8->input); - sub_802BF30(); - CreateMailMenu(); - - if (r0 != 0) - AddMenuCursorSprite(&gUnknown_203B2D8->input); -} - -void sub_802BEDC(void) -{ - if (gUnknown_203B2D8 != NULL) { - gUnknown_203B2DC = gUnknown_203B2D8->input.menuIndex; - gUnknown_203B2D8->unk40[gUnknown_203B2D8->unk38] = gUnknown_80DFC5C; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2D8->unk40, TRUE, TRUE); - MemoryFree(gUnknown_203B2D8); - gUnknown_203B2D8 = NULL; - } -} - -NAKED -void sub_802BF30(void) -{ - asm_unified( - "\tpush {r4,lr}\n" - "\tldr r4, _0802BF9C\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0xA0\n" - "\tmovs r2, 0\n" - "\tmovs r1, 0x1\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0xA1\n" - "\tstrb r2, [r0]\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0xA2\n" - "\tmovs r1, 0xC\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0xA3\n" - "\tstrb r2, [r0]\n" - "\tldr r0, [r4]\n" - "\tmovs r1, 0x1E\n" - "\tldrsh r0, [r0, r1]\n" - "\tmovs r1, 0x18\n" - "\tbl sub_8009614\n" - "\tadds r0, 0x2\n" - "\tlsls r0, 16\n" - "\tldr r2, [r4]\n" - "\tldr r3, [r2, 0x38]\n" - "\tlsls r1, r3, 1\n" - "\tadds r1, r3\n" - "\tlsls r1, 3\n" - "\tadds r1, r2, r1\n" - "\tadds r1, 0x4E\n" - "\tasrs r3, r0, 16\n" - "\tlsrs r0, 16\n" - "\tstrh r0, [r1]\n" - "\tldr r1, [r2, 0x38]\n" - "\tlsls r0, r1, 1\n" - "\tadds r0, r1\n" - "\tlsls r0, 3\n" - "\tadds r2, r0\n" - "\tadds r3, 0x2\n" - "\tadds r2, 0x50\n" - "\tstrh r3, [r2]\n" - "\tbl ResetUnusedInputStruct\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x40\n" - "\tmovs r1, 0x1\n" - "\tmovs r2, 0x1\n" - "\tbl sub_800641C\n" - "\tpop {r4}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" -"_0802BF9C: .4byte gUnknown_203B2D8" - ); -} - diff --git a/src/pokemon_news1.c b/src/pokemon_news1.c new file mode 100644 index 000000000..7e1e548ca --- /dev/null +++ b/src/pokemon_news1.c @@ -0,0 +1,220 @@ +#include "global.h" +#include "code_80118A4.h" +#include "code_80130A8.h" +#include "code_803B050.h" +#include "code_8096AF8.h" +#include "constants/input.h" +#include "pokemon_mail.h" +#include "pokemon_news1.h" +#include "pokemon_news2.h" +#include "memory.h" +#include "menu_input.h" +#include "text1.h" +#include "text2.h" + +static EWRAM_DATA_2 struct unkStruct_203B2CC *sUnknown_203B2CC = {0}; +static EWRAM_DATA_2 u16 sUnknown_203B2D0 = {0}; +static EWRAM_DATA_2 u16 sUnknown_203B2D2 = {0}; + +#include "data/pokemon_news1.h" + +static void CreatePKMNNewsMenu(void); +static s32 GetNumPKMNNews(void); + +static void sub_802B880(void); + +bool8 sub_802B640(u32 a0, UnkTextStruct2_sub *a1, u32 a2) +{ + if (HasNoPKMNNews()) + return FALSE; + + if (sUnknown_203B2CC == NULL) + sUnknown_203B2CC = MemoryAlloc(sizeof(struct unkStruct_203B2CC), 8); + + sUnknown_203B2CC->unk6C = a0; + sUnknown_203B2CC->unk70 = &sUnknown_203B2CC->unk74[a0]; + + sub_8006518(sUnknown_203B2CC->unk74); + + sUnknown_203B2CC->unk74[sUnknown_203B2CC->unk6C] = sUnknown_80DFBEC; + + if (a1 != NULL) + sUnknown_203B2CC->unk74[sUnknown_203B2CC->unk6C].unk8 = *a1; + + sub_8012D08(sUnknown_203B2CC->unk70, a2); + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B2CC->unk74, TRUE, TRUE); + + sub_8013818(&sUnknown_203B2CC->input, GetNumPKMNNews(), a2, a0); + + sUnknown_203B2CC->input.menuIndex = sUnknown_203B2D0; + sUnknown_203B2CC->input.unk1E = sUnknown_203B2D2; + + sub_8013984(&sUnknown_203B2CC->input); + sub_802B880(); + CreatePKMNNewsMenu(); + + return TRUE; +} + +u32 sub_802B720(bool8 a0) +{ + if (!a0) { + sub_8013660(&sUnknown_203B2CC->input); + return 0; + } + + switch (GetKeyPress(&sUnknown_203B2CC->input)) { + case INPUT_B_BUTTON: + PlayMenuSoundEffect(1); + return 2; + case INPUT_A_BUTTON: + PlayMenuSoundEffect(0); + return 3; + case INPUT_START_BUTTON: + PlayMenuSoundEffect(4); + return 4; + } + + if (sub_80138B8(&sUnknown_203B2CC->input, 1)) { + sub_802B880(); + CreatePKMNNewsMenu(); + return 1; + } + return 0; +} + +u8 GetPokemonNewsIndex(void) +{ + return sUnknown_203B2CC->receivedNewsletters[(sUnknown_203B2CC->input.unk1E * sUnknown_203B2CC->input.unk1C) + sUnknown_203B2CC->input.menuIndex]; +} + +void sub_802B7D0(bool8 cursorSprite) +{ + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B2CC->unk74, FALSE, FALSE); + + sUnknown_203B2CC->input.unk22 = GetNumPKMNNews(); + sub_8013984(&sUnknown_203B2CC->input); + sub_802B880(); + CreatePKMNNewsMenu(); + + if (cursorSprite) + AddMenuCursorSprite(&sUnknown_203B2CC->input); +} + +void sub_802B81C(void) +{ + if (sUnknown_203B2CC != NULL) { + sUnknown_203B2D0 = sUnknown_203B2CC->input.menuIndex; + + sUnknown_203B2D2 = sUnknown_203B2CC->input.unk1E; + + sUnknown_203B2CC->unk74[sUnknown_203B2CC->unk6C] = sUnknown_80DFBD0; + + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B2CC->unk74, TRUE, TRUE); + + MemoryFree(sUnknown_203B2CC); + sUnknown_203B2CC = NULL; + } +} + +NAKED // sub_80095E4 memes +static void sub_802B880(void) +{ + asm_unified( + "\tpush {r4,lr}\n" + "\tldr r4, _0802B8D0\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x52\n" + "\tmovs r1, 0\n" + "\tldrsh r0, [r0, r1]\n" + "\tmovs r1, 0xC\n" + "\tbl sub_80095E4\n" + "\tadds r0, 0x2\n" + "\tlsls r0, 16\n" + "\tldr r2, [r4]\n" + "\tldr r3, [r2, 0x6C]\n" + "\tlsls r1, r3, 1\n" + "\tadds r1, r3\n" + "\tlsls r1, 3\n" + "\tadds r1, r2, r1\n" + "\tadds r1, 0x82\n" + "\tasrs r3, r0, 16\n" + "\tlsrs r0, 16\n" + "\tstrh r0, [r1]\n" + "\tldr r1, [r2, 0x6C]\n" + "\tlsls r0, r1, 1\n" + "\tadds r0, r1\n" + "\tlsls r0, 3\n" + "\tadds r2, r0\n" + "\tadds r3, 0x2\n" + "\tadds r2, 0x84\n" + "\tstrh r3, [r2]\n" + "\tbl ResetUnusedInputStruct\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x74\n" + "\tmovs r1, 0x1\n" + "\tmovs r2, 0x1\n" + "\tbl sub_800641C\n" + "\tpop {r4}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" +"\t_0802B8D0: .4byte sUnknown_203B2CC"); +} + +static void CreatePKMNNewsMenu(void) +{ + s32 index; + s32 y; + s32 new_index; + u8 mailIndex; + + sub_8008C54(sUnknown_203B2CC->unk6C); + sub_80073B8(sUnknown_203B2CC->unk6C); + xxx_call_draw_string(10, 0, sNewsList, sUnknown_203B2CC->unk6C, 0); + + sub_8012BC4((sUnknown_80DFBE8[2] * 8) + 4, 0, sUnknown_203B2CC->input.unk1E + 1, 2, 7, sUnknown_203B2CC->unk6C); + + for (index = 0; index < sUnknown_203B2CC->input.unk1A; index++) { + y = sub_8013800(&sUnknown_203B2CC->input, index); + new_index = (sUnknown_203B2CC->input.unk1E * sUnknown_203B2CC->input.unk1C) + index; + mailIndex = sUnknown_203B2CC->receivedNewsletters[new_index]; + sub_803B6B0(10, y, 6, sUnknown_203B2CC->unk6C); + sub_802BC7C(); + xxx_format_and_draw(21, y, GetPokemonMailHeadline(mailIndex), sUnknown_203B2CC->unk6C, 0); + } + + sub_80073E0(sUnknown_203B2CC->unk6C); +} + +static s32 GetNumPKMNNews(void) +{ + s32 i; + s32 newsCount; + + newsCount = 0; + + for (i = 0; i < NUM_POKEMON_NEWS; i++) { + if (CheckPKMNNewsSlot(i)) { + sUnknown_203B2CC->receivedNewsletters[newsCount] = i; + newsCount++; + } + } + + return newsCount; +} + +bool8 HasNoPKMNNews(void) +{ + s32 i; + + for (i = 0; i < NUM_POKEMON_NEWS; i++) { + if (CheckPKMNNewsSlot(i)) + return FALSE; + } + + return TRUE; +} \ No newline at end of file diff --git a/src/pokemon_news2.c b/src/pokemon_news2.c new file mode 100644 index 000000000..e0c62ac93 --- /dev/null +++ b/src/pokemon_news2.c @@ -0,0 +1,174 @@ +#include "global.h" +#include "code_80118A4.h" +#include "code_80130A8.h" +#include "game_options.h" +#include "pokemon_mail.h" +#include "pokemon_mid.h" +#include "pokemon_news2.h" +#include "memory.h" +#include "menu_input.h" +#include "text1.h" +#include "text2.h" + +extern u8 gAvailablePokemonNames[]; // 202DF98 + +static EWRAM_DATA_2 struct unkStruct_203B2D4 *sUnknown_203B2D4 = {0}; + +#include "data/pokemon_news2.h" + +static void sub_802BB14(u32 newState); +static void sub_802BB28(void); +static void sub_802BB98(void); +static void sub_802BC08(void); +static void sub_802BCC4(void); + +bool8 sub_802B9FC(u8 mailIndex) +{ + sUnknown_203B2D4 = MemoryAlloc(sizeof(struct unkStruct_203B2D4), 8); + sUnknown_203B2D4->currMailIndex = mailIndex; + sub_801317C(&sUnknown_203B2D4->unk88); + sUnknown_203B2D4->unk24 = 0; + sUnknown_203B2D4->unk28[0] = sUnknown_80DFC34; + sUnknown_203B2D4->unk28[1] = sUnknown_80DFC18; + sUnknown_203B2D4->unk28[2] = sUnknown_80DFC18; + sUnknown_203B2D4->unk28[3] = sUnknown_80DFC18; + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B2D4->unk28, TRUE, TRUE); + sUnknown_203B2D4->unk8 = 0; + sub_802BCC4(); + sub_802BC7C(); + sub_802BB14(0); + return TRUE; +} + +u32 sub_802BA8C(void) +{ + switch (sUnknown_203B2D4->state) { + case 0: + sub_802BB98(); + break; + case 1: + sub_802BC08(); + break; + case 3: + return 3; + case 2: + default: + return 2; + + } + return 0; +} + +void sub_802BACC(void) +{ + if (sUnknown_203B2D4 != NULL) { + sUnknown_203B2D4->unk28[sUnknown_203B2D4->unk24] = sUnknown_80DFC18; + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B2D4->unk28, TRUE, TRUE); + MemoryFree(sUnknown_203B2D4); + sUnknown_203B2D4 = NULL; + } +} + +static void sub_802BB14(u32 newState) +{ + sUnknown_203B2D4->state = newState; + sub_802BB28(); +} + +static void sub_802BB28(void) +{ + switch (sUnknown_203B2D4->state) { + case 0: + case 1: + sub_8008C54(sUnknown_203B2D4->unk24); + sub_80073B8(sUnknown_203B2D4->unk24); + xxx_format_and_draw(10, 0, GetPokemonMailHeadline(sUnknown_203B2D4->currMailIndex), sUnknown_203B2D4->unk24, 0); + xxx_format_and_draw(6, 20, sUnknown_203B2D4->unk10[sUnknown_203B2D4->unk8], sUnknown_203B2D4->unk24, 0); + sub_80073E0(sUnknown_203B2D4->unk24); + sUnknown_203B2D4->unk8++; + break; + case 2: + case 3: + break; + } +} + +static void sub_802BB98(void) +{ + if (sUnknown_203B2D4->unkC != 0) { + if (sUnknown_203B2D4->unk20 & 8) + sub_8013E54(); + sUnknown_203B2D4->unk20++; + } + + switch (sub_8012A64(&sUnknown_203B2D4->unk88, sUnknown_203B2D4->unk24)) { + case 1: + PlayMenuSoundEffect(0); + if (sUnknown_203B2D4->unkC != 0) + sub_802BB14(1); + else + sub_802BB14(3); + break; + case 2: + PlayMenuSoundEffect(1); + sub_802BB14(2); + break; + } +} + +static void sub_802BC08(void) +{ + if (sUnknown_203B2D4->unk8 < sUnknown_203B2D4->unkC) { + if (sUnknown_203B2D4->unk20 & 8) + sub_8013E54(); + sUnknown_203B2D4->unk20++; + } + + switch (sub_8012A64(&sUnknown_203B2D4->unk88, sUnknown_203B2D4->unk24)) { + case 1: + PlayMenuSoundEffect(0); + if (sUnknown_203B2D4->unk8 < sUnknown_203B2D4->unkC) + sub_802BB14(1); + else + sub_802BB14(3); + break; + case 2: + PlayMenuSoundEffect(1); + sub_802BB14(2); + break; + } +} + +void sub_802BC7C(void) +{ + PrintPokeNameToBuffer(gAvailablePokemonNames, sub_808D3BC()); + + if (gGameOptionsRef->playerGender == FEMALE) + strcpy(gAvailablePokemonNames + 80, sShe); + else + strcpy(gAvailablePokemonNames + 80, sHe); +} + +static void sub_802BCC4(void) +{ + const u8 *mailTextPtr; + + mailTextPtr = GetPokemonMailText(sUnknown_203B2D4->currMailIndex); + sUnknown_203B2D4->unkC = 0; + sUnknown_203B2D4->unk10[0] = mailTextPtr; + + // Count all the {EXTRA_MSG}'s + while (*mailTextPtr != '\0') { + if (*mailTextPtr == '#') { + if (mailTextPtr[1] == 'P' || mailTextPtr[1] == 'p') { + sUnknown_203B2D4->unkC++; + sUnknown_203B2D4->unk10[sUnknown_203B2D4->unkC] = mailTextPtr + 2; + } + mailTextPtr += 2; + } + else + mailTextPtr++; + } +} \ No newline at end of file diff --git a/src/pokemon_news3.c b/src/pokemon_news3.c new file mode 100644 index 000000000..98072d7ee --- /dev/null +++ b/src/pokemon_news3.c @@ -0,0 +1,238 @@ +#include "global.h" +#include "code_800D090.h" +#include "code_80118A4.h" +#include "code_802C39C.h" +#include "code_803B050.h" +#include "code_80958E8_1.h" +#include "constants/input.h" +#include "constants/mailbox.h" +#include "mailbox_8095F8C.h" +#include "memory.h" +#include "menu_input.h" +#include "pokemon_mail.h" +#include "pokemon_mid.h" +#include "pokemon_news3.h" +#include "text1.h" +#include "text2.h" + +extern u8 gAvailablePokemonNames[]; // 202DF98 + +static EWRAM_DATA_2 struct unkStruct_203B2D8 *sUnknown_203B2D8 = {0}; +static EWRAM_DATA_2 u16 sUnknown_203B2DC = {0}; + +#include "data/pokemon_news3.h" + +static s32 CountEmptyMailSlots(void); + +static void sub_802BF30(void); + +bool8 sub_802BD14(s32 a0, UnkTextStruct2_sub *a1, u32 a2) +{ + if (HasNoMailinMailbox()) + return FALSE; + + if (sUnknown_203B2D8 == NULL) + sUnknown_203B2D8 = MemoryAlloc(sizeof(struct unkStruct_203B2D8), 8); + + sUnknown_203B2D8->unk38 = a0; + sUnknown_203B2D8->unk3C = &sUnknown_203B2D8->unk40[a0]; + sub_8006518(sUnknown_203B2D8->unk40); + sUnknown_203B2D8->unk40[sUnknown_203B2D8->unk38] = sUnknown_80DFC74; + sUnknown_203B2D8->unk3C->unk14 = sUnknown_203B2D8->unkA0; + + if (a1 != NULL) + sUnknown_203B2D8->unk40[sUnknown_203B2D8->unk38].unk8 = *a1; + + sub_8012D34(sUnknown_203B2D8->unk3C, a2); + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B2D8->unk40, TRUE, TRUE); + sub_8013848(&sUnknown_203B2D8->input, CountEmptyMailSlots(), a2, a0); + sUnknown_203B2D8->input.menuIndex = sUnknown_203B2DC; + sub_8013984(&sUnknown_203B2D8->input); + sub_802BF30(); + CreateMailMenu(); + return TRUE; +} + +u32 sub_802BDEC(bool8 a0) +{ + if (!a0) { + sub_8013660(&sUnknown_203B2D8->input); + return 0; + } + + switch (GetKeyPress(&sUnknown_203B2D8->input)) { + case INPUT_B_BUTTON: + PlayMenuSoundEffect(1); + return 2; + case INPUT_A_BUTTON: + PlayMenuSoundEffect(0); + return 3; + case INPUT_START_BUTTON: + PlayMenuSoundEffect(4); + return 4; + default: + if (sub_80138B8(&sUnknown_203B2D8->input, 1)) { + sub_802BF30(); + CreateMailMenu(); + return 1; + } + return 0; + } +} + +u8 sub_802BE74(void) +{ + return sUnknown_203B2D8->unk0[(sUnknown_203B2D8->input.unk1E * sUnknown_203B2D8->input.unk1C) + sUnknown_203B2D8->input.menuIndex]; +} + +void sub_802BE94(bool8 cursorSprite) +{ + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B2D8->unk40, FALSE, FALSE); + + sUnknown_203B2D8->input.unk22 = CountEmptyMailSlots(); + sub_8013984(&sUnknown_203B2D8->input); + sub_802BF30(); + CreateMailMenu(); + + if (cursorSprite) + AddMenuCursorSprite(&sUnknown_203B2D8->input); +} + +void sub_802BEDC(void) +{ + if (sUnknown_203B2D8 != NULL) { + sUnknown_203B2DC = sUnknown_203B2D8->input.menuIndex; + sUnknown_203B2D8->unk40[sUnknown_203B2D8->unk38] = sUnknown_80DFC5C; + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B2D8->unk40, TRUE, TRUE); + MemoryFree(sUnknown_203B2D8); + sUnknown_203B2D8 = NULL; + } +} + +NAKED +static void sub_802BF30(void) +{ + asm_unified( + "\tpush {r4,lr}\n" + "\tldr r4, _0802BF9C\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0xA0\n" + "\tmovs r2, 0\n" + "\tmovs r1, 0x1\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0xA1\n" + "\tstrb r2, [r0]\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0xA2\n" + "\tmovs r1, 0xC\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0xA3\n" + "\tstrb r2, [r0]\n" + "\tldr r0, [r4]\n" + "\tmovs r1, 0x1E\n" + "\tldrsh r0, [r0, r1]\n" + "\tmovs r1, 0x18\n" + "\tbl sub_8009614\n" + "\tadds r0, 0x2\n" + "\tlsls r0, 16\n" + "\tldr r2, [r4]\n" + "\tldr r3, [r2, 0x38]\n" + "\tlsls r1, r3, 1\n" + "\tadds r1, r3\n" + "\tlsls r1, 3\n" + "\tadds r1, r2, r1\n" + "\tadds r1, 0x4E\n" + "\tasrs r3, r0, 16\n" + "\tlsrs r0, 16\n" + "\tstrh r0, [r1]\n" + "\tldr r1, [r2, 0x38]\n" + "\tlsls r0, r1, 1\n" + "\tadds r0, r1\n" + "\tlsls r0, 3\n" + "\tadds r2, r0\n" + "\tadds r3, 0x2\n" + "\tadds r2, 0x50\n" + "\tstrh r3, [r2]\n" + "\tbl ResetUnusedInputStruct\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x40\n" + "\tmovs r1, 0x1\n" + "\tmovs r2, 0x1\n" + "\tbl sub_800641C\n" + "\tpop {r4}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" +"_0802BF9C: .4byte sUnknown_203B2D8" + ); +} + +void CreateMailMenu(void) +{ + WonderMail *mail; + s32 y; + s32 i; + unkStruct_802C39C local; + u8 buffer[128]; + + sub_8008C54(sUnknown_203B2D8->unk38); + sub_80073B8(sUnknown_203B2D8->unk38); + xxx_call_draw_string((sUnknown_203B2D8->input.unk1E * 8) + 10, 0, sMailbox, sUnknown_203B2D8->unk38, 0); + + for (i = 0; i < sUnknown_203B2D8->input.unk1A; i++) { + mail = GetMailboxSlotInfo(sUnknown_203B2D8->unk0[(sUnknown_203B2D8->input.unk1E * sUnknown_203B2D8->input.unk1C) + i]); + local.unk0[0] = sUnknown_203B2D8->unk38; + local.y = sub_8013800(&sUnknown_203B2D8->input, i); + + if (mail->mailType == MAIL_TYPE_UNK1) { + y = sub_8013800(&sUnknown_203B2D8->input, i); + sub_803B6B0(10, y, 6, sUnknown_203B2D8->unk38); + PrintPokeNameToBuffer(gAvailablePokemonNames, GetPlayerPokemonStruct()); + sprintfStatic(buffer, GetPokemonMailHeadline(mail->unk4.dungeon.floor), gAvailablePokemonNames); + xxx_call_draw_string(21, y, buffer, sUnknown_203B2D8->unk38, 0); + } + else { + sub_803B35C(mail, &local); + if (IsMailinJobSlot(mail)) + local.unk43 = 2; + + CreateRescueTitle(&local); + } + } + + sub_80073E0(sUnknown_203B2D8->unk38); +} + +static s32 CountEmptyMailSlots(void) +{ + s32 mailSlots; + s32 i; + + mailSlots = 0; + + for (i = 0; i < NUM_MAILBOX_SLOTS; i++) { + if (!IsMailSlotEmpty(i)) { + sUnknown_203B2D8->unk0[mailSlots] = i; + mailSlots++; + } + } + + return mailSlots; +} + +bool8 HasNoMailinMailbox(void) +{ + s32 i; + + for (i = 0; i < NUM_MAILBOX_SLOTS; i++) { + if (!IsMailSlotEmpty(i)) + return FALSE; + } + + return TRUE; +} \ No newline at end of file diff --git a/src/wonder_mail_2.c b/src/wonder_mail_2.c index 8ee829f19..32952089a 100644 --- a/src/wonder_mail_2.c +++ b/src/wonder_mail_2.c @@ -77,8 +77,6 @@ ALIGNED(4) const char gUnknown_80DFB14[] = _( " Please give me a shout if\n" "you would like to send {COLOR_1 LIGHT_BLUE}A-OK Mail{END_COLOR_TEXT_1}."); -ALIGNED(4) const char wonder_mail_2_fill[] = "pksdir0"; - u32 sub_802B2D4(void) { s32 iVar1; diff --git a/src/wonder_mail_2_1.c b/src/wonder_mail_2_1.c index 23f591d04..c94c50a7b 100644 --- a/src/wonder_mail_2_1.c +++ b/src/wonder_mail_2_1.c @@ -12,11 +12,13 @@ #include "wonder_mail_2_1.h" #include "code_80118A4.h" #include "code_80958E8_1.h" +#include "code_803B050.h" extern struct unkStruct_203B2F0 *gUnknown_203B2F0; extern struct unkStruct_203B2E8* gUnknown_203B2E8; -extern struct unkStruct_203B2E8* gUnknown_203B2E0; -u16 gUnknown_203B2EC; +extern u16 gUnknown_203B2EC; + +ALIGNED(4) static const char wonder_mail_2_fill4[] = "pksdir0"; const UnkTextStruct2 gUnknown_80DFCE4 = { @@ -100,12 +102,9 @@ static const u8 wonder_mail_fill1[] = "pksdir0"; extern void sub_802CAA4(void); extern u8 IsJobSlotEmpty(u8); -extern void sub_803B35C(WonderMail *, unkStruct_802C39C *); -extern void CreateRescueTitle(unkStruct_802C39C *); extern void sub_802C6DC(void); extern void DrawJobListMenu(void); -extern bool8 IsPelipperBoardSlotEmpty(u8); extern void SetJobListState(u32); extern void sub_802CC00(void); extern void sub_802CC70(void); @@ -117,38 +116,6 @@ extern void sub_802CBAC(void); s32 CountAcceptedJobs(void); -s32 CountPelipperBoardSlots(void) -{ - s32 index; - s32 counter = 0; - for(index = 0; index < MAX_ACCEPTED_JOBS; index++) - { - if(!IsPelipperBoardSlotEmpty(index)) - { - gUnknown_203B2E0->pelipperBoardSlots[counter] = index; - counter++; - } - } - return counter; -} - -bool8 HasNoPelipperBoardJobs(void) -{ - s32 index; - for(index = 0; index < MAX_ACCEPTED_JOBS; index++) - { - if(!IsPelipperBoardSlotEmpty(index)) - return FALSE; - } - return TRUE; -} - - - - - -// THIS IS A NEW FILE: - diff --git a/src/wonder_mail_2_mid.c b/src/wonder_mail_2_mid.c deleted file mode 100644 index 8101524ce..000000000 --- a/src/wonder_mail_2_mid.c +++ /dev/null @@ -1,317 +0,0 @@ -#include "global.h" -#include "constants/input.h" -#include "constants/mailbox.h" -#include "code_800D090.h" -#include "input.h" -#include "memory.h" -#include "text1.h" -#include "text2.h" -#include "pokemon_mail.h" -#include "wonder_mail.h" -#include "code_802C39C.h" -#include "menu_input.h" -#include "code_80118A4.h" -#include "code_803B050.h" -#include "pokemon_mid.h" - -bool8 IsMailSlotEmpty(u8); -extern s32 CountPelipperBoardSlots(void); -extern void sub_802C328(void); -extern void DrawPelipperBoardJobMenu(void); -extern u8 HasNoPelipperBoardJobs(void); - -extern WonderMail *GetPelipperBoardSlotInfo(u32); -extern void sub_803B35C(WonderMail *, u32 *); -extern u8 gBulletinBoardText[]; -extern bool8 IsMailinJobSlot(WonderMail *); -extern void CreateRescueTitle(unkStruct_802C39C *); - -struct unkStruct_203B2D8 -{ - // size: 0xA4 - u8 unk0[4]; - MenuInputStruct input; - u32 unk38; - UnkTextStruct2 *unk3C; - UnkTextStruct2 unk40[4]; - u8 unkA0[4]; -}; - -extern struct unkStruct_203B2D8 *gUnknown_203B2D8; - -struct unkStruct_203B2E0 -{ - // size: 0xA8 - u8 unk0[0x8]; - MenuInputStruct input; - s32 unk3C; - UnkTextStruct2 *unk40; - UnkTextStruct2 unk44[4]; - u8 unkA4[4]; -}; -extern struct unkStruct_203B2E0 *gUnknown_203B2E0; - -extern UnkTextStruct2 gUnknown_80DFCB4; -extern UnkTextStruct2 gUnknown_80DFC9C; - -extern u16 gUnknown_203B2E4; - -extern WonderMail *GetMailboxSlotInfo(u8); -extern u8 gMailboxText[]; -extern u8 gAvailablePokemonNames[]; - -void CreateMailMenu(void) -{ - WonderMail *mail; - s32 y; - s32 index; - unkStruct_802C39C local; - u8 buffer [128]; - - sub_8008C54(gUnknown_203B2D8->unk38); - sub_80073B8(gUnknown_203B2D8->unk38); - xxx_call_draw_string(gUnknown_203B2D8->input.unk1E * 8 + 10,0,gMailboxText,gUnknown_203B2D8->unk38,0); - for (index = 0; index < gUnknown_203B2D8->input.unk1A; index++) { - mail = GetMailboxSlotInfo(gUnknown_203B2D8->unk0[(gUnknown_203B2D8->input.unk1E * gUnknown_203B2D8->input.unk1C) + index]); - local.unk0[0] = gUnknown_203B2D8->unk38; - local.y = sub_8013800(&gUnknown_203B2D8->input, index); - if (mail->mailType == MAIL_TYPE_UNK1) { - y = sub_8013800(&gUnknown_203B2D8->input, index); - sub_803B6B0(10,y,6,gUnknown_203B2D8->unk38); - PrintPokeNameToBuffer(gAvailablePokemonNames, GetPlayerPokemonStruct()); - sprintfStatic(buffer, GetPokemonMailHeadline(mail->unk4.dungeon.floor), gAvailablePokemonNames); - xxx_call_draw_string(0x15,y,buffer,gUnknown_203B2D8->unk38,0); - } - else { - sub_803B35C(mail,local.unk0); - if (IsMailinJobSlot(mail)) { - local.unk43 = 2; - } - CreateRescueTitle(&local); - } - } - sub_80073E0(gUnknown_203B2D8->unk38); -} - -s32 CountEmptyMailSlots(void) -{ - s32 mailSlots; - s32 index; - - mailSlots = 0; - for(index = 0; index < NUM_MAILBOX_SLOTS; index++) - { - if(!IsMailSlotEmpty(index)) - { - gUnknown_203B2D8->unk0[mailSlots] = index; - mailSlots++; - } - } - return mailSlots; -} - -bool8 HasNoMailinMailbox(void) -{ - s32 index; - for(index = 0; index < NUM_MAILBOX_SLOTS; index++) - { - if(!IsMailSlotEmpty(index)) - return FALSE; - } - return TRUE; -} - - - - -// THIS IS A NEW FILE: - - - - -bool8 sub_802C10C(s32 param_1,UnkTextStruct2_sub *param_2,s32 param_3) -{ - if (HasNoPelipperBoardJobs() != 0) { - return FALSE; - } - else - { - if (gUnknown_203B2E0 == NULL) - gUnknown_203B2E0 = MemoryAlloc(sizeof(struct unkStruct_203B2E0), 8); - - gUnknown_203B2E0->unk3C = param_1; - gUnknown_203B2E0->unk40 = &gUnknown_203B2E0->unk44[param_1]; - sub_8006518(gUnknown_203B2E0->unk44); - - gUnknown_203B2E0->unk44[gUnknown_203B2E0->unk3C] = gUnknown_80DFCB4; - gUnknown_203B2E0->unk40->unk14 = gUnknown_203B2E0->unkA4; - - if (param_2 != NULL) - gUnknown_203B2E0->unk44[gUnknown_203B2E0->unk3C].unk8 = *param_2; - - sub_8012D34(gUnknown_203B2E0->unk40,param_3); - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2E0->unk44, TRUE, TRUE); - sub_8013848(&gUnknown_203B2E0->input,CountPelipperBoardSlots(),param_3,param_1); - gUnknown_203B2E0->input.menuIndex = gUnknown_203B2E4; - sub_8013984(&gUnknown_203B2E0->input); - sub_802C328(); - DrawPelipperBoardJobMenu(); - return TRUE; - } -} - -u32 sub_802C1E4(u8 param_1) -{ - if (param_1 == '\0') { - sub_8013660(&gUnknown_203B2E0->input); - return 0; - } - else { - switch(GetKeyPress(&gUnknown_203B2E0->input)) - { - case INPUT_B_BUTTON: - PlayMenuSoundEffect(1); - return 2; - case INPUT_A_BUTTON: - PlayMenuSoundEffect(0); - return 3; - case INPUT_START_BUTTON: - PlayMenuSoundEffect(4); - return 4; - default: - if (sub_80138B8(&gUnknown_203B2E0->input,1)) { - sub_802C328(); - DrawPelipperBoardJobMenu(); - return 1; - } - else { - return 0; - } - } - } -} - -u8 sub_802C26C(void) -{ - return gUnknown_203B2E0->unk0[(gUnknown_203B2E0->input.unk1E * gUnknown_203B2E0->input.unk1C) + gUnknown_203B2E0->input.menuIndex]; -} - -void sub_802C28C(u8 r0) -{ - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2E0->unk44, FALSE, FALSE); - gUnknown_203B2E0->input.unk22 = CountPelipperBoardSlots(); - sub_8013984(&gUnknown_203B2E0->input); - sub_802C328(); - DrawPelipperBoardJobMenu(); - if(r0) - AddMenuCursorSprite(&gUnknown_203B2E0->input); -} - -void sub_802C2D4(void) -{ - if(gUnknown_203B2E0 != NULL) - { - gUnknown_203B2E4 = gUnknown_203B2E0->input.menuIndex; - gUnknown_203B2E0->unk44[gUnknown_203B2E0->unk3C] = gUnknown_80DFC9C; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2E0->unk44, TRUE, TRUE); - MemoryFree(gUnknown_203B2E0); - gUnknown_203B2E0 = NULL; - } -} - -NAKED -void sub_802C328(void) -{ - asm_unified( - "\tpush {r4,lr}\n" - "\tldr r4, _0802C398\n" - "\tldr r0, [r4]\n" - "\tldrh r1, [r0, 0x28]\n" - "\tadds r0, 0xA4\n" - "\tmovs r2, 0\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tldrh r1, [r0, 0x26]\n" - "\tadds r0, 0xA5\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0xA6\n" - "\tmovs r1, 0xC\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0xA7\n" - "\tstrb r2, [r0]\n" - "\tldr r0, [r4]\n" - "\tmovs r1, 0x22\n" - "\tldrsh r0, [r0, r1]\n" - "\tmovs r1, 0x18\n" - "\tbl sub_8009614\n" - "\tadds r0, 0x2\n" - "\tlsls r0, 16\n" - "\tldr r2, [r4]\n" - "\tldr r3, [r2, 0x3C]\n" - "\tlsls r1, r3, 1\n" - "\tadds r1, r3\n" - "\tlsls r1, 3\n" - "\tadds r1, r2, r1\n" - "\tadds r1, 0x52\n" - "\tasrs r3, r0, 16\n" - "\tlsrs r0, 16\n" - "\tstrh r0, [r1]\n" - "\tldr r1, [r2, 0x3C]\n" - "\tlsls r0, r1, 1\n" - "\tadds r0, r1\n" - "\tlsls r0, 3\n" - "\tadds r2, r0\n" - "\tadds r3, 0x2\n" - "\tadds r2, 0x54\n" - "\tstrh r3, [r2]\n" - "\tbl ResetUnusedInputStruct\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x44\n" - "\tmovs r1, 0x1\n" - "\tmovs r2, 0x1\n" - "\tbl sub_800641C\n" - "\tpop {r4}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" -"_0802C398: .4byte gUnknown_203B2E0"); -} - -void DrawPelipperBoardJobMenu(void) -{ - u32 slotIndex; - WonderMail *mail; - s32 iVar4; - s32 x; - s32 index; - unkStruct_802C39C local; - - sub_8008C54(gUnknown_203B2E0->unk3C); - sub_80073B8(gUnknown_203B2E0->unk3C); - iVar4 = gUnknown_203B2E0->input.unk1E * 8; - x = iVar4; - x += 10; - xxx_call_draw_string(x,0,gBulletinBoardText,gUnknown_203B2E0->unk3C,0); - iVar4 += 4; - x = iVar4 + gUnknown_203B2E0->unkA4[2] * 8; - sub_8012BC4(x,0,gUnknown_203B2E0->input.unk1E + 1,2,7,gUnknown_203B2E0->unk3C); - - for(index = 0; index < gUnknown_203B2E0->input.unk1A; index++) - { - slotIndex = (gUnknown_203B2E0->unk0[gUnknown_203B2E0->input.unk1E * gUnknown_203B2E0->input.unk1C + index]); - mail = GetPelipperBoardSlotInfo(slotIndex); - local.unk0[0] = gUnknown_203B2E0->unk3C; - local.y = sub_8013800(&gUnknown_203B2E0->input,index); - sub_803B35C(mail,local.unk0); - if (IsMailinJobSlot(GetPelipperBoardSlotInfo(slotIndex))) { - local.unk43 = 2; - } - CreateRescueTitle(&local); - } - sub_80073E0(gUnknown_203B2E0->unk3C); -} diff --git a/src/wonder_mail_3.c b/src/wonder_mail_3.c index 1f0ec5cd5..9a0f3fed7 100644 --- a/src/wonder_mail_3.c +++ b/src/wonder_mail_3.c @@ -17,6 +17,7 @@ #include "code_80118A4.h" #include "code_80A26CC.h" #include "code_80958E8_1.h" +#include "code_803B050.h" const UnkTextStruct2 gUnknown_80DFDD4 = { @@ -130,14 +131,12 @@ extern void sub_802D1B8(); extern void sub_802D2A8(); -extern bool8 IsMailinJobSlot(WonderMail *); extern u8 sub_8096F50(WonderMail *); extern u8 sub_802DAA8(void); extern u8 sub_802DADC(void); extern u8 *sub_8096DD8(void); extern u8 sub_8096C08(u8 *); extern void DrawJobListMenu(void); -extern void sub_803B35C(WonderMail *, unkStruct_802C39C*); extern void sub_802D73C(void); extern void sub_802C640(u32); extern void sub_802C4C8(u32, u32, u32); @@ -148,7 +147,6 @@ extern void sub_8096D24(void); extern u8 *sub_8096DE8(void); extern void AcceptJob(unkSubStruct_203B2F8 *); unkStruct_803B344 *sub_803B344(u8); -extern void CreateRescueTitle(unkStruct_802C39C *); extern u8 gUnknown_80DFDBC[]; extern void sub_802CF5C(void); extern void sub_802CFD0(void); diff --git a/src/wonder_mail_3_mid.c b/src/wonder_mail_3_mid.c index f1887d970..884109a33 100644 --- a/src/wonder_mail_3_mid.c +++ b/src/wonder_mail_3_mid.c @@ -18,6 +18,7 @@ #include "wonder_mail_3.h" #include "code_801B60C.h" #include "common_strings.h" +#include "code_803B050.h" extern unkStruct_803B344 *sub_803B344(u8); @@ -102,7 +103,6 @@ extern void sub_802F1E8(void); extern void sub_802F004(); extern void sub_802F088(); extern void sub_802F108(void); -extern void sub_803B35C(WonderMail*, unkStruct_802C39C *); extern void sub_802CDD4(u32); extern void sub_802CED8(u32); extern void sub_802CFD0(void); diff --git a/src/wonder_mail_4.c b/src/wonder_mail_4.c index c7fa9db21..a7365c48b 100644 --- a/src/wonder_mail_4.c +++ b/src/wonder_mail_4.c @@ -11,6 +11,7 @@ #include "code_802C39C.h" #include "menu_input.h" #include "code_80118A4.h" +#include "code_803B050.h" struct unkStruct_203B320 { @@ -81,8 +82,6 @@ extern s32 sub_8030A74(void); extern void sub_80308A0(void); extern void sub_803092C(void); -extern void CreateRescueTitle(unkStruct_802C39C *); - u32 sub_80306A8(u32 wonderMailType, u32 r1, UnkTextStruct2_sub *r2, u32 r3) { if (HasNoWonderMailType(wonderMailType)) diff --git a/src/wonder_mail_802C10C.c b/src/wonder_mail_802C10C.c new file mode 100644 index 000000000..9d3044d98 --- /dev/null +++ b/src/wonder_mail_802C10C.c @@ -0,0 +1,228 @@ +#include "global.h" +#include "code_80118A4.h" +#include "code_803B050.h" +#include "code_80958E8_1.h" +#include "constants/input.h" +#include "memory.h" +#include "menu_input.h" +#include "text1.h" +#include "text2.h" +#include "wonder_mail_802C10C.h" + +static EWRAM_DATA_2 struct unkStruct_203B2E0 *gUnknown_203B2E0 = {0}; +static EWRAM_DATA_2 u16 gUnknown_203B2E4 = {0}; + +#include "data/wonder_mail_802C10C.h" + +static s32 CountPelipperBoardSlots(void); + +static void sub_802C328(void); + +bool8 sub_802C10C(s32 a0, UnkTextStruct2_sub *a1, s32 a2) +{ + if (HasNoPelipperBoardJobs()) + return FALSE; + + if (gUnknown_203B2E0 == NULL) + gUnknown_203B2E0 = MemoryAlloc(sizeof(struct unkStruct_203B2E0), 8); + + gUnknown_203B2E0->unk3C = a0; + gUnknown_203B2E0->unk40 = &gUnknown_203B2E0->unk44[a0]; + sub_8006518(gUnknown_203B2E0->unk44); + + gUnknown_203B2E0->unk44[gUnknown_203B2E0->unk3C] = sUnknown_80DFCB4; + gUnknown_203B2E0->unk40->unk14 = gUnknown_203B2E0->unkA4; + + if (a1 != NULL) + gUnknown_203B2E0->unk44[gUnknown_203B2E0->unk3C].unk8 = *a1; + + sub_8012D34(gUnknown_203B2E0->unk40, a2); + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B2E0->unk44, TRUE, TRUE); + sub_8013848(&gUnknown_203B2E0->input, CountPelipperBoardSlots(), a2, a0); + gUnknown_203B2E0->input.menuIndex = gUnknown_203B2E4; + sub_8013984(&gUnknown_203B2E0->input); + sub_802C328(); + DrawPelipperBoardJobMenu(); + return TRUE; +} + +u32 sub_802C1E4(bool8 a0) +{ + if (!a0) { + sub_8013660(&gUnknown_203B2E0->input); + return 0; + } + + switch (GetKeyPress(&gUnknown_203B2E0->input)) { + case INPUT_B_BUTTON: + PlayMenuSoundEffect(1); + return 2; + case INPUT_A_BUTTON: + PlayMenuSoundEffect(0); + return 3; + case INPUT_START_BUTTON: + PlayMenuSoundEffect(4); + return 4; + default: + if (sub_80138B8(&gUnknown_203B2E0->input, 1)) { + sub_802C328(); + DrawPelipperBoardJobMenu(); + return 1; + } + return 0; + } +} + +u8 sub_802C26C(void) +{ + return gUnknown_203B2E0->pelipperBoardSlots[(gUnknown_203B2E0->input.unk1E * gUnknown_203B2E0->input.unk1C) + gUnknown_203B2E0->input.menuIndex]; +} + +void sub_802C28C(bool8 cursorSprite) +{ + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B2E0->unk44, FALSE, FALSE); + gUnknown_203B2E0->input.unk22 = CountPelipperBoardSlots(); + sub_8013984(&gUnknown_203B2E0->input); + sub_802C328(); + DrawPelipperBoardJobMenu(); + + if (cursorSprite) + AddMenuCursorSprite(&gUnknown_203B2E0->input); +} + +void sub_802C2D4(void) +{ + if (gUnknown_203B2E0 != NULL) { + gUnknown_203B2E4 = gUnknown_203B2E0->input.menuIndex; + gUnknown_203B2E0->unk44[gUnknown_203B2E0->unk3C] = sUnknown_80DFC9C; + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B2E0->unk44, TRUE, TRUE); + MemoryFree(gUnknown_203B2E0); + gUnknown_203B2E0 = NULL; + } +} + +NAKED +static void sub_802C328(void) +{ + asm_unified( + "\tpush {r4,lr}\n" + "\tldr r4, _0802C398\n" + "\tldr r0, [r4]\n" + "\tldrh r1, [r0, 0x28]\n" + "\tadds r0, 0xA4\n" + "\tmovs r2, 0\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tldrh r1, [r0, 0x26]\n" + "\tadds r0, 0xA5\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0xA6\n" + "\tmovs r1, 0xC\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0xA7\n" + "\tstrb r2, [r0]\n" + "\tldr r0, [r4]\n" + "\tmovs r1, 0x22\n" + "\tldrsh r0, [r0, r1]\n" + "\tmovs r1, 0x18\n" + "\tbl sub_8009614\n" + "\tadds r0, 0x2\n" + "\tlsls r0, 16\n" + "\tldr r2, [r4]\n" + "\tldr r3, [r2, 0x3C]\n" + "\tlsls r1, r3, 1\n" + "\tadds r1, r3\n" + "\tlsls r1, 3\n" + "\tadds r1, r2, r1\n" + "\tadds r1, 0x52\n" + "\tasrs r3, r0, 16\n" + "\tlsrs r0, 16\n" + "\tstrh r0, [r1]\n" + "\tldr r1, [r2, 0x3C]\n" + "\tlsls r0, r1, 1\n" + "\tadds r0, r1\n" + "\tlsls r0, 3\n" + "\tadds r2, r0\n" + "\tadds r3, 0x2\n" + "\tadds r2, 0x54\n" + "\tstrh r3, [r2]\n" + "\tbl ResetUnusedInputStruct\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x44\n" + "\tmovs r1, 0x1\n" + "\tmovs r2, 0x1\n" + "\tbl sub_800641C\n" + "\tpop {r4}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" +"_0802C398: .4byte gUnknown_203B2E0"); +} + +void DrawPelipperBoardJobMenu(void) +{ + u32 slotIndex; + WonderMail *mail; + s32 iVar4; + s32 x; + s32 i; + unkStruct_802C39C local; + + sub_8008C54(gUnknown_203B2E0->unk3C); + sub_80073B8(gUnknown_203B2E0->unk3C); + iVar4 = gUnknown_203B2E0->input.unk1E * 8; + x = iVar4; + x += 10; + xxx_call_draw_string(x, 0, sBulletinBoard, gUnknown_203B2E0->unk3C, 0); + + iVar4 += 4; + x = iVar4 + (gUnknown_203B2E0->unkA4[2] * 8); + sub_8012BC4(x, 0, gUnknown_203B2E0->input.unk1E + 1, 2, 7, gUnknown_203B2E0->unk3C); + + for (i = 0; i < gUnknown_203B2E0->input.unk1A; i++) { + slotIndex = (gUnknown_203B2E0->pelipperBoardSlots[(gUnknown_203B2E0->input.unk1E * gUnknown_203B2E0->input.unk1C) + i]); + mail = GetPelipperBoardSlotInfo(slotIndex); + local.unk0[0] = gUnknown_203B2E0->unk3C; + local.y = sub_8013800(&gUnknown_203B2E0->input, i); + sub_803B35C(mail, &local); + + if (IsMailinJobSlot(GetPelipperBoardSlotInfo(slotIndex))) + local.unk43 = 2; + + CreateRescueTitle(&local); + } + + sub_80073E0(gUnknown_203B2E0->unk3C); +} + +static s32 CountPelipperBoardSlots(void) +{ + s32 i; + s32 counter = 0; + + for (i = 0; i < MAX_ACCEPTED_JOBS; i++) { + if (!IsPelipperBoardSlotEmpty(i)) { + gUnknown_203B2E0->pelipperBoardSlots[counter] = i; + counter++; + } + } + + return counter; +} + +bool8 HasNoPelipperBoardJobs(void) +{ + s32 i; + + for (i = 0; i < MAX_ACCEPTED_JOBS; i++) { + if (!IsPelipperBoardSlotEmpty(i)) + return FALSE; + } + + return TRUE; +} \ No newline at end of file diff --git a/sym_ewram2.txt b/sym_ewram2.txt index 4373881d5..b584d3764 100644 --- a/sym_ewram2.txt +++ b/sym_ewram2.txt @@ -191,30 +191,12 @@ gUnknown_203B2C4: /* 203B2C4 (CreateThankYouMailPelipper - SetThankYouMailMenuSt gUnknown_203B2C8: /* 203B2C8 (sub_802B2D4 - sub_802B5B8) */ .space 0x4 -gUnknown_203B2CC: /* 203B2CC (sub_802B640 - GetNumPKMNNews) */ - .space 0x4 - -gUnknown_203B2D0: /* 203B2D0 (sub_802B640 - sub_802B81C) */ +.include "src/pokemon_news1.o" +.include "src/pokemon_news2.o" +.include "src/pokemon_news3.o" +.include "src/wonder_mail_802C10C.o" .space 0x2 -gUnknown_203B2D2: /* 203B2D2 (sub_802B640 - sub_802B81C) */ - .space 0x2 - -gUnknown_203B2D4: /* 203B2D4 (sub_802B9FC - sub_802BCC4) */ - .space 0x4 - -gUnknown_203B2D8: /* 203B2D8 (sub_802BD14 - CountEmptyMailSlots) */ - .space 0x4 - -gUnknown_203B2DC: /* 203B2DC (sub_802BD14 - sub_802BEDC) */ - .space 0x4 - -gUnknown_203B2E0: /* 203B2E0 (sub_802C10C - CountPelipperBoardSlots) */ - .space 0x4 - -gUnknown_203B2E4: /* 203B2E4 (sub_802C10C - sub_802C2D4) */ - .space 0x4 - gUnknown_203B2E8: /* 203B2E8 (sub_802C4C8 - CountAcceptedJobs) */ .space 0x4 From 64e0409e089b6196558e79ecc27f38eadf6f5871 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sat, 23 Sep 2023 19:18:15 -0400 Subject: [PATCH 43/47] I forgor :skull: to EWRAM_DATA_2 these --- include/wonder_mail_3.h | 3 - src/friend_area_action_menu.c | 274 ++++++++++++------------- src/thank_you_wonder_mail.c | 338 +++++++++++++++---------------- src/wonder_mail.c | 370 +++++++++++++++++----------------- src/wonder_mail_2.c | 72 +++---- src/wonder_mail_2_1.c | 5 +- src/wonder_mail_3.c | 72 +++---- src/wonder_mail_3_mid.c | 2 +- src/wonder_mail_4.c | 2 +- src/wonder_mail_5.c | 3 +- src/wonder_mail_6.c | 3 +- sym_ewram2.txt | 44 +--- 12 files changed, 584 insertions(+), 604 deletions(-) diff --git a/include/wonder_mail_3.h b/include/wonder_mail_3.h index 1ef1e24df..37da8c42a 100644 --- a/include/wonder_mail_3.h +++ b/include/wonder_mail_3.h @@ -79,9 +79,6 @@ enum WonderMailRescueStates // 16 is ?? }; -extern unkStruct_203B2F4 *gUnknown_203B2F4; -extern unkStruct_203B2F8 *gUnknown_203B2F8; - u32 sub_802D098(unkSubStruct_203B2F8 *mail); #endif // GUARD_WONDER_MAIL_3_H \ No newline at end of file diff --git a/src/friend_area_action_menu.c b/src/friend_area_action_menu.c index 768d43110..08cc76b55 100644 --- a/src/friend_area_action_menu.c +++ b/src/friend_area_action_menu.c @@ -21,7 +21,7 @@ #include "text1.h" #include "text2.h" -extern struct unkStruct_203B2BC *gUnknown_203B2BC; +static EWRAM_DATA_2 struct unkStruct_203B2BC *sUnknown_203B2BC = {0}; void sub_8027D40(u32, BulkItem *heldItem); void sub_8027794(void); @@ -62,17 +62,17 @@ void sub_8027EB8(void); u32 sub_8027074(void) { ResetSprites(FALSE); - gUnknown_203B2BC = MemoryAlloc(sizeof(struct unkStruct_203B2BC), 8); - gUnknown_203B2BC->menuAction1 = 0; - gUnknown_203B2BC->menuAction2 = 0; - gUnknown_203B2BC->menuAction3 = 0; + sUnknown_203B2BC = MemoryAlloc(sizeof(struct unkStruct_203B2BC), 8); + sUnknown_203B2BC->menuAction1 = 0; + sUnknown_203B2BC->menuAction2 = 0; + sUnknown_203B2BC->menuAction3 = 0; SetFriendAreaActionMenuState(FRIEND_AREA_ACTION_MENU_INIT); return 1; } u32 sub_80270A4(void) { - switch(gUnknown_203B2BC->state) { + switch(sUnknown_203B2BC->state) { case FRIEND_AREA_ACTION_MENU_INIT: SetFriendAreaActionMenuState(FRIEND_AREA_ACTION_MENU_MAIN); break; @@ -123,16 +123,16 @@ u32 sub_80270A4(void) void sub_8027168(void) { - if(gUnknown_203B2BC != NULL) + if(sUnknown_203B2BC != NULL) { - MemoryFree(gUnknown_203B2BC); - gUnknown_203B2BC = NULL; + MemoryFree(sUnknown_203B2BC); + sUnknown_203B2BC = NULL; } } void SetFriendAreaActionMenuState(u32 newState) { - gUnknown_203B2BC->state = newState; + sUnknown_203B2BC->state = newState; sub_802719C(); sub_8027274(); } @@ -141,36 +141,36 @@ void sub_802719C(void) { s32 index; - sub_8006518(gUnknown_203B2BC->unk180); - switch(gUnknown_203B2BC->state) + sub_8006518(sUnknown_203B2BC->unk180); + switch(sUnknown_203B2BC->state) { case 3: - gUnknown_203B2BC->unk180[3] = sUnknown_80DD74C; + sUnknown_203B2BC->unk180[3] = sUnknown_80DD74C; CreateFriendActionMenu(); - gUnknown_203B2BC->unk180[2] = sUnknown_80DD704; - sub_8012CAC(&gUnknown_203B2BC->unk180[2], gUnknown_203B2BC->menuItems); + sUnknown_203B2BC->unk180[2] = sUnknown_80DD704; + sub_8012CAC(&sUnknown_203B2BC->unk180[2], sUnknown_203B2BC->menuItems); break; case 0xC: sub_80276A8(); - gUnknown_203B2BC->unk180[2] = sUnknown_80DD71C; - sub_8012CAC(&gUnknown_203B2BC->unk180[2], gUnknown_203B2BC->menuItems); + sUnknown_203B2BC->unk180[2] = sUnknown_80DD71C; + sub_8012CAC(&sUnknown_203B2BC->unk180[2], sUnknown_203B2BC->menuItems); break; default: for(index = 0; index < 4; index++) { - gUnknown_203B2BC->unk180[index] = sUnknown_80DD6EC; + sUnknown_203B2BC->unk180[index] = sUnknown_80DD6EC; } break; } ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2BC->unk180, TRUE, TRUE); + sub_800641C(sUnknown_203B2BC->unk180, TRUE, TRUE); } void sub_8027274(void) { Item slot; - switch (gUnknown_203B2BC->state) { + switch (sUnknown_203B2BC->state) { case FRIEND_AREA_ACTION_MENU_INIT: case FRIEND_AREA_ACTION_MENU_EXIT: break; @@ -181,15 +181,15 @@ void sub_8027274(void) sub_8023B7C(1); break; case 3: - sub_8027D40(3, &gUnknown_203B2BC->item2); + sub_8027D40(3, &sUnknown_203B2BC->item2); sub_8023DA4(); - sub_8012D60(&gUnknown_203B2BC->unk7C, gUnknown_203B2BC->menuItems, 0, gUnknown_203B2BC->unk16C, gUnknown_203B2BC->menuAction1, 2); + sub_8012D60(&sUnknown_203B2BC->unk7C, sUnknown_203B2BC->menuItems, 0, sUnknown_203B2BC->unk16C, sUnknown_203B2BC->menuAction1, 2); break; case FRIEND_AREA_ACTION_MENU_SUMMARY: - sub_8024458(gUnknown_203B2BC->targetPoke, 2); + sub_8024458(sUnknown_203B2BC->targetPoke, 2); break; case FRIEND_AREA_ACTION_MENU_CHECK_IQ: - sub_801BEEC(gUnknown_203B2BC->targetPoke); + sub_801BEEC(sUnknown_203B2BC->targetPoke); break; case 10: sub_801A5D8(1, 0, NULL, 10); @@ -199,37 +199,37 @@ void sub_8027274(void) break; case 0xc: sub_801A9E0(); - sub_8012D60(&gUnknown_203B2BC->unk7C,gUnknown_203B2BC->menuItems,0,gUnknown_203B2BC->unk16C,gUnknown_203B2BC->menuAction2,2); + sub_8012D60(&sUnknown_203B2BC->unk7C,sUnknown_203B2BC->menuItems,0,sUnknown_203B2BC->unk16C,sUnknown_203B2BC->menuAction2,2); break; case 0xd: - HeldItemToSlot(&slot, &gUnknown_203B2BC->itemToGive); + HeldItemToSlot(&slot, &sUnknown_203B2BC->itemToGive); sub_801B3C0(&slot); break; case 0xe: - unk_CopyMoves4To8(gUnknown_203B2BC->moves,gUnknown_203B2BC->pokeStruct->moves); - sub_801EE10(3,gUnknown_203B2BC->targetPoke,gUnknown_203B2BC->moves,0,NULL,0); + unk_CopyMoves4To8(sUnknown_203B2BC->moves,sUnknown_203B2BC->pokeStruct->moves); + sub_801EE10(3,sUnknown_203B2BC->targetPoke,sUnknown_203B2BC->moves,0,NULL,0); break; case 0xf: sub_801F1B0(TRUE, FALSE); break; case FRIEND_AREA_ACTION_MENU_SAY_FAREWELL_PROMPT: sub_8027794(); - sub_8014248(sSayFarewellPrompt,0,3,gUnknown_203B2BC->menuItems,0,4,0,0,0x101); + sub_8014248(sSayFarewellPrompt,0,3,sUnknown_203B2BC->menuItems,0,4,0,0,0x101); break; case FRIEND_AREA_ACTION_MENU_SAY_FAREWELL_CONFIRM: sub_8027794(); - sub_8014248(sSayFarewellConfirm,0,3,gUnknown_203B2BC->menuItems,0,4,0,0,0x101); + sub_8014248(sSayFarewellConfirm,0,3,sUnknown_203B2BC->menuItems,0,4,0,0,0x101); break; case 0x10: - GetLinkedSequence(gUnknown_203B2BC->moveIndex,gUnknown_203B2BC->moves,gUnknown_203B2BC->moveIDs); - sub_801F808(gUnknown_203B2BC->moveIDs); + GetLinkedSequence(sUnknown_203B2BC->moveIndex,sUnknown_203B2BC->moves,sUnknown_203B2BC->moveIDs); + sub_801F808(sUnknown_203B2BC->moveIDs); break; case 6: - gUnknown_203B2BC->fallbackState = FRIEND_AREA_ACTION_MENU_MAIN_2; + sUnknown_203B2BC->fallbackState = FRIEND_AREA_ACTION_MENU_MAIN_2; sub_80141B4(sReturnedToToolbox, 0, 0, 0x101); break; case 7: - gUnknown_203B2BC->fallbackState = FRIEND_AREA_ACTION_MENU_MAIN_2; + sUnknown_203B2BC->fallbackState = FRIEND_AREA_ACTION_MENU_MAIN_2; sub_80141B4(sSentToStorage, 0, 0, 0x101); break; } @@ -242,85 +242,85 @@ void CreateFriendActionMenu(void) PokemonStruct1 *pokeStruct; loopMax = 0; - pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_203B2BC->targetPoke]; - MemoryFill16(gUnknown_203B2BC->unk16C,0,sizeof(gUnknown_203B2BC->unk16C)); + pokeStruct = &gRecruitedPokemonRef->pokemon[sUnknown_203B2BC->targetPoke]; + MemoryFill16(sUnknown_203B2BC->unk16C,0,sizeof(sUnknown_203B2BC->unk16C)); if((pokeStruct->unk0 >> 1) % 2) { - gUnknown_203B2BC->menuItems[loopMax].text = sStandBy; - gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_STANDBY; + sUnknown_203B2BC->menuItems[loopMax].text = sStandBy; + sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_STANDBY; if(!sub_8027D9C(pokeStruct)) { - gUnknown_203B2BC->unk16C[loopMax] = 1; + sUnknown_203B2BC->unk16C[loopMax] = 1; } loopMax += 1; if(sub_80023E4(8) && !pokeStruct->isTeamLeader) { - gUnknown_203B2BC->menuItems[loopMax].text = sMakeLeader; - gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_MAKE_LEADER; + sUnknown_203B2BC->menuItems[loopMax].text = sMakeLeader; + sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_MAKE_LEADER; loopMax += 1; } } else { - gUnknown_203B2BC->menuItems[loopMax].text = sJoinTeam; - gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_JOIN_TEAM; - if(!sub_808D750(gUnknown_203B2BC->targetPoke)) + sUnknown_203B2BC->menuItems[loopMax].text = sJoinTeam; + sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_JOIN_TEAM; + if(!sub_808D750(sUnknown_203B2BC->targetPoke)) { - gUnknown_203B2BC->unk16C[loopMax] = 1; + sUnknown_203B2BC->unk16C[loopMax] = 1; } loopMax += 1; - gUnknown_203B2BC->menuItems[loopMax].text = sSayFarewell; - gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_SAY_FAREWELL; + sUnknown_203B2BC->menuItems[loopMax].text = sSayFarewell; + sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_SAY_FAREWELL; if(!sub_8027DCC(pokeStruct)) { - gUnknown_203B2BC->unk16C[loopMax] = 1; + sUnknown_203B2BC->unk16C[loopMax] = 1; } loopMax += 1; } - gUnknown_203B2BC->menuItems[loopMax].text = sGive; - gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_GIVE; + sUnknown_203B2BC->menuItems[loopMax].text = sGive; + sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_GIVE; if(GetNumberOfFilledInventorySlots() == 0) { - gUnknown_203B2BC->unk16C[loopMax] = 1; + sUnknown_203B2BC->unk16C[loopMax] = 1; } loopMax += 1; - gUnknown_203B2BC->menuItems[loopMax].text = sTake; - gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_TAKE; - if(GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE || gUnknown_203B2BC->item2.id == ITEM_NOTHING) + sUnknown_203B2BC->menuItems[loopMax].text = sTake; + sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_TAKE; + if(GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE || sUnknown_203B2BC->item2.id == ITEM_NOTHING) { - gUnknown_203B2BC->unk16C[loopMax] = 1; + sUnknown_203B2BC->unk16C[loopMax] = 1; } loopMax += 1; - gUnknown_203B2BC->menuItems[loopMax].text = sSummary; - gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_SUMMARY; + sUnknown_203B2BC->menuItems[loopMax].text = sSummary; + sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_SUMMARY; loopMax += 1; - gUnknown_203B2BC->menuItems[loopMax].text = sMoves; - gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_MOVES; + sUnknown_203B2BC->menuItems[loopMax].text = sMoves; + sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_MOVES; loopMax += 1; - gUnknown_203B2BC->menuItems[loopMax].text = sCheckIQ; - gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_CHECK_IQ; + sUnknown_203B2BC->menuItems[loopMax].text = sCheckIQ; + sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_CHECK_IQ; loopMax += 1; - gUnknown_203B2BC->menuItems[loopMax].text = NULL; - gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_NONE; + sUnknown_203B2BC->menuItems[loopMax].text = NULL; + sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_NONE; for(index = 0; index < loopMax; index++) { - if(gUnknown_203B2BC->unk16C[index] == 0) + if(sUnknown_203B2BC->unk16C[index] == 0) { - if(gUnknown_203B2BC->menuItems[index].menuAction == gUnknown_203B2BC->menuAction1) + if(sUnknown_203B2BC->menuItems[index].menuAction == sUnknown_203B2BC->menuAction1) return; } } for(index = 0; index < loopMax; index++) { - if(gUnknown_203B2BC->unk16C[index] == 0) + if(sUnknown_203B2BC->unk16C[index] == 0) { - gUnknown_203B2BC->menuAction1 = gUnknown_203B2BC->menuItems[index].menuAction; + sUnknown_203B2BC->menuAction1 = sUnknown_203B2BC->menuItems[index].menuAction; break; } } @@ -332,33 +332,33 @@ void sub_80276A8(void) s32 loopMax; loopMax = 0; - MemoryFill16(gUnknown_203B2BC->unk16C,0,sizeof(gUnknown_203B2BC->unk16C)); - gUnknown_203B2BC->menuItems[loopMax].text = sGive; - gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_GIVE; + MemoryFill16(sUnknown_203B2BC->unk16C,0,sizeof(sUnknown_203B2BC->unk16C)); + sUnknown_203B2BC->menuItems[loopMax].text = sGive; + sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_GIVE; if (GetNumberOfFilledInventorySlots() == 0) { - gUnknown_203B2BC->unk16C[loopMax] = 1; + sUnknown_203B2BC->unk16C[loopMax] = 1; } loopMax += 1; - gUnknown_203B2BC->menuItems[loopMax].text = gCommonInfo[0]; - gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_INFO; + sUnknown_203B2BC->menuItems[loopMax].text = gCommonInfo[0]; + sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_INFO; loopMax += 1; - gUnknown_203B2BC->menuItems[loopMax].text = 0; - gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_NONE; + sUnknown_203B2BC->menuItems[loopMax].text = 0; + sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_NONE; for(index = 0; index < loopMax; index++) { - if(gUnknown_203B2BC->unk16C[index] == 0) + if(sUnknown_203B2BC->unk16C[index] == 0) { - if(gUnknown_203B2BC->menuItems[index].menuAction == gUnknown_203B2BC->menuAction2) + if(sUnknown_203B2BC->menuItems[index].menuAction == sUnknown_203B2BC->menuAction2) return; } } for(index = 0; index < loopMax; index++) { - if(gUnknown_203B2BC->unk16C[index] == 0) + if(sUnknown_203B2BC->unk16C[index] == 0) { - gUnknown_203B2BC->menuAction2 = gUnknown_203B2BC->menuItems[index].menuAction; + sUnknown_203B2BC->menuAction2 = sUnknown_203B2BC->menuItems[index].menuAction; break; } } @@ -368,15 +368,15 @@ void sub_8027794(void) { s32 loopMax = 0; - MemoryFill16(gUnknown_203B2BC->unk16C,0,sizeof(gUnknown_203B2BC->unk16C)); - gUnknown_203B2BC->menuItems[loopMax].text = gCommonYes[0]; - gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_YES; + MemoryFill16(sUnknown_203B2BC->unk16C,0,sizeof(sUnknown_203B2BC->unk16C)); + sUnknown_203B2BC->menuItems[loopMax].text = gCommonYes[0]; + sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_YES; loopMax += 1; - gUnknown_203B2BC->menuItems[loopMax].text = gCommonNo[0]; - gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_NO; + sUnknown_203B2BC->menuItems[loopMax].text = gCommonNo[0]; + sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_NO; loopMax += 1; - gUnknown_203B2BC->menuItems[loopMax].text = NULL; - gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_NONE; + sUnknown_203B2BC->menuItems[loopMax].text = NULL; + sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_NONE; } void sub_80277FC(void) @@ -388,19 +388,19 @@ void sub_80277FC(void) case 1: break; case 3: - gUnknown_203B2BC->targetPoke = sub_8023B44(); - pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_203B2BC->targetPoke]; - gUnknown_203B2BC->pokeStruct = pokeStruct; - gUnknown_203B2BC->isTeamLeader = pokeStruct->isTeamLeader; - PeekPokemonItem(gUnknown_203B2BC->targetPoke,&gUnknown_203B2BC->item2); + sUnknown_203B2BC->targetPoke = sub_8023B44(); + pokeStruct = &gRecruitedPokemonRef->pokemon[sUnknown_203B2BC->targetPoke]; + sUnknown_203B2BC->pokeStruct = pokeStruct; + sUnknown_203B2BC->isTeamLeader = pokeStruct->isTeamLeader; + PeekPokemonItem(sUnknown_203B2BC->targetPoke,&sUnknown_203B2BC->item2); SetFriendAreaActionMenuState(3); break; case 4: - gUnknown_203B2BC->targetPoke = sub_8023B44(); - pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_203B2BC->targetPoke]; - gUnknown_203B2BC->pokeStruct = pokeStruct; - gUnknown_203B2BC->isTeamLeader = pokeStruct->isTeamLeader; - PeekPokemonItem(gUnknown_203B2BC->targetPoke,&gUnknown_203B2BC->item2); + sUnknown_203B2BC->targetPoke = sub_8023B44(); + pokeStruct = &gRecruitedPokemonRef->pokemon[sUnknown_203B2BC->targetPoke]; + sUnknown_203B2BC->pokeStruct = pokeStruct; + sUnknown_203B2BC->isTeamLeader = pokeStruct->isTeamLeader; + PeekPokemonItem(sUnknown_203B2BC->targetPoke,&sUnknown_203B2BC->item2); SetFriendAreaActionMenuState(4); break; case 2: @@ -419,16 +419,16 @@ void sub_80278B4(void) menuAction = 0; sub_8023A94(FALSE); - if ((sub_8012FD8(&gUnknown_203B2BC->unk7C) == 0) && (sub_8013114(&gUnknown_203B2BC->unk7C,&menuAction), menuAction != FRIEND_AREA_ACTION_MENU_ACTION_NONE)) { - gUnknown_203B2BC->menuAction1 = menuAction; + if ((sub_8012FD8(&sUnknown_203B2BC->unk7C) == 0) && (sub_8013114(&sUnknown_203B2BC->unk7C,&menuAction), menuAction != FRIEND_AREA_ACTION_MENU_ACTION_NONE)) { + sUnknown_203B2BC->menuAction1 = menuAction; } switch(menuAction) { case FRIEND_AREA_ACTION_MENU_ACTION_JOIN_TEAM: - if (sub_808D750(gUnknown_203B2BC->targetPoke)) { + if (sub_808D750(sUnknown_203B2BC->targetPoke)) { #ifdef NONMATCHING - pokeStruct1 = &gRecruitedPokemonRef->pokemon[gUnknown_203B2BC->targetPoke]; + pokeStruct1 = &gRecruitedPokemonRef->pokemon[sUnknown_203B2BC->targetPoke]; #else - register size_t offset asm("r1") = offsetof(unkStruct_203B45C, pokemon[gUnknown_203B2BC->targetPoke]); + register size_t offset asm("r1") = offsetof(unkStruct_203B45C, pokemon[sUnknown_203B2BC->targetPoke]); PokemonStruct1* p = gRecruitedPokemonRef->pokemon; size_t addr = offset + (size_t)p; pokeStruct1 = (PokemonStruct1*)addr; @@ -440,13 +440,13 @@ void sub_80278B4(void) SetFriendAreaActionMenuState(FRIEND_AREA_ACTION_MENU_MAIN_2); break; case FRIEND_AREA_ACTION_MENU_ACTION_STANDBY: - gUnknown_203B2BC->pokeStruct->unk0 &= ~(FLAG_ON_TEAM); + sUnknown_203B2BC->pokeStruct->unk0 &= ~(FLAG_ON_TEAM); nullsub_104(); sub_808ED00(); SetFriendAreaActionMenuState(FRIEND_AREA_ACTION_MENU_MAIN_2); break; case FRIEND_AREA_ACTION_MENU_ACTION_MAKE_LEADER: - pokeStruct2 = &gRecruitedPokemonRef->pokemon[gUnknown_203B2BC->targetPoke]; + pokeStruct2 = &gRecruitedPokemonRef->pokemon[sUnknown_203B2BC->targetPoke]; playerStruct = GetPlayerPokemonStruct(); if (!pokeStruct2->isTeamLeader) { playerStruct->isTeamLeader = FALSE; @@ -467,13 +467,13 @@ void sub_80278B4(void) break; case FRIEND_AREA_ACTION_MENU_ACTION_TAKE: PlaySound(0x14d); - if (gUnknown_203B2BC->item2.id != ITEM_NOTHING) { - AddHeldItemToInventory(&gUnknown_203B2BC->item2); + if (sUnknown_203B2BC->item2.id != ITEM_NOTHING) { + AddHeldItemToInventory(&sUnknown_203B2BC->item2); } FillInventoryGaps(); - gUnknown_203B2BC->item2.id = ITEM_NOTHING; - gUnknown_203B2BC->item2.quantity = 0; - GivePokemonItem(gUnknown_203B2BC->targetPoke,&gUnknown_203B2BC->item2); + sUnknown_203B2BC->item2.id = ITEM_NOTHING; + sUnknown_203B2BC->item2.quantity = 0; + GivePokemonItem(sUnknown_203B2BC->targetPoke,&sUnknown_203B2BC->item2); nullsub_104(); SetFriendAreaActionMenuState(FRIEND_AREA_ACTION_MENU_MAIN_2); break; @@ -520,7 +520,7 @@ void sub_8027A5C(void) } static inline bool8 sub_8027A78_sub(void) { - if (gUnknown_203B2BC->pokeStruct->dungeonLocation.id == DUNGEON_HOWLING_FOREST_2 || gUnknown_203B2BC->pokeStruct->dungeonLocation.id == DUNGEON_POKEMON_SQUARE) + if (sUnknown_203B2BC->pokeStruct->dungeonLocation.id == DUNGEON_HOWLING_FOREST_2 || sUnknown_203B2BC->pokeStruct->dungeonLocation.id == DUNGEON_POKEMON_SQUARE) return TRUE; else return FALSE; @@ -543,7 +543,7 @@ void sub_8027A78(void) else { sub_8027EB8(); - sub_808D31C(gUnknown_203B2BC->pokeStruct); + sub_808D31C(sUnknown_203B2BC->pokeStruct); } break; } @@ -563,7 +563,7 @@ void sub_8027AE4(void) break; case FRIEND_AREA_ACTION_MENU_ACTION_YES: sub_8027EB8(); - sub_808D31C(gUnknown_203B2BC->pokeStruct); + sub_808D31C(sUnknown_203B2BC->pokeStruct); break; } } @@ -574,15 +574,15 @@ void sub_8027B28(void) switch(sub_801A6E8(TRUE)) { case 3: - gUnknown_203B2BC->id = sub_801A8AC(); - gUnknown_203B2BC->itemToGive.id = gTeamInventoryRef->teamItems[gUnknown_203B2BC->id].id; - gUnknown_203B2BC->itemToGive.quantity = gTeamInventoryRef->teamItems[gUnknown_203B2BC->id].quantity; + sUnknown_203B2BC->id = sub_801A8AC(); + sUnknown_203B2BC->itemToGive.id = gTeamInventoryRef->teamItems[sUnknown_203B2BC->id].id; + sUnknown_203B2BC->itemToGive.quantity = gTeamInventoryRef->teamItems[sUnknown_203B2BC->id].quantity; SetFriendAreaActionMenuState(0xc); break; case 4: - gUnknown_203B2BC->id = sub_801A8AC(); - gUnknown_203B2BC->itemToGive.id = gTeamInventoryRef->teamItems[gUnknown_203B2BC->id].id; - gUnknown_203B2BC->itemToGive.quantity = gTeamInventoryRef->teamItems[gUnknown_203B2BC->id].quantity; + sUnknown_203B2BC->id = sub_801A8AC(); + sUnknown_203B2BC->itemToGive.id = gTeamInventoryRef->teamItems[sUnknown_203B2BC->id].id; + sUnknown_203B2BC->itemToGive.quantity = gTeamInventoryRef->teamItems[sUnknown_203B2BC->id].quantity; sub_8099690(0); SetFriendAreaActionMenuState(0xd); break; @@ -602,19 +602,19 @@ void sub_8027BD8(void) menuAction = 0; sub_801A6E8(FALSE); - if ((sub_8012FD8(&gUnknown_203B2BC->unk7C) == 0) && (sub_8013114(&gUnknown_203B2BC->unk7C,&menuAction), menuAction != FRIEND_AREA_ACTION_MENU_ACTION_NONE)) { - gUnknown_203B2BC->menuAction2 = menuAction; + if ((sub_8012FD8(&sUnknown_203B2BC->unk7C) == 0) && (sub_8013114(&sUnknown_203B2BC->unk7C,&menuAction), menuAction != FRIEND_AREA_ACTION_MENU_ACTION_NONE)) { + sUnknown_203B2BC->menuAction2 = menuAction; } switch(menuAction) { case FRIEND_AREA_ACTION_MENU_ACTION_GIVE: PlaySound(0x14d); - ShiftItemsDownFrom(gUnknown_203B2BC->id); + ShiftItemsDownFrom(sUnknown_203B2BC->id); FillInventoryGaps(); - if (gUnknown_203B2BC->item2.id != ITEM_NOTHING) { - AddHeldItemToInventory(&gUnknown_203B2BC->item2); + if (sUnknown_203B2BC->item2.id != ITEM_NOTHING) { + AddHeldItemToInventory(&sUnknown_203B2BC->item2); } - GivePokemonItem(gUnknown_203B2BC->targetPoke,&gUnknown_203B2BC->itemToGive); + GivePokemonItem(sUnknown_203B2BC->targetPoke,&sUnknown_203B2BC->itemToGive); sub_801A928(); nullsub_104(); SetFriendAreaActionMenuState(FRIEND_AREA_ACTION_MENU_MAIN_2); @@ -649,8 +649,8 @@ void sub_8027CA0(void) { case 3: case 4: - gUnknown_203B2BC->moveIndex = sub_801F194(); - gUnknown_203B2BC->moveID = gUnknown_203B2BC->moves[gUnknown_203B2BC->moveIndex].id; + sUnknown_203B2BC->moveIndex = sub_801F194(); + sUnknown_203B2BC->moveID = sUnknown_203B2BC->moves[sUnknown_203B2BC->moveIndex].id; SetFriendAreaActionMenuState(0x10); break; case 2: @@ -683,7 +683,7 @@ void FriendAreaActionMenu_GotoFallbackState(void) s32 temp; if(sub_80144A4(&temp) == 0) { - SetFriendAreaActionMenuState(gUnknown_203B2BC->fallbackState); + SetFriendAreaActionMenuState(sUnknown_203B2BC->fallbackState); } } @@ -782,26 +782,26 @@ bool8 sub_8027E4C(PokemonStruct1 *pokeStruct) void sub_8027EB8(void) { - switch(sub_8027E18(gUnknown_203B2BC->pokeStruct)) + switch(sub_8027E18(sUnknown_203B2BC->pokeStruct)) { case 1: PlaySound(0x14d); - AddHeldItemToInventory(&gUnknown_203B2BC->item2); + AddHeldItemToInventory(&sUnknown_203B2BC->item2); FillInventoryGaps(); - gUnknown_203B2BC->item2.id = ITEM_NOTHING; - gUnknown_203B2BC->item2.quantity = 0; - GivePokemonItem(gUnknown_203B2BC->targetPoke, &gUnknown_203B2BC->item2); + sUnknown_203B2BC->item2.id = ITEM_NOTHING; + sUnknown_203B2BC->item2.quantity = 0; + GivePokemonItem(sUnknown_203B2BC->targetPoke, &sUnknown_203B2BC->item2); SetFriendAreaActionMenuState(6); break; case 2: PlaySound(0x14d); - if(IsThrowableItem(gUnknown_203B2BC->item2.id)) - gTeamInventoryRef->teamStorage[gUnknown_203B2BC->item2.id] += gUnknown_203B2BC->item2.quantity; + if(IsThrowableItem(sUnknown_203B2BC->item2.id)) + gTeamInventoryRef->teamStorage[sUnknown_203B2BC->item2.id] += sUnknown_203B2BC->item2.quantity; else - gTeamInventoryRef->teamStorage[gUnknown_203B2BC->item2.id] += 1; - gUnknown_203B2BC->item2.id = ITEM_NOTHING; - gUnknown_203B2BC->item2.quantity = 0; - GivePokemonItem(gUnknown_203B2BC->targetPoke, &gUnknown_203B2BC->item2); + gTeamInventoryRef->teamStorage[sUnknown_203B2BC->item2.id] += 1; + sUnknown_203B2BC->item2.id = ITEM_NOTHING; + sUnknown_203B2BC->item2.quantity = 0; + GivePokemonItem(sUnknown_203B2BC->targetPoke, &sUnknown_203B2BC->item2); SetFriendAreaActionMenuState(7); break; case 0: diff --git a/src/thank_you_wonder_mail.c b/src/thank_you_wonder_mail.c index 51d51a89b..cd13f81b9 100644 --- a/src/thank_you_wonder_mail.c +++ b/src/thank_you_wonder_mail.c @@ -22,7 +22,7 @@ #include "text2.h" #include "wonder_mail.h" -extern WonderMailStruct_203B2C4 *gUnknown_203B2C4; +static EWRAM_DATA_2 WonderMailStruct_203B2C4 *sUnknown_203B2C4 = {0}; #define THANK_YOU_MAIL_MAIN_MENU 0 #define ANYTHING_ELSE_THANK_YOU_MAIN_MENU 1 @@ -236,50 +236,50 @@ u32 CreateThankYouMailPelipper(void) ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); - gUnknown_203B2C4 = MemoryAlloc(sizeof(WonderMailStruct_203B2C4), 8); - MemoryFill8((u8 *)gUnknown_203B2C4, 0, sizeof(WonderMailStruct_203B2C4)); + sUnknown_203B2C4 = MemoryAlloc(sizeof(WonderMailStruct_203B2C4), 8); + MemoryFill8((u8 *)sUnknown_203B2C4, 0, sizeof(WonderMailStruct_203B2C4)); CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_PELIPPER); monName = GetMonSpecies(MONSTER_PELIPPER); strcpy(gAvailablePokemonNames, monName); faceFile = GetDialogueSpriteDataPtr(MONSTER_PELIPPER); - gUnknown_203B2C4->faceFile = faceFile; - gUnknown_203B2C4->faceData = faceFile->data; - gUnknown_203B2C4->unk42C = 0; - gUnknown_203B2C4->unk42D = 0; - gUnknown_203B2C4->unk42E = 0; - gUnknown_203B2C4->unk428 = 2; - gUnknown_203B2C4->unk42A = 8; + sUnknown_203B2C4->faceFile = faceFile; + sUnknown_203B2C4->faceData = faceFile->data; + sUnknown_203B2C4->unk42C = 0; + sUnknown_203B2C4->unk42D = 0; + sUnknown_203B2C4->unk42E = 0; + sUnknown_203B2C4->unk428 = 2; + sUnknown_203B2C4->unk42A = 8; for(counter = 0; counter < PASSWORD_BUFFER_SIZE; counter++){ - gUnknown_203B2C4->passwordBuffer[counter] = 0; + sUnknown_203B2C4->passwordBuffer[counter] = 0; } - gUnknown_203B2C4->wonderMailMethod = WONDER_MAIL_GAME_LINK; - gUnknown_203B2C4->wonderMailMode = WONDER_MAIL_MODE_SEND; + sUnknown_203B2C4->wonderMailMethod = WONDER_MAIL_GAME_LINK; + sUnknown_203B2C4->wonderMailMode = WONDER_MAIL_MODE_SEND; index = GetFirstIndexofMailType(6); if (index != -1) { mail = GetMailatIndex(index); - gUnknown_203B2C4->unk41C = mail->item; - gUnknown_203B2C4->mailIndex = index; - gUnknown_203B2C4->unk430 = mail->unk10.unk10; + sUnknown_203B2C4->unk41C = mail->item; + sUnknown_203B2C4->mailIndex = index; + sUnknown_203B2C4->unk430 = mail->unk10.unk10; SetThankYouMailMenuState(5); } else { - gUnknown_203B2C4->unk41C = gUnknown_80DED44; - gUnknown_203B2C4->mailIndex = -1; + sUnknown_203B2C4->unk41C = gUnknown_80DED44; + sUnknown_203B2C4->mailIndex = -1; SetThankYouMailMenuState(THANK_YOU_MAIL_MAIN_MENU); } - gUnknown_203B2C4->fallbackState = 0x2b; + sUnknown_203B2C4->fallbackState = 0x2b; return 1; } u32 ThankYouMailPelipperCallback(void) { - switch(gUnknown_203B2C4->state) { + switch(sUnknown_203B2C4->state) { case 5: sub_802AB7C(); break; @@ -409,11 +409,11 @@ u32 ThankYouMailPelipperCallback(void) void CleanThankYouMailPelipper(void) { - if(gUnknown_203B2C4 != NULL) + if(sUnknown_203B2C4 != NULL) { - CloseFile(gUnknown_203B2C4->faceFile); - MemoryFree(gUnknown_203B2C4); - gUnknown_203B2C4 = NULL; + CloseFile(sUnknown_203B2C4->faceFile); + MemoryFree(sUnknown_203B2C4); + sUnknown_203B2C4 = NULL; sub_8030DE4(); sub_801B450(); sub_803084C(); @@ -437,34 +437,34 @@ void PrintThankYouMailLinkError(u32 errorCode) { switch(errorCode) { case COMMS_INCORRECT_NUM_SYSTEMS: - sub_80141B4(gUnknown_80DEF28, 0, &gUnknown_203B2C4->faceFile, 0x10d); + sub_80141B4(gUnknown_80DEF28, 0, &sUnknown_203B2C4->faceFile, 0x10d); break; case COMMS_DIFFERENT_MODES: - sub_80141B4(gUnknown_80DEF80, 0, &gUnknown_203B2C4->faceFile, 0x10d); + sub_80141B4(gUnknown_80DEF80, 0, &sUnknown_203B2C4->faceFile, 0x10d); break; case COMMS_NO_ROOM_STORAGE: - sub_80141B4(gUnknown_80DEFDC, 0, &gUnknown_203B2C4->faceFile, 0x10d); + sub_80141B4(gUnknown_80DEFDC, 0, &sUnknown_203B2C4->faceFile, 0x10d); break; case COMMS_DUPLICATE_MAIL: - sub_80141B4(gUnknown_80DF044, 0, &gUnknown_203B2C4->faceFile, 0x10d); + sub_80141B4(gUnknown_80DF044, 0, &sUnknown_203B2C4->faceFile, 0x10d); break; case COMMS_NOT_ELIGIBLE_1: - sub_80141B4(gUnknown_80DF0A0, 0, &gUnknown_203B2C4->faceFile, 0x10d); + sub_80141B4(gUnknown_80DF0A0, 0, &sUnknown_203B2C4->faceFile, 0x10d); break; case COMMS_NOT_ELIGIBLE_2: - sub_80141B4(gUnknown_80DF0A0, 0, &gUnknown_203B2C4->faceFile, 0x10d); + sub_80141B4(gUnknown_80DF0A0, 0, &sUnknown_203B2C4->faceFile, 0x10d); break; case COMMS_NO_ROOM_MAIL: - sub_80141B4(gUnknown_80DF0E0, 0, &gUnknown_203B2C4->faceFile, 0x10d); + sub_80141B4(gUnknown_80DF0E0, 0, &sUnknown_203B2C4->faceFile, 0x10d); break; case 1: case COMMS_NO_RESPONSE: case 5: case 14: - sub_80141B4(gUnknown_80DEF04, 0, &gUnknown_203B2C4->faceFile, 0x10d); + sub_80141B4(gUnknown_80DEF04, 0, &sUnknown_203B2C4->faceFile, 0x10d); break; case COMMS_NOT_READY: - sub_80141B4(gUnknown_80DF138, 0, &gUnknown_203B2C4->faceFile, 0x10d); + sub_80141B4(gUnknown_80DF138, 0, &sUnknown_203B2C4->faceFile, 0x10d); break; case COMMS_GOOD: default: @@ -479,21 +479,21 @@ void DisplayThankYouMailCommsOutcome(void) if (sub_80144A4(&auStack20) != 0) { return; } - MemoryFill8((u8 *)&gUnknown_203B2C4->unk41C, 0, sizeof(Item)); - gUnknown_203B2C4->unk41C.id = ITEM_NOTHING; - gUnknown_203B2C4->unk41C.quantity = 1; - gUnknown_203B2C4->unk41C.flags = 0; - if (gUnknown_203B2C4->linkError == COMMS_GOOD) { - switch(gUnknown_203B2C4->unk40) + MemoryFill8((u8 *)&sUnknown_203B2C4->unk41C, 0, sizeof(Item)); + sUnknown_203B2C4->unk41C.id = ITEM_NOTHING; + sUnknown_203B2C4->unk41C.quantity = 1; + sUnknown_203B2C4->unk41C.flags = 0; + if (sUnknown_203B2C4->linkError == COMMS_GOOD) { + switch(sUnknown_203B2C4->unk40) { case 6: - switch(gUnknown_203B2C4->wonderMailMethod) + switch(sUnknown_203B2C4->wonderMailMethod) { case WONDER_MAIL_GAME_LINK: case WONDER_MAIL_PASSWORD: case 6: // "Thank-You Mail has been sent" - sub_80141B4(gUnknown_80DF194, 0, &gUnknown_203B2C4->faceFile, 0x10d); + sub_80141B4(gUnknown_80DF194, 0, &sUnknown_203B2C4->faceFile, 0x10d); break; case 4: default: @@ -510,7 +510,7 @@ void DisplayThankYouMailCommsOutcome(void) } else { - PrintThankYouMailLinkError(gUnknown_203B2C4->linkError); + PrintThankYouMailLinkError(sUnknown_203B2C4->linkError); SetThankYouMailMenuState(PRINT_THANK_YOU_ERROR); } } @@ -523,7 +523,7 @@ void sub_802A050(void) case 2: sub_8031E10(); ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2C4->unk3BC, TRUE, TRUE); + sub_800641C(sUnknown_203B2C4->unk3BC, TRUE, TRUE); SetThankYouMailMenuState(0x1B); break; case 1: @@ -563,16 +563,16 @@ void sub_802A0C8(void) SetThankYouMailMenuState(ANYTHING_ELSE_THANK_YOU_MAIN_MENU); break; case 3: - gUnknown_203B2C4->mailIndex = sub_80307EC(); + sUnknown_203B2C4->mailIndex = sub_80307EC(); SetThankYouMailMenuState(0x11); break; case 4: - gUnknown_203B2C4->fallbackState = 0x10; - gUnknown_203B2C4->mailIndex = sub_80307EC(); - sub_8006518(gUnknown_203B2C4->unk3BC); + sUnknown_203B2C4->fallbackState = 0x10; + sUnknown_203B2C4->mailIndex = sub_80307EC(); + sub_8006518(sUnknown_203B2C4->unk3BC); ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); - sub_8030D40(gUnknown_203B2C4->mailIndex,0); + sub_8030D40(sUnknown_203B2C4->mailIndex,0); SetThankYouMailMenuState(0x12); break; } @@ -593,8 +593,8 @@ void sub_802A174(void) menuAction = -1; sub_8030768(0); - if (sub_8012FD8(&gUnknown_203B2C4->unk21C[3]) == 0) { - sub_8013114(&gUnknown_203B2C4->unk21C[3], &menuAction); + if (sub_8012FD8(&sUnknown_203B2C4->unk21C[3]) == 0) { + sub_8013114(&sUnknown_203B2C4->unk21C[3], &menuAction); } switch(menuAction) @@ -604,16 +604,16 @@ void sub_802A174(void) SetThankYouMailMenuState(0xe); break; case 0xC: - gUnknown_203B2C4->fallbackState = 0x2b; - sub_8006518(gUnknown_203B2C4->unk3BC); + sUnknown_203B2C4->fallbackState = 0x2b; + sub_8006518(sUnknown_203B2C4->unk3BC); ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); - sub_8030D40(gUnknown_203B2C4->mailIndex,0); + sub_8030D40(sUnknown_203B2C4->mailIndex,0); SetThankYouMailMenuState(0x12); break; case 0: case 0xD: - sub_8035CC0(gUnknown_203B2C4->unk35C,2); + sub_8035CC0(sUnknown_203B2C4->unk35C,2); sub_8030810(1); SetThankYouMailMenuState(0x10); default: @@ -629,14 +629,14 @@ void sub_802A230(void) case 3: sub_8030DE4(); ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2C4->unk3BC, TRUE, TRUE); + sub_800641C(sUnknown_203B2C4->unk3BC, TRUE, TRUE); sub_803092C(); - if (gUnknown_203B2C4->fallbackState == 0x2b) { - sub_8035CF4(gUnknown_203B2C4->unk21C, 3, TRUE); + if (sUnknown_203B2C4->fallbackState == 0x2b) { + sub_8035CF4(sUnknown_203B2C4->unk21C, 3, TRUE); SetThankYouMailMenuState(0x11); } else { - SetThankYouMailMenuState(gUnknown_203B2C4->fallbackState); + SetThankYouMailMenuState(sUnknown_203B2C4->fallbackState); } break; default: @@ -647,9 +647,9 @@ void sub_802A230(void) void sub_802A28C(void) { - gUnknown_203B2C4->unk41C.id = ITEM_NOTHING; - gUnknown_203B2C4->unk41C.quantity = 1; - gUnknown_203B2C4->unk41C.flags = 0; + sUnknown_203B2C4->unk41C.id = ITEM_NOTHING; + sUnknown_203B2C4->unk41C.quantity = 1; + sUnknown_203B2C4->unk41C.flags = 0; switch(sub_801CA08(TRUE)) { @@ -658,16 +658,16 @@ void sub_802A28C(void) SetThankYouMailMenuState(ANYTHING_ELSE_THANK_YOU_MAIN_MENU); break; case 3: - gUnknown_203B2C4->unk41C.id = sub_801CB24(); + sUnknown_203B2C4->unk41C.id = sub_801CB24(); SetThankYouMailMenuState(0x14); break; case 4: - gUnknown_203B2C4->fallbackState = 0x13; - gUnknown_203B2C4->unk41C.id = sub_801CB24(); - sub_8006518(gUnknown_203B2C4->unk3BC); + sUnknown_203B2C4->fallbackState = 0x13; + sUnknown_203B2C4->unk41C.id = sub_801CB24(); + sub_8006518(sUnknown_203B2C4->unk3BC); ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); - sub_801B3C0(&gUnknown_203B2C4->unk41C); + sub_801B3C0(&sUnknown_203B2C4->unk41C); SetThankYouMailMenuState(SHOW_ITEM_TO_SEND_INFO); break; } @@ -681,14 +681,14 @@ void sub_802A33C(void) case 3: sub_801B450(); ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2C4->unk3BC, TRUE, TRUE); + sub_800641C(sUnknown_203B2C4->unk3BC, TRUE, TRUE); sub_801CB5C(TRUE); - if (gUnknown_203B2C4->fallbackState == 0x2b) { - sub_8035CF4(gUnknown_203B2C4->unk21C,3,TRUE); + if (sUnknown_203B2C4->fallbackState == 0x2b) { + sub_8035CF4(sUnknown_203B2C4->unk21C,3,TRUE); SetThankYouMailMenuState(0x14); } else { - SetThankYouMailMenuState(gUnknown_203B2C4->fallbackState); + SetThankYouMailMenuState(sUnknown_203B2C4->fallbackState); } break; case 1: @@ -703,8 +703,8 @@ void sub_802A39C(void) menuAction = -1; sub_801CA08(FALSE); - if (sub_8012FD8(&gUnknown_203B2C4->unk21C[3]) == 0) { - sub_8013114(&gUnknown_203B2C4->unk21C[3], &menuAction); + if (sub_8012FD8(&sUnknown_203B2C4->unk21C[3]) == 0) { + sub_8013114(&sUnknown_203B2C4->unk21C[3], &menuAction); } switch(menuAction) @@ -714,16 +714,16 @@ void sub_802A39C(void) SetThankYouMailMenuState(CONFIRM_ITEM_TO_SEND); break; case 0xC: - gUnknown_203B2C4->fallbackState = 0x2b; - sub_8006518(gUnknown_203B2C4->unk3BC); + sUnknown_203B2C4->fallbackState = 0x2b; + sub_8006518(sUnknown_203B2C4->unk3BC); ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); - sub_801B3C0(&gUnknown_203B2C4->unk41C); + sub_801B3C0(&sUnknown_203B2C4->unk41C); SetThankYouMailMenuState(SHOW_ITEM_TO_SEND_INFO); break; case 0: case 0xD: - sub_8035CC0(gUnknown_203B2C4->unk35C, 3); + sub_8035CC0(sUnknown_203B2C4->unk35C, 3); sub_801CCD8(); SetThankYouMailMenuState(0x13); default: @@ -799,18 +799,18 @@ void HandleThankYouMailPasswordMenu(void) switch(return_var) { case 3: - switch(sub_8039068(PASSWORD_ENTRY_THANK_YOU_MAIL_MODE,gUnknown_203B2C4->passwordBuffer,&mail1)) + switch(sub_8039068(PASSWORD_ENTRY_THANK_YOU_MAIL_MODE,sUnknown_203B2C4->passwordBuffer,&mail1)) { case PASSWORD_ENTRY_INCORRECT_PASSWORD: - sub_8014248(gUnknown_80DF1C0, 0, 7, gUnknown_80DEE44, 0, 4, 0, &gUnknown_203B2C4->faceFile, 0xc); + sub_8014248(gUnknown_80DF1C0, 0, 7, gUnknown_80DEE44, 0, 4, 0, &sUnknown_203B2C4->faceFile, 0xc); SetThankYouMailMenuState(THANK_YOU_PASSWORD_WRONG); break; case PASSWORD_ENTRY_NOT_THANK_YOU_MAIL: - sub_80141B4(gUnknown_80DF208, 0, &gUnknown_203B2C4->faceFile, 0x10d); + sub_80141B4(gUnknown_80DF208, 0, &sUnknown_203B2C4->faceFile, 0x10d); SetThankYouMailMenuState(PRINT_THANK_YOU_ERROR); break; case PASSWORD_ENTRY_DUPLICATE_THANK_YOU_MAIL: - sub_80141B4(gUnknown_80DF0A0, 0, &gUnknown_203B2C4->faceFile, 0x10d); + sub_80141B4(gUnknown_80DF0A0, 0, &sUnknown_203B2C4->faceFile, 0x10d); SetThankYouMailMenuState(PRINT_THANK_YOU_ERROR); break; case PASSWORD_ENTRY_THANK_YOU_MAIL_SUCCESS: @@ -818,7 +818,7 @@ void HandleThankYouMailPasswordMenu(void) mail = GetMailatIndex(mailIndex); *mail = mail1; mail->mailType = 6; - gUnknown_203B2C4->unk430 = mail1.unk10.unk10; + sUnknown_203B2C4->unk430 = mail1.unk10.unk10; SetThankYouMailMenuState(THANK_YOU_PASSWORD_SUCCESS); break; default: @@ -830,7 +830,7 @@ void HandleThankYouMailPasswordMenu(void) case 2: sub_80155F0(); ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2C4->unk3BC, TRUE, TRUE); + sub_800641C(sUnknown_203B2C4->unk3BC, TRUE, TRUE); SetThankYouMailMenuState(ANYTHING_ELSE_THANK_YOU_MAIN_MENU); break; } @@ -907,7 +907,7 @@ void sub_802A75C(void) { case 7: // NOTE: if statement is needed to match - if(gUnknown_203B2C4->wonderMailMode) + if(sUnknown_203B2C4->wonderMailMode) SetThankYouMailMenuState(COMMUNICATING_THANK_YOU_MAIL); else SetThankYouMailMenuState(COMMUNICATING_THANK_YOU_MAIL); @@ -928,12 +928,12 @@ void HandleConfirmItemtoSendMenu(void) switch(menuAction) { case 7: - mail = GetMailatIndex(gUnknown_203B2C4->mailIndex); - if(gUnknown_203B2C4->unk41C.id != ITEM_NOTHING) + mail = GetMailatIndex(sUnknown_203B2C4->mailIndex); + if(sUnknown_203B2C4->unk41C.id != ITEM_NOTHING) { - mail->item = gUnknown_203B2C4->unk41C; + mail->item = sUnknown_203B2C4->unk41C; } - gTeamInventoryRef->teamStorage[gUnknown_203B2C4->unk41C.id]--; + gTeamInventoryRef->teamStorage[sUnknown_203B2C4->unk41C.id]--; SetThankYouMailMenuState(0x29); break; case 8: @@ -965,7 +965,7 @@ void sub_802A850(void) if(!WriteSavePak()) { FinishWriteSavePak(); - switch(gUnknown_203B2C4->wonderMailMethod) + switch(sUnknown_203B2C4->wonderMailMethod) { case WONDER_MAIL_GAME_LINK: case 4: @@ -996,7 +996,7 @@ void sub_802A8BC(void) switch(menuAction) { case 0xA: - switch(gUnknown_203B2C4->wonderMailMethod) + switch(sUnknown_203B2C4->wonderMailMethod) { case WONDER_MAIL_GAME_LINK: case 4: @@ -1032,7 +1032,7 @@ void sub_802A910(void) } break; case 0xA: - switch(gUnknown_203B2C4->wonderMailMethod) + switch(sUnknown_203B2C4->wonderMailMethod) { case WONDER_MAIL_GAME_LINK: case 4: @@ -1067,7 +1067,7 @@ void sub_802A9A8(void) switch(menuAction) { case 0x7: - switch(gUnknown_203B2C4->wonderMailMethod) + switch(sUnknown_203B2C4->wonderMailMethod) { case WONDER_MAIL_GAME_LINK: case 4: @@ -1113,8 +1113,8 @@ void HandleMailCommunicationMenu(void) case WONDER_MAIL_GAME_LINK: case 4: case WONDER_MAIL_PASSWORD: - gUnknown_203B2C4->wonderMailMethod = menuAction; - switch(gUnknown_203B2C4->wonderMailMode) + sUnknown_203B2C4->wonderMailMethod = menuAction; + switch(sUnknown_203B2C4->wonderMailMode) { case WONDER_MAIL_MODE_SEND: mail = GetMailatIndex(GetFirstIndexofMailType(WONDER_MAIL_TYPE_THANK_YOU)); @@ -1128,7 +1128,7 @@ void HandleMailCommunicationMenu(void) } break; default: - if(gUnknown_203B2C4->wonderMailMethod == WONDER_MAIL_PASSWORD) + if(sUnknown_203B2C4->wonderMailMethod == WONDER_MAIL_PASSWORD) { SetThankYouMailMenuState(PROMPT_THANK_YOU_PASSWORD); } @@ -1172,8 +1172,8 @@ void HandleThankYouMailPelipperMainMenu(void) switch(menuAction) { case 1: - gUnknown_203B2C4->unk40 = 6; - gUnknown_203B2C4->wonderMailMode = WONDER_MAIL_MODE_SEND; + sUnknown_203B2C4->unk40 = 6; + sUnknown_203B2C4->wonderMailMode = WONDER_MAIL_MODE_SEND; if(CountMailType(5) == 0) { SetThankYouMailMenuState(NO_THANK_YOU_MAIL); @@ -1184,8 +1184,8 @@ void HandleThankYouMailPelipperMainMenu(void) } break; case 2: - gUnknown_203B2C4->unk40 = 7; - gUnknown_203B2C4->wonderMailMode = WONDER_MAIL_MODE_RECEIVE; + sUnknown_203B2C4->unk40 = 7; + sUnknown_203B2C4->wonderMailMode = WONDER_MAIL_MODE_RECEIVE; SetThankYouMailMenuState(SELECT_THANK_YOU_MAIL_COMMS); break; case 0: @@ -1224,7 +1224,7 @@ void sub_802AB98(void) CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_PELIPPER); monName = GetMonSpecies(MONSTER_PELIPPER); strcpy(gAvailablePokemonNames, monName); - DeleteMailAtIndex(GetMailIndex(6, gUnknown_203B2C4->unk430)); + DeleteMailAtIndex(GetMailIndex(6, sUnknown_203B2C4->unk430)); SetThankYouMailMenuState(0x24); break; default: @@ -1248,20 +1248,20 @@ void UpdateThankYouMailText(void) s32 linkStatus; unkStruct_203B480 *mail; - switch(gUnknown_203B2C4->state) { + switch(sUnknown_203B2C4->state) { case 5: pokeStruct = GetPlayerPokemonStruct(); sub_80922B4(buffer1,pokeStruct->name, POKEMON_NAME_LENGTH); - sprintfStatic(gUnknown_203B2C4->formattedString,gUnknown_80DF250,buffer1); - sub_80141B4(gUnknown_203B2C4->formattedString,0,&gUnknown_203B2C4->faceFile,0x10d); + sprintfStatic(sUnknown_203B2C4->formattedString,gUnknown_80DF250,buffer1); + sub_80141B4(sUnknown_203B2C4->formattedString,0,&sUnknown_203B2C4->faceFile,0x10d); break; case 0xe: // Is it OK to send this Thank-You Mail? - sub_8014248(gUnknown_80DF304,0,7,gUnknown_80DEE60,0,4,0,&gUnknown_203B2C4->faceFile,0xc); + sub_8014248(gUnknown_80DF304,0,7,gUnknown_80DEE60,0,4,0,&sUnknown_203B2C4->faceFile,0xc); break; case PROMPT_THANK_YOU_TO_SEND: // Please choose the Thank-You Mail that you want to send to your friend - sub_80141B4(gUnknown_80DF330,0,&gUnknown_203B2C4->faceFile,0x10d); + sub_80141B4(gUnknown_80DF330,0,&sUnknown_203B2C4->faceFile,0x10d); break; case 0x10: if (sub_8030894() != 0) @@ -1271,10 +1271,10 @@ void UpdateThankYouMailText(void) sub_80306A8(WONDER_MAIL_TYPE_THANK_YOU,0,0,6); break; case 0x11: - sub_8006518(gUnknown_203B2C4->unk35C); - SetMenuItems(gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED60,gUnknown_80DED78,TRUE,0,FALSE); + sub_8006518(sUnknown_203B2C4->unk35C); + SetMenuItems(sUnknown_203B2C4->unk21C,sUnknown_203B2C4->unk35C,3,&gUnknown_80DED60,gUnknown_80DED78,TRUE,0,FALSE); sub_803092C(); - sub_8035CF4(gUnknown_203B2C4->unk21C,3,TRUE); + sub_8035CF4(sUnknown_203B2C4->unk21C,3,TRUE); break; case 0x13: if (sub_801D008() != NULL) @@ -1287,41 +1287,41 @@ void UpdateThankYouMailText(void) } break; case 0x14: - sub_8006518(gUnknown_203B2C4->unk35C); - SetMenuItems(gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED48,gUnknown_80DED78,TRUE,0,FALSE); + sub_8006518(sUnknown_203B2C4->unk35C); + SetMenuItems(sUnknown_203B2C4->unk21C,sUnknown_203B2C4->unk35C,3,&gUnknown_80DED48,gUnknown_80DED78,TRUE,0,FALSE); sub_801CCD8(); - sub_8035CF4(gUnknown_203B2C4->unk21C,3,TRUE); + sub_8035CF4(sUnknown_203B2C4->unk21C,3,TRUE); break; case THANK_YOU_MAIL_COMMS_FINISHED: - gUnknown_203B2C4->linkError = COMMS_GOOD; + sUnknown_203B2C4->linkError = COMMS_GOOD; sub_8011830(); - linkStatus = sub_8037B28(gUnknown_203B2C4->unk40); - gUnknown_203B2C4->linkError = linkStatus; + linkStatus = sub_8037B28(sUnknown_203B2C4->unk40); + sUnknown_203B2C4->linkError = linkStatus; if (linkStatus == COMMS_GOOD) { - switch(gUnknown_203B2C4->unk40) + switch(sUnknown_203B2C4->unk40) { case 6: - MemoryFill8((u8 *)&gUnknown_203B2C4->unk1B8,0, sizeof(unkStruct_203B480)); - gUnknown_203B2C4->unk1B8 = *GetMailatIndex(gUnknown_203B2C4->mailIndex); - gUnknown_203B2C4->linkError = sub_8037D64(gUnknown_203B2C4->unk40,&gUnknown_203B2C4->unk1B8,&gUnknown_203B2C4->unk1E8); + MemoryFill8((u8 *)&sUnknown_203B2C4->unk1B8,0, sizeof(unkStruct_203B480)); + sUnknown_203B2C4->unk1B8 = *GetMailatIndex(sUnknown_203B2C4->mailIndex); + sUnknown_203B2C4->linkError = sub_8037D64(sUnknown_203B2C4->unk40,&sUnknown_203B2C4->unk1B8,&sUnknown_203B2C4->unk1E8); break; case 7: - MemoryFill8((u8 *)&gUnknown_203B2C4->unk1B8,0, sizeof(unkStruct_203B480)); - MemoryFill8((u8 *)&gUnknown_203B2C4->unk1E8,0, sizeof(unkStruct_203B480)); - gUnknown_203B2C4->linkError = sub_8037D64(gUnknown_203B2C4->unk40,&gUnknown_203B2C4->unk1B8,&gUnknown_203B2C4->unk1E8); + MemoryFill8((u8 *)&sUnknown_203B2C4->unk1B8,0, sizeof(unkStruct_203B480)); + MemoryFill8((u8 *)&sUnknown_203B2C4->unk1E8,0, sizeof(unkStruct_203B480)); + sUnknown_203B2C4->linkError = sub_8037D64(sUnknown_203B2C4->unk40,&sUnknown_203B2C4->unk1B8,&sUnknown_203B2C4->unk1E8); break; } - if (gUnknown_203B2C4->linkError == COMMS_GOOD){ - switch(gUnknown_203B2C4->unk40){ + if (sUnknown_203B2C4->linkError == COMMS_GOOD){ + switch(sUnknown_203B2C4->unk40){ case 6: case 7: - gUnknown_203B2C4->linkError = sub_80381F4(gUnknown_203B2C4->unk40,&gUnknown_203B2C4->unk1B8,&gUnknown_203B2C4->unk1E8); + sUnknown_203B2C4->linkError = sub_80381F4(sUnknown_203B2C4->unk40,&sUnknown_203B2C4->unk1B8,&sUnknown_203B2C4->unk1E8); if ( sub_800D588() != '\0') { - gUnknown_203B2C4->unk430 = gUnknown_203B2C4->unk1E8.unk10.unk10; + sUnknown_203B2C4->unk430 = sUnknown_203B2C4->unk1E8.unk10.unk10; } else { - gUnknown_203B2C4->unk430 = gUnknown_203B2C4->unk1B8.unk10.unk10; + sUnknown_203B2C4->unk430 = sUnknown_203B2C4->unk1B8.unk10.unk10; } break; } @@ -1331,44 +1331,44 @@ void UpdateThankYouMailText(void) break; case PROMPT_THANK_YOU_PASSWORD: // OK. Please enter the Thank-You Mail Password - sub_80141B4(gUnknown_80DF380,0,&gUnknown_203B2C4->faceFile,0x10d); + sub_80141B4(gUnknown_80DF380,0,&sUnknown_203B2C4->faceFile,0x10d); break; case PROCESS_THANK_YOU_PASSWORD: - sub_8006518(gUnknown_203B2C4->unk3BC); + sub_8006518(sUnknown_203B2C4->unk3BC); ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); - sub_80151C0(4,gUnknown_203B2C4->passwordBuffer); + sub_80151C0(4,sUnknown_203B2C4->passwordBuffer); break; case 0x1a: - sub_8006518(gUnknown_203B2C4->unk3BC); + sub_8006518(sUnknown_203B2C4->unk3BC); ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); - sub_8031D70(gUnknown_203B2C4->mailIndex,0); + sub_8031D70(sUnknown_203B2C4->mailIndex,0); break; case 0x1b: // Please give this password to the friend that rescued your team. I also must save your adventure - sub_80141B4(gUnknown_80DF3B4,0,&gUnknown_203B2C4->faceFile,0x10d); + sub_80141B4(gUnknown_80DF3B4,0,&sUnknown_203B2C4->faceFile,0x10d); break; case DISPLAY_THANK_YOU_PASSWORD: // Ok. Here is your Thank You Mail Password - sub_80141B4(gUnknown_80DF418,0,&gUnknown_203B2C4->faceFile,0x10d); + sub_80141B4(gUnknown_80DF418,0,&sUnknown_203B2C4->faceFile,0x10d); break; case 0x24: // I need to save your adventure - sub_80141B4(gUnknown_80DF44C,0,&gUnknown_203B2C4->faceFile,0x10d); + sub_80141B4(gUnknown_80DF44C,0,&sUnknown_203B2C4->faceFile,0x10d); break; case 0x20: // There we go. I'm all done. - sub_80141B4(gUnknown_80DF46C,0,&gUnknown_203B2C4->faceFile,0x10d); + sub_80141B4(gUnknown_80DF46C,0,&sUnknown_203B2C4->faceFile,0x10d); break; case THANK_YOU_PASSWORD_SUCCESS: - switch(gUnknown_203B2C4->wonderMailMethod) + switch(sUnknown_203B2C4->wonderMailMethod) { case WONDER_MAIL_GAME_LINK: case WONDER_MAIL_PASSWORD: case 6: // A Thank You Mail has arrived from your friend - sub_80141B4(gUnknown_80DF4F4,0,&gUnknown_203B2C4->faceFile,0x10d); + sub_80141B4(gUnknown_80DF4F4,0,&sUnknown_203B2C4->faceFile,0x10d); break; case 4: break; @@ -1376,23 +1376,23 @@ void UpdateThankYouMailText(void) break; case 0x22: monName = GetMonSpecies(MONSTER_PELIPPER); - strcpy(gUnknown_203B2C4->unk53C.clientName,monName); // 0x53C - gUnknown_203B2C4->unk53C.clientSpecies = MONSTER_PELIPPER; // 0x550 - gUnknown_203B2C4->unk53C.unk16 = 2; // 0x552 - gUnknown_203B2C4->unk53C.moneyReward = 0; // 0x554 - mailIndex = GetMailIndex(6,gUnknown_203B2C4->unk430); + strcpy(sUnknown_203B2C4->unk53C.clientName,monName); // 0x53C + sUnknown_203B2C4->unk53C.clientSpecies = MONSTER_PELIPPER; // 0x550 + sUnknown_203B2C4->unk53C.unk16 = 2; // 0x552 + sUnknown_203B2C4->unk53C.moneyReward = 0; // 0x554 + mailIndex = GetMailIndex(6,sUnknown_203B2C4->unk430); mail = GetMailatIndex(mailIndex); itemIndex = mail->item.id; if (itemIndex != ITEM_NOTHING) - gUnknown_203B2C4->unk53C.itemRewards[0] = itemIndex; // unk558 + sUnknown_203B2C4->unk53C.itemRewards[0] = itemIndex; // unk558 else - gUnknown_203B2C4->unk53C.itemRewards[0] = ITEM_NOTHING; // unk558 - gUnknown_203B2C4->unk53C.quantity = 1; // unk55B - gUnknown_203B2C4->unk53C.teamRankPtsReward = GetDungeonTeamRankPts(&mail->unk4.dungeon, 0); // unk560 - gUnknown_203B2C4->unk53C.itemRewards[1] = 0; // unk559 - gUnknown_203B2C4->unk53C.itemRewards[2] = 0; // unk55A - gUnknown_203B2C4->unk53C.friendAreaReward = 0; // unk55C - sub_802F204(&gUnknown_203B2C4->unk53C,0); // unk53C + sUnknown_203B2C4->unk53C.itemRewards[0] = ITEM_NOTHING; // unk558 + sUnknown_203B2C4->unk53C.quantity = 1; // unk55B + sUnknown_203B2C4->unk53C.teamRankPtsReward = GetDungeonTeamRankPts(&mail->unk4.dungeon, 0); // unk560 + sUnknown_203B2C4->unk53C.itemRewards[1] = 0; // unk559 + sUnknown_203B2C4->unk53C.itemRewards[2] = 0; // unk55A + sUnknown_203B2C4->unk53C.friendAreaReward = 0; // unk55C + sub_802F204(&sUnknown_203B2C4->unk53C,0); // unk53C break; case COMMUNICATING_THANK_YOU_MAIL: // Communicating.. @@ -1401,75 +1401,75 @@ void UpdateThankYouMailText(void) break; case 0x17: // There. I've sent your thank-you mail. I need to save your adventure. - sub_80141B4(gUnknown_80DF594,0,&gUnknown_203B2C4->faceFile,0x10d); + sub_80141B4(gUnknown_80DF594,0,&sUnknown_203B2C4->faceFile,0x10d); break; case PROMPT_CONNECT_GAME_LINK: // Please connect the GBA systems with a Game Link Cable - sub_8014248(gUnknown_80DF5E4,0,7,gUnknown_80DEE44,0,4,0,&gUnknown_203B2C4->faceFile,0xc); + sub_8014248(gUnknown_80DF5E4,0,7,gUnknown_80DEE44,0,4,0,&sUnknown_203B2C4->faceFile,0xc); break; case THANK_YOU_MAIL_COMMS_CLEANUP: pokeStruct2 = GetPlayerPokemonStruct(); sub_80922B4(buffer2, pokeStruct2->name, POKEMON_NAME_LENGTH); - sprintfStatic(gUnknown_203B2C4->formattedString,gUnknown_80DF63C,buffer2); - sub_80141B4(gUnknown_203B2C4->formattedString,0,&gUnknown_203B2C4->faceFile,0x10d); + sprintfStatic(sUnknown_203B2C4->formattedString,gUnknown_80DF63C,buffer2); + sub_80141B4(sUnknown_203B2C4->formattedString,0,&sUnknown_203B2C4->faceFile,0x10d); break; case CONFIRM_ITEM_TO_SEND: // The item you've chosen can't be exchanged later. Is that OK? - sub_8014248(gUnknown_80DF694,0,7,gUnknown_80DEEE4,0,4,0,&gUnknown_203B2C4->faceFile,0xc); + sub_8014248(gUnknown_80DF694,0,7,gUnknown_80DEEE4,0,4,0,&sUnknown_203B2C4->faceFile,0xc); break; case 0x29: // I need to save your adventure - sub_80141B4(gUnknown_80DF44C,0,&gUnknown_203B2C4->faceFile,0x10d); + sub_80141B4(gUnknown_80DF44C,0,&sUnknown_203B2C4->faceFile,0x10d); break; case 0x2a: // I've saved your adventure - sub_80141B4(gUnknown_80DF6F0,0,&gUnknown_203B2C4->faceFile,0x10d); + sub_80141B4(gUnknown_80DF6F0,0,&sUnknown_203B2C4->faceFile,0x10d); break; case PROMPT_ITEM_TO_SEND: // Ok, please choose the item to be sent - sub_80141B4(gUnknown_80DF710,0,&gUnknown_203B2C4->faceFile,0x10d); + sub_80141B4(gUnknown_80DF710,0,&sUnknown_203B2C4->faceFile,0x10d); break; case THANK_YOU_MAIL_STORAGE_EMPTY: // Oh? Your storage space is empty - sub_8014248(gUnknown_80DF73C,0,0,gUnknown_80DEEBC,0,4,0,&gUnknown_203B2C4->faceFile,0xc); + sub_8014248(gUnknown_80DF73C,0,0,gUnknown_80DEEBC,0,4,0,&sUnknown_203B2C4->faceFile,0xc); break; case PROMPT_REWARD_ITEM_TO_SEND: // Would you like to choose a reward item from storage and send it with your mail? - sub_8014248(gUnknown_80DF77C,0,0,gUnknown_80DEE7C,0,4,0,&gUnknown_203B2C4->faceFile,0xc); + sub_8014248(gUnknown_80DF77C,0,0,gUnknown_80DEE7C,0,4,0,&sUnknown_203B2C4->faceFile,0xc); break; case ITEM_EXISTS_ON_THANK_YOU_MAIL: // Oh? You've already attached a reward item on this mail. - sub_80141B4(gUnknown_80DF7D4,0,&gUnknown_203B2C4->faceFile,0x10d); + sub_80141B4(gUnknown_80DF7D4,0,&sUnknown_203B2C4->faceFile,0x10d); break; case PROMPT_RESEND_WITH_ATTACHED_ITEM: // Would you like to send it again with the item you chose before? - sub_8014248(gUnknown_80DF870,0,7,gUnknown_80DEE44,0,4,0,&gUnknown_203B2C4->faceFile,0xc); + sub_8014248(gUnknown_80DF870,0,7,gUnknown_80DEE44,0,4,0,&sUnknown_203B2C4->faceFile,0xc); break; case NO_THANK_YOU_MAIL: // You don't seem to have a Thank-You Mail - sub_80141B4(gUnknown_80DF8B4,0,&gUnknown_203B2C4->faceFile,0x10d); + sub_80141B4(gUnknown_80DF8B4,0,&sUnknown_203B2C4->faceFile,0x10d); break; case THANK_YOU_MAIL_MAIN_MENU: // Hello. I handle Thank You Mail. How may I help You? - sub_8014248(gUnknown_80DF8EC,0,1,gThankYouMailMainMenuItems,0,4,0,&gUnknown_203B2C4->faceFile,0xc); + sub_8014248(gUnknown_80DF8EC,0,1,gThankYouMailMainMenuItems,0,4,0,&sUnknown_203B2C4->faceFile,0xc); break; case ANYTHING_ELSE_THANK_YOU_MAIN_MENU: // May I help you with anything else? - sub_8014248(gUnknown_80DF928,0,1,gThankYouMailMainMenuItems,0,4,0,&gUnknown_203B2C4->faceFile,0xc); + sub_8014248(gUnknown_80DF928,0,1,gThankYouMailMainMenuItems,0,4,0,&sUnknown_203B2C4->faceFile,0xc); break; case EXIT_THANK_YOU_MAIL_PRE: // Please come see me anytime - sub_80141B4(gUnknown_80DF94C,0,&gUnknown_203B2C4->faceFile,0x10d); + sub_80141B4(gUnknown_80DF94C,0,&sUnknown_203B2C4->faceFile,0x10d); break; case SELECT_THANK_YOU_MAIL_COMMS: - switch(gUnknown_203B2C4->wonderMailMode){ + switch(sUnknown_203B2C4->wonderMailMode){ case WONDER_MAIL_MODE_SEND: // How would you like to send your thank you mail? - sub_8014248(gUnknown_80DF96C,0,3,gUnknown_80DEE08,0,4,0,&gUnknown_203B2C4->faceFile,0xc); + sub_8014248(gUnknown_80DF96C,0,3,gUnknown_80DEE08,0,4,0,&sUnknown_203B2C4->faceFile,0xc); break; case WONDER_MAIL_MODE_RECEIVE: // How would you like to recieve your friend's thank you mail? - sub_8014248(gUnknown_80DF9A4,0,3,gUnknown_80DEE08,0,4,0,&gUnknown_203B2C4->faceFile,0xc); + sub_8014248(gUnknown_80DF9A4,0,3,gUnknown_80DEE08,0,4,0,&sUnknown_203B2C4->faceFile,0xc); break; } break; @@ -1478,7 +1478,7 @@ void UpdateThankYouMailText(void) void SetThankYouMailMenuState(u32 newState) { - gUnknown_203B2C4->state = newState; + sUnknown_203B2C4->state = newState; nullsub_131(); UpdateThankYouMailText(); } diff --git a/src/wonder_mail.c b/src/wonder_mail.c index 16954eadc..da0f72226 100644 --- a/src/wonder_mail.c +++ b/src/wonder_mail.c @@ -20,7 +20,7 @@ #include "text2.h" #include "wonder_mail.h" -extern WonderMailStruct_203B2C0 *gUnknown_203B2C0; +static EWRAM_DATA_2 WonderMailStruct_203B2C0 *sUnknown_203B2C0 = {0}; extern void sub_8011C28(u32); @@ -261,26 +261,26 @@ u32 sub_8027F88(void) ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); - gUnknown_203B2C0 = MemoryAlloc(sizeof(WonderMailStruct_203B2C0), 8); - MemoryFill8((u8 *)gUnknown_203B2C0, 0, sizeof(WonderMailStruct_203B2C0)); - gUnknown_203B2C0->unk53C = 0; - gUnknown_203B2C0->mailIndex = -1; - gUnknown_203B2C0->speciesNum = -1; + sUnknown_203B2C0 = MemoryAlloc(sizeof(WonderMailStruct_203B2C0), 8); + MemoryFill8((u8 *)sUnknown_203B2C0, 0, sizeof(WonderMailStruct_203B2C0)); + sUnknown_203B2C0->unk53C = 0; + sUnknown_203B2C0->mailIndex = -1; + sUnknown_203B2C0->speciesNum = -1; CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_PELIPPER); monName = GetMonSpecies(MONSTER_PELIPPER); strcpy(gAvailablePokemonNames, monName); faceFile = GetDialogueSpriteDataPtr(MONSTER_PELIPPER); - gUnknown_203B2C0->faceFile = faceFile; - gUnknown_203B2C0->faceData = faceFile->data; - gUnknown_203B2C0->unk42C = 0; - gUnknown_203B2C0->unk42D = 0; - gUnknown_203B2C0->unk42E = 0; - gUnknown_203B2C0->unk428 = 2; - gUnknown_203B2C0->unk42A = 8; + sUnknown_203B2C0->faceFile = faceFile; + sUnknown_203B2C0->faceData = faceFile->data; + sUnknown_203B2C0->unk42C = 0; + sUnknown_203B2C0->unk42D = 0; + sUnknown_203B2C0->unk42E = 0; + sUnknown_203B2C0->unk428 = 2; + sUnknown_203B2C0->unk42A = 8; for(counter = 0; counter < PASSWORD_BUFFER_SIZE; counter++){ - gUnknown_203B2C0->passwordBuffer[counter] = 0; + sUnknown_203B2C0->passwordBuffer[counter] = 0; } - gUnknown_203B2C0->fallbackState = DEFAULT_FALLBACK_STATE; + sUnknown_203B2C0->fallbackState = DEFAULT_FALLBACK_STATE; SetFriendRescueCounterState(INITIALIZE_FRIEND_RESCUE); return 1; } @@ -288,7 +288,7 @@ u32 sub_8027F88(void) u32 sub_8028078(void) { - switch(gUnknown_203B2C0->state) { + switch(sUnknown_203B2C0->state) { case 0x3c: sub_8029B34(); break; @@ -463,16 +463,16 @@ u32 sub_8028078(void) s32 sub_80282DC(u8 *r0) { - *r0 = gUnknown_203B2C0->mailIndex; - return gUnknown_203B2C0->unk53C; + *r0 = sUnknown_203B2C0->mailIndex; + return sUnknown_203B2C0->unk53C; } void sub_80282FC(void) { - if (gUnknown_203B2C0 != NULL) { - CloseFile(gUnknown_203B2C0->faceFile); - MemoryFree(gUnknown_203B2C0); - gUnknown_203B2C0 = NULL; + if (sUnknown_203B2C0 != NULL) { + CloseFile(sUnknown_203B2C0->faceFile); + MemoryFree(sUnknown_203B2C0); + sUnknown_203B2C0 = NULL; sub_8031E10(); sub_8023C60(); sub_803084C(); @@ -490,38 +490,38 @@ void nullsub_130(void) void sub_8028348(void) { s32 linkError; - switch(gUnknown_203B2C0->state) + switch(sUnknown_203B2C0->state) { case 0x3B: - sub_8006518(gUnknown_203B2C0->unk3BC); + sub_8006518(sUnknown_203B2C0->unk3BC); ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); - sub_8031D70(gUnknown_203B2C0->mailIndex, 0); + sub_8031D70(sUnknown_203B2C0->mailIndex, 0); break; case 0x3C: - sub_80141B4(gUnknown_80DDBA8, 0, &gUnknown_203B2C0->faceFile,0x10d); + sub_80141B4(gUnknown_80DDBA8, 0, &sUnknown_203B2C0->faceFile,0x10d); break; case AOK_PASSWORD_DISPLAY: - sub_80141B4(gUnknown_80DDBFC, 0, &gUnknown_203B2C0->faceFile,0x10d); + sub_80141B4(gUnknown_80DDBFC, 0, &sUnknown_203B2C0->faceFile,0x10d); break; case 0x38: - sub_80141B4(gUnknown_80DDC30, 0, &gUnknown_203B2C0->faceFile,0x10d); + sub_80141B4(gUnknown_80DDC30, 0, &sUnknown_203B2C0->faceFile,0x10d); break; case SENT_AOK_MAIL: - switch(gUnknown_203B2C0->unk534) + switch(sUnknown_203B2C0->unk534) { // 0x0 - 0x9 included here too... case 0x10: case 0xF: case 0xD: - sub_80141B4(gUnknown_80DDC70, 0, &gUnknown_203B2C0->faceFile,0x10d); + sub_80141B4(gUnknown_80DDC70, 0, &sUnknown_203B2C0->faceFile,0x10d); break; case 0xE: break; } break; case SENT_AOK_MAIL_SAVE_COMPLETE: - sub_80141B4(gUnknown_80DDC30, 0, &gUnknown_203B2C0->faceFile,0x10d); + sub_80141B4(gUnknown_80DDC30, 0, &sUnknown_203B2C0->faceFile,0x10d); break; case PROMPT_SELECT_HELPER_POKEMON: sub_80141B4(gUnknown_80DDCBC, 0, 0,0x101); @@ -535,22 +535,22 @@ void sub_8028348(void) } break; case 0x34: - sub_8006518(gUnknown_203B2C0->unk35C); - SetMenuItems(gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, &gUnknown_80DDAE4, gUnknown_80DDAFC, TRUE, 0, FALSE); + sub_8006518(sUnknown_203B2C0->unk35C); + SetMenuItems(sUnknown_203B2C0->unk21C, sUnknown_203B2C0->unk35C, 3, &gUnknown_80DDAE4, gUnknown_80DDAFC, TRUE, 0, FALSE); sub_8023DA4(); - sub_8035CF4(gUnknown_203B2C0->unk21C, 3, TRUE); + sub_8035CF4(sUnknown_203B2C0->unk21C, 3, TRUE); break; case NO_POKEMON_IN_FRIEND_AREA: - sub_8014248(gUnknown_80DDD2C, 0, 0xA, gUnknown_80DDAA0, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC); + sub_8014248(gUnknown_80DDD2C, 0, 0xA, gUnknown_80DDAA0, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC); break; case CONFIRM_SEND_HELPER_POKEMON: - sub_8014248(gUnknown_80DDD88, 0, 8, gUnknown_80DDA80, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC); + sub_8014248(gUnknown_80DDD88, 0, 8, gUnknown_80DDA80, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC); break; case 0x2D: - sub_8014248(gUnknown_80DDDBC, 0, 8, gUnknown_80DDA64, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC); + sub_8014248(gUnknown_80DDDBC, 0, 8, gUnknown_80DDA64, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC); break; case PROMPT_CHOOSE_AOK_MAIL: - sub_80141B4(gUnknown_80DDDD8, 0, &gUnknown_203B2C0->faceFile,0x10d); + sub_80141B4(gUnknown_80DDDD8, 0, &sUnknown_203B2C0->faceFile,0x10d); break; case 0x2A: if(sub_8030894() == 0) @@ -561,60 +561,60 @@ void sub_8028348(void) } break; case NO_AOK_MAIL_TO_SEND: - sub_80141B4(gUnknown_80DDE20, 0, &gUnknown_203B2C0->faceFile,0x10d); + sub_80141B4(gUnknown_80DDE20, 0, &sUnknown_203B2C0->faceFile,0x10d); break; case 0x30: - sub_80141B4(gUnknown_80DDE58, 0, &gUnknown_203B2C0->faceFile,0x10d); + sub_80141B4(gUnknown_80DDE58, 0, &sUnknown_203B2C0->faceFile,0x10d); break; case 0x2E: - sub_8014248(gUnknown_80DDEC0, 0, 0x11, gUnknown_80DDB60, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC); + sub_8014248(gUnknown_80DDEC0, 0, 0x11, gUnknown_80DDB60, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC); break; case NO_MAIL_ROOM: - sub_80141B4(gUnknown_80DDF2C, 0, &gUnknown_203B2C0->faceFile,0x10d); + sub_80141B4(gUnknown_80DDF2C, 0, &sUnknown_203B2C0->faceFile,0x10d); break; case 4: - sub_8014248(gUnknown_80DDFB8, 0, 8, gUnknown_80DDA48, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC); + sub_8014248(gUnknown_80DDFB8, 0, 8, gUnknown_80DDA48, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC); break; case FRIEND_RESCUE_COMMUNICATING_PRE: nullsub_23(FALSE); sub_80141B4(gUnknown_80DE01C, 0 , 0, 0); break; case FRIEND_RESCUE_COMMUNICATING: - gUnknown_203B2C0->linkError = COMMS_GOOD; + sUnknown_203B2C0->linkError = COMMS_GOOD; sub_8011830(); - linkError = sub_8037B28(gUnknown_203B2C0->unk40); - gUnknown_203B2C0->linkError = linkError; + linkError = sub_8037B28(sUnknown_203B2C0->unk40); + sUnknown_203B2C0->linkError = linkError; if(linkError == COMMS_GOOD) { - switch(gUnknown_203B2C0->unk40) + switch(sUnknown_203B2C0->unk40) { case 3: - MemoryFill8((u8 *)&gUnknown_203B2C0->unk48, 0, sizeof(unkStruct_203B480)); - MemoryFill8((u8 *)&gUnknown_203B2C0->unk78, 0, sizeof(unkStruct_203B480)); - gUnknown_203B2C0->linkError = sub_8037D64(gUnknown_203B2C0->unk40, &gUnknown_203B2C0->unk48, &gUnknown_203B2C0->unk78); + MemoryFill8((u8 *)&sUnknown_203B2C0->unk48, 0, sizeof(unkStruct_203B480)); + MemoryFill8((u8 *)&sUnknown_203B2C0->unk78, 0, sizeof(unkStruct_203B480)); + sUnknown_203B2C0->linkError = sub_8037D64(sUnknown_203B2C0->unk40, &sUnknown_203B2C0->unk48, &sUnknown_203B2C0->unk78); break; case 4: - MemoryFill8((u8 *)&gUnknown_203B2C0->unkA8, 0, sizeof(WonderMailStruct_203B2C0_sub)); - MemoryFill8((u8 *)&gUnknown_203B2C0->unk130, 0, sizeof(WonderMailStruct_203B2C0_sub)); - gUnknown_203B2C0->unkA8.pokemon.speciesNum = 0; - gUnknown_203B2C0->unk130.pokemon.speciesNum = 0; - gUnknown_203B2C0->unkA8.mail = *GetMailatIndex(gUnknown_203B2C0->mailIndex); - if(gUnknown_203B2C0->speciesNum != -1) + MemoryFill8((u8 *)&sUnknown_203B2C0->unkA8, 0, sizeof(WonderMailStruct_203B2C0_sub)); + MemoryFill8((u8 *)&sUnknown_203B2C0->unk130, 0, sizeof(WonderMailStruct_203B2C0_sub)); + sUnknown_203B2C0->unkA8.pokemon.speciesNum = 0; + sUnknown_203B2C0->unk130.pokemon.speciesNum = 0; + sUnknown_203B2C0->unkA8.mail = *GetMailatIndex(sUnknown_203B2C0->mailIndex); + if(sUnknown_203B2C0->speciesNum != -1) { - gUnknown_203B2C0->unkA8.pokemon = gRecruitedPokemonRef->pokemon[gUnknown_203B2C0->speciesNum]; + sUnknown_203B2C0->unkA8.pokemon = gRecruitedPokemonRef->pokemon[sUnknown_203B2C0->speciesNum]; } - gUnknown_203B2C0->linkError = sub_8037D64(gUnknown_203B2C0->unk40, &gUnknown_203B2C0->unkA8, &gUnknown_203B2C0->unk130); + sUnknown_203B2C0->linkError = sub_8037D64(sUnknown_203B2C0->unk40, &sUnknown_203B2C0->unkA8, &sUnknown_203B2C0->unk130); break; } - if(gUnknown_203B2C0->linkError == COMMS_GOOD) + if(sUnknown_203B2C0->linkError == COMMS_GOOD) { - switch(gUnknown_203B2C0->unk40) + switch(sUnknown_203B2C0->unk40) { case 3: - gUnknown_203B2C0->linkError = sub_80381F4(3, &gUnknown_203B2C0->unk48, &gUnknown_203B2C0->unk78); + sUnknown_203B2C0->linkError = sub_80381F4(3, &sUnknown_203B2C0->unk48, &sUnknown_203B2C0->unk78); break; case 4: - gUnknown_203B2C0->linkError = sub_80381F4(4, &gUnknown_203B2C0->unkA8, &gUnknown_203B2C0->unk130); + sUnknown_203B2C0->linkError = sub_80381F4(4, &sUnknown_203B2C0->unkA8, &sUnknown_203B2C0->unk130); break; } } @@ -626,58 +626,58 @@ void sub_8028348(void) } break; case RECEIVED_FRIEND_SOS_MAIL: - switch(gUnknown_203B2C0->unk534) + switch(sUnknown_203B2C0->unk534) { // 0x0 - 0x9 included here too... case 0x10: case 0xF: case 0xD: - sub_80141B4(gUnknown_80DE06C, 0, &gUnknown_203B2C0->faceFile,0x10d); + sub_80141B4(gUnknown_80DE06C, 0, &sUnknown_203B2C0->faceFile,0x10d); break; case 0xE: break; } break; case RECEIVED_FRIEND_SOS_MAIL_SAVE_COMPLETE: - sub_80141B4(gUnknown_80DE0C0, 0, &gUnknown_203B2C0->faceFile,0x10d); + sub_80141B4(gUnknown_80DE0C0, 0, &sUnknown_203B2C0->faceFile,0x10d); break; case PROMPT_SOS_MAIL_PASSWORD: - sub_80141B4(gUnknown_80DE124, 0, &gUnknown_203B2C0->faceFile,0x10d); + sub_80141B4(gUnknown_80DE124, 0, &sUnknown_203B2C0->faceFile,0x10d); break; case 0x27: - sub_8006518(gUnknown_203B2C0->unk3BC); + sub_8006518(sUnknown_203B2C0->unk3BC); ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); - sub_80151C0(4, gUnknown_203B2C0->passwordBuffer); + sub_80151C0(4, sUnknown_203B2C0->passwordBuffer); break; case 8: - switch(gUnknown_203B2C0->unk538) + switch(sUnknown_203B2C0->unk538) { case 0: - sub_8014248(gUnknown_80DE178, 0, 0xD, gUnknown_80DDB24, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC); + sub_8014248(gUnknown_80DE178, 0, 0xD, gUnknown_80DDB24, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC); break; case 2: - sub_8014248(gUnknown_80DE1B4, 0, 0xD, gUnknown_80DDB24, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC); + sub_8014248(gUnknown_80DE1B4, 0, 0xD, gUnknown_80DDB24, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC); break; } break; case NO_SOS_MAIL_TO_SEND: - sub_80141B4(gUnknown_80DE1E4, 0, &gUnknown_203B2C0->faceFile,0x10d); + sub_80141B4(gUnknown_80DE1E4, 0, &sUnknown_203B2C0->faceFile,0x10d); break; case 0x1B: - sub_80141B4(gUnknown_80DE280, 0, &gUnknown_203B2C0->faceFile,0x10d); + sub_80141B4(gUnknown_80DE280, 0, &sUnknown_203B2C0->faceFile,0x10d); break; case CANT_GO_TO_DUNGEON: - sub_80141B4(gUnknown_80DE2B0, 0, &gUnknown_203B2C0->faceFile,0x10d); + sub_80141B4(gUnknown_80DE2B0, 0, &sUnknown_203B2C0->faceFile,0x10d); break; case FRIEND_RESCUE_FAILED: - sub_80141B4(gUnknown_80DE368, 0, &gUnknown_203B2C0->faceFile,0x10d); + sub_80141B4(gUnknown_80DE368, 0, &sUnknown_203B2C0->faceFile,0x10d); break; case 0x22: - sub_8014248(gUnknown_80DDDBC, 0, 8, gUnknown_80DDA64, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC); + sub_8014248(gUnknown_80DDDBC, 0, 8, gUnknown_80DDA64, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC); break; case PROMPT_CHOOSE_SOS_MAIL: - sub_80141B4(gUnknown_80DE430, 0, &gUnknown_203B2C0->faceFile,0x10d); + sub_80141B4(gUnknown_80DE430, 0, &sUnknown_203B2C0->faceFile,0x10d); break; case 0x1F: if(sub_8030894() == 0) @@ -690,14 +690,14 @@ void sub_8028348(void) break; case 0x20: case 0x2B: - sub_8006518(gUnknown_203B2C0->unk35C); - SetMenuItems(gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, &gUnknown_80DDACC, gUnknown_80DDAFC, TRUE, 0, FALSE); + sub_8006518(sUnknown_203B2C0->unk35C); + SetMenuItems(sUnknown_203B2C0->unk21C, sUnknown_203B2C0->unk35C, 3, &gUnknown_80DDACC, gUnknown_80DDAFC, TRUE, 0, FALSE); sub_803092C(); - sub_8035CF4(gUnknown_203B2C0->unk21C, 3, TRUE); + sub_8035CF4(sUnknown_203B2C0->unk21C, 3, TRUE); break; case 0xA: - gUnknown_203B2C0->mailCount = CountAllMail(); - switch((u32)gUnknown_203B2C0->unk538) + sUnknown_203B2C0->mailCount = CountAllMail(); + switch((u32)sUnknown_203B2C0->unk538) { case 5: sub_8030F58(2); @@ -711,58 +711,58 @@ void sub_8028348(void) } break; case 0xB: - sub_8014248(gUnknown_80DE48C, 0, 5, gUnknown_80DD9EC, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC); + sub_8014248(gUnknown_80DE48C, 0, 5, gUnknown_80DD9EC, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC); break; case 0xD: - sub_80141B4(gUnknown_80DE4B8, 0, &gUnknown_203B2C0->faceFile,0x10d); + sub_80141B4(gUnknown_80DE4B8, 0, &sUnknown_203B2C0->faceFile,0x10d); break; case NO_SOS_MAIL: - sub_80141B4(gUnknown_80DE4F0, 0, &gUnknown_203B2C0->faceFile,0x10d); + sub_80141B4(gUnknown_80DE4F0, 0, &sUnknown_203B2C0->faceFile,0x10d); break; case 0xF: - sub_80141B4(gUnknown_80DE524, 0, &gUnknown_203B2C0->faceFile,0x10d); + sub_80141B4(gUnknown_80DE524, 0, &sUnknown_203B2C0->faceFile,0x10d); break; case NO_AOK_MAIL: - sub_80141B4(gUnknown_80DE614, 0, &gUnknown_203B2C0->faceFile,0x10d); + sub_80141B4(gUnknown_80DE614, 0, &sUnknown_203B2C0->faceFile,0x10d); break; case 0x11: - sub_80141B4(gUnknown_80DE648, 0, &gUnknown_203B2C0->faceFile,0x10d); + sub_80141B4(gUnknown_80DE648, 0, &sUnknown_203B2C0->faceFile,0x10d); break; case NO_MAIL: - sub_80141B4(gUnknown_80DE694, 0, &gUnknown_203B2C0->faceFile,0x10d); + sub_80141B4(gUnknown_80DE694, 0, &sUnknown_203B2C0->faceFile,0x10d); break; case PROMPT_DELETE_ALL_MAIL: - sub_8014248(gUnknown_80DE6D4, 0, 8, gUnknown_80DDA48, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC); + sub_8014248(gUnknown_80DE6D4, 0, 8, gUnknown_80DDA48, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC); break; case CONFIRM_DELETE_ALL_MAIL_1: - sub_8014248(gUnknown_80DE754, 0, 8, gUnknown_80DDA48, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC); + sub_8014248(gUnknown_80DE754, 0, 8, gUnknown_80DDA48, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC); break; case 0x17: - sub_80141B4(gUnknown_80DE7B8, 0, &gUnknown_203B2C0->faceFile,0x10d); + sub_80141B4(gUnknown_80DE7B8, 0, &sUnknown_203B2C0->faceFile,0x10d); break; case 0x18: - sub_80141B4(gUnknown_80DE7E8, 0, &gUnknown_203B2C0->faceFile,0x10d); + sub_80141B4(gUnknown_80DE7E8, 0, &sUnknown_203B2C0->faceFile,0x10d); break; case 0x19: - sub_8014248(gUnknown_80DE808, 0, 8, gUnknown_80DDA64, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC); + sub_8014248(gUnknown_80DE808, 0, 8, gUnknown_80DDA64, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC); break; case CONFIRM_DELETE_ALL_MAIL_2: - sub_80141B4(gUnknown_80DE830, 0, &gUnknown_203B2C0->faceFile,0x10d); + sub_80141B4(gUnknown_80DE830, 0, &sUnknown_203B2C0->faceFile,0x10d); break; case DELETE_ALL_MAIL_SAVE_PRE: - sub_80141B4(gUnknown_80DE864, 0, &gUnknown_203B2C0->faceFile,0x10d); + sub_80141B4(gUnknown_80DE864, 0, &sUnknown_203B2C0->faceFile,0x10d); break; case 0x16: - sub_80141B4(gUnknown_80DE7E8, 0, &gUnknown_203B2C0->faceFile,0x10d); + sub_80141B4(gUnknown_80DE7E8, 0, &sUnknown_203B2C0->faceFile,0x10d); break; case INITIALIZE_FRIEND_RESCUE: - sub_8014248(gUnknown_80DE8B4, 0, 0, gUnknown_80DD970, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC); + sub_8014248(gUnknown_80DE8B4, 0, 0, gUnknown_80DD970, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC); break; case FRIEND_RESCUE_MAIN: - sub_8014248(gUnknown_80DE918, 0, 0, gUnknown_80DD970, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC); + sub_8014248(gUnknown_80DE918, 0, 0, gUnknown_80DD970, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC); break; case 2: - sub_80141B4(gUnknown_80DE93C, 0, &gUnknown_203B2C0->faceFile,0x10d); + sub_80141B4(gUnknown_80DE93C, 0, &sUnknown_203B2C0->faceFile,0x10d); break; case FRIEND_RESCUE_COUNTER_EXIT: break; @@ -772,7 +772,7 @@ void sub_8028348(void) void SetFriendRescueCounterState(u32 state) { - gUnknown_203B2C0->state = state; + sUnknown_203B2C0->state = state; nullsub_130(); sub_8028348(); } @@ -786,37 +786,37 @@ void PrintFriendRescueCounterError(u32 errorCode) break; case 1: case COMMS_NO_RESPONSE: - sub_80141B4(gWonderMailErrorText, 0, &gUnknown_203B2C0->faceFile, 0x10d); + sub_80141B4(gWonderMailErrorText, 0, &sUnknown_203B2C0->faceFile, 0x10d); break; case COMMS_INCORRECT_NUM_SYSTEMS: - sub_80141B4(gWonderMailNumGBAsText, 0, &gUnknown_203B2C0->faceFile, 0x10d); + sub_80141B4(gWonderMailNumGBAsText, 0, &sUnknown_203B2C0->faceFile, 0x10d); break; case COMMS_DIFFERENT_MODES: - sub_80141B4(gWonderMailWrongModeText, 0, &gUnknown_203B2C0->faceFile, 0x10d); + sub_80141B4(gWonderMailWrongModeText, 0, &sUnknown_203B2C0->faceFile, 0x10d); break; case 5: - sub_80141B4(gWonderMailErrorText, 0, &gUnknown_203B2C0->faceFile, 0x10d); + sub_80141B4(gWonderMailErrorText, 0, &sUnknown_203B2C0->faceFile, 0x10d); break; case COMMS_NO_ROOM_STORAGE: - sub_80141B4(gWonderMailStorageFullText, 0, &gUnknown_203B2C0->faceFile, 0x10d); + sub_80141B4(gWonderMailStorageFullText, 0, &sUnknown_203B2C0->faceFile, 0x10d); break; case COMMS_DUPLICATE_MAIL: - sub_80141B4(gWonderMailDuplicateText, 0, &gUnknown_203B2C0->faceFile, 0x10d); + sub_80141B4(gWonderMailDuplicateText, 0, &sUnknown_203B2C0->faceFile, 0x10d); break; case COMMS_NOT_ELIGIBLE_1: - sub_80141B4(gWonderMailNotEligibleReceiveText, 0, &gUnknown_203B2C0->faceFile, 0x10d); + sub_80141B4(gWonderMailNotEligibleReceiveText, 0, &sUnknown_203B2C0->faceFile, 0x10d); break; case COMMS_NOT_ELIGIBLE_2: - sub_80141B4(gWonderMailNotEligibleReceiveText, 0, &gUnknown_203B2C0->faceFile, 0x10d); + sub_80141B4(gWonderMailNotEligibleReceiveText, 0, &sUnknown_203B2C0->faceFile, 0x10d); break; case COMMS_NO_ROOM_MAIL: - sub_80141B4(gWonderMailNoRoomText, 0, &gUnknown_203B2C0->faceFile, 0x10d); + sub_80141B4(gWonderMailNoRoomText, 0, &sUnknown_203B2C0->faceFile, 0x10d); break; case 14: - sub_80141B4(gWonderMailErrorText, 0, &gUnknown_203B2C0->faceFile, 0x10d); + sub_80141B4(gWonderMailErrorText, 0, &sUnknown_203B2C0->faceFile, 0x10d); break; case COMMS_NOT_READY: - sub_80141B4(gWonderMailFriendErrorText, 0, &gUnknown_203B2C0->faceFile, 0x10d); + sub_80141B4(gWonderMailFriendErrorText, 0, &sUnknown_203B2C0->faceFile, 0x10d); break; default: break; @@ -830,13 +830,13 @@ void sub_8028BF0(void) { return; } - gUnknown_203B2C0->unk40 = 8; - gUnknown_203B2C0->speciesNum = -1; + sUnknown_203B2C0->unk40 = 8; + sUnknown_203B2C0->speciesNum = -1; switch(menuChoice) { case 0: - gUnknown_203B2C0->unk40 = 3; - gUnknown_203B2C0->unk538 = 0; + sUnknown_203B2C0->unk40 = 3; + sUnknown_203B2C0->unk538 = 0; if(FindOpenMailSlot() != -1) { SetFriendRescueCounterState(8); @@ -857,8 +857,8 @@ void sub_8028BF0(void) } break; case 2: - gUnknown_203B2C0->unk40 = 4; - gUnknown_203B2C0->unk538 = 2; + sUnknown_203B2C0->unk40 = 4; + sUnknown_203B2C0->unk538 = 2; if(CountMailType(WONDER_MAIL_TYPE_AOK) != 0) { SetFriendRescueCounterState(PROMPT_CHOOSE_AOK_MAIL); @@ -906,7 +906,7 @@ void sub_8028CFC() case 3: newMailCount = CountAllMail(); sub_80310B4(); - if(newMailCount != gUnknown_203B2C0->mailCount) + if(newMailCount != sUnknown_203B2C0->mailCount) { SetFriendRescueCounterState(0x17); } @@ -928,8 +928,8 @@ void sub_8028D4C() { return; } - gUnknown_203B2C0->unk538 = menuChoice; - switch(gUnknown_203B2C0->unk538) + sUnknown_203B2C0->unk538 = menuChoice; + switch(sUnknown_203B2C0->unk538) { case 5: if(HasNoWonderMailType(2)) @@ -1121,8 +1121,8 @@ void sub_8028F80() { return; } - sub_809927C(gUnknown_203B2C0->mailIndex); - gUnknown_203B2C0->unk53C = 1; + sub_809927C(sUnknown_203B2C0->mailIndex); + sUnknown_203B2C0->unk53C = 1; SetFriendRescueCounterState(FRIEND_RESCUE_COUNTER_EXIT); } @@ -1149,7 +1149,7 @@ void sub_8028FDC(void) switch(menuChoice) { case 8: - mail = GetMailatIndex(gUnknown_203B2C0->mailIndex); + mail = GetMailatIndex(sUnknown_203B2C0->mailIndex); if(!sub_80A2824(mail->unk4.dungeon.id)) { SetFriendRescueCounterState(CANT_GO_TO_DUNGEON); @@ -1181,16 +1181,16 @@ void sub_8029044(void) SetFriendRescueCounterState(FRIEND_RESCUE_MAIN); break; case 3: - gUnknown_203B2C0->mailIndex = sub_80307EC(); + sUnknown_203B2C0->mailIndex = sub_80307EC(); SetFriendRescueCounterState(0x20); break; case 4: - gUnknown_203B2C0->fallbackState = 0x1F; - gUnknown_203B2C0->mailIndex = sub_80307EC(); - sub_8006518(gUnknown_203B2C0->unk3BC); + sUnknown_203B2C0->fallbackState = 0x1F; + sUnknown_203B2C0->mailIndex = sub_80307EC(); + sub_8006518(sUnknown_203B2C0->unk3BC); ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); - sub_8030D40(gUnknown_203B2C0->mailIndex, 0); + sub_8030D40(sUnknown_203B2C0->mailIndex, 0); SetFriendRescueCounterState(0x21); break; } @@ -1211,9 +1211,9 @@ void sub_80290F0(void) s32 menuAction; menuAction = -1; sub_8030768(0); - if(sub_8012FD8(&(gUnknown_203B2C0->unk21C[3])) == 0) + if(sub_8012FD8(&(sUnknown_203B2C0->unk21C[3])) == 0) { - sub_8013114(&(gUnknown_203B2C0->unk21C[3]), &menuAction); + sub_8013114(&(sUnknown_203B2C0->unk21C[3]), &menuAction); } switch(menuAction) { @@ -1222,16 +1222,16 @@ void sub_80290F0(void) SetFriendRescueCounterState(0x22); break; case 12: - gUnknown_203B2C0->fallbackState = DEFAULT_FALLBACK_STATE; - sub_8006518(gUnknown_203B2C0->unk3BC); + sUnknown_203B2C0->fallbackState = DEFAULT_FALLBACK_STATE; + sub_8006518(sUnknown_203B2C0->unk3BC); ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); - sub_8030D40(gUnknown_203B2C0->mailIndex, 0); + sub_8030D40(sUnknown_203B2C0->mailIndex, 0); SetFriendRescueCounterState(0x21); break; case 4: case 10: - sub_8035CC0(gUnknown_203B2C0->unk35C, 2); + sub_8035CC0(sUnknown_203B2C0->unk35C, 2); sub_8030810(1); SetFriendRescueCounterState(0x1F); break; @@ -1248,16 +1248,16 @@ void sub_80291AC(void) case 3: sub_8030DE4(); ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2C0->unk3BC, TRUE, TRUE); + sub_800641C(sUnknown_203B2C0->unk3BC, TRUE, TRUE); sub_803092C(); - if(gUnknown_203B2C0->fallbackState == DEFAULT_FALLBACK_STATE) + if(sUnknown_203B2C0->fallbackState == DEFAULT_FALLBACK_STATE) { - sub_8035CF4(gUnknown_203B2C0->unk21C, 3, TRUE); + sub_8035CF4(sUnknown_203B2C0->unk21C, 3, TRUE); SetFriendRescueCounterState(0x20); } else { - SetFriendRescueCounterState(gUnknown_203B2C0->fallbackState); + SetFriendRescueCounterState(sUnknown_203B2C0->fallbackState); } default: break; @@ -1276,8 +1276,8 @@ void sub_8029208(void) case 13: case 14: - gUnknown_203B2C0->unk534 = 13; - switch(gUnknown_203B2C0->unk538) + sUnknown_203B2C0->unk534 = 13; + switch(sUnknown_203B2C0->unk538) { case 0: SetFriendRescueCounterState(4); @@ -1290,8 +1290,8 @@ void sub_8029208(void) } break; case 15: - gUnknown_203B2C0->unk534 = 15; - switch(gUnknown_203B2C0->unk538) + sUnknown_203B2C0->unk534 = 15; + switch(sUnknown_203B2C0->unk538) { case 0: SetFriendRescueCounterState(PROMPT_SOS_MAIL_PASSWORD); @@ -1319,7 +1319,7 @@ void sub_80292A4(void) switch(menuChoice) { case 8: - switch(gUnknown_203B2C0->unk538) + switch(sUnknown_203B2C0->unk538) { case 0: case 2: @@ -1340,9 +1340,9 @@ void sub_80292EC(void) { return; } - if(gUnknown_203B2C0->linkError == COMMS_GOOD) + if(sUnknown_203B2C0->linkError == COMMS_GOOD) { - switch(gUnknown_203B2C0->unk538) + switch(sUnknown_203B2C0->unk538) { case 0: SetFriendRescueCounterState(RECEIVED_FRIEND_SOS_MAIL); @@ -1354,7 +1354,7 @@ void sub_80292EC(void) } else { - PrintFriendRescueCounterError(gUnknown_203B2C0->linkError); + PrintFriendRescueCounterError(sUnknown_203B2C0->linkError); SetFriendRescueCounterState(FRIEND_RESCUE_ERROR); } } @@ -1434,25 +1434,25 @@ void sub_80293F4(void) switch(return_var) { case 3: - switch(sub_8039068(PASSWORD_ENTRY_SOS_MAIL_MODE, (gUnknown_203B2C0->passwordBuffer), &mail)) + switch(sub_8039068(PASSWORD_ENTRY_SOS_MAIL_MODE, (sUnknown_203B2C0->passwordBuffer), &mail)) { case PASSWORD_ENTRY_INCORRECT_PASSWORD: - sub_8014248(gWonderMailPasswordIncorrectText, 0, 8, gUnknown_80DDA48, 0, 4, 0, &gUnknown_203B2C0->faceFile, 0xC); + sub_8014248(gWonderMailPasswordIncorrectText, 0, 8, gUnknown_80DDA48, 0, 4, 0, &sUnknown_203B2C0->faceFile, 0xC); SetFriendRescueCounterState(0x28); break; case PASSWORD_ENTRY_NOT_SOS_MAIL: - sub_80141B4(gWonderMailSOSPasswordIncorrectText, 0, &gUnknown_203B2C0->faceFile, 0x10d); + sub_80141B4(gWonderMailSOSPasswordIncorrectText, 0, &sUnknown_203B2C0->faceFile, 0x10d); SetFriendRescueCounterState(FRIEND_RESCUE_ERROR); break; case PASSWORD_ENTRY_DUPLICATE_SOS_MAIL: - sub_80141B4(gWonderMailDuplicateText, 0, &gUnknown_203B2C0->faceFile, 0x10d); + sub_80141B4(gWonderMailDuplicateText, 0, &sUnknown_203B2C0->faceFile, 0x10d); SetFriendRescueCounterState(FRIEND_RESCUE_ERROR); break; case PASSWORD_ENTRY_SOS_MAIL_SUCCESS: sub_8095274(mail.unk10.unk10); mail.mailType = 2; sub_80951BC(&mail); - sub_80141B4(gWonderMailAOKMailReceivedText, 0, &gUnknown_203B2C0->faceFile, 0x101); + sub_80141B4(gWonderMailAOKMailReceivedText, 0, &sUnknown_203B2C0->faceFile, 0x101); SetFriendRescueCounterState(0x23); break; case 23: @@ -1465,7 +1465,7 @@ void sub_80293F4(void) case 2: sub_80155F0(); ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2C0->unk3BC, TRUE, TRUE); + sub_800641C(sUnknown_203B2C0->unk3BC, TRUE, TRUE); SetFriendRescueCounterState(FRIEND_RESCUE_MAIN); break; default: @@ -1530,16 +1530,16 @@ void sub_80295D8(void) SetFriendRescueCounterState(FRIEND_RESCUE_MAIN); break; case 3: - gUnknown_203B2C0->mailIndex = sub_80307EC(); + sUnknown_203B2C0->mailIndex = sub_80307EC(); SetFriendRescueCounterState(0x2B); break; case 4: - gUnknown_203B2C0->fallbackState = 0x2A; - gUnknown_203B2C0->mailIndex = sub_80307EC(); - sub_8006518(gUnknown_203B2C0->unk3BC); + sUnknown_203B2C0->fallbackState = 0x2A; + sUnknown_203B2C0->mailIndex = sub_80307EC(); + sub_8006518(sUnknown_203B2C0->unk3BC); ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); - sub_8030D40(gUnknown_203B2C0->mailIndex, 0); + sub_8030D40(sUnknown_203B2C0->mailIndex, 0); SetFriendRescueCounterState(0x2C); break; } @@ -1560,9 +1560,9 @@ void sub_8029684(void) s32 menuAction; menuAction = -1; sub_8030768(0); - if(sub_8012FD8(&(gUnknown_203B2C0->unk21C[3])) == 0) + if(sub_8012FD8(&(sUnknown_203B2C0->unk21C[3])) == 0) { - sub_8013114(&(gUnknown_203B2C0->unk21C[3]), &menuAction); + sub_8013114(&(sUnknown_203B2C0->unk21C[3]), &menuAction); } switch(menuAction) { @@ -1571,16 +1571,16 @@ void sub_8029684(void) SetFriendRescueCounterState(0x2D); break; case 0xC: - gUnknown_203B2C0->fallbackState = DEFAULT_FALLBACK_STATE; - sub_8006518(gUnknown_203B2C0->unk3BC); + sUnknown_203B2C0->fallbackState = DEFAULT_FALLBACK_STATE; + sub_8006518(sUnknown_203B2C0->unk3BC); ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); - sub_8030D40(gUnknown_203B2C0->mailIndex, 0); + sub_8030D40(sUnknown_203B2C0->mailIndex, 0); SetFriendRescueCounterState(0x2C); break; case 0x4: case 0xA: - sub_8035CC0(gUnknown_203B2C0->unk35C,2); + sub_8035CC0(sUnknown_203B2C0->unk35C,2); sub_8030810(1); SetFriendRescueCounterState(0x2A); break; @@ -1595,16 +1595,16 @@ void sub_8029740(void) case 3: sub_8030DE4(); ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2C0->unk3BC, TRUE, TRUE); + sub_800641C(sUnknown_203B2C0->unk3BC, TRUE, TRUE); sub_803092C(); - if(gUnknown_203B2C0->fallbackState == DEFAULT_FALLBACK_STATE) + if(sUnknown_203B2C0->fallbackState == DEFAULT_FALLBACK_STATE) { - sub_8035CF4(gUnknown_203B2C0->unk21C, 3, TRUE); + sub_8035CF4(sUnknown_203B2C0->unk21C, 3, TRUE); SetFriendRescueCounterState(0x2B); } else { - SetFriendRescueCounterState(gUnknown_203B2C0->fallbackState); + SetFriendRescueCounterState(sUnknown_203B2C0->fallbackState); } break; } @@ -1637,19 +1637,19 @@ void sub_80297D4(void) case 2: sub_8023C60(); SetFriendRescueCounterState(FRIEND_RESCUE_MAIN); - gUnknown_203B2C0->speciesNum = -1; + sUnknown_203B2C0->speciesNum = -1; break; case 3: - gUnknown_203B2C0->speciesNum = sub_8023B44(); + sUnknown_203B2C0->speciesNum = sub_8023B44(); SetFriendRescueCounterState(0x34); break; case 4: - gUnknown_203B2C0->fallbackState = SELECT_HELPER_POKEMON; - gUnknown_203B2C0->speciesNum = sub_8023B44(); - sub_8006518(gUnknown_203B2C0->unk3BC); + sUnknown_203B2C0->fallbackState = SELECT_HELPER_POKEMON; + sUnknown_203B2C0->speciesNum = sub_8023B44(); + sub_8006518(sUnknown_203B2C0->unk3BC); ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); - sub_8024458(gUnknown_203B2C0->speciesNum, 0); + sub_8024458(sUnknown_203B2C0->speciesNum, 0); SetFriendRescueCounterState(0x35); break; } @@ -1660,9 +1660,9 @@ void sub_8029884(void) s32 menuAction; menuAction = -1; sub_8023A94(FALSE); - if(sub_8012FD8(&(gUnknown_203B2C0->unk21C[3])) == 0) + if(sub_8012FD8(&(sUnknown_203B2C0->unk21C[3])) == 0) { - sub_8013114(&(gUnknown_203B2C0->unk21C[3]), &menuAction); + sub_8013114(&(sUnknown_203B2C0->unk21C[3]), &menuAction); } switch(menuAction) { @@ -1671,16 +1671,16 @@ void sub_8029884(void) SetFriendRescueCounterState(4); break; case 0xC: - gUnknown_203B2C0->fallbackState = DEFAULT_FALLBACK_STATE; - sub_8006518(gUnknown_203B2C0->unk3BC); + sUnknown_203B2C0->fallbackState = DEFAULT_FALLBACK_STATE; + sub_8006518(sUnknown_203B2C0->unk3BC); ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); - sub_8024458(gUnknown_203B2C0->speciesNum, 0); + sub_8024458(sUnknown_203B2C0->speciesNum, 0); SetFriendRescueCounterState(0x35); break; case 0x4: case 0xA: - sub_8035CC0(gUnknown_203B2C0->unk35C, 3); + sub_8035CC0(sUnknown_203B2C0->unk35C, 3); sub_8023B7C(1); SetFriendRescueCounterState(SELECT_HELPER_POKEMON); break; @@ -1704,16 +1704,16 @@ void sub_8029944(void) case 3: sub_802453C(); ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2C0->unk3BC, TRUE, TRUE); + sub_800641C(sUnknown_203B2C0->unk3BC, TRUE, TRUE); sub_8023B7C(1); - if(gUnknown_203B2C0->fallbackState == DEFAULT_FALLBACK_STATE) + if(sUnknown_203B2C0->fallbackState == DEFAULT_FALLBACK_STATE) { - sub_8035CF4(gUnknown_203B2C0->unk21C, 3, TRUE); + sub_8035CF4(sUnknown_203B2C0->unk21C, 3, TRUE); SetFriendRescueCounterState(0x34); } else { - SetFriendRescueCounterState(gUnknown_203B2C0->fallbackState); + SetFriendRescueCounterState(sUnknown_203B2C0->fallbackState); } } @@ -1844,7 +1844,7 @@ void sub_8029AF4(void) case 3: sub_8031E10(); ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2C0->unk3BC, TRUE, TRUE); + sub_800641C(sUnknown_203B2C0->unk3BC, TRUE, TRUE); SetFriendRescueCounterState(0x3C); break; case 1: diff --git a/src/wonder_mail_2.c b/src/wonder_mail_2.c index 32952089a..c8ef8a84c 100644 --- a/src/wonder_mail_2.c +++ b/src/wonder_mail_2.c @@ -36,7 +36,7 @@ struct unkStruct_203B2C8 u32 fill13C; }; -extern struct unkStruct_203B2C8 *gUnknown_203B2C8; +static EWRAM_DATA_2 struct unkStruct_203B2C8 *sUnknown_203B2C8 = {0}; extern void sub_80920D8(u8 *buffer); extern char gUnknown_202E5D8[0x50]; @@ -84,19 +84,19 @@ u32 sub_802B2D4(void) ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); - gUnknown_203B2C8 = MemoryAlloc(sizeof(struct unkStruct_203B2C8),8); - MemoryFill8((u8 *)gUnknown_203B2C8,0,sizeof(struct unkStruct_203B2C8)); - gUnknown_203B2C8->unk1 = -1; + sUnknown_203B2C8 = MemoryAlloc(sizeof(struct unkStruct_203B2C8),8); + MemoryFill8((u8 *)sUnknown_203B2C8,0,sizeof(struct unkStruct_203B2C8)); + sUnknown_203B2C8->unk1 = -1; CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_PELIPPER); faceFile = GetDialogueSpriteDataPtr(MONSTER_PELIPPER); - gUnknown_203B2C8->faceFile = faceFile; - gUnknown_203B2C8->faceData = faceFile->data; - gUnknown_203B2C8->unk10 = 0; - gUnknown_203B2C8->unk11 = 0; - gUnknown_203B2C8->unk12 = 0; - gUnknown_203B2C8->unkC = 2; - gUnknown_203B2C8->unkE = 8; - if (sub_8099394(&gUnknown_203B2C8->unk1) == 1) { + sUnknown_203B2C8->faceFile = faceFile; + sUnknown_203B2C8->faceData = faceFile->data; + sUnknown_203B2C8->unk10 = 0; + sUnknown_203B2C8->unk11 = 0; + sUnknown_203B2C8->unk12 = 0; + sUnknown_203B2C8->unkC = 2; + sUnknown_203B2C8->unkE = 8; + if (sub_8099394(&sUnknown_203B2C8->unk1) == 1) { sub_802B548(0); iVar1 = 1; } @@ -107,7 +107,7 @@ u32 sub_802B2D4(void) u32 sub_802B358(void) { - switch(gUnknown_203B2C8->currState) { + switch(sUnknown_203B2C8->currState) { case 0: sub_802B560(); break; @@ -131,11 +131,11 @@ u32 sub_802B358(void) void sub_802B3B8(void) { - if(gUnknown_203B2C8 != NULL) + if(sUnknown_203B2C8 != NULL) { - CloseFile(gUnknown_203B2C8->faceFile); - MemoryFree(gUnknown_203B2C8); - gUnknown_203B2C8 = NULL; + CloseFile(sUnknown_203B2C8->faceFile); + MemoryFree(sUnknown_203B2C8); + sUnknown_203B2C8 = NULL; } } @@ -149,7 +149,7 @@ void sub_802B3E0(void) char *monName; char teamNameBuffer[40]; - switch(gUnknown_203B2C8->currState) { + switch(sUnknown_203B2C8->currState) { case 0: if (sub_80023E4(0)) { // Copy Team Name to buffer @@ -160,35 +160,35 @@ void sub_802B3E0(void) strcpy(teamNameBuffer,gRescueTeamNamePlaceholder); } // Print and expand placeholders? - sprintfStatic(gUnknown_203B2C8->teamName,gUnknown_80DF9F8,teamNameBuffer); + sprintfStatic(sUnknown_203B2C8->teamName,gUnknown_80DF9F8,teamNameBuffer); // Display to screen with Pelipper face - sub_80141B4(gUnknown_203B2C8->teamName, 0, &gUnknown_203B2C8->faceFile, 0x10d); + sub_80141B4(sUnknown_203B2C8->teamName, 0, &sUnknown_203B2C8->faceFile, 0x10d); break; case 1: monName = GetMonSpecies(MONSTER_PELIPPER); - strcpy(gUnknown_203B2C8->unk114.clientName, monName); - gUnknown_203B2C8->unk114.clientSpecies = MONSTER_PELIPPER; - gUnknown_203B2C8->unk114.unk16 = 2; - gUnknown_203B2C8->unk114.moneyReward = 0; + strcpy(sUnknown_203B2C8->unk114.clientName, monName); + sUnknown_203B2C8->unk114.clientSpecies = MONSTER_PELIPPER; + sUnknown_203B2C8->unk114.unk16 = 2; + sUnknown_203B2C8->unk114.moneyReward = 0; sub_8097790(); - mail = GetMailatIndex(gUnknown_203B2C8->unk1); - sub_803C37C(&mail->unk4.dungeon, 0, gUnknown_203B2C8->unk114.itemRewards); - gUnknown_203B2C8->unk114.teamRankPtsReward = GetDungeonTeamRankPts(&mail->unk4.dungeon, 0); - gUnknown_203B2C8->unk114.itemRewards[1] = ITEM_NOTHING; - gUnknown_203B2C8->unk114.itemRewards[2] = ITEM_NOTHING; - gUnknown_203B2C8->unk114.quantity = 10; - gUnknown_203B2C8->unk114.friendAreaReward = 0; - sub_802F204(&gUnknown_203B2C8->unk114, 0); + mail = GetMailatIndex(sUnknown_203B2C8->unk1); + sub_803C37C(&mail->unk4.dungeon, 0, sUnknown_203B2C8->unk114.itemRewards); + sUnknown_203B2C8->unk114.teamRankPtsReward = GetDungeonTeamRankPts(&mail->unk4.dungeon, 0); + sUnknown_203B2C8->unk114.itemRewards[1] = ITEM_NOTHING; + sUnknown_203B2C8->unk114.itemRewards[2] = ITEM_NOTHING; + sUnknown_203B2C8->unk114.quantity = 10; + sUnknown_203B2C8->unk114.friendAreaReward = 0; + sub_802F204(&sUnknown_203B2C8->unk114, 0); break; case 2: // I hope you will keep on rescuing your friends // I must save your adventure - sub_80141B4(gUnknown_80DFAA8, 0, &gUnknown_203B2C8->faceFile, 0x10d); + sub_80141B4(gUnknown_80DFAA8, 0, &sUnknown_203B2C8->faceFile, 0x10d); break; case 4: // Oh yes, that's right. Please don't forget to send an A-OK Mail // to the friend you just rescued - sub_80141B4(gUnknown_80DFB14, 0, &gUnknown_203B2C8->faceFile, 0x10d); + sub_80141B4(gUnknown_80DFB14, 0, &sUnknown_203B2C8->faceFile, 0x10d); case 3: case 5: break; @@ -197,7 +197,7 @@ void sub_802B3E0(void) void sub_802B548(u32 newState) { - gUnknown_203B2C8->currState = newState; + sUnknown_203B2C8->currState = newState; nullsub_132(); sub_802B3E0(); } @@ -232,7 +232,7 @@ void sub_802B5B8(void) if (sub_80144A4(&temp) == 0) { uVar2 = sub_8011C34(); - mail = GetMailatIndex(gUnknown_203B2C8->unk1); + mail = GetMailatIndex(sUnknown_203B2C8->unk1); mail->mailType = WONDER_MAIL_TYPE_AOK; mail->unk28 = uVar2; sub_802B548(3); diff --git a/src/wonder_mail_2_1.c b/src/wonder_mail_2_1.c index c94c50a7b..807a019fd 100644 --- a/src/wonder_mail_2_1.c +++ b/src/wonder_mail_2_1.c @@ -14,9 +14,10 @@ #include "code_80958E8_1.h" #include "code_803B050.h" +static EWRAM_DATA_2 struct unkStruct_203B2E8* gUnknown_203B2E8 = {0}; +static EWRAM_DATA_2 u16 gUnknown_203B2EC = {0}; + extern struct unkStruct_203B2F0 *gUnknown_203B2F0; -extern struct unkStruct_203B2E8* gUnknown_203B2E8; -extern u16 gUnknown_203B2EC; ALIGNED(4) static const char wonder_mail_2_fill4[] = "pksdir0"; diff --git a/src/wonder_mail_3.c b/src/wonder_mail_3.c index 9a0f3fed7..feb6d39ac 100644 --- a/src/wonder_mail_3.c +++ b/src/wonder_mail_3.c @@ -19,6 +19,10 @@ #include "code_80958E8_1.h" #include "code_803B050.h" +static EWRAM_DATA_2 unkStruct_203B2F4 *sUnknown_203B2F4 = {0}; + +extern unkStruct_203B2F8 *gUnknown_203B2F8; + const UnkTextStruct2 gUnknown_80DFDD4 = { 0x00, 0x00, 0x00, 0x00, @@ -348,19 +352,19 @@ void sub_802CDB8(void) bool8 sub_802CDD4(u32 r0) { - if(gUnknown_203B2F4 == NULL) + if(sUnknown_203B2F4 == NULL) { - gUnknown_203B2F4 = MemoryAlloc(sizeof(unkStruct_203B2F4), 8); + sUnknown_203B2F4 = MemoryAlloc(sizeof(unkStruct_203B2F4), 8); } - gUnknown_203B2F4->unk34 = r0; - gUnknown_203B2F4->unk38 = &gUnknown_203B2F4->unk3C[gUnknown_203B2F4->unk34]; - sub_8006518(gUnknown_203B2F4->unk3C); - gUnknown_203B2F4->unk3C[gUnknown_203B2F4->unk34] = gUnknown_80DFDA4; - gUnknown_203B2F4->unk38->unk14 = gUnknown_203B2F4->unk9C; - sub_8012D34(gUnknown_203B2F4->unk38, 4); + sUnknown_203B2F4->unk34 = r0; + sUnknown_203B2F4->unk38 = &sUnknown_203B2F4->unk3C[sUnknown_203B2F4->unk34]; + sub_8006518(sUnknown_203B2F4->unk3C); + sUnknown_203B2F4->unk3C[sUnknown_203B2F4->unk34] = gUnknown_80DFDA4; + sUnknown_203B2F4->unk38->unk14 = sUnknown_203B2F4->unk9C; + sub_8012D34(sUnknown_203B2F4->unk38, 4); ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2F4->unk3C, TRUE, TRUE); - sub_8013848(&gUnknown_203B2F4->input, 5, 4, r0); + sub_800641C(sUnknown_203B2F4->unk3C, TRUE, TRUE); + sub_8013848(&sUnknown_203B2F4->input, 5, 4, r0); sub_802CF5C(); sub_802CFD0(); return TRUE; @@ -370,12 +374,12 @@ u32 sub_802CE5C(u8 r0) { if(r0 == 0) { - sub_8013660(&gUnknown_203B2F4->input); + sub_8013660(&sUnknown_203B2F4->input); return 0; } else { - switch(GetKeyPress(&gUnknown_203B2F4->input)) + switch(GetKeyPress(&sUnknown_203B2F4->input)) { case INPUT_B_BUTTON: PlayMenuSoundEffect(1); @@ -383,7 +387,7 @@ u32 sub_802CE5C(u8 r0) case INPUT_A_BUTTON: return 3; default: - if(sub_80138B8(&gUnknown_203B2F4->input, 1) != 0) + if(sub_80138B8(&sUnknown_203B2F4->input, 1) != 0) { sub_802CF5C(); sub_802CFD0(); @@ -399,29 +403,29 @@ u32 sub_802CE5C(u8 r0) u8 sub_802CEBC(void) { - return (gUnknown_203B2F4->input.unk1E * gUnknown_203B2F4->input.unk1C) + gUnknown_203B2F4->input.menuIndex; + return (sUnknown_203B2F4->input.unk1E * sUnknown_203B2F4->input.unk1C) + sUnknown_203B2F4->input.menuIndex; } void sub_802CED8(u8 r0) { ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2F4->unk3C, FALSE, FALSE); - sub_8013984(&gUnknown_203B2F4->input); + sub_800641C(sUnknown_203B2F4->unk3C, FALSE, FALSE); + sub_8013984(&sUnknown_203B2F4->input); sub_802CF5C(); sub_802CFD0(); if(r0) - AddMenuCursorSprite(&gUnknown_203B2F4->input); + AddMenuCursorSprite(&sUnknown_203B2F4->input); } void sub_802CF14(void) { - if(gUnknown_203B2F4) + if(sUnknown_203B2F4) { - gUnknown_203B2F4->unk3C[gUnknown_203B2F4->unk34] = gUnknown_80DFD8C; + sUnknown_203B2F4->unk3C[sUnknown_203B2F4->unk34] = gUnknown_80DFD8C; ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2F4->unk3C, TRUE, TRUE); - MemoryFree(gUnknown_203B2F4); - gUnknown_203B2F4 = NULL; + sub_800641C(sUnknown_203B2F4->unk3C, TRUE, TRUE); + MemoryFree(sUnknown_203B2F4); + sUnknown_203B2F4 = NULL; } } @@ -482,7 +486,7 @@ void sub_802CF5C(void) "\tpop {r0}\n" "\tbx r0\n" "\t.align 2, 0\n" -"_0802CFCC: .4byte gUnknown_203B2F4"); +"_0802CFCC: .4byte sUnknown_203B2F4"); } @@ -493,25 +497,25 @@ void sub_802CFD0(void) s32 r5; s32 r4; - sub_8008C54(gUnknown_203B2F4->unk34); - sub_80073B8(gUnknown_203B2F4->unk34); - r5 = r4 = gUnknown_203B2F4->input.unk1E * 8 + 10; - xxx_call_draw_string(r5,0,gUnknown_80DFDBC,gUnknown_203B2F4->unk34,0); // RESCUE EVENT + sub_8008C54(sUnknown_203B2F4->unk34); + sub_80073B8(sUnknown_203B2F4->unk34); + r5 = r4 = sUnknown_203B2F4->input.unk1E * 8 + 10; + xxx_call_draw_string(r5,0,gUnknown_80DFDBC,sUnknown_203B2F4->unk34,0); // RESCUE EVENT r4 -= 6; - r5 = r4 + (gUnknown_203B2F4->unk9C[2] * 8); - sub_8012BC4(r5,0,gUnknown_203B2F4->input.unk1E + 1,2,7,gUnknown_203B2F4->unk34); + r5 = r4 + (sUnknown_203B2F4->unk9C[2] * 8); + sub_8012BC4(r5,0,sUnknown_203B2F4->input.unk1E + 1,2,7,sUnknown_203B2F4->unk34); - for(r5 = 0; r5 < gUnknown_203B2F4->input.unk1A; r5++) + for(r5 = 0; r5 < sUnknown_203B2F4->input.unk1A; r5++) { - iVar1 = sub_803B344(gUnknown_203B2F4->input.unk1E * gUnknown_203B2F4->input.unk1C + r5); - local.unk0[0] = gUnknown_203B2F4->unk34; - local.y = sub_8013800(&gUnknown_203B2F4->input, r5); + iVar1 = sub_803B344(sUnknown_203B2F4->input.unk1E * sUnknown_203B2F4->input.unk1C + r5); + local.unk0[0] = sUnknown_203B2F4->unk34; + local.y = sub_8013800(&sUnknown_203B2F4->input, r5); sub_803B35C(&iVar1->mail,&local); local.unk43 = 1; local.unk4C = iVar1->unk14; CreateRescueTitle(&local); } - sub_80073E0(gUnknown_203B2F4->unk34); + sub_80073E0(sUnknown_203B2F4->unk34); } diff --git a/src/wonder_mail_3_mid.c b/src/wonder_mail_3_mid.c index 884109a33..f24799c65 100644 --- a/src/wonder_mail_3_mid.c +++ b/src/wonder_mail_3_mid.c @@ -32,7 +32,7 @@ struct unkStruct_203B30C MenuItem unkB0[8]; UnkTextStruct2 unkF0[4]; }; -extern struct unkStruct_203B30C *gUnknown_203B30C; +static EWRAM_DATA_2 struct unkStruct_203B30C *gUnknown_203B30C = {0}; struct unkStruct_203B310 { diff --git a/src/wonder_mail_4.c b/src/wonder_mail_4.c index a7365c48b..31dc0a24a 100644 --- a/src/wonder_mail_4.c +++ b/src/wonder_mail_4.c @@ -24,7 +24,7 @@ struct unkStruct_203B320 UnkTextStruct2 unk60[4]; u8 unkC0[4]; }; -extern struct unkStruct_203B320 *gUnknown_203B320; +static EWRAM_DATA_2 struct unkStruct_203B320 *gUnknown_203B320 = {0}; extern unkStruct_203B480 *gUnknown_203B480; diff --git a/src/wonder_mail_5.c b/src/wonder_mail_5.c index f32e097b6..363e5b1c5 100644 --- a/src/wonder_mail_5.c +++ b/src/wonder_mail_5.c @@ -21,7 +21,8 @@ struct unkStruct_203B324 UnkTextStruct2 *unk14; UnkTextStruct2 unk18[4]; }; -extern struct unkStruct_203B324 *gUnknown_203B324; +static EWRAM_DATA_2 struct unkStruct_203B324 *gUnknown_203B324 = {0}; + extern unkStruct_203B480 *gUnknown_203B480; diff --git a/src/wonder_mail_6.c b/src/wonder_mail_6.c index dd0e47f98..58f430f35 100644 --- a/src/wonder_mail_6.c +++ b/src/wonder_mail_6.c @@ -26,7 +26,8 @@ struct unkStruct_203B328 /* 0x116 */ u8 unk116; u32 wonderMailType; }; -extern struct unkStruct_203B328 *gUnknown_203B328; +static EWRAM_DATA_2 struct unkStruct_203B328 *gUnknown_203B328 = {0}; + extern unkStruct_203B480 *gUnknown_203B480; const MenuItem gUnknown_80E0948[] = diff --git a/sym_ewram2.txt b/sym_ewram2.txt index b584d3764..abf9b877b 100644 --- a/sym_ewram2.txt +++ b/sym_ewram2.txt @@ -178,36 +178,21 @@ gUnknown_203B2AA: /* 203B2AA (sub_8023868 - sub_8023C60) */ .include "src/luminous_cave.o" .include "src/friend_list_menu.o" .include "src/party_list_menu.o" - -gUnknown_203B2BC: /* 203B2BC (sub_8027074 - sub_8027EB8) */ - .space 0x4 - -gUnknown_203B2C0: /* 203B2C0 (sub_8027F88 - sub_8029AF4) */ - .space 0x4 - -gUnknown_203B2C4: /* 203B2C4 (CreateThankYouMailPelipper - SetThankYouMailMenuState) */ - .space 0x4 - -gUnknown_203B2C8: /* 203B2C8 (sub_802B2D4 - sub_802B5B8) */ - .space 0x4 - +.include "src/friend_area_action_menu.o" +.include "src/wonder_mail.o" +.include "src/thank_you_wonder_mail.o" +.include "src/wonder_mail_2.o" .include "src/pokemon_news1.o" .include "src/pokemon_news2.o" .include "src/pokemon_news3.o" .include "src/wonder_mail_802C10C.o" +.include "src/wonder_mail_2_1.o" .space 0x2 -gUnknown_203B2E8: /* 203B2E8 (sub_802C4C8 - CountAcceptedJobs) */ - .space 0x4 - -gUnknown_203B2EC: /* 203B2EC (sub_802C4C8 - sub_802C688) */ - .space 0x4 - gUnknown_203B2F0: /* 203B2F0 (InitializeJobListMenu - sub_802CD38) */ .space 0x4 -gUnknown_203B2F4: /* 203B2F4 (sub_802CDD4 - sub_802CFD0) */ - .space 0x4 +.include "src/wonder_mail_3.o" gUnknown_203B2F8: /* 203B2F8 (sub_802D098 - sub_802DADC) */ .space 0x4 @@ -216,9 +201,7 @@ gUnknown_203B2F8: /* 203B2F8 (sub_802D098 - sub_802DADC) */ .include "src/code_802DE84.o" .include "src/mailbox.o" .include "src/pelipper_board.o" - -gUnknown_203B30C: /* 203B30C (sub_802EF48 - sub_802F184) */ - .space 0x4 +.include "src/wonder_mail_3_mid.o" gUnknown_203B310: /* 203B310 (sub_802F204 - ProceedToNextRewardSceneState) */ .space 0x4 @@ -228,16 +211,9 @@ gUnknown_203B314: /* 203B314 (sub_802F73C - sub_802FA50) */ .include "src/makuhita_dojo1.o" .include "src/makuhita_dojo2.o" - -gUnknown_203B320: /* 203B320 (sub_80306A8 - sub_8030A74) */ - .space 0x4 - -gUnknown_203B324: /* 203B324 (sub_8030D40 - sub_8030E48) */ - .space 0x4 - -gUnknown_203B328: /* 203B328 (sub_8030F58 - sub_80313D8) */ - .space 0x4 - +.include "src/wonder_mail_4.o" +.include "src/wonder_mail_5.o" +.include "src/wonder_mail_6.o" .include "src/post_office_guide1.o" .include "src/post_office_guide2.o" .include "src/code_8031D70.o" From e5dfd4f08a55e5344b9e1127c0a071268ae3cb80 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sun, 24 Sep 2023 07:02:02 -0400 Subject: [PATCH 44/47] Review comments --- include/constants/main_menu.h | 7 +++---- src/options_menu2.c | 4 ++-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/include/constants/main_menu.h b/include/constants/main_menu.h index 03f5d897a..76eb3bd62 100644 --- a/include/constants/main_menu.h +++ b/include/constants/main_menu.h @@ -4,9 +4,9 @@ enum MainMenuScreens { MENU_MAIN_SCREEN = 1, - // + // 2 MENU_NEW_GAME = 3, - // + // 4 - 5 MENU_AWAITING_RESCUE = 6, MENU_CONTINUE, // used by Revive Team/Continue MENU_DELETE_SAVE_PROMPT, @@ -25,7 +25,7 @@ enum MainMenuScreens // NOTE: 27 - 34 used by Rescue Password Menu MENU_DISPLAY_RESCUE_PASSWORD = 33, MENU_RESCUE_PASSWORD_ENTRY, - // + // 35 - 45 MENU_DELETE_SAVE = 46, MENU_DEBUG_DUNGEON, MENU_DEBUG_FIELD, @@ -33,7 +33,6 @@ enum MainMenuScreens MENU_DEBUG_FIELD_SCRIPT, MENU_DEBUG_DEBUG_MENU, MENU_DEBUG_UNKNOWN_1, - // MENU_NO_SCREEN_CHANGE = 65500 // (s16)-36 }; diff --git a/src/options_menu2.c b/src/options_menu2.c index 8056d28c8..c26517ca3 100644 --- a/src/options_menu2.c +++ b/src/options_menu2.c @@ -70,8 +70,8 @@ u32 sub_801E218(void) break; } - // == 1 is needed for matching - if (sub_80138B8(&sUnknown_203B260->input, 1) != 0 || flag == TRUE) { + // == TRUE is needed for matching + if (sub_80138B8(&sUnknown_203B260->input, 1) || flag == TRUE) { nullsub_38(); CreateOptionsMenu(); return 1; From 90a51e6ef603ed450a542fb2d83fe04247e29082 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sun, 24 Sep 2023 20:21:13 -0400 Subject: [PATCH 45/47] ARG_NICKNAME_0 --- charmap.txt | 1 + data/data_8115F5C.s | 4 ++-- src/data/luminous_cave.h | 6 ++---- src/data/makuhita_dojo1.h | 2 +- 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/charmap.txt b/charmap.txt index db3f9095a..3a2859e58 100644 --- a/charmap.txt +++ b/charmap.txt @@ -277,6 +277,7 @@ ARG_POKEMON_5 = 24 6D 35 @ $m5 ARG_POKEMON_6 = 24 6D 36 @ $m6 ARG_POKEMON_7 = 24 6D 37 @ $m7 ARG_POKEMON_8 = 24 6D 38 @ $m8 +ARG_NICKNAME_0 = 24 6E 30 @ $n0 @ TEXT MACROS @ diff --git a/data/data_8115F5C.s b/data/data_8115F5C.s index fb4786ec1..859bb8ac4 100644 --- a/data/data_8115F5C.s +++ b/data/data_8115F5C.s @@ -316,13 +316,13 @@ gUnknown_81163E4: @ 81163E4 .global gUnknown_81163F0 gUnknown_81163F0: @ 81163F0 - .string "{CENTER_ALIGN}However{COMMA} $n0{APOSTROPHE}s team\n" + .string "{CENTER_ALIGN}However{COMMA} {ARG_NICKNAME_0}{APOSTROPHE}s team\n" .string "{CENTER_ALIGN}had too much money already...\0" .align 2,0 .global gUnknown_811642C gUnknown_811642C: @ 811642C - .string "{CENTER_ALIGN}However{COMMA} $n0{APOSTROPHE}s team\n" + .string "{CENTER_ALIGN}However{COMMA} {ARG_NICKNAME_0}{APOSTROPHE}s team\n" .string "{CENTER_ALIGN}had too many items already...\0" .align 2,0 .string "pksdir0\0" diff --git a/src/data/luminous_cave.h b/src/data/luminous_cave.h index 33ff16e42..ef06964eb 100644 --- a/src/data/luminous_cave.h +++ b/src/data/luminous_cave.h @@ -1,7 +1,5 @@ ALIGNED(4) static const u8 sFill[] = _("pksdir0"); -// TODO: Add "$n0" to charmap - static const UnkTextStruct2 sUnknown_80DC9E8 = { 0, 0, 0, 0, 3, @@ -81,8 +79,8 @@ ALIGNED(4) static const u8 sLetUsBegin[] = _( "{CENTER_ALIGN}Let us begin."); ALIGNED(4) static const u8 sFmtChangedAppearance[] = _( - "{CENTER_ALIGN}...{WAIT_PRESS}$n0 is undergoing changes...{EXTRA_MSG}" - "{CENTER_ALIGN}$n0{APOSTROPHE}s appearance changed...{EXTRA_MSG}"); + "{CENTER_ALIGN}...{WAIT_PRESS}{ARG_NICKNAME_0} is undergoing changes...{EXTRA_MSG}" + "{CENTER_ALIGN}{ARG_NICKNAME_0}{APOSTROPHE}s appearance changed...{EXTRA_MSG}"); ALIGNED(4) static const u8 sFmtEvolved[] = _( "{CENTER_ALIGN}It evolved from {COLOR_1 GREEN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}\n" diff --git a/src/data/makuhita_dojo1.h b/src/data/makuhita_dojo1.h index d86590380..f8f9ca7d2 100644 --- a/src/data/makuhita_dojo1.h +++ b/src/data/makuhita_dojo1.h @@ -8,7 +8,7 @@ static const UnkTextStruct2 sUnknown_80E0760 = { }; ALIGNED(4) static const u8 sReceivedBonslyDoll[] = _( - "{CENTER_ALIGN}{COLOR_1 YELLOW_5}$n0{END_COLOR_TEXT_1} received the {COLOR_1 GREEN_2}Bonsly Doll{END_COLOR_TEXT_1}!\n" + "{CENTER_ALIGN}{COLOR_1 YELLOW_5}{ARG_NICKNAME_0}{END_COLOR_TEXT_1} received the {COLOR_1 GREEN_2}Bonsly Doll{END_COLOR_TEXT_1}!\n" "{CENTER_ALIGN}It has been placed outside your\n" "{CENTER_ALIGN}rescue team base."); ALIGNED(4) static const u8 sGoTrain[] = _("Go Train"); From a0297c645fea97f7e9caabfebe1d29425b3a792c Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sun, 24 Sep 2023 20:38:11 -0400 Subject: [PATCH 46/47] Enum consistency cleanup --- include/constants/tactic.h | 28 ++++++------- include/constants/trap.h | 42 +++++++++---------- include/constants/wonder_mail.h | 41 +++++++++++------- include/friend_area_action_menu.h | 6 +-- include/kangaskhan_storage1.h | 4 +- include/kecleon_bros1.h | 13 +++--- include/mailbox.h | 21 +++++----- include/makuhita_dojo1.h | 16 +++---- include/music.h | 8 ++-- include/pelipper_board.h | 6 ++- include/pokemon.h | 3 +- include/structs/dungeon_entity.h | 20 +++++---- include/structs/map.h | 8 ++-- include/structs/str_items.h | 1 + include/trade_items_menu.h | 5 ++- include/wonder_mail_3.h | 21 ++++------ src/code_80958E8.c | 2 +- src/debug_menu1.c | 2 +- src/luminous_cave.c | 6 +-- src/wonder_mail.c | 69 +++++++++++++++++++------------ src/wonder_mail_3_mid.c | 23 ++++++----- 21 files changed, 190 insertions(+), 155 deletions(-) diff --git a/include/constants/tactic.h b/include/constants/tactic.h index 179a2ea26..541d906b5 100644 --- a/include/constants/tactic.h +++ b/include/constants/tactic.h @@ -3,19 +3,19 @@ enum TacticID { - TACTIC_LETS_GO_TOGETHER = 0x0, - TACTIC_GO_THE_OTHER_WAY = 0x1, - TACTIC_GO_AFTER_FOES = 0x2, - TACTIC_AVOID_THE_FIRST_HIT = 0x3, - TACTIC_ALL_FOR_ONE = 0x4, // Unused - TACTIC_GROUP_SAFETY = 0x5, // Unused - TACTIC_AVOID_TROUBLE = 0x6, - TACTIC_BE_PATIENT = 0x7, - TACTIC_KEEP_YOUR_DISTANCE = 0x8, - TACTIC_WAIT_THERE = 0x9, - TACTIC_GET_AWAY = 0xA, - TACTIC_UNUSED = 0xB, - NUM_TACTICS = 0xC + TACTIC_LETS_GO_TOGETHER, + TACTIC_GO_THE_OTHER_WAY, + TACTIC_GO_AFTER_FOES, + TACTIC_AVOID_THE_FIRST_HIT, + TACTIC_ALL_FOR_ONE, // Unused + TACTIC_GROUP_SAFETY, // Unused + TACTIC_AVOID_TROUBLE, + TACTIC_BE_PATIENT, + TACTIC_KEEP_YOUR_DISTANCE, + TACTIC_WAIT_THERE, + TACTIC_GET_AWAY, + TACTIC_UNUSED, + NUM_TACTICS }; -#endif +#endif // GUARD_CONSTANTS_TACTIC_H \ No newline at end of file diff --git a/include/constants/trap.h b/include/constants/trap.h index bdcf091d1..df0ffc12b 100644 --- a/include/constants/trap.h +++ b/include/constants/trap.h @@ -3,26 +3,26 @@ enum TrapID { - TRAP_TRIP_TRAP = 0x0, - TRAP_MUD_TRAP = 0x1, - TRAP_STICKY_TRAP = 0x2, - TRAP_GRIMY_TRAP = 0x3, - TRAP_SUMMON_TRAP = 0x4, - TRAP_PITFALL_TRAP = 0x5, - TRAP_WARP_TRAP = 0x6, - TRAP_WHIRLWIND_TRAP = 0x7, - TRAP_SPIN_TRAP = 0x8, - TRAP_SLUMBER_TRAP = 0x9, - TRAP_SLOW_TRAP = 0xA, - TRAP_SEAL_TRAP = 0xB, - TRAP_POISON_TRAP = 0xC, - TRAP_SELFDESTRUCT_TRAP = 0xD, - TRAP_EXPLOSION_TRAP = 0xE, - TRAP_PP_ZERO_TRAP = 0xF, - TRAP_CHESTNUT_TRAP = 0x10, - TRAP_WONDER_TILE = 0x11, - TRAP_POKEMON_TRAP = 0x12, - TRAP_SPIKE_TRAP = 0x13 + TRAP_TRIP_TRAP, + TRAP_MUD_TRAP, + TRAP_STICKY_TRAP, + TRAP_GRIMY_TRAP, + TRAP_SUMMON_TRAP, + TRAP_PITFALL_TRAP, + TRAP_WARP_TRAP, + TRAP_WHIRLWIND_TRAP, + TRAP_SPIN_TRAP, + TRAP_SLUMBER_TRAP, + TRAP_SLOW_TRAP, + TRAP_SEAL_TRAP, + TRAP_POISON_TRAP, + TRAP_SELFDESTRUCT_TRAP, + TRAP_EXPLOSION_TRAP, + TRAP_PP_ZERO_TRAP, + TRAP_CHESTNUT_TRAP, + TRAP_WONDER_TILE, + TRAP_POKEMON_TRAP, + TRAP_SPIKE_TRAP }; -#endif +#endif // GUARD_CONSTANTS_TRAP_H \ No newline at end of file diff --git a/include/constants/wonder_mail.h b/include/constants/wonder_mail.h index 25a5c6c62..48cbc2a33 100644 --- a/include/constants/wonder_mail.h +++ b/include/constants/wonder_mail.h @@ -16,36 +16,44 @@ enum RewardType END_REWARDS }; -enum WonderMailMode { +enum WonderMailMode +{ WONDER_MAIL_MODE_SEND = 1, - WONDER_MAIL_MODE_RECEIVE = 2, + WONDER_MAIL_MODE_RECEIVE, }; -enum WonderMailMethod { +enum WonderMailMethod +{ + // 0 - 2 WONDER_MAIL_GAME_LINK = 3, - WONDER_MAIL_PASSWORD = 5, + // 4 + WONDER_MAIL_PASSWORD = 5, }; -enum WonderMailTypes { +enum WonderMailTypes +{ WONDER_MAIL_TYPE_NONE = 0, - WONDER_MAIL_TYPE_SOS = 1, + WONDER_MAIL_TYPE_SOS, //WONDER_MAIL_TYPE_SOS = 2, // SOS MAIL is 1 and 2? + // 2 - 3 WONDER_MAIL_TYPE_AOK = 4, WONDER_MAIL_TYPE_THANK_YOU = 5, WONDER_MAIL_TYPE_WONDER = 5, - WONDER_MAIL_TYPE_COMPLETED = 6, - WONDER_MAIL_TYPE_OKD = 7, + WONDER_MAIL_TYPE_COMPLETED, + WONDER_MAIL_TYPE_OKD, }; // Used in CreateRescueTitle and CreateRescueDescription -enum MailStatuses { +enum MailStatuses +{ MAIL_STATUS_SUSPENDED, MAIL_STATUS_TAKE_JOB, MAIL_STATUS_DONE }; // Used in CreateRescueTitle and CreateRescueDescription -enum MissionTypes { +enum MissionTypes +{ MISSION_TYPE_FRIEND_RESCUE, MISSION_TYPE_FIND_ITEM, MISSION_TYPE_DELIVER_ITEM, @@ -57,11 +65,12 @@ enum MissionTypes { enum WonderMailMissionTypes { - WONDER_MAIL_MISSION_TYPE_RESCUE_CLIENT = 0, - WONDER_MAIL_MISSION_TYPE_RESCUE_TARGET = 1, - WONDER_MAIL_MISSION_TYPE_ESCORT_CLIENT = 2, - WONDER_MAIL_MISSION_TYPE_FIND_ITEM = 3, - WONDER_MAIL_MISSION_TYPE_DELIVER_ITEM = 4, + WONDER_MAIL_MISSION_TYPE_RESCUE_CLIENT, + WONDER_MAIL_MISSION_TYPE_RESCUE_TARGET, + WONDER_MAIL_MISSION_TYPE_ESCORT_CLIENT, + WONDER_MAIL_MISSION_TYPE_FIND_ITEM, + WONDER_MAIL_MISSION_TYPE_DELIVER_ITEM, + // 5 WONDER_MAIL_MISSION_TYPE_UNK6 = 6, }; @@ -73,4 +82,4 @@ enum WonderMailMissionTypes #define MAX_ITEM_REWARDS 3 -#endif //GUARD_CONSTANTS_WONDER_MAIL_H +#endif //GUARD_CONSTANTS_WONDER_MAIL_H \ No newline at end of file diff --git a/include/friend_area_action_menu.h b/include/friend_area_action_menu.h index ba8af7951..911f8e25e 100644 --- a/include/friend_area_action_menu.h +++ b/include/friend_area_action_menu.h @@ -12,13 +12,13 @@ enum FriendAreaActionMenuStates FRIEND_AREA_ACTION_MENU_INIT, FRIEND_AREA_ACTION_MENU_MAIN, FRIEND_AREA_ACTION_MENU_MAIN_2, - // + // 3 FRIEND_AREA_ACTION_MENU_SUMMARY = 4, FRIEND_AREA_ACTION_MENU_CHECK_IQ, - // + // 6 - 7 FRIEND_AREA_ACTION_MENU_SAY_FAREWELL_PROMPT = 8, FRIEND_AREA_ACTION_MENU_SAY_FAREWELL_CONFIRM, - // + // 10 - 16 FRIEND_AREA_ACTION_MENU_EXIT = 17, }; diff --git a/include/kangaskhan_storage1.h b/include/kangaskhan_storage1.h index 6fdc58fb0..551af5a45 100644 --- a/include/kangaskhan_storage1.h +++ b/include/kangaskhan_storage1.h @@ -10,11 +10,11 @@ enum KangaskhanStorageStates { KANGASKHAN_STORAGE_INIT, KANGASKHAN_STORAGE_MAIN_MENU, - // + // 2 - 3 KANGASKHAN_STORAGE_EXIT = 4, KANGASKHAN_STORAGE_NO_INV_ITEMS, KANGASKHAN_STORAGE_TOO_MANY_ITEMS, - // + // 7 - 8 KANGASKHAN_STORAGE_IS_MONEY_USED_TM = 9, }; diff --git a/include/kecleon_bros1.h b/include/kecleon_bros1.h index c7a1de6dc..f753ce5b0 100644 --- a/include/kecleon_bros1.h +++ b/include/kecleon_bros1.h @@ -9,14 +9,17 @@ enum KecleonStoreStates { KECLEON_STORE_INIT = 0, - KECLEON_STORE_MAIN_MENU = 1, + KECLEON_STORE_MAIN_MENU, + // 2 - 3 KECLEON_STORE_EXIT = 4, - KECLEON_STORE_NO_STORE_ITEMS = 5, - KECLEON_STORE_NO_MONEY = 6, + KECLEON_STORE_NO_STORE_ITEMS, + KECLEON_STORE_NO_MONEY, + // 7 - 8 KECLEON_STORE_NO_ITEMS_TO_SELL = 9, - KECLEON_STORE_TOO_MANY_ITEMS = 10, + KECLEON_STORE_TOO_MANY_ITEMS, + // 11 KECLEON_STORE_NOT_ENOUGH_MONEY = 12, - KECLEON_STORE_CANT_SELL_ITEM = 13, + KECLEON_STORE_CANT_SELL_ITEM, }; // size: 0x148 diff --git a/include/mailbox.h b/include/mailbox.h index 649ee7b3f..4ff13cf58 100644 --- a/include/mailbox.h +++ b/include/mailbox.h @@ -25,19 +25,20 @@ struct unkStruct_203B304 extern void SetMailboxState(u32); extern s32 GetNumAcceptedJobs(void); -enum MailBoxStates { +enum MailBoxStates +{ INITIALIZE_MAILBOX, MAIN_MAILBOX_MENU, - // 2 is ??? + // 2 MAILBOX_EXIT = 3, - MAIL_MENU = 4, - MAIL_MENU_1 = 5, - MAIL_ACTION_MENU = 6, - MAIL_INFO = 7, - JOB_LIST_MENU = 8, - PKMN_NEWS_MENU = 0x9, - PKMN_NEWS_MENU_1 = 0xA, - DISPLAY_SEL_PKMN_NEWS = 0xB, + MAIL_MENU, + MAIL_MENU_1, + MAIL_ACTION_MENU, + MAIL_INFO, + JOB_LIST_MENU, + PKMN_NEWS_MENU, + PKMN_NEWS_MENU_1, + DISPLAY_SEL_PKMN_NEWS, }; #endif // GUARD_MAILBOX_H diff --git a/include/makuhita_dojo1.h b/include/makuhita_dojo1.h index 083cb346e..ffd0f420a 100644 --- a/include/makuhita_dojo1.h +++ b/include/makuhita_dojo1.h @@ -7,14 +7,14 @@ enum MakuhitaDojoInitMode { - MAKUHITA_DOJO_INIT_MODE_UNK0_AWAKE = 0, - MAKUHITA_DOJO_INIT_MODE_UNK1_AWAKE = 1, - MAKUHITA_DOJO_INIT_MODE_UNK2_AWAKE = 2, - MAKUHITA_DOJO_INIT_MODE_UNK3_AWAKE = 3, - MAKUHITA_DOJO_INIT_MODE_UNK4_ASLEEP = 4, - MAKUHITA_DOJO_INIT_MODE_UNK5_ASLEEP = 5, - MAKUHITA_DOJO_INIT_MODE_UNK6_ASLEEP = 6, - MAKUHITA_DOJO_INIT_MODE_UNK7_ASLEEP = 7, + MAKUHITA_DOJO_INIT_MODE_UNK0_AWAKE, + MAKUHITA_DOJO_INIT_MODE_UNK1_AWAKE, + MAKUHITA_DOJO_INIT_MODE_UNK2_AWAKE, + MAKUHITA_DOJO_INIT_MODE_UNK3_AWAKE, + MAKUHITA_DOJO_INIT_MODE_UNK4_ASLEEP, + MAKUHITA_DOJO_INIT_MODE_UNK5_ASLEEP, + MAKUHITA_DOJO_INIT_MODE_UNK6_ASLEEP, + MAKUHITA_DOJO_INIT_MODE_UNK7_ASLEEP, }; // size: 0xCC diff --git a/include/music.h b/include/music.h index 6298927e1..0e6007db9 100644 --- a/include/music.h +++ b/include/music.h @@ -30,14 +30,16 @@ enum MusicPlayerIndex // TODO: continue to doc the rest of BG/Fanfare Player States enum BG_Player_State { - BG_PLAYER_STATE_INITIALIZE = 0, - BG_PLAYER_STATE_PLAYING = 1, + BG_PLAYER_STATE_INITIALIZE, + BG_PLAYER_STATE_PLAYING, + // 2 - 3 BG_PLAYER_STATE_STOPPED = 4, }; enum Fanfare_Player_State { - FANFARE_PLAYER_STATE_INITIALIZE = 0, + FANFARE_PLAYER_STATE_INITIALIZE, + // 1 - 2 FANFARE_PLAYER_STATE_PLAYING = 3, }; diff --git a/include/pelipper_board.h b/include/pelipper_board.h index bc063ac22..646d55e6e 100644 --- a/include/pelipper_board.h +++ b/include/pelipper_board.h @@ -17,11 +17,13 @@ struct unkStruct_203B308 extern struct unkStruct_203B308 *gPelipperBoard; -enum PelipperBoardStates { +enum PelipperBoardStates +{ INITIALIZE_PELIPPER_BOARD, MAIN_PELIPPER_BOARD_MENU, - // 2 is ??? + // 2 PELIPPER_BOARD_EXIT = 3, + // 4 - 6 PELIPPER_JOB_INFO = 7, PELIPPER_JOB_LIST_MENU, }; diff --git a/include/pokemon.h b/include/pokemon.h index d4d00d795..6d49ca3bd 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -9,7 +9,8 @@ #define OFFENSE_NRM 0 #define OFFENSE_SP 1 -enum PokemonUnk0Flags { +enum PokemonUnk0Flags +{ FLAG_ON_TEAM = 2, }; diff --git a/include/structs/dungeon_entity.h b/include/structs/dungeon_entity.h index 3c6602677..18e522120 100644 --- a/include/structs/dungeon_entity.h +++ b/include/structs/dungeon_entity.h @@ -312,20 +312,22 @@ enum ShopkeeperMode enum AIObjective { + // 0 AI_CHASE_TARGET = 1, - AI_CHASE_REMEMBERED_TARGET = 2, - AI_ROAM = 3, - AI_LEAVE_ROOM = 4, - AI_RUN_AWAY = 5, - AI_STAND_STILL = 6, - AI_TAKE_ITEM = 7 + AI_CHASE_REMEMBERED_TARGET, + AI_ROAM, + AI_LEAVE_ROOM, + AI_RUN_AWAY, + AI_STAND_STILL, + AI_TAKE_ITEM }; enum ClientType { - CLIENT_TYPE_NONE = 0, - CLIENT_TYPE_CLIENT = 1, // Used for mission clients that need rescuing. + CLIENT_TYPE_NONE, + CLIENT_TYPE_CLIENT, // Used for mission clients that need rescuing. CLIENT_TYPE_PARTNER, + // 3 CLIENT_TYPE_DONT_MOVE = 4 // Used for Diglett in the Skarmory boss fight. }; @@ -336,4 +338,4 @@ enum VisualFlag VISUAL_FLAG_RUN_AWAY = 2 }; -#endif +#endif \ No newline at end of file diff --git a/include/structs/map.h b/include/structs/map.h index dda57e86f..69172c1c8 100644 --- a/include/structs/map.h +++ b/include/structs/map.h @@ -22,10 +22,10 @@ enum TerrainType enum CrossableTerrain { - CROSSABLE_TERRAIN_REGULAR = 0, - CROSSABLE_TERRAIN_LIQUID = 1, - CROSSABLE_TERRAIN_CREVICE = 2, - CROSSABLE_TERRAIN_WALL = 3, + CROSSABLE_TERRAIN_REGULAR, + CROSSABLE_TERRAIN_LIQUID, + CROSSABLE_TERRAIN_CREVICE, + CROSSABLE_TERRAIN_WALL, NUM_CROSSABLE_TERRAIN }; diff --git a/include/structs/str_items.h b/include/structs/str_items.h index ab1933e6e..44085fd76 100644 --- a/include/structs/str_items.h +++ b/include/structs/str_items.h @@ -68,6 +68,7 @@ typedef struct TeamInventory } TeamInventory; // TODO: These should be in constants/ +// Not doing it now since we cannot include enums in the constants file due to being used by the data_item and data_monster assemblers enum ItemFlag { diff --git a/include/trade_items_menu.h b/include/trade_items_menu.h index c5ed2afc4..68453b718 100644 --- a/include/trade_items_menu.h +++ b/include/trade_items_menu.h @@ -16,10 +16,13 @@ enum TradeItemsScreens TRADE_ITEMS_ITEM_INFO, TRADE_ITEMS_SEND_ITEM_CONFIRM, TRADE_ITEMS_RECEIVE_ITEM, + // 8 TRADE_ITEMS_IN_COMMUNICATION = 9, + // 10 - 14 TRADE_ITEMS_PREPARE_TRADE_SAVING = 15, + // 16 TRADE_ITEMS_PRE_EXIT = 17, - TRADE_ITEMS_EXIT = 18, + TRADE_ITEMS_EXIT, }; enum TradeItemsModes diff --git a/include/wonder_mail_3.h b/include/wonder_mail_3.h index 37da8c42a..9ea7a9dd6 100644 --- a/include/wonder_mail_3.h +++ b/include/wonder_mail_3.h @@ -61,22 +61,17 @@ typedef struct unkStruct_203B2F8 enum WonderMailRescueStates { INITIAL_WONDER_MAIL_CHECK = 0, - // 1 is ?? + // 1 WONDER_MAIL_EXIT = 2, - DUPLICATE_WONDER_MAIL = 3, - DUPLICATE_WONDER_MAIL_1 = 4, - // 5 is ?? - // 6 is ?? - // 7 is ?? + DUPLICATE_WONDER_MAIL, + DUPLICATE_WONDER_MAIL_1, + // 5 - 7 RECEIVE_WONDER_MAIL = 8, - // 9 is ?? + // 9 JOB_LIST_FULL = 10, - DRAW_JOB_LIST = 11, - DRAW_JOB_LIST_1 = 12, - // 13 is ?? - // 14 is ?? - // 15 is ?? - // 16 is ?? + DRAW_JOB_LIST, + DRAW_JOB_LIST_1, + // 13 - 16 }; u32 sub_802D098(unkSubStruct_203B2F8 *mail); diff --git a/src/code_80958E8.c b/src/code_80958E8.c index a33c98421..ed72436ec 100644 --- a/src/code_80958E8.c +++ b/src/code_80958E8.c @@ -68,7 +68,7 @@ bool8 IsValidWonderMail(WonderMail *WonderMailData) { // Has to equal 5 for Wonder Mail // https://web.archive.org/web/20080913124416/http://www.upokecenter.com/games/dungeon/guides/passwords.html - // + if(WonderMailData->mailType != WONDER_MAIL_TYPE_WONDER) { return FALSE; diff --git a/src/debug_menu1.c b/src/debug_menu1.c index 381ffbfcd..bc735f4a7 100644 --- a/src/debug_menu1.c +++ b/src/debug_menu1.c @@ -21,7 +21,7 @@ enum DebugMenuOptions MENU_DEBUG_MENU_DEBUG_MENU, MENU_DEBUG_MENU_UNKNOWN_1, MENU_DEBUG_MENU_STORAGE, - // + // 7 - 8 MENU_DEBUG_MENU_H_OPEN = 9, }; diff --git a/src/luminous_cave.c b/src/luminous_cave.c index fa0c65964..f50a9d827 100644 --- a/src/luminous_cave.c +++ b/src/luminous_cave.c @@ -27,11 +27,11 @@ enum LUMINOUS_CAVE_ASK_EVOLVE, LUMINOUS_CAVE_EVOLVE_INFO, LUMINOUS_CAVE_SHALL_RETURN, - // + // 4 LUMINOUS_CAVE_GIVE_ITEM_1 = 5, - // + // 6 - 9 LUMINOUS_CAVE_GIVE_ITEM_2 = 10, - // + // 11 - 14 LUMINOUS_CAVE_LACK_WHAT_NEEDED = 15, LUMINOUS_CAVE_ONLY_ONE_ITEM, LUMINOUS_CAVE_LET_US_BEGIN, diff --git a/src/wonder_mail.c b/src/wonder_mail.c index da0f72226..15cb54cd8 100644 --- a/src/wonder_mail.c +++ b/src/wonder_mail.c @@ -117,41 +117,56 @@ extern const u8 DontSendPokemon_80DDB80[]; extern const u8 SendPokemon_80DDB98[]; extern const u8 SendWOPokemon[]; -enum FriendRescueStates { +enum FriendRescueStates +{ INITIALIZE_FRIEND_RESCUE = 0, FRIEND_RESCUE_MAIN = 1, FRIEND_RESCUE_EXIT_PRE = 2, FRIEND_RESCUE_COUNTER_EXIT = 3, + // 4 FRIEND_RESCUE_COMMUNICATING_PRE = 5, FRIEND_RESCUE_COMMUNICATING = 6, FRIEND_RESCUE_ERROR = 7, + // 8 NO_MAIL_ROOM = 9, - NO_SOS_MAIL = 0xC, - NO_AOK_MAIL = 0xE, - NO_MAIL = 0x10, - PROMPT_DELETE_ALL_MAIL = 0x12, - CONFIRM_DELETE_ALL_MAIL_1 = 0x13, - CONFIRM_DELETE_ALL_MAIL_2 = 0x14, - DELETE_ALL_MAIL_SAVE_PRE = 0x15, - NO_SOS_MAIL_TO_SEND = 0x1A, - CANT_GO_TO_DUNGEON = 0x1C, - FRIEND_RESCUE_FAILED = 0x1D, - PROMPT_CHOOSE_SOS_MAIL = 0x1E, - RECEIVED_FRIEND_SOS_MAIL = 0x23, - RECEIVED_FRIEND_SOS_MAIL_SAVE_PRE = 0x24, - RECEIVED_FRIEND_SOS_MAIL_SAVE_COMPLETE = 0x25, - PROMPT_SOS_MAIL_PASSWORD = 0x26, - PROMPT_CHOOSE_AOK_MAIL = 0x29, - NO_AOK_MAIL_TO_SEND = 0x2F, - NO_POKEMON_IN_FRIEND_AREA = 0x31, - PROMPT_SELECT_HELPER_POKEMON = 0x32, - SELECT_HELPER_POKEMON = 0x33, - CONFIRM_SEND_HELPER_POKEMON = 0x36, - SENT_AOK_MAIL = 0x37, - SENT_AOK_MAIL_SAVE_PRE = 0x38, - SENT_AOK_MAIL_SAVE_COMPLETE = 0x39, - AOK_PASSWORD_DISPLAY = 0x3A, - DEFAULT_FALLBACK_STATE = 0x3D + // 10 - 11 + NO_SOS_MAIL = 12, + // 13 + NO_AOK_MAIL = 14, + // 15 + NO_MAIL = 16, + // 17 + PROMPT_DELETE_ALL_MAIL = 18, + CONFIRM_DELETE_ALL_MAIL_1, + CONFIRM_DELETE_ALL_MAIL_2, + DELETE_ALL_MAIL_SAVE_PRE, + // 22 - 25 + NO_SOS_MAIL_TO_SEND = 26, + // 27 + CANT_GO_TO_DUNGEON = 28, + FRIEND_RESCUE_FAILED, + PROMPT_CHOOSE_SOS_MAIL, + // 31 - 34 + RECEIVED_FRIEND_SOS_MAIL = 35, + RECEIVED_FRIEND_SOS_MAIL_SAVE_PRE, + RECEIVED_FRIEND_SOS_MAIL_SAVE_COMPLETE, + PROMPT_SOS_MAIL_PASSWORD, + // 39 - 40 + PROMPT_CHOOSE_AOK_MAIL = 41, + // 42 - 46 + NO_AOK_MAIL_TO_SEND = 47, + // 48 + NO_POKEMON_IN_FRIEND_AREA = 49, + PROMPT_SELECT_HELPER_POKEMON, + SELECT_HELPER_POKEMON, + // 52 - 53 + CONFIRM_SEND_HELPER_POKEMON = 54, + SENT_AOK_MAIL, + SENT_AOK_MAIL_SAVE_PRE, + SENT_AOK_MAIL_SAVE_COMPLETE, + AOK_PASSWORD_DISPLAY, + // 59 - 60 + DEFAULT_FALLBACK_STATE = 61 }; const MenuItem gUnknown_80DD970[] = diff --git a/src/wonder_mail_3_mid.c b/src/wonder_mail_3_mid.c index f24799c65..061c8abdc 100644 --- a/src/wonder_mail_3_mid.c +++ b/src/wonder_mail_3_mid.c @@ -77,17 +77,18 @@ struct unkStruct_203B314 extern struct unkStruct_203B314 *gUnknown_203B314; -enum FriendRewardStates { - PREP_MONEY_REWARD = 0, - MONEY_REWARD = 1, - PREP_FRIEND_AREA_REWARD = 2, - UNLOCK_FRIEND_AREA = 3, - PREP_ITEM_REWARD = 4, - GIVE_ITEM_REWARD = 5, - NEXT_ITEM = 6, - TEAM_PNTS_REWARD = 7, - NEW_TEAM_RANK = 8, - REWARD_EXIT = 9, +enum FriendRewardStates +{ + PREP_MONEY_REWARD, + MONEY_REWARD, + PREP_FRIEND_AREA_REWARD, + UNLOCK_FRIEND_AREA, + PREP_ITEM_REWARD, + GIVE_ITEM_REWARD, + NEXT_ITEM, + TEAM_PNTS_REWARD, + NEW_TEAM_RANK, + REWARD_EXIT, }; extern bool8 sub_802FCF0(u32); From 7b68e452b4df5ee84861997620a43954535733a8 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sun, 24 Sep 2023 23:12:23 -0400 Subject: [PATCH 47/47] Document wurmpleVal --- include/pokemon_3.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/pokemon_3.h b/include/pokemon_3.h index 1891b89cc..f05d3af19 100644 --- a/include/pokemon_3.h +++ b/include/pokemon_3.h @@ -8,6 +8,8 @@ typedef struct EvolveStatus { /* 0x0 */ u8 evoItem1; /* 0x1 */ u8 evoItem2; + // This value is set to a random number in the range [0, 254]. + // Even values produce Silcoon while odd values produce Cascoon. /* 0x2 */ u8 wurmpleVal; /* 0x4 */ u16 evolutionConditionStatus; /* 0x6 */ s16 targetEvolveSpecies;