battle_anim_mon_movement: through sub_8099004
This commit is contained in:
@@ -5,872 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_80989F8
|
||||
sub_80989F8: @ 80989F8
|
||||
push {r4,r5,lr}
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
ldr r4, _08098A18 @ =gBattleAnimArgs
|
||||
ldrb r0, [r4]
|
||||
bl GetAnimBankSpriteId
|
||||
lsls r0, 24
|
||||
lsrs r2, r0, 24
|
||||
cmp r2, 0xFF
|
||||
bne _08098A1C
|
||||
adds r0, r5, 0
|
||||
bl DestroyAnimVisualTask
|
||||
b _08098A58
|
||||
.align 2, 0
|
||||
_08098A18: .4byte gBattleAnimArgs
|
||||
_08098A1C:
|
||||
ldr r1, _08098A60 @ =gSprites
|
||||
lsls r0, r2, 4
|
||||
adds r0, r2
|
||||
lsls r0, 2
|
||||
adds r0, r1
|
||||
ldrh r1, [r4, 0x2]
|
||||
strh r1, [r0, 0x24]
|
||||
ldrh r1, [r4, 0x4]
|
||||
strh r1, [r0, 0x26]
|
||||
ldr r1, _08098A64 @ =gTasks
|
||||
lsls r0, r5, 2
|
||||
adds r0, r5
|
||||
lsls r0, 3
|
||||
adds r0, r1
|
||||
strh r2, [r0, 0x8]
|
||||
ldrh r1, [r4, 0x6]
|
||||
strh r1, [r0, 0xA]
|
||||
ldrh r1, [r4, 0x8]
|
||||
strh r1, [r0, 0xC]
|
||||
ldrh r1, [r4, 0x8]
|
||||
strh r1, [r0, 0xE]
|
||||
ldrh r1, [r4, 0x2]
|
||||
strh r1, [r0, 0x10]
|
||||
ldrh r1, [r4, 0x4]
|
||||
strh r1, [r0, 0x12]
|
||||
ldr r1, _08098A68 @ =sub_8098A6C
|
||||
str r1, [r0]
|
||||
adds r0, r5, 0
|
||||
bl _call_via_r1
|
||||
_08098A58:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08098A60: .4byte gSprites
|
||||
_08098A64: .4byte gTasks
|
||||
_08098A68: .4byte sub_8098A6C
|
||||
thumb_func_end sub_80989F8
|
||||
|
||||
thumb_func_start sub_8098A6C
|
||||
sub_8098A6C: @ 8098A6C
|
||||
push {r4-r7,lr}
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
ldr r1, _08098AA8 @ =gTasks
|
||||
lsls r0, r4, 2
|
||||
adds r0, r4
|
||||
lsls r0, 3
|
||||
adds r3, r0, r1
|
||||
ldrh r0, [r3, 0xE]
|
||||
movs r2, 0xE
|
||||
ldrsh r5, [r3, r2]
|
||||
adds r7, r1, 0
|
||||
cmp r5, 0
|
||||
bne _08098B12
|
||||
ldr r2, _08098AAC @ =gSprites
|
||||
movs r6, 0x8
|
||||
ldrsh r1, [r3, r6]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r1, r0, r2
|
||||
movs r6, 0x24
|
||||
ldrsh r0, [r1, r6]
|
||||
adds r6, r2, 0
|
||||
cmp r0, 0
|
||||
bne _08098AB0
|
||||
ldrh r0, [r3, 0x10]
|
||||
strh r0, [r1, 0x24]
|
||||
b _08098AB2
|
||||
.align 2, 0
|
||||
_08098AA8: .4byte gTasks
|
||||
_08098AAC: .4byte gSprites
|
||||
_08098AB0:
|
||||
strh r5, [r1, 0x24]
|
||||
_08098AB2:
|
||||
lsls r2, r4, 2
|
||||
adds r0, r2, r4
|
||||
lsls r0, 3
|
||||
adds r3, r0, r7
|
||||
movs r0, 0x8
|
||||
ldrsh r1, [r3, r0]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r1, r0, r6
|
||||
movs r5, 0x26
|
||||
ldrsh r0, [r1, r5]
|
||||
cmp r0, 0
|
||||
bne _08098AD2
|
||||
ldrh r0, [r3, 0x12]
|
||||
b _08098AD4
|
||||
_08098AD2:
|
||||
movs r0, 0
|
||||
_08098AD4:
|
||||
strh r0, [r1, 0x26]
|
||||
adds r0, r2, r4
|
||||
lsls r0, 3
|
||||
adds r2, r0, r7
|
||||
ldrh r0, [r2, 0xC]
|
||||
strh r0, [r2, 0xE]
|
||||
ldrh r0, [r2, 0xA]
|
||||
subs r0, 0x1
|
||||
strh r0, [r2, 0xA]
|
||||
lsls r0, 16
|
||||
asrs r3, r0, 16
|
||||
cmp r3, 0
|
||||
bne _08098B16
|
||||
movs r0, 0x8
|
||||
ldrsh r1, [r2, r0]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r6
|
||||
strh r3, [r0, 0x24]
|
||||
movs r5, 0x8
|
||||
ldrsh r1, [r2, r5]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r6
|
||||
strh r3, [r0, 0x26]
|
||||
adds r0, r4, 0
|
||||
bl DestroyAnimVisualTask
|
||||
b _08098B16
|
||||
_08098B12:
|
||||
subs r0, 0x1
|
||||
strh r0, [r3, 0xE]
|
||||
_08098B16:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8098A6C
|
||||
|
||||
thumb_func_start sub_8098B1C
|
||||
sub_8098B1C: @ 8098B1C
|
||||
push {r4-r6,lr}
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
movs r6, 0
|
||||
ldr r2, _08098B44 @ =gBattleAnimArgs
|
||||
ldrh r0, [r2]
|
||||
movs r3, 0
|
||||
ldrsh r1, [r2, r3]
|
||||
cmp r1, 0x3
|
||||
bgt _08098B48
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl GetAnimBankSpriteId
|
||||
lsls r0, 24
|
||||
lsrs r3, r0, 24
|
||||
cmp r3, 0xFF
|
||||
bne _08098B9E
|
||||
b _08098BA2
|
||||
.align 2, 0
|
||||
_08098B44: .4byte gBattleAnimArgs
|
||||
_08098B48:
|
||||
cmp r1, 0x8
|
||||
beq _08098B94
|
||||
movs r1, 0
|
||||
ldrsh r0, [r2, r1]
|
||||
cmp r0, 0x5
|
||||
beq _08098B68
|
||||
cmp r0, 0x5
|
||||
bgt _08098B5E
|
||||
cmp r0, 0x4
|
||||
beq _08098B64
|
||||
b _08098B70
|
||||
_08098B5E:
|
||||
cmp r0, 0x6
|
||||
beq _08098B6C
|
||||
b _08098B70
|
||||
_08098B64:
|
||||
movs r0, 0
|
||||
b _08098B72
|
||||
_08098B68:
|
||||
movs r0, 0x2
|
||||
b _08098B72
|
||||
_08098B6C:
|
||||
movs r0, 0x1
|
||||
b _08098B72
|
||||
_08098B70:
|
||||
movs r0, 0x3
|
||||
_08098B72:
|
||||
bl GetBattlerAtPosition
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
adds r0, r4, 0
|
||||
bl sub_8072DF0
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08098B88
|
||||
movs r6, 0x1
|
||||
_08098B88:
|
||||
ldr r0, _08098B90 @ =gBattlerSpriteIds
|
||||
adds r0, r4, r0
|
||||
b _08098B9C
|
||||
.align 2, 0
|
||||
_08098B90: .4byte gBattlerSpriteIds
|
||||
_08098B94:
|
||||
ldr r1, _08098BAC @ =gBattlerSpriteIds
|
||||
ldr r0, _08098BB0 @ =gBattleAnimAttacker
|
||||
ldrb r0, [r0]
|
||||
adds r0, r1
|
||||
_08098B9C:
|
||||
ldrb r3, [r0]
|
||||
_08098B9E:
|
||||
cmp r6, 0
|
||||
beq _08098BB4
|
||||
_08098BA2:
|
||||
adds r0, r5, 0
|
||||
bl DestroyAnimVisualTask
|
||||
b _08098BF2
|
||||
.align 2, 0
|
||||
_08098BAC: .4byte gBattlerSpriteIds
|
||||
_08098BB0: .4byte gBattleAnimAttacker
|
||||
_08098BB4:
|
||||
ldr r1, _08098BF8 @ =gSprites
|
||||
lsls r0, r3, 4
|
||||
adds r0, r3
|
||||
lsls r0, 2
|
||||
adds r0, r1
|
||||
ldr r2, _08098BFC @ =gBattleAnimArgs
|
||||
ldrh r1, [r2, 0x2]
|
||||
strh r1, [r0, 0x24]
|
||||
ldrh r1, [r2, 0x4]
|
||||
strh r1, [r0, 0x26]
|
||||
ldr r1, _08098C00 @ =gTasks
|
||||
lsls r0, r5, 2
|
||||
adds r0, r5
|
||||
lsls r0, 3
|
||||
adds r0, r1
|
||||
strh r3, [r0, 0x8]
|
||||
ldrh r1, [r2, 0x6]
|
||||
strh r1, [r0, 0xA]
|
||||
ldrh r1, [r2, 0x8]
|
||||
strh r1, [r0, 0xC]
|
||||
ldrh r1, [r2, 0x8]
|
||||
strh r1, [r0, 0xE]
|
||||
ldrh r1, [r2, 0x2]
|
||||
strh r1, [r0, 0x10]
|
||||
ldrh r1, [r2, 0x4]
|
||||
strh r1, [r0, 0x12]
|
||||
ldr r1, _08098C04 @ =sub_8098C08
|
||||
str r1, [r0]
|
||||
adds r0, r5, 0
|
||||
bl _call_via_r1
|
||||
_08098BF2:
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08098BF8: .4byte gSprites
|
||||
_08098BFC: .4byte gBattleAnimArgs
|
||||
_08098C00: .4byte gTasks
|
||||
_08098C04: .4byte sub_8098C08
|
||||
thumb_func_end sub_8098B1C
|
||||
|
||||
thumb_func_start sub_8098C08
|
||||
sub_8098C08: @ 8098C08
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
ldr r1, _08098C4C @ =gTasks
|
||||
lsls r0, r6, 2
|
||||
adds r0, r6
|
||||
lsls r0, 3
|
||||
adds r3, r0, r1
|
||||
ldrh r2, [r3, 0xE]
|
||||
movs r4, 0xE
|
||||
ldrsh r0, [r3, r4]
|
||||
mov r12, r1
|
||||
cmp r0, 0
|
||||
bne _08098CC0
|
||||
ldr r2, _08098C50 @ =gSprites
|
||||
movs r7, 0x8
|
||||
ldrsh r1, [r3, r7]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r4, r0, r2
|
||||
movs r0, 0x24
|
||||
ldrsh r1, [r4, r0]
|
||||
ldrh r5, [r3, 0x10]
|
||||
movs r7, 0x10
|
||||
ldrsh r0, [r3, r7]
|
||||
adds r7, r2, 0
|
||||
cmp r1, r0
|
||||
bne _08098C54
|
||||
negs r0, r5
|
||||
strh r0, [r4, 0x24]
|
||||
b _08098C56
|
||||
.align 2, 0
|
||||
_08098C4C: .4byte gTasks
|
||||
_08098C50: .4byte gSprites
|
||||
_08098C54:
|
||||
strh r5, [r4, 0x24]
|
||||
_08098C56:
|
||||
lsls r3, r6, 2
|
||||
adds r1, r3, r6
|
||||
lsls r1, 3
|
||||
add r1, r12
|
||||
movs r0, 0x8
|
||||
ldrsh r2, [r1, r0]
|
||||
lsls r0, r2, 4
|
||||
adds r0, r2
|
||||
lsls r0, 2
|
||||
adds r4, r0, r7
|
||||
movs r0, 0x26
|
||||
ldrsh r2, [r4, r0]
|
||||
mov r8, r2
|
||||
ldrh r5, [r1, 0x12]
|
||||
movs r2, 0x12
|
||||
ldrsh r0, [r1, r2]
|
||||
cmp r8, r0
|
||||
bne _08098C80
|
||||
negs r0, r5
|
||||
strh r0, [r4, 0x26]
|
||||
b _08098C82
|
||||
_08098C80:
|
||||
strh r5, [r4, 0x26]
|
||||
_08098C82:
|
||||
adds r0, r3, r6
|
||||
lsls r0, 3
|
||||
mov r4, r12
|
||||
adds r3, r0, r4
|
||||
ldrh r0, [r3, 0xC]
|
||||
strh r0, [r3, 0xE]
|
||||
ldrh r0, [r3, 0xA]
|
||||
subs r0, 0x1
|
||||
strh r0, [r3, 0xA]
|
||||
lsls r0, 16
|
||||
asrs r2, r0, 16
|
||||
cmp r2, 0
|
||||
bne _08098CC4
|
||||
movs r0, 0x8
|
||||
ldrsh r1, [r3, r0]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r7
|
||||
strh r2, [r0, 0x24]
|
||||
movs r4, 0x8
|
||||
ldrsh r1, [r3, r4]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r7
|
||||
strh r2, [r0, 0x26]
|
||||
adds r0, r6, 0
|
||||
bl DestroyAnimVisualTask
|
||||
b _08098CC4
|
||||
_08098CC0:
|
||||
subs r0, r2, 0x1
|
||||
strh r0, [r3, 0xE]
|
||||
_08098CC4:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8098C08
|
||||
|
||||
thumb_func_start sub_8098CD0
|
||||
sub_8098CD0: @ 8098CD0
|
||||
push {r4-r6,lr}
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
ldr r4, _08098CF0 @ =gBattleAnimArgs
|
||||
ldrb r0, [r4]
|
||||
bl GetAnimBankSpriteId
|
||||
lsls r0, 24
|
||||
lsrs r3, r0, 24
|
||||
cmp r3, 0xFF
|
||||
bne _08098CF4
|
||||
adds r0, r5, 0
|
||||
bl DestroyAnimVisualTask
|
||||
b _08098D42
|
||||
.align 2, 0
|
||||
_08098CF0: .4byte gBattleAnimArgs
|
||||
_08098CF4:
|
||||
ldr r0, _08098D48 @ =gSprites
|
||||
lsls r1, r3, 4
|
||||
adds r1, r3
|
||||
lsls r1, 2
|
||||
adds r1, r0
|
||||
ldrh r0, [r4, 0x2]
|
||||
ldrh r2, [r1, 0x24]
|
||||
adds r0, r2
|
||||
movs r2, 0
|
||||
strh r0, [r1, 0x24]
|
||||
ldrh r0, [r4, 0x4]
|
||||
ldrh r6, [r1, 0x26]
|
||||
adds r0, r6
|
||||
strh r0, [r1, 0x26]
|
||||
ldr r0, _08098D4C @ =gTasks
|
||||
lsls r1, r5, 2
|
||||
adds r1, r5
|
||||
lsls r1, 3
|
||||
adds r1, r0
|
||||
strh r3, [r1, 0x8]
|
||||
strh r2, [r1, 0xA]
|
||||
ldrh r0, [r4, 0x6]
|
||||
strh r0, [r1, 0xC]
|
||||
strh r2, [r1, 0xE]
|
||||
ldrh r0, [r4, 0x8]
|
||||
strh r0, [r1, 0x10]
|
||||
movs r2, 0x2
|
||||
ldrsh r0, [r4, r2]
|
||||
lsls r0, 1
|
||||
strh r0, [r1, 0x12]
|
||||
movs r6, 0x4
|
||||
ldrsh r0, [r4, r6]
|
||||
lsls r0, 1
|
||||
strh r0, [r1, 0x14]
|
||||
ldr r2, _08098D50 @ =sub_8098D54
|
||||
str r2, [r1]
|
||||
adds r0, r5, 0
|
||||
bl _call_via_r2
|
||||
_08098D42:
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08098D48: .4byte gSprites
|
||||
_08098D4C: .4byte gTasks
|
||||
_08098D50: .4byte sub_8098D54
|
||||
thumb_func_end sub_8098CD0
|
||||
|
||||
thumb_func_start sub_8098D54
|
||||
sub_8098D54: @ 8098D54
|
||||
push {r4-r6,lr}
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
ldr r1, _08098DAC @ =gTasks
|
||||
lsls r0, r5, 2
|
||||
adds r0, r5
|
||||
lsls r0, 3
|
||||
adds r4, r0, r1
|
||||
ldrh r2, [r4, 0xE]
|
||||
movs r3, 0xE
|
||||
ldrsh r0, [r4, r3]
|
||||
adds r6, r1, 0
|
||||
cmp r0, 0
|
||||
beq _08098D72
|
||||
b _08098E84
|
||||
_08098D72:
|
||||
ldrh r1, [r4, 0xA]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08098DB4
|
||||
ldr r2, _08098DB0 @ =gSprites
|
||||
movs r0, 0x8
|
||||
ldrsh r1, [r4, r0]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r2
|
||||
ldrh r1, [r4, 0x12]
|
||||
ldrh r3, [r0, 0x24]
|
||||
adds r1, r3
|
||||
strh r1, [r0, 0x24]
|
||||
movs r0, 0x8
|
||||
ldrsh r1, [r4, r0]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r2
|
||||
ldrh r1, [r4, 0x14]
|
||||
ldrh r3, [r0, 0x26]
|
||||
adds r1, r3
|
||||
strh r1, [r0, 0x26]
|
||||
adds r3, r2, 0
|
||||
b _08098DDE
|
||||
.align 2, 0
|
||||
_08098DAC: .4byte gTasks
|
||||
_08098DB0: .4byte gSprites
|
||||
_08098DB4:
|
||||
ldr r3, _08098E40 @ =gSprites
|
||||
movs r0, 0x8
|
||||
ldrsh r1, [r4, r0]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r3
|
||||
ldrh r1, [r0, 0x24]
|
||||
ldrh r2, [r4, 0x12]
|
||||
subs r1, r2
|
||||
strh r1, [r0, 0x24]
|
||||
movs r2, 0x8
|
||||
ldrsh r1, [r4, r2]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r3
|
||||
ldrh r1, [r0, 0x26]
|
||||
ldrh r2, [r4, 0x14]
|
||||
subs r1, r2
|
||||
strh r1, [r0, 0x26]
|
||||
_08098DDE:
|
||||
lsls r0, r5, 2
|
||||
adds r0, r5
|
||||
lsls r0, 3
|
||||
adds r4, r0, r6
|
||||
ldrh r0, [r4, 0x10]
|
||||
strh r0, [r4, 0xE]
|
||||
ldrh r0, [r4, 0xA]
|
||||
adds r2, r0, 0x1
|
||||
strh r2, [r4, 0xA]
|
||||
lsls r0, r2, 16
|
||||
asrs r0, 16
|
||||
movs r6, 0xC
|
||||
ldrsh r1, [r4, r6]
|
||||
cmp r0, r1
|
||||
blt _08098E88
|
||||
movs r0, 0x1
|
||||
ands r2, r0
|
||||
cmp r2, 0
|
||||
beq _08098E44
|
||||
movs r1, 0x8
|
||||
ldrsh r0, [r4, r1]
|
||||
lsls r1, r0, 4
|
||||
adds r1, r0
|
||||
lsls r1, 2
|
||||
adds r1, r3
|
||||
movs r2, 0x12
|
||||
ldrsh r0, [r4, r2]
|
||||
lsrs r2, r0, 31
|
||||
adds r0, r2
|
||||
asrs r0, 1
|
||||
ldrh r6, [r1, 0x24]
|
||||
adds r0, r6
|
||||
strh r0, [r1, 0x24]
|
||||
movs r1, 0x8
|
||||
ldrsh r0, [r4, r1]
|
||||
lsls r1, r0, 4
|
||||
adds r1, r0
|
||||
lsls r1, 2
|
||||
adds r1, r3
|
||||
movs r2, 0x14
|
||||
ldrsh r0, [r4, r2]
|
||||
lsrs r2, r0, 31
|
||||
adds r0, r2
|
||||
asrs r0, 1
|
||||
ldrh r3, [r1, 0x26]
|
||||
adds r0, r3
|
||||
strh r0, [r1, 0x26]
|
||||
b _08098E7C
|
||||
.align 2, 0
|
||||
_08098E40: .4byte gSprites
|
||||
_08098E44:
|
||||
movs r6, 0x8
|
||||
ldrsh r0, [r4, r6]
|
||||
lsls r2, r0, 4
|
||||
adds r2, r0
|
||||
lsls r2, 2
|
||||
adds r2, r3
|
||||
movs r0, 0x12
|
||||
ldrsh r1, [r4, r0]
|
||||
lsrs r0, r1, 31
|
||||
adds r1, r0
|
||||
asrs r1, 1
|
||||
ldrh r0, [r2, 0x24]
|
||||
subs r0, r1
|
||||
strh r0, [r2, 0x24]
|
||||
movs r1, 0x8
|
||||
ldrsh r0, [r4, r1]
|
||||
lsls r2, r0, 4
|
||||
adds r2, r0
|
||||
lsls r2, 2
|
||||
adds r2, r3
|
||||
movs r3, 0x14
|
||||
ldrsh r1, [r4, r3]
|
||||
lsrs r0, r1, 31
|
||||
adds r1, r0
|
||||
asrs r1, 1
|
||||
ldrh r0, [r2, 0x26]
|
||||
subs r0, r1
|
||||
strh r0, [r2, 0x26]
|
||||
_08098E7C:
|
||||
adds r0, r5, 0
|
||||
bl DestroyAnimVisualTask
|
||||
b _08098E88
|
||||
_08098E84:
|
||||
subs r0, r2, 0x1
|
||||
strh r0, [r4, 0xE]
|
||||
_08098E88:
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8098D54
|
||||
|
||||
thumb_func_start sub_8098E90
|
||||
sub_8098E90: @ 8098E90
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
ldr r5, _08098EE0 @ =gBattleAnimArgs
|
||||
ldrb r0, [r5]
|
||||
bl GetAnimBankSpriteId
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
ldr r2, _08098EE4 @ =gSprites
|
||||
lsls r1, r0, 4
|
||||
adds r1, r0
|
||||
lsls r1, 2
|
||||
adds r1, r2
|
||||
ldrh r2, [r5, 0x2]
|
||||
strh r2, [r1, 0x24]
|
||||
ldr r2, _08098EE8 @ =gTasks
|
||||
lsls r1, r4, 2
|
||||
adds r1, r4
|
||||
lsls r1, 3
|
||||
adds r1, r2
|
||||
strh r0, [r1, 0x8]
|
||||
ldrh r0, [r5, 0x2]
|
||||
strh r0, [r1, 0xA]
|
||||
ldrh r0, [r5, 0x4]
|
||||
strh r0, [r1, 0xC]
|
||||
ldrh r0, [r5, 0x6]
|
||||
strh r0, [r1, 0xE]
|
||||
ldrh r0, [r5, 0x8]
|
||||
strh r0, [r1, 0x10]
|
||||
ldr r2, _08098EEC @ =sub_8098EF0
|
||||
str r2, [r1]
|
||||
adds r0, r4, 0
|
||||
bl _call_via_r2
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08098EE0: .4byte gBattleAnimArgs
|
||||
_08098EE4: .4byte gSprites
|
||||
_08098EE8: .4byte gTasks
|
||||
_08098EEC: .4byte sub_8098EF0
|
||||
thumb_func_end sub_8098E90
|
||||
|
||||
thumb_func_start sub_8098EF0
|
||||
sub_8098EF0: @ 8098EF0
|
||||
push {r4-r7,lr}
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
ldr r2, _08098F7C @ =gTasks
|
||||
lsls r0, r6, 2
|
||||
adds r0, r6
|
||||
lsls r0, 3
|
||||
adds r3, r0, r2
|
||||
ldrb r5, [r3, 0x8]
|
||||
ldrh r4, [r3, 0xA]
|
||||
ldrh r1, [r3, 0x18]
|
||||
adds r0, r1, 0x1
|
||||
strh r0, [r3, 0x18]
|
||||
movs r7, 0xC
|
||||
ldrsh r0, [r3, r7]
|
||||
lsls r1, 16
|
||||
asrs r1, 16
|
||||
mov r12, r2
|
||||
ldr r7, _08098F80 @ =gSprites
|
||||
cmp r0, r1
|
||||
bne _08098F42
|
||||
movs r0, 0
|
||||
strh r0, [r3, 0x18]
|
||||
lsls r0, r5, 4
|
||||
adds r0, r5
|
||||
lsls r0, 2
|
||||
adds r1, r0, r7
|
||||
ldrh r3, [r1, 0x24]
|
||||
movs r0, 0x24
|
||||
ldrsh r2, [r1, r0]
|
||||
lsls r0, r4, 16
|
||||
asrs r0, 16
|
||||
cmp r2, r0
|
||||
bne _08098F3A
|
||||
negs r0, r2
|
||||
lsls r0, 16
|
||||
lsrs r4, r0, 16
|
||||
_08098F3A:
|
||||
lsls r0, r4, 16
|
||||
asrs r0, 16
|
||||
adds r0, r3
|
||||
strh r0, [r1, 0x24]
|
||||
_08098F42:
|
||||
lsls r2, r6, 2
|
||||
adds r2, r6
|
||||
lsls r2, 3
|
||||
add r2, r12
|
||||
strh r4, [r2, 0xA]
|
||||
ldrh r1, [r2, 0xE]
|
||||
ldrh r0, [r2, 0x1A]
|
||||
adds r1, r0
|
||||
strh r1, [r2, 0x1A]
|
||||
lsls r0, r5, 4
|
||||
adds r0, r5
|
||||
lsls r0, 2
|
||||
adds r0, r7
|
||||
lsls r1, 16
|
||||
asrs r1, 24
|
||||
strh r1, [r0, 0x26]
|
||||
ldrh r0, [r2, 0x10]
|
||||
subs r0, 0x1
|
||||
strh r0, [r2, 0x10]
|
||||
lsls r0, 16
|
||||
cmp r0, 0
|
||||
bne _08098F74
|
||||
adds r0, r6, 0
|
||||
bl DestroyAnimVisualTask
|
||||
_08098F74:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08098F7C: .4byte gTasks
|
||||
_08098F80: .4byte gSprites
|
||||
thumb_func_end sub_8098EF0
|
||||
|
||||
thumb_func_start sub_8098F84
|
||||
sub_8098F84: @ 8098F84
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
movs r6, 0x1
|
||||
ldr r4, _08098FF8 @ =gBattleAnimArgs
|
||||
ldrb r0, [r4]
|
||||
bl GetAnimBankSpriteId
|
||||
lsls r0, 24
|
||||
lsrs r7, r0, 24
|
||||
movs r1, 0x8
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, 0x5
|
||||
ble _08098FA8
|
||||
movs r0, 0x5
|
||||
strh r0, [r4, 0x8]
|
||||
_08098FA8:
|
||||
movs r1, 0
|
||||
movs r2, 0x8
|
||||
ldrsh r0, [r4, r2]
|
||||
adds r3, r4, 0
|
||||
ldr r2, _08098FFC @ =gTasks
|
||||
mov r12, r2
|
||||
lsls r4, r5, 2
|
||||
ldr r2, _08099000 @ =sub_8099004
|
||||
mov r8, r2
|
||||
cmp r1, r0
|
||||
bge _08098FCE
|
||||
adds r2, r0, 0
|
||||
_08098FC0:
|
||||
lsls r0, r6, 25
|
||||
lsrs r6, r0, 24
|
||||
adds r0, r1, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r1, r0, 24
|
||||
cmp r1, r2
|
||||
blt _08098FC0
|
||||
_08098FCE:
|
||||
adds r0, r4, r5
|
||||
lsls r0, 3
|
||||
add r0, r12
|
||||
strh r7, [r0, 0x8]
|
||||
ldrh r1, [r3, 0x2]
|
||||
strh r1, [r0, 0xA]
|
||||
ldrh r1, [r3, 0x4]
|
||||
strh r1, [r0, 0xC]
|
||||
ldrh r1, [r3, 0x6]
|
||||
strh r1, [r0, 0xE]
|
||||
strh r6, [r0, 0x10]
|
||||
mov r1, r8
|
||||
str r1, [r0]
|
||||
adds r0, r5, 0
|
||||
bl _call_via_r8
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08098FF8: .4byte gBattleAnimArgs
|
||||
_08098FFC: .4byte gTasks
|
||||
_08099000: .4byte sub_8099004
|
||||
thumb_func_end sub_8098F84
|
||||
|
||||
thumb_func_start sub_8099004
|
||||
sub_8099004: @ 8099004
|
||||
push {r4-r6,lr}
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
adds r6, r0, 0
|
||||
ldr r1, _08099074 @ =gTasks
|
||||
lsls r0, r6, 2
|
||||
adds r0, r6
|
||||
lsls r0, 3
|
||||
adds r5, r0, r1
|
||||
ldrb r4, [r5, 0x8]
|
||||
movs r1, 0x12
|
||||
ldrsh r0, [r5, r1]
|
||||
movs r2, 0xA
|
||||
ldrsh r1, [r5, r2]
|
||||
bl Sin
|
||||
ldr r2, _08099078 @ =gSprites
|
||||
lsls r1, r4, 4
|
||||
adds r1, r4
|
||||
lsls r1, 2
|
||||
adds r4, r1, r2
|
||||
strh r0, [r4, 0x24]
|
||||
movs r1, 0x12
|
||||
ldrsh r0, [r5, r1]
|
||||
movs r2, 0xC
|
||||
ldrsh r1, [r5, r2]
|
||||
bl Cos
|
||||
negs r0, r0
|
||||
strh r0, [r4, 0x26]
|
||||
ldrh r1, [r5, 0xC]
|
||||
adds r0, r1
|
||||
strh r0, [r4, 0x26]
|
||||
ldrh r0, [r5, 0x10]
|
||||
ldrh r1, [r5, 0x12]
|
||||
adds r0, r1
|
||||
movs r1, 0xFF
|
||||
ands r0, r1
|
||||
strh r0, [r5, 0x12]
|
||||
cmp r0, 0
|
||||
bne _0809905C
|
||||
ldrh r0, [r5, 0xE]
|
||||
subs r0, 0x1
|
||||
strh r0, [r5, 0xE]
|
||||
_0809905C:
|
||||
movs r2, 0xE
|
||||
ldrsh r0, [r5, r2]
|
||||
cmp r0, 0
|
||||
bne _0809906E
|
||||
strh r0, [r4, 0x24]
|
||||
strh r0, [r4, 0x26]
|
||||
adds r0, r6, 0
|
||||
bl DestroyAnimVisualTask
|
||||
_0809906E:
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08099074: .4byte gTasks
|
||||
_08099078: .4byte gSprites
|
||||
thumb_func_end sub_8099004
|
||||
|
||||
thumb_func_start sub_809907C
|
||||
sub_809907C: @ 809907C
|
||||
push {r4,lr}
|
||||
|
||||
@@ -63,6 +63,8 @@ extern u8 gAnimBankAttacker;
|
||||
extern u8 gAnimBankTarget;
|
||||
extern u16 gAnimSpeciesByBanks[BATTLE_BANKS_COUNT];
|
||||
extern u8 gUnknown_02038440;
|
||||
extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT];
|
||||
extern u8 gBattleAnimAttacker;
|
||||
|
||||
void ClearBattleAnimationVars(void);
|
||||
void DoMoveAnim(u16 move);
|
||||
@@ -77,6 +79,7 @@ s8 BattleAnimAdjustPanning(s8 pan);
|
||||
s8 BattleAnimAdjustPanning2(s8 pan);
|
||||
s16 sub_80A52EC(s16 a);
|
||||
s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan);
|
||||
bool8 sub_8072DF0(u8 battlerId);
|
||||
|
||||
// battle_anim_80FE840.s
|
||||
void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value);
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
#include "global.h"
|
||||
#include "battle.h"
|
||||
#include "battle_anim.h"
|
||||
#include "task.h"
|
||||
#include "trig.h"
|
||||
|
||||
void sub_8098A6C(u8 taskId);
|
||||
void sub_8098C08(u8 taskId);
|
||||
void sub_8098D54(u8 taskId);
|
||||
void sub_8098EF0(u8 taskId);
|
||||
void sub_8099004(u8 taskId);
|
||||
void sub_80990AC(struct Sprite * sprite);
|
||||
void sub_8099144(struct Sprite * sprite);
|
||||
void sub_80991B4(struct Sprite * sprite);
|
||||
@@ -19,3 +28,248 @@ const struct SpriteTemplate gUnknown_83D4E4C[] = {
|
||||
0, 0, &gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8099394
|
||||
}
|
||||
};
|
||||
|
||||
void sub_80989F8(u8 taskId)
|
||||
{
|
||||
u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]);
|
||||
|
||||
if (spriteId == 0xFF)
|
||||
DestroyAnimVisualTask(taskId);
|
||||
else
|
||||
{
|
||||
gSprites[spriteId].pos2.x = gBattleAnimArgs[1];
|
||||
gSprites[spriteId].pos2.y = gBattleAnimArgs[2];
|
||||
gTasks[taskId].data[0] = spriteId;
|
||||
gTasks[taskId].data[1] = gBattleAnimArgs[3];
|
||||
gTasks[taskId].data[2] = gBattleAnimArgs[4];
|
||||
gTasks[taskId].data[3] = gBattleAnimArgs[4];
|
||||
gTasks[taskId].data[4] = gBattleAnimArgs[1];
|
||||
gTasks[taskId].data[5] = gBattleAnimArgs[2];
|
||||
gTasks[taskId].func = sub_8098A6C;
|
||||
gTasks[taskId].func(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8098A6C(u8 taskId)
|
||||
{
|
||||
if (gTasks[taskId].data[3] == 0)
|
||||
{
|
||||
if (gSprites[gTasks[taskId].data[0]].pos2.x == 0)
|
||||
gSprites[gTasks[taskId].data[0]].pos2.x = gTasks[taskId].data[4];
|
||||
else
|
||||
gSprites[gTasks[taskId].data[0]].pos2.x = 0;
|
||||
if (gSprites[gTasks[taskId].data[0]].pos2.y == 0)
|
||||
gSprites[gTasks[taskId].data[0]].pos2.y = gTasks[taskId].data[5];
|
||||
else
|
||||
gSprites[gTasks[taskId].data[0]].pos2.y = 0;
|
||||
gTasks[taskId].data[3] = gTasks[taskId].data[2];
|
||||
if (--gTasks[taskId].data[1] == 0)
|
||||
{
|
||||
gSprites[gTasks[taskId].data[0]].pos2.x = 0;
|
||||
gSprites[gTasks[taskId].data[0]].pos2.y = 0;
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
}
|
||||
else
|
||||
gTasks[taskId].data[3]--;
|
||||
}
|
||||
|
||||
void sub_8098B1C(u8 taskId)
|
||||
{
|
||||
bool8 abort = FALSE;
|
||||
u8 spriteId;
|
||||
u8 battlerId;
|
||||
|
||||
if (gBattleAnimArgs[0] < MAX_BATTLERS_COUNT)
|
||||
{
|
||||
spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]);
|
||||
if (spriteId == 0xFF)
|
||||
abort = TRUE;
|
||||
}
|
||||
else if (gBattleAnimArgs[0] != 8)
|
||||
{
|
||||
switch (gBattleAnimArgs[0])
|
||||
{
|
||||
case 4:
|
||||
battlerId = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
|
||||
break;
|
||||
case 5:
|
||||
battlerId = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT);
|
||||
break;
|
||||
case 6:
|
||||
battlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
|
||||
break;
|
||||
default:
|
||||
battlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
|
||||
break;
|
||||
}
|
||||
if (!sub_8072DF0(battlerId))
|
||||
abort = TRUE;
|
||||
spriteId = gBattlerSpriteIds[battlerId];
|
||||
}
|
||||
else
|
||||
spriteId = gBattlerSpriteIds[gBattleAnimAttacker];
|
||||
if (abort)
|
||||
DestroyAnimVisualTask(taskId);
|
||||
else
|
||||
{
|
||||
gSprites[spriteId].pos2.x = gBattleAnimArgs[1];
|
||||
gSprites[spriteId].pos2.y = gBattleAnimArgs[2];
|
||||
gTasks[taskId].data[0] = spriteId;
|
||||
gTasks[taskId].data[1] = gBattleAnimArgs[3];
|
||||
gTasks[taskId].data[2] = gBattleAnimArgs[4];
|
||||
gTasks[taskId].data[3] = gBattleAnimArgs[4];
|
||||
gTasks[taskId].data[4] = gBattleAnimArgs[1];
|
||||
gTasks[taskId].data[5] = gBattleAnimArgs[2];
|
||||
gTasks[taskId].func = sub_8098C08;
|
||||
gTasks[taskId].func(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8098C08(u8 taskId)
|
||||
{
|
||||
if (gTasks[taskId].data[3] == 0)
|
||||
{
|
||||
if (gSprites[gTasks[taskId].data[0]].pos2.x == gTasks[taskId].data[4])
|
||||
gSprites[gTasks[taskId].data[0]].pos2.x = -gTasks[taskId].data[4];
|
||||
else
|
||||
gSprites[gTasks[taskId].data[0]].pos2.x = gTasks[taskId].data[4];
|
||||
if (gSprites[gTasks[taskId].data[0]].pos2.y == gTasks[taskId].data[5])
|
||||
gSprites[gTasks[taskId].data[0]].pos2.y = -gTasks[taskId].data[5];
|
||||
else
|
||||
gSprites[gTasks[taskId].data[0]].pos2.y = gTasks[taskId].data[5];
|
||||
gTasks[taskId].data[3] = gTasks[taskId].data[2];
|
||||
if (--gTasks[taskId].data[1] == 0)
|
||||
{
|
||||
gSprites[gTasks[taskId].data[0]].pos2.x = 0;
|
||||
gSprites[gTasks[taskId].data[0]].pos2.y = 0;
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
}
|
||||
else
|
||||
gTasks[taskId].data[3]--;
|
||||
}
|
||||
|
||||
void sub_8098CD0(u8 taskId)
|
||||
{
|
||||
u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]);
|
||||
|
||||
if (spriteId == 0xFF)
|
||||
DestroyAnimVisualTask(taskId);
|
||||
else
|
||||
{
|
||||
gSprites[spriteId].pos2.x += gBattleAnimArgs[1];
|
||||
gSprites[spriteId].pos2.y += gBattleAnimArgs[2];
|
||||
gTasks[taskId].data[0] = spriteId;
|
||||
gTasks[taskId].data[1] = 0;
|
||||
gTasks[taskId].data[2] = gBattleAnimArgs[3];
|
||||
gTasks[taskId].data[3] = 0;
|
||||
gTasks[taskId].data[4] = gBattleAnimArgs[4];
|
||||
gTasks[taskId].data[5] = gBattleAnimArgs[1] * 2;
|
||||
gTasks[taskId].data[6] = gBattleAnimArgs[2] * 2;
|
||||
gTasks[taskId].func = sub_8098D54;
|
||||
gTasks[taskId].func(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8098D54(u8 taskId)
|
||||
{
|
||||
if (gTasks[taskId].data[3] == 0)
|
||||
{
|
||||
if (gTasks[taskId].data[1] & 1)
|
||||
{
|
||||
gSprites[gTasks[taskId].data[0]].pos2.x += gTasks[taskId].data[5];
|
||||
gSprites[gTasks[taskId].data[0]].pos2.y += gTasks[taskId].data[6];
|
||||
}
|
||||
else
|
||||
{
|
||||
gSprites[gTasks[taskId].data[0]].pos2.x -= gTasks[taskId].data[5];
|
||||
gSprites[gTasks[taskId].data[0]].pos2.y -= gTasks[taskId].data[6];
|
||||
}
|
||||
gTasks[taskId].data[3] = gTasks[taskId].data[4];
|
||||
if (++gTasks[taskId].data[1] >= gTasks[taskId].data[2])
|
||||
{
|
||||
if (gTasks[taskId].data[1] & 1)
|
||||
{
|
||||
gSprites[gTasks[taskId].data[0]].pos2.x += gTasks[taskId].data[5] / 2;
|
||||
gSprites[gTasks[taskId].data[0]].pos2.y += gTasks[taskId].data[6] / 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
gSprites[gTasks[taskId].data[0]].pos2.x -= gTasks[taskId].data[5] / 2;
|
||||
gSprites[gTasks[taskId].data[0]].pos2.y -= gTasks[taskId].data[6] / 2;
|
||||
}
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
}
|
||||
else
|
||||
gTasks[taskId].data[3]--;
|
||||
}
|
||||
|
||||
void sub_8098E90(u8 taskId)
|
||||
{
|
||||
u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]);
|
||||
|
||||
gSprites[spriteId].pos2.x = gBattleAnimArgs[1];
|
||||
gTasks[taskId].data[0] = spriteId;
|
||||
gTasks[taskId].data[1] = gBattleAnimArgs[1];
|
||||
gTasks[taskId].data[2] = gBattleAnimArgs[2];
|
||||
gTasks[taskId].data[3] = gBattleAnimArgs[3];
|
||||
gTasks[taskId].data[4] = gBattleAnimArgs[4];
|
||||
gTasks[taskId].func = sub_8098EF0;
|
||||
gTasks[taskId].func(taskId);
|
||||
}
|
||||
|
||||
void sub_8098EF0(u8 taskId)
|
||||
{
|
||||
u8 spriteId = gTasks[taskId].data[0];
|
||||
s16 data1 = gTasks[taskId].data[1];
|
||||
if (gTasks[taskId].data[2] == gTasks[taskId].data[8]++)
|
||||
{
|
||||
gTasks[taskId].data[8] = 0;
|
||||
if (gSprites[spriteId].pos2.x == data1)
|
||||
data1 = -data1;
|
||||
gSprites[spriteId].pos2.x += data1;
|
||||
}
|
||||
gTasks[taskId].data[1] = data1;
|
||||
gTasks[taskId].data[9] += gTasks[taskId].data[3];
|
||||
gSprites[spriteId].pos2.y = gTasks[taskId].data[9] >> 8;
|
||||
if (--gTasks[taskId].data[4] == 0)
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
|
||||
void sub_8098F84(u8 taskId)
|
||||
{
|
||||
u8 r6 = 1;
|
||||
u8 i;
|
||||
u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]);
|
||||
if (gBattleAnimArgs[4] > 5)
|
||||
gBattleAnimArgs[4] = 5;
|
||||
for (i = 0; i < gBattleAnimArgs[4]; i++)
|
||||
r6 *= 2;
|
||||
gTasks[taskId].data[0] = spriteId;
|
||||
gTasks[taskId].data[1] = gBattleAnimArgs[1];
|
||||
gTasks[taskId].data[2] = gBattleAnimArgs[2];
|
||||
gTasks[taskId].data[3] = gBattleAnimArgs[3];
|
||||
gTasks[taskId].data[4] = r6;
|
||||
gTasks[taskId].func = sub_8099004;
|
||||
gTasks[taskId].func(taskId);
|
||||
}
|
||||
|
||||
void sub_8099004(u8 taskId)
|
||||
{
|
||||
u8 spriteId = gTasks[taskId].data[0];
|
||||
gSprites[spriteId].pos2.x = Sin(gTasks[taskId].data[5], gTasks[taskId].data[1]);
|
||||
gSprites[spriteId].pos2.y = -Cos(gTasks[taskId].data[5], gTasks[taskId].data[2]);
|
||||
gSprites[spriteId].pos2.y += gTasks[taskId].data[2];
|
||||
gTasks[taskId].data[5] += gTasks[taskId].data[4];
|
||||
gTasks[taskId].data[5] &= 0xFF;
|
||||
if (gTasks[taskId].data[5] == 0)
|
||||
gTasks[taskId].data[3]--;
|
||||
if (gTasks[taskId].data[3] == 0)
|
||||
{
|
||||
gSprites[spriteId].pos2.x = 0;
|
||||
gSprites[spriteId].pos2.y = 0;
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user