summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/battle_anim_80CA710.s418
-rwxr-xr-xsrc/battle_anim_80CA710.c233
2 files changed, 232 insertions, 419 deletions
diff --git a/asm/battle_anim_80CA710.s b/asm/battle_anim_80CA710.s
index da2250042..ddfce03a8 100644
--- a/asm/battle_anim_80CA710.s
+++ b/asm/battle_anim_80CA710.s
@@ -6,424 +6,6 @@
.text
- thumb_func_start sub_80CB4CC
-sub_80CB4CC: @ 80CB4CC
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080CB4DE
- cmp r0, 0x1
- beq _080CB538
- b _080CB58A
-_080CB4DE:
- ldr r6, _080CB530 @ =gBattleAnimEnemyMonIndex
- ldrb r0, [r6]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080CB4F6
- ldr r1, _080CB534 @ =gBattleAnimArgs
- movs r2, 0
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1]
-_080CB4F6:
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080CB534 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r6]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
- strh r0, [r5, 0x22]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080CB58A
- .align 2, 0
-_080CB530: .4byte gBattleAnimEnemyMonIndex
-_080CB534: .4byte gBattleAnimArgs
-_080CB538:
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080CB58A
- adds r0, r5, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
- movs r0, 0x19
- strh r0, [r5, 0x2E]
- ldr r4, _080CB590 @ =gBattleAnimPlayerMonIndex
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, _080CB594 @ =sub_8078CC0
- str r0, [r5, 0x1C]
- ldr r1, _080CB598 @ =move_anim_8072740
- adds r0, r5, 0
- bl oamt_set_x3A_32
-_080CB58A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB590: .4byte gBattleAnimPlayerMonIndex
-_080CB594: .4byte sub_8078CC0
-_080CB598: .4byte move_anim_8072740
- thumb_func_end sub_80CB4CC
-
- thumb_func_start sub_80CB59C
-sub_80CB59C: @ 80CB59C
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080CB608
- ldr r4, _080CB614 @ =gBattleAnimPlayerMonIndex
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r4, _080CB618 @ =gBattleAnimArgs
- ldrh r0, [r4]
- strh r0, [r5, 0x24]
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0x26]
- ldrb r0, [r4, 0x4]
- adds r0, 0x1E
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r4, 0x6]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- movs r2, 0x22
- ldrsh r0, [r5, r2]
- movs r2, 0x26
- ldrsh r1, [r5, r2]
- adds r0, r1
- cmp r0, 0x78
- ble _080CB608
- ldrh r0, [r5, 0x22]
- adds r1, r0, 0
- subs r1, 0x78
- ldrh r2, [r5, 0x26]
- adds r0, r2
- adds r1, r0
- strh r1, [r5, 0x22]
-_080CB608:
- ldr r0, _080CB61C @ =sub_80CB710
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB614: .4byte gBattleAnimPlayerMonIndex
-_080CB618: .4byte gBattleAnimArgs
-_080CB61C: .4byte sub_80CB710
- thumb_func_end sub_80CB59C
-
- thumb_func_start sub_80CB620
-sub_80CB620: @ 80CB620
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x4
- mov r9, r0
- ldr r4, _080CB6FC @ =gBattleAnimPlayerMonIndex
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- mov r8, r0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r6, _080CB700 @ =gBattleAnimEnemyMonIndex
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8077ABC
- adds r2, r0, 0
- lsls r2, 24
- subs r4, r5
- lsls r4, 16
- lsrs r2, 24
- mov r1, r8
- subs r2, r1
- lsls r2, 16
- lsrs r2, 16
- lsrs r3, r4, 16
- mov r10, r3
- asrs r4, 16
- ldr r6, _080CB704 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r6, r1]
- muls r0, r4
- movs r1, 0x64
- str r2, [sp]
- bl __divsi3
- adds r5, r0
- mov r3, r9
- strh r5, [r3, 0x20]
- ldr r2, [sp]
- lsls r0, r2, 16
- asrs r0, 16
- movs r3, 0
- ldrsh r1, [r6, r3]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- add r8, r0
- mov r1, r8
- mov r0, r9
- strh r1, [r0, 0x22]
- ldrh r0, [r6, 0x2]
- mov r3, r9
- strh r0, [r3, 0x24]
- ldrh r0, [r6, 0x4]
- strh r0, [r3, 0x26]
- ldrb r0, [r6, 0x6]
- adds r0, 0x1E
- mov r1, r9
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r6, 0x8]
- mov r0, r9
- bl StartSpriteAnim
- ldrh r0, [r6, 0xA]
- mov r1, r9
- strh r0, [r1, 0x32]
- ldr r0, _080CB708 @ =sub_80CB710
- str r0, [r1, 0x1C]
- ldr r1, _080CB70C @ =gUnknown_03000728
- mov r3, r9
- ldrh r0, [r3, 0x20]
- strh r0, [r1]
- ldrh r0, [r3, 0x22]
- strh r0, [r1, 0x2]
- mov r0, r10
- strh r0, [r1, 0x4]
- ldr r2, [sp]
- strh r2, [r1, 0x6]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB6FC: .4byte gBattleAnimPlayerMonIndex
-_080CB700: .4byte gBattleAnimEnemyMonIndex
-_080CB704: .4byte gBattleAnimArgs
-_080CB708: .4byte sub_80CB710
-_080CB70C: .4byte gUnknown_03000728
- thumb_func_end sub_80CB620
-
- thumb_func_start sub_80CB710
-sub_80CB710: @ 80CB710
- push {lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x2E]
- adds r1, 0x1
- strh r1, [r3, 0x2E]
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x32
- ldrsh r0, [r3, r2]
- subs r0, 0xA
- cmp r1, r0
- ble _080CB750
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- movs r2, 0x3E
- adds r2, r3
- mov r12, r2
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
-_080CB750:
- movs r2, 0x2E
- ldrsh r1, [r3, r2]
- movs r2, 0x32
- ldrsh r0, [r3, r2]
- cmp r1, r0
- ble _080CB762
- adds r0, r3, 0
- bl move_anim_8072740
-_080CB762:
- pop {r0}
- bx r0
- thumb_func_end sub_80CB710
-
- thumb_func_start sub_80CB768
-sub_80CB768: @ 80CB768
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080CB7A8
- ldr r5, _080CB7E4 @ =gBattleAnimPlayerMonIndex
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080CB7E8 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r2, [r4]
- adds r0, r2
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r6, 0x22]
- ldrh r0, [r4, 0x4]
- strh r0, [r6, 0x30]
- ldrh r0, [r4, 0x6]
- strh r0, [r6, 0x32]
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x34]
-_080CB7A8:
- ldrh r0, [r6, 0x2E]
- adds r0, 0x1
- strh r0, [r6, 0x2E]
- ldrh r1, [r6, 0x30]
- muls r0, r1
- strh r0, [r6, 0x24]
- movs r2, 0x2E
- ldrsh r1, [r6, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- movs r1, 0xFF
- ands r0, r1
- movs r2, 0x32
- ldrsh r1, [r6, r2]
- bl Sin
- strh r0, [r6, 0x26]
- movs r0, 0x2E
- ldrsh r1, [r6, r0]
- movs r2, 0x34
- ldrsh r0, [r6, r2]
- cmp r1, r0
- ble _080CB7DE
- adds r0, r6, 0
- bl move_anim_8072740
-_080CB7DE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB7E4: .4byte gBattleAnimPlayerMonIndex
-_080CB7E8: .4byte gBattleAnimArgs
- thumb_func_end sub_80CB768
-
- thumb_func_start sub_80CB7EC
-sub_80CB7EC: @ 80CB7EC
- push {r4,r5,lr}
- movs r2, 0x20
- ldrsh r4, [r0, r2]
- lsls r4, 8
- movs r3, 0x22
- ldrsh r2, [r0, r3]
- orrs r4, r2
- movs r5, 0x3A
- ldrsh r2, [r0, r5]
- lsls r2, 8
- movs r5, 0x3C
- ldrsh r3, [r0, r5]
- orrs r2, r3
- lsls r1, 8
- strh r4, [r0, 0x38]
- strh r2, [r0, 0x3A]
- strh r1, [r0, 0x3C]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80CB7EC
-
thumb_func_start sub_80CB814
sub_80CB814: @ 80CB814
push {r4-r7,lr}
diff --git a/src/battle_anim_80CA710.c b/src/battle_anim_80CA710.c
index 191280e7b..50bdb3005 100755
--- a/src/battle_anim_80CA710.c
+++ b/src/battle_anim_80CA710.c
@@ -14,6 +14,7 @@ extern s16 gBattleAnimArgs[8];
extern u8 gBattleAnimPlayerMonIndex;
extern u8 gBattleAnimEnemyMonIndex;
extern struct SpriteTemplate gSpriteTemplate_83D631C;
+extern s16 gUnknown_03000728[];
void sub_80CA768(struct Sprite* sprite);
void sub_80CA8B4(struct Sprite* sprite);
@@ -30,6 +31,7 @@ void sub_80CB09C(struct Sprite* sprite);
void sub_80CB1A4(struct Sprite* sprite);
void sub_80CB298(struct Sprite* sprite);
void sub_80CB2D4(struct Sprite* sprite);
+void sub_80CB710(struct Sprite* sprite);
void sub_80787B0(struct Sprite *sprite, u8 a2);
void sub_8078764(struct Sprite *sprite, u8 a2);
@@ -37,6 +39,7 @@ void sub_8078B34(struct Sprite *sprite);
void sub_8078D60(struct Sprite *sprite);
void sub_80786EC(struct Sprite *sprite);
void sub_80782D8(struct Sprite *sprite);
+void sub_8078CC0(struct Sprite *sprite);
void sub_807A3FC(u8 slot, u8 a2, s16 *a3, s16 *a4);
u8 sub_8079ED4(u8 slot);
@@ -828,4 +831,232 @@ _080CB4C2:\n\
_080CB4C8: .4byte gTasks\n\
.syntax divided\n");
}
-#endif \ No newline at end of file
+#endif
+
+void sub_80CB4CC(struct Sprite* sprite)
+{
+ switch(sprite->data0)
+ {
+ case 0:
+ {
+ if(GetBankSide(gBattleAnimEnemyMonIndex) == 0)
+ {
+ s16 a = gBattleAnimArgs[0];
+ gBattleAnimArgs[0] = -a;
+ }
+ sprite->pos1.x = sub_8077ABC(gBattleAnimEnemyMonIndex, 0) + gBattleAnimArgs[0];
+ sprite->pos1.y = sub_8077ABC(gBattleAnimEnemyMonIndex, 1) + gBattleAnimArgs[1];
+ sprite->invisible = 1;
+ sprite->data0++;
+ break;
+ }
+ case 1:
+ {
+ sprite->invisible = 0;
+ if(sprite->affineAnimEnded)
+ {
+ ChangeSpriteAffineAnim(sprite, 1);
+ sprite->data0 = 25;
+ sprite->data2 = sub_8077ABC(gBattleAnimPlayerMonIndex, 2);
+ sprite->data4 = sub_8077ABC(gBattleAnimPlayerMonIndex, 3);
+ sprite->callback = sub_8078CC0;
+ oamt_set_x3A_32(sprite, move_anim_8072740);
+ break;
+ }
+ }
+ }
+}
+
+void sub_80CB59C(struct Sprite* sprite)
+{
+ if(!sprite->data0)
+ {
+ sprite->pos1.x = sub_8077ABC(gBattleAnimPlayerMonIndex, 2);
+ sprite->pos1.y = sub_8077ABC(gBattleAnimPlayerMonIndex, 1);
+ sprite->pos2.x = gBattleAnimArgs[0];
+ sprite->pos2.y = gBattleAnimArgs[1];
+ sprite->subpriority = gBattleAnimArgs[2] + 30;
+ StartSpriteAnim(sprite, gBattleAnimArgs[3]);
+ sprite->data2 = gBattleAnimArgs[4];
+ sprite->data0++;
+ if((sprite->pos1.y + sprite->pos2.y) > 120)
+ {
+ sprite->pos1.y += -120 + (sprite->pos2.y + sprite->pos1.y);
+ }
+ }
+ sprite->callback = sub_80CB710;
+}
+
+#ifdef NONMATCHING
+void sub_80CB620(struct Sprite* sprite)
+{
+ u8 p1 = sub_8077ABC(gBattleAnimPlayerMonIndex, 2);
+ u8 p2 = sub_8077ABC(gBattleAnimPlayerMonIndex, 3);
+ u8 e1 = sub_8077ABC(gBattleAnimEnemyMonIndex, 2);
+ u8 e2 = sub_8077ABC(gBattleAnimEnemyMonIndex, 3);
+ e1 -= p1;
+ e2 -= p2;
+ sprite->pos1.x = p1 + ((gBattleAnimArgs[0] * e1) / 100);
+ sprite->pos1.y = p2 + ((gBattleAnimArgs[0] * e2) / 100);
+ sprite->pos2.x = gBattleAnimArgs[1];
+ sprite->pos2.y = gBattleAnimArgs[2];
+ sprite->subpriority = gBattleAnimArgs[3] + 30;
+ StartSpriteAnim(sprite, gBattleAnimArgs[4]);
+ sprite->data2 = gBattleAnimArgs[5];
+ sprite->callback = sub_80CB710;
+ gUnknown_03000728[0] = sprite->pos1.x;
+ gUnknown_03000728[1] = sprite->pos1.y;
+ gUnknown_03000728[2] = e1;
+ gUnknown_03000728[3] = e2;
+}
+#else
+__attribute__((naked))
+void sub_80CB620(struct Sprite* sprite)
+{
+ asm(".syntax unified\n\
+ push {r4-r6,lr}\n\
+ mov r6, r10\n\
+ mov r5, r9\n\
+ mov r4, r8\n\
+ push {r4-r6}\n\
+ sub sp, 0x4\n\
+ mov r9, r0\n\
+ ldr r4, _080CB6FC @ =gBattleAnimPlayerMonIndex\n\
+ ldrb r0, [r4]\n\
+ movs r1, 0x2\n\
+ bl sub_8077ABC\n\
+ adds r5, r0, 0\n\
+ lsls r5, 24\n\
+ lsrs r5, 24\n\
+ ldrb r0, [r4]\n\
+ movs r1, 0x3\n\
+ bl sub_8077ABC\n\
+ mov r8, r0\n\
+ mov r0, r8\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ mov r8, r0\n\
+ ldr r6, _080CB700 @ =gBattleAnimEnemyMonIndex\n\
+ ldrb r0, [r6]\n\
+ movs r1, 0x2\n\
+ bl sub_8077ABC\n\
+ adds r4, r0, 0\n\
+ lsls r4, 24\n\
+ lsrs r4, 24\n\
+ ldrb r0, [r6]\n\
+ movs r1, 0x3\n\
+ bl sub_8077ABC\n\
+ adds r2, r0, 0\n\
+ lsls r2, 24\n\
+ subs r4, r5\n\
+ lsls r4, 16\n\
+ lsrs r2, 24\n\
+ mov r1, r8\n\
+ subs r2, r1\n\
+ lsls r2, 16\n\
+ lsrs r2, 16\n\
+ lsrs r3, r4, 16\n\
+ mov r10, r3\n\
+ asrs r4, 16\n\
+ ldr r6, _080CB704 @ =gBattleAnimArgs\n\
+ movs r1, 0\n\
+ ldrsh r0, [r6, r1]\n\
+ muls r0, r4\n\
+ movs r1, 0x64\n\
+ str r2, [sp]\n\
+ bl __divsi3\n\
+ adds r5, r0\n\
+ mov r3, r9\n\
+ strh r5, [r3, 0x20]\n\
+ ldr r2, [sp]\n\
+ lsls r0, r2, 16\n\
+ asrs r0, 16\n\
+ movs r3, 0\n\
+ ldrsh r1, [r6, r3]\n\
+ muls r0, r1\n\
+ movs r1, 0x64\n\
+ bl __divsi3\n\
+ add r8, r0\n\
+ mov r1, r8\n\
+ mov r0, r9\n\
+ strh r1, [r0, 0x22]\n\
+ ldrh r0, [r6, 0x2]\n\
+ mov r3, r9\n\
+ strh r0, [r3, 0x24]\n\
+ ldrh r0, [r6, 0x4]\n\
+ strh r0, [r3, 0x26]\n\
+ ldrb r0, [r6, 0x6]\n\
+ adds r0, 0x1E\n\
+ mov r1, r9\n\
+ adds r1, 0x43\n\
+ strb r0, [r1]\n\
+ ldrb r1, [r6, 0x8]\n\
+ mov r0, r9\n\
+ bl StartSpriteAnim\n\
+ ldrh r0, [r6, 0xA]\n\
+ mov r1, r9\n\
+ strh r0, [r1, 0x32]\n\
+ ldr r0, _080CB708 @ =sub_80CB710\n\
+ str r0, [r1, 0x1C]\n\
+ ldr r1, _080CB70C @ =gUnknown_03000728\n\
+ mov r3, r9\n\
+ ldrh r0, [r3, 0x20]\n\
+ strh r0, [r1]\n\
+ ldrh r0, [r3, 0x22]\n\
+ strh r0, [r1, 0x2]\n\
+ mov r0, r10\n\
+ strh r0, [r1, 0x4]\n\
+ ldr r2, [sp]\n\
+ strh r2, [r1, 0x6]\n\
+ add sp, 0x4\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_080CB6FC: .4byte gBattleAnimPlayerMonIndex\n\
+_080CB700: .4byte gBattleAnimEnemyMonIndex\n\
+_080CB704: .4byte gBattleAnimArgs\n\
+_080CB708: .4byte sub_80CB710\n\
+_080CB70C: .4byte gUnknown_03000728\n\
+ .syntax divided\n");
+}
+#endif
+
+void sub_80CB710(struct Sprite* sprite)
+{
+ if(++sprite->data0 > (sprite->data2 - 10))
+ {
+ sprite->invisible = sprite->data0 % 2;
+ }
+ if(sprite->data0 > sprite->data2) move_anim_8072740(sprite);
+}
+
+void sub_80CB768(struct Sprite* sprite)
+{
+ if(!sprite->data0)
+ {
+ sprite->pos1.x = sub_8077ABC(gBattleAnimPlayerMonIndex, 2) + gBattleAnimArgs[0];
+ sprite->pos1.y = sub_8077ABC(gBattleAnimPlayerMonIndex, 1) + gBattleAnimArgs[1];
+ sprite->data1 = gBattleAnimArgs[2];
+ sprite->data2 = gBattleAnimArgs[3];
+ sprite->data3 = gBattleAnimArgs[4];
+ }
+ sprite->data0++;
+ sprite->pos2.x = sprite->data1 * sprite->data0;
+ sprite->pos2.y = Sin((sprite->data0 * 20) & 0xFF, sprite->data2);
+ if(sprite->data0 > sprite->data3) move_anim_8072740(sprite);
+}
+
+void sub_80CB7EC(struct Sprite* sprite, s16 c)
+{
+ s32 a = (sprite->pos1.x * 256) | sprite->pos1.y;
+ s32 b = (sprite->data6 * 256) | sprite->data7;
+ c *= 256;
+ sprite->data5 = a;
+ sprite->data6 = b;
+ sprite->data7 = c;
+} \ No newline at end of file