mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-11-16 19:47:35 +01:00
1647 lines
25 KiB
ArmAsm
Executable File
1647 lines
25 KiB
ArmAsm
Executable File
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_8160624
|
|
sub_8160624: @ 8160624
|
|
push {lr}
|
|
bl LoadOam
|
|
bl ProcessSpriteCopyRequests
|
|
bl TransferPlttBuffer
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8160624
|
|
|
|
thumb_func_start sub_8160638
|
|
sub_8160638: @ 8160638
|
|
push {lr}
|
|
sub sp, 0x4
|
|
bl ScriptContext2_Enable
|
|
ldr r0, =sub_8160664
|
|
movs r1, 0xA
|
|
bl CreateTask
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8160638
|
|
|
|
thumb_func_start sub_8160664
|
|
sub_8160664: @ 8160664
|
|
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 _08160688
|
|
ldr r0, =sub_81606A0
|
|
bl SetMainCallback2
|
|
ldr r1, =gFieldCallback
|
|
ldr r0, =sub_80AF168
|
|
str r0, [r1]
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
_08160688:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8160664
|
|
|
|
thumb_func_start sub_81606A0
|
|
sub_81606A0: @ 81606A0
|
|
push {r4-r6,lr}
|
|
bl ResetSpriteData
|
|
bl FreeAllSpritePalettes
|
|
bl ResetTasks
|
|
bl clear_scheduled_bg_copies_to_vram
|
|
ldr r6, =gUnknown_0203BC34
|
|
movs r0, 0x8C
|
|
lsls r0, 1
|
|
bl AllocZeroed
|
|
str r0, [r6]
|
|
ldr r1, =gSpecialVar_0x8004
|
|
ldrh r1, [r1]
|
|
adds r0, 0x44
|
|
movs r5, 0
|
|
strb r1, [r0]
|
|
ldr r0, =sub_8160624
|
|
bl SetVBlankCallback
|
|
bl sub_81607EC
|
|
movs r0, 0
|
|
bl sub_81D2824
|
|
ldr r4, =gUnknown_0203BC38
|
|
movs r0, 0
|
|
strh r5, [r4]
|
|
strh r5, [r4, 0x2]
|
|
strb r0, [r4, 0x4]
|
|
bl sub_8161280
|
|
ldr r0, =gUnknown_085CEBB0
|
|
bl LoadSpriteSheet
|
|
ldr r0, =gUnknown_085CEBB8
|
|
bl LoadSpritePalette
|
|
bl sub_81610B8
|
|
ldr r0, =gUnknown_03006310
|
|
ldrh r1, [r4]
|
|
ldrh r2, [r4, 0x2]
|
|
bl ListMenuInit
|
|
ldr r1, [r6]
|
|
movs r2, 0x89
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0x2
|
|
bl FillPalette
|
|
ldr r0, =sub_816082C
|
|
bl SetMainCallback2
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81606A0
|
|
|
|
thumb_func_start sub_8160740
|
|
sub_8160740: @ 8160740
|
|
push {r4,r5,lr}
|
|
bl ResetSpriteData
|
|
bl FreeAllSpritePalettes
|
|
bl ResetTasks
|
|
bl clear_scheduled_bg_copies_to_vram
|
|
ldr r5, =gUnknown_0203BC34
|
|
movs r0, 0x8C
|
|
lsls r0, 1
|
|
bl AllocZeroed
|
|
str r0, [r5]
|
|
movs r1, 0x1C
|
|
strb r1, [r0]
|
|
ldr r0, [r5]
|
|
ldr r1, =gSpecialVar_0x8004
|
|
ldrh r1, [r1]
|
|
adds r0, 0x44
|
|
strb r1, [r0]
|
|
ldr r0, [r5]
|
|
ldr r1, =gSpecialVar_0x8005
|
|
ldrh r1, [r1]
|
|
adds r0, 0x45
|
|
strb r1, [r0]
|
|
ldr r0, =sub_8160624
|
|
bl SetVBlankCallback
|
|
bl sub_81607EC
|
|
ldr r4, =gUnknown_0203BC38
|
|
ldrb r0, [r4, 0x4]
|
|
bl sub_81D2824
|
|
bl sub_8161280
|
|
ldr r0, =gUnknown_085CEBB0
|
|
bl LoadSpriteSheet
|
|
ldr r0, =gUnknown_085CEBB8
|
|
bl LoadSpritePalette
|
|
bl sub_81610B8
|
|
ldr r0, =gUnknown_03006310
|
|
ldrh r1, [r4]
|
|
ldrh r2, [r4, 0x2]
|
|
bl ListMenuInit
|
|
ldr r1, [r5]
|
|
movs r2, 0x89
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0x2
|
|
bl FillPalette
|
|
ldr r0, =sub_816082C
|
|
bl SetMainCallback2
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8160740
|
|
|
|
thumb_func_start sub_81607EC
|
|
sub_81607EC: @ 81607EC
|
|
push {lr}
|
|
bl sub_8121DA0
|
|
movs r0, 0
|
|
bl ResetBgsAndClearDma3BusyFlags
|
|
ldr r1, =gUnknown_085CEC28
|
|
movs r0, 0
|
|
movs r2, 0x2
|
|
bl InitBgsFromTemplates
|
|
bl sub_8121E10
|
|
movs r1, 0x82
|
|
lsls r1, 5
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81607EC
|
|
|
|
thumb_func_start sub_816082C
|
|
sub_816082C: @ 816082C
|
|
push {lr}
|
|
bl sub_8160868
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl do_scheduled_bg_tilemap_copies_to_vram
|
|
bl UpdatePaletteFade
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_816082C
|
|
|
|
thumb_func_start sub_816084C
|
|
sub_816084C: @ 816084C
|
|
push {r4,lr}
|
|
adds r1, r0, 0
|
|
ldr r4, =gStringVar4
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
adds r0, r4, 0
|
|
bl sub_81D2BF4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_816084C
|
|
|
|
thumb_func_start sub_8160868
|
|
sub_8160868: @ 8160868
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
ldr r1, =gUnknown_0203BC34
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0]
|
|
adds r7, r1, 0
|
|
cmp r0, 0x21
|
|
bls _0816087E
|
|
b _08160E8A
|
|
_0816087E:
|
|
lsls r0, 2
|
|
ldr r1, =_08160890
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08160890:
|
|
.4byte _08160918
|
|
.4byte _08160932
|
|
.4byte _0816094C
|
|
.4byte _08160954
|
|
.4byte _0816095C
|
|
.4byte _08160964
|
|
.4byte _08160980
|
|
.4byte _08160E8A
|
|
.4byte _08160988
|
|
.4byte _081609A8
|
|
.4byte _08160E8A
|
|
.4byte _08160E8A
|
|
.4byte _08160A44
|
|
.4byte _08160A64
|
|
.4byte _08160CB8
|
|
.4byte _08160CD8
|
|
.4byte _08160AB8
|
|
.4byte _08160AD0
|
|
.4byte _08160AEC
|
|
.4byte _08160C1C
|
|
.4byte _08160C48
|
|
.4byte _08160C98
|
|
.4byte _08160CA6
|
|
.4byte _08160E8A
|
|
.4byte _08160B2C
|
|
.4byte _08160B60
|
|
.4byte _08160B80
|
|
.4byte _08160BDC
|
|
.4byte _08160CFC
|
|
.4byte _08160D48
|
|
.4byte _08160E0C
|
|
.4byte _08160E38
|
|
.4byte _08160E58
|
|
.4byte _08160E70
|
|
_08160918:
|
|
ldr r1, [r7]
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
movs r4, 0
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
bl render_previous_quest_text
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r4, [sp]
|
|
movs r1, 0
|
|
b _08160CAE
|
|
_08160932:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08160940
|
|
b _08160E8A
|
|
_08160940:
|
|
ldr r1, [r7]
|
|
movs r0, 0x4
|
|
b _08160E88
|
|
.pool
|
|
_0816094C:
|
|
ldr r1, [r7]
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
b _08160E88
|
|
_08160954:
|
|
movs r0, 0
|
|
bl render_previous_quest_text
|
|
b _0816096A
|
|
_0816095C:
|
|
movs r0, 0
|
|
bl sub_8160F50
|
|
b _08160E8A
|
|
_08160964:
|
|
movs r0, 0
|
|
bl sub_8161074
|
|
_0816096A:
|
|
ldr r0, =gUnknown_0203BC34
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
bl sub_81611AC
|
|
b _08160E8A
|
|
.pool
|
|
_08160980:
|
|
movs r0, 0x1
|
|
bl sub_8160F50
|
|
b _08160E8A
|
|
_08160988:
|
|
bl sub_81D2C3C
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _08160994
|
|
b _08160E8A
|
|
_08160994:
|
|
bl sub_81D2C50
|
|
ldr r0, =gUnknown_0203BC34
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
b _08160E88
|
|
.pool
|
|
_081609A8:
|
|
bl sub_8198C58
|
|
lsls r0, 24
|
|
asrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _08160A0A
|
|
ldr r5, =gUnknown_0203BC34
|
|
ldr r0, [r5]
|
|
adds r0, 0x44
|
|
ldrb r1, [r0]
|
|
movs r0, 0x64
|
|
adds r4, r1, 0
|
|
muls r4, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r0
|
|
bl sub_8161054
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
adds r0, r4, 0
|
|
bl GiveMoveToMon
|
|
lsls r0, 16
|
|
ldr r1, =0xffff0000
|
|
cmp r0, r1
|
|
beq _08160A04
|
|
ldr r0, =gText_PkmnLearnedMove4
|
|
bl sub_816084C
|
|
ldr r1, =gSpecialVar_0x8004
|
|
movs r0, 0x1
|
|
strh r0, [r1]
|
|
ldr r1, [r5]
|
|
movs r0, 0x1F
|
|
b _08160E88
|
|
.pool
|
|
_08160A04:
|
|
ldr r1, [r5]
|
|
movs r0, 0x10
|
|
b _08160E88
|
|
_08160A0A:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _08160A18
|
|
cmp r1, 0x1
|
|
beq _08160A18
|
|
b _08160E8A
|
|
_08160A18:
|
|
ldr r0, =gUnknown_0203BC38
|
|
ldrb r0, [r0, 0x4]
|
|
cmp r0, 0
|
|
bne _08160A30
|
|
ldr r0, =gUnknown_0203BC34
|
|
ldr r1, [r0]
|
|
movs r0, 0x3
|
|
b _08160E88
|
|
.pool
|
|
_08160A30:
|
|
cmp r0, 0x1
|
|
beq _08160A36
|
|
b _08160E8A
|
|
_08160A36:
|
|
ldr r0, =gUnknown_0203BC34
|
|
ldr r1, [r0]
|
|
movs r0, 0x5
|
|
b _08160E88
|
|
.pool
|
|
_08160A44:
|
|
bl sub_81D2C3C
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _08160A50
|
|
b _08160E8A
|
|
_08160A50:
|
|
bl sub_81D2C50
|
|
ldr r0, =gUnknown_0203BC34
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
b _08160E88
|
|
.pool
|
|
_08160A64:
|
|
bl sub_8198C58
|
|
lsls r0, 24
|
|
asrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _08160A7C
|
|
ldr r0, =gSpecialVar_0x8004
|
|
strh r1, [r0]
|
|
b _08160E82
|
|
.pool
|
|
_08160A7C:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _08160A8A
|
|
cmp r1, 0x1
|
|
beq _08160A8A
|
|
b _08160E8A
|
|
_08160A8A:
|
|
ldr r0, =gUnknown_0203BC38
|
|
ldrb r0, [r0, 0x4]
|
|
cmp r0, 0
|
|
bne _08160AA4
|
|
ldr r0, =gUnknown_0203BC34
|
|
ldr r1, [r0]
|
|
movs r0, 0x3
|
|
b _08160E88
|
|
.pool
|
|
_08160AA4:
|
|
cmp r0, 0x1
|
|
beq _08160AAA
|
|
b _08160E8A
|
|
_08160AAA:
|
|
ldr r0, =gUnknown_0203BC34
|
|
ldr r1, [r0]
|
|
movs r0, 0x5
|
|
b _08160E88
|
|
.pool
|
|
_08160AB8:
|
|
ldr r0, =gText_PkmnTryingToLearnMove
|
|
bl sub_816084C
|
|
ldr r0, =gUnknown_0203BC34
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
b _08160E88
|
|
.pool
|
|
_08160AD0:
|
|
bl sub_81D2C3C
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _08160ADC
|
|
b _08160E8A
|
|
_08160ADC:
|
|
bl sub_81D2C50
|
|
ldr r0, =gUnknown_0203BC34
|
|
ldr r1, [r0]
|
|
movs r0, 0x12
|
|
b _08160E88
|
|
.pool
|
|
_08160AEC:
|
|
bl sub_8198C58
|
|
lsls r0, 24
|
|
asrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _08160B10
|
|
ldr r0, =gText_WhichMoveToForget2
|
|
bl sub_816084C
|
|
ldr r0, =gUnknown_0203BC34
|
|
ldr r1, [r0]
|
|
movs r0, 0x13
|
|
b _08160E88
|
|
.pool
|
|
_08160B10:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _08160B1E
|
|
cmp r1, 0x1
|
|
beq _08160B1E
|
|
b _08160E8A
|
|
_08160B1E:
|
|
ldr r0, =gUnknown_0203BC34
|
|
ldr r1, [r0]
|
|
movs r0, 0x18
|
|
b _08160E88
|
|
.pool
|
|
_08160B2C:
|
|
ldr r4, =gStringVar2
|
|
bl sub_8161054
|
|
movs r1, 0xD
|
|
muls r1, r0
|
|
ldr r0, =gMoveNames
|
|
adds r1, r0
|
|
adds r0, r4, 0
|
|
bl StringCopy
|
|
ldr r0, =gText_StopTryingToTeachMove
|
|
bl sub_816084C
|
|
ldr r0, =gUnknown_0203BC34
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
b _08160E88
|
|
.pool
|
|
_08160B60:
|
|
bl sub_81D2C3C
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _08160B6C
|
|
b _08160E8A
|
|
_08160B6C:
|
|
bl sub_81D2C50
|
|
ldr r0, =gUnknown_0203BC34
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
b _08160E88
|
|
.pool
|
|
_08160B80:
|
|
bl sub_8198C58
|
|
lsls r0, 24
|
|
asrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _08160B98
|
|
ldr r0, =gUnknown_0203BC34
|
|
ldr r1, [r0]
|
|
movs r0, 0x1B
|
|
b _08160E88
|
|
.pool
|
|
_08160B98:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _08160BA6
|
|
cmp r1, 0x1
|
|
beq _08160BA6
|
|
b _08160E8A
|
|
_08160BA6:
|
|
ldr r0, =gUnknown_0203BC38
|
|
ldrb r0, [r0, 0x4]
|
|
cmp r0, 0
|
|
bne _08160BC4
|
|
ldr r2, =gUnknown_0203BC34
|
|
ldr r1, [r2]
|
|
movs r0, 0x3
|
|
strb r0, [r1]
|
|
adds r7, r2, 0
|
|
b _08160BD0
|
|
.pool
|
|
_08160BC4:
|
|
ldr r7, =gUnknown_0203BC34
|
|
cmp r0, 0x1
|
|
bne _08160BD0
|
|
ldr r1, [r7]
|
|
movs r0, 0x5
|
|
strb r0, [r1]
|
|
_08160BD0:
|
|
ldr r1, [r7]
|
|
movs r0, 0x10
|
|
b _08160E88
|
|
.pool
|
|
_08160BDC:
|
|
bl sub_81D2C3C
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _08160BE8
|
|
b _08160E8A
|
|
_08160BE8:
|
|
movs r0, 0x3
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, =gUnknown_0203BC38
|
|
ldrb r0, [r0, 0x4]
|
|
cmp r0, 0
|
|
bne _08160C08
|
|
ldr r0, =gUnknown_0203BC34
|
|
ldr r1, [r0]
|
|
movs r0, 0x3
|
|
b _08160E88
|
|
.pool
|
|
_08160C08:
|
|
cmp r0, 0x1
|
|
beq _08160C0E
|
|
b _08160E8A
|
|
_08160C0E:
|
|
ldr r0, =gUnknown_0203BC34
|
|
ldr r1, [r0]
|
|
movs r0, 0x5
|
|
b _08160E88
|
|
.pool
|
|
_08160C1C:
|
|
bl sub_81D2C3C
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, 0
|
|
beq _08160C2A
|
|
b _08160E8A
|
|
_08160C2A:
|
|
ldr r0, =gUnknown_0203BC34
|
|
ldr r1, [r0]
|
|
movs r0, 0x14
|
|
strb r0, [r1]
|
|
subs r0, 0x15
|
|
str r2, [sp]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
b _08160E8A
|
|
.pool
|
|
_08160C48:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08160C56
|
|
b _08160E8A
|
|
_08160C56:
|
|
bl sub_8161054
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r4, =gPlayerParty
|
|
ldr r1, =gUnknown_0203BC34
|
|
ldr r1, [r1]
|
|
adds r1, 0x44
|
|
ldrb r1, [r1]
|
|
ldr r2, =gPlayerPartyCount
|
|
ldrb r2, [r2]
|
|
subs r2, 0x1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r3, =sub_8160740
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
bl sub_81BFA38
|
|
bl sub_8160EA0
|
|
b _08160E8A
|
|
.pool
|
|
_08160C98:
|
|
bl sub_81D2C3C
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _08160CA4
|
|
b _08160E8A
|
|
_08160CA4:
|
|
b _08160E82
|
|
_08160CA6:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
_08160CAE:
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
b _08160E8A
|
|
_08160CB8:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, =gUnknown_0203BC34
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
b _08160E88
|
|
.pool
|
|
_08160CD8:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08160CE6
|
|
b _08160E8A
|
|
_08160CE6:
|
|
bl sub_8160EA0
|
|
ldr r0, =c2_exit_to_overworld_2_switch
|
|
bl SetMainCallback2
|
|
b _08160E8A
|
|
.pool
|
|
_08160CFC:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, =gUnknown_0203BC34
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, =gUnknown_0203BC38
|
|
ldrb r0, [r0, 0x4]
|
|
cmp r0, 0
|
|
bne _08160D30
|
|
movs r0, 0x1
|
|
bl render_previous_quest_text
|
|
b _08160D3A
|
|
.pool
|
|
_08160D30:
|
|
cmp r0, 0x1
|
|
bne _08160D3A
|
|
movs r0, 0x1
|
|
bl sub_8161074
|
|
_08160D3A:
|
|
bl sub_8161234
|
|
movs r0, 0x3
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
b _08160E8A
|
|
_08160D48:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08160D56
|
|
b _08160E8A
|
|
_08160D56:
|
|
ldr r1, [r7]
|
|
adds r2, r1, 0
|
|
adds r2, 0x45
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x4
|
|
bne _08160D6C
|
|
movs r0, 0x18
|
|
b _08160E88
|
|
.pool
|
|
_08160D6C:
|
|
adds r0, r1, 0
|
|
adds r0, 0x44
|
|
ldrb r0, [r0]
|
|
movs r4, 0x64
|
|
muls r0, r4
|
|
ldr r5, =gPlayerParty
|
|
adds r0, r5
|
|
ldrb r1, [r2]
|
|
adds r1, 0xD
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r2, =gStringVar3
|
|
movs r1, 0xD
|
|
mov r8, r1
|
|
mov r1, r8
|
|
muls r1, r0
|
|
ldr r6, =gMoveNames
|
|
adds r1, r6
|
|
adds r0, r2, 0
|
|
bl StringCopy
|
|
ldr r1, [r7]
|
|
adds r0, r1, 0
|
|
adds r0, 0x44
|
|
ldrb r0, [r0]
|
|
muls r0, r4
|
|
adds r0, r5
|
|
adds r1, 0x45
|
|
ldrb r1, [r1]
|
|
bl RemoveMonPPBonus
|
|
ldr r0, [r7]
|
|
adds r0, 0x44
|
|
ldrb r0, [r0]
|
|
muls r4, r0
|
|
adds r4, r5
|
|
bl sub_8161054
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
ldr r0, [r7]
|
|
adds r0, 0x45
|
|
ldrb r2, [r0]
|
|
adds r0, r4, 0
|
|
bl SetMonMoveSlot
|
|
ldr r4, =gStringVar2
|
|
bl sub_8161054
|
|
mov r1, r8
|
|
muls r1, r0
|
|
adds r1, r6
|
|
adds r0, r4, 0
|
|
bl StringCopy
|
|
ldr r0, =gText_12AndPoof
|
|
bl sub_816084C
|
|
ldr r1, [r7]
|
|
movs r0, 0x1E
|
|
strb r0, [r1]
|
|
ldr r1, =gSpecialVar_0x8004
|
|
movs r0, 0x1
|
|
strh r0, [r1]
|
|
b _08160E8A
|
|
.pool
|
|
_08160E0C:
|
|
bl sub_81D2C3C
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _08160E8A
|
|
ldr r0, =gText_PkmnForgotMoveAndLearnedNew
|
|
bl sub_816084C
|
|
ldr r0, =gUnknown_0203BC34
|
|
ldr r1, [r0]
|
|
movs r0, 0x1F
|
|
strb r0, [r1]
|
|
ldr r0, =0x0000016f
|
|
bl PlayFanfare
|
|
b _08160E8A
|
|
.pool
|
|
_08160E38:
|
|
bl sub_81D2C3C
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _08160E8A
|
|
ldr r0, =0x0000016f
|
|
bl PlayFanfare
|
|
ldr r0, =gUnknown_0203BC34
|
|
ldr r1, [r0]
|
|
movs r0, 0x20
|
|
b _08160E88
|
|
.pool
|
|
_08160E58:
|
|
bl IsFanfareTaskInactive
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08160E8A
|
|
ldr r0, =gUnknown_0203BC34
|
|
ldr r1, [r0]
|
|
movs r0, 0x21
|
|
b _08160E88
|
|
.pool
|
|
_08160E70:
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08160E8A
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
_08160E82:
|
|
ldr r0, =gUnknown_0203BC34
|
|
ldr r1, [r0]
|
|
movs r0, 0xE
|
|
_08160E88:
|
|
strb r0, [r1]
|
|
_08160E8A:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8160868
|
|
|
|
thumb_func_start sub_8160EA0
|
|
sub_8160EA0: @ 8160EA0
|
|
push {r4,lr}
|
|
bl sub_8161234
|
|
ldr r4, =gUnknown_0203BC34
|
|
ldr r0, [r4]
|
|
movs r1, 0x89
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
ldr r1, =gUnknown_0203BC38
|
|
adds r2, r1, 0x2
|
|
bl sub_81AE6C8
|
|
bl FreeAllWindowBuffers
|
|
ldr r0, [r4]
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
bl ResetSpriteData
|
|
bl FreeAllSpritePalettes
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8160EA0
|
|
|
|
thumb_func_start render_previous_quest_text
|
|
render_previous_quest_text: @ 8160EE0
|
|
push {r4-r6,lr}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r2, 0
|
|
ldr r6, =gSprites
|
|
ldr r4, =gUnknown_0203BC34
|
|
movs r3, 0x4
|
|
_08160EF0:
|
|
ldr r0, [r4]
|
|
adds r0, 0x1
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
orrs r1, r3
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0xF
|
|
ble _08160EF0
|
|
cmp r5, 0
|
|
bne _08160F38
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gText_TeachWhichMoveToPkmn
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
movs r0, 0x3
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r5, [sp, 0x8]
|
|
movs r0, 0x3
|
|
movs r1, 0x1
|
|
adds r2, r4, 0
|
|
movs r3, 0
|
|
bl PrintTextOnWindow
|
|
_08160F38:
|
|
add sp, 0xC
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end render_previous_quest_text
|
|
|
|
thumb_func_start sub_8160F50
|
|
sub_8160F50: @ 8160F50
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r6, =gUnknown_0203BC34
|
|
ldr r0, [r6]
|
|
movs r4, 0x89
|
|
lsls r4, 1
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl ListMenuHandleInput
|
|
adds r5, r0, 0
|
|
ldr r0, [r6]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
ldr r4, =gUnknown_0203BC38
|
|
adds r2, r4, 0x2
|
|
adds r1, r4, 0
|
|
bl get_coro_args_x18_x1A
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
cmp r5, r0
|
|
beq _08160FE4
|
|
adds r0, 0x1
|
|
cmp r5, r0
|
|
bne _08161010
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x30
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08160F9C
|
|
bl GetLRKeysState
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0816103E
|
|
_08160F9C:
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
cmp r7, 0
|
|
bne _08160FC4
|
|
movs r0, 0x1
|
|
bl PutWindowTilemap
|
|
ldr r0, [r6]
|
|
movs r1, 0x5
|
|
strb r1, [r0]
|
|
movs r0, 0x1
|
|
strb r0, [r4, 0x4]
|
|
b _08160FD4
|
|
.pool
|
|
_08160FC4:
|
|
movs r0, 0
|
|
bl PutWindowTilemap
|
|
ldr r0, [r6]
|
|
movs r2, 0
|
|
movs r1, 0x3
|
|
strb r1, [r0]
|
|
strb r2, [r4, 0x4]
|
|
_08160FD4:
|
|
movs r0, 0x1
|
|
bl schedule_bg_copy_tilemap_to_vram
|
|
bl sub_8161054
|
|
bl sub_816137C
|
|
b _0816103E
|
|
_08160FE4:
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
bl sub_8161234
|
|
ldr r1, [r6]
|
|
movs r0, 0xC
|
|
strb r0, [r1]
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gText_GiveUpTeachingNewMove
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
adds r0, r4, 0
|
|
bl sub_81D2BF4
|
|
b _0816103E
|
|
.pool
|
|
_08161010:
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
bl sub_8161234
|
|
ldr r1, [r6]
|
|
movs r0, 0x8
|
|
strb r0, [r1]
|
|
ldr r0, =gStringVar2
|
|
movs r1, 0xD
|
|
muls r1, r5
|
|
ldr r2, =gMoveNames
|
|
adds r1, r2
|
|
bl StringCopy
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gText_TeachX
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
adds r0, r4, 0
|
|
bl sub_81D2BF4
|
|
_0816103E:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8160F50
|
|
|
|
thumb_func_start sub_8161054
|
|
sub_8161054: @ 8161054
|
|
ldr r0, =gUnknown_0203BC34
|
|
ldr r2, [r0]
|
|
ldr r1, =gUnknown_0203BC38
|
|
ldrh r0, [r1, 0x2]
|
|
ldrh r1, [r1]
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r2, 0x4C
|
|
adds r2, r0
|
|
ldr r0, [r2]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_8161054
|
|
|
|
thumb_func_start sub_8161074
|
|
sub_8161074: @ 8161074
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0
|
|
bne _081610A6
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gText_TeachWhichMoveToPkmn
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
movs r0, 0x3
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r5, [sp, 0x8]
|
|
movs r0, 0x3
|
|
movs r1, 0x1
|
|
adds r2, r4, 0
|
|
movs r3, 0
|
|
bl PrintTextOnWindow
|
|
_081610A6:
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8161074
|
|
|
|
thumb_func_start sub_81610B8
|
|
sub_81610B8: @ 81610B8
|
|
push {r4-r7,lr}
|
|
ldr r2, =gUnknown_0203BC34
|
|
ldr r0, [r2]
|
|
movs r1, 0x8A
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
movs r1, 0xFF
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
ldr r2, =0x00000113
|
|
adds r1, r0, r2
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
strb r0, [r1]
|
|
bl sub_81611AC
|
|
movs r4, 0
|
|
ldr r5, =gUnknown_085CEC10
|
|
_081610DC:
|
|
adds r2, r4, 0
|
|
cmp r4, 0
|
|
bge _081610E4
|
|
adds r2, r4, 0x3
|
|
_081610E4:
|
|
asrs r2, 2
|
|
lsls r1, r2, 2
|
|
subs r1, r4, r1
|
|
lsls r1, 19
|
|
movs r0, 0xD0
|
|
lsls r0, 15
|
|
adds r1, r0
|
|
asrs r1, 16
|
|
lsls r2, 19
|
|
movs r0, 0x90
|
|
lsls r0, 14
|
|
adds r2, r0
|
|
asrs r2, 16
|
|
adds r0, r5, 0
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r2, =gUnknown_0203BC34
|
|
ldr r1, [r2]
|
|
adds r1, 0x1
|
|
adds r1, r4
|
|
strb r0, [r1]
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _081610DC
|
|
movs r4, 0
|
|
ldr r7, =gUnknown_085CEC10
|
|
adds r6, r2, 0
|
|
_0816111C:
|
|
adds r2, r4, 0
|
|
cmp r4, 0
|
|
bge _08161124
|
|
adds r2, r4, 0x3
|
|
_08161124:
|
|
asrs r2, 2
|
|
lsls r1, r2, 2
|
|
subs r1, r4, r1
|
|
lsls r1, 19
|
|
movs r0, 0xD0
|
|
lsls r0, 15
|
|
adds r1, r0
|
|
asrs r1, 16
|
|
lsls r2, 19
|
|
movs r0, 0xD0
|
|
lsls r0, 14
|
|
adds r2, r0
|
|
asrs r2, 16
|
|
adds r0, r7, 0
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r1, [r6]
|
|
adds r2, r4, 0
|
|
adds r2, 0x8
|
|
adds r1, 0x1
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r6]
|
|
adds r0, 0x1
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r5, =gSprites
|
|
adds r0, r5
|
|
movs r1, 0x2
|
|
bl StartSpriteAnim
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _0816111C
|
|
movs r4, 0
|
|
ldr r3, =gUnknown_0203BC34
|
|
movs r2, 0x4
|
|
_08161176:
|
|
ldr r0, [r3]
|
|
adds r0, 0x1
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
cmp r4, 0xF
|
|
ble _08161176
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81610B8
|
|
|
|
thumb_func_start sub_81611AC
|
|
sub_81611AC: @ 81611AC
|
|
push {r4-r6,lr}
|
|
ldr r4, =gUnknown_0203BC34
|
|
ldr r1, [r4]
|
|
movs r2, 0x8A
|
|
lsls r2, 1
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xFF
|
|
bne _081611D4
|
|
ldr r0, =gUnknown_085CEBC0
|
|
movs r3, 0x8B
|
|
lsls r3, 1
|
|
adds r1, r3
|
|
bl AddScrollIndicatorArrowPair
|
|
ldr r1, [r4]
|
|
movs r5, 0x8A
|
|
lsls r5, 1
|
|
adds r1, r5
|
|
strb r0, [r1]
|
|
_081611D4:
|
|
ldr r0, [r4]
|
|
ldr r6, =0x00000113
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xFF
|
|
bne _08161210
|
|
ldr r0, =gUnknown_0203CE8C
|
|
adds r2, r0, 0
|
|
ldr r1, =gUnknown_085CEBD0
|
|
ldm r1!, {r3,r5,r6}
|
|
stm r2!, {r3,r5,r6}
|
|
ldr r1, [r1]
|
|
str r1, [r2]
|
|
ldr r2, [r4]
|
|
movs r3, 0x88
|
|
lsls r3, 1
|
|
adds r1, r2, r3
|
|
ldrb r1, [r1]
|
|
ldr r5, =0x00000111
|
|
adds r2, r5
|
|
ldrb r2, [r2]
|
|
subs r1, r2
|
|
strh r1, [r0, 0x8]
|
|
ldr r1, =gUnknown_0203BC38
|
|
bl AddScrollIndicatorArrowPair
|
|
ldr r1, [r4]
|
|
ldr r6, =0x00000113
|
|
adds r1, r6
|
|
strb r0, [r1]
|
|
_08161210:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81611AC
|
|
|
|
thumb_func_start sub_8161234
|
|
sub_8161234: @ 8161234
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_0203BC34
|
|
ldr r0, [r4]
|
|
movs r2, 0x8A
|
|
lsls r2, 1
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xFF
|
|
beq _08161256
|
|
bl RemoveScrollIndicatorArrowPair
|
|
ldr r0, [r4]
|
|
movs r1, 0x8A
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
movs r1, 0xFF
|
|
strb r1, [r0]
|
|
_08161256:
|
|
ldr r0, [r4]
|
|
ldr r2, =0x00000113
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xFF
|
|
beq _08161270
|
|
bl RemoveScrollIndicatorArrowPair
|
|
ldr r0, [r4]
|
|
ldr r2, =0x00000113
|
|
adds r1, r0, r2
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
_08161270:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8161234
|
|
|
|
thumb_func_start sub_8161280
|
|
sub_8161280: @ 8161280
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0xC
|
|
ldr r4, =gUnknown_0203BC34
|
|
ldr r1, [r4]
|
|
adds r0, r1, 0
|
|
adds r0, 0x44
|
|
ldrb r2, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r2
|
|
ldr r2, =gPlayerParty
|
|
adds r0, r2
|
|
adds r1, 0x12
|
|
bl GetMoveRelearnerMoves
|
|
ldr r1, [r4]
|
|
movs r6, 0x88
|
|
lsls r6, 1
|
|
adds r1, r6
|
|
strb r0, [r1]
|
|
movs r5, 0
|
|
ldr r0, [r4]
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bge _081612F6
|
|
mov r8, r4
|
|
movs r0, 0xD
|
|
mov r12, r0
|
|
ldr r2, =gMoveNames
|
|
mov r9, r2
|
|
_081612C2:
|
|
mov r7, r8
|
|
ldr r4, [r7]
|
|
lsls r3, r5, 3
|
|
adds r2, r4, 0
|
|
adds r2, 0x48
|
|
adds r2, r3
|
|
lsls r0, r5, 1
|
|
adds r1, r4, 0
|
|
adds r1, 0x12
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
mov r7, r12
|
|
muls r7, r0
|
|
adds r0, r7, 0
|
|
add r0, r9
|
|
str r0, [r2]
|
|
adds r0, r4, 0
|
|
adds r0, 0x4C
|
|
adds r0, r3
|
|
ldrh r1, [r1]
|
|
str r1, [r0]
|
|
adds r5, 0x1
|
|
adds r0, r4, r6
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
blt _081612C2
|
|
_081612F6:
|
|
ldr r4, =gUnknown_0203BC34
|
|
ldr r0, [r4]
|
|
adds r0, 0x44
|
|
ldrb r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x2
|
|
mov r2, sp
|
|
bl GetMonData
|
|
ldr r0, =gStringVar1
|
|
mov r1, sp
|
|
bl StringCopy10
|
|
ldr r2, [r4]
|
|
movs r5, 0x88
|
|
lsls r5, 1
|
|
adds r3, r2, r5
|
|
ldrb r0, [r3]
|
|
lsls r0, 3
|
|
adds r1, r2, 0
|
|
adds r1, 0x48
|
|
adds r1, r0
|
|
ldr r0, =gText_Cancel
|
|
str r0, [r1]
|
|
ldrb r0, [r3]
|
|
lsls r0, 3
|
|
adds r2, 0x4C
|
|
adds r2, r0
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
str r0, [r2]
|
|
ldrb r0, [r3]
|
|
adds r0, 0x1
|
|
strb r0, [r3]
|
|
ldr r1, [r4]
|
|
adds r0, r1, 0
|
|
adds r0, 0x48
|
|
adds r1, r5
|
|
ldrb r1, [r1]
|
|
bl sub_81D28C8
|
|
ldr r1, [r4]
|
|
ldr r2, =0x00000111
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
add sp, 0xC
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8161280
|
|
|
|
thumb_func_start sub_816137C
|
|
sub_816137C: @ 816137C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r4, r0, 0
|
|
ldr r0, =gUnknown_0203BC38
|
|
ldrb r0, [r0, 0x4]
|
|
cmp r0, 0
|
|
beq _08161394
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
cmp r4, r0
|
|
bne _081613CC
|
|
_08161394:
|
|
movs r5, 0
|
|
ldr r4, =gSprites
|
|
ldr r3, =gUnknown_0203BC34
|
|
movs r2, 0x4
|
|
_0816139C:
|
|
ldr r0, [r3]
|
|
adds r0, 0x1
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
cmp r5, 0xF
|
|
bls _0816139C
|
|
b _081614FE
|
|
.pool
|
|
_081613CC:
|
|
ldr r1, =gContestEffects
|
|
ldr r0, =gContestMoves
|
|
lsls r4, 3
|
|
adds r0, r4, r0
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x1]
|
|
movs r1, 0xA
|
|
bl __udivsi3
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
mov r8, r4
|
|
cmp r6, 0xFF
|
|
bne _081613EE
|
|
movs r6, 0
|
|
_081613EE:
|
|
movs r5, 0
|
|
ldr r7, =gUnknown_0203BC34
|
|
ldr r4, =gSprites
|
|
_081613F4:
|
|
cmp r5, r6
|
|
bcs _08161420
|
|
ldr r0, [r7]
|
|
adds r0, 0x1
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
b _08161436
|
|
.pool
|
|
_08161420:
|
|
ldr r0, [r7]
|
|
adds r0, 0x1
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0
|
|
bl StartSpriteAnim
|
|
_08161436:
|
|
ldr r0, [r7]
|
|
adds r0, 0x1
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r3, 0x5
|
|
negs r3, r3
|
|
adds r2, r3, 0
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
cmp r5, 0x7
|
|
bls _081613F4
|
|
ldr r1, =gContestEffects
|
|
ldr r0, =gContestMoves
|
|
add r0, r8
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x2]
|
|
movs r1, 0xA
|
|
bl __udivsi3
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0xFF
|
|
bne _0816147C
|
|
movs r6, 0
|
|
_0816147C:
|
|
movs r5, 0
|
|
ldr r0, =gUnknown_0203BC34
|
|
mov r8, r0
|
|
ldr r7, =gSprites
|
|
_08161484:
|
|
cmp r5, r6
|
|
bcs _081614B8
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r4, r5, 0
|
|
adds r4, 0x8
|
|
adds r0, 0x1
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
movs r1, 0x3
|
|
bl StartSpriteAnim
|
|
b _081614D4
|
|
.pool
|
|
_081614B8:
|
|
mov r3, r8
|
|
ldr r0, [r3]
|
|
adds r4, r5, 0
|
|
adds r4, 0x8
|
|
adds r0, 0x1
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
movs r1, 0x2
|
|
bl StartSpriteAnim
|
|
_081614D4:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r3, 0x5
|
|
negs r3, r3
|
|
adds r2, r3, 0
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
cmp r5, 0x7
|
|
bls _08161484
|
|
_081614FE:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_816137C
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|