sub_8103AC8
This commit is contained in:
@@ -5,884 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_8103AC8
|
|
||||||
sub_8103AC8: @ 8103AC8
|
|
||||||
push {r4,r5,lr}
|
|
||||||
sub sp, 0x8
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r4, r0, 24
|
|
||||||
ldr r1, _08103AE8 @ =gUnknown_203ACF0
|
|
||||||
ldr r0, [r1]
|
|
||||||
ldrb r0, [r0, 0x1]
|
|
||||||
adds r5, r1, 0
|
|
||||||
cmp r0, 0x1A
|
|
||||||
bls _08103ADE
|
|
||||||
b _08104228
|
|
||||||
_08103ADE:
|
|
||||||
lsls r0, 2
|
|
||||||
ldr r1, _08103AEC @ =_08103AF0
|
|
||||||
adds r0, r1
|
|
||||||
ldr r0, [r0]
|
|
||||||
mov pc, r0
|
|
||||||
.align 2, 0
|
|
||||||
_08103AE8: .4byte gUnknown_203ACF0
|
|
||||||
_08103AEC: .4byte _08103AF0
|
|
||||||
.align 2, 0
|
|
||||||
_08103AF0:
|
|
||||||
.4byte _08103B5C
|
|
||||||
.4byte _08103B98
|
|
||||||
.4byte _08103BF8
|
|
||||||
.4byte _08103C24
|
|
||||||
.4byte _08103C5C
|
|
||||||
.4byte _08103C84
|
|
||||||
.4byte _08103E6C
|
|
||||||
.4byte _08103E6C
|
|
||||||
.4byte _08103EA0
|
|
||||||
.4byte _08103ED4
|
|
||||||
.4byte _08103EA0
|
|
||||||
.4byte _08103EFC
|
|
||||||
.4byte _08103F20
|
|
||||||
.4byte _08103F42
|
|
||||||
.4byte _08103F54
|
|
||||||
.4byte _08103F68
|
|
||||||
.4byte _08103F7A
|
|
||||||
.4byte _08103FF0
|
|
||||||
.4byte _0810403A
|
|
||||||
.4byte _0810406C
|
|
||||||
.4byte _08104080
|
|
||||||
.4byte _081040E4
|
|
||||||
.4byte _081040F4
|
|
||||||
.4byte _08104118
|
|
||||||
.4byte _081041DE
|
|
||||||
.4byte _081041F0
|
|
||||||
.4byte _0810421C
|
|
||||||
_08103B5C:
|
|
||||||
movs r0, 0x3
|
|
||||||
bl HideBg
|
|
||||||
movs r0, 0x2
|
|
||||||
bl HideBg
|
|
||||||
movs r0, 0x1
|
|
||||||
bl HideBg
|
|
||||||
ldr r4, _08103B94 @ =gUnknown_203ACF0
|
|
||||||
ldr r0, [r4]
|
|
||||||
adds r0, 0x28
|
|
||||||
ldrb r0, [r0]
|
|
||||||
bl sub_810699C
|
|
||||||
ldr r0, [r4]
|
|
||||||
adds r2, r0, 0
|
|
||||||
adds r2, 0x2B
|
|
||||||
adds r0, 0x29
|
|
||||||
ldrb r1, [r0]
|
|
||||||
ldrb r0, [r2]
|
|
||||||
cmp r0, r1
|
|
||||||
bcs _08103B8C
|
|
||||||
strb r1, [r2]
|
|
||||||
_08103B8C:
|
|
||||||
ldr r1, [r4]
|
|
||||||
movs r0, 0x2
|
|
||||||
b _08104226
|
|
||||||
.align 2, 0
|
|
||||||
_08103B94: .4byte gUnknown_203ACF0
|
|
||||||
_08103B98:
|
|
||||||
bl sub_8104E90
|
|
||||||
movs r0, 0x2
|
|
||||||
bl HideBg
|
|
||||||
movs r0, 0x1
|
|
||||||
bl HideBg
|
|
||||||
ldr r0, _08103BC8 @ =gUnknown_203ACF0
|
|
||||||
ldr r0, [r0]
|
|
||||||
adds r0, 0x2F
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08103BB8
|
|
||||||
cmp r0, 0x1
|
|
||||||
beq _08103BD4
|
|
||||||
_08103BB8:
|
|
||||||
ldr r0, _08103BCC @ =gTasks
|
|
||||||
lsls r1, r4, 2
|
|
||||||
adds r1, r4
|
|
||||||
lsls r1, 3
|
|
||||||
adds r1, r0
|
|
||||||
ldr r0, _08103BD0 @ =sub_810287C
|
|
||||||
b _08103BE0
|
|
||||||
.align 2, 0
|
|
||||||
_08103BC8: .4byte gUnknown_203ACF0
|
|
||||||
_08103BCC: .4byte gTasks
|
|
||||||
_08103BD0: .4byte sub_810287C
|
|
||||||
_08103BD4:
|
|
||||||
ldr r0, _08103BEC @ =gTasks
|
|
||||||
lsls r1, r4, 2
|
|
||||||
adds r1, r4
|
|
||||||
lsls r1, 3
|
|
||||||
adds r1, r0
|
|
||||||
ldr r0, _08103BF0 @ =sub_8103238
|
|
||||||
_08103BE0:
|
|
||||||
str r0, [r1]
|
|
||||||
ldr r0, _08103BF4 @ =gUnknown_203ACF0
|
|
||||||
ldr r1, [r0]
|
|
||||||
movs r0, 0
|
|
||||||
b _08104226
|
|
||||||
.align 2, 0
|
|
||||||
_08103BEC: .4byte gTasks
|
|
||||||
_08103BF0: .4byte sub_8103238
|
|
||||||
_08103BF4: .4byte gUnknown_203ACF0
|
|
||||||
_08103BF8:
|
|
||||||
movs r0, 0
|
|
||||||
bl sub_8104F0C
|
|
||||||
movs r0, 0x3
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
movs r0, 0x2
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
movs r0, 0x1
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
movs r0, 0xFF
|
|
||||||
bl sub_8105058
|
|
||||||
ldr r0, _08103C20 @ =gUnknown_203ACF0
|
|
||||||
ldr r1, [r0]
|
|
||||||
movs r0, 0x3
|
|
||||||
b _08104226
|
|
||||||
.align 2, 0
|
|
||||||
_08103C20: .4byte gUnknown_203ACF0
|
|
||||||
_08103C24:
|
|
||||||
ldr r0, _08103C50 @ =0xffff7fff
|
|
||||||
ldr r1, _08103C54 @ =0x0000ffff
|
|
||||||
str r1, [sp]
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0x10
|
|
||||||
movs r3, 0
|
|
||||||
bl BeginNormalPaletteFade
|
|
||||||
movs r0, 0x3
|
|
||||||
bl ShowBg
|
|
||||||
movs r0, 0x2
|
|
||||||
bl ShowBg
|
|
||||||
movs r0, 0x1
|
|
||||||
bl ShowBg
|
|
||||||
ldr r0, _08103C58 @ =gUnknown_203ACF0
|
|
||||||
ldr r1, [r0]
|
|
||||||
movs r0, 0x4
|
|
||||||
b _08104226
|
|
||||||
.align 2, 0
|
|
||||||
_08103C50: .4byte 0xffff7fff
|
|
||||||
_08103C54: .4byte 0x0000ffff
|
|
||||||
_08103C58: .4byte gUnknown_203ACF0
|
|
||||||
_08103C5C:
|
|
||||||
bl sub_8104234
|
|
||||||
ldr r4, _08103C7C @ =gUnknown_203ACF0
|
|
||||||
ldr r1, [r4]
|
|
||||||
adds r1, 0x60
|
|
||||||
strb r0, [r1]
|
|
||||||
ldr r0, _08103C80 @ =gUnknown_84524C4
|
|
||||||
movs r1, 0
|
|
||||||
bl ListMenuAddCursorObjectInternal
|
|
||||||
ldr r1, [r4]
|
|
||||||
adds r1, 0x61
|
|
||||||
strb r0, [r1]
|
|
||||||
ldr r1, [r4]
|
|
||||||
movs r0, 0x5
|
|
||||||
b _08104226
|
|
||||||
.align 2, 0
|
|
||||||
_08103C7C: .4byte gUnknown_203ACF0
|
|
||||||
_08103C80: .4byte gUnknown_84524C4
|
|
||||||
_08103C84:
|
|
||||||
ldr r0, [r5]
|
|
||||||
adds r0, 0x2D
|
|
||||||
ldrb r0, [r0]
|
|
||||||
bl sub_8105058
|
|
||||||
ldr r2, [r5]
|
|
||||||
adds r0, r2, 0
|
|
||||||
adds r0, 0x61
|
|
||||||
ldrb r0, [r0]
|
|
||||||
adds r1, r2, 0
|
|
||||||
adds r1, 0x2D
|
|
||||||
ldrb r1, [r1]
|
|
||||||
adds r2, 0x2C
|
|
||||||
ldrb r2, [r2]
|
|
||||||
bl sub_8105178
|
|
||||||
ldr r2, [r5]
|
|
||||||
adds r0, r2, 0
|
|
||||||
adds r0, 0x2B
|
|
||||||
ldrb r0, [r0]
|
|
||||||
adds r1, r2, 0
|
|
||||||
adds r1, 0x62
|
|
||||||
strh r0, [r1]
|
|
||||||
movs r4, 0
|
|
||||||
ldr r0, _08103CF8 @ =gMain
|
|
||||||
ldrh r1, [r0, 0x2E]
|
|
||||||
movs r0, 0x1
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08103CFC
|
|
||||||
adds r0, r2, 0
|
|
||||||
adds r0, 0x2D
|
|
||||||
ldrb r1, [r0]
|
|
||||||
lsls r1, 1
|
|
||||||
subs r0, 0x15
|
|
||||||
adds r0, r1
|
|
||||||
ldrh r0, [r0]
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0x1
|
|
||||||
bl sub_8104AB0
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08103CFC
|
|
||||||
ldr r0, [r5]
|
|
||||||
adds r0, 0x60
|
|
||||||
ldrb r0, [r0]
|
|
||||||
bl RemoveScrollIndicatorArrowPair
|
|
||||||
ldr r0, [r5]
|
|
||||||
adds r0, 0x61
|
|
||||||
ldrb r0, [r0]
|
|
||||||
movs r1, 0
|
|
||||||
bl ListMenuRemoveCursorObject
|
|
||||||
ldr r1, [r5]
|
|
||||||
movs r0, 0xC
|
|
||||||
b _08104226
|
|
||||||
.align 2, 0
|
|
||||||
_08103CF8: .4byte gMain
|
|
||||||
_08103CFC:
|
|
||||||
ldr r2, _08103D28 @ =gMain
|
|
||||||
ldrh r1, [r2, 0x2C]
|
|
||||||
movs r0, 0x80
|
|
||||||
lsls r0, 1
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
bne _08103D6E
|
|
||||||
ldrh r1, [r2, 0x30]
|
|
||||||
movs r0, 0x20
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08103D32
|
|
||||||
ldr r0, _08103D2C @ =gUnknown_203ACF0
|
|
||||||
ldr r0, [r0]
|
|
||||||
adds r1, r0, 0
|
|
||||||
adds r1, 0x2D
|
|
||||||
ldrb r0, [r1]
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08103D30
|
|
||||||
subs r0, 0x1
|
|
||||||
strb r0, [r1]
|
|
||||||
b _08103D60
|
|
||||||
.align 2, 0
|
|
||||||
_08103D28: .4byte gMain
|
|
||||||
_08103D2C: .4byte gUnknown_203ACF0
|
|
||||||
_08103D30:
|
|
||||||
movs r4, 0x1
|
|
||||||
_08103D32:
|
|
||||||
ldrh r1, [r2, 0x2C]
|
|
||||||
movs r0, 0x80
|
|
||||||
lsls r0, 1
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
bne _08103D6E
|
|
||||||
ldrh r1, [r2, 0x30]
|
|
||||||
movs r0, 0x10
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08103D6E
|
|
||||||
ldr r0, _08103D68 @ =gUnknown_203ACF0
|
|
||||||
ldr r0, [r0]
|
|
||||||
adds r2, r0, 0
|
|
||||||
adds r2, 0x2D
|
|
||||||
ldrb r1, [r2]
|
|
||||||
adds r0, 0x2C
|
|
||||||
ldrb r0, [r0]
|
|
||||||
subs r0, 0x1
|
|
||||||
cmp r1, r0
|
|
||||||
bge _08103D6C
|
|
||||||
adds r0, r1, 0x1
|
|
||||||
strb r0, [r2]
|
|
||||||
_08103D60:
|
|
||||||
movs r0, 0x5
|
|
||||||
bl PlaySE
|
|
||||||
b _08104228
|
|
||||||
.align 2, 0
|
|
||||||
_08103D68: .4byte gUnknown_203ACF0
|
|
||||||
_08103D6C:
|
|
||||||
movs r4, 0x2
|
|
||||||
_08103D6E:
|
|
||||||
cmp r4, 0
|
|
||||||
bne _08103D78
|
|
||||||
bl sub_8104284
|
|
||||||
adds r4, r0, 0
|
|
||||||
_08103D78:
|
|
||||||
cmp r4, 0x1
|
|
||||||
beq _08103D94
|
|
||||||
cmp r4, 0x1
|
|
||||||
ble _08103E4E
|
|
||||||
cmp r4, 0x2
|
|
||||||
beq _08103DF8
|
|
||||||
b _08103E4E
|
|
||||||
_08103D86:
|
|
||||||
ldr r1, [r4]
|
|
||||||
movs r0, 0x8
|
|
||||||
strb r0, [r1, 0x1]
|
|
||||||
ldr r5, _08103D90 @ =gUnknown_203ACF0
|
|
||||||
b _08103DDA
|
|
||||||
.align 2, 0
|
|
||||||
_08103D90: .4byte gUnknown_203ACF0
|
|
||||||
_08103D94:
|
|
||||||
ldr r0, _08103DE4 @ =gUnknown_203ACF0
|
|
||||||
ldr r1, [r0]
|
|
||||||
adds r2, r1, 0
|
|
||||||
adds r2, 0x2B
|
|
||||||
adds r1, 0x29
|
|
||||||
ldrb r2, [r2]
|
|
||||||
adds r5, r0, 0
|
|
||||||
ldrb r1, [r1]
|
|
||||||
cmp r2, r1
|
|
||||||
bls _08103DDA
|
|
||||||
adds r4, r5, 0
|
|
||||||
_08103DAA:
|
|
||||||
ldr r1, [r4]
|
|
||||||
adds r1, 0x2B
|
|
||||||
ldrb r0, [r1]
|
|
||||||
subs r0, 0x1
|
|
||||||
strb r0, [r1]
|
|
||||||
ldr r1, [r4]
|
|
||||||
adds r0, r1, 0
|
|
||||||
adds r0, 0x28
|
|
||||||
ldrb r0, [r0]
|
|
||||||
adds r1, 0x2B
|
|
||||||
ldrb r1, [r1]
|
|
||||||
bl sub_8106838
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
bne _08103D86
|
|
||||||
ldr r1, [r4]
|
|
||||||
adds r0, r1, 0
|
|
||||||
adds r0, 0x2B
|
|
||||||
adds r1, 0x29
|
|
||||||
ldrb r0, [r0]
|
|
||||||
ldrb r1, [r1]
|
|
||||||
cmp r0, r1
|
|
||||||
bhi _08103DAA
|
|
||||||
_08103DDA:
|
|
||||||
ldr r1, [r5]
|
|
||||||
ldrb r0, [r1, 0x1]
|
|
||||||
cmp r0, 0x8
|
|
||||||
beq _08103E4E
|
|
||||||
b _08103E4A
|
|
||||||
.align 2, 0
|
|
||||||
_08103DE4: .4byte gUnknown_203ACF0
|
|
||||||
_08103DE8:
|
|
||||||
ldr r1, [r4]
|
|
||||||
movs r0, 0xA
|
|
||||||
strb r0, [r1, 0x1]
|
|
||||||
ldr r5, _08103DF4 @ =gUnknown_203ACF0
|
|
||||||
b _08103E42
|
|
||||||
.align 2, 0
|
|
||||||
_08103DF4: .4byte gUnknown_203ACF0
|
|
||||||
_08103DF8:
|
|
||||||
ldr r1, _08103E64 @ =gUnknown_203ACF0
|
|
||||||
ldr r0, [r1]
|
|
||||||
adds r2, r0, 0
|
|
||||||
adds r2, 0x2B
|
|
||||||
ldrb r2, [r2]
|
|
||||||
adds r0, 0x2A
|
|
||||||
ldrb r0, [r0]
|
|
||||||
subs r0, 0x1
|
|
||||||
adds r5, r1, 0
|
|
||||||
cmp r2, r0
|
|
||||||
bge _08103E42
|
|
||||||
adds r4, r5, 0
|
|
||||||
_08103E10:
|
|
||||||
ldr r1, [r4]
|
|
||||||
adds r1, 0x2B
|
|
||||||
ldrb r0, [r1]
|
|
||||||
adds r0, 0x1
|
|
||||||
strb r0, [r1]
|
|
||||||
ldr r1, [r4]
|
|
||||||
adds r0, r1, 0
|
|
||||||
adds r0, 0x28
|
|
||||||
ldrb r0, [r0]
|
|
||||||
adds r1, 0x2B
|
|
||||||
ldrb r1, [r1]
|
|
||||||
bl sub_8106838
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
bne _08103DE8
|
|
||||||
ldr r0, [r4]
|
|
||||||
adds r1, r0, 0
|
|
||||||
adds r1, 0x2B
|
|
||||||
ldrb r1, [r1]
|
|
||||||
adds r0, 0x2A
|
|
||||||
ldrb r0, [r0]
|
|
||||||
subs r0, 0x1
|
|
||||||
cmp r1, r0
|
|
||||||
blt _08103E10
|
|
||||||
_08103E42:
|
|
||||||
ldr r1, [r5]
|
|
||||||
ldrb r0, [r1, 0x1]
|
|
||||||
cmp r0, 0xA
|
|
||||||
beq _08103E4E
|
|
||||||
_08103E4A:
|
|
||||||
movs r0, 0x6
|
|
||||||
strb r0, [r1, 0x1]
|
|
||||||
_08103E4E:
|
|
||||||
ldr r0, _08103E68 @ =gMain
|
|
||||||
ldrh r1, [r0, 0x2E]
|
|
||||||
movs r0, 0x2
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
bne _08103E5C
|
|
||||||
b _08104228
|
|
||||||
_08103E5C:
|
|
||||||
ldr r0, _08103E64 @ =gUnknown_203ACF0
|
|
||||||
ldr r1, [r0]
|
|
||||||
movs r0, 0x6
|
|
||||||
b _08104226
|
|
||||||
.align 2, 0
|
|
||||||
_08103E64: .4byte gUnknown_203ACF0
|
|
||||||
_08103E68: .4byte gMain
|
|
||||||
_08103E6C:
|
|
||||||
ldr r0, [r5]
|
|
||||||
adds r0, 0x60
|
|
||||||
ldrb r0, [r0]
|
|
||||||
bl RemoveScrollIndicatorArrowPair
|
|
||||||
ldr r0, [r5]
|
|
||||||
adds r0, 0x61
|
|
||||||
ldrb r0, [r0]
|
|
||||||
movs r1, 0
|
|
||||||
bl ListMenuRemoveCursorObject
|
|
||||||
ldr r0, _08103E98 @ =0xffff7fff
|
|
||||||
ldr r1, _08103E9C @ =0x0000ffff
|
|
||||||
str r1, [sp]
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0
|
|
||||||
movs r3, 0x10
|
|
||||||
bl BeginNormalPaletteFade
|
|
||||||
ldr r1, [r5]
|
|
||||||
movs r0, 0x1
|
|
||||||
b _08104226
|
|
||||||
.align 2, 0
|
|
||||||
_08103E98: .4byte 0xffff7fff
|
|
||||||
_08103E9C: .4byte 0x0000ffff
|
|
||||||
_08103EA0:
|
|
||||||
bl sub_8104E90
|
|
||||||
movs r0, 0xFF
|
|
||||||
bl sub_8105058
|
|
||||||
ldr r4, _08103ED0 @ =gUnknown_203ACF0
|
|
||||||
ldr r0, [r4]
|
|
||||||
adds r0, 0x61
|
|
||||||
ldrb r0, [r0]
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0xA0
|
|
||||||
movs r3, 0
|
|
||||||
bl ListMenuUpdateCursorObject
|
|
||||||
ldr r0, [r4]
|
|
||||||
adds r0, 0x2E
|
|
||||||
movs r1, 0
|
|
||||||
strb r1, [r0]
|
|
||||||
ldr r0, [r4]
|
|
||||||
strb r1, [r0, 0x2]
|
|
||||||
ldr r1, [r4]
|
|
||||||
ldrb r0, [r1, 0x1]
|
|
||||||
adds r0, 0x1
|
|
||||||
b _08104226
|
|
||||||
.align 2, 0
|
|
||||||
_08103ED0: .4byte gUnknown_203ACF0
|
|
||||||
_08103ED4:
|
|
||||||
movs r0, 0
|
|
||||||
bl sub_81052D0
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
bne _08103EE2
|
|
||||||
b _08104228
|
|
||||||
_08103EE2:
|
|
||||||
ldr r2, _08103EF8 @ =gUnknown_203ACF0
|
|
||||||
ldr r1, [r2]
|
|
||||||
adds r0, r1, 0
|
|
||||||
adds r0, 0x2C
|
|
||||||
ldrb r0, [r0]
|
|
||||||
subs r0, 0x1
|
|
||||||
adds r1, 0x2D
|
|
||||||
strb r0, [r1]
|
|
||||||
ldr r1, [r2]
|
|
||||||
movs r0, 0x5
|
|
||||||
b _08104226
|
|
||||||
.align 2, 0
|
|
||||||
_08103EF8: .4byte gUnknown_203ACF0
|
|
||||||
_08103EFC:
|
|
||||||
movs r0, 0x1
|
|
||||||
bl sub_81052D0
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
bne _08103F0A
|
|
||||||
b _08104228
|
|
||||||
_08103F0A:
|
|
||||||
ldr r2, _08103F1C @ =gUnknown_203ACF0
|
|
||||||
ldr r0, [r2]
|
|
||||||
adds r0, 0x2D
|
|
||||||
movs r1, 0
|
|
||||||
strb r1, [r0]
|
|
||||||
ldr r1, [r2]
|
|
||||||
movs r0, 0x5
|
|
||||||
b _08104226
|
|
||||||
.align 2, 0
|
|
||||||
_08103F1C: .4byte gUnknown_203ACF0
|
|
||||||
_08103F20:
|
|
||||||
ldr r2, [r5]
|
|
||||||
adds r0, r2, 0
|
|
||||||
adds r0, 0x2D
|
|
||||||
ldrb r1, [r0]
|
|
||||||
lsls r1, 1
|
|
||||||
subs r0, 0x15
|
|
||||||
adds r0, r1
|
|
||||||
ldrh r1, [r0]
|
|
||||||
adds r0, r2, 0
|
|
||||||
adds r0, 0x5A
|
|
||||||
strh r1, [r0]
|
|
||||||
movs r0, 0x5
|
|
||||||
bl PlaySE
|
|
||||||
ldr r1, [r5]
|
|
||||||
movs r0, 0xE
|
|
||||||
b _08104226
|
|
||||||
_08103F42:
|
|
||||||
bl sub_8106014
|
|
||||||
ldr r0, _08103F50 @ =gUnknown_203ACF0
|
|
||||||
ldr r1, [r0]
|
|
||||||
movs r0, 0x4
|
|
||||||
b _08104226
|
|
||||||
.align 2, 0
|
|
||||||
_08103F50: .4byte gUnknown_203ACF0
|
|
||||||
_08103F54:
|
|
||||||
movs r0, 0
|
|
||||||
bl sub_8105E1C
|
|
||||||
ldr r0, _08103F64 @ =gUnknown_203ACF0
|
|
||||||
ldr r1, [r0]
|
|
||||||
movs r0, 0xF
|
|
||||||
b _08104226
|
|
||||||
.align 2, 0
|
|
||||||
_08103F64: .4byte gUnknown_203ACF0
|
|
||||||
_08103F68:
|
|
||||||
ldr r0, [r5]
|
|
||||||
movs r1, 0
|
|
||||||
strb r1, [r0, 0x2]
|
|
||||||
ldr r0, [r5]
|
|
||||||
strb r1, [r0, 0x3]
|
|
||||||
ldr r1, [r5]
|
|
||||||
ldrb r0, [r1, 0x1]
|
|
||||||
adds r0, 0x1
|
|
||||||
strb r0, [r1, 0x1]
|
|
||||||
_08103F7A:
|
|
||||||
ldr r1, [r5]
|
|
||||||
ldrb r0, [r1, 0x3]
|
|
||||||
cmp r0, 0x5
|
|
||||||
bhi _08103FA8
|
|
||||||
ldrb r0, [r1, 0x2]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _08103F8A
|
|
||||||
b _081040BE
|
|
||||||
_08103F8A:
|
|
||||||
ldrb r1, [r1, 0x3]
|
|
||||||
movs r0, 0
|
|
||||||
bl sub_8105594
|
|
||||||
movs r0, 0
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
ldr r1, [r5]
|
|
||||||
movs r0, 0x4
|
|
||||||
strb r0, [r1, 0x2]
|
|
||||||
ldr r1, [r5]
|
|
||||||
ldrb r0, [r1, 0x3]
|
|
||||||
adds r0, 0x1
|
|
||||||
strb r0, [r1, 0x3]
|
|
||||||
b _08104228
|
|
||||||
_08103FA8:
|
|
||||||
movs r0, 0x1E
|
|
||||||
str r0, [sp]
|
|
||||||
movs r0, 0x10
|
|
||||||
str r0, [sp, 0x4]
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0
|
|
||||||
movs r3, 0x2
|
|
||||||
bl FillBgTilemapBufferRect_Palette0
|
|
||||||
movs r0, 0x3
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
movs r0, 0x2
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
movs r0, 0x1
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
movs r0, 0
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
ldr r0, [r5]
|
|
||||||
adds r0, 0x5A
|
|
||||||
ldrh r0, [r0]
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0x7D
|
|
||||||
movs r3, 0xA
|
|
||||||
bl PlayCry2
|
|
||||||
ldr r1, [r5]
|
|
||||||
movs r0, 0
|
|
||||||
strb r0, [r1, 0x2]
|
|
||||||
ldr r1, [r5]
|
|
||||||
movs r0, 0x11
|
|
||||||
b _08104226
|
|
||||||
_08103FF0:
|
|
||||||
ldr r0, _08104024 @ =gMain
|
|
||||||
ldrh r1, [r0, 0x2E]
|
|
||||||
movs r0, 0x1
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0810402C
|
|
||||||
bl sub_8106014
|
|
||||||
movs r0, 0x1E
|
|
||||||
str r0, [sp]
|
|
||||||
movs r0, 0x10
|
|
||||||
str r0, [sp, 0x4]
|
|
||||||
movs r0, 0x1
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0
|
|
||||||
movs r3, 0x2
|
|
||||||
bl FillBgTilemapBufferRect_Palette0
|
|
||||||
movs r0, 0x1
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
ldr r0, _08104028 @ =gUnknown_203ACF0
|
|
||||||
ldr r1, [r0]
|
|
||||||
movs r0, 0x15
|
|
||||||
b _08104226
|
|
||||||
.align 2, 0
|
|
||||||
_08104024: .4byte gMain
|
|
||||||
_08104028: .4byte gUnknown_203ACF0
|
|
||||||
_0810402C:
|
|
||||||
movs r0, 0x2
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
bne _08104036
|
|
||||||
b _081041D8
|
|
||||||
_08104036:
|
|
||||||
ldr r1, [r5]
|
|
||||||
b _08104224
|
|
||||||
_0810403A:
|
|
||||||
movs r0, 0
|
|
||||||
bl sub_8104F0C
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0x6
|
|
||||||
bl sub_8105594
|
|
||||||
movs r0, 0x3
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
movs r0, 0x2
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
movs r0, 0x1
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
movs r0, 0
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
ldr r0, _08104068 @ =gUnknown_203ACF0
|
|
||||||
ldr r1, [r0]
|
|
||||||
movs r0, 0x13
|
|
||||||
b _08104226
|
|
||||||
.align 2, 0
|
|
||||||
_08104068: .4byte gUnknown_203ACF0
|
|
||||||
_0810406C:
|
|
||||||
ldr r1, [r5]
|
|
||||||
movs r0, 0
|
|
||||||
strb r0, [r1, 0x2]
|
|
||||||
ldr r1, [r5]
|
|
||||||
movs r0, 0x6
|
|
||||||
strb r0, [r1, 0x3]
|
|
||||||
ldr r1, [r5]
|
|
||||||
ldrb r0, [r1, 0x1]
|
|
||||||
adds r0, 0x1
|
|
||||||
strb r0, [r1, 0x1]
|
|
||||||
_08104080:
|
|
||||||
ldr r1, [r5]
|
|
||||||
ldrb r2, [r1, 0x3]
|
|
||||||
cmp r2, 0
|
|
||||||
beq _081040C4
|
|
||||||
ldrb r0, [r1, 0x2]
|
|
||||||
cmp r0, 0
|
|
||||||
beq _081040BE
|
|
||||||
subs r0, r2, 0x1
|
|
||||||
strb r0, [r1, 0x3]
|
|
||||||
movs r0, 0x1E
|
|
||||||
str r0, [sp]
|
|
||||||
movs r0, 0x10
|
|
||||||
str r0, [sp, 0x4]
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0
|
|
||||||
movs r3, 0x2
|
|
||||||
bl FillBgTilemapBufferRect_Palette0
|
|
||||||
ldr r0, [r5]
|
|
||||||
ldrb r1, [r0, 0x3]
|
|
||||||
movs r0, 0
|
|
||||||
bl sub_8105594
|
|
||||||
movs r0, 0
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
ldr r1, [r5]
|
|
||||||
movs r0, 0x1
|
|
||||||
strb r0, [r1, 0x2]
|
|
||||||
b _08104228
|
|
||||||
_081040BE:
|
|
||||||
subs r0, 0x1
|
|
||||||
strb r0, [r1, 0x2]
|
|
||||||
b _08104228
|
|
||||||
_081040C4:
|
|
||||||
movs r0, 0x1E
|
|
||||||
str r0, [sp]
|
|
||||||
movs r0, 0x10
|
|
||||||
str r0, [sp, 0x4]
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0
|
|
||||||
movs r3, 0x2
|
|
||||||
bl FillBgTilemapBufferRect_Palette0
|
|
||||||
movs r0, 0
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
ldr r1, [r5]
|
|
||||||
movs r0, 0xD
|
|
||||||
b _08104226
|
|
||||||
_081040E4:
|
|
||||||
bl sub_810603C
|
|
||||||
ldr r0, _081040F0 @ =gUnknown_203ACF0
|
|
||||||
ldr r1, [r0]
|
|
||||||
movs r0, 0x16
|
|
||||||
b _08104226
|
|
||||||
.align 2, 0
|
|
||||||
_081040F0: .4byte gUnknown_203ACF0
|
|
||||||
_081040F4:
|
|
||||||
movs r0, 0x3
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
movs r0, 0x2
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
movs r0, 0x1
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
movs r0, 0
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
ldr r0, _08104114 @ =gUnknown_203ACF0
|
|
||||||
ldr r1, [r0]
|
|
||||||
movs r0, 0x17
|
|
||||||
b _08104226
|
|
||||||
.align 2, 0
|
|
||||||
_08104114: .4byte gUnknown_203ACF0
|
|
||||||
_08104118:
|
|
||||||
ldr r0, _08104174 @ =gMain
|
|
||||||
ldrh r1, [r0, 0x2E]
|
|
||||||
movs r0, 0x1
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0810417C
|
|
||||||
movs r5, 0x1E
|
|
||||||
str r5, [sp]
|
|
||||||
movs r4, 0x10
|
|
||||||
str r4, [sp, 0x4]
|
|
||||||
movs r0, 0x2
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0
|
|
||||||
movs r3, 0x2
|
|
||||||
bl FillBgTilemapBufferRect_Palette0
|
|
||||||
str r5, [sp]
|
|
||||||
str r4, [sp, 0x4]
|
|
||||||
movs r0, 0x1
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0
|
|
||||||
movs r3, 0x2
|
|
||||||
bl FillBgTilemapBufferRect_Palette0
|
|
||||||
str r5, [sp]
|
|
||||||
str r4, [sp, 0x4]
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0
|
|
||||||
movs r3, 0x2
|
|
||||||
bl FillBgTilemapBufferRect_Palette0
|
|
||||||
movs r0, 0x2
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
movs r0, 0x1
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
movs r0, 0
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
ldr r0, _08104178 @ =gUnknown_203ACF0
|
|
||||||
ldr r1, [r0]
|
|
||||||
movs r0, 0x1A
|
|
||||||
b _08104226
|
|
||||||
.align 2, 0
|
|
||||||
_08104174: .4byte gMain
|
|
||||||
_08104178: .4byte gUnknown_203ACF0
|
|
||||||
_0810417C:
|
|
||||||
movs r0, 0x2
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
beq _081041D8
|
|
||||||
movs r5, 0x1E
|
|
||||||
str r5, [sp]
|
|
||||||
movs r4, 0x10
|
|
||||||
str r4, [sp, 0x4]
|
|
||||||
movs r0, 0x2
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0
|
|
||||||
movs r3, 0x2
|
|
||||||
bl FillBgTilemapBufferRect_Palette0
|
|
||||||
str r5, [sp]
|
|
||||||
str r4, [sp, 0x4]
|
|
||||||
movs r0, 0x1
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0
|
|
||||||
movs r3, 0x2
|
|
||||||
bl FillBgTilemapBufferRect_Palette0
|
|
||||||
str r5, [sp]
|
|
||||||
str r4, [sp, 0x4]
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0
|
|
||||||
movs r3, 0x2
|
|
||||||
bl FillBgTilemapBufferRect_Palette0
|
|
||||||
movs r0, 0x2
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
movs r0, 0x1
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
movs r0, 0
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
ldr r0, _081041D4 @ =gUnknown_203ACF0
|
|
||||||
ldr r1, [r0]
|
|
||||||
movs r0, 0x18
|
|
||||||
b _08104226
|
|
||||||
.align 2, 0
|
|
||||||
_081041D4: .4byte gUnknown_203ACF0
|
|
||||||
_081041D8:
|
|
||||||
bl sub_8106B34
|
|
||||||
b _08104228
|
|
||||||
_081041DE:
|
|
||||||
bl sub_81067C0
|
|
||||||
ldr r0, _081041EC @ =gUnknown_203ACF0
|
|
||||||
ldr r1, [r0]
|
|
||||||
movs r0, 0x19
|
|
||||||
b _08104226
|
|
||||||
.align 2, 0
|
|
||||||
_081041EC: .4byte gUnknown_203ACF0
|
|
||||||
_081041F0:
|
|
||||||
movs r0, 0
|
|
||||||
bl sub_8105E1C
|
|
||||||
movs r0, 0x3
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
movs r0, 0x2
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
movs r0, 0x1
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
movs r0, 0
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
ldr r0, _08104218 @ =gUnknown_203ACF0
|
|
||||||
ldr r1, [r0]
|
|
||||||
movs r0, 0x11
|
|
||||||
b _08104226
|
|
||||||
.align 2, 0
|
|
||||||
_08104218: .4byte gUnknown_203ACF0
|
|
||||||
_0810421C:
|
|
||||||
bl sub_81067C0
|
|
||||||
ldr r0, _08104230 @ =gUnknown_203ACF0
|
|
||||||
ldr r1, [r0]
|
|
||||||
_08104224:
|
|
||||||
movs r0, 0x12
|
|
||||||
_08104226:
|
|
||||||
strb r0, [r1, 0x1]
|
|
||||||
_08104228:
|
|
||||||
add sp, 0x8
|
|
||||||
pop {r4,r5}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08104230: .4byte gUnknown_203ACF0
|
|
||||||
thumb_func_end sub_8103AC8
|
|
||||||
|
|
||||||
thumb_func_start sub_8104234
|
thumb_func_start sub_8104234
|
||||||
sub_8104234: @ 8104234
|
sub_8104234: @ 8104234
|
||||||
push {r4,lr}
|
push {r4,lr}
|
||||||
|
|||||||
@@ -32,8 +32,8 @@ struct CursorStruct
|
|||||||
u8 AddScrollIndicatorArrowPairParameterized(u32 arrowType, s32 commonPos, s32 firstPos, s32 secondPos, s32 fullyDownThreshold, s32 tileTag, s32 palTag, u16 *scrollOffset);
|
u8 AddScrollIndicatorArrowPairParameterized(u32 arrowType, s32 commonPos, s32 firstPos, s32 secondPos, s32 fullyDownThreshold, s32 tileTag, s32 palTag, u16 *scrollOffset);
|
||||||
u8 AddScrollIndicatorArrowPair(const struct ScrollArrowsTemplate * template, u16 * a1);
|
u8 AddScrollIndicatorArrowPair(const struct ScrollArrowsTemplate * template, u16 * a1);
|
||||||
void RemoveScrollIndicatorArrowPair(u8);
|
void RemoveScrollIndicatorArrowPair(u8);
|
||||||
u8 ListMenuAddCursorObjectInternal(struct CursorStruct *cursor, u32 cursorKind);
|
u8 ListMenuAddCursorObjectInternal(const struct CursorStruct *cursor, u32 cursorKind);
|
||||||
u8 ListMenuAddRedOutlineCursorObject(struct CursorStruct *cursor);
|
u8 ListMenuAddRedOutlineCursorObject(const struct CursorStruct *cursor);
|
||||||
void ListMenuUpdateRedOutlineCursorObject(u8 taskId, u16 x, u16 y);
|
void ListMenuUpdateRedOutlineCursorObject(u8 taskId, u16 x, u16 y);
|
||||||
void ListMenuRemoveRedOutlineCursorObject(u8 taskId);
|
void ListMenuRemoveRedOutlineCursorObject(u8 taskId);
|
||||||
void ListMenuRemoveCursorObject(u8 taskId, u32 cursorKind);
|
void ListMenuRemoveCursorObject(u8 taskId, u32 cursorKind);
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ static EWRAM_DATA struct ScrollArrowsTemplate sTempScrollArrowTemplate = {0};
|
|||||||
static void SpriteCallback_ScrollIndicatorArrow(struct Sprite *sprite);
|
static void SpriteCallback_ScrollIndicatorArrow(struct Sprite *sprite);
|
||||||
static void SpriteCallback_RedArrowCursor(struct Sprite *sprite);
|
static void SpriteCallback_RedArrowCursor(struct Sprite *sprite);
|
||||||
static void Task_ScrollIndicatorArrowPair(u8 taskId);
|
static void Task_ScrollIndicatorArrowPair(u8 taskId);
|
||||||
static u8 ListMenuAddRedArrowCursorObject(struct CursorStruct *cursor);
|
static u8 ListMenuAddRedArrowCursorObject(const struct CursorStruct *cursor);
|
||||||
static void ListMenuUpdateRedArrowCursorObject(u8 taskId, u16 x, u16 y);
|
static void ListMenuUpdateRedArrowCursorObject(u8 taskId, u16 x, u16 y);
|
||||||
static void ListMenuRemoveRedArrowCursorObject(u8 taskId);
|
static void ListMenuRemoveRedArrowCursorObject(u8 taskId);
|
||||||
|
|
||||||
@@ -422,7 +422,7 @@ void RemoveScrollIndicatorArrowPair(u8 taskId)
|
|||||||
DestroyTask(taskId);
|
DestroyTask(taskId);
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 ListMenuAddCursorObjectInternal(struct CursorStruct *cursor, u32 cursorKind)
|
u8 ListMenuAddCursorObjectInternal(const struct CursorStruct *cursor, u32 cursorKind)
|
||||||
{
|
{
|
||||||
switch (cursorKind)
|
switch (cursorKind)
|
||||||
{
|
{
|
||||||
@@ -528,7 +528,7 @@ void ListMenuSetUpRedOutlineCursorSpriteOamTable(u16 rowWidth, u16 rowHeight, st
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 ListMenuAddRedOutlineCursorObject(struct CursorStruct *cursor)
|
u8 ListMenuAddRedOutlineCursorObject(const struct CursorStruct *cursor)
|
||||||
{
|
{
|
||||||
struct CompressedSpriteSheet spriteSheet;
|
struct CompressedSpriteSheet spriteSheet;
|
||||||
struct SpritePalette spritePal;
|
struct SpritePalette spritePal;
|
||||||
@@ -601,7 +601,7 @@ static void Task_RedArrowCursor(u8 taskId)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
static u8 ListMenuAddRedArrowCursorObject(struct CursorStruct *cursor)
|
static u8 ListMenuAddRedArrowCursorObject(const struct CursorStruct *cursor)
|
||||||
{
|
{
|
||||||
struct CompressedSpriteSheet spriteSheet;
|
struct CompressedSpriteSheet spriteSheet;
|
||||||
struct SpritePalette spritePal;
|
struct SpritePalette spritePal;
|
||||||
|
|||||||
+332
-4
@@ -28,7 +28,9 @@ struct PokedexScreenData
|
|||||||
{
|
{
|
||||||
u8 field_00;
|
u8 field_00;
|
||||||
u8 field_01;
|
u8 field_01;
|
||||||
u8 filler_02[0x6];
|
u8 field_02;
|
||||||
|
u8 field_03;
|
||||||
|
u8 filler_04[0x4];
|
||||||
u32 field_08;
|
u32 field_08;
|
||||||
u32 field_0C;
|
u32 field_0C;
|
||||||
u16 field_10;
|
u16 field_10;
|
||||||
@@ -37,9 +39,10 @@ struct PokedexScreenData
|
|||||||
u8 field_15;
|
u8 field_15;
|
||||||
u8 field_16;
|
u8 field_16;
|
||||||
u8 field_17;
|
u8 field_17;
|
||||||
u8 filler_18[0x10];
|
u16 field_18[0x8];
|
||||||
u8 field_28;
|
u8 field_28;
|
||||||
u8 filler_29[0x2];
|
u8 field_29;
|
||||||
|
u8 field_2A;
|
||||||
u8 field_2B;
|
u8 field_2B;
|
||||||
u8 field_2C;
|
u8 field_2C;
|
||||||
u8 field_2D;
|
u8 field_2D;
|
||||||
@@ -61,6 +64,7 @@ struct PokedexScreenData
|
|||||||
u16 field_5A;
|
u16 field_5A;
|
||||||
u8 filler_5C[0x4];
|
u8 filler_5C[0x4];
|
||||||
u8 field_60;
|
u8 field_60;
|
||||||
|
u8 field_61;
|
||||||
u16 field_62;
|
u16 field_62;
|
||||||
u8 filler_64[0x2];
|
u8 filler_64[0x2];
|
||||||
u16 field_66;
|
u16 field_66;
|
||||||
@@ -88,15 +92,30 @@ void sub_8103924(const struct ListMenuTemplate * a0, u8 a1);
|
|||||||
u8 sub_81039F0(void);
|
u8 sub_81039F0(void);
|
||||||
void sub_8103988(u8 a0);
|
void sub_8103988(u8 a0);
|
||||||
void sub_8103AC8(u8 taskId);
|
void sub_8103AC8(u8 taskId);
|
||||||
|
int sub_8104284(void);
|
||||||
|
u8 sub_8104234(void);
|
||||||
|
void sub_81042EC(u8 taskId);
|
||||||
void sub_81047B0(u8 *a0);
|
void sub_81047B0(u8 *a0);
|
||||||
void sub_81047C8(u8 a0, u8 a1, const u8 *a2, u8 a3, u8 a4, u8 a5);
|
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);
|
void sub_810491C(u8 a0, u8 a1, u16 a2, u8 a3, u8 a4, u8 a5);
|
||||||
void sub_8104A34(u8 windowId, u8 a1, u16 species, u8 a3, u8 y);
|
void sub_8104A34(u8 windowId, u8 a1, u16 species, u8 a3, u8 y);
|
||||||
u16 sub_8104BBC(u8 a0, u8 a1);
|
u16 sub_8104BBC(u8 a0, u8 a1);
|
||||||
void sub_8104C2C(const u8 *a0);
|
void sub_8104C2C(const u8 *a0);
|
||||||
void sub_81042EC(u8 taskId);
|
void sub_8104E90(void);
|
||||||
|
void sub_8104F0C(u8 a0);
|
||||||
|
void sub_8105058(u8 a0);
|
||||||
|
void sub_8105178(u8 a0, u8 a1, u8 a2);
|
||||||
|
bool8 sub_81052D0(u8 a0);
|
||||||
|
void sub_8105594(u8 a0, u8 a1);
|
||||||
|
void sub_8105E1C(u8 a0);
|
||||||
|
void sub_8106014(void);
|
||||||
|
void sub_810603C(void);
|
||||||
|
bool8 sub_8106838(u8 a0, u8 a1);
|
||||||
u8 sub_81068A0(u8 a0);
|
u8 sub_81068A0(u8 a0);
|
||||||
|
void sub_810699C(u8 a0);
|
||||||
bool8 sub_8106A20(u16 a0);
|
bool8 sub_8106A20(u16 a0);
|
||||||
|
void sub_81067C0(void);
|
||||||
|
void sub_8106B34(void);
|
||||||
void sub_8106E78(const u8 *a0, s32 a1);
|
void sub_8106E78(const u8 *a0, s32 a1);
|
||||||
|
|
||||||
extern const u32 gUnknown_8440274[];
|
extern const u32 gUnknown_8440274[];
|
||||||
@@ -124,6 +143,7 @@ extern const struct ScrollArrowsTemplate gUnknown_84520E4;
|
|||||||
extern const struct PokedexScreenWindowGfx gUnknown_84520F4[];
|
extern const struct PokedexScreenWindowGfx gUnknown_84520F4[];
|
||||||
extern const struct ListMenuWindowRect gUnknown_845218C;
|
extern const struct ListMenuWindowRect gUnknown_845218C;
|
||||||
extern const struct ScrollArrowsTemplate gUnknown_84521B4;
|
extern const struct ScrollArrowsTemplate gUnknown_84521B4;
|
||||||
|
extern const struct CursorStruct gUnknown_84524C4;
|
||||||
|
|
||||||
void sub_81024C0(void)
|
void sub_81024C0(void)
|
||||||
{
|
{
|
||||||
@@ -835,3 +855,311 @@ void sub_8103A40(u8 windowId, s32 itemId, u8 y)
|
|||||||
BlitMoveInfoIcon(gUnknown_203ACF0->field_40, gBaseStats[species].type2 + 1, 0x98, y);
|
BlitMoveInfoIcon(gUnknown_203ACF0->field_40, gBaseStats[species].type2 + 1, 0x98, y);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sub_8103AC8(u8 taskId)
|
||||||
|
{
|
||||||
|
int r4;
|
||||||
|
u8 *ptr;
|
||||||
|
switch (gUnknown_203ACF0->field_01)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
HideBg(3);
|
||||||
|
HideBg(2);
|
||||||
|
HideBg(1);
|
||||||
|
sub_810699C(gUnknown_203ACF0->field_28);
|
||||||
|
if (gUnknown_203ACF0->field_2B < gUnknown_203ACF0->field_29)
|
||||||
|
gUnknown_203ACF0->field_2B = gUnknown_203ACF0->field_29;
|
||||||
|
gUnknown_203ACF0->field_01 = 2;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
sub_8104E90();
|
||||||
|
HideBg(2);
|
||||||
|
HideBg(1);
|
||||||
|
switch (gUnknown_203ACF0->field_2F)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
default:
|
||||||
|
gTasks[taskId].func = sub_810287C;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
gTasks[taskId].func = sub_8103238;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
gUnknown_203ACF0->field_01 = 0;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
sub_8104F0C(0);
|
||||||
|
CopyBgTilemapBufferToVram(3);
|
||||||
|
CopyBgTilemapBufferToVram(2);
|
||||||
|
CopyBgTilemapBufferToVram(1);
|
||||||
|
sub_8105058(0xFF);
|
||||||
|
gUnknown_203ACF0->field_01 = 3;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
BeginNormalPaletteFade(0xFFFF7FFF, 0, 16, 0, RGB_WHITEALPHA);
|
||||||
|
ShowBg(3);
|
||||||
|
ShowBg(2);
|
||||||
|
ShowBg(1);
|
||||||
|
gUnknown_203ACF0->field_01 = 4;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
gUnknown_203ACF0->field_60 = sub_8104234();
|
||||||
|
gUnknown_203ACF0->field_61 = ListMenuAddCursorObjectInternal(&gUnknown_84524C4, 0);
|
||||||
|
gUnknown_203ACF0->field_01 = 5;
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
sub_8105058(gUnknown_203ACF0->field_2D);
|
||||||
|
sub_8105178(gUnknown_203ACF0->field_61, gUnknown_203ACF0->field_2D, gUnknown_203ACF0->field_2C);
|
||||||
|
gUnknown_203ACF0->field_62 = gUnknown_203ACF0->field_2B;
|
||||||
|
r4 = 0;
|
||||||
|
if (JOY_NEW(A_BUTTON) && sub_8104AB0(gUnknown_203ACF0->field_18[gUnknown_203ACF0->field_2D], FLAG_GET_SEEN, 1))
|
||||||
|
{
|
||||||
|
RemoveScrollIndicatorArrowPair(gUnknown_203ACF0->field_60);
|
||||||
|
ListMenuRemoveCursorObject(gUnknown_203ACF0->field_61, 0);
|
||||||
|
gUnknown_203ACF0->field_01 = 12;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!JOY_HELD(R_BUTTON) && JOY_REPT(DPAD_LEFT))
|
||||||
|
{
|
||||||
|
if (gUnknown_203ACF0->field_2D != 0)
|
||||||
|
{
|
||||||
|
gUnknown_203ACF0->field_2D--;
|
||||||
|
PlaySE(SE_SELECT);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
r4 = 1;
|
||||||
|
}
|
||||||
|
if (!JOY_HELD(R_BUTTON) && JOY_REPT(DPAD_RIGHT))
|
||||||
|
{
|
||||||
|
if (gUnknown_203ACF0->field_2D < gUnknown_203ACF0->field_2C - 1)
|
||||||
|
{
|
||||||
|
gUnknown_203ACF0->field_2D++;
|
||||||
|
PlaySE(SE_SELECT);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
r4 = 2;
|
||||||
|
}
|
||||||
|
if (r4 == 0)
|
||||||
|
r4 = sub_8104284();
|
||||||
|
switch (r4)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
while (gUnknown_203ACF0->field_2B > gUnknown_203ACF0->field_29)
|
||||||
|
{
|
||||||
|
gUnknown_203ACF0->field_2B--;
|
||||||
|
if (sub_8106838(gUnknown_203ACF0->field_28, gUnknown_203ACF0->field_2B))
|
||||||
|
{
|
||||||
|
gUnknown_203ACF0->field_01 = 8;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (gUnknown_203ACF0->field_01 != 8)
|
||||||
|
gUnknown_203ACF0->field_01 = 6;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
while (gUnknown_203ACF0->field_2B < gUnknown_203ACF0->field_2A - 1)
|
||||||
|
{
|
||||||
|
gUnknown_203ACF0->field_2B++;
|
||||||
|
if (sub_8106838(gUnknown_203ACF0->field_28, gUnknown_203ACF0->field_2B))
|
||||||
|
{
|
||||||
|
gUnknown_203ACF0->field_01 = 10;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (gUnknown_203ACF0->field_01 != 10)
|
||||||
|
gUnknown_203ACF0->field_01 = 6;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (JOY_NEW(B_BUTTON))
|
||||||
|
{
|
||||||
|
gUnknown_203ACF0->field_01 = 6;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
case 7:
|
||||||
|
RemoveScrollIndicatorArrowPair(gUnknown_203ACF0->field_60);
|
||||||
|
ListMenuRemoveCursorObject(gUnknown_203ACF0->field_61, 0);
|
||||||
|
BeginNormalPaletteFade(0xFFFF7FFF, 0, 0, 16, RGB_WHITEALPHA);
|
||||||
|
gUnknown_203ACF0->field_01 = 1;
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
case 10:
|
||||||
|
sub_8104E90();
|
||||||
|
sub_8105058(0xFF);
|
||||||
|
ListMenuUpdateCursorObject(gUnknown_203ACF0->field_61, 0, 0xA0, 0);
|
||||||
|
gUnknown_203ACF0->field_2E = 0;
|
||||||
|
gUnknown_203ACF0->field_02 = 0;
|
||||||
|
gUnknown_203ACF0->field_01++;
|
||||||
|
break;
|
||||||
|
case 9:
|
||||||
|
if (sub_81052D0(0))
|
||||||
|
{
|
||||||
|
gUnknown_203ACF0->field_2D = gUnknown_203ACF0->field_2C - 1;
|
||||||
|
gUnknown_203ACF0->field_01 = 5;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 11:
|
||||||
|
if (sub_81052D0(1))
|
||||||
|
{
|
||||||
|
gUnknown_203ACF0->field_2D = 0;
|
||||||
|
gUnknown_203ACF0->field_01 = 5;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 12:
|
||||||
|
gUnknown_203ACF0->field_5A = gUnknown_203ACF0->field_18[gUnknown_203ACF0->field_2D];
|
||||||
|
PlaySE(SE_SELECT);
|
||||||
|
gUnknown_203ACF0->field_01 = 14;
|
||||||
|
break;
|
||||||
|
case 13:
|
||||||
|
sub_8106014();
|
||||||
|
gUnknown_203ACF0->field_01 = 4;
|
||||||
|
break;
|
||||||
|
case 14:
|
||||||
|
sub_8105E1C(0);
|
||||||
|
gUnknown_203ACF0->field_01 = 15;
|
||||||
|
break;
|
||||||
|
case 15:
|
||||||
|
gUnknown_203ACF0->field_02 = 0;
|
||||||
|
gUnknown_203ACF0->field_03 = 0;
|
||||||
|
gUnknown_203ACF0->field_01++;
|
||||||
|
// fallthrough
|
||||||
|
case 16:
|
||||||
|
if (gUnknown_203ACF0->field_03 < 6)
|
||||||
|
{
|
||||||
|
if (!gUnknown_203ACF0->field_02)
|
||||||
|
{
|
||||||
|
gUnknown_203ACF0->field_02--;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sub_8105594(0, gUnknown_203ACF0->field_03);
|
||||||
|
CopyBgTilemapBufferToVram(0);
|
||||||
|
gUnknown_203ACF0->field_02 = 4;
|
||||||
|
gUnknown_203ACF0->field_03++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 2, 30, 16);
|
||||||
|
CopyBgTilemapBufferToVram(3);
|
||||||
|
CopyBgTilemapBufferToVram(2);
|
||||||
|
CopyBgTilemapBufferToVram(1);
|
||||||
|
CopyBgTilemapBufferToVram(0);
|
||||||
|
PlayCry2(gUnknown_203ACF0->field_5A, 0, 125, 10);
|
||||||
|
gUnknown_203ACF0->field_02 = 0;
|
||||||
|
gUnknown_203ACF0->field_01 = 17;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 17:
|
||||||
|
if (JOY_NEW(A_BUTTON))
|
||||||
|
{
|
||||||
|
sub_8106014();
|
||||||
|
FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 2, 30, 16);
|
||||||
|
CopyBgTilemapBufferToVram(1);
|
||||||
|
gUnknown_203ACF0->field_01 = 21;
|
||||||
|
}
|
||||||
|
else if (JOY_NEW(B_BUTTON))
|
||||||
|
{
|
||||||
|
gUnknown_203ACF0->field_01 = 18;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sub_8106B34();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 18:
|
||||||
|
sub_8104F0C(0);
|
||||||
|
sub_8105594(0, 6);
|
||||||
|
CopyBgTilemapBufferToVram(3);
|
||||||
|
CopyBgTilemapBufferToVram(2);
|
||||||
|
CopyBgTilemapBufferToVram(1);
|
||||||
|
CopyBgTilemapBufferToVram(0);
|
||||||
|
gUnknown_203ACF0->field_01 = 19;
|
||||||
|
break;
|
||||||
|
case 19:
|
||||||
|
gUnknown_203ACF0->field_02 = 0;
|
||||||
|
gUnknown_203ACF0->field_03 = 6;
|
||||||
|
gUnknown_203ACF0->field_01++;
|
||||||
|
// fallthrough
|
||||||
|
case 20:
|
||||||
|
if (gUnknown_203ACF0->field_03)
|
||||||
|
{
|
||||||
|
if (gUnknown_203ACF0->field_02)
|
||||||
|
{
|
||||||
|
gUnknown_203ACF0->field_03--;
|
||||||
|
FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 2, 30, 16);
|
||||||
|
sub_8105594(0, gUnknown_203ACF0->field_03);
|
||||||
|
CopyBgTilemapBufferToVram(0);
|
||||||
|
gUnknown_203ACF0->field_02 = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
gUnknown_203ACF0->field_02--;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 2, 30, 16);
|
||||||
|
CopyBgTilemapBufferToVram(0);
|
||||||
|
gUnknown_203ACF0->field_01 = 13;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 21:
|
||||||
|
sub_810603C();
|
||||||
|
gUnknown_203ACF0->field_01 = 22;
|
||||||
|
break;
|
||||||
|
case 22:
|
||||||
|
CopyBgTilemapBufferToVram(3);
|
||||||
|
CopyBgTilemapBufferToVram(2);
|
||||||
|
CopyBgTilemapBufferToVram(1);
|
||||||
|
CopyBgTilemapBufferToVram(0);
|
||||||
|
gUnknown_203ACF0->field_01 = 23;
|
||||||
|
break;
|
||||||
|
case 23:
|
||||||
|
if (JOY_NEW(A_BUTTON))
|
||||||
|
{
|
||||||
|
FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 2, 30, 16);
|
||||||
|
FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 2, 30, 16);
|
||||||
|
FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 2, 30, 16);
|
||||||
|
CopyBgTilemapBufferToVram(2);
|
||||||
|
CopyBgTilemapBufferToVram(1);
|
||||||
|
CopyBgTilemapBufferToVram(0);
|
||||||
|
gUnknown_203ACF0->field_01 = 26;
|
||||||
|
}
|
||||||
|
else if (JOY_NEW(B_BUTTON))
|
||||||
|
{
|
||||||
|
FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 2, 30, 16);
|
||||||
|
FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 2, 30, 16);
|
||||||
|
FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 2, 30, 16);
|
||||||
|
CopyBgTilemapBufferToVram(2);
|
||||||
|
CopyBgTilemapBufferToVram(1);
|
||||||
|
CopyBgTilemapBufferToVram(0);
|
||||||
|
gUnknown_203ACF0->field_01 = 24;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sub_8106B34();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 24:
|
||||||
|
sub_81067C0();
|
||||||
|
gUnknown_203ACF0->field_01 = 25;
|
||||||
|
break;
|
||||||
|
case 25:
|
||||||
|
sub_8105E1C(0);
|
||||||
|
CopyBgTilemapBufferToVram(3);
|
||||||
|
CopyBgTilemapBufferToVram(2);
|
||||||
|
CopyBgTilemapBufferToVram(1);
|
||||||
|
CopyBgTilemapBufferToVram(0);
|
||||||
|
gUnknown_203ACF0->field_01 = 17;
|
||||||
|
break;
|
||||||
|
case 26:
|
||||||
|
sub_81067C0();
|
||||||
|
gUnknown_203ACF0->field_01 = 18;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user