port moar fixes and documentation

This commit is contained in:
Kurausukun
2021-03-19 02:25:43 -04:00
parent f18aeb187d
commit c11710288a
6 changed files with 25 additions and 24 deletions
+1 -1
View File
@@ -525,7 +525,7 @@ void GetIsDoomDesireHitTurn(u8 taskId);
// flying.c // flying.c
void AnimTask_AnimateGustTornadoPalette(u8 taskId); void AnimTask_AnimateGustTornadoPalette(u8 taskId);
void sub_80B1D3C(struct Sprite *sprite); void DestroyAnimSpriteAfterTimer(struct Sprite *sprite);
void AnimTask_DrillPeckHitSplats(u8 taskId); void AnimTask_DrillPeckHitSplats(u8 taskId);
// poison.c // poison.c
+1 -1
View File
@@ -3464,7 +3464,7 @@ void AnimSmokeBallEscapeCloud(struct Sprite *sprite)
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + gBattleAnimArgs[1]; sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + gBattleAnimArgs[1];
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[2]; 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) static void sub_80E1990(u8 taskId)
+1 -1
View File
@@ -675,7 +675,7 @@ static void sub_81543C4(u8 spriteId)
#define sKeepPosX data[1] #define sKeepPosX data[1]
#else #else
#define sKeepPosX data[10] #define sKeepPosX data[10]
#endif // NONMATCHING #endif // BUGFIX
static void sub_81543E8(struct Sprite * sprite) static void sub_81543E8(struct Sprite * sprite)
{ {
+1 -1
View File
@@ -552,7 +552,7 @@ static void sub_80ADD4C(struct Sprite *sprite)
gOamMatrices[matrixNum].b = sineVal; gOamMatrices[matrixNum].b = sineVal;
gOamMatrices[matrixNum].c = -sineVal; gOamMatrices[matrixNum].c = -sineVal;
sprite->data[0] = gBattleAnimArgs[3]; sprite->data[0] = gBattleAnimArgs[3];
sprite->callback = sub_80B1D3C; sprite->callback = DestroyAnimSpriteAfterTimer;
} }
static void AnimZapCannonSpark(struct Sprite *sprite) static void AnimZapCannonSpark(struct Sprite *sprite)
+20 -19
View File
@@ -26,7 +26,7 @@ static void sub_80B198C(u8 taskId);
static void sub_80B1A9C(struct Sprite *sprite); static void sub_80B1A9C(struct Sprite *sprite);
static void sub_80B1BF8(struct Sprite *sprite); static void sub_80B1BF8(struct Sprite *sprite);
static void sub_80B1CC0(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_80B268C(struct Sprite *sprite);
static void sub_80B2820(struct Sprite *sprite); static void sub_80B2820(struct Sprite *sprite);
static void sub_80B2A50(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) if (sprite->data[0]-- <= 0)
{ {
@@ -631,15 +631,14 @@ static void AnimFallingFeather(struct Sprite *sprite)
gOamMatrices[matrixNum].b = sinVal; gOamMatrices[matrixNum].b = sinVal;
gOamMatrices[matrixNum].c = -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; u8 matrixNum, sinIndex;
s16 sinVal = 0; s16 sinVal = 0;
struct FeatherDanceData *data = (struct FeatherDanceData *)sprite->data; struct FeatherDanceData *data = (struct FeatherDanceData *)sprite->data;
if (data->unk0_0a) if (data->unk0_0a)
{ {
if (data->unk1-- % 256 == 0) if (data->unk1-- % 256 == 0)
@@ -653,13 +652,13 @@ static void sub_80B1F94(struct Sprite *sprite)
switch (data->unk2 / 64) switch (data->unk2 / 64)
{ {
case 0: 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_0d = 1;
data->unk0_0a = 1; data->unk0_0a = 1;
data->unk1 = 0; data->unk1 = 0;
} }
else if (data->unk0_1 << 24 >> 24 == 3) else if ((u8)data->unk0_1 == 3)
{ {
data->unk0_0b ^= 1; data->unk0_0b ^= 1;
data->unk0_0a = 1; data->unk0_0a = 1;
@@ -706,13 +705,13 @@ static void sub_80B1F94(struct Sprite *sprite)
data->unk0_1 = 0; data->unk0_1 = 0;
break; break;
case 1: case 1:
if (data->unk0_1 << 24 >> 24 == 0) if ((u8)data->unk0_1 == 0)
{ {
data->unk0_0d = 1; data->unk0_0d = 1;
data->unk0_0a = 1; data->unk0_0a = 1;
data->unk1 = 0; data->unk1 = 0;
} }
else if (data->unk0_1 << 24 >> 24 == 2) else if ((u8)data->unk0_1 == 2)
{ {
data->unk0_0a = 1; data->unk0_0a = 1;
data->unk1 = 0; data->unk1 = 0;
@@ -757,13 +756,13 @@ static void sub_80B1F94(struct Sprite *sprite)
data->unk0_1 = 1; data->unk0_1 = 1;
break; break;
case 2: case 2:
if (data->unk0_1 << 24 >> 24 == 3) if ((u8)data->unk0_1 == 3)
{ {
data->unk0_0d = 1; data->unk0_0d = 1;
data->unk0_0a = 1; data->unk0_0a = 1;
data->unk1 = 0; data->unk1 = 0;
} }
else if (data->unk0_1 << 24 >> 24 == 1) else if ((u8)data->unk0_1 == 1)
{ {
data->unk0_0a = 1; data->unk0_0a = 1;
data->unk1 = 0; data->unk1 = 0;
@@ -808,11 +807,11 @@ static void sub_80B1F94(struct Sprite *sprite)
data->unk0_1 = 2; data->unk0_1 = 2;
break; break;
case 3: case 3:
if (data->unk0_1 << 24 >> 24 == 2) if ((u8)data->unk0_1 == 2)
{ {
data->unk0_0d = 1; 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_0b ^= 1;
data->unk0_0a = 1; data->unk0_0a = 1;
@@ -858,26 +857,28 @@ static void sub_80B1F94(struct Sprite *sprite)
data->unk0_1 = 3; data->unk0_1 = 3;
break; break;
} }
#ifndef NONMATCHING
asm("":::"r8"); sprite->pos2.x = ((s32)data->unkC[data->unk0_0b] * gSineTable[data->unk2]) >> 8;
#endif
sprite->pos2.x = (data->unkC[data->unk0_0b] * gSineTable[data->unk2]) >> 8;
matrixNum = sprite->oam.matrixNum; matrixNum = sprite->oam.matrixNum;
sinIndex = (-sprite->pos2.x >> 1) + data->unkA; sinIndex = (-sprite->pos2.x >> 1) + data->unkA;
sinVal = gSineTable[sinIndex]; sinVal = gSineTable[sinIndex];
gOamMatrices[matrixNum].a = gOamMatrices[matrixNum].d = gSineTable[sinIndex + 64]; gOamMatrices[matrixNum].a = gOamMatrices[matrixNum].d = gSineTable[sinIndex + 64];
gOamMatrices[matrixNum].b = sinVal; gOamMatrices[matrixNum].b = sinVal;
gOamMatrices[matrixNum].c = -sinVal; gOamMatrices[matrixNum].c = -sinVal;
data->unk8 += data->unk6; data->unk8 += data->unk6;
sprite->pos1.y = data->unk8 >> 8; sprite->pos1.y = data->unk8 >> 8;
if (data->unk4 & 0x8000) if (data->unk4 & 0x8000)
data->unk2 = (data->unk2 - (data->unk4 & 0x7FFF)) & 0xFF; data->unk2 = (data->unk2 - (data->unk4 & 0x7FFF)) & 0xFF;
else else
data->unk2 = (data->unk2 + (data->unk4 & 0x7FFF)) & 0xFF; data->unk2 = (data->unk2 + (data->unk4 & 0x7FFF)) & 0xFF;
if (sprite->pos1.y + sprite->pos2.y >= data->unkE_1) if (sprite->pos1.y + sprite->pos2.y >= data->unkE_1)
{ {
sprite->data[0] = 0; 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); x = (((u16 *)&fData)[7] << 1);
y = (((u16 *)tData)[7] & 1); y = (((u16 *)tData)[7] & 1);
((u16 *)tData)[7] = y | x; ((u16 *)tData)[7] = y | x;
sprite->callback = sub_80B1F94; sprite->callback = AnimFallingFeather_Step;
} }
static void AnimWhirlwindLine(struct Sprite *sprite) static void AnimWhirlwindLine(struct Sprite *sprite)
+1 -1
View File
@@ -850,7 +850,7 @@ static void AnimHitSplatPersistent(struct Sprite *sprite)
InitSpritePosToAnimTarget(sprite, TRUE); InitSpritePosToAnimTarget(sprite, TRUE);
sprite->data[0] = gBattleAnimArgs[4]; sprite->data[0] = gBattleAnimArgs[4];
sprite->callback = RunStoredCallbackWhenAffineAnimEnds; sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
StoreSpriteCallbackInData6(sprite, sub_80B1D3C); StoreSpriteCallbackInData6(sprite, DestroyAnimSpriteAfterTimer);
} }
static void AnimHitSplatHandleInvert(struct Sprite *sprite) static void AnimHitSplatHandleInvert(struct Sprite *sprite)