through sub_8102F80
This commit is contained in:
@@ -5,622 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8102C28
|
||||
sub_8102C28: @ 8102C28
|
||||
push {r4-r7,lr}
|
||||
mov r7, r9
|
||||
mov r6, r8
|
||||
push {r6,r7}
|
||||
sub sp, 0x24
|
||||
movs r5, 0x1E
|
||||
str r5, [sp]
|
||||
movs r4, 0x14
|
||||
str r4, [sp, 0x4]
|
||||
movs r0, 0
|
||||
mov r9, r0
|
||||
str r0, [sp, 0x8]
|
||||
movs r0, 0x3
|
||||
movs r1, 0xE
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl FillBgTilemapBufferRect
|
||||
str r5, [sp]
|
||||
str r4, [sp, 0x4]
|
||||
movs r6, 0x11
|
||||
str r6, [sp, 0x8]
|
||||
movs r0, 0x2
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl FillBgTilemapBufferRect
|
||||
str r5, [sp]
|
||||
str r4, [sp, 0x4]
|
||||
str r6, [sp, 0x8]
|
||||
movs r0, 0x1
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl FillBgTilemapBufferRect
|
||||
ldr r0, _08102DA4 @ =gUnknown_8451F54
|
||||
bl AddWindow
|
||||
ldr r7, _08102DA8 @ =gUnknown_203ACF0
|
||||
ldr r1, [r7]
|
||||
strb r0, [r1, 0x14]
|
||||
ldr r0, _08102DAC @ =gUnknown_8451F5C
|
||||
bl AddWindow
|
||||
ldr r1, [r7]
|
||||
strb r0, [r1, 0x15]
|
||||
ldr r0, _08102DB0 @ =gUnknown_8451F64
|
||||
bl AddWindow
|
||||
ldr r1, [r7]
|
||||
strb r0, [r1, 0x16]
|
||||
bl IsNationalPokedexEnabled
|
||||
adds r5, r0, 0
|
||||
cmp r5, 0
|
||||
bne _08102C9E
|
||||
b _08102DC8
|
||||
_08102C9E:
|
||||
add r1, sp, 0xC
|
||||
ldr r0, _08102DB4 @ =gUnknown_84520BC
|
||||
ldm r0!, {r2-r4}
|
||||
stm r1!, {r2-r4}
|
||||
ldm r0!, {r2-r4}
|
||||
stm r1!, {r2-r4}
|
||||
add r2, sp, 0xC
|
||||
ldr r0, [r7]
|
||||
ldrb r1, [r0, 0x14]
|
||||
strb r1, [r2, 0x10]
|
||||
ldrh r1, [r0, 0x12]
|
||||
ldrh r2, [r0, 0x10]
|
||||
add r0, sp, 0xC
|
||||
bl ListMenuInit
|
||||
ldr r1, [r7]
|
||||
strb r0, [r1, 0x17]
|
||||
ldr r0, [r7]
|
||||
ldrb r0, [r0, 0x16]
|
||||
movs r1, 0
|
||||
bl FillWindowPixelBuffer
|
||||
ldr r0, [r7]
|
||||
ldrb r0, [r0, 0x16]
|
||||
ldr r2, _08102DB8 @ =gUnknown_8415DC4
|
||||
movs r5, 0x2
|
||||
str r5, [sp]
|
||||
mov r1, r9
|
||||
str r1, [sp, 0x4]
|
||||
movs r1, 0
|
||||
movs r3, 0
|
||||
bl sub_81047C8
|
||||
ldr r0, [r7]
|
||||
ldrb r0, [r0, 0x16]
|
||||
ldr r2, _08102DBC @ =gUnknown_8415DD1
|
||||
mov r8, r2
|
||||
movs r4, 0xD
|
||||
str r4, [sp]
|
||||
mov r3, r9
|
||||
str r3, [sp, 0x4]
|
||||
movs r1, 0
|
||||
movs r3, 0x8
|
||||
bl sub_81047C8
|
||||
ldr r1, [r7]
|
||||
ldrb r0, [r1, 0x16]
|
||||
adds r1, 0x66
|
||||
ldrh r2, [r1]
|
||||
str r4, [sp]
|
||||
str r5, [sp, 0x4]
|
||||
movs r1, 0
|
||||
movs r3, 0x34
|
||||
bl sub_810491C
|
||||
ldr r0, [r7]
|
||||
ldrb r0, [r0, 0x16]
|
||||
ldr r6, _08102DC0 @ =gUnknown_8415DD7
|
||||
movs r4, 0x18
|
||||
str r4, [sp]
|
||||
mov r1, r9
|
||||
str r1, [sp, 0x4]
|
||||
movs r1, 0
|
||||
adds r2, r6, 0
|
||||
movs r3, 0x8
|
||||
bl sub_81047C8
|
||||
ldr r1, [r7]
|
||||
ldrb r0, [r1, 0x16]
|
||||
adds r1, 0x6A
|
||||
ldrh r2, [r1]
|
||||
str r4, [sp]
|
||||
str r5, [sp, 0x4]
|
||||
movs r1, 0
|
||||
movs r3, 0x34
|
||||
bl sub_810491C
|
||||
ldr r0, [r7]
|
||||
ldrb r0, [r0, 0x16]
|
||||
ldr r2, _08102DC4 @ =gUnknown_8415DCA
|
||||
movs r1, 0x25
|
||||
str r1, [sp]
|
||||
mov r3, r9
|
||||
str r3, [sp, 0x4]
|
||||
movs r1, 0
|
||||
movs r3, 0
|
||||
bl sub_81047C8
|
||||
ldr r0, [r7]
|
||||
ldrb r0, [r0, 0x16]
|
||||
movs r4, 0x30
|
||||
str r4, [sp]
|
||||
mov r1, r9
|
||||
str r1, [sp, 0x4]
|
||||
movs r1, 0
|
||||
mov r2, r8
|
||||
movs r3, 0x8
|
||||
bl sub_81047C8
|
||||
ldr r1, [r7]
|
||||
ldrb r0, [r1, 0x16]
|
||||
adds r1, 0x68
|
||||
ldrh r2, [r1]
|
||||
str r4, [sp]
|
||||
str r5, [sp, 0x4]
|
||||
movs r1, 0
|
||||
movs r3, 0x34
|
||||
bl sub_810491C
|
||||
ldr r0, [r7]
|
||||
ldrb r0, [r0, 0x16]
|
||||
movs r4, 0x3B
|
||||
str r4, [sp]
|
||||
mov r2, r9
|
||||
str r2, [sp, 0x4]
|
||||
movs r1, 0
|
||||
adds r2, r6, 0
|
||||
movs r3, 0x8
|
||||
bl sub_81047C8
|
||||
ldr r1, [r7]
|
||||
ldrb r0, [r1, 0x16]
|
||||
adds r1, 0x6C
|
||||
ldrh r2, [r1]
|
||||
str r4, [sp]
|
||||
str r5, [sp, 0x4]
|
||||
movs r1, 0
|
||||
movs r3, 0x34
|
||||
bl sub_810491C
|
||||
b _08102E4A
|
||||
.align 2, 0
|
||||
_08102DA4: .4byte gUnknown_8451F54
|
||||
_08102DA8: .4byte gUnknown_203ACF0
|
||||
_08102DAC: .4byte gUnknown_8451F5C
|
||||
_08102DB0: .4byte gUnknown_8451F64
|
||||
_08102DB4: .4byte gUnknown_84520BC
|
||||
_08102DB8: .4byte gUnknown_8415DC4
|
||||
_08102DBC: .4byte gUnknown_8415DD1
|
||||
_08102DC0: .4byte gUnknown_8415DD7
|
||||
_08102DC4: .4byte gUnknown_8415DCA
|
||||
_08102DC8:
|
||||
add r1, sp, 0xC
|
||||
ldr r0, _08102EA8 @ =gUnknown_8452004
|
||||
ldm r0!, {r2-r4}
|
||||
stm r1!, {r2-r4}
|
||||
ldm r0!, {r2-r4}
|
||||
stm r1!, {r2-r4}
|
||||
add r2, sp, 0xC
|
||||
ldr r0, [r7]
|
||||
ldrb r1, [r0, 0x14]
|
||||
strb r1, [r2, 0x10]
|
||||
ldrh r1, [r0, 0x12]
|
||||
ldrh r2, [r0, 0x10]
|
||||
add r0, sp, 0xC
|
||||
bl ListMenuInit
|
||||
ldr r1, [r7]
|
||||
strb r0, [r1, 0x17]
|
||||
ldr r0, [r7]
|
||||
ldrb r0, [r0, 0x16]
|
||||
movs r1, 0
|
||||
bl FillWindowPixelBuffer
|
||||
ldr r0, [r7]
|
||||
ldrb r0, [r0, 0x16]
|
||||
ldr r2, _08102EAC @ =gUnknown_8415DC4
|
||||
movs r1, 0x9
|
||||
str r1, [sp]
|
||||
str r5, [sp, 0x4]
|
||||
movs r1, 0x1
|
||||
movs r3, 0
|
||||
bl sub_81047C8
|
||||
ldr r1, [r7]
|
||||
ldrb r0, [r1, 0x16]
|
||||
adds r1, 0x66
|
||||
ldrh r2, [r1]
|
||||
movs r1, 0x15
|
||||
str r1, [sp]
|
||||
movs r4, 0x2
|
||||
str r4, [sp, 0x4]
|
||||
movs r1, 0x1
|
||||
movs r3, 0x20
|
||||
bl sub_810491C
|
||||
ldr r0, [r7]
|
||||
ldrb r0, [r0, 0x16]
|
||||
ldr r2, _08102EB0 @ =gUnknown_8415DCA
|
||||
movs r1, 0x25
|
||||
str r1, [sp]
|
||||
str r5, [sp, 0x4]
|
||||
movs r1, 0x1
|
||||
movs r3, 0
|
||||
bl sub_81047C8
|
||||
ldr r1, [r7]
|
||||
ldrb r0, [r1, 0x16]
|
||||
adds r1, 0x68
|
||||
ldrh r2, [r1]
|
||||
movs r1, 0x31
|
||||
str r1, [sp]
|
||||
str r4, [sp, 0x4]
|
||||
movs r1, 0x1
|
||||
movs r3, 0x20
|
||||
bl sub_810491C
|
||||
_08102E4A:
|
||||
movs r0, 0
|
||||
movs r1, 0xFF
|
||||
bl FillWindowPixelBuffer
|
||||
ldr r0, _08102EB4 @ =gUnknown_8415D9C
|
||||
movs r1, 0x1
|
||||
bl sub_8106E78
|
||||
movs r0, 0x1
|
||||
movs r1, 0xFF
|
||||
bl FillWindowPixelBuffer
|
||||
ldr r0, _08102EB8 @ =gUnknown_8415DB8
|
||||
bl sub_8104C2C
|
||||
movs r0, 0
|
||||
bl PutWindowTilemap
|
||||
movs r0, 0
|
||||
movs r1, 0x2
|
||||
bl CopyWindowToVram
|
||||
movs r0, 0x1
|
||||
bl PutWindowTilemap
|
||||
movs r0, 0x1
|
||||
movs r1, 0x2
|
||||
bl CopyWindowToVram
|
||||
ldr r4, _08102EBC @ =gUnknown_203ACF0
|
||||
ldr r0, [r4]
|
||||
ldrb r0, [r0, 0x16]
|
||||
bl PutWindowTilemap
|
||||
ldr r0, [r4]
|
||||
ldrb r0, [r0, 0x16]
|
||||
movs r1, 0x2
|
||||
bl CopyWindowToVram
|
||||
add sp, 0x24
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08102EA8: .4byte gUnknown_8452004
|
||||
_08102EAC: .4byte gUnknown_8415DC4
|
||||
_08102EB0: .4byte gUnknown_8415DCA
|
||||
_08102EB4: .4byte gUnknown_8415D9C
|
||||
_08102EB8: .4byte gUnknown_8415DB8
|
||||
_08102EBC: .4byte gUnknown_203ACF0
|
||||
thumb_func_end sub_8102C28
|
||||
|
||||
thumb_func_start sub_8102EC0
|
||||
sub_8102EC0: @ 8102EC0
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
lsls r1, 24
|
||||
cmp r1, 0
|
||||
bne _08102ED0
|
||||
movs r0, 0x5
|
||||
bl PlaySE
|
||||
_08102ED0:
|
||||
movs r0, 0x2
|
||||
negs r0, r0
|
||||
cmp r5, r0
|
||||
bne _08102F00
|
||||
ldr r0, _08102EF4 @ =gUnknown_203ACF0
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0x15]
|
||||
ldr r1, _08102EF8 @ =gUnknown_8440EF0
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl CopyToWindowPixelBuffer
|
||||
ldr r0, _08102EFC @ =gUnknown_8443460
|
||||
movs r1, 0x10
|
||||
movs r2, 0x20
|
||||
bl LoadPalette
|
||||
b _08102F24
|
||||
.align 2, 0
|
||||
_08102EF4: .4byte gUnknown_203ACF0
|
||||
_08102EF8: .4byte gUnknown_8440EF0
|
||||
_08102EFC: .4byte gUnknown_8443460
|
||||
_08102F00:
|
||||
ldr r0, _08102F40 @ =gUnknown_203ACF0
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0x15]
|
||||
ldr r4, _08102F44 @ =gUnknown_84520F4
|
||||
lsls r5, 3
|
||||
adds r1, r5, r4
|
||||
ldr r1, [r1]
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl CopyToWindowPixelBuffer
|
||||
adds r4, 0x4
|
||||
adds r5, r4
|
||||
ldr r0, [r5]
|
||||
movs r1, 0x10
|
||||
movs r2, 0x20
|
||||
bl LoadPalette
|
||||
_08102F24:
|
||||
ldr r4, _08102F40 @ =gUnknown_203ACF0
|
||||
ldr r0, [r4]
|
||||
ldrb r0, [r0, 0x15]
|
||||
bl PutWindowTilemap
|
||||
ldr r0, [r4]
|
||||
ldrb r0, [r0, 0x15]
|
||||
movs r1, 0x2
|
||||
bl CopyWindowToVram
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08102F40: .4byte gUnknown_203ACF0
|
||||
_08102F44: .4byte gUnknown_84520F4
|
||||
thumb_func_end sub_8102EC0
|
||||
|
||||
thumb_func_start sub_8102F48
|
||||
sub_8102F48: @ 8102F48
|
||||
push {lr}
|
||||
adds r2, r1, 0
|
||||
cmp r2, 0x8
|
||||
bhi _08102F60
|
||||
ldr r0, _08102F6C @ =gUnknown_203ACF0
|
||||
ldr r0, [r0]
|
||||
movs r1, 0x1
|
||||
lsls r1, r2
|
||||
ldr r0, [r0, 0x8]
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08102F70
|
||||
_08102F60:
|
||||
movs r0, 0x1
|
||||
movs r1, 0
|
||||
movs r2, 0x3
|
||||
bl ListMenuOverrideSetColors
|
||||
b _08102F7A
|
||||
.align 2, 0
|
||||
_08102F6C: .4byte gUnknown_203ACF0
|
||||
_08102F70:
|
||||
movs r0, 0xA
|
||||
movs r1, 0
|
||||
movs r2, 0xB
|
||||
bl ListMenuOverrideSetColors
|
||||
_08102F7A:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8102F48
|
||||
|
||||
thumb_func_start sub_8102F80
|
||||
sub_8102F80: @ 8102F80
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x8
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
ldr r1, _08102FA0 @ =gUnknown_203ACF0
|
||||
ldr r0, [r1]
|
||||
ldrb r0, [r0, 0x1]
|
||||
adds r4, r1, 0
|
||||
cmp r0, 0x7
|
||||
bls _08102F96
|
||||
b _0810316C
|
||||
_08102F96:
|
||||
lsls r0, 2
|
||||
ldr r1, _08102FA4 @ =_08102FA8
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08102FA0: .4byte gUnknown_203ACF0
|
||||
_08102FA4: .4byte _08102FA8
|
||||
.align 2, 0
|
||||
_08102FA8:
|
||||
.4byte _08102FC8
|
||||
.4byte _08102FF8
|
||||
.4byte _08103028
|
||||
.4byte _08103038
|
||||
.4byte _08103050
|
||||
.4byte _0810307C
|
||||
.4byte _08103098
|
||||
.4byte _0810312C
|
||||
_08102FC8:
|
||||
movs r0, 0x10
|
||||
movs r1, 0
|
||||
bl sub_8107D38
|
||||
movs r0, 0x20
|
||||
movs r1, 0x1
|
||||
bl sub_8107D38
|
||||
ldr r4, _08102FF4 @ =gUnknown_203ACF0
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x42
|
||||
ldrb r0, [r0]
|
||||
bl sub_8103518
|
||||
ldr r2, [r4]
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x48
|
||||
strh r0, [r1]
|
||||
movs r0, 0x2
|
||||
strb r0, [r2, 0x1]
|
||||
b _0810316C
|
||||
.align 2, 0
|
||||
_08102FF4: .4byte gUnknown_203ACF0
|
||||
_08102FF8:
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x42
|
||||
ldrb r0, [r0]
|
||||
bl sub_8103988
|
||||
movs r0, 0x1
|
||||
bl HideBg
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x40
|
||||
bl sub_81047B0
|
||||
ldr r1, _08103020 @ =gTasks
|
||||
lsls r0, r5, 2
|
||||
adds r0, r5
|
||||
lsls r0, 3
|
||||
adds r0, r1
|
||||
ldr r1, _08103024 @ =sub_810287C
|
||||
b _08103164
|
||||
.align 2, 0
|
||||
_08103020: .4byte gTasks
|
||||
_08103024: .4byte sub_810287C
|
||||
_08103028:
|
||||
bl sub_810317C
|
||||
ldr r0, _08103034 @ =gUnknown_203ACF0
|
||||
ldr r1, [r0]
|
||||
movs r0, 0x3
|
||||
b _0810316A
|
||||
.align 2, 0
|
||||
_08103034: .4byte gUnknown_203ACF0
|
||||
_08103038:
|
||||
movs r0, 0x3
|
||||
bl CopyBgTilemapBufferToVram
|
||||
movs r0, 0x1
|
||||
bl CopyBgTilemapBufferToVram
|
||||
ldr r0, _0810304C @ =gUnknown_203ACF0
|
||||
ldr r1, [r0]
|
||||
movs r0, 0x4
|
||||
b _0810316A
|
||||
.align 2, 0
|
||||
_0810304C: .4byte gUnknown_203ACF0
|
||||
_08103050:
|
||||
movs r0, 0x1
|
||||
bl ShowBg
|
||||
ldr r0, _08103070 @ =0xffff7fff
|
||||
ldr r1, _08103074 @ =0x0000ffff
|
||||
str r1, [sp]
|
||||
movs r1, 0
|
||||
movs r2, 0x10
|
||||
movs r3, 0
|
||||
bl BeginNormalPaletteFade
|
||||
ldr r0, _08103078 @ =gUnknown_203ACF0
|
||||
ldr r1, [r0]
|
||||
movs r0, 0x5
|
||||
b _0810316A
|
||||
.align 2, 0
|
||||
_08103070: .4byte 0xffff7fff
|
||||
_08103074: .4byte 0x0000ffff
|
||||
_08103078: .4byte gUnknown_203ACF0
|
||||
_0810307C:
|
||||
ldr r1, [r4]
|
||||
ldrb r0, [r1, 0x17]
|
||||
adds r1, 0x62
|
||||
movs r2, 0
|
||||
bl ListMenuGetScrollAndRow
|
||||
bl sub_81039F0
|
||||
ldr r1, [r4]
|
||||
adds r1, 0x60
|
||||
strb r0, [r1]
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x6
|
||||
b _0810316A
|
||||
_08103098:
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x41
|
||||
ldrb r0, [r0]
|
||||
bl ListMenu_ProcessInput
|
||||
ldr r1, [r4]
|
||||
str r0, [r1, 0x30]
|
||||
ldrb r0, [r1, 0x17]
|
||||
adds r1, 0x62
|
||||
movs r2, 0
|
||||
bl ListMenuGetScrollAndRow
|
||||
ldr r0, _081030F0 @ =gMain
|
||||
ldrh r1, [r0, 0x2E]
|
||||
movs r3, 0x1
|
||||
adds r0, r3, 0
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _081030FC
|
||||
ldr r1, [r4]
|
||||
ldr r2, [r1, 0x30]
|
||||
lsrs r0, r2, 16
|
||||
ands r0, r3
|
||||
cmp r0, 0
|
||||
beq _0810316C
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x5A
|
||||
strh r2, [r0]
|
||||
adds r0, 0x6
|
||||
ldrb r0, [r0]
|
||||
bl RemoveScrollIndicatorArrowPair
|
||||
ldr r0, _081030F4 @ =0xffff7fff
|
||||
ldr r1, _081030F8 @ =0x0000ffff
|
||||
str r1, [sp]
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0x10
|
||||
bl BeginNormalPaletteFade
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x7
|
||||
b _0810316A
|
||||
.align 2, 0
|
||||
_081030F0: .4byte gMain
|
||||
_081030F4: .4byte 0xffff7fff
|
||||
_081030F8: .4byte 0x0000ffff
|
||||
_081030FC:
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0810316C
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x60
|
||||
ldrb r0, [r0]
|
||||
bl RemoveScrollIndicatorArrowPair
|
||||
ldr r0, _08103124 @ =0xffff7fff
|
||||
ldr r1, _08103128 @ =0x0000ffff
|
||||
str r1, [sp]
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0x10
|
||||
bl BeginNormalPaletteFade
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x1
|
||||
b _0810316A
|
||||
.align 2, 0
|
||||
_08103124: .4byte 0xffff7fff
|
||||
_08103128: .4byte 0x0000ffff
|
||||
_0810312C:
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x42
|
||||
ldrb r0, [r0]
|
||||
bl sub_8103988
|
||||
movs r0, 0x20
|
||||
str r0, [sp]
|
||||
movs r0, 0x14
|
||||
str r0, [sp, 0x4]
|
||||
movs r0, 0x1
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl FillBgTilemapBufferRect_Palette0
|
||||
movs r0, 0x1
|
||||
bl CopyBgTilemapBufferToVram
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x40
|
||||
bl sub_81047B0
|
||||
ldr r1, _08103174 @ =gTasks
|
||||
lsls r0, r5, 2
|
||||
adds r0, r5
|
||||
lsls r0, 3
|
||||
adds r0, r1
|
||||
ldr r1, _08103178 @ =sub_81042EC
|
||||
_08103164:
|
||||
str r1, [r0]
|
||||
ldr r1, [r4]
|
||||
movs r0, 0
|
||||
_0810316A:
|
||||
strb r0, [r1, 0x1]
|
||||
_0810316C:
|
||||
add sp, 0x8
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08103174: .4byte gTasks
|
||||
_08103178: .4byte sub_81042EC
|
||||
thumb_func_end sub_8102F80
|
||||
|
||||
thumb_func_start sub_810317C
|
||||
sub_810317C: @ 810317C
|
||||
push {r4,r5,lr}
|
||||
|
||||
@@ -965,4 +965,12 @@ extern const u8 gText_Var1AndYouWantedVar2[];
|
||||
extern const u8 gText_HereYouGoThankYou[];
|
||||
extern const u8 gText_NoMoreRoomForThis[];
|
||||
|
||||
// pokedex_screen
|
||||
extern const u8 gUnknown_8415D9C[];
|
||||
extern const u8 gUnknown_8415DB8[];
|
||||
extern const u8 gUnknown_8415DC4[];
|
||||
extern const u8 gUnknown_8415DCA[];
|
||||
extern const u8 gUnknown_8415DD1[];
|
||||
extern const u8 gUnknown_8415DD7[];
|
||||
|
||||
#endif //GUARD_STRINGS_H
|
||||
|
||||
+179
-5
@@ -16,6 +16,9 @@
|
||||
#include "help_system.h"
|
||||
#include "menu_indicators.h"
|
||||
#include "overworld.h"
|
||||
#include "strings.h"
|
||||
#include "menu.h"
|
||||
#include "constants/songs.h"
|
||||
|
||||
struct PokedexScreenData
|
||||
{
|
||||
@@ -38,13 +41,19 @@ struct PokedexScreenData
|
||||
u8 field_2D;
|
||||
u8 field_2E;
|
||||
u8 field_2F;
|
||||
u8 filler_30[0x8];
|
||||
u32 field_30;
|
||||
u8 filler_34[0x4];
|
||||
u16 field_38;
|
||||
u16 field_3A;
|
||||
u8 filler_3C[0x6];
|
||||
u8 filler_3C[0x4];
|
||||
u8 field_40;
|
||||
u8 field_41;
|
||||
u8 field_42;
|
||||
void * field_44;
|
||||
u8 filler_48[0x18];
|
||||
u16 field_48;
|
||||
u8 filler_4A[0x10];
|
||||
u16 field_5A;
|
||||
u8 filler_5C[0x4];
|
||||
u8 field_60;
|
||||
u16 field_62;
|
||||
u8 filler_64[0x2];
|
||||
@@ -54,26 +63,49 @@ struct PokedexScreenData
|
||||
u16 field_6C;
|
||||
};
|
||||
|
||||
struct PokedexScreenWindowGfx
|
||||
{
|
||||
const u16 *map;
|
||||
const u16 *pal;
|
||||
};
|
||||
|
||||
EWRAM_DATA struct PokedexScreenData * gUnknown_203ACF0 = NULL;
|
||||
|
||||
void sub_810287C(u8 taskId);
|
||||
void sub_8103238(u8 taskId);
|
||||
void sub_8103AC8(u8 taskId);
|
||||
void sub_8102C28(void);
|
||||
void sub_8102F80(u8 taskId);
|
||||
void sub_8103238(u8 taskId);
|
||||
void sub_810317C(void);
|
||||
u8 sub_81039F0(void);
|
||||
u16 sub_8103518(u8 a0);
|
||||
void sub_8103988(u8 a0);
|
||||
void sub_8103AC8(u8 taskId);
|
||||
void sub_81047B0(u8 *a0);
|
||||
void sub_81047C8(u8 a0, u8 a1, const u8 *a2, u8 a3, u8 a4, u8 a5);
|
||||
void sub_810491C(u8 a0, u8 a1, u16 a2, u8 a3, u8 a4, u8 a5);
|
||||
u16 sub_8104BBC(u8 a0, u8 a1);
|
||||
void sub_8104C2C(const u8 *a0);
|
||||
void sub_81042EC(u8 taskId);
|
||||
u8 sub_81068A0(u8 a0);
|
||||
void sub_8106E78(const u8 *a0, s32 a1);
|
||||
|
||||
extern const u32 gUnknown_8440274[];
|
||||
extern const u32 gUnknown_84403AC[];
|
||||
extern const u16 gUnknown_84404C8[];
|
||||
extern const u16 gUnknown_84406E0[];
|
||||
extern const u16 gUnknown_8440EF0[];
|
||||
extern const u16 gUnknown_8443460[];
|
||||
extern const struct BgTemplate gUnknown_8451EBC[4];
|
||||
extern const struct WindowTemplate gUnknown_8451ECC[];
|
||||
extern const struct PokedexScreenData gUnknown_8451EE4;
|
||||
extern const struct WindowTemplate gUnknown_8451F54;
|
||||
extern const struct WindowTemplate gUnknown_8451F5C;
|
||||
extern const struct WindowTemplate gUnknown_8451F64;
|
||||
extern const struct ListMenuTemplate gUnknown_8452004;
|
||||
extern const struct ListMenuTemplate gUnknown_84520BC;
|
||||
extern const struct ScrollArrowsTemplate gUnknown_84520D4;
|
||||
extern const struct ScrollArrowsTemplate gUnknown_84520E4;
|
||||
extern const struct PokedexScreenWindowGfx gUnknown_84520F4[];
|
||||
|
||||
void sub_81024C0(void)
|
||||
{
|
||||
@@ -343,3 +375,145 @@ void sub_810287C(u8 taskId)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8102C28(void)
|
||||
{
|
||||
struct ListMenuTemplate listMenuTemplate;
|
||||
FillBgTilemapBufferRect(3, 0x00E, 0, 0, 30, 20, 0x00);
|
||||
FillBgTilemapBufferRect(2, 0x000, 0, 0, 30, 20, 0x11);
|
||||
FillBgTilemapBufferRect(1, 0x000, 0, 0, 30, 20, 0x11);
|
||||
gUnknown_203ACF0->field_14 = AddWindow(&gUnknown_8451F54);
|
||||
gUnknown_203ACF0->field_15 = AddWindow(&gUnknown_8451F5C);
|
||||
gUnknown_203ACF0->field_16 = AddWindow(&gUnknown_8451F64);
|
||||
if (IsNationalPokedexEnabled())
|
||||
{
|
||||
listMenuTemplate = gUnknown_84520BC;
|
||||
listMenuTemplate.windowId = gUnknown_203ACF0->field_14;
|
||||
gUnknown_203ACF0->field_17 = ListMenuInit(&listMenuTemplate, gUnknown_203ACF0->field_12, gUnknown_203ACF0->field_10);
|
||||
FillWindowPixelBuffer(gUnknown_203ACF0->field_16, PIXEL_FILL(0));
|
||||
sub_81047C8(gUnknown_203ACF0->field_16, 0, gUnknown_8415DC4, 0, 2, 0);
|
||||
sub_81047C8(gUnknown_203ACF0->field_16, 0, gUnknown_8415DD1, 8, 13, 0);
|
||||
sub_810491C(gUnknown_203ACF0->field_16, 0, gUnknown_203ACF0->field_66, 52, 13, 2);
|
||||
sub_81047C8(gUnknown_203ACF0->field_16, 0, gUnknown_8415DD7, 8, 24, 0);
|
||||
sub_810491C(gUnknown_203ACF0->field_16, 0, gUnknown_203ACF0->field_6A, 52, 24, 2);
|
||||
sub_81047C8(gUnknown_203ACF0->field_16, 0, gUnknown_8415DCA, 0, 37, 0);
|
||||
sub_81047C8(gUnknown_203ACF0->field_16, 0, gUnknown_8415DD1, 8, 48, 0);
|
||||
sub_810491C(gUnknown_203ACF0->field_16, 0, gUnknown_203ACF0->field_68, 52, 48, 2);
|
||||
sub_81047C8(gUnknown_203ACF0->field_16, 0, gUnknown_8415DD7, 8, 59, 0);
|
||||
sub_810491C(gUnknown_203ACF0->field_16, 0, gUnknown_203ACF0->field_6C, 52, 59, 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
listMenuTemplate = gUnknown_8452004;
|
||||
listMenuTemplate.windowId = gUnknown_203ACF0->field_14;
|
||||
gUnknown_203ACF0->field_17 = ListMenuInit(&listMenuTemplate, gUnknown_203ACF0->field_12, gUnknown_203ACF0->field_10);
|
||||
FillWindowPixelBuffer(gUnknown_203ACF0->field_16, PIXEL_FILL(0));
|
||||
sub_81047C8(gUnknown_203ACF0->field_16, 1, gUnknown_8415DC4, 0, 9, 0);
|
||||
sub_810491C(gUnknown_203ACF0->field_16, 1, gUnknown_203ACF0->field_66, 32, 21, 2);
|
||||
sub_81047C8(gUnknown_203ACF0->field_16, 1, gUnknown_8415DCA, 0, 37, 0);
|
||||
sub_810491C(gUnknown_203ACF0->field_16, 1, gUnknown_203ACF0->field_68, 32, 49, 2);
|
||||
}
|
||||
FillWindowPixelBuffer(0, PIXEL_FILL(15));
|
||||
sub_8106E78(gUnknown_8415D9C, 1);
|
||||
FillWindowPixelBuffer(1, PIXEL_FILL(15));
|
||||
sub_8104C2C(gUnknown_8415DB8);
|
||||
PutWindowTilemap(0);
|
||||
CopyWindowToVram(0, 2);
|
||||
PutWindowTilemap(1);
|
||||
CopyWindowToVram(1, 2);
|
||||
PutWindowTilemap(gUnknown_203ACF0->field_16);
|
||||
CopyWindowToVram(gUnknown_203ACF0->field_16, 2);
|
||||
}
|
||||
|
||||
void sub_8102EC0(s32 itemIndex, bool8 onInit, struct ListMenu *list)
|
||||
{
|
||||
if (!onInit)
|
||||
PlaySE(SE_SELECT);
|
||||
if (itemIndex == LIST_CANCEL)
|
||||
{
|
||||
CopyToWindowPixelBuffer(gUnknown_203ACF0->field_15, gUnknown_8440EF0, 0x000, 0x000);
|
||||
LoadPalette(gUnknown_8443460, 0x10, 0x20);
|
||||
}
|
||||
else
|
||||
{
|
||||
CopyToWindowPixelBuffer(gUnknown_203ACF0->field_15, gUnknown_84520F4[itemIndex].map, 0x000, 0x000);
|
||||
LoadPalette(gUnknown_84520F4[itemIndex].pal, 0x10, 0x20);
|
||||
}
|
||||
PutWindowTilemap(gUnknown_203ACF0->field_15);
|
||||
CopyWindowToVram(gUnknown_203ACF0->field_15, 2);
|
||||
}
|
||||
|
||||
void sub_8102F48(u8 windowId, s32 itemId, u8 y)
|
||||
{
|
||||
if (itemId < 0 || itemId > 8 || gUnknown_203ACF0->field_08 & (1 << itemId))
|
||||
ListMenuOverrideSetColors(1, 0, 3);
|
||||
else
|
||||
ListMenuOverrideSetColors(10, 0, 11);
|
||||
}
|
||||
|
||||
void sub_8102F80(u8 taskId)
|
||||
{
|
||||
switch (gUnknown_203ACF0->field_01)
|
||||
{
|
||||
case 0:
|
||||
sub_8107D38(0x10, 0);
|
||||
sub_8107D38(0x20, 1);
|
||||
gUnknown_203ACF0->field_48 = sub_8103518(gUnknown_203ACF0->field_42);
|
||||
gUnknown_203ACF0->field_01 = 2;
|
||||
break;
|
||||
case 1:
|
||||
sub_8103988(gUnknown_203ACF0->field_42);
|
||||
HideBg(1);
|
||||
sub_81047B0(&gUnknown_203ACF0->field_40);
|
||||
gTasks[taskId].func = sub_810287C;
|
||||
gUnknown_203ACF0->field_01 = 0;
|
||||
break;
|
||||
case 2:
|
||||
sub_810317C();
|
||||
gUnknown_203ACF0->field_01 = 3;
|
||||
break;
|
||||
case 3:
|
||||
CopyBgTilemapBufferToVram(3);
|
||||
CopyBgTilemapBufferToVram(1);
|
||||
gUnknown_203ACF0->field_01 = 4;
|
||||
break;
|
||||
case 4:
|
||||
ShowBg(1);
|
||||
BeginNormalPaletteFade(0xFFFF7FFF, 0, 16, 0, RGB_WHITEALPHA);
|
||||
gUnknown_203ACF0->field_01 = 5;
|
||||
break;
|
||||
case 5:
|
||||
ListMenuGetScrollAndRow(gUnknown_203ACF0->field_17, &gUnknown_203ACF0->field_62, NULL);
|
||||
gUnknown_203ACF0->field_60 = sub_81039F0();
|
||||
gUnknown_203ACF0->field_01 = 6;
|
||||
break;
|
||||
case 6:
|
||||
gUnknown_203ACF0->field_30 = ListMenu_ProcessInput(gUnknown_203ACF0->field_41);
|
||||
ListMenuGetScrollAndRow(gUnknown_203ACF0->field_17, &gUnknown_203ACF0->field_62, NULL);
|
||||
if (JOY_NEW(A_BUTTON))
|
||||
{
|
||||
if ((gUnknown_203ACF0->field_30 >> 16) & 1)
|
||||
{
|
||||
gUnknown_203ACF0->field_5A = gUnknown_203ACF0->field_30;
|
||||
RemoveScrollIndicatorArrowPair(gUnknown_203ACF0->field_60);
|
||||
BeginNormalPaletteFade(0xFFFF7FFF, 0, 0, 16, RGB_WHITEALPHA);
|
||||
gUnknown_203ACF0->field_01 = 7;
|
||||
}
|
||||
}
|
||||
else if (JOY_NEW(B_BUTTON))
|
||||
{
|
||||
RemoveScrollIndicatorArrowPair(gUnknown_203ACF0->field_60);
|
||||
BeginNormalPaletteFade(0xFFFF7FFF, 0, 0, 16, RGB_WHITEALPHA);
|
||||
gUnknown_203ACF0->field_01 = 1;
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
sub_8103988(gUnknown_203ACF0->field_42);
|
||||
FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 32, 20);
|
||||
CopyBgTilemapBufferToVram(1);
|
||||
sub_81047B0(&gUnknown_203ACF0->field_40);
|
||||
gTasks[taskId].func = sub_81042EC;
|
||||
gUnknown_203ACF0->field_01 = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user