summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/battle_anim_effects_3.c2
-rw-r--r--src/dodrio_berry_picking_2.c2
-rw-r--r--src/electric.c2
-rw-r--r--src/flying.c39
-rw-r--r--src/normal.c2
5 files changed, 24 insertions, 23 deletions
diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c
index c259755df..52fc64870 100644
--- a/src/battle_anim_effects_3.c
+++ b/src/battle_anim_effects_3.c
@@ -3464,7 +3464,7 @@ void AnimSmokeBallEscapeCloud(struct Sprite *sprite)
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + gBattleAnimArgs[1];
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[2];
- sprite->callback = sub_80B1D3C;
+ sprite->callback = DestroyAnimSpriteAfterTimer;
}
static void sub_80E1990(u8 taskId)
diff --git a/src/dodrio_berry_picking_2.c b/src/dodrio_berry_picking_2.c
index d2ddd30be..5bd531edc 100644
--- a/src/dodrio_berry_picking_2.c
+++ b/src/dodrio_berry_picking_2.c
@@ -675,7 +675,7 @@ static void sub_81543C4(u8 spriteId)
#define sKeepPosX data[1]
#else
#define sKeepPosX data[10]
-#endif // NONMATCHING
+#endif // BUGFIX
static void sub_81543E8(struct Sprite * sprite)
{
diff --git a/src/electric.c b/src/electric.c
index b1bc32c50..9c957f097 100644
--- a/src/electric.c
+++ b/src/electric.c
@@ -552,7 +552,7 @@ static void sub_80ADD4C(struct Sprite *sprite)
gOamMatrices[matrixNum].b = sineVal;
gOamMatrices[matrixNum].c = -sineVal;
sprite->data[0] = gBattleAnimArgs[3];
- sprite->callback = sub_80B1D3C;
+ sprite->callback = DestroyAnimSpriteAfterTimer;
}
static void AnimZapCannonSpark(struct Sprite *sprite)
diff --git a/src/flying.c b/src/flying.c
index 18cfa4e39..c68fda99f 100644
--- a/src/flying.c
+++ b/src/flying.c
@@ -26,7 +26,7 @@ static void sub_80B198C(u8 taskId);
static void sub_80B1A9C(struct Sprite *sprite);
static void sub_80B1BF8(struct Sprite *sprite);
static void sub_80B1CC0(struct Sprite *sprite);
-static void sub_80B1F94(struct Sprite *sprite);
+static void AnimFallingFeather_Step(struct Sprite *sprite);
static void sub_80B268C(struct Sprite *sprite);
static void sub_80B2820(struct Sprite *sprite);
static void sub_80B2A50(struct Sprite *sprite);
@@ -532,7 +532,7 @@ static void sub_80B1CC0(struct Sprite *sprite)
}
}
-void sub_80B1D3C(struct Sprite *sprite)
+void DestroyAnimSpriteAfterTimer(struct Sprite *sprite)
{
if (sprite->data[0]-- <= 0)
{
@@ -631,15 +631,14 @@ static void AnimFallingFeather(struct Sprite *sprite)
gOamMatrices[matrixNum].b = sinVal;
gOamMatrices[matrixNum].c = -sinVal;
}
- sprite->callback = sub_80B1F94;
+ sprite->callback = AnimFallingFeather_Step;
}
-static void sub_80B1F94(struct Sprite *sprite)
+static void AnimFallingFeather_Step(struct Sprite *sprite)
{
u8 matrixNum, sinIndex;
s16 sinVal = 0;
struct FeatherDanceData *data = (struct FeatherDanceData *)sprite->data;
-
if (data->unk0_0a)
{
if (data->unk1-- % 256 == 0)
@@ -653,13 +652,13 @@ static void sub_80B1F94(struct Sprite *sprite)
switch (data->unk2 / 64)
{
case 0:
- if (data->unk0_1 << 24 >> 24 == 1) // the shifts have to be here
+ if ((u8)data->unk0_1 == 1) //casts to u8 here are necessary for matching
{
data->unk0_0d = 1;
data->unk0_0a = 1;
data->unk1 = 0;
}
- else if (data->unk0_1 << 24 >> 24 == 3)
+ else if ((u8)data->unk0_1 == 3)
{
data->unk0_0b ^= 1;
data->unk0_0a = 1;
@@ -706,13 +705,13 @@ static void sub_80B1F94(struct Sprite *sprite)
data->unk0_1 = 0;
break;
case 1:
- if (data->unk0_1 << 24 >> 24 == 0)
+ if ((u8)data->unk0_1 == 0)
{
data->unk0_0d = 1;
data->unk0_0a = 1;
data->unk1 = 0;
}
- else if (data->unk0_1 << 24 >> 24 == 2)
+ else if ((u8)data->unk0_1 == 2)
{
data->unk0_0a = 1;
data->unk1 = 0;
@@ -757,13 +756,13 @@ static void sub_80B1F94(struct Sprite *sprite)
data->unk0_1 = 1;
break;
case 2:
- if (data->unk0_1 << 24 >> 24 == 3)
+ if ((u8)data->unk0_1 == 3)
{
data->unk0_0d = 1;
data->unk0_0a = 1;
data->unk1 = 0;
}
- else if (data->unk0_1 << 24 >> 24 == 1)
+ else if ((u8)data->unk0_1 == 1)
{
data->unk0_0a = 1;
data->unk1 = 0;
@@ -808,11 +807,11 @@ static void sub_80B1F94(struct Sprite *sprite)
data->unk0_1 = 2;
break;
case 3:
- if (data->unk0_1 << 24 >> 24 == 2)
+ if ((u8)data->unk0_1 == 2)
{
data->unk0_0d = 1;
}
- else if (data->unk0_1 << 24 >> 24 == 0)
+ else if ((u8)data->unk0_1 == 0)
{
data->unk0_0b ^= 1;
data->unk0_0a = 1;
@@ -858,26 +857,28 @@ static void sub_80B1F94(struct Sprite *sprite)
data->unk0_1 = 3;
break;
}
- #ifndef NONMATCHING
- asm("":::"r8");
- #endif
- sprite->pos2.x = (data->unkC[data->unk0_0b] * gSineTable[data->unk2]) >> 8;
+
+ sprite->pos2.x = ((s32)data->unkC[data->unk0_0b] * gSineTable[data->unk2]) >> 8;
matrixNum = sprite->oam.matrixNum;
+
sinIndex = (-sprite->pos2.x >> 1) + data->unkA;
sinVal = gSineTable[sinIndex];
+
gOamMatrices[matrixNum].a = gOamMatrices[matrixNum].d = gSineTable[sinIndex + 64];
gOamMatrices[matrixNum].b = sinVal;
gOamMatrices[matrixNum].c = -sinVal;
+
data->unk8 += data->unk6;
sprite->pos1.y = data->unk8 >> 8;
if (data->unk4 & 0x8000)
data->unk2 = (data->unk2 - (data->unk4 & 0x7FFF)) & 0xFF;
else
data->unk2 = (data->unk2 + (data->unk4 & 0x7FFF)) & 0xFF;
+
if (sprite->pos1.y + sprite->pos2.y >= data->unkE_1)
{
sprite->data[0] = 0;
- sprite->callback = sub_80B1D3C;
+ sprite->callback = DestroyAnimSpriteAfterTimer;
}
}
}
@@ -983,7 +984,7 @@ static void sub_80B268C(struct Sprite *sprite)
x = (((u16 *)&fData)[7] << 1);
y = (((u16 *)tData)[7] & 1);
((u16 *)tData)[7] = y | x;
- sprite->callback = sub_80B1F94;
+ sprite->callback = AnimFallingFeather_Step;
}
static void AnimWhirlwindLine(struct Sprite *sprite)
diff --git a/src/normal.c b/src/normal.c
index 99ee0e922..422b413c6 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -850,7 +850,7 @@ static void AnimHitSplatPersistent(struct Sprite *sprite)
InitSpritePosToAnimTarget(sprite, TRUE);
sprite->data[0] = gBattleAnimArgs[4];
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
- StoreSpriteCallbackInData6(sprite, sub_80B1D3C);
+ StoreSpriteCallbackInData6(sprite, DestroyAnimSpriteAfterTimer);
}
static void AnimHitSplatHandleInvert(struct Sprite *sprite)