mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-19 11:36:51 -05:00
3607 lines
63 KiB
ArmAsm
3607 lines
63 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start AllocateBattleSpritesData
|
|
AllocateBattleSpritesData: @ 8033DB8
|
|
push {r4,lr}
|
|
ldr r4, _08033DF4 @ =gUnknown_2024018
|
|
movs r0, 0x10
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
movs r0, 0x10
|
|
bl AllocZeroed
|
|
ldr r1, [r4]
|
|
str r0, [r1]
|
|
movs r0, 0x30
|
|
bl AllocZeroed
|
|
ldr r1, [r4]
|
|
str r0, [r1, 0x4]
|
|
movs r0, 0x10
|
|
bl AllocZeroed
|
|
ldr r1, [r4]
|
|
str r0, [r1, 0x8]
|
|
movs r0, 0x50
|
|
bl AllocZeroed
|
|
ldr r1, [r4]
|
|
str r0, [r1, 0xC]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08033DF4: .4byte gUnknown_2024018
|
|
thumb_func_end AllocateBattleSpritesData
|
|
|
|
thumb_func_start FreeBattleSpritesData
|
|
FreeBattleSpritesData: @ 8033DF8
|
|
push {r4,r5,lr}
|
|
ldr r5, _08033E38 @ =gUnknown_2024018
|
|
ldr r0, [r5]
|
|
cmp r0, 0
|
|
beq _08033E32
|
|
ldr r0, [r0, 0xC]
|
|
bl Free
|
|
ldr r0, [r5]
|
|
movs r4, 0
|
|
str r4, [r0, 0xC]
|
|
ldr r0, [r0, 0x8]
|
|
bl Free
|
|
ldr r0, [r5]
|
|
str r4, [r0, 0x8]
|
|
ldr r0, [r0, 0x4]
|
|
bl Free
|
|
ldr r0, [r5]
|
|
str r4, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
bl Free
|
|
ldr r0, [r5]
|
|
str r4, [r0]
|
|
bl Free
|
|
str r4, [r5]
|
|
_08033E32:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08033E38: .4byte gUnknown_2024018
|
|
thumb_func_end FreeBattleSpritesData
|
|
|
|
thumb_func_start sub_8033E3C
|
|
sub_8033E3C: @ 8033E3C
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
ldrh r0, [r6, 0x30]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r7, _08033E80 @ =gSprites
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r5, r1, 2
|
|
adds r3, r5, r7
|
|
adds r0, r3, 0
|
|
adds r0, 0x3F
|
|
ldrb r4, [r0]
|
|
lsls r0, r4, 26
|
|
cmp r0, 0
|
|
bge _08033EA0
|
|
adds r0, r3, 0
|
|
adds r0, 0x3E
|
|
ldrb r0, [r0]
|
|
lsls r0, 29
|
|
cmp r0, 0
|
|
blt _08033EA0
|
|
adds r1, r3, 0
|
|
adds r1, 0x2C
|
|
ldrb r2, [r1]
|
|
lsls r0, r2, 25
|
|
cmp r0, 0
|
|
bge _08033E84
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
b _08033EA0
|
|
.align 2, 0
|
|
_08033E80: .4byte gSprites
|
|
_08033E84:
|
|
lsls r0, r4, 27
|
|
cmp r0, 0
|
|
bge _08033EA0
|
|
adds r0, r7, 0
|
|
adds r0, 0x1C
|
|
adds r0, r5, r0
|
|
ldr r1, _08033EA8 @ =sub_8012100
|
|
str r1, [r0]
|
|
adds r0, r3, 0
|
|
movs r1, 0
|
|
bl StartSpriteAffineAnim
|
|
ldr r0, _08033EAC @ =SpriteCallbackDummy
|
|
str r0, [r6, 0x1C]
|
|
_08033EA0:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08033EA8: .4byte sub_8012100
|
|
_08033EAC: .4byte SpriteCallbackDummy
|
|
thumb_func_end sub_8033E3C
|
|
|
|
thumb_func_start sub_8033EB0
|
|
sub_8033EB0: @ 8033EB0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r1, 24
|
|
adds r3, r4, 0
|
|
adds r3, 0x2C
|
|
ldrb r0, [r3]
|
|
movs r2, 0x40
|
|
orrs r0, r2
|
|
strb r0, [r3]
|
|
ldr r0, _08033ED4 @ =SpriteCallbackDummy
|
|
str r0, [r4, 0x1C]
|
|
cmp r1, 0
|
|
bne _08033ED8
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
b _08033EE0
|
|
.align 2, 0
|
|
_08033ED4: .4byte SpriteCallbackDummy
|
|
_08033ED8:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
_08033EE0:
|
|
adds r0, r4, 0
|
|
bl AnimateSprite
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8033EB0
|
|
|
|
thumb_func_start sub_8033EEC
|
|
sub_8033EEC: @ 8033EEC
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldr r0, _08033F14 @ =gUnknown_2023F4C
|
|
ldrh r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08033F0E
|
|
ldrh r0, [r2, 0x2E]
|
|
ldrh r1, [r2, 0x24]
|
|
adds r0, r1
|
|
strh r0, [r2, 0x24]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _08033F0E
|
|
ldr r0, _08033F18 @ =SpriteCallbackDummy
|
|
str r0, [r2, 0x1C]
|
|
_08033F0E:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08033F14: .4byte gUnknown_2023F4C
|
|
_08033F18: .4byte SpriteCallbackDummy
|
|
thumb_func_end sub_8033EEC
|
|
|
|
thumb_func_start InitAndLaunchChosenStatusAnimation
|
|
InitAndLaunchChosenStatusAnimation: @ 8033F1C
|
|
push {r4-r6,lr}
|
|
adds r4, r1, 0
|
|
lsls r0, 24
|
|
ldr r6, _08033F50 @ =gUnknown_2024018
|
|
ldr r1, [r6]
|
|
ldr r5, _08033F54 @ =gActiveBattler
|
|
ldrb r2, [r5]
|
|
ldr r3, [r1, 0x4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
ldrb r2, [r1]
|
|
movs r3, 0x10
|
|
orrs r2, r3
|
|
strb r2, [r1]
|
|
cmp r0, 0
|
|
bne _08033F9C
|
|
cmp r4, 0x20
|
|
bne _08033F58
|
|
ldrb r0, [r5]
|
|
movs r1, 0x6
|
|
bl LaunchStatusAnimation
|
|
b _08034016
|
|
.align 2, 0
|
|
_08033F50: .4byte gUnknown_2024018
|
|
_08033F54: .4byte gActiveBattler
|
|
_08033F58:
|
|
cmp r4, 0x8
|
|
beq _08033F64
|
|
movs r0, 0x80
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08033F6E
|
|
_08033F64:
|
|
ldrb r0, [r5]
|
|
movs r1, 0
|
|
bl LaunchStatusAnimation
|
|
b _08034016
|
|
_08033F6E:
|
|
cmp r4, 0x10
|
|
bne _08033F7C
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl LaunchStatusAnimation
|
|
b _08034016
|
|
_08033F7C:
|
|
movs r0, 0x7
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08033F8E
|
|
ldrb r0, [r5]
|
|
movs r1, 0x4
|
|
bl LaunchStatusAnimation
|
|
b _08034016
|
|
_08033F8E:
|
|
cmp r4, 0x40
|
|
bne _08033FFE
|
|
ldrb r0, [r5]
|
|
movs r1, 0x5
|
|
bl LaunchStatusAnimation
|
|
b _08034016
|
|
_08033F9C:
|
|
movs r0, 0xF0
|
|
lsls r0, 12
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08033FB0
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl LaunchStatusAnimation
|
|
b _08034016
|
|
_08033FB0:
|
|
movs r0, 0x7
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08033FC2
|
|
ldrb r0, [r5]
|
|
movs r1, 0x1
|
|
bl LaunchStatusAnimation
|
|
b _08034016
|
|
_08033FC2:
|
|
movs r0, 0x80
|
|
lsls r0, 21
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08033FD6
|
|
ldrb r0, [r5]
|
|
movs r1, 0x7
|
|
bl LaunchStatusAnimation
|
|
b _08034016
|
|
_08033FD6:
|
|
movs r0, 0x80
|
|
lsls r0, 20
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08033FEA
|
|
ldrb r0, [r5]
|
|
movs r1, 0x8
|
|
bl LaunchStatusAnimation
|
|
b _08034016
|
|
_08033FEA:
|
|
movs r0, 0xE0
|
|
lsls r0, 8
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08033FFE
|
|
ldrb r0, [r5]
|
|
movs r1, 0x9
|
|
bl LaunchStatusAnimation
|
|
b _08034016
|
|
_08033FFE:
|
|
ldr r0, [r6]
|
|
ldrb r2, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1]
|
|
movs r0, 0x11
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
_08034016:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end InitAndLaunchChosenStatusAnimation
|
|
|
|
thumb_func_start TryHandleLaunchBattleTableAnimation
|
|
TryHandleLaunchBattleTableAnimation: @ 803401C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
ldr r4, [sp, 0x24]
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r10, r1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
str r2, [sp]
|
|
lsls r3, 24
|
|
lsrs r5, r3, 24
|
|
lsls r4, 16
|
|
lsrs r7, r4, 16
|
|
cmp r5, 0
|
|
bne _08034064
|
|
movs r0, 0x80
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
beq _08034064
|
|
ldr r0, _08034060 @ =gBattleMonForms
|
|
adds r0, r6, r0
|
|
movs r2, 0x7F
|
|
adds r1, r7, 0
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
movs r0, 0x1
|
|
b _08034132
|
|
.align 2, 0
|
|
_08034060: .4byte gBattleMonForms
|
|
_08034064:
|
|
ldr r0, _08034090 @ =gUnknown_2024018
|
|
mov r9, r0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
lsls r4, r6, 2
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
mov r8, r2
|
|
mov r0, r8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080340E0
|
|
adds r0, r5, 0
|
|
bl ShouldAnimBeDoneRegardlessOfSubsitute
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08034094
|
|
movs r0, 0x1
|
|
b _08034132
|
|
.align 2, 0
|
|
_08034090: .4byte gUnknown_2024018
|
|
_08034094:
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldr r0, [r0]
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
mov r0, r8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080340E0
|
|
cmp r5, 0x2
|
|
bne _080340E0
|
|
ldr r1, _080340D8 @ =gSprites
|
|
ldr r0, _080340DC @ =gUnknown_2023D44
|
|
adds r0, r6, r0
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
adds r0, 0x3E
|
|
ldrb r0, [r0]
|
|
lsls r0, 29
|
|
cmp r0, 0
|
|
bge _080340E0
|
|
adds r0, r6, 0
|
|
movs r1, 0x1
|
|
bl LoadBattleMonGfxAndAnimate
|
|
adds r0, r6, 0
|
|
bl ClearBehindSubstituteBit
|
|
movs r0, 0x1
|
|
b _08034132
|
|
.align 2, 0
|
|
_080340D8: .4byte gSprites
|
|
_080340DC: .4byte gUnknown_2023D44
|
|
_080340E0:
|
|
ldr r0, _08034144 @ =gUnknown_2037F1A
|
|
mov r2, r10
|
|
strb r2, [r0]
|
|
ldr r0, _08034148 @ =gUnknown_2037F1B
|
|
mov r1, sp
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
ldr r4, _0803414C @ =gUnknown_2024018
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x8]
|
|
strh r7, [r0]
|
|
ldr r0, _08034150 @ =gUnknown_81C6EA8
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl sub_80725D4
|
|
ldr r0, _08034154 @ =Task_ClearBitWhenBattleTableAnimDone
|
|
movs r1, 0xA
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _08034158 @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
strh r6, [r1, 0x8]
|
|
ldr r0, [r4]
|
|
movs r2, 0x8
|
|
ldrsh r1, [r1, r2]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, 0x20
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
movs r0, 0
|
|
_08034132:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08034144: .4byte gUnknown_2037F1A
|
|
_08034148: .4byte gUnknown_2037F1B
|
|
_0803414C: .4byte gUnknown_2024018
|
|
_08034150: .4byte gUnknown_81C6EA8
|
|
_08034154: .4byte Task_ClearBitWhenBattleTableAnimDone
|
|
_08034158: .4byte gTasks
|
|
thumb_func_end TryHandleLaunchBattleTableAnimation
|
|
|
|
thumb_func_start Task_ClearBitWhenBattleTableAnimDone
|
|
Task_ClearBitWhenBattleTableAnimDone: @ 803415C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _080341A4 @ =gUnknown_2037EDC
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
ldr r0, _080341A8 @ =gUnknown_2037EE1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0803419E
|
|
ldr r0, _080341AC @ =gUnknown_2024018
|
|
ldr r2, [r0]
|
|
ldr r1, _080341B0 @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r0, r1]
|
|
ldr r2, [r2, 0x4]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r2, [r1]
|
|
movs r0, 0x21
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
_0803419E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080341A4: .4byte gUnknown_2037EDC
|
|
_080341A8: .4byte gUnknown_2037EE1
|
|
_080341AC: .4byte gUnknown_2024018
|
|
_080341B0: .4byte gTasks
|
|
thumb_func_end Task_ClearBitWhenBattleTableAnimDone
|
|
|
|
thumb_func_start ShouldAnimBeDoneRegardlessOfSubsitute
|
|
ShouldAnimBeDoneRegardlessOfSubsitute: @ 80341B4
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xD
|
|
bgt _080341C8
|
|
cmp r0, 0xA
|
|
bge _080341CC
|
|
cmp r0, 0x2
|
|
beq _080341CC
|
|
b _080341D0
|
|
_080341C8:
|
|
cmp r0, 0x11
|
|
bne _080341D0
|
|
_080341CC:
|
|
movs r0, 0x1
|
|
b _080341D2
|
|
_080341D0:
|
|
movs r0, 0
|
|
_080341D2:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end ShouldAnimBeDoneRegardlessOfSubsitute
|
|
|
|
thumb_func_start InitAndLaunchSpecialAnimation
|
|
InitAndLaunchSpecialAnimation: @ 80341D8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
ldr r0, _08034230 @ =gUnknown_2037F1A
|
|
strb r1, [r0]
|
|
ldr r0, _08034234 @ =gUnknown_2037F1B
|
|
strb r2, [r0]
|
|
ldr r0, _08034238 @ =gUnknown_81C6F18
|
|
adds r1, r3, 0
|
|
movs r2, 0
|
|
bl sub_80725D4
|
|
ldr r0, _0803423C @ =Task_ClearBitWhenSpecialAnimDone
|
|
movs r1, 0xA
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _08034240 @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
strh r4, [r1, 0x8]
|
|
ldr r0, _08034244 @ =gUnknown_2024018
|
|
ldr r0, [r0]
|
|
movs r2, 0x8
|
|
ldrsh r1, [r1, r2]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, 0x40
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08034230: .4byte gUnknown_2037F1A
|
|
_08034234: .4byte gUnknown_2037F1B
|
|
_08034238: .4byte gUnknown_81C6F18
|
|
_0803423C: .4byte Task_ClearBitWhenSpecialAnimDone
|
|
_08034240: .4byte gTasks
|
|
_08034244: .4byte gUnknown_2024018
|
|
thumb_func_end InitAndLaunchSpecialAnimation
|
|
|
|
thumb_func_start Task_ClearBitWhenSpecialAnimDone
|
|
Task_ClearBitWhenSpecialAnimDone: @ 8034248
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _08034290 @ =gUnknown_2037EDC
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
ldr r0, _08034294 @ =gUnknown_2037EE1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0803428A
|
|
ldr r0, _08034298 @ =gUnknown_2024018
|
|
ldr r2, [r0]
|
|
ldr r1, _0803429C @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r0, r1]
|
|
ldr r2, [r2, 0x4]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r2, [r1]
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
_0803428A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08034290: .4byte gUnknown_2037EDC
|
|
_08034294: .4byte gUnknown_2037EE1
|
|
_08034298: .4byte gUnknown_2024018
|
|
_0803429C: .4byte gTasks
|
|
thumb_func_end Task_ClearBitWhenSpecialAnimDone
|
|
|
|
thumb_func_start IsMoveWithoutAnimation
|
|
IsMoveWithoutAnimation: @ 80342A0
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end IsMoveWithoutAnimation
|
|
|
|
thumb_func_start mplay_80342A4
|
|
mplay_80342A4: @ 80342A4
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r5, 0
|
|
bl IsSEPlaying
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080342EC
|
|
ldr r2, _080342F4 @ =gUnknown_2024018
|
|
ldr r0, [r2]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r4, 1
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x8]
|
|
adds r1, 0x1
|
|
strb r1, [r0, 0x8]
|
|
ldr r2, [r2]
|
|
ldr r0, _080342F8 @ =gActiveBattler
|
|
ldrb r1, [r0]
|
|
ldr r2, [r2, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x8]
|
|
cmp r0, 0x1D
|
|
bls _080342F0
|
|
ldr r0, _080342FC @ =gMPlayInfo_SE1
|
|
bl m4aMPlayStop
|
|
ldr r0, _08034300 @ =gMPlayInfo_SE2
|
|
bl m4aMPlayStop
|
|
_080342EC:
|
|
cmp r5, 0
|
|
beq _08034304
|
|
_080342F0:
|
|
movs r0, 0x1
|
|
b _08034316
|
|
.align 2, 0
|
|
_080342F4: .4byte gUnknown_2024018
|
|
_080342F8: .4byte gActiveBattler
|
|
_080342FC: .4byte gMPlayInfo_SE1
|
|
_08034300: .4byte gMPlayInfo_SE2
|
|
_08034304:
|
|
ldr r0, _0803431C @ =gUnknown_2024018
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r4, 1
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
strb r5, [r0, 0x8]
|
|
movs r0, 0
|
|
_08034316:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0803431C: .4byte gUnknown_2024018
|
|
thumb_func_end mplay_80342A4
|
|
|
|
thumb_func_start BattleLoadOpponentMonSpriteGfx
|
|
BattleLoadOpponentMonSpriteGfx: @ 8034320
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r8, r1
|
|
movs r1, 0
|
|
bl GetMonData
|
|
str r0, [sp]
|
|
ldr r0, _08034360 @ =gUnknown_2024018
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
mov r2, r8
|
|
lsls r1, r2, 2
|
|
adds r2, r1, r0
|
|
ldrh r0, [r2, 0x2]
|
|
cmp r0, 0
|
|
bne _08034364
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
ldr r6, [sp]
|
|
b _0803436C
|
|
.align 2, 0
|
|
_08034360: .4byte gUnknown_2024018
|
|
_08034364:
|
|
ldrh r5, [r2, 0x2]
|
|
ldr r0, _080343C0 @ =gUnknown_2024008
|
|
adds r0, r1, r0
|
|
ldr r6, [r0]
|
|
_0803436C:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl GetMonData
|
|
mov r10, r0
|
|
mov r0, r8
|
|
bl GetBattlerPosition
|
|
lsls r0, 24
|
|
lsls r2, r5, 3
|
|
ldr r1, _080343C4 @ =gUnknown_82350AC
|
|
adds r2, r1
|
|
ldr r1, _080343C8 @ =gMonSpritesGfxPtr
|
|
ldr r1, [r1]
|
|
lsrs r0, 22
|
|
adds r1, 0x4
|
|
adds r1, r0
|
|
ldr r1, [r1]
|
|
adds r0, r2, 0
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl HandleLoadSpecialPokePic_DontHandleDeoxys
|
|
mov r3, r8
|
|
lsls r2, r3, 4
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
adds r7, r2, r0
|
|
ldr r0, _080343CC @ =gUnknown_2024018
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
lsls r1, r3, 2
|
|
adds r0, r1, r0
|
|
ldrh r0, [r0, 0x2]
|
|
str r1, [sp, 0x4]
|
|
mov r9, r2
|
|
cmp r0, 0
|
|
bne _080343D0
|
|
adds r0, r4, 0
|
|
bl GetMonFrontSpritePal
|
|
b _080343DA
|
|
.align 2, 0
|
|
_080343C0: .4byte gUnknown_2024008
|
|
_080343C4: .4byte gUnknown_82350AC
|
|
_080343C8: .4byte gMonSpritesGfxPtr
|
|
_080343CC: .4byte gUnknown_2024018
|
|
_080343D0:
|
|
adds r0, r5, 0
|
|
mov r1, r10
|
|
ldr r2, [sp]
|
|
bl GetFrontSpritePalFromSpeciesAndPersonality
|
|
_080343DA:
|
|
adds r6, r0, 0
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
bl AllocZeroed
|
|
adds r4, r0, 0
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl LZDecompressWram
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
mov r1, r9
|
|
adds r1, 0x80
|
|
adds r0, r4, 0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
adds r0, r4, 0
|
|
bl Free
|
|
ldr r0, _08034478 @ =0x00000181
|
|
cmp r5, r0
|
|
bne _0803443C
|
|
movs r7, 0x80
|
|
lsls r7, 1
|
|
add r7, r9
|
|
ldr r5, _0803447C @ =gBattleStruct
|
|
ldr r1, [r5]
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
adds r1, r4
|
|
adds r0, r6, 0
|
|
bl LZDecompressWram
|
|
ldr r0, _08034480 @ =gBattleMonForms
|
|
add r0, r8
|
|
ldrb r1, [r0]
|
|
lsls r1, 5
|
|
adds r1, r4
|
|
ldr r0, [r5]
|
|
adds r0, r1
|
|
adds r1, r7, 0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
_0803443C:
|
|
ldr r0, _08034484 @ =gUnknown_2024018
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
ldr r1, [sp, 0x4]
|
|
adds r0, r1, r0
|
|
ldrh r0, [r0, 0x2]
|
|
cmp r0, 0
|
|
beq _08034468
|
|
ldr r3, _08034488 @ =0x00007fff
|
|
adds r0, r7, 0
|
|
movs r1, 0x10
|
|
movs r2, 0x6
|
|
bl BlendPalette
|
|
lsls r1, r7, 1
|
|
ldr r0, _0803448C @ =gPlttBufferFaded
|
|
adds r0, r1, r0
|
|
ldr r2, _08034490 @ =gPlttBufferUnfaded
|
|
adds r1, r2
|
|
ldr r2, _08034494 @ =0x04000008
|
|
bl CpuSet
|
|
_08034468:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08034478: .4byte 0x00000181
|
|
_0803447C: .4byte gBattleStruct
|
|
_08034480: .4byte gBattleMonForms
|
|
_08034484: .4byte gUnknown_2024018
|
|
_08034488: .4byte 0x00007fff
|
|
_0803448C: .4byte gPlttBufferFaded
|
|
_08034490: .4byte gPlttBufferUnfaded
|
|
_08034494: .4byte 0x04000008
|
|
thumb_func_end BattleLoadOpponentMonSpriteGfx
|
|
|
|
thumb_func_start sub_8034498
|
|
sub_8034498: @ 8034498
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
adds r6, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r8, r1
|
|
movs r1, 0
|
|
bl GetMonData
|
|
str r0, [sp]
|
|
ldr r0, _080344D8 @ =gUnknown_2024018
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
mov r2, r8
|
|
lsls r1, r2, 2
|
|
adds r2, r1, r0
|
|
ldrh r0, [r2, 0x2]
|
|
cmp r0, 0
|
|
bne _080344DC
|
|
adds r0, r6, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
ldr r4, [sp]
|
|
b _080344E4
|
|
.align 2, 0
|
|
_080344D8: .4byte gUnknown_2024018
|
|
_080344DC:
|
|
ldrh r5, [r2, 0x2]
|
|
ldr r0, _08034538 @ =gUnknown_2024008
|
|
adds r0, r1, r0
|
|
ldr r4, [r0]
|
|
_080344E4:
|
|
adds r0, r6, 0
|
|
movs r1, 0x1
|
|
bl GetMonData
|
|
str r0, [sp, 0x4]
|
|
mov r0, r8
|
|
bl GetBattlerPosition
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
movs r0, 0x1
|
|
mov r1, r8
|
|
bl sub_804455C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r1, r8
|
|
lsls r1, 2
|
|
mov r10, r1
|
|
cmp r0, 0x1
|
|
beq _0803451C
|
|
ldr r0, _0803453C @ =gUnknown_2024018
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
add r0, r10
|
|
ldrh r0, [r0, 0x2]
|
|
cmp r0, 0
|
|
beq _08034548
|
|
_0803451C:
|
|
lsls r0, r5, 3
|
|
ldr r1, _08034540 @ =gUnknown_823654C
|
|
adds r0, r1
|
|
ldr r1, _08034544 @ =gMonSpritesGfxPtr
|
|
ldr r1, [r1]
|
|
lsls r2, r7, 2
|
|
adds r1, 0x4
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
adds r2, r5, 0
|
|
adds r3, r4, 0
|
|
bl HandleLoadSpecialPokePic_DontHandleDeoxys
|
|
b _08034562
|
|
.align 2, 0
|
|
_08034538: .4byte gUnknown_2024008
|
|
_0803453C: .4byte gUnknown_2024018
|
|
_08034540: .4byte gUnknown_823654C
|
|
_08034544: .4byte gMonSpritesGfxPtr
|
|
_08034548:
|
|
lsls r0, r5, 3
|
|
ldr r1, _08034584 @ =gUnknown_823654C
|
|
adds r0, r1
|
|
ldr r1, _08034588 @ =gMonSpritesGfxPtr
|
|
ldr r1, [r1]
|
|
lsls r2, r7, 2
|
|
adds r1, 0x4
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
adds r2, r5, 0
|
|
adds r3, r4, 0
|
|
bl sub_800ECC4
|
|
_08034562:
|
|
mov r2, r8
|
|
lsls r1, r2, 4
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
adds r7, r1, r0
|
|
ldr r0, _0803458C @ =gUnknown_2024018
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
add r0, r10
|
|
ldrh r0, [r0, 0x2]
|
|
mov r9, r1
|
|
cmp r0, 0
|
|
bne _08034590
|
|
adds r0, r6, 0
|
|
bl GetMonFrontSpritePal
|
|
b _0803459A
|
|
.align 2, 0
|
|
_08034584: .4byte gUnknown_823654C
|
|
_08034588: .4byte gMonSpritesGfxPtr
|
|
_0803458C: .4byte gUnknown_2024018
|
|
_08034590:
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x4]
|
|
ldr r2, [sp]
|
|
bl GetFrontSpritePalFromSpeciesAndPersonality
|
|
_0803459A:
|
|
adds r6, r0, 0
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
bl AllocZeroed
|
|
adds r4, r0, 0
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl LZDecompressWram
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
mov r1, r9
|
|
adds r1, 0x80
|
|
adds r0, r4, 0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
adds r0, r4, 0
|
|
bl Free
|
|
ldr r0, _08034638 @ =0x00000181
|
|
cmp r5, r0
|
|
bne _080345FC
|
|
movs r7, 0x80
|
|
lsls r7, 1
|
|
add r7, r9
|
|
ldr r5, _0803463C @ =gBattleStruct
|
|
ldr r1, [r5]
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
adds r1, r4
|
|
adds r0, r6, 0
|
|
bl LZDecompressWram
|
|
ldr r0, _08034640 @ =gBattleMonForms
|
|
add r0, r8
|
|
ldrb r1, [r0]
|
|
lsls r1, 5
|
|
adds r1, r4
|
|
ldr r0, [r5]
|
|
adds r0, r1
|
|
adds r1, r7, 0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
_080345FC:
|
|
ldr r0, _08034644 @ =gUnknown_2024018
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
add r0, r10
|
|
ldrh r0, [r0, 0x2]
|
|
cmp r0, 0
|
|
beq _08034626
|
|
ldr r3, _08034648 @ =0x00007fff
|
|
adds r0, r7, 0
|
|
movs r1, 0x10
|
|
movs r2, 0x6
|
|
bl BlendPalette
|
|
lsls r1, r7, 1
|
|
ldr r0, _0803464C @ =gPlttBufferFaded
|
|
adds r0, r1, r0
|
|
ldr r2, _08034650 @ =gPlttBufferUnfaded
|
|
adds r1, r2
|
|
ldr r2, _08034654 @ =0x04000008
|
|
bl CpuSet
|
|
_08034626:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08034638: .4byte 0x00000181
|
|
_0803463C: .4byte gBattleStruct
|
|
_08034640: .4byte gBattleMonForms
|
|
_08034644: .4byte gUnknown_2024018
|
|
_08034648: .4byte 0x00007fff
|
|
_0803464C: .4byte gPlttBufferFaded
|
|
_08034650: .4byte gPlttBufferUnfaded
|
|
_08034654: .4byte 0x04000008
|
|
thumb_func_end sub_8034498
|
|
|
|
thumb_func_start sub_8034658
|
|
sub_8034658: @ 8034658
|
|
push {r4-r6,lr}
|
|
lsls r4, r1, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
bl GetBattlerPosition
|
|
lsls r0, 24
|
|
ldr r2, _080346B8 @ =gUnknown_8E93B38
|
|
ldr r1, _080346BC @ =gMonSpritesGfxPtr
|
|
ldr r1, [r1]
|
|
lsrs r0, 22
|
|
adds r1, 0x4
|
|
adds r1, r0
|
|
ldr r1, [r1]
|
|
adds r0, r2, 0
|
|
bl LZ77UnCompWram
|
|
lsls r4, 4
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
adds r6, r4, r0
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
bl AllocZeroed
|
|
adds r5, r0, 0
|
|
ldr r0, _080346C0 @ =gUnknown_8E93B14
|
|
adds r1, r5, 0
|
|
bl LZDecompressWram
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
adds r4, 0x80
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
adds r0, r5, 0
|
|
bl Free
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080346B8: .4byte gUnknown_8E93B38
|
|
_080346BC: .4byte gMonSpritesGfxPtr
|
|
_080346C0: .4byte gUnknown_8E93B14
|
|
thumb_func_end sub_8034658
|
|
|
|
thumb_func_start sub_80346C4
|
|
sub_80346C4: @ 80346C4
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x8
|
|
adds r5, r0, 0
|
|
adds r0, r1, 0
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl GetBattlerPosition
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsls r5, 3
|
|
ldr r6, _0803473C @ =gUnknown_823957C
|
|
adds r6, r5, r6
|
|
ldr r0, _08034740 @ =gMonSpritesGfxPtr
|
|
mov r8, r0
|
|
ldr r0, [r0]
|
|
lsrs r4, 22
|
|
adds r0, 0x4
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
adds r0, r6, 0
|
|
movs r2, 0
|
|
bl DecompressPicFromTable
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, 0x4
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
str r0, [sp]
|
|
ldrh r2, [r6, 0x4]
|
|
ldr r0, _08034744 @ =0xffff0000
|
|
ldr r1, [sp, 0x4]
|
|
ands r1, r0
|
|
orrs r1, r2
|
|
str r1, [sp, 0x4]
|
|
ldrh r2, [r6, 0x6]
|
|
lsls r2, 16
|
|
ldr r0, _08034748 @ =0x0000ffff
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
str r0, [sp, 0x4]
|
|
mov r0, sp
|
|
bl LoadSpriteSheet
|
|
ldr r0, _0803474C @ =gUnknown_8239A1C
|
|
adds r5, r0
|
|
adds r0, r5, 0
|
|
bl sub_800F078
|
|
add sp, 0x8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0803473C: .4byte gUnknown_823957C
|
|
_08034740: .4byte gMonSpritesGfxPtr
|
|
_08034744: .4byte 0xffff0000
|
|
_08034748: .4byte 0x0000ffff
|
|
_0803474C: .4byte gUnknown_8239A1C
|
|
thumb_func_end sub_80346C4
|
|
|
|
thumb_func_start sub_8034750
|
|
sub_8034750: @ 8034750
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsls r1, 24
|
|
ldr r2, _08034774 @ =gUnknown_8239FD4
|
|
lsrs r0, 13
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
lsrs r1, 4
|
|
movs r2, 0x80
|
|
lsls r2, 17
|
|
adds r1, r2
|
|
lsrs r1, 16
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08034774: .4byte gUnknown_8239FD4
|
|
thumb_func_end sub_8034750
|
|
|
|
thumb_func_start nullsub_16
|
|
nullsub_16: @ 8034778
|
|
bx lr
|
|
thumb_func_end nullsub_16
|
|
|
|
thumb_func_start sub_803477C
|
|
sub_803477C: @ 803477C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
ldr r0, _080347A0 @ =gUnknown_8239A1C
|
|
lsrs r4, 13
|
|
adds r0, r4, r0
|
|
ldrh r0, [r0, 0x4]
|
|
bl FreeSpritePaletteByTag
|
|
ldr r0, _080347A4 @ =gUnknown_823957C
|
|
adds r4, r0
|
|
ldrh r0, [r4, 0x6]
|
|
bl FreeSpriteTilesByTag
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080347A0: .4byte gUnknown_8239A1C
|
|
_080347A4: .4byte gUnknown_823957C
|
|
thumb_func_end sub_803477C
|
|
|
|
thumb_func_start sub_80347A8
|
|
sub_80347A8: @ 80347A8
|
|
push {r4-r7,lr}
|
|
ldr r4, _080347D4 @ =gUnknown_8260260
|
|
adds r0, r4, 0
|
|
bl LoadSpritePalette
|
|
adds r4, 0x8
|
|
adds r0, r4, 0
|
|
bl LoadSpritePalette
|
|
bl sub_8075290
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080347E0
|
|
ldr r0, _080347D8 @ =gUnknown_8260208
|
|
bl sub_800F034
|
|
ldr r0, _080347DC @ =gUnknown_8260210
|
|
bl sub_800F034
|
|
movs r5, 0x2
|
|
b _08034802
|
|
.align 2, 0
|
|
_080347D4: .4byte gUnknown_8260260
|
|
_080347D8: .4byte gUnknown_8260208
|
|
_080347DC: .4byte gUnknown_8260210
|
|
_080347E0:
|
|
ldr r4, _08034828 @ =gUnknown_8260218
|
|
adds r0, r4, 0
|
|
bl sub_800F034
|
|
adds r4, 0x8
|
|
adds r0, r4, 0
|
|
bl sub_800F034
|
|
ldr r4, _0803482C @ =gUnknown_8260228
|
|
adds r0, r4, 0
|
|
bl sub_800F034
|
|
adds r4, 0x8
|
|
adds r0, r4, 0
|
|
bl sub_800F034
|
|
movs r5, 0x4
|
|
_08034802:
|
|
movs r4, 0
|
|
cmp r4, r5
|
|
bcs _08034822
|
|
ldr r7, _08034830 @ =gUnknown_2023BD6
|
|
ldr r6, _08034834 @ =gUnknown_8260240
|
|
_0803480C:
|
|
adds r0, r4, r7
|
|
ldrb r0, [r0]
|
|
lsls r0, 3
|
|
adds r0, r6
|
|
bl sub_800F034
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _0803480C
|
|
_08034822:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08034828: .4byte gUnknown_8260218
|
|
_0803482C: .4byte gUnknown_8260228
|
|
_08034830: .4byte gUnknown_2023BD6
|
|
_08034834: .4byte gUnknown_8260240
|
|
thumb_func_end sub_80347A8
|
|
|
|
thumb_func_start BattleLoadAllHealthBoxesGfx
|
|
BattleLoadAllHealthBoxesGfx: @ 8034838
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r5, r4, 0
|
|
movs r6, 0
|
|
cmp r4, 0
|
|
bne _08034848
|
|
b _0803495A
|
|
_08034848:
|
|
cmp r4, 0x1
|
|
bne _08034864
|
|
ldr r4, _08034860 @ =gUnknown_8260260
|
|
adds r0, r4, 0
|
|
bl LoadSpritePalette
|
|
adds r4, 0x8
|
|
adds r0, r4, 0
|
|
bl LoadSpritePalette
|
|
b _0803495A
|
|
.align 2, 0
|
|
_08034860: .4byte gUnknown_8260260
|
|
_08034864:
|
|
bl sub_8075290
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080348CC
|
|
cmp r4, 0x2
|
|
bne _0803489C
|
|
ldr r0, _08034888 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08034890
|
|
ldr r0, _0803488C @ =gUnknown_8260238
|
|
bl sub_800F034
|
|
b _0803495A
|
|
.align 2, 0
|
|
_08034888: .4byte gBattleTypeFlags
|
|
_0803488C: .4byte gUnknown_8260238
|
|
_08034890:
|
|
ldr r0, _08034898 @ =gUnknown_8260208
|
|
bl sub_800F034
|
|
b _0803495A
|
|
.align 2, 0
|
|
_08034898: .4byte gUnknown_8260208
|
|
_0803489C:
|
|
cmp r4, 0x3
|
|
bne _080348AC
|
|
ldr r0, _080348A8 @ =gUnknown_8260210
|
|
bl sub_800F034
|
|
b _0803495A
|
|
.align 2, 0
|
|
_080348A8: .4byte gUnknown_8260210
|
|
_080348AC:
|
|
cmp r4, 0x4
|
|
bne _080348BC
|
|
ldr r0, _080348B8 @ =gUnknown_2023BD6
|
|
ldrb r0, [r0]
|
|
b _08034944
|
|
.align 2, 0
|
|
_080348B8: .4byte gUnknown_2023BD6
|
|
_080348BC:
|
|
cmp r4, 0x5
|
|
bne _08034958
|
|
ldr r0, _080348C8 @ =gUnknown_2023BD6
|
|
ldrb r0, [r0, 0x1]
|
|
b _08034944
|
|
.align 2, 0
|
|
_080348C8: .4byte gUnknown_2023BD6
|
|
_080348CC:
|
|
cmp r4, 0x2
|
|
bne _080348DC
|
|
ldr r0, _080348D8 @ =gUnknown_8260218
|
|
bl sub_800F034
|
|
b _0803495A
|
|
.align 2, 0
|
|
_080348D8: .4byte gUnknown_8260218
|
|
_080348DC:
|
|
cmp r4, 0x3
|
|
bne _080348EC
|
|
ldr r0, _080348E8 @ =gUnknown_8260220
|
|
bl sub_800F034
|
|
b _0803495A
|
|
.align 2, 0
|
|
_080348E8: .4byte gUnknown_8260220
|
|
_080348EC:
|
|
cmp r4, 0x4
|
|
bne _080348FC
|
|
ldr r0, _080348F8 @ =gUnknown_8260228
|
|
bl sub_800F034
|
|
b _0803495A
|
|
.align 2, 0
|
|
_080348F8: .4byte gUnknown_8260228
|
|
_080348FC:
|
|
cmp r4, 0x5
|
|
bne _0803490C
|
|
ldr r0, _08034908 @ =gUnknown_8260230
|
|
bl sub_800F034
|
|
b _0803495A
|
|
.align 2, 0
|
|
_08034908: .4byte gUnknown_8260230
|
|
_0803490C:
|
|
cmp r4, 0x6
|
|
bne _0803491C
|
|
ldr r0, _08034918 @ =gUnknown_2023BD6
|
|
ldrb r0, [r0]
|
|
b _08034944
|
|
.align 2, 0
|
|
_08034918: .4byte gUnknown_2023BD6
|
|
_0803491C:
|
|
cmp r4, 0x7
|
|
bne _0803492C
|
|
ldr r0, _08034928 @ =gUnknown_2023BD6
|
|
ldrb r0, [r0, 0x1]
|
|
b _08034944
|
|
.align 2, 0
|
|
_08034928: .4byte gUnknown_2023BD6
|
|
_0803492C:
|
|
cmp r4, 0x8
|
|
bne _0803493C
|
|
ldr r0, _08034938 @ =gUnknown_2023BD6
|
|
ldrb r0, [r0, 0x2]
|
|
b _08034944
|
|
.align 2, 0
|
|
_08034938: .4byte gUnknown_2023BD6
|
|
_0803493C:
|
|
cmp r5, 0x9
|
|
bne _08034958
|
|
ldr r0, _08034950 @ =gUnknown_2023BD6
|
|
ldrb r0, [r0, 0x3]
|
|
_08034944:
|
|
lsls r0, 3
|
|
ldr r1, _08034954 @ =gUnknown_8260240
|
|
adds r0, r1
|
|
bl sub_800F034
|
|
b _0803495A
|
|
.align 2, 0
|
|
_08034950: .4byte gUnknown_2023BD6
|
|
_08034954: .4byte gUnknown_8260240
|
|
_08034958:
|
|
movs r6, 0x1
|
|
_0803495A:
|
|
adds r0, r6, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end BattleLoadAllHealthBoxesGfx
|
|
|
|
thumb_func_start LoadBattleBarGfx
|
|
LoadBattleBarGfx: @ 8034964
|
|
push {lr}
|
|
ldr r0, _0803497C @ =gUnknown_8D093D8
|
|
ldr r1, _08034980 @ =gMonSpritesGfxPtr
|
|
ldr r1, [r1]
|
|
movs r2, 0xBA
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
bl LZDecompressWram
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0803497C: .4byte gUnknown_8D093D8
|
|
_08034980: .4byte gMonSpritesGfxPtr
|
|
thumb_func_end LoadBattleBarGfx
|
|
|
|
thumb_func_start BattleInitAllSprites
|
|
BattleInitAllSprites: @ 8034984
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r6, 0
|
|
ldrb r0, [r5]
|
|
cmp r0, 0x6
|
|
bls _08034994
|
|
b _08034AF2
|
|
_08034994:
|
|
lsls r0, 2
|
|
ldr r1, _080349A0 @ =_080349A4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080349A0: .4byte _080349A4
|
|
.align 2, 0
|
|
_080349A4:
|
|
.4byte _080349C0
|
|
.4byte _080349C6
|
|
.4byte _08034AD0
|
|
.4byte _080349DC
|
|
.4byte _08034A0C
|
|
.4byte _08034A48
|
|
.4byte _08034AE8
|
|
_080349C0:
|
|
bl ClearSpritesBankHealthboxAnimData
|
|
b _08034AD0
|
|
_080349C6:
|
|
ldrb r0, [r4]
|
|
bl BattleLoadAllHealthBoxesGfx
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080349D4
|
|
b _08034ACC
|
|
_080349D4:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
b _08034AF2
|
|
_080349DC:
|
|
ldr r0, _080349F4 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080349F8
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
bne _080349F8
|
|
bl CreateSafariPlayerHealthboxSprites
|
|
b _080349FE
|
|
.align 2, 0
|
|
_080349F4: .4byte gBattleTypeFlags
|
|
_080349F8:
|
|
ldrb r0, [r4]
|
|
bl CreateBankHealthboxSprites
|
|
_080349FE:
|
|
ldr r2, _08034A08 @ =gUnknown_3004FF0
|
|
ldrb r1, [r4]
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
b _08034ABA
|
|
.align 2, 0
|
|
_08034A08: .4byte gUnknown_3004FF0
|
|
_08034A0C:
|
|
ldrb r0, [r4]
|
|
bl SetBankHealthboxSpritePos
|
|
ldr r0, _08034A2C @ =gUnknown_2023BD6
|
|
ldrb r1, [r4]
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bhi _08034A34
|
|
ldr r0, _08034A30 @ =gUnknown_3004FF0
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
movs r1, 0
|
|
bl nullsub_21
|
|
b _08034ABA
|
|
.align 2, 0
|
|
_08034A2C: .4byte gUnknown_2023BD6
|
|
_08034A30: .4byte gUnknown_3004FF0
|
|
_08034A34:
|
|
ldr r0, _08034A44 @ =gUnknown_3004FF0
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
movs r1, 0x1
|
|
bl nullsub_21
|
|
b _08034ABA
|
|
.align 2, 0
|
|
_08034A44: .4byte gUnknown_3004FF0
|
|
_08034A48:
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08034A90
|
|
ldr r0, _08034A80 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08034AAE
|
|
ldr r0, _08034A84 @ =gUnknown_3004FF0
|
|
ldrb r1, [r4]
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
ldr r2, _08034A88 @ =gBattlerPartyIndexes
|
|
lsls r1, 1
|
|
adds r1, r2
|
|
ldrh r2, [r1]
|
|
movs r1, 0x64
|
|
muls r1, r2
|
|
ldr r2, _08034A8C @ =gPlayerParty
|
|
adds r1, r2
|
|
movs r2, 0
|
|
bl UpdateHealthboxAttribute
|
|
b _08034AAE
|
|
.align 2, 0
|
|
_08034A80: .4byte gBattleTypeFlags
|
|
_08034A84: .4byte gUnknown_3004FF0
|
|
_08034A88: .4byte gBattlerPartyIndexes
|
|
_08034A8C: .4byte gPlayerParty
|
|
_08034A90:
|
|
ldr r0, _08034AD8 @ =gUnknown_3004FF0
|
|
ldrb r1, [r4]
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
ldr r2, _08034ADC @ =gBattlerPartyIndexes
|
|
lsls r1, 1
|
|
adds r1, r2
|
|
ldrh r2, [r1]
|
|
movs r1, 0x64
|
|
muls r1, r2
|
|
ldr r2, _08034AE0 @ =gEnemyParty
|
|
adds r1, r2
|
|
movs r2, 0
|
|
bl UpdateHealthboxAttribute
|
|
_08034AAE:
|
|
ldr r1, _08034AD8 @ =gUnknown_3004FF0
|
|
ldrb r0, [r4]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl SetHealthboxSpriteInvisible
|
|
_08034ABA:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
ldr r1, _08034AE4 @ =gBattlersCount
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bne _08034AF2
|
|
_08034ACC:
|
|
movs r0, 0
|
|
strb r0, [r4]
|
|
_08034AD0:
|
|
ldrb r0, [r5]
|
|
adds r0, 0x1
|
|
strb r0, [r5]
|
|
b _08034AF2
|
|
.align 2, 0
|
|
_08034AD8: .4byte gUnknown_3004FF0
|
|
_08034ADC: .4byte gBattlerPartyIndexes
|
|
_08034AE0: .4byte gEnemyParty
|
|
_08034AE4: .4byte gBattlersCount
|
|
_08034AE8:
|
|
bl LoadAndCreateEnemyShadowSprites
|
|
bl sub_8127CAC
|
|
movs r6, 0x1
|
|
_08034AF2:
|
|
adds r0, r6, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end BattleInitAllSprites
|
|
|
|
thumb_func_start ClearSpritesHealthboxAnimData
|
|
ClearSpritesHealthboxAnimData: @ 8034AFC
|
|
push {r4,lr}
|
|
ldr r4, _08034B20 @ =gUnknown_2024018
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x4]
|
|
movs r1, 0
|
|
movs r2, 0x30
|
|
bl memset
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x8]
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
bl memset
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08034B20: .4byte gUnknown_2024018
|
|
thumb_func_end ClearSpritesHealthboxAnimData
|
|
|
|
thumb_func_start ClearSpritesBankHealthboxAnimData
|
|
ClearSpritesBankHealthboxAnimData: @ 8034B24
|
|
push {lr}
|
|
bl ClearSpritesHealthboxAnimData
|
|
ldr r0, _08034B3C @ =gUnknown_2024018
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
bl memset
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08034B3C: .4byte gUnknown_2024018
|
|
thumb_func_end ClearSpritesBankHealthboxAnimData
|
|
|
|
thumb_func_start CopyAllBattleSpritesInvisibilities
|
|
CopyAllBattleSpritesInvisibilities: @ 8034B40
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
movs r4, 0
|
|
ldr r5, _08034BA4 @ =gBattlersCount
|
|
ldrb r0, [r5]
|
|
cmp r4, r0
|
|
bge _08034B96
|
|
ldr r0, _08034BA8 @ =gSprites
|
|
mov r9, r0
|
|
movs r0, 0x1
|
|
mov r12, r0
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
mov r8, r0
|
|
ldr r7, _08034BAC @ =gUnknown_2024018
|
|
ldr r6, _08034BB0 @ =gUnknown_2023D44
|
|
_08034B64:
|
|
ldr r0, [r7]
|
|
ldr r0, [r0]
|
|
lsls r3, r4, 2
|
|
adds r3, r0
|
|
adds r0, r4, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
lsls r1, 29
|
|
lsrs r1, 31
|
|
mov r0, r12
|
|
ands r1, r0
|
|
ldrb r2, [r3]
|
|
mov r0, r8
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
adds r4, 0x1
|
|
ldrb r0, [r5]
|
|
cmp r4, r0
|
|
blt _08034B64
|
|
_08034B96:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08034BA4: .4byte gBattlersCount
|
|
_08034BA8: .4byte gSprites
|
|
_08034BAC: .4byte gUnknown_2024018
|
|
_08034BB0: .4byte gUnknown_2023D44
|
|
thumb_func_end CopyAllBattleSpritesInvisibilities
|
|
|
|
thumb_func_start CopyBattleSpriteInvisibility
|
|
CopyBattleSpriteInvisibility: @ 8034BB4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _08034BE8 @ =gUnknown_2024018
|
|
ldr r1, [r1]
|
|
ldr r1, [r1]
|
|
lsls r3, r0, 2
|
|
adds r3, r1
|
|
ldr r2, _08034BEC @ =gSprites
|
|
ldr r1, _08034BF0 @ =gUnknown_2023D44
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
lsls r1, 29
|
|
lsrs r1, 31
|
|
ldrb r2, [r3]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
bx lr
|
|
.align 2, 0
|
|
_08034BE8: .4byte gUnknown_2024018
|
|
_08034BEC: .4byte gSprites
|
|
_08034BF0: .4byte gUnknown_2023D44
|
|
thumb_func_end CopyBattleSpriteInvisibility
|
|
|
|
thumb_func_start sub_8034BF4
|
|
sub_8034BF4: @ 8034BF4
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x18
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
str r1, [sp]
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
cmp r2, 0xFF
|
|
beq _08034C16
|
|
b _08034D88
|
|
_08034C16:
|
|
bl GetBattlerPosition
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
ldr r0, _08034D58 @ =gBattlerPartyIndexes
|
|
mov r1, r9
|
|
lsls r1, 1
|
|
adds r0, r1, r0
|
|
str r0, [sp, 0xC]
|
|
ldrh r0, [r0]
|
|
movs r2, 0x64
|
|
muls r0, r2
|
|
ldr r3, _08034D5C @ =gEnemyParty
|
|
adds r0, r3
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
ldr r1, [sp, 0xC]
|
|
ldrh r0, [r1]
|
|
movs r2, 0x64
|
|
muls r0, r2
|
|
ldr r3, _08034D5C @ =gEnemyParty
|
|
adds r0, r3
|
|
movs r1, 0
|
|
bl GetMonData
|
|
str r0, [sp, 0x4]
|
|
ldr r1, [sp, 0xC]
|
|
ldrh r0, [r1]
|
|
movs r2, 0x64
|
|
muls r0, r2
|
|
ldr r3, _08034D5C @ =gEnemyParty
|
|
adds r0, r3
|
|
movs r1, 0x1
|
|
bl GetMonData
|
|
adds r7, r0, 0
|
|
mov r1, r8
|
|
lsls r0, r1, 3
|
|
ldr r1, _08034D60 @ =gUnknown_82350AC
|
|
adds r0, r1
|
|
ldr r4, _08034D64 @ =gMonSpritesGfxPtr
|
|
ldr r1, [r4]
|
|
mov r2, r10
|
|
lsls r5, r2, 2
|
|
adds r1, 0x4
|
|
adds r1, r5
|
|
ldr r1, [r1]
|
|
mov r2, r8
|
|
ldr r3, [sp, 0x4]
|
|
bl HandleLoadSpecialPokePic_DontHandleDeoxys
|
|
ldr r0, [r4]
|
|
adds r0, 0x4
|
|
adds r0, r5
|
|
ldr r2, [r0]
|
|
ldr r5, _08034D68 @ =gSprites
|
|
ldr r4, _08034D6C @ =gUnknown_2023D44
|
|
add r4, r9
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldrh r0, [r0, 0x4]
|
|
lsls r0, 22
|
|
lsrs r0, 17
|
|
ldr r1, _08034D70 @ =0x06010000
|
|
adds r0, r1
|
|
ldr r1, _08034D74 @ =0x040000d4
|
|
str r2, [r1]
|
|
str r0, [r1, 0x4]
|
|
ldr r0, _08034D78 @ =0x84000200
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
mov r3, r9
|
|
lsls r0, r3, 20
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
adds r0, r1
|
|
lsrs r0, 16
|
|
mov r10, r0
|
|
mov r0, r8
|
|
adds r1, r7, 0
|
|
ldr r2, [sp, 0x4]
|
|
bl GetFrontSpritePalFromSpeciesAndPersonality
|
|
adds r6, r0, 0
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
bl AllocZeroed
|
|
adds r7, r0, 0
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
bl LZDecompressWram
|
|
adds r0, r7, 0
|
|
mov r1, r10
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
adds r0, r7, 0
|
|
bl Free
|
|
mov r0, r9
|
|
bl GetBankSpriteDefault_Y
|
|
ldrb r2, [r4]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1, 0x22]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldr r1, _08034D7C @ =gBattleMonForms
|
|
add r1, r9
|
|
ldrb r1, [r1]
|
|
bl StartSpriteAnim
|
|
ldr r2, [sp, 0xC]
|
|
ldrh r0, [r2]
|
|
movs r3, 0x64
|
|
muls r0, r3
|
|
ldr r1, _08034D5C @ =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
mov r2, r8
|
|
muls r2, r1
|
|
ldr r1, _08034D80 @ =gSpeciesNames
|
|
adds r2, r1
|
|
movs r1, 0x2
|
|
bl SetMonData
|
|
ldr r4, _08034D84 @ =gUnknown_3004FF0
|
|
add r4, r9
|
|
ldrb r0, [r4]
|
|
ldr r2, [sp, 0xC]
|
|
ldrh r1, [r2]
|
|
movs r3, 0x64
|
|
muls r1, r3
|
|
ldr r2, _08034D5C @ =gEnemyParty
|
|
adds r1, r2
|
|
bl sub_80496C0
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_804981C
|
|
b _08035062
|
|
.align 2, 0
|
|
_08034D58: .4byte gBattlerPartyIndexes
|
|
_08034D5C: .4byte gEnemyParty
|
|
_08034D60: .4byte gUnknown_82350AC
|
|
_08034D64: .4byte gMonSpritesGfxPtr
|
|
_08034D68: .4byte gSprites
|
|
_08034D6C: .4byte gUnknown_2023D44
|
|
_08034D70: .4byte 0x06010000
|
|
_08034D74: .4byte 0x040000d4
|
|
_08034D78: .4byte 0x84000200
|
|
_08034D7C: .4byte gBattleMonForms
|
|
_08034D80: .4byte gSpeciesNames
|
|
_08034D84: .4byte gUnknown_3004FF0
|
|
_08034D88:
|
|
cmp r2, 0
|
|
beq _08034E4C
|
|
ldr r0, _08034E28 @ =gUnknown_2023D44
|
|
mov r3, r9
|
|
adds r5, r3, r0
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r6, _08034E2C @ =gSprites
|
|
adds r0, r6
|
|
ldr r4, _08034E30 @ =gUnknown_2024018
|
|
ldr r1, [r4]
|
|
ldr r1, [r1, 0x8]
|
|
ldrb r1, [r1]
|
|
bl StartSpriteAnim
|
|
mov r1, r9
|
|
lsls r0, r1, 20
|
|
movs r2, 0x80
|
|
lsls r2, 17
|
|
adds r0, r2
|
|
lsrs r0, 16
|
|
mov r10, r0
|
|
ldr r2, _08034E34 @ =gBattleStruct
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x8]
|
|
ldrh r1, [r0]
|
|
lsls r1, 5
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
adds r1, r3
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
mov r1, r10
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
ldr r1, _08034E38 @ =gBattleMonForms
|
|
add r1, r9
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x8]
|
|
ldrh r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r0, [r4]
|
|
ldr r1, [r0]
|
|
mov r2, r9
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x2]
|
|
cmp r0, 0
|
|
beq _08034E0E
|
|
ldr r3, _08034E3C @ =0x00007fff
|
|
mov r0, r10
|
|
movs r1, 0x10
|
|
movs r2, 0x6
|
|
bl BlendPalette
|
|
mov r3, r10
|
|
lsls r1, r3, 1
|
|
ldr r0, _08034E40 @ =gPlttBufferFaded
|
|
adds r0, r1, r0
|
|
ldr r2, _08034E44 @ =gPlttBufferUnfaded
|
|
adds r1, r2
|
|
ldr r2, _08034E48 @ =0x04000008
|
|
bl CpuSet
|
|
_08034E0E:
|
|
mov r0, r9
|
|
bl GetBankSpriteDefault_Y
|
|
ldrb r2, [r5]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1, 0x22]
|
|
b _08035062
|
|
.align 2, 0
|
|
_08034E28: .4byte gUnknown_2023D44
|
|
_08034E2C: .4byte gSprites
|
|
_08034E30: .4byte gUnknown_2024018
|
|
_08034E34: .4byte gBattleStruct
|
|
_08034E38: .4byte gBattleMonForms
|
|
_08034E3C: .4byte 0x00007fff
|
|
_08034E40: .4byte gPlttBufferFaded
|
|
_08034E44: .4byte gPlttBufferUnfaded
|
|
_08034E48: .4byte 0x04000008
|
|
_08034E4C:
|
|
mov r0, r9
|
|
bl GetBattlerPosition
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
ldr r0, [sp]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08034E80
|
|
ldr r1, _08034E78 @ =gBattlerPartyIndexes
|
|
ldr r2, [sp]
|
|
lsls r0, r2, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _08034E7C @ =gEnemyParty
|
|
b _08034E90
|
|
.align 2, 0
|
|
_08034E78: .4byte gBattlerPartyIndexes
|
|
_08034E7C: .4byte gEnemyParty
|
|
_08034E80:
|
|
ldr r1, _08034EFC @ =gBattlerPartyIndexes
|
|
ldr r3, [sp]
|
|
lsls r0, r3, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _08034F00 @ =gPlayerParty
|
|
_08034E90:
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
mov r0, r9
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08034F10
|
|
ldr r0, _08034EFC @ =gBattlerPartyIndexes
|
|
mov r1, r9
|
|
lsls r4, r1, 1
|
|
adds r4, r0
|
|
ldrh r0, [r4]
|
|
movs r7, 0x64
|
|
muls r0, r7
|
|
ldr r5, _08034F00 @ =gPlayerParty
|
|
adds r0, r5
|
|
movs r1, 0
|
|
bl GetMonData
|
|
str r0, [sp, 0x4]
|
|
ldrh r0, [r4]
|
|
muls r0, r7
|
|
adds r0, r5
|
|
movs r1, 0x1
|
|
bl GetMonData
|
|
adds r7, r0, 0
|
|
mov r2, r8
|
|
lsls r0, r2, 3
|
|
ldr r1, _08034F04 @ =gUnknown_823654C
|
|
adds r0, r1
|
|
ldr r1, _08034F08 @ =gMonSpritesGfxPtr
|
|
ldr r1, [r1]
|
|
mov r3, r10
|
|
lsls r5, r3, 2
|
|
adds r1, 0x4
|
|
adds r1, r5
|
|
ldr r1, [r1]
|
|
ldr r2, _08034F0C @ =gUnknown_2024008
|
|
mov r3, r9
|
|
lsls r4, r3, 2
|
|
adds r2, r4, r2
|
|
ldr r3, [r2]
|
|
mov r2, r8
|
|
bl HandleLoadSpecialPokePic_DontHandleDeoxys
|
|
b _08034F5E
|
|
.align 2, 0
|
|
_08034EFC: .4byte gBattlerPartyIndexes
|
|
_08034F00: .4byte gPlayerParty
|
|
_08034F04: .4byte gUnknown_823654C
|
|
_08034F08: .4byte gMonSpritesGfxPtr
|
|
_08034F0C: .4byte gUnknown_2024008
|
|
_08034F10:
|
|
ldr r0, _08035074 @ =gBattlerPartyIndexes
|
|
mov r1, r9
|
|
lsls r4, r1, 1
|
|
adds r4, r0
|
|
ldrh r0, [r4]
|
|
movs r7, 0x64
|
|
muls r0, r7
|
|
ldr r5, _08035078 @ =gEnemyParty
|
|
adds r0, r5
|
|
movs r1, 0
|
|
bl GetMonData
|
|
str r0, [sp, 0x4]
|
|
ldrh r0, [r4]
|
|
muls r0, r7
|
|
adds r0, r5
|
|
movs r1, 0x1
|
|
bl GetMonData
|
|
adds r7, r0, 0
|
|
mov r2, r8
|
|
lsls r0, r2, 3
|
|
ldr r1, _0803507C @ =gUnknown_82350AC
|
|
adds r0, r1
|
|
ldr r1, _08035080 @ =gMonSpritesGfxPtr
|
|
ldr r1, [r1]
|
|
mov r3, r10
|
|
lsls r5, r3, 2
|
|
adds r1, 0x4
|
|
adds r1, r5
|
|
ldr r1, [r1]
|
|
ldr r2, _08035084 @ =gUnknown_2024008
|
|
mov r3, r9
|
|
lsls r4, r3, 2
|
|
adds r2, r4, r2
|
|
ldr r3, [r2]
|
|
mov r2, r8
|
|
bl HandleLoadSpecialPokePic_DontHandleDeoxys
|
|
_08034F5E:
|
|
str r4, [sp, 0x14]
|
|
ldr r0, _08035080 @ =gMonSpritesGfxPtr
|
|
ldr r0, [r0]
|
|
adds r0, 0x4
|
|
adds r0, r5
|
|
ldr r2, [r0]
|
|
ldr r0, _08035088 @ =gUnknown_2023D44
|
|
add r0, r9
|
|
str r0, [sp, 0x10]
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0803508C @ =gSprites
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x4]
|
|
lsls r0, 22
|
|
lsrs r0, 17
|
|
ldr r1, _08035090 @ =0x06010000
|
|
adds r0, r1
|
|
ldr r1, _08035094 @ =0x040000d4
|
|
str r2, [r1]
|
|
str r0, [r1, 0x4]
|
|
ldr r0, _08035098 @ =0x84000200
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
mov r2, r9
|
|
lsls r0, r2, 20
|
|
movs r3, 0x80
|
|
lsls r3, 17
|
|
adds r0, r3
|
|
lsrs r0, 16
|
|
mov r10, r0
|
|
mov r0, r8
|
|
adds r1, r7, 0
|
|
ldr r2, [sp, 0x4]
|
|
bl GetFrontSpritePalFromSpeciesAndPersonality
|
|
adds r6, r0, 0
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
bl AllocZeroed
|
|
adds r7, r0, 0
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
bl LZDecompressWram
|
|
adds r0, r7, 0
|
|
mov r1, r10
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
adds r0, r7, 0
|
|
bl Free
|
|
ldr r0, _0803509C @ =0x00000181
|
|
cmp r8, r0
|
|
bne _08034FFC
|
|
ldr r5, _080350A0 @ =gBattleStruct
|
|
ldr r1, [r5]
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
adds r1, r4
|
|
adds r0, r6, 0
|
|
bl LZDecompressWram
|
|
ldr r0, _080350A4 @ =gBattleMonForms
|
|
ldr r1, [sp]
|
|
adds r0, r1, r0
|
|
ldrb r1, [r0]
|
|
lsls r1, 5
|
|
adds r1, r4
|
|
ldr r0, [r5]
|
|
adds r0, r1
|
|
mov r1, r10
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
_08034FFC:
|
|
ldr r3, _080350A8 @ =0x00007fff
|
|
mov r0, r10
|
|
movs r1, 0x10
|
|
movs r2, 0x6
|
|
bl BlendPalette
|
|
mov r2, r10
|
|
lsls r1, r2, 1
|
|
ldr r0, _080350AC @ =gPlttBufferFaded
|
|
adds r0, r1, r0
|
|
ldr r2, _080350B0 @ =gPlttBufferUnfaded
|
|
adds r1, r2
|
|
ldr r2, _080350B4 @ =0x04000008
|
|
bl CpuSet
|
|
ldr r0, _080350B8 @ =gUnknown_2024018
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
ldr r3, [sp, 0x14]
|
|
adds r0, r3, r0
|
|
mov r1, r8
|
|
strh r1, [r0, 0x2]
|
|
ldr r0, _080350A4 @ =gBattleMonForms
|
|
mov r2, r9
|
|
adds r4, r2, r0
|
|
ldr r3, [sp]
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
strb r0, [r4]
|
|
mov r0, r9
|
|
bl GetBankSpriteDefault_Y
|
|
ldr r1, [sp, 0x10]
|
|
ldrb r2, [r1]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
ldr r2, _0803508C @ =gSprites
|
|
adds r1, r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1, 0x22]
|
|
ldr r3, [sp, 0x10]
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r4]
|
|
bl StartSpriteAnim
|
|
_08035062:
|
|
add sp, 0x18
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08035074: .4byte gBattlerPartyIndexes
|
|
_08035078: .4byte gEnemyParty
|
|
_0803507C: .4byte gUnknown_82350AC
|
|
_08035080: .4byte gMonSpritesGfxPtr
|
|
_08035084: .4byte gUnknown_2024008
|
|
_08035088: .4byte gUnknown_2023D44
|
|
_0803508C: .4byte gSprites
|
|
_08035090: .4byte 0x06010000
|
|
_08035094: .4byte 0x040000d4
|
|
_08035098: .4byte 0x84000200
|
|
_0803509C: .4byte 0x00000181
|
|
_080350A0: .4byte gBattleStruct
|
|
_080350A4: .4byte gBattleMonForms
|
|
_080350A8: .4byte 0x00007fff
|
|
_080350AC: .4byte gPlttBufferFaded
|
|
_080350B0: .4byte gPlttBufferUnfaded
|
|
_080350B4: .4byte 0x04000008
|
|
_080350B8: .4byte gUnknown_2024018
|
|
thumb_func_end sub_8034BF4
|
|
|
|
thumb_func_start sub_80350BC
|
|
sub_80350BC: @ 80350BC
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r6, r4, 0
|
|
lsls r1, 24
|
|
cmp r1, 0
|
|
bne _08035158
|
|
adds r0, r4, 0
|
|
bl GetBattlerPosition
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r0, r4, 0
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080350FC
|
|
ldr r0, _080350F4 @ =gUnknown_8D2D0B4
|
|
ldr r1, _080350F8 @ =gMonSpritesGfxPtr
|
|
ldr r1, [r1]
|
|
lsls r4, r5, 2
|
|
adds r1, 0x4
|
|
adds r1, r4
|
|
ldr r1, [r1]
|
|
bl LZDecompressVram
|
|
b _0803510E
|
|
.align 2, 0
|
|
_080350F4: .4byte gUnknown_8D2D0B4
|
|
_080350F8: .4byte gMonSpritesGfxPtr
|
|
_080350FC:
|
|
ldr r0, _08035144 @ =gUnknown_8D2D2F4
|
|
ldr r1, _08035148 @ =gMonSpritesGfxPtr
|
|
ldr r1, [r1]
|
|
lsls r4, r5, 2
|
|
adds r1, 0x4
|
|
adds r1, r4
|
|
ldr r1, [r1]
|
|
bl LZDecompressVram
|
|
_0803510E:
|
|
movs r3, 0x1
|
|
lsls r6, 4
|
|
ldr r7, _0803514C @ =gUnknown_8D2D090
|
|
ldr r0, _08035148 @ =gMonSpritesGfxPtr
|
|
ldr r0, [r0]
|
|
adds r0, 0x4
|
|
adds r4, r0, r4
|
|
ldr r2, _08035150 @ =0x040000d4
|
|
ldr r5, _08035154 @ =0x84000200
|
|
_08035120:
|
|
ldr r0, [r4]
|
|
lsls r1, r3, 11
|
|
adds r1, r0, r1
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
str r5, [r2, 0x8]
|
|
ldr r0, [r2, 0x8]
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
ble _08035120
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
adds r1, r6, r0
|
|
adds r0, r7, 0
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
b _0803519A
|
|
.align 2, 0
|
|
_08035144: .4byte gUnknown_8D2D2F4
|
|
_08035148: .4byte gMonSpritesGfxPtr
|
|
_0803514C: .4byte gUnknown_8D2D090
|
|
_08035150: .4byte 0x040000d4
|
|
_08035154: .4byte 0x84000200
|
|
_08035158:
|
|
adds r0, r4, 0
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08035184
|
|
ldr r1, _0803517C @ =gBattlerPartyIndexes
|
|
lsls r0, r4, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _08035180 @ =gEnemyParty
|
|
adds r0, r1
|
|
adds r1, r4, 0
|
|
bl BattleLoadOpponentMonSpriteGfx
|
|
b _0803519A
|
|
.align 2, 0
|
|
_0803517C: .4byte gBattlerPartyIndexes
|
|
_08035180: .4byte gEnemyParty
|
|
_08035184:
|
|
ldr r1, _080351A0 @ =gBattlerPartyIndexes
|
|
lsls r0, r6, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _080351A4 @ =gPlayerParty
|
|
adds r0, r1
|
|
adds r1, r6, 0
|
|
bl sub_8034498
|
|
_0803519A:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080351A0: .4byte gBattlerPartyIndexes
|
|
_080351A4: .4byte gPlayerParty
|
|
thumb_func_end sub_80350BC
|
|
|
|
thumb_func_start LoadBattleMonGfxAndAnimate
|
|
LoadBattleMonGfxAndAnimate: @ 80351A8
|
|
push {r4-r6,lr}
|
|
adds r5, r1, 0
|
|
adds r4, r2, 0
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_80350BC
|
|
lsls r0, r4, 4
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
ldr r1, _080351E4 @ =gSprites
|
|
adds r4, r0, r1
|
|
ldr r0, _080351E8 @ =gBattleMonForms
|
|
adds r0, r6, r0
|
|
ldrb r1, [r0]
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
cmp r5, 0
|
|
bne _080351EC
|
|
adds r0, r6, 0
|
|
bl GetSubstituteSpriteDefault_Y
|
|
b _080351F2
|
|
.align 2, 0
|
|
_080351E4: .4byte gSprites
|
|
_080351E8: .4byte gBattleMonForms
|
|
_080351EC:
|
|
adds r0, r6, 0
|
|
bl GetBankSpriteDefault_Y
|
|
_080351F2:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x22]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end LoadBattleMonGfxAndAnimate
|
|
|
|
thumb_func_start TrySetBehindSubstituteSpriteBit
|
|
TrySetBehindSubstituteSpriteBit: @ 8035200
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
cmp r1, 0xA4
|
|
bne _08035220
|
|
ldr r0, _08035224 @ =gUnknown_2024018
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
lsls r1, r2, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
movs r2, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
_08035220:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08035224: .4byte gUnknown_2024018
|
|
thumb_func_end TrySetBehindSubstituteSpriteBit
|
|
|
|
thumb_func_start ClearBehindSubstituteBit
|
|
ClearBehindSubstituteBit: @ 8035228
|
|
lsls r0, 24
|
|
ldr r1, _08035240 @ =gUnknown_2024018
|
|
ldr r1, [r1]
|
|
ldr r1, [r1]
|
|
lsrs r0, 22
|
|
adds r0, r1
|
|
ldrb r2, [r0]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08035240: .4byte gUnknown_2024018
|
|
thumb_func_end ClearBehindSubstituteBit
|
|
|
|
thumb_func_start HandleLowHpMusicChange
|
|
HandleLowHpMusicChange: @ 8035244
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
lsls r1, 24
|
|
lsrs r6, r1, 24
|
|
adds r7, r6, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
adds r0, r5, 0
|
|
movs r1, 0x3A
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r0, r4, 0
|
|
bl GetHPBarLevel
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080352BC
|
|
ldr r7, _080352B8 @ =gUnknown_2024018
|
|
ldr r0, [r7]
|
|
ldr r2, [r0]
|
|
lsls r4, r6, 2
|
|
adds r0, r4, r2
|
|
ldrb r1, [r0]
|
|
movs r5, 0x2
|
|
movs r3, 0x2
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803530E
|
|
adds r0, r6, 0
|
|
eors r0, r5
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080352AA
|
|
movs r0, 0x53
|
|
bl PlaySE
|
|
_080352AA:
|
|
ldr r0, [r7]
|
|
ldr r1, [r0]
|
|
adds r1, r4, r1
|
|
ldrb r0, [r1]
|
|
orrs r0, r5
|
|
strb r0, [r1]
|
|
b _0803530E
|
|
.align 2, 0
|
|
_080352B8: .4byte gUnknown_2024018
|
|
_080352BC:
|
|
ldr r4, _080352E4 @ =gUnknown_2024018
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
lsls r1, r6, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
bl sub_8075290
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080352E8
|
|
movs r0, 0x53
|
|
bl m4aSongNumStop
|
|
b _0803530E
|
|
.align 2, 0
|
|
_080352E4: .4byte gUnknown_2024018
|
|
_080352E8:
|
|
bl sub_8075290
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0803530E
|
|
ldr r1, [r4]
|
|
movs r0, 0x2
|
|
eors r7, r0
|
|
ldr r1, [r1]
|
|
lsls r0, r7, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803530E
|
|
movs r0, 0x53
|
|
bl m4aSongNumStop
|
|
_0803530E:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end HandleLowHpMusicChange
|
|
|
|
thumb_func_start BattleStopLowHpSound
|
|
BattleStopLowHpSound: @ 8035314
|
|
push {r4-r6,lr}
|
|
movs r0, 0
|
|
bl GetBattlerAtPosition
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r5, _08035364 @ =gUnknown_2024018
|
|
ldr r0, [r5]
|
|
ldr r0, [r0]
|
|
lsls r1, r4, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1]
|
|
movs r6, 0x3
|
|
negs r6, r6
|
|
adds r0, r6, 0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
bl sub_8075290
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08035356
|
|
ldr r2, [r5]
|
|
movs r0, 0x2
|
|
adds r1, r4, 0
|
|
eors r1, r0
|
|
ldr r0, [r2]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1]
|
|
adds r0, r6, 0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
_08035356:
|
|
movs r0, 0x53
|
|
bl m4aSongNumStop
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08035364: .4byte gUnknown_2024018
|
|
thumb_func_end BattleStopLowHpSound
|
|
|
|
thumb_func_start GetMonHPBarLevel
|
|
GetMonHPBarLevel: @ 8035368
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
adds r0, r5, 0
|
|
movs r1, 0x3A
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r0, r4, 0
|
|
bl GetHPBarLevel
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetMonHPBarLevel
|
|
|
|
thumb_func_start sub_803539C
|
|
sub_803539C: @ 803539C
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
ldr r0, _08035440 @ =gMain
|
|
ldr r1, _08035444 @ =0x00000439
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08035432
|
|
movs r0, 0
|
|
bl GetBattlerAtPosition
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
movs r0, 0x2
|
|
bl GetBattlerAtPosition
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
ldr r5, _08035448 @ =gBattlerPartyIndexes
|
|
mov r1, r8
|
|
lsls r0, r1, 1
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
bl pokemon_order_func
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
mov r1, r9
|
|
lsls r0, r1, 1
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
bl pokemon_order_func
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r7, 0x64
|
|
adds r0, r4, 0
|
|
muls r0, r7
|
|
ldr r6, _0803544C @ =gPlayerParty
|
|
adds r4, r0, r6
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0803540E
|
|
adds r0, r4, 0
|
|
mov r1, r8
|
|
bl HandleLowHpMusicChange
|
|
_0803540E:
|
|
bl sub_8075290
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08035432
|
|
adds r0, r5, 0
|
|
muls r0, r7
|
|
adds r4, r0, r6
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _08035432
|
|
adds r0, r4, 0
|
|
mov r1, r9
|
|
bl HandleLowHpMusicChange
|
|
_08035432:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08035440: .4byte gMain
|
|
_08035444: .4byte 0x00000439
|
|
_08035448: .4byte gBattlerPartyIndexes
|
|
_0803544C: .4byte gPlayerParty
|
|
thumb_func_end sub_803539C
|
|
|
|
thumb_func_start sub_8035450
|
|
sub_8035450: @ 8035450
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
movs r5, 0
|
|
ldr r0, _080354E0 @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bge _08035520
|
|
movs r0, 0x3
|
|
mov r10, r8
|
|
mov r1, r10
|
|
ands r1, r0
|
|
mov r10, r1
|
|
movs r6, 0
|
|
movs r2, 0x3F
|
|
negs r2, r2
|
|
mov r9, r2
|
|
_0803547C:
|
|
lsls r0, r5, 24
|
|
lsrs r0, 24
|
|
bl sub_8075224
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08035514
|
|
ldr r4, _080354E4 @ =gSprites
|
|
ldr r0, _080354E8 @ =gUnknown_2023D44
|
|
adds r3, r5, r0
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r1, [r0, 0x1]
|
|
movs r7, 0x4
|
|
negs r7, r7
|
|
adds r2, r7, 0
|
|
ands r1, r2
|
|
mov r2, r10
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x1]
|
|
mov r7, r8
|
|
cmp r7, 0
|
|
bne _080354F0
|
|
ldr r0, _080354EC @ =gUnknown_2024018
|
|
ldr r0, [r0]
|
|
ldr r2, [r0, 0x4]
|
|
adds r2, r6, r2
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r0, [r0, 0x3]
|
|
lsls r0, 26
|
|
lsrs r0, 27
|
|
strb r0, [r2, 0x6]
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r1, [r0, 0x3]
|
|
mov r2, r9
|
|
ands r1, r2
|
|
strb r1, [r0, 0x3]
|
|
b _08035514
|
|
.align 2, 0
|
|
_080354E0: .4byte gBattlersCount
|
|
_080354E4: .4byte gSprites
|
|
_080354E8: .4byte gUnknown_2023D44
|
|
_080354EC: .4byte gUnknown_2024018
|
|
_080354F0:
|
|
ldrb r0, [r3]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r4
|
|
ldr r0, _08035530 @ =gUnknown_2024018
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r6, r0
|
|
ldrb r1, [r0, 0x6]
|
|
movs r0, 0x1F
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
ldrb r0, [r2, 0x3]
|
|
mov r3, r9
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x3]
|
|
_08035514:
|
|
adds r6, 0xC
|
|
adds r5, 0x1
|
|
ldr r0, _08035534 @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
blt _0803547C
|
|
_08035520:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08035530: .4byte gUnknown_2024018
|
|
_08035534: .4byte gBattlersCount
|
|
thumb_func_end sub_8035450
|
|
|
|
thumb_func_start LoadAndCreateEnemyShadowSprites
|
|
LoadAndCreateEnemyShadowSprites: @ 8035538
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r0, _08035614 @ =gUnknown_8250A0C
|
|
bl sub_800F034
|
|
movs r0, 0x1
|
|
bl GetBattlerAtPosition
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r0, _08035618 @ =gUnknown_8250A1C
|
|
mov r8, r0
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 8
|
|
movs r0, 0xE8
|
|
lsls r0, 13
|
|
adds r2, r0
|
|
asrs r2, 16
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
movs r3, 0xC8
|
|
bl CreateSprite
|
|
ldr r6, _0803561C @ =gUnknown_2024018
|
|
ldr r1, [r6]
|
|
ldr r2, [r1, 0x4]
|
|
lsls r1, r5, 1
|
|
adds r1, r5
|
|
lsls r1, 2
|
|
adds r2, r1, r2
|
|
strb r0, [r2, 0x7]
|
|
ldr r7, _08035620 @ =gSprites
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x4]
|
|
adds r1, r0
|
|
ldrb r1, [r1, 0x7]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
strh r5, [r0, 0x2E]
|
|
bl sub_8075290
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0803560A
|
|
movs r0, 0x3
|
|
bl GetBattlerAtPosition
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 8
|
|
movs r0, 0xE8
|
|
lsls r0, 13
|
|
adds r2, r0
|
|
asrs r2, 16
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
movs r3, 0xC8
|
|
bl CreateSprite
|
|
ldr r1, [r6]
|
|
ldr r2, [r1, 0x4]
|
|
lsls r1, r5, 1
|
|
adds r1, r5
|
|
lsls r1, 2
|
|
adds r2, r1, r2
|
|
strb r0, [r2, 0x7]
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x4]
|
|
adds r1, r0
|
|
ldrb r1, [r1, 0x7]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
strh r5, [r0, 0x2E]
|
|
_0803560A:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08035614: .4byte gUnknown_8250A0C
|
|
_08035618: .4byte gUnknown_8250A1C
|
|
_0803561C: .4byte gUnknown_2024018
|
|
_08035620: .4byte gSprites
|
|
thumb_func_end LoadAndCreateEnemyShadowSprites
|
|
|
|
thumb_func_start SpriteCB_EnemyShadow
|
|
SpriteCB_EnemyShadow: @ 8035624
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r5, r0, 0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
ldrh r0, [r5, 0x2E]
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _08035668 @ =gUnknown_2023D44
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0803566C @ =gSprites
|
|
adds r7, r0, r1
|
|
adds r6, r7, 0
|
|
adds r6, 0x3E
|
|
ldrb r1, [r6]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08035660
|
|
adds r0, r4, 0
|
|
bl sub_8075224
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08035674
|
|
_08035660:
|
|
ldr r0, _08035670 @ =SpriteCB_SetInvisible
|
|
str r0, [r5, 0x1C]
|
|
b _080356EA
|
|
.align 2, 0
|
|
_08035668: .4byte gUnknown_2023D44
|
|
_0803566C: .4byte gSprites
|
|
_08035670: .4byte SpriteCB_SetInvisible
|
|
_08035674:
|
|
ldr r0, _08035690 @ =gUnknown_2037EE1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08035686
|
|
ldrb r1, [r6]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08035698
|
|
_08035686:
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
ldr r2, _08035694 @ =gUnknown_2024018
|
|
lsls r4, 2
|
|
b _080356BA
|
|
.align 2, 0
|
|
_08035690: .4byte gUnknown_2037EE1
|
|
_08035694: .4byte gUnknown_2024018
|
|
_08035698:
|
|
ldr r2, _080356F4 @ =gUnknown_2024018
|
|
ldr r0, [r2]
|
|
ldr r0, [r0]
|
|
lsls r1, r4, 2
|
|
adds r3, r1, r0
|
|
ldrh r0, [r3, 0x2]
|
|
adds r4, r1, 0
|
|
cmp r0, 0
|
|
beq _080356BA
|
|
ldr r0, _080356F8 @ =gUnknown_823A004
|
|
ldrh r1, [r3, 0x2]
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _080356BA
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
_080356BA:
|
|
ldr r0, [r2]
|
|
ldr r0, [r0]
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080356CE
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
_080356CE:
|
|
ldrh r0, [r7, 0x20]
|
|
strh r0, [r5, 0x20]
|
|
ldrh r0, [r7, 0x24]
|
|
strh r0, [r5, 0x24]
|
|
adds r2, r5, 0
|
|
adds r2, 0x3E
|
|
mov r0, r8
|
|
lsls r3, r0, 2
|
|
ldrb r1, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
orrs r0, r3
|
|
strb r0, [r2]
|
|
_080356EA:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080356F4: .4byte gUnknown_2024018
|
|
_080356F8: .4byte gUnknown_823A004
|
|
thumb_func_end SpriteCB_EnemyShadow
|
|
|
|
thumb_func_start SpriteCB_SetInvisible
|
|
SpriteCB_SetInvisible: @ 80356FC
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
bx lr
|
|
thumb_func_end SpriteCB_SetInvisible
|
|
|
|
thumb_func_start SetBankEnemyShadowSpriteCallback
|
|
SetBankEnemyShadowSpriteCallback: @ 8035708
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r6, r4, 0
|
|
lsls r1, 16
|
|
lsrs r5, r1, 16
|
|
adds r0, r4, 0
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08035784
|
|
ldr r0, _08035758 @ =gUnknown_2024018
|
|
ldr r3, [r0]
|
|
ldr r1, [r3]
|
|
lsls r0, r4, 2
|
|
adds r1, r0, r1
|
|
ldrh r0, [r1, 0x2]
|
|
cmp r0, 0
|
|
beq _08035732
|
|
adds r5, r0, 0
|
|
_08035732:
|
|
ldr r0, _0803575C @ =gUnknown_823A004
|
|
adds r0, r5, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08035768
|
|
ldr r2, _08035760 @ =gSprites
|
|
ldr r1, [r3, 0x4]
|
|
lsls r0, r4, 1
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x7]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, _08035764 @ =SpriteCB_EnemyShadow
|
|
b _08035782
|
|
.align 2, 0
|
|
_08035758: .4byte gUnknown_2024018
|
|
_0803575C: .4byte gUnknown_823A004
|
|
_08035760: .4byte gSprites
|
|
_08035764: .4byte SpriteCB_EnemyShadow
|
|
_08035768:
|
|
ldr r2, _0803578C @ =gSprites
|
|
ldr r1, [r3, 0x4]
|
|
lsls r0, r6, 1
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x7]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, _08035790 @ =SpriteCB_SetInvisible
|
|
_08035782:
|
|
str r1, [r0]
|
|
_08035784:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0803578C: .4byte gSprites
|
|
_08035790: .4byte SpriteCB_SetInvisible
|
|
thumb_func_end SetBankEnemyShadowSpriteCallback
|
|
|
|
thumb_func_start EnemyShadowCallbackToSetInvisible
|
|
EnemyShadowCallbackToSetInvisible: @ 8035794
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080357BC @ =gSprites
|
|
ldr r1, _080357C0 @ =gUnknown_2024018
|
|
ldr r1, [r1]
|
|
ldr r3, [r1, 0x4]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
ldrb r1, [r1, 0x7]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, _080357C4 @ =SpriteCB_SetInvisible
|
|
str r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_080357BC: .4byte gSprites
|
|
_080357C0: .4byte gUnknown_2024018
|
|
_080357C4: .4byte SpriteCB_SetInvisible
|
|
thumb_func_end EnemyShadowCallbackToSetInvisible
|
|
|
|
thumb_func_start sub_80357C8
|
|
sub_80357C8: @ 80357C8
|
|
push {r4-r7,lr}
|
|
ldr r2, _08035894 @ =0x06000240
|
|
movs r7, 0xF0
|
|
lsls r7, 8
|
|
movs r5, 0x8
|
|
_080357D2:
|
|
movs r4, 0xF
|
|
_080357D4:
|
|
ldrh r1, [r2]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080357E4
|
|
adds r0, r7, 0
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
_080357E4:
|
|
ldrh r1, [r2]
|
|
movs r6, 0xF0
|
|
lsls r6, 4
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080357F8
|
|
adds r0, r6, 0
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
_080357F8:
|
|
ldrh r1, [r2]
|
|
movs r3, 0xF0
|
|
movs r0, 0xF0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803580A
|
|
adds r0, r1, 0
|
|
orrs r0, r3
|
|
strh r0, [r2]
|
|
_0803580A:
|
|
ldrh r1, [r2]
|
|
movs r3, 0xF
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803581C
|
|
adds r0, r1, 0
|
|
orrs r0, r3
|
|
strh r0, [r2]
|
|
_0803581C:
|
|
adds r2, 0x2
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _080357D4
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _080357D2
|
|
ldr r2, _08035898 @ =0x06000600
|
|
movs r5, 0
|
|
movs r7, 0xF0
|
|
lsls r7, 8
|
|
_08035832:
|
|
adds r3, r5, 0x1
|
|
movs r4, 0xF
|
|
_08035836:
|
|
ldrh r1, [r2]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803584A
|
|
movs r5, 0xC0
|
|
lsls r5, 7
|
|
adds r0, r5, 0
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
_0803584A:
|
|
ldrh r1, [r2]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803585E
|
|
movs r5, 0xC0
|
|
lsls r5, 3
|
|
adds r0, r5, 0
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
_0803585E:
|
|
ldrh r1, [r2]
|
|
movs r0, 0xF0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803586E
|
|
movs r0, 0x60
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
_0803586E:
|
|
ldrh r1, [r2]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803587E
|
|
movs r0, 0x6
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
_0803587E:
|
|
adds r2, 0x2
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _08035836
|
|
adds r5, r3, 0
|
|
cmp r5, 0x11
|
|
ble _08035832
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08035894: .4byte 0x06000240
|
|
_08035898: .4byte 0x06000600
|
|
thumb_func_end sub_80357C8
|
|
|
|
thumb_func_start ClearTemporarySpeciesSpriteData
|
|
ClearTemporarySpeciesSpriteData: @ 803589C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 24
|
|
ldr r0, _080358CC @ =gUnknown_2024018
|
|
ldr r0, [r0]
|
|
ldr r2, [r0]
|
|
lsls r0, r4, 2
|
|
adds r0, r2
|
|
movs r3, 0
|
|
movs r2, 0
|
|
strh r2, [r0, 0x2]
|
|
ldr r0, _080358D0 @ =gBattleMonForms
|
|
adds r0, r4, r0
|
|
strb r3, [r0]
|
|
cmp r1, 0
|
|
bne _080358C4
|
|
adds r0, r4, 0
|
|
bl ClearBehindSubstituteBit
|
|
_080358C4:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080358CC: .4byte gUnknown_2024018
|
|
_080358D0: .4byte gBattleMonForms
|
|
thumb_func_end ClearTemporarySpeciesSpriteData
|
|
|
|
thumb_func_start AllocateMonSpritesGfx
|
|
AllocateMonSpritesGfx: @ 80358D4
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r6, 0
|
|
ldr r4, _080359A4 @ =gMonSpritesGfxPtr
|
|
str r6, [r4]
|
|
movs r0, 0xC0
|
|
lsls r0, 1
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
bl AllocZeroed
|
|
ldr r1, [r4]
|
|
str r0, [r1]
|
|
_080358FA:
|
|
ldr r0, _080359A4 @ =gMonSpritesGfxPtr
|
|
ldr r1, [r0]
|
|
lsls r4, r6, 2
|
|
adds r2, r1, 0x4
|
|
adds r2, r4
|
|
lsls r3, r6, 13
|
|
ldr r0, [r1]
|
|
adds r0, r3
|
|
str r0, [r2]
|
|
lsls r3, r6, 1
|
|
adds r0, r3, r6
|
|
lsls r0, 3
|
|
adds r1, r0, r1
|
|
ldr r2, _080359A8 @ =gUnknown_825DEF0
|
|
adds r1, 0x14
|
|
adds r0, r2
|
|
ldm r0!, {r2,r5,r7}
|
|
stm r1!, {r2,r5,r7}
|
|
ldm r0!, {r2,r5,r7}
|
|
stm r1!, {r2,r5,r7}
|
|
movs r5, 0
|
|
mov r9, r3
|
|
lsls r0, r6, 5
|
|
mov r8, r0
|
|
adds r1, r6, 0x1
|
|
mov r10, r1
|
|
mov r12, r8
|
|
adds r7, r4, 0
|
|
_08035932:
|
|
ldr r2, _080359A4 @ =gMonSpritesGfxPtr
|
|
ldr r1, [r2]
|
|
lsls r4, r5, 3
|
|
add r4, r12
|
|
adds r3, r1, 0
|
|
adds r3, 0x74
|
|
adds r3, r4
|
|
adds r0, r1, 0x4
|
|
adds r0, r7
|
|
lsls r2, r5, 11
|
|
ldr r0, [r0]
|
|
adds r0, r2
|
|
str r0, [r3]
|
|
adds r1, r4
|
|
adds r1, 0x78
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
strh r0, [r1]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x3
|
|
bls _08035932
|
|
ldr r1, _080359A4 @ =gMonSpritesGfxPtr
|
|
ldr r2, [r1]
|
|
mov r5, r9
|
|
adds r0, r5, r6
|
|
lsls r0, 3
|
|
adds r1, r2, 0
|
|
adds r1, 0x20
|
|
adds r1, r0
|
|
mov r0, r8
|
|
adds r0, 0x74
|
|
adds r2, r0
|
|
str r2, [r1]
|
|
mov r7, r10
|
|
lsls r0, r7, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x3
|
|
bls _080358FA
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
bl AllocZeroed
|
|
ldr r1, _080359A4 @ =gMonSpritesGfxPtr
|
|
ldr r1, [r1]
|
|
movs r2, 0xBA
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
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
|
|
_080359A4: .4byte gMonSpritesGfxPtr
|
|
_080359A8: .4byte gUnknown_825DEF0
|
|
thumb_func_end AllocateMonSpritesGfx
|
|
|
|
thumb_func_start FreeMonSpritesGfx
|
|
FreeMonSpritesGfx: @ 80359AC
|
|
push {r4-r6,lr}
|
|
ldr r6, _08035A24 @ =gMonSpritesGfxPtr
|
|
ldr r0, [r6]
|
|
cmp r0, 0
|
|
beq _08035A1E
|
|
movs r1, 0xBE
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _080359D2
|
|
bl Free
|
|
ldr r0, [r6]
|
|
movs r1, 0xBE
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
_080359D2:
|
|
ldr r0, [r6]
|
|
movs r1, 0xBC
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _080359F0
|
|
bl Free
|
|
ldr r0, [r6]
|
|
movs r1, 0xBC
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
_080359F0:
|
|
ldr r0, [r6]
|
|
movs r5, 0xBA
|
|
lsls r5, 1
|
|
adds r0, r5
|
|
ldr r0, [r0]
|
|
bl Free
|
|
ldr r0, [r6]
|
|
adds r5, r0, r5
|
|
movs r4, 0
|
|
str r4, [r5]
|
|
ldr r0, [r0]
|
|
bl Free
|
|
ldr r0, [r6]
|
|
str r4, [r0]
|
|
str r4, [r0, 0x4]
|
|
str r4, [r0, 0x8]
|
|
str r4, [r0, 0xC]
|
|
str r4, [r0, 0x10]
|
|
bl Free
|
|
str r4, [r6]
|
|
_08035A1E:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08035A24: .4byte gMonSpritesGfxPtr
|
|
thumb_func_end FreeMonSpritesGfx
|
|
|
|
thumb_func_start ShouldPlayNormalPokeCry
|
|
ShouldPlayNormalPokeCry: @ 8035A28
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0x37
|
|
bl GetMonData
|
|
ldr r1, _08035A6C @ =0x00000fff
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _08035A70
|
|
adds r0, r5, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
adds r0, r5, 0
|
|
movs r1, 0x3A
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r0, r4, 0
|
|
bl GetHPBarLevel
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
ble _08035A70
|
|
movs r0, 0x1
|
|
b _08035A72
|
|
.align 2, 0
|
|
_08035A6C: .4byte 0x00000fff
|
|
_08035A70:
|
|
movs r0, 0
|
|
_08035A72:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end ShouldPlayNormalPokeCry
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|