sub_8103AC8

This commit is contained in:
PikalaxALT
2019-12-11 17:06:27 -05:00
parent f55abfddc5
commit 0d586d304d
4 changed files with 338 additions and 888 deletions
-878
View File
@@ -5,884 +5,6 @@
.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
sub_8104234: @ 8104234
push {r4,lr}
+2 -2
View File
@@ -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 AddScrollIndicatorArrowPair(const struct ScrollArrowsTemplate * template, u16 * a1);
void RemoveScrollIndicatorArrowPair(u8);
u8 ListMenuAddCursorObjectInternal(struct CursorStruct *cursor, u32 cursorKind);
u8 ListMenuAddRedOutlineCursorObject(struct CursorStruct *cursor);
u8 ListMenuAddCursorObjectInternal(const struct CursorStruct *cursor, u32 cursorKind);
u8 ListMenuAddRedOutlineCursorObject(const struct CursorStruct *cursor);
void ListMenuUpdateRedOutlineCursorObject(u8 taskId, u16 x, u16 y);
void ListMenuRemoveRedOutlineCursorObject(u8 taskId);
void ListMenuRemoveCursorObject(u8 taskId, u32 cursorKind);
+4 -4
View File
@@ -50,7 +50,7 @@ static EWRAM_DATA struct ScrollArrowsTemplate sTempScrollArrowTemplate = {0};
static void SpriteCallback_ScrollIndicatorArrow(struct Sprite *sprite);
static void SpriteCallback_RedArrowCursor(struct Sprite *sprite);
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 ListMenuRemoveRedArrowCursorObject(u8 taskId);
@@ -422,7 +422,7 @@ void RemoveScrollIndicatorArrowPair(u8 taskId)
DestroyTask(taskId);
}
u8 ListMenuAddCursorObjectInternal(struct CursorStruct *cursor, u32 cursorKind)
u8 ListMenuAddCursorObjectInternal(const struct CursorStruct *cursor, u32 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 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 SpritePalette spritePal;
+332 -4
View File
@@ -28,7 +28,9 @@ struct PokedexScreenData
{
u8 field_00;
u8 field_01;
u8 filler_02[0x6];
u8 field_02;
u8 field_03;
u8 filler_04[0x4];
u32 field_08;
u32 field_0C;
u16 field_10;
@@ -37,9 +39,10 @@ struct PokedexScreenData
u8 field_15;
u8 field_16;
u8 field_17;
u8 filler_18[0x10];
u16 field_18[0x8];
u8 field_28;
u8 filler_29[0x2];
u8 field_29;
u8 field_2A;
u8 field_2B;
u8 field_2C;
u8 field_2D;
@@ -61,6 +64,7 @@ struct PokedexScreenData
u16 field_5A;
u8 filler_5C[0x4];
u8 field_60;
u8 field_61;
u16 field_62;
u8 filler_64[0x2];
u16 field_66;
@@ -88,15 +92,30 @@ void sub_8103924(const struct ListMenuTemplate * a0, u8 a1);
u8 sub_81039F0(void);
void sub_8103988(u8 a0);
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_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_8104A34(u8 windowId, u8 a1, u16 species, u8 a3, u8 y);
u16 sub_8104BBC(u8 a0, u8 a1);
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);
void sub_810699C(u8 a0);
bool8 sub_8106A20(u16 a0);
void sub_81067C0(void);
void sub_8106B34(void);
void sub_8106E78(const u8 *a0, s32 a1);
extern const u32 gUnknown_8440274[];
@@ -124,6 +143,7 @@ extern const struct ScrollArrowsTemplate gUnknown_84520E4;
extern const struct PokedexScreenWindowGfx gUnknown_84520F4[];
extern const struct ListMenuWindowRect gUnknown_845218C;
extern const struct ScrollArrowsTemplate gUnknown_84521B4;
extern const struct CursorStruct gUnknown_84524C4;
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);
}
}
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;
}
}