Continue documenting generic arguments

This commit is contained in:
GriffinR
2022-06-01 12:41:57 -04:00
parent a8437493c1
commit 34438e6bc4
71 changed files with 1246 additions and 1076 deletions
+50 -42
View File
@@ -128,7 +128,7 @@ static void AnimHornHit_Step(struct Sprite *);
static void AnimSuperFang(struct Sprite *);
static void AnimWavyMusicNotes(struct Sprite *);
static void AnimWavyMusicNotes_Step(struct Sprite *);
static void AnimWavyMusicNotesGetNextPos(s16, s16, s16 *, s16 *, s8);
static void AnimWavyMusicNotes_CalcVelocity(s16, s16, s16 *, s16 *, s8);
static void AnimFlyingMusicNotes(struct Sprite *);
static void AnimFlyingMusicNotes_Step(struct Sprite *);
static void AnimBellyDrumHand(struct Sprite *);
@@ -5279,79 +5279,87 @@ void AnimTask_MusicNotesClearRainbowBlend(u8 taskId)
DestroyAnimVisualTask(taskId);
}
#define sMoveTimer data[0]
#define sBlendTableIdx data[1]
#define sBlendTimer data[2]
#define sBlendCycleTime data[3]
#define sX data[4]
#define sY data[5]
#define sVelocX data[6]
#define sVelocY data[7]
static void AnimWavyMusicNotes(struct Sprite* sprite)
{
u8 index;
u8 a;
u8 b;
u8 x, y;
SetSpriteCoordsToAnimAttackerCoords(sprite);
StartSpriteAnim(sprite, gBattleAnimArgs[0]);
if ((index = IndexOfSpritePaletteTag(gParticlesColorBlendTable[gBattleAnimArgs[1]][0])) != 0xFF)
sprite->oam.paletteNum = index;
sprite->data[1] = gBattleAnimArgs[1];
sprite->data[2] = 0;
sprite->data[3] = gBattleAnimArgs[2];
sprite->sBlendTableIdx = gBattleAnimArgs[1];
sprite->sBlendTimer = 0;
sprite->sBlendCycleTime = gBattleAnimArgs[2];
if (IsContest())
{
a = 48;
b = 40;
x = 48;
y = 40;
}
else
{
a = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
b = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
}
sprite->data[4] = sprite->x << 4;
sprite->data[5] = sprite->y << 4;
AnimWavyMusicNotesGetNextPos(a - sprite->x, b - sprite->y, &sprite->data[6], &sprite->data[7], 40);
sprite->sX = sprite->x << 4;
sprite->sY = sprite->y << 4;
AnimWavyMusicNotes_CalcVelocity(x - sprite->x, y - sprite->y, &sprite->sVelocX, &sprite->sVelocY, 40);
sprite->callback = AnimWavyMusicNotes_Step;
}
static void AnimWavyMusicNotesGetNextPos(s16 a, s16 b, s16* c, s16* d, s8 e)
static void AnimWavyMusicNotes_CalcVelocity(s16 x, s16 y, s16* velocX, s16* velocY, s8 xSpeedFactor)
{
int f;
int g;
if (a < 0)
e = -e;
int x2;
int time;
if (x < 0)
xSpeedFactor = -xSpeedFactor;
f = a << 8;
g = f / e;
if (g == 0)
g = 1;
x2 = x << 8;
time = x2 / xSpeedFactor;
if (time == 0)
time = 1;
*c = f / g;
*d = (b << 8) / g;
*velocX = x2 / time;
*velocY = (y << 8) / time;
}
static void AnimWavyMusicNotes_Step(struct Sprite* sprite)
{
s16 y, yDelta;
s16 y, trigIdx;
u8 index;
sprite->data[0]++;
yDelta = sprite->data[0] * 5 - ((sprite->data[0] * 5 / 256) << 8);
sprite->data[4] += sprite->data[6];
sprite->data[5] += sprite->data[7];
sprite->x = sprite->data[4] >> 4;
sprite->y = sprite->data[5] >> 4;
sprite->y2 = Sin(yDelta, 15);
sprite->sMoveTimer++;
trigIdx = sprite->sMoveTimer * 5 - ((sprite->sMoveTimer * 5 / 256) << 8);
sprite->sX += sprite->sVelocX;
sprite->sY += sprite->sVelocY;
sprite->x = sprite->sX >> 4;
sprite->y = sprite->sY >> 4;
sprite->y2 = Sin(trigIdx, 15);
y = sprite->y;
if (sprite->x < -16 || sprite->x > 256 || y < -16 || y > 128)
if (sprite->x < -16 || sprite->x > DISPLAY_WIDTH + 16 || y < -16 || y > DISPLAY_HEIGHT - 32)
{
DestroySpriteAndMatrix(sprite);
}
else
{
if (sprite->data[3] && ++sprite->data[2] > sprite->data[3])
if (sprite->sBlendCycleTime && ++sprite->sBlendTimer > sprite->sBlendCycleTime)
{
sprite->data[2] = 0;
if (++sprite->data[1] > 3)
sprite->data[1] = 0;
sprite->sBlendTimer = 0;
if (++sprite->sBlendTableIdx > (int)ARRAY_COUNT(gParticlesColorBlendTable) - 1)
sprite->sBlendTableIdx = 0;
index = IndexOfSpritePaletteTag(gParticlesColorBlendTable[sprite->data[1]][0]);
index = IndexOfSpritePaletteTag(gParticlesColorBlendTable[sprite->sBlendTableIdx][0]);
if (index != 0xFF)
sprite->oam.paletteNum = index;
}
@@ -5467,7 +5475,7 @@ void SetSpriteNextToMonHead(u8 battler, struct Sprite* sprite)
static void AnimThoughtBubble(struct Sprite* sprite)
{
u8 a;
u8 animNum;
u8 battler;
if (gBattleAnimArgs[0] == 0)
battler = gBattleAnimAttacker;
@@ -5475,10 +5483,10 @@ static void AnimThoughtBubble(struct Sprite* sprite)
battler = gBattleAnimTarget;
SetSpriteNextToMonHead(battler, sprite);
a = (GetBattlerSide(battler) == B_SIDE_PLAYER) ? 0 : 1;
animNum = (GetBattlerSide(battler) == B_SIDE_PLAYER) ? 0 : 1;
sprite->data[0] = gBattleAnimArgs[1];
sprite->data[1] = a + 2;
StartSpriteAnim(sprite, a);
sprite->data[1] = animNum + 2;
StartSpriteAnim(sprite, animNum);
StoreSpriteCallbackInData6(sprite, AnimThoughtBubble_Step);
sprite->callback = RunStoredCallbackWhenAnimEnds;
}