mirror of
https://github.com/pret/pmd-red.git
synced 2026-10-02 13:58:56 -05:00
bg_palette_buffer/othermenus clean
This commit is contained in:
@@ -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
|
||||
272
asm/other_menus1.s
Normal file
272
asm/other_menus1.s
Normal file
@@ -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
|
||||
242
asm/other_menus2.s
Normal file
242
asm/other_menus2.s
Normal file
@@ -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
|
||||
@@ -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
|
||||
@@ -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);
|
||||
|
||||
35
include/other_menus1.h
Normal file
35
include/other_menus1.h
Normal file
@@ -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
|
||||
4
include/other_menus2.h
Normal file
4
include/other_menus2.h
Normal file
@@ -0,0 +1,4 @@
|
||||
#ifndef GUARD_OTHER_MENUS2_H
|
||||
#define GUARD_OTHER_MENUS2_H
|
||||
|
||||
#endif // GUARD_OTHER_MENUS2_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
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
387
src/data/other_menus1.h
Normal file
387
src/data/other_menus1.h
Normal file
@@ -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.");
|
||||
8
src/data/other_menus2.h
Normal file
8
src/data/other_menus2.h
Normal file
@@ -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";
|
||||
@@ -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";
|
||||
114
src/data/trade_items_menu.h
Normal file
114
src/data/trade_items_menu.h
Normal file
@@ -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?";
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
448
src/other_menus1.c
Normal file
448
src/other_menus1.c
Normal file
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -173,7 +173,7 @@ void CleanSaveMenu(void)
|
||||
s32 UpdateSaveMenu(void)
|
||||
{
|
||||
int saveStatus;
|
||||
struct MainMenu *mainMenu;
|
||||
MainMenu *mainMenu;
|
||||
u32 menu;
|
||||
u32 uStack_18;
|
||||
u32 action;
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user