mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-28 04:34:28 +01:00
6079 lines
93 KiB
ArmAsm
6079 lines
93 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_81C3E2C
|
|
sub_81C3E2C: @ 81C3E2C
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x4
|
|
bne _081C3E48
|
|
ldr r0, =gUnknown_0203CF1C
|
|
ldr r0, [r0]
|
|
ldr r1, =0x000040c4
|
|
b _081C3E50
|
|
.pool
|
|
_081C3E48:
|
|
ldr r0, =gUnknown_0203CF1C
|
|
ldr r0, [r0]
|
|
lsls r1, 1
|
|
adds r0, 0x84
|
|
_081C3E50:
|
|
adds r0, r1
|
|
ldrh r4, [r0]
|
|
cmp r4, 0
|
|
beq _081C3E82
|
|
ldr r0, =gUnknown_0861CD14
|
|
movs r1, 0x2
|
|
bl sub_81C2D2C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, =gContestEffectDescriptionPointers
|
|
ldr r2, =gContestMoves
|
|
lsls r1, r4, 3
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
ldr r1, [r1]
|
|
movs r2, 0
|
|
str r2, [sp]
|
|
str r2, [sp, 0x4]
|
|
movs r2, 0x6
|
|
movs r3, 0x1
|
|
bl sub_81C25A4
|
|
_081C3E82:
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C3E2C
|
|
|
|
thumb_func_start sub_81C3E9C
|
|
sub_81C3E9C: @ 81C3E9C
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
adds r6, r4, 0
|
|
ldr r0, =gUnknown_0861CD14
|
|
movs r1, 0x2
|
|
bl sub_81C2D2C
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
cmp r4, 0
|
|
beq _081C3F30
|
|
ldr r0, =gUnknown_0203CF1C
|
|
ldr r0, [r0]
|
|
ldr r1, =0x000040c0
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bne _081C3F00
|
|
adds r0, r4, 0
|
|
bl sub_81C3C5C
|
|
ldr r1, =gMoveDescriptionPointers
|
|
subs r0, r4, 0x1
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
str r0, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
movs r2, 0x6
|
|
movs r3, 0x1
|
|
bl sub_81C25A4
|
|
b _081C3F20
|
|
.pool
|
|
_081C3F00:
|
|
ldr r2, =gContestEffectDescriptionPointers
|
|
ldr r1, =gContestMoves
|
|
lsls r0, r6, 3
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
str r0, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
movs r2, 0x6
|
|
movs r3, 0x1
|
|
bl sub_81C25A4
|
|
_081C3F20:
|
|
adds r0, r5, 0
|
|
bl PutWindowTilemap
|
|
b _081C3F36
|
|
.pool
|
|
_081C3F30:
|
|
adds r0, r5, 0
|
|
bl ClearWindowTilemap
|
|
_081C3F36:
|
|
movs r0, 0
|
|
bl schedule_bg_copy_tilemap_to_vram
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81C3E9C
|
|
|
|
thumb_func_start sub_81C3F44
|
|
sub_81C3F44: @ 81C3F44
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x8
|
|
ldr r4, =gUnknown_0861CD14
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl sub_81C2D2C
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
adds r7, r6, 0
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_81C2D2C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r0, =gUnknown_0203CF1C
|
|
ldr r1, [r0]
|
|
ldr r2, =0x000040c4
|
|
adds r0, r1, r2
|
|
ldrh r2, [r0]
|
|
cmp r2, 0
|
|
bne _081C3F9C
|
|
ldr r1, =gText_Cancel
|
|
str r2, [sp]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x4]
|
|
adds r0, r6, 0
|
|
movs r2, 0
|
|
movs r3, 0x41
|
|
bl sub_81C25A4
|
|
b _081C4044
|
|
.pool
|
|
_081C3F9C:
|
|
ldrh r5, [r0]
|
|
ldr r2, =0x000040c0
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bne _081C3FD0
|
|
movs r0, 0xD
|
|
adds r1, r5, 0
|
|
muls r1, r0
|
|
ldr r0, =gMoveNames
|
|
adds r1, r0
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x6
|
|
str r0, [sp, 0x4]
|
|
adds r0, r6, 0
|
|
movs r2, 0
|
|
movs r3, 0x41
|
|
bl sub_81C25A4
|
|
b _081C3FEC
|
|
.pool
|
|
_081C3FD0:
|
|
movs r0, 0xD
|
|
adds r1, r5, 0
|
|
muls r1, r0
|
|
ldr r0, =gMoveNames
|
|
adds r1, r0
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x5
|
|
str r0, [sp, 0x4]
|
|
adds r0, r7, 0
|
|
movs r2, 0
|
|
movs r3, 0x41
|
|
bl sub_81C25A4
|
|
_081C3FEC:
|
|
ldr r4, =gStringVar1
|
|
ldr r1, =gBattleMoves
|
|
lsls r0, r5, 1
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x4]
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x2
|
|
bl ConvertIntToDecimalStringN
|
|
bl UnkTextUtil_Reset
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
bl UnkTextUtil_SetPtrI
|
|
movs r0, 0x1
|
|
adds r1, r4, 0
|
|
bl UnkTextUtil_SetPtrI
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gUnknown_0861CE97
|
|
adds r0, r4, 0
|
|
bl UnkTextUtil_StringExpandPlaceholders
|
|
movs r0, 0x1
|
|
adds r1, r4, 0
|
|
movs r2, 0x2C
|
|
bl GetStringRightAlignXOffset
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0xC
|
|
str r0, [sp, 0x4]
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
movs r3, 0x41
|
|
bl sub_81C25A4
|
|
_081C4044:
|
|
add sp, 0x8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C3F44
|
|
|
|
thumb_func_start sub_81C4064
|
|
sub_81C4064: @ 81C4064
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
ldr r0, =gUnknown_0861CD14
|
|
movs r1, 0
|
|
bl sub_81C2D2C
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0x48
|
|
str r0, [sp]
|
|
movs r0, 0x10
|
|
str r0, [sp, 0x4]
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x42
|
|
bl FillWindowPixelRect
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C4064
|
|
|
|
thumb_func_start sub_81C40A0
|
|
sub_81C40A0: @ 81C40A0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
mov r9, r0
|
|
mov r10, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
mov r0, r10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
ldr r5, =gUnknown_0861CD14
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_81C2D2C
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl sub_81C2D2C
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
mov r0, r9
|
|
lsls r6, r0, 4
|
|
movs r0, 0x48
|
|
mov r8, r0
|
|
str r0, [sp]
|
|
movs r0, 0x10
|
|
str r0, [sp, 0x4]
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
adds r3, r6, 0
|
|
bl FillWindowPixelRect
|
|
mov r0, r10
|
|
lsls r7, r0, 4
|
|
mov r0, r8
|
|
str r0, [sp]
|
|
movs r0, 0x10
|
|
str r0, [sp, 0x4]
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
adds r3, r7, 0
|
|
bl FillWindowPixelRect
|
|
movs r4, 0x30
|
|
str r4, [sp]
|
|
movs r0, 0x10
|
|
str r0, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
adds r3, r6, 0
|
|
bl FillWindowPixelRect
|
|
str r4, [sp]
|
|
movs r0, 0x10
|
|
str r0, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
adds r3, r7, 0
|
|
bl FillWindowPixelRect
|
|
mov r0, r9
|
|
bl sub_81C3B08
|
|
mov r0, r10
|
|
bl sub_81C3B08
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C40A0
|
|
|
|
thumb_func_start sub_81C4154
|
|
sub_81C4154: @ 81C4154
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
ldr r0, =gUnknown_0861CD14
|
|
movs r1, 0x2
|
|
bl sub_81C2D2C
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
ldr r1, =gText_HMMovesCantBeForgotten2
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
str r0, [sp, 0x4]
|
|
adds r0, r4, 0
|
|
movs r2, 0x6
|
|
movs r3, 0x1
|
|
bl sub_81C25A4
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C4154
|
|
|
|
thumb_func_start sub_81C4190
|
|
sub_81C4190: @ 81C4190
|
|
push {r4,r5,lr}
|
|
movs r2, 0
|
|
ldr r5, =gUnknown_0203CF1C
|
|
ldr r4, =0x000040d3
|
|
movs r3, 0xFF
|
|
_081C419A:
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
orrs r1, r3
|
|
strb r1, [r0]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x1B
|
|
bls _081C419A
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C4190
|
|
|
|
thumb_func_start sub_81C41C0
|
|
sub_81C41C0: @ 81C41C0
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r5, =gUnknown_0203CF1C
|
|
ldr r0, [r5]
|
|
ldr r1, =0x000040d3
|
|
adds r0, r1
|
|
adds r1, r0, r4
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xFF
|
|
beq _081C41F2
|
|
adds r1, r0, 0
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gSprites
|
|
adds r0, r1
|
|
bl DestroySprite
|
|
ldr r0, [r5]
|
|
ldr r1, =0x000040d3
|
|
adds r0, r1
|
|
adds r0, r4
|
|
movs r1, 0xFF
|
|
strb r1, [r0]
|
|
_081C41F2:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C41C0
|
|
|
|
thumb_func_start sub_81C4204
|
|
sub_81C4204: @ 81C4204
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r3, =gSprites
|
|
ldr r2, =gUnknown_0203CF1C
|
|
ldr r2, [r2]
|
|
ldr r4, =0x000040d3
|
|
adds r2, r4
|
|
adds r2, r0
|
|
ldrb r0, [r2]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
adds r2, 0x3E
|
|
movs r0, 0x1
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r3, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C4204
|
|
|
|
thumb_func_start sub_81C424C
|
|
sub_81C424C: @ 81C424C
|
|
push {r4,lr}
|
|
movs r4, 0x3
|
|
_081C4250:
|
|
ldr r0, =gUnknown_0203CF1C
|
|
ldr r0, [r0]
|
|
ldr r1, =0x000040d3
|
|
adds r0, r1
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xFF
|
|
beq _081C4268
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_81C4204
|
|
_081C4268:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x1B
|
|
bls _081C4250
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C424C
|
|
|
|
thumb_func_start sub_81C4280
|
|
sub_81C4280: @ 81C4280
|
|
push {lr}
|
|
ldr r0, =gUnknown_0203CF1C
|
|
ldr r0, [r0]
|
|
ldr r1, =0x000040c0
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
beq _081C42B0
|
|
cmp r0, 0x2
|
|
bgt _081C42A4
|
|
cmp r0, 0
|
|
beq _081C42AA
|
|
b _081C42C2
|
|
.pool
|
|
_081C42A4:
|
|
cmp r0, 0x3
|
|
beq _081C42BA
|
|
b _081C42C2
|
|
_081C42AA:
|
|
bl sub_81C43A0
|
|
b _081C42C2
|
|
_081C42B0:
|
|
bl sub_81C4420
|
|
bl sub_81C44F0
|
|
b _081C42C2
|
|
_081C42BA:
|
|
bl sub_81C4484
|
|
bl sub_81C44F0
|
|
_081C42C2:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81C4280
|
|
|
|
thumb_func_start sub_81C42C8
|
|
sub_81C42C8: @ 81C42C8
|
|
push {r4,r5,lr}
|
|
movs r4, 0x3
|
|
ldr r5, =gUnknown_0203CF1C
|
|
_081C42CE:
|
|
ldr r0, [r5]
|
|
ldr r1, =0x000040d3
|
|
adds r0, r1
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xFF
|
|
bne _081C42F2
|
|
ldr r0, =gUnknown_0861CFC4
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x2
|
|
bl CreateSprite
|
|
ldr r1, [r5]
|
|
ldr r2, =0x000040d3
|
|
adds r1, r2
|
|
adds r1, r4
|
|
strb r0, [r1]
|
|
_081C42F2:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_81C4204
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x7
|
|
bls _081C42CE
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C42C8
|
|
|
|
thumb_func_start sub_81C4318
|
|
sub_81C4318: @ 81C4318
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
mov r8, r2
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
mov r0, r8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
ldr r0, =gUnknown_0203CF1C
|
|
ldr r0, [r0]
|
|
ldr r1, =0x000040d3
|
|
adds r0, r1
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
lsls r4, r0, 4
|
|
adds r4, r0
|
|
lsls r4, 2
|
|
ldr r0, =gSprites
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
str r3, [sp]
|
|
bl StartSpriteAnim
|
|
ldr r0, =gUnknown_0861CFDC
|
|
adds r5, r0
|
|
ldrb r1, [r5]
|
|
lsls r1, 4
|
|
ldrb r2, [r4, 0x5]
|
|
movs r0, 0xF
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x5]
|
|
adds r6, 0x10
|
|
strh r6, [r4, 0x20]
|
|
movs r0, 0x8
|
|
add r8, r0
|
|
mov r1, r8
|
|
strh r1, [r4, 0x22]
|
|
ldr r3, [sp]
|
|
adds r0, r3, 0
|
|
movs r1, 0
|
|
bl sub_81C4204
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C4318
|
|
|
|
thumb_func_start sub_81C43A0
|
|
sub_81C43A0: @ 81C43A0
|
|
push {r4,r5,lr}
|
|
ldr r0, =gUnknown_0203CF1C
|
|
ldr r0, [r0]
|
|
adds r5, r0, 0
|
|
adds r5, 0x70
|
|
ldrb r0, [r5, 0x4]
|
|
cmp r0, 0
|
|
beq _081C43CC
|
|
movs r0, 0x9
|
|
movs r1, 0x78
|
|
movs r2, 0x30
|
|
movs r3, 0x3
|
|
bl sub_81C4318
|
|
movs r0, 0x4
|
|
movs r1, 0x1
|
|
bl sub_81C4204
|
|
b _081C4418
|
|
.pool
|
|
_081C43CC:
|
|
ldr r4, =gBaseStats
|
|
ldrh r1, [r5]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r0, [r0, 0x6]
|
|
movs r1, 0x78
|
|
movs r2, 0x30
|
|
movs r3, 0x3
|
|
bl sub_81C4318
|
|
ldrh r1, [r5]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r1, r0, r4
|
|
ldrb r0, [r1, 0x6]
|
|
ldrb r2, [r1, 0x7]
|
|
cmp r0, r2
|
|
beq _081C4410
|
|
ldrb r0, [r1, 0x7]
|
|
movs r1, 0xA0
|
|
movs r2, 0x30
|
|
movs r3, 0x4
|
|
bl sub_81C4318
|
|
movs r0, 0x4
|
|
movs r1, 0
|
|
bl sub_81C4204
|
|
b _081C4418
|
|
.pool
|
|
_081C4410:
|
|
movs r0, 0x4
|
|
movs r1, 0x1
|
|
bl sub_81C4204
|
|
_081C4418:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81C43A0
|
|
|
|
thumb_func_start sub_81C4420
|
|
sub_81C4420: @ 81C4420
|
|
push {r4-r6,lr}
|
|
ldr r0, =gUnknown_0203CF1C
|
|
ldr r0, [r0]
|
|
adds r5, r0, 0
|
|
adds r5, 0x70
|
|
movs r4, 0
|
|
ldr r6, =gBattleMoves
|
|
_081C442E:
|
|
lsls r0, r4, 1
|
|
adds r1, r5, 0
|
|
adds r1, 0x14
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
cmp r0, 0
|
|
beq _081C4468
|
|
adds r1, r0, 0
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldrb r0, [r0, 0x2]
|
|
lsls r2, r4, 28
|
|
movs r1, 0x80
|
|
lsls r1, 22
|
|
adds r2, r1
|
|
lsrs r2, 24
|
|
adds r3, r4, 0x3
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r1, 0x55
|
|
bl sub_81C4318
|
|
b _081C4474
|
|
.pool
|
|
_081C4468:
|
|
adds r0, r4, 0x3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x1
|
|
bl sub_81C4204
|
|
_081C4474:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x3
|
|
bls _081C442E
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81C4420
|
|
|
|
thumb_func_start sub_81C4484
|
|
sub_81C4484: @ 81C4484
|
|
push {r4,r5,lr}
|
|
ldr r0, =gUnknown_0203CF1C
|
|
ldr r0, [r0]
|
|
adds r5, r0, 0
|
|
adds r5, 0x70
|
|
movs r4, 0
|
|
_081C4490:
|
|
lsls r0, r4, 1
|
|
adds r1, r5, 0
|
|
adds r1, 0x14
|
|
adds r2, r1, r0
|
|
ldrh r0, [r2]
|
|
cmp r0, 0
|
|
beq _081C44D4
|
|
ldr r1, =gContestMoves
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r0, 29
|
|
lsrs r0, 5
|
|
movs r1, 0x90
|
|
lsls r1, 21
|
|
adds r0, r1
|
|
lsrs r0, 24
|
|
lsls r2, r4, 28
|
|
movs r1, 0x80
|
|
lsls r1, 22
|
|
adds r2, r1
|
|
lsrs r2, 24
|
|
adds r3, r4, 0x3
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r1, 0x55
|
|
bl sub_81C4318
|
|
b _081C44E0
|
|
.pool
|
|
_081C44D4:
|
|
adds r0, r4, 0x3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x1
|
|
bl sub_81C4204
|
|
_081C44E0:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x3
|
|
bls _081C4490
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81C4484
|
|
|
|
thumb_func_start sub_81C44F0
|
|
sub_81C44F0: @ 81C44F0
|
|
push {lr}
|
|
ldr r0, =gUnknown_0203CF1C
|
|
ldr r1, [r0]
|
|
ldr r0, =0x000040c4
|
|
adds r3, r1, r0
|
|
ldrh r0, [r3]
|
|
cmp r0, 0
|
|
bne _081C4514
|
|
movs r0, 0x7
|
|
movs r1, 0x1
|
|
bl sub_81C4204
|
|
b _081C4560
|
|
.pool
|
|
_081C4514:
|
|
ldr r2, =0x000040c0
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bne _081C4540
|
|
ldr r2, =gBattleMoves
|
|
ldrh r1, [r3]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x2]
|
|
movs r1, 0x55
|
|
movs r2, 0x60
|
|
movs r3, 0x7
|
|
bl sub_81C4318
|
|
b _081C4560
|
|
.pool
|
|
_081C4540:
|
|
ldr r1, =gContestMoves
|
|
ldrh r0, [r3]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r0, 29
|
|
lsrs r0, 5
|
|
movs r1, 0x90
|
|
lsls r1, 21
|
|
adds r0, r1
|
|
lsrs r0, 24
|
|
movs r1, 0x55
|
|
movs r2, 0x60
|
|
movs r3, 0x7
|
|
bl sub_81C4318
|
|
_081C4560:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C44F0
|
|
|
|
thumb_func_start sub_81C4568
|
|
sub_81C4568: @ 81C4568
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r2, =gUnknown_0203CF1C
|
|
ldr r2, [r2]
|
|
adds r0, 0x3
|
|
ldr r3, =0x000040d3
|
|
adds r2, r3
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
lsls r4, r0, 4
|
|
adds r4, r0
|
|
lsls r4, 2
|
|
ldr r5, =gSprites
|
|
adds r4, r5
|
|
adds r1, 0x3
|
|
adds r2, r1
|
|
ldrb r0, [r2]
|
|
lsls r3, r0, 4
|
|
adds r3, r0
|
|
lsls r3, 2
|
|
adds r3, r5
|
|
adds r5, r4, 0
|
|
adds r5, 0x2A
|
|
ldrb r1, [r5]
|
|
adds r2, r3, 0
|
|
adds r2, 0x2A
|
|
ldrb r0, [r2]
|
|
strb r0, [r5]
|
|
strb r1, [r2]
|
|
ldrb r6, [r4, 0x5]
|
|
lsrs r5, r6, 4
|
|
ldrb r2, [r3, 0x5]
|
|
lsrs r2, 4
|
|
lsls r2, 4
|
|
movs r1, 0xF
|
|
adds r0, r1, 0
|
|
ands r0, r6
|
|
orrs r0, r2
|
|
strb r0, [r4, 0x5]
|
|
lsls r5, 4
|
|
ldrb r0, [r3, 0x5]
|
|
ands r1, r0
|
|
orrs r1, r5
|
|
strb r1, [r3, 0x5]
|
|
adds r4, 0x3F
|
|
ldrb r0, [r4]
|
|
movs r2, 0x4
|
|
orrs r0, r2
|
|
movs r1, 0x11
|
|
negs r1, r1
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
adds r3, 0x3F
|
|
ldrb r0, [r3]
|
|
orrs r0, r2
|
|
ands r0, r1
|
|
strb r0, [r3]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C4568
|
|
|
|
thumb_func_start sub_81C45F4
|
|
sub_81C45F4: @ 81C45F4
|
|
push {r4-r6,lr}
|
|
adds r3, r0, 0
|
|
adds r6, r1, 0
|
|
ldr r0, =gUnknown_0203CF1C
|
|
ldr r2, [r0]
|
|
adds r5, r2, 0
|
|
adds r5, 0x70
|
|
movs r1, 0
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
beq _081C4620
|
|
cmp r0, 0x1
|
|
bne _081C4610
|
|
b _081C4750
|
|
_081C4610:
|
|
adds r0, r3, 0
|
|
bl sub_81C47B4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _081C4770
|
|
.pool
|
|
_081C4620:
|
|
ldr r0, =gMain
|
|
ldr r1, =0x00000439
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _081C4680
|
|
ldr r1, =0x000040be
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x3
|
|
bl sub_80688F8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _081C4668
|
|
ldrh r2, [r5, 0x2]
|
|
lsls r0, r2, 3
|
|
ldr r1, =gMonFrontPicTable
|
|
adds r0, r1
|
|
ldr r1, =gMonSpritesGfxPtr
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, 0x8]
|
|
b _081C46D6
|
|
.pool
|
|
_081C4668:
|
|
ldrh r2, [r5, 0x2]
|
|
lsls r0, r2, 3
|
|
ldr r1, =gMonFrontPicTable
|
|
adds r0, r1
|
|
ldr r1, =gMonSpritesGfxPtr
|
|
ldr r1, [r1]
|
|
b _081C46B0
|
|
.pool
|
|
_081C4680:
|
|
ldr r0, =gMonSpritesGfxPtr
|
|
ldr r3, [r0]
|
|
adds r4, r0, 0
|
|
cmp r3, 0
|
|
beq _081C46E4
|
|
ldr r1, [r2]
|
|
ldr r0, =gPlayerParty
|
|
cmp r1, r0
|
|
beq _081C46A6
|
|
ldr r1, =0x000040bc
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
beq _081C46A6
|
|
adds r1, 0x33
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _081C46CC
|
|
_081C46A6:
|
|
ldrh r2, [r5, 0x2]
|
|
lsls r0, r2, 3
|
|
ldr r1, =gMonFrontPicTable
|
|
adds r0, r1
|
|
ldr r1, [r4]
|
|
_081C46B0:
|
|
ldr r1, [r1, 0x8]
|
|
ldr r3, [r5, 0xC]
|
|
bl HandleLoadSpecialPokePic_2
|
|
b _081C4768
|
|
.pool
|
|
_081C46CC:
|
|
ldrh r2, [r5, 0x2]
|
|
lsls r0, r2, 3
|
|
ldr r1, =gMonFrontPicTable
|
|
adds r0, r1
|
|
ldr r1, [r3, 0x8]
|
|
_081C46D6:
|
|
ldr r3, [r5, 0xC]
|
|
bl HandleLoadSpecialPokePic_DontHandleDeoxys
|
|
b _081C4768
|
|
.pool
|
|
_081C46E4:
|
|
ldr r1, [r2]
|
|
ldr r0, =gPlayerParty
|
|
cmp r1, r0
|
|
beq _081C4700
|
|
ldr r1, =0x000040bc
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
beq _081C4700
|
|
adds r1, 0x33
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _081C472C
|
|
_081C4700:
|
|
ldrh r4, [r5, 0x2]
|
|
lsls r4, 3
|
|
ldr r0, =gMonFrontPicTable
|
|
adds r4, r0
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
bl sub_806F4F8
|
|
adds r1, r0, 0
|
|
ldrh r2, [r5, 0x2]
|
|
ldr r3, [r5, 0xC]
|
|
adds r0, r4, 0
|
|
bl HandleLoadSpecialPokePic_2
|
|
b _081C4768
|
|
.pool
|
|
_081C472C:
|
|
ldrh r4, [r5, 0x2]
|
|
lsls r4, 3
|
|
ldr r0, =gMonFrontPicTable
|
|
adds r4, r0
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
bl sub_806F4F8
|
|
adds r1, r0, 0
|
|
ldrh r2, [r5, 0x2]
|
|
ldr r3, [r5, 0xC]
|
|
adds r0, r4, 0
|
|
bl HandleLoadSpecialPokePic_DontHandleDeoxys
|
|
b _081C4768
|
|
.pool
|
|
_081C4750:
|
|
ldrh r0, [r5, 0x2]
|
|
ldr r1, [r5, 0x48]
|
|
ldr r2, [r5, 0xC]
|
|
bl GetMonSpritePalStructFromOtIdPersonality
|
|
adds r4, r0, 0
|
|
bl LoadCompressedObjectPalette
|
|
ldrh r0, [r4, 0x4]
|
|
movs r1, 0x1
|
|
bl sub_806A068
|
|
_081C4768:
|
|
ldrh r0, [r6]
|
|
adds r0, 0x1
|
|
strh r0, [r6]
|
|
movs r0, 0xFF
|
|
_081C4770:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81C45F4
|
|
|
|
thumb_func_start sub_81C4778
|
|
sub_81C4778: @ 81C4778
|
|
push {r4,lr}
|
|
ldr r0, =gUnknown_0203CF1C
|
|
ldr r1, [r0]
|
|
adds r4, r1, 0
|
|
adds r4, 0x70
|
|
ldrb r0, [r4, 0x4]
|
|
cmp r0, 0
|
|
bne _081C47AE
|
|
adds r0, r1, 0
|
|
adds r0, 0xC
|
|
bl ShouldPlayNormalPokeCry
|
|
cmp r0, 0x1
|
|
bne _081C47A4
|
|
ldrh r0, [r4, 0x2]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl PlayCry3
|
|
b _081C47AE
|
|
.pool
|
|
_081C47A4:
|
|
ldrh r0, [r4, 0x2]
|
|
movs r1, 0
|
|
movs r2, 0xB
|
|
bl PlayCry3
|
|
_081C47AE:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81C4778
|
|
|
|
thumb_func_start sub_81C47B4
|
|
sub_81C47B4: @ 81C47B4
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r0, =gUnknown_0203CF1C
|
|
ldr r6, [r0]
|
|
adds r6, 0x70
|
|
ldr r0, =gUnknown_0202499C
|
|
movs r1, 0x28
|
|
movs r2, 0x40
|
|
movs r3, 0x5
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
lsls r4, r0, 4
|
|
add r4, r8
|
|
lsls r4, 2
|
|
ldr r5, =gSprites
|
|
adds r7, r4, r5
|
|
adds r0, r7, 0
|
|
bl FreeSpriteOamMatrix
|
|
ldrh r0, [r6, 0x2]
|
|
movs r1, 0
|
|
strh r0, [r7, 0x2E]
|
|
strh r1, [r7, 0x32]
|
|
adds r5, 0x1C
|
|
adds r4, r5
|
|
ldr r0, =sub_81C4844
|
|
str r0, [r4]
|
|
ldrb r1, [r7, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r7, 0x5]
|
|
ldrh r0, [r6, 0x2]
|
|
bl IsPokeSpriteNotFlipped
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _081C4828
|
|
adds r0, r7, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r2, 0x1
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _081C4836
|
|
.pool
|
|
_081C4828:
|
|
adds r2, r7, 0
|
|
adds r2, 0x3F
|
|
ldrb r1, [r2]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
_081C4836:
|
|
mov r0, r8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81C47B4
|
|
|
|
thumb_func_start sub_81C4844
|
|
sub_81C4844: @ 81C4844
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, =gUnknown_0203CF1C
|
|
ldr r0, [r0]
|
|
adds r5, r0, 0
|
|
adds r5, 0x70
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _081C487E
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
beq _081C487E
|
|
ldrh r0, [r4, 0x2E]
|
|
bl IsPokeSpriteNotFlipped
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x30]
|
|
bl sub_81C4778
|
|
ldrh r1, [r4, 0x2E]
|
|
ldrb r2, [r5, 0x4]
|
|
adds r0, r4, 0
|
|
bl PokemonSummaryDoMonAnimation
|
|
_081C487E:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C4844
|
|
|
|
thumb_func_start sub_81C488C
|
|
sub_81C488C: @ 81C488C
|
|
ldr r1, =gUnknown_0203CF24
|
|
strb r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_81C488C
|
|
|
|
thumb_func_start sub_81C4898
|
|
sub_81C4898: @ 81C4898
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_0203CF24
|
|
ldrb r0, [r4]
|
|
cmp r0, 0xFF
|
|
beq _081C48AA
|
|
bl DestroyTask
|
|
movs r0, 0xFF
|
|
strb r0, [r4]
|
|
_081C48AA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C4898
|
|
|
|
thumb_func_start sub_81C48B4
|
|
sub_81C48B4: @ 81C48B4
|
|
push {lr}
|
|
ldr r2, =gSprites
|
|
ldr r0, =gUnknown_0203CF1C
|
|
ldr r0, [r0]
|
|
ldr r1, =0x000040d3
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, =SpriteCallbackDummy
|
|
cmp r1, r0
|
|
beq _081C48E8
|
|
movs r0, 0x1
|
|
b _081C48EA
|
|
.pool
|
|
_081C48E8:
|
|
movs r0, 0
|
|
_081C48EA:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81C48B4
|
|
|
|
thumb_func_start sub_81C48F0
|
|
sub_81C48F0: @ 81C48F0
|
|
push {r4-r6,lr}
|
|
ldr r6, =gSprites
|
|
ldr r5, =gUnknown_0203CF1C
|
|
ldr r0, [r5]
|
|
ldr r4, =0x000040d3
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
adds r0, 0x2C
|
|
ldrb r1, [r0]
|
|
movs r2, 0x40
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r6, 0
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, =SpriteCallbackDummy
|
|
str r1, [r0]
|
|
bl sub_806EE98
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldrb r0, [r0, 0x5]
|
|
lsrs r0, 4
|
|
lsls r3, r0, 4
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r0, r1, 0
|
|
orrs r3, r0
|
|
movs r2, 0
|
|
ldr r5, =gPlttBufferUnfaded
|
|
ldr r4, =gPlttBufferFaded
|
|
_081C494C:
|
|
adds r0, r2, r3
|
|
lsls r0, 16
|
|
lsrs r0, 15
|
|
adds r1, r0, r5
|
|
adds r0, r4
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, 0xF
|
|
bls _081C494C
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C48F0
|
|
|
|
thumb_func_start sub_81C4984
|
|
sub_81C4984: @ 81C4984
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
ldr r1, =0x00007533
|
|
ldr r2, =gUnknown_0861D120
|
|
adds r0, r1, 0
|
|
bl sub_811FF94
|
|
adds r4, r0, 0
|
|
ldr r6, =gUnknown_0203CF1C
|
|
ldr r0, [r6]
|
|
str r4, [r0, 0x8]
|
|
cmp r4, 0
|
|
beq _081C49CE
|
|
adds r0, r5, 0
|
|
movs r1, 0x8
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
ldr r1, [r6]
|
|
ldr r2, [r1, 0x8]
|
|
movs r0, 0x3C
|
|
strh r0, [r2, 0x20]
|
|
ldr r2, [r1, 0x8]
|
|
movs r0, 0x1A
|
|
strh r0, [r2, 0x22]
|
|
ldr r2, [r1, 0x8]
|
|
ldrb r1, [r2, 0x5]
|
|
subs r0, 0x27
|
|
ands r0, r1
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x5]
|
|
_081C49CE:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C4984
|
|
|
|
thumb_func_start sub_81C49E0
|
|
sub_81C49E0: @ 81C49E0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, =gUnknown_0203CF1C
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x8]
|
|
bl DestroySprite
|
|
ldr r0, =0x00007533
|
|
bl FreeSpriteTilesByTag
|
|
adds r0, r4, 0
|
|
bl sub_81C4984
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C49E0
|
|
|
|
thumb_func_start sub_81C4A08
|
|
sub_81C4A08: @ 81C4A08
|
|
push {r4,lr}
|
|
movs r1, 0x26
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl ItemIdToBallId
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
bl LoadBallGfx
|
|
lsls r0, r4, 1
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
ldr r1, =gBallSpriteTemplates
|
|
adds r0, r1
|
|
movs r1, 0x10
|
|
movs r2, 0x88
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r2, =gUnknown_0203CF1C
|
|
ldr r1, [r2]
|
|
ldr r3, =0x000040d4
|
|
adds r1, r3
|
|
strb r0, [r1]
|
|
ldr r4, =gSprites
|
|
ldr r2, [r2]
|
|
adds r2, r3
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r4, 0
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, =SpriteCallbackDummy
|
|
str r1, [r0]
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r1, [r0, 0x5]
|
|
movs r2, 0xC
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x5]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C4A08
|
|
|
|
thumb_func_start sub_81C4A88
|
|
sub_81C4A88: @ 81C4A88
|
|
push {r4,r5,lr}
|
|
ldr r5, =gUnknown_0203CF1C
|
|
ldr r0, [r5]
|
|
ldr r1, =0x000040d5
|
|
adds r4, r0, r1
|
|
ldrb r0, [r4]
|
|
cmp r0, 0xFF
|
|
bne _081C4AA6
|
|
ldr r0, =gUnknown_0861D108
|
|
movs r1, 0x40
|
|
movs r2, 0x98
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
strb r0, [r4]
|
|
_081C4AA6:
|
|
ldr r0, [r5]
|
|
adds r0, 0xC
|
|
bl sub_81B205C
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0
|
|
beq _081C4AE8
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gSprites
|
|
adds r0, r1
|
|
subs r1, r2, 0x1
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
bl StartSpriteAnim
|
|
movs r0, 0x2
|
|
movs r1, 0
|
|
bl sub_81C4204
|
|
b _081C4AF0
|
|
.pool
|
|
_081C4AE8:
|
|
movs r0, 0x2
|
|
movs r1, 0x1
|
|
bl sub_81C4204
|
|
_081C4AF0:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81C4A88
|
|
|
|
thumb_func_start sub_81C4AF8
|
|
sub_81C4AF8: @ 81C4AF8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r0, =gUnknown_0203CF1C
|
|
ldr r1, =0x000040d3
|
|
add r1, r8
|
|
ldr r0, [r0]
|
|
adds r7, r0, r1
|
|
ldr r1, =0x000040c0
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bls _081C4BD2
|
|
movs r0, 0
|
|
mov r9, r0
|
|
mov r1, r8
|
|
cmp r1, 0x8
|
|
bne _081C4B2A
|
|
movs r0, 0x1
|
|
mov r9, r0
|
|
_081C4B2A:
|
|
movs r5, 0
|
|
ldr r6, =gSprites
|
|
mov r10, r5
|
|
_081C4B30:
|
|
lsls r1, r5, 20
|
|
movs r0, 0xB2
|
|
lsls r0, 15
|
|
adds r1, r0
|
|
asrs r1, 16
|
|
ldr r0, =gUnknown_0861D084
|
|
movs r2, 0x28
|
|
mov r3, r9
|
|
bl CreateSprite
|
|
adds r1, r7, r5
|
|
strb r0, [r1]
|
|
adds r4, r1, 0
|
|
cmp r5, 0
|
|
bne _081C4B74
|
|
ldrb r1, [r7]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
movs r1, 0x4
|
|
bl StartSpriteAnim
|
|
b _081C4B9A
|
|
.pool
|
|
_081C4B74:
|
|
cmp r5, 0x9
|
|
bne _081C4B8A
|
|
ldrb r1, [r7, 0x9]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
movs r1, 0x5
|
|
bl StartSpriteAnim
|
|
b _081C4B9A
|
|
_081C4B8A:
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
movs r1, 0x6
|
|
bl StartSpriteAnim
|
|
_081C4B9A:
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r6, 0
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, =sub_81C4BE4
|
|
str r1, [r0]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
mov r1, r8
|
|
strh r1, [r0, 0x2E]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
mov r1, r10
|
|
strh r1, [r0, 0x30]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x9
|
|
bls _081C4B30
|
|
_081C4BD2:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C4AF8
|
|
|
|
thumb_func_start sub_81C4BE4
|
|
sub_81C4BE4: @ 81C4BE4
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
adds r0, 0x2A
|
|
ldrb r0, [r0]
|
|
subs r0, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bhi _081C4C1C
|
|
ldrh r0, [r3, 0x30]
|
|
adds r0, 0x1
|
|
movs r1, 0x1F
|
|
ands r0, r1
|
|
strh r0, [r3, 0x30]
|
|
cmp r0, 0x18
|
|
ble _081C4C10
|
|
adds r2, r3, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
b _081C4C2A
|
|
_081C4C10:
|
|
adds r2, r3, 0
|
|
adds r2, 0x3E
|
|
ldrb r1, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
b _081C4C28
|
|
_081C4C1C:
|
|
movs r0, 0
|
|
strh r0, [r3, 0x30]
|
|
adds r2, r3, 0
|
|
adds r2, 0x3E
|
|
ldrb r1, [r2]
|
|
subs r0, 0x5
|
|
_081C4C28:
|
|
ands r0, r1
|
|
_081C4C2A:
|
|
strb r0, [r2]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r3, r1]
|
|
cmp r0, 0x8
|
|
bne _081C4C44
|
|
ldr r0, =gUnknown_0203CF1C
|
|
ldr r0, [r0]
|
|
ldr r1, =0x000040c6
|
|
b _081C4C4A
|
|
.pool
|
|
_081C4C44:
|
|
ldr r0, =gUnknown_0203CF1C
|
|
ldr r0, [r0]
|
|
ldr r1, =0x000040c7
|
|
_081C4C4A:
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 4
|
|
strh r0, [r3, 0x26]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C4BE4
|
|
|
|
thumb_func_start sub_81C4C60
|
|
sub_81C4C60: @ 81C4C60
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
_081C4C68:
|
|
adds r0, r5, r4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_81C41C0
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x9
|
|
bls _081C4C68
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81C4C60
|
|
|
|
thumb_func_start sub_81C4C84
|
|
sub_81C4C84: @ 81C4C84
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r0, =gUnknown_0203CF1C
|
|
ldr r0, [r0]
|
|
ldr r1, =0x000040db
|
|
adds r5, r0, r1
|
|
lsls r0, r6, 1
|
|
adds r0, r6
|
|
lsls r0, 24
|
|
movs r4, 0
|
|
ldr r7, =gSprites
|
|
movs r2, 0x80
|
|
lsls r2, 19
|
|
adds r2, r0
|
|
mov r9, r2
|
|
lsrs r6, r0, 24
|
|
movs r1, 0xA0
|
|
lsls r1, 19
|
|
adds r1, r0
|
|
mov r8, r1
|
|
_081C4CB4:
|
|
cmp r4, 0
|
|
bne _081C4CD4
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
mov r2, r9
|
|
b _081C4CE4
|
|
.pool
|
|
_081C4CD4:
|
|
cmp r4, 0x9
|
|
bne _081C4CEC
|
|
ldrb r1, [r5, 0x9]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
mov r2, r8
|
|
_081C4CE4:
|
|
lsrs r1, r2, 24
|
|
bl StartSpriteAnim
|
|
b _081C4D02
|
|
_081C4CEC:
|
|
adds r0, r5, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
adds r1, r6, 0x6
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
bl StartSpriteAnim
|
|
_081C4D02:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x9
|
|
bls _081C4CB4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81C4C84
|
|
|
|
thumb_func_start sub_81C4D18
|
|
sub_81C4D18: @ 81C4D18
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_0203CF1C
|
|
ldr r2, =0x000040d3
|
|
adds r0, r2
|
|
ldr r1, [r1]
|
|
adds r5, r1, r0
|
|
movs r3, 0
|
|
ldr r4, =gSprites
|
|
movs r7, 0x5
|
|
negs r7, r7
|
|
movs r6, 0
|
|
_081C4D32:
|
|
adds r2, r5, r3
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
strh r6, [r0, 0x30]
|
|
ldrb r0, [r2]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
adds r0, r7, 0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x9
|
|
bls _081C4D32
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C4D18
|
|
|
|
thumb_func_start sub_81C4D70
|
|
sub_81C4D70: @ 81C4D70
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
ldr r4, =gUnknown_0203CF28
|
|
movs r0, 0x4
|
|
bl Alloc
|
|
str r0, [r4]
|
|
ldr r1, [r5]
|
|
lsls r0, r1, 20
|
|
lsrs r4, r0, 30
|
|
cmp r4, 0
|
|
bne _081C4DDC
|
|
lsls r0, r1, 30
|
|
lsrs r0, 30
|
|
movs r1, 0x8
|
|
movs r2, 0
|
|
bl SetBgAttribute
|
|
ldr r3, [r5]
|
|
lsls r0, r3, 30
|
|
lsrs r0, 30
|
|
ldr r1, =gUnknown_0861D1A0
|
|
lsls r3, 22
|
|
lsrs r3, 24
|
|
str r4, [sp]
|
|
movs r2, 0
|
|
bl decompress_and_copy_tile_data_to_vram
|
|
ldr r0, [r5]
|
|
lsls r0, 30
|
|
lsrs r0, 30
|
|
ldr r1, =gUnknown_0861DEF4
|
|
movs r2, 0x1
|
|
str r2, [sp]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl decompress_and_copy_tile_data_to_vram
|
|
ldr r1, [r5]
|
|
lsls r1, 22
|
|
lsrs r1, 24
|
|
str r4, [sp]
|
|
movs r2, 0x20
|
|
movs r3, 0x20
|
|
bl sub_8199D3C
|
|
b _081C4E2E
|
|
.pool
|
|
_081C4DDC:
|
|
lsls r0, r1, 30
|
|
lsrs r0, 30
|
|
movs r1, 0x8
|
|
movs r2, 0x2
|
|
bl SetBgAttribute
|
|
ldr r0, [r5]
|
|
lsls r0, 30
|
|
lsrs r0, 30
|
|
movs r1, 0x9
|
|
movs r2, 0x1
|
|
bl SetBgAttribute
|
|
ldr r3, [r5]
|
|
lsls r0, r3, 30
|
|
lsrs r0, 30
|
|
ldr r1, =gUnknown_0861E208
|
|
lsls r3, 22
|
|
lsrs r3, 24
|
|
movs r2, 0
|
|
str r2, [sp]
|
|
bl decompress_and_copy_tile_data_to_vram
|
|
ldr r0, [r5]
|
|
lsls r0, 30
|
|
lsrs r0, 30
|
|
ldr r1, =gUnknown_0861EF64
|
|
movs r4, 0x1
|
|
str r4, [sp]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl decompress_and_copy_tile_data_to_vram
|
|
ldr r1, [r5]
|
|
lsls r1, 22
|
|
lsrs r1, 24
|
|
str r4, [sp]
|
|
movs r2, 0x40
|
|
movs r3, 0x40
|
|
bl sub_8199D3C
|
|
_081C4E2E:
|
|
ldr r0, [r5]
|
|
lsls r0, 30
|
|
lsrs r0, 30
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
ldr r0, [r5]
|
|
lsls r0, 30
|
|
lsrs r0, 30
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
ldr r0, [r5]
|
|
lsls r0, 30
|
|
lsrs r0, 30
|
|
movs r1, 0x4
|
|
movs r2, 0x1
|
|
bl SetBgAttribute
|
|
ldr r0, =gUnknown_0861D140
|
|
ldr r1, =gPlttBufferUnfaded + 0xE0
|
|
ldr r2, =0x04000018
|
|
bl CpuSet
|
|
ldr r0, =gUnknown_0203CF28
|
|
ldr r1, [r0]
|
|
ldr r0, [r5]
|
|
lsls r0, 30
|
|
lsrs r0, 30
|
|
strb r0, [r1]
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C4D70
|
|
|
|
thumb_func_start sub_81C4E90
|
|
sub_81C4E90: @ 81C4E90
|
|
push {lr}
|
|
bl free_temp_tile_data_buffers_if_possible
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _081C4EA0
|
|
movs r0, 0x1
|
|
b _081C4EAC
|
|
_081C4EA0:
|
|
ldr r0, =gUnknown_0203CF28
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
bl ShowBg
|
|
movs r0, 0
|
|
_081C4EAC:
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_81C4E90
|
|
|
|
thumb_func_start sub_81C4EB4
|
|
sub_81C4EB4: @ 81C4EB4
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_0203CF28
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _081C4EC6
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_081C4EC6:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C4EB4
|
|
|
|
thumb_func_start sub_81C4ED0
|
|
sub_81C4ED0: @ 81C4ED0
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldr r0, =gUnknown_0203CF28
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
lsls r1, 8
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C4ED0
|
|
|
|
thumb_func_start sub_81C4EEC
|
|
sub_81C4EEC: @ 81C4EEC
|
|
ldr r1, =gUnknown_0203CF30
|
|
movs r0, 0
|
|
strh r0, [r1, 0x6]
|
|
strh r0, [r1, 0x8]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_81C4EEC
|
|
|
|
thumb_func_start sub_81C4EFC
|
|
sub_81C4EFC: @ 81C4EFC
|
|
push {lr}
|
|
ldr r1, =sub_8086194
|
|
movs r0, 0
|
|
bl sub_81C4F98
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C4EFC
|
|
|
|
thumb_func_start sub_81C4F10
|
|
sub_81C4F10: @ 81C4F10
|
|
push {lr}
|
|
ldr r1, =SetCB2ToReshowScreenAfterMenu2
|
|
movs r0, 0x1
|
|
bl sub_81C4F98
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C4F10
|
|
|
|
thumb_func_start sub_81C4F24
|
|
sub_81C4F24: @ 81C4F24
|
|
push {lr}
|
|
bl ScriptContext2_Enable
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl FadeScreen
|
|
ldr r0, =sub_81C4F44
|
|
movs r1, 0xA
|
|
bl CreateTask
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C4F24
|
|
|
|
thumb_func_start sub_81C4F44
|
|
sub_81C4F44: @ 81C4F44
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _081C4F6E
|
|
bl overworld_free_bg_tilemaps
|
|
ldr r0, =gUnknown_03005DB0
|
|
ldr r1, =hm_add_c3_without_phase_2
|
|
str r1, [r0]
|
|
ldr r1, =c2_exit_to_overworld_2_switch
|
|
movs r0, 0x3
|
|
bl sub_81C4F98
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
_081C4F6E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C4F44
|
|
|
|
thumb_func_start sub_81C4F84
|
|
sub_81C4F84: @ 81C4F84
|
|
push {lr}
|
|
ldr r0, =gUnknown_0203CF30
|
|
ldr r1, [r0]
|
|
movs r0, 0x4
|
|
bl sub_81C4F98
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C4F84
|
|
|
|
thumb_func_start sub_81C4F98
|
|
sub_81C4F98: @ 81C4F98
|
|
push {r4-r6,lr}
|
|
adds r5, r1, 0
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r6, =gUnknown_0203CF2C
|
|
ldr r0, =0x0000098c
|
|
bl AllocZeroed
|
|
str r0, [r6]
|
|
cmp r4, 0x4
|
|
beq _081C4FB2
|
|
ldr r0, =gUnknown_0203CF30
|
|
strb r4, [r0, 0x4]
|
|
_081C4FB2:
|
|
cmp r5, 0
|
|
beq _081C4FBA
|
|
ldr r0, =gUnknown_0203CF30
|
|
str r5, [r0]
|
|
_081C4FBA:
|
|
ldr r0, [r6]
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
ldr r1, =0x00000814
|
|
adds r0, r1
|
|
movs r1, 0xFF
|
|
strb r1, [r0]
|
|
ldr r0, [r6]
|
|
ldr r1, =0x00000816
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
strb r1, [r0]
|
|
ldr r0, [r6]
|
|
ldr r1, =0x00000804
|
|
adds r0, r1
|
|
movs r1, 0xFF
|
|
movs r2, 0xB
|
|
bl memset
|
|
ldr r0, [r6]
|
|
ldr r1, =0x0000080f
|
|
adds r0, r1
|
|
movs r1, 0xFF
|
|
movs r2, 0x5
|
|
bl memset
|
|
ldr r0, =sub_81C504C
|
|
bl SetMainCallback2
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C4F98
|
|
|
|
thumb_func_start sub_81C501C
|
|
sub_81C501C: @ 81C501C
|
|
push {lr}
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl do_scheduled_bg_tilemap_copies_to_vram
|
|
bl UpdatePaletteFade
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81C501C
|
|
|
|
thumb_func_start sub_81C5038
|
|
sub_81C5038: @ 81C5038
|
|
push {lr}
|
|
bl LoadOam
|
|
bl ProcessSpriteCopyRequests
|
|
bl TransferPlttBuffer
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81C5038
|
|
|
|
thumb_func_start sub_81C504C
|
|
sub_81C504C: @ 81C504C
|
|
push {lr}
|
|
_081C504E:
|
|
bl sub_81221EC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _081C5072
|
|
bl sub_81C5078
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _081C5072
|
|
bl sub_81221AC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _081C504E
|
|
_081C5072:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81C504C
|
|
|
|
thumb_func_start sub_81C5078
|
|
sub_81C5078: @ 81C5078
|
|
push {lr}
|
|
sub sp, 0x4
|
|
ldr r0, =gMain
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x10
|
|
bls _081C508C
|
|
b _081C51BC
|
|
_081C508C:
|
|
lsls r0, 2
|
|
ldr r1, =_081C50A0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_081C50A0:
|
|
.4byte _081C50E4
|
|
.4byte _081C50EE
|
|
.4byte _081C50F4
|
|
.4byte _081C50FA
|
|
.4byte _081C510C
|
|
.4byte _081C5112
|
|
.4byte _081C5122
|
|
.4byte _081C513C
|
|
.4byte _081C5148
|
|
.4byte _081C514E
|
|
.4byte _081C515C
|
|
.4byte _081C5162
|
|
.4byte _081C5168
|
|
.4byte _081C516E
|
|
.4byte _081C5174
|
|
.4byte _081C517A
|
|
.4byte _081C5188
|
|
_081C50E4:
|
|
bl SetVBlankHBlankCallbacksToNull
|
|
bl clear_scheduled_bg_copies_to_vram
|
|
b _081C51A2
|
|
_081C50EE:
|
|
bl ScanlineEffect_Stop
|
|
b _081C51A2
|
|
_081C50F4:
|
|
bl FreeAllSpritePalettes
|
|
b _081C51A2
|
|
_081C50FA:
|
|
bl ResetPaletteFade
|
|
ldr r2, =gPaletteFade
|
|
ldrb r0, [r2, 0x8]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
b _081C51A0
|
|
.pool
|
|
_081C510C:
|
|
bl ResetSpriteData
|
|
b _081C51A2
|
|
_081C5112:
|
|
bl sub_81221AC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _081C51A2
|
|
bl ResetTasks
|
|
b _081C51A2
|
|
_081C5122:
|
|
bl sub_81C51DC
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00000984
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
b _081C51A2
|
|
.pool
|
|
_081C513C:
|
|
bl sub_81C5238
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _081C51D4
|
|
b _081C51A2
|
|
_081C5148:
|
|
bl sub_81C6BD8
|
|
b _081C51A2
|
|
_081C514E:
|
|
bl sub_81C5924
|
|
bl sub_81C59BC
|
|
bl sub_81C5A20
|
|
b _081C51A2
|
|
_081C515C:
|
|
bl sub_81C5314
|
|
b _081C51A2
|
|
_081C5162:
|
|
bl sub_81C56F8
|
|
b _081C51A2
|
|
_081C5168:
|
|
bl sub_81C6EF4
|
|
b _081C51A2
|
|
_081C516E:
|
|
bl sub_81C5674
|
|
b _081C51A2
|
|
_081C5174:
|
|
bl sub_81C700C
|
|
b _081C51A2
|
|
_081C517A:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0x10
|
|
movs r2, 0
|
|
bl BlendPalettes
|
|
b _081C51A2
|
|
_081C5188:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
ldr r2, =gPaletteFade
|
|
ldrb r1, [r2, 0x8]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
_081C51A0:
|
|
strb r0, [r2, 0x8]
|
|
_081C51A2:
|
|
ldr r1, =gMain
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _081C51D4
|
|
.pool
|
|
_081C51BC:
|
|
ldr r0, =sub_81C5038
|
|
bl SetVBlankCallback
|
|
ldr r0, =sub_81C501C
|
|
bl SetMainCallback2
|
|
movs r0, 0x1
|
|
b _081C51D6
|
|
.pool
|
|
_081C51D4:
|
|
movs r0, 0
|
|
_081C51D6:
|
|
add sp, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81C5078
|
|
|
|
thumb_func_start sub_81C51DC
|
|
sub_81C51DC: @ 81C51DC
|
|
push {lr}
|
|
bl ResetVramOamAndBgCntRegs
|
|
movs r0, 0
|
|
bl ResetBgsAndClearDma3BusyFlags
|
|
ldr r1, =gUnknown_0861F2B4
|
|
movs r0, 0
|
|
movs r2, 0x3
|
|
bl InitBgsFromTemplates
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r1, [r0]
|
|
adds r1, 0x4
|
|
movs r0, 0x2
|
|
bl SetBgTilemapBuffer
|
|
bl ResetAllBgsCoordinates
|
|
movs r0, 0x2
|
|
bl schedule_bg_copy_tilemap_to_vram
|
|
movs r1, 0x82
|
|
lsls r1, 5
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
movs r0, 0x2
|
|
bl ShowBg
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C51DC
|
|
|
|
thumb_func_start sub_81C5238
|
|
sub_81C5238: @ 81C5238
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r4, =gUnknown_0203CF2C
|
|
ldr r0, [r4]
|
|
ldr r1, =0x00000984
|
|
adds r0, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0x4
|
|
bhi _081C52F0
|
|
lsls r0, 2
|
|
ldr r1, =_081C5264
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_081C5264:
|
|
.4byte _081C5278
|
|
.4byte _081C5294
|
|
.4byte _081C52B8
|
|
.4byte _081C52C8
|
|
.4byte _081C52D4
|
|
_081C5278:
|
|
bl reset_temp_tile_data_buffers
|
|
ldr r1, =gBagScreen_Gfx
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x2
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl decompress_and_copy_tile_data_to_vram
|
|
b _081C52D8
|
|
.pool
|
|
_081C5294:
|
|
bl free_temp_tile_data_buffers_if_possible
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _081C5308
|
|
ldr r0, =gUnknown_08D9AE04
|
|
ldr r4, =gUnknown_0203CF2C
|
|
ldr r1, [r4]
|
|
adds r1, 0x4
|
|
bl LZDecompressWram
|
|
ldr r1, [r4]
|
|
b _081C52DC
|
|
.pool
|
|
_081C52B8:
|
|
ldr r0, =gUnknown_08D9AF44
|
|
movs r1, 0
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
b _081C52D8
|
|
.pool
|
|
_081C52C8:
|
|
ldr r0, =gUnknown_0861F3CC
|
|
bl LoadCompressedObjectPic
|
|
b _081C52D8
|
|
.pool
|
|
_081C52D4:
|
|
bl sub_81C6E98
|
|
_081C52D8:
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r1, [r0]
|
|
_081C52DC:
|
|
ldr r0, =0x00000984
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
b _081C5308
|
|
.pool
|
|
_081C52F0:
|
|
bl LoadListMenuArrowsGfx
|
|
ldr r0, [r4]
|
|
ldr r1, =0x00000984
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
movs r0, 0x1
|
|
b _081C530A
|
|
.pool
|
|
_081C5308:
|
|
movs r0, 0
|
|
_081C530A:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81C5238
|
|
|
|
thumb_func_start sub_81C5314
|
|
sub_81C5314: @ 81C5314
|
|
push {r4-r7,lr}
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r2, [r0]
|
|
ldr r1, =0x00000ca9
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
lsls r1, 30
|
|
lsrs r1, 30
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r3, =0x00000e2c
|
|
adds r0, r3
|
|
adds r7, r2, r0
|
|
movs r6, 0
|
|
ldr r1, =gUnknown_0203CF2C
|
|
ldr r0, [r1]
|
|
ldr r4, =0x00000821
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
cmp r6, r0
|
|
bge _081C5382
|
|
adds r5, r1, 0
|
|
_081C5344:
|
|
lsls r1, r6, 1
|
|
adds r4, r1, r6
|
|
lsls r4, 3
|
|
ldr r0, =0x0000087c
|
|
adds r4, r0
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
adds r1, r7
|
|
ldrh r1, [r1]
|
|
bl sub_81C540C
|
|
ldr r1, [r5]
|
|
lsls r2, r6, 3
|
|
ldr r3, =0x00000824
|
|
adds r0, r1, r3
|
|
adds r0, r2
|
|
adds r4, r1, r4
|
|
str r4, [r0]
|
|
ldr r4, =0x00000828
|
|
adds r0, r1, r4
|
|
adds r0, r2
|
|
str r6, [r0]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldr r0, =0x00000821
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
subs r0, 0x1
|
|
cmp r6, r0
|
|
blt _081C5344
|
|
_081C5382:
|
|
ldr r5, =gUnknown_0203CF2C
|
|
lsls r4, r6, 1
|
|
adds r4, r6
|
|
lsls r4, 3
|
|
ldr r1, =0x0000087c
|
|
adds r4, r1
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
ldr r1, =gText_CloseBag
|
|
bl StringCopy
|
|
ldr r1, [r5]
|
|
lsls r2, r6, 3
|
|
ldr r3, =0x00000824
|
|
adds r0, r1, r3
|
|
adds r0, r2
|
|
adds r4, r1, r4
|
|
str r4, [r0]
|
|
ldr r4, =0x00000828
|
|
adds r1, r4
|
|
adds r1, r2
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
str r0, [r1]
|
|
ldr r2, =gMultiuseListMenuTemplate
|
|
adds r1, r2, 0
|
|
ldr r0, =gUnknown_0861F2C0
|
|
ldm r0!, {r4,r6,r7}
|
|
stm r1!, {r4,r6,r7}
|
|
ldm r0!, {r4,r6,r7}
|
|
stm r1!, {r4,r6,r7}
|
|
ldr r1, [r5]
|
|
ldr r6, =0x00000821
|
|
adds r0, r1, r6
|
|
ldrb r0, [r0]
|
|
strh r0, [r2, 0xC]
|
|
adds r3, r1, r3
|
|
str r3, [r2]
|
|
ldr r7, =0x00000822
|
|
adds r1, r7
|
|
ldrb r0, [r1]
|
|
strh r0, [r2, 0xE]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C5314
|
|
|
|
thumb_func_start sub_81C540C
|
|
sub_81C540C: @ 81C540C
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
lsls r1, 16
|
|
lsrs r4, r1, 16
|
|
adds r0, r4, 0
|
|
bl ItemId_GetPocket
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x4
|
|
bne _081C5450
|
|
ldr r0, =gStringVar1
|
|
adds r1, r4, 0
|
|
subs r1, 0x84
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r1, =gStringVar2
|
|
adds r0, r4, 0
|
|
bl CopyItemName
|
|
ldr r1, =gText_UnkF908Var1Clear7Var2
|
|
adds r0, r5, 0
|
|
bl StringExpandPlaceholders
|
|
b _081C5458
|
|
.pool
|
|
_081C5450:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl CopyItemName
|
|
_081C5458:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81C540C
|
|
|
|
thumb_func_start sub_81C5460
|
|
sub_81C5460: @ 81C5460
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
cmp r1, 0x1
|
|
beq _081C5476
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
bl sub_81C6F20
|
|
_081C5476:
|
|
ldr r5, =gUnknown_0203CF2C
|
|
ldr r1, [r5]
|
|
ldr r2, =0x00000814
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xFF
|
|
bne _081C5504
|
|
adds r2, 0x1
|
|
adds r0, r1, r2
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
eors r0, r1
|
|
bl sub_81C6FF8
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
cmp r4, r0
|
|
beq _081C54E0
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r2, [r0]
|
|
lsls r3, r4, 1
|
|
ldr r1, =0x00000ca9
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
lsls r1, 30
|
|
lsrs r1, 30
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r3, r0
|
|
ldr r0, =0x00000e2c
|
|
adds r2, r0
|
|
adds r2, r3
|
|
ldrh r0, [r2]
|
|
ldr r1, [r5]
|
|
ldr r2, =0x00000815
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
bl sub_81C6F90
|
|
b _081C54EE
|
|
.pool
|
|
_081C54E0:
|
|
ldr r0, =0x0000ffff
|
|
ldr r1, [r5]
|
|
ldr r2, =0x00000815
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
bl sub_81C6F90
|
|
_081C54EE:
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r1, [r0]
|
|
ldr r0, =0x00000815
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
movs r2, 0x1
|
|
eors r0, r2
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl sub_81C55D8
|
|
_081C5504:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C5460
|
|
|
|
thumb_func_start sub_81C5518
|
|
sub_81C5518: @ 81C5518
|
|
push {r4-r6,lr}
|
|
sub sp, 0x10
|
|
adds r4, r1, 0
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r2, 24
|
|
lsrs r5, r2, 24
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
cmp r4, r0
|
|
beq _081C55B8
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00000814
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
cmp r1, 0xFF
|
|
beq _081C5560
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
cmp r1, r0
|
|
bne _081C5558
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl sub_81C5AB8
|
|
b _081C5560
|
|
.pool
|
|
_081C5558:
|
|
adds r0, r5, 0
|
|
movs r1, 0xFF
|
|
bl sub_81C5AB8
|
|
_081C5560:
|
|
ldr r0, =gStringVar1
|
|
ldr r1, =gSaveBlock2Ptr
|
|
ldr r3, [r1]
|
|
ldr r2, =0x00000ca9
|
|
adds r1, r3, r2
|
|
ldrb r2, [r1]
|
|
lsls r2, 30
|
|
lsrs r2, 30
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 1
|
|
adds r1, r4, r1
|
|
ldr r2, =0x00000e54
|
|
adds r3, r2
|
|
adds r3, r1
|
|
ldrb r1, [r3]
|
|
movs r2, 0x1
|
|
movs r3, 0x2
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gText_xVar1
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
movs r0, 0x7
|
|
adds r1, r4, 0
|
|
movs r2, 0x77
|
|
bl GetStringRightAlignXOffset
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
str r1, [sp, 0x4]
|
|
movs r0, 0xFF
|
|
str r0, [sp, 0x8]
|
|
str r1, [sp, 0xC]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
adds r3, r5, 0
|
|
bl sub_81C6C94
|
|
_081C55B8:
|
|
add sp, 0x10
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C5518
|
|
|
|
thumb_func_start sub_81C55D8
|
|
sub_81C55D8: @ 81C55D8
|
|
push {r4,lr}
|
|
sub sp, 0x10
|
|
adds r3, r0, 0
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
cmp r3, r0
|
|
beq _081C561C
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r2, [r0]
|
|
lsls r3, 1
|
|
ldr r1, =0x00000ca9
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
lsls r1, 30
|
|
lsrs r1, 30
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r3, r0
|
|
ldr r0, =0x00000e2c
|
|
adds r2, r0
|
|
adds r2, r3
|
|
ldrh r0, [r2]
|
|
bl ItemId_GetDescription
|
|
adds r4, r0, 0
|
|
b _081C5638
|
|
.pool
|
|
_081C561C:
|
|
ldr r0, =gStringVar1
|
|
ldr r2, =gReturnToXStringsTable2
|
|
ldr r1, =gUnknown_0203CF30
|
|
ldrb r1, [r1, 0x4]
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
bl StringCopy
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gText_ReturnToVar1
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
_081C5638:
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x4]
|
|
str r1, [sp, 0x8]
|
|
str r1, [sp, 0xC]
|
|
adds r1, r4, 0
|
|
movs r2, 0x3
|
|
movs r3, 0
|
|
bl sub_81C6C3C
|
|
add sp, 0x10
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C55D8
|
|
|
|
thumb_func_start sub_81C5674
|
|
sub_81C5674: @ 81C5674
|
|
push {r4,lr}
|
|
sub sp, 0x10
|
|
ldr r4, =gUnknown_0203CF2C
|
|
ldr r1, [r4]
|
|
ldr r2, =0x00000816
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xFF
|
|
bne _081C56B4
|
|
adds r2, 0xB
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
adds r2, 0x1
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
subs r0, r1
|
|
str r0, [sp]
|
|
ldr r0, =0x00000b5e
|
|
str r0, [sp, 0x4]
|
|
str r0, [sp, 0x8]
|
|
ldr r0, =gUnknown_0203CF38
|
|
str r0, [sp, 0xC]
|
|
movs r0, 0x2
|
|
movs r1, 0xAC
|
|
movs r2, 0xC
|
|
movs r3, 0x94
|
|
bl AddScrollIndicatorArrowPairParametrized
|
|
ldr r1, [r4]
|
|
ldr r2, =0x00000816
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
_081C56B4:
|
|
add sp, 0x10
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C5674
|
|
|
|
thumb_func_start sub_81C56CC
|
|
sub_81C56CC: @ 81C56CC
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_0203CF2C
|
|
ldr r0, [r4]
|
|
ldr r2, =0x00000816
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xFF
|
|
beq _081C56EA
|
|
bl RemoveScrollIndicatorArrowPair
|
|
ldr r0, [r4]
|
|
ldr r1, =0x00000816
|
|
adds r0, r1
|
|
movs r1, 0xFF
|
|
strb r1, [r0]
|
|
_081C56EA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C56CC
|
|
|
|
thumb_func_start sub_81C56F8
|
|
sub_81C56F8: @ 81C56F8
|
|
push {r4,lr}
|
|
ldr r0, =sub_81C5BC8
|
|
movs r1, 0
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, r0, 2
|
|
adds r4, r0
|
|
lsls r4, 3
|
|
ldr r0, =gTasks + 0x8
|
|
adds r4, r0
|
|
ldr r0, =gMultiuseListMenuTemplate
|
|
ldr r2, =gUnknown_0203CF30
|
|
ldrh r1, [r2, 0x8]
|
|
ldrh r2, [r2, 0x6]
|
|
bl ListMenuInit
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C56F8
|
|
|
|
thumb_func_start sub_81C5738
|
|
sub_81C5738: @ 81C5738
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r2, =gSaveBlock2Ptr
|
|
ldr r6, [r2]
|
|
ldr r3, =0x00000ca9
|
|
adds r2, r6, r3
|
|
ldrb r3, [r2]
|
|
lsls r3, 30
|
|
lsrs r2, r3, 30
|
|
lsls r4, r2, 2
|
|
adds r4, r2
|
|
lsls r4, 2
|
|
ldr r2, =0x00000e2c
|
|
adds r4, r2
|
|
adds r4, r6, r4
|
|
lsrs r3, 30
|
|
lsls r2, r3, 2
|
|
adds r2, r3
|
|
lsls r2, 1
|
|
ldr r3, =0x00000e54
|
|
adds r2, r3
|
|
adds r6, r2
|
|
lsls r5, r0, 1
|
|
adds r5, r4
|
|
ldrh r2, [r5]
|
|
mov r8, r2
|
|
lsls r2, r1, 1
|
|
adds r2, r4
|
|
ldrh r3, [r2]
|
|
strh r3, [r5]
|
|
mov r3, r8
|
|
strh r3, [r2]
|
|
adds r0, r6, r0
|
|
ldrb r2, [r0]
|
|
adds r6, r1
|
|
ldrb r1, [r6]
|
|
strb r1, [r0]
|
|
strb r2, [r6]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C5738
|
|
|
|
thumb_func_start sub_81C57A8
|
|
sub_81C57A8: @ 81C57A8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r7, r4, 0
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r3, [r0]
|
|
ldr r1, =0x00000ca9
|
|
adds r0, r3, r1
|
|
ldrb r1, [r0]
|
|
lsls r1, 30
|
|
lsrs r2, r1, 30
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, =0x00000e2c
|
|
adds r0, r2
|
|
adds r6, r3, r0
|
|
lsrs r1, 30
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
ldr r1, =0x00000e54
|
|
adds r0, r1
|
|
adds r3, r0
|
|
cmp r4, r5
|
|
beq _081C5862
|
|
lsls r0, r4, 1
|
|
adds r0, r6
|
|
ldrh r0, [r0]
|
|
mov r12, r0
|
|
adds r0, r3, r4
|
|
ldrb r0, [r0]
|
|
mov r8, r0
|
|
cmp r5, r4
|
|
bls _081C5830
|
|
subs r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r2, r4, 16
|
|
cmp r4, r5
|
|
bge _081C5854
|
|
_081C5802:
|
|
asrs r2, 16
|
|
lsls r0, r2, 1
|
|
adds r0, r6
|
|
ldrh r1, [r0, 0x2]
|
|
strh r1, [r0]
|
|
adds r1, r3, r2
|
|
ldrb r0, [r1, 0x1]
|
|
strb r0, [r1]
|
|
adds r2, 0x1
|
|
lsls r2, 16
|
|
asrs r0, r2, 16
|
|
cmp r0, r5
|
|
blt _081C5802
|
|
b _081C5854
|
|
.pool
|
|
_081C5830:
|
|
lsls r2, r7, 16
|
|
cmp r7, r5
|
|
ble _081C5854
|
|
_081C5836:
|
|
asrs r2, 16
|
|
lsls r1, r2, 1
|
|
adds r1, r6
|
|
subs r0, r1, 0x2
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
adds r1, r3, r2
|
|
subs r0, r1, 0x1
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
subs r2, 0x1
|
|
lsls r2, 16
|
|
asrs r0, r2, 16
|
|
cmp r0, r5
|
|
bgt _081C5836
|
|
_081C5854:
|
|
lsls r0, r5, 1
|
|
adds r0, r6
|
|
mov r2, r12
|
|
strh r2, [r0]
|
|
adds r0, r3, r5
|
|
mov r1, r8
|
|
strb r1, [r0]
|
|
_081C5862:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81C57A8
|
|
|
|
thumb_func_start sub_81C586C
|
|
sub_81C586C: @ 81C586C
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r3, [r0]
|
|
ldr r1, =0x00000ca9
|
|
adds r0, r3, r1
|
|
ldrb r1, [r0]
|
|
lsls r1, 30
|
|
lsrs r2, r1, 30
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, =0x00000e2c
|
|
adds r0, r2
|
|
adds r0, r3
|
|
mov r9, r0
|
|
lsrs r1, 30
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
ldr r4, =0x00000e54
|
|
adds r0, r4
|
|
adds r3, r0
|
|
mov r8, r3
|
|
movs r5, 0
|
|
movs r3, 0
|
|
_081C58A4:
|
|
lsls r0, r5, 1
|
|
mov r1, r9
|
|
adds r2, r0, r1
|
|
ldrh r0, [r2]
|
|
mov r4, r8
|
|
adds r1, r4, r5
|
|
cmp r0, 0
|
|
beq _081C58BA
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _081C58BE
|
|
_081C58BA:
|
|
strh r3, [r2]
|
|
strb r3, [r1]
|
|
_081C58BE:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x9
|
|
bls _081C58A4
|
|
movs r5, 0
|
|
_081C58CA:
|
|
adds r1, r5, 0x1
|
|
lsls r0, r1, 24
|
|
lsrs r4, r0, 24
|
|
adds r7, r1, 0
|
|
cmp r4, 0x9
|
|
bhi _081C58FE
|
|
lsls r0, r5, 1
|
|
mov r1, r9
|
|
adds r6, r0, r1
|
|
_081C58DC:
|
|
ldrh r0, [r6]
|
|
cmp r0, 0
|
|
beq _081C58EC
|
|
mov r2, r8
|
|
adds r0, r2, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _081C58F4
|
|
_081C58EC:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_81C5738
|
|
_081C58F4:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x9
|
|
bls _081C58DC
|
|
_081C58FE:
|
|
lsls r0, r7, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x8
|
|
bls _081C58CA
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C586C
|
|
|
|
thumb_func_start sub_81C5924
|
|
sub_81C5924: @ 81C5924
|
|
push {r4-r6,lr}
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r2, [r0]
|
|
ldr r1, =0x00000ca9
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
lsls r1, 30
|
|
lsrs r1, 30
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =0x00000e2c
|
|
adds r0, r1
|
|
adds r5, r2, r0
|
|
bl sub_81C586C
|
|
ldr r3, =gUnknown_0203CF2C
|
|
ldr r0, [r3]
|
|
ldr r2, =0x00000821
|
|
adds r0, r2
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
movs r4, 0
|
|
adds r6, r3, 0
|
|
_081C5954:
|
|
lsls r0, r4, 1
|
|
adds r0, r5
|
|
ldrh r0, [r0]
|
|
ldr r3, =gUnknown_0203CF2C
|
|
cmp r0, 0
|
|
beq _081C596A
|
|
ldr r1, [r6]
|
|
adds r1, r2
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_081C596A:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0x9
|
|
bls _081C5954
|
|
ldr r0, [r3]
|
|
ldr r2, =0x00000821
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
adds r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r0, [r3]
|
|
adds r2, r0, r2
|
|
ldrb r2, [r2]
|
|
cmp r2, 0x8
|
|
bls _081C59AC
|
|
ldr r2, =0x00000822
|
|
adds r1, r0, r2
|
|
movs r0, 0x8
|
|
strb r0, [r1]
|
|
b _081C59B2
|
|
.pool
|
|
_081C59AC:
|
|
ldr r1, =0x00000822
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
_081C59B2:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C5924
|
|
|
|
thumb_func_start sub_81C59BC
|
|
sub_81C59BC: @ 81C59BC
|
|
push {r4,r5,lr}
|
|
ldr r0, =gUnknown_0203CF30
|
|
ldrh r1, [r0, 0x8]
|
|
adds r3, r0, 0
|
|
ldr r4, =gUnknown_0203CF2C
|
|
cmp r1, 0
|
|
beq _081C59E4
|
|
ldrh r0, [r3, 0x8]
|
|
ldr r1, [r4]
|
|
ldr r5, =0x00000822
|
|
adds r2, r1, r5
|
|
ldrb r2, [r2]
|
|
adds r0, r2
|
|
subs r5, 0x1
|
|
adds r1, r5
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
ble _081C59E4
|
|
subs r0, r1, r2
|
|
strh r0, [r3, 0x8]
|
|
_081C59E4:
|
|
adds r2, r3, 0
|
|
ldrh r1, [r2, 0x8]
|
|
ldrh r0, [r2, 0x6]
|
|
adds r1, r0
|
|
ldr r0, [r4]
|
|
ldr r4, =0x00000821
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
blt _081C5A18
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
bne _081C5A14
|
|
strh r1, [r2, 0x6]
|
|
b _081C5A18
|
|
.pool
|
|
_081C5A14:
|
|
subs r0, 0x1
|
|
strh r0, [r3, 0x6]
|
|
_081C5A18:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81C59BC
|
|
|
|
thumb_func_start sub_81C5A20
|
|
sub_81C5A20: @ 81C5A20
|
|
push {r4-r7,lr}
|
|
ldr r0, =gUnknown_0203CF30
|
|
ldrh r1, [r0, 0x6]
|
|
adds r5, r0, 0
|
|
cmp r1, 0x4
|
|
bls _081C5A80
|
|
movs r4, 0
|
|
ldrh r0, [r5, 0x6]
|
|
subs r0, 0x4
|
|
cmp r4, r0
|
|
bgt _081C5A80
|
|
ldrh r2, [r5, 0x8]
|
|
ldr r6, =gUnknown_0203CF2C
|
|
ldr r0, [r6]
|
|
ldr r3, =0x00000822
|
|
adds r1, r0, r3
|
|
ldrb r1, [r1]
|
|
adds r2, r1
|
|
ldr r7, =0x00000821
|
|
adds r0, r7
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
beq _081C5A80
|
|
adds r3, r5, 0
|
|
_081C5A50:
|
|
ldrh r0, [r3, 0x6]
|
|
subs r0, 0x1
|
|
strh r0, [r3, 0x6]
|
|
ldrh r0, [r3, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x8]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldrh r0, [r3, 0x6]
|
|
subs r0, 0x4
|
|
cmp r4, r0
|
|
bgt _081C5A80
|
|
ldrh r2, [r5, 0x8]
|
|
ldr r1, [r6]
|
|
ldr r7, =0x00000822
|
|
adds r0, r1, r7
|
|
ldrb r0, [r0]
|
|
adds r2, r0
|
|
ldr r0, =0x00000821
|
|
adds r1, r0
|
|
ldrb r1, [r1]
|
|
cmp r2, r1
|
|
bne _081C5A50
|
|
_081C5A80:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C5A20
|
|
|
|
thumb_func_start sub_81C5A98
|
|
sub_81C5A98: @ 81C5A98
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl ListMenuGetYCoordForPrintingArrowCursor
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r4, 0
|
|
bl sub_81C5AB8
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81C5A98
|
|
|
|
thumb_func_start sub_81C5AB8
|
|
sub_81C5AB8: @ 81C5AB8
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r1, 24
|
|
lsrs r2, r1, 24
|
|
cmp r2, 0xFF
|
|
bne _081C5AF4
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl GetMenuCursorDimensionByFont
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
bl GetMenuCursorDimensionByFont
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r4, [sp]
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
adds r3, r5, 0
|
|
bl FillWindowPixelRect
|
|
b _081C5B08
|
|
_081C5AF4:
|
|
ldr r1, =gText_SelectorArrow2
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
str r0, [sp, 0x4]
|
|
str r0, [sp, 0x8]
|
|
str r2, [sp, 0xC]
|
|
movs r2, 0
|
|
adds r3, r5, 0
|
|
bl sub_81C6C3C
|
|
_081C5B08:
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C5AB8
|
|
|
|
thumb_func_start sub_81C5B14
|
|
sub_81C5B14: @ 81C5B14
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r1, =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, =sub_81C5B4C
|
|
str r1, [r0]
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C5B14
|
|
|
|
thumb_func_start sub_81C5B4C
|
|
sub_81C5B4C: @ 81C5B4C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, =gTasks + 0x8
|
|
adds r2, r0, r1
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _081C5BBC
|
|
ldrb r0, [r2]
|
|
ldr r4, =gUnknown_0203CF38
|
|
subs r2, r4, 0x2
|
|
adds r1, r4, 0
|
|
bl sub_81AE6C8
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _081C5B94
|
|
bl SetMainCallback2
|
|
b _081C5B9E
|
|
.pool
|
|
_081C5B94:
|
|
adds r0, r4, 0
|
|
subs r0, 0x8
|
|
ldr r0, [r0]
|
|
bl SetMainCallback2
|
|
_081C5B9E:
|
|
bl sub_81C56CC
|
|
bl ResetSpriteData
|
|
bl FreeAllSpritePalettes
|
|
bl FreeAllWindowBuffers
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r0, [r0]
|
|
bl Free
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
_081C5BBC:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C5B4C
|
|
|
|
thumb_func_start sub_81C5BC8
|
|
sub_81C5BC8: @ 81C5BC8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, =gTasks + 0x8
|
|
adds r7, r0, r1
|
|
bl sub_81221EC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _081C5BEA
|
|
b _081C5D16
|
|
_081C5BEA:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _081C5BF8
|
|
b _081C5D16
|
|
_081C5BF8:
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0
|
|
beq _081C5C5C
|
|
ldr r4, =gUnknown_0203CF30
|
|
ldrb r0, [r4, 0x4]
|
|
cmp r0, 0x2
|
|
bne _081C5C12
|
|
b _081C5D16
|
|
_081C5C12:
|
|
ldrb r0, [r7]
|
|
adds r1, r4, 0
|
|
adds r1, 0x8
|
|
adds r2, r4, 0x6
|
|
bl sub_81AE860
|
|
ldrh r1, [r4, 0x8]
|
|
ldrh r0, [r4, 0x6]
|
|
adds r1, r0
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r0, [r0]
|
|
ldr r2, =0x00000821
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
cmp r1, r0
|
|
beq _081C5D16
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
adds r0, r5, 0
|
|
bl sub_81C67CC
|
|
b _081C5D16
|
|
.pool
|
|
_081C5C5C:
|
|
ldrb r0, [r7]
|
|
bl ListMenuHandleInputGetItemId
|
|
adds r6, r0, 0
|
|
ldrb r0, [r7]
|
|
ldr r1, =gUnknown_0203CF38
|
|
mov r8, r1
|
|
mov r2, r8
|
|
subs r2, 0x2
|
|
bl sub_81AE860
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
cmp r6, r0
|
|
beq _081C5C88
|
|
adds r0, 0x1
|
|
cmp r6, r0
|
|
bne _081C5CA0
|
|
b _081C5D16
|
|
.pool
|
|
_081C5C88:
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
ldr r0, =gSpecialVar_ItemId
|
|
strh r4, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_81C5B14
|
|
b _081C5D16
|
|
.pool
|
|
_081C5CA0:
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
ldr r2, =gSpecialVar_ItemId
|
|
mov r12, r2
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r2, [r0]
|
|
lsls r3, r6, 1
|
|
ldr r0, =0x00000ca9
|
|
adds r4, r2, r0
|
|
ldrb r1, [r4]
|
|
lsls r1, 30
|
|
lsrs r1, 30
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r3, r0
|
|
ldr r1, =0x00000e2c
|
|
adds r0, r2, r1
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
mov r1, r12
|
|
strh r0, [r1]
|
|
strh r6, [r7, 0x2]
|
|
ldrb r1, [r4]
|
|
lsls r1, 30
|
|
lsrs r1, 30
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
adds r0, r6, r0
|
|
ldr r1, =0x00000e54
|
|
adds r2, r1
|
|
adds r2, r0
|
|
ldrb r0, [r2]
|
|
strh r0, [r7, 0x4]
|
|
mov r0, r8
|
|
subs r0, 0x8
|
|
ldrb r0, [r0, 0x4]
|
|
cmp r0, 0x2
|
|
bne _081C5D10
|
|
adds r0, r5, 0
|
|
bl sub_81C674C
|
|
b _081C5D16
|
|
.pool
|
|
_081C5D10:
|
|
adds r0, r5, 0
|
|
bl sub_81C5D20
|
|
_081C5D16:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81C5BC8
|
|
|
|
thumb_func_start sub_81C5D20
|
|
sub_81C5D20: @ 81C5D20
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r4, r5, 2
|
|
adds r4, r5
|
|
lsls r4, 3
|
|
ldr r0, =gTasks + 0x8
|
|
adds r4, r0
|
|
bl sub_81C56CC
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_81C5A98
|
|
ldr r0, =gUnknown_0203CF30
|
|
ldrb r4, [r0, 0x4]
|
|
cmp r4, 0x1
|
|
beq _081C5D74
|
|
cmp r4, 0x3
|
|
beq _081C5DC4
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r1, [r0]
|
|
ldr r0, =0x00000818
|
|
adds r2, r1, r0
|
|
ldr r0, =gUnknown_0861F308
|
|
str r0, [r2]
|
|
movs r0, 0x82
|
|
lsls r0, 4
|
|
adds r1, r0
|
|
movs r0, 0x4
|
|
b _081C5DD8
|
|
.pool
|
|
_081C5D74:
|
|
ldr r0, =gSpecialVar_ItemId
|
|
ldrh r0, [r0]
|
|
bl ItemId_GetBattleUsage
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _081C5DA0
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r1, [r0]
|
|
ldr r0, =0x00000818
|
|
adds r2, r1, r0
|
|
ldr r0, =gUnknown_0861F30E
|
|
b _081C5DCE
|
|
.pool
|
|
_081C5DA0:
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00000818
|
|
adds r2, r0, r1
|
|
ldr r1, =gUnknown_0861F310
|
|
str r1, [r2]
|
|
movs r1, 0x82
|
|
lsls r1, 4
|
|
adds r0, r1
|
|
strb r4, [r0]
|
|
b _081C5DDA
|
|
.pool
|
|
_081C5DC4:
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r1, [r0]
|
|
ldr r0, =0x00000818
|
|
adds r2, r1, r0
|
|
ldr r0, =gUnknown_0861F30C
|
|
_081C5DCE:
|
|
str r0, [r2]
|
|
movs r0, 0x82
|
|
lsls r0, 4
|
|
adds r1, r0
|
|
movs r0, 0x2
|
|
_081C5DD8:
|
|
strb r0, [r1]
|
|
_081C5DDA:
|
|
ldr r0, =gSpecialVar_ItemId
|
|
ldrh r0, [r0]
|
|
ldr r1, =gStringVar1
|
|
bl CopyItemName
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gText_Var1IsSelected
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x4]
|
|
str r1, [sp, 0x8]
|
|
str r1, [sp, 0xC]
|
|
adds r1, r4, 0
|
|
movs r2, 0x3
|
|
movs r3, 0
|
|
bl sub_81C6C3C
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r0, [r0]
|
|
movs r1, 0x82
|
|
lsls r1, 4
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _081C5E3C
|
|
movs r0, 0
|
|
b _081C5E42
|
|
.pool
|
|
_081C5E3C:
|
|
cmp r0, 0x2
|
|
bne _081C5E50
|
|
movs r0, 0x1
|
|
_081C5E42:
|
|
bl sub_81C6D24
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_81C5EAC
|
|
b _081C5E62
|
|
_081C5E50:
|
|
movs r0, 0x2
|
|
bl sub_81C6D24
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x2
|
|
movs r2, 0x2
|
|
bl sub_81C5F08
|
|
_081C5E62:
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r0, [r0]
|
|
movs r1, 0x82
|
|
lsls r1, 4
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x4
|
|
bne _081C5E8C
|
|
ldr r0, =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, =sub_81C5FE4
|
|
b _081C5E98
|
|
.pool
|
|
_081C5E8C:
|
|
ldr r0, =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, =sub_81C5F68
|
|
_081C5E98:
|
|
str r0, [r1]
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C5D20
|
|
|
|
thumb_func_start sub_81C5EAC
|
|
sub_81C5EAC: @ 81C5EAC
|
|
push {r4-r6,lr}
|
|
sub sp, 0x14
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x10
|
|
str r0, [sp, 0x4]
|
|
ldr r6, =gUnknown_0203CF2C
|
|
ldr r1, [r6]
|
|
movs r5, 0x82
|
|
lsls r5, 4
|
|
adds r0, r1, r5
|
|
ldrb r0, [r0]
|
|
str r0, [sp, 0x8]
|
|
ldr r0, =gUnknown_0861F2D8
|
|
str r0, [sp, 0xC]
|
|
ldr r0, =0x00000818
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
str r0, [sp, 0x10]
|
|
adds r0, r4, 0
|
|
movs r1, 0x7
|
|
movs r2, 0x8
|
|
movs r3, 0x1
|
|
bl AddItemMenuActionTextPrinters
|
|
ldr r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
|
|
add sp, 0x14
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C5EAC
|
|
|
|
thumb_func_start sub_81C5F08
|
|
sub_81C5F08: @ 81C5F08
|
|
push {r4-r6,lr}
|
|
sub sp, 0x14
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
movs r0, 0x38
|
|
str r0, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
ldr r0, =gUnknown_0861F2D8
|
|
str r0, [sp, 0xC]
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00000818
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0x10]
|
|
adds r0, r4, 0
|
|
movs r1, 0x7
|
|
movs r2, 0x8
|
|
movs r3, 0x1
|
|
bl sub_8198DBC
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r1, 0x38
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl sub_8199944
|
|
add sp, 0x14
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C5F08
|
|
|
|
thumb_func_start sub_81C5F68
|
|
sub_81C5F68: @ 81C5F68
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r6, r5, 0
|
|
bl sub_81221EC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _081C5FD0
|
|
bl ProcessMenuInputNoWrapAround
|
|
lsls r0, 24
|
|
asrs r4, r0, 24
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
cmp r4, r0
|
|
beq _081C5FD0
|
|
adds r0, 0x1
|
|
cmp r4, r0
|
|
bne _081C5FA8
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
ldr r0, =gUnknown_0861F2D8
|
|
ldr r1, [r0, 0x1C]
|
|
adds r0, r5, 0
|
|
bl _call_via_r1
|
|
b _081C5FD0
|
|
.pool
|
|
_081C5FA8:
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
ldr r1, =gUnknown_0861F2D8
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r0, [r0]
|
|
ldr r2, =0x00000818
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
lsls r0, 3
|
|
adds r1, 0x4
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
cmp r1, 0
|
|
beq _081C5FD0
|
|
adds r0, r6, 0
|
|
bl _call_via_r1
|
|
_081C5FD0:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C5F68
|
|
|
|
thumb_func_start sub_81C5FE4
|
|
sub_81C5FE4: @ 81C5FE4
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
bl sub_81221EC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _081C5FF8
|
|
b _081C6160
|
|
_081C5FF8:
|
|
bl GetMenuCursorPos
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r5, =gMain
|
|
ldrh r1, [r5, 0x2E]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _081C6040
|
|
lsls r0, r4, 24
|
|
asrs r0, 24
|
|
cmp r0, 0
|
|
bgt _081C6016
|
|
b _081C6160
|
|
_081C6016:
|
|
subs r0, 0x2
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
bl sub_81C616C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _081C6028
|
|
b _081C6160
|
|
_081C6028:
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
movs r0, 0
|
|
bl sub_8199134
|
|
b _081C6160
|
|
.pool
|
|
_081C6040:
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _081C6084
|
|
lsls r0, r4, 24
|
|
asrs r1, r0, 24
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r0, [r0]
|
|
movs r2, 0x82
|
|
lsls r2, 4
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
subs r0, 0x2
|
|
cmp r1, r0
|
|
blt _081C6060
|
|
b _081C6160
|
|
_081C6060:
|
|
adds r0, r1, 0x2
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
bl sub_81C616C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _081C6160
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8199134
|
|
b _081C6160
|
|
.pool
|
|
_081C6084:
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _081C6098
|
|
bl GetLRKeysState
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _081C60C0
|
|
_081C6098:
|
|
lsls r0, r4, 24
|
|
asrs r1, r0, 24
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _081C6160
|
|
subs r0, r1, 0x1
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
bl sub_81C616C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _081C6160
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
b _081C60FA
|
|
_081C60C0:
|
|
ldrh r1, [r5, 0x2E]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _081C60D6
|
|
bl GetLRKeysState
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bne _081C6102
|
|
_081C60D6:
|
|
lsls r0, r4, 24
|
|
asrs r1, r0, 24
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _081C6160
|
|
adds r0, r1, 0x1
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
bl sub_81C616C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _081C6160
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
movs r0, 0x1
|
|
_081C60FA:
|
|
movs r1, 0
|
|
bl sub_8199134
|
|
b _081C6160
|
|
_081C6102:
|
|
ldrh r1, [r5, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _081C6148
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
ldr r2, =gUnknown_0861F2D8
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r0, [r0]
|
|
lsls r1, r4, 24
|
|
asrs r1, 24
|
|
ldr r3, =0x00000818
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 3
|
|
adds r2, 0x4
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
cmp r1, 0
|
|
beq _081C6160
|
|
adds r0, r6, 0
|
|
bl _call_via_r1
|
|
b _081C6160
|
|
.pool
|
|
_081C6148:
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _081C6160
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
ldr r0, =gUnknown_0861F2D8
|
|
ldr r1, [r0, 0x1C]
|
|
adds r0, r6, 0
|
|
bl _call_via_r1
|
|
_081C6160:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C5FE4
|
|
|
|
thumb_func_start sub_81C616C
|
|
sub_81C616C: @ 81C616C
|
|
push {lr}
|
|
lsls r0, 24
|
|
asrs r1, r0, 24
|
|
cmp r1, 0
|
|
blt _081C61A0
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r2, [r0]
|
|
movs r3, 0x82
|
|
lsls r3, 4
|
|
adds r0, r2, r3
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bgt _081C61A0
|
|
ldr r3, =0x00000818
|
|
adds r0, r2, r3
|
|
ldr r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x5
|
|
beq _081C61A0
|
|
movs r0, 0x1
|
|
b _081C61A2
|
|
.pool
|
|
_081C61A0:
|
|
movs r0, 0
|
|
_081C61A2:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81C616C
|
|
|
|
thumb_func_start sub_81C61A8
|
|
sub_81C61A8: @ 81C61A8
|
|
push {lr}
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r0, [r0]
|
|
movs r1, 0x82
|
|
lsls r1, 4
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _081C61C8
|
|
movs r0, 0
|
|
bl sub_81C6D6C
|
|
b _081C61DA
|
|
.pool
|
|
_081C61C8:
|
|
cmp r0, 0x2
|
|
bne _081C61D4
|
|
movs r0, 0x1
|
|
bl sub_81C6D6C
|
|
b _081C61DA
|
|
_081C61D4:
|
|
movs r0, 0x2
|
|
bl sub_81C6D6C
|
|
_081C61DA:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81C61A8
|
|
|
|
thumb_func_start sub_81C61E0
|
|
sub_81C61E0: @ 81C61E0
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r4, =gSpecialVar_ItemId
|
|
ldrh r0, [r4]
|
|
bl ItemId_GetPocket
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x5
|
|
beq _081C620C
|
|
cmp r0, 0x2
|
|
beq _081C620C
|
|
cmp r0, 0x3
|
|
beq _081C620C
|
|
ldrh r0, [r4]
|
|
bl ItemIsMail
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _081C6228
|
|
_081C620C:
|
|
bl sub_81C61A8
|
|
ldr r1, =gText_DadsAdvice
|
|
ldr r2, =sub_81C6714
|
|
adds r0, r5, 0
|
|
bl DisplayItemMessageInBattlePyramid
|
|
b _081C6252
|
|
.pool
|
|
_081C6228:
|
|
ldrh r0, [r4]
|
|
bl ItemId_GetFieldFunc
|
|
cmp r0, 0
|
|
beq _081C6252
|
|
bl sub_81C61A8
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0
|
|
bl schedule_bg_copy_tilemap_to_vram
|
|
ldrh r0, [r4]
|
|
bl ItemId_GetFieldFunc
|
|
adds r1, r0, 0
|
|
adds r0, r5, 0
|
|
bl _call_via_r1
|
|
_081C6252:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81C61E0
|
|
|
|
thumb_func_start sub_81C6258
|
|
sub_81C6258: @ 81C6258
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r4, r5, 2
|
|
adds r4, r5
|
|
lsls r4, 3
|
|
ldr r0, =gTasks + 0x8
|
|
adds r4, r0
|
|
bl sub_81C61A8
|
|
movs r1, 0x2
|
|
ldrsh r0, [r4, r1]
|
|
bl sub_81C55D8
|
|
movs r0, 0
|
|
bl schedule_bg_copy_tilemap_to_vram
|
|
movs r0, 0x1
|
|
bl schedule_bg_copy_tilemap_to_vram
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl sub_81C5A98
|
|
adds r0, r5, 0
|
|
bl sub_81C629C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C6258
|
|
|
|
thumb_func_start sub_81C629C
|
|
sub_81C629C: @ 81C629C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl sub_81C5674
|
|
ldr r1, =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, =sub_81C5BC8
|
|
str r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C629C
|
|
|
|
thumb_func_start sub_81C62C4
|
|
sub_81C62C4: @ 81C62C4
|
|
push {r4-r7,lr}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r6, r0, 3
|
|
ldr r7, =gTasks + 0x8
|
|
adds r4, r6, r7
|
|
bl sub_81C61A8
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x10]
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
bne _081C62F4
|
|
adds r0, r5, 0
|
|
bl sub_81C6350
|
|
b _081C6334
|
|
.pool
|
|
_081C62F4:
|
|
ldr r0, =gSpecialVar_ItemId
|
|
ldrh r0, [r0]
|
|
ldr r1, =gStringVar1
|
|
bl CopyItemName
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gText_TossHowManyVar1s
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x4]
|
|
str r1, [sp, 0x8]
|
|
str r1, [sp, 0xC]
|
|
adds r1, r4, 0
|
|
movs r2, 0x3
|
|
movs r3, 0
|
|
bl sub_81C6C3C
|
|
bl sub_81C6404
|
|
adds r0, r7, 0
|
|
subs r0, 0x8
|
|
adds r0, r6, r0
|
|
ldr r1, =sub_81C64B4
|
|
str r1, [r0]
|
|
_081C6334:
|
|
add sp, 0x10
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C62C4
|
|
|
|
thumb_func_start sub_81C6350
|
|
sub_81C6350: @ 81C6350
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r4, r5, 2
|
|
adds r4, r5
|
|
lsls r4, 3
|
|
ldr r0, =gTasks + 0x8
|
|
adds r4, r0
|
|
ldr r0, =gSpecialVar_ItemId
|
|
ldrh r0, [r0]
|
|
ldr r1, =gStringVar1
|
|
bl CopyItemName
|
|
ldr r0, =gStringVar2
|
|
movs r2, 0x10
|
|
ldrsh r1, [r4, r2]
|
|
movs r2, 0
|
|
movs r3, 0x2
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gText_ConfirmTossItems
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x4]
|
|
str r1, [sp, 0x8]
|
|
str r1, [sp, 0xC]
|
|
adds r1, r4, 0
|
|
movs r2, 0x3
|
|
movs r3, 0
|
|
bl sub_81C6C3C
|
|
ldr r1, =gUnknown_0861F314
|
|
adds r0, r5, 0
|
|
bl sub_81C6DAC
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C6350
|
|
|
|
thumb_func_start sub_81C63D0
|
|
sub_81C63D0: @ 81C63D0
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r4, r5, 2
|
|
adds r4, r5
|
|
lsls r4, 3
|
|
ldr r0, =gTasks + 0x8
|
|
adds r4, r0
|
|
movs r1, 0x2
|
|
ldrsh r0, [r4, r1]
|
|
bl sub_81C55D8
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl sub_81C5A98
|
|
adds r0, r5, 0
|
|
bl sub_81C629C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C63D0
|
|
|
|
thumb_func_start sub_81C6404
|
|
sub_81C6404: @ 81C6404
|
|
push {r4,lr}
|
|
sub sp, 0xC
|
|
ldr r0, =gStringVar1
|
|
movs r1, 0x1
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gText_xVar1
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
movs r0, 0x3
|
|
bl sub_81C6CEC
|
|
movs r0, 0x1
|
|
adds r1, r4, 0
|
|
movs r2, 0x28
|
|
bl GetStringCenterAlignXOffset
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r0, 0x2
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x3
|
|
movs r1, 0x1
|
|
adds r2, r4, 0
|
|
bl PrintTextOnWindow
|
|
add sp, 0xC
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C6404
|
|
|
|
thumb_func_start sub_81C645C
|
|
sub_81C645C: @ 81C645C
|
|
push {r4,lr}
|
|
sub sp, 0xC
|
|
adds r1, r0, 0
|
|
ldr r0, =gStringVar1
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gText_xVar1
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
movs r0, 0x1
|
|
adds r1, r4, 0
|
|
movs r2, 0x28
|
|
bl GetStringCenterAlignXOffset
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r0, 0x2
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x3
|
|
movs r1, 0x1
|
|
adds r2, r4, 0
|
|
bl PrintTextOnWindow
|
|
add sp, 0xC
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C645C
|
|
|
|
thumb_func_start sub_81C64B4
|
|
sub_81C64B4: @ 81C64B4
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r6, r5, 0
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, =gTasks + 0x8
|
|
adds r4, r0, r1
|
|
adds r0, r4, 0
|
|
adds r0, 0x10
|
|
ldrh r1, [r4, 0x4]
|
|
bl AdjustQuantityAccordingToDPadInput
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _081C64E8
|
|
movs r1, 0x10
|
|
ldrsh r0, [r4, r1]
|
|
bl sub_81C645C
|
|
b _081C6544
|
|
.pool
|
|
_081C64E8:
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _081C651C
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
bl sub_8198070
|
|
movs r0, 0x3
|
|
bl ClearWindowTilemap
|
|
movs r0, 0x1
|
|
bl schedule_bg_copy_tilemap_to_vram
|
|
adds r0, r5, 0
|
|
bl sub_81C6350
|
|
b _081C6544
|
|
.pool
|
|
_081C651C:
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _081C6544
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
bl sub_8198070
|
|
movs r0, 0x3
|
|
bl ClearWindowTilemap
|
|
movs r0, 0x1
|
|
bl schedule_bg_copy_tilemap_to_vram
|
|
adds r0, r6, 0
|
|
bl sub_81C63D0
|
|
_081C6544:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81C64B4
|
|
|
|
thumb_func_start sub_81C654C
|
|
sub_81C654C: @ 81C654C
|
|
push {r4-r6,lr}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, r0, 2
|
|
adds r4, r0
|
|
lsls r4, 3
|
|
ldr r5, =gTasks + 0x8
|
|
adds r6, r4, r5
|
|
ldr r0, =gSpecialVar_ItemId
|
|
ldrh r0, [r0]
|
|
ldr r1, =gStringVar1
|
|
bl CopyItemName
|
|
ldr r0, =gStringVar2
|
|
movs r2, 0x10
|
|
ldrsh r1, [r6, r2]
|
|
movs r2, 0
|
|
movs r3, 0x2
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r6, =gStringVar4
|
|
ldr r1, =gText_ThrewAwayVar2Var1s
|
|
adds r0, r6, 0
|
|
bl StringExpandPlaceholders
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x4]
|
|
str r1, [sp, 0x8]
|
|
str r1, [sp, 0xC]
|
|
adds r1, r6, 0
|
|
movs r2, 0x3
|
|
movs r3, 0
|
|
bl sub_81C6C3C
|
|
subs r5, 0x8
|
|
adds r4, r5
|
|
ldr r0, =sub_81C65CC
|
|
str r0, [r4]
|
|
add sp, 0x10
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C654C
|
|
|
|
thumb_func_start sub_81C65CC
|
|
sub_81C65CC: @ 81C65CC
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, =gTasks + 0x8
|
|
adds r4, r0, r1
|
|
ldr r6, =gUnknown_0203CF38
|
|
subs r7, r6, 0x2
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _081C662E
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
ldr r0, =gSpecialVar_ItemId
|
|
ldrh r0, [r0]
|
|
ldrh r1, [r4, 0x10]
|
|
bl RemovePyramidBagItem
|
|
ldrb r0, [r4]
|
|
adds r1, r6, 0
|
|
adds r2, r7, 0
|
|
bl sub_81AE6C8
|
|
bl sub_81C5924
|
|
bl sub_81C59BC
|
|
bl sub_81C5314
|
|
ldr r0, =gMultiuseListMenuTemplate
|
|
ldrh r1, [r6]
|
|
ldrh r2, [r7]
|
|
bl ListMenuInit
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4]
|
|
movs r0, 0
|
|
bl schedule_bg_copy_tilemap_to_vram
|
|
adds r0, r5, 0
|
|
bl sub_81C629C
|
|
_081C662E:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C65CC
|
|
|
|
thumb_func_start sub_81C6648
|
|
sub_81C6648: @ 81C6648
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r6, r4, 0
|
|
bl sub_81C61A8
|
|
ldr r5, =gSpecialVar_ItemId
|
|
ldrh r0, [r5]
|
|
bl ItemIsMail
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _081C667C
|
|
ldr r1, =gText_CantWriteMail
|
|
ldr r2, =sub_81C66EC
|
|
adds r0, r4, 0
|
|
bl DisplayItemMessageInBattlePyramid
|
|
b _081C66A6
|
|
.pool
|
|
_081C667C:
|
|
ldrh r0, [r5]
|
|
bl itemid_is_unique
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _081C66A0
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r1, [r0]
|
|
ldr r0, =sub_81B7F60
|
|
str r0, [r1]
|
|
adds r0, r4, 0
|
|
bl sub_81C5B14
|
|
b _081C66A6
|
|
.pool
|
|
_081C66A0:
|
|
adds r0, r6, 0
|
|
bl sub_81C66AC
|
|
_081C66A6:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81C6648
|
|
|
|
thumb_func_start sub_81C66AC
|
|
sub_81C66AC: @ 81C66AC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, =gSpecialVar_ItemId
|
|
ldrh r0, [r0]
|
|
ldr r1, =gStringVar1
|
|
bl CopyItemName
|
|
ldr r5, =gStringVar4
|
|
ldr r1, =gText_Var1CantBeHeld
|
|
adds r0, r5, 0
|
|
bl StringExpandPlaceholders
|
|
ldr r2, =sub_81C66EC
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl DisplayItemMessageInBattlePyramid
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C66AC
|
|
|
|
thumb_func_start sub_81C66EC
|
|
sub_81C66EC: @ 81C66EC
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _081C670A
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
adds r0, r4, 0
|
|
bl sub_81C6714
|
|
_081C670A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C66EC
|
|
|
|
thumb_func_start sub_81C6714
|
|
sub_81C6714: @ 81C6714
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r4, r5, 2
|
|
adds r4, r5
|
|
lsls r4, 3
|
|
ldr r0, =gTasks + 0x8
|
|
adds r4, r0
|
|
bl sub_81C6E1C
|
|
movs r1, 0x2
|
|
ldrsh r0, [r4, r1]
|
|
bl sub_81C55D8
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl sub_81C5A98
|
|
adds r0, r5, 0
|
|
bl sub_81C629C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C6714
|
|
|
|
thumb_func_start sub_81C674C
|
|
sub_81C674C: @ 81C674C
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r6, r4, 0
|
|
ldr r5, =gSpecialVar_ItemId
|
|
ldrh r0, [r5]
|
|
bl itemid_80BF6D8_mail_related
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _081C677C
|
|
ldr r1, =gText_CantWriteMail
|
|
ldr r2, =sub_81C66EC
|
|
adds r0, r4, 0
|
|
bl DisplayItemMessageInBattlePyramid
|
|
b _081C6796
|
|
.pool
|
|
_081C677C:
|
|
ldrh r0, [r5]
|
|
bl itemid_is_unique
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _081C6790
|
|
adds r0, r4, 0
|
|
bl sub_81C5B14
|
|
b _081C6796
|
|
_081C6790:
|
|
adds r0, r6, 0
|
|
bl sub_81C66AC
|
|
_081C6796:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81C674C
|
|
|
|
thumb_func_start sub_81C679C
|
|
sub_81C679C: @ 81C679C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r4, =gSpecialVar_ItemId
|
|
ldrh r0, [r4]
|
|
bl ItemId_GetBattleFunc
|
|
cmp r0, 0
|
|
beq _081C67C0
|
|
bl sub_81C61A8
|
|
ldrh r0, [r4]
|
|
bl ItemId_GetBattleFunc
|
|
adds r1, r0, 0
|
|
adds r0, r5, 0
|
|
bl _call_via_r1
|
|
_081C67C0:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C679C
|
|
|
|
thumb_func_start sub_81C67CC
|
|
sub_81C67CC: @ 81C67CC
|
|
push {r4-r6,lr}
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5,r6}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, r0, 2
|
|
adds r4, r0
|
|
lsls r4, 3
|
|
ldr r0, =gTasks + 0x8
|
|
mov r9, r0
|
|
adds r5, r4, r0
|
|
ldr r0, =gUnknown_0203CF30
|
|
ldrh r1, [r0, 0x6]
|
|
ldrh r0, [r0, 0x8]
|
|
adds r1, r0
|
|
strh r1, [r5, 0x2]
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r0, [r0]
|
|
ldr r2, =0x00000814
|
|
adds r0, r2
|
|
movs r2, 0
|
|
mov r8, r2
|
|
strb r1, [r0]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x10
|
|
movs r2, 0x1
|
|
bl sub_81AF15C
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r3, [r0]
|
|
movs r0, 0x2
|
|
ldrsh r2, [r5, r0]
|
|
lsls r2, 1
|
|
ldr r1, =0x00000ca9
|
|
adds r0, r3, r1
|
|
ldrb r1, [r0]
|
|
lsls r1, 30
|
|
lsrs r1, 30
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, r0
|
|
ldr r0, =0x00000e2c
|
|
adds r3, r0
|
|
adds r3, r2
|
|
ldrh r0, [r3]
|
|
ldr r1, =gStringVar1
|
|
bl CopyItemName
|
|
ldr r6, =gStringVar4
|
|
ldr r1, =gText_MoveVar1Where
|
|
adds r0, r6, 0
|
|
bl StringExpandPlaceholders
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
mov r1, r8
|
|
str r1, [sp]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x4]
|
|
str r1, [sp, 0x8]
|
|
str r1, [sp, 0xC]
|
|
adds r1, r6, 0
|
|
movs r2, 0x3
|
|
movs r3, 0
|
|
bl sub_81C6C3C
|
|
ldrb r0, [r5]
|
|
movs r1, 0x1
|
|
bl sub_81C5A98
|
|
ldrb r0, [r5, 0x2]
|
|
bl sub_81C704C
|
|
movs r2, 0x8
|
|
negs r2, r2
|
|
add r9, r2
|
|
add r4, r9
|
|
ldr r0, =sub_81C68B0
|
|
str r0, [r4]
|
|
add sp, 0x10
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C67CC
|
|
|
|
thumb_func_start sub_81C68B0
|
|
sub_81C68B0: @ 81C68B0
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, =gTasks + 0x8
|
|
adds r4, r0, r1
|
|
bl sub_81221EC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _081C695C
|
|
ldr r7, =gMain
|
|
ldrh r1, [r7, 0x2E]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _081C68F8
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
ldrb r0, [r4]
|
|
ldr r1, =gUnknown_0203CF38
|
|
subs r2, r1, 0x2
|
|
bl sub_81AE860
|
|
b _081C6940
|
|
.pool
|
|
_081C68F8:
|
|
ldrb r0, [r4]
|
|
bl ListMenuHandleInputGetItemId
|
|
adds r6, r0, 0
|
|
ldrb r0, [r4]
|
|
ldr r4, =gUnknown_0203CF38
|
|
subs r2, r4, 0x2
|
|
adds r1, r4, 0
|
|
bl sub_81AE860
|
|
movs r0, 0
|
|
bl sub_81C7028
|
|
subs r4, 0x8
|
|
ldrb r0, [r4, 0x6]
|
|
bl sub_81C704C
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
cmp r6, r0
|
|
beq _081C6930
|
|
adds r0, 0x1
|
|
cmp r6, r0
|
|
bne _081C6950
|
|
b _081C695C
|
|
.pool
|
|
_081C6930:
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
ldrh r1, [r7, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _081C6948
|
|
_081C6940:
|
|
adds r0, r5, 0
|
|
bl sub_81C6964
|
|
b _081C695C
|
|
_081C6948:
|
|
adds r0, r5, 0
|
|
bl sub_81C6A14
|
|
b _081C695C
|
|
_081C6950:
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
adds r0, r5, 0
|
|
bl sub_81C6964
|
|
_081C695C:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81C68B0
|
|
|
|
thumb_func_start sub_81C6964
|
|
sub_81C6964: @ 81C6964
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
ldr r1, =gTasks + 0x8
|
|
adds r5, r0, r1
|
|
ldr r7, =gUnknown_0203CF38
|
|
subs r0, r7, 0x2
|
|
mov r8, r0
|
|
ldrh r0, [r0]
|
|
ldrh r1, [r7]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
movs r3, 0x2
|
|
ldrsh r1, [r5, r3]
|
|
cmp r1, r4
|
|
beq _081C6996
|
|
subs r0, r4, 0x1
|
|
cmp r1, r0
|
|
bne _081C69A8
|
|
_081C6996:
|
|
adds r0, r6, 0
|
|
bl sub_81C6A14
|
|
b _081C69FC
|
|
.pool
|
|
_081C69A8:
|
|
ldrb r0, [r5, 0x2]
|
|
lsls r1, r4, 24
|
|
lsrs r1, 24
|
|
bl sub_81C57A8
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00000814
|
|
adds r0, r1
|
|
movs r1, 0xFF
|
|
strb r1, [r0]
|
|
movs r0, 0x1
|
|
bl sub_81C7028
|
|
ldrb r0, [r5]
|
|
adds r1, r7, 0
|
|
mov r2, r8
|
|
bl sub_81AE6C8
|
|
movs r3, 0x2
|
|
ldrsh r0, [r5, r3]
|
|
cmp r0, r4
|
|
bge _081C69E0
|
|
adds r1, r7, 0
|
|
subs r1, 0x8
|
|
ldrh r0, [r1, 0x6]
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0x6]
|
|
_081C69E0:
|
|
bl sub_81C5314
|
|
ldr r0, =gMultiuseListMenuTemplate
|
|
ldrh r1, [r7]
|
|
mov r3, r8
|
|
ldrh r2, [r3]
|
|
bl ListMenuInit
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5]
|
|
adds r0, r6, 0
|
|
bl sub_81C629C
|
|
_081C69FC:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C6964
|
|
|
|
thumb_func_start sub_81C6A14
|
|
sub_81C6A14: @ 81C6A14
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r6, r0, 0
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
ldr r1, =gTasks + 0x8
|
|
adds r4, r0, r1
|
|
ldr r5, =gUnknown_0203CF38
|
|
subs r7, r5, 0x2
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00000814
|
|
adds r0, r1
|
|
movs r1, 0xFF
|
|
strb r1, [r0]
|
|
movs r0, 0x1
|
|
bl sub_81C7028
|
|
ldrb r0, [r4]
|
|
adds r1, r5, 0
|
|
adds r2, r7, 0
|
|
bl sub_81AE6C8
|
|
movs r0, 0x2
|
|
ldrsh r2, [r4, r0]
|
|
ldrh r0, [r5]
|
|
ldrh r1, [r7]
|
|
adds r0, r1
|
|
cmp r2, r0
|
|
bge _081C6A5E
|
|
adds r1, r5, 0
|
|
subs r1, 0x8
|
|
ldrh r0, [r1, 0x6]
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0x6]
|
|
_081C6A5E:
|
|
bl sub_81C5314
|
|
ldr r0, =gMultiuseListMenuTemplate
|
|
ldrh r1, [r5]
|
|
ldrh r2, [r7]
|
|
bl ListMenuInit
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4]
|
|
adds r0, r6, 0
|
|
bl sub_81C629C
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C6A14
|
|
|
|
thumb_func_start sub_81C6A94
|
|
sub_81C6A94: @ 81C6A94
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
ldr r0, =gPlayerParty
|
|
mov r9, r0
|
|
movs r0, 0x14
|
|
bl Alloc
|
|
adds r7, r0, 0
|
|
movs r0, 0xA
|
|
bl Alloc
|
|
adds r5, r0, 0
|
|
ldr r1, =gSaveBlock2Ptr
|
|
mov r8, r1
|
|
ldr r2, [r1]
|
|
ldr r4, =0x00000ca9
|
|
adds r0, r2, r4
|
|
ldrb r0, [r0]
|
|
lsls r0, 30
|
|
lsrs r0, 30
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldr r0, =0x00000e2c
|
|
adds r1, r0
|
|
adds r0, r7, 0
|
|
movs r2, 0x14
|
|
bl memcpy
|
|
mov r1, r8
|
|
ldr r2, [r1]
|
|
adds r0, r2, r4
|
|
ldrb r0, [r0]
|
|
lsls r0, 30
|
|
lsrs r0, 30
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 1
|
|
adds r1, r2
|
|
ldr r0, =0x00000e54
|
|
adds r1, r0
|
|
adds r0, r5, 0
|
|
movs r2, 0xA
|
|
bl memcpy
|
|
movs r6, 0
|
|
_081C6AF8:
|
|
movs r0, 0x64
|
|
muls r0, r6
|
|
add r0, r9
|
|
movs r1, 0xC
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
cmp r0, 0
|
|
beq _081C6B88
|
|
movs r1, 0x1
|
|
bl AddBagItem
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _081C6B88
|
|
mov r1, r8
|
|
ldr r2, [r1]
|
|
adds r0, r2, r4
|
|
ldrb r1, [r0]
|
|
lsls r1, 30
|
|
lsrs r1, 30
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r1, =0x00000e2c
|
|
adds r0, r1
|
|
adds r1, r7, 0
|
|
movs r2, 0x14
|
|
bl memcpy
|
|
mov r0, r8
|
|
ldr r2, [r0]
|
|
adds r0, r2, r4
|
|
ldrb r1, [r0]
|
|
lsls r1, 30
|
|
lsrs r1, 30
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
ldr r1, =0x00000e54
|
|
adds r0, r1
|
|
adds r1, r5, 0
|
|
movs r2, 0xA
|
|
bl memcpy
|
|
adds r0, r7, 0
|
|
bl Free
|
|
adds r0, r5, 0
|
|
bl Free
|
|
ldr r1, =gSpecialVar_Result
|
|
movs r0, 0x1
|
|
strh r0, [r1]
|
|
b _081C6BC6
|
|
.pool
|
|
_081C6B88:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x2
|
|
bls _081C6AF8
|
|
movs r1, 0
|
|
mov r0, sp
|
|
strh r1, [r0]
|
|
movs r6, 0
|
|
movs r4, 0x64
|
|
_081C6B9C:
|
|
adds r0, r6, 0
|
|
muls r0, r4
|
|
add r0, r9
|
|
movs r1, 0xC
|
|
mov r2, sp
|
|
bl SetMonData
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x2
|
|
bls _081C6B9C
|
|
ldr r1, =gSpecialVar_Result
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
adds r0, r7, 0
|
|
bl Free
|
|
adds r0, r5, 0
|
|
bl Free
|
|
_081C6BC6:
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C6A94
|
|
|
|
thumb_func_start sub_81C6BD8
|
|
sub_81C6BD8: @ 81C6BD8
|
|
push {r4,lr}
|
|
ldr r0, =gUnknown_0861F328
|
|
bl InitWindows
|
|
bl DeactivateAllTextPrinters
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r2, 0xE0
|
|
bl sub_809882C
|
|
movs r0, 0
|
|
movs r1, 0xA
|
|
movs r2, 0xD0
|
|
bl copy_textbox_border_tile_patterns_to_vram
|
|
ldr r0, =gUnknown_0860F074
|
|
movs r1, 0xF0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
movs r4, 0
|
|
_081C6C04:
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x4
|
|
bls _081C6C04
|
|
movs r0, 0
|
|
bl PutWindowTilemap
|
|
movs r0, 0x1
|
|
bl PutWindowTilemap
|
|
movs r0, 0
|
|
bl schedule_bg_copy_tilemap_to_vram
|
|
movs r0, 0x1
|
|
bl schedule_bg_copy_tilemap_to_vram
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C6BD8
|
|
|
|
thumb_func_start sub_81C6C3C
|
|
sub_81C6C3C: @ 81C6C3C
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x14
|
|
ldr r4, [sp, 0x28]
|
|
ldr r6, [sp, 0x2C]
|
|
ldr r5, [sp, 0x30]
|
|
mov r8, r5
|
|
ldr r5, [sp, 0x34]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
str r4, [sp]
|
|
str r6, [sp, 0x4]
|
|
lsls r4, r5, 1
|
|
adds r4, r5
|
|
ldr r5, =gUnknown_0861F31C
|
|
adds r4, r5
|
|
str r4, [sp, 0x8]
|
|
mov r4, r8
|
|
lsls r4, 24
|
|
asrs r4, 24
|
|
str r4, [sp, 0xC]
|
|
str r1, [sp, 0x10]
|
|
movs r1, 0x1
|
|
bl AddTextPrinterParameterized2
|
|
add sp, 0x14
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C6C3C
|
|
|
|
thumb_func_start sub_81C6C94
|
|
sub_81C6C94: @ 81C6C94
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x14
|
|
ldr r4, [sp, 0x28]
|
|
ldr r6, [sp, 0x2C]
|
|
ldr r5, [sp, 0x30]
|
|
mov r8, r5
|
|
ldr r5, [sp, 0x34]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
str r4, [sp]
|
|
str r6, [sp, 0x4]
|
|
lsls r4, r5, 1
|
|
adds r4, r5
|
|
ldr r5, =gUnknown_0861F31C
|
|
adds r4, r5
|
|
str r4, [sp, 0x8]
|
|
mov r4, r8
|
|
lsls r4, 24
|
|
asrs r4, 24
|
|
str r4, [sp, 0xC]
|
|
str r1, [sp, 0x10]
|
|
movs r1, 0x7
|
|
bl AddTextPrinterParameterized2
|
|
add sp, 0x14
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C6C94
|
|
|
|
thumb_func_start sub_81C6CEC
|
|
sub_81C6CEC: @ 81C6CEC
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0
|
|
movs r2, 0x1
|
|
movs r3, 0xE
|
|
bl SetWindowBorderStyle
|
|
movs r0, 0x1
|
|
bl schedule_bg_copy_tilemap_to_vram
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81C6CEC
|
|
|
|
thumb_func_start sub_81C6D08
|
|
sub_81C6D08: @ 81C6D08
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_0203CF2C
|
|
ldr r1, [r1]
|
|
ldr r2, =0x0000080f
|
|
adds r1, r2
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_81C6D08
|
|
|
|
thumb_func_start sub_81C6D24
|
|
sub_81C6D24: @ 81C6D24
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r3, =0x0000080f
|
|
adds r1, r2, r3
|
|
ldr r0, [r0]
|
|
adds r4, r0, r1
|
|
ldrb r0, [r4]
|
|
cmp r0, 0xFF
|
|
bne _081C6D58
|
|
lsls r0, r2, 3
|
|
ldr r1, =gUnknown_0861F350
|
|
adds r0, r1
|
|
bl AddWindow
|
|
strb r0, [r4]
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
movs r2, 0x1
|
|
movs r3, 0xE
|
|
bl SetWindowBorderStyle
|
|
movs r0, 0x1
|
|
bl schedule_bg_copy_tilemap_to_vram
|
|
_081C6D58:
|
|
ldrb r0, [r4]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_81C6D24
|
|
|
|
thumb_func_start sub_81C6D6C
|
|
sub_81C6D6C: @ 81C6D6C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_0203CF2C
|
|
ldr r2, =0x0000080f
|
|
adds r0, r2
|
|
ldr r1, [r1]
|
|
adds r4, r1, r0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0xFF
|
|
beq _081C6D9E
|
|
movs r1, 0
|
|
bl sub_8198070
|
|
ldrb r0, [r4]
|
|
bl ClearWindowTilemap
|
|
ldrb r0, [r4]
|
|
bl RemoveWindow
|
|
movs r0, 0x1
|
|
bl schedule_bg_copy_tilemap_to_vram
|
|
movs r0, 0xFF
|
|
strb r0, [r4]
|
|
_081C6D9E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C6D6C
|
|
|
|
thumb_func_start sub_81C6DAC
|
|
sub_81C6DAC: @ 81C6DAC
|
|
push {lr}
|
|
sub sp, 0x10
|
|
adds r3, r1, 0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_0861F370
|
|
movs r2, 0x2
|
|
str r2, [sp]
|
|
movs r2, 0x1
|
|
str r2, [sp, 0x4]
|
|
movs r2, 0xE
|
|
str r2, [sp, 0x8]
|
|
str r3, [sp, 0xC]
|
|
movs r2, 0x1
|
|
movs r3, 0
|
|
bl CreateYesNoMenuWithCallbacks
|
|
add sp, 0x10
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C6DAC
|
|
|
|
thumb_func_start DisplayItemMessageInBattlePyramid
|
|
@ void DisplayItemMessageInBattlePyramid(u8 taskId, u8 *str, void ( *callback)(u8 taskId))
|
|
DisplayItemMessageInBattlePyramid: @ 81C6DD8
|
|
push {r4-r6,lr}
|
|
sub sp, 0x10
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0x2
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
bl GetPlayerTextSpeed
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x1
|
|
str r1, [sp]
|
|
str r0, [sp, 0x4]
|
|
str r5, [sp, 0x8]
|
|
str r6, [sp, 0xC]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
movs r2, 0xA
|
|
movs r3, 0xD
|
|
bl DisplayMessageAndContinueTask
|
|
movs r0, 0x1
|
|
bl schedule_bg_copy_tilemap_to_vram
|
|
add sp, 0x10
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end DisplayItemMessageInBattlePyramid
|
|
|
|
thumb_func_start sub_81C6E1C
|
|
sub_81C6E1C: @ 81C6E1C
|
|
push {lr}
|
|
movs r0, 0x2
|
|
movs r1, 0
|
|
bl sub_8197DF8
|
|
movs r0, 0x2
|
|
bl ClearWindowTilemap
|
|
movs r0, 0x1
|
|
bl schedule_bg_copy_tilemap_to_vram
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81C6E1C
|
|
|
|
thumb_func_start sub_81C6E38
|
|
sub_81C6E38: @ 81C6E38
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r2, =0x00000804
|
|
adds r1, r4, r2
|
|
ldr r0, [r0]
|
|
adds r5, r0, r1
|
|
ldrb r0, [r5]
|
|
cmp r0, 0xFF
|
|
beq _081C6E80
|
|
ldr r0, =0x00001024
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
bl FreeSpriteTilesByTag
|
|
adds r0, r4, 0
|
|
bl FreeSpritePaletteByTag
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r4, =gSprites
|
|
adds r0, r4
|
|
bl FreeSpriteOamMatrix
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
movs r0, 0xFF
|
|
strb r0, [r5]
|
|
_081C6E80:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C6E38
|
|
|
|
thumb_func_start sub_81C6E98
|
|
sub_81C6E98: @ 81C6E98
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
movs r0, 0x40
|
|
bl Alloc
|
|
adds r4, r0, 0
|
|
ldr r0, =gUnknown_08D9ADD0
|
|
adds r1, r4, 0
|
|
bl LZDecompressWram
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00000ca9
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 30
|
|
lsrs r0, 25
|
|
adds r0, r4, r0
|
|
str r0, [sp]
|
|
ldr r1, =0xffff0000
|
|
ldr r0, [sp, 0x4]
|
|
ands r0, r1
|
|
ldr r1, =0x00001024
|
|
orrs r0, r1
|
|
str r0, [sp, 0x4]
|
|
mov r0, sp
|
|
bl LoadSpritePalette
|
|
adds r0, r4, 0
|
|
bl Free
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C6E98
|
|
|
|
thumb_func_start sub_81C6EF4
|
|
sub_81C6EF4: @ 81C6EF4
|
|
push {r4,lr}
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r4, [r0]
|
|
ldr r0, =0x00000804
|
|
adds r4, r0
|
|
ldr r0, =gUnknown_0861F3D4
|
|
movs r1, 0x44
|
|
movs r2, 0x38
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
strb r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C6EF4
|
|
|
|
thumb_func_start sub_81C6F20
|
|
sub_81C6F20: @ 81C6F20
|
|
push {r4,lr}
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00000804
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gSprites
|
|
adds r4, r0, r1
|
|
adds r0, r4, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _081C6F50
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
ldr r0, =sub_81C6F68
|
|
str r0, [r4, 0x1C]
|
|
_081C6F50:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C6F20
|
|
|
|
thumb_func_start sub_81C6F68
|
|
sub_81C6F68: @ 81C6F68
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _081C6F84
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl StartSpriteAffineAnim
|
|
ldr r0, =SpriteCallbackDummy
|
|
str r0, [r4, 0x1C]
|
|
_081C6F84:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C6F68
|
|
|
|
thumb_func_start sub_81C6F90
|
|
sub_81C6F90: @ 81C6F90
|
|
push {r4-r6,lr}
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r2, =0x00000805
|
|
adds r1, r4, r2
|
|
ldr r0, [r0]
|
|
adds r5, r0, r1
|
|
ldrb r0, [r5]
|
|
cmp r0, 0xFF
|
|
bne _081C6FE0
|
|
ldr r0, =0x00001025
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
bl FreeSpriteTilesByTag
|
|
adds r0, r4, 0
|
|
bl FreeSpritePaletteByTag
|
|
adds r0, r4, 0
|
|
adds r1, r4, 0
|
|
adds r2, r6, 0
|
|
bl AddItemIconSprite
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x40
|
|
beq _081C6FE0
|
|
strb r2, [r5]
|
|
ldr r1, =gSprites
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
movs r1, 0x18
|
|
strh r1, [r0, 0x24]
|
|
movs r1, 0x58
|
|
strh r1, [r0, 0x26]
|
|
_081C6FE0:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C6F90
|
|
|
|
thumb_func_start sub_81C6FF8
|
|
sub_81C6FF8: @ 81C6FF8
|
|
push {lr}
|
|
lsls r0, 24
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
adds r0, r1
|
|
lsrs r0, 24
|
|
bl sub_81C6E38
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81C6FF8
|
|
|
|
thumb_func_start sub_81C700C
|
|
sub_81C700C: @ 81C700C
|
|
push {lr}
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00000807
|
|
adds r0, r1
|
|
movs r1, 0x8
|
|
bl sub_8122344
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C700C
|
|
|
|
thumb_func_start sub_81C7028
|
|
sub_81C7028: @ 81C7028
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00000807
|
|
adds r0, r1
|
|
movs r1, 0x8
|
|
bl sub_81223FC
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C7028
|
|
|
|
thumb_func_start sub_81C704C
|
|
sub_81C704C: @ 81C704C
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
ldr r0, =gUnknown_0203CF2C
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00000807
|
|
adds r0, r1
|
|
lsrs r3, 4
|
|
movs r1, 0x80
|
|
lsls r1, 13
|
|
adds r3, r1
|
|
lsrs r3, 16
|
|
movs r1, 0x88
|
|
movs r2, 0x78
|
|
bl sub_8122448
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81C704C
|
|
|
|
thumb_func_start sub_81C7078
|
|
sub_81C7078: @ 81C7078
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
bl is_c1_link_related_active
|
|
cmp r0, 0
|
|
bne _081C7090
|
|
ldr r0, =sub_81C7170
|
|
b _081C7092
|
|
.pool
|
|
_081C7090:
|
|
ldr r0, =sub_81C71E4
|
|
_081C7092:
|
|
lsls r1, r4, 24
|
|
lsrs r1, 24
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
adds r2, r5, 0
|
|
bl SetWordTaskArg
|
|
ldr r1, =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r2, =gUnknown_0203CF3C
|
|
ldrb r1, [r2]
|
|
strh r1, [r0, 0xE]
|
|
ldrb r0, [r2]
|
|
adds r1, r0, 0x1
|
|
strb r1, [r2]
|
|
lsls r0, 24
|
|
lsrs r0, 8
|
|
orrs r0, r4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_81C7078
|
|
|
|
thumb_func_start sub_81C70D8
|
|
sub_81C70D8: @ 81C70D8
|
|
push {lr}
|
|
ldr r1, =0x0000ffff
|
|
ands r1, r0
|
|
lsrs r3, r0, 16
|
|
ldr r2, =gTasks
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1, 0x4]
|
|
cmp r0, 0
|
|
beq _081C711C
|
|
ldr r2, [r1]
|
|
ldr r0, =sub_81C7170
|
|
cmp r2, r0
|
|
beq _081C70FE
|
|
ldr r0, =sub_81C71E4
|
|
cmp r2, r0
|
|
bne _081C711C
|
|
_081C70FE:
|
|
movs r2, 0xE
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, r3
|
|
bne _081C711C
|
|
movs r0, 0x1
|
|
b _081C711E
|
|
.pool
|
|
_081C711C:
|
|
movs r0, 0
|
|
_081C711E:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81C70D8
|
|
|
|
thumb_func_start sub_81C7124
|
|
sub_81C7124: @ 81C7124
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
movs r5, 0
|
|
ldr r4, =gTasks
|
|
_081C712C:
|
|
ldrb r0, [r4, 0x4]
|
|
cmp r0, 0
|
|
beq _081C7160
|
|
ldr r1, [r4]
|
|
ldr r0, =sub_81C7170
|
|
cmp r1, r0
|
|
beq _081C7140
|
|
ldr r0, =sub_81C71E4
|
|
cmp r1, r0
|
|
bne _081C7160
|
|
_081C7140:
|
|
lsls r0, r5, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x1
|
|
bl GetWordTaskArg
|
|
cmp r0, r6
|
|
bne _081C7160
|
|
movs r0, 0x1
|
|
b _081C716A
|
|
.pool
|
|
_081C7160:
|
|
adds r4, 0x28
|
|
adds r5, 0x1
|
|
cmp r5, 0xF
|
|
ble _081C712C
|
|
movs r0, 0
|
|
_081C716A:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81C7124
|
|
|
|
thumb_func_start sub_81C7170
|
|
sub_81C7170: @ 81C7170
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl GetWordTaskArg
|
|
adds r6, r0, 0
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, =gTasks + 0x8
|
|
adds r4, r0, r1
|
|
movs r7, 0
|
|
_081C718C:
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
bl _call_via_r6
|
|
cmp r0, 0x4
|
|
bhi _081C71D6
|
|
lsls r0, 2
|
|
ldr r1, =_081C71AC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_081C71AC:
|
|
.4byte _081C71C6
|
|
.4byte _081C71C0
|
|
.4byte _081C71DE
|
|
.4byte _081C71DA
|
|
.4byte _081C71CE
|
|
_081C71C0:
|
|
ldrh r0, [r4]
|
|
adds r0, 0x1
|
|
b _081C71D8
|
|
_081C71C6:
|
|
ldrh r0, [r4]
|
|
adds r0, 0x1
|
|
strh r0, [r4]
|
|
b _081C71DE
|
|
_081C71CE:
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
b _081C71DE
|
|
_081C71D6:
|
|
subs r0, 0x5
|
|
_081C71D8:
|
|
strh r0, [r4]
|
|
_081C71DA:
|
|
cmp r7, 0
|
|
beq _081C718C
|
|
_081C71DE:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81C7170
|
|
|
|
thumb_func_start sub_81C71E4
|
|
sub_81C71E4: @ 81C71E4
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
bl sub_8087598
|
|
cmp r0, 0
|
|
bne _081C724A
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl GetWordTaskArg
|
|
adds r2, r0, 0
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, =gTasks + 0x8
|
|
adds r4, r0, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
bl _call_via_r2
|
|
cmp r0, 0x4
|
|
bhi _081C7246
|
|
lsls r0, 2
|
|
ldr r1, =_081C7224
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_081C7224:
|
|
.4byte _081C7238
|
|
.4byte _081C7238
|
|
.4byte _081C724A
|
|
.4byte _081C724A
|
|
.4byte _081C723E
|
|
_081C7238:
|
|
ldrh r0, [r4]
|
|
adds r0, 0x1
|
|
b _081C7248
|
|
_081C723E:
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
b _081C724A
|
|
_081C7246:
|
|
subs r0, 0x5
|
|
_081C7248:
|
|
strh r0, [r4]
|
|
_081C724A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81C71E4
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|