Merge branch 'master' of https://github.com/pret/pokeemerald into decompile_party_menu
This commit is contained in:
@@ -1656,7 +1656,7 @@ static void ScriptCmd_createsprite(void)
|
||||
else
|
||||
argVar *= -1;
|
||||
|
||||
subpriority = sub_80A82E4(gBattleAnimTarget) + (s8)(argVar);
|
||||
subpriority = GetBattlerSpriteSubpriority(gBattleAnimTarget) + (s8)(argVar);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1665,7 +1665,7 @@ static void ScriptCmd_createsprite(void)
|
||||
else
|
||||
argVar *= -1;
|
||||
|
||||
subpriority = sub_80A82E4(gBattleAnimAttacker) + (s8)(argVar);
|
||||
subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) + (s8)(argVar);
|
||||
}
|
||||
|
||||
if (subpriority < 3)
|
||||
|
||||
@@ -40,18 +40,17 @@ void sub_80A7144(struct Sprite *sprite);
|
||||
void sub_80A791C(struct Sprite *sprite);
|
||||
void sub_80A8DFC(struct Sprite *sprite);
|
||||
void sub_80A8E88(struct Sprite *sprite);
|
||||
void sub_80A7E6C(u8 spriteId);
|
||||
u16 sub_80A7F18(u8 spriteId);
|
||||
void SetBattlerSpriteYOffsetFromYScale(u8 spriteId);
|
||||
u16 GetBattlerYDeltaFromSpriteId(u8 spriteId);
|
||||
void AnimTask_BlendMonInAndOutSetup(struct Task *task);
|
||||
void sub_80A7AFC(u8 taskId);
|
||||
void sub_80A8CAC(u8 taskId);
|
||||
void AnimTask_BlendMonInAndOutStep(u8 taskId);
|
||||
bool8 sub_80A7238(void);
|
||||
u8 sub_80A82E4(u8 battlerId);
|
||||
void sub_80A8D78(struct Task *task, u8 taskId);
|
||||
|
||||
// EWRAM vars
|
||||
EWRAM_DATA static union AffineAnimCmd *gUnknown_02038444 = NULL;
|
||||
EWRAM_DATA static union AffineAnimCmd *gAnimTaskAffineAnim = NULL;
|
||||
|
||||
// Const rom data
|
||||
static const struct UCoords8 sBattlerCoords[][4] =
|
||||
@@ -124,8 +123,7 @@ static const struct SpriteSheet sUnknown_08525FC0[] =
|
||||
{ gMiscBlank_Gfx, 0x800, 55126, },
|
||||
};
|
||||
|
||||
// code
|
||||
u8 GetBattlerSpriteCoord(u8 battlerId, u8 attributeId)
|
||||
u8 GetBattlerSpriteCoord(u8 battlerId, u8 coordType)
|
||||
{
|
||||
u8 retVal;
|
||||
u16 species;
|
||||
@@ -133,11 +131,11 @@ u8 GetBattlerSpriteCoord(u8 battlerId, u8 attributeId)
|
||||
|
||||
if (IsContest())
|
||||
{
|
||||
if (attributeId == BATTLER_COORD_3 && battlerId == 3)
|
||||
attributeId = BATTLER_COORD_Y;
|
||||
if (coordType == BATTLER_COORD_Y_PIC_OFFSET && battlerId == 3)
|
||||
coordType = BATTLER_COORD_Y;
|
||||
}
|
||||
|
||||
switch (attributeId)
|
||||
switch (coordType)
|
||||
{
|
||||
case BATTLER_COORD_X:
|
||||
case BATTLER_COORD_X_2:
|
||||
@@ -146,15 +144,15 @@ u8 GetBattlerSpriteCoord(u8 battlerId, u8 attributeId)
|
||||
case BATTLER_COORD_Y:
|
||||
retVal = sBattlerCoords[IS_DOUBLE_BATTLE()][GetBattlerPosition(battlerId)].y;
|
||||
break;
|
||||
case BATTLER_COORD_3:
|
||||
case BATTLER_COORD_4:
|
||||
case BATTLER_COORD_Y_PIC_OFFSET:
|
||||
case BATTLER_COORD_Y_PIC_OFFSET_DEFAULT:
|
||||
default:
|
||||
if (IsContest())
|
||||
{
|
||||
if (shared19348.unk4_0)
|
||||
species = shared19348.unk2;
|
||||
if (gContestResources->field_18->unk4_0)
|
||||
species = gContestResources->field_18->unk2;
|
||||
else
|
||||
species = shared19348.species;
|
||||
species = gContestResources->field_18->species;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -175,7 +173,7 @@ u8 GetBattlerSpriteCoord(u8 battlerId, u8 attributeId)
|
||||
species = spriteInfo[battlerId].transformSpecies;
|
||||
}
|
||||
}
|
||||
if (attributeId == BATTLER_COORD_3)
|
||||
if (coordType == BATTLER_COORD_Y_PIC_OFFSET)
|
||||
retVal = GetBattlerSpriteFinal_Y(battlerId, species, TRUE);
|
||||
else
|
||||
retVal = GetBattlerSpriteFinal_Y(battlerId, species, FALSE);
|
||||
@@ -199,10 +197,10 @@ u8 GetBattlerYDelta(u8 battlerId, u16 species)
|
||||
{
|
||||
if (IsContest())
|
||||
{
|
||||
if (shared19348.unk4_0)
|
||||
personality = shared19348.unk10;
|
||||
if (gContestResources->field_18->unk4_0)
|
||||
personality = gContestResources->field_18->unk10;
|
||||
else
|
||||
personality = shared19348.unk8;
|
||||
personality = gContestResources->field_18->unk8;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -307,19 +305,19 @@ u8 GetBattlerSpriteFinal_Y(u8 battlerId, u16 species, bool8 a3)
|
||||
return y;
|
||||
}
|
||||
|
||||
u8 GetBattlerSpriteCoord2(u8 battlerId, u8 attributeId)
|
||||
u8 GetBattlerSpriteCoord2(u8 battlerId, u8 coordType)
|
||||
{
|
||||
u16 species;
|
||||
struct BattleSpriteInfo *spriteInfo;
|
||||
|
||||
if (attributeId == BATTLER_COORD_3 || attributeId == BATTLER_COORD_4)
|
||||
if (coordType == BATTLER_COORD_Y_PIC_OFFSET || coordType == BATTLER_COORD_Y_PIC_OFFSET_DEFAULT)
|
||||
{
|
||||
if (IsContest())
|
||||
{
|
||||
if (shared19348.unk4_0)
|
||||
species = shared19348.unk2;
|
||||
if (gContestResources->field_18->unk4_0)
|
||||
species = gContestResources->field_18->unk2;
|
||||
else
|
||||
species = shared19348.species;
|
||||
species = gContestResources->field_18->species;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -329,20 +327,20 @@ u8 GetBattlerSpriteCoord2(u8 battlerId, u8 attributeId)
|
||||
else
|
||||
species = spriteInfo[battlerId].transformSpecies;
|
||||
}
|
||||
if (attributeId == BATTLER_COORD_3)
|
||||
if (coordType == BATTLER_COORD_Y_PIC_OFFSET)
|
||||
return GetBattlerSpriteFinal_Y(battlerId, species, TRUE);
|
||||
else
|
||||
return GetBattlerSpriteFinal_Y(battlerId, species, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
return GetBattlerSpriteCoord(battlerId, attributeId);
|
||||
return GetBattlerSpriteCoord(battlerId, coordType);
|
||||
}
|
||||
}
|
||||
|
||||
u8 GetBattlerSpriteDefault_Y(u8 battlerId)
|
||||
{
|
||||
return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_4);
|
||||
return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET_DEFAULT);
|
||||
}
|
||||
|
||||
u8 GetSubstituteSpriteDefault_Y(u8 battlerId)
|
||||
@@ -386,11 +384,11 @@ u8 GetBattlerYCoordWithElevation(u8 battlerId)
|
||||
return y;
|
||||
}
|
||||
|
||||
u8 GetAnimBattlerSpriteId(u8 which)
|
||||
u8 GetAnimBattlerSpriteId(u8 animBattler)
|
||||
{
|
||||
u8 *sprites;
|
||||
|
||||
if (which == ANIM_ATTACKER)
|
||||
if (animBattler == ANIM_ATTACKER)
|
||||
{
|
||||
if (IsBattlerSpritePresent(gBattleAnimAttacker))
|
||||
{
|
||||
@@ -402,7 +400,7 @@ u8 GetAnimBattlerSpriteId(u8 which)
|
||||
return 0xff;
|
||||
}
|
||||
}
|
||||
else if (which == ANIM_TARGET)
|
||||
else if (animBattler == ANIM_TARGET)
|
||||
{
|
||||
if (IsBattlerSpritePresent(gBattleAnimTarget))
|
||||
{
|
||||
@@ -414,7 +412,7 @@ u8 GetAnimBattlerSpriteId(u8 which)
|
||||
return 0xff;
|
||||
}
|
||||
}
|
||||
else if (which == ANIM_ATK_PARTNER)
|
||||
else if (animBattler == ANIM_ATK_PARTNER)
|
||||
{
|
||||
if (!IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker)))
|
||||
return 0xff;
|
||||
@@ -442,7 +440,7 @@ void SetCallbackToStoredInData6(struct Sprite *sprite)
|
||||
sprite->callback = (void (*)(struct Sprite *))callback;
|
||||
}
|
||||
|
||||
void sub_80A62EC(struct Sprite *sprite)
|
||||
void TranslateSpriteInCircleOverDuration(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[3])
|
||||
{
|
||||
@@ -461,7 +459,7 @@ void sub_80A62EC(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80A634C(struct Sprite *sprite)
|
||||
void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[3])
|
||||
{
|
||||
@@ -570,7 +568,7 @@ void TranslateSpriteOverDuration(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80A656C(struct Sprite *sprite)
|
||||
void TranslateAnimLinearSimple(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[0] > 0)
|
||||
{
|
||||
@@ -665,7 +663,7 @@ void sub_80A66DC(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void move_anim_8074EE0(struct Sprite *sprite)
|
||||
void DestroySpriteAndMatrix(struct Sprite *sprite)
|
||||
{
|
||||
FreeSpriteOamMatrix(sprite);
|
||||
DestroyAnimSprite(sprite);
|
||||
@@ -683,16 +681,16 @@ void sub_80A6760(struct Sprite *sprite)
|
||||
void sub_80A67A4(struct Sprite *sprite)
|
||||
{
|
||||
ResetPaletteStructByUid(sprite->data[5]);
|
||||
move_anim_8074EE0(sprite);
|
||||
DestroySpriteAndMatrix(sprite);
|
||||
}
|
||||
|
||||
void sub_80A67BC(struct Sprite *sprite)
|
||||
void RunStoredCallbackWhenAffineAnimEnds(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->affineAnimEnded)
|
||||
SetCallbackToStoredInData6(sprite);
|
||||
}
|
||||
|
||||
void sub_80A67D8(struct Sprite *sprite)
|
||||
void RunStoredCallbackWhenAnimEnds(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->animEnded)
|
||||
SetCallbackToStoredInData6(sprite);
|
||||
@@ -712,31 +710,31 @@ void sub_80A6814(u8 taskId)
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
|
||||
void sub_80A6838(struct Sprite *sprite)
|
||||
void SetSpriteCoordsToAnimAttackerCoords(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);
|
||||
}
|
||||
|
||||
void sub_80A6864(struct Sprite *sprite, s16 a2)
|
||||
void sub_80A6864(struct Sprite *sprite, s16 xOffset)
|
||||
{
|
||||
u16 v1 = GetBattlerSpriteCoord(gBattleAnimAttacker, 0);
|
||||
u16 v2 = GetBattlerSpriteCoord(gBattleAnimTarget, 0);
|
||||
u16 attackerX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X);
|
||||
u16 targetX = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X);
|
||||
|
||||
if (v1 > v2)
|
||||
if (attackerX > targetX)
|
||||
{
|
||||
sprite->pos1.x -= a2;
|
||||
sprite->pos1.x -= xOffset;
|
||||
}
|
||||
else if (v1 < v2)
|
||||
else if (attackerX < targetX)
|
||||
{
|
||||
sprite->pos1.x += a2;
|
||||
sprite->pos1.x += xOffset;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != 0)
|
||||
sprite->pos1.x -= a2;
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
sprite->pos1.x -= xOffset;
|
||||
else
|
||||
sprite->pos1.x += a2;
|
||||
sprite->pos1.x += xOffset;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -779,24 +777,24 @@ void sub_80A6980(struct Sprite *sprite, bool8 a2)
|
||||
{
|
||||
if (!a2)
|
||||
{
|
||||
sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimTarget, 0);
|
||||
sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimTarget, 1);
|
||||
sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_X);
|
||||
sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_Y);
|
||||
}
|
||||
sub_80A6864(sprite, gBattleAnimArgs[0]);
|
||||
sprite->pos1.y += gBattleAnimArgs[1];
|
||||
}
|
||||
|
||||
void InitAnimSpritePos(struct Sprite *sprite, u8 a2)
|
||||
void InitAnimSpritePos(struct Sprite *sprite, u8 respectMonPicOffsets)
|
||||
{
|
||||
if (!a2)
|
||||
if (!respectMonPicOffsets)
|
||||
{
|
||||
sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimAttacker, 0);
|
||||
sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimAttacker, 1);
|
||||
sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_X);
|
||||
sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_Y);
|
||||
}
|
||||
else
|
||||
{
|
||||
sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimAttacker, 2);
|
||||
sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimAttacker, 3);
|
||||
sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_X_2);
|
||||
sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
|
||||
}
|
||||
sub_80A6864(sprite, gBattleAnimArgs[0]);
|
||||
sprite->pos1.y += gBattleAnimArgs[1];
|
||||
@@ -1208,7 +1206,7 @@ void sub_80A718C(struct Sprite *sprite)
|
||||
sprite->callback(sprite);
|
||||
}
|
||||
|
||||
void obj_id_set_rotscale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation)
|
||||
void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation)
|
||||
{
|
||||
int i;
|
||||
struct ObjAffineSrcData src;
|
||||
@@ -1242,7 +1240,7 @@ bool8 sub_80A7238(void)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80A7270(u8 spriteId, u8 objMode)
|
||||
void PrepareBattlerSpriteForRotScale(u8 spriteId, u8 objMode)
|
||||
{
|
||||
u8 battlerId = gSprites[spriteId].data[0];
|
||||
|
||||
@@ -1251,32 +1249,34 @@ void sub_80A7270(u8 spriteId, u8 objMode)
|
||||
gSprites[spriteId].oam.objMode = objMode;
|
||||
gSprites[spriteId].affineAnimPaused = TRUE;
|
||||
if (!IsContest() && !gSprites[spriteId].oam.affineMode)
|
||||
gSprites[spriteId].oam.matrixNum = gBattleSpritesDataPtr->healthBoxesData[battlerId].field_6;
|
||||
gSprites[spriteId].oam.affineMode = 3;
|
||||
gSprites[spriteId].oam.matrixNum = gBattleSpritesDataPtr->healthBoxesData[battlerId].matrixNum;
|
||||
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_DOUBLE;
|
||||
CalcCenterToCornerVec(&gSprites[spriteId], gSprites[spriteId].oam.shape, gSprites[spriteId].oam.size, gSprites[spriteId].oam.affineMode);
|
||||
}
|
||||
|
||||
void sub_80A7344(u8 spriteId)
|
||||
void ResetSpriteRotScale(u8 spriteId)
|
||||
{
|
||||
obj_id_set_rotscale(spriteId, 0x100, 0x100, 0);
|
||||
gSprites[spriteId].oam.affineMode = 1;
|
||||
SetSpriteRotScale(spriteId, 0x100, 0x100, 0);
|
||||
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
|
||||
gSprites[spriteId].oam.objMode = 0;
|
||||
gSprites[spriteId].affineAnimPaused = FALSE;
|
||||
CalcCenterToCornerVec(&gSprites[spriteId], gSprites[spriteId].oam.shape, gSprites[spriteId].oam.size, gSprites[spriteId].oam.affineMode);
|
||||
}
|
||||
|
||||
void sub_80A73A0(u8 spriteId)
|
||||
// Sets the sprite's y offset equal to the y displacement caused by the
|
||||
// matrix's rotation.
|
||||
void SetBattlerSpriteYOffsetFromRotation(u8 spriteId)
|
||||
{
|
||||
u16 matrix = gSprites[spriteId].oam.matrixNum;
|
||||
s16 c = gOamMatrices[matrix].c;
|
||||
|
||||
u16 matrixNum = gSprites[spriteId].oam.matrixNum;
|
||||
// The "c" component of the battler sprite matrix contains the sine of the rotation angle divided by some scale amount.
|
||||
s16 c = gOamMatrices[matrixNum].c;
|
||||
if (c < 0)
|
||||
c = -c;
|
||||
|
||||
gSprites[spriteId].pos2.y = c >> 3;
|
||||
}
|
||||
|
||||
// related to obj_id_set_rotscale
|
||||
void sub_80A73E0(struct Sprite *sprite, bool8 a2, s16 xScale, s16 yScale, u16 rotation)
|
||||
void TrySetSpriteRotScale(struct Sprite *sprite, bool8 recalcCenterVector, s16 xScale, s16 yScale, u16 rotation)
|
||||
{
|
||||
int i;
|
||||
struct ObjAffineSrcData src;
|
||||
@@ -1285,7 +1285,7 @@ void sub_80A73E0(struct Sprite *sprite, bool8 a2, s16 xScale, s16 yScale, u16 ro
|
||||
if (sprite->oam.affineMode & 1)
|
||||
{
|
||||
sprite->affineAnimPaused = TRUE;
|
||||
if (a2)
|
||||
if (recalcCenterVector)
|
||||
CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode);
|
||||
src.xScale = xScale;
|
||||
src.yScale = yScale;
|
||||
@@ -1303,7 +1303,7 @@ void sub_80A73E0(struct Sprite *sprite, bool8 a2, s16 xScale, s16 yScale, u16 ro
|
||||
|
||||
void sub_80A749C(struct Sprite *sprite)
|
||||
{
|
||||
sub_80A73E0(sprite, TRUE, 0x100, 0x100, 0);
|
||||
TrySetSpriteRotScale(sprite, TRUE, 0x100, 0x100, 0);
|
||||
sprite->affineAnimPaused = FALSE;
|
||||
CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode);
|
||||
}
|
||||
@@ -1319,32 +1319,32 @@ u16 ArcTan2Neg(s16 a, s16 b)
|
||||
return -var;
|
||||
}
|
||||
|
||||
void sub_80A750C(u16 a1, bool8 a2)
|
||||
void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor)
|
||||
{
|
||||
int i;
|
||||
struct PlttData *c;
|
||||
struct PlttData *c2;
|
||||
struct PlttData *originalColor;
|
||||
struct PlttData *destColor;
|
||||
u16 average;
|
||||
|
||||
a1 *= 0x10;
|
||||
paletteNum *= 16;
|
||||
|
||||
if (!a2)
|
||||
if (!restoreOriginalColor)
|
||||
{
|
||||
for (i = 0; i < 0x10; i++)
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
c = (struct PlttData *)&gPlttBufferUnfaded[a1 + i];
|
||||
average = c->r + c->g + c->b;
|
||||
originalColor = (struct PlttData *)&gPlttBufferUnfaded[paletteNum + i];
|
||||
average = originalColor->r + originalColor->g + originalColor->b;
|
||||
average /= 3;
|
||||
|
||||
c2 = (struct PlttData *)&gPlttBufferFaded[a1 + i];
|
||||
c2->r = average;
|
||||
c2->g = average;
|
||||
c2->b = average;
|
||||
destColor = (struct PlttData *)&gPlttBufferFaded[paletteNum + i];
|
||||
destColor->r = average;
|
||||
destColor->g = average;
|
||||
destColor->b = average;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
CpuCopy32(&gPlttBufferUnfaded[a1], &gPlttBufferFaded[a1], 0x20);
|
||||
CpuCopy32(&gPlttBufferUnfaded[paletteNum], &gPlttBufferFaded[paletteNum], 32);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1479,7 +1479,7 @@ void sub_80A77C8(struct Sprite *sprite)
|
||||
}
|
||||
else if (sprite->animEnded || sprite->affineAnimEnded)
|
||||
{
|
||||
move_anim_8074EE0(sprite);
|
||||
DestroySpriteAndMatrix(sprite);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1494,7 +1494,7 @@ void sub_80A77C8(struct Sprite *sprite)
|
||||
void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite)
|
||||
{
|
||||
bool8 v1;
|
||||
u8 attributeId;
|
||||
u8 coordType;
|
||||
|
||||
if (!(gBattleAnimArgs[5] & 0xff00))
|
||||
v1 = TRUE;
|
||||
@@ -1502,9 +1502,9 @@ void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite)
|
||||
v1 = FALSE;
|
||||
|
||||
if (!(gBattleAnimArgs[5] & 0xff))
|
||||
attributeId = BATTLER_COORD_3;
|
||||
coordType = BATTLER_COORD_Y_PIC_OFFSET;
|
||||
else
|
||||
attributeId = BATTLER_COORD_Y;
|
||||
coordType = BATTLER_COORD_Y;
|
||||
|
||||
InitAnimSpritePos(sprite, v1);
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
@@ -1512,7 +1512,7 @@ void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite)
|
||||
|
||||
sprite->data[0] = gBattleAnimArgs[4];
|
||||
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2];
|
||||
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, attributeId) + gBattleAnimArgs[3];
|
||||
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, coordType) + gBattleAnimArgs[3];
|
||||
sprite->callback = StartAnimLinearTranslation;
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
}
|
||||
@@ -1544,7 +1544,7 @@ void sub_80A7938(struct Sprite *sprite)
|
||||
if (!gBattleAnimArgs[6])
|
||||
{
|
||||
r4 = TRUE;
|
||||
attributeId = BATTLER_COORD_3;
|
||||
attributeId = BATTLER_COORD_Y_PIC_OFFSET;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1571,19 +1571,19 @@ void sub_80A7938(struct Sprite *sprite)
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
}
|
||||
|
||||
s16 duplicate_obj_of_side_rel2move_in_transparent_mode(u8 whichBattler)
|
||||
s16 CloneBattlerSpriteWithBlend(u8 animBattler)
|
||||
{
|
||||
u16 i;
|
||||
u8 spriteId = GetAnimBattlerSpriteId(whichBattler);
|
||||
u8 spriteId = GetAnimBattlerSpriteId(animBattler);
|
||||
|
||||
if (spriteId != 0xff)
|
||||
if (spriteId != 0xFF)
|
||||
{
|
||||
for (i = 0; i < MAX_SPRITES; i++)
|
||||
{
|
||||
if (!gSprites[i].inUse)
|
||||
{
|
||||
gSprites[i] = gSprites[spriteId];
|
||||
gSprites[i].oam.objMode = 1;
|
||||
gSprites[i].oam.objMode = ST_OAM_OBJ_BLEND;
|
||||
gSprites[i].invisible = FALSE;
|
||||
return i;
|
||||
}
|
||||
@@ -1730,49 +1730,49 @@ void sub_80A7CB4(u8 task)
|
||||
AnimTask_BlendMonInAndOutSetup(&gTasks[task]);
|
||||
}
|
||||
|
||||
void sub_80A7CFC(struct Task *task, u8 a2, const void *a3)
|
||||
void PrepareAffineAnimInTaskData(struct Task *task, u8 spriteId, const union AffineAnimCmd *affineAnimCmds)
|
||||
{
|
||||
task->data[7] = 0;
|
||||
task->data[8] = 0;
|
||||
task->data[9] = 0;
|
||||
task->data[15] = a2;
|
||||
task->data[15] = spriteId;
|
||||
task->data[10] = 0x100;
|
||||
task->data[11] = 0x100;
|
||||
task->data[12] = 0;
|
||||
sub_80A8048(&task->data[13], &task->data[14], a3);
|
||||
sub_80A7270(a2, 0);
|
||||
StorePointerInVars(&task->data[13], &task->data[14], affineAnimCmds);
|
||||
PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL);
|
||||
}
|
||||
|
||||
bool8 sub_80A7D34(struct Task *task)
|
||||
bool8 RunAffineAnimFromTaskData(struct Task *task)
|
||||
{
|
||||
gUnknown_02038444 = sub_80A8050(task->data[13], task->data[14]) + (task->data[7] << 3);
|
||||
switch (gUnknown_02038444->type)
|
||||
gAnimTaskAffineAnim = LoadPointerFromVars(task->data[13], task->data[14]) + (task->data[7] << 3);
|
||||
switch (gAnimTaskAffineAnim->type)
|
||||
{
|
||||
default:
|
||||
if (!gUnknown_02038444->frame.duration)
|
||||
if (!gAnimTaskAffineAnim->frame.duration)
|
||||
{
|
||||
task->data[10] = gUnknown_02038444->frame.xScale;
|
||||
task->data[11] = gUnknown_02038444->frame.yScale;
|
||||
task->data[12] = gUnknown_02038444->frame.rotation;
|
||||
task->data[10] = gAnimTaskAffineAnim->frame.xScale;
|
||||
task->data[11] = gAnimTaskAffineAnim->frame.yScale;
|
||||
task->data[12] = gAnimTaskAffineAnim->frame.rotation;
|
||||
task->data[7]++;
|
||||
gUnknown_02038444++;
|
||||
gAnimTaskAffineAnim++;
|
||||
}
|
||||
task->data[10] += gUnknown_02038444->frame.xScale;
|
||||
task->data[11] += gUnknown_02038444->frame.yScale;
|
||||
task->data[12] += gUnknown_02038444->frame.rotation;
|
||||
obj_id_set_rotscale(task->data[15], task->data[10], task->data[11], task->data[12]);
|
||||
sub_80A7E6C(task->data[15]);
|
||||
if (++task->data[8] >= gUnknown_02038444->frame.duration)
|
||||
task->data[10] += gAnimTaskAffineAnim->frame.xScale;
|
||||
task->data[11] += gAnimTaskAffineAnim->frame.yScale;
|
||||
task->data[12] += gAnimTaskAffineAnim->frame.rotation;
|
||||
SetSpriteRotScale(task->data[15], task->data[10], task->data[11], task->data[12]);
|
||||
SetBattlerSpriteYOffsetFromYScale(task->data[15]);
|
||||
if (++task->data[8] >= gAnimTaskAffineAnim->frame.duration)
|
||||
{
|
||||
task->data[8] = 0;
|
||||
task->data[7]++;
|
||||
}
|
||||
break;
|
||||
case AFFINEANIMCMDTYPE_JUMP:
|
||||
task->data[7] = gUnknown_02038444->jump.target;
|
||||
task->data[7] = gAnimTaskAffineAnim->jump.target;
|
||||
break;
|
||||
case AFFINEANIMCMDTYPE_LOOP:
|
||||
if (gUnknown_02038444->loop.count)
|
||||
if (gAnimTaskAffineAnim->loop.count)
|
||||
{
|
||||
if (task->data[9])
|
||||
{
|
||||
@@ -1784,7 +1784,7 @@ bool8 sub_80A7D34(struct Task *task)
|
||||
}
|
||||
else
|
||||
{
|
||||
task->data[9] = gUnknown_02038444->loop.count;
|
||||
task->data[9] = gAnimTaskAffineAnim->loop.count;
|
||||
}
|
||||
if (!task->data[7])
|
||||
{
|
||||
@@ -1793,8 +1793,8 @@ bool8 sub_80A7D34(struct Task *task)
|
||||
for (;;)
|
||||
{
|
||||
task->data[7]--;
|
||||
gUnknown_02038444--;
|
||||
if (gUnknown_02038444->type == AFFINEANIMCMDTYPE_LOOP)
|
||||
gAnimTaskAffineAnim--;
|
||||
if (gAnimTaskAffineAnim->type == AFFINEANIMCMDTYPE_LOOP)
|
||||
{
|
||||
task->data[7]++;
|
||||
return TRUE;
|
||||
@@ -1807,36 +1807,40 @@ bool8 sub_80A7D34(struct Task *task)
|
||||
break;
|
||||
case AFFINEANIMCMDTYPE_END:
|
||||
gSprites[task->data[15]].pos2.y = 0;
|
||||
sub_80A7344(task->data[15]);
|
||||
ResetSpriteRotScale(task->data[15]);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_80A7E6C(u8 spriteId)
|
||||
// Sets the sprite's y offset equal to the y displacement caused by the
|
||||
// matrix's scale in the y dimension.
|
||||
void SetBattlerSpriteYOffsetFromYScale(u8 spriteId)
|
||||
{
|
||||
int var = 0x40 - sub_80A7F18(spriteId) * 2;
|
||||
int var = 64 - GetBattlerYDeltaFromSpriteId(spriteId) * 2;
|
||||
u16 matrix = gSprites[spriteId].oam.matrixNum;
|
||||
int var2 = (var << 8) / gOamMatrices[matrix].d;
|
||||
|
||||
if (var2 > 0x80)
|
||||
var2 = 0x80;
|
||||
if (var2 > 128)
|
||||
var2 = 128;
|
||||
gSprites[spriteId].pos2.y = (var - var2) / 2;
|
||||
}
|
||||
|
||||
void sub_80A7EC0(u8 spriteId, u8 spriteId2)
|
||||
// Sets the sprite's y offset equal to the y displacement caused by another sprite
|
||||
// matrix's scale in the y dimension.
|
||||
void SetBattlerSpriteYOffsetFromOtherYScale(u8 spriteId, u8 otherSpriteId)
|
||||
{
|
||||
int var = 0x40 - sub_80A7F18(spriteId2) * 2;
|
||||
int var = 64 - GetBattlerYDeltaFromSpriteId(otherSpriteId) * 2;
|
||||
u16 matrix = gSprites[spriteId].oam.matrixNum;
|
||||
int var2 = (var << 8) / gOamMatrices[matrix].d;
|
||||
|
||||
if (var2 > 0x80)
|
||||
var2 = 0x80;
|
||||
if (var2 > 128)
|
||||
var2 = 128;
|
||||
gSprites[spriteId].pos2.y = (var - var2) / 2;
|
||||
}
|
||||
|
||||
u16 sub_80A7F18(u8 spriteId)
|
||||
u16 GetBattlerYDeltaFromSpriteId(u8 spriteId)
|
||||
{
|
||||
struct BattleSpriteInfo *spriteInfo;
|
||||
u8 battlerId = gSprites[spriteId].data[0];
|
||||
@@ -1849,7 +1853,7 @@ u16 sub_80A7F18(u8 spriteId)
|
||||
{
|
||||
if (IsContest())
|
||||
{
|
||||
species = shared19348.species;
|
||||
species = gContestResources->field_18->species;
|
||||
return gMonBackPicCoords[species].y_offset;
|
||||
}
|
||||
else
|
||||
@@ -1883,18 +1887,18 @@ u16 sub_80A7F18(u8 spriteId)
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0x40;
|
||||
return 64;
|
||||
}
|
||||
|
||||
void sub_80A8048(s16 *bottom, s16 *top, const void *ptr)
|
||||
void StorePointerInVars(s16 *lo, s16 *hi, const void *ptr)
|
||||
{
|
||||
*bottom = ((intptr_t) ptr) & 0xffff;
|
||||
*top = (((intptr_t) ptr) >> 16) & 0xffff;
|
||||
*lo = ((intptr_t) ptr) & 0xffff;
|
||||
*hi = (((intptr_t) ptr) >> 16) & 0xffff;
|
||||
}
|
||||
|
||||
void *sub_80A8050(s16 bottom, s16 top)
|
||||
void *LoadPointerFromVars(s16 lo, s16 hi)
|
||||
{
|
||||
return (void *)((u16)bottom | ((u16)top << 16));
|
||||
return (void *)((u16)lo | ((u16)hi << 16));
|
||||
}
|
||||
|
||||
void sub_80A805C(struct Task *task, u8 a2, s16 a3, s16 a4, s16 a5, s16 a6, u16 a7)
|
||||
@@ -1924,9 +1928,9 @@ u8 sub_80A80C8(struct Task *task)
|
||||
task->data[9] = task->data[13];
|
||||
task->data[10] = task->data[14];
|
||||
}
|
||||
obj_id_set_rotscale(task->data[15], task->data[9], task->data[10], 0);
|
||||
SetSpriteRotScale(task->data[15], task->data[9], task->data[10], 0);
|
||||
if (task->data[8])
|
||||
sub_80A7E6C(task->data[15]);
|
||||
SetBattlerSpriteYOffsetFromYScale(task->data[15]);
|
||||
else
|
||||
gSprites[task->data[15]].pos2.y = 0;
|
||||
return task->data[8];
|
||||
@@ -1968,16 +1972,16 @@ void sub_80A8278(void)
|
||||
{
|
||||
if (IsBattlerSpriteVisible(i))
|
||||
{
|
||||
gSprites[gBattlerSpriteIds[i]].subpriority = sub_80A82E4(i);
|
||||
gSprites[gBattlerSpriteIds[i]].subpriority = GetBattlerSpriteSubpriority(i);
|
||||
gSprites[gBattlerSpriteIds[i]].oam.priority = 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
u8 sub_80A82E4(u8 battlerId)
|
||||
u8 GetBattlerSpriteSubpriority(u8 battlerId)
|
||||
{
|
||||
u8 position;
|
||||
u8 ret;
|
||||
u8 subpriority;
|
||||
|
||||
if (IsContest())
|
||||
{
|
||||
@@ -1990,15 +1994,16 @@ u8 sub_80A82E4(u8 battlerId)
|
||||
{
|
||||
position = GetBattlerPosition(battlerId);
|
||||
if (position == B_POSITION_PLAYER_LEFT)
|
||||
ret = 30;
|
||||
subpriority = 30;
|
||||
else if (position == B_POSITION_PLAYER_RIGHT)
|
||||
ret = 20;
|
||||
subpriority = 20;
|
||||
else if (position == B_POSITION_OPPONENT_LEFT)
|
||||
ret = 40;
|
||||
subpriority = 40;
|
||||
else
|
||||
ret = 50;
|
||||
subpriority = 50;
|
||||
}
|
||||
return ret;
|
||||
|
||||
return subpriority;
|
||||
}
|
||||
|
||||
u8 sub_80A8328(u8 battlerId)
|
||||
@@ -2100,15 +2105,15 @@ s16 sub_80A861C(u8 battlerId, u8 a2)
|
||||
|
||||
if (IsContest())
|
||||
{
|
||||
if (shared19348.unk4_0)
|
||||
if (gContestResources->field_18->unk4_0)
|
||||
{
|
||||
species = shared19348.unk2;
|
||||
personality = shared19348.unk10;
|
||||
species = gContestResources->field_18->unk2;
|
||||
personality = gContestResources->field_18->unk10;
|
||||
}
|
||||
else
|
||||
{
|
||||
species = shared19348.species;
|
||||
personality = shared19348.unk8;
|
||||
species = gContestResources->field_18->species;
|
||||
personality = gContestResources->field_18->unk8;
|
||||
}
|
||||
if (species == SPECIES_UNOWN)
|
||||
{
|
||||
@@ -2270,7 +2275,7 @@ u8 sub_80A89C8(int battlerId, u8 spriteId, int species)
|
||||
|
||||
void sub_80A8A6C(struct Sprite *sprite)
|
||||
{
|
||||
sub_80A6838(sprite);
|
||||
SetSpriteCoordsToAnimAttackerCoords(sprite);
|
||||
if (GetBattlerSide(gBattleAnimAttacker))
|
||||
{
|
||||
sprite->pos1.x -= gBattleAnimArgs[0];
|
||||
@@ -2286,7 +2291,7 @@ void sub_80A8A6C(struct Sprite *sprite)
|
||||
sprite->data[1] = gBattleAnimArgs[3];
|
||||
sprite->data[3] = gBattleAnimArgs[4];
|
||||
sprite->data[5] = gBattleAnimArgs[5];
|
||||
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
sprite->callback = sub_80A66DC;
|
||||
}
|
||||
|
||||
@@ -2307,19 +2312,19 @@ void sub_80A8AEC(struct Sprite *sprite)
|
||||
sprite->data[3] = gBattleAnimArgs[4];
|
||||
sprite->data[5] = gBattleAnimArgs[5];
|
||||
StartSpriteAnim(sprite, gBattleAnimArgs[6]);
|
||||
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
sprite->callback = sub_80A66DC;
|
||||
}
|
||||
|
||||
void sub_80A8B64(struct Sprite *sprite)
|
||||
{
|
||||
sub_80A6838(sprite);
|
||||
SetSpriteCoordsToAnimAttackerCoords(sprite);
|
||||
if (GetBattlerSide(gBattleAnimAttacker))
|
||||
sprite->pos1.x -= gBattleAnimArgs[0];
|
||||
else
|
||||
sprite->pos1.x += gBattleAnimArgs[0];
|
||||
sprite->pos1.y += gBattleAnimArgs[1];
|
||||
sprite->callback = sub_80A67D8;
|
||||
sprite->callback = RunStoredCallbackWhenAnimEnds;
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
}
|
||||
|
||||
@@ -2339,7 +2344,7 @@ void sub_80A8BC4(u8 taskId)
|
||||
|
||||
dest = (task->data[4] + 0x10) * 0x10;
|
||||
src = (gSprites[task->data[0]].oam.paletteNum + 0x10) * 0x10;
|
||||
task->data[6] = sub_80A82E4(gBattleAnimAttacker);
|
||||
task->data[6] = GetBattlerSpriteSubpriority(gBattleAnimAttacker);
|
||||
if (task->data[6] == 20 || task->data[6] == 40)
|
||||
task->data[6] = 2;
|
||||
else
|
||||
@@ -2384,7 +2389,7 @@ void sub_80A8CAC(u8 taskId)
|
||||
|
||||
void sub_80A8D78(struct Task *task, u8 taskId)
|
||||
{
|
||||
s16 spriteId = duplicate_obj_of_side_rel2move_in_transparent_mode(0);
|
||||
s16 spriteId = CloneBattlerSpriteWithBlend(0);
|
||||
if (spriteId >= 0)
|
||||
{
|
||||
gSprites[spriteId].oam.priority = task->data[6];
|
||||
@@ -2410,7 +2415,7 @@ void sub_80A8DFC(struct Sprite *sprite)
|
||||
void sub_80A8E30(struct Sprite *sprite)
|
||||
{
|
||||
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
|
||||
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_3);
|
||||
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
|
||||
if (!GetBattlerSide(gBattleAnimAttacker))
|
||||
sprite->data[0] = 5;
|
||||
else
|
||||
|
||||
@@ -175,7 +175,7 @@ static void sub_80A9E78(struct Sprite *sprite)
|
||||
void sub_80A9EF4(u8 taskId)
|
||||
{
|
||||
s16 x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) - 32;
|
||||
s16 y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_3) - 36;
|
||||
s16 y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) - 36;
|
||||
u8 spriteId;
|
||||
|
||||
if (IsContest())
|
||||
|
||||
@@ -834,7 +834,7 @@ void AnimTask_ScaleMonAndRestore(u8 taskId)
|
||||
{
|
||||
u8 spriteId;
|
||||
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[3]);
|
||||
sub_80A7270(spriteId, gBattleAnimArgs[4]);
|
||||
PrepareBattlerSpriteForRotScale(spriteId, gBattleAnimArgs[4]);
|
||||
gTasks[taskId].data[0] = gBattleAnimArgs[0];
|
||||
gTasks[taskId].data[1] = gBattleAnimArgs[1];
|
||||
gTasks[taskId].data[2] = gBattleAnimArgs[2];
|
||||
@@ -851,7 +851,7 @@ void AnimTask_ScaleMonAndRestoreStep(u8 taskId)
|
||||
gTasks[taskId].data[10] += gTasks[taskId].data[0];
|
||||
gTasks[taskId].data[11] += gTasks[taskId].data[1];
|
||||
spriteId = gTasks[taskId].data[4];
|
||||
obj_id_set_rotscale(spriteId, gTasks[taskId].data[10], gTasks[taskId].data[11], 0);
|
||||
SetSpriteRotScale(spriteId, gTasks[taskId].data[10], gTasks[taskId].data[11], 0);
|
||||
if (--gTasks[taskId].data[2] == 0)
|
||||
{
|
||||
if (gTasks[taskId].data[3] > 0)
|
||||
@@ -863,7 +863,7 @@ void AnimTask_ScaleMonAndRestoreStep(u8 taskId)
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_80A7344(spriteId);
|
||||
ResetSpriteRotScale(spriteId);
|
||||
DestroyAnimVisualTask(taskId);
|
||||
return;
|
||||
}
|
||||
@@ -874,7 +874,7 @@ void sub_80D6134(u8 taskId)
|
||||
{
|
||||
u8 spriteId;
|
||||
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]);
|
||||
sub_80A7270(spriteId, 0);
|
||||
PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL);
|
||||
gTasks[taskId].data[1] = 0;
|
||||
gTasks[taskId].data[2] = gBattleAnimArgs[0];
|
||||
if (gBattleAnimArgs[3] != 1)
|
||||
@@ -918,7 +918,7 @@ void sub_80D622C(u8 taskId)
|
||||
{
|
||||
u8 spriteId;
|
||||
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]);
|
||||
sub_80A7270(spriteId, 0);
|
||||
PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL);
|
||||
gTasks[taskId].data[1] = 0;
|
||||
gTasks[taskId].data[2] = gBattleAnimArgs[0];
|
||||
if (gBattleAnimArgs[2] == 0)
|
||||
@@ -955,17 +955,17 @@ void sub_80D622C(u8 taskId)
|
||||
void sub_80D6308(u8 taskId)
|
||||
{
|
||||
gTasks[taskId].data[3] += gTasks[taskId].data[4];
|
||||
obj_id_set_rotscale(gTasks[taskId].data[5], 0x100, 0x100, gTasks[taskId].data[3]);
|
||||
SetSpriteRotScale(gTasks[taskId].data[5], 0x100, 0x100, gTasks[taskId].data[3]);
|
||||
if (gTasks[taskId].data[7])
|
||||
{
|
||||
sub_80A73A0(gTasks[taskId].data[5]);
|
||||
SetBattlerSpriteYOffsetFromRotation(gTasks[taskId].data[5]);
|
||||
}
|
||||
if (++gTasks[taskId].data[1] >= gTasks[taskId].data[2])
|
||||
{
|
||||
switch (gTasks[taskId].data[6])
|
||||
{
|
||||
case 1:
|
||||
sub_80A7344(gTasks[taskId].data[5]);
|
||||
ResetSpriteRotScale(gTasks[taskId].data[5]);
|
||||
case 0:
|
||||
default:
|
||||
DestroyAnimVisualTask(taskId);
|
||||
|
||||
@@ -604,19 +604,19 @@ void sub_8170B04(u8 taskId)
|
||||
switch (gTasks[taskId].data[0])
|
||||
{
|
||||
case 0:
|
||||
sub_80A7270(spriteId, 0);
|
||||
PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL);
|
||||
gTasks[taskId].data[10] = 0x100;
|
||||
gTasks[taskId].data[0]++;
|
||||
break;
|
||||
case 1:
|
||||
gTasks[taskId].data[10] += 0x30;
|
||||
obj_id_set_rotscale(spriteId, gTasks[taskId].data[10], gTasks[taskId].data[10], 0);
|
||||
sub_80A7E6C(spriteId);
|
||||
SetSpriteRotScale(spriteId, gTasks[taskId].data[10], gTasks[taskId].data[10], 0);
|
||||
SetBattlerSpriteYOffsetFromYScale(spriteId);
|
||||
if (gTasks[taskId].data[10] >= 0x2D0)
|
||||
gTasks[taskId].data[0]++;
|
||||
break;
|
||||
case 2:
|
||||
sub_80A7344(spriteId);
|
||||
ResetSpriteRotScale(spriteId);
|
||||
gSprites[spriteId].invisible = 1;
|
||||
DestroyAnimVisualTask(taskId);
|
||||
break;
|
||||
@@ -756,7 +756,7 @@ void sub_8170F2C(u8 taskId)
|
||||
}
|
||||
|
||||
ballId = ItemIdToBallId(gLastUsedItem);
|
||||
subpriority = sub_80A82E4(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)) + 1;
|
||||
subpriority = GetBattlerSpriteSubpriority(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)) + 1;
|
||||
spriteId = CreateSprite(&gBallSpriteTemplates[ballId], x + 32, y | 80, subpriority);
|
||||
gSprites[spriteId].data[0] = 34;
|
||||
gSprites[spriteId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 0);
|
||||
@@ -862,7 +862,7 @@ static void sub_8171240(struct Sprite *sprite)
|
||||
switch (gTasks[taskId].data[0])
|
||||
{
|
||||
case 0:
|
||||
sub_80A7270(spriteId, 0);
|
||||
PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL);
|
||||
gTasks[taskId].data[10] = 256;
|
||||
gUnknown_030062DC = 28;
|
||||
gUnknown_030062E4 = (gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y) - (sprite->pos1.y + sprite->pos2.y);
|
||||
@@ -872,14 +872,14 @@ static void sub_8171240(struct Sprite *sprite)
|
||||
break;
|
||||
case 1:
|
||||
gTasks[taskId].data[10] += 0x20;
|
||||
obj_id_set_rotscale(spriteId, gTasks[taskId].data[10], gTasks[taskId].data[10], 0);
|
||||
SetSpriteRotScale(spriteId, gTasks[taskId].data[10], gTasks[taskId].data[10], 0);
|
||||
gTasks[taskId].data[3] += gTasks[taskId].data[2];
|
||||
gSprites[spriteId].pos2.y = -gTasks[taskId].data[3] >> 8;
|
||||
if (gTasks[taskId].data[10] >= 0x480)
|
||||
gTasks[taskId].data[0]++;
|
||||
break;
|
||||
case 2:
|
||||
sub_80A7344(spriteId);
|
||||
ResetSpriteRotScale(spriteId);
|
||||
gSprites[spriteId].invisible = 1;
|
||||
gTasks[taskId].data[0]++;
|
||||
break;
|
||||
|
||||
@@ -1,9 +1,15 @@
|
||||
#include "global.h"
|
||||
#include "alloc.h"
|
||||
#include "battle_anim.h"
|
||||
#include "battle_interface.h"
|
||||
#include "decompress.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "graphics.h"
|
||||
#include "main.h"
|
||||
#include "math_util.h"
|
||||
#include "palette.h"
|
||||
#include "random.h"
|
||||
#include "scanline_effect.h"
|
||||
#include "sound.h"
|
||||
#include "trig.h"
|
||||
#include "util.h"
|
||||
@@ -2220,7 +2226,7 @@ void sub_80FE8E0(struct Sprite* sprite)
|
||||
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
|
||||
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
|
||||
sprite->callback = StartAnimLinearTranslation;
|
||||
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
}
|
||||
|
||||
void sub_80FE930(struct Sprite* sprite)
|
||||
@@ -2257,9 +2263,9 @@ static void sub_80FE9E4(struct Sprite* sprite)
|
||||
else
|
||||
{
|
||||
if (sprite->data[5] > 0x7F)
|
||||
sprite->subpriority = sub_80A82E4(gBattleAnimTarget) + 1;
|
||||
sprite->subpriority = GetBattlerSpriteSubpriority(gBattleAnimTarget) + 1;
|
||||
else
|
||||
sprite->subpriority = sub_80A82E4(gBattleAnimTarget) + 6;
|
||||
sprite->subpriority = GetBattlerSpriteSubpriority(gBattleAnimTarget) + 6;
|
||||
|
||||
sprite->pos2.x += Sin(sprite->data[5], 5);
|
||||
sprite->pos2.y += Cos(sprite->data[5], 14);
|
||||
@@ -2278,7 +2284,7 @@ void sub_80FEA58(u8 taskId)
|
||||
gBattleAnimArgs[1] = 0;
|
||||
gBattleAnimArgs[2] = 80;
|
||||
gBattleAnimArgs[3] = 0;
|
||||
CreateSpriteAndAnimate(&gUnknown_08592210, 0, 0, sub_80A82E4(gBattleAnimTarget) + 1);
|
||||
CreateSpriteAndAnimate(&gUnknown_08592210, 0, 0, GetBattlerSpriteSubpriority(gBattleAnimTarget) + 1);
|
||||
}
|
||||
|
||||
if (gTasks[taskId].data[1] == 15)
|
||||
@@ -2465,9 +2471,9 @@ static void sub_80FEECC(struct Sprite* sprite)
|
||||
sprite->pos2.x += Sin(sprite->data[5], 32);
|
||||
sprite->pos2.y += Cos(sprite->data[5], -5);
|
||||
if ((u16)(sprite->data[5] - 0x40) < 0x80)
|
||||
sprite->subpriority = sub_80A82E4(gBattleAnimAttacker) - 1;
|
||||
sprite->subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) - 1;
|
||||
else
|
||||
sprite->subpriority = sub_80A82E4(gBattleAnimAttacker) + 1;
|
||||
sprite->subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) + 1;
|
||||
|
||||
sprite->data[5] = (sprite->data[5] + 5) & 0xFF;
|
||||
}
|
||||
@@ -2731,7 +2737,7 @@ void sub_80FF458(u8 taskId)
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_80A7270(spriteId, 1);
|
||||
PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_BLEND);
|
||||
gTasks[taskId].data[14] = gSprites[spriteId].oam.priority;
|
||||
gSprites[spriteId].oam.priority = sub_80A8328(gBattleAnimTarget);
|
||||
spriteId = GetAnimBattlerSpriteId(ANIM_DEF_PARTNER);
|
||||
@@ -2753,8 +2759,8 @@ static void sub_80FF53C(u8 taskId)
|
||||
gSprites[spriteId].pos2.x = -gSprites[spriteId].pos2.x;
|
||||
|
||||
gTasks[taskId].data[11] += 16;
|
||||
obj_id_set_rotscale(spriteId, gTasks[taskId].data[11], gTasks[taskId].data[11], 0);
|
||||
sub_80A7E6C(spriteId);
|
||||
SetSpriteRotScale(spriteId, gTasks[taskId].data[11], gTasks[taskId].data[11], 0);
|
||||
SetBattlerSpriteYOffsetFromYScale(spriteId);
|
||||
if (--gTasks[taskId].data[1] == 0)
|
||||
{
|
||||
gTasks[taskId].data[0] = 0;
|
||||
@@ -2769,7 +2775,7 @@ static void sub_80FF5CC(u8 taskId)
|
||||
if (gTasks[taskId].data[0] == 0)
|
||||
{
|
||||
u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET);
|
||||
sub_80A7344(spriteId);
|
||||
ResetSpriteRotScale(spriteId);
|
||||
gSprites[spriteId].pos2.x = 0;
|
||||
gSprites[spriteId].pos2.y = 0;
|
||||
gSprites[spriteId].oam.priority = gTasks[taskId].data[14];
|
||||
@@ -2795,7 +2801,6 @@ void sub_80FF698(struct Sprite* sprite)
|
||||
switch (sprite->data[0])
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)
|
||||
gBattleAnimArgs[0] *= -1;
|
||||
|
||||
@@ -2804,9 +2809,7 @@ void sub_80FF698(struct Sprite* sprite)
|
||||
sprite->invisible = 1;
|
||||
sprite->data[0]++;
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
sprite->invisible = 0;
|
||||
if (sprite->affineAnimEnded)
|
||||
{
|
||||
@@ -2819,7 +2822,6 @@ void sub_80FF698(struct Sprite* sprite)
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80FF768(struct Sprite* sprite)
|
||||
@@ -3205,7 +3207,7 @@ void sub_80FFFC0(u8 taskId)
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
task->data[4] = sub_80A82E4(gBattleAnimTarget) - 1;
|
||||
task->data[4] = GetBattlerSpriteSubpriority(gBattleAnimTarget) - 1;
|
||||
task->data[6] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
|
||||
task->data[7] = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
|
||||
task->data[10] = sub_80A861C(gBattleAnimTarget, 1);
|
||||
@@ -3529,7 +3531,7 @@ static void sub_810074C(struct Sprite* sprite)
|
||||
return;
|
||||
}
|
||||
|
||||
move_anim_8074EE0(sprite);
|
||||
DestroySpriteAndMatrix(sprite);
|
||||
}
|
||||
|
||||
void sub_81007C4(u8 taskId)
|
||||
@@ -3613,7 +3615,7 @@ void sub_8100898(struct Sprite* sprite)
|
||||
if (IsContest())
|
||||
c -= 0x8000;
|
||||
|
||||
sub_80A73E0(sprite, 0, 0x100, 0x100, c);
|
||||
TrySetSpriteRotScale(sprite, 0, 0x100, 0x100, c);
|
||||
sprite->callback = sub_81009A0;
|
||||
}
|
||||
}
|
||||
@@ -3630,7 +3632,7 @@ static void sub_81009A0(struct Sprite* sprite)
|
||||
}
|
||||
else
|
||||
{
|
||||
move_anim_8074EE0(sprite);
|
||||
DestroySpriteAndMatrix(sprite);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3653,7 +3655,7 @@ void sub_81009F8(struct Sprite* sprite)
|
||||
sprite->pos1.y += gBattleAnimArgs[1];
|
||||
}
|
||||
|
||||
sprite->callback = sub_80A67D8;
|
||||
sprite->callback = RunStoredCallbackWhenAnimEnds;
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
}
|
||||
|
||||
@@ -3676,7 +3678,7 @@ void sub_8100A94(struct Sprite* sprite)
|
||||
sprite->data[3] = gBattleAnimArgs[4];
|
||||
sprite->data[5] = gBattleAnimArgs[5];
|
||||
StartSpriteAffineAnim(sprite, gBattleAnimArgs[6]);
|
||||
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
sprite->callback = sub_80A66DC;
|
||||
}
|
||||
|
||||
@@ -4024,7 +4026,7 @@ static void sub_8101298(struct Sprite* sprite, int unk1, int unk2)
|
||||
void sub_810130C(struct Sprite* sprite)
|
||||
{
|
||||
if (!gBattleAnimArgs[2])
|
||||
sub_80A6838(sprite);
|
||||
SetSpriteCoordsToAnimAttackerCoords(sprite);
|
||||
|
||||
sub_80A6864(sprite, gBattleAnimArgs[0]);
|
||||
sprite->pos1.y += gBattleAnimArgs[1];
|
||||
@@ -4032,7 +4034,7 @@ void sub_810130C(struct Sprite* sprite)
|
||||
sprite->data[1] = gBattleAnimArgs[3];
|
||||
sprite->data[2] = gBattleAnimArgs[4];
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
sprite->callback = sub_80A656C;
|
||||
sprite->callback = TranslateAnimLinearSimple;
|
||||
}
|
||||
|
||||
void sub_810135C(struct Sprite* sprite)
|
||||
@@ -4069,13 +4071,13 @@ void sub_810135C(struct Sprite* sprite)
|
||||
sprite->data[1] = gBattleAnimArgs[3];
|
||||
sprite->data[2] = gBattleAnimArgs[4];
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
sprite->callback = sub_80A656C;
|
||||
sprite->callback = TranslateAnimLinearSimple;
|
||||
}
|
||||
|
||||
void sub_8101440(struct Sprite* sprite)
|
||||
{
|
||||
sub_80A6838(sprite);
|
||||
if (GetBattlerSide(gBattleAnimAttacker) == 0)
|
||||
SetSpriteCoordsToAnimAttackerCoords(sprite);
|
||||
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
|
||||
{
|
||||
sprite->pos1.x += gBattleAnimArgs[0];
|
||||
sprite->pos1.y += gBattleAnimArgs[1];
|
||||
@@ -4105,7 +4107,7 @@ static void sub_81014A0(struct Sprite* sprite)
|
||||
|
||||
void sub_81014F4(struct Sprite* sprite)
|
||||
{
|
||||
sub_80A6838(sprite);
|
||||
SetSpriteCoordsToAnimAttackerCoords(sprite);
|
||||
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
|
||||
{
|
||||
sprite->pos1.x += gBattleAnimArgs[0];
|
||||
@@ -4130,7 +4132,7 @@ static void sub_8101560(struct Sprite* sprite)
|
||||
sprite->data[4] += sprite->data[3] * 2;
|
||||
sprite->data[0] += sprite->data[1];
|
||||
if (++sprite->data[1] > 60)
|
||||
move_anim_8074EE0(sprite);
|
||||
DestroySpriteAndMatrix(sprite);
|
||||
}
|
||||
|
||||
void sub_81015AC(struct Sprite* sprite)
|
||||
@@ -4347,14 +4349,14 @@ static void sub_81019E8(struct Sprite* sprite)
|
||||
if (sprite->data[0] == 0)
|
||||
{
|
||||
sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker];
|
||||
sub_80A7270(sprite->data[3], 0);
|
||||
PrepareBattlerSpriteForRotScale(sprite->data[3], ST_OAM_OBJ_NORMAL);
|
||||
sprite->data[4] = (sprite->data[6] = GetBattlerSide(gBattleAnimAttacker)) ? 0x300 : 0xFFFFFD00;
|
||||
sprite->data[5] = 0;
|
||||
}
|
||||
|
||||
sprite->data[5] += sprite->data[4];
|
||||
obj_id_set_rotscale(sprite->data[3], 0x100, 0x100, sprite->data[5]);
|
||||
sub_80A73A0(sprite->data[3]);
|
||||
SetSpriteRotScale(sprite->data[3], 0x100, 0x100, sprite->data[5]);
|
||||
SetBattlerSpriteYOffsetFromRotation(sprite->data[3]);
|
||||
if (++sprite->data[0] > 3)
|
||||
{
|
||||
sprite->data[0] = 0;
|
||||
@@ -4400,11 +4402,11 @@ static void sub_8101AE8(struct Sprite* sprite)
|
||||
}
|
||||
|
||||
sprite->data[5] += sprite->data[4];
|
||||
obj_id_set_rotscale(sprite->data[3], 0x100, 0x100, sprite->data[5]);
|
||||
sub_80A73A0(sprite->data[3]);
|
||||
SetSpriteRotScale(sprite->data[3], 0x100, 0x100, sprite->data[5]);
|
||||
SetBattlerSpriteYOffsetFromRotation(sprite->data[3]);
|
||||
if (++sprite->data[0] > 2)
|
||||
{
|
||||
sub_80A7344(sprite->data[3]);
|
||||
ResetSpriteRotScale(sprite->data[3]);
|
||||
sprite->callback = sub_8101B84;
|
||||
}
|
||||
}
|
||||
@@ -4430,13 +4432,13 @@ static void sub_8101BA0(struct Sprite *sprite)
|
||||
sprite->data[3] = GetBattlerSide(gBattleAnimAttacker);
|
||||
sprite->data[4] = (sprite->data[3] != B_SIDE_PLAYER) ? 0x200 : -0x200;
|
||||
sprite->data[5] = 0;
|
||||
sub_80A7270(sprite->data[2], 0);
|
||||
PrepareBattlerSpriteForRotScale(sprite->data[2], ST_OAM_OBJ_NORMAL);
|
||||
sprite->data[0]++;
|
||||
// fall through
|
||||
case 1:
|
||||
sprite->data[5] += sprite->data[4];
|
||||
obj_id_set_rotscale(sprite->data[2], 0x100, 0x100, sprite->data[5]);
|
||||
sub_80A73A0(sprite->data[2]);
|
||||
SetSpriteRotScale(sprite->data[2], 0x100, 0x100, sprite->data[5]);
|
||||
SetBattlerSpriteYOffsetFromRotation(sprite->data[2]);
|
||||
if (++sprite->data[1] > 3)
|
||||
{
|
||||
sprite->data[1] = 0;
|
||||
@@ -4446,11 +4448,11 @@ static void sub_8101BA0(struct Sprite *sprite)
|
||||
break;
|
||||
case 2:
|
||||
sprite->data[5] += sprite->data[4];
|
||||
obj_id_set_rotscale(sprite->data[2], 0x100, 0x100, sprite->data[5]);
|
||||
sub_80A73A0(sprite->data[2]);
|
||||
SetSpriteRotScale(sprite->data[2], 0x100, 0x100, sprite->data[5]);
|
||||
SetBattlerSpriteYOffsetFromRotation(sprite->data[2]);
|
||||
if (++sprite->data[1] > 3)
|
||||
{
|
||||
sub_80A7344(sprite->data[2]);
|
||||
ResetSpriteRotScale(sprite->data[2]);
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
break;
|
||||
@@ -4512,7 +4514,7 @@ static void sub_8101D2C(u8 taskId)
|
||||
task->data[3] = 8;
|
||||
task->data[4] = 0;
|
||||
task->data[5] = (task->data[1] == 0) ? -0xC0 : 0xC0;
|
||||
sub_80A7270(task->data[0], 0);
|
||||
PrepareBattlerSpriteForRotScale(task->data[0], ST_OAM_OBJ_NORMAL);
|
||||
task->data[2]++;
|
||||
}
|
||||
break;
|
||||
@@ -4520,8 +4522,8 @@ static void sub_8101D2C(u8 taskId)
|
||||
if (task->data[3])
|
||||
{
|
||||
task->data[4] += task->data[5];
|
||||
obj_id_set_rotscale(task->data[0], 0x100, 0x100, task->data[4]);
|
||||
sub_80A73A0(task->data[0]);
|
||||
SetSpriteRotScale(task->data[0], 0x100, 0x100, task->data[4]);
|
||||
SetBattlerSpriteYOffsetFromRotation(task->data[0]);
|
||||
task->data[3]--;
|
||||
}
|
||||
else
|
||||
@@ -4592,13 +4594,13 @@ static void sub_8101EEC(u8 taskId)
|
||||
if (task->data[3])
|
||||
{
|
||||
task->data[4] -= task->data[5];
|
||||
obj_id_set_rotscale(task->data[0], 0x100, 0x100, task->data[4]);
|
||||
sub_80A73A0(task->data[0]);
|
||||
SetSpriteRotScale(task->data[0], 0x100, 0x100, task->data[4]);
|
||||
SetBattlerSpriteYOffsetFromRotation(task->data[0]);
|
||||
task->data[3]--;
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_80A7344(task->data[0]);
|
||||
ResetSpriteRotScale(task->data[0]);
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
}
|
||||
@@ -4619,7 +4621,7 @@ void sub_8101F40(struct Sprite* sprite)
|
||||
sprite->data[0] = 0;
|
||||
sprite->data[1] = 0;
|
||||
StoreSpriteCallbackInData6(sprite, sub_810208C);
|
||||
sprite->callback = sub_80A67D8;
|
||||
sprite->callback = RunStoredCallbackWhenAnimEnds;
|
||||
}
|
||||
|
||||
void sub_8101FA8(struct Sprite* sprite)
|
||||
@@ -4627,7 +4629,7 @@ void sub_8101FA8(struct Sprite* sprite)
|
||||
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + 0xFFD0;
|
||||
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
|
||||
StoreSpriteCallbackInData6(sprite, sub_8102044);
|
||||
sprite->callback = sub_80A67D8;
|
||||
sprite->callback = RunStoredCallbackWhenAnimEnds;
|
||||
}
|
||||
|
||||
void sub_8101FF0(struct Sprite* sprite)
|
||||
@@ -4914,7 +4916,7 @@ void sub_81025C0(u8 taskId)
|
||||
gTasks[taskId].data[9] = 15;
|
||||
b = sub_80A76C4(1, 1, 1, 1);
|
||||
c = a | b;
|
||||
sub_80A8048(&gTasks[taskId].data[14], &gTasks[taskId].data[15], (void*)c);
|
||||
StorePointerInVars(&gTasks[taskId].data[14], &gTasks[taskId].data[15], (void*)c);
|
||||
b = b | (0x10000 << IndexOfSpritePaletteTag(ANIM_TAG_MOON));
|
||||
d = IndexOfSpritePaletteTag(ANIM_TAG_GREEN_SPARKLE);
|
||||
BeginNormalPaletteFade((0x10000 << d) | b, 0, 0, 16, RGB(27, 29, 31));
|
||||
@@ -4989,7 +4991,7 @@ void sub_81026A8(u8 taskId)
|
||||
case 2:
|
||||
if (++task->data[1] > 30)
|
||||
{
|
||||
BeginNormalPaletteFade((u32)sub_80A8050(task->data[14], task->data[15]), 0, 16, 0, RGB(27, 29, 31));
|
||||
BeginNormalPaletteFade((u32)LoadPointerFromVars(task->data[14], task->data[15]), 0, 16, 0, RGB(27, 29, 31));
|
||||
task->data[0]++;
|
||||
}
|
||||
break;
|
||||
@@ -5080,7 +5082,7 @@ void sub_81029B4(u8 taskId)
|
||||
BlendPalette(r3, 16, 11, RGB(0, 0, 0));
|
||||
task->data[3] = 0;
|
||||
i = 0;
|
||||
while (i < 2 && (obj = duplicate_obj_of_side_rel2move_in_transparent_mode(0)) >= 0)
|
||||
while (i < 2 && (obj = CloneBattlerSpriteWithBlend(0)) >= 0)
|
||||
{
|
||||
gSprites[obj].oam.paletteNum = task->data[1];
|
||||
gSprites[obj].data[0] = 0;
|
||||
@@ -5138,7 +5140,7 @@ static void sub_8102B3C(struct Sprite* sprite)
|
||||
void sub_8102BCC(struct Sprite* sprite)
|
||||
{
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
sprite->callback = sub_80A67D8;
|
||||
sprite->callback = RunStoredCallbackWhenAnimEnds;
|
||||
}
|
||||
|
||||
void sub_8102BE8(u8 taskId)
|
||||
@@ -5183,7 +5185,7 @@ void sub_8102CD4(struct Sprite* sprite)
|
||||
u8 index;
|
||||
u8 a;
|
||||
u8 b;
|
||||
sub_80A6838(sprite);
|
||||
SetSpriteCoordsToAnimAttackerCoords(sprite);
|
||||
StartSpriteAnim(sprite, gBattleAnimArgs[0]);
|
||||
if ((index = IndexOfSpritePaletteTag(gUnknown_08593020[gBattleAnimArgs[1]][0])) != 0xFF)
|
||||
sprite->oam.paletteNum = index;
|
||||
@@ -5242,7 +5244,7 @@ static void sub_8102DE4(struct Sprite* sprite)
|
||||
|
||||
if ((u32)((c + 16) << 16) > (0x110) << 16 || a < -16 || a > 0x80)
|
||||
{
|
||||
move_anim_8074EE0(sprite);
|
||||
DestroySpriteAndMatrix(sprite);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -5296,7 +5298,7 @@ static void sub_8102F40(struct Sprite* sprite)
|
||||
}
|
||||
|
||||
if (++sprite->data[0] == 48)
|
||||
move_anim_8074EE0(sprite);
|
||||
DestroySpriteAndMatrix(sprite);
|
||||
}
|
||||
|
||||
void sub_8102FB8(struct Sprite* sprite)
|
||||
@@ -5323,7 +5325,7 @@ void sub_8103028(struct Sprite* sprite)
|
||||
{
|
||||
s16 xDiff;
|
||||
u8 index;
|
||||
sub_80A6838(sprite);
|
||||
SetSpriteCoordsToAnimAttackerCoords(sprite);
|
||||
sprite->pos1.y += 8;
|
||||
StartSpriteAnim(sprite, gBattleAnimArgs[1]);
|
||||
index = IndexOfSpritePaletteTag(gUnknown_08593020[gBattleAnimArgs[2]][0]);
|
||||
@@ -5385,7 +5387,7 @@ void sub_8103164(struct Sprite* sprite)
|
||||
sprite->data[1] = a + 2;
|
||||
StartSpriteAnim(sprite, a);
|
||||
StoreSpriteCallbackInData6(sprite, sub_81031D0);
|
||||
sprite->callback = sub_80A67D8;
|
||||
sprite->callback = RunStoredCallbackWhenAnimEnds;
|
||||
}
|
||||
|
||||
static void sub_81031D0(struct Sprite* sprite)
|
||||
@@ -5394,7 +5396,7 @@ static void sub_81031D0(struct Sprite* sprite)
|
||||
{
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
StartSpriteAnim(sprite, sprite->data[1]);
|
||||
sprite->callback = sub_80A67D8;
|
||||
sprite->callback = RunStoredCallbackWhenAnimEnds;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5409,7 +5411,7 @@ void sub_8103208(struct Sprite* sprite)
|
||||
sub_810310C(battler, sprite);
|
||||
sprite->data[0] = 0;
|
||||
StoreSpriteCallbackInData6(sprite, sub_8103250);
|
||||
sprite->callback = sub_80A67BC;
|
||||
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
|
||||
}
|
||||
|
||||
static void sub_8103250(struct Sprite* sprite)
|
||||
@@ -5417,8 +5419,8 @@ static void sub_8103250(struct Sprite* sprite)
|
||||
if (++sprite->data[0] > 16)
|
||||
{
|
||||
StartSpriteAffineAnim(sprite, 1);
|
||||
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
|
||||
sprite->callback = sub_80A67BC;
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5441,7 +5443,7 @@ void sub_8103284(struct Sprite* sprite)
|
||||
sprite->data[3] = sprite->subpriority + 4;
|
||||
sprite->data[4] = 0;
|
||||
StoreSpriteCallbackInData6(sprite, sub_8103300);
|
||||
sprite->callback = sub_80A67BC;
|
||||
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
|
||||
}
|
||||
|
||||
static void sub_8103300(struct Sprite* sprite)
|
||||
@@ -5509,7 +5511,7 @@ static void sub_81033F0(struct Sprite* sprite)
|
||||
sprite->data[1] = 0;
|
||||
StartSpriteAnim(sprite, sprite->data[0]);
|
||||
StoreSpriteCallbackInData6(sprite, sub_810342C);
|
||||
sprite->callback = sub_80A67D8;
|
||||
sprite->callback = RunStoredCallbackWhenAnimEnds;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
3884
src/battle_anim_effects_2.c
Executable file
3884
src/battle_anim_effects_2.c
Executable file
File diff suppressed because it is too large
Load Diff
@@ -236,7 +236,7 @@ static void sub_81169F8(u8 taskId)
|
||||
}
|
||||
else
|
||||
{
|
||||
task->data[6] = duplicate_obj_of_side_rel2move_in_transparent_mode(task->data[0]);
|
||||
task->data[6] = CloneBattlerSpriteWithBlend(task->data[0]);
|
||||
if (task->data[6] >= 0)
|
||||
{
|
||||
gSprites[task->data[6]].oam.priority = task->data[0] ? 1 : 2;
|
||||
|
||||
@@ -1136,7 +1136,7 @@ static void LinkOpponentHandleLoadMonSprite(void)
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
|
||||
GetBattlerSpriteCoord(gActiveBattler, 2),
|
||||
GetBattlerSpriteDefault_Y(gActiveBattler),
|
||||
sub_80A82E4(gActiveBattler));
|
||||
GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler;
|
||||
@@ -1170,7 +1170,7 @@ static void sub_8066494(u8 battlerId, bool8 dontClearSubstituteBit)
|
||||
&gMultiuseSpriteTemplate,
|
||||
GetBattlerSpriteCoord(battlerId, 2),
|
||||
GetBattlerSpriteDefault_Y(battlerId),
|
||||
sub_80A82E4(battlerId));
|
||||
GetBattlerSpriteSubpriority(battlerId));
|
||||
|
||||
gSprites[gUnknown_03005D7C[battlerId]].data[1] = gBattlerSpriteIds[battlerId];
|
||||
gSprites[gUnknown_03005D7C[battlerId]].data[2] = battlerId;
|
||||
@@ -1302,7 +1302,7 @@ static void LinkOpponentHandleDrawTrainerPic(void)
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
|
||||
xPos,
|
||||
(8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40,
|
||||
sub_80A82E4(gActiveBattler));
|
||||
GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2;
|
||||
|
||||
@@ -1024,7 +1024,7 @@ static void LinkPartnerHandleLoadMonSprite(void)
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
|
||||
GetBattlerSpriteCoord(gActiveBattler, 2),
|
||||
GetBattlerSpriteDefault_Y(gActiveBattler),
|
||||
sub_80A82E4(gActiveBattler));
|
||||
GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
|
||||
@@ -1055,7 +1055,7 @@ static void sub_814CC98(u8 battlerId, bool8 dontClearSubstituteBit)
|
||||
&gMultiuseSpriteTemplate,
|
||||
GetBattlerSpriteCoord(battlerId, 2),
|
||||
GetBattlerSpriteDefault_Y(battlerId),
|
||||
sub_80A82E4(battlerId));
|
||||
GetBattlerSpriteSubpriority(battlerId));
|
||||
|
||||
gSprites[gUnknown_03005D7C[battlerId]].data[1] = gBattlerSpriteIds[battlerId];
|
||||
gSprites[gUnknown_03005D7C[battlerId]].data[2] = battlerId;
|
||||
@@ -1143,7 +1143,7 @@ static void LinkPartnerHandleDrawTrainerPic(void)
|
||||
|
||||
DecompressTrainerBackPic(trainerPicId, gActiveBattler);
|
||||
SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(gActiveBattler));
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, (8 - gTrainerBackPicCoords[trainerPicId].coords) * 4 + 80, sub_80A82E4(gActiveBattler));
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, (8 - gTrainerBackPicCoords[trainerPicId].coords) * 4 + 80, GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
|
||||
|
||||
@@ -1128,7 +1128,7 @@ static void OpponentHandleLoadMonSprite(void)
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
|
||||
GetBattlerSpriteCoord(gActiveBattler, 2),
|
||||
GetBattlerSpriteDefault_Y(gActiveBattler),
|
||||
sub_80A82E4(gActiveBattler));
|
||||
GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler;
|
||||
@@ -1163,7 +1163,7 @@ static void sub_80613DC(u8 battlerId, bool8 dontClearSubstituteBit)
|
||||
gBattlerSpriteIds[battlerId] = CreateSprite(&gMultiuseSpriteTemplate,
|
||||
GetBattlerSpriteCoord(battlerId, 2),
|
||||
GetBattlerSpriteDefault_Y(battlerId),
|
||||
sub_80A82E4(battlerId));
|
||||
GetBattlerSpriteSubpriority(battlerId));
|
||||
|
||||
gSprites[gBattlerSpriteIds[battlerId]].data[0] = battlerId;
|
||||
gSprites[gBattlerSpriteIds[battlerId]].data[2] = species;
|
||||
@@ -1293,7 +1293,7 @@ static void OpponentHandleDrawTrainerPic(void)
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
|
||||
xPos,
|
||||
(8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40,
|
||||
sub_80A82E4(gActiveBattler));
|
||||
GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2;
|
||||
|
||||
@@ -2200,7 +2200,7 @@ static void sub_805B258(u8 battlerId, bool8 dontClearSubstituteBit)
|
||||
&gMultiuseSpriteTemplate,
|
||||
GetBattlerSpriteCoord(battlerId, 2),
|
||||
GetBattlerSpriteDefault_Y(battlerId),
|
||||
sub_80A82E4(battlerId));
|
||||
GetBattlerSpriteSubpriority(battlerId));
|
||||
|
||||
gSprites[gUnknown_03005D7C[battlerId]].data[1] = gBattlerSpriteIds[battlerId];
|
||||
gSprites[gUnknown_03005D7C[battlerId]].data[2] = battlerId;
|
||||
@@ -2314,7 +2314,7 @@ static void PlayerHandleDrawTrainerPic(void)
|
||||
trainerPicId = PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender);
|
||||
DecompressTrainerFrontPic(trainerPicId, gActiveBattler);
|
||||
SetMultiuseSpriteTemplateToTrainerFront(trainerPicId, GetBattlerPosition(gActiveBattler));
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, sub_80A82E4(gActiveBattler));
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag);
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
|
||||
@@ -2329,7 +2329,7 @@ static void PlayerHandleDrawTrainerPic(void)
|
||||
{
|
||||
DecompressTrainerBackPic(trainerPicId, gActiveBattler);
|
||||
SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(gActiveBattler));
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, sub_80A82E4(gActiveBattler));
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
|
||||
|
||||
@@ -1211,7 +1211,7 @@ static void PlayerPartnerHandleLoadMonSprite(void)
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
|
||||
GetBattlerSpriteCoord(gActiveBattler, 2),
|
||||
GetBattlerSpriteDefault_Y(gActiveBattler),
|
||||
sub_80A82E4(gActiveBattler));
|
||||
GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
|
||||
@@ -1242,7 +1242,7 @@ static void sub_81BD0E4(u8 battlerId, bool8 dontClearSubstituteBit)
|
||||
&gMultiuseSpriteTemplate,
|
||||
GetBattlerSpriteCoord(battlerId, 2),
|
||||
GetBattlerSpriteDefault_Y(battlerId),
|
||||
sub_80A82E4(battlerId));
|
||||
GetBattlerSpriteSubpriority(battlerId));
|
||||
|
||||
gSprites[gUnknown_03005D7C[battlerId]].data[1] = gBattlerSpriteIds[battlerId];
|
||||
gSprites[gUnknown_03005D7C[battlerId]].data[2] = battlerId;
|
||||
@@ -1322,7 +1322,7 @@ static void PlayerPartnerHandleDrawTrainerPic(void)
|
||||
{
|
||||
DecompressTrainerBackPic(trainerPicId, gActiveBattler);
|
||||
SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(gActiveBattler));
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, sub_80A82E4(gActiveBattler));
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
|
||||
@@ -1333,7 +1333,7 @@ static void PlayerPartnerHandleDrawTrainerPic(void)
|
||||
{
|
||||
DecompressTrainerFrontPic(trainerPicId, gActiveBattler);
|
||||
SetMultiuseSpriteTemplateToTrainerFront(trainerPicId, GetBattlerPosition(gActiveBattler));
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, sub_80A82E4(gActiveBattler));
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag);
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
|
||||
|
||||
@@ -1119,9 +1119,7 @@ static void RecordedOpponentHandleLoadMonSprite(void)
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
|
||||
GetBattlerSpriteCoord(gActiveBattler, 2),
|
||||
GetBattlerSpriteDefault_Y(gActiveBattler),
|
||||
sub_80A82E4(gActiveBattler));
|
||||
|
||||
|
||||
GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler;
|
||||
@@ -1154,7 +1152,7 @@ static void sub_81885D8(u8 battlerId, bool8 dontClearSubstituteBit)
|
||||
gBattlerSpriteIds[battlerId] = CreateSprite(&gMultiuseSpriteTemplate,
|
||||
GetBattlerSpriteCoord(battlerId, 2),
|
||||
GetBattlerSpriteDefault_Y(battlerId),
|
||||
sub_80A82E4(battlerId));
|
||||
GetBattlerSpriteSubpriority(battlerId));
|
||||
|
||||
gSprites[gUnknown_03005D7C[battlerId]].data[1] = gBattlerSpriteIds[battlerId];
|
||||
gSprites[gUnknown_03005D7C[battlerId]].data[2] = battlerId;
|
||||
@@ -1251,7 +1249,7 @@ static void RecordedOpponentHandleDrawTrainerPic(void)
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
|
||||
xPos,
|
||||
(8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40,
|
||||
sub_80A82E4(gActiveBattler));
|
||||
GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2;
|
||||
|
||||
@@ -1105,7 +1105,7 @@ static void RecordedPlayerHandleLoadMonSprite(void)
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
|
||||
GetBattlerSpriteCoord(gActiveBattler, 2),
|
||||
GetBattlerSpriteDefault_Y(gActiveBattler),
|
||||
sub_80A82E4(gActiveBattler));
|
||||
GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
|
||||
@@ -1136,7 +1136,7 @@ static void sub_818BA6C(u8 battlerId, bool8 dontClearSubstituteBit)
|
||||
&gMultiuseSpriteTemplate,
|
||||
GetBattlerSpriteCoord(battlerId, 2),
|
||||
GetBattlerSpriteDefault_Y(battlerId),
|
||||
sub_80A82E4(battlerId));
|
||||
GetBattlerSpriteSubpriority(battlerId));
|
||||
|
||||
gSprites[gUnknown_03005D7C[battlerId]].data[1] = gBattlerSpriteIds[battlerId];
|
||||
gSprites[gUnknown_03005D7C[battlerId]].data[2] = battlerId;
|
||||
@@ -1236,7 +1236,7 @@ static void RecordedPlayerHandleDrawTrainerPic(void)
|
||||
trainerPicId = PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender);
|
||||
DecompressTrainerFrontPic(trainerPicId, gActiveBattler);
|
||||
SetMultiuseSpriteTemplateToTrainerFront(trainerPicId, GetBattlerPosition(gActiveBattler));
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, sub_80A82E4(gActiveBattler));
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag);
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
|
||||
@@ -1250,7 +1250,7 @@ static void RecordedPlayerHandleDrawTrainerPic(void)
|
||||
{
|
||||
DecompressTrainerBackPic(trainerPicId, gActiveBattler);
|
||||
SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(gActiveBattler));
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, sub_80A82E4(gActiveBattler));
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
|
||||
|
||||
@@ -1464,7 +1464,7 @@ static void sub_816AA80(u8 battlerId)
|
||||
gBattlerSpriteIds[battlerId] = CreateSprite(&gMultiuseSpriteTemplate,
|
||||
GetBattlerSpriteCoord(battlerId, 2),
|
||||
GetBattlerSpriteDefault_Y(battlerId),
|
||||
sub_80A82E4(battlerId));
|
||||
GetBattlerSpriteSubpriority(battlerId));
|
||||
|
||||
gSprites[gUnknown_03005D7C[battlerId]].data[1] = gBattlerSpriteIds[battlerId];
|
||||
gSprites[gUnknown_03005D7C[battlerId]].data[2] = battlerId;
|
||||
|
||||
@@ -1097,14 +1097,14 @@ void sub_805EB9C(u8 affineMode)
|
||||
if (IsBattlerSpritePresent(i))
|
||||
{
|
||||
gSprites[gBattlerSpriteIds[i]].oam.affineMode = affineMode;
|
||||
if (affineMode == 0)
|
||||
if (affineMode == ST_OAM_AFFINE_OFF)
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[i].field_6 = gSprites[gBattlerSpriteIds[i]].oam.matrixNum;
|
||||
gBattleSpritesDataPtr->healthBoxesData[i].matrixNum = gSprites[gBattlerSpriteIds[i]].oam.matrixNum;
|
||||
gSprites[gBattlerSpriteIds[i]].oam.matrixNum = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
gSprites[gBattlerSpriteIds[i]].oam.matrixNum = gBattleSpritesDataPtr->healthBoxesData[i].field_6;
|
||||
gSprites[gBattlerSpriteIds[i]].oam.matrixNum = gBattleSpritesDataPtr->healthBoxesData[i].matrixNum;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -395,7 +395,7 @@ void AnimTranslateStinger(struct Sprite *sprite)
|
||||
lVarY = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3];
|
||||
rot = ArcTan2Neg(lVarX - sprite->pos1.x, lVarY - sprite->pos1.y);
|
||||
rot += 0xC000;
|
||||
sub_80A73E0(sprite, FALSE, 0x100, 0x100, rot);
|
||||
TrySetSpriteRotScale(sprite, FALSE, 0x100, 0x100, rot);
|
||||
|
||||
sprite->data[0] = gBattleAnimArgs[4];
|
||||
sprite->data[2] = lVarX;
|
||||
@@ -458,7 +458,7 @@ static void AnimMissileArcStep(struct Sprite *sprite)
|
||||
u16 rotation = ArcTan2Neg(sprite->pos1.x + sprite->pos2.x - x2,
|
||||
sprite->pos1.y + sprite->pos2.y - y2);
|
||||
rotation += 0xC000;
|
||||
sub_80A73E0(sprite, FALSE, 0x100, 0x100, rotation);
|
||||
TrySetSpriteRotScale(sprite, FALSE, 0x100, 0x100, rotation);
|
||||
|
||||
for (i = 0; i < 8; i++)
|
||||
data[i] = tempData[i];
|
||||
@@ -479,6 +479,6 @@ void sub_8110994(struct Sprite *sprite)
|
||||
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + 18;
|
||||
}
|
||||
|
||||
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
|
||||
sprite->callback = sub_80A67BC;
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
|
||||
}
|
||||
|
||||
@@ -2520,7 +2520,7 @@ u8 sub_80DB174(u16 species, u32 otId, u32 personality, u32 index)
|
||||
spriteId = CreateSprite(&gMultiuseSpriteTemplate, 0x70, GetBattlerSpriteFinal_Y(2, species, FALSE), 30);
|
||||
gSprites[spriteId].oam.paletteNum = 2;
|
||||
gSprites[spriteId].oam.priority = 2;
|
||||
gSprites[spriteId].subpriority = sub_80A82E4(2);
|
||||
gSprites[spriteId].subpriority = GetBattlerSpriteSubpriority(2);
|
||||
gSprites[spriteId].callback = SpriteCallbackDummy;
|
||||
gSprites[spriteId].data[0] = gSprites[spriteId].oam.paletteNum;
|
||||
gSprites[spriteId].data[2] = species;
|
||||
|
||||
10
src/dragon.c
10
src/dragon.c
@@ -208,13 +208,13 @@ void sub_8113064(struct Sprite *sprite)
|
||||
sprite->data[3] = gBattleAnimArgs[4];
|
||||
sprite->data[5] = gBattleAnimArgs[5];
|
||||
sprite->invisible = 1;
|
||||
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
sprite->callback = sub_80A66DC;
|
||||
}
|
||||
|
||||
static void sub_8113100(struct Sprite *sprite)
|
||||
{
|
||||
sub_80A6838(sprite);
|
||||
SetSpriteCoordsToAnimAttackerCoords(sprite);
|
||||
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
|
||||
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
@@ -235,7 +235,7 @@ static void sub_8113100(struct Sprite *sprite)
|
||||
|
||||
sprite->data[0] = gBattleAnimArgs[4];
|
||||
sprite->callback = StartAnimLinearTranslation;
|
||||
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
}
|
||||
|
||||
void sub_81131B4(struct Sprite *sprite)
|
||||
@@ -253,8 +253,8 @@ void sub_81131B4(struct Sprite *sprite)
|
||||
|
||||
sub_80A6864(sprite, gBattleAnimArgs[1]);
|
||||
sprite->pos1.y += gBattleAnimArgs[2];
|
||||
sprite->callback = sub_80A67D8;
|
||||
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
|
||||
sprite->callback = RunStoredCallbackWhenAnimEnds;
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
}
|
||||
|
||||
void sub_8113224(struct Sprite *sprite)
|
||||
|
||||
1197
src/effects_2.c
1197
src/effects_2.c
File diff suppressed because it is too large
Load Diff
1089
src/electric.c
1089
src/electric.c
File diff suppressed because it is too large
Load Diff
10
src/fight.c
10
src/fight.c
@@ -828,7 +828,7 @@ static void sub_810D6A8(struct Sprite *sprite)
|
||||
sprite->data[4] = GetBattlerSpriteCoord(sprite->data[7], 3);
|
||||
|
||||
InitAnimLinearTranslation(sprite);
|
||||
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
sprite->callback = sub_80A6F98;
|
||||
}
|
||||
}
|
||||
@@ -839,7 +839,7 @@ void sub_810D714(struct Sprite *sprite)
|
||||
sprite->pos1.y = 120;
|
||||
|
||||
sprite->data[0] = gBattleAnimArgs[3];
|
||||
sub_80A8048(&sprite->data[4], &sprite->data[5], (void *)(sprite->pos1.y << 8));
|
||||
StorePointerInVars(&sprite->data[4], &sprite->data[5], (void *)(sprite->pos1.y << 8));
|
||||
|
||||
sprite->data[6] = gBattleAnimArgs[1];
|
||||
sprite->oam.tileNum += gBattleAnimArgs[2] * 4;
|
||||
@@ -853,9 +853,9 @@ static void sub_810D770(struct Sprite *sprite)
|
||||
|
||||
if (sprite->data[0] != 0)
|
||||
{
|
||||
var0 = sub_80A8050(sprite->data[4], sprite->data[5]);
|
||||
var0 = LoadPointerFromVars(sprite->data[4], sprite->data[5]);
|
||||
var0 -= sprite->data[6];
|
||||
sub_80A8048(&sprite->data[4], &sprite->data[5], var0);
|
||||
StorePointerInVars(&sprite->data[4], &sprite->data[5], var0);
|
||||
|
||||
var0 = (void *)(((intptr_t)var0) >> 8);
|
||||
sprite->pos1.y = (intptr_t)var0;
|
||||
@@ -978,7 +978,7 @@ void sub_810DA10(struct Sprite *sprite)
|
||||
StartSpriteAnim(sprite, 1);
|
||||
}
|
||||
|
||||
sprite->callback = sub_80A67D8;
|
||||
sprite->callback = RunStoredCallbackWhenAnimEnds;
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
}
|
||||
|
||||
|
||||
18
src/fire.c
18
src/fire.c
@@ -466,7 +466,7 @@ static void sub_8108EC8(struct Sprite *sprite)
|
||||
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
|
||||
sprite->callback = sub_80A634C;
|
||||
sprite->callback = TranslateSpriteInGrowingCircleOverDuration;
|
||||
sprite->callback(sprite);
|
||||
}
|
||||
|
||||
@@ -479,13 +479,13 @@ static void sub_8108F08(struct Sprite *sprite)
|
||||
sprite->data[1] = gBattleAnimArgs[2];
|
||||
sprite->data[2] = gBattleAnimArgs[3];
|
||||
|
||||
sprite->callback = sub_80A656C;
|
||||
sprite->callback = TranslateAnimLinearSimple;
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
}
|
||||
|
||||
static void sub_8108F4C(struct Sprite *sprite)
|
||||
{
|
||||
sub_80A6838(sprite);
|
||||
SetSpriteCoordsToAnimAttackerCoords(sprite);
|
||||
|
||||
if (GetBattlerSide(gBattleAnimAttacker))
|
||||
{
|
||||
@@ -538,12 +538,12 @@ static void sub_8109028(struct Sprite *sprite)
|
||||
}
|
||||
|
||||
if (sprite->data[0] == sprite->data[1])
|
||||
move_anim_8074EE0(sprite);
|
||||
DestroySpriteAndMatrix(sprite);
|
||||
}
|
||||
|
||||
static void sub_8109064(struct Sprite *sprite)
|
||||
{
|
||||
sub_80A6838(sprite);
|
||||
SetSpriteCoordsToAnimAttackerCoords(sprite);
|
||||
|
||||
if (GetBattlerSide(gBattleAnimAttacker))
|
||||
{
|
||||
@@ -588,7 +588,7 @@ static void sub_81090D8(struct Sprite *sprite)
|
||||
}
|
||||
else
|
||||
{
|
||||
move_anim_8074EE0(sprite);
|
||||
DestroySpriteAndMatrix(sprite);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -779,7 +779,7 @@ void sub_8109460(u8 taskId) // initialize animation task for Move_ERUPTION?
|
||||
task->data[5] = GetBattlerSide(gBattleAnimAttacker);
|
||||
task->data[6] = 0;
|
||||
|
||||
sub_80A7270(task->data[15], 0);
|
||||
PrepareBattlerSpriteForRotScale(task->data[15], ST_OAM_OBJ_NORMAL);
|
||||
|
||||
task->func = sub_81094D0;
|
||||
}
|
||||
@@ -816,7 +816,7 @@ static void sub_81094D0(u8 taskId) // animate Move_ERUPTION?
|
||||
|
||||
if(!sub_80A80C8(task))
|
||||
{
|
||||
sub_80A7E6C(task->data[15]);
|
||||
SetBattlerSpriteYOffsetFromYScale(task->data[15]);
|
||||
gSprites[task->data[15]].pos2.x = 0;
|
||||
|
||||
task->data[1] = 0;
|
||||
@@ -879,7 +879,7 @@ static void sub_81094D0(u8 taskId) // animate Move_ERUPTION?
|
||||
if (!sub_80A80C8(task))
|
||||
{
|
||||
gSprites[task->data[15]].pos1.y = task->data[4];
|
||||
sub_80A7344(task->data[15]);
|
||||
ResetSpriteRotScale(task->data[15]);
|
||||
|
||||
task->data[2] = 0;
|
||||
task->data[0]++;
|
||||
|
||||
20
src/ghost.c
20
src/ghost.c
@@ -342,8 +342,8 @@ void sub_811188C(u8 taskId)
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL));
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 0x10));
|
||||
spriteId = GetAnimBattlerSpriteId(0);
|
||||
sub_80A7270(spriteId, 1);
|
||||
obj_id_set_rotscale(spriteId, 128, 128, 0);
|
||||
PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_BLEND);
|
||||
SetSpriteRotScale(spriteId, 128, 128, 0);
|
||||
gSprites[spriteId].invisible = FALSE;
|
||||
gTasks[taskId].data[0] = 128;
|
||||
gTasks[taskId].data[1] = *gBattleAnimArgs;
|
||||
@@ -381,11 +381,11 @@ static void sub_811196C(u8 taskId)
|
||||
gTasks[taskId].data[0] += 8;
|
||||
if (gTasks[taskId].data[0] <= 0xFF)
|
||||
{
|
||||
obj_id_set_rotscale(spriteId, gTasks[taskId].data[0], gTasks[taskId].data[0], 0);
|
||||
SetSpriteRotScale(spriteId, gTasks[taskId].data[0], gTasks[taskId].data[0], 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_80A7344(spriteId);
|
||||
ResetSpriteRotScale(spriteId);
|
||||
DestroyAnimVisualTask(taskId);
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
|
||||
@@ -454,7 +454,7 @@ static void AnimShadowBallStep(struct Sprite *sprite)
|
||||
sprite->data[0] += 1;
|
||||
break;
|
||||
case 3:
|
||||
move_anim_8074EE0(sprite);
|
||||
DestroySpriteAndMatrix(sprite);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -510,7 +510,7 @@ void sub_8111C50(u8 taskId)
|
||||
struct Task *task;
|
||||
|
||||
task = &gTasks[taskId];
|
||||
task->data[0] = duplicate_obj_of_side_rel2move_in_transparent_mode(1);
|
||||
task->data[0] = CloneBattlerSpriteWithBlend(1);
|
||||
if (task->data[0] < 0)
|
||||
{
|
||||
DestroyAnimVisualTask(taskId);
|
||||
@@ -536,7 +536,7 @@ void sub_8111C50(u8 taskId)
|
||||
gSprites[task->data[0]].data[3] = 0;
|
||||
gSprites[task->data[0]].data[4] = 0;
|
||||
StoreSpriteCallbackInData6(&gSprites[task->data[0]], SpriteCallbackDummy);
|
||||
gSprites[task->data[0]].callback = sub_80A656C;
|
||||
gSprites[task->data[0]].callback = TranslateAnimLinearSimple;
|
||||
task->func = sub_8111D78;
|
||||
}
|
||||
|
||||
@@ -602,7 +602,7 @@ static void sub_8111E78(u8 taskId)
|
||||
}
|
||||
else
|
||||
{
|
||||
task->data[0] = duplicate_obj_of_side_rel2move_in_transparent_mode(1);
|
||||
task->data[0] = CloneBattlerSpriteWithBlend(1);
|
||||
if (task->data[0] < 0)
|
||||
{
|
||||
FreeSpritePaletteByTag(0x2771);
|
||||
@@ -1171,7 +1171,7 @@ void sub_8112C6C(u8 taskId)
|
||||
task->data[11] = (sub_80A861C(gBattleAnimAttacker, 1) / 2) + 8;
|
||||
task->data[7] = 0;
|
||||
task->data[5] = sub_80A8328(gBattleAnimAttacker);
|
||||
task->data[6] = sub_80A82E4(gBattleAnimAttacker) - 2;
|
||||
task->data[6] = GetBattlerSpriteSubpriority(gBattleAnimAttacker) - 2;
|
||||
task->data[3] = 0;
|
||||
task->data[4] = 16;
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL));
|
||||
@@ -1322,6 +1322,6 @@ static void sub_8112FB8(struct Sprite *sprite)
|
||||
gSprites[sprite->data[5]].pos2.x = 0;
|
||||
gSprites[sprite->data[5]].pos2.y = 0;
|
||||
gSprites[sprite->data[5]].pos1.y -= 8;
|
||||
sprite->callback = move_anim_8074EE0;
|
||||
sprite->callback = DestroySpriteAndMatrix;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -221,7 +221,7 @@ void AnimDirtScatter(struct Sprite *sprite)
|
||||
sprite->data[2] = targetXPos + xOffset;
|
||||
sprite->data[4] = targetYPos + yOffset;
|
||||
sprite->callback = StartAnimLinearTranslation;
|
||||
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
}
|
||||
|
||||
// Moves a particle of dirt in the Mud Sport animation.
|
||||
|
||||
16
src/normal.c
16
src/normal.c
@@ -410,8 +410,8 @@ void sub_81159B4(struct Sprite *sprite)
|
||||
sprite->data[3] = 40;
|
||||
sprite->data[4] = 112;
|
||||
sprite->data[5] = 0;
|
||||
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
|
||||
sprite->callback = sub_80A634C;
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
sprite->callback = TranslateSpriteInGrowingCircleOverDuration;
|
||||
sprite->callback(sprite);
|
||||
}
|
||||
|
||||
@@ -884,7 +884,7 @@ void sub_8116388(struct Sprite *sprite)
|
||||
else
|
||||
sub_80A6980(sprite, TRUE);
|
||||
|
||||
sprite->callback = sub_80A67BC;
|
||||
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
}
|
||||
|
||||
@@ -897,7 +897,7 @@ static void sub_81163D0(struct Sprite *sprite)
|
||||
sub_80A6980(sprite, TRUE);
|
||||
|
||||
sprite->data[0] = gBattleAnimArgs[4];
|
||||
sprite->callback = sub_80A67BC;
|
||||
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
|
||||
StoreSpriteCallbackInData6(sprite, sub_810E2C8);
|
||||
}
|
||||
|
||||
@@ -923,8 +923,8 @@ void sub_8116458(struct Sprite *sprite)
|
||||
sprite->pos2.x += (Random2() % 48) - 24;
|
||||
sprite->pos2.y += (Random2() % 24) - 12;
|
||||
|
||||
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
|
||||
sprite->callback = sub_80A67BC;
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
|
||||
}
|
||||
|
||||
void sub_81164F0(struct Sprite *sprite)
|
||||
@@ -935,8 +935,8 @@ void sub_81164F0(struct Sprite *sprite)
|
||||
sprite->pos2.x = gBattleAnimArgs[1];
|
||||
sprite->pos2.y = gBattleAnimArgs[2];
|
||||
StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]);
|
||||
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
|
||||
sprite->callback = sub_80A67BC;
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
|
||||
}
|
||||
|
||||
void sub_8116560(struct Sprite *sprite)
|
||||
|
||||
@@ -258,7 +258,7 @@ void sub_810DCD0(struct Sprite *sprite)
|
||||
|
||||
static void sub_810DD24(struct Sprite *sprite)
|
||||
{
|
||||
sub_80A656C(sprite);
|
||||
TranslateAnimLinearSimple(sprite);
|
||||
|
||||
sprite->data[1] -= sprite->data[5];
|
||||
sprite->data[2] -= sprite->data[6];
|
||||
|
||||
@@ -226,7 +226,7 @@ static void CreateBattlerSprite(u8 battler)
|
||||
return;
|
||||
|
||||
SetMultiuseSpriteTemplateToPokemon(GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES), GetBattlerPosition(battler));
|
||||
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, 2), posY, sub_80A82E4(battler));
|
||||
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, 2), posY, GetBattlerSpriteSubpriority(battler));
|
||||
gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler;
|
||||
gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy;
|
||||
gSprites[gBattlerSpriteIds[battler]].data[0] = battler;
|
||||
@@ -241,7 +241,7 @@ static void CreateBattlerSprite(u8 battler)
|
||||
SetMultiuseSpriteTemplateToTrainerBack(gSaveBlock2Ptr->playerGender, GetBattlerPosition(B_POSITION_PLAYER_LEFT));
|
||||
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, 0x50,
|
||||
(8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].coords) * 4 + 80,
|
||||
sub_80A82E4(0));
|
||||
GetBattlerSpriteSubpriority(0));
|
||||
gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler;
|
||||
gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy;
|
||||
gSprites[gBattlerSpriteIds[battler]].data[0] = battler;
|
||||
@@ -251,7 +251,7 @@ static void CreateBattlerSprite(u8 battler)
|
||||
SetMultiuseSpriteTemplateToTrainerBack(TRAINER_BACK_PIC_WALLY, GetBattlerPosition(0));
|
||||
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, 0x50,
|
||||
(8 - gTrainerBackPicCoords[TRAINER_BACK_PIC_WALLY].coords) * 4 + 80,
|
||||
sub_80A82E4(0));
|
||||
GetBattlerSpriteSubpriority(0));
|
||||
gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler;
|
||||
gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy;
|
||||
gSprites[gBattlerSpriteIds[battler]].data[0] = battler;
|
||||
@@ -262,7 +262,7 @@ static void CreateBattlerSprite(u8 battler)
|
||||
return;
|
||||
|
||||
SetMultiuseSpriteTemplateToPokemon(GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES), GetBattlerPosition(battler));
|
||||
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, 2), posY, sub_80A82E4(battler));
|
||||
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, 2), posY, GetBattlerSpriteSubpriority(battler));
|
||||
gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler;
|
||||
gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy;
|
||||
gSprites[gBattlerSpriteIds[battler]].data[0] = battler;
|
||||
|
||||
@@ -340,7 +340,7 @@ static void sub_8110A70(struct Sprite *sprite)
|
||||
sprite->data[3] = 32;
|
||||
sprite->data[4] = -24;
|
||||
|
||||
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
sprite->callback = sub_80A6450;
|
||||
sprite->callback(sprite);
|
||||
}
|
||||
@@ -367,8 +367,8 @@ void sub_8110AB4(struct Sprite *sprite)
|
||||
sprite->data[3] = 0;
|
||||
sprite->data[4] = 0;
|
||||
|
||||
sprite->callback = sub_80A656C;
|
||||
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
|
||||
sprite->callback = TranslateAnimLinearSimple;
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
}
|
||||
|
||||
void sub_8110B38(struct Sprite *sprite)
|
||||
|
||||
Reference in New Issue
Block a user