summaryrefslogtreecommitdiff
path: root/src/ice.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ice.c')
-rw-r--r--src/ice.c508
1 files changed, 70 insertions, 438 deletions
diff --git a/src/ice.c b/src/ice.c
index fa1913b96..8f0c97d82 100644
--- a/src/ice.c
+++ b/src/ice.c
@@ -47,7 +47,7 @@ void AnimIceBallParticle(struct Sprite *);
void AnimTask_Haze2(u8);
void AnimTask_OverlayFogTiles(u8);
void AnimTask_Hail2(u8);
-bool8 GenerateHailParticle(u8, u8, u8, u8);
+bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId, u8 c);
const union AnimCmd gUnknown_08595A48[] =
{
@@ -522,37 +522,33 @@ const struct SpriteTemplate gUnknown_08595DFC =
.callback = InitIceBallParticle,
};
-
// probably unused
-#ifdef NONMATCHING
static void sub_810B6C4(struct Sprite *sprite)
{
s16 targetX, targetY, attackerX, attackerY;
- s16 i;
sprite->oam.tileNum += 7;
- targetX = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
- targetY = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
- attackerX = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
- attackerY = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
+ targetX = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
+ targetY = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
+ attackerX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
+ attackerY = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
sprite->data[0] = gBattleAnimArgs[4];
sprite->data[1] = gBattleAnimArgs[0] + attackerX;
sprite->data[2] = gBattleAnimArgs[2] + targetX;
sprite->data[3] = gBattleAnimArgs[1] + attackerY;
sprite->data[4] = gBattleAnimArgs[3] + targetY;
sub_80A64EC(sprite);
- while ((targetX >= -32 && targetX <= 272) && (targetY >= -32 && targetY <= 192))
- {
- targetX += sprite->data[1];
- targetY += sprite->data[2];
- }
+
+ for (;(targetX >= -32 && targetX <= 272) && (targetY >= -32 && targetY <= 192);
+ targetX += sprite->data[1], targetY += sprite->data[2])
+ ;
+
sprite->data[1] = -sprite->data[1];
sprite->data[2] = -sprite->data[2];
- while ((attackerX >= -32 && attackerX <= 272) && (attackerY >= -32 && attackerY <= 192))
- {
- attackerX += sprite->data[1];
- attackerY += sprite->data[2];
- }
+ for (;(attackerX >= -32 && attackerX <= 272) && (attackerY >= -32 && attackerY <= 192);
+ attackerX += sprite->data[1], attackerY += sprite->data[2])
+ ;
+
sprite->pos1.x = attackerX;
sprite->pos1.y = attackerY;
sprite->data[0] = gBattleAnimArgs[4];
@@ -565,195 +561,6 @@ static void sub_810B6C4(struct Sprite *sprite)
sprite->data[4] = gBattleAnimArgs[6];
sprite->callback = sub_810B848;
}
-#else
-NAKED
-static void sub_810B6C4(struct Sprite *sprite)
-{
- asm_unified("push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- sub sp, 0x4\n\
- adds r5, r0, 0\n\
- ldrh r2, [r5, 0x4]\n\
- lsls r1, r2, 22\n\
- lsrs r1, 22\n\
- adds r1, 0x7\n\
- ldr r3, =0x000003ff\n\
- adds r0, r3, 0\n\
- ands r1, r0\n\
- ldr r0, =0xfffffc00\n\
- ands r0, r2\n\
- orrs r0, r1\n\
- strh r0, [r5, 0x4]\n\
- ldr r4, =gBattleAnimTarget\n\
- ldrb r0, [r4]\n\
- movs r1, 0x2\n\
- bl GetBattlerSpriteCoord\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
- ldrb r0, [r4]\n\
- movs r1, 0x3\n\
- bl GetBattlerSpriteCoord\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r8, r0\n\
- ldr r4, =gBattleAnimAttacker\n\
- ldrb r0, [r4]\n\
- movs r1, 0x2\n\
- bl GetBattlerSpriteCoord\n\
- lsls r0, 24\n\
- lsrs r3, r0, 24\n\
- ldrb r0, [r4]\n\
- movs r1, 0x3\n\
- str r3, [sp]\n\
- bl GetBattlerSpriteCoord\n\
- lsls r0, 24\n\
- lsrs r6, r0, 24\n\
- ldr r1, =gBattleAnimArgs\n\
- ldrh r0, [r1, 0x8]\n\
- strh r0, [r5, 0x2E]\n\
- ldrh r0, [r1]\n\
- ldr r3, [sp]\n\
- adds r0, r3\n\
- strh r0, [r5, 0x30]\n\
- ldrh r0, [r1, 0x4]\n\
- mov r4, r9\n\
- adds r0, r4, r0\n\
- strh r0, [r5, 0x32]\n\
- ldrh r0, [r1, 0x2]\n\
- adds r0, r6\n\
- strh r0, [r5, 0x34]\n\
- ldrh r0, [r1, 0x6]\n\
- mov r7, r8\n\
- adds r0, r7, r0\n\
- strh r0, [r5, 0x36]\n\
- adds r0, r5, 0\n\
- bl sub_80A64EC\n\
- adds r4, 0x20\n\
- movs r0, 0x98\n\
- lsls r0, 1\n\
- mov r12, r0\n\
- ldr r3, [sp]\n\
- cmp r4, r12\n\
- bhi _0810B79E\n\
- adds r0, r7, 0\n\
- adds r0, 0x20\n\
- ldrh r1, [r5, 0x30]\n\
- ldrh r2, [r5, 0x32]\n\
- cmp r0, 0xE0\n\
- bhi _0810B79E\n\
- adds r4, r1, 0\n\
- mov r10, r12\n\
-_0810B76A:\n\
- mov r7, r9\n\
- lsls r1, r7, 16\n\
- asrs r1, 16\n\
- adds r1, r4\n\
- lsls r1, 16\n\
- mov r7, r8\n\
- lsls r0, r7, 16\n\
- asrs r0, 16\n\
- adds r0, r2\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- mov r8, r0\n\
- lsrs r0, r1, 16\n\
- mov r9, r0\n\
- movs r7, 0x80\n\
- lsls r7, 14\n\
- adds r1, r7\n\
- lsrs r1, 16\n\
- cmp r1, r10\n\
- bhi _0810B79E\n\
- mov r1, r8\n\
- lsls r0, r1, 16\n\
- adds r0, r7\n\
- lsrs r0, 16\n\
- cmp r0, 0xE0\n\
- bls _0810B76A\n\
-_0810B79E:\n\
- ldrh r0, [r5, 0x30]\n\
- negs r7, r0\n\
- strh r7, [r5, 0x30]\n\
- ldrh r0, [r5, 0x32]\n\
- negs r4, r0\n\
- strh r4, [r5, 0x32]\n\
- lsls r0, r3, 16\n\
- movs r1, 0x80\n\
- lsls r1, 14\n\
- adds r0, r1\n\
- lsrs r0, 16\n\
- movs r2, 0x98\n\
- lsls r2, 1\n\
- mov r12, r2\n\
- ldr r1, =gBattleAnimArgs\n\
- mov r10, r1\n\
- cmp r0, r12\n\
- bhi _0810B80A\n\
- lsls r1, r6, 16\n\
- movs r2, 0x80\n\
- lsls r2, 14\n\
- adds r0, r1, r2\n\
- b _0810B802\n\
- .pool\n\
-_0810B7E0:\n\
- lsls r1, r3, 16\n\
- asrs r1, 16\n\
- adds r1, r7\n\
- lsls r1, 16\n\
- asrs r0, r2, 16\n\
- adds r0, r4\n\
- lsls r0, 16\n\
- lsrs r6, r0, 16\n\
- lsrs r3, r1, 16\n\
- movs r0, 0x80\n\
- lsls r0, 14\n\
- adds r1, r0\n\
- lsrs r1, 16\n\
- cmp r1, r12\n\
- bhi _0810B80A\n\
- lsls r1, r6, 16\n\
- adds r0, r1, r0\n\
-_0810B802:\n\
- lsrs r0, 16\n\
- adds r2, r1, 0\n\
- cmp r0, 0xE0\n\
- bls _0810B7E0\n\
-_0810B80A:\n\
- strh r3, [r5, 0x20]\n\
- strh r6, [r5, 0x22]\n\
- mov r1, r10\n\
- ldrh r0, [r1, 0x8]\n\
- strh r0, [r5, 0x2E]\n\
- strh r3, [r5, 0x30]\n\
- mov r2, r9\n\
- strh r2, [r5, 0x32]\n\
- strh r6, [r5, 0x34]\n\
- mov r3, r8\n\
- strh r3, [r5, 0x36]\n\
- adds r0, r5, 0\n\
- bl sub_80A64EC\n\
- mov r7, r10\n\
- ldrh r0, [r7, 0xA]\n\
- strh r0, [r5, 0x34]\n\
- ldrh r0, [r7, 0xC]\n\
- strh r0, [r5, 0x36]\n\
- ldr r0, =sub_810B848\n\
- str r0, [r5, 0x1C]\n\
- add sp, 0x4\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .pool\n");
-}
-#endif
void sub_810B848(struct Sprite *sprite)
{
@@ -797,14 +604,14 @@ void AnimIcePunchSwirlingParticle(struct Sprite *sprite)
void AnimIceBeamParticle(struct Sprite *sprite)
{
InitSpritePosToAnimAttacker(sprite, TRUE);
- sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
+ sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
sprite->data[2] -= gBattleAnimArgs[2];
else
sprite->data[2] += gBattleAnimArgs[2];
- sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3];
+ sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3];
sprite->data[0] = gBattleAnimArgs[4];
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
sprite->callback = StartAnimLinearTranslation;
@@ -863,8 +670,8 @@ void AnimSwirlingSnowball_Step1(struct Sprite *sprite)
if (!gBattleAnimArgs[5])
{
- sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
- sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3];
+ sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
+ sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3];
}
else
{
@@ -983,8 +790,8 @@ void AnimMoveParticleBeyondTarget(struct Sprite *sprite)
if (!gBattleAnimArgs[7])
{
- sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
- sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
+ sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
+ sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
}
else
{
@@ -1274,8 +1081,8 @@ void AnimTask_Haze2(u8 taskId)
// arg 5: ??? unknown (seems to vibrate target mon somehow)
void AnimThrowMistBall(struct Sprite *sprite)
{
- sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
- sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
sprite->callback = TranslateAnimSpriteToTargetMonLocation;
}
@@ -1380,7 +1187,7 @@ void InitPoisonGasCloudAnim(struct Sprite *sprite)
{
sprite->data[0] = gBattleAnimArgs[0];
- if (GetBattlerSpriteCoord(gBattleAnimAttacker, 2) < GetBattlerSpriteCoord(gBattleAnimTarget, 2))
+ if (GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) < GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2))
sprite->data[7] = 0x8000;
if (!(gBattlerPositions[gBattleAnimTarget] & 1))
@@ -1394,22 +1201,22 @@ void InitPoisonGasCloudAnim(struct Sprite *sprite)
sprite->data[6] = 1;
}
- sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
- sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
if (gBattleAnimArgs[7])
{
sprite->data[1] = sprite->pos1.x + gBattleAnimArgs[1];
- sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[3];
+ sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[3];
sprite->data[3] = sprite->pos1.y + gBattleAnimArgs[2];
- sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[4];
+ sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[4];
sprite->data[7] |= GetBattlerSpriteBGPriority(gBattleAnimTarget) << 8;
}
else
{
sprite->data[1] = sprite->pos1.x + gBattleAnimArgs[1];
- sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 0) + gBattleAnimArgs[3];
+ sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X) + gBattleAnimArgs[3];
sprite->data[3] = sprite->pos1.y + gBattleAnimArgs[2];
- sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + gBattleAnimArgs[4];
+ sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + gBattleAnimArgs[4];
sprite->data[7] |= GetBattlerSpriteBGPriority(gBattleAnimTarget) << 8;
}
@@ -1441,7 +1248,7 @@ void MovePoisonGasCloud(struct Sprite *sprite)
if (sprite->data[0] <= 0)
{
sprite->data[0] = 80;
- sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0);
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X);
sprite->data[1] = sprite->pos1.x;
sprite->data[2] = sprite->pos1.x;
sprite->pos1.y += sprite->pos2.y;
@@ -1575,238 +1382,63 @@ void AnimTask_Hail2(u8 taskId)
}
}
-#ifdef NONMATCHING
-bool8 GenerateHailParticle(u8 a, u8 b, u8 taskId, u8 c)
+bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId, u8 c)
{
- bool8 possibleBool = FALSE;
- // s8 unk = gUnknown_08595CB4[a].unk3;
- const struct HailStruct *hailData = &gUnknown_08595CB4[a];
- s8 unk = hailData->unk3;
- u8 battler;
+ u8 id;
s16 battlerX, battlerY;
- u8 spriteId;
- // struct Sprite *sprite;
s16 spriteX;
+ bool8 possibleBool = FALSE;
+ s8 unk = gUnknown_08595CB4[hailStructId].unk3;
if (unk != 2)
{
- battler = GetBattlerAtPosition(hailData->unk2);
- if (IsBattlerSpriteVisible(battler))
+ id = GetBattlerAtPosition(gUnknown_08595CB4[hailStructId].unk2);
+ if (IsBattlerSpriteVisible(id))
{
possibleBool = TRUE;
- battlerX = GetBattlerSpriteCoord(battler, 2);
- battlerY = GetBattlerSpriteCoord(battler, 3);
+ battlerX = GetBattlerSpriteCoord(id, BATTLER_COORD_X_2);
+ battlerY = GetBattlerSpriteCoord(id, BATTLER_COORD_Y_PIC_OFFSET);
switch (unk)
{
- case 0:
- battlerX -= GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_WIDTH) / 6;
- battlerY -= GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_HEIGHT) / 6;
- break;
- case 1:
- battlerX += GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_WIDTH) / 6;
- battlerY += GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_HEIGHT) / 6;
- break;
+ case 0:
+ battlerX -= GetBattlerSpriteCoordAttr(id, BATTLER_COORD_ATTR_WIDTH) / 6;
+ battlerY -= GetBattlerSpriteCoordAttr(id, BATTLER_COORD_ATTR_HEIGHT) / 6;
+ break;
+ case 1:
+ battlerX += GetBattlerSpriteCoordAttr(id, BATTLER_COORD_ATTR_WIDTH) / 6;
+ battlerY += GetBattlerSpriteCoordAttr(id, BATTLER_COORD_ATTR_HEIGHT) / 6;
+ break;
}
}
+ else
+ {
+ battlerX = (gUnknown_08595CB4[hailStructId].unk0);
+ battlerY = (gUnknown_08595CB4[hailStructId].unk1);
+ }
}
else
{
- battlerX = (hailData->unk0);
- battlerY = (hailData->unk1);
+ battlerX = (gUnknown_08595CB4[hailStructId].unk0);
+ battlerY = (gUnknown_08595CB4[hailStructId].unk1);
}
spriteX = battlerX - ((battlerY + 8) / 2);
- spriteId = CreateSprite(&gUnknown_08595D2C, spriteX, -8, 18);
- if (spriteId == MAX_SPRITES)
+ id = CreateSprite(&gUnknown_08595D2C, spriteX, -8, 18);
+ if (id == MAX_SPRITES)
+ {
return FALSE;
- // sprite = &gSprites[spriteId];
- StartSpriteAffineAnim(&gSprites[spriteId], b);
- gSprites[spriteId].data[0] = possibleBool;
- gSprites[spriteId].data[3] = battlerX;
- gSprites[spriteId].data[4] = battlerY;
- gSprites[spriteId].data[5] = b;
- gSprites[spriteId].data[6] = taskId;
- gSprites[spriteId].data[7] = c;
- return TRUE;
-}
-#else
-NAKED
-bool8 GenerateHailParticle(u8 a, u8 b, u8 taskId, u8 c)
-{
- asm_unified("push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- sub sp, 0x8\n\
- lsls r0, 24\n\
- lsls r1, 24\n\
- lsrs r1, 24\n\
- mov r9, r1\n\
- lsls r2, 24\n\
- lsrs r2, 24\n\
- str r2, [sp]\n\
- lsls r3, 24\n\
- lsrs r3, 24\n\
- mov r10, r3\n\
- movs r1, 0\n\
- str r1, [sp, 0x4]\n\
- ldr r1, =gUnknown_08595CB4\n\
- lsrs r0, 22\n\
- adds r4, r0, r1\n\
- ldrb r0, [r4, 0x3]\n\
- lsls r0, 24\n\
- asrs r0, 28\n\
- mov r8, r0\n\
- cmp r0, 0x2\n\
- beq _0810CAD0\n\
- ldrh r0, [r4, 0x2]\n\
- lsls r0, 20\n\
- lsrs r0, 24\n\
- bl GetBattlerAtPosition\n\
- lsls r0, 24\n\
- lsrs r5, r0, 24\n\
- adds r0, r5, 0\n\
- bl IsBattlerSpriteVisible\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- beq _0810CAD0\n\
- movs r0, 0x1\n\
- str r0, [sp, 0x4]\n\
- adds r0, r5, 0\n\
- movs r1, 0x2\n\
- bl GetBattlerSpriteCoord\n\
- lsls r0, 24\n\
- lsrs r7, r0, 24\n\
- adds r0, r5, 0\n\
- movs r1, 0x3\n\
- bl GetBattlerSpriteCoord\n\
- lsls r0, 24\n\
- lsrs r6, r0, 24\n\
- mov r1, r8\n\
- cmp r1, 0\n\
- beq _0810CA60\n\
- cmp r1, 0x1\n\
- beq _0810CA96\n\
- b _0810CAE2\n\
- .pool\n\
-_0810CA60:\n\
- adds r0, r5, 0\n\
- movs r1, 0x1\n\
- bl GetBattlerSpriteCoordAttr\n\
- lsls r0, 16\n\
- asrs r0, 16\n\
- movs r1, 0x6\n\
- bl __divsi3\n\
- lsls r1, r7, 16\n\
- asrs r1, 16\n\
- subs r1, r0\n\
- lsls r1, 16\n\
- lsrs r7, r1, 16\n\
- adds r0, r5, 0\n\
- movs r1, 0\n\
- bl GetBattlerSpriteCoordAttr\n\
- lsls r0, 16\n\
- asrs r0, 16\n\
- movs r1, 0x6\n\
- bl __divsi3\n\
- lsls r1, r6, 16\n\
- asrs r1, 16\n\
- subs r1, r0\n\
- b _0810CACA\n\
-_0810CA96:\n\
- adds r0, r5, 0\n\
- movs r1, 0x1\n\
- bl GetBattlerSpriteCoordAttr\n\
- lsls r0, 16\n\
- asrs r0, 16\n\
- movs r1, 0x6\n\
- bl __divsi3\n\
- lsls r1, r7, 16\n\
- asrs r1, 16\n\
- adds r1, r0\n\
- lsls r1, 16\n\
- lsrs r7, r1, 16\n\
- adds r0, r5, 0\n\
- movs r1, 0\n\
- bl GetBattlerSpriteCoordAttr\n\
- lsls r0, 16\n\
- asrs r0, 16\n\
- movs r1, 0x6\n\
- bl __divsi3\n\
- lsls r1, r6, 16\n\
- asrs r1, 16\n\
- adds r1, r0\n\
-_0810CACA:\n\
- lsls r1, 16\n\
- lsrs r6, r1, 16\n\
- b _0810CAE2\n\
-_0810CAD0:\n\
- ldrh r0, [r4]\n\
- lsls r0, 22\n\
- asrs r0, 6\n\
- lsrs r7, r0, 16\n\
- ldr r0, [r4]\n\
- lsls r0, 12\n\
- asrs r0, 22\n\
- lsls r0, 16\n\
- lsrs r6, r0, 16\n\
-_0810CAE2:\n\
- lsls r0, r6, 16\n\
- asrs r0, 16\n\
- adds r0, 0x8\n\
- lsrs r1, r0, 31\n\
- adds r0, r1\n\
- asrs r0, 1\n\
- lsls r1, r7, 16\n\
- asrs r1, 16\n\
- subs r1, r0\n\
- ldr r0, =gUnknown_08595D2C\n\
- lsls r1, 16\n\
- asrs r1, 16\n\
- movs r2, 0x8\n\
- negs r2, r2\n\
- movs r3, 0x12\n\
- bl CreateSprite\n\
- lsls r0, 24\n\
- lsrs r5, r0, 24\n\
- cmp r5, 0x40\n\
- beq _0810CB44\n\
- lsls r4, r5, 4\n\
- adds r4, r5\n\
- lsls r4, 2\n\
- ldr r0, =gSprites\n\
- adds r4, r0\n\
- adds r0, r4, 0\n\
- mov r1, r9\n\
- bl StartSpriteAffineAnim\n\
- mov r0, sp\n\
- ldrh r0, [r0, 0x4]\n\
- strh r0, [r4, 0x2E]\n\
- strh r7, [r4, 0x34]\n\
- strh r6, [r4, 0x36]\n\
- mov r1, r9\n\
- strh r1, [r4, 0x38]\n\
- mov r0, sp\n\
- ldrh r0, [r0]\n\
- strh r0, [r4, 0x3A]\n\
- mov r1, r10\n\
- strh r1, [r4, 0x3C]\n\
- movs r0, 0x1\n\
- b _0810CB46\n\
- .pool\n\
-_0810CB44:\n\
- movs r0, 0\n\
-_0810CB46:\n\
- add sp, 0x8\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r1}\n\
- bx r1\n");
+ }
+ else
+ {
+ StartSpriteAffineAnim(&gSprites[id], affineAnimNum);
+ gSprites[id].data[0] = possibleBool;
+ gSprites[id].data[3] = battlerX;
+ gSprites[id].data[4] = battlerY;
+ gSprites[id].data[5] = affineAnimNum;
+ gSprites[id].data[6] = taskId;
+ gSprites[id].data[7] = c;
+ return TRUE;
+ }
}
-#endif
void AnimHailBegin(struct Sprite *sprite)
{
@@ -1874,8 +1506,8 @@ void InitIceBallAnim(struct Sprite *sprite)
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
- sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2];
- sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3];
+ sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2];
+ sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3];
sprite->data[5] = gBattleAnimArgs[5];
InitAnimArcTranslation(sprite);