pokefirered/asm/battle_anim.s
2018-10-12 20:18:48 -04:00

4108 lines
73 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start ClearBattleAnimationVars
ClearBattleAnimationVars: @ 80724C0
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
ldr r0, _08072554 @ =gUnknown_2037EE0
movs r1, 0
strb r1, [r0]
ldr r0, _08072558 @ =gUnknown_2037EE1
strb r1, [r0]
ldr r0, _0807255C @ =gUnknown_2037EE2
strb r1, [r0]
ldr r0, _08072560 @ =gUnknown_2037EE3
strb r1, [r0]
ldr r0, _08072564 @ =gUnknown_2037EE4
movs r1, 0
str r1, [r0]
ldr r0, _08072568 @ =gUnknown_2037EE8
str r1, [r0]
ldr r0, _0807256C @ =gUnknown_2037EEC
movs r2, 0
strh r1, [r0]
ldr r0, _08072570 @ =gUnknown_2037EFE
strb r2, [r0]
ldr r4, _08072574 @ =gUnknown_2037F14
ldr r5, _08072578 @ =gUnknown_2037F16
ldr r6, _0807257C @ =gUnknown_2037F17
ldr r7, _08072580 @ =gUnknown_2037F18
ldr r0, _08072584 @ =gUnknown_2037F1A
mov r12, r0
ldr r1, _08072588 @ =gUnknown_2037F1B
mov r8, r1
ldr r0, _0807258C @ =gUnknown_2037F24
mov r9, r0
ldr r1, _08072590 @ =0x0000ffff
adds r3, r1, 0
ldr r1, _08072594 @ =gUnknown_2037EEE
movs r2, 0x7
_0807250A:
ldrh r0, [r1]
orrs r0, r3
strh r0, [r1]
adds r1, 0x2
subs r2, 0x1
cmp r2, 0
bge _0807250A
ldr r1, _08072598 @ =gUnknown_2037F02
movs r2, 0
adds r0, r1, 0
adds r0, 0xE
_08072520:
strh r2, [r0]
subs r0, 0x2
cmp r0, r1
bge _08072520
movs r1, 0
movs r0, 0xFF
strb r0, [r4]
movs r0, 0x1
negs r0, r0
strb r0, [r4, 0x1]
strb r1, [r5]
strb r1, [r6]
movs r0, 0
strh r1, [r7]
mov r1, r12
strb r0, [r1]
mov r1, r8
strb r0, [r1]
mov r1, r9
strb r0, [r1]
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08072554: .4byte gUnknown_2037EE0
_08072558: .4byte gUnknown_2037EE1
_0807255C: .4byte gUnknown_2037EE2
_08072560: .4byte gUnknown_2037EE3
_08072564: .4byte gUnknown_2037EE4
_08072568: .4byte gUnknown_2037EE8
_0807256C: .4byte gUnknown_2037EEC
_08072570: .4byte gUnknown_2037EFE
_08072574: .4byte gUnknown_2037F14
_08072578: .4byte gUnknown_2037F16
_0807257C: .4byte gUnknown_2037F17
_08072580: .4byte gUnknown_2037F18
_08072584: .4byte gUnknown_2037F1A
_08072588: .4byte gUnknown_2037F1B
_0807258C: .4byte gUnknown_2037F24
_08072590: .4byte 0x0000ffff
_08072594: .4byte gUnknown_2037EEE
_08072598: .4byte gUnknown_2037F02
thumb_func_end ClearBattleAnimationVars
thumb_func_start DoMoveAnim
DoMoveAnim: @ 807259C
push {lr}
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
ldr r2, _080725C0 @ =gUnknown_2037F1A
ldr r0, _080725C4 @ =sBattler_AI
ldrb r0, [r0]
strb r0, [r2]
ldr r2, _080725C8 @ =gUnknown_2037F1B
ldr r0, _080725CC @ =gBattlerTarget
ldrb r0, [r0]
strb r0, [r2]
ldr r0, _080725D0 @ =gUnknown_81C68F4
movs r2, 0x1
bl sub_80725D4
pop {r0}
bx r0
.align 2, 0
_080725C0: .4byte gUnknown_2037F1A
_080725C4: .4byte sBattler_AI
_080725C8: .4byte gUnknown_2037F1B
_080725CC: .4byte gBattlerTarget
_080725D0: .4byte gUnknown_81C68F4
thumb_func_end DoMoveAnim
thumb_func_start sub_80725D4
sub_80725D4: @ 80725D4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
str r0, [sp]
lsls r1, 16
lsrs r1, 16
mov r8, r1
lsls r2, 24
lsrs r2, 24
mov r9, r2
bl sub_80767F0
movs r0, 0
bl UpdateOamPriorityInAllHealthboxes
movs r4, 0
ldr r6, _08072618 @ =gBattlerPartyIndexes
movs r7, 0x64
ldr r5, _0807261C @ =gUnknown_2037F1C
_08072600:
lsls r0, r4, 24
lsrs r0, 24
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08072624
ldrh r0, [r6]
muls r0, r7
ldr r1, _08072620 @ =gEnemyParty
b _0807262A
.align 2, 0
_08072618: .4byte gBattlerPartyIndexes
_0807261C: .4byte gUnknown_2037F1C
_08072620: .4byte gEnemyParty
_08072624:
ldrh r0, [r6]
muls r0, r7
ldr r1, _0807264C @ =gPlayerParty
_0807262A:
adds r0, r1
movs r1, 0xB
bl GetMonData
strh r0, [r5]
adds r6, 0x2
adds r5, 0x2
adds r4, 0x1
cmp r4, 0x3
ble _08072600
mov r0, r9
cmp r0, 0
bne _08072654
ldr r0, _08072650 @ =gUnknown_2037F18
mov r1, r9
b _08072658
.align 2, 0
_0807264C: .4byte gPlayerParty
_08072650: .4byte gUnknown_2037F18
_08072654:
ldr r0, _080726C0 @ =gUnknown_2037F18
mov r1, r8
_08072658:
strh r1, [r0]
ldr r4, _080726C4 @ =gUnknown_2037F14
ldr r5, _080726C8 @ =gUnknown_2037ED4
mov r0, r8
lsls r3, r0, 2
ldr r6, _080726CC @ =gUnknown_2037EE1
ldr r1, _080726D0 @ =gUnknown_2037EE0
mov r12, r1
ldr r0, _080726D4 @ =gUnknown_2037EDC
mov r10, r0
ldr r7, _080726D8 @ =RunAnimScriptCommand
ldr r1, _080726DC @ =gUnknown_2037F02
movs r2, 0
adds r0, r1, 0
adds r0, 0xE
_08072676:
strh r2, [r0]
subs r0, 0x2
cmp r0, r1
bge _08072676
movs r0, 0xFF
strb r0, [r4]
movs r0, 0x1
negs r0, r0
strb r0, [r4, 0x1]
ldr r1, [sp]
adds r0, r3, r1
ldr r0, [r0]
str r0, [r5]
movs r0, 0x1
strb r0, [r6]
movs r0, 0
mov r1, r12
strb r0, [r1]
mov r0, r10
str r7, [r0]
ldr r1, _080726E0 @ =0x0000ffff
adds r2, r1, 0
ldr r1, _080726E4 @ =gUnknown_2037EEE
movs r4, 0x7
_080726A6:
ldrh r0, [r1]
orrs r0, r2
strh r0, [r1]
adds r1, 0x2
subs r4, 0x1
cmp r4, 0
bge _080726A6
mov r0, r9
cmp r0, 0
beq _08072706
movs r4, 0
ldr r2, _080726E8 @ =gUnknown_81C68EC
b _080726EE
.align 2, 0
_080726C0: .4byte gUnknown_2037F18
_080726C4: .4byte gUnknown_2037F14
_080726C8: .4byte gUnknown_2037ED4
_080726CC: .4byte gUnknown_2037EE1
_080726D0: .4byte gUnknown_2037EE0
_080726D4: .4byte gUnknown_2037EDC
_080726D8: .4byte RunAnimScriptCommand
_080726DC: .4byte gUnknown_2037F02
_080726E0: .4byte 0x0000ffff
_080726E4: .4byte gUnknown_2037EEE
_080726E8: .4byte gUnknown_81C68EC
_080726EC:
adds r4, 0x1
_080726EE:
lsls r0, r4, 1
adds r0, r2
ldrh r0, [r0]
ldr r1, _08072728 @ =0x0000ffff
cmp r0, r1
beq _08072706
cmp r8, r0
bne _080726EC
ldr r0, _0807272C @ =gMPlayInfo_BGM
movs r2, 0x80
bl m4aMPlayVolumeControl
_08072706:
ldr r0, _08072730 @ =gUnknown_2022984
movs r1, 0
strh r1, [r0]
ldr r0, _08072734 @ =gUnknown_2022986
strh r1, [r0]
ldr r0, _08072738 @ =gUnknown_2022988
strh r1, [r0]
ldr r0, _0807273C @ =gUnknown_202298A
strh r1, [r0]
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08072728: .4byte 0x0000ffff
_0807272C: .4byte gMPlayInfo_BGM
_08072730: .4byte gUnknown_2022984
_08072734: .4byte gUnknown_2022986
_08072738: .4byte gUnknown_2022988
_0807273C: .4byte gUnknown_202298A
thumb_func_end sub_80725D4
thumb_func_start DestroyAnimSprite
DestroyAnimSprite: @ 8072740
push {r4,lr}
adds r4, r0, 0
bl FreeSpriteOamMatrix
adds r0, r4, 0
bl DestroySprite
ldr r1, _0807275C @ =gUnknown_2037EE2
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0807275C: .4byte gUnknown_2037EE2
thumb_func_end DestroyAnimSprite
thumb_func_start DestroyAnimVisualTask
DestroyAnimVisualTask: @ 8072760
push {lr}
lsls r0, 24
lsrs r0, 24
bl DestroyTask
ldr r1, _08072778 @ =gUnknown_2037EE2
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
pop {r0}
bx r0
.align 2, 0
_08072778: .4byte gUnknown_2037EE2
thumb_func_end DestroyAnimVisualTask
thumb_func_start DestroyAnimSoundTask
DestroyAnimSoundTask: @ 807277C
push {lr}
lsls r0, 24
lsrs r0, 24
bl DestroyTask
ldr r1, _08072794 @ =gUnknown_2037EE3
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
pop {r0}
bx r0
.align 2, 0
_08072794: .4byte gUnknown_2037EE3
thumb_func_end DestroyAnimSoundTask
thumb_func_start AddSpriteIndex
AddSpriteIndex: @ 8072798
push {r4,lr}
lsls r0, 16
lsrs r3, r0, 16
movs r2, 0
ldr r4, _080727B0 @ =0x0000ffff
ldr r1, _080727B4 @ =gUnknown_2037EEE
_080727A4:
ldrh r0, [r1]
cmp r0, r4
bne _080727B8
strh r3, [r1]
b _080727C0
.align 2, 0
_080727B0: .4byte 0x0000ffff
_080727B4: .4byte gUnknown_2037EEE
_080727B8:
adds r1, 0x2
adds r2, 0x1
cmp r2, 0x7
ble _080727A4
_080727C0:
pop {r4}
pop {r0}
bx r0
thumb_func_end AddSpriteIndex
thumb_func_start ClearSpriteIndex
ClearSpriteIndex: @ 80727C8
push {r4,lr}
lsls r0, 16
lsrs r3, r0, 16
movs r2, 0
ldr r0, _080727E4 @ =0x0000ffff
adds r4, r0, 0
ldr r1, _080727E8 @ =gUnknown_2037EEE
_080727D6:
ldrh r0, [r1]
cmp r0, r3
bne _080727EC
orrs r0, r4
strh r0, [r1]
b _080727F4
.align 2, 0
_080727E4: .4byte 0x0000ffff
_080727E8: .4byte gUnknown_2037EEE
_080727EC:
adds r1, 0x2
adds r2, 0x1
cmp r2, 0x7
ble _080727D6
_080727F4:
pop {r4}
pop {r0}
bx r0
thumb_func_end ClearSpriteIndex
thumb_func_start WaitAnimFrameCount
WaitAnimFrameCount: @ 80727FC
push {lr}
ldr r2, _08072814 @ =gUnknown_2037EE0
ldrb r1, [r2]
movs r0, 0
ldrsb r0, [r2, r0]
cmp r0, 0
bgt _08072820
ldr r0, _08072818 @ =gUnknown_2037EDC
ldr r1, _0807281C @ =RunAnimScriptCommand
str r1, [r0]
movs r0, 0
b _08072822
.align 2, 0
_08072814: .4byte gUnknown_2037EE0
_08072818: .4byte gUnknown_2037EDC
_0807281C: .4byte RunAnimScriptCommand
_08072820:
subs r0, r1, 0x1
_08072822:
strb r0, [r2]
pop {r0}
bx r0
thumb_func_end WaitAnimFrameCount
thumb_func_start RunAnimScriptCommand
RunAnimScriptCommand: @ 8072828
push {r4,lr}
ldr r4, _08072858 @ =gUnknown_83ADF5C
_0807282C:
ldr r0, _0807285C @ =gUnknown_2037ED4
ldr r0, [r0]
ldrb r0, [r0]
lsls r0, 2
adds r0, r4
ldr r0, [r0]
bl _call_via_r0
ldr r0, _08072860 @ =gUnknown_2037EE0
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
cmp r0, 0
bne _08072850
ldr r0, _08072864 @ =gUnknown_2037EE1
ldrb r0, [r0]
cmp r0, 0
bne _0807282C
_08072850:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08072858: .4byte gUnknown_83ADF5C
_0807285C: .4byte gUnknown_2037ED4
_08072860: .4byte gUnknown_2037EE0
_08072864: .4byte gUnknown_2037EE1
thumb_func_end RunAnimScriptCommand
thumb_func_start ScriptCmd_loadspritegfx
ScriptCmd_loadspritegfx: @ 8072868
push {r4-r6,lr}
ldr r6, _080728B4 @ =gUnknown_2037ED4
ldr r0, [r6]
adds r1, r0, 0x1
str r1, [r6]
ldrb r4, [r0, 0x1]
ldrb r0, [r1, 0x1]
lsls r0, 8
orrs r4, r0
lsls r5, r4, 3
ldr r0, _080728B8 @ =gUnknown_8399388
adds r0, r5, r0
bl sub_800F034
ldr r0, _080728BC @ =gUnknown_8399C90
adds r5, r0
adds r0, r5, 0
bl sub_800F078
ldr r0, [r6]
adds r0, 0x2
str r0, [r6]
ldr r0, _080728C0 @ =0xffffd8f0
adds r4, r0
lsls r4, 16
lsrs r4, 16
adds r0, r4, 0
bl AddSpriteIndex
ldr r1, _080728C4 @ =gUnknown_2037EE0
movs r0, 0x1
strb r0, [r1]
ldr r1, _080728C8 @ =gUnknown_2037EDC
ldr r0, _080728CC @ =WaitAnimFrameCount
str r0, [r1]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080728B4: .4byte gUnknown_2037ED4
_080728B8: .4byte gUnknown_8399388
_080728BC: .4byte gUnknown_8399C90
_080728C0: .4byte 0xffffd8f0
_080728C4: .4byte gUnknown_2037EE0
_080728C8: .4byte gUnknown_2037EDC
_080728CC: .4byte WaitAnimFrameCount
thumb_func_end ScriptCmd_loadspritegfx
thumb_func_start ScriptCmd_unloadspritegfx
ScriptCmd_unloadspritegfx: @ 80728D0
push {r4-r6,lr}
ldr r6, _08072910 @ =gUnknown_2037ED4
ldr r0, [r6]
adds r1, r0, 0x1
str r1, [r6]
ldrb r4, [r0, 0x1]
ldrb r0, [r1, 0x1]
lsls r0, 8
orrs r4, r0
ldr r1, _08072914 @ =gUnknown_83ACC08
ldr r0, _08072918 @ =0xffffd8f0
adds r4, r0
lsls r0, r4, 3
adds r0, r1
ldrh r5, [r0, 0x6]
adds r0, r5, 0
bl FreeSpriteTilesByTag
adds r0, r5, 0
bl FreeSpritePaletteByTag
ldr r0, [r6]
adds r0, 0x2
str r0, [r6]
lsls r4, 16
lsrs r4, 16
adds r0, r4, 0
bl ClearSpriteIndex
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08072910: .4byte gUnknown_2037ED4
_08072914: .4byte gUnknown_83ACC08
_08072918: .4byte 0xffffd8f0
thumb_func_end ScriptCmd_unloadspritegfx
thumb_func_start ScriptCmd_createsprite
ScriptCmd_createsprite: @ 807291C
push {r4-r7,lr}
ldr r5, _08072984 @ =gUnknown_2037ED4
ldr r1, [r5]
adds r3, r1, 0x1
str r3, [r5]
ldrb r2, [r1, 0x1]
ldrb r0, [r3, 0x1]
lsls r0, 8
adds r2, r0
ldrb r0, [r3, 0x2]
lsls r0, 16
adds r2, r0
ldrb r0, [r3, 0x3]
lsls r0, 24
adds r7, r2, r0
adds r0, r1, 0x5
str r0, [r5]
ldrb r4, [r1, 0x5]
adds r0, r1, 0x6
str r0, [r5]
ldrb r0, [r1, 0x6]
adds r1, 0x7
str r1, [r5]
cmp r0, 0
beq _0807296C
adds r6, r5, 0
ldr r5, _08072988 @ =gUnknown_2037F02
adds r3, r0, 0
_08072954:
ldr r2, [r6]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
lsls r0, 8
orrs r1, r0
strh r1, [r5]
adds r2, 0x2
str r2, [r6]
adds r5, 0x2
subs r3, 0x1
cmp r3, 0
bne _08072954
_0807296C:
movs r0, 0x80
ands r0, r4
cmp r0, 0
beq _0807299C
movs r0, 0x80
eors r4, r0
cmp r4, 0x3F
bls _0807298C
adds r0, r4, 0
subs r0, 0x40
b _0807298E
.align 2, 0
_08072984: .4byte gUnknown_2037ED4
_08072988: .4byte gUnknown_2037F02
_0807298C:
negs r0, r4
_0807298E:
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _08072998 @ =gUnknown_2037F1B
b _080729AE
.align 2, 0
_08072998: .4byte gUnknown_2037F1B
_0807299C:
cmp r4, 0x3F
bls _080729A6
adds r0, r4, 0
subs r0, 0x40
b _080729A8
_080729A6:
negs r0, r4
_080729A8:
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _08072A04 @ =gUnknown_2037F1A
_080729AE:
ldrb r0, [r0]
bl sub_807685C
lsls r0, 24
lsrs r0, 24
lsls r1, r4, 24
asrs r1, 24
adds r0, r1
lsls r0, 16
lsrs r6, r0, 16
lsls r0, r6, 16
asrs r0, 16
cmp r0, 0x2
bgt _080729CC
movs r6, 0x3
_080729CC:
ldr r5, _08072A08 @ =gUnknown_2037F1B
ldrb r0, [r5]
movs r1, 0x2
bl sub_8074480
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldrb r0, [r5]
movs r1, 0x3
bl sub_8074480
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
lsls r3, r6, 24
lsrs r3, 24
adds r0, r7, 0
adds r1, r4, 0
bl CreateSpriteAndAnimate
ldr r1, _08072A0C @ =gUnknown_2037EE2
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08072A04: .4byte gUnknown_2037F1A
_08072A08: .4byte gUnknown_2037F1B
_08072A0C: .4byte gUnknown_2037EE2
thumb_func_end ScriptCmd_createsprite
thumb_func_start ScriptCmd_createvisualtask
ScriptCmd_createvisualtask: @ 8072A10
push {r4-r7,lr}
ldr r4, _08072A80 @ =gUnknown_2037ED4
ldr r1, [r4]
adds r3, r1, 0x1
str r3, [r4]
ldrb r2, [r1, 0x1]
ldrb r0, [r3, 0x1]
lsls r0, 8
adds r2, r0
ldrb r0, [r3, 0x2]
lsls r0, 16
adds r2, r0
ldrb r0, [r3, 0x3]
lsls r0, 24
adds r6, r2, r0
adds r0, r1, 0x5
str r0, [r4]
ldrb r7, [r1, 0x5]
adds r0, r1, 0x6
str r0, [r4]
ldrb r0, [r1, 0x6]
adds r1, 0x7
str r1, [r4]
cmp r0, 0
beq _08072A60
adds r5, r4, 0
ldr r4, _08072A84 @ =gUnknown_2037F02
adds r3, r0, 0
_08072A48:
ldr r2, [r5]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
lsls r0, 8
orrs r1, r0
strh r1, [r4]
adds r2, 0x2
str r2, [r5]
adds r4, 0x2
subs r3, 0x1
cmp r3, 0
bne _08072A48
_08072A60:
adds r0, r6, 0
adds r1, r7, 0
bl CreateTask
lsls r0, 24
lsrs r0, 24
bl _call_via_r6
ldr r1, _08072A88 @ =gUnknown_2037EE2
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08072A80: .4byte gUnknown_2037ED4
_08072A84: .4byte gUnknown_2037F02
_08072A88: .4byte gUnknown_2037EE2
thumb_func_end ScriptCmd_createvisualtask
thumb_func_start ScriptCmd_delay
ScriptCmd_delay: @ 8072A8C
push {r4,lr}
ldr r1, _08072ABC @ =gUnknown_2037ED4
ldr r0, [r1]
adds r2, r0, 0x1
str r2, [r1]
ldr r3, _08072AC0 @ =gUnknown_2037EE0
ldrb r0, [r0, 0x1]
strb r0, [r3]
lsls r0, 24
cmp r0, 0
bne _08072AAA
movs r4, 0x1
negs r4, r4
adds r0, r4, 0
strb r0, [r3]
_08072AAA:
adds r0, r2, 0x1
str r0, [r1]
ldr r1, _08072AC4 @ =gUnknown_2037EDC
ldr r0, _08072AC8 @ =WaitAnimFrameCount
str r0, [r1]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08072ABC: .4byte gUnknown_2037ED4
_08072AC0: .4byte gUnknown_2037EE0
_08072AC4: .4byte gUnknown_2037EDC
_08072AC8: .4byte WaitAnimFrameCount
thumb_func_end ScriptCmd_delay
thumb_func_start sub_8072ACC
sub_8072ACC: @ 8072ACC
push {lr}
ldr r0, _08072AE4 @ =gUnknown_2037EE2
ldrb r2, [r0]
cmp r2, 0
bne _08072AF0
ldr r0, _08072AE8 @ =gUnknown_2037ED4
ldr r1, [r0]
adds r1, 0x1
str r1, [r0]
ldr r0, _08072AEC @ =gUnknown_2037EE0
strb r2, [r0]
b _08072AF6
.align 2, 0
_08072AE4: .4byte gUnknown_2037EE2
_08072AE8: .4byte gUnknown_2037ED4
_08072AEC: .4byte gUnknown_2037EE0
_08072AF0:
ldr r1, _08072AFC @ =gUnknown_2037EE0
movs r0, 0x1
strb r0, [r1]
_08072AF6:
pop {r0}
bx r0
.align 2, 0
_08072AFC: .4byte gUnknown_2037EE0
thumb_func_end sub_8072ACC
thumb_func_start nullsub_41
nullsub_41: @ 8072B00
bx lr
thumb_func_end nullsub_41
thumb_func_start nullsub_42
nullsub_42: @ 8072B04
bx lr
thumb_func_end nullsub_42
thumb_func_start sub_8072B08
sub_8072B08: @ 8072B08
push {r4-r7,lr}
mov r7, r8
push {r7}
movs r0, 0
mov r8, r0
ldr r0, _08072B38 @ =gUnknown_2037EE2
ldrb r0, [r0]
cmp r0, 0
bne _08072B30
ldr r0, _08072B3C @ =gUnknown_2037EE3
ldrb r0, [r0]
cmp r0, 0
bne _08072B30
ldr r1, _08072B40 @ =gUnknown_2037F14
ldrb r0, [r1]
cmp r0, 0xFF
bne _08072B30
ldrb r0, [r1, 0x1]
cmp r0, 0xFF
beq _08072B48
_08072B30:
ldr r1, _08072B44 @ =gUnknown_2037F12
movs r0, 0
strh r0, [r1]
b _08072B62
.align 2, 0
_08072B38: .4byte gUnknown_2037EE2
_08072B3C: .4byte gUnknown_2037EE3
_08072B40: .4byte gUnknown_2037F14
_08072B44: .4byte gUnknown_2037F12
_08072B48:
bl IsSEPlaying
lsls r0, 24
cmp r0, 0
beq _08072B80
ldr r1, _08072B6C @ =gUnknown_2037F12
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
lsls r0, 16
lsrs r0, 16
cmp r0, 0x5A
bhi _08072B74
_08072B62:
ldr r1, _08072B70 @ =gUnknown_2037EE0
movs r0, 0x1
strb r0, [r1]
b _08072BDC
.align 2, 0
_08072B6C: .4byte gUnknown_2037F12
_08072B70: .4byte gUnknown_2037EE0
_08072B74:
ldr r0, _08072BE8 @ =gMPlayInfo_SE1
bl m4aMPlayStop
ldr r0, _08072BEC @ =gMPlayInfo_SE2
bl m4aMPlayStop
_08072B80:
ldr r1, _08072BF0 @ =gUnknown_2037F12
movs r0, 0
strh r0, [r1]
movs r5, 0
ldr r7, _08072BF4 @ =0x0000ffff
ldr r6, _08072BF8 @ =gUnknown_83ACC08
ldr r4, _08072BFC @ =gUnknown_2037EEE
_08072B8E:
ldrh r0, [r4]
cmp r0, r7
beq _08072BB2
lsls r0, 3
adds r0, r6
ldrh r0, [r0, 0x6]
bl FreeSpriteTilesByTag
ldrh r0, [r4]
lsls r0, 3
adds r0, r6
ldrh r0, [r0, 0x6]
bl FreeSpritePaletteByTag
ldrh r1, [r4]
adds r0, r7, 0
orrs r0, r1
strh r0, [r4]
_08072BB2:
adds r4, 0x2
adds r5, 0x1
cmp r5, 0x7
ble _08072B8E
mov r1, r8
cmp r1, 0
bne _08072BDC
ldr r0, _08072C00 @ =gMPlayInfo_BGM
ldr r1, _08072BF4 @ =0x0000ffff
movs r2, 0x80
lsls r2, 1
bl m4aMPlayVolumeControl
bl sub_80767F0
movs r0, 0x1
bl UpdateOamPriorityInAllHealthboxes
ldr r0, _08072C04 @ =gUnknown_2037EE1
mov r1, r8
strb r1, [r0]
_08072BDC:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08072BE8: .4byte gMPlayInfo_SE1
_08072BEC: .4byte gMPlayInfo_SE2
_08072BF0: .4byte gUnknown_2037F12
_08072BF4: .4byte 0x0000ffff
_08072BF8: .4byte gUnknown_83ACC08
_08072BFC: .4byte gUnknown_2037EEE
_08072C00: .4byte gMPlayInfo_BGM
_08072C04: .4byte gUnknown_2037EE1
thumb_func_end sub_8072B08
thumb_func_start sub_8072C08
sub_8072C08: @ 8072C08
push {r4,lr}
ldr r4, _08072C2C @ =gUnknown_2037ED4
ldr r0, [r4]
adds r1, r0, 0x1
str r1, [r4]
ldrb r0, [r0, 0x1]
ldrb r1, [r1, 0x1]
lsls r1, 8
orrs r0, r1
bl PlaySE
ldr r0, [r4]
adds r0, 0x2
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08072C2C: .4byte gUnknown_2037ED4
thumb_func_end sub_8072C08
thumb_func_start sub_8072C30
sub_8072C30: @ 8072C30
push {r4-r7,lr}
ldr r0, _08072C44 @ =gUnknown_2037ED4
ldr r2, [r0]
adds r1, r2, 0x1
str r1, [r0]
ldrb r6, [r2, 0x1]
cmp r6, 0
bne _08072C48
movs r6, 0x2
b _08072C52
.align 2, 0
_08072C44: .4byte gUnknown_2037ED4
_08072C48:
cmp r6, 0x1
bne _08072C4E
movs r6, 0x3
_08072C4E:
cmp r6, 0
beq _08072C56
_08072C52:
cmp r6, 0x2
bne _08072C60
_08072C56:
ldr r0, _08072C5C @ =gUnknown_2037F1A
b _08072C62
.align 2, 0
_08072C5C: .4byte gUnknown_2037F1A
_08072C60:
ldr r0, _08072CD8 @ =gUnknown_2037F1B
_08072C62:
ldrb r5, [r0]
adds r0, r5, 0
bl sub_8072DF0
lsls r0, 24
cmp r0, 0
beq _08072D12
adds r0, r5, 0
bl GetBattlerPosition
lsls r0, 24
movs r1, 0xFF
lsls r1, 24
adds r0, r1
lsrs r0, 24
movs r7, 0x1
cmp r0, 0x1
bhi _08072C88
movs r7, 0
_08072C88:
adds r0, r5, 0
adds r1, r7, 0
bl sub_8072E48
ldr r0, _08072CDC @ =gUnknown_2023D44
adds r0, r5, r0
ldrb r4, [r0]
ldr r0, _08072CE0 @ =task_pA_ma0A_obj_to_bg_pal
movs r1, 0xA
bl CreateTask
lsls r0, 24
lsrs r3, r0, 24
ldr r1, _08072CE4 @ =gTasks
lsls r0, r3, 2
adds r0, r3
lsls r0, 3
adds r2, r0, r1
strh r4, [r2, 0x8]
ldr r1, _08072CE8 @ =gSprites
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
adds r0, r1
ldrh r1, [r0, 0x24]
ldrh r4, [r0, 0x20]
adds r1, r4
strh r1, [r2, 0xA]
ldrh r1, [r0, 0x26]
ldrh r0, [r0, 0x22]
adds r1, r0
strh r1, [r2, 0xC]
cmp r7, 0
bne _08072CF4
ldr r0, _08072CEC @ =gUnknown_2022978
ldrh r0, [r0]
strh r0, [r2, 0xE]
ldr r0, _08072CF0 @ =gUnknown_202297A
b _08072CFC
.align 2, 0
_08072CD8: .4byte gUnknown_2037F1B
_08072CDC: .4byte gUnknown_2023D44
_08072CE0: .4byte task_pA_ma0A_obj_to_bg_pal
_08072CE4: .4byte gTasks
_08072CE8: .4byte gSprites
_08072CEC: .4byte gUnknown_2022978
_08072CF0: .4byte gUnknown_202297A
_08072CF4:
ldr r0, _08072D8C @ =gUnknown_202297C
ldrh r0, [r0]
strh r0, [r2, 0xE]
ldr r0, _08072D90 @ =gUnknown_202297E
_08072CFC:
ldrh r0, [r0]
strh r0, [r2, 0x10]
ldr r0, _08072D94 @ =gTasks
lsls r1, r3, 2
adds r1, r3
lsls r1, 3
adds r1, r0
strh r7, [r1, 0x12]
strh r5, [r1, 0x14]
ldr r0, _08072D98 @ =gUnknown_2037F14
strb r3, [r0]
_08072D12:
movs r0, 0x2
eors r5, r0
cmp r6, 0x1
bls _08072DCE
adds r0, r5, 0
bl sub_8072DF0
lsls r0, 24
cmp r0, 0
beq _08072DCE
adds r0, r5, 0
bl GetBattlerPosition
lsls r0, 24
movs r1, 0xFF
lsls r1, 24
adds r0, r1
lsrs r0, 24
movs r7, 0x1
cmp r0, 0x1
bhi _08072D3E
movs r7, 0
_08072D3E:
adds r0, r5, 0
adds r1, r7, 0
bl sub_8072E48
ldr r0, _08072D9C @ =gUnknown_2023D44
adds r0, r5, r0
ldrb r4, [r0]
ldr r0, _08072DA0 @ =task_pA_ma0A_obj_to_bg_pal
movs r1, 0xA
bl CreateTask
lsls r0, 24
lsrs r3, r0, 24
ldr r1, _08072D94 @ =gTasks
lsls r0, r3, 2
adds r0, r3
lsls r0, 3
adds r2, r0, r1
strh r4, [r2, 0x8]
ldr r1, _08072DA4 @ =gSprites
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
adds r0, r1
ldrh r1, [r0, 0x24]
ldrh r4, [r0, 0x20]
adds r1, r4
strh r1, [r2, 0xA]
ldrh r1, [r0, 0x26]
ldrh r0, [r0, 0x22]
adds r1, r0
strh r1, [r2, 0xC]
cmp r7, 0
bne _08072DB0
ldr r0, _08072DA8 @ =gUnknown_2022978
ldrh r0, [r0]
strh r0, [r2, 0xE]
ldr r0, _08072DAC @ =gUnknown_202297A
b _08072DB8
.align 2, 0
_08072D8C: .4byte gUnknown_202297C
_08072D90: .4byte gUnknown_202297E
_08072D94: .4byte gTasks
_08072D98: .4byte gUnknown_2037F14
_08072D9C: .4byte gUnknown_2023D44
_08072DA0: .4byte task_pA_ma0A_obj_to_bg_pal
_08072DA4: .4byte gSprites
_08072DA8: .4byte gUnknown_2022978
_08072DAC: .4byte gUnknown_202297A
_08072DB0:
ldr r0, _08072DDC @ =gUnknown_202297C
ldrh r0, [r0]
strh r0, [r2, 0xE]
ldr r0, _08072DE0 @ =gUnknown_202297E
_08072DB8:
ldrh r0, [r0]
strh r0, [r2, 0x10]
ldr r0, _08072DE4 @ =gTasks
lsls r1, r3, 2
adds r1, r3
lsls r1, 3
adds r1, r0
strh r7, [r1, 0x12]
strh r5, [r1, 0x14]
ldr r0, _08072DE8 @ =gUnknown_2037F14
strb r3, [r0, 0x1]
_08072DCE:
ldr r1, _08072DEC @ =gUnknown_2037ED4
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08072DDC: .4byte gUnknown_202297C
_08072DE0: .4byte gUnknown_202297E
_08072DE4: .4byte gTasks
_08072DE8: .4byte gUnknown_2037F14
_08072DEC: .4byte gUnknown_2037ED4
thumb_func_end sub_8072C30
thumb_func_start sub_8072DF0
sub_8072DF0: @ 8072DF0
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
bl sub_8075224
lsls r0, 24
cmp r0, 0
beq _08072E40
ldr r0, _08072E34 @ =gUnknown_2024018
ldr r0, [r0]
ldr r1, [r0]
lsls r0, r4, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08072E30
ldr r2, _08072E38 @ =gSprites
ldr r0, _08072E3C @ =gUnknown_2023D44
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r0, [r0]
lsls r0, 29
cmp r0, 0
blt _08072E40
_08072E30:
movs r0, 0x1
b _08072E42
.align 2, 0
_08072E34: .4byte gUnknown_2024018
_08072E38: .4byte gSprites
_08072E3C: .4byte gUnknown_2023D44
_08072E40:
movs r0, 0
_08072E42:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8072DF0
thumb_func_start sub_8072E48
sub_8072E48: @ 8072E48
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x28
lsls r0, 24
lsrs r7, r0, 24
lsls r1, 24
lsrs r4, r1, 24
cmp r4, 0
beq _08072E5E
b _08072F84
_08072E5E:
ldr r1, _08072F5C @ =0x06004000
movs r2, 0x80
lsls r2, 6
movs r0, 0
movs r3, 0x1
bl RequestDma3Fill
ldr r1, _08072F60 @ =0x0600e000
movs r2, 0x80
lsls r2, 5
movs r0, 0
movs r3, 0x1
bl RequestDma3Fill
add r0, sp, 0x10
bl sub_80752A0
add r0, sp, 0x20
strh r4, [r0]
ldr r1, [sp, 0x10]
ldr r2, _08072F64 @ =0x01000800
bl CpuSet
mov r0, sp
adds r0, 0x22
strh r4, [r0]
ldr r1, [sp, 0x14]
ldr r2, _08072F68 @ =0x01000400
bl CpuSet
movs r0, 0x1
movs r1, 0x4
movs r2, 0x2
bl SetAnimBgAttribute
movs r0, 0x1
movs r1, 0
movs r2, 0x1
bl SetAnimBgAttribute
movs r0, 0x1
movs r1, 0x1
movs r2, 0
bl SetAnimBgAttribute
ldr r2, _08072F6C @ =gUnknown_2023D44
adds r2, r7, r2
ldrb r0, [r2]
ldr r5, _08072F70 @ =gUnknown_2022978
ldr r3, _08072F74 @ =gSprites
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r3
ldrh r0, [r1, 0x24]
ldrh r4, [r1, 0x20]
adds r0, r4
negs r0, r0
adds r0, 0x20
strh r0, [r5]
ldr r4, _08072F78 @ =gUnknown_202297A
ldrh r0, [r1, 0x26]
ldrh r1, [r1, 0x22]
adds r0, r1
negs r0, r0
adds r0, 0x20
strh r0, [r4]
ldrb r1, [r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
ldrh r1, [r5]
movs r0, 0x14
bl SetGpuReg
ldrh r1, [r4]
movs r0, 0x16
bl SetGpuReg
lsls r4, r7, 5
ldr r0, _08072F7C @ =gPlttBufferUnfaded + 0x200
adds r4, r0
add r0, sp, 0x10
ldrb r1, [r0, 0x8]
lsls r1, 4
adds r0, r4, 0
movs r2, 0x20
bl LoadPalette
add r0, sp, 0x10
ldrb r1, [r0, 0x8]
lsls r1, 5
movs r0, 0xA0
lsls r0, 19
adds r1, r0
ldr r2, _08072F80 @ =0x04000008
adds r0, r4, 0
bl CpuSet
adds r0, r7, 0
bl GetBattlerPosition
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
add r0, sp, 0x10
ldrb r0, [r0, 0x8]
str r0, [sp]
ldr r0, [sp, 0x10]
str r0, [sp, 0x4]
ldr r0, [sp, 0x14]
str r0, [sp, 0x8]
add r0, sp, 0x10
ldrh r0, [r0, 0xA]
str r0, [sp, 0xC]
movs r0, 0x1
movs r1, 0
movs r2, 0
bl sub_80BCEF4
b _08073086
.align 2, 0
_08072F5C: .4byte 0x06004000
_08072F60: .4byte 0x0600e000
_08072F64: .4byte 0x01000800
_08072F68: .4byte 0x01000400
_08072F6C: .4byte gUnknown_2023D44
_08072F70: .4byte gUnknown_2022978
_08072F74: .4byte gSprites
_08072F78: .4byte gUnknown_202297A
_08072F7C: .4byte gPlttBufferUnfaded + 0x200
_08072F80: .4byte 0x04000008
_08072F84:
ldr r1, _08073094 @ =0x06006000
movs r2, 0x80
lsls r2, 6
movs r0, 0
movs r3, 0x1
bl RequestDma3Fill
ldr r1, _08073098 @ =0x0600f000
movs r6, 0x80
lsls r6, 5
movs r0, 0
adds r2, r6, 0
movs r3, 0x1
bl RequestDma3Fill
add r0, sp, 0x10
movs r1, 0x2
bl sub_80752C8
add r0, sp, 0x24
movs r4, 0
strh r4, [r0]
ldr r1, [sp, 0x10]
adds r1, r6
ldr r2, _0807309C @ =0x01000800
bl CpuSet
mov r0, sp
adds r0, 0x26
strh r4, [r0]
ldr r1, [sp, 0x14]
movs r2, 0x80
lsls r2, 4
mov r8, r2
add r1, r8
ldr r2, _080730A0 @ =0x01000400
bl CpuSet
movs r0, 0x2
movs r1, 0x4
movs r2, 0x2
bl SetAnimBgAttribute
movs r0, 0x2
movs r1, 0
movs r2, 0x1
bl SetAnimBgAttribute
movs r0, 0x2
movs r1, 0x1
movs r2, 0
bl SetAnimBgAttribute
ldr r2, _080730A4 @ =gUnknown_2023D44
adds r2, r7, r2
ldrb r0, [r2]
ldr r5, _080730A8 @ =gUnknown_202297C
ldr r3, _080730AC @ =gSprites
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r3
ldrh r0, [r1, 0x24]
ldrh r4, [r1, 0x20]
adds r0, r4
negs r0, r0
adds r0, 0x20
strh r0, [r5]
ldr r4, _080730B0 @ =gUnknown_202297E
ldrh r0, [r1, 0x26]
ldrh r1, [r1, 0x22]
adds r0, r1
negs r0, r0
adds r0, 0x20
strh r0, [r4]
ldrb r1, [r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
ldrh r1, [r5]
movs r0, 0x18
bl SetGpuReg
ldrh r1, [r4]
movs r0, 0x1A
bl SetGpuReg
lsls r4, r7, 5
ldr r0, _080730B4 @ =gPlttBufferUnfaded + 0x200
adds r4, r0
adds r0, r4, 0
movs r1, 0x90
movs r2, 0x20
bl LoadPalette
ldr r1, _080730B8 @ =0x05000120
ldr r2, _080730BC @ =0x04000008
adds r0, r4, 0
bl CpuSet
adds r0, r7, 0
bl GetBattlerPosition
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
add r0, sp, 0x10
ldrb r0, [r0, 0x8]
str r0, [sp]
ldr r0, [sp, 0x10]
adds r0, r6
str r0, [sp, 0x4]
ldr r0, [sp, 0x14]
add r0, r8
str r0, [sp, 0x8]
add r0, sp, 0x10
ldrh r0, [r0, 0xA]
str r0, [sp, 0xC]
movs r0, 0x2
movs r1, 0
movs r2, 0
bl sub_80BCEF4
_08073086:
add sp, 0x28
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08073094: .4byte 0x06006000
_08073098: .4byte 0x0600f000
_0807309C: .4byte 0x01000800
_080730A0: .4byte 0x01000400
_080730A4: .4byte gUnknown_2023D44
_080730A8: .4byte gUnknown_202297C
_080730AC: .4byte gSprites
_080730B0: .4byte gUnknown_202297E
_080730B4: .4byte gPlttBufferUnfaded + 0x200
_080730B8: .4byte 0x05000120
_080730BC: .4byte 0x04000008
thumb_func_end sub_8072E48
thumb_func_start sub_80730C0
sub_80730C0: @ 80730C0
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
mov r12, r1
adds r7, r2, 0
lsls r0, 16
lsrs r6, r0, 16
lsls r3, 24
movs r0, 0x40
mov r9, r0
cmp r3, 0
bne _080730DE
movs r1, 0x20
mov r9, r1
_080730DE:
lsls r0, r6, 28
lsrs r6, r0, 16
movs r0, 0
cmp r0, r9
bcs _08073116
ldr r1, _08073124 @ =0x00000fff
mov r8, r1
_080730EC:
movs r3, 0
adds r5, r0, 0x1
lsls r4, r0, 5
_080730F2:
adds r1, r4, r3
lsls r1, 1
add r1, r12
ldrh r2, [r1]
mov r0, r8
ands r0, r2
orrs r0, r6
adds r0, r7
strh r0, [r1]
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x1F
bls _080730F2
lsls r0, r5, 24
lsrs r0, 24
cmp r0, r9
bcc _080730EC
_08073116:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08073124: .4byte 0x00000fff
thumb_func_end sub_80730C0
thumb_func_start sub_8073128
sub_8073128: @ 8073128
push {r4,lr}
sub sp, 0x10
lsls r0, 24
lsrs r4, r0, 24
mov r0, sp
bl sub_80752A0
cmp r4, 0
bne _08073154
movs r0, 0x1
bl sub_8075358
ldr r0, _0807314C @ =gUnknown_2022978
strh r4, [r0]
ldr r0, _08073150 @ =gUnknown_202297A
strh r4, [r0]
b _08073164
.align 2, 0
_0807314C: .4byte gUnknown_2022978
_08073150: .4byte gUnknown_202297A
_08073154:
movs r0, 0x2
bl sub_8075358
ldr r0, _0807316C @ =gUnknown_202297C
movs r1, 0
strh r1, [r0]
ldr r0, _08073170 @ =gUnknown_202297E
strh r1, [r0]
_08073164:
add sp, 0x10
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0807316C: .4byte gUnknown_202297C
_08073170: .4byte gUnknown_202297E
thumb_func_end sub_8073128
thumb_func_start task_pA_ma0A_obj_to_bg_pal
task_pA_ma0A_obj_to_bg_pal: @ 8073174
push {r4-r6,lr}
sub sp, 0x10
lsls r0, 24
lsrs r0, 24
ldr r2, _080731F0 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r5, r1, r2
ldrb r4, [r5, 0x8]
ldrb r6, [r5, 0x14]
mov r0, sp
bl sub_80752A0
ldr r0, _080731F4 @ =gSprites
lsls r1, r4, 4
adds r1, r4
lsls r1, 2
adds r1, r0
ldrh r2, [r1, 0x24]
ldrh r0, [r1, 0x20]
adds r2, r0
ldrh r0, [r5, 0xA]
subs r0, r2
lsls r0, 16
lsrs r3, r0, 16
ldrh r2, [r1, 0x26]
ldrh r1, [r1, 0x22]
adds r2, r1
ldrh r0, [r5, 0xC]
subs r0, r2
lsls r0, 16
lsrs r2, r0, 16
movs r1, 0x12
ldrsh r0, [r5, r1]
cmp r0, 0
bne _0807320C
ldr r1, _080731F8 @ =gUnknown_2022978
lsls r0, r3, 16
asrs r0, 16
ldrh r3, [r5, 0xE]
adds r0, r3
strh r0, [r1]
ldr r1, _080731FC @ =gUnknown_202297A
lsls r0, r2, 16
asrs r0, 16
ldrh r5, [r5, 0x10]
adds r0, r5
strh r0, [r1]
lsls r0, r6, 5
ldr r2, _08073200 @ =gPlttBufferFaded + 0x200
adds r0, r2
mov r1, sp
ldrb r1, [r1, 0x8]
lsls r1, 5
ldr r3, _08073204 @ =0xfffffe00
adds r2, r3
adds r1, r2
ldr r2, _08073208 @ =0x04000008
bl CpuSet
b _08073232
.align 2, 0
_080731F0: .4byte gTasks
_080731F4: .4byte gSprites
_080731F8: .4byte gUnknown_2022978
_080731FC: .4byte gUnknown_202297A
_08073200: .4byte gPlttBufferFaded + 0x200
_08073204: .4byte 0xfffffe00
_08073208: .4byte 0x04000008
_0807320C:
ldr r1, _0807323C @ =gUnknown_202297C
lsls r0, r3, 16
asrs r0, 16
ldrh r3, [r5, 0xE]
adds r0, r3
strh r0, [r1]
ldr r1, _08073240 @ =gUnknown_202297E
lsls r0, r2, 16
asrs r0, 16
ldrh r5, [r5, 0x10]
adds r0, r5
strh r0, [r1]
lsls r0, r6, 5
ldr r1, _08073244 @ =gPlttBufferFaded + 0x200
adds r0, r1
subs r1, 0xE0
ldr r2, _08073248 @ =0x04000008
bl CpuSet
_08073232:
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0807323C: .4byte gUnknown_202297C
_08073240: .4byte gUnknown_202297E
_08073244: .4byte gPlttBufferFaded + 0x200
_08073248: .4byte 0x04000008
thumb_func_end task_pA_ma0A_obj_to_bg_pal
thumb_func_start ScriptCmd_clearmonbg
ScriptCmd_clearmonbg: @ 807324C
push {r4,r5,lr}
ldr r0, _08073260 @ =gUnknown_2037ED4
ldr r2, [r0]
adds r1, r2, 0x1
str r1, [r0]
ldrb r4, [r2, 0x1]
cmp r4, 0
bne _08073264
movs r4, 0x2
b _0807326E
.align 2, 0
_08073260: .4byte gUnknown_2037ED4
_08073264:
cmp r4, 0x1
bne _0807326A
movs r4, 0x3
_0807326A:
cmp r4, 0
beq _08073272
_0807326E:
cmp r4, 0x2
bne _0807327C
_08073272:
ldr r0, _08073278 @ =gUnknown_2037F1A
b _0807327E
.align 2, 0
_08073278: .4byte gUnknown_2037F1A
_0807327C:
ldr r0, _080732D4 @ =gUnknown_2037F1B
_0807327E:
ldrb r5, [r0]
ldr r3, _080732D8 @ =gUnknown_2037F14
ldrb r0, [r3]
cmp r0, 0xFF
beq _080732A4
ldr r2, _080732DC @ =gSprites
ldr r0, _080732E0 @ =gUnknown_2023D44
adds r0, r5, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r2, [r0]
movs r1, 0x5
negs r1, r1
ands r1, r2
strb r1, [r0]
_080732A4:
cmp r4, 0x1
bls _080732E4
ldrb r0, [r3, 0x1]
cmp r0, 0xFF
beq _080732E4
ldr r3, _080732DC @ =gSprites
ldr r2, _080732E0 @ =gUnknown_2023D44
movs r1, 0x2
adds r0, r5, 0
eors r0, r1
adds r0, r2
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]
b _080732E6
.align 2, 0
_080732D4: .4byte gUnknown_2037F1B
_080732D8: .4byte gUnknown_2037F14
_080732DC: .4byte gSprites
_080732E0: .4byte gUnknown_2023D44
_080732E4:
movs r4, 0
_080732E6:
ldr r0, _08073310 @ =sub_807331C
movs r1, 0x5
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _08073314 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r4, [r1, 0x8]
strh r5, [r1, 0xC]
ldr r1, _08073318 @ =gUnknown_2037ED4
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08073310: .4byte sub_807331C
_08073314: .4byte gTasks
_08073318: .4byte gUnknown_2037ED4
thumb_func_end ScriptCmd_clearmonbg
thumb_func_start sub_807331C
sub_807331C: @ 807331C
push {r4-r7,lr}
lsls r0, 24
lsrs r0, 24
adds r7, r0, 0
ldr r1, _08073394 @ =gTasks
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r4, r0, r1
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
beq _0807338E
ldrb r0, [r4, 0xC]
bl GetBattlerPosition
lsls r0, 24
movs r1, 0xFF
lsls r1, 24
adds r0, r1
lsrs r0, 24
movs r5, 0x1
cmp r0, 0x1
bhi _08073354
movs r5, 0
_08073354:
ldr r6, _08073398 @ =gUnknown_2037F14
ldrb r0, [r6]
cmp r0, 0xFF
beq _0807336C
adds r0, r5, 0
bl sub_8073128
ldrb r0, [r6]
bl DestroyTask
movs r0, 0xFF
strb r0, [r6]
_0807336C:
movs r1, 0x8
ldrsh r0, [r4, r1]
cmp r0, 0x1
ble _08073388
movs r0, 0x1
eors r5, r0
adds r0, r5, 0
bl sub_8073128
ldrb r0, [r6, 0x1]
bl DestroyTask
movs r0, 0xFF
strb r0, [r6, 0x1]
_08073388:
adds r0, r7, 0
bl DestroyTask
_0807338E:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08073394: .4byte gTasks
_08073398: .4byte gUnknown_2037F14
thumb_func_end sub_807331C
thumb_func_start sub_807339C
sub_807339C: @ 807339C
push {r4,r5,lr}
ldr r0, _080733B0 @ =gUnknown_2037ED4
ldr r2, [r0]
adds r1, r2, 0x1
str r1, [r0]
ldrb r5, [r2, 0x1]
cmp r5, 0
bne _080733B4
movs r5, 0x2
b _080733BE
.align 2, 0
_080733B0: .4byte gUnknown_2037ED4
_080733B4:
cmp r5, 0x1
bne _080733BA
movs r5, 0x3
_080733BA:
cmp r5, 0
beq _080733C2
_080733BE:
cmp r5, 0x2
bne _080733CC
_080733C2:
ldr r0, _080733C8 @ =gUnknown_2037F1A
b _080733CE
.align 2, 0
_080733C8: .4byte gUnknown_2037F1A
_080733CC:
ldr r0, _08073474 @ =gUnknown_2037F1B
_080733CE:
ldrb r4, [r0]
adds r0, r4, 0
bl sub_8072DF0
lsls r0, 24
cmp r0, 0
beq _08073416
adds r0, r4, 0
bl GetBattlerPosition
lsls r0, 24
movs r1, 0xFF
lsls r1, 24
adds r0, r1
lsrs r0, 24
movs r1, 0x1
cmp r0, 0x1
bhi _080733F4
movs r1, 0
_080733F4:
adds r0, r4, 0
bl sub_8072E48
ldr r2, _08073478 @ =gSprites
ldr r0, _0807347C @ =gUnknown_2023D44
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r2, [r0]
movs r1, 0x5
negs r1, r1
ands r1, r2
strb r1, [r0]
_08073416:
movs r0, 0x2
eors r4, r0
cmp r5, 0x1
bls _08073464
adds r0, r4, 0
bl sub_8072DF0
lsls r0, 24
cmp r0, 0
beq _08073464
adds r0, r4, 0
bl GetBattlerPosition
lsls r0, 24
movs r1, 0xFF
lsls r1, 24
adds r0, r1
lsrs r0, 24
movs r1, 0x1
cmp r0, 0x1
bhi _08073442
movs r1, 0
_08073442:
adds r0, r4, 0
bl sub_8072E48
ldr r2, _08073478 @ =gSprites
ldr r0, _0807347C @ =gUnknown_2023D44
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r2, [r0]
movs r1, 0x5
negs r1, r1
ands r1, r2
strb r1, [r0]
_08073464:
ldr r1, _08073480 @ =gUnknown_2037ED4
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08073474: .4byte gUnknown_2037F1B
_08073478: .4byte gSprites
_0807347C: .4byte gUnknown_2023D44
_08073480: .4byte gUnknown_2037ED4
thumb_func_end sub_807339C
thumb_func_start sub_8073484
sub_8073484: @ 8073484
push {r4-r6,lr}
ldr r0, _08073498 @ =gUnknown_2037ED4
ldr r2, [r0]
adds r1, r2, 0x1
str r1, [r0]
ldrb r5, [r2, 0x1]
cmp r5, 0
bne _0807349C
movs r5, 0x2
b _080734A6
.align 2, 0
_08073498: .4byte gUnknown_2037ED4
_0807349C:
cmp r5, 0x1
bne _080734A2
movs r5, 0x3
_080734A2:
cmp r5, 0
beq _080734AA
_080734A6:
cmp r5, 0x2
bne _080734B4
_080734AA:
ldr r0, _080734B0 @ =gUnknown_2037F1A
b _080734B6
.align 2, 0
_080734B0: .4byte gUnknown_2037F1A
_080734B4:
ldr r0, _08073514 @ =gUnknown_2037F1B
_080734B6:
ldrb r6, [r0]
adds r0, r6, 0
bl sub_8072DF0
lsls r0, 24
cmp r0, 0
beq _080734E0
ldr r2, _08073518 @ =gSprites
ldr r0, _0807351C @ =gUnknown_2023D44
adds r0, r6, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r2, [r0]
movs r1, 0x5
negs r1, r1
ands r1, r2
strb r1, [r0]
_080734E0:
cmp r5, 0x1
bls _08073520
movs r0, 0x2
adds r4, r6, 0
eors r4, r0
adds r0, r4, 0
bl sub_8072DF0
lsls r0, 24
cmp r0, 0
beq _08073520
ldr r2, _08073518 @ =gSprites
ldr r0, _0807351C @ =gUnknown_2023D44
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r2, [r0]
movs r1, 0x5
negs r1, r1
ands r1, r2
strb r1, [r0]
b _08073522
.align 2, 0
_08073514: .4byte gUnknown_2037F1B
_08073518: .4byte gSprites
_0807351C: .4byte gUnknown_2023D44
_08073520:
movs r5, 0
_08073522:
ldr r0, _0807354C @ =sub_8073558
movs r1, 0x5
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _08073550 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r5, [r1, 0x8]
strh r6, [r1, 0xC]
ldr r1, _08073554 @ =gUnknown_2037ED4
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0807354C: .4byte sub_8073558
_08073550: .4byte gTasks
_08073554: .4byte gUnknown_2037ED4
thumb_func_end sub_8073484
thumb_func_start sub_8073558
sub_8073558: @ 8073558
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r1, _080735DC @ =gTasks
lsls r0, 2
add r0, r8
lsls r0, 3
adds r5, r0, r1
ldrh r0, [r5, 0xA]
adds r0, 0x1
strh r0, [r5, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
beq _080735D2
ldrb r4, [r5, 0xC]
adds r6, r4, 0
adds r0, r4, 0
bl GetBattlerPosition
lsls r0, 24
movs r1, 0xFF
lsls r1, 24
adds r0, r1
lsrs r0, 24
movs r7, 0x1
cmp r0, 0x1
bhi _08073598
movs r7, 0
_08073598:
adds r0, r4, 0
bl sub_8072DF0
lsls r0, 24
cmp r0, 0
beq _080735AA
adds r0, r7, 0
bl sub_8073128
_080735AA:
movs r2, 0x8
ldrsh r0, [r5, r2]
cmp r0, 0x1
ble _080735CC
movs r0, 0x2
eors r6, r0
adds r0, r6, 0
bl sub_8072DF0
lsls r0, 24
cmp r0, 0
beq _080735CC
movs r0, 0x1
eors r7, r0
adds r0, r7, 0
bl sub_8073128
_080735CC:
mov r0, r8
bl DestroyTask
_080735D2:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080735DC: .4byte gTasks
thumb_func_end sub_8073558
thumb_func_start ScriptCmd_setalpha
ScriptCmd_setalpha: @ 80735E0
push {r4,r5,lr}
ldr r2, _08073614 @ =gUnknown_2037ED4
ldr r0, [r2]
adds r1, r0, 0x1
str r1, [r2]
ldrb r5, [r0, 0x1]
adds r0, r1, 0x1
str r0, [r2]
ldrb r4, [r1, 0x1]
lsls r4, 8
adds r0, 0x1
str r0, [r2]
movs r1, 0xFD
lsls r1, 6
movs r0, 0x50
bl SetGpuReg
orrs r5, r4
movs r0, 0x52
adds r1, r5, 0
bl SetGpuReg
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08073614: .4byte gUnknown_2037ED4
thumb_func_end ScriptCmd_setalpha
thumb_func_start ScriptCmd_setbldcnt
ScriptCmd_setbldcnt: @ 8073618
push {lr}
ldr r3, _0807363C @ =gUnknown_2037ED4
ldr r0, [r3]
adds r2, r0, 0x1
str r2, [r3]
ldrb r1, [r0, 0x1]
adds r0, r2, 0x1
str r0, [r3]
ldrb r2, [r2, 0x1]
lsls r2, 8
adds r0, 0x1
str r0, [r3]
orrs r1, r2
movs r0, 0x50
bl SetGpuReg
pop {r0}
bx r0
.align 2, 0
_0807363C: .4byte gUnknown_2037ED4
thumb_func_end ScriptCmd_setbldcnt
thumb_func_start ScriptCmd_blendoff
ScriptCmd_blendoff: @ 8073640
push {lr}
ldr r1, _08073660 @ =gUnknown_2037ED4
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
pop {r0}
bx r0
.align 2, 0
_08073660: .4byte gUnknown_2037ED4
thumb_func_end ScriptCmd_blendoff
thumb_func_start ScriptCmd_call
ScriptCmd_call: @ 8073664
push {r4,lr}
ldr r4, _08073690 @ =gUnknown_2037ED4
ldr r1, [r4]
adds r3, r1, 0x1
str r3, [r4]
ldr r2, _08073694 @ =gUnknown_2037ED8
adds r0, r1, 0x5
str r0, [r2]
ldrb r1, [r1, 0x1]
ldrb r0, [r3, 0x1]
lsls r0, 8
adds r1, r0
ldrb r0, [r3, 0x2]
lsls r0, 16
adds r1, r0
ldrb r0, [r3, 0x3]
lsls r0, 24
adds r1, r0
str r1, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08073690: .4byte gUnknown_2037ED4
_08073694: .4byte gUnknown_2037ED8
thumb_func_end ScriptCmd_call
thumb_func_start sub_8073698
sub_8073698: @ 8073698
ldr r0, _080736A4 @ =gUnknown_2037ED4
ldr r1, _080736A8 @ =gUnknown_2037ED8
ldr r1, [r1]
str r1, [r0]
bx lr
.align 2, 0
_080736A4: .4byte gUnknown_2037ED4
_080736A8: .4byte gUnknown_2037ED8
thumb_func_end sub_8073698
thumb_func_start ScriptCmd_setarg
ScriptCmd_setarg: @ 80736AC
push {r4,r5,lr}
ldr r5, _080736D8 @ =gUnknown_2037ED4
ldr r1, [r5]
adds r0, r1, 0x1
str r0, [r5]
ldrb r2, [r1, 0x1]
adds r3, r0, 0x1
str r3, [r5]
ldrb r4, [r0, 0x1]
ldrb r0, [r3, 0x1]
lsls r0, 8
orrs r4, r0
adds r1, 0x4
str r1, [r5]
ldr r0, _080736DC @ =gUnknown_2037F02
lsls r2, 1
adds r2, r0
strh r4, [r2]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080736D8: .4byte gUnknown_2037ED4
_080736DC: .4byte gUnknown_2037F02
thumb_func_end ScriptCmd_setarg
thumb_func_start ScriptCmd_choosetwoturnanim
ScriptCmd_choosetwoturnanim: @ 80736E0
push {lr}
ldr r3, _08073718 @ =gUnknown_2037ED4
ldr r2, [r3]
adds r0, r2, 0x1
str r0, [r3]
ldr r0, _0807371C @ =gUnknown_2037F16
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080736FA
adds r0, r2, 0x5
str r0, [r3]
_080736FA:
ldr r2, [r3]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
lsls r0, 8
adds r1, r0
ldrb r0, [r2, 0x2]
lsls r0, 16
adds r1, r0
ldrb r0, [r2, 0x3]
lsls r0, 24
adds r1, r0
str r1, [r3]
pop {r0}
bx r0
.align 2, 0
_08073718: .4byte gUnknown_2037ED4
_0807371C: .4byte gUnknown_2037F16
thumb_func_end ScriptCmd_choosetwoturnanim
thumb_func_start ScriptCmd_jumpifmoveturn
ScriptCmd_jumpifmoveturn: @ 8073720
push {r4,r5,lr}
ldr r5, _08073750 @ =gUnknown_2037ED4
ldr r4, [r5]
adds r2, r4, 0x1
str r2, [r5]
ldrb r1, [r4, 0x1]
adds r3, r2, 0x1
str r3, [r5]
ldr r0, _08073754 @ =gUnknown_2037F16
ldrb r0, [r0]
cmp r1, r0
bne _08073758
ldrb r1, [r2, 0x1]
ldrb r0, [r3, 0x1]
lsls r0, 8
adds r1, r0
ldrb r0, [r3, 0x2]
lsls r0, 16
adds r1, r0
ldrb r0, [r3, 0x3]
lsls r0, 24
adds r1, r0
str r1, [r5]
b _0807375C
.align 2, 0
_08073750: .4byte gUnknown_2037ED4
_08073754: .4byte gUnknown_2037F16
_08073758:
adds r0, r4, 0x6
str r0, [r5]
_0807375C:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end ScriptCmd_jumpifmoveturn
thumb_func_start ScriptCmd_jump
ScriptCmd_jump: @ 8073764
ldr r3, _08073784 @ =gUnknown_2037ED4
ldr r0, [r3]
adds r2, r0, 0x1
str r2, [r3]
ldrb r1, [r0, 0x1]
ldrb r0, [r2, 0x1]
lsls r0, 8
adds r1, r0
ldrb r0, [r2, 0x2]
lsls r0, 16
adds r1, r0
ldrb r0, [r2, 0x3]
lsls r0, 24
adds r1, r0
str r1, [r3]
bx lr
.align 2, 0
_08073784: .4byte gUnknown_2037ED4
thumb_func_end ScriptCmd_jump
thumb_func_start sub_8073788
sub_8073788: @ 8073788
movs r0, 0
bx lr
thumb_func_end sub_8073788
thumb_func_start sub_807378C
sub_807378C: @ 807378C
push {lr}
lsls r0, 16
lsrs r0, 16
cmp r0, 0xC9
beq _0807379A
movs r0, 0x1
b _0807379C
_0807379A:
movs r0, 0
_0807379C:
pop {r1}
bx r1
thumb_func_end sub_807378C
thumb_func_start sub_80737A0
sub_80737A0: @ 80737A0
push {r4,lr}
ldr r1, _080737D4 @ =gUnknown_2037ED4
ldr r2, [r1]
adds r0, r2, 0x1
str r0, [r1]
ldrb r4, [r2, 0x1]
adds r0, 0x1
str r0, [r1]
ldr r0, _080737D8 @ =sub_8073850
movs r1, 0x5
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _080737DC @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r4, [r1, 0x8]
ldr r1, _080737E0 @ =gUnknown_2037F17
movs r0, 0x1
strb r0, [r1]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080737D4: .4byte gUnknown_2037ED4
_080737D8: .4byte sub_8073850
_080737DC: .4byte gTasks
_080737E0: .4byte gUnknown_2037F17
thumb_func_end sub_80737A0
thumb_func_start sub_80737E4
sub_80737E4: @ 80737E4
push {r4-r6,lr}
ldr r1, _08073820 @ =gUnknown_2037ED4
ldr r0, [r1]
adds r2, r0, 0x1
str r2, [r1]
ldrb r6, [r0, 0x1]
ldrb r5, [r2, 0x1]
adds r0, 0x4
str r0, [r1]
ldr r0, _08073824 @ =sub_8073850
movs r1, 0x5
bl CreateTask
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _08073828 @ =gUnknown_2037F1B
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08073830
ldr r1, _0807382C @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
strh r5, [r0, 0x8]
b _0807383C
.align 2, 0
_08073820: .4byte gUnknown_2037ED4
_08073824: .4byte sub_8073850
_08073828: .4byte gUnknown_2037F1B
_0807382C: .4byte gTasks
_08073830:
ldr r1, _08073848 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
strh r6, [r0, 0x8]
_0807383C:
ldr r1, _0807384C @ =gUnknown_2037F17
movs r0, 0x1
strb r0, [r1]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08073848: .4byte gTasks
_0807384C: .4byte gUnknown_2037F17
thumb_func_end sub_80737E4
thumb_func_start sub_8073850
sub_8073850: @ 8073850
push {r4-r7,lr}
sub sp, 0x4
lsls r0, 24
lsrs r5, r0, 24
ldr r1, _08073884 @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r4, r0, r1
ldrh r6, [r4, 0x1C]
movs r0, 0x1C
ldrsh r3, [r4, r0]
adds r7, r1, 0
cmp r3, 0
bne _08073888
str r3, [sp]
movs r0, 0xE8
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginHardwarePaletteFade
ldrh r0, [r4, 0x1C]
adds r0, 0x1
strh r0, [r4, 0x1C]
b _08073918
.align 2, 0
_08073884: .4byte gTasks
_08073888:
ldr r2, _080738A4 @ =gPaletteFade
ldrb r1, [r2, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _08073918
cmp r3, 0x1
bne _080738AC
adds r0, r6, 0x1
strh r0, [r4, 0x1C]
ldr r1, _080738A8 @ =gUnknown_2037F17
movs r0, 0x2
strb r0, [r1]
b _080738F0
.align 2, 0
_080738A4: .4byte gPaletteFade
_080738A8: .4byte gUnknown_2037F17
_080738AC:
cmp r3, 0x2
bne _080738F0
ldrh r0, [r4, 0x8]
lsls r2, r0, 16
asrs r1, r2, 16
movs r0, 0x1
negs r0, r0
cmp r1, r0
bne _080738C4
bl sub_807396C
b _080738CA
_080738C4:
lsrs r0, r2, 16
bl sub_8073924
_080738CA:
movs r0, 0x1
str r0, [sp]
movs r0, 0xE8
movs r1, 0
movs r2, 0x10
movs r3, 0
bl BeginHardwarePaletteFade
ldr r1, _080738EC @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
ldrh r1, [r0, 0x1C]
adds r1, 0x1
strh r1, [r0, 0x1C]
b _08073918
.align 2, 0
_080738EC: .4byte gTasks
_080738F0:
ldrb r1, [r2, 0x7]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _08073918
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r7
movs r1, 0x1C
ldrsh r0, [r0, r1]
cmp r0, 0x3
bne _08073918
adds r0, r5, 0
bl DestroyTask
ldr r0, _08073920 @ =gUnknown_2037F17
strb r4, [r0]
_08073918:
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08073920: .4byte gUnknown_2037F17
thumb_func_end sub_8073850
thumb_func_start sub_8073924
sub_8073924: @ 8073924
push {r4,r5,lr}
lsls r0, 16
lsrs r0, 16
ldr r5, _08073960 @ =gUnknown_83ADE18
lsls r4, r0, 1
adds r4, r0
lsls r4, 2
adds r0, r5, 0
adds r0, 0x8
adds r0, r4, r0
ldr r0, [r0]
ldr r1, _08073964 @ =0x0600d000
bl LZDecompressVram
adds r0, r4, r5
ldr r0, [r0]
ldr r1, _08073968 @ =0x06008000
bl LZDecompressVram
adds r5, 0x4
adds r4, r5
ldr r0, [r4]
movs r1, 0x20
movs r2, 0x20
bl LoadCompressedPalette
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08073960: .4byte gUnknown_83ADE18
_08073964: .4byte 0x0600d000
_08073968: .4byte 0x06008000
thumb_func_end sub_8073924
thumb_func_start sub_807396C
sub_807396C: @ 807396C
push {lr}
bl sub_800F40C
pop {r0}
bx r0
thumb_func_end sub_807396C
thumb_func_start ScriptCmd_restorebg
ScriptCmd_restorebg: @ 8073978
push {lr}
ldr r1, _080739A8 @ =gUnknown_2037ED4
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
ldr r0, _080739AC @ =sub_8073850
movs r1, 0x5
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _080739B0 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
ldr r0, _080739B4 @ =0x0000ffff
strh r0, [r1, 0x8]
ldr r1, _080739B8 @ =gUnknown_2037F17
movs r0, 0x1
strb r0, [r1]
pop {r0}
bx r0
.align 2, 0
_080739A8: .4byte gUnknown_2037ED4
_080739AC: .4byte sub_8073850
_080739B0: .4byte gTasks
_080739B4: .4byte 0x0000ffff
_080739B8: .4byte gUnknown_2037F17
thumb_func_end ScriptCmd_restorebg
thumb_func_start ScriptCmd_waitbgfadeout
ScriptCmd_waitbgfadeout: @ 80739BC
push {lr}
ldr r0, _080739D4 @ =gUnknown_2037F17
ldrb r0, [r0]
cmp r0, 0x2
bne _080739E0
ldr r1, _080739D8 @ =gUnknown_2037ED4
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
ldr r1, _080739DC @ =gUnknown_2037EE0
movs r0, 0
b _080739E4
.align 2, 0
_080739D4: .4byte gUnknown_2037F17
_080739D8: .4byte gUnknown_2037ED4
_080739DC: .4byte gUnknown_2037EE0
_080739E0:
ldr r1, _080739EC @ =gUnknown_2037EE0
movs r0, 0x1
_080739E4:
strb r0, [r1]
pop {r0}
bx r0
.align 2, 0
_080739EC: .4byte gUnknown_2037EE0
thumb_func_end ScriptCmd_waitbgfadeout
thumb_func_start sub_80739F0
sub_80739F0: @ 80739F0
push {lr}
ldr r0, _08073A08 @ =gUnknown_2037F17
ldrb r2, [r0]
cmp r2, 0
bne _08073A14
ldr r0, _08073A0C @ =gUnknown_2037ED4
ldr r1, [r0]
adds r1, 0x1
str r1, [r0]
ldr r0, _08073A10 @ =gUnknown_2037EE0
strb r2, [r0]
b _08073A1A
.align 2, 0
_08073A08: .4byte gUnknown_2037F17
_08073A0C: .4byte gUnknown_2037ED4
_08073A10: .4byte gUnknown_2037EE0
_08073A14:
ldr r1, _08073A20 @ =gUnknown_2037EE0
movs r0, 0x1
strb r0, [r1]
_08073A1A:
pop {r0}
bx r0
.align 2, 0
_08073A20: .4byte gUnknown_2037EE0
thumb_func_end sub_80739F0
thumb_func_start ScriptCmd_changebg
ScriptCmd_changebg: @ 8073A24
push {r4,lr}
ldr r4, _08073A40 @ =gUnknown_2037ED4
ldr r1, [r4]
adds r0, r1, 0x1
str r0, [r4]
ldrb r0, [r1, 0x1]
bl sub_8073924
ldr r0, [r4]
adds r0, 0x1
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08073A40: .4byte gUnknown_2037ED4
thumb_func_end ScriptCmd_changebg
thumb_func_start sub_8073A44
sub_8073A44: @ 8073A44
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _08073A78 @ =gUnknown_2024018
ldr r1, [r0]
ldr r0, _08073A7C @ =gUnknown_2037F1A
ldrb r2, [r0]
ldr r1, [r1, 0x4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _08073A80
adds r0, r2, 0
bl GetBattlerSide
lsls r0, 24
movs r4, 0xC0
cmp r0, 0
beq _08073AE6
movs r4, 0x3F
b _08073AE6
.align 2, 0
_08073A78: .4byte gUnknown_2024018
_08073A7C: .4byte gUnknown_2037F1A
_08073A80:
adds r0, r2, 0
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08073ABA
ldr r0, _08073AA8 @ =gUnknown_2037F1B
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08073AE6
lsls r0, r4, 24
asrs r1, r0, 24
cmp r1, 0x3F
bne _08073AAC
movs r4, 0xC0
b _08073AE6
.align 2, 0
_08073AA8: .4byte gUnknown_2037F1B
_08073AAC:
movs r0, 0x40
negs r0, r0
cmp r1, r0
beq _08073AE6
negs r0, r1
lsls r0, 24
b _08073AE4
_08073ABA:
ldr r0, _08073ADC @ =gUnknown_2037F1B
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08073AE0
lsls r0, r4, 24
asrs r0, 24
movs r1, 0x40
negs r1, r1
cmp r0, r1
bne _08073AE6
movs r4, 0x3F
b _08073AE6
.align 2, 0
_08073ADC: .4byte gUnknown_2037F1B
_08073AE0:
lsls r0, r4, 24
negs r0, r0
_08073AE4:
lsrs r4, r0, 24
_08073AE6:
lsls r0, r4, 24
asrs r1, r0, 24
cmp r1, 0x3F
ble _08073AF2
movs r4, 0x3F
b _08073AFC
_08073AF2:
movs r0, 0x40
negs r0, r0
cmp r1, r0
bge _08073AFC
movs r4, 0xC0
_08073AFC:
lsls r0, r4, 24
asrs r0, 24
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8073A44
thumb_func_start sub_8073B08
sub_8073B08: @ 8073B08
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _08073B3C @ =gUnknown_2024018
ldr r1, [r0]
ldr r0, _08073B40 @ =gUnknown_2037F1A
ldrb r2, [r0]
ldr r1, [r1, 0x4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _08073B44
adds r0, r2, 0
bl GetBattlerSide
lsls r0, 24
movs r4, 0xC0
cmp r0, 0
beq _08073B56
movs r4, 0x3F
b _08073B56
.align 2, 0
_08073B3C: .4byte gUnknown_2024018
_08073B40: .4byte gUnknown_2037F1A
_08073B44:
adds r0, r2, 0
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08073B56
lsls r0, r4, 24
negs r0, r0
lsrs r4, r0, 24
_08073B56:
lsls r0, r4, 24
asrs r0, 24
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8073B08
thumb_func_start sub_8073B60
sub_8073B60: @ 8073B60
push {lr}
lsls r0, 16
lsrs r1, r0, 16
asrs r2, r0, 16
cmp r2, 0x3F
ble _08073B70
movs r1, 0x3F
b _08073B7A
_08073B70:
movs r0, 0x40
negs r0, r0
cmp r2, r0
bge _08073B7A
ldr r1, _08073B84 @ =0x0000ffc0
_08073B7A:
lsls r0, r1, 16
asrs r0, 16
pop {r1}
bx r1
.align 2, 0
_08073B84: .4byte 0x0000ffc0
thumb_func_end sub_8073B60
thumb_func_start CalculatePanIncrement
CalculatePanIncrement: @ 8073B88
push {lr}
lsls r2, 16
lsrs r2, 16
adds r3, r2, 0
lsls r0, 16
asrs r0, 16
lsls r1, 16
asrs r1, 16
cmp r0, r1
bge _08073BA6
lsls r0, r2, 16
asrs r0, 16
cmp r0, 0
bge _08073BB6
b _08073BB4
_08073BA6:
cmp r0, r1
ble _08073BBC
lsls r0, r3, 16
asrs r0, 16
cmp r0, 0
bge _08073BB4
negs r0, r0
_08073BB4:
negs r0, r0
_08073BB6:
lsls r0, 16
lsrs r0, 16
b _08073BBE
_08073BBC:
movs r0, 0
_08073BBE:
lsls r0, 16
asrs r0, 16
pop {r1}
bx r1
thumb_func_end CalculatePanIncrement
thumb_func_start ScriptCmd_playsewithpan
ScriptCmd_playsewithpan: @ 8073BC8
push {r4,r5,lr}
ldr r5, _08073BFC @ =gUnknown_2037ED4
ldr r0, [r5]
adds r1, r0, 0x1
str r1, [r5]
ldrb r4, [r0, 0x1]
ldrb r0, [r1, 0x1]
lsls r0, 8
orrs r4, r0
movs r0, 0x2
ldrsb r0, [r1, r0]
bl sub_8073A44
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
adds r0, r4, 0
bl PlaySE12WithPanning
ldr r0, [r5]
adds r0, 0x3
str r0, [r5]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08073BFC: .4byte gUnknown_2037ED4
thumb_func_end ScriptCmd_playsewithpan
thumb_func_start ScriptCmd_setpan
ScriptCmd_setpan: @ 8073C00
push {r4,lr}
ldr r4, _08073C28 @ =gUnknown_2037ED4
ldr r1, [r4]
adds r0, r1, 0x1
str r0, [r4]
movs r0, 0x1
ldrsb r0, [r1, r0]
bl sub_8073A44
lsls r0, 24
asrs r0, 24
bl SE12PanpotControl
ldr r0, [r4]
adds r0, 0x1
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08073C28: .4byte gUnknown_2037ED4
thumb_func_end ScriptCmd_setpan
thumb_func_start ScriptCmd_panse_1B
ScriptCmd_panse_1B: @ 8073C2C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r0, _08073CDC @ =gUnknown_2037ED4
mov r10, r0
ldr r0, [r0]
adds r1, r0, 0x1
mov r2, r10
str r1, [r2]
ldrb r0, [r0, 0x1]
mov r9, r0
ldrb r0, [r1, 0x1]
lsls r0, 8
mov r2, r9
orrs r2, r0
mov r9, r2
ldrb r4, [r1, 0x3]
ldrb r6, [r1, 0x4]
ldrb r7, [r1, 0x5]
movs r0, 0x2
ldrsb r0, [r1, r0]
bl sub_8073A44
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
lsls r4, 24
asrs r4, 24
adds r0, r4, 0
bl sub_8073A44
mov r8, r0
lsls r5, 24
asrs r5, 24
mov r0, r8
lsls r0, 24
asrs r0, 24
mov r8, r0
lsls r6, 24
asrs r6, 24
adds r0, r5, 0
mov r1, r8
adds r2, r6, 0
bl CalculatePanIncrement
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, _08073CE0 @ =Task_PanFromInitialToTarget
movs r1, 0x1
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _08073CE4 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r5, [r1, 0x8]
mov r2, r8
strh r2, [r1, 0xA]
lsls r4, 24
asrs r4, 24
strh r4, [r1, 0xC]
strh r7, [r1, 0xE]
strh r5, [r1, 0x10]
mov r0, r9
adds r1, r5, 0
bl PlaySE12WithPanning
ldr r1, _08073CE8 @ =gUnknown_2037EE3
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
mov r1, r10
ldr r0, [r1]
adds r0, 0x6
str r0, [r1]
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08073CDC: .4byte gUnknown_2037ED4
_08073CE0: .4byte Task_PanFromInitialToTarget
_08073CE4: .4byte gTasks
_08073CE8: .4byte gUnknown_2037EE3
thumb_func_end ScriptCmd_panse_1B
thumb_func_start Task_PanFromInitialToTarget
Task_PanFromInitialToTarget: @ 8073CEC
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
movs r7, 0
ldr r1, _08073D30 @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r2, r0, r1
ldrh r0, [r2, 0x18]
adds r1, r0, 0x1
strh r1, [r2, 0x18]
lsls r0, 16
asrs r0, 16
movs r3, 0xE
ldrsh r1, [r2, r3]
cmp r0, r1
blt _08073D70
strh r7, [r2, 0x18]
ldrh r6, [r2, 0x8]
ldrh r3, [r2, 0xA]
movs r4, 0x10
ldrsh r0, [r2, r4]
movs r4, 0xC
ldrsh r1, [r2, r4]
adds r0, r1
lsls r0, 16
lsrs r4, r0, 16
strh r4, [r2, 0x10]
cmp r1, 0
bne _08073D34
lsls r2, r3, 16
b _08073D58
.align 2, 0
_08073D30: .4byte gTasks
_08073D34:
lsls r1, r6, 16
lsls r0, r3, 16
asrs r3, r0, 16
adds r2, r0, 0
cmp r1, r2
bge _08073D4A
lsls r0, r4, 16
asrs r0, 16
cmp r0, r3
blt _08073D54
b _08073D58
_08073D4A:
lsls r0, r4, 16
asrs r0, 16
cmp r0, r3
bgt _08073D54
movs r7, 0x1
_08073D54:
cmp r7, 0
beq _08073D68
_08073D58:
lsrs r4, r2, 16
adds r0, r5, 0
bl DestroyTask
ldr r1, _08073D78 @ =gUnknown_2037EE3
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
_08073D68:
lsls r0, r4, 24
asrs r0, 24
bl SE12PanpotControl
_08073D70:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08073D78: .4byte gUnknown_2037EE3
thumb_func_end Task_PanFromInitialToTarget
thumb_func_start ScriptCmd_panse_26
ScriptCmd_panse_26: @ 8073D7C
push {r4-r6,lr}
mov r6, r10
mov r5, r9
mov r4, r8
push {r4-r6}
ldr r0, _08073E00 @ =gUnknown_2037ED4
mov r9, r0
ldr r0, [r0]
adds r1, r0, 0x1
mov r2, r9
str r1, [r2]
ldrb r0, [r0, 0x1]
mov r8, r0
ldrb r0, [r1, 0x1]
lsls r0, 8
mov r2, r8
orrs r2, r0
mov r8, r2
ldrb r4, [r1, 0x2]
ldrb r5, [r1, 0x3]
ldrb r6, [r1, 0x4]
ldrb r1, [r1, 0x5]
mov r10, r1
ldr r0, _08073E04 @ =Task_PanFromInitialToTarget
movs r1, 0x1
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _08073E08 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
lsls r4, 24
asrs r4, 24
strh r4, [r1, 0x8]
lsls r5, 24
asrs r5, 24
strh r5, [r1, 0xA]
lsls r6, 24
asrs r6, 24
strh r6, [r1, 0xC]
mov r0, r10
strh r0, [r1, 0xE]
strh r4, [r1, 0x10]
mov r0, r8
adds r1, r4, 0
bl PlaySE12WithPanning
ldr r1, _08073E0C @ =gUnknown_2037EE3
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
mov r1, r9
ldr r0, [r1]
adds r0, 0x6
str r0, [r1]
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08073E00: .4byte gUnknown_2037ED4
_08073E04: .4byte Task_PanFromInitialToTarget
_08073E08: .4byte gTasks
_08073E0C: .4byte gUnknown_2037EE3
thumb_func_end ScriptCmd_panse_26
thumb_func_start ScriptCmd_panse_27
ScriptCmd_panse_27: @ 8073E10
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r0, _08073EC0 @ =gUnknown_2037ED4
mov r10, r0
ldr r0, [r0]
adds r1, r0, 0x1
mov r2, r10
str r1, [r2]
ldrb r0, [r0, 0x1]
mov r9, r0
ldrb r0, [r1, 0x1]
lsls r0, 8
mov r2, r9
orrs r2, r0
mov r9, r2
ldrb r4, [r1, 0x3]
ldrb r0, [r1, 0x4]
mov r8, r0
ldrb r7, [r1, 0x5]
movs r0, 0x2
ldrsb r0, [r1, r0]
bl sub_8073B08
adds r6, r0, 0
lsls r6, 24
lsrs r6, 24
lsls r4, 24
asrs r4, 24
adds r0, r4, 0
bl sub_8073B08
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
mov r1, r8
lsls r1, 24
asrs r1, 24
mov r8, r1
mov r0, r8
bl sub_8073B08
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, _08073EC4 @ =Task_PanFromInitialToTarget
movs r1, 0x1
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _08073EC8 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
lsls r6, 24
asrs r6, 24
strh r6, [r1, 0x8]
lsls r5, 24
asrs r5, 24
strh r5, [r1, 0xA]
lsls r4, 24
asrs r4, 24
strh r4, [r1, 0xC]
strh r7, [r1, 0xE]
strh r6, [r1, 0x10]
mov r0, r9
adds r1, r6, 0
bl PlaySE12WithPanning
ldr r1, _08073ECC @ =gUnknown_2037EE3
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
mov r2, r10
ldr r0, [r2]
adds r0, 0x6
str r0, [r2]
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08073EC0: .4byte gUnknown_2037ED4
_08073EC4: .4byte Task_PanFromInitialToTarget
_08073EC8: .4byte gTasks
_08073ECC: .4byte gUnknown_2037EE3
thumb_func_end ScriptCmd_panse_27
thumb_func_start ScriptCmd_loopsewithpan
ScriptCmd_loopsewithpan: @ 8073ED0
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
ldr r6, _08073F48 @ =gUnknown_2037ED4
ldr r0, [r6]
adds r1, r0, 0x1
str r1, [r6]
ldrb r5, [r0, 0x1]
ldrb r0, [r1, 0x1]
lsls r0, 8
orrs r5, r0
ldrb r0, [r1, 0x3]
mov r8, r0
ldrb r2, [r1, 0x4]
mov r9, r2
movs r0, 0x2
ldrsb r0, [r1, r0]
bl sub_8073A44
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, _08073F4C @ =Task_LoopAndPlaySE
movs r1, 0x1
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _08073F50 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r5, [r1, 0x8]
lsls r4, 24
asrs r4, 24
strh r4, [r1, 0xA]
mov r2, r8
strh r2, [r1, 0xC]
mov r2, r9
strh r2, [r1, 0xE]
mov r2, r8
strh r2, [r1, 0x18]
ldr r1, [r1]
bl _call_via_r1
ldr r1, _08073F54 @ =gUnknown_2037EE3
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
ldr r0, [r6]
adds r0, 0x5
str r0, [r6]
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08073F48: .4byte gUnknown_2037ED4
_08073F4C: .4byte Task_LoopAndPlaySE
_08073F50: .4byte gTasks
_08073F54: .4byte gUnknown_2037EE3
thumb_func_end ScriptCmd_loopsewithpan
thumb_func_start Task_LoopAndPlaySE
Task_LoopAndPlaySE: @ 8073F58
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r1, _08073FAC @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r2, r0, r1
ldrh r0, [r2, 0x18]
adds r1, r0, 0x1
strh r1, [r2, 0x18]
lsls r0, 16
asrs r0, 16
movs r3, 0xC
ldrsh r1, [r2, r3]
cmp r0, r1
blt _08073FA6
movs r0, 0
strh r0, [r2, 0x18]
ldrh r0, [r2, 0x8]
ldrb r1, [r2, 0xA]
ldrh r4, [r2, 0xE]
subs r4, 0x1
strh r4, [r2, 0xE]
lsls r4, 24
lsrs r4, 24
lsls r1, 24
asrs r1, 24
bl PlaySE12WithPanning
cmp r4, 0
bne _08073FA6
adds r0, r5, 0
bl DestroyTask
ldr r1, _08073FB0 @ =gUnknown_2037EE3
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
_08073FA6:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08073FAC: .4byte gTasks
_08073FB0: .4byte gUnknown_2037EE3
thumb_func_end Task_LoopAndPlaySE
thumb_func_start ScriptCmd_waitplaysewithpan
ScriptCmd_waitplaysewithpan: @ 8073FB4
push {r4-r6,lr}
mov r6, r8
push {r6}
ldr r6, _08074018 @ =gUnknown_2037ED4
ldr r0, [r6]
adds r1, r0, 0x1
str r1, [r6]
ldrb r5, [r0, 0x1]
ldrb r0, [r1, 0x1]
lsls r0, 8
orrs r5, r0
ldrb r0, [r1, 0x3]
mov r8, r0
movs r0, 0x2
ldrsb r0, [r1, r0]
bl sub_8073A44
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, _0807401C @ =Task_WaitAndPlaySE
movs r1, 0x1
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _08074020 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r5, [r1, 0x8]
lsls r4, 24
asrs r4, 24
strh r4, [r1, 0xA]
mov r0, r8
strh r0, [r1, 0xC]
ldr r1, _08074024 @ =gUnknown_2037EE3
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
ldr r0, [r6]
adds r0, 0x4
str r0, [r6]
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08074018: .4byte gUnknown_2037ED4
_0807401C: .4byte Task_WaitAndPlaySE
_08074020: .4byte gTasks
_08074024: .4byte gUnknown_2037EE3
thumb_func_end ScriptCmd_waitplaysewithpan
thumb_func_start Task_WaitAndPlaySE
Task_WaitAndPlaySE: @ 8074028
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _08074064 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r2, r0, r1
ldrh r0, [r2, 0xC]
subs r1, r0, 0x1
strh r1, [r2, 0xC]
lsls r0, 16
cmp r0, 0
bgt _0807405C
ldrh r0, [r2, 0x8]
movs r1, 0xA
ldrsb r1, [r2, r1]
bl PlaySE12WithPanning
adds r0, r4, 0
bl DestroyTask
ldr r1, _08074068 @ =gUnknown_2037EE3
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
_0807405C:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08074064: .4byte gTasks
_08074068: .4byte gUnknown_2037EE3
thumb_func_end Task_WaitAndPlaySE
thumb_func_start ScriptCmd_createsoundtask
ScriptCmd_createsoundtask: @ 807406C
push {r4-r6,lr}
ldr r4, _080740D4 @ =gUnknown_2037ED4
ldr r1, [r4]
adds r3, r1, 0x1
str r3, [r4]
ldrb r2, [r1, 0x1]
ldrb r0, [r3, 0x1]
lsls r0, 8
adds r2, r0
ldrb r0, [r3, 0x2]
lsls r0, 16
adds r2, r0
ldrb r0, [r3, 0x3]
lsls r0, 24
adds r6, r2, r0
adds r0, r1, 0x5
str r0, [r4]
ldrb r0, [r1, 0x5]
adds r1, 0x6
str r1, [r4]
cmp r0, 0
beq _080740B6
adds r5, r4, 0
ldr r4, _080740D8 @ =gUnknown_2037F02
adds r3, r0, 0
_0807409E:
ldr r2, [r5]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
lsls r0, 8
orrs r1, r0
strh r1, [r4]
adds r2, 0x2
str r2, [r5]
adds r4, 0x2
subs r3, 0x1
cmp r3, 0
bne _0807409E
_080740B6:
adds r0, r6, 0
movs r1, 0x1
bl CreateTask
lsls r0, 24
lsrs r0, 24
bl _call_via_r6
ldr r1, _080740DC @ =gUnknown_2037EE3
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080740D4: .4byte gUnknown_2037ED4
_080740D8: .4byte gUnknown_2037F02
_080740DC: .4byte gUnknown_2037EE3
thumb_func_end ScriptCmd_createsoundtask
thumb_func_start ScriptCmd_waitsound
ScriptCmd_waitsound: @ 80740E0
push {r4,r5,lr}
ldr r0, _08074118 @ =gUnknown_2037EE3
ldrb r5, [r0]
cmp r5, 0
bne _08074128
bl IsSEPlaying
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
beq _08074140
ldr r4, _0807411C @ =gUnknown_2037F12
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
lsls r0, 16
lsrs r0, 16
cmp r0, 0x5A
bls _0807412E
ldr r0, _08074120 @ =gMPlayInfo_SE1
bl m4aMPlayStop
ldr r0, _08074124 @ =gMPlayInfo_SE2
bl m4aMPlayStop
strh r5, [r4]
b _08074152
.align 2, 0
_08074118: .4byte gUnknown_2037EE3
_0807411C: .4byte gUnknown_2037F12
_08074120: .4byte gMPlayInfo_SE1
_08074124: .4byte gMPlayInfo_SE2
_08074128:
ldr r1, _08074138 @ =gUnknown_2037F12
movs r0, 0
strh r0, [r1]
_0807412E:
ldr r1, _0807413C @ =gUnknown_2037EE0
movs r0, 0x1
strb r0, [r1]
b _08074152
.align 2, 0
_08074138: .4byte gUnknown_2037F12
_0807413C: .4byte gUnknown_2037EE0
_08074140:
ldr r0, _08074158 @ =gUnknown_2037F12
movs r2, 0
strh r1, [r0]
ldr r1, _0807415C @ =gUnknown_2037ED4
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
ldr r0, _08074160 @ =gUnknown_2037EE0
strb r2, [r0]
_08074152:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08074158: .4byte gUnknown_2037F12
_0807415C: .4byte gUnknown_2037ED4
_08074160: .4byte gUnknown_2037EE0
thumb_func_end ScriptCmd_waitsound
thumb_func_start ScriptCmd_jumpargeq
ScriptCmd_jumpargeq: @ 8074164
push {r4-r6,lr}
ldr r5, _080741A4 @ =gUnknown_2037ED4
ldr r4, [r5]
adds r3, r4, 0x1
str r3, [r5]
ldrb r2, [r4, 0x1]
ldrb r1, [r3, 0x1]
ldrb r0, [r3, 0x2]
lsls r0, 8
orrs r1, r0
ldr r0, _080741A8 @ =gUnknown_2037F02
lsls r2, 1
adds r2, r0
lsls r1, 16
asrs r1, 16
movs r6, 0
ldrsh r0, [r2, r6]
cmp r1, r0
bne _080741AC
ldrb r1, [r3, 0x3]
ldrb r0, [r3, 0x4]
lsls r0, 8
adds r1, r0
ldrb r0, [r3, 0x5]
lsls r0, 16
adds r1, r0
ldrb r0, [r3, 0x6]
lsls r0, 24
adds r1, r0
str r1, [r5]
b _080741B2
.align 2, 0
_080741A4: .4byte gUnknown_2037ED4
_080741A8: .4byte gUnknown_2037F02
_080741AC:
adds r0, r4, 0
adds r0, 0x8
str r0, [r5]
_080741B2:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end ScriptCmd_jumpargeq
thumb_func_start sub_80741B8
sub_80741B8: @ 80741B8
ldr r1, _080741C4 @ =gUnknown_2037ED4
ldr r0, [r1]
adds r0, 0x5
str r0, [r1]
bx lr
.align 2, 0
_080741C4: .4byte gUnknown_2037ED4
thumb_func_end sub_80741B8
thumb_func_start sub_80741C8
sub_80741C8: @ 80741C8
push {lr}
ldr r0, _080741DC @ =gUnknown_2037ED4
ldr r1, [r0]
ldrb r2, [r1, 0x1]
adds r1, 0x2
str r1, [r0]
cmp r2, 0
beq _080741E4
ldr r0, _080741E0 @ =gUnknown_2037F1B
b _080741E6
.align 2, 0
_080741DC: .4byte gUnknown_2037ED4
_080741E0: .4byte gUnknown_2037F1B
_080741E4:
ldr r0, _08074210 @ =gUnknown_2037F1A
_080741E6:
ldrb r0, [r0]
bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0
beq _080741F8
cmp r0, 0x3
bne _0807420C
_080741F8:
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
bl SetAnimBgAttribute
movs r0, 0x2
movs r1, 0x4
movs r2, 0x2
bl SetAnimBgAttribute
_0807420C:
pop {r0}
bx r0
.align 2, 0
_08074210: .4byte gUnknown_2037F1A
thumb_func_end sub_80741C8
thumb_func_start sub_8074214
sub_8074214: @ 8074214
push {lr}
ldr r1, _08074238 @ =gUnknown_2037ED4
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
bl SetAnimBgAttribute
movs r0, 0x2
movs r1, 0x4
movs r2, 0x2
bl SetAnimBgAttribute
pop {r0}
bx r0
.align 2, 0
_08074238: .4byte gUnknown_2037ED4
thumb_func_end sub_8074214
thumb_func_start sub_807423C
sub_807423C: @ 807423C
push {r4-r7,lr}
ldr r1, _0807426C @ =gUnknown_2037ED4
ldr r0, [r1]
ldrb r6, [r0, 0x1]
adds r0, 0x2
str r0, [r1]
ldr r7, _08074270 @ =gUnknown_2037F1A
ldrb r0, [r7]
bl GetBattlerSide
adds r4, r0, 0
ldr r5, _08074274 @ =gUnknown_2037F1B
ldrb r0, [r5]
bl GetBattlerSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
beq _0807429E
cmp r6, 0
beq _08074278
ldrb r0, [r5]
b _0807427A
.align 2, 0
_0807426C: .4byte gUnknown_2037ED4
_08074270: .4byte gUnknown_2037F1A
_08074274: .4byte gUnknown_2037F1B
_08074278:
ldrb r0, [r7]
_0807427A:
bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0
beq _0807428A
cmp r0, 0x3
bne _0807429E
_0807428A:
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
bl SetAnimBgAttribute
movs r0, 0x2
movs r1, 0x4
movs r2, 0x2
bl SetAnimBgAttribute
_0807429E:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_807423C
thumb_func_start ScriptCmd_invisible
ScriptCmd_invisible: @ 80742A4
push {r4,lr}
ldr r4, _080742D8 @ =gUnknown_2037ED4
ldr r0, [r4]
ldrb r0, [r0, 0x1]
bl GetAnimBankSpriteId
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xFF
beq _080742CC
ldr r1, _080742DC @ =gSprites
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r0, r1
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
_080742CC:
ldr r0, [r4]
adds r0, 0x2
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080742D8: .4byte gUnknown_2037ED4
_080742DC: .4byte gSprites
thumb_func_end ScriptCmd_invisible
thumb_func_start ScriptCmd_visible
ScriptCmd_visible: @ 80742E0
push {r4,lr}
ldr r4, _08074318 @ =gUnknown_2037ED4
ldr r0, [r4]
ldrb r0, [r0, 0x1]
bl GetAnimBankSpriteId
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xFF
beq _0807430A
ldr r1, _0807431C @ =gSprites
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r0, r1
adds r0, 0x3E
ldrb r2, [r0]
movs r1, 0x5
negs r1, r1
ands r1, r2
strb r1, [r0]
_0807430A:
ldr r0, [r4]
adds r0, 0x2
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08074318: .4byte gUnknown_2037ED4
_0807431C: .4byte gSprites
thumb_func_end ScriptCmd_visible
thumb_func_start sub_8074320
sub_8074320: @ 8074320
push {r4-r7,lr}
ldr r1, _08074364 @ =gUnknown_2037ED4
ldr r0, [r1]
ldrb r7, [r0, 0x1]
adds r0, 0x2
str r0, [r1]
bl sub_8075290
lsls r0, 24
cmp r0, 0
beq _080743C2
ldr r6, _08074368 @ =gUnknown_2037F1A
ldrb r0, [r6]
bl GetBattlerSide
adds r4, r0, 0
ldr r5, _0807436C @ =gUnknown_2037F1B
ldrb r0, [r5]
bl GetBattlerSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
bne _080743C2
cmp r7, 0
bne _08074370
ldrb r0, [r6]
bl sub_80768B0
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0
b _0807437C
.align 2, 0
_08074364: .4byte gUnknown_2037ED4
_08074368: .4byte gUnknown_2037F1A
_0807436C: .4byte gUnknown_2037F1B
_08074370:
ldrb r0, [r5]
bl sub_80768B0
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x1
_0807437C:
bl GetAnimBankSpriteId
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xFF
beq _080743C2
ldr r1, _080743B8 @ =gSprites
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r2, r0, r1
adds r3, r2, 0
adds r3, 0x3E
ldrb r1, [r3]
movs r0, 0x5
negs r0, r0
ands r0, r1
strb r0, [r3]
cmp r4, 0x2
bne _080743AC
ldrb r0, [r2, 0x5]
movs r1, 0xC
orrs r0, r1
strb r0, [r2, 0x5]
_080743AC:
cmp r4, 0x1
bne _080743BC
movs r0, 0
bl sub_8073128
b _080743C2
.align 2, 0
_080743B8: .4byte gSprites
_080743BC:
movs r0, 0x1
bl sub_8073128
_080743C2:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8074320
thumb_func_start sub_80743C8
sub_80743C8: @ 80743C8
push {r4-r7,lr}
ldr r1, _0807440C @ =gUnknown_2037ED4
ldr r0, [r1]
ldrb r7, [r0, 0x1]
adds r0, 0x2
str r0, [r1]
bl sub_8075290
lsls r0, 24
cmp r0, 0
beq _0807444C
ldr r6, _08074410 @ =gUnknown_2037F1A
ldrb r0, [r6]
bl GetBattlerSide
adds r4, r0, 0
ldr r5, _08074414 @ =gUnknown_2037F1B
ldrb r0, [r5]
bl GetBattlerSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
bne _0807444C
cmp r7, 0
bne _08074418
ldrb r0, [r6]
bl sub_80768B0
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0
b _08074424
.align 2, 0
_0807440C: .4byte gUnknown_2037ED4
_08074410: .4byte gUnknown_2037F1A
_08074414: .4byte gUnknown_2037F1B
_08074418:
ldrb r0, [r5]
bl sub_80768B0
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x1
_08074424:
bl GetAnimBankSpriteId
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xFF
beq _0807444C
cmp r4, 0x2
bne _0807444C
ldr r1, _08074454 @ =gSprites
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r0, r1
ldrb r2, [r0, 0x5]
movs r1, 0xD
negs r1, r1
ands r1, r2
movs r2, 0x8
orrs r1, r2
strb r1, [r0, 0x5]
_0807444C:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08074454: .4byte gSprites
thumb_func_end sub_80743C8
thumb_func_start sub_8074458
sub_8074458: @ 8074458
push {lr}
ldr r0, _08074474 @ =gMPlayInfo_SE1
bl m4aMPlayStop
ldr r0, _08074478 @ =gMPlayInfo_SE2
bl m4aMPlayStop
ldr r1, _0807447C @ =gUnknown_2037ED4
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
_08074474: .4byte gMPlayInfo_SE1
_08074478: .4byte gMPlayInfo_SE2
_0807447C: .4byte gUnknown_2037ED4
thumb_func_end sub_8074458
.align 2, 0 @ Don't pad with nop.