mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-26 11:44:17 +01:00
8291 lines
125 KiB
ArmAsm
8291 lines
125 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_80DB884
|
|
sub_80DB884: @ 80DB884
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
_080DB888:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_80DB798
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DB888
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DB884
|
|
|
|
thumb_func_start sub_80DB89C
|
|
sub_80DB89C: @ 80DB89C
|
|
push {lr}
|
|
movs r0, 0x4
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0x4
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
movs r0, 0
|
|
bl Contest_SetBgCopyFlags
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DB89C
|
|
|
|
thumb_func_start sub_80DB8B8
|
|
sub_80DB8B8: @ 80DB8B8
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r5, r4, 0
|
|
adds r0, r4, 0
|
|
bl Contest_IsMonsTurnDisabled
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080DB8D0
|
|
movs r0, 0
|
|
b _080DB90A
|
|
_080DB8D0:
|
|
ldr r0, =gContestPlayerMonIndex
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
beq _080DB8F4
|
|
adds r0, r4, 0
|
|
bl ContestAI_ResetAI
|
|
bl ContestAI_GetActionToUse
|
|
lsls r0, 24
|
|
ldr r2, =gContestMons
|
|
lsrs r0, 23
|
|
lsls r1, r4, 6
|
|
b _080DB902
|
|
.pool
|
|
_080DB8F4:
|
|
ldr r2, =gContestMons
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
lsls r1, r5, 6
|
|
_080DB902:
|
|
adds r0, r1
|
|
adds r2, 0x1E
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
_080DB90A:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80DB8B8
|
|
|
|
thumb_func_start sub_80DB918
|
|
sub_80DB918: @ 80DB918
|
|
push {r4,r5,lr}
|
|
movs r4, 0
|
|
movs r5, 0
|
|
_080DB91E:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_80DB8B8
|
|
ldr r1, =gContestResources
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, 0x4]
|
|
adds r1, r5, r1
|
|
strh r0, [r1, 0x6]
|
|
adds r5, 0x1C
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DB91E
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DB918
|
|
|
|
thumb_func_start sub_80DB944
|
|
sub_80DB944: @ 80DB944
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x8
|
|
ldr r5, =gContestResources
|
|
mov r4, sp
|
|
movs r3, 0
|
|
movs r6, 0x3
|
|
_080DB956:
|
|
ldr r2, [r5]
|
|
ldr r1, [r2, 0x4]
|
|
adds r1, r3, r1
|
|
ldrh r0, [r1, 0x2]
|
|
ldrh r7, [r1, 0x4]
|
|
adds r0, r7
|
|
strh r0, [r1, 0x4]
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r3, r0
|
|
ldrh r0, [r0, 0x4]
|
|
strh r0, [r4]
|
|
adds r4, 0x2
|
|
adds r3, 0x1C
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _080DB956
|
|
movs r6, 0
|
|
_080DB978:
|
|
movs r4, 0x3
|
|
cmp r4, r6
|
|
ble _080DB9A4
|
|
_080DB97E:
|
|
subs r5, r4, 0x1
|
|
lsls r0, r5, 1
|
|
mov r1, sp
|
|
adds r3, r1, r0
|
|
lsls r0, r4, 1
|
|
adds r2, r1, r0
|
|
ldrh r4, [r3]
|
|
movs r7, 0
|
|
ldrsh r1, [r3, r7]
|
|
movs r7, 0
|
|
ldrsh r0, [r2, r7]
|
|
cmp r1, r0
|
|
bge _080DB99E
|
|
ldrh r0, [r2]
|
|
strh r4, [r2]
|
|
strh r0, [r3]
|
|
_080DB99E:
|
|
adds r4, r5, 0
|
|
cmp r4, r6
|
|
bgt _080DB97E
|
|
_080DB9A4:
|
|
adds r6, 0x1
|
|
cmp r6, 0x2
|
|
ble _080DB978
|
|
movs r6, 0
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
mov r9, r0
|
|
ldr r1, =gContestResources
|
|
mov r8, r1
|
|
movs r7, 0x3
|
|
mov r12, r7
|
|
_080DB9BA:
|
|
movs r4, 0
|
|
lsls r0, r6, 3
|
|
adds r7, r6, 0x1
|
|
subs r0, r6
|
|
lsls r5, r0, 2
|
|
mov r3, sp
|
|
_080DB9C6:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, 0x4]
|
|
adds r2, r5, r0
|
|
movs r6, 0x4
|
|
ldrsh r1, [r2, r6]
|
|
movs r6, 0
|
|
ldrsh r0, [r3, r6]
|
|
cmp r1, r0
|
|
bne _080DB9F0
|
|
mov r0, r12
|
|
ands r4, r0
|
|
ldrb r1, [r2, 0xB]
|
|
mov r0, r9
|
|
ands r0, r1
|
|
orrs r0, r4
|
|
strb r0, [r2, 0xB]
|
|
b _080DB9F8
|
|
.pool
|
|
_080DB9F0:
|
|
adds r3, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DB9C6
|
|
_080DB9F8:
|
|
adds r6, r7, 0
|
|
cmp r6, 0x3
|
|
ble _080DB9BA
|
|
movs r0, 0x1
|
|
bl sub_80DCE58
|
|
bl sub_80DD590
|
|
add sp, 0x8
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DB944
|
|
|
|
thumb_func_start sub_80DBA18
|
|
sub_80DBA18: @ 80DBA18
|
|
push {r4,r5,lr}
|
|
ldr r4, =gContestResources
|
|
movs r2, 0
|
|
movs r3, 0x3
|
|
_080DBA20:
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x4]
|
|
adds r1, r2, r0
|
|
ldrh r0, [r1, 0x6]
|
|
cmp r0, 0
|
|
bne _080DBA34
|
|
movs r1, 0x5
|
|
b _080DBA52
|
|
.pool
|
|
_080DBA34:
|
|
movs r5, 0x2
|
|
ldrsh r0, [r1, r5]
|
|
movs r1, 0
|
|
cmp r0, 0
|
|
ble _080DBA52
|
|
movs r1, 0x1
|
|
cmp r0, 0x1D
|
|
ble _080DBA52
|
|
movs r1, 0x2
|
|
cmp r0, 0x3B
|
|
ble _080DBA52
|
|
movs r1, 0x4
|
|
cmp r0, 0x4F
|
|
bgt _080DBA52
|
|
movs r1, 0x3
|
|
_080DBA52:
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r2, r0
|
|
strb r1, [r0, 0x1A]
|
|
adds r2, 0x1C
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _080DBA20
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DBA18
|
|
|
|
thumb_func_start sub_80DBA68
|
|
sub_80DBA68: @ 80DBA68
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gContestResources
|
|
ldr r1, [r1]
|
|
ldr r2, [r1, 0x4]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r2, r1, r2
|
|
ldrb r1, [r2, 0xC]
|
|
movs r0, 0x6
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080DBA90
|
|
ldrb r1, [r2, 0xB]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DBA98
|
|
_080DBA90:
|
|
movs r0, 0
|
|
b _080DBA9A
|
|
.pool
|
|
_080DBA98:
|
|
movs r0, 0x1
|
|
_080DBA9A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80DBA68
|
|
|
|
thumb_func_start sub_80DBAA0
|
|
sub_80DBAA0: @ 80DBAA0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r5, =gContestResources
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r1, 0x7
|
|
negs r1, r1
|
|
mov r10, r1
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
mov r9, r0
|
|
movs r4, 0
|
|
movs r6, 0x3
|
|
_080DBAC0:
|
|
ldr r1, [r5]
|
|
ldr r0, [r1, 0x4]
|
|
adds r0, r4, r0
|
|
movs r2, 0
|
|
strh r2, [r0, 0x2]
|
|
ldr r0, [r1, 0x4]
|
|
adds r0, r4, r0
|
|
strh r2, [r0]
|
|
ldr r0, [r1, 0x4]
|
|
adds r0, r4, r0
|
|
mov r1, r8
|
|
strb r1, [r0, 0x12]
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
adds r3, r4, r0
|
|
ldrb r2, [r3, 0xC]
|
|
movs r0, 0x6
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080DBAFC
|
|
lsls r0, r2, 29
|
|
lsrs r0, 30
|
|
subs r0, 0x1
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
lsls r0, 1
|
|
mov r1, r10
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, 0xC]
|
|
_080DBAFC:
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r4, r0
|
|
mov r1, r8
|
|
strb r1, [r0, 0xE]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x10]
|
|
mov r0, r9
|
|
ands r0, r2
|
|
strb r0, [r1, 0x10]
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r4, r0
|
|
mov r1, r8
|
|
strb r1, [r0, 0xF]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x10]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x10]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x10]
|
|
movs r7, 0x5
|
|
negs r7, r7
|
|
adds r0, r7, 0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x10]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x10]
|
|
movs r0, 0x9
|
|
negs r0, r0
|
|
mov r12, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x10]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0xC]
|
|
mov r0, r9
|
|
ands r0, r2
|
|
strb r0, [r1, 0xC]
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r4, r0
|
|
movs r1, 0xFF
|
|
strb r1, [r0, 0x13]
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r4, r0
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
strb r1, [r0, 0x14]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x10]
|
|
movs r0, 0x31
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x10]
|
|
ldr r0, [r5]
|
|
ldr r2, [r0, 0x4]
|
|
adds r2, r4, r2
|
|
ldrb r3, [r2, 0x15]
|
|
lsls r1, r3, 31
|
|
lsrs r1, 31
|
|
lsls r1, 2
|
|
adds r0, r7, 0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x15]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x15]
|
|
mov r0, r9
|
|
ands r0, r2
|
|
strb r0, [r1, 0x15]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x11]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x11]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x11]
|
|
movs r0, 0x21
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x11]
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
adds r2, r4, r0
|
|
ldrb r1, [r2, 0x11]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DBBF4
|
|
ldrb r1, [r2, 0xC]
|
|
mov r0, r10
|
|
ands r0, r1
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r2, 0xC]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x11]
|
|
adds r0, r7, 0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x11]
|
|
_080DBBF4:
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
adds r2, r4, r0
|
|
ldrb r1, [r2, 0x11]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DBC1A
|
|
ldrb r0, [r2, 0xB]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2, 0xB]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x11]
|
|
mov r0, r12
|
|
ands r0, r2
|
|
strb r0, [r1, 0x11]
|
|
_080DBC1A:
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x11]
|
|
movs r0, 0x11
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x11]
|
|
adds r4, 0x1C
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
blt _080DBC34
|
|
b _080DBAC0
|
|
_080DBC34:
|
|
movs r6, 0
|
|
ldr r5, =gContestResources
|
|
movs r7, 0
|
|
movs r4, 0
|
|
_080DBC3C:
|
|
ldr r3, [r5]
|
|
ldr r0, [r3, 0x4]
|
|
adds r0, r4, r0
|
|
ldrh r1, [r0, 0x6]
|
|
strh r1, [r0, 0x8]
|
|
ldr r2, [r3]
|
|
lsls r1, r6, 1
|
|
ldrb r0, [r2, 0x1]
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
adds r2, 0x1C
|
|
adds r2, r1
|
|
ldr r0, [r3, 0x4]
|
|
adds r0, r4, r0
|
|
ldrh r0, [r0, 0x6]
|
|
strh r0, [r2]
|
|
ldr r0, [r3, 0x4]
|
|
adds r0, r4, r0
|
|
ldrh r0, [r0, 0x6]
|
|
bl Contest_GetMoveExcitement
|
|
ldr r1, [r5]
|
|
ldr r2, [r1]
|
|
ldrb r1, [r2, 0x1]
|
|
lsls r1, 2
|
|
adds r1, r6, r1
|
|
adds r2, 0x44
|
|
adds r2, r1
|
|
strb r0, [r2]
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r4, r0
|
|
strh r7, [r0, 0x6]
|
|
adds r4, 0x1C
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _080DBC3C
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r2, [r0, 0x10]
|
|
ldrb r1, [r2, 0x1]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x1]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DBAA0
|
|
|
|
thumb_func_start Contest_IsMonsTurnDisabled
|
|
Contest_IsMonsTurnDisabled: @ 80DBCA8
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gContestResources
|
|
ldr r1, [r1]
|
|
ldr r2, [r1, 0x4]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r2, r1, r2
|
|
ldrb r1, [r2, 0xC]
|
|
movs r0, 0x6
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080DBCD0
|
|
ldrb r1, [r2, 0xB]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DBCD8
|
|
_080DBCD0:
|
|
movs r0, 0x1
|
|
b _080DBCDA
|
|
.pool
|
|
_080DBCD8:
|
|
movs r0, 0
|
|
_080DBCDA:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end Contest_IsMonsTurnDisabled
|
|
|
|
thumb_func_start sub_80DBCE0
|
|
sub_80DBCE0: @ 80DBCE0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
bl sub_80DBD34
|
|
ldr r1, =gUnknown_02039F18
|
|
lsls r4, 1
|
|
adds r1, r4, r1
|
|
strh r0, [r1]
|
|
ldr r2, =gUnknown_02039F08
|
|
adds r2, r4, r2
|
|
ldr r1, =gContestMonConditions
|
|
adds r4, r1
|
|
ldrh r4, [r4]
|
|
adds r0, r4
|
|
strh r0, [r2]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DBCE0
|
|
|
|
thumb_func_start sub_80DBD18
|
|
sub_80DBD18: @ 80DBD18
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
_080DBD1C:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_80DBCE0
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DBD1C
|
|
bl sub_80DBD4C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DBD18
|
|
|
|
thumb_func_start sub_80DBD34
|
|
sub_80DBD34: @ 80DBD34
|
|
lsls r0, 24
|
|
ldr r1, =gUnknown_02039F10
|
|
lsrs r0, 23
|
|
adds r0, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
lsls r0, 17
|
|
asrs r0, 16
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_80DBD34
|
|
|
|
thumb_func_start sub_80DBD4C
|
|
sub_80DBD4C: @ 80DBD4C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x70
|
|
mov r0, sp
|
|
movs r1, 0
|
|
movs r2, 0x8
|
|
bl memset
|
|
movs r0, 0
|
|
mov r9, r0
|
|
mov r1, sp
|
|
adds r1, 0x8
|
|
str r1, [sp, 0x64]
|
|
mov r3, sp
|
|
adds r3, 0xC
|
|
str r3, [sp, 0x68]
|
|
mov r6, sp
|
|
adds r6, 0x14
|
|
str r6, [sp, 0x6C]
|
|
mov r4, sp
|
|
_080DBD7A:
|
|
bl Random
|
|
strh r0, [r4]
|
|
movs r2, 0
|
|
cmp r2, r9
|
|
bge _080DBDB8
|
|
mov r1, sp
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrh r1, [r1]
|
|
cmp r0, r1
|
|
bne _080DBD9C
|
|
subs r4, 0x2
|
|
movs r7, 0x1
|
|
negs r7, r7
|
|
add r9, r7
|
|
b _080DBDB8
|
|
_080DBD9C:
|
|
adds r2, 0x1
|
|
cmp r2, r9
|
|
bge _080DBDB8
|
|
lsls r0, r2, 1
|
|
mov r3, sp
|
|
adds r1, r3, r0
|
|
ldrh r0, [r4]
|
|
ldrh r1, [r1]
|
|
cmp r0, r1
|
|
bne _080DBD9C
|
|
subs r4, 0x2
|
|
movs r6, 0x1
|
|
negs r6, r6
|
|
add r9, r6
|
|
_080DBDB8:
|
|
adds r4, 0x2
|
|
movs r7, 0x1
|
|
add r9, r7
|
|
mov r0, r9
|
|
cmp r0, 0x3
|
|
ble _080DBD7A
|
|
movs r1, 0
|
|
mov r9, r1
|
|
mov r4, sp
|
|
ldr r6, =gUnknown_02039F08
|
|
ldr r2, [sp, 0x64]
|
|
ldr r5, =gContestMonConditions
|
|
ldr r3, [sp, 0x68]
|
|
_080DBDD2:
|
|
mov r7, r9
|
|
lsls r1, r7, 4
|
|
movs r7, 0
|
|
ldrsh r0, [r6, r7]
|
|
str r0, [r2]
|
|
movs r7, 0
|
|
ldrsh r0, [r5, r7]
|
|
str r0, [r3]
|
|
ldrh r0, [r4]
|
|
str r0, [r2, 0x8]
|
|
ldr r0, [sp, 0x6C]
|
|
adds r1, r0, r1
|
|
mov r7, r9
|
|
str r7, [r1]
|
|
adds r4, 0x2
|
|
adds r6, 0x2
|
|
adds r2, 0x10
|
|
adds r5, 0x2
|
|
adds r3, 0x10
|
|
movs r0, 0x1
|
|
add r9, r0
|
|
mov r1, r9
|
|
cmp r1, 0x3
|
|
ble _080DBDD2
|
|
movs r3, 0
|
|
mov r9, r3
|
|
_080DBE06:
|
|
movs r4, 0x3
|
|
cmp r4, r9
|
|
ble _080DBE90
|
|
add r7, sp, 0x48
|
|
ldr r6, [sp, 0x68]
|
|
str r6, [sp, 0x58]
|
|
ldr r0, [sp, 0x64]
|
|
adds r0, 0x8
|
|
str r0, [sp, 0x5C]
|
|
ldr r1, [sp, 0x6C]
|
|
str r1, [sp, 0x60]
|
|
_080DBE1C:
|
|
subs r3, r4, 0x1
|
|
mov r10, r3
|
|
mov r0, r10
|
|
adds r1, r4, 0
|
|
ldr r2, [sp, 0x64]
|
|
bl sub_80DBF30
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080DBE8A
|
|
mov r6, r10
|
|
lsls r2, r6, 4
|
|
ldr r0, [sp, 0x64]
|
|
adds r3, r0, r2
|
|
ldr r0, [r3]
|
|
str r0, [sp, 0x48]
|
|
ldr r1, [sp, 0x58]
|
|
adds r6, r1, r2
|
|
ldr r0, [r6]
|
|
str r0, [r7, 0x4]
|
|
ldr r0, [sp, 0x5C]
|
|
adds r0, r2
|
|
mov r8, r0
|
|
ldr r0, [r0]
|
|
str r0, [r7, 0x8]
|
|
ldr r1, [sp, 0x60]
|
|
adds r2, r1, r2
|
|
ldr r0, [r2]
|
|
str r0, [r7, 0xC]
|
|
lsls r1, r4, 4
|
|
ldr r0, [sp, 0x64]
|
|
adds r5, r0, r1
|
|
ldr r0, [r5]
|
|
str r0, [r3]
|
|
ldr r3, [sp, 0x58]
|
|
adds r4, r3, r1
|
|
ldr r0, [r4]
|
|
str r0, [r6]
|
|
ldr r6, [sp, 0x5C]
|
|
adds r3, r6, r1
|
|
ldr r0, [r3]
|
|
mov r6, r8
|
|
str r0, [r6]
|
|
ldr r0, [sp, 0x60]
|
|
adds r1, r0, r1
|
|
ldr r0, [r1]
|
|
str r0, [r2]
|
|
ldr r0, [sp, 0x48]
|
|
str r0, [r5]
|
|
ldr r0, [r7, 0x4]
|
|
str r0, [r4]
|
|
ldr r0, [r7, 0x8]
|
|
str r0, [r3]
|
|
ldr r0, [r7, 0xC]
|
|
str r0, [r1]
|
|
_080DBE8A:
|
|
mov r4, r10
|
|
cmp r4, r9
|
|
bgt _080DBE1C
|
|
_080DBE90:
|
|
movs r1, 0x1
|
|
add r9, r1
|
|
mov r3, r9
|
|
cmp r3, 0x2
|
|
ble _080DBE06
|
|
movs r6, 0
|
|
mov r9, r6
|
|
ldr r2, =gContestFinalStandings
|
|
ldr r1, [sp, 0x6C]
|
|
_080DBEA2:
|
|
ldr r0, [r1]
|
|
adds r0, r2
|
|
mov r7, r9
|
|
strb r7, [r0]
|
|
adds r1, 0x10
|
|
movs r0, 0x1
|
|
add r9, r0
|
|
mov r3, r9
|
|
cmp r3, 0x3
|
|
ble _080DBEA2
|
|
add sp, 0x70
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DBD4C
|
|
|
|
thumb_func_start sub_80DBED4
|
|
sub_80DBED4: @ 80DBED4
|
|
push {lr}
|
|
ldr r0, =gIsLinkContest
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DBF0E
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r2, [r0]
|
|
ldr r1, =gContestFinalStandings
|
|
ldr r0, =gContestPlayerMonIndex
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r1, 1
|
|
ldr r0, =gSpecialVar_ContestCategory
|
|
ldrh r0, [r0]
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
ldr r0, =0x00000624
|
|
adds r2, r0
|
|
adds r2, r1
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
ldr r1, =0x0000270f
|
|
cmp r0, r1
|
|
ble _080DBF0C
|
|
adds r0, r1, 0
|
|
_080DBF0C:
|
|
strh r0, [r2]
|
|
_080DBF0E:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DBED4
|
|
|
|
thumb_func_start sub_80DBF30
|
|
sub_80DBF30: @ 80DBF30
|
|
push {lr}
|
|
lsls r0, 4
|
|
adds r0, r2
|
|
lsls r1, 4
|
|
adds r3, r1, r2
|
|
ldr r2, [r0]
|
|
ldr r1, [r3]
|
|
cmp r2, r1
|
|
blt _080DBF60
|
|
cmp r2, r1
|
|
bgt _080DBF52
|
|
ldr r2, [r0, 0x4]
|
|
ldr r1, [r3, 0x4]
|
|
cmp r2, r1
|
|
blt _080DBF60
|
|
cmp r2, r1
|
|
ble _080DBF56
|
|
_080DBF52:
|
|
movs r2, 0
|
|
b _080DBF62
|
|
_080DBF56:
|
|
ldr r1, [r0, 0x8]
|
|
ldr r0, [r3, 0x8]
|
|
movs r2, 0
|
|
cmp r1, r0
|
|
bge _080DBF62
|
|
_080DBF60:
|
|
movs r2, 0x1
|
|
_080DBF62:
|
|
adds r0, r2, 0
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80DBF30
|
|
|
|
thumb_func_start sub_80DBF68
|
|
sub_80DBF68: @ 80DBF68
|
|
push {lr}
|
|
ldr r0, =gBattle_BG0_Y
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, =gBattle_BG2_Y
|
|
strh r1, [r0]
|
|
bl sub_80DB89C
|
|
ldr r0, =gUnknown_0827E8DA
|
|
movs r1, 0
|
|
bl Contest_StartTextPrinter
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DBF68
|
|
|
|
thumb_func_start sub_80DBF90
|
|
sub_80DBF90: @ 80DBF90
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
movs r5, 0x80
|
|
lsls r5, 18
|
|
movs r4, 0x3
|
|
_080DBF9A:
|
|
lsrs r3, r5, 24
|
|
movs r0, 0x8
|
|
str r0, [sp]
|
|
movs r0, 0x2
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0x16
|
|
bl ContestBG_FillBoxWithTile
|
|
movs r0, 0xA0
|
|
lsls r0, 19
|
|
adds r5, r0
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _080DBF9A
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DBF90
|
|
|
|
thumb_func_start sub_80DBFC8
|
|
sub_80DBFC8: @ 80DBFC8
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =0x00005011
|
|
cmp r0, 0
|
|
beq _080DBFE2
|
|
ldr r1, =0x00006011
|
|
cmp r0, 0x1
|
|
beq _080DBFE2
|
|
ldr r1, =0x00008011
|
|
cmp r0, 0x2
|
|
bne _080DBFE2
|
|
ldr r1, =0x00007011
|
|
_080DBFE2:
|
|
adds r0, r1, 0x1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80DBFC8
|
|
|
|
thumb_func_start sub_80DBFFC
|
|
sub_80DBFFC: @ 80DBFFC
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
asrs r2, r0, 24
|
|
cmp r2, 0x10
|
|
ble _080DC016
|
|
movs r1, 0x10
|
|
b _080DC020
|
|
_080DC016:
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
cmp r2, r0
|
|
bge _080DC020
|
|
movs r1, 0xF0
|
|
_080DC020:
|
|
lsls r0, r1, 24
|
|
asrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80DBFFC
|
|
|
|
thumb_func_start sub_80DC028
|
|
sub_80DC028: @ 80DC028
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
lsls r6, 16
|
|
lsrs r6, 16
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r8, r2
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x14]
|
|
lsls r1, r2, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x2]
|
|
movs r2, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r1, 0x2]
|
|
ldr r0, =sub_80DC0F4
|
|
movs r1, 0x14
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
lsls r5, 16
|
|
asrs r5, 16
|
|
adds r0, r5, 0
|
|
bl sub_80DBFFC
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r6, 16
|
|
asrs r6, 16
|
|
adds r5, r6
|
|
lsls r5, 16
|
|
asrs r5, 16
|
|
adds r0, r5, 0
|
|
bl sub_80DBFFC
|
|
lsls r4, 24
|
|
asrs r4, 24
|
|
subs r0, r4
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
mov r0, r8
|
|
bl sub_80DBFC8
|
|
ldr r2, =gTasks
|
|
lsls r3, r7, 2
|
|
adds r0, r3, r7
|
|
lsls r0, 3
|
|
adds r1, r0, r2
|
|
adds r0, r4, 0
|
|
cmp r4, 0
|
|
bge _080DC0A0
|
|
negs r0, r4
|
|
_080DC0A0:
|
|
strh r0, [r1, 0x8]
|
|
lsls r0, r5, 24
|
|
asrs r0, 24
|
|
strh r0, [r1, 0xA]
|
|
cmp r4, 0
|
|
bgt _080DC0B4
|
|
cmp r4, 0
|
|
bne _080DC0C8
|
|
cmp r0, 0
|
|
ble _080DC0C8
|
|
_080DC0B4:
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0xC]
|
|
b _080DC0D6
|
|
.pool
|
|
_080DC0C8:
|
|
ldr r2, =gTasks
|
|
lsls r3, r7, 2
|
|
adds r0, r3, r7
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldr r1, =0x0000ffff
|
|
strh r1, [r0, 0xC]
|
|
_080DC0D6:
|
|
adds r0, r3, r7
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
mov r1, r8
|
|
strh r1, [r0, 0xE]
|
|
adds r0, r7, 0
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80DC028
|
|
|
|
thumb_func_start sub_80DC0F4
|
|
sub_80DC0F4: @ 80DC0F4
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r1, =gTasks
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
ldrb r0, [r4, 0xE]
|
|
mov r9, r0
|
|
ldrh r3, [r4, 0x8]
|
|
ldrh r1, [r4, 0xA]
|
|
ldrh r0, [r4, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xE
|
|
bgt _080DC126
|
|
b _080DC2A8
|
|
_080DC126:
|
|
movs r0, 0
|
|
strh r0, [r4, 0x1C]
|
|
ldrh r2, [r4, 0xA]
|
|
movs r5, 0xA
|
|
ldrsh r0, [r4, r5]
|
|
cmp r0, 0
|
|
bne _080DC15C
|
|
adds r0, r7, 0
|
|
bl DestroyTask
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x14]
|
|
mov r2, r9
|
|
lsls r1, r2, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0x2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x2]
|
|
b _080DC2A8
|
|
.pool
|
|
_080DC15C:
|
|
cmp r3, 0
|
|
bne _080DC1A4
|
|
lsls r0, r1, 16
|
|
mov r8, r0
|
|
cmp r0, 0
|
|
bge _080DC17A
|
|
mov r0, r9
|
|
bl sub_80DBFC8
|
|
adds r0, 0x2
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
b _080DC188
|
|
_080DC17A:
|
|
mov r0, r9
|
|
bl sub_80DBFC8
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldrh r0, [r4, 0xA]
|
|
subs r0, 0x1
|
|
_080DC188:
|
|
strh r0, [r4, 0xA]
|
|
ldr r1, =gTasks
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrh r1, [r0, 0x8]
|
|
adds r2, r1, 0x1
|
|
strh r2, [r0, 0x8]
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
b _080DC210
|
|
.pool
|
|
_080DC1A4:
|
|
movs r3, 0xC
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0
|
|
bge _080DC1DE
|
|
lsls r0, r1, 16
|
|
mov r8, r0
|
|
cmp r0, 0
|
|
bge _080DC1CC
|
|
ldrh r0, [r4, 0x8]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r4, 0x8]
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r0, r2, 0x1
|
|
strh r0, [r4, 0xA]
|
|
mov r0, r9
|
|
bl sub_80DBFC8
|
|
adds r0, 0x2
|
|
b _080DC20C
|
|
_080DC1CC:
|
|
ldrh r0, [r4, 0x8]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r6, 0
|
|
subs r0, r2, 0x1
|
|
strh r0, [r4, 0xA]
|
|
b _080DC210
|
|
_080DC1DE:
|
|
lsls r0, r1, 16
|
|
mov r8, r0
|
|
cmp r0, 0
|
|
bge _080DC1F8
|
|
ldrh r0, [r4, 0x8]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r6, 0
|
|
adds r0, r2, 0x1
|
|
strh r0, [r4, 0xA]
|
|
b _080DC210
|
|
_080DC1F8:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r4, 0x8]
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
subs r0, r2, 0x1
|
|
strh r0, [r4, 0xA]
|
|
mov r0, r9
|
|
bl sub_80DBFC8
|
|
_080DC20C:
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
_080DC210:
|
|
str r5, [sp, 0xC]
|
|
movs r0, 0
|
|
mov r10, r0
|
|
cmp r5, 0x7
|
|
bls _080DC226
|
|
movs r2, 0x1
|
|
mov r10, r2
|
|
adds r0, r5, 0
|
|
subs r0, 0x8
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
_080DC226:
|
|
adds r2, r5, 0
|
|
adds r2, 0x16
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r0, =gUnknown_02039F26
|
|
add r0, r9
|
|
ldrb r0, [r0]
|
|
lsls r3, r0, 2
|
|
adds r3, r0
|
|
adds r3, 0x2
|
|
add r3, r10
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
adds r1, r6, 0
|
|
bl ContestBG_FillBoxWithTile
|
|
mov r3, r8
|
|
cmp r3, 0
|
|
ble _080DC284
|
|
movs r0, 0x60
|
|
bl PlaySE
|
|
ldr r4, =gMPlayInfo_SE1
|
|
adds r0, r4, 0
|
|
bl m4aMPlayImmInit
|
|
ldr r1, =0x0000ffff
|
|
ldr r0, [sp, 0xC]
|
|
lsls r2, r0, 24
|
|
asrs r2, 16
|
|
adds r0, r4, 0
|
|
bl m4aMPlayPitchControl
|
|
b _080DC28A
|
|
.pool
|
|
_080DC284:
|
|
movs r0, 0x16
|
|
bl PlaySE
|
|
_080DC28A:
|
|
mov r2, r10
|
|
cmp r2, 0
|
|
bne _080DC2A8
|
|
cmp r5, 0
|
|
bne _080DC2A8
|
|
cmp r6, 0
|
|
bne _080DC2A8
|
|
ldr r0, =gTasks
|
|
lsls r1, r7, 2
|
|
adds r1, r7
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0xC]
|
|
negs r0, r0
|
|
strh r0, [r1, 0xC]
|
|
_080DC2A8:
|
|
add sp, 0x10
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DC0F4
|
|
|
|
thumb_func_start sub_80DC2BC
|
|
sub_80DC2BC: @ 80DC2BC
|
|
push {r4,r5,lr}
|
|
ldr r0, =gUnknown_08587A74
|
|
bl LoadSpriteSheet
|
|
movs r4, 0
|
|
ldr r5, =gUnknown_08587A6C
|
|
_080DC2C8:
|
|
ldr r0, =gUnknown_02039F26
|
|
adds r0, r4, r0
|
|
ldrb r0, [r0]
|
|
adds r0, r5
|
|
ldrb r2, [r0]
|
|
ldr r0, =gSpriteTemplate_8587AD0
|
|
movs r1, 0xB4
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
ldr r1, =gContestResources
|
|
ldr r1, [r1]
|
|
ldr r2, [r1, 0x14]
|
|
lsls r1, r4, 2
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DC2C8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DC2BC
|
|
|
|
thumb_func_start sub_80DC308
|
|
sub_80DC308: @ 80DC308
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r4, =gContestResources
|
|
ldr r0, [r4]
|
|
ldr r2, [r0, 0x14]
|
|
lsls r3, r6, 2
|
|
adds r2, r3, r2
|
|
ldrb r0, [r2, 0x2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x2]
|
|
ldr r1, [r4]
|
|
ldr r0, [r1, 0x14]
|
|
adds r3, r0
|
|
ldrb r7, [r3]
|
|
ldr r1, [r1, 0x4]
|
|
lsls r0, r6, 3
|
|
subs r0, r6
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
movs r1, 0x4
|
|
ldrsh r0, [r0, r1]
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
lsls r0, 17
|
|
lsrs r5, r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x38
|
|
ble _080DC350
|
|
movs r5, 0x38
|
|
b _080DC356
|
|
.pool
|
|
_080DC350:
|
|
cmp r0, 0
|
|
bge _080DC356
|
|
movs r5, 0
|
|
_080DC356:
|
|
ldr r2, =gSprites
|
|
lsls r3, r7, 4
|
|
adds r0, r3, r7
|
|
lsls r0, 2
|
|
adds r4, r0, r2
|
|
movs r0, 0x3E
|
|
adds r0, r4
|
|
mov r12, r0
|
|
ldrb r1, [r0]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
strh r6, [r4, 0x2E]
|
|
strh r5, [r4, 0x30]
|
|
lsls r0, r5, 16
|
|
asrs r0, 16
|
|
movs r5, 0x24
|
|
ldrsh r1, [r4, r5]
|
|
cmp r0, r1
|
|
ble _080DC38C
|
|
movs r0, 0x1
|
|
b _080DC38E
|
|
.pool
|
|
_080DC38C:
|
|
ldr r0, =0x0000ffff
|
|
_080DC38E:
|
|
strh r0, [r4, 0x32]
|
|
adds r0, r3, r7
|
|
lsls r0, 2
|
|
adds r1, r2, 0
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, =sub_80DC408
|
|
str r1, [r0]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DC308
|
|
|
|
thumb_func_start sub_80DC3AC
|
|
sub_80DC3AC: @ 80DC3AC
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
_080DC3B0:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_80DC308
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DC3B0
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DC3AC
|
|
|
|
thumb_func_start sub_80DC3C4
|
|
sub_80DC3C4: @ 80DC3C4
|
|
push {r4,lr}
|
|
movs r2, 0
|
|
ldr r3, =gContestResources
|
|
ldr r0, [r3]
|
|
ldr r0, [r0, 0x14]
|
|
ldrb r1, [r0, 0x2]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080DC3F2
|
|
movs r4, 0x1
|
|
_080DC3DA:
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
bgt _080DC3F2
|
|
ldr r0, [r3]
|
|
ldr r1, [r0, 0x14]
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x2]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DC3DA
|
|
_080DC3F2:
|
|
cmp r2, 0x4
|
|
beq _080DC400
|
|
movs r0, 0
|
|
b _080DC402
|
|
.pool
|
|
_080DC400:
|
|
movs r0, 0x1
|
|
_080DC402:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80DC3C4
|
|
|
|
thumb_func_start sub_80DC408
|
|
sub_80DC408: @ 80DC408
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
ldrh r2, [r3, 0x24]
|
|
movs r0, 0x24
|
|
ldrsh r1, [r3, r0]
|
|
movs r4, 0x30
|
|
ldrsh r0, [r3, r4]
|
|
cmp r1, r0
|
|
bne _080DC440
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
movs r2, 0x2E
|
|
ldrsh r1, [r3, r2]
|
|
ldr r0, [r0, 0x14]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0x2]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x2]
|
|
ldr r0, =SpriteCallbackDummy
|
|
str r0, [r3, 0x1C]
|
|
b _080DC446
|
|
.pool
|
|
_080DC440:
|
|
ldrh r0, [r3, 0x32]
|
|
adds r0, r2, r0
|
|
strh r0, [r3, 0x24]
|
|
_080DC446:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DC408
|
|
|
|
thumb_func_start sub_80DC44C
|
|
sub_80DC44C: @ 80DC44C
|
|
push {r4-r6,lr}
|
|
movs r2, 0
|
|
ldr r6, =gSprites
|
|
ldr r5, =gContestResources
|
|
ldr r4, =gUnknown_08587A6C
|
|
ldr r3, =gUnknown_02039F26
|
|
_080DC458:
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x14]
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
adds r0, r2, r3
|
|
ldrb r0, [r0]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
strh r0, [r1, 0x22]
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
ble _080DC458
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DC44C
|
|
|
|
thumb_func_start sub_80DC490
|
|
sub_80DC490: @ 80DC490
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r3, 0
|
|
ldr r7, =gUnknown_02039F26
|
|
ldr r5, =gSprites
|
|
ldr r4, =gContestResources
|
|
movs r2, 0
|
|
_080DC4A0:
|
|
adds r0, r3, r7
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bls _080DC4E2
|
|
cmp r6, 0
|
|
bne _080DC4CC
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x14]
|
|
adds r0, r2, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0xB4
|
|
b _080DC4E0
|
|
.pool
|
|
_080DC4CC:
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x14]
|
|
adds r0, r2, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
_080DC4E0:
|
|
strh r1, [r0, 0x20]
|
|
_080DC4E2:
|
|
adds r2, 0x4
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
ble _080DC4A0
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DC490
|
|
|
|
thumb_func_start sub_80DC4F0
|
|
sub_80DC4F0: @ 80DC4F0
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r0, =gUnknown_08587B08
|
|
bl LoadSpritePalette
|
|
movs r5, 0
|
|
ldr r7, =gContestResources
|
|
ldr r0, =gSprites
|
|
mov r8, r0
|
|
movs r6, 0
|
|
_080DC506:
|
|
lsls r0, r5, 3
|
|
ldr r1, =gUnknown_08587AE8
|
|
adds r0, r1
|
|
bl LoadCompressedSpriteSheet
|
|
ldr r0, =gSpriteTemplate_8587B18
|
|
adds r0, r6, r0
|
|
ldr r2, =gUnknown_08587A70
|
|
ldr r1, =gUnknown_02039F26
|
|
adds r1, r5, r1
|
|
ldrb r1, [r1]
|
|
adds r1, r2
|
|
ldrb r2, [r1]
|
|
movs r1, 0xCC
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r1, [r7]
|
|
ldr r1, [r1, 0x14]
|
|
lsls r4, r5, 2
|
|
adds r1, r4, r1
|
|
strb r0, [r1, 0x1]
|
|
ldr r0, [r7]
|
|
ldr r0, [r0, 0x14]
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0, 0x1]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r8
|
|
ldr r1, =gSubspriteTables_8587B80
|
|
bl SetSubspriteTables
|
|
ldr r0, [r7]
|
|
ldr r0, [r0, 0x14]
|
|
adds r4, r0
|
|
ldrb r1, [r4, 0x1]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r8
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
adds r6, 0x18
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _080DC506
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DC4F0
|
|
|
|
thumb_func_start sub_80DC594
|
|
sub_80DC594: @ 80DC594
|
|
push {lr}
|
|
ldr r0, =gUnknown_08587BB0
|
|
bl LoadCompressedSpriteSheet
|
|
ldr r0, =gUnknown_08587BB8
|
|
bl LoadSpritePalette
|
|
ldr r0, =gSpriteTemplate_8587BC8
|
|
movs r1, 0x1E
|
|
movs r2, 0x2C
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gSprites
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
movs r3, 0x4
|
|
orrs r2, r3
|
|
strb r2, [r1]
|
|
ldr r1, =gContestResources
|
|
ldr r1, [r1]
|
|
ldr r1, [r1]
|
|
adds r1, 0x58
|
|
strb r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DC594
|
|
|
|
thumb_func_start sub_80DC5E8
|
|
sub_80DC5E8: @ 80DC5E8
|
|
push {r4,lr}
|
|
ldr r0, =sub_80DC728
|
|
movs r1, 0x1E
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gContestResources
|
|
ldr r1, [r1]
|
|
ldr r1, [r1]
|
|
strb r0, [r1, 0xD]
|
|
movs r2, 0
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r4, =gTasks + 0x8
|
|
movs r3, 0xFF
|
|
_080DC60A:
|
|
lsls r0, r2, 3
|
|
adds r0, r1
|
|
adds r0, r4
|
|
strh r3, [r0]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x3
|
|
bls _080DC60A
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DC5E8
|
|
|
|
thumb_func_start sub_80DC630
|
|
sub_80DC630: @ 80DC630
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, =gTasks
|
|
ldr r1, =gContestResources
|
|
ldr r5, [r1]
|
|
ldr r1, [r5]
|
|
ldrb r2, [r1, 0xD]
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r3, 0x8
|
|
adds r1, r3
|
|
movs r4, 0
|
|
strh r4, [r1]
|
|
lsls r0, 2
|
|
adds r0, 0x1
|
|
lsls r0, 1
|
|
ldr r1, [r5]
|
|
ldrb r2, [r1, 0xD]
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
adds r0, r3
|
|
strh r4, [r0]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DC630
|
|
|
|
thumb_func_start sub_80DC674
|
|
sub_80DC674: @ 80DC674
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, =sub_80DC6A4
|
|
movs r1, 0x1F
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
strh r4, [r1, 0x8]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DC674
|
|
|
|
thumb_func_start sub_80DC6A4
|
|
sub_80DC6A4: @ 80DC6A4
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r6, r0, 0
|
|
ldr r2, =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x8]
|
|
adds r5, r0, 0
|
|
ldr r0, =gContestResources
|
|
ldr r4, [r0]
|
|
ldr r0, [r4]
|
|
ldrb r1, [r0, 0xD]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r7, r2, 0
|
|
adds r7, 0x8
|
|
adds r1, r0, r7
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
beq _080DC6DC
|
|
cmp r0, 0xFF
|
|
bne _080DC716
|
|
_080DC6DC:
|
|
movs r3, 0
|
|
movs r0, 0xFF
|
|
strh r0, [r1]
|
|
lsls r1, r5, 2
|
|
adds r1, 0x1
|
|
lsls r1, 1
|
|
ldr r0, [r4]
|
|
ldrb r2, [r0, 0xD]
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
adds r1, r7
|
|
strh r3, [r1]
|
|
ldr r0, [r4]
|
|
adds r0, 0x14
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
adds r0, 0x5
|
|
lsls r0, 4
|
|
adds r0, 0x6
|
|
ldr r3, =0x00004bff
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
bl BlendPalette
|
|
adds r0, r6, 0
|
|
bl DestroyTask
|
|
_080DC716:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DC6A4
|
|
|
|
thumb_func_start sub_80DC728
|
|
sub_80DC728: @ 80DC728
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r6, 0
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
mov r9, r1
|
|
lsls r7, r1, 3
|
|
ldr r0, =gTasks + 0x8
|
|
mov r8, r0
|
|
movs r1, 0x8
|
|
negs r1, r1
|
|
add r1, r8
|
|
mov r10, r1
|
|
_080DC74C:
|
|
lsls r0, r6, 26
|
|
lsrs r3, r0, 24
|
|
lsls r0, r3, 1
|
|
adds r0, r7
|
|
mov r4, r8
|
|
adds r2, r0, r4
|
|
ldrh r4, [r2]
|
|
movs r5, 0
|
|
ldrsh r0, [r2, r5]
|
|
cmp r0, 0xFF
|
|
beq _080DC7CA
|
|
adds r0, r3, 0x1
|
|
lsls r1, r0, 1
|
|
adds r1, r7
|
|
add r1, r8
|
|
movs r5, 0
|
|
ldrsh r1, [r1, r5]
|
|
adds r5, r0, 0
|
|
cmp r1, 0
|
|
bne _080DC77C
|
|
adds r0, r4, 0x1
|
|
b _080DC77E
|
|
.pool
|
|
_080DC77C:
|
|
subs r0, r4, 0x1
|
|
_080DC77E:
|
|
strh r0, [r2]
|
|
lsls r1, r3, 1
|
|
mov r0, r9
|
|
lsls r2, r0, 3
|
|
adds r0, r1, r2
|
|
mov r3, r10
|
|
adds r3, 0x8
|
|
adds r0, r3
|
|
movs r4, 0
|
|
ldrsh r0, [r0, r4]
|
|
adds r4, r1, 0
|
|
cmp r0, 0x10
|
|
beq _080DC79C
|
|
cmp r0, 0
|
|
bne _080DC7AA
|
|
_080DC79C:
|
|
lsls r0, r5, 1
|
|
adds r0, r2
|
|
adds r0, r3
|
|
ldrh r1, [r0]
|
|
movs r2, 0x1
|
|
eors r1, r2
|
|
strh r1, [r0]
|
|
_080DC7AA:
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
adds r0, 0x14
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
adds r0, 0x5
|
|
lsls r0, 4
|
|
adds r0, 0x6
|
|
adds r1, r4, r7
|
|
add r1, r8
|
|
ldrb r2, [r1]
|
|
movs r1, 0x2
|
|
ldr r3, =0x00004bff
|
|
bl BlendPalette
|
|
_080DC7CA:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x3
|
|
bls _080DC74C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DC728
|
|
|
|
thumb_func_start sub_80DC7EC
|
|
sub_80DC7EC: @ 80DC7EC
|
|
push {r4,lr}
|
|
ldr r0, =sub_80DC8D0
|
|
movs r1, 0x1E
|
|
bl CreateTask
|
|
ldr r1, =gContestResources
|
|
ldr r1, [r1]
|
|
ldr r1, [r1]
|
|
strb r0, [r1, 0xE]
|
|
movs r4, 0
|
|
_080DC800:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_80DC81C
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DC800
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DC7EC
|
|
|
|
thumb_func_start sub_80DC81C
|
|
sub_80DC81C: @ 80DC81C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, =gTasks
|
|
ldr r1, =gContestResources
|
|
ldr r4, [r1]
|
|
ldr r1, [r4]
|
|
ldrb r2, [r1, 0xE]
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r3, 0x8
|
|
adds r1, r3
|
|
movs r5, 0
|
|
movs r2, 0xFF
|
|
strh r2, [r1]
|
|
lsls r0, 2
|
|
adds r0, 0x1
|
|
lsls r0, 1
|
|
ldr r1, [r4]
|
|
ldrb r2, [r1, 0xE]
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
adds r0, r3
|
|
strh r5, [r0]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DC81C
|
|
|
|
thumb_func_start sub_80DC864
|
|
sub_80DC864: @ 80DC864
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
_080DC868:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_80DC87C
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DC868
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DC864
|
|
|
|
thumb_func_start sub_80DC87C
|
|
sub_80DC87C: @ 80DC87C
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
bl sub_80DC81C
|
|
adds r0, r4, 0x5
|
|
lsls r2, r0, 5
|
|
ldr r3, =gPlttBufferUnfaded + 0x14
|
|
adds r6, r2, r3
|
|
ldr r5, =gPlttBufferFaded + 0x14
|
|
adds r2, r5
|
|
ldr r1, =0x040000d4
|
|
str r6, [r1]
|
|
str r2, [r1, 0x4]
|
|
ldr r2, =0x80000001
|
|
str r2, [r1, 0x8]
|
|
ldr r6, [r1, 0x8]
|
|
lsls r0, 4
|
|
adds r4, 0xC
|
|
adds r0, r4
|
|
lsls r0, 1
|
|
subs r3, 0x14
|
|
adds r3, r0, r3
|
|
subs r5, 0x14
|
|
adds r0, r5
|
|
str r3, [r1]
|
|
str r0, [r1, 0x4]
|
|
str r2, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DC87C
|
|
|
|
thumb_func_start sub_80DC8D0
|
|
sub_80DC8D0: @ 80DC8D0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r7, 0
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
mov r9, r1
|
|
lsls r6, r1, 3
|
|
ldr r0, =gTasks + 0x8
|
|
mov r8, r0
|
|
ldr r1, =0x00004bff
|
|
mov r10, r1
|
|
_080DC8F0:
|
|
lsls r0, r7, 26
|
|
lsrs r3, r0, 24
|
|
lsls r0, r3, 1
|
|
adds r0, r6
|
|
mov r4, r8
|
|
adds r2, r0, r4
|
|
movs r5, 0
|
|
ldrsh r0, [r2, r5]
|
|
cmp r0, 0xFF
|
|
beq _080DC996
|
|
adds r0, r3, 0x2
|
|
lsls r0, 1
|
|
adds r0, r6
|
|
adds r1, r0, r4
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
movs r4, 0
|
|
strh r0, [r1]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x2
|
|
ble _080DC996
|
|
strh r4, [r1]
|
|
adds r0, r3, 0x1
|
|
lsls r1, r0, 1
|
|
adds r1, r6
|
|
add r1, r8
|
|
movs r4, 0
|
|
ldrsh r1, [r1, r4]
|
|
adds r4, r0, 0
|
|
cmp r1, 0
|
|
bne _080DC940
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
b _080DC944
|
|
.pool
|
|
_080DC940:
|
|
ldrh r0, [r2]
|
|
subs r0, 0x1
|
|
_080DC944:
|
|
strh r0, [r2]
|
|
lsls r1, r3, 1
|
|
mov r5, r9
|
|
lsls r2, r5, 3
|
|
adds r0, r1, r2
|
|
ldr r3, =gTasks
|
|
adds r3, 0x8
|
|
adds r0, r3
|
|
movs r5, 0
|
|
ldrsh r0, [r0, r5]
|
|
adds r5, r1, 0
|
|
cmp r0, 0x10
|
|
beq _080DC962
|
|
cmp r0, 0
|
|
bne _080DC970
|
|
_080DC962:
|
|
lsls r0, r4, 1
|
|
adds r0, r2
|
|
adds r0, r3
|
|
ldrh r1, [r0]
|
|
movs r2, 0x1
|
|
eors r1, r2
|
|
strh r1, [r0]
|
|
_080DC970:
|
|
adds r4, r7, 0x5
|
|
lsls r4, 4
|
|
adds r0, r4, 0
|
|
adds r0, 0xA
|
|
adds r5, r6
|
|
add r5, r8
|
|
ldrb r2, [r5]
|
|
movs r1, 0x1
|
|
mov r3, r10
|
|
bl BlendPalette
|
|
adds r4, 0xC
|
|
adds r4, r7
|
|
ldrb r2, [r5]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
mov r3, r10
|
|
bl BlendPalette
|
|
_080DC996:
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x3
|
|
bls _080DC8F0
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DC8D0
|
|
|
|
thumb_func_start sub_80DC9B4
|
|
sub_80DC9B4: @ 80DC9B4
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x15]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DC9E0
|
|
adds r0, r2, 0
|
|
bl sub_80DC630
|
|
b _080DC9E6
|
|
.pool
|
|
_080DC9E0:
|
|
adds r0, r2, 0
|
|
bl sub_80DC674
|
|
_080DC9E6:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DC9B4
|
|
|
|
thumb_func_start sub_80DC9EC
|
|
sub_80DC9EC: @ 80DC9EC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0xC]
|
|
ldr r6, =gUnknown_02039F26
|
|
adds r6, r0, r6
|
|
ldrb r0, [r6]
|
|
lsls r5, r0, 2
|
|
adds r5, r0
|
|
lsls r5, 27
|
|
movs r0, 0x80
|
|
lsls r0, 22
|
|
adds r5, r0
|
|
lsrs r5, 24
|
|
ldr r1, [sp, 0xC]
|
|
lsls r4, r1, 3
|
|
ldr r0, =gUnknown_08589904
|
|
adds r0, r4, r0
|
|
bl LoadCompressedSpriteSheet
|
|
ldr r0, =gUnknown_08589924
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
bl LoadSpritePalette
|
|
ldr r2, [sp, 0xC]
|
|
lsls r4, r2, 1
|
|
adds r4, r2
|
|
lsls r4, 3
|
|
ldr r0, =gSpriteTemplate_858998C
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0xB8
|
|
adds r2, r5, 0
|
|
movs r3, 0x1D
|
|
bl CreateSprite
|
|
mov r9, r0
|
|
mov r3, r9
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r9, r3
|
|
adds r0, r4, 0
|
|
movs r1, 0xF8
|
|
adds r2, r5, 0
|
|
movs r3, 0x1D
|
|
bl CreateSprite
|
|
mov r8, r0
|
|
mov r0, r8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
lsls r5, r0, 4
|
|
add r5, r8
|
|
lsls r5, 2
|
|
ldr r1, =gSprites
|
|
adds r5, r1
|
|
ldrh r2, [r5, 0x4]
|
|
lsls r1, r2, 22
|
|
lsrs r1, 22
|
|
adds r1, 0x40
|
|
ldr r3, =0x000003ff
|
|
adds r0, r3, 0
|
|
ands r1, r0
|
|
ldr r0, =0xfffffc00
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strh r0, [r5, 0x4]
|
|
movs r4, 0xC0
|
|
lsls r4, 19
|
|
ldrb r0, [r6]
|
|
lsls r3, r0, 2
|
|
adds r3, r0
|
|
lsls r3, 6
|
|
ldr r0, =0x0600e026
|
|
adds r3, r0
|
|
ldr r7, =gContestResources
|
|
ldr r0, [r7]
|
|
ldr r0, [r0, 0x34]
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
adds r2, r4, 0
|
|
bl CopySpriteTiles
|
|
ldrb r0, [r6]
|
|
lsls r3, r0, 2
|
|
adds r3, r0
|
|
lsls r3, 6
|
|
ldr r1, =0x0600e036
|
|
adds r3, r1
|
|
ldr r0, [r7]
|
|
ldr r0, [r0, 0x38]
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
adds r2, r4, 0
|
|
bl CopySpriteTiles
|
|
movs r4, 0
|
|
str r4, [sp, 0x4]
|
|
ldr r0, [r7]
|
|
ldr r1, [r0, 0x34]
|
|
movs r6, 0xA0
|
|
lsls r6, 3
|
|
adds r1, r6
|
|
ldr r2, =0x050000c0
|
|
mov r10, r2
|
|
add r0, sp, 0x4
|
|
bl CpuSet
|
|
str r4, [sp, 0x8]
|
|
add r0, sp, 0x8
|
|
ldr r1, [r7]
|
|
ldr r1, [r1, 0x38]
|
|
adds r1, r6
|
|
mov r2, r10
|
|
bl CpuSet
|
|
ldr r0, [r7]
|
|
ldr r0, [r0, 0x34]
|
|
mov r3, r9
|
|
lsls r4, r3, 4
|
|
add r4, r9
|
|
lsls r4, 2
|
|
ldr r1, =gSprites
|
|
adds r4, r1
|
|
ldrh r1, [r4, 0x4]
|
|
lsls r1, 22
|
|
lsrs r1, 17
|
|
ldr r6, =0x06010000
|
|
adds r1, r6
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
mov r10, r2
|
|
movs r3, 0x1
|
|
bl RequestDma3Copy
|
|
ldr r0, [r7]
|
|
ldr r0, [r0, 0x38]
|
|
ldrh r1, [r5, 0x4]
|
|
lsls r1, 22
|
|
lsrs r1, 17
|
|
adds r1, r6
|
|
mov r2, r10
|
|
movs r3, 0x1
|
|
bl RequestDma3Copy
|
|
mov r3, r8
|
|
strh r3, [r4, 0x2E]
|
|
mov r0, r9
|
|
strh r0, [r5, 0x2E]
|
|
mov r1, sp
|
|
ldrh r1, [r1, 0xC]
|
|
strh r1, [r4, 0x30]
|
|
mov r2, sp
|
|
ldrh r2, [r2, 0xC]
|
|
strh r2, [r5, 0x30]
|
|
mov r0, r9
|
|
add sp, 0x10
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80DC9EC
|
|
|
|
thumb_func_start sub_80DCB78
|
|
sub_80DCB78: @ 80DCB78
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gSprites
|
|
lsls r5, r0, 4
|
|
adds r5, r0
|
|
lsls r5, 2
|
|
adds r5, r1
|
|
ldrh r0, [r5, 0x2E]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, r0, 4
|
|
adds r4, r0
|
|
lsls r4, 2
|
|
adds r4, r1
|
|
adds r0, r4, 0
|
|
bl FreeSpriteOamMatrix
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
adds r0, r5, 0
|
|
bl DestroySpriteAndFreeResources
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DCB78
|
|
|
|
thumb_func_start sub_80DCBB4
|
|
sub_80DCBB4: @ 80DCBB4
|
|
push {lr}
|
|
movs r1, 0xFD
|
|
lsls r1, 6
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
ldr r1, =0x00000907
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DCBB4
|
|
|
|
thumb_func_start sub_80DCBD0
|
|
sub_80DCBD0: @ 80DCBD0
|
|
push {lr}
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DCBD0
|
|
|
|
thumb_func_start sub_80DCBE8
|
|
sub_80DCBE8: @ 80DCBE8
|
|
push {r4-r6,lr}
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5,r6}
|
|
adds r4, r0, 0
|
|
mov r9, r1
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
mov r0, r9
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
bl sub_80DCBB4
|
|
ldr r0, =gContestResources
|
|
ldr r1, [r0]
|
|
ldr r2, =gSprites
|
|
mov r8, r2
|
|
lsls r6, r4, 4
|
|
adds r6, r4
|
|
lsls r6, 2
|
|
adds r0, r6, r2
|
|
movs r3, 0x30
|
|
ldrsh r2, [r0, r3]
|
|
ldr r1, [r1, 0x14]
|
|
lsls r2, 2
|
|
adds r2, r1
|
|
ldrb r1, [r2, 0x2]
|
|
movs r3, 0x2
|
|
orrs r1, r3
|
|
strb r1, [r2, 0x2]
|
|
ldrh r5, [r0, 0x2E]
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
lsls r4, r5, 4
|
|
adds r4, r5
|
|
lsls r4, 2
|
|
mov r1, r8
|
|
adds r0, r4, r1
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
movs r2, 0x1C
|
|
add r8, r2
|
|
add r6, r8
|
|
ldr r0, =sub_80DCC84
|
|
str r0, [r6]
|
|
add r4, r8
|
|
ldr r0, =SpriteCallbackDummy
|
|
str r0, [r4]
|
|
mov r3, r9
|
|
cmp r3, 0
|
|
bne _080DCC70
|
|
movs r0, 0x65
|
|
bl PlaySE
|
|
b _080DCC76
|
|
.pool
|
|
_080DCC70:
|
|
movs r0, 0x2
|
|
bl PlaySE
|
|
_080DCC76:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DCBE8
|
|
|
|
thumb_func_start sub_80DCC84
|
|
sub_80DCC84: @ 80DCC84
|
|
push {lr}
|
|
mov r12, r0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DCCCC
|
|
mov r0, r12
|
|
ldrh r1, [r0, 0x2E]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r2, =gSprites
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r0, r2
|
|
adds r0, r1, 0
|
|
adds r0, 0x3F
|
|
ldrb r0, [r0]
|
|
lsls r0, 26
|
|
cmp r0, 0
|
|
bge _080DCCCC
|
|
mov r3, r12
|
|
adds r3, 0x3E
|
|
ldrb r0, [r3]
|
|
movs r2, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r3]
|
|
adds r1, 0x3E
|
|
ldrb r0, [r1]
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, =sub_80DCCD8
|
|
mov r1, r12
|
|
str r0, [r1, 0x1C]
|
|
_080DCCCC:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DCC84
|
|
|
|
thumb_func_start sub_80DCCD8
|
|
sub_80DCCD8: @ 80DCCD8
|
|
push {lr}
|
|
ldr r1, =gContestResources
|
|
ldr r1, [r1]
|
|
movs r3, 0x30
|
|
ldrsh r2, [r0, r3]
|
|
ldr r1, [r1, 0x14]
|
|
lsls r2, 2
|
|
adds r2, r1
|
|
ldrb r3, [r2, 0x2]
|
|
movs r1, 0x3
|
|
negs r1, r1
|
|
ands r1, r3
|
|
strb r1, [r2, 0x2]
|
|
ldrh r0, [r0, 0x2E]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_80DCB78
|
|
bl sub_80DCBD0
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DCCD8
|
|
|
|
thumb_func_start sub_80DCD08
|
|
sub_80DCD08: @ 80DCD08
|
|
push {lr}
|
|
ldr r0, =gHeap
|
|
movs r1, 0xD0
|
|
lsls r1, 9
|
|
adds r2, r0, r1
|
|
ldrb r1, [r2]
|
|
adds r3, r0, 0
|
|
cmp r1, 0x1
|
|
bne _080DCD24
|
|
movs r0, 0
|
|
b _080DCD26
|
|
.pool
|
|
_080DCD24:
|
|
movs r0, 0x1
|
|
_080DCD26:
|
|
strb r0, [r2]
|
|
movs r1, 0xD0
|
|
lsls r1, 9
|
|
adds r0, r3, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080DCD3E
|
|
bl sub_80DAEA4
|
|
bl sub_80DB2BC
|
|
b _080DCD42
|
|
_080DCD3E:
|
|
bl sub_80DCD48
|
|
_080DCD42:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DCD08
|
|
|
|
thumb_func_start sub_80DCD48
|
|
sub_80DCD48: @ 80DCD48
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
ldr r0, =gUnknown_020322D5
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080DCE44
|
|
ldr r0, =gHeap
|
|
movs r1, 0xD0
|
|
lsls r1, 9
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080DCE44
|
|
cmp r0, 0
|
|
blt _080DCD7C
|
|
cmp r0, 0x3
|
|
bgt _080DCD7C
|
|
cmp r0, 0x2
|
|
blt _080DCD7C
|
|
bl sub_80DF750
|
|
b _080DCE44
|
|
.pool
|
|
_080DCD7C:
|
|
movs r5, 0
|
|
_080DCD7E:
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x3
|
|
bls _080DCD7E
|
|
movs r5, 0
|
|
_080DCD92:
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r5, 3
|
|
subs r0, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
add r2, sp, 0x4
|
|
ldrh r4, [r0, 0x4]
|
|
movs r1, 0x4
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bge _080DCDBC
|
|
negs r0, r0
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
adds r0, r2, 0
|
|
ldr r1, =gText_OneDash
|
|
bl StringCopy
|
|
adds r2, r0, 0
|
|
_080DCDBC:
|
|
lsls r1, r4, 16
|
|
asrs r1, 16
|
|
adds r0, r2, 0
|
|
movs r2, 0
|
|
movs r3, 0x4
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r0, =gUnknown_02039F26
|
|
adds r0, r5, r0
|
|
ldrb r0, [r0]
|
|
movs r1, 0x7
|
|
str r1, [sp]
|
|
add r1, sp, 0x4
|
|
movs r2, 0x37
|
|
movs r3, 0x1
|
|
bl Contest_PrintTextToBg0WindowAt
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x3
|
|
bls _080DCD92
|
|
movs r5, 0
|
|
_080DCDEA:
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r5, 3
|
|
subs r0, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
add r2, sp, 0x4
|
|
ldrh r4, [r0, 0x2]
|
|
movs r1, 0x2
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bge _080DCE14
|
|
negs r0, r0
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
adds r0, r2, 0
|
|
ldr r1, =gText_OneDash
|
|
bl StringCopy
|
|
adds r2, r0, 0
|
|
_080DCE14:
|
|
lsls r1, r4, 16
|
|
asrs r1, 16
|
|
adds r0, r2, 0
|
|
movs r2, 0
|
|
movs r3, 0x4
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r0, =gUnknown_02039F26
|
|
adds r0, r5, r0
|
|
ldrb r0, [r0]
|
|
movs r1, 0x7
|
|
str r1, [sp]
|
|
add r1, sp, 0x4
|
|
movs r2, 0x5
|
|
movs r3, 0x1
|
|
bl Contest_PrintTextToBg0WindowAt
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x3
|
|
bls _080DCDEA
|
|
bl sub_80DB2BC
|
|
_080DCE44:
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DCD48
|
|
|
|
thumb_func_start sub_80DCE58
|
|
sub_80DCE58: @ 80DCE58
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x14
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
add r4, sp, 0x4
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0x8
|
|
bl memset
|
|
movs r5, 0
|
|
add r4, sp, 0x4
|
|
adds r6, r4, 0
|
|
movs r7, 0
|
|
_080DCE7E:
|
|
bl Random
|
|
adds r1, r0, 0
|
|
mov r0, sp
|
|
adds r0, r7
|
|
adds r0, 0x4
|
|
strh r1, [r0]
|
|
movs r2, 0
|
|
cmp r2, r5
|
|
bge _080DCEB6
|
|
lsls r0, r1, 16
|
|
lsrs r0, 16
|
|
mov r1, sp
|
|
ldrh r1, [r1, 0x4]
|
|
cmp r0, r1
|
|
beq _080DCEB0
|
|
_080DCE9E:
|
|
adds r2, 0x1
|
|
cmp r2, r5
|
|
bge _080DCEB6
|
|
lsls r0, r2, 1
|
|
adds r0, r4, r0
|
|
ldrh r1, [r6]
|
|
ldrh r0, [r0]
|
|
cmp r1, r0
|
|
bne _080DCE9E
|
|
_080DCEB0:
|
|
subs r6, 0x2
|
|
subs r7, 0x2
|
|
subs r5, 0x1
|
|
_080DCEB6:
|
|
adds r6, 0x2
|
|
adds r7, 0x2
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _080DCE7E
|
|
mov r2, r8
|
|
cmp r2, 0
|
|
bne _080DCF80
|
|
movs r5, 0
|
|
ldr r3, =gUnknown_02039F26
|
|
mov r8, r3
|
|
_080DCECC:
|
|
mov r6, r8
|
|
strb r5, [r6]
|
|
movs r4, 0
|
|
cmp r4, r5
|
|
bge _080DCF48
|
|
ldr r7, =gContestMonConditions
|
|
mov r9, r7
|
|
lsls r0, r5, 1
|
|
adds r1, r0, 0
|
|
add r1, r9
|
|
mov r12, r1
|
|
mov r2, sp
|
|
adds r2, 0x4
|
|
str r2, [sp, 0xC]
|
|
add r0, sp
|
|
adds r0, 0x4
|
|
str r0, [sp, 0x10]
|
|
ldr r3, =gUnknown_02039F26
|
|
adds r6, r3, 0
|
|
mov r10, r6
|
|
_080DCEF4:
|
|
ldrb r0, [r3]
|
|
lsls r2, r0, 1
|
|
mov r7, r9
|
|
adds r0, r2, r7
|
|
movs r6, 0
|
|
ldrsh r1, [r0, r6]
|
|
mov r7, r12
|
|
movs r6, 0
|
|
ldrsh r0, [r7, r6]
|
|
cmp r1, r0
|
|
blt _080DCF1C
|
|
cmp r1, r0
|
|
bne _080DCF40
|
|
ldr r7, [sp, 0xC]
|
|
adds r0, r7, r2
|
|
ldrh r0, [r0]
|
|
ldr r1, [sp, 0x10]
|
|
ldrh r1, [r1]
|
|
cmp r0, r1
|
|
bcs _080DCF40
|
|
_080DCF1C:
|
|
adds r2, r5, 0
|
|
cmp r5, r4
|
|
ble _080DCF34
|
|
subs r0, r5, 0x1
|
|
mov r6, r10
|
|
adds r1, r0, r6
|
|
_080DCF28:
|
|
ldrb r0, [r1]
|
|
strb r0, [r1, 0x1]
|
|
subs r1, 0x1
|
|
subs r2, 0x1
|
|
cmp r2, r4
|
|
bgt _080DCF28
|
|
_080DCF34:
|
|
strb r5, [r3]
|
|
b _080DCF48
|
|
.pool
|
|
_080DCF40:
|
|
adds r3, 0x1
|
|
adds r4, 0x1
|
|
cmp r4, r5
|
|
blt _080DCEF4
|
|
_080DCF48:
|
|
cmp r4, r5
|
|
bne _080DCF50
|
|
mov r7, r8
|
|
strb r5, [r7]
|
|
_080DCF50:
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _080DCECC
|
|
ldr r4, =gUnknown_02039F26
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
movs r5, 0
|
|
_080DCF68:
|
|
mov r1, sp
|
|
adds r0, r1, r5
|
|
ldrb r0, [r0]
|
|
adds r0, r4
|
|
strb r5, [r0]
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _080DCF68
|
|
b _080DD034
|
|
.pool
|
|
_080DCF80:
|
|
mov r0, sp
|
|
movs r1, 0xFF
|
|
movs r2, 0x4
|
|
bl memset
|
|
movs r5, 0
|
|
ldr r3, =gUnknown_02039F26
|
|
movs r6, 0
|
|
_080DCF90:
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r6, r0
|
|
ldrb r0, [r0, 0xB]
|
|
lsls r0, 30
|
|
lsrs r2, r0, 30
|
|
mov r7, sp
|
|
adds r1, r7, r2
|
|
b _080DCFB6
|
|
.pool
|
|
_080DCFAC:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
mov r0, sp
|
|
adds r1, r0, r2
|
|
_080DCFB6:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xFF
|
|
bne _080DCFAC
|
|
strb r5, [r1]
|
|
strb r2, [r3]
|
|
adds r3, 0x1
|
|
adds r6, 0x1C
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _080DCF90
|
|
movs r5, 0
|
|
_080DCFCC:
|
|
movs r4, 0x3
|
|
adds r1, r5, 0x1
|
|
mov r10, r1
|
|
cmp r4, r5
|
|
ble _080DD02E
|
|
mov r9, r4
|
|
ldr r2, =gUnknown_02039F26
|
|
mov r8, r2
|
|
add r3, sp, 0x4
|
|
mov r12, r3
|
|
_080DCFE0:
|
|
ldr r6, =gContestResources
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r4, 3
|
|
subs r0, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
adds r1, r0, 0
|
|
subs r1, 0x1C
|
|
ldrb r2, [r1, 0xB]
|
|
ldrb r3, [r0, 0xB]
|
|
mov r1, r9
|
|
ands r1, r2
|
|
mov r0, r9
|
|
ands r0, r3
|
|
subs r3, r4, 0x1
|
|
cmp r1, r0
|
|
bne _080DD028
|
|
mov r0, r8
|
|
adds r7, r3, r0
|
|
adds r2, r4, r0
|
|
ldrb r6, [r7]
|
|
ldrb r1, [r2]
|
|
cmp r6, r1
|
|
bcs _080DD028
|
|
lsls r0, r3, 1
|
|
add r0, r12
|
|
lsls r1, r4, 1
|
|
add r1, r12
|
|
ldrh r0, [r0]
|
|
ldrh r1, [r1]
|
|
cmp r0, r1
|
|
bcs _080DD028
|
|
ldrb r0, [r2]
|
|
strb r6, [r2]
|
|
strb r0, [r7]
|
|
_080DD028:
|
|
adds r4, r3, 0
|
|
cmp r4, r5
|
|
bgt _080DCFE0
|
|
_080DD02E:
|
|
mov r5, r10
|
|
cmp r5, 0x2
|
|
ble _080DCFCC
|
|
_080DD034:
|
|
add sp, 0x14
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DCE58
|
|
|
|
thumb_func_start sub_80DD04C
|
|
sub_80DD04C: @ 80DD04C
|
|
push {r4,r5,lr}
|
|
movs r4, 0
|
|
movs r5, 0xA0
|
|
_080DD052:
|
|
ldr r0, =gHeap+0x1A004
|
|
adds r0, r5, r0
|
|
ldr r1, =gUnknown_02039F26
|
|
adds r1, r4, r1
|
|
ldrb r1, [r1]
|
|
adds r1, 0x5
|
|
lsls r1, 4
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
adds r5, 0x20
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DD052
|
|
bl sub_80DAEA4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DD04C
|
|
|
|
thumb_func_start sub_80DD080
|
|
sub_80DD080: @ 80DD080
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r4, =gContestResources
|
|
ldr r3, [r4]
|
|
ldr r1, [r3, 0x4]
|
|
lsls r7, r6, 3
|
|
subs r0, r7, r6
|
|
lsls r5, r0, 2
|
|
adds r1, r5, r1
|
|
movs r2, 0
|
|
strh r2, [r1, 0x2]
|
|
ldr r0, [r3, 0x4]
|
|
adds r0, r5, r0
|
|
strh r2, [r0]
|
|
adds r0, r6, 0
|
|
bl sub_80DBA68
|
|
lsls r0, 24
|
|
mov r8, r4
|
|
cmp r0, 0
|
|
bne _080DD0B4
|
|
b _080DD3C4
|
|
_080DD0B4:
|
|
ldr r0, [r4]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r5, r1
|
|
ldrh r0, [r1, 0x6]
|
|
ldr r2, =gContestMoves
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrb r2, [r0]
|
|
mov r9, r2
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r0, 29
|
|
lsrs r0, 29
|
|
strb r0, [r1, 0xA]
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x4]
|
|
adds r2, r5, r0
|
|
ldrh r0, [r2, 0x6]
|
|
ldrh r1, [r2, 0x8]
|
|
cmp r0, r1
|
|
bne _080DD110
|
|
cmp r0, 0
|
|
beq _080DD110
|
|
ldrb r0, [r2, 0x15]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x15]
|
|
ldr r0, [r4]
|
|
ldr r2, [r0, 0x4]
|
|
adds r2, r5, r2
|
|
ldrb r3, [r2, 0xB]
|
|
lsls r1, r3, 25
|
|
lsrs r1, 29
|
|
adds r1, 0x1
|
|
movs r0, 0x7
|
|
ands r1, r0
|
|
lsls r1, 4
|
|
movs r0, 0x71
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2, 0xB]
|
|
b _080DD12C
|
|
.pool
|
|
_080DD110:
|
|
ldr r4, =gContestResources
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x4]
|
|
lsls r3, r6, 3
|
|
subs r1, r3, r6
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0xB]
|
|
movs r0, 0x71
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0xB]
|
|
mov r8, r4
|
|
adds r7, r3, 0
|
|
_080DD12C:
|
|
mov r2, r8
|
|
ldr r4, [r2]
|
|
ldr r2, [r4, 0x4]
|
|
subs r0, r7, r6
|
|
lsls r0, 2
|
|
adds r2, r0, r2
|
|
ldr r3, =gContestEffects
|
|
mov r1, r9
|
|
lsls r5, r1, 2
|
|
adds r3, r5, r3
|
|
ldrb r1, [r3, 0x1]
|
|
strh r1, [r2]
|
|
ldr r1, [r4, 0x4]
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
strh r1, [r0, 0x2]
|
|
ldr r1, [r4, 0x8]
|
|
ldrb r0, [r3, 0x2]
|
|
strh r0, [r1, 0x4]
|
|
ldr r1, [r4, 0x8]
|
|
ldrh r0, [r1, 0x4]
|
|
strh r0, [r1, 0x6]
|
|
ldr r0, [r4, 0x8]
|
|
strb r6, [r0, 0x11]
|
|
movs r2, 0
|
|
mov r9, r5
|
|
mov r4, r8
|
|
movs r3, 0
|
|
movs r1, 0
|
|
_080DD166:
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r1, r0
|
|
strb r3, [r0, 0xE]
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x8]
|
|
adds r0, 0xD
|
|
adds r0, r2
|
|
strb r3, [r0]
|
|
adds r1, 0x1C
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
ble _080DD166
|
|
ldr r5, =gContestResources
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
subs r0, r7, r6
|
|
lsls r4, r0, 2
|
|
adds r2, r4, r1
|
|
ldrb r1, [r2, 0x15]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DD1B4
|
|
ldrh r0, [r2, 0x8]
|
|
ldrh r1, [r2, 0x6]
|
|
bl AreMovesContestCombo
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080DD1B4
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x15]
|
|
movs r0, 0x11
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x15]
|
|
_080DD1B4:
|
|
ldr r0, =gContestEffectFuncs
|
|
add r0, r9
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
subs r0, r7, r6
|
|
lsls r0, 2
|
|
adds r2, r0, r1
|
|
ldrb r1, [r2, 0x10]
|
|
movs r0, 0x30
|
|
ands r0, r1
|
|
cmp r0, 0x10
|
|
bne _080DD1EC
|
|
ldrh r1, [r2, 0x2]
|
|
subs r1, 0xA
|
|
movs r0, 0xD
|
|
ldrsb r0, [r2, r0]
|
|
b _080DD206
|
|
.pool
|
|
_080DD1EC:
|
|
ldrb r1, [r2, 0x11]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DD200
|
|
movs r1, 0xD
|
|
ldrsb r1, [r2, r1]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
b _080DD204
|
|
_080DD200:
|
|
movs r0, 0xD
|
|
ldrsb r0, [r2, r0]
|
|
_080DD204:
|
|
ldrh r1, [r2, 0x2]
|
|
_080DD206:
|
|
adds r0, r1
|
|
strh r0, [r2, 0x2]
|
|
ldr r5, =gContestResources
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
subs r0, r7, r6
|
|
lsls r4, r0, 2
|
|
adds r1, r4, r1
|
|
movs r0, 0
|
|
strb r0, [r1, 0x16]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x15]
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x15]
|
|
adds r0, r6, 0
|
|
bl sub_80DE1E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080DD2E2
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrh r0, [r1, 0x8]
|
|
ldrh r1, [r1, 0x6]
|
|
bl AreMovesContestCombo
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0
|
|
beq _080DD29C
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
adds r2, r4, r0
|
|
ldrb r1, [r2, 0x15]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DD29C
|
|
strb r3, [r2, 0x16]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r0, [r1, 0x15]
|
|
movs r2, 0x40
|
|
orrs r0, r2
|
|
strb r0, [r1, 0x15]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x15]
|
|
movs r0, 0x11
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x15]
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r4, r0
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
ldrb r1, [r0, 0x16]
|
|
muls r1, r2
|
|
strb r1, [r0, 0x17]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r0, [r1, 0x15]
|
|
movs r2, 0x8
|
|
b _080DD2C8
|
|
.pool
|
|
_080DD29C:
|
|
ldr r2, =gContestMoves
|
|
ldr r5, =gContestResources
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
subs r0, r7, r6
|
|
lsls r4, r0, 2
|
|
adds r3, r4, r1
|
|
ldrh r0, [r3, 0x6]
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x2]
|
|
cmp r0, 0
|
|
beq _080DD2D8
|
|
ldrb r0, [r3, 0x15]
|
|
movs r1, 0x10
|
|
orrs r0, r1
|
|
strb r0, [r3, 0x15]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r0, [r1, 0x15]
|
|
movs r2, 0x40
|
|
_080DD2C8:
|
|
orrs r0, r2
|
|
strb r0, [r1, 0x15]
|
|
b _080DD2E2
|
|
.pool
|
|
_080DD2D8:
|
|
ldrb r1, [r3, 0x15]
|
|
movs r0, 0x11
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r3, 0x15]
|
|
_080DD2E2:
|
|
ldr r5, =gContestResources
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
subs r0, r7, r6
|
|
lsls r4, r0, 2
|
|
adds r2, r4, r1
|
|
ldrb r1, [r2, 0x15]
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DD30A
|
|
ldrb r0, [r2, 0xB]
|
|
lsls r0, 25
|
|
lsrs r0, 29
|
|
adds r0, 0x1
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 1
|
|
strb r1, [r2, 0x18]
|
|
_080DD30A:
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
adds r2, r4, r0
|
|
ldrb r1, [r2, 0xC]
|
|
mov r0, r8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DD334
|
|
ldrb r1, [r2, 0x15]
|
|
movs r0, 0x11
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x15]
|
|
ldr r2, [r5]
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r4, r0
|
|
movs r1, 0
|
|
strh r1, [r0, 0x2]
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r4, r0
|
|
strh r1, [r0]
|
|
_080DD334:
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r4, r0
|
|
ldrh r0, [r0, 0x6]
|
|
bl Contest_GetMoveExcitement
|
|
ldr r1, [r5]
|
|
ldr r1, [r1, 0x10]
|
|
strb r0, [r1]
|
|
ldr r2, [r5]
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0, 0x11]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DD35C
|
|
ldr r0, [r2, 0x10]
|
|
mov r1, r8
|
|
strb r1, [r0]
|
|
_080DD35C:
|
|
ldr r1, [r5]
|
|
ldr r3, [r1, 0x10]
|
|
movs r0, 0
|
|
ldrsb r0, [r3, r0]
|
|
cmp r0, 0
|
|
ble _080DD388
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, 0x13]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
movs r1, 0
|
|
ldrsb r1, [r3, r1]
|
|
adds r0, r1
|
|
cmp r0, 0x4
|
|
ble _080DD384
|
|
movs r0, 0x3C
|
|
b _080DD38A
|
|
.pool
|
|
_080DD384:
|
|
movs r0, 0xA
|
|
b _080DD38A
|
|
_080DD388:
|
|
movs r0, 0
|
|
_080DD38A:
|
|
strb r0, [r3, 0x2]
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x3
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r2, 0
|
|
b _080DD3AE
|
|
_080DD3A2:
|
|
subs r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_080DD3A8:
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
bgt _080DD3B6
|
|
_080DD3AE:
|
|
cmp r2, r6
|
|
beq _080DD3A8
|
|
cmp r0, 0
|
|
bne _080DD3A2
|
|
_080DD3B6:
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
subs r0, r7, r6
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
strb r2, [r0, 0x1B]
|
|
_080DD3C4:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DD080
|
|
|
|
thumb_func_start SetContestantEffectStringID
|
|
SetContestantEffectStringID: @ 80DD3D4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gContestResources
|
|
ldr r2, [r2]
|
|
ldr r3, [r2, 0x4]
|
|
lsls r2, r0, 3
|
|
subs r2, r0
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
strb r1, [r2, 0x13]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end SetContestantEffectStringID
|
|
|
|
thumb_func_start SetContestantEffectStringID2
|
|
SetContestantEffectStringID2: @ 80DD3F0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gContestResources
|
|
ldr r2, [r2]
|
|
ldr r3, [r2, 0x4]
|
|
lsls r2, r0, 3
|
|
subs r2, r0
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
strb r1, [r2, 0x14]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end SetContestantEffectStringID2
|
|
|
|
thumb_func_start SetStartledString
|
|
SetStartledString: @ 80DD40C
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r3, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r2, r1, 0
|
|
cmp r1, 0x3B
|
|
bls _080DD426
|
|
movs r1, 0x35
|
|
bl SetContestantEffectStringID
|
|
b _080DD456
|
|
_080DD426:
|
|
cmp r1, 0x27
|
|
bls _080DD432
|
|
movs r1, 0x34
|
|
bl SetContestantEffectStringID
|
|
b _080DD456
|
|
_080DD432:
|
|
cmp r1, 0x1D
|
|
bls _080DD43E
|
|
movs r1, 0x33
|
|
bl SetContestantEffectStringID
|
|
b _080DD456
|
|
_080DD43E:
|
|
cmp r1, 0x13
|
|
bls _080DD44A
|
|
movs r1, 0x32
|
|
bl SetContestantEffectStringID
|
|
b _080DD456
|
|
_080DD44A:
|
|
cmp r2, 0x9
|
|
bls _080DD456
|
|
adds r0, r3, 0
|
|
movs r1, 0x31
|
|
bl SetContestantEffectStringID
|
|
_080DD456:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end SetStartledString
|
|
|
|
thumb_func_start sub_80DD45C
|
|
sub_80DD45C: @ 80DD45C
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r1, 24
|
|
lsrs r6, r1, 24
|
|
ldr r0, =gStringVar1
|
|
lsls r1, r4, 6
|
|
ldr r2, =gContestMons + 2
|
|
adds r1, r2
|
|
bl StringCopy
|
|
ldr r0, =gStringVar2
|
|
ldr r5, =gContestResources
|
|
ldr r1, [r5]
|
|
ldr r2, [r1, 0x4]
|
|
lsls r1, r4, 3
|
|
subs r1, r4
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrh r2, [r1, 0x6]
|
|
movs r1, 0xD
|
|
muls r1, r2
|
|
ldr r2, =gMoveNames
|
|
adds r1, r2
|
|
bl StringCopy
|
|
ldr r3, =gContestMoves
|
|
ldr r1, [r5]
|
|
ldr r0, [r1, 0x8]
|
|
ldrb r2, [r0, 0x11]
|
|
ldr r1, [r1, 0x4]
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x6]
|
|
lsls r0, 3
|
|
adds r0, r3
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r1, r0, 29
|
|
cmp r1, 0
|
|
bne _080DD4DC
|
|
ldr r0, =gStringVar3
|
|
ldr r1, =gText_0827E837
|
|
bl StringCopy
|
|
b _080DD52C
|
|
.pool
|
|
_080DD4DC:
|
|
lsrs r0, r1, 29
|
|
cmp r0, 0x1
|
|
bne _080DD4F4
|
|
ldr r0, =gStringVar3
|
|
ldr r1, =gText_0827E83F
|
|
bl StringCopy
|
|
b _080DD52C
|
|
.pool
|
|
_080DD4F4:
|
|
lsrs r0, r1, 29
|
|
cmp r0, 0x2
|
|
bne _080DD50C
|
|
ldr r0, =gStringVar3
|
|
ldr r1, =gText_0827E847
|
|
bl StringCopy
|
|
b _080DD52C
|
|
.pool
|
|
_080DD50C:
|
|
lsrs r0, r1, 29
|
|
cmp r0, 0x3
|
|
bne _080DD524
|
|
ldr r0, =gStringVar3
|
|
ldr r1, =gText_0827E850
|
|
bl StringCopy
|
|
b _080DD52C
|
|
.pool
|
|
_080DD524:
|
|
ldr r0, =gStringVar3
|
|
ldr r1, =gText_0827E85A
|
|
bl StringCopy
|
|
_080DD52C:
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gUnknown_08587E10
|
|
lsls r0, r6, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
bl sub_80DB89C
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl Contest_StartTextPrinter
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DD45C
|
|
|
|
thumb_func_start MakeContestantNervous
|
|
MakeContestantNervous: @ 80DD560
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r4, =gContestResources
|
|
ldr r1, [r4]
|
|
ldr r3, [r1, 0x4]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r3, r1, r3
|
|
ldrb r0, [r3, 0xC]
|
|
movs r2, 0x1
|
|
orrs r0, r2
|
|
strb r0, [r3, 0xC]
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x4]
|
|
adds r1, r0
|
|
movs r0, 0
|
|
strh r0, [r1, 0x6]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end MakeContestantNervous
|
|
|
|
thumb_func_start sub_80DD590
|
|
sub_80DD590: @ 80DD590
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x8
|
|
movs r0, 0
|
|
mov r12, r0
|
|
movs r4, 0
|
|
ldr r1, =gUnknown_02039F26
|
|
mov r9, r1
|
|
add r2, sp, 0x4
|
|
mov r6, r9
|
|
movs r5, 0
|
|
adds r3, r2, 0
|
|
_080DD5AC:
|
|
mov r0, sp
|
|
adds r1, r0, r4
|
|
adds r0, r4, r6
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r0, r3, r4
|
|
strb r5, [r0]
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DD5AC
|
|
movs r4, 0
|
|
ldr r7, =gContestResources
|
|
ldr r1, [r7]
|
|
mov r8, r1
|
|
adds r5, r2, 0
|
|
_080DD5CA:
|
|
movs r2, 0
|
|
mov r0, r8
|
|
ldr r1, [r0, 0x4]
|
|
_080DD5D0:
|
|
ldrb r0, [r1, 0x19]
|
|
cmp r0, r4
|
|
beq _080DD604
|
|
adds r1, 0x1C
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
ble _080DD5D0
|
|
_080DD5DE:
|
|
cmp r2, 0x4
|
|
bne _080DD684
|
|
movs r2, 0
|
|
ldrb r0, [r5]
|
|
cmp r0, 0
|
|
bne _080DD612
|
|
ldr r0, [r7]
|
|
ldr r0, [r0, 0x4]
|
|
ldrb r0, [r0, 0x19]
|
|
cmp r0, 0xFF
|
|
bne _080DD612
|
|
mov r12, r2
|
|
movs r2, 0x1
|
|
b _080DD63A
|
|
.pool
|
|
_080DD604:
|
|
mov r1, sp
|
|
adds r0, r1, r2
|
|
strb r4, [r0]
|
|
adds r1, r5, r2
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
b _080DD5DE
|
|
_080DD612:
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
bgt _080DD676
|
|
adds r0, r5, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080DD612
|
|
ldr r0, [r7]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x19]
|
|
cmp r0, 0xFF
|
|
bne _080DD612
|
|
lsls r0, r2, 24
|
|
lsrs r0, 24
|
|
mov r12, r0
|
|
adds r2, 0x1
|
|
_080DD63A:
|
|
cmp r2, 0x3
|
|
bgt _080DD676
|
|
ldr r6, =gUnknown_02039F26
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r3, r0, 2
|
|
_080DD646:
|
|
adds r0, r5, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080DD66E
|
|
ldr r0, [r7]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0, 0x19]
|
|
cmp r0, 0xFF
|
|
bne _080DD66E
|
|
mov r1, r12
|
|
adds r0, r1, r6
|
|
adds r1, r2, r6
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bls _080DD66E
|
|
lsls r0, r2, 24
|
|
lsrs r0, 24
|
|
mov r12, r0
|
|
_080DD66E:
|
|
adds r3, 0x1C
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
ble _080DD646
|
|
_080DD676:
|
|
mov r0, sp
|
|
add r0, r12
|
|
strb r4, [r0]
|
|
mov r0, r12
|
|
adds r1, r5, r0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_080DD684:
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DD5CA
|
|
movs r4, 0
|
|
ldr r6, =gContestResources
|
|
movs r5, 0
|
|
_080DD690:
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x8]
|
|
adds r1, r4
|
|
mov r0, sp
|
|
adds r3, r0, r4
|
|
ldrb r0, [r3]
|
|
strb r0, [r1]
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r5, r0
|
|
movs r1, 0xFF
|
|
strb r1, [r0, 0x19]
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r5, r1
|
|
ldrb r2, [r1, 0x10]
|
|
movs r0, 0x3F
|
|
ands r0, r2
|
|
strb r0, [r1, 0x10]
|
|
mov r0, r9
|
|
adds r1, r4, r0
|
|
ldrb r0, [r3]
|
|
strb r0, [r1]
|
|
adds r5, 0x1C
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DD690
|
|
add sp, 0x8
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DD590
|
|
|
|
thumb_func_start sub_80DD6DC
|
|
sub_80DD6DC: @ 80DD6DC
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x30]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r2, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x54
|
|
ble _080DD712
|
|
movs r0, 0
|
|
strh r0, [r2, 0x30]
|
|
adds r3, r2, 0
|
|
adds r3, 0x3E
|
|
ldrb r0, [r3]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
ldr r0, =SpriteCallbackDummy
|
|
str r0, [r2, 0x1C]
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, 0x6]
|
|
movs r0, 0x11
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x6]
|
|
_080DD712:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DD6DC
|
|
|
|
thumb_func_start sub_80DD720
|
|
sub_80DD720: @ 80DD720
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
ldrb r5, [r0, 0x12]
|
|
cmp r1, 0x8
|
|
bls _080DD734
|
|
b _080DD8D4
|
|
_080DD734:
|
|
lsls r0, r1, 2
|
|
ldr r1, =_080DD748
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080DD748:
|
|
.4byte _080DD76C
|
|
.4byte _080DD76C
|
|
.4byte _080DD79C
|
|
.4byte _080DD7D0
|
|
.4byte _080DD804
|
|
.4byte _080DD838
|
|
.4byte _080DD86C
|
|
.4byte _080DD8D4
|
|
.4byte _080DD8A0
|
|
_080DD76C:
|
|
ldr r0, =gSprites
|
|
lsls r4, r5, 4
|
|
adds r1, r4, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x2E]
|
|
ldr r2, =0x000003ff
|
|
ands r2, r0
|
|
ldrh r3, [r1, 0x4]
|
|
ldr r0, =0xfffffc00
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strh r0, [r1, 0x4]
|
|
movs r0, 0x20
|
|
bl PlaySE
|
|
b _080DD8F8
|
|
.pool
|
|
_080DD79C:
|
|
ldr r0, =gSprites
|
|
lsls r4, r5, 4
|
|
adds r1, r4, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0x2E]
|
|
adds r2, 0x4
|
|
ldr r3, =0x000003ff
|
|
adds r0, r3, 0
|
|
ands r2, r0
|
|
ldrh r3, [r1, 0x4]
|
|
ldr r0, =0xfffffc00
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strh r0, [r1, 0x4]
|
|
movs r0, 0x1F
|
|
bl PlaySE
|
|
b _080DD8F8
|
|
.pool
|
|
_080DD7D0:
|
|
ldr r0, =gSprites
|
|
lsls r4, r5, 4
|
|
adds r1, r4, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0x2E]
|
|
adds r2, 0x8
|
|
ldr r3, =0x000003ff
|
|
adds r0, r3, 0
|
|
ands r2, r0
|
|
ldrh r3, [r1, 0x4]
|
|
ldr r0, =0xfffffc00
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strh r0, [r1, 0x4]
|
|
movs r0, 0x1F
|
|
bl PlaySE
|
|
b _080DD8F8
|
|
.pool
|
|
_080DD804:
|
|
ldr r0, =gSprites
|
|
lsls r4, r5, 4
|
|
adds r1, r4, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0x2E]
|
|
adds r2, 0xC
|
|
ldr r3, =0x000003ff
|
|
adds r0, r3, 0
|
|
ands r2, r0
|
|
ldrh r3, [r1, 0x4]
|
|
ldr r0, =0xfffffc00
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strh r0, [r1, 0x4]
|
|
movs r0, 0x2D
|
|
bl PlaySE
|
|
b _080DD8F8
|
|
.pool
|
|
_080DD838:
|
|
ldr r0, =gSprites
|
|
lsls r4, r5, 4
|
|
adds r1, r4, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0x2E]
|
|
adds r2, 0xC
|
|
ldr r3, =0x000003ff
|
|
adds r0, r3, 0
|
|
ands r2, r0
|
|
ldrh r3, [r1, 0x4]
|
|
ldr r0, =0xfffffc00
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strh r0, [r1, 0x4]
|
|
movs r0, 0x2D
|
|
bl PlaySE
|
|
b _080DD8F8
|
|
.pool
|
|
_080DD86C:
|
|
ldr r0, =gSprites
|
|
lsls r4, r5, 4
|
|
adds r1, r4, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0x2E]
|
|
adds r2, 0x10
|
|
ldr r3, =0x000003ff
|
|
adds r0, r3, 0
|
|
ands r2, r0
|
|
ldrh r3, [r1, 0x4]
|
|
ldr r0, =0xfffffc00
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strh r0, [r1, 0x4]
|
|
movs r0, 0x2D
|
|
bl PlaySE
|
|
b _080DD8F8
|
|
.pool
|
|
_080DD8A0:
|
|
ldr r0, =gSprites
|
|
lsls r4, r5, 4
|
|
adds r1, r4, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0x2E]
|
|
adds r2, 0x18
|
|
ldr r3, =0x000003ff
|
|
adds r0, r3, 0
|
|
ands r2, r0
|
|
ldrh r3, [r1, 0x4]
|
|
ldr r0, =0xfffffc00
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strh r0, [r1, 0x4]
|
|
movs r0, 0xC3
|
|
bl PlaySE
|
|
b _080DD8F8
|
|
.pool
|
|
_080DD8D4:
|
|
ldr r0, =gSprites
|
|
lsls r4, r5, 4
|
|
adds r1, r4, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0x2E]
|
|
adds r2, 0x14
|
|
ldr r3, =0x000003ff
|
|
adds r0, r3, 0
|
|
ands r2, r0
|
|
ldrh r3, [r1, 0x4]
|
|
ldr r0, =0xfffffc00
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strh r0, [r1, 0x4]
|
|
movs r0, 0x2D
|
|
bl PlaySE
|
|
_080DD8F8:
|
|
adds r2, r4, 0
|
|
ldr r4, =gSprites
|
|
adds r2, r5
|
|
lsls r2, 2
|
|
adds r1, r2, r4
|
|
movs r0, 0
|
|
strh r0, [r1, 0x30]
|
|
adds r1, 0x3E
|
|
ldrb r3, [r1]
|
|
subs r0, 0x5
|
|
ands r0, r3
|
|
strb r0, [r1]
|
|
adds r4, 0x1C
|
|
adds r2, r4
|
|
ldr r0, =sub_80DD6DC
|
|
str r0, [r2]
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r2, [r0]
|
|
ldrb r0, [r2, 0x6]
|
|
movs r1, 0x10
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x6]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DD720
|
|
|
|
thumb_func_start sub_80DD940
|
|
sub_80DD940: @ 80DD940
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
movs r5, 0
|
|
ldr r6, =gContestResources
|
|
ldr r0, =gSprites
|
|
mov r9, r0
|
|
ldr r0, =0x06010000
|
|
mov r8, r0
|
|
ldr r7, =0x04000008
|
|
_080DD956:
|
|
ldr r0, [r6]
|
|
ldr r1, [r0]
|
|
movs r0, 0x13
|
|
ldrsb r0, [r1, r0]
|
|
ldr r4, =gContestApplauseMeterGfx
|
|
cmp r5, r0
|
|
bge _080DD966
|
|
adds r4, 0x40
|
|
_080DD966:
|
|
adds r0, r1, 0
|
|
adds r0, 0x58
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
ldrh r1, [r0, 0x4]
|
|
lsls r1, 22
|
|
lsrs r1, 22
|
|
adds r0, r5, 0
|
|
adds r0, 0x11
|
|
adds r1, r0
|
|
lsls r1, 5
|
|
add r1, r8
|
|
adds r0, r4, 0
|
|
adds r2, r7, 0
|
|
bl CpuSet
|
|
adds r0, r4, 0
|
|
adds r0, 0x20
|
|
ldr r1, [r6]
|
|
ldr r1, [r1]
|
|
adds r1, 0x58
|
|
ldrb r2, [r1]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
add r1, r9
|
|
ldrh r1, [r1, 0x4]
|
|
lsls r1, 22
|
|
lsrs r1, 22
|
|
adds r2, r5, 0
|
|
adds r2, 0x19
|
|
adds r1, r2
|
|
lsls r1, 5
|
|
add r1, r8
|
|
adds r2, r7, 0
|
|
bl CpuSet
|
|
ldr r0, [r6]
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x13]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0x4
|
|
ble _080DD9C8
|
|
bl sub_80DDA20
|
|
_080DD9C8:
|
|
adds r5, 0x1
|
|
cmp r5, 0x4
|
|
ble _080DD956
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DD940
|
|
|
|
thumb_func_start Contest_GetMoveExcitement
|
|
Contest_GetMoveExcitement: @ 80DD9F0
|
|
lsls r0, 16
|
|
ldr r3, =gUnknown_085899EC
|
|
ldr r1, =gContestMoves
|
|
lsrs r0, 13
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x1]
|
|
lsls r1, 29
|
|
lsrs r1, 29
|
|
ldr r0, =gSpecialVar_ContestCategory
|
|
ldrh r2, [r0]
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
adds r1, r0
|
|
adds r1, r3
|
|
movs r0, 0
|
|
ldrsb r0, [r1, r0]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end Contest_GetMoveExcitement
|
|
|
|
thumb_func_start sub_80DDA20
|
|
sub_80DDA20: @ 80DDA20
|
|
push {r4,r5,lr}
|
|
ldr r0, =c3_08130B10
|
|
movs r1, 0xA
|
|
bl CreateTask
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r0, =gTasks
|
|
lsls r4, r5, 2
|
|
adds r4, r5
|
|
lsls r4, 3
|
|
adds r4, r0
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
ldr r0, =0x0000abe2
|
|
bl IndexOfSpritePaletteTag
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0xC]
|
|
adds r0, r5, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80DDA20
|
|
|
|
thumb_func_start c3_08130B10
|
|
c3_08130B10: @ 80DDA60
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r2, r0, r1
|
|
ldrh r0, [r2, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
bne _080DDAFE
|
|
movs r0, 0
|
|
strh r0, [r2, 0x8]
|
|
movs r3, 0xE
|
|
ldrsh r0, [r2, r3]
|
|
cmp r0, 0
|
|
bne _080DDA94
|
|
ldrh r0, [r2, 0x10]
|
|
adds r0, 0x1
|
|
b _080DDA98
|
|
.pool
|
|
_080DDA94:
|
|
ldrh r0, [r2, 0x10]
|
|
subs r0, 0x1
|
|
_080DDA98:
|
|
strh r0, [r2, 0x10]
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
movs r1, 0xC
|
|
ldrsh r0, [r4, r1]
|
|
lsls r0, 4
|
|
movs r3, 0x84
|
|
lsls r3, 1
|
|
adds r6, r3, 0
|
|
adds r0, r6
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrb r2, [r4, 0x10]
|
|
ldr r3, =0x00007fff
|
|
movs r1, 0x1
|
|
bl BlendPalette
|
|
movs r1, 0x10
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _080DDACA
|
|
cmp r0, 0x10
|
|
bne _080DDAFE
|
|
_080DDACA:
|
|
ldrh r0, [r4, 0xE]
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
strh r0, [r4, 0xE]
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x13]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0x4
|
|
bgt _080DDAFE
|
|
movs r3, 0xC
|
|
ldrsh r0, [r4, r3]
|
|
lsls r0, 4
|
|
adds r0, r6
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
movs r3, 0x1F
|
|
bl BlendPalette
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
_080DDAFE:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end c3_08130B10
|
|
|
|
thumb_func_start sub_80DDB0C
|
|
sub_80DDB0C: @ 80DDB0C
|
|
push {r4,lr}
|
|
ldr r0, =sub_80DDB6C
|
|
movs r1, 0xA
|
|
bl CreateTask
|
|
ldr r3, =gSprites
|
|
ldr r4, =gContestResources
|
|
ldr r2, [r4]
|
|
ldr r0, [r2]
|
|
adds r0, 0x58
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldr r1, =0x0000ffba
|
|
strh r1, [r0, 0x24]
|
|
ldr r0, [r2]
|
|
adds r0, 0x58
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
adds r0, 0x3E
|
|
ldrb r2, [r0]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
ldr r2, [r0]
|
|
ldrb r0, [r2, 0x6]
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x6]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DDB0C
|
|
|
|
thumb_func_start sub_80DDB6C
|
|
sub_80DDB6C: @ 80DDB6C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r3, r0, 0
|
|
ldr r4, =gContestResources
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
adds r0, 0x58
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gSprites
|
|
adds r2, r0, r1
|
|
ldr r0, =gTasks
|
|
lsls r1, r3, 2
|
|
adds r1, r3
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r5, 0xD0
|
|
lsls r5, 3
|
|
adds r0, r5, 0
|
|
ldrh r5, [r1, 0x1C]
|
|
adds r0, r5
|
|
strh r0, [r1, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
ldrh r5, [r2, 0x24]
|
|
adds r0, r5
|
|
strh r0, [r2, 0x24]
|
|
ldrb r0, [r1, 0x1C]
|
|
strh r0, [r1, 0x1C]
|
|
movs r1, 0x24
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0
|
|
ble _080DDBB8
|
|
movs r0, 0
|
|
strh r0, [r2, 0x24]
|
|
_080DDBB8:
|
|
movs r5, 0x24
|
|
ldrsh r0, [r2, r5]
|
|
cmp r0, 0
|
|
bne _080DDBD4
|
|
ldr r0, [r4]
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, 0x6]
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x6]
|
|
adds r0, r3, 0
|
|
bl DestroyTask
|
|
_080DDBD4:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DDB6C
|
|
|
|
thumb_func_start sub_80DDBE8
|
|
sub_80DDBE8: @ 80DDBE8
|
|
push {r4,r5,lr}
|
|
ldr r5, =gSprites
|
|
ldr r4, =gContestResources
|
|
ldr r0, [r4]
|
|
ldr r2, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0x58
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
adds r0, 0x3E
|
|
ldrb r0, [r0]
|
|
lsls r0, 29
|
|
cmp r0, 0
|
|
bge _080DDC1C
|
|
ldrb r1, [r2, 0x6]
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r0, r1
|
|
b _080DDC40
|
|
.pool
|
|
_080DDC1C:
|
|
ldr r0, =task08_080CD1CC
|
|
movs r1, 0xA
|
|
bl CreateTask
|
|
ldr r2, [r4]
|
|
ldr r0, [r2]
|
|
adds r0, 0x58
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0
|
|
strh r1, [r0, 0x24]
|
|
ldr r2, [r2]
|
|
ldrb r0, [r2, 0x6]
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
_080DDC40:
|
|
strb r0, [r2, 0x6]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DDBE8
|
|
|
|
thumb_func_start task08_080CD1CC
|
|
task08_080CD1CC: @ 80DDC4C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r4, r0, 0
|
|
ldr r5, =gContestResources
|
|
ldr r0, [r5]
|
|
ldr r0, [r0]
|
|
adds r0, 0x58
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gSprites
|
|
adds r3, r0, r1
|
|
ldr r0, =gTasks
|
|
lsls r2, r4, 2
|
|
adds r2, r4
|
|
lsls r2, 3
|
|
adds r2, r0
|
|
movs r1, 0xD0
|
|
lsls r1, 3
|
|
adds r0, r1, 0
|
|
ldrh r1, [r2, 0x1C]
|
|
adds r0, r1
|
|
strh r0, [r2, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
ldrh r1, [r3, 0x24]
|
|
subs r1, r0
|
|
strh r1, [r3, 0x24]
|
|
ldrb r0, [r2, 0x1C]
|
|
strh r0, [r2, 0x1C]
|
|
movs r2, 0x24
|
|
ldrsh r0, [r3, r2]
|
|
movs r1, 0x46
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bge _080DDC9C
|
|
ldr r0, =0x0000ffba
|
|
strh r0, [r3, 0x24]
|
|
_080DDC9C:
|
|
movs r2, 0x24
|
|
ldrsh r0, [r3, r2]
|
|
cmp r0, r1
|
|
bne _080DDCC4
|
|
adds r2, r3, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, [r5]
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, 0x6]
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x6]
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
_080DDCC4:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end task08_080CD1CC
|
|
|
|
thumb_func_start sub_80DDCDC
|
|
sub_80DDCDC: @ 80DDCDC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, =sub_80DDD20
|
|
movs r1, 0x5
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
lsls r4, 24
|
|
asrs r4, 24
|
|
strh r4, [r1, 0x8]
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r2, [r0]
|
|
ldrb r0, [r2, 0x6]
|
|
movs r1, 0x20
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x6]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DDCDC
|
|
|
|
thumb_func_start sub_80DDD20
|
|
sub_80DDD20: @ 80DDD20
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
movs r1, 0x1C
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
beq _080DDD54
|
|
cmp r0, 0x1
|
|
bgt _080DDD48
|
|
cmp r0, 0
|
|
beq _080DDD4E
|
|
b _080DDD9C
|
|
.pool
|
|
_080DDD48:
|
|
cmp r0, 0x2
|
|
beq _080DDD70
|
|
b _080DDD9C
|
|
_080DDD4E:
|
|
bl sub_80DDB0C
|
|
b _080DDD64
|
|
_080DDD54:
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x6]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080DDD9C
|
|
_080DDD64:
|
|
ldrh r0, [r4, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x1C]
|
|
b _080DDD9C
|
|
.pool
|
|
_080DDD70:
|
|
ldrh r0, [r4, 0x1E]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r4, 0x1E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x14
|
|
ble _080DDD9C
|
|
movs r0, 0
|
|
strh r0, [r4, 0x1E]
|
|
bl sub_80DD940
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, 0x6]
|
|
movs r0, 0x21
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x6]
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
_080DDD9C:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DDD20
|
|
|
|
thumb_func_start sub_80DDDA8
|
|
sub_80DDDA8: @ 80DDDA8
|
|
ldr r3, =gSprites
|
|
ldr r0, =gContestResources
|
|
ldr r2, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, 0x58
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
movs r1, 0
|
|
strh r1, [r0, 0x24]
|
|
ldr r0, [r2]
|
|
adds r0, 0x58
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
adds r0, 0x3E
|
|
ldrb r2, [r0]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_80DDDA8
|
|
|
|
thumb_func_start sub_80DDDE4
|
|
sub_80DDDE4: @ 80DDDE4
|
|
ldr r2, =gSprites
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
adds r0, 0x58
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_80DDDE4
|
|
|
|
thumb_func_start sub_80DDE0C
|
|
sub_80DDE0C: @ 80DDE0C
|
|
push {lr}
|
|
ldr r0, =sub_80DDE30
|
|
movs r1, 0xF
|
|
bl CreateTask
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r2, [r0]
|
|
ldrb r0, [r2, 0x6]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x6]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DDE0C
|
|
|
|
thumb_func_start sub_80DDE30
|
|
sub_80DDE30: @ 80DDE30
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
ldrh r0, [r4, 0x1C]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r4, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x6
|
|
ble _080DDEBA
|
|
movs r0, 0
|
|
strh r0, [r4, 0x1C]
|
|
movs r1, 0x1E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080DDE78
|
|
ldr r0, =gHeap+0x19000
|
|
ldr r1, =0x06002000
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
movs r3, 0x1
|
|
bl RequestDma3Copy
|
|
b _080DDE8C
|
|
.pool
|
|
_080DDE78:
|
|
ldr r0, =gHeap+0x18000
|
|
ldr r1, =0x06002000
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
movs r3, 0x1
|
|
bl RequestDma3Copy
|
|
ldrh r0, [r4, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x20]
|
|
_080DDE8C:
|
|
ldr r1, =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrh r1, [r0, 0x1E]
|
|
movs r2, 0x1
|
|
eors r1, r2
|
|
strh r1, [r0, 0x1E]
|
|
movs r1, 0x20
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0x9
|
|
bne _080DDEBA
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, 0x6]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2, 0x6]
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
_080DDEBA:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DDE30
|
|
|
|
thumb_func_start sub_80DDED0
|
|
sub_80DDED0: @ 80DDED0
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
ldr r0, =sub_80DDF80
|
|
movs r1, 0xA
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r4, 24
|
|
cmp r4, 0
|
|
ble _080DDF38
|
|
ldr r7, =0x0000237e
|
|
lsls r0, r5, 24
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
ble _080DDF1C
|
|
movs r5, 0
|
|
ldr r2, =gContestResources
|
|
ldr r0, [r2]
|
|
ldr r0, [r0]
|
|
movs r1, 0x13
|
|
ldrsb r1, [r0, r1]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
b _080DDF4E
|
|
.pool
|
|
_080DDF1C:
|
|
ldr r2, =gContestResources
|
|
ldr r0, [r2]
|
|
ldr r0, [r0]
|
|
movs r1, 0x13
|
|
ldrsb r1, [r0, r1]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r3, 0
|
|
b _080DDF4E
|
|
.pool
|
|
_080DDF38:
|
|
movs r7, 0
|
|
lsls r0, r5, 24
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
ble _080DDF48
|
|
movs r5, 0
|
|
movs r3, 0xC
|
|
b _080DDF4C
|
|
_080DDF48:
|
|
movs r5, 0xC
|
|
movs r3, 0
|
|
_080DDF4C:
|
|
ldr r2, =gContestResources
|
|
_080DDF4E:
|
|
ldr r1, =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
strh r7, [r0, 0x8]
|
|
strh r5, [r0, 0xA]
|
|
asrs r1, r4, 24
|
|
strh r1, [r0, 0xC]
|
|
strh r3, [r0, 0xE]
|
|
ldr r0, [r2]
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, 0x7]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x7]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DDED0
|
|
|
|
thumb_func_start sub_80DDF80
|
|
sub_80DDF80: @ 80DDF80
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r3, r0, r2
|
|
ldrh r0, [r3, 0x1C]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r3, 0x1C]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
blt _080DDFFC
|
|
movs r0, 0
|
|
strh r0, [r3, 0x1C]
|
|
movs r1, 0xC
|
|
ldrsh r0, [r3, r1]
|
|
cmp r0, 0
|
|
ble _080DDFB4
|
|
ldrh r0, [r3, 0xA]
|
|
adds r0, 0x1
|
|
b _080DDFB8
|
|
.pool
|
|
_080DDFB4:
|
|
ldrh r0, [r3, 0xA]
|
|
subs r0, 0x1
|
|
_080DDFB8:
|
|
strh r0, [r3, 0xA]
|
|
lsls r4, r5, 2
|
|
adds r4, r5
|
|
lsls r4, 3
|
|
adds r4, r2
|
|
ldrb r2, [r4, 0xA]
|
|
ldrh r3, [r4, 0x8]
|
|
movs r0, 0x11
|
|
movs r1, 0x1
|
|
bl BlendPalette
|
|
ldrb r2, [r4, 0xA]
|
|
ldrh r3, [r4, 0x8]
|
|
movs r0, 0x1A
|
|
movs r1, 0x1
|
|
bl BlendPalette
|
|
movs r2, 0xA
|
|
ldrsh r1, [r4, r2]
|
|
movs r2, 0xE
|
|
ldrsh r0, [r4, r2]
|
|
cmp r1, r0
|
|
bne _080DDFFC
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, 0x7]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x7]
|
|
_080DDFFC:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DDF80
|
|
|
|
thumb_func_start sub_80DE008
|
|
sub_80DE008: @ 80DE008
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
movs r5, 0
|
|
ldr r0, =gContestResources
|
|
mov r9, r0
|
|
mov r8, r9
|
|
ldr r6, =gSprites
|
|
movs r4, 0
|
|
movs r7, 0
|
|
_080DE026:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r7, r0
|
|
ldrb r1, [r0, 0x10]
|
|
movs r0, 0xC0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DE0BC
|
|
mov r2, r10
|
|
cmp r2, 0
|
|
beq _080DE0BC
|
|
lsls r0, r5, 24
|
|
lsrs r0, 24
|
|
bl sub_80DE0F0
|
|
mov r3, r8
|
|
ldr r1, [r3]
|
|
ldr r1, [r1, 0x14]
|
|
adds r1, r4, r1
|
|
ldrb r2, [r1, 0x1]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldrh r1, [r1, 0x4]
|
|
lsls r1, 22
|
|
lsrs r1, 17
|
|
ldr r2, =0x060100c0
|
|
adds r1, r2
|
|
ldr r2, =0x04000008
|
|
bl CpuSet
|
|
mov r0, r8
|
|
ldr r3, [r0]
|
|
ldr r0, [r3, 0x14]
|
|
adds r0, r4, r0
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldr r2, =gUnknown_08587A70
|
|
ldr r0, =gUnknown_02039F26
|
|
adds r0, r5, r0
|
|
ldrb r0, [r0]
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
strh r0, [r1, 0x22]
|
|
ldr r0, [r3, 0x14]
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0, 0x1]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r3, 0x5
|
|
negs r3, r3
|
|
adds r2, r3, 0
|
|
ands r1, r2
|
|
b _080DE0D6
|
|
.pool
|
|
_080DE0BC:
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, 0x14]
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0, 0x1]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
_080DE0D6:
|
|
strb r1, [r0]
|
|
adds r4, 0x4
|
|
adds r7, 0x1C
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _080DE026
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DE008
|
|
|
|
thumb_func_start sub_80DE0F0
|
|
sub_80DE0F0: @ 80DE0F0
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gContestResources
|
|
ldr r1, [r1]
|
|
ldr r2, [r1, 0x4]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r2, r1, r2
|
|
ldrb r1, [r2, 0x10]
|
|
movs r0, 0xC0
|
|
ands r0, r1
|
|
cmp r0, 0x40
|
|
bne _080DE120
|
|
ldrb r0, [r2, 0x19]
|
|
lsls r0, 5
|
|
ldr r1, =gUnknown_08D8E9B4
|
|
adds r0, r1
|
|
b _080DE122
|
|
.pool
|
|
_080DE120:
|
|
ldr r0, =gUnknown_08D8EA34
|
|
_080DE122:
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80DE0F0
|
|
|
|
thumb_func_start sub_80DE12C
|
|
sub_80DE12C: @ 80DE12C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
movs r7, 0
|
|
movs r0, 0x2
|
|
mov r10, r0
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
movs r0, 0x11
|
|
mov r9, r0
|
|
_080DE146:
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x8]
|
|
adds r0, 0xD
|
|
adds r0, r7
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080DE1CA
|
|
lsls r0, r7, 24
|
|
lsrs r0, 24
|
|
bl Contest_IsMonsTurnDisabled
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080DE1CA
|
|
ldr r0, =gUnknown_02039F26
|
|
adds r0, r7, r0
|
|
ldrb r0, [r0]
|
|
lsls r5, r0, 2
|
|
adds r5, r0
|
|
adds r6, r5, 0x2
|
|
movs r0, 0x3
|
|
bl sub_80DB748
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
mov r0, r10
|
|
str r0, [sp]
|
|
mov r0, r8
|
|
str r0, [sp, 0x4]
|
|
mov r0, r9
|
|
str r0, [sp, 0x8]
|
|
mov r0, r8
|
|
str r0, [sp, 0xC]
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x14
|
|
adds r3, r6, 0
|
|
bl ContestBG_FillBoxWithIncrementingTile
|
|
adds r4, 0x10
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
adds r5, 0x3
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
mov r0, r10
|
|
str r0, [sp]
|
|
mov r0, r8
|
|
str r0, [sp, 0x4]
|
|
mov r0, r9
|
|
str r0, [sp, 0x8]
|
|
mov r0, r8
|
|
str r0, [sp, 0xC]
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x14
|
|
adds r3, r5, 0
|
|
bl ContestBG_FillBoxWithIncrementingTile
|
|
movs r0, 0x63
|
|
bl PlaySE
|
|
_080DE1CA:
|
|
adds r7, 0x1
|
|
cmp r7, 0x3
|
|
ble _080DE146
|
|
add sp, 0x10
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DE12C
|
|
|
|
thumb_func_start sub_80DE1E8
|
|
sub_80DE1E8: @ 80DE1E8
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gContestResources
|
|
ldr r1, [r1]
|
|
ldr r2, [r1, 0x4]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r2, r1, r2
|
|
ldrb r1, [r2, 0x15]
|
|
movs r3, 0x1
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080DE212
|
|
ldrb r1, [r2, 0xC]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DE21C
|
|
_080DE212:
|
|
movs r0, 0
|
|
b _080DE21E
|
|
.pool
|
|
_080DE21C:
|
|
movs r0, 0x1
|
|
_080DE21E:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80DE1E8
|
|
|
|
thumb_func_start sub_80DE224
|
|
sub_80DE224: @ 80DE224
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0xC
|
|
movs r0, 0xA
|
|
bl GetGpuReg
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
mov r2, sp
|
|
ldrb r1, [r2]
|
|
movs r4, 0x4
|
|
negs r4, r4
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldrb r1, [r2, 0x1]
|
|
movs r0, 0x3F
|
|
ands r0, r1
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x1]
|
|
ldrb r1, [r2, 0x1]
|
|
movs r0, 0x21
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x1]
|
|
ldrb r1, [r2]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
mov r8, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
mov r0, sp
|
|
ldrh r1, [r0]
|
|
movs r0, 0xA
|
|
bl SetGpuReg
|
|
movs r0, 0x8
|
|
bl GetGpuReg
|
|
mov r6, sp
|
|
adds r6, 0x2
|
|
strh r0, [r6]
|
|
movs r0, 0xC
|
|
bl GetGpuReg
|
|
add r5, sp, 0x4
|
|
strh r0, [r5]
|
|
ldrb r1, [r6]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r6]
|
|
ldrb r0, [r5]
|
|
ands r4, r0
|
|
orrs r4, r1
|
|
strb r4, [r5]
|
|
ldrh r1, [r6]
|
|
movs r0, 0x8
|
|
bl SetGpuReg
|
|
ldrh r1, [r5]
|
|
movs r0, 0xC
|
|
bl SetGpuReg
|
|
ldr r1, =gBattle_BG1_X
|
|
movs r0, 0xF0
|
|
strh r0, [r1]
|
|
ldr r4, =gBattle_BG1_Y
|
|
movs r0, 0xA0
|
|
strh r0, [r4]
|
|
movs r0, 0x14
|
|
movs r1, 0xF0
|
|
bl SetGpuReg
|
|
ldrh r1, [r4]
|
|
movs r0, 0x16
|
|
bl SetGpuReg
|
|
movs r0, 0
|
|
str r0, [sp, 0x8]
|
|
add r0, sp, 0x8
|
|
ldr r4, =gContestResources
|
|
ldr r1, [r4]
|
|
ldr r1, [r1, 0x28]
|
|
ldr r2, =0x05000400
|
|
bl CpuSet
|
|
ldr r1, =gUnknown_08C17980
|
|
movs r0, 0x1
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
movs r0, 0x1
|
|
bl Contest_SetBgCopyFlags
|
|
movs r5, 0
|
|
ldr r7, =gSprites
|
|
movs r6, 0x4
|
|
_080DE2F0:
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x14]
|
|
lsls r3, r5, 2
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r7
|
|
ldrb r2, [r1, 0x5]
|
|
mov r0, r8
|
|
ands r0, r2
|
|
orrs r0, r6
|
|
strb r0, [r1, 0x5]
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x14]
|
|
adds r3, r0
|
|
ldrb r0, [r3, 0x1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r7
|
|
ldrb r2, [r1, 0x5]
|
|
mov r0, r8
|
|
ands r0, r2
|
|
orrs r0, r6
|
|
strb r0, [r1, 0x5]
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _080DE2F0
|
|
add sp, 0xC
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DE224
|
|
|
|
thumb_func_start sub_80DE350
|
|
sub_80DE350: @ 80DE350
|
|
push {r4-r7,lr}
|
|
sub sp, 0x8
|
|
ldr r1, =0x06008000
|
|
movs r2, 0x80
|
|
lsls r2, 6
|
|
movs r0, 0
|
|
movs r3, 0x1
|
|
bl RequestDma3Fill
|
|
movs r5, 0
|
|
str r5, [sp]
|
|
ldr r6, =gContestResources
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x28]
|
|
ldr r2, =0x05000400
|
|
mov r0, sp
|
|
bl CpuSet
|
|
movs r0, 0x1
|
|
bl Contest_SetBgCopyFlags
|
|
movs r0, 0xA
|
|
bl GetGpuReg
|
|
add r3, sp, 0x4
|
|
strh r0, [r3]
|
|
ldrb r1, [r3]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
mov r1, sp
|
|
adds r1, 0x5
|
|
ldrb r2, [r1]
|
|
movs r0, 0x3F
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldrb r2, [r1]
|
|
movs r0, 0x21
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldrb r1, [r3]
|
|
movs r4, 0xD
|
|
negs r4, r4
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
movs r1, 0x8
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
ldrh r1, [r3]
|
|
movs r0, 0xA
|
|
bl SetGpuReg
|
|
ldr r0, =gBattle_BG1_X
|
|
strh r5, [r0]
|
|
ldr r0, =gBattle_BG1_Y
|
|
strh r5, [r0]
|
|
ldr r7, =gSprites
|
|
_080DE3CA:
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x14]
|
|
lsls r3, r5, 2
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r7
|
|
ldrb r2, [r1, 0x5]
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x5]
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x14]
|
|
adds r3, r0
|
|
ldrb r0, [r3, 0x1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r7
|
|
ldrb r2, [r1, 0x5]
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x5]
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _080DE3CA
|
|
add sp, 0x8
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DE350
|
|
|
|
thumb_func_start sub_80DE424
|
|
sub_80DE424: @ 80DE424
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r1, =gBattle_BG1_X
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
ldr r1, =gBattle_BG1_Y
|
|
movs r0, 0xA0
|
|
strh r0, [r1]
|
|
movs r0, 0x62
|
|
movs r1, 0
|
|
bl PlaySE12WithPanning
|
|
ldr r1, =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, =sub_80DE464
|
|
str r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DE424
|
|
|
|
thumb_func_start sub_80DE464
|
|
sub_80DE464: @ 80DE464
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldr r1, =gBattle_BG1_Y
|
|
ldrh r0, [r1]
|
|
subs r0, 0x7
|
|
strh r0, [r1]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bge _080DE47C
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
_080DE47C:
|
|
ldrh r2, [r1]
|
|
cmp r2, 0
|
|
bne _080DE496
|
|
ldr r0, =gTasks
|
|
lsls r1, r3, 2
|
|
adds r1, r3
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
strh r2, [r1, 0x8]
|
|
strh r2, [r1, 0xA]
|
|
strh r2, [r1, 0xC]
|
|
ldr r0, =sub_80DE4A8
|
|
str r0, [r1]
|
|
_080DE496:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DE464
|
|
|
|
thumb_func_start sub_80DE4A8
|
|
sub_80DE4A8: @ 80DE4A8
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, =gTasks
|
|
lsls r3, r4, 2
|
|
adds r0, r3, r4
|
|
lsls r0, 3
|
|
adds r5, r0, r1
|
|
movs r0, 0x8
|
|
ldrsh r1, [r5, r0]
|
|
cmp r1, 0x1
|
|
beq _080DE52C
|
|
cmp r1, 0x1
|
|
bgt _080DE4D0
|
|
cmp r1, 0
|
|
beq _080DE4DA
|
|
b _080DE5B4
|
|
.pool
|
|
_080DE4D0:
|
|
cmp r1, 0x2
|
|
beq _080DE58A
|
|
cmp r1, 0x3
|
|
beq _080DE5A4
|
|
b _080DE5B4
|
|
_080DE4DA:
|
|
movs r2, 0
|
|
adds r6, r3, 0
|
|
ldr r5, =gContestResources
|
|
ldr r3, =gUnknown_02039F26
|
|
_080DE4E2:
|
|
ldr r0, [r5]
|
|
ldr r1, [r0]
|
|
adds r1, 0x14
|
|
adds r1, r2
|
|
adds r0, r2, r3
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
ble _080DE4E2
|
|
bl sub_80DBF90
|
|
bl sub_80DC864
|
|
bl sub_80DB69C
|
|
bl sub_80DD04C
|
|
movs r0, 0x1
|
|
bl sub_80DE008
|
|
bl sub_80DC44C
|
|
ldr r0, =gTasks
|
|
adds r1, r6, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
b _080DE5B4
|
|
.pool
|
|
_080DE52C:
|
|
ldr r0, =gIsLinkContest
|
|
ldrb r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080DE584
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r2, [r0]
|
|
ldrb r0, [r2, 0x7]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x7]
|
|
bl sub_80DA8A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080DE552
|
|
bl sub_80DBAA0
|
|
_080DE552:
|
|
ldr r4, =sub_80FCC88
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =sub_80DA110
|
|
adds r1, r4, 0
|
|
bl SetTaskFuncWithFollowupFunc
|
|
bl sub_80DBF68
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x8]
|
|
b _080DE5B4
|
|
.pool
|
|
_080DE584:
|
|
bl sub_80DBAA0
|
|
b _080DE59A
|
|
_080DE58A:
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080DE5B4
|
|
_080DE59A:
|
|
movs r0, 0x3
|
|
strh r0, [r5, 0x8]
|
|
b _080DE5B4
|
|
.pool
|
|
_080DE5A4:
|
|
bl sub_80DB884
|
|
bl sub_80DB2BC
|
|
movs r0, 0
|
|
strh r0, [r5, 0x8]
|
|
ldr r0, =sub_80DE5F4
|
|
str r0, [r5]
|
|
_080DE5B4:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DE4A8
|
|
|
|
thumb_func_start sub_80DE5C0
|
|
sub_80DE5C0: @ 80DE5C0
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r1, =gBattle_BG1_Y
|
|
ldrh r0, [r1]
|
|
adds r0, 0x7
|
|
strh r0, [r1]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xA0
|
|
ble _080DE5E4
|
|
ldr r0, =gTasks
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, =sub_80DA4F4
|
|
str r0, [r1]
|
|
_080DE5E4:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DE5C0
|
|
|
|
thumb_func_start sub_80DE5F4
|
|
sub_80DE5F4: @ 80DE5F4
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldrh r2, [r1, 0xC]
|
|
movs r3, 0xC
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0x9
|
|
bgt _080DE618
|
|
adds r0, r2, 0x1
|
|
strh r0, [r1, 0xC]
|
|
b _080DE654
|
|
.pool
|
|
_080DE618:
|
|
ldrh r3, [r1, 0xA]
|
|
movs r4, 0xA
|
|
ldrsh r0, [r1, r4]
|
|
cmp r0, 0
|
|
bne _080DE636
|
|
ldrh r2, [r1, 0x8]
|
|
movs r4, 0x8
|
|
ldrsh r0, [r1, r4]
|
|
cmp r0, 0x10
|
|
bne _080DE632
|
|
adds r0, r3, 0x1
|
|
strh r0, [r1, 0xA]
|
|
b _080DE654
|
|
_080DE632:
|
|
adds r0, r2, 0x1
|
|
b _080DE652
|
|
_080DE636:
|
|
ldrh r0, [r1, 0x8]
|
|
movs r3, 0x8
|
|
ldrsh r2, [r1, r3]
|
|
cmp r2, 0
|
|
bne _080DE650
|
|
strh r2, [r1, 0xA]
|
|
strh r2, [r1, 0xC]
|
|
ldr r0, =sub_80DE65C
|
|
str r0, [r1]
|
|
b _080DE654
|
|
.pool
|
|
_080DE650:
|
|
subs r0, 0x1
|
|
_080DE652:
|
|
strh r0, [r1, 0x8]
|
|
_080DE654:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DE5F4
|
|
|
|
thumb_func_start sub_80DE65C
|
|
sub_80DE65C: @ 80DE65C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r4, r1, r2
|
|
ldrh r1, [r4, 0xC]
|
|
movs r2, 0xC
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x9
|
|
bgt _080DE680
|
|
adds r0, r1, 0x1
|
|
strh r0, [r4, 0xC]
|
|
b _080DE690
|
|
.pool
|
|
_080DE680:
|
|
movs r0, 0
|
|
strh r0, [r4, 0xC]
|
|
movs r0, 0x61
|
|
movs r1, 0
|
|
bl PlaySE12WithPanning
|
|
ldr r0, =sub_80DE5C0
|
|
str r0, [r4]
|
|
_080DE690:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DE65C
|
|
|
|
thumb_func_start sub_80DE69C
|
|
sub_80DE69C: @ 80DE69C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
movs r7, 0
|
|
ldr r6, =gSprites
|
|
ldr r5, =gContestResources
|
|
_080DE6AE:
|
|
bl AllocOamMatrix
|
|
ldr r1, [r5]
|
|
ldr r1, [r1, 0x14]
|
|
lsls r4, r7, 2
|
|
adds r1, r4, r1
|
|
ldrb r1, [r1]
|
|
lsls r3, r1, 4
|
|
adds r3, r1
|
|
lsls r3, 2
|
|
adds r3, r6
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x1F
|
|
ands r0, r1
|
|
lsls r0, 1
|
|
ldrb r1, [r3, 0x3]
|
|
movs r2, 0x3F
|
|
negs r2, r2
|
|
mov r12, r2
|
|
mov r2, r12
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, 0x3]
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x14]
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldrb r2, [r0, 0x1]
|
|
movs r3, 0x4
|
|
negs r3, r3
|
|
adds r1, r3, 0
|
|
ands r2, r1
|
|
movs r1, 0x1
|
|
orrs r2, r1
|
|
strb r2, [r0, 0x1]
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x14]
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
mov r1, r8
|
|
bl StartSpriteAffineAnim
|
|
mov r0, r8
|
|
cmp r0, 0x2
|
|
bne _080DE74C
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x14]
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
bl AnimateSprite
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x14]
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r3, 0x5
|
|
negs r3, r3
|
|
adds r2, r3, 0
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
_080DE74C:
|
|
adds r7, 0x1
|
|
cmp r7, 0x3
|
|
ble _080DE6AE
|
|
ldr r0, =sub_80DE794
|
|
movs r1, 0x5
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
mov r0, r8
|
|
strh r0, [r1, 0x8]
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r2, [r0]
|
|
ldrb r0, [r2, 0x7]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x7]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DE69C
|
|
|
|
thumb_func_start sub_80DE794
|
|
sub_80DE794: @ 80DE794
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r2, =gSprites
|
|
ldr r3, =gContestResources
|
|
ldr r0, [r3]
|
|
ldr r0, [r0, 0x14]
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
adds r0, 0x3F
|
|
ldrb r0, [r0]
|
|
lsls r0, 26
|
|
cmp r0, 0
|
|
bge _080DE822
|
|
ldr r0, =gTasks
|
|
lsls r1, r6, 2
|
|
adds r1, r6
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x8]
|
|
cmp r0, 0x1
|
|
bne _080DE7EC
|
|
movs r4, 0
|
|
adds r5, r2, 0
|
|
movs r2, 0x4
|
|
_080DE7CC:
|
|
ldr r0, [r3]
|
|
ldr r1, [r0, 0x14]
|
|
lsls r0, r4, 2
|
|
adds r0, r1
|
|
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, 0x3
|
|
ble _080DE7CC
|
|
_080DE7EC:
|
|
movs r4, 0
|
|
_080DE7EE:
|
|
ldr r5, =gContestResources
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x14]
|
|
lsls r0, r4, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gSprites
|
|
adds r0, r1
|
|
bl FreeSpriteOamMatrix
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DE7EE
|
|
ldr r0, [r5]
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, 0x7]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x7]
|
|
adds r0, r6, 0
|
|
bl DestroyTask
|
|
_080DE822:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DE794
|
|
|
|
thumb_func_start sub_80DE834
|
|
sub_80DE834: @ 80DE834
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
movs r0, 0xB1
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bls _080DE844
|
|
movs r1, 0x1
|
|
_080DE844:
|
|
adds r0, r1, 0
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80DE834
|
|
|
|
thumb_func_start sub_80DE84C
|
|
sub_80DE84C: @ 80DE84C
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
ldr r0, =0x0000019b
|
|
cmp r1, r0
|
|
bls _080DE85A
|
|
movs r1, 0
|
|
_080DE85A:
|
|
adds r0, r1, 0
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80DE84C
|
|
|
|
thumb_func_start sub_80DE864
|
|
sub_80DE864: @ 80DE864
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r4, =gContestResources
|
|
ldr r0, [r4]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r7, 3
|
|
subs r0, r7
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x6]
|
|
bl sub_80DE834
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
ldr r1, =gContestMons
|
|
lsls r0, r7, 6
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
bl sub_80DE84C
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x18]
|
|
movs r1, 0
|
|
movs r2, 0x14
|
|
bl memset
|
|
bl ClearBattleAnimationVars
|
|
ldr r1, =gBattleMonForms
|
|
movs r2, 0
|
|
adds r0, r1, 0x3
|
|
_080DE8A8:
|
|
strb r2, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, r1
|
|
bge _080DE8A8
|
|
cmp r5, 0x90
|
|
beq _080DE920
|
|
cmp r5, 0x90
|
|
bgt _080DE8DE
|
|
cmp r5, 0x4C
|
|
beq _080DE978
|
|
cmp r5, 0x4C
|
|
bgt _080DE8D4
|
|
cmp r5, 0xD
|
|
beq _080DE978
|
|
b _080DE9A2
|
|
.pool
|
|
_080DE8D4:
|
|
cmp r5, 0x82
|
|
beq _080DE978
|
|
cmp r5, 0x8F
|
|
beq _080DE978
|
|
b _080DE9A2
|
|
_080DE8DE:
|
|
cmp r5, 0xD8
|
|
beq _080DE960
|
|
cmp r5, 0xD8
|
|
bgt _080DE8EC
|
|
cmp r5, 0xAE
|
|
beq _080DE8FA
|
|
b _080DE9A2
|
|
_080DE8EC:
|
|
cmp r5, 0xDA
|
|
beq _080DE96C
|
|
movs r0, 0x88
|
|
lsls r0, 1
|
|
cmp r5, r0
|
|
beq _080DE920
|
|
b _080DE9A2
|
|
_080DE8FA:
|
|
ldr r0, =gBaseStats
|
|
lsls r1, r6, 3
|
|
subs r1, r6
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x6]
|
|
cmp r0, 0x7
|
|
beq _080DE910
|
|
ldrb r0, [r1, 0x7]
|
|
cmp r0, 0x7
|
|
bne _080DE99C
|
|
_080DE910:
|
|
ldr r1, =gAnimMoveTurn
|
|
movs r0, 0
|
|
b _080DE9A0
|
|
.pool
|
|
_080DE920:
|
|
ldr r6, =gContestResources
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r7, 3
|
|
subs r0, r7
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r4, [r0, 0x1B]
|
|
ldr r5, =gContestMons
|
|
lsls r4, 6
|
|
adds r0, r4, r5
|
|
ldrh r0, [r0]
|
|
bl sub_80DE84C
|
|
ldr r2, [r6]
|
|
ldr r1, [r2, 0x18]
|
|
strh r0, [r1, 0x2]
|
|
ldr r2, [r2, 0x18]
|
|
adds r5, 0x38
|
|
adds r4, r5
|
|
ldr r0, [r4]
|
|
str r0, [r2, 0x10]
|
|
ldrb r0, [r2, 0x4]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x4]
|
|
b _080DE9A2
|
|
.pool
|
|
_080DE960:
|
|
ldr r1, =gAnimFriendship
|
|
movs r0, 0xFF
|
|
b _080DE9A0
|
|
.pool
|
|
_080DE96C:
|
|
ldr r1, =gAnimFriendship
|
|
movs r0, 0
|
|
b _080DE9A0
|
|
.pool
|
|
_080DE978:
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
adds r2, r0, 0
|
|
adds r2, 0x5A
|
|
ldrb r1, [r2]
|
|
cmp r1, 0
|
|
bne _080DE99C
|
|
movs r0, 0x2
|
|
strb r0, [r2]
|
|
ldr r0, =gAnimMoveTurn
|
|
strb r1, [r0]
|
|
b _080DE9A2
|
|
.pool
|
|
_080DE99C:
|
|
ldr r1, =gAnimMoveTurn
|
|
movs r0, 0x1
|
|
_080DE9A0:
|
|
strb r0, [r1]
|
|
_080DE9A2:
|
|
bl sub_80DEA5C
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DE864
|
|
|
|
thumb_func_start sub_80DE9B0
|
|
sub_80DE9B0: @ 80DE9B0
|
|
push {r4,lr}
|
|
ldr r4, =gContestResources
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x18]
|
|
movs r1, 0
|
|
movs r2, 0x14
|
|
bl memset
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
adds r1, r0, 0
|
|
adds r1, 0x5A
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _080DE9D2
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
_080DE9D2:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DE9B0
|
|
|
|
thumb_func_start sub_80DE9DC
|
|
sub_80DE9DC: @ 80DE9DC
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r6, =gContestResources
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x18]
|
|
strb r4, [r0, 0x5]
|
|
ldr r5, =gContestMons
|
|
lsls r4, 6
|
|
adds r0, r4, r5
|
|
ldrh r0, [r0]
|
|
bl sub_80DE84C
|
|
ldr r2, [r6]
|
|
ldr r1, [r2, 0x18]
|
|
strh r0, [r1]
|
|
ldr r1, [r2, 0x18]
|
|
adds r0, r5, 0
|
|
adds r0, 0x38
|
|
adds r0, r4, r0
|
|
ldr r0, [r0]
|
|
str r0, [r1, 0x8]
|
|
adds r5, 0x3C
|
|
adds r4, r5
|
|
ldr r0, [r4]
|
|
str r0, [r1, 0xC]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DE9DC
|
|
|
|
thumb_func_start sub_80DEA20
|
|
sub_80DEA20: @ 80DEA20
|
|
push {lr}
|
|
ldr r0, =SpriteCallbackDummy
|
|
bl CreateInvisibleSpriteWithCallback
|
|
ldr r1, =gBattlerSpriteIds
|
|
strb r0, [r1, 0x3]
|
|
ldr r0, =gBattlerTarget
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gSprites
|
|
adds r0, r1
|
|
bl InitSpriteAffineAnim
|
|
bl sub_80DEA5C
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DEA20
|
|
|
|
thumb_func_start sub_80DEA5C
|
|
sub_80DEA5C: @ 80DEA5C
|
|
push {r4,lr}
|
|
ldr r0, =gBattlerSpriteIds
|
|
ldrb r0, [r0, 0x3]
|
|
lsls r4, r0, 4
|
|
adds r4, r0
|
|
lsls r4, 2
|
|
ldr r0, =gSprites
|
|
adds r4, r0
|
|
movs r0, 0
|
|
strh r0, [r4, 0x24]
|
|
strh r0, [r4, 0x26]
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
bl GetBattlerSpriteCoord
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x20]
|
|
movs r0, 0x3
|
|
movs r1, 0x1
|
|
bl GetBattlerSpriteCoord
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x22]
|
|
adds r4, 0x3E
|
|
ldrb r0, [r4]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DEA5C
|
|
|
|
thumb_func_start sub_80DEAA8
|
|
sub_80DEAA8: @ 80DEAA8
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r2, =gBattleMoves
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r0, [r1, 0x6]
|
|
cmp r0, 0x20
|
|
bhi _080DEB60
|
|
lsls r0, 2
|
|
ldr r1, =_080DEAD0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080DEAD0:
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB54
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB54
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
.4byte _080DEB60
|
|
_080DEB54:
|
|
ldr r1, =gBattlerTarget
|
|
movs r0, 0x2
|
|
b _080DEB64
|
|
.pool
|
|
_080DEB60:
|
|
ldr r1, =gBattlerTarget
|
|
movs r0, 0x3
|
|
_080DEB64:
|
|
strb r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DEAA8
|
|
|
|
thumb_func_start Contest_PrintTextToBg0WindowStd
|
|
Contest_PrintTextToBg0WindowStd: @ 80DEB70
|
|
push {r4,lr}
|
|
sub sp, 0x10
|
|
adds r4, r0, 0
|
|
str r1, [sp]
|
|
mov r0, sp
|
|
movs r2, 0
|
|
strb r4, [r0, 0x4]
|
|
movs r1, 0x1
|
|
strb r1, [r0, 0x5]
|
|
strb r2, [r0, 0x6]
|
|
strb r1, [r0, 0x7]
|
|
strb r2, [r0, 0x8]
|
|
strb r1, [r0, 0x9]
|
|
strb r2, [r0, 0xA]
|
|
strb r2, [r0, 0xB]
|
|
mov r3, sp
|
|
ldrb r2, [r3, 0xC]
|
|
subs r1, 0x11
|
|
adds r0, r1, 0
|
|
ands r0, r2
|
|
strb r0, [r3, 0xC]
|
|
mov r2, sp
|
|
movs r0, 0xF0
|
|
strb r0, [r2, 0xC]
|
|
ldrb r0, [r2, 0xD]
|
|
ands r1, r0
|
|
strb r1, [r2, 0xD]
|
|
mov r1, sp
|
|
movs r0, 0x80
|
|
strb r0, [r1, 0xD]
|
|
mov r0, sp
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl AddTextPrinter
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
bl PutWindowTilemap
|
|
movs r0, 0
|
|
bl Contest_SetBgCopyFlags
|
|
add sp, 0x10
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end Contest_PrintTextToBg0WindowStd
|
|
|
|
thumb_func_start Contest_PrintTextToBg0WindowAt
|
|
Contest_PrintTextToBg0WindowAt: @ 80DEBD0
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
adds r5, r0, 0
|
|
ldr r4, [sp, 0x1C]
|
|
str r1, [sp]
|
|
mov r0, sp
|
|
movs r1, 0
|
|
strb r5, [r0, 0x4]
|
|
strb r4, [r0, 0x5]
|
|
strb r2, [r0, 0x6]
|
|
strb r3, [r0, 0x7]
|
|
strb r2, [r0, 0x8]
|
|
strb r3, [r0, 0x9]
|
|
strb r1, [r0, 0xA]
|
|
strb r1, [r0, 0xB]
|
|
mov r3, sp
|
|
ldrb r2, [r3, 0xC]
|
|
subs r1, 0x10
|
|
adds r0, r1, 0
|
|
ands r0, r2
|
|
strb r0, [r3, 0xC]
|
|
mov r2, sp
|
|
movs r0, 0xF0
|
|
strb r0, [r2, 0xC]
|
|
ldrb r0, [r2, 0xD]
|
|
ands r1, r0
|
|
strb r1, [r2, 0xD]
|
|
mov r1, sp
|
|
movs r0, 0x80
|
|
strb r0, [r1, 0xD]
|
|
mov r0, sp
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl AddTextPrinter
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
adds r0, r5, 0
|
|
bl PutWindowTilemap
|
|
movs r0, 0
|
|
bl Contest_SetBgCopyFlags
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end Contest_PrintTextToBg0WindowAt
|
|
|
|
thumb_func_start Contest_StartTextPrinter
|
|
Contest_StartTextPrinter: @ 80DEC30
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
str r0, [sp]
|
|
mov r2, sp
|
|
movs r3, 0
|
|
movs r0, 0x4
|
|
strb r0, [r2, 0x4]
|
|
mov r0, sp
|
|
movs r5, 0x1
|
|
strb r5, [r0, 0x5]
|
|
strb r3, [r0, 0x6]
|
|
strb r5, [r0, 0x7]
|
|
strb r3, [r0, 0x8]
|
|
strb r5, [r0, 0x9]
|
|
strb r3, [r0, 0xA]
|
|
strb r3, [r0, 0xB]
|
|
mov r4, sp
|
|
ldrb r3, [r4, 0xC]
|
|
movs r2, 0x10
|
|
negs r2, r2
|
|
adds r0, r2, 0
|
|
ands r0, r3
|
|
strb r0, [r4, 0xC]
|
|
mov r3, sp
|
|
movs r0, 0x10
|
|
strb r0, [r3, 0xC]
|
|
ldrb r0, [r3, 0xD]
|
|
ands r2, r0
|
|
strb r2, [r3, 0xD]
|
|
mov r2, sp
|
|
movs r0, 0x80
|
|
strb r0, [r2, 0xD]
|
|
cmp r1, 0
|
|
bne _080DEC80
|
|
mov r0, sp
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl AddTextPrinter
|
|
b _080DECA4
|
|
_080DEC80:
|
|
ldr r0, =gIsLinkContest
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DEC94
|
|
movs r1, 0x4
|
|
b _080DEC9C
|
|
.pool
|
|
_080DEC94:
|
|
bl GetPlayerTextSpeedDelay
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
_080DEC9C:
|
|
mov r0, sp
|
|
movs r2, 0
|
|
bl AddTextPrinter
|
|
_080DECA4:
|
|
movs r0, 0x4
|
|
bl PutWindowTilemap
|
|
movs r0, 0
|
|
bl Contest_SetBgCopyFlags
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end Contest_StartTextPrinter
|
|
|
|
thumb_func_start ContestBG_FillBoxWithIncrementingTile
|
|
ContestBG_FillBoxWithIncrementingTile: @ 80DECB8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x10
|
|
mov r8, r0
|
|
ldr r0, [sp, 0x28]
|
|
ldr r4, [sp, 0x2C]
|
|
ldr r5, [sp, 0x30]
|
|
ldr r6, [sp, 0x34]
|
|
mov r7, r8
|
|
lsls r7, 24
|
|
lsrs r7, 24
|
|
mov r8, r7
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
str r0, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r5, [sp, 0x8]
|
|
lsls r6, 16
|
|
asrs r6, 16
|
|
str r6, [sp, 0xC]
|
|
mov r0, r8
|
|
bl WriteSequenceToBgTilemapBuffer
|
|
mov r0, r8
|
|
bl Contest_SetBgCopyFlags
|
|
add sp, 0x10
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end ContestBG_FillBoxWithIncrementingTile
|
|
|
|
thumb_func_start ContestBG_FillBoxWithTile
|
|
ContestBG_FillBoxWithTile: @ 80DED10
|
|
push {r4-r6,lr}
|
|
sub sp, 0x10
|
|
ldr r4, [sp, 0x20]
|
|
ldr r5, [sp, 0x24]
|
|
ldr r6, [sp, 0x28]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
str r4, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r4, 0
|
|
str r4, [sp, 0xC]
|
|
bl ContestBG_FillBoxWithIncrementingTile
|
|
add sp, 0x10
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end ContestBG_FillBoxWithTile
|
|
|
|
thumb_func_start Contest_RunTextPrinters
|
|
Contest_RunTextPrinters: @ 80DED4C
|
|
push {lr}
|
|
bl RunTextPrinters
|
|
movs r0, 0x4
|
|
bl IsTextPrinterActive
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end Contest_RunTextPrinters
|
|
|
|
thumb_func_start Contest_SetBgCopyFlags
|
|
Contest_SetBgCopyFlags: @ 80DED60
|
|
ldr r2, =sContestBgCopyFlags
|
|
movs r1, 0x1
|
|
lsls r1, r0
|
|
ldrb r0, [r2]
|
|
orrs r1, r0
|
|
strb r1, [r2]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end Contest_SetBgCopyFlags
|
|
|
|
thumb_func_start ResetContestLinkResults
|
|
ResetContestLinkResults: @ 80DED74
|
|
push {r4-r6,lr}
|
|
movs r0, 0
|
|
ldr r6, =gSaveBlock2Ptr
|
|
ldr r5, =0x00000624
|
|
movs r4, 0
|
|
_080DED7E:
|
|
adds r3, r0, 0x1
|
|
lsls r1, r0, 3
|
|
movs r2, 0x3
|
|
_080DED84:
|
|
ldr r0, [r6]
|
|
adds r0, r5
|
|
adds r0, r1
|
|
strh r4, [r0]
|
|
adds r1, 0x2
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _080DED84
|
|
adds r0, r3, 0
|
|
cmp r0, 0x4
|
|
ble _080DED7E
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end ResetContestLinkResults
|
|
|
|
thumb_func_start sub_80DEDA8
|
|
sub_80DEDA8: @ 80DEDA8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp]
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x3
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
movs r5, 0
|
|
ldr r1, =gContestFinalStandings
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _080DEDE6
|
|
_080DEDD8:
|
|
adds r5, 0x1
|
|
cmp r5, 0x2
|
|
bgt _080DEDE6
|
|
adds r0, r5, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080DEDD8
|
|
_080DEDE6:
|
|
ldr r0, [sp]
|
|
cmp r0, 0xFF
|
|
bne _080DEE00
|
|
ldr r0, =gContestPlayerMonIndex
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
beq _080DEE00
|
|
movs r0, 0
|
|
b _080DEF90
|
|
.pool
|
|
_080DEE00:
|
|
ldr r0, =gSpecialVar_ContestCategory
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x4
|
|
bhi _080DEE4C
|
|
lsls r0, 2
|
|
ldr r1, =_080DEE1C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080DEE1C:
|
|
.4byte _080DEE4C
|
|
.4byte _080DEE30
|
|
.4byte _080DEE36
|
|
.4byte _080DEE3C
|
|
.4byte _080DEE42
|
|
_080DEE30:
|
|
mov r0, r8
|
|
adds r0, 0x3
|
|
b _080DEE46
|
|
_080DEE36:
|
|
mov r0, r8
|
|
adds r0, 0x6
|
|
b _080DEE46
|
|
_080DEE3C:
|
|
mov r0, r8
|
|
adds r0, 0x9
|
|
b _080DEE46
|
|
_080DEE42:
|
|
mov r0, r8
|
|
adds r0, 0xC
|
|
_080DEE46:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
_080DEE4C:
|
|
ldr r1, [sp]
|
|
cmp r1, 0xFE
|
|
bne _080DEE54
|
|
b _080DEF50
|
|
_080DEE54:
|
|
adds r0, r1, 0
|
|
movs r1, 0x1
|
|
bl sub_80DEFA8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
ldr r2, =gSaveBlock1Ptr
|
|
mov r10, r2
|
|
ldr r0, [r2]
|
|
mov r3, r9
|
|
lsls r7, r3, 5
|
|
ldr r6, =0x00002e90
|
|
adds r2, r0, r6
|
|
adds r2, r7
|
|
ldr r4, =gContestMons
|
|
lsls r5, 6
|
|
adds r1, r4, 0
|
|
adds r1, 0x38
|
|
adds r1, r5, r1
|
|
ldr r1, [r1]
|
|
str r1, [r2]
|
|
adds r1, r0, r7
|
|
adds r2, r5, r4
|
|
ldrh r2, [r2]
|
|
ldr r3, =0x00002e98
|
|
adds r1, r3
|
|
strh r2, [r1]
|
|
ldr r1, =0x00002e94
|
|
adds r2, r0, r1
|
|
adds r2, r7
|
|
adds r1, r4, 0
|
|
adds r1, 0x3C
|
|
adds r1, r5, r1
|
|
ldr r1, [r1]
|
|
str r1, [r2]
|
|
adds r6, r7, r6
|
|
adds r0, r6
|
|
adds r0, 0xB
|
|
adds r1, r4, 0x2
|
|
adds r1, r5, r1
|
|
bl StringCopy
|
|
mov r2, r10
|
|
ldr r0, [r2]
|
|
adds r0, r6
|
|
adds r0, 0x16
|
|
adds r4, 0xD
|
|
adds r5, r4
|
|
adds r1, r5, 0
|
|
bl StringCopy
|
|
ldr r0, =gIsLinkContest
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DEEF4
|
|
mov r3, r10
|
|
ldr r0, [r3]
|
|
adds r0, r7
|
|
ldr r1, =0x00002eae
|
|
adds r0, r1
|
|
movs r1, 0x4
|
|
b _080DEF02
|
|
.pool
|
|
_080DEEF4:
|
|
mov r2, r10
|
|
ldr r0, [r2]
|
|
adds r0, r7
|
|
ldr r1, =gSpecialVar_ContestRank
|
|
ldrh r1, [r1]
|
|
ldr r3, =0x00002eae
|
|
adds r0, r3
|
|
_080DEF02:
|
|
strb r1, [r0]
|
|
ldr r0, [sp]
|
|
cmp r0, 0xFF
|
|
beq _080DEF34
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
mov r2, r9
|
|
lsls r1, r2, 5
|
|
adds r0, r1
|
|
ldr r1, =gSpecialVar_ContestCategory
|
|
ldrh r1, [r1]
|
|
ldr r3, =0x00002e9a
|
|
adds r0, r3
|
|
strb r1, [r0]
|
|
b _080DEF8E
|
|
.pool
|
|
_080DEF34:
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
mov r2, r9
|
|
lsls r1, r2, 5
|
|
adds r0, r1
|
|
ldr r3, =0x00002e9a
|
|
adds r0, r3
|
|
mov r1, r8
|
|
strb r1, [r0]
|
|
b _080DEF8E
|
|
.pool
|
|
_080DEF50:
|
|
ldr r6, =gUnknown_02039F3C
|
|
ldr r4, =gContestMons
|
|
lsls r5, 6
|
|
adds r0, r4, 0
|
|
adds r0, 0x38
|
|
adds r0, r5, r0
|
|
ldr r0, [r0]
|
|
str r0, [r6]
|
|
adds r0, r4, 0
|
|
adds r0, 0x3C
|
|
adds r0, r5, r0
|
|
ldr r0, [r0]
|
|
str r0, [r6, 0x4]
|
|
adds r0, r5, r4
|
|
ldrh r0, [r0]
|
|
strh r0, [r6, 0x8]
|
|
adds r0, r6, 0
|
|
adds r0, 0xB
|
|
adds r1, r4, 0x2
|
|
adds r1, r5, r1
|
|
bl StringCopy
|
|
adds r0, r6, 0
|
|
adds r0, 0x16
|
|
adds r4, 0xD
|
|
adds r5, r4
|
|
adds r1, r5, 0
|
|
bl StringCopy
|
|
mov r2, r8
|
|
strb r2, [r6, 0xA]
|
|
_080DEF8E:
|
|
movs r0, 0x1
|
|
_080DEF90:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80DEDA8
|
|
|
|
thumb_func_start sub_80DEFA8
|
|
sub_80DEFA8: @ 80DEFA8
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
cmp r0, 0x3
|
|
bgt _080DEFF8
|
|
cmp r0, 0
|
|
blt _080DEFF8
|
|
cmp r1, 0
|
|
beq _080DEFE6
|
|
movs r2, 0x5
|
|
ldr r0, =gSaveBlock1Ptr
|
|
mov r12, r0
|
|
ldr r4, =0x00002e90
|
|
ldr r3, =0x00002e70
|
|
_080DEFC8:
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
lsls r1, r2, 5
|
|
adds r1, r0
|
|
adds r0, r1, r4
|
|
adds r1, r3
|
|
ldm r1!, {r5-r7}
|
|
stm r0!, {r5-r7}
|
|
ldm r1!, {r5-r7}
|
|
stm r0!, {r5-r7}
|
|
ldm r1!, {r5,r6}
|
|
stm r0!, {r5,r6}
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bgt _080DEFC8
|
|
_080DEFE6:
|
|
movs r0, 0
|
|
b _080DF03A
|
|
.pool
|
|
_080DEFF8:
|
|
ldr r0, =gSpecialVar_ContestCategory
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x4
|
|
bhi _080DF038
|
|
lsls r0, 2
|
|
ldr r1, =_080DF014
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080DF014:
|
|
.4byte _080DF028
|
|
.4byte _080DF02C
|
|
.4byte _080DF030
|
|
.4byte _080DF034
|
|
.4byte _080DF038
|
|
_080DF028:
|
|
movs r0, 0x8
|
|
b _080DF03A
|
|
_080DF02C:
|
|
movs r0, 0x9
|
|
b _080DF03A
|
|
_080DF030:
|
|
movs r0, 0xA
|
|
b _080DF03A
|
|
_080DF034:
|
|
movs r0, 0xB
|
|
b _080DF03A
|
|
_080DF038:
|
|
movs r0, 0xC
|
|
_080DF03A:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80DEFA8
|
|
|
|
thumb_func_start ClearContestWinnerPicsInContestHall
|
|
ClearContestWinnerPicsInContestHall: @ 80DF040
|
|
push {r4-r7,lr}
|
|
movs r2, 0
|
|
ldr r0, =gSaveBlock1Ptr
|
|
mov r12, r0
|
|
ldr r4, =0x00002e90
|
|
ldr r3, =gUnknown_08587FA4
|
|
_080DF04C:
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
lsls r1, r2, 5
|
|
adds r0, r1
|
|
adds r0, r4
|
|
adds r1, r3, 0
|
|
ldm r1!, {r5-r7}
|
|
stm r0!, {r5-r7}
|
|
ldm r1!, {r5-r7}
|
|
stm r0!, {r5-r7}
|
|
ldm r1!, {r5,r6}
|
|
stm r0!, {r5,r6}
|
|
adds r3, 0x20
|
|
adds r2, 0x1
|
|
cmp r2, 0x7
|
|
ble _080DF04C
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end ClearContestWinnerPicsInContestHall
|
|
|
|
thumb_func_start sub_80DF080
|
|
sub_80DF080: @ 80DF080
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r2, =gContestResources
|
|
ldr r3, [r2]
|
|
ldr r5, [r3, 0x10]
|
|
ldrb r1, [r5, 0x1]
|
|
movs r7, 0x1
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
adds r6, r2, 0
|
|
cmp r0, 0
|
|
bne _080DF0D2
|
|
movs r0, 0
|
|
ldrsb r0, [r5, r0]
|
|
cmp r0, 0
|
|
ble _080DF0D2
|
|
ldr r1, [r3, 0x4]
|
|
lsls r0, r4, 3
|
|
subs r0, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x15]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080DF0D2
|
|
ldr r1, [r3, 0x1C]
|
|
lsls r2, r4, 4
|
|
adds r1, r2, r1
|
|
ldrb r3, [r1, 0xC]
|
|
movs r0, 0x1
|
|
orrs r0, r3
|
|
strb r0, [r1, 0xC]
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x1C]
|
|
adds r2, r0
|
|
ldrb r0, [r2, 0xE]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r2, 0xE]
|
|
_080DF0D2:
|
|
ldr r3, [r6]
|
|
ldr r1, [r3, 0x4]
|
|
lsls r2, r4, 3
|
|
subs r0, r2, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0xC]
|
|
movs r5, 0x1
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
adds r7, r2, 0
|
|
cmp r0, 0
|
|
beq _080DF0FA
|
|
ldr r0, [r3, 0x1C]
|
|
lsls r1, r4, 4
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0xC]
|
|
movs r0, 0x2
|
|
orrs r0, r2
|
|
strb r0, [r1, 0xC]
|
|
_080DF0FA:
|
|
ldr r3, [r6]
|
|
ldr r2, [r3, 0x10]
|
|
ldrb r1, [r2, 0x1]
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080DF126
|
|
movs r0, 0
|
|
ldrsb r0, [r2, r0]
|
|
cmp r0, 0
|
|
beq _080DF126
|
|
movs r0, 0x2
|
|
ldrsb r0, [r2, r0]
|
|
cmp r0, 0x3C
|
|
bne _080DF126
|
|
ldr r0, [r3, 0x1C]
|
|
lsls r1, r4, 4
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0xC]
|
|
movs r0, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r1, 0xC]
|
|
_080DF126:
|
|
ldr r3, [r6]
|
|
ldr r1, [r3, 0x4]
|
|
subs r0, r7, r4
|
|
lsls r0, 2
|
|
adds r2, r0, r1
|
|
ldrb r1, [r2, 0x15]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DF14E
|
|
ldrb r0, [r2, 0x16]
|
|
cmp r0, 0
|
|
beq _080DF14E
|
|
ldr r0, [r3, 0x1C]
|
|
lsls r1, r4, 4
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0xC]
|
|
movs r0, 0x8
|
|
orrs r0, r2
|
|
strb r0, [r1, 0xC]
|
|
_080DF14E:
|
|
movs r3, 0
|
|
movs r5, 0
|
|
_080DF152:
|
|
cmp r3, r4
|
|
beq _080DF180
|
|
ldr r1, [r6]
|
|
ldr r0, [r1, 0x4]
|
|
adds r0, r5, r0
|
|
ldrb r0, [r0, 0xE]
|
|
cmp r0, 0
|
|
beq _080DF180
|
|
ldr r0, [r1, 0x1C]
|
|
lsls r2, r4, 4
|
|
adds r2, r0
|
|
ldrb r0, [r2, 0xC]
|
|
movs r1, 0x10
|
|
orrs r0, r1
|
|
strb r0, [r2, 0xC]
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x1C]
|
|
lsls r2, r3, 4
|
|
adds r2, r0
|
|
ldrb r0, [r2, 0xC]
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r2, 0xC]
|
|
_080DF180:
|
|
adds r5, 0x1C
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
ble _080DF152
|
|
ldr r2, [r6]
|
|
ldr r1, [r2, 0x4]
|
|
subs r0, r7, r4
|
|
lsls r5, r0, 2
|
|
adds r1, r5, r1
|
|
ldrb r3, [r1, 0xC]
|
|
movs r0, 0x6
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
bne _080DF1A6
|
|
ldrb r1, [r1, 0xB]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DF1BC
|
|
_080DF1A6:
|
|
ldr r0, [r2, 0x1C]
|
|
lsls r1, r4, 4
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0xC]
|
|
movs r0, 0x20
|
|
orrs r0, r2
|
|
strb r0, [r1, 0xC]
|
|
b _080DF1F6
|
|
.pool
|
|
_080DF1BC:
|
|
movs r0, 0x1
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
bne _080DF1F6
|
|
ldr r2, [r2, 0x1C]
|
|
lsls r3, r4, 4
|
|
adds r2, r3, r2
|
|
ldrb r0, [r2, 0xC]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2, 0xC]
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x1C]
|
|
adds r1, r3, r1
|
|
ldrb r0, [r1, 0xE]
|
|
movs r2, 0x1
|
|
orrs r0, r2
|
|
strb r0, [r1, 0xE]
|
|
ldr r1, [r6]
|
|
ldr r0, [r1, 0x1C]
|
|
adds r3, r0
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r0, 1
|
|
adds r3, r0
|
|
ldr r0, [r1, 0x4]
|
|
adds r0, r5, r0
|
|
ldrh r0, [r0, 0x6]
|
|
strh r0, [r3]
|
|
_080DF1F6:
|
|
ldr r2, [r6]
|
|
ldr r1, [r2, 0x4]
|
|
subs r0, r7, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x15]
|
|
movs r5, 0x1
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DF21A
|
|
ldr r0, [r2, 0x1C]
|
|
lsls r1, r4, 4
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0xD]
|
|
movs r0, 0x2
|
|
orrs r0, r2
|
|
strb r0, [r1, 0xD]
|
|
_080DF21A:
|
|
ldr r2, [r6]
|
|
ldr r0, [r2]
|
|
ldrb r0, [r0, 0x13]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0x4
|
|
bne _080DF24A
|
|
ldr r3, [r2, 0x10]
|
|
ldrb r1, [r3, 0x1]
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080DF24A
|
|
movs r0, 0
|
|
ldrsb r0, [r3, r0]
|
|
cmp r0, 0
|
|
bge _080DF24A
|
|
ldr r0, [r2, 0x1C]
|
|
lsls r1, r4, 4
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0xD]
|
|
movs r0, 0x20
|
|
orrs r0, r2
|
|
strb r0, [r1, 0xD]
|
|
_080DF24A:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DF080
|
|
|
|
thumb_func_start sub_80DF250
|
|
sub_80DF250: @ 80DF250
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x38
|
|
movs r1, 0
|
|
movs r0, 0
|
|
str r0, [sp, 0x20]
|
|
movs r4, 0
|
|
ldr r6, =gContestResources
|
|
mov r2, sp
|
|
adds r2, 0xC
|
|
str r2, [sp, 0x28]
|
|
mov r3, sp
|
|
adds r3, 0x14
|
|
str r3, [sp, 0x2C]
|
|
mov r7, sp
|
|
adds r7, 0x2
|
|
str r7, [sp, 0x24]
|
|
ldr r5, =gContestFinalStandings
|
|
movs r2, 0
|
|
movs r3, 0x80
|
|
lsls r3, 17
|
|
_080DF280:
|
|
adds r0, r4, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080DF298
|
|
lsrs r0, r2, 24
|
|
str r0, [sp, 0x20]
|
|
b _080DF29E
|
|
.pool
|
|
_080DF298:
|
|
cmp r0, 0x3
|
|
bne _080DF29E
|
|
lsrs r1, r2, 24
|
|
_080DF29E:
|
|
adds r2, r3
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080DF280
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x1C]
|
|
lsls r1, 4
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0xD]
|
|
movs r0, 0x1
|
|
orrs r0, r2
|
|
strb r0, [r1, 0xD]
|
|
movs r4, 0
|
|
ldr r1, [sp, 0x20]
|
|
lsls r1, 4
|
|
str r1, [sp, 0x30]
|
|
mov r9, r4
|
|
mov r10, r4
|
|
_080DF2C2:
|
|
ldr r2, [sp, 0x20]
|
|
cmp r4, r2
|
|
beq _080DF2EE
|
|
ldr r1, =gUnknown_02039F08
|
|
lsls r0, r2, 1
|
|
adds r0, r1
|
|
movs r3, 0
|
|
ldrsh r2, [r0, r3]
|
|
add r1, r10
|
|
movs r6, 0
|
|
ldrsh r0, [r1, r6]
|
|
subs r2, r0
|
|
cmp r2, 0x32
|
|
bgt _080DF2EE
|
|
ldr r7, =gContestResources
|
|
ldr r0, [r7]
|
|
ldr r2, [r0, 0x1C]
|
|
add r2, r9
|
|
ldrb r0, [r2, 0xD]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2, 0xD]
|
|
_080DF2EE:
|
|
ldr r1, =gContestResources
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, 0x1C]
|
|
mov r3, r9
|
|
adds r2, r3, r0
|
|
ldrb r1, [r2, 0xE]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080DF30A
|
|
ldrb r0, [r2, 0xD]
|
|
movs r1, 0x8
|
|
orrs r0, r1
|
|
strb r0, [r2, 0xD]
|
|
_080DF30A:
|
|
movs r5, 0
|
|
ldr r2, =gContestMonConditions
|
|
add r2, r10
|
|
movs r6, 0
|
|
ldrsh r1, [r2, r6]
|
|
ldr r7, =gContestMonConditions
|
|
movs r3, 0
|
|
ldrsh r0, [r7, r3]
|
|
cmp r1, r0
|
|
blt _080DF336
|
|
adds r3, r2, 0
|
|
adds r2, r7, 0
|
|
_080DF322:
|
|
adds r2, 0x2
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
bgt _080DF336
|
|
movs r6, 0
|
|
ldrsh r1, [r3, r6]
|
|
movs r7, 0
|
|
ldrsh r0, [r2, r7]
|
|
cmp r1, r0
|
|
bge _080DF322
|
|
_080DF336:
|
|
cmp r5, 0x4
|
|
bne _080DF354
|
|
ldr r1, =gContestFinalStandings
|
|
adds r0, r4, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080DF354
|
|
ldr r2, =gContestResources
|
|
ldr r0, [r2]
|
|
ldr r2, [r0, 0x1C]
|
|
add r2, r9
|
|
ldrb r0, [r2, 0xD]
|
|
movs r1, 0x10
|
|
orrs r0, r1
|
|
strb r0, [r2, 0xD]
|
|
_080DF354:
|
|
movs r3, 0
|
|
mov r12, r3
|
|
mov r8, r3
|
|
movs r5, 0
|
|
ldr r0, =gContestMonConditions
|
|
add r0, r10
|
|
movs r7, 0
|
|
ldrsh r6, [r0, r7]
|
|
str r6, [sp, 0x34]
|
|
ldr r2, =gContestMonConditions
|
|
ldr r0, =gUnknown_02039F18
|
|
mov r1, r10
|
|
adds r6, r1, r0
|
|
adds r3, r0, 0
|
|
_080DF370:
|
|
movs r7, 0
|
|
ldrsh r0, [r2, r7]
|
|
ldr r1, [sp, 0x34]
|
|
cmp r1, r0
|
|
ble _080DF37E
|
|
movs r7, 0x1
|
|
mov r12, r7
|
|
_080DF37E:
|
|
movs r0, 0
|
|
ldrsh r1, [r6, r0]
|
|
movs r7, 0
|
|
ldrsh r0, [r3, r7]
|
|
cmp r1, r0
|
|
ble _080DF38E
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
_080DF38E:
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _080DF370
|
|
mov r1, r12
|
|
cmp r1, 0
|
|
bne _080DF3B4
|
|
mov r2, r8
|
|
cmp r2, 0
|
|
bne _080DF3B4
|
|
ldr r3, =gContestResources
|
|
ldr r0, [r3]
|
|
ldr r2, [r0, 0x1C]
|
|
add r2, r9
|
|
ldrb r0, [r2, 0xD]
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r2, 0xD]
|
|
_080DF3B4:
|
|
ldr r6, =gContestResources
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x1C]
|
|
mov r7, r9
|
|
adds r2, r7, r0
|
|
ldrb r1, [r2, 0xE]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080DF3D0
|
|
ldrb r0, [r2, 0xD]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2, 0xD]
|
|
_080DF3D0:
|
|
movs r0, 0x10
|
|
add r9, r0
|
|
movs r1, 0x2
|
|
add r10, r1
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
bgt _080DF3E0
|
|
b _080DF2C2
|
|
_080DF3E0:
|
|
movs r4, 0
|
|
movs r5, 0
|
|
movs r3, 0
|
|
ldr r2, [sp, 0x28]
|
|
mov r1, sp
|
|
_080DF3EA:
|
|
strh r3, [r1]
|
|
adds r0, r2, r4
|
|
strb r5, [r0]
|
|
adds r1, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0x4
|
|
ble _080DF3EA
|
|
mov r1, sp
|
|
ldr r0, =0x0000ffff
|
|
strh r0, [r1, 0xA]
|
|
movs r0, 0
|
|
ldr r2, [sp, 0x28]
|
|
strb r0, [r2, 0x5]
|
|
movs r4, 0
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
mov r8, r0
|
|
ldr r7, [sp, 0x30]
|
|
_080DF40E:
|
|
mov r3, r8
|
|
ldr r0, [r3, 0x1C]
|
|
adds r0, r7, r0
|
|
lsls r1, r4, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
adds r4, 0x1
|
|
mov r12, r4
|
|
cmp r0, 0
|
|
beq _080DF450
|
|
ldr r0, =gContestResources
|
|
ldr r6, [r0]
|
|
ldr r3, [sp, 0x28]
|
|
mov r4, sp
|
|
movs r5, 0x4
|
|
_080DF42C:
|
|
ldr r0, [r6, 0x1C]
|
|
adds r0, r7, r0
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
ldrh r2, [r4]
|
|
cmp r0, r2
|
|
beq _080DF440
|
|
cmp r2, 0
|
|
bne _080DF446
|
|
strh r0, [r4]
|
|
_080DF440:
|
|
ldrb r0, [r3]
|
|
adds r0, 0x1
|
|
strb r0, [r3]
|
|
_080DF446:
|
|
adds r3, 0x1
|
|
adds r4, 0x2
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _080DF42C
|
|
_080DF450:
|
|
mov r4, r12
|
|
cmp r4, 0x4
|
|
ble _080DF40E
|
|
mov r0, sp
|
|
ldrh r0, [r0]
|
|
ldr r6, [sp, 0x2C]
|
|
strh r0, [r6]
|
|
ldr r7, [sp, 0x28]
|
|
ldrb r3, [r7]
|
|
movs r6, 0
|
|
movs r4, 0x1
|
|
ldr r1, [sp, 0x24]
|
|
ldrh r0, [r1]
|
|
ldr r1, =0x0000ffff
|
|
cmp r0, r1
|
|
beq _080DF4C0
|
|
ldr r5, [sp, 0x2C]
|
|
adds r7, r1, 0
|
|
mov r2, sp
|
|
adds r2, 0x2
|
|
_080DF478:
|
|
ldr r0, [sp, 0x28]
|
|
adds r1, r0, r4
|
|
ldrb r0, [r1]
|
|
cmp r3, r0
|
|
bcs _080DF4A4
|
|
ldrh r0, [r2]
|
|
strh r0, [r5]
|
|
ldrb r3, [r1]
|
|
movs r6, 0x1
|
|
b _080DF4B6
|
|
.pool
|
|
_080DF4A4:
|
|
cmp r3, r0
|
|
bne _080DF4B6
|
|
lsls r0, r6, 1
|
|
adds r0, r5, r0
|
|
ldrh r1, [r2]
|
|
strh r1, [r0]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_080DF4B6:
|
|
adds r2, 0x2
|
|
adds r4, 0x1
|
|
ldrh r0, [r2]
|
|
cmp r0, r7
|
|
bne _080DF478
|
|
_080DF4C0:
|
|
bl Random
|
|
ldr r1, =gContestResources
|
|
ldr r1, [r1]
|
|
ldr r4, [r1, 0x1C]
|
|
ldr r1, [sp, 0x30]
|
|
adds r4, r1, r4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r1, r6, 0
|
|
bl __modsi3
|
|
lsls r0, 1
|
|
ldr r2, [sp, 0x2C]
|
|
adds r0, r2, r0
|
|
ldrh r0, [r0]
|
|
strh r0, [r4, 0xA]
|
|
add sp, 0x38
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DF250
|
|
|
|
thumb_func_start sub_80DF4F8
|
|
sub_80DF4F8: @ 80DF4F8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
ldr r1, =gContestFinalStandings
|
|
ldr r0, =gContestPlayerMonIndex
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080DF514
|
|
b _080DF6EE
|
|
_080DF514:
|
|
movs r7, 0
|
|
movs r3, 0
|
|
ldr r0, =gContestResources
|
|
mov r12, r0
|
|
_080DF51C:
|
|
adds r0, r3, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080DF528
|
|
lsls r0, r3, 24
|
|
lsrs r7, r0, 24
|
|
_080DF528:
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
ble _080DF51C
|
|
movs r1, 0
|
|
mov r9, r1
|
|
mov r10, r1
|
|
movs r3, 0
|
|
lsls r2, r7, 1
|
|
lsls r4, r7, 4
|
|
mov r8, r4
|
|
ldr r1, =gContestMonConditions
|
|
adds r0, r2, r1
|
|
movs r6, 0
|
|
ldrsh r5, [r0, r6]
|
|
str r5, [sp, 0x8]
|
|
adds r5, r1, 0
|
|
ldr r0, =gUnknown_02039F18
|
|
adds r2, r0
|
|
adds r4, r0, 0
|
|
_080DF54E:
|
|
movs r1, 0
|
|
ldrsh r0, [r5, r1]
|
|
ldr r6, [sp, 0x8]
|
|
cmp r6, r0
|
|
bge _080DF562
|
|
mov r0, r9
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_080DF562:
|
|
movs r0, 0
|
|
ldrsh r1, [r2, r0]
|
|
movs r6, 0
|
|
ldrsh r0, [r4, r6]
|
|
cmp r1, r0
|
|
bge _080DF578
|
|
mov r0, r10
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
_080DF578:
|
|
adds r5, 0x2
|
|
adds r4, 0x2
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
ble _080DF54E
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, 0x1C]
|
|
add r0, r8
|
|
ldrb r1, [r0, 0xC]
|
|
movs r4, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x7
|
|
_080DF592:
|
|
adds r0, r1, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080DF5A0
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_080DF5A0:
|
|
lsrs r1, 1
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _080DF592
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r1, r4, 0
|
|
bl __modsi3
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x1C]
|
|
add r0, r8
|
|
ldrb r1, [r0, 0xC]
|
|
movs r4, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DF5DC
|
|
cmp r5, 0
|
|
beq _080DF5F6
|
|
_080DF5D6:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_080DF5DC:
|
|
lsrs r1, 1
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
adds r3, 0x1
|
|
cmp r3, 0x7
|
|
bgt _080DF5F6
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080DF5DC
|
|
cmp r5, r4
|
|
bne _080DF5D6
|
|
_080DF5F6:
|
|
movs r1, 0x1
|
|
adds r0, r1, 0
|
|
lsls r0, r2
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r7, 0
|
|
bne _080DF628
|
|
mov r0, sp
|
|
strb r1, [r0]
|
|
ldr r1, =gContestResources
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, 0x1C]
|
|
ldrb r4, [r0, 0x1D]
|
|
movs r3, 0x2
|
|
b _080DF638
|
|
.pool
|
|
_080DF628:
|
|
mov r1, sp
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r1, =gContestResources
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, 0x1C]
|
|
ldrb r4, [r0, 0xD]
|
|
movs r3, 0x1
|
|
_080DF638:
|
|
mov r12, r1
|
|
movs r5, 0x1
|
|
lsls r2, 24
|
|
str r2, [sp, 0x4]
|
|
cmp r3, 0x3
|
|
bgt _080DF682
|
|
_080DF644:
|
|
cmp r3, r7
|
|
beq _080DF67C
|
|
mov r6, r12
|
|
ldr r2, [r6]
|
|
ldr r0, [r2, 0x1C]
|
|
lsls r1, r3, 4
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0, 0xD]
|
|
cmp r4, r0
|
|
bcs _080DF66C
|
|
mov r0, sp
|
|
strb r3, [r0]
|
|
ldr r0, [r2, 0x1C]
|
|
adds r0, r1, r0
|
|
ldrb r4, [r0, 0xD]
|
|
movs r5, 0x1
|
|
b _080DF67C
|
|
.pool
|
|
_080DF66C:
|
|
cmp r4, r0
|
|
bne _080DF67C
|
|
mov r1, sp
|
|
adds r0, r1, r5
|
|
strb r3, [r0]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
_080DF67C:
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
ble _080DF644
|
|
_080DF682:
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r1, r5, 0
|
|
bl __modsi3
|
|
add r0, sp
|
|
ldrb r6, [r0]
|
|
movs r2, 0x80
|
|
movs r3, 0
|
|
ldr r5, =gContestResources
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x1C]
|
|
lsls r1, r6, 4
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0, 0xD]
|
|
ands r0, r2
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
bne _080DF6C4
|
|
_080DF6AE:
|
|
lsrs r2, 1
|
|
adds r3, 0x1
|
|
cmp r3, 0x7
|
|
bgt _080DF6C4
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x1C]
|
|
adds r0, r1, r0
|
|
ldrb r4, [r0, 0xD]
|
|
ands r4, r2
|
|
cmp r4, 0
|
|
beq _080DF6AE
|
|
_080DF6C4:
|
|
mov r0, r9
|
|
bl ContestLiveUpdates_BeforeInterview_1
|
|
mov r0, r10
|
|
bl ContestLiveUpdates_BeforeInterview_2
|
|
ldr r5, [sp, 0x4]
|
|
lsrs r0, r5, 24
|
|
bl ContestLiveUpdates_BeforeInterview_3
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x1C]
|
|
add r0, r8
|
|
ldrh r0, [r0, 0xA]
|
|
bl ContestLiveUpdates_BeforeInterview_4
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
bl ContestLiveUpdates_BeforeInterview_5
|
|
_080DF6EE:
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DF4F8
|
|
|
|
thumb_func_start sub_80DF704
|
|
sub_80DF704: @ 80DF704
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldr r0, =gHeap
|
|
movs r1, 0xD0
|
|
lsls r1, 9
|
|
adds r2, r0, r1
|
|
ldrb r1, [r2]
|
|
adds r4, r0, 0
|
|
cmp r1, 0
|
|
bne _080DF72C
|
|
cmp r3, 0
|
|
bne _080DF728
|
|
movs r0, 0x2
|
|
b _080DF72E
|
|
.pool
|
|
_080DF728:
|
|
movs r0, 0x3
|
|
b _080DF72E
|
|
_080DF72C:
|
|
movs r0, 0
|
|
_080DF72E:
|
|
strb r0, [r2]
|
|
movs r1, 0xD0
|
|
lsls r1, 9
|
|
adds r0, r4, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080DF746
|
|
bl sub_80DAEA4
|
|
bl sub_80DB2BC
|
|
b _080DF74A
|
|
_080DF746:
|
|
bl sub_80DF750
|
|
_080DF74A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DF704
|
|
|
|
thumb_func_start sub_80DF750
|
|
sub_80DF750: @ 80DF750
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x34
|
|
ldr r0, =gUnknown_020322D5
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080DF766
|
|
b _080DF924
|
|
_080DF766:
|
|
ldr r0, =gHeap
|
|
movs r1, 0xD0
|
|
lsls r1, 9
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
subs r0, 0x2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bls _080DF77C
|
|
b _080DF924
|
|
_080DF77C:
|
|
movs r7, 0
|
|
mov r2, sp
|
|
adds r2, 0x18
|
|
str r2, [sp, 0x30]
|
|
_080DF784:
|
|
adds r0, r7, 0
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x3
|
|
bls _080DF784
|
|
ldr r0, =gHeap
|
|
movs r1, 0xD0
|
|
lsls r1, 9
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bne _080DF874
|
|
movs r7, 0
|
|
movs r2, 0x7
|
|
mov r10, r2
|
|
ldr r0, [sp, 0x30]
|
|
mov r9, r0
|
|
_080DF7AE:
|
|
add r0, sp, 0x4
|
|
ldr r1, =gText_CDot
|
|
bl StringCopy
|
|
adds r5, r0, 0
|
|
ldr r0, =gUnknown_02039F26
|
|
adds r0, r7, r0
|
|
ldrb r0, [r0]
|
|
mov r1, r10
|
|
str r1, [sp]
|
|
add r1, sp, 0x4
|
|
movs r2, 0x5
|
|
movs r3, 0x1
|
|
bl Contest_PrintTextToBg0WindowAt
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x1C]
|
|
lsls r0, r7, 4
|
|
adds r0, r1
|
|
ldrb r4, [r0, 0xC]
|
|
movs r6, 0x7
|
|
adds r2, r7, 0x1
|
|
mov r8, r2
|
|
_080DF7DE:
|
|
movs r1, 0x1
|
|
ands r1, r4
|
|
adds r0, r5, 0
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl ConvertIntToDecimalStringN
|
|
adds r5, r0, 0
|
|
lsrs r4, 1
|
|
lsls r0, r6, 24
|
|
movs r1, 0xFF
|
|
lsls r1, 24
|
|
adds r0, r1
|
|
lsrs r6, r0, 24
|
|
asrs r0, 24
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
cmp r0, r2
|
|
bgt _080DF7DE
|
|
movs r6, 0
|
|
ldr r4, =gUnknown_02039F26
|
|
ldr r3, [sp, 0x30]
|
|
_080DF80A:
|
|
lsls r0, r6, 24
|
|
asrs r0, 24
|
|
adds r2, r3, r0
|
|
mov r1, sp
|
|
adds r1, r0
|
|
adds r1, 0x4
|
|
ldrb r1, [r1]
|
|
strb r1, [r2]
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
asrs r5, r0, 24
|
|
cmp r5, 0x4
|
|
ble _080DF80A
|
|
mov r0, r9
|
|
adds r1, r0, r5
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
adds r4, r7, r4
|
|
ldrb r0, [r4]
|
|
mov r1, r10
|
|
str r1, [sp]
|
|
mov r1, r9
|
|
movs r2, 0x5
|
|
movs r3, 0x1
|
|
bl Contest_PrintTextToBg0WindowAt
|
|
ldrb r0, [r4]
|
|
mov r1, sp
|
|
adds r1, r5
|
|
adds r1, 0x4
|
|
mov r2, r10
|
|
str r2, [sp]
|
|
movs r2, 0x37
|
|
movs r3, 0x1
|
|
bl Contest_PrintTextToBg0WindowAt
|
|
mov r1, r8
|
|
lsls r0, r1, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x3
|
|
bls _080DF7AE
|
|
b _080DF920
|
|
.pool
|
|
_080DF874:
|
|
movs r7, 0
|
|
mov r2, sp
|
|
adds r2, 0x6
|
|
str r2, [sp, 0x2C]
|
|
ldr r0, [sp, 0x30]
|
|
mov r9, r0
|
|
movs r1, 0x7
|
|
mov r10, r1
|
|
_080DF884:
|
|
add r0, sp, 0x4
|
|
ldr r1, =gText_BDot
|
|
bl StringCopy
|
|
ldr r0, =gContestResources
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x1C]
|
|
lsls r0, r7, 4
|
|
adds r0, r1
|
|
ldrb r4, [r0, 0xD]
|
|
ldr r5, [sp, 0x2C]
|
|
movs r6, 0x7
|
|
adds r2, r7, 0x1
|
|
mov r8, r2
|
|
_080DF8A0:
|
|
movs r1, 0x1
|
|
ands r1, r4
|
|
adds r0, r5, 0
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl ConvertIntToDecimalStringN
|
|
adds r5, r0, 0
|
|
lsrs r4, 1
|
|
lsls r0, r6, 24
|
|
movs r1, 0xFF
|
|
lsls r1, 24
|
|
adds r0, r1
|
|
lsrs r6, r0, 24
|
|
asrs r0, 24
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
cmp r0, r2
|
|
bgt _080DF8A0
|
|
movs r6, 0
|
|
ldr r4, =gUnknown_02039F26
|
|
ldr r3, [sp, 0x30]
|
|
_080DF8CC:
|
|
lsls r0, r6, 24
|
|
asrs r0, 24
|
|
adds r2, r3, r0
|
|
mov r1, sp
|
|
adds r1, r0
|
|
adds r1, 0x4
|
|
ldrb r1, [r1]
|
|
strb r1, [r2]
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
asrs r5, r0, 24
|
|
cmp r5, 0x4
|
|
ble _080DF8CC
|
|
mov r0, r9
|
|
adds r1, r0, r5
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
adds r4, r7, r4
|
|
ldrb r0, [r4]
|
|
mov r1, r10
|
|
str r1, [sp]
|
|
mov r1, r9
|
|
movs r2, 0x5
|
|
movs r3, 0x1
|
|
bl Contest_PrintTextToBg0WindowAt
|
|
ldrb r0, [r4]
|
|
mov r1, sp
|
|
adds r1, r5
|
|
adds r1, 0x4
|
|
mov r2, r10
|
|
str r2, [sp]
|
|
movs r2, 0x37
|
|
movs r3, 0x1
|
|
bl Contest_PrintTextToBg0WindowAt
|
|
mov r1, r8
|
|
lsls r0, r1, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x3
|
|
bls _080DF884
|
|
_080DF920:
|
|
bl sub_80DB2BC
|
|
_080DF924:
|
|
add sp, 0x34
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80DF750
|
|
|
|
thumb_func_start sub_80DF940
|
|
sub_80DF940: @ 80DF940
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r5, 0x2
|
|
ldrb r0, [r4]
|
|
cmp r0, 0xFC
|
|
bne _080DF956
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0x15
|
|
bne _080DF956
|
|
movs r0, 0x2
|
|
b _080DF9CC
|
|
_080DF956:
|
|
adds r0, r4, 0
|
|
bl StringLength
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x5
|
|
bhi _080DF9CA
|
|
ldrb r0, [r4]
|
|
cmp r0, 0xFF
|
|
beq _080DF9CA
|
|
_080DF96A:
|
|
ldrb r1, [r4]
|
|
adds r0, r1, 0
|
|
adds r0, 0x45
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x33
|
|
bls _080DF9BE
|
|
adds r0, r1, 0
|
|
adds r0, 0x5F
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x9
|
|
bls _080DF9BE
|
|
adds r0, r1, 0
|
|
cmp r0, 0
|
|
beq _080DF9BE
|
|
cmp r0, 0xAD
|
|
beq _080DF9BE
|
|
cmp r0, 0xB8
|
|
beq _080DF9BE
|
|
cmp r0, 0xAB
|
|
beq _080DF9BE
|
|
cmp r0, 0xAC
|
|
beq _080DF9BE
|
|
cmp r0, 0xB5
|
|
beq _080DF9BE
|
|
cmp r0, 0xB6
|
|
beq _080DF9BE
|
|
cmp r0, 0xBA
|
|
beq _080DF9BE
|
|
cmp r0, 0xAE
|
|
beq _080DF9BE
|
|
cmp r0, 0xB0
|
|
beq _080DF9BE
|
|
cmp r0, 0xB1
|
|
beq _080DF9BE
|
|
cmp r0, 0xB2
|
|
beq _080DF9BE
|
|
cmp r0, 0xB3
|
|
beq _080DF9BE
|
|
cmp r0, 0xB1
|
|
bne _080DF9C8
|
|
_080DF9BE:
|
|
adds r4, 0x1
|
|
ldrb r0, [r4]
|
|
cmp r0, 0xFF
|
|
bne _080DF96A
|
|
b _080DF9CA
|
|
_080DF9C8:
|
|
movs r5, 0x1
|
|
_080DF9CA:
|
|
adds r0, r5, 0
|
|
_080DF9CC:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80DF940
|
|
|
|
thumb_func_start sub_80DF9D4
|
|
sub_80DF9D4: @ 80DF9D4
|
|
ldrb r2, [r0, 0x5]
|
|
movs r1, 0xFF
|
|
strb r1, [r0, 0x5]
|
|
strb r2, [r0, 0x7]
|
|
bx lr
|
|
thumb_func_end sub_80DF9D4
|
|
|
|
thumb_func_start sub_80DF9E0
|
|
sub_80DF9E0: @ 80DF9E0
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
bl StripExtCtrlCodes
|
|
cmp r4, 0x1
|
|
bne _080DF9F8
|
|
movs r0, 0xFF
|
|
strb r0, [r5, 0x5]
|
|
movs r0, 0xFC
|
|
strb r0, [r5, 0xA]
|
|
b _080DFA00
|
|
_080DF9F8:
|
|
ldrb r1, [r5, 0x5]
|
|
movs r0, 0xFF
|
|
strb r0, [r5, 0x5]
|
|
strb r1, [r5, 0xA]
|
|
_080DFA00:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DF9E0
|
|
|
|
thumb_func_start sub_80DFA08
|
|
sub_80DFA08: @ 80DFA08
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
adds r4, r5, 0x2
|
|
cmp r6, 0x1
|
|
bne _080DFA28
|
|
adds r0, r4, 0
|
|
bl sub_80DF940
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl ConvertInternationalString
|
|
b _080DFA3E
|
|
_080DFA28:
|
|
ldrb r0, [r4, 0xA]
|
|
cmp r0, 0xFC
|
|
bne _080DFA38
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl ConvertInternationalString
|
|
b _080DFA3E
|
|
_080DFA38:
|
|
strb r0, [r4, 0x5]
|
|
movs r0, 0xFF
|
|
strb r0, [r4, 0xA]
|
|
_080DFA3E:
|
|
adds r4, r5, 0
|
|
adds r4, 0xD
|
|
cmp r6, 0x1
|
|
bne _080DFA68
|
|
movs r0, 0xFF
|
|
strb r0, [r4, 0x7]
|
|
ldrb r0, [r4, 0x4]
|
|
strb r0, [r4, 0x6]
|
|
ldrb r0, [r4, 0x3]
|
|
strb r0, [r4, 0x5]
|
|
ldrb r0, [r4, 0x2]
|
|
strb r0, [r4, 0x4]
|
|
ldrb r0, [r4, 0x1]
|
|
strb r0, [r4, 0x3]
|
|
ldrb r0, [r5, 0xD]
|
|
strb r0, [r4, 0x2]
|
|
movs r0, 0x15
|
|
strb r0, [r4, 0x1]
|
|
movs r0, 0xFC
|
|
strb r0, [r5, 0xD]
|
|
b _080DFA70
|
|
_080DFA68:
|
|
ldrb r0, [r4, 0x7]
|
|
strb r0, [r4, 0x5]
|
|
movs r0, 0xFF
|
|
strb r0, [r4, 0x7]
|
|
_080DFA70:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DFA08
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|