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"