Merge remote-tracking branch 'pret/master' into trade
This commit is contained in:
+16
-12
@@ -1605,8 +1605,8 @@ static void ScriptCmd_loadspritegfx(void)
|
||||
|
||||
sBattleAnimScriptPtr++;
|
||||
index = T1_READ_16(sBattleAnimScriptPtr);
|
||||
LoadCompressedObjectPicUsingHeap(&gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(index)]);
|
||||
LoadCompressedObjectPaletteUsingHeap(&gBattleAnimPaletteTable[GET_TRUE_SPRITE_INDEX(index)]);
|
||||
LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(index)]);
|
||||
LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[GET_TRUE_SPRITE_INDEX(index)]);
|
||||
sBattleAnimScriptPtr += 2;
|
||||
AddSpriteIndex(GET_TRUE_SPRITE_INDEX(index));
|
||||
gAnimFramesToWait = 1;
|
||||
@@ -1671,7 +1671,11 @@ static void ScriptCmd_createsprite(void)
|
||||
if (subpriority < 3)
|
||||
subpriority = 3;
|
||||
|
||||
CreateSpriteAndAnimate(template, GetBattlerSpriteCoord(gBattleAnimTarget, 2), GetBattlerSpriteCoord(gBattleAnimTarget, 3), subpriority);
|
||||
CreateSpriteAndAnimate(
|
||||
template,
|
||||
GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2),
|
||||
GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET),
|
||||
subpriority);
|
||||
gAnimVisualTaskCount++;
|
||||
}
|
||||
|
||||
@@ -1866,7 +1870,7 @@ static void ScriptCmd_monbg(void)
|
||||
else
|
||||
toBG_2 = TRUE;
|
||||
|
||||
sub_80A438C(battlerId, toBG_2, FALSE);
|
||||
MoveBattlerSpriteToBG(battlerId, toBG_2, FALSE);
|
||||
taskId = CreateTask(sub_80A40F4, 10);
|
||||
gAnimVisualTaskCount++;
|
||||
gTasks[taskId].data[t1_MONBG_BATTLER] = battlerId;
|
||||
@@ -1885,7 +1889,7 @@ static void ScriptCmd_monbg(void)
|
||||
else
|
||||
toBG_2 = TRUE;
|
||||
|
||||
sub_80A438C(battlerId, toBG_2, FALSE);
|
||||
MoveBattlerSpriteToBG(battlerId, toBG_2, FALSE);
|
||||
taskId = CreateTask(sub_80A40F4, 10);
|
||||
gAnimVisualTaskCount++;
|
||||
gTasks[taskId].data[0] = battlerId;
|
||||
@@ -1918,7 +1922,7 @@ bool8 IsBattlerSpriteVisible(u8 battlerId)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_80A438C(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible)
|
||||
void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible)
|
||||
{
|
||||
struct UnknownAnimStruct2 unknownStruct;
|
||||
u8 battlerSpriteId;
|
||||
@@ -2190,7 +2194,7 @@ static void ScriptCmd_monbg_22(void)
|
||||
else
|
||||
toBG_2 = TRUE;
|
||||
|
||||
sub_80A438C(battlerId, toBG_2, FALSE);
|
||||
MoveBattlerSpriteToBG(battlerId, toBG_2, FALSE);
|
||||
}
|
||||
|
||||
battlerId ^= BIT_FLANK;
|
||||
@@ -2202,7 +2206,7 @@ static void ScriptCmd_monbg_22(void)
|
||||
else
|
||||
toBG_2 = TRUE;
|
||||
|
||||
sub_80A438C(battlerId, toBG_2, FALSE);
|
||||
MoveBattlerSpriteToBG(battlerId, toBG_2, FALSE);
|
||||
}
|
||||
|
||||
sBattleAnimScriptPtr++;
|
||||
@@ -3029,12 +3033,12 @@ static void ScriptCmd_doublebattle_2D(void)
|
||||
{
|
||||
if (wantedBattler == ANIM_ATTACKER)
|
||||
{
|
||||
r4 = sub_80A8364(gBattleAnimAttacker);
|
||||
r4 = GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker);
|
||||
spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
|
||||
}
|
||||
else
|
||||
{
|
||||
r4 = sub_80A8364(gBattleAnimTarget);
|
||||
r4 = GetBattlerSpriteBGPriorityRank(gBattleAnimTarget);
|
||||
spriteId = GetAnimBattlerSpriteId(ANIM_TARGET);
|
||||
}
|
||||
if (spriteId != 0xFF)
|
||||
@@ -3064,12 +3068,12 @@ static void ScriptCmd_doublebattle_2E(void)
|
||||
{
|
||||
if (wantedBattler == ANIM_ATTACKER)
|
||||
{
|
||||
r4 = sub_80A8364(gBattleAnimAttacker);
|
||||
r4 = GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker);
|
||||
spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
|
||||
}
|
||||
else
|
||||
{
|
||||
r4 = sub_80A8364(gBattleAnimTarget);
|
||||
r4 = GetBattlerSpriteBGPriorityRank(gBattleAnimTarget);
|
||||
spriteId = GetAnimBattlerSpriteId(ANIM_TARGET);
|
||||
}
|
||||
|
||||
|
||||
+61
-55
@@ -568,7 +568,7 @@ void TranslateSpriteOverDuration(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void TranslateAnimLinearSimple(struct Sprite *sprite)
|
||||
void AnimTranslateLinearSimple(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[0] > 0)
|
||||
{
|
||||
@@ -716,7 +716,9 @@ void SetSpriteCoordsToAnimAttackerCoords(struct Sprite *sprite)
|
||||
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
|
||||
}
|
||||
|
||||
void sub_80A6864(struct Sprite *sprite, s16 xOffset)
|
||||
// Sets the initial x offset of the anim sprite depending on the horizontal orientation
|
||||
// of the two involved mons.
|
||||
void SetAnimSpriteInitialXOffset(struct Sprite *sprite, s16 xOffset)
|
||||
{
|
||||
u16 attackerX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X);
|
||||
u16 targetX = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X);
|
||||
@@ -749,7 +751,7 @@ void InitAnimArcTranslation(struct Sprite *sprite)
|
||||
|
||||
bool8 TranslateAnimArc(struct Sprite *sprite)
|
||||
{
|
||||
if (TranslateAnimLinear(sprite))
|
||||
if (AnimTranslateLinear(sprite))
|
||||
return TRUE;
|
||||
sprite->data[7] += sprite->data[6];
|
||||
sprite->pos2.y += Sin((u8)(sprite->data[7] >> 8), sprite->data[5]);
|
||||
@@ -758,7 +760,7 @@ bool8 TranslateAnimArc(struct Sprite *sprite)
|
||||
|
||||
bool8 sub_80A6934(struct Sprite *sprite)
|
||||
{
|
||||
if (TranslateAnimLinear(sprite))
|
||||
if (AnimTranslateLinear(sprite))
|
||||
return TRUE;
|
||||
sprite->data[7] += sprite->data[6];
|
||||
sprite->pos2.x += Sin((u8)(sprite->data[7] >> 8), sprite->data[5]);
|
||||
@@ -773,18 +775,20 @@ void oamt_add_pos2_onto_pos1(struct Sprite *sprite)
|
||||
sprite->pos2.y = 0;
|
||||
}
|
||||
|
||||
void sub_80A6980(struct Sprite *sprite, bool8 a2)
|
||||
void InitSpritePosToAnimTarget(struct Sprite *sprite, bool8 respectMonPicOffsets)
|
||||
{
|
||||
if (!a2)
|
||||
// Battle anim sprites are automatically created at the anim target's center, which
|
||||
// is why there is no else clause for the "respectMonPicOffsets" check.
|
||||
if (!respectMonPicOffsets)
|
||||
{
|
||||
sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_X);
|
||||
sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_Y);
|
||||
}
|
||||
sub_80A6864(sprite, gBattleAnimArgs[0]);
|
||||
SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]);
|
||||
sprite->pos1.y += gBattleAnimArgs[1];
|
||||
}
|
||||
|
||||
void InitAnimSpritePos(struct Sprite *sprite, u8 respectMonPicOffsets)
|
||||
void InitSpritePosToAnimAttacker(struct Sprite *sprite, bool8 respectMonPicOffsets)
|
||||
{
|
||||
if (!respectMonPicOffsets)
|
||||
{
|
||||
@@ -796,7 +800,7 @@ void InitAnimSpritePos(struct Sprite *sprite, u8 respectMonPicOffsets)
|
||||
sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_X_2);
|
||||
sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
|
||||
}
|
||||
sub_80A6864(sprite, gBattleAnimArgs[0]);
|
||||
SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]);
|
||||
sprite->pos1.y += gBattleAnimArgs[1];
|
||||
}
|
||||
|
||||
@@ -917,7 +921,7 @@ void sub_80A6BFC(struct UnknownAnimStruct2 *unk, u8 unused)
|
||||
unk->tilesOffset = 0;
|
||||
unk->unkC = 0;
|
||||
}
|
||||
else if (sub_80A8364(gBattleAnimAttacker) == 1)
|
||||
else if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1)
|
||||
{
|
||||
unk->unk8 = 8;
|
||||
unk->bgId = 1;
|
||||
@@ -1058,7 +1062,7 @@ void sub_80A6F14(struct Sprite *sprite)
|
||||
sprite->callback(sprite);
|
||||
}
|
||||
|
||||
bool8 TranslateAnimLinear(struct Sprite *sprite)
|
||||
bool8 AnimTranslateLinear(struct Sprite *sprite)
|
||||
{
|
||||
u16 v1, v2, x, y;
|
||||
|
||||
@@ -1090,14 +1094,14 @@ bool8 TranslateAnimLinear(struct Sprite *sprite)
|
||||
|
||||
void sub_80A6F98(struct Sprite *sprite)
|
||||
{
|
||||
if (TranslateAnimLinear(sprite))
|
||||
if (AnimTranslateLinear(sprite))
|
||||
SetCallbackToStoredInData6(sprite);
|
||||
}
|
||||
|
||||
void sub_80A6FB4(struct Sprite *sprite)
|
||||
{
|
||||
sub_8039E9C(sprite);
|
||||
if (TranslateAnimLinear(sprite))
|
||||
if (AnimTranslateLinear(sprite))
|
||||
SetCallbackToStoredInData6(sprite);
|
||||
}
|
||||
|
||||
@@ -1117,14 +1121,14 @@ void sub_80A7000(struct Sprite *sprite)
|
||||
sprite->callback(sprite);
|
||||
}
|
||||
|
||||
void sub_80A7028(struct Sprite *sprite)
|
||||
static void InitAnimFastLinearTranslation(struct Sprite *sprite)
|
||||
{
|
||||
int x = sprite->data[2] - sprite->data[1];
|
||||
int y = sprite->data[4] - sprite->data[3];
|
||||
bool8 x_sign = x < 0;
|
||||
bool8 y_sign = y < 0;
|
||||
u16 x2 = abs(x) << 4;
|
||||
u16 y2 = abs(y) << 4;
|
||||
int xDiff = sprite->data[2] - sprite->data[1];
|
||||
int yDiff = sprite->data[4] - sprite->data[3];
|
||||
bool8 x_sign = xDiff < 0;
|
||||
bool8 y_sign = yDiff < 0;
|
||||
u16 x2 = abs(xDiff) << 4;
|
||||
u16 y2 = abs(yDiff) << 4;
|
||||
|
||||
x2 /= sprite->data[0];
|
||||
y2 /= sprite->data[0];
|
||||
@@ -1145,16 +1149,16 @@ void sub_80A7028(struct Sprite *sprite)
|
||||
sprite->data[3] = 0;
|
||||
}
|
||||
|
||||
void sub_80A70C0(struct Sprite *sprite)
|
||||
void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[1] = sprite->pos1.x;
|
||||
sprite->data[3] = sprite->pos1.y;
|
||||
sub_80A7028(sprite);
|
||||
InitAnimFastLinearTranslation(sprite);
|
||||
sprite->callback = sub_80A7144;
|
||||
sprite->callback(sprite);
|
||||
}
|
||||
|
||||
bool8 sub_80A70E8(struct Sprite *sprite)
|
||||
bool8 AnimFastTranslateLinear(struct Sprite *sprite)
|
||||
{
|
||||
u16 v1, v2, x, y;
|
||||
|
||||
@@ -1186,22 +1190,22 @@ bool8 sub_80A70E8(struct Sprite *sprite)
|
||||
|
||||
void sub_80A7144(struct Sprite *sprite)
|
||||
{
|
||||
if (sub_80A70E8(sprite))
|
||||
if (AnimFastTranslateLinear(sprite))
|
||||
SetCallbackToStoredInData6(sprite);
|
||||
}
|
||||
|
||||
void sub_80A7160(struct Sprite *sprite)
|
||||
void InitAnimFastLinearTranslationWithSpeed(struct Sprite *sprite)
|
||||
{
|
||||
int v1 = abs(sprite->data[2] - sprite->data[1]) << 4;
|
||||
sprite->data[0] = v1 / sprite->data[0];
|
||||
sub_80A7028(sprite);
|
||||
int xDiff = abs(sprite->data[2] - sprite->data[1]) << 4;
|
||||
sprite->data[0] = xDiff / sprite->data[0];
|
||||
InitAnimFastLinearTranslation(sprite);
|
||||
}
|
||||
|
||||
void sub_80A718C(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[1] = sprite->pos1.x;
|
||||
sprite->data[3] = sprite->pos1.y;
|
||||
sub_80A7160(sprite);
|
||||
InitAnimFastLinearTranslationWithSpeed(sprite);
|
||||
sprite->callback = sub_80A7144;
|
||||
sprite->callback(sprite);
|
||||
}
|
||||
@@ -1471,9 +1475,9 @@ void sub_80A77C8(struct Sprite *sprite)
|
||||
else
|
||||
var = FALSE;
|
||||
if (!gBattleAnimArgs[2])
|
||||
InitAnimSpritePos(sprite, var);
|
||||
InitSpritePosToAnimAttacker(sprite, var);
|
||||
else
|
||||
sub_80A6980(sprite, var);
|
||||
InitSpritePosToAnimTarget(sprite, var);
|
||||
sprite->data[0]++;
|
||||
|
||||
}
|
||||
@@ -1506,7 +1510,7 @@ void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite)
|
||||
else
|
||||
coordType = BATTLER_COORD_Y;
|
||||
|
||||
InitAnimSpritePos(sprite, v1);
|
||||
InitSpritePosToAnimAttacker(sprite, v1);
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
|
||||
|
||||
@@ -1519,7 +1523,7 @@ void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite)
|
||||
|
||||
void sub_80A78AC(struct Sprite *sprite)
|
||||
{
|
||||
InitAnimSpritePos(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
if (GetBattlerSide(gBattleAnimAttacker))
|
||||
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
|
||||
sprite->data[0] = gBattleAnimArgs[4];
|
||||
@@ -1553,17 +1557,17 @@ void sub_80A7938(struct Sprite *sprite)
|
||||
}
|
||||
if (!gBattleAnimArgs[5])
|
||||
{
|
||||
InitAnimSpritePos(sprite, r4);
|
||||
InitSpritePosToAnimAttacker(sprite, r4);
|
||||
battlerId = gBattleAnimAttacker;
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_80A6980(sprite, r4);
|
||||
InitSpritePosToAnimTarget(sprite, r4);
|
||||
battlerId = gBattleAnimTarget;
|
||||
}
|
||||
if (GetBattlerSide(gBattleAnimAttacker))
|
||||
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
|
||||
sub_80A6980(sprite, r4);
|
||||
InitSpritePosToAnimTarget(sprite, r4);
|
||||
sprite->data[0] = gBattleAnimArgs[4];
|
||||
sprite->data[2] = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) + gBattleAnimArgs[2];
|
||||
sprite->data[4] = GetBattlerSpriteCoord(battlerId, attributeId) + gBattleAnimArgs[3];
|
||||
@@ -2006,7 +2010,7 @@ u8 GetBattlerSpriteSubpriority(u8 battlerId)
|
||||
return subpriority;
|
||||
}
|
||||
|
||||
u8 sub_80A8328(u8 battlerId)
|
||||
u8 GetBattlerSpriteBGPriority(u8 battlerId)
|
||||
{
|
||||
u8 position = GetBattlerPosition(battlerId);
|
||||
|
||||
@@ -2018,7 +2022,7 @@ u8 sub_80A8328(u8 battlerId)
|
||||
return GetAnimBgAttribute(1, BG_ANIM_PRIORITY);
|
||||
}
|
||||
|
||||
u8 sub_80A8364(u8 battlerId)
|
||||
u8 GetBattlerSpriteBGPriorityRank(u8 battlerId)
|
||||
{
|
||||
if (!IsContest())
|
||||
{
|
||||
@@ -2229,36 +2233,38 @@ s16 sub_80A861C(u8 battlerId, u8 a2)
|
||||
}
|
||||
}
|
||||
|
||||
void SetAverageBattlerPositions(u8 battlerId, bool8 a2, s16 *x, s16 *y)
|
||||
void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x, s16 *y)
|
||||
{
|
||||
u8 v1, v2;
|
||||
s16 v3, v4;
|
||||
s16 v5, v6;
|
||||
u8 xCoordType, yCoordType;
|
||||
s16 battlerX, battlerY;
|
||||
s16 partnerX, partnerY;
|
||||
|
||||
if (!a2)
|
||||
if (!respectMonPicOffsets)
|
||||
{
|
||||
v1 = 0;
|
||||
v2 = 1;
|
||||
xCoordType = BATTLER_COORD_X;
|
||||
yCoordType = BATTLER_COORD_Y;
|
||||
}
|
||||
else
|
||||
{
|
||||
v1 = 2;
|
||||
v2 = 3;
|
||||
xCoordType = BATTLER_COORD_X_2;
|
||||
yCoordType = BATTLER_COORD_Y_PIC_OFFSET;
|
||||
}
|
||||
v3 = GetBattlerSpriteCoord(battlerId, v1);
|
||||
v4 = GetBattlerSpriteCoord(battlerId, v2);
|
||||
|
||||
battlerX = GetBattlerSpriteCoord(battlerId, xCoordType);
|
||||
battlerY = GetBattlerSpriteCoord(battlerId, yCoordType);
|
||||
if (IsDoubleBattle() && !IsContest())
|
||||
{
|
||||
v5 = GetBattlerSpriteCoord(BATTLE_PARTNER(battlerId), v1);
|
||||
v6 = GetBattlerSpriteCoord(BATTLE_PARTNER(battlerId), v2);
|
||||
partnerX = GetBattlerSpriteCoord(BATTLE_PARTNER(battlerId), xCoordType);
|
||||
partnerY = GetBattlerSpriteCoord(BATTLE_PARTNER(battlerId), yCoordType);
|
||||
}
|
||||
else
|
||||
{
|
||||
v5 = v3;
|
||||
v6 = v4;
|
||||
partnerX = battlerX;
|
||||
partnerY = battlerY;
|
||||
}
|
||||
*x = (v3 + v5) / 2;
|
||||
*y = (v4 + v6) / 2;
|
||||
|
||||
*x = (battlerX + partnerX) / 2;
|
||||
*y = (battlerY + partnerY) / 2;
|
||||
}
|
||||
|
||||
u8 sub_80A89C8(int battlerId, u8 spriteId, int species)
|
||||
|
||||
@@ -71,8 +71,8 @@ u8 sub_80A9C70(u8 battlerId, bool8 b)
|
||||
u8 spriteId2;
|
||||
u8 i;
|
||||
|
||||
LoadCompressedObjectPicUsingHeap(&gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(ANIM_TAG_CIRCLE_IMPACT)]);
|
||||
LoadCompressedObjectPaletteUsingHeap(&gBattleAnimPaletteTable[GET_TRUE_SPRITE_INDEX(ANIM_TAG_CIRCLE_IMPACT)]);
|
||||
LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(ANIM_TAG_CIRCLE_IMPACT)]);
|
||||
LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[GET_TRUE_SPRITE_INDEX(ANIM_TAG_CIRCLE_IMPACT)]);
|
||||
gTasks[taskId].data[0] = battlerId;
|
||||
if (b)
|
||||
{
|
||||
|
||||
@@ -1376,8 +1376,8 @@ static void sub_8171D60(u8 ballId)
|
||||
|
||||
if (GetSpriteTileStartByTag(gBallOpenParticleSpritesheets[ballId].tag) == 0xFFFF)
|
||||
{
|
||||
LoadCompressedObjectPicUsingHeap(&gBallOpenParticleSpritesheets[ballId]);
|
||||
LoadCompressedObjectPaletteUsingHeap(&gBallOpenParticlePalettes[ballId]);
|
||||
LoadCompressedSpriteSheetUsingHeap(&gBallOpenParticleSpritesheets[ballId]);
|
||||
LoadCompressedSpritePaletteUsingHeap(&gBallOpenParticlePalettes[ballId]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1971,7 +1971,7 @@ void sub_8172D98(u8 taskId)
|
||||
switch (gTasks[taskId].data[15])
|
||||
{
|
||||
case 0:
|
||||
if (sub_80A8364(gBattleAnimAttacker) == B_POSITION_OPPONENT_LEFT)
|
||||
if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == B_POSITION_OPPONENT_LEFT)
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL);
|
||||
else
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL);
|
||||
@@ -2032,8 +2032,8 @@ void sub_8172EF0(u8 battler, struct Pokemon *mon)
|
||||
{
|
||||
if (GetSpriteTileStartByTag(0x27F9) == 0xFFFF)
|
||||
{
|
||||
LoadCompressedObjectPicUsingHeap(&gBattleAnimPicTable[233]);
|
||||
LoadCompressedObjectPaletteUsingHeap(&gBattleAnimPaletteTable[233]);
|
||||
LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[233]);
|
||||
LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[233]);
|
||||
}
|
||||
|
||||
taskId1 = CreateTask(sub_8172FEC, 10);
|
||||
@@ -2173,8 +2173,8 @@ void sub_81732B0(u8 taskId)
|
||||
{
|
||||
u8 paletteIndex;
|
||||
|
||||
LoadCompressedObjectPicUsingHeap(&gBattleAnimPicTable[269]);
|
||||
LoadCompressedObjectPaletteUsingHeap(&gBattleAnimPaletteTable[269]);
|
||||
LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[269]);
|
||||
LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[269]);
|
||||
paletteIndex = IndexOfSpritePaletteTag(0x281D); // unused
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
@@ -2188,7 +2188,7 @@ void sub_81732E4(u8 taskId)
|
||||
|
||||
static void sub_817330C(struct Sprite *sprite)
|
||||
{
|
||||
InitAnimSpritePos(sprite, 0);
|
||||
InitSpritePosToAnimAttacker(sprite, 0);
|
||||
sprite->data[0] = 30;
|
||||
sprite->data[2] = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), 0) + gBattleAnimArgs[2];
|
||||
sprite->data[4] = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), 1) + gBattleAnimArgs[3];
|
||||
|
||||
+348
-261
File diff suppressed because it is too large
Load Diff
+19
-19
@@ -1257,7 +1257,7 @@ const struct SpriteTemplate gUnknown_08593C64 =
|
||||
void sub_8103448(struct Sprite *sprite)
|
||||
{
|
||||
SetSpriteCoordsToAnimAttackerCoords(sprite);
|
||||
sub_80A6864(sprite, gBattleAnimArgs[0]);
|
||||
SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]);
|
||||
sprite->pos1.y += gBattleAnimArgs[1];
|
||||
sprite->data[1] = gBattleAnimArgs[2];
|
||||
sprite->data[2] = gBattleAnimArgs[4];
|
||||
@@ -1339,7 +1339,7 @@ void sub_810358C(struct Sprite *sprite)
|
||||
|
||||
void sub_8103620(struct Sprite *sprite)
|
||||
{
|
||||
InitAnimSpritePos(sprite, TRUE);
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
sprite->data[0] = gBattleAnimArgs[2];
|
||||
sprite->data[1] = gBattleAnimArgs[3];
|
||||
sprite->data[5] = gBattleAnimArgs[4];
|
||||
@@ -1451,7 +1451,7 @@ void Anim_KinesisZapEnergy(struct Sprite *sprite)
|
||||
// arg 1: y pixel offset
|
||||
void Anim_SwordsDanceBlade(struct Sprite *sprite)
|
||||
{
|
||||
InitAnimSpritePos(sprite, FALSE);
|
||||
InitSpritePosToAnimAttacker(sprite, FALSE);
|
||||
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
|
||||
StoreSpriteCallbackInData6(sprite, Anim_SwordsDanceBladeStep);
|
||||
}
|
||||
@@ -1489,7 +1489,7 @@ void AnimSonicBoomProjectile(struct Sprite *sprite)
|
||||
gBattleAnimArgs[3] = -gBattleAnimArgs[3];
|
||||
}
|
||||
|
||||
InitAnimSpritePos(sprite, TRUE);
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
targetXPos = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2];
|
||||
targetYPos = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3];
|
||||
rotation = ArcTan2Neg(targetXPos - sprite->pos1.x, targetYPos - sprite->pos1.y);
|
||||
@@ -1732,7 +1732,7 @@ void sub_8103CF0(u8 taskId)
|
||||
|
||||
void sub_8103FE8(struct Sprite *sprite)
|
||||
{
|
||||
InitAnimSpritePos(sprite, FALSE);
|
||||
InitSpritePosToAnimAttacker(sprite, FALSE);
|
||||
sprite->data[0] = 0x100 + (IndexOfSpritePaletteTag(gUnknown_085934A0.paletteTag) << 4);
|
||||
sprite->callback = sub_8104018;
|
||||
}
|
||||
@@ -1828,7 +1828,7 @@ void sub_8104088(struct Sprite *sprite)
|
||||
s16 r7;
|
||||
u16 var;
|
||||
|
||||
InitAnimSpritePos(sprite, TRUE);
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
r6 = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
|
||||
r7 = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3];
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
@@ -1872,7 +1872,7 @@ static void sub_8104154(struct Sprite *sprite)
|
||||
|
||||
void sub_81041C4(struct Sprite *sprite)
|
||||
{
|
||||
InitAnimSpritePos(sprite, TRUE);
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
sprite->data[0] = 20;
|
||||
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
|
||||
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
|
||||
@@ -1931,7 +1931,7 @@ static void sub_81042A0(struct Sprite *sprite)
|
||||
// arg 6: duration
|
||||
void Anim_RazorWindTornado(struct Sprite *sprite)
|
||||
{
|
||||
InitAnimSpritePos(sprite, FALSE);
|
||||
InitSpritePosToAnimAttacker(sprite, FALSE);
|
||||
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
|
||||
sprite->pos1.y += 16;
|
||||
|
||||
@@ -2009,7 +2009,7 @@ void Anim_GuillotinePincer(struct Sprite *sprite)
|
||||
|
||||
static void Anim_GuillotinePincerStep1(struct Sprite *sprite)
|
||||
{
|
||||
if (TranslateAnimLinear(sprite) && sprite->animEnded)
|
||||
if (AnimTranslateLinear(sprite) && sprite->animEnded)
|
||||
{
|
||||
SeekSpriteAnim(sprite, 0);
|
||||
sprite->animPaused = 1;
|
||||
@@ -2049,7 +2049,7 @@ static void Anim_GuillotinePincerStep2(struct Sprite *sprite)
|
||||
|
||||
static void Anim_GuillotinePincerStep3(struct Sprite *sprite)
|
||||
{
|
||||
if (TranslateAnimLinear(sprite))
|
||||
if (AnimTranslateLinear(sprite))
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
@@ -2318,7 +2318,7 @@ void Anim_BreathPuff(struct Sprite *sprite)
|
||||
sprite->data[3] = 0;
|
||||
sprite->data[4] = 0;
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
sprite->callback = TranslateAnimLinearSimple;
|
||||
sprite->callback = AnimTranslateLinearSimple;
|
||||
}
|
||||
|
||||
// Animates an "angry" mark above a mon's head.
|
||||
@@ -2448,7 +2448,7 @@ void sub_8104E74(u8 taskId)
|
||||
task->data[5] = 0;
|
||||
task->data[15] = sub_80A861C(gBattleAnimTarget, 0);
|
||||
|
||||
if (sub_80A8364(gBattleAnimTarget) == 1)
|
||||
if (GetBattlerSpriteBGPriorityRank(gBattleAnimTarget) == 1)
|
||||
{
|
||||
task->data[6] = gBattle_BG1_X;
|
||||
params.dmaDest = (u16 *)REG_ADDR_BG1HOFS;
|
||||
@@ -2628,7 +2628,7 @@ void sub_81051C4(struct Sprite *sprite)
|
||||
|
||||
void sub_8105284(struct Sprite *sprite)
|
||||
{
|
||||
if (TranslateAnimLinear(sprite))
|
||||
if (AnimTranslateLinear(sprite))
|
||||
{
|
||||
FreeSpriteOamMatrix(sprite);
|
||||
DestroyAnimSprite(sprite);
|
||||
@@ -2736,7 +2736,7 @@ void sub_81054E8(struct Sprite *sprite)
|
||||
void sub_8105538(struct Sprite *sprite)
|
||||
{
|
||||
s16 r1;
|
||||
InitAnimSpritePos(sprite, FALSE);
|
||||
InitSpritePosToAnimAttacker(sprite, FALSE);
|
||||
r1 = GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER ? -160 : 160;
|
||||
sprite->data[0] = 0x380;
|
||||
sprite->data[1] = r1;
|
||||
@@ -3098,7 +3098,7 @@ static void sub_8105D88(struct Sprite *sprite, u8 a, u8 b)
|
||||
|
||||
void sub_8105DE8(struct Sprite *sprite)
|
||||
{
|
||||
InitAnimSpritePos(sprite, FALSE);
|
||||
InitSpritePosToAnimAttacker(sprite, FALSE);
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
|
||||
|
||||
@@ -3113,7 +3113,7 @@ void sub_8105DE8(struct Sprite *sprite)
|
||||
void sub_8105E60(struct Sprite *sprite)
|
||||
{
|
||||
if (++sprite->data[0] == 1)
|
||||
InitAnimSpritePos(sprite, FALSE);
|
||||
InitSpritePosToAnimAttacker(sprite, FALSE);
|
||||
|
||||
sprite->pos2.x = Sin(sprite->data[1], 8);
|
||||
sprite->pos2.y = sprite->data[2] >> 8;
|
||||
@@ -3218,7 +3218,7 @@ void sub_81060B0(u8 taskId)
|
||||
|
||||
void sub_8106140(struct Sprite *sprite)
|
||||
{
|
||||
InitAnimSpritePos(sprite, TRUE);
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
sprite->data[0] = 95;
|
||||
sprite->data[1] = sprite->pos1.x;
|
||||
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
|
||||
@@ -3230,7 +3230,7 @@ void sub_8106140(struct Sprite *sprite)
|
||||
|
||||
static void sub_810618C(struct Sprite *sprite)
|
||||
{
|
||||
if (!TranslateAnimLinear(sprite))
|
||||
if (!AnimTranslateLinear(sprite))
|
||||
{
|
||||
sprite->pos2.y += Sin(sprite->data[5], 14);
|
||||
sprite->data[5] = (sprite->data[5] + 4) & 0xFF;
|
||||
@@ -3550,7 +3550,7 @@ static void sub_810699C(struct Sprite *sprite)
|
||||
|
||||
void sub_81069B8(struct Sprite *sprite)
|
||||
{
|
||||
InitAnimSpritePos(sprite, TRUE);
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
sprite->callback = sub_810699C;
|
||||
}
|
||||
|
||||
|
||||
+55
-40
@@ -589,9 +589,9 @@ const union AffineAnimCmd gUnknown_085CE430[] =
|
||||
|
||||
const s8 gUnknown_085CE460[] =
|
||||
{
|
||||
0xE8,
|
||||
0x18,
|
||||
0xFC,
|
||||
0xE8,
|
||||
0x18,
|
||||
0xFC,
|
||||
0x00,
|
||||
};
|
||||
|
||||
@@ -1225,7 +1225,7 @@ void sub_815A254(struct Sprite *sprite)
|
||||
u8 x = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
|
||||
u8 y = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
|
||||
|
||||
sub_80A6980(sprite, TRUE);
|
||||
InitSpritePosToAnimTarget(sprite, TRUE);
|
||||
|
||||
rotation = ArcTan2Neg(sprite->pos1.x - x, sprite->pos1.y - y);
|
||||
rotation += 0x6000;
|
||||
@@ -1406,7 +1406,7 @@ void sub_815A6C4(struct Sprite *sprite)
|
||||
u16 x;
|
||||
u16 y;
|
||||
|
||||
InitAnimSpritePos(sprite, TRUE);
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
SetAverageBattlerPositions(gBattleAnimTarget, FALSE, &x, &y);
|
||||
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
@@ -1444,7 +1444,7 @@ static void sub_815A76C(struct Sprite *sprite)
|
||||
void sub_815A7B0(struct Sprite *sprite)
|
||||
{
|
||||
SetSpriteCoordsToAnimAttackerCoords(sprite);
|
||||
sub_80A6864(sprite, gBattleAnimArgs[0]);
|
||||
SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]);
|
||||
sprite->pos1.y += gBattleAnimArgs[1];
|
||||
sprite->callback = RunStoredCallbackWhenAnimEnds;
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
@@ -1458,7 +1458,7 @@ void sub_815A7EC(struct Sprite *sprite)
|
||||
if (sprite->data[0] == 0)
|
||||
{
|
||||
SetSpriteCoordsToAnimAttackerCoords(sprite);
|
||||
sub_80A6864(sprite, gBattleAnimArgs[0]);
|
||||
SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]);
|
||||
if (!IsContest())
|
||||
{
|
||||
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
|
||||
@@ -1528,7 +1528,7 @@ void sub_815A934(struct Sprite *sprite)
|
||||
SetGpuReg(REG_OFFSET_WIN0H, gBattle_WIN0H);
|
||||
SetGpuReg(REG_OFFSET_WIN0V, gBattle_WIN0V);
|
||||
|
||||
sub_80A6980(sprite, FALSE);
|
||||
InitSpritePosToAnimTarget(sprite, FALSE);
|
||||
|
||||
sprite->oam.objMode = ST_OAM_OBJ_WINDOW;
|
||||
sprite->invisible = 1;
|
||||
@@ -1745,12 +1745,12 @@ void sub_815ADB0(u8 taskId)
|
||||
if (!gBattleAnimArgs[0])
|
||||
{
|
||||
var0 = GetBattlerYCoordWithElevation(gBattleAnimAttacker);
|
||||
toBG2 = sub_80A8364(gBattleAnimAttacker);
|
||||
toBG2 = GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker);
|
||||
}
|
||||
else
|
||||
{
|
||||
var0 = GetBattlerYCoordWithElevation(gBattleAnimTarget);
|
||||
toBG2 = sub_80A8364(gBattleAnimTarget);
|
||||
toBG2 = GetBattlerSpriteBGPriorityRank(gBattleAnimTarget);
|
||||
}
|
||||
|
||||
task->data[0] = var0 + 36;
|
||||
@@ -1846,7 +1846,7 @@ static void sub_815AED8(u8 taskId)
|
||||
if (task->data[7])
|
||||
task->data[12] = task->data[8];
|
||||
else
|
||||
task->data[12] = task->data[9];
|
||||
task->data[12] = task->data[9];
|
||||
}
|
||||
|
||||
i = task->data[0];
|
||||
@@ -2000,7 +2000,7 @@ static void sub_815B23C(struct Sprite *sprite)
|
||||
void sub_815B27C(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[0] == 0)
|
||||
InitAnimSpritePos(sprite, FALSE);
|
||||
InitSpritePosToAnimAttacker(sprite, FALSE);
|
||||
|
||||
if (++sprite->data[0] < 40)
|
||||
{
|
||||
@@ -2204,7 +2204,7 @@ void sub_815B70C(struct Sprite *sprite)
|
||||
switch (sprite->data[0])
|
||||
{
|
||||
case 0:
|
||||
InitAnimSpritePos(sprite, FALSE);
|
||||
InitSpritePosToAnimAttacker(sprite, FALSE);
|
||||
sprite->data[1] = 0x900;
|
||||
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
|
||||
sprite->data[0]++;
|
||||
@@ -2246,7 +2246,7 @@ void sub_815B7D0(u8 taskId)
|
||||
{
|
||||
case 0:
|
||||
SetGpuReg(REG_OFFSET_MOSAIC, 0);
|
||||
if (sub_80A8364(gBattleAnimAttacker) == 1)
|
||||
if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1)
|
||||
SetAnimBgAttribute(1, BG_ANIM_MOSAIC, 1);
|
||||
else
|
||||
SetAnimBgAttribute(2, BG_ANIM_MOSAIC, 1);
|
||||
@@ -2326,7 +2326,7 @@ void sub_815B7D0(u8 taskId)
|
||||
break;
|
||||
case 4:
|
||||
SetGpuReg(REG_OFFSET_MOSAIC, 0);
|
||||
if (sub_80A8364(gBattleAnimAttacker) == 1)
|
||||
if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1)
|
||||
SetAnimBgAttribute(1, BG_ANIM_MOSAIC, 0);
|
||||
else
|
||||
SetAnimBgAttribute(2, BG_ANIM_MOSAIC, 0);
|
||||
@@ -2403,7 +2403,7 @@ void sub_815BB84(u8 taskId)
|
||||
gTasks[taskId].data[4] = 0;
|
||||
if (++gTasks[taskId].data[1] > 12)
|
||||
gTasks[taskId].data[1] = 12;
|
||||
|
||||
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[1], 16 - gTasks[taskId].data[1]));
|
||||
|
||||
if (gTasks[taskId].data[1] == 12)
|
||||
@@ -2459,7 +2459,7 @@ void sub_815BE04(struct Sprite *sprite)
|
||||
xOffset &= 0x3F;
|
||||
if (xOffset > 31)
|
||||
xOffset = 32 - xOffset;
|
||||
|
||||
|
||||
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + xOffset;
|
||||
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 32;
|
||||
sprite->data[1] = gBattleAnimArgs[0];
|
||||
@@ -2490,7 +2490,7 @@ static void sub_815BF44(struct Sprite *sprite)
|
||||
{
|
||||
int var0;
|
||||
s8 var1;
|
||||
|
||||
|
||||
var0 = (u16)sprite->data[2] + (u16)sprite->data[3];
|
||||
var1 = var0 >> 8;
|
||||
sprite->pos2.y -= var1;
|
||||
@@ -2531,7 +2531,7 @@ static void sub_815C050(struct Sprite *sprite)
|
||||
register u16 d3 asm("r1");
|
||||
int var0;
|
||||
s8 var1;
|
||||
|
||||
|
||||
if (!sprite->invisible)
|
||||
{
|
||||
d2 = sprite->data[2];
|
||||
@@ -2637,7 +2637,7 @@ void sub_815C0A4(u8 taskId)
|
||||
sub_80A6C68(unknownStruct.bgId);
|
||||
if (!IsContest())
|
||||
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0);
|
||||
|
||||
|
||||
SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1);
|
||||
gBattle_BG1_X = 0;
|
||||
gBattle_BG1_Y = 0;
|
||||
@@ -2666,7 +2666,7 @@ void sub_815C400(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[0] == 0)
|
||||
{
|
||||
InitAnimSpritePos(sprite, 0);
|
||||
InitSpritePosToAnimAttacker(sprite, 0);
|
||||
sprite->data[0]++;
|
||||
}
|
||||
else if (sprite->data[0]++ > 20)
|
||||
@@ -2893,7 +2893,7 @@ static void sub_815C7C4(u8 taskId)
|
||||
SetSpriteRotScale(task->data[15], 0x100, 0x100, task->data[2]);
|
||||
SetBattlerSpriteYOffsetFromRotation(task->data[15]);
|
||||
gSprites[task->data[15]].pos2.x = -(((temp = task->data[2]) >= 0 ? task->data[2] : temp + 63) >> 6);
|
||||
|
||||
|
||||
if (++task->data[1] > 8)
|
||||
{
|
||||
if (task->data[12])
|
||||
@@ -3064,7 +3064,7 @@ void sub_815CC94(struct Sprite *sprite)
|
||||
SetGpuReg(REG_OFFSET_WIN0V, gBattle_WIN0V);
|
||||
|
||||
sprite->data[0] = gBattleAnimArgs[2];
|
||||
sub_80A6980(sprite, FALSE);
|
||||
InitSpritePosToAnimTarget(sprite, FALSE);
|
||||
sprite->oam.objMode = ST_OAM_OBJ_WINDOW;
|
||||
sprite->invisible = 1;
|
||||
sprite->callback = sub_815CD0C;
|
||||
@@ -3166,7 +3166,7 @@ void sub_815CED8(u8 taskId)
|
||||
otId = gContestResources->field_18->unkC;
|
||||
species = gContestResources->field_18->unk2;
|
||||
xOffset = 20;
|
||||
priority = sub_80A8328(gBattleAnimAttacker);
|
||||
priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -3188,7 +3188,7 @@ void sub_815CED8(u8 taskId)
|
||||
}
|
||||
|
||||
xOffset = 20;
|
||||
priority = sub_80A8328(gBattleAnimAttacker);
|
||||
priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -3208,7 +3208,7 @@ void sub_815CED8(u8 taskId)
|
||||
}
|
||||
|
||||
xOffset = -20;
|
||||
priority = sub_80A8328(gBattleAnimAttacker);
|
||||
priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3290,7 +3290,7 @@ void sub_815D240(u8 taskId)
|
||||
|
||||
task->data[14] = task->data[13] + 66;
|
||||
task->data[15] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
|
||||
if (sub_80A8364(battler) == 1)
|
||||
if (GetBattlerSpriteBGPriorityRank(battler) == 1)
|
||||
{
|
||||
scanlineParams.dmaDest = ®_BG1HOFS;
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG1);
|
||||
@@ -3333,7 +3333,7 @@ static void sub_815D398(u8 taskId)
|
||||
s16 var3;
|
||||
|
||||
task = &gTasks[taskId];
|
||||
if (sub_80A8364(task->data[5]) == 1)
|
||||
if (GetBattlerSpriteBGPriorityRank(task->data[5]) == 1)
|
||||
{
|
||||
bgX = gBattle_BG1_X;
|
||||
bgY = gBattle_BG1_Y;
|
||||
@@ -3679,7 +3679,7 @@ void sub_815DCA4(u8 taskId)
|
||||
|
||||
if (!gBattleAnimArgs[1])
|
||||
DestroyAnimVisualTask(taskId);
|
||||
|
||||
|
||||
task->data[0] = 0;
|
||||
task->data[1] = 0;
|
||||
task->data[2] = 0;
|
||||
@@ -3801,7 +3801,7 @@ static void sub_815DF64(u8 taskId)
|
||||
BlendPalette(gTasks[taskId].data[2], 16, 8, gUnknown_085CE784[gTasks[taskId].data[0]]);
|
||||
if (++gTasks[taskId].data[0] > 23)
|
||||
gTasks[taskId].data[0] = 0;
|
||||
|
||||
|
||||
gTasks[taskId].data[1]--;
|
||||
}
|
||||
else
|
||||
@@ -3831,7 +3831,7 @@ void sub_815E01C(struct Sprite *sprite)
|
||||
{
|
||||
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT)
|
||||
gBattleAnimArgs[0] = -gBattleAnimArgs[0];
|
||||
|
||||
|
||||
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + gBattleAnimArgs[0];
|
||||
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + gBattleAnimArgs[1];
|
||||
if (gBattleAnimArgs[2] == 0)
|
||||
@@ -4009,7 +4009,7 @@ void sub_815E444(struct Sprite *sprite)
|
||||
sprite->data[4] = gBattleAnimArgs[3];
|
||||
sprite->data[0] = gBattleAnimArgs[4];
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
sprite->callback = sub_80A70C0;
|
||||
sprite->callback = InitAndRunAnimFastLinearTranslation;
|
||||
}
|
||||
|
||||
void sub_815E47C(u8 taskId)
|
||||
@@ -4030,7 +4030,7 @@ void sub_815E47C(u8 taskId)
|
||||
InitAnimArcTranslation(&gSprites[task->data[15]]);
|
||||
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT)
|
||||
StartSpriteAffineAnim(&gSprites[task->data[15]], 1);
|
||||
|
||||
|
||||
task->func = sub_815E5CC;
|
||||
}
|
||||
else
|
||||
@@ -4303,7 +4303,7 @@ static void sub_815EA60(struct Sprite *sprite)
|
||||
sprite->pos2.x = sprite->data[7] * (gSineTable[sprite->data[1] * 10] >> 3);
|
||||
if (sprite->data[1] == 15)
|
||||
sprite->oam.tileNum += 16;
|
||||
|
||||
|
||||
if (sprite->data[1] == 18)
|
||||
{
|
||||
sprite->data[1] = 0;
|
||||
@@ -4452,7 +4452,7 @@ void sub_815EE84(struct Sprite *sprite)
|
||||
{
|
||||
if (gBattleAnimArgs[0] == 0)
|
||||
{
|
||||
InitAnimSpritePos(sprite, TRUE);
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
sprite->data[7] = gBattleAnimAttacker;
|
||||
}
|
||||
else
|
||||
@@ -4463,7 +4463,7 @@ void sub_815EE84(struct Sprite *sprite)
|
||||
if (GetBattlerSide(sprite->data[7]) == B_SIDE_OPPONENT)
|
||||
sprite->oam.matrixNum = 8;
|
||||
|
||||
sprite->oam.priority = sub_80A8328(sprite->data[7]);
|
||||
sprite->oam.priority = GetBattlerSpriteBGPriority(sprite->data[7]);
|
||||
sprite->oam.objMode = ST_OAM_OBJ_BLEND;
|
||||
sprite->callback = sub_815EF08;
|
||||
}
|
||||
@@ -4517,7 +4517,7 @@ static void sub_815EF08(struct Sprite *sprite)
|
||||
sprite->data[5]++;
|
||||
break;
|
||||
case 1:
|
||||
if (TranslateAnimLinear(sprite))
|
||||
if (AnimTranslateLinear(sprite))
|
||||
{
|
||||
switch (sprite->data[6])
|
||||
{
|
||||
@@ -4581,7 +4581,7 @@ static void sub_815F10C(struct Sprite *sprite)
|
||||
sprite->pos1.x + sprite->pos2.x,
|
||||
sprite->pos1.y + sprite->pos2.y, 5);
|
||||
}
|
||||
|
||||
|
||||
if (sprite->data[5] == sprite->data[4])
|
||||
DestroyAnimSprite(sprite);
|
||||
|
||||
@@ -4648,7 +4648,7 @@ void AnimTask_MonToSubstitute(u8 taskId)
|
||||
|
||||
for (i = 0; i < 16; i++)
|
||||
gTasks[taskId].data[i] = 0;
|
||||
|
||||
|
||||
gTasks[taskId].func = sub_815F330;
|
||||
}
|
||||
}
|
||||
@@ -4837,7 +4837,7 @@ void sub_815F620(u8 taskId)
|
||||
gSprites[spriteId1].invisible = 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
gSprites[spriteId2].oam.objMode = ST_OAM_OBJ_NORMAL;
|
||||
gSprites[spriteId1].oam.objMode = ST_OAM_OBJ_NORMAL;
|
||||
gSprites[spriteId2].callback = sub_815F7C4;
|
||||
@@ -4887,3 +4887,18 @@ static void sub_815F7C4(struct Sprite *sprite)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void AnimTask_GetReturnPowerLevel(u8 taskId)
|
||||
{
|
||||
gBattleAnimArgs[7] = 0;
|
||||
if (gAnimFriendship < 60)
|
||||
gBattleAnimArgs[7] = 0;
|
||||
if (gAnimFriendship > 60 && gAnimFriendship < 92)
|
||||
gBattleAnimArgs[7] = 1;
|
||||
if (gAnimFriendship > 91 && gAnimFriendship < 201)
|
||||
gBattleAnimArgs[7] = 2;
|
||||
if (gAnimFriendship > 200)
|
||||
gBattleAnimArgs[7] = 3;
|
||||
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
|
||||
+1
-1
@@ -497,7 +497,7 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state)
|
||||
case 0:
|
||||
BeginNormalPaletteFade(0x7FFFFF1C, 4, 0, 8, 0);
|
||||
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
|
||||
LoadCompressedObjectPic(gUnknown_08611F74);
|
||||
LoadCompressedSpriteSheet(gUnknown_08611F74);
|
||||
LoadCompressedPalette(gUnknown_08D855E8, 0x1F0, 0x20);
|
||||
gBattle_WIN0H = 0xFF;
|
||||
gBattle_WIN0V = 0x70;
|
||||
|
||||
+2
-3
@@ -11,6 +11,7 @@
|
||||
#include "link.h"
|
||||
#include "main.h"
|
||||
#include "menu.h"
|
||||
#include "overworld.h"
|
||||
#include "palette.h"
|
||||
#include "sound.h"
|
||||
#include "sprite.h"
|
||||
@@ -31,8 +32,6 @@ struct BattleBackground
|
||||
const void *palette;
|
||||
};
|
||||
|
||||
extern u8 GetCurrentMapBattleScene(void);
|
||||
|
||||
// .rodata
|
||||
static const u16 sUnrefArray[] = {0x0300, 0x0000}; //OamData?
|
||||
|
||||
@@ -1103,7 +1102,7 @@ void DrawBattleEntryBackground(void)
|
||||
SetGpuReg(REG_OFFSET_WINOUT, 0x36);
|
||||
gBattle_BG1_Y = 0xFF5C;
|
||||
gBattle_BG2_Y = 0xFF5C;
|
||||
LoadCompressedObjectPicUsingHeap(&gUnknown_0831AA00);
|
||||
LoadCompressedSpriteSheetUsingHeap(&gUnknown_0831AA00);
|
||||
}
|
||||
else if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_EREADER_TRAINER))
|
||||
{
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "battle_interface.h"
|
||||
#include "battle_message.h"
|
||||
#include "battle_setup.h"
|
||||
#include "battle_tower.h"
|
||||
#include "battle_tv.h"
|
||||
#include "bg.h"
|
||||
#include "data2.h"
|
||||
@@ -33,7 +34,6 @@ extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
|
||||
extern void sub_8172EF0(u8 battlerId, struct Pokemon *mon);
|
||||
extern void sub_81851A8(u8 *);
|
||||
extern u16 sub_8068B48(void);
|
||||
extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId);
|
||||
|
||||
// this file's functions
|
||||
static void LinkOpponentHandleGetMonData(void);
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "battle_interface.h"
|
||||
#include "battle_message.h"
|
||||
#include "battle_setup.h"
|
||||
#include "battle_tower.h"
|
||||
#include "battle_tv.h"
|
||||
#include "bg.h"
|
||||
#include "data2.h"
|
||||
@@ -31,7 +32,6 @@ extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[];
|
||||
|
||||
extern void sub_8172EF0(u8 battlerId, struct Pokemon *mon);
|
||||
extern void sub_81851A8(u8 *);
|
||||
extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId);
|
||||
|
||||
// this file's functions
|
||||
static void LinkPartnerHandleGetMonData(void);
|
||||
|
||||
@@ -34,9 +34,6 @@
|
||||
#include "constants/songs.h"
|
||||
#include "constants/trainers.h"
|
||||
|
||||
extern u8 gUnknown_0203CEE8;
|
||||
extern u8 gUnknown_0203CEE9;
|
||||
extern u8 gUnknown_0203CF00[];
|
||||
extern struct MusicPlayerInfo gMPlayInfo_BGM;
|
||||
|
||||
extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "battle_message.h"
|
||||
#include "cable_club.h"
|
||||
#include "link.h"
|
||||
#include "party_menu.h"
|
||||
#include "pokemon.h"
|
||||
#include "recorded_battle.h"
|
||||
#include "task.h"
|
||||
@@ -19,8 +20,6 @@ static EWRAM_DATA u8 sUnknown_02022D0A = 0;
|
||||
EWRAM_DATA struct UnusedControllerStruct gUnknown_02022D0C = {};
|
||||
static EWRAM_DATA u8 sBattleBuffersTransferData[0x100] = {};
|
||||
|
||||
extern void sub_81B8D64(u8 battlerId, u8 arg1); // party_menu
|
||||
|
||||
// this file's funcionts
|
||||
static void CreateTasksForSendRecvLinkBuffers(void);
|
||||
static void InitLinkBtlControllers(void);
|
||||
|
||||
+3
-8
@@ -19,6 +19,7 @@
|
||||
#include "window.h"
|
||||
#include "palette.h"
|
||||
#include "decompress.h"
|
||||
#include "party_menu.h"
|
||||
#include "menu.h"
|
||||
#include "sound.h"
|
||||
#include "pokemon_icon.h"
|
||||
@@ -57,12 +58,6 @@ struct UnkStruct_860DD10
|
||||
u16 src;
|
||||
};
|
||||
|
||||
extern void sub_81B8558(void);
|
||||
|
||||
extern u8 gSelectedOrderFromParty[];
|
||||
|
||||
extern const struct SpriteTemplate gUnknown_0860CFA8;
|
||||
|
||||
// text
|
||||
extern const u8 gTrainerClassNames[][0xD];
|
||||
|
||||
@@ -3536,7 +3531,7 @@ static void sub_8190400(u8 taskId)
|
||||
DecompressAndLoadBgGfxUsingHeap(2, gUnknown_08D83D50, 0x2000, 0, 0);
|
||||
DecompressAndLoadBgGfxUsingHeap(2, gUnknown_08D84970, 0x2000, 0, 1);
|
||||
DecompressAndLoadBgGfxUsingHeap(3, gUnknown_08D84F00, 0x800, 0, 1);
|
||||
LoadCompressedObjectPic(gUnknown_0860CF50);
|
||||
LoadCompressedSpriteSheet(gUnknown_0860CF50);
|
||||
LoadCompressedPalette(gUnknown_08D85358, 0, 0x200);
|
||||
LoadCompressedPalette(gUnknown_08D85444, 0x100, 0x200);
|
||||
LoadCompressedPalette(gUnknown_08D85600, 0xF0, 0x20);
|
||||
@@ -5707,7 +5702,7 @@ static void sub_8194220(u8 taskId)
|
||||
gTasks[taskId].data[0]++;
|
||||
break;
|
||||
case 3:
|
||||
LoadCompressedObjectPic(gUnknown_0860CF50);
|
||||
LoadCompressedSpriteSheet(gUnknown_0860CF50);
|
||||
if (r10 == 0)
|
||||
{
|
||||
for (i = 0; i < (unsigned) 31; i++)
|
||||
|
||||
@@ -131,12 +131,6 @@ struct FactorySwapMonsStruct
|
||||
bool8 unk30;
|
||||
};
|
||||
|
||||
extern u8 gUnknown_0203CF20;
|
||||
|
||||
extern const u16 gBattleFrontierHeldItems[];
|
||||
extern const struct FacilityMon gBattleFrontierMons[];
|
||||
extern const struct FacilityMon gSlateportBattleTentMons[];
|
||||
extern const struct BattleFrontierTrainer gBattleFrontierTrainers[];
|
||||
extern const u32 gUnknown_085B18AC[];
|
||||
|
||||
// This file's functions.
|
||||
@@ -1167,7 +1161,7 @@ static void CB2_InitSelectScreen(void)
|
||||
case 4:
|
||||
LoadSpritePalettes(gUnknown_086103F4);
|
||||
LoadSpriteSheets(gUnknown_086103BC);
|
||||
LoadCompressedObjectPic(gUnknown_086103E4);
|
||||
LoadCompressedSpriteSheet(gUnknown_086103E4);
|
||||
ShowBg(0);
|
||||
ShowBg(1);
|
||||
SetVBlankCallback(Select_VblankCb);
|
||||
@@ -3171,7 +3165,7 @@ static void CB2_InitSwapScreen(void)
|
||||
case 4:
|
||||
LoadSpritePalettes(gUnknown_086106B0);
|
||||
LoadSpriteSheets(gUnknown_08610650);
|
||||
LoadCompressedObjectPic(gUnknown_086106A0);
|
||||
LoadCompressedSpriteSheet(gUnknown_086106A0);
|
||||
SetVBlankCallback(Swap_VblankCb);
|
||||
gMain.state++;
|
||||
break;
|
||||
|
||||
+23
-26
@@ -15,6 +15,7 @@
|
||||
#include "task.h"
|
||||
#include "sprite.h"
|
||||
#include "sound.h"
|
||||
#include "party_menu.h"
|
||||
#include "m4a.h"
|
||||
#include "constants/species.h"
|
||||
#include "decompress.h"
|
||||
@@ -42,10 +43,6 @@ extern const struct CompressedSpriteSheet gSpriteSheet_EnemyShadow;
|
||||
extern const struct SpriteTemplate gSpriteTemplate_EnemyShadow;
|
||||
extern const u8 gEnemyMonElevation[];
|
||||
|
||||
extern u8 sub_80688F8(u8, u8 battlerId);
|
||||
extern u8 pokemon_order_func(u8); // party menu
|
||||
extern void sub_81B8C68(void);
|
||||
|
||||
// this file's functions
|
||||
static u8 sub_805D4A8(u16 move);
|
||||
static u16 BattlePalaceGetTargetRetValue(void);
|
||||
@@ -643,7 +640,7 @@ void DecompressTrainerFrontPic(u16 frontPicId, u8 battlerId)
|
||||
DecompressPicFromTable_2(&gTrainerFrontPicTable[frontPicId],
|
||||
gMonSpritesGfxPtr->sprites[position],
|
||||
SPECIES_NONE);
|
||||
LoadCompressedObjectPalette(&gTrainerFrontPicPaletteTable[frontPicId]);
|
||||
LoadCompressedSpritePalette(&gTrainerFrontPicPaletteTable[frontPicId]);
|
||||
}
|
||||
|
||||
void DecompressTrainerBackPic(u16 backPicId, u8 battlerId)
|
||||
@@ -675,20 +672,20 @@ void BattleLoadAllHealthBoxesGfxAtOnce(void)
|
||||
LoadSpritePalette(&sSpritePalettes_HealthBoxHealthBar[1]);
|
||||
if (!IsDoubleBattle())
|
||||
{
|
||||
LoadCompressedObjectPic(&sSpriteSheet_SinglesPlayerHealthbox);
|
||||
LoadCompressedObjectPic(&sSpriteSheet_SinglesOpponentHealthbox);
|
||||
LoadCompressedSpriteSheet(&sSpriteSheet_SinglesPlayerHealthbox);
|
||||
LoadCompressedSpriteSheet(&sSpriteSheet_SinglesOpponentHealthbox);
|
||||
numberOfBattlers = 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
LoadCompressedObjectPic(&sSpriteSheets_DoublesPlayerHealthbox[0]);
|
||||
LoadCompressedObjectPic(&sSpriteSheets_DoublesPlayerHealthbox[1]);
|
||||
LoadCompressedObjectPic(&sSpriteSheets_DoublesOpponentHealthbox[0]);
|
||||
LoadCompressedObjectPic(&sSpriteSheets_DoublesOpponentHealthbox[1]);
|
||||
LoadCompressedSpriteSheet(&sSpriteSheets_DoublesPlayerHealthbox[0]);
|
||||
LoadCompressedSpriteSheet(&sSpriteSheets_DoublesPlayerHealthbox[1]);
|
||||
LoadCompressedSpriteSheet(&sSpriteSheets_DoublesOpponentHealthbox[0]);
|
||||
LoadCompressedSpriteSheet(&sSpriteSheets_DoublesOpponentHealthbox[1]);
|
||||
numberOfBattlers = 4;
|
||||
}
|
||||
for (i = 0; i < numberOfBattlers; i++)
|
||||
LoadCompressedObjectPic(&sSpriteSheets_HealthBar[gBattlerPositions[i]]);
|
||||
LoadCompressedSpriteSheet(&sSpriteSheets_HealthBar[gBattlerPositions[i]]);
|
||||
}
|
||||
|
||||
bool8 BattleLoadAllHealthBoxesGfx(u8 state)
|
||||
@@ -707,37 +704,37 @@ bool8 BattleLoadAllHealthBoxesGfx(u8 state)
|
||||
if (state == 2)
|
||||
{
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
|
||||
LoadCompressedObjectPic(&sSpriteSheet_SafariHealthbox);
|
||||
LoadCompressedSpriteSheet(&sSpriteSheet_SafariHealthbox);
|
||||
else
|
||||
LoadCompressedObjectPic(&sSpriteSheet_SinglesPlayerHealthbox);
|
||||
LoadCompressedSpriteSheet(&sSpriteSheet_SinglesPlayerHealthbox);
|
||||
}
|
||||
else if (state == 3)
|
||||
LoadCompressedObjectPic(&sSpriteSheet_SinglesOpponentHealthbox);
|
||||
LoadCompressedSpriteSheet(&sSpriteSheet_SinglesOpponentHealthbox);
|
||||
else if (state == 4)
|
||||
LoadCompressedObjectPic(&sSpriteSheets_HealthBar[gBattlerPositions[0]]);
|
||||
LoadCompressedSpriteSheet(&sSpriteSheets_HealthBar[gBattlerPositions[0]]);
|
||||
else if (state == 5)
|
||||
LoadCompressedObjectPic(&sSpriteSheets_HealthBar[gBattlerPositions[1]]);
|
||||
LoadCompressedSpriteSheet(&sSpriteSheets_HealthBar[gBattlerPositions[1]]);
|
||||
else
|
||||
retVal = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (state == 2)
|
||||
LoadCompressedObjectPic(&sSpriteSheets_DoublesPlayerHealthbox[0]);
|
||||
LoadCompressedSpriteSheet(&sSpriteSheets_DoublesPlayerHealthbox[0]);
|
||||
else if (state == 3)
|
||||
LoadCompressedObjectPic(&sSpriteSheets_DoublesPlayerHealthbox[1]);
|
||||
LoadCompressedSpriteSheet(&sSpriteSheets_DoublesPlayerHealthbox[1]);
|
||||
else if (state == 4)
|
||||
LoadCompressedObjectPic(&sSpriteSheets_DoublesOpponentHealthbox[0]);
|
||||
LoadCompressedSpriteSheet(&sSpriteSheets_DoublesOpponentHealthbox[0]);
|
||||
else if (state == 5)
|
||||
LoadCompressedObjectPic(&sSpriteSheets_DoublesOpponentHealthbox[1]);
|
||||
LoadCompressedSpriteSheet(&sSpriteSheets_DoublesOpponentHealthbox[1]);
|
||||
else if (state == 6)
|
||||
LoadCompressedObjectPic(&sSpriteSheets_HealthBar[gBattlerPositions[0]]);
|
||||
LoadCompressedSpriteSheet(&sSpriteSheets_HealthBar[gBattlerPositions[0]]);
|
||||
else if (state == 7)
|
||||
LoadCompressedObjectPic(&sSpriteSheets_HealthBar[gBattlerPositions[1]]);
|
||||
LoadCompressedSpriteSheet(&sSpriteSheets_HealthBar[gBattlerPositions[1]]);
|
||||
else if (state == 8)
|
||||
LoadCompressedObjectPic(&sSpriteSheets_HealthBar[gBattlerPositions[2]]);
|
||||
LoadCompressedSpriteSheet(&sSpriteSheets_HealthBar[gBattlerPositions[2]]);
|
||||
else if (state == 9)
|
||||
LoadCompressedObjectPic(&sSpriteSheets_HealthBar[gBattlerPositions[3]]);
|
||||
LoadCompressedSpriteSheet(&sSpriteSheets_HealthBar[gBattlerPositions[3]]);
|
||||
else
|
||||
retVal = TRUE;
|
||||
}
|
||||
@@ -1116,7 +1113,7 @@ void LoadAndCreateEnemyShadowSprites(void)
|
||||
{
|
||||
u8 battlerId;
|
||||
|
||||
LoadCompressedObjectPic(&gSpriteSheet_EnemyShadow);
|
||||
LoadCompressedSpriteSheet(&gSpriteSheet_EnemyShadow);
|
||||
|
||||
battlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
|
||||
gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBattlerSpriteCoord(battlerId, 0), GetBattlerSpriteCoord(battlerId, 1) + 29, 0xC8);
|
||||
|
||||
@@ -1523,7 +1523,7 @@ u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo,
|
||||
bar_data0 = 5;
|
||||
}
|
||||
|
||||
LoadCompressedObjectPicUsingHeap(&sStatusSummaryBarSpriteSheet);
|
||||
LoadCompressedSpriteSheetUsingHeap(&sStatusSummaryBarSpriteSheet);
|
||||
LoadSpriteSheet(&sStatusSummaryBallsSpriteSheet);
|
||||
LoadSpritePalette(&sStatusSummaryBarSpritePal);
|
||||
LoadSpritePalette(&sStatusSummaryBallsSpritePal);
|
||||
|
||||
+78
-43
@@ -4,6 +4,7 @@
|
||||
#include "battle_arena.h"
|
||||
#include "battle_controllers.h"
|
||||
#include "battle_interface.h"
|
||||
#include "battle_main.h"
|
||||
#include "battle_message.h"
|
||||
#include "battle_pyramid.h"
|
||||
#include "battle_scripts.h"
|
||||
@@ -39,6 +40,7 @@
|
||||
#include "sound.h"
|
||||
#include "sprite.h"
|
||||
#include "string_util.h"
|
||||
#include "strings.h"
|
||||
#include "task.h"
|
||||
#include "text.h"
|
||||
#include "trig.h"
|
||||
@@ -56,23 +58,8 @@
|
||||
#include "constants/species.h"
|
||||
#include "constants/trainers.h"
|
||||
|
||||
struct UnknownPokemonStruct4
|
||||
{
|
||||
/*0x00*/ u16 species;
|
||||
/*0x02*/ u16 heldItem;
|
||||
/*0x04*/ u8 nickname[POKEMON_NAME_LENGTH + 1];
|
||||
/*0x0F*/ u8 level;
|
||||
/*0x10*/ u16 hp;
|
||||
/*0x12*/ u16 maxhp;
|
||||
/*0x14*/ u32 status;
|
||||
/*0x18*/ u32 personality;
|
||||
/*0x1C*/ u8 gender;
|
||||
/*0x1D*/ u8 language;
|
||||
};
|
||||
|
||||
extern struct MusicPlayerInfo gMPlayInfo_SE1;
|
||||
extern struct MusicPlayerInfo gMPlayInfo_SE2;
|
||||
extern u8 gUnknown_0203CF00[];
|
||||
|
||||
extern const struct BgTemplate gBattleBgTemplates[];
|
||||
extern const struct WindowTemplate *const gBattleWindowTemplates[];
|
||||
@@ -81,25 +68,9 @@ extern const u8 *const gBattlescriptsForBallThrow[];
|
||||
extern const u8 *const gBattlescriptsForRunningByItem[];
|
||||
extern const u8 *const gBattlescriptsForUsingItem[];
|
||||
extern const u8 *const gBattlescriptsForSafariActions[];
|
||||
extern const struct ScanlineEffectParams gBattleIntroSlideScanlineEffectParams;
|
||||
|
||||
// strings
|
||||
extern const u8 gText_LinkStandby3[];
|
||||
extern const u8 gText_BattleRecordCouldntBeSaved[];
|
||||
extern const u8 gText_ShedinjaJapaneseName[];
|
||||
extern const u8 gText_Poison[];
|
||||
extern const u8 gText_Sleep[];
|
||||
extern const u8 gText_Paralysis[];
|
||||
extern const u8 gText_Burn[];
|
||||
extern const u8 gText_Ice[];
|
||||
extern const u8 gText_Confusion[];
|
||||
extern const u8 gText_Love[];
|
||||
|
||||
// functions
|
||||
extern void sub_81B9150(void);
|
||||
extern void sub_80B3AF8(u8 taskId); // cable club
|
||||
extern void sub_81B8FB0(u8, u8); // party menu
|
||||
extern u8 pokemon_order_func(u8); // party menu
|
||||
|
||||
// this file's functions
|
||||
static void CB2_InitBattleInternal(void);
|
||||
@@ -117,9 +88,9 @@ static void sub_8038F34(void);
|
||||
static void sub_80392A8(void);
|
||||
static void sub_803937C(void);
|
||||
static void sub_803939C(void);
|
||||
static void sub_803980C(struct Sprite *sprite);
|
||||
static void sub_8039838(struct Sprite *sprite);
|
||||
static void sub_8039894(struct Sprite *sprite);
|
||||
static void SpriteCb_MoveWildMonToRight(struct Sprite *sprite);
|
||||
static void SpriteCb_WildMonShowHealthbox(struct Sprite *sprite);
|
||||
static void SpriteCb_WildMonAnimate(struct Sprite *sprite);
|
||||
static void sub_80398D0(struct Sprite *sprite);
|
||||
static void SpriteCB_AnimFaintOpponent(struct Sprite *sprite);
|
||||
static void sub_8039AF4(struct Sprite *sprite);
|
||||
@@ -296,6 +267,70 @@ u8 gNumberOfMovesToChoose;
|
||||
u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT];
|
||||
|
||||
// rom const data
|
||||
static const struct ScanlineEffectParams sIntroScanlineParams16Bit =
|
||||
{
|
||||
(void *)REG_ADDR_BG3HOFS, SCANLINE_EFFECT_DMACNT_16BIT, 1
|
||||
};
|
||||
|
||||
// unused
|
||||
static const struct ScanlineEffectParams sIntroScanlineParams32Bit =
|
||||
{
|
||||
(void *)REG_ADDR_BG3HOFS, SCANLINE_EFFECT_DMACNT_32BIT, 1
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gUnknown_0831AC88 =
|
||||
{
|
||||
.tileTag = 0,
|
||||
.paletteTag = 0,
|
||||
.oam = &gDummyOamData,
|
||||
.anims = gDummySpriteAnimTable,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = sub_8038528,
|
||||
};
|
||||
|
||||
static const u8 sText_ShedinjaJpnName[] = _("ヌケニン"); // Nukenin
|
||||
|
||||
const struct OamData gOamData_831ACA8 =
|
||||
{
|
||||
.y = 0,
|
||||
.affineMode = 1,
|
||||
.objMode = 0,
|
||||
.mosaic = 0,
|
||||
.bpp = 0,
|
||||
.shape = 0,
|
||||
.x = 0,
|
||||
.matrixNum = 0,
|
||||
.size = 3,
|
||||
.tileNum = 0,
|
||||
.priority = 2,
|
||||
.paletteNum = 0,
|
||||
.affineParam = 0
|
||||
};
|
||||
|
||||
const struct OamData gOamData_831ACB0 =
|
||||
{
|
||||
.y = 0,
|
||||
.affineMode = 1,
|
||||
.objMode = 0,
|
||||
.mosaic = 0,
|
||||
.bpp = 0,
|
||||
.shape = 0,
|
||||
.x = 0,
|
||||
.matrixNum = 0,
|
||||
.size = 3,
|
||||
.tileNum = 0,
|
||||
.priority = 2,
|
||||
.paletteNum = 2,
|
||||
.affineParam = 0
|
||||
};
|
||||
|
||||
// Unknown and unused data. Feel free to remove.
|
||||
static const u16 gUnknown_0831ACB8[] = {0, 5, 0xfffe, 0};
|
||||
static const u16 *const gUnknown_0831ACC0 = gUnknown_0831ACB8;
|
||||
static const u16 gUnknown_0831ACC4[] = {0xfff0, 0, 0x0400, 0, 0, 0, 0x3c00, 0, 0x7ffe, 1, 0, 0};
|
||||
static const u16 *const gUnknown_0831ACDC = gUnknown_0831ACC4;
|
||||
|
||||
static const s8 gUnknown_0831ACE0[] ={-32, -16, -16, -32, -32, 0, 0, 0};
|
||||
|
||||
// format: attacking type, defending type, damage multiplier
|
||||
@@ -633,7 +668,7 @@ static void CB2_InitBattleInternal(void)
|
||||
gScanlineEffectRegBuffers[1][i] = 0xFF10;
|
||||
}
|
||||
|
||||
ScanlineEffect_SetParams(gBattleIntroSlideScanlineEffectParams);
|
||||
ScanlineEffect_SetParams(sIntroScanlineParams16Bit);
|
||||
}
|
||||
|
||||
ResetPaletteFade();
|
||||
@@ -2605,7 +2640,7 @@ static void TryCorrectShedinjaLanguage(struct Pokemon *mon)
|
||||
&& GetMonData(mon, MON_DATA_LANGUAGE) != language)
|
||||
{
|
||||
GetMonData(mon, MON_DATA_NICKNAME, nickname);
|
||||
if (StringCompareWithoutExtCtrlCodes(nickname, gText_ShedinjaJapaneseName) == 0)
|
||||
if (StringCompareWithoutExtCtrlCodes(nickname, sText_ShedinjaJpnName) == 0)
|
||||
SetMonData(mon, MON_DATA_LANGUAGE, &language);
|
||||
}
|
||||
}
|
||||
@@ -2618,38 +2653,38 @@ u32 sub_80397C4(u32 setId, u32 tableId)
|
||||
#define sBattler data[0]
|
||||
#define sSpeciesId data[2]
|
||||
|
||||
void oac_poke_opponent(struct Sprite *sprite)
|
||||
void SpriteCb_WildMon(struct Sprite *sprite)
|
||||
{
|
||||
sprite->callback = sub_803980C;
|
||||
sprite->callback = SpriteCb_MoveWildMonToRight;
|
||||
StartSpriteAnimIfDifferent(sprite, 0);
|
||||
BeginNormalPaletteFade(0x20000, 0, 10, 10, RGB(8, 8, 8));
|
||||
}
|
||||
|
||||
static void sub_803980C(struct Sprite *sprite)
|
||||
static void SpriteCb_MoveWildMonToRight(struct Sprite *sprite)
|
||||
{
|
||||
if ((gIntroSlideFlags & 1) == 0)
|
||||
{
|
||||
sprite->pos2.x += 2;
|
||||
if (sprite->pos2.x == 0)
|
||||
{
|
||||
sprite->callback = sub_8039838;
|
||||
sprite->callback = SpriteCb_WildMonShowHealthbox;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_8039838(struct Sprite *sprite)
|
||||
static void SpriteCb_WildMonShowHealthbox(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->animEnded)
|
||||
{
|
||||
sub_8076918(sprite->sBattler);
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[sprite->sBattler]);
|
||||
sprite->callback = sub_8039894;
|
||||
sprite->callback = SpriteCb_WildMonAnimate;
|
||||
StartSpriteAnimIfDifferent(sprite, 0);
|
||||
BeginNormalPaletteFade(0x20000, 0, 10, 0, RGB(8, 8, 8));
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_8039894(struct Sprite *sprite)
|
||||
static void SpriteCb_WildMonAnimate(struct Sprite *sprite)
|
||||
{
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
#include "palette.h"
|
||||
#include "recorded_battle.h"
|
||||
#include "string_util.h"
|
||||
#include "strings.h"
|
||||
#include "text.h"
|
||||
#include "window.h"
|
||||
#include "constants/battle_string_ids.h"
|
||||
@@ -40,15 +41,7 @@ extern u8 gUnknown_0203C7B4;
|
||||
extern const u8 gTrainerClassNames[][13];
|
||||
extern const u16 gUnknown_08D85620[];
|
||||
|
||||
// strings
|
||||
extern const u8 gText_PkmnBoxSomeonesPCFull[];
|
||||
extern const u8 gText_PkmnBoxLanettesPCFull[];
|
||||
extern const u8 gText_PkmnTransferredSomeonesPC[];
|
||||
extern const u8 gText_PkmnTransferredLanettesPC[];
|
||||
|
||||
extern u8 GetFrontierBrainTrainerClass(void); // battle_frontier_2
|
||||
extern u8 GetTrainerHillOpponentClass(u16 trainerId); // pokenav
|
||||
extern void CopyFrontierBrainTrainerName(u8 *txtPtr); // battle_frontier_2
|
||||
extern void GetTrainerHillTrainerName(u8 *txtPtr, u16 trainerId); // pokenav
|
||||
extern void CopyTrainerHillTrainerText(u8 arg0, u16 trainerId); // pokenav
|
||||
|
||||
|
||||
+1
-1
@@ -1611,7 +1611,7 @@ static void sub_81A8830(void)
|
||||
|
||||
static bool8 CanEncounterWildMon(u8 enemyMonLevel)
|
||||
{
|
||||
if (!GetMonData(&gPlayerParty[0], MON_DATA_SANITY_BIT3))
|
||||
if (!GetMonData(&gPlayerParty[0], MON_DATA_SANITY_IS_EGG))
|
||||
{
|
||||
u8 monAbility = GetMonAbility(&gPlayerParty[0]);
|
||||
if (monAbility == ABILITY_KEEN_EYE || monAbility == ABILITY_INTIMIDATE)
|
||||
|
||||
@@ -8,7 +8,9 @@
|
||||
#include "save.h"
|
||||
#include "strings.h"
|
||||
#include "fieldmap.h"
|
||||
#include "party_menu.h"
|
||||
#include "palette.h"
|
||||
#include "field_screen_effect.h"
|
||||
#include "field_message_box.h"
|
||||
#include "random.h"
|
||||
#include "item.h"
|
||||
@@ -32,9 +34,6 @@
|
||||
#include "constants/moves.h"
|
||||
#include "constants/species.h"
|
||||
|
||||
extern u8 gSelectedOrderFromParty[3];
|
||||
extern void door_upload_tiles(void);
|
||||
|
||||
extern const struct MapLayout *const gMapLayouts[];
|
||||
extern const u16 gUnknown_08D856C8[][16];
|
||||
|
||||
|
||||
@@ -547,7 +547,7 @@ static bool8 sub_81C5238(void)
|
||||
gPyramidBagResources->state++;
|
||||
break;
|
||||
case 3:
|
||||
LoadCompressedObjectPic(&gUnknown_0861F3CC);
|
||||
LoadCompressedSpriteSheet(&gUnknown_0861F3CC);
|
||||
gPyramidBagResources->state++;
|
||||
break;
|
||||
case 4:
|
||||
@@ -964,7 +964,7 @@ static void HandleMenuActionInput(u8 taskId)
|
||||
{
|
||||
if (sub_81221EC() != TRUE)
|
||||
{
|
||||
s8 id = GetMenuCursorPos();
|
||||
s8 id = Menu_GetCursorPos();
|
||||
if (gMain.newKeys & DPAD_UP)
|
||||
{
|
||||
if (id > 0 && IsValidMenuAction(id - 2))
|
||||
|
||||
@@ -46,22 +46,18 @@
|
||||
#include "battle_arena.h"
|
||||
#include "battle_pike.h"
|
||||
#include "battle_pyramid.h"
|
||||
#include "field_specials.h"
|
||||
#include "pokemon_summary_screen.h"
|
||||
|
||||
extern struct MusicPlayerInfo gMPlayInfo_BGM;
|
||||
|
||||
extern const u8* const gBattleScriptsForMoveEffects[];
|
||||
|
||||
// functions
|
||||
extern void ShowSelectMovePokemonSummaryScreen(struct Pokemon* party, u8 monPartyId, u8 monCount, void (*callback)(void), u16 move); // pokemon summary screen
|
||||
extern u8 sub_81C1B94(void); // pokemon summary screen
|
||||
extern void sub_81D388C(struct Pokemon* mon, void* statStoreLocation); // pokenav.s
|
||||
extern void sub_81D3640(u8 arg0, void* statStoreLocation1, void* statStoreLocation2, u8 arg3, u8 arg4, u8 arg5); // pokenav.s
|
||||
extern void sub_81D3784(u8 arg0, void* statStoreLocation1, u8 arg2, u8 arg3, u8 arg4); // pokenav.s
|
||||
extern u8* GetMonNickname(struct Pokemon* mon, u8* dst); // party_menu
|
||||
extern void sub_81B8E80(u8 battlerId, u8, u8); // party menu
|
||||
extern bool8 sub_81B1250(void); // ?
|
||||
extern void sub_81D3640(u16 arg0, void* statStoreLocation1, void* statStoreLocation2, u8 arg3, u8 arg4, u8 arg5); // pokenav.s
|
||||
extern void sub_81D3784(u16 arg0, void* statStoreLocation1, u8 arg2, u8 arg3, u8 arg4); // pokenav.s
|
||||
extern u8 sub_813B21C(void);
|
||||
extern u16 get_unknown_box_id(void);
|
||||
|
||||
#define DEFENDER_IS_PROTECTED ((gProtectStructs[gBattlerTarget].protected) && (gBattleMoves[gCurrentMove].flags & FLAG_PROTECT_AFFECTED))
|
||||
|
||||
@@ -7609,7 +7605,7 @@ static void atk8F_forcerandomswitch(void)
|
||||
}
|
||||
*(gBattleStruct->monToSwitchIntoId + gBattlerTarget) = i;
|
||||
|
||||
if (!sub_81B1250())
|
||||
if (!IsMultiBattle())
|
||||
sub_803BDA0(gBattlerTarget);
|
||||
|
||||
if ((gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER)
|
||||
|
||||
+5
-5
@@ -24,6 +24,7 @@
|
||||
#include "window.h"
|
||||
#include "event_object_movement.h"
|
||||
#include "event_scripts.h"
|
||||
#include "tv.h"
|
||||
#include "trainer_see.h"
|
||||
#include "field_message_box.h"
|
||||
#include "sound.h"
|
||||
@@ -36,6 +37,9 @@
|
||||
#include "gym_leader_rematch.h"
|
||||
#include "battle_pike.h"
|
||||
#include "battle_pyramid.h"
|
||||
#include "fldeff.h"
|
||||
#include "fldeff_misc.h"
|
||||
#include "field_control_avatar.h"
|
||||
#include "constants/map_types.h"
|
||||
#include "constants/battle_frontier.h"
|
||||
|
||||
@@ -57,12 +61,8 @@ struct TrainerBattleParameter
|
||||
};
|
||||
|
||||
extern bool32 InTrainerHill(void);
|
||||
extern bool32 FieldPoisonEffectIsRunning(void);
|
||||
extern void RestartWildEncounterImmunitySteps(void);
|
||||
extern void ClearPoisonStepCounter(void);
|
||||
extern void sub_81BE72C(void);
|
||||
extern void sub_808BCF4(void);
|
||||
extern void sub_80EECC8(void);
|
||||
extern void sub_80AF6F0(void);
|
||||
extern u16 sub_81D6180(u8 localId);
|
||||
extern bool8 GetTrainerHillTrainerFlag(u8 eventObjId);
|
||||
@@ -338,7 +338,7 @@ static void Task_BattleStart(u8 taskId)
|
||||
switch (tState)
|
||||
{
|
||||
case 0:
|
||||
if (!FieldPoisonEffectIsRunning()) // is poison not active?
|
||||
if (!FldEffPoison_IsActive()) // is poison not active?
|
||||
{
|
||||
BattleTransition_StartOnField(tTransition);
|
||||
sub_81BE72C();
|
||||
|
||||
+50
-52
@@ -31,8 +31,6 @@
|
||||
#include "constants/species.h"
|
||||
#include "constants/easy_chat.h"
|
||||
|
||||
extern const u16 gUnknown_085DFA46[];
|
||||
|
||||
extern const u8 MossdeepCity_SpaceCenter_2F_EventScript_224157[];
|
||||
extern const u8 MossdeepCity_SpaceCenter_2F_EventScript_224166[];
|
||||
|
||||
@@ -942,55 +940,55 @@ struct
|
||||
const u8 *const *strings;
|
||||
} const gUnknown_085DD500[] =
|
||||
{
|
||||
{FACILITY_CLASS_LASS, gUnknown_085DD118},
|
||||
{FACILITY_CLASS_YOUNGSTER, gUnknown_085DD12C},
|
||||
{FACILITY_CLASS_HIKER, gUnknown_085DD140},
|
||||
{FACILITY_CLASS_BEAUTY, gUnknown_085DD154},
|
||||
{FACILITY_CLASS_FISHERMAN, gUnknown_085DD168},
|
||||
{FACILITY_CLASS_LADY, gUnknown_085DD17C},
|
||||
{FACILITY_CLASS_CYCLING_TRIATHLETE_F, gUnknown_085DD190},
|
||||
{FACILITY_CLASS_BUG_CATCHER, gUnknown_085DD1A4},
|
||||
{FACILITY_CLASS_SCHOOL_KID_M, gUnknown_085DD1B8},
|
||||
{FACILITY_CLASS_RICH_BOY, gUnknown_085DD1CC},
|
||||
{FACILITY_CLASS_BLACK_BELT, gUnknown_085DD1E0},
|
||||
{FACILITY_CLASS_TUBER_F, gUnknown_085DD1F4},
|
||||
{FACILITY_CLASS_HEX_MANIAC, gUnknown_085DD208},
|
||||
{FACILITY_CLASS_PKMN_BREEDER_M, gUnknown_085DD21C},
|
||||
{FACILITY_CLASS_RUNNING_TRIATHLETE_F, gUnknown_085DD230},
|
||||
{FACILITY_CLASS_RUNNING_TRIATHLETE_M, gUnknown_085DD244},
|
||||
{FACILITY_CLASS_BATTLE_GIRL, gUnknown_085DD258},
|
||||
{FACILITY_CLASS_CYCLING_TRIATHLETE_M, gUnknown_085DD26C},
|
||||
{FACILITY_CLASS_TUBER_M, gUnknown_085DD280},
|
||||
{FACILITY_CLASS_GUITARIST, gUnknown_085DD294},
|
||||
{FACILITY_CLASS_GENTLEMAN, gUnknown_085DD2A8},
|
||||
{FACILITY_CLASS_POKEFAN_M, gUnknown_085DD2BC},
|
||||
{FACILITY_CLASS_EXPERT_M, gUnknown_085DD2D0},
|
||||
{FACILITY_CLASS_EXPERT_F, gUnknown_085DD2E4},
|
||||
{FACILITY_CLASS_DRAGON_TAMER, gUnknown_085DD2F8},
|
||||
{FACILITY_CLASS_BIRD_KEEPER, gUnknown_085DD30C},
|
||||
{FACILITY_CLASS_NINJA_BOY, gUnknown_085DD320},
|
||||
{FACILITY_CLASS_PARASOL_LADY, gUnknown_085DD334},
|
||||
{FACILITY_CLASS_BUG_MANIAC, gUnknown_085DD348},
|
||||
{FACILITY_CLASS_SAILOR, gUnknown_085DD35C},
|
||||
{FACILITY_CLASS_COLLECTOR, gUnknown_085DD370},
|
||||
{FACILITY_CLASS_PKMN_RANGER_M, gUnknown_085DD384},
|
||||
{FACILITY_CLASS_PKMN_RANGER_F, gUnknown_085DD398},
|
||||
{FACILITY_CLASS_AROMA_LADY, gUnknown_085DD3AC},
|
||||
{FACILITY_CLASS_RUIN_MANIAC, gUnknown_085DD3C0},
|
||||
{FACILITY_CLASS_COOLTRAINER_M, gUnknown_085DD3D4},
|
||||
{FACILITY_CLASS_COOLTRAINER_F, gUnknown_085DD3E8},
|
||||
{FACILITY_CLASS_POKEMANIAC, gUnknown_085DD3FC},
|
||||
{FACILITY_CLASS_KINDLER, gUnknown_085DD410},
|
||||
{FACILITY_CLASS_CAMPER, gUnknown_085DD424},
|
||||
{FACILITY_CLASS_PICNICKER, gUnknown_085DD438},
|
||||
{FACILITY_CLASS_PSYCHIC_M, gUnknown_085DD44C},
|
||||
{FACILITY_CLASS_PSYCHIC_F, gUnknown_085DD460},
|
||||
{FACILITY_CLASS_SCHOOL_KID_F, gUnknown_085DD474},
|
||||
{FACILITY_CLASS_POKEMON_BREEDER_F, gUnknown_085DD488},
|
||||
{FACILITY_CLASS_POKEFAN_F, gUnknown_085DD49C},
|
||||
{FACILITY_CLASS_SWIMMER_F, gUnknown_085DD4B0},
|
||||
{FACILITY_CLASS_SWIMMING_TRIATHLETE_M, gUnknown_085DD4C4},
|
||||
{FACILITY_CLASS_SWIMMING_TRIATHLETE_F, gUnknown_085DD4D8},
|
||||
{FACILITY_CLASS_LASS, gUnknown_085DD118},
|
||||
{FACILITY_CLASS_YOUNGSTER, gUnknown_085DD12C},
|
||||
{FACILITY_CLASS_HIKER, gUnknown_085DD140},
|
||||
{FACILITY_CLASS_BEAUTY, gUnknown_085DD154},
|
||||
{FACILITY_CLASS_FISHERMAN, gUnknown_085DD168},
|
||||
{FACILITY_CLASS_LADY, gUnknown_085DD17C},
|
||||
{FACILITY_CLASS_CYCLING_TRIATHLETE_F, gUnknown_085DD190},
|
||||
{FACILITY_CLASS_BUG_CATCHER, gUnknown_085DD1A4},
|
||||
{FACILITY_CLASS_SCHOOL_KID_M, gUnknown_085DD1B8},
|
||||
{FACILITY_CLASS_RICH_BOY, gUnknown_085DD1CC},
|
||||
{FACILITY_CLASS_BLACK_BELT, gUnknown_085DD1E0},
|
||||
{FACILITY_CLASS_TUBER_F, gUnknown_085DD1F4},
|
||||
{FACILITY_CLASS_HEX_MANIAC, gUnknown_085DD208},
|
||||
{FACILITY_CLASS_PKMN_BREEDER_M, gUnknown_085DD21C},
|
||||
{FACILITY_CLASS_RUNNING_TRIATHLETE_F, gUnknown_085DD230},
|
||||
{FACILITY_CLASS_RUNNING_TRIATHLETE_M, gUnknown_085DD244},
|
||||
{FACILITY_CLASS_BATTLE_GIRL, gUnknown_085DD258},
|
||||
{FACILITY_CLASS_CYCLING_TRIATHLETE_M, gUnknown_085DD26C},
|
||||
{FACILITY_CLASS_TUBER_M, gUnknown_085DD280},
|
||||
{FACILITY_CLASS_GUITARIST, gUnknown_085DD294},
|
||||
{FACILITY_CLASS_GENTLEMAN, gUnknown_085DD2A8},
|
||||
{FACILITY_CLASS_POKEFAN_M, gUnknown_085DD2BC},
|
||||
{FACILITY_CLASS_EXPERT_M, gUnknown_085DD2D0},
|
||||
{FACILITY_CLASS_EXPERT_F, gUnknown_085DD2E4},
|
||||
{FACILITY_CLASS_DRAGON_TAMER, gUnknown_085DD2F8},
|
||||
{FACILITY_CLASS_BIRD_KEEPER, gUnknown_085DD30C},
|
||||
{FACILITY_CLASS_NINJA_BOY, gUnknown_085DD320},
|
||||
{FACILITY_CLASS_PARASOL_LADY, gUnknown_085DD334},
|
||||
{FACILITY_CLASS_BUG_MANIAC, gUnknown_085DD348},
|
||||
{FACILITY_CLASS_SAILOR, gUnknown_085DD35C},
|
||||
{FACILITY_CLASS_COLLECTOR, gUnknown_085DD370},
|
||||
{FACILITY_CLASS_PKMN_RANGER_M, gUnknown_085DD384},
|
||||
{FACILITY_CLASS_PKMN_RANGER_F, gUnknown_085DD398},
|
||||
{FACILITY_CLASS_AROMA_LADY, gUnknown_085DD3AC},
|
||||
{FACILITY_CLASS_RUIN_MANIAC, gUnknown_085DD3C0},
|
||||
{FACILITY_CLASS_COOLTRAINER_M, gUnknown_085DD3D4},
|
||||
{FACILITY_CLASS_COOLTRAINER_F, gUnknown_085DD3E8},
|
||||
{FACILITY_CLASS_POKEMANIAC, gUnknown_085DD3FC},
|
||||
{FACILITY_CLASS_KINDLER, gUnknown_085DD410},
|
||||
{FACILITY_CLASS_CAMPER, gUnknown_085DD424},
|
||||
{FACILITY_CLASS_PICNICKER, gUnknown_085DD438},
|
||||
{FACILITY_CLASS_PSYCHIC_M, gUnknown_085DD44C},
|
||||
{FACILITY_CLASS_PSYCHIC_F, gUnknown_085DD460},
|
||||
{FACILITY_CLASS_SCHOOL_KID_F, gUnknown_085DD474},
|
||||
{FACILITY_CLASS_POKEMON_BREEDER_F, gUnknown_085DD488},
|
||||
{FACILITY_CLASS_POKEFAN_F, gUnknown_085DD49C},
|
||||
{FACILITY_CLASS_SWIMMER_F, gUnknown_085DD4B0},
|
||||
{FACILITY_CLASS_SWIMMING_TRIATHLETE_M, gUnknown_085DD4C4},
|
||||
{FACILITY_CLASS_SWIMMING_TRIATHLETE_F, gUnknown_085DD4D8},
|
||||
{FACILITY_CLASS_SWIMMER_M, gUnknown_085DD4EC}
|
||||
};
|
||||
|
||||
@@ -2147,7 +2145,7 @@ static void FillFactoryTentTrainerParty(u16 trainerId, u8 firstMonId)
|
||||
void FrontierSpeechToString(const u16 *words)
|
||||
{
|
||||
ConvertEasyChatWordsToString(gStringVar4, words, 3, 2);
|
||||
if (GetStringWidth(1, gStringVar4, -1) > 204)
|
||||
if (GetStringWidth(1, gStringVar4, -1) > 204u)
|
||||
{
|
||||
s32 i = 0;
|
||||
|
||||
|
||||
@@ -3,8 +3,10 @@
|
||||
#include "battle_transition.h"
|
||||
#include "bg.h"
|
||||
#include "decompress.h"
|
||||
#include "event_object_movement.h"
|
||||
#include "field_camera.h"
|
||||
#include "field_effect.h"
|
||||
#include "field_weather.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "main.h"
|
||||
#include "alloc.h"
|
||||
@@ -57,10 +59,6 @@ struct StructRectangularSpiral
|
||||
typedef bool8 (*TransitionStateFunc)(struct Task *task);
|
||||
typedef bool8 (*TransitionSpriteCallback)(struct Sprite *sprite);
|
||||
|
||||
extern const struct OamData gEventObjectBaseOam_32x32;
|
||||
|
||||
extern void SetWeatherScreenFadeOut(void);
|
||||
|
||||
// this file's functions
|
||||
static void LaunchBattleTransitionTask(u8 transitionId);
|
||||
static void Task_BattleTransitionMain(u8 taskId);
|
||||
|
||||
+2
-5
@@ -3,17 +3,14 @@
|
||||
#include "battle_controllers.h"
|
||||
#include "alloc.h"
|
||||
#include "pokemon.h"
|
||||
#include "party_menu.h"
|
||||
#include "event_data.h"
|
||||
#include "constants/abilities.h"
|
||||
#include "random.h"
|
||||
#include "battle_scripts.h"
|
||||
|
||||
extern u8 gUnknown_0203CF00[];
|
||||
|
||||
extern void sub_81D55D0(void);
|
||||
extern void sub_81D5694(void);
|
||||
extern u8 pokemon_order_func(u8);
|
||||
extern void sub_81B8FB0(u8, u8);
|
||||
|
||||
void AllocateBattleResources(void)
|
||||
{
|
||||
@@ -42,7 +39,7 @@ void AllocateBattleResources(void)
|
||||
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_SECRET_BASE)
|
||||
{
|
||||
u16 currSecretBaseId = VarGet(VAR_0x4054);
|
||||
u16 currSecretBaseId = VarGet(VAR_CURRENT_SECRET_BASE);
|
||||
CreateSecretBaseEnemyParty(&gSaveBlock1Ptr->secretBases[currSecretBaseId]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -349,11 +349,11 @@ static bool8 LoadBerryTagGfx(void)
|
||||
sBerryTag->gfxState++;
|
||||
break;
|
||||
case 5:
|
||||
LoadCompressedObjectPic(&gUnknown_0857FDEC);
|
||||
LoadCompressedSpriteSheet(&gUnknown_0857FDEC);
|
||||
sBerryTag->gfxState++;
|
||||
break;
|
||||
default:
|
||||
LoadCompressedObjectPalette(&gUnknown_0857FDF4);
|
||||
LoadCompressedSpritePalette(&gUnknown_0857FDF4);
|
||||
return TRUE; // done
|
||||
}
|
||||
|
||||
|
||||
@@ -33,8 +33,8 @@ struct BgConfig2
|
||||
u32 unk_3:18;
|
||||
|
||||
void* tilemap;
|
||||
u32 bg_x;
|
||||
u32 bg_y;
|
||||
s32 bg_x;
|
||||
s32 bg_y;
|
||||
};
|
||||
|
||||
static IWRAM_DATA struct BgControl sGpuBgConfigs;
|
||||
@@ -524,12 +524,12 @@ u16 GetBgAttribute(u8 bg, u8 attributeId)
|
||||
case 8:
|
||||
switch (GetBgType(bg))
|
||||
{
|
||||
case 0:
|
||||
return GetBgMetricTextMode(bg, 0) * 0x800;
|
||||
case 1:
|
||||
return GetBgMetricAffineMode(bg, 0) * 0x100;
|
||||
default:
|
||||
return 0;
|
||||
case 0:
|
||||
return GetBgMetricTextMode(bg, 0) * 0x800;
|
||||
case 1:
|
||||
return GetBgMetricAffineMode(bg, 0) * 0x100;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
case 9:
|
||||
return GetBgType(bg);
|
||||
@@ -540,7 +540,7 @@ u16 GetBgAttribute(u8 bg, u8 attributeId)
|
||||
}
|
||||
}
|
||||
|
||||
u32 ChangeBgX(u8 bg, u32 value, u8 op)
|
||||
s32 ChangeBgX(u8 bg, s32 value, u8 op)
|
||||
{
|
||||
u8 mode;
|
||||
u16 temp1;
|
||||
@@ -610,7 +610,7 @@ u32 ChangeBgX(u8 bg, u32 value, u8 op)
|
||||
return sGpuBgConfigs2[bg].bg_x;
|
||||
}
|
||||
|
||||
u32 GetBgX(u8 bg)
|
||||
s32 GetBgX(u8 bg)
|
||||
{
|
||||
if (IsInvalidBg32(bg) != FALSE)
|
||||
return -1;
|
||||
@@ -620,7 +620,7 @@ u32 GetBgX(u8 bg)
|
||||
return sGpuBgConfigs2[bg].bg_x;
|
||||
}
|
||||
|
||||
u32 ChangeBgY(u8 bg, u32 value, u8 op)
|
||||
s32 ChangeBgY(u8 bg, s32 value, u8 op)
|
||||
{
|
||||
u8 mode;
|
||||
u16 temp1;
|
||||
@@ -690,7 +690,7 @@ u32 ChangeBgY(u8 bg, u32 value, u8 op)
|
||||
return sGpuBgConfigs2[bg].bg_y;
|
||||
}
|
||||
|
||||
u32 ChangeBgY_ScreenOff(u8 bg, u32 value, u8 op)
|
||||
s32 ChangeBgY_ScreenOff(u8 bg, u32 value, u8 op)
|
||||
{
|
||||
u8 mode;
|
||||
u16 temp1;
|
||||
@@ -761,7 +761,7 @@ u32 ChangeBgY_ScreenOff(u8 bg, u32 value, u8 op)
|
||||
return sGpuBgConfigs2[bg].bg_y;
|
||||
}
|
||||
|
||||
u32 GetBgY(u8 bg)
|
||||
s32 GetBgY(u8 bg)
|
||||
{
|
||||
if (IsInvalidBg32(bg) != FALSE)
|
||||
return -1;
|
||||
@@ -778,14 +778,10 @@ void SetBgAffine(u8 bg, u32 srcCenterX, u32 srcCenterY, s16 dispCenterX, s16 dis
|
||||
|
||||
u8 Unused_AdjustBgMosaic(u8 a1, u8 a2)
|
||||
{
|
||||
u16 result;
|
||||
s16 test1;
|
||||
s16 test2;
|
||||
u16 result = GetGpuReg(REG_OFFSET_MOSAIC);
|
||||
s16 test1 = result & 0xF;
|
||||
s16 test2 = (result >> 4) & 0xF;
|
||||
|
||||
result = GetGpuReg(REG_OFFSET_MOSAIC);
|
||||
|
||||
test1 = result & 0xF;
|
||||
test2 = (result >> 4) & 0xF;
|
||||
result &= 0xFF00;
|
||||
|
||||
switch (a2)
|
||||
@@ -1039,47 +1035,43 @@ void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 widt
|
||||
u16 mode2;
|
||||
u16 attribute;
|
||||
u16 mode3;
|
||||
u16 x16, y16;
|
||||
|
||||
u16 x16;
|
||||
u16 y16;
|
||||
|
||||
if (IsInvalidBg32(bg) == FALSE && IsTileMapOutsideWram(bg) == FALSE)
|
||||
if (!IsInvalidBg32(bg) && !IsTileMapOutsideWram(bg))
|
||||
{
|
||||
attribute = GetBgControlAttribute(bg, BG_CTRL_ATTR_SCREENSIZE);
|
||||
mode = GetBgMetricTextMode(bg, 0x1) * 0x20;
|
||||
mode2 = GetBgMetricTextMode(bg, 0x2) * 0x20;
|
||||
switch (GetBgType(bg))
|
||||
{
|
||||
case 0:
|
||||
for (y16 = y; y16 < (y + height); y16++)
|
||||
case 0:
|
||||
for (y16 = y; y16 < (y + height); y16++)
|
||||
{
|
||||
for (x16 = x; x16 < (x + width); x16++)
|
||||
{
|
||||
for (x16 = x; x16 < (x + width); x16++)
|
||||
{
|
||||
CopyTileMapEntry(&firstTileNum, &((u16*)sGpuBgConfigs2[bg].tilemap)[(u16)GetTileMapIndexFromCoords(x16, y16, attribute, mode, mode2)], paletteSlot, 0, 0);
|
||||
firstTileNum = (firstTileNum & 0xFC00) + ((firstTileNum + tileNumDelta) & 0x3FF);
|
||||
}
|
||||
CopyTileMapEntry(&firstTileNum, &((u16*)sGpuBgConfigs2[bg].tilemap)[(u16)GetTileMapIndexFromCoords(x16, y16, attribute, mode, mode2)], paletteSlot, 0, 0);
|
||||
firstTileNum = (firstTileNum & 0xFC00) + ((firstTileNum + tileNumDelta) & 0x3FF);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
mode3 = GetBgMetricAffineMode(bg, 0x1);
|
||||
for (y16 = y; y16 < (y + height); y16++)
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
mode3 = GetBgMetricAffineMode(bg, 0x1);
|
||||
for (y16 = y; y16 < (y + height); y16++)
|
||||
{
|
||||
for (x16 = x; x16 < (x + width); x16++)
|
||||
{
|
||||
for (x16 = x; x16 < (x + width); x16++)
|
||||
{
|
||||
((u8*)sGpuBgConfigs2[bg].tilemap)[(y16 * mode3) + x16] = firstTileNum;
|
||||
firstTileNum = (firstTileNum & 0xFC00) + ((firstTileNum + tileNumDelta) & 0x3FF);
|
||||
}
|
||||
((u8*)sGpuBgConfigs2[bg].tilemap)[(y16 * mode3) + x16] = firstTileNum;
|
||||
firstTileNum = (firstTileNum & 0xFC00) + ((firstTileNum + tileNumDelta) & 0x3FF);
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
u16 GetBgMetricTextMode(u8 bg, u8 whichMetric)
|
||||
{
|
||||
u8 attribute;
|
||||
|
||||
attribute = GetBgControlAttribute(bg, BG_CTRL_ATTR_SCREENSIZE);
|
||||
u8 attribute = GetBgControlAttribute(bg, BG_CTRL_ATTR_SCREENSIZE);
|
||||
|
||||
switch (whichMetric)
|
||||
{
|
||||
@@ -1125,9 +1117,7 @@ u16 GetBgMetricTextMode(u8 bg, u8 whichMetric)
|
||||
|
||||
u32 GetBgMetricAffineMode(u8 bg, u8 whichMetric)
|
||||
{
|
||||
u8 attribute;
|
||||
|
||||
attribute = GetBgControlAttribute(bg, BG_CTRL_ATTR_SCREENSIZE);
|
||||
u8 attribute = GetBgControlAttribute(bg, BG_CTRL_ATTR_SCREENSIZE);
|
||||
|
||||
switch (whichMetric)
|
||||
{
|
||||
|
||||
@@ -19,8 +19,6 @@ extern u8 sub_808B9BC(u8 direction);
|
||||
extern u8 sub_808B9A4(u8 direction);
|
||||
extern u8 sub_808C1B4(u8 direction);
|
||||
extern u8 sub_808B9D4(u8 direction);
|
||||
extern void Overworld_ClearSavedMusic(void);
|
||||
extern void Overworld_PlaySpecialMapMusic(void);
|
||||
|
||||
// this file's functions
|
||||
static void MovePlayerOnMachBike(u8, u16, u16);
|
||||
|
||||
+5
-5
@@ -1,12 +1,12 @@
|
||||
#include "global.h"
|
||||
#include "blit.h"
|
||||
|
||||
void BlitBitmapRect4BitWithoutColorKey(struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 srcY, u16 dstX, u16 dstY, u16 width, u16 height)
|
||||
void BlitBitmapRect4BitWithoutColorKey(const struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 srcY, u16 dstX, u16 dstY, u16 width, u16 height)
|
||||
{
|
||||
BlitBitmapRect4Bit(src, dst, srcX, srcY, dstX, dstY, width, height, 0xFF);
|
||||
}
|
||||
|
||||
void BlitBitmapRect4Bit(struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 srcY, u16 dstX, u16 dstY, u16 width, u16 height, u8 colorKey)
|
||||
void BlitBitmapRect4Bit(const struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 srcY, u16 dstX, u16 dstY, u16 width, u16 height, u8 colorKey)
|
||||
{
|
||||
s32 xEnd;
|
||||
s32 yEnd;
|
||||
@@ -14,7 +14,7 @@ void BlitBitmapRect4Bit(struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 sr
|
||||
s32 multiplierDstY;
|
||||
s32 loopSrcY, loopDstY;
|
||||
s32 loopSrcX, loopDstX;
|
||||
u8 *pixelsSrc;
|
||||
const u8 *pixelsSrc;
|
||||
u8 *pixelsDst;
|
||||
s32 toOrr;
|
||||
s32 toAnd;
|
||||
@@ -103,7 +103,7 @@ void FillBitmapRect4Bit(struct Bitmap *surface, u16 x, u16 y, u16 width, u16 hei
|
||||
}
|
||||
}
|
||||
|
||||
void BlitBitmapRect4BitTo8Bit(struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 srcY, u16 dstX, u16 dstY, u16 width, u16 height, u8 colorKey, u8 paletteOffset)
|
||||
void BlitBitmapRect4BitTo8Bit(const struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 srcY, u16 dstX, u16 dstY, u16 width, u16 height, u8 colorKey, u8 paletteOffset)
|
||||
{
|
||||
s32 palOffsetBits;
|
||||
s32 xEnd;
|
||||
@@ -112,7 +112,7 @@ void BlitBitmapRect4BitTo8Bit(struct Bitmap *src, struct Bitmap *dst, u16 srcX,
|
||||
s32 multiplierDstY;
|
||||
s32 loopSrcY, loopDstY;
|
||||
s32 loopSrcX, loopDstX;
|
||||
u8 *pixelsSrc;
|
||||
const u8 *pixelsSrc;
|
||||
u8 *pixelsDst;
|
||||
s32 colorKeyBits;
|
||||
|
||||
|
||||
@@ -252,7 +252,7 @@ void sub_81104E4(struct Sprite *sprite)
|
||||
if (IsContest())
|
||||
gBattleAnimArgs[2] /= 2;
|
||||
|
||||
InitAnimSpritePos(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
sprite->data[0] = gBattleAnimArgs[2];
|
||||
sprite->data[1] = sprite->pos1.x;
|
||||
sprite->data[3] = sprite->pos1.y;
|
||||
@@ -274,7 +274,7 @@ void sub_81104E4(struct Sprite *sprite)
|
||||
|
||||
static void sub_811057C(struct Sprite *sprite)
|
||||
{
|
||||
if (TranslateAnimLinear(sprite))
|
||||
if (AnimTranslateLinear(sprite))
|
||||
{
|
||||
DestroyAnimSprite(sprite);
|
||||
return;
|
||||
@@ -389,7 +389,7 @@ void AnimTranslateStinger(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
InitAnimSpritePos(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
|
||||
lVarX = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2];
|
||||
lVarY = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3];
|
||||
@@ -414,7 +414,7 @@ void AnimTranslateStinger(struct Sprite *sprite)
|
||||
// arg 5: wave amplitude
|
||||
void AnimMissileArc(struct Sprite *sprite)
|
||||
{
|
||||
InitAnimSpritePos(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
|
||||
if (GetBattlerSide(gBattleAnimAttacker))
|
||||
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
|
||||
|
||||
+3
-3
@@ -259,7 +259,7 @@ static void CableCarMainCallback_Setup(void)
|
||||
break;
|
||||
case 2:
|
||||
for (i = 0; i < 3; i++)
|
||||
LoadCompressedObjectPic(&gUnknown_085CDB54[i]);
|
||||
LoadCompressedSpriteSheet(&gUnknown_085CDB54[i]);
|
||||
|
||||
LoadSpritePalettes(gUnknown_085CDB74);
|
||||
sCableCar->mtChimneyTilemap = malloc_and_decompress(gCableCarMtChimneyTilemap, &sizeOut);
|
||||
@@ -351,7 +351,7 @@ static void CableCarMainCallback_Run(void)
|
||||
static void CleanupCableCar(void)
|
||||
{
|
||||
u8 i = 0;
|
||||
|
||||
|
||||
HideBg(0);
|
||||
HideBg(1);
|
||||
HideBg(2);
|
||||
@@ -361,7 +361,7 @@ static void CleanupCableCar(void)
|
||||
sub_80AB130(WEATHER_NONE);
|
||||
for (i = 0; i < 20; i++)
|
||||
gWeatherPtr->sprites.s2.ashSprites[i] = NULL;
|
||||
|
||||
|
||||
ResetTasks();
|
||||
ResetSpriteData();
|
||||
ResetPaletteFade();
|
||||
|
||||
+2
-1
@@ -1,7 +1,8 @@
|
||||
#include "global.h"
|
||||
#include "rom6.h"
|
||||
#include "event_data.h"
|
||||
#include "rtc.h"
|
||||
#include "time_events.h"
|
||||
#include "field_specials.h"
|
||||
#include "lottery_corner.h"
|
||||
#include "dewford_trend.h"
|
||||
#include "tv.h"
|
||||
|
||||
+3
-3
@@ -2483,7 +2483,7 @@ u8 sub_80DB0C4(void)
|
||||
{
|
||||
u8 spriteId;
|
||||
|
||||
LoadCompressedObjectPic(&gUnknown_08587C00);
|
||||
LoadCompressedSpriteSheet(&gUnknown_08587C00);
|
||||
LoadCompressedPalette(gContest2Pal, 0x110, 32);
|
||||
spriteId = CreateSprite(&gSpriteTemplate_8587BE8, 112, 36, 30);
|
||||
gSprites[spriteId].oam.paletteNum = 1;
|
||||
@@ -2495,8 +2495,8 @@ u8 sub_80DB120(void)
|
||||
{
|
||||
u8 spriteId;
|
||||
|
||||
LoadCompressedObjectPic(&gUnknown_08587C08);
|
||||
LoadCompressedObjectPalette(&gUnknown_08587C10);
|
||||
LoadCompressedSpriteSheet(&gUnknown_08587C08);
|
||||
LoadCompressedSpritePalette(&gUnknown_08587C10);
|
||||
spriteId = CreateSprite(&gSpriteTemplate_8587C18, 96, 10, 29);
|
||||
gSprites[spriteId].invisible = TRUE;
|
||||
gSprites[spriteId].data[0] = gSprites[spriteId].oam.tileNum;
|
||||
|
||||
+6
-7
@@ -1102,7 +1102,6 @@ static const struct SpriteTemplate gUnknown_085E7068 =
|
||||
.callback = sub_81772B8,
|
||||
};
|
||||
|
||||
void sub_8175620(void);
|
||||
static void sub_8175744(u8 taskIdA);
|
||||
static void sub_8175774(u8 taskIdA);
|
||||
static void sub_8175808(u8 taskIdA);
|
||||
@@ -1964,9 +1963,9 @@ static bool8 sub_8176AB0(u8 data, u8 taskIdA)
|
||||
case 2:
|
||||
if (gSaveBlock2Ptr->playerGender == MALE)
|
||||
{
|
||||
LoadCompressedObjectPic(gUnknown_085F5334);
|
||||
LoadCompressedObjectPic(gUnknown_085F53BC);
|
||||
LoadCompressedObjectPic(gUnknown_085F5354);
|
||||
LoadCompressedSpriteSheet(gUnknown_085F5334);
|
||||
LoadCompressedSpriteSheet(gUnknown_085F53BC);
|
||||
LoadCompressedSpriteSheet(gUnknown_085F5354);
|
||||
LoadSpritePalettes(gUnknown_085F5384);
|
||||
|
||||
spriteId = intro_create_brendan_sprite(120, 46);
|
||||
@@ -1981,9 +1980,9 @@ static bool8 sub_8176AB0(u8 data, u8 taskIdA)
|
||||
}
|
||||
else
|
||||
{
|
||||
LoadCompressedObjectPic(gUnknown_085F5344);
|
||||
LoadCompressedObjectPic(gUnknown_085F53AC);
|
||||
LoadCompressedObjectPic(gUnknown_085F5354);
|
||||
LoadCompressedSpriteSheet(gUnknown_085F5344);
|
||||
LoadCompressedSpriteSheet(gUnknown_085F53AC);
|
||||
LoadCompressedSpriteSheet(gUnknown_085F5354);
|
||||
LoadSpritePalettes(gUnknown_085F5384);
|
||||
|
||||
spriteId = intro_create_may_sprite(120, 46);
|
||||
|
||||
+816
-4
@@ -1,11 +1,29 @@
|
||||
#include "global.h"
|
||||
#include "battle_anim.h"
|
||||
#include "contest.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "graphics.h"
|
||||
#include "palette.h"
|
||||
#include "scanline_effect.h"
|
||||
#include "trig.h"
|
||||
#include "util.h"
|
||||
#include "constants/rgb.h"
|
||||
|
||||
extern void sub_81138D4(struct Sprite *);
|
||||
extern void sub_81139DC(struct Sprite *);
|
||||
extern void sub_8113A90(struct Sprite *);
|
||||
extern void sub_81144BC(struct Sprite *);
|
||||
void sub_81138D4(struct Sprite *);
|
||||
void sub_81139DC(struct Sprite *);
|
||||
void sub_8113A90(struct Sprite *);
|
||||
void sub_81144BC(struct Sprite *);
|
||||
static void sub_811375C(u8);
|
||||
static void sub_811381C(u8);
|
||||
static void sub_8113950(struct Sprite *);
|
||||
static void sub_8113A18(struct Sprite *);
|
||||
static void sub_8113A58(struct Sprite *);
|
||||
static void sub_8113B90(struct Sprite *);
|
||||
static void sub_8113D60(u8);
|
||||
static void sub_81140C8(u8);
|
||||
static void sub_8114244(struct Task *);
|
||||
static void sub_8114374(u8);
|
||||
static void sub_8114748(u8);
|
||||
|
||||
const struct SpriteTemplate gUnknown_08596FC8 =
|
||||
{
|
||||
@@ -167,3 +185,797 @@ const struct SpriteTemplate gBattleAnimSpriteTemplate_8597138 =
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = sub_81144BC,
|
||||
};
|
||||
|
||||
void sub_81136E8(u8 taskId)
|
||||
{
|
||||
int battler;
|
||||
gTasks[taskId].data[0] = gBattleAnimArgs[0];
|
||||
battler = gBattleAnimAttacker;
|
||||
gTasks[taskId].data[1] = 16;
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0));
|
||||
if (GetBattlerSpriteBGPriorityRank(battler) == 1)
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG1);
|
||||
else
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG2);
|
||||
|
||||
gTasks[taskId].func = sub_811375C;
|
||||
}
|
||||
|
||||
static void sub_811375C(u8 taskId)
|
||||
{
|
||||
u8 blendA = gTasks[taskId].data[1] >> 8;
|
||||
u8 blendB = gTasks[taskId].data[1];
|
||||
if (gTasks[taskId].data[2] == (u8)gTasks[taskId].data[0])
|
||||
{
|
||||
blendA++;
|
||||
blendB--;
|
||||
gTasks[taskId].data[1] = BLDALPHA_BLEND(blendB, blendA);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, gTasks[taskId].data[1]);
|
||||
gTasks[taskId].data[2] = 0;
|
||||
if (blendA == 16)
|
||||
{
|
||||
gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].invisible = 1;
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
gTasks[taskId].data[2]++;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_81137E4(u8 taskId)
|
||||
{
|
||||
gTasks[taskId].data[0] = gBattleAnimArgs[0];
|
||||
gTasks[taskId].data[1] = BLDALPHA_BLEND(0, 16);
|
||||
gTasks[taskId].func = sub_811381C;
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, gTasks[taskId].data[1]);
|
||||
}
|
||||
|
||||
static void sub_811381C(u8 taskId)
|
||||
{
|
||||
u8 blendA = gTasks[taskId].data[1] >> 8;
|
||||
u8 blendB = gTasks[taskId].data[1];
|
||||
if (gTasks[taskId].data[2] == (u8)gTasks[taskId].data[0])
|
||||
{
|
||||
blendA--;
|
||||
blendB++;
|
||||
gTasks[taskId].data[1] = (blendA << 8) | blendB;
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, gTasks[taskId].data[1]);
|
||||
gTasks[taskId].data[2] = 0;
|
||||
if (blendA == 0)
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
gTasks[taskId].data[2]++;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8113888(u8 taskId)
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16));
|
||||
if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1)
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG1);
|
||||
else
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG2);
|
||||
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
|
||||
void sub_81138D4(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
|
||||
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
|
||||
sprite->data[3] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
|
||||
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
|
||||
sprite->data[0] = 0x7E;
|
||||
InitSpriteDataForLinearTranslation(sprite);
|
||||
sprite->data[3] = -sprite->data[1];
|
||||
sprite->data[4] = -sprite->data[2];
|
||||
sprite->data[6] = 0xFFD8;
|
||||
sprite->callback = sub_8113950;
|
||||
sprite->callback(sprite);
|
||||
}
|
||||
|
||||
static void sub_8113950(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[3] += sprite->data[1];
|
||||
sprite->data[4] += sprite->data[2];
|
||||
sprite->pos2.x = sprite->data[3] >> 8;
|
||||
sprite->pos2.y = sprite->data[4] >> 8;
|
||||
if (sprite->data[7] == 0)
|
||||
{
|
||||
sprite->data[3] += sprite->data[1];
|
||||
sprite->data[4] += sprite->data[2];
|
||||
sprite->pos2.x = sprite->data[3] >> 8;
|
||||
sprite->pos2.y = sprite->data[4] >> 8;
|
||||
sprite->data[0]--;
|
||||
}
|
||||
|
||||
sprite->pos2.y += Sin(sprite->data[5], sprite->data[6]);
|
||||
sprite->data[5] = (sprite->data[5] + 3) & 0xFF;
|
||||
if (sprite->data[5] > 0x7F)
|
||||
{
|
||||
sprite->data[5] = 0;
|
||||
sprite->data[6] += 20;
|
||||
sprite->data[7]++;
|
||||
}
|
||||
|
||||
if (--sprite->data[0] == 0)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
void sub_81139DC(struct Sprite *sprite)
|
||||
{
|
||||
sprite->pos1.x += gBattleAnimArgs[0];
|
||||
sprite->pos1.y += gBattleAnimArgs[1];
|
||||
StartSpriteAffineAnim(sprite, gBattleAnimArgs[2]);
|
||||
sprite->data[0] = gBattleAnimArgs[3];
|
||||
sprite->data[1] = gBattleAnimArgs[4];
|
||||
sprite->data[2] = gBattleAnimArgs[5];
|
||||
sprite->callback = sub_8113A18;
|
||||
}
|
||||
|
||||
static void sub_8113A18(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[4] += sprite->data[0];
|
||||
sprite->data[5] += sprite->data[1];
|
||||
sprite->pos2.x = sprite->data[4] >> 8;
|
||||
sprite->pos2.y = sprite->data[5] >> 8;
|
||||
if (++sprite->data[3] == sprite->data[2])
|
||||
sprite->callback = sub_8113A58;
|
||||
}
|
||||
|
||||
static void sub_8113A58(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[4] -= sprite->data[0];
|
||||
sprite->data[5] -= sprite->data[1];
|
||||
sprite->pos2.x = sprite->data[4] >> 8;
|
||||
sprite->pos2.y = sprite->data[5] >> 8;
|
||||
if (--sprite->data[3] == 0)
|
||||
DestroySpriteAndMatrix(sprite);
|
||||
}
|
||||
|
||||
void sub_8113A90(struct Sprite *sprite)
|
||||
{
|
||||
u8 battler;
|
||||
s8 xOffset;
|
||||
|
||||
if (gBattleAnimArgs[0] == 0)
|
||||
battler = gBattleAnimAttacker;
|
||||
else
|
||||
battler = gBattleAnimTarget;
|
||||
|
||||
xOffset = 20;
|
||||
sprite->oam.tileNum += 4;
|
||||
|
||||
switch (gBattleAnimArgs[1])
|
||||
{
|
||||
case 0:
|
||||
sprite->pos1.x = sub_80A861C(battler, 5) - 8;
|
||||
sprite->pos1.y = sub_80A861C(battler, 2) + 8;
|
||||
break;
|
||||
case 1:
|
||||
sprite->pos1.x = sub_80A861C(battler, 5) - 14;
|
||||
sprite->pos1.y = sub_80A861C(battler, 2) + 16;
|
||||
break;
|
||||
case 2:
|
||||
sprite->pos1.x = sub_80A861C(battler, 4) + 8;
|
||||
sprite->pos1.y = sub_80A861C(battler, 2) + 8;
|
||||
StartSpriteAffineAnim(sprite, 1);
|
||||
xOffset = -20;
|
||||
break;
|
||||
case 3:
|
||||
sprite->pos1.x = sub_80A861C(battler, 4) + 14;
|
||||
sprite->pos1.y = sub_80A861C(battler, 2) + 16;
|
||||
StartSpriteAffineAnim(sprite, 1);
|
||||
xOffset = -20;
|
||||
break;
|
||||
}
|
||||
|
||||
sprite->data[0] = 32;
|
||||
sprite->data[2] = sprite->pos1.x + xOffset;
|
||||
sprite->data[4] = sprite->pos1.y + 12;
|
||||
sprite->data[5] = -12;
|
||||
|
||||
InitAnimArcTranslation(sprite);
|
||||
sprite->callback = sub_8113B90;
|
||||
}
|
||||
|
||||
static void sub_8113B90(struct Sprite *sprite)
|
||||
{
|
||||
if (TranslateAnimArc(sprite))
|
||||
DestroySpriteAndMatrix(sprite);
|
||||
}
|
||||
|
||||
void sub_8113BAC(u8 taskId)
|
||||
{
|
||||
struct ScanlineEffectParams scanlineParams;
|
||||
struct UnknownAnimStruct2 unknownStruct;
|
||||
u16 i;
|
||||
u8 pos;
|
||||
int var0;
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
task->data[7] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + 31;
|
||||
task->data[6] = sub_80A861C(gBattleAnimAttacker, 2) - 7;
|
||||
task->data[5] = task->data[7];
|
||||
task->data[4] = task->data[6];
|
||||
task->data[13] = (task->data[7] - task->data[6]) << 8;
|
||||
|
||||
pos = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X);
|
||||
task->data[14] = pos - 32;
|
||||
task->data[15] = pos + 32;
|
||||
|
||||
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
|
||||
task->data[8] = -12;
|
||||
else
|
||||
task->data[8] = -64;
|
||||
|
||||
task->data[3] = GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker);
|
||||
if (task->data[3] == 1)
|
||||
{
|
||||
sub_80A6B30(&unknownStruct);
|
||||
task->data[10] = gBattle_BG1_Y;
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG1);
|
||||
FillPalette(0, unknownStruct.unk8 << 4, 32);
|
||||
scanlineParams.dmaDest = ®_BG1VOFS;
|
||||
var0 = WINOUT_WIN01_BG1;
|
||||
if (!IsContest())
|
||||
gBattle_BG2_X += 240;
|
||||
}
|
||||
else
|
||||
{
|
||||
task->data[10] = gBattle_BG2_Y;
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG2);
|
||||
FillPalette(0, 144, 32);
|
||||
scanlineParams.dmaDest = ®_BG2VOFS;
|
||||
var0 = WINOUT_WIN01_BG2;
|
||||
if (!IsContest())
|
||||
gBattle_BG1_X += 240;
|
||||
}
|
||||
|
||||
scanlineParams.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT;
|
||||
scanlineParams.initState = 1;
|
||||
scanlineParams.unused9 = 0;
|
||||
task->data[11] = 0;
|
||||
task->data[12] = 16;
|
||||
task->data[0] = 0;
|
||||
task->data[1] = 0;
|
||||
task->data[2] = 0;
|
||||
sub_8114374(3);
|
||||
for (i = 0; i < 112; i++)
|
||||
{
|
||||
gScanlineEffectRegBuffers[0][i] = task->data[10];
|
||||
gScanlineEffectRegBuffers[1][i] = task->data[10];
|
||||
}
|
||||
|
||||
ScanlineEffect_SetParams(scanlineParams);
|
||||
SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR | (var0 ^ (WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR)));
|
||||
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
|
||||
gBattle_WIN0H = (task->data[14] << 8) | task->data[15];
|
||||
gBattle_WIN0V = 160;
|
||||
|
||||
task->func = sub_8113D60;
|
||||
}
|
||||
|
||||
static void sub_8113D60(u8 taskId)
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
switch (task->data[0])
|
||||
{
|
||||
case 0:
|
||||
if (++task->data[1] > 1)
|
||||
{
|
||||
task->data[1] = 0;
|
||||
if (++task->data[2] & 1)
|
||||
{
|
||||
if (task->data[11] != 12)
|
||||
task->data[11]++;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (task->data[12] != 8)
|
||||
task->data[12]--;
|
||||
}
|
||||
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(task->data[11], task->data[12]));
|
||||
|
||||
if (task->data[11] == 12 && task->data[12] == 8)
|
||||
task->data[0]++;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
task->data[4] -= 8;
|
||||
sub_8114244(task);
|
||||
|
||||
if (task->data[4] < task->data[8])
|
||||
task->data[0]++;
|
||||
break;
|
||||
case 2:
|
||||
task->data[4] -= 8;
|
||||
sub_8114244(task);
|
||||
task->data[14] += 4;
|
||||
task->data[15] -= 4;
|
||||
|
||||
if (task->data[14] >= task->data[15])
|
||||
task->data[14] = task->data[15];
|
||||
|
||||
gBattle_WIN0H = (task->data[14] << 8) | task->data[15];
|
||||
|
||||
if (task->data[14] == task->data[15])
|
||||
task->data[0]++;
|
||||
break;
|
||||
case 3:
|
||||
gScanlineEffect.state = 3;
|
||||
task->data[0]++;
|
||||
break;
|
||||
case 4:
|
||||
DestroyAnimVisualTask(taskId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8113E78(u8 taskId)
|
||||
{
|
||||
struct UnknownAnimStruct2 unknownStruct;
|
||||
struct ScanlineEffectParams scanlineParams;
|
||||
u8 x;
|
||||
u16 i;
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
switch (task->data[0])
|
||||
{
|
||||
case 0:
|
||||
if (IsContest() == TRUE)
|
||||
{
|
||||
gBattle_WIN0H = 0;
|
||||
gBattle_WIN0V = 0;
|
||||
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
|
||||
SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR | WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR);
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
else
|
||||
{
|
||||
task->data[3] = GetBattlerSpriteBGPriorityRank(gBattleAnimTarget);
|
||||
if (task->data[3] == 1)
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG1);
|
||||
gBattle_BG2_X += 240;
|
||||
}
|
||||
else
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG2);
|
||||
gBattle_BG1_X += 240;
|
||||
}
|
||||
|
||||
task->data[0]++;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (task->data[3] == 1)
|
||||
{
|
||||
sub_80A6B30(&unknownStruct);
|
||||
task->data[10] = gBattle_BG1_Y;
|
||||
FillPalette(0, unknownStruct.unk8 << 4, 32);
|
||||
}
|
||||
else
|
||||
{
|
||||
task->data[10] = gBattle_BG2_Y;
|
||||
FillPalette(0, 144, 32);
|
||||
}
|
||||
|
||||
sub_8114374(3);
|
||||
task->data[0]++;
|
||||
break;
|
||||
case 2:
|
||||
task->data[7] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 31;
|
||||
task->data[6] = sub_80A861C(gBattleAnimTarget, 2) - 7;
|
||||
task->data[13] = (task->data[7] - task->data[6]) << 8;
|
||||
x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X);
|
||||
task->data[14] = x - 4;
|
||||
task->data[15] = x + 4;
|
||||
|
||||
if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)
|
||||
task->data[8] = -12;
|
||||
else
|
||||
task->data[8] = -64;
|
||||
|
||||
task->data[4] = task->data[8];
|
||||
task->data[5] = task->data[8];
|
||||
task->data[11] = 12;
|
||||
task->data[12] = 8;
|
||||
task->data[0]++;
|
||||
break;
|
||||
case 3:
|
||||
if (task->data[3] == 1)
|
||||
scanlineParams.dmaDest = ®_BG1VOFS;
|
||||
else
|
||||
scanlineParams.dmaDest = ®_BG2VOFS;
|
||||
|
||||
for (i = 0; i < 112; i++)
|
||||
{
|
||||
gScanlineEffectRegBuffers[0][i] = task->data[10] + (159 - i);
|
||||
gScanlineEffectRegBuffers[1][i] = task->data[10] + (159 - i);
|
||||
}
|
||||
|
||||
scanlineParams.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT;
|
||||
scanlineParams.initState = 1;
|
||||
scanlineParams.unused9 = 0;
|
||||
ScanlineEffect_SetParams(scanlineParams);
|
||||
task->data[0]++;
|
||||
break;
|
||||
case 4:
|
||||
if (task->data[3] == 1)
|
||||
SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR | WINOUT_WIN01_BG0 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR);
|
||||
else
|
||||
SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR | WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR);
|
||||
|
||||
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
|
||||
gBattle_WIN0H = (task->data[14] << 8) | task->data[15];
|
||||
gBattle_WIN0V = 160;
|
||||
|
||||
task->data[0] = 0;
|
||||
task->data[1] = 0;
|
||||
task->data[2] = 0;
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(12, 8));
|
||||
task->func = sub_81140C8;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_81140C8(u8 taskId)
|
||||
{
|
||||
u8 pos;
|
||||
u16 i;
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
switch (task->data[0])
|
||||
{
|
||||
case 0:
|
||||
task->data[5] += 8;
|
||||
if (task->data[5] >= task->data[7])
|
||||
task->data[5] = task->data[7];
|
||||
|
||||
sub_8114244(task);
|
||||
if (task->data[5] == task->data[7])
|
||||
task->data[0]++;
|
||||
break;
|
||||
case 1:
|
||||
if (task->data[15] - task->data[14] < 0x40)
|
||||
{
|
||||
task->data[14] -= 4;
|
||||
task->data[15] += 4;
|
||||
}
|
||||
else
|
||||
{
|
||||
task->data[1] = 1;
|
||||
}
|
||||
|
||||
gBattle_WIN0H = (task->data[14] << 8) | task->data[15];
|
||||
task->data[4] += 8;
|
||||
if (task->data[4] >= task->data[6])
|
||||
task->data[4] = task->data[6];
|
||||
|
||||
sub_8114244(task);
|
||||
if (task->data[4] == task->data[6] && task->data[1])
|
||||
{
|
||||
task->data[1] = 0;
|
||||
task->data[0]++;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (++task->data[1] > 1)
|
||||
{
|
||||
task->data[1] = 0;
|
||||
task->data[2]++;
|
||||
if (task->data[2] & 1)
|
||||
{
|
||||
if (task->data[11])
|
||||
task->data[11]--;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (task->data[12] < 16)
|
||||
task->data[12]++;
|
||||
}
|
||||
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(task->data[11], task->data[12]));
|
||||
if (task->data[11] == 0 && task->data[12] == 16)
|
||||
task->data[0]++;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
gScanlineEffect.state = 3;
|
||||
task->data[0]++;
|
||||
break;
|
||||
case 4:
|
||||
gBattle_WIN0H = 0;
|
||||
gBattle_WIN0V = 0;
|
||||
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
|
||||
SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR | WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR);
|
||||
DestroyAnimVisualTask(taskId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_8114244(struct Task *task)
|
||||
{
|
||||
int var0, var1;
|
||||
s16 var2;
|
||||
s16 i;
|
||||
int var4;
|
||||
|
||||
var2 = task->data[5] - task->data[4];
|
||||
if (var2 != 0)
|
||||
{
|
||||
var0 = task->data[13] / var2;
|
||||
var1 = task->data[6] << 8;
|
||||
|
||||
for (i = 0; i < task->data[4]; i++)
|
||||
{
|
||||
gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = task->data[10] - (i - 159);
|
||||
}
|
||||
|
||||
for (i = task->data[4]; i <= task->data[5]; i++)
|
||||
{
|
||||
if (i >= 0)
|
||||
{
|
||||
s16 var3 = (var1 >> 8) - i;
|
||||
gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = var3 + task->data[10];
|
||||
}
|
||||
|
||||
var1 += var0;
|
||||
}
|
||||
|
||||
var4 = task->data[10] - (i - 159);
|
||||
for (i = i; i < task->data[7]; i++)
|
||||
{
|
||||
if (i >= 0)
|
||||
{
|
||||
gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = var4;
|
||||
var4--;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var4 = task->data[10] + 159;
|
||||
for (i = 0; i < 112; i++)
|
||||
{
|
||||
gScanlineEffectRegBuffers[0][i] = var4;
|
||||
gScanlineEffectRegBuffers[1][i] = var4;
|
||||
var4--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_8114374(u8 priority)
|
||||
{
|
||||
u16 i;
|
||||
|
||||
for (i = 0; i < MAX_BATTLERS_COUNT; i++)
|
||||
{
|
||||
u8 spriteId = GetAnimBattlerSpriteId(i);
|
||||
if (spriteId != 0xFF)
|
||||
gSprites[spriteId].oam.priority = priority;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_81143C0(u8 taskId)
|
||||
{
|
||||
u8 toBG2 = GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) ^ 1 ? 1 : 0;
|
||||
MoveBattlerSpriteToBG(gBattleAnimAttacker, toBG2, TRUE);
|
||||
gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].invisible = 0;
|
||||
|
||||
if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker)))
|
||||
{
|
||||
MoveBattlerSpriteToBG(gBattleAnimAttacker ^ 2, toBG2 ^ 1, TRUE);
|
||||
gSprites[gBattlerSpriteIds[gBattleAnimAttacker ^ 2]].invisible = 0;
|
||||
}
|
||||
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
|
||||
void sub_8114470(u8 taskId)
|
||||
{
|
||||
u8 toBG2 = GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) ^ 1 ? 1 : 0;
|
||||
sub_80A477C(toBG2);
|
||||
|
||||
if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker)))
|
||||
sub_80A477C(toBG2 ^ 1);
|
||||
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
|
||||
void sub_81144BC(struct Sprite *sprite)
|
||||
{
|
||||
sprite->pos1.x += gBattleAnimArgs[0];
|
||||
sprite->pos1.y += gBattleAnimArgs[1];
|
||||
StartSpriteAnim(sprite, gBattleAnimArgs[2]);
|
||||
sprite->callback = RunStoredCallbackWhenAnimEnds;
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
}
|
||||
|
||||
void sub_81144F8(u8 taskId)
|
||||
{
|
||||
u16 species;
|
||||
u8 spriteId;
|
||||
u8 newSpriteId;
|
||||
u16 paletteNum;
|
||||
struct UnknownAnimStruct2 unknownStruct;
|
||||
int var0 = 0;
|
||||
|
||||
gBattle_WIN0H = var0;
|
||||
gBattle_WIN0V = var0;
|
||||
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
|
||||
SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR | WINOUT_WIN01_BG0 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR);
|
||||
SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJWIN_ON);
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG1);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(8, 12));
|
||||
SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 0);
|
||||
SetAnimBgAttribute(1, BG_ANIM_SCREEN_SIZE, 0);
|
||||
if (!IsContest())
|
||||
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1);
|
||||
|
||||
if (IsDoubleBattle() && !IsContest())
|
||||
{
|
||||
if (GetBattlerPosition(gBattleAnimAttacker) == B_POSITION_OPPONENT_RIGHT || GetBattlerPosition(gBattleAnimAttacker) == B_POSITION_PLAYER_LEFT)
|
||||
{
|
||||
if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker)) == TRUE)
|
||||
{
|
||||
gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].oam.priority--;
|
||||
SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1);
|
||||
var0 = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (IsContest())
|
||||
{
|
||||
species = gContestResources->field_18->species;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES);
|
||||
else
|
||||
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES);
|
||||
}
|
||||
|
||||
spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
|
||||
newSpriteId = sub_80A89C8(gBattleAnimAttacker, spriteId, species);
|
||||
|
||||
sub_80A6B30(&unknownStruct);
|
||||
sub_80A6D48(unknownStruct.bgId, gUnknown_08C1D210);
|
||||
sub_80A6CC0(unknownStruct.bgId, gUnknown_08C1D0AC, unknownStruct.tilesOffset);
|
||||
LoadCompressedPalette(gUnknown_08C1D1E8, unknownStruct.unk8 << 4, 32);
|
||||
|
||||
gBattle_BG1_X = -gSprites[spriteId].pos1.x + 96;
|
||||
gBattle_BG1_Y = -gSprites[spriteId].pos1.y + 32;
|
||||
paletteNum = 16 + gSprites[spriteId].oam.paletteNum;
|
||||
|
||||
if (gBattleAnimArgs[1] == 0)
|
||||
SetGreyscaleOrOriginalPalette(paletteNum, FALSE);
|
||||
else
|
||||
BlendPalette(paletteNum * 16, 16, 11, gBattleAnimArgs[2]);
|
||||
|
||||
gTasks[taskId].data[0] = newSpriteId;
|
||||
gTasks[taskId].data[1] = gBattleAnimArgs[0];
|
||||
gTasks[taskId].data[2] = gBattleAnimArgs[1];
|
||||
gTasks[taskId].data[3] = gBattleAnimArgs[2];
|
||||
gTasks[taskId].data[6] = var0;
|
||||
gTasks[taskId].func = sub_8114748;
|
||||
}
|
||||
|
||||
static void sub_8114748(u8 taskId)
|
||||
{
|
||||
struct UnknownAnimStruct2 unknownStruct;
|
||||
u16 paletteNum;
|
||||
u8 spriteId;
|
||||
u8 taskIdCopy = taskId;
|
||||
|
||||
gTasks[taskIdCopy].data[10] += 4;
|
||||
gBattle_BG1_X -= 4;
|
||||
if (gTasks[taskIdCopy].data[10] == 128)
|
||||
{
|
||||
gTasks[taskIdCopy].data[10] = 0;
|
||||
gBattle_BG1_X += 128;
|
||||
gTasks[taskIdCopy].data[11]++;
|
||||
if (gTasks[taskIdCopy].data[11] == 2)
|
||||
{
|
||||
spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
|
||||
paletteNum = 16 + gSprites[spriteId].oam.paletteNum;
|
||||
if (gTasks[taskIdCopy].data[1] == 0)
|
||||
SetGreyscaleOrOriginalPalette(paletteNum, 1);
|
||||
|
||||
DestroySprite(&gSprites[gTasks[taskIdCopy].data[0]]);
|
||||
sub_80A6B30(&unknownStruct);
|
||||
sub_80A6C68(unknownStruct.bgId);
|
||||
if (gTasks[taskIdCopy].data[6] == 1)
|
||||
gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].oam.priority++;
|
||||
}
|
||||
else if (gTasks[taskIdCopy].data[11] == 3)
|
||||
{
|
||||
gBattle_WIN0H = 0;
|
||||
gBattle_WIN0V = 0;
|
||||
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
|
||||
SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR | WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR);
|
||||
if (!IsContest())
|
||||
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0);
|
||||
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, GetGpuReg(REG_OFFSET_DISPCNT) ^ DISPCNT_OBJWIN_ON);
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_811489C(u8 taskId)
|
||||
{
|
||||
u8 spriteId;
|
||||
u8 battler;
|
||||
bool8 calcSpriteId = FALSE;
|
||||
u8 position = B_POSITION_PLAYER_LEFT;
|
||||
|
||||
switch (gBattleAnimArgs[0])
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
|
||||
break;
|
||||
case 4:
|
||||
position = B_POSITION_PLAYER_LEFT;
|
||||
calcSpriteId = TRUE;
|
||||
break;
|
||||
case 5:
|
||||
position = B_POSITION_PLAYER_RIGHT;
|
||||
calcSpriteId = TRUE;
|
||||
break;
|
||||
case 6:
|
||||
position = B_POSITION_OPPONENT_LEFT;
|
||||
calcSpriteId = TRUE;
|
||||
break;
|
||||
case 7:
|
||||
position = B_POSITION_OPPONENT_RIGHT;
|
||||
calcSpriteId = TRUE;
|
||||
break;
|
||||
default:
|
||||
spriteId = 0xFF;
|
||||
break;
|
||||
}
|
||||
|
||||
if (calcSpriteId)
|
||||
{
|
||||
battler = GetBattlerAtPosition(position);
|
||||
if (IsBattlerSpriteVisible(battler))
|
||||
spriteId = gBattlerSpriteIds[battler];
|
||||
else
|
||||
spriteId = 0xFF;
|
||||
}
|
||||
|
||||
if (spriteId != 0xFF)
|
||||
SetGreyscaleOrOriginalPalette(gSprites[spriteId].oam.paletteNum + 16, gBattleAnimArgs[1]);
|
||||
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
|
||||
void sub_8114960(u8 taskId)
|
||||
{
|
||||
if (gAnimMoveTurn < 2)
|
||||
gBattleAnimArgs[7] = 0;
|
||||
|
||||
if (gAnimMoveTurn == 2)
|
||||
gBattleAnimArgs[7] = 1;
|
||||
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
|
||||
@@ -20,4 +20,4 @@ const u32 gBerryFixGbaTransferError_Tilemap[] = INCBIN_U32("graphics/berry_fix/g
|
||||
|
||||
const u16 gBerryFixWindow_Pal[] = INCBIN_U16("graphics/berry_fix/window.gbapal");
|
||||
const u32 gBerryFixWindow_Gfx[] = INCBIN_U32("graphics/berry_fix/window.4bpp.lz");
|
||||
const u32 gBerryFixWindow_Tilemap[] = INCBIN_U32("graphics/berry_fix/window.bin.lz");
|
||||
const u32 gBerryFixWindow_Tilemap[] = INCBIN_U32("graphics/berry_fix/window.bin.lz");
|
||||
|
||||
+60
-802
@@ -1,7 +1,40 @@
|
||||
// Maximum value for a female pokemon is 254 (MON_FEMALE) which is 100% female.
|
||||
// 255 (MON_GENDERLESS) is reserved for genderless pokemon.
|
||||
// Maximum value for a female Pokémon is 254 (MON_FEMALE) which is 100% female.
|
||||
// 255 (MON_GENDERLESS) is reserved for genderless Pokémon.
|
||||
#define PERCENT_FEMALE(percent) min(254, ((percent * 255) / 100))
|
||||
|
||||
#define OLD_UNOWN_BASE_STATS \
|
||||
{ \
|
||||
.baseHP = 50, \
|
||||
.baseAttack = 150, \
|
||||
.baseDefense = 50, \
|
||||
.baseSpAttack = 150, \
|
||||
.baseSpDefense = 50, \
|
||||
.baseSpeed = 150, \
|
||||
.type1 = TYPE_NORMAL, \
|
||||
.type2 = TYPE_NORMAL, \
|
||||
.catchRate = 3, \
|
||||
.expYield = 1, \
|
||||
.evYield_HP = 2, \
|
||||
.evYield_Attack = 2, \
|
||||
.evYield_Defense = 2, \
|
||||
.evYield_Speed = 2, \
|
||||
.evYield_SpAttack = 2, \
|
||||
.evYield_SpDefense = 2, \
|
||||
.item1 = ITEM_NONE, \
|
||||
.item2 = ITEM_NONE, \
|
||||
.genderRatio = MON_GENDERLESS, \
|
||||
.eggCycles = 120, \
|
||||
.friendship = 0, \
|
||||
.growthRate = GROWTH_MEDIUM_FAST, \
|
||||
.eggGroup1 = EGG_GROUP_UNDISCOVERED,\
|
||||
.eggGroup2 = EGG_GROUP_UNDISCOVERED,\
|
||||
.ability1 = ABILITY_NONE, \
|
||||
.ability2 = ABILITY_NONE, \
|
||||
.safariZoneFleeRate = 0, \
|
||||
.bodyColor = BODY_COLOR_BLACK, \
|
||||
.noFlip = FALSE, \
|
||||
}
|
||||
|
||||
const struct BaseStats gBaseStats[] =
|
||||
{
|
||||
[SPECIES_NONE] = {0},
|
||||
@@ -8289,830 +8322,55 @@ const struct BaseStats gBaseStats[] =
|
||||
.noFlip = FALSE,
|
||||
},
|
||||
|
||||
[SPECIES_OLD_UNOWN_B] =
|
||||
{
|
||||
.baseHP = 50,
|
||||
.baseAttack = 150,
|
||||
.baseDefense = 50,
|
||||
.baseSpeed = 150,
|
||||
.baseSpAttack = 150,
|
||||
.baseSpDefense = 50,
|
||||
.type1 = TYPE_NORMAL,
|
||||
.type2 = TYPE_NORMAL,
|
||||
.catchRate = 3,
|
||||
.expYield = 1,
|
||||
.evYield_HP = 2,
|
||||
.evYield_Attack = 2,
|
||||
.evYield_Defense = 2,
|
||||
.evYield_Speed = 2,
|
||||
.evYield_SpAttack = 2,
|
||||
.evYield_SpDefense = 2,
|
||||
.item1 = ITEM_NONE,
|
||||
.item2 = ITEM_NONE,
|
||||
.genderRatio = MON_GENDERLESS,
|
||||
.eggCycles = 120,
|
||||
.friendship = 0,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroup1 = EGG_GROUP_UNDISCOVERED,
|
||||
.eggGroup2 = EGG_GROUP_UNDISCOVERED,
|
||||
.ability1 = ABILITY_NONE,
|
||||
.ability2 = ABILITY_NONE,
|
||||
.safariZoneFleeRate = 0,
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.noFlip = FALSE,
|
||||
},
|
||||
[SPECIES_OLD_UNOWN_B] = OLD_UNOWN_BASE_STATS,
|
||||
|
||||
[SPECIES_OLD_UNOWN_C] =
|
||||
{
|
||||
.baseHP = 50,
|
||||
.baseAttack = 150,
|
||||
.baseDefense = 50,
|
||||
.baseSpeed = 150,
|
||||
.baseSpAttack = 150,
|
||||
.baseSpDefense = 50,
|
||||
.type1 = TYPE_NORMAL,
|
||||
.type2 = TYPE_NORMAL,
|
||||
.catchRate = 3,
|
||||
.expYield = 1,
|
||||
.evYield_HP = 2,
|
||||
.evYield_Attack = 2,
|
||||
.evYield_Defense = 2,
|
||||
.evYield_Speed = 2,
|
||||
.evYield_SpAttack = 2,
|
||||
.evYield_SpDefense = 2,
|
||||
.item1 = ITEM_NONE,
|
||||
.item2 = ITEM_NONE,
|
||||
.genderRatio = MON_GENDERLESS,
|
||||
.eggCycles = 120,
|
||||
.friendship = 0,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroup1 = EGG_GROUP_UNDISCOVERED,
|
||||
.eggGroup2 = EGG_GROUP_UNDISCOVERED,
|
||||
.ability1 = ABILITY_NONE,
|
||||
.ability2 = ABILITY_NONE,
|
||||
.safariZoneFleeRate = 0,
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.noFlip = FALSE,
|
||||
},
|
||||
[SPECIES_OLD_UNOWN_C] = OLD_UNOWN_BASE_STATS,
|
||||
|
||||
[SPECIES_OLD_UNOWN_D] =
|
||||
{
|
||||
.baseHP = 50,
|
||||
.baseAttack = 150,
|
||||
.baseDefense = 50,
|
||||
.baseSpeed = 150,
|
||||
.baseSpAttack = 150,
|
||||
.baseSpDefense = 50,
|
||||
.type1 = TYPE_NORMAL,
|
||||
.type2 = TYPE_NORMAL,
|
||||
.catchRate = 3,
|
||||
.expYield = 1,
|
||||
.evYield_HP = 2,
|
||||
.evYield_Attack = 2,
|
||||
.evYield_Defense = 2,
|
||||
.evYield_Speed = 2,
|
||||
.evYield_SpAttack = 2,
|
||||
.evYield_SpDefense = 2,
|
||||
.item1 = ITEM_NONE,
|
||||
.item2 = ITEM_NONE,
|
||||
.genderRatio = MON_GENDERLESS,
|
||||
.eggCycles = 120,
|
||||
.friendship = 0,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroup1 = EGG_GROUP_UNDISCOVERED,
|
||||
.eggGroup2 = EGG_GROUP_UNDISCOVERED,
|
||||
.ability1 = ABILITY_NONE,
|
||||
.ability2 = ABILITY_NONE,
|
||||
.safariZoneFleeRate = 0,
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.noFlip = FALSE,
|
||||
},
|
||||
[SPECIES_OLD_UNOWN_D] = OLD_UNOWN_BASE_STATS,
|
||||
|
||||
[SPECIES_OLD_UNOWN_E] =
|
||||
{
|
||||
.baseHP = 50,
|
||||
.baseAttack = 150,
|
||||
.baseDefense = 50,
|
||||
.baseSpeed = 150,
|
||||
.baseSpAttack = 150,
|
||||
.baseSpDefense = 50,
|
||||
.type1 = TYPE_NORMAL,
|
||||
.type2 = TYPE_NORMAL,
|
||||
.catchRate = 3,
|
||||
.expYield = 1,
|
||||
.evYield_HP = 2,
|
||||
.evYield_Attack = 2,
|
||||
.evYield_Defense = 2,
|
||||
.evYield_Speed = 2,
|
||||
.evYield_SpAttack = 2,
|
||||
.evYield_SpDefense = 2,
|
||||
.item1 = ITEM_NONE,
|
||||
.item2 = ITEM_NONE,
|
||||
.genderRatio = MON_GENDERLESS,
|
||||
.eggCycles = 120,
|
||||
.friendship = 0,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroup1 = EGG_GROUP_UNDISCOVERED,
|
||||
.eggGroup2 = EGG_GROUP_UNDISCOVERED,
|
||||
.ability1 = ABILITY_NONE,
|
||||
.ability2 = ABILITY_NONE,
|
||||
.safariZoneFleeRate = 0,
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.noFlip = FALSE,
|
||||
},
|
||||
[SPECIES_OLD_UNOWN_E] = OLD_UNOWN_BASE_STATS,
|
||||
|
||||
[SPECIES_OLD_UNOWN_F] =
|
||||
{
|
||||
.baseHP = 50,
|
||||
.baseAttack = 150,
|
||||
.baseDefense = 50,
|
||||
.baseSpeed = 150,
|
||||
.baseSpAttack = 150,
|
||||
.baseSpDefense = 50,
|
||||
.type1 = TYPE_NORMAL,
|
||||
.type2 = TYPE_NORMAL,
|
||||
.catchRate = 3,
|
||||
.expYield = 1,
|
||||
.evYield_HP = 2,
|
||||
.evYield_Attack = 2,
|
||||
.evYield_Defense = 2,
|
||||
.evYield_Speed = 2,
|
||||
.evYield_SpAttack = 2,
|
||||
.evYield_SpDefense = 2,
|
||||
.item1 = ITEM_NONE,
|
||||
.item2 = ITEM_NONE,
|
||||
.genderRatio = MON_GENDERLESS,
|
||||
.eggCycles = 120,
|
||||
.friendship = 0,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroup1 = EGG_GROUP_UNDISCOVERED,
|
||||
.eggGroup2 = EGG_GROUP_UNDISCOVERED,
|
||||
.ability1 = ABILITY_NONE,
|
||||
.ability2 = ABILITY_NONE,
|
||||
.safariZoneFleeRate = 0,
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.noFlip = FALSE,
|
||||
},
|
||||
[SPECIES_OLD_UNOWN_F] = OLD_UNOWN_BASE_STATS,
|
||||
|
||||
[SPECIES_OLD_UNOWN_G] =
|
||||
{
|
||||
.baseHP = 50,
|
||||
.baseAttack = 150,
|
||||
.baseDefense = 50,
|
||||
.baseSpeed = 150,
|
||||
.baseSpAttack = 150,
|
||||
.baseSpDefense = 50,
|
||||
.type1 = TYPE_NORMAL,
|
||||
.type2 = TYPE_NORMAL,
|
||||
.catchRate = 3,
|
||||
.expYield = 1,
|
||||
.evYield_HP = 2,
|
||||
.evYield_Attack = 2,
|
||||
.evYield_Defense = 2,
|
||||
.evYield_Speed = 2,
|
||||
.evYield_SpAttack = 2,
|
||||
.evYield_SpDefense = 2,
|
||||
.item1 = ITEM_NONE,
|
||||
.item2 = ITEM_NONE,
|
||||
.genderRatio = MON_GENDERLESS,
|
||||
.eggCycles = 120,
|
||||
.friendship = 0,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroup1 = EGG_GROUP_UNDISCOVERED,
|
||||
.eggGroup2 = EGG_GROUP_UNDISCOVERED,
|
||||
.ability1 = ABILITY_NONE,
|
||||
.ability2 = ABILITY_NONE,
|
||||
.safariZoneFleeRate = 0,
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.noFlip = FALSE,
|
||||
},
|
||||
[SPECIES_OLD_UNOWN_G] = OLD_UNOWN_BASE_STATS,
|
||||
|
||||
[SPECIES_OLD_UNOWN_H] =
|
||||
{
|
||||
.baseHP = 50,
|
||||
.baseAttack = 150,
|
||||
.baseDefense = 50,
|
||||
.baseSpeed = 150,
|
||||
.baseSpAttack = 150,
|
||||
.baseSpDefense = 50,
|
||||
.type1 = TYPE_NORMAL,
|
||||
.type2 = TYPE_NORMAL,
|
||||
.catchRate = 3,
|
||||
.expYield = 1,
|
||||
.evYield_HP = 2,
|
||||
.evYield_Attack = 2,
|
||||
.evYield_Defense = 2,
|
||||
.evYield_Speed = 2,
|
||||
.evYield_SpAttack = 2,
|
||||
.evYield_SpDefense = 2,
|
||||
.item1 = ITEM_NONE,
|
||||
.item2 = ITEM_NONE,
|
||||
.genderRatio = MON_GENDERLESS,
|
||||
.eggCycles = 120,
|
||||
.friendship = 0,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroup1 = EGG_GROUP_UNDISCOVERED,
|
||||
.eggGroup2 = EGG_GROUP_UNDISCOVERED,
|
||||
.ability1 = ABILITY_NONE,
|
||||
.ability2 = ABILITY_NONE,
|
||||
.safariZoneFleeRate = 0,
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.noFlip = FALSE,
|
||||
},
|
||||
[SPECIES_OLD_UNOWN_H] = OLD_UNOWN_BASE_STATS,
|
||||
|
||||
[SPECIES_OLD_UNOWN_I] =
|
||||
{
|
||||
.baseHP = 50,
|
||||
.baseAttack = 150,
|
||||
.baseDefense = 50,
|
||||
.baseSpeed = 150,
|
||||
.baseSpAttack = 150,
|
||||
.baseSpDefense = 50,
|
||||
.type1 = TYPE_NORMAL,
|
||||
.type2 = TYPE_NORMAL,
|
||||
.catchRate = 3,
|
||||
.expYield = 1,
|
||||
.evYield_HP = 2,
|
||||
.evYield_Attack = 2,
|
||||
.evYield_Defense = 2,
|
||||
.evYield_Speed = 2,
|
||||
.evYield_SpAttack = 2,
|
||||
.evYield_SpDefense = 2,
|
||||
.item1 = ITEM_NONE,
|
||||
.item2 = ITEM_NONE,
|
||||
.genderRatio = MON_GENDERLESS,
|
||||
.eggCycles = 120,
|
||||
.friendship = 0,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroup1 = EGG_GROUP_UNDISCOVERED,
|
||||
.eggGroup2 = EGG_GROUP_UNDISCOVERED,
|
||||
.ability1 = ABILITY_NONE,
|
||||
.ability2 = ABILITY_NONE,
|
||||
.safariZoneFleeRate = 0,
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.noFlip = FALSE,
|
||||
},
|
||||
[SPECIES_OLD_UNOWN_I] = OLD_UNOWN_BASE_STATS,
|
||||
|
||||
[SPECIES_OLD_UNOWN_J] =
|
||||
{
|
||||
.baseHP = 50,
|
||||
.baseAttack = 150,
|
||||
.baseDefense = 50,
|
||||
.baseSpeed = 150,
|
||||
.baseSpAttack = 150,
|
||||
.baseSpDefense = 50,
|
||||
.type1 = TYPE_NORMAL,
|
||||
.type2 = TYPE_NORMAL,
|
||||
.catchRate = 3,
|
||||
.expYield = 1,
|
||||
.evYield_HP = 2,
|
||||
.evYield_Attack = 2,
|
||||
.evYield_Defense = 2,
|
||||
.evYield_Speed = 2,
|
||||
.evYield_SpAttack = 2,
|
||||
.evYield_SpDefense = 2,
|
||||
.item1 = ITEM_NONE,
|
||||
.item2 = ITEM_NONE,
|
||||
.genderRatio = MON_GENDERLESS,
|
||||
.eggCycles = 120,
|
||||
.friendship = 0,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroup1 = EGG_GROUP_UNDISCOVERED,
|
||||
.eggGroup2 = EGG_GROUP_UNDISCOVERED,
|
||||
.ability1 = ABILITY_NONE,
|
||||
.ability2 = ABILITY_NONE,
|
||||
.safariZoneFleeRate = 0,
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.noFlip = FALSE,
|
||||
},
|
||||
[SPECIES_OLD_UNOWN_J] = OLD_UNOWN_BASE_STATS,
|
||||
|
||||
[SPECIES_OLD_UNOWN_K] =
|
||||
{
|
||||
.baseHP = 50,
|
||||
.baseAttack = 150,
|
||||
.baseDefense = 50,
|
||||
.baseSpeed = 150,
|
||||
.baseSpAttack = 150,
|
||||
.baseSpDefense = 50,
|
||||
.type1 = TYPE_NORMAL,
|
||||
.type2 = TYPE_NORMAL,
|
||||
.catchRate = 3,
|
||||
.expYield = 1,
|
||||
.evYield_HP = 2,
|
||||
.evYield_Attack = 2,
|
||||
.evYield_Defense = 2,
|
||||
.evYield_Speed = 2,
|
||||
.evYield_SpAttack = 2,
|
||||
.evYield_SpDefense = 2,
|
||||
.item1 = ITEM_NONE,
|
||||
.item2 = ITEM_NONE,
|
||||
.genderRatio = MON_GENDERLESS,
|
||||
.eggCycles = 120,
|
||||
.friendship = 0,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroup1 = EGG_GROUP_UNDISCOVERED,
|
||||
.eggGroup2 = EGG_GROUP_UNDISCOVERED,
|
||||
.ability1 = ABILITY_NONE,
|
||||
.ability2 = ABILITY_NONE,
|
||||
.safariZoneFleeRate = 0,
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.noFlip = FALSE,
|
||||
},
|
||||
[SPECIES_OLD_UNOWN_K] = OLD_UNOWN_BASE_STATS,
|
||||
|
||||
[SPECIES_OLD_UNOWN_L] =
|
||||
{
|
||||
.baseHP = 50,
|
||||
.baseAttack = 150,
|
||||
.baseDefense = 50,
|
||||
.baseSpeed = 150,
|
||||
.baseSpAttack = 150,
|
||||
.baseSpDefense = 50,
|
||||
.type1 = TYPE_NORMAL,
|
||||
.type2 = TYPE_NORMAL,
|
||||
.catchRate = 3,
|
||||
.expYield = 1,
|
||||
.evYield_HP = 2,
|
||||
.evYield_Attack = 2,
|
||||
.evYield_Defense = 2,
|
||||
.evYield_Speed = 2,
|
||||
.evYield_SpAttack = 2,
|
||||
.evYield_SpDefense = 2,
|
||||
.item1 = ITEM_NONE,
|
||||
.item2 = ITEM_NONE,
|
||||
.genderRatio = MON_GENDERLESS,
|
||||
.eggCycles = 120,
|
||||
.friendship = 0,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroup1 = EGG_GROUP_UNDISCOVERED,
|
||||
.eggGroup2 = EGG_GROUP_UNDISCOVERED,
|
||||
.ability1 = ABILITY_NONE,
|
||||
.ability2 = ABILITY_NONE,
|
||||
.safariZoneFleeRate = 0,
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.noFlip = FALSE,
|
||||
},
|
||||
[SPECIES_OLD_UNOWN_L] = OLD_UNOWN_BASE_STATS,
|
||||
|
||||
[SPECIES_OLD_UNOWN_M] =
|
||||
{
|
||||
.baseHP = 50,
|
||||
.baseAttack = 150,
|
||||
.baseDefense = 50,
|
||||
.baseSpeed = 150,
|
||||
.baseSpAttack = 150,
|
||||
.baseSpDefense = 50,
|
||||
.type1 = TYPE_NORMAL,
|
||||
.type2 = TYPE_NORMAL,
|
||||
.catchRate = 3,
|
||||
.expYield = 1,
|
||||
.evYield_HP = 2,
|
||||
.evYield_Attack = 2,
|
||||
.evYield_Defense = 2,
|
||||
.evYield_Speed = 2,
|
||||
.evYield_SpAttack = 2,
|
||||
.evYield_SpDefense = 2,
|
||||
.item1 = ITEM_NONE,
|
||||
.item2 = ITEM_NONE,
|
||||
.genderRatio = MON_GENDERLESS,
|
||||
.eggCycles = 120,
|
||||
.friendship = 0,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroup1 = EGG_GROUP_UNDISCOVERED,
|
||||
.eggGroup2 = EGG_GROUP_UNDISCOVERED,
|
||||
.ability1 = ABILITY_NONE,
|
||||
.ability2 = ABILITY_NONE,
|
||||
.safariZoneFleeRate = 0,
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.noFlip = FALSE,
|
||||
},
|
||||
[SPECIES_OLD_UNOWN_M] = OLD_UNOWN_BASE_STATS,
|
||||
|
||||
[SPECIES_OLD_UNOWN_N] =
|
||||
{
|
||||
.baseHP = 50,
|
||||
.baseAttack = 150,
|
||||
.baseDefense = 50,
|
||||
.baseSpeed = 150,
|
||||
.baseSpAttack = 150,
|
||||
.baseSpDefense = 50,
|
||||
.type1 = TYPE_NORMAL,
|
||||
.type2 = TYPE_NORMAL,
|
||||
.catchRate = 3,
|
||||
.expYield = 1,
|
||||
.evYield_HP = 2,
|
||||
.evYield_Attack = 2,
|
||||
.evYield_Defense = 2,
|
||||
.evYield_Speed = 2,
|
||||
.evYield_SpAttack = 2,
|
||||
.evYield_SpDefense = 2,
|
||||
.item1 = ITEM_NONE,
|
||||
.item2 = ITEM_NONE,
|
||||
.genderRatio = MON_GENDERLESS,
|
||||
.eggCycles = 120,
|
||||
.friendship = 0,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroup1 = EGG_GROUP_UNDISCOVERED,
|
||||
.eggGroup2 = EGG_GROUP_UNDISCOVERED,
|
||||
.ability1 = ABILITY_NONE,
|
||||
.ability2 = ABILITY_NONE,
|
||||
.safariZoneFleeRate = 0,
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.noFlip = FALSE,
|
||||
},
|
||||
[SPECIES_OLD_UNOWN_N] = OLD_UNOWN_BASE_STATS,
|
||||
|
||||
[SPECIES_OLD_UNOWN_O] =
|
||||
{
|
||||
.baseHP = 50,
|
||||
.baseAttack = 150,
|
||||
.baseDefense = 50,
|
||||
.baseSpeed = 150,
|
||||
.baseSpAttack = 150,
|
||||
.baseSpDefense = 50,
|
||||
.type1 = TYPE_NORMAL,
|
||||
.type2 = TYPE_NORMAL,
|
||||
.catchRate = 3,
|
||||
.expYield = 1,
|
||||
.evYield_HP = 2,
|
||||
.evYield_Attack = 2,
|
||||
.evYield_Defense = 2,
|
||||
.evYield_Speed = 2,
|
||||
.evYield_SpAttack = 2,
|
||||
.evYield_SpDefense = 2,
|
||||
.item1 = ITEM_NONE,
|
||||
.item2 = ITEM_NONE,
|
||||
.genderRatio = MON_GENDERLESS,
|
||||
.eggCycles = 120,
|
||||
.friendship = 0,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroup1 = EGG_GROUP_UNDISCOVERED,
|
||||
.eggGroup2 = EGG_GROUP_UNDISCOVERED,
|
||||
.ability1 = ABILITY_NONE,
|
||||
.ability2 = ABILITY_NONE,
|
||||
.safariZoneFleeRate = 0,
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.noFlip = FALSE,
|
||||
},
|
||||
[SPECIES_OLD_UNOWN_O] = OLD_UNOWN_BASE_STATS,
|
||||
|
||||
[SPECIES_OLD_UNOWN_P] =
|
||||
{
|
||||
.baseHP = 50,
|
||||
.baseAttack = 150,
|
||||
.baseDefense = 50,
|
||||
.baseSpeed = 150,
|
||||
.baseSpAttack = 150,
|
||||
.baseSpDefense = 50,
|
||||
.type1 = TYPE_NORMAL,
|
||||
.type2 = TYPE_NORMAL,
|
||||
.catchRate = 3,
|
||||
.expYield = 1,
|
||||
.evYield_HP = 2,
|
||||
.evYield_Attack = 2,
|
||||
.evYield_Defense = 2,
|
||||
.evYield_Speed = 2,
|
||||
.evYield_SpAttack = 2,
|
||||
.evYield_SpDefense = 2,
|
||||
.item1 = ITEM_NONE,
|
||||
.item2 = ITEM_NONE,
|
||||
.genderRatio = MON_GENDERLESS,
|
||||
.eggCycles = 120,
|
||||
.friendship = 0,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroup1 = EGG_GROUP_UNDISCOVERED,
|
||||
.eggGroup2 = EGG_GROUP_UNDISCOVERED,
|
||||
.ability1 = ABILITY_NONE,
|
||||
.ability2 = ABILITY_NONE,
|
||||
.safariZoneFleeRate = 0,
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.noFlip = FALSE,
|
||||
},
|
||||
[SPECIES_OLD_UNOWN_P] = OLD_UNOWN_BASE_STATS,
|
||||
|
||||
[SPECIES_OLD_UNOWN_Q] =
|
||||
{
|
||||
.baseHP = 50,
|
||||
.baseAttack = 150,
|
||||
.baseDefense = 50,
|
||||
.baseSpeed = 150,
|
||||
.baseSpAttack = 150,
|
||||
.baseSpDefense = 50,
|
||||
.type1 = TYPE_NORMAL,
|
||||
.type2 = TYPE_NORMAL,
|
||||
.catchRate = 3,
|
||||
.expYield = 1,
|
||||
.evYield_HP = 2,
|
||||
.evYield_Attack = 2,
|
||||
.evYield_Defense = 2,
|
||||
.evYield_Speed = 2,
|
||||
.evYield_SpAttack = 2,
|
||||
.evYield_SpDefense = 2,
|
||||
.item1 = ITEM_NONE,
|
||||
.item2 = ITEM_NONE,
|
||||
.genderRatio = MON_GENDERLESS,
|
||||
.eggCycles = 120,
|
||||
.friendship = 0,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroup1 = EGG_GROUP_UNDISCOVERED,
|
||||
.eggGroup2 = EGG_GROUP_UNDISCOVERED,
|
||||
.ability1 = ABILITY_NONE,
|
||||
.ability2 = ABILITY_NONE,
|
||||
.safariZoneFleeRate = 0,
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.noFlip = FALSE,
|
||||
},
|
||||
[SPECIES_OLD_UNOWN_Q] = OLD_UNOWN_BASE_STATS,
|
||||
|
||||
[SPECIES_OLD_UNOWN_R] =
|
||||
{
|
||||
.baseHP = 50,
|
||||
.baseAttack = 150,
|
||||
.baseDefense = 50,
|
||||
.baseSpeed = 150,
|
||||
.baseSpAttack = 150,
|
||||
.baseSpDefense = 50,
|
||||
.type1 = TYPE_NORMAL,
|
||||
.type2 = TYPE_NORMAL,
|
||||
.catchRate = 3,
|
||||
.expYield = 1,
|
||||
.evYield_HP = 2,
|
||||
.evYield_Attack = 2,
|
||||
.evYield_Defense = 2,
|
||||
.evYield_Speed = 2,
|
||||
.evYield_SpAttack = 2,
|
||||
.evYield_SpDefense = 2,
|
||||
.item1 = ITEM_NONE,
|
||||
.item2 = ITEM_NONE,
|
||||
.genderRatio = MON_GENDERLESS,
|
||||
.eggCycles = 120,
|
||||
.friendship = 0,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroup1 = EGG_GROUP_UNDISCOVERED,
|
||||
.eggGroup2 = EGG_GROUP_UNDISCOVERED,
|
||||
.ability1 = ABILITY_NONE,
|
||||
.ability2 = ABILITY_NONE,
|
||||
.safariZoneFleeRate = 0,
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.noFlip = FALSE,
|
||||
},
|
||||
[SPECIES_OLD_UNOWN_R] = OLD_UNOWN_BASE_STATS,
|
||||
|
||||
[SPECIES_OLD_UNOWN_S] =
|
||||
{
|
||||
.baseHP = 50,
|
||||
.baseAttack = 150,
|
||||
.baseDefense = 50,
|
||||
.baseSpeed = 150,
|
||||
.baseSpAttack = 150,
|
||||
.baseSpDefense = 50,
|
||||
.type1 = TYPE_NORMAL,
|
||||
.type2 = TYPE_NORMAL,
|
||||
.catchRate = 3,
|
||||
.expYield = 1,
|
||||
.evYield_HP = 2,
|
||||
.evYield_Attack = 2,
|
||||
.evYield_Defense = 2,
|
||||
.evYield_Speed = 2,
|
||||
.evYield_SpAttack = 2,
|
||||
.evYield_SpDefense = 2,
|
||||
.item1 = ITEM_NONE,
|
||||
.item2 = ITEM_NONE,
|
||||
.genderRatio = MON_GENDERLESS,
|
||||
.eggCycles = 120,
|
||||
.friendship = 0,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroup1 = EGG_GROUP_UNDISCOVERED,
|
||||
.eggGroup2 = EGG_GROUP_UNDISCOVERED,
|
||||
.ability1 = ABILITY_NONE,
|
||||
.ability2 = ABILITY_NONE,
|
||||
.safariZoneFleeRate = 0,
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.noFlip = FALSE,
|
||||
},
|
||||
[SPECIES_OLD_UNOWN_S] = OLD_UNOWN_BASE_STATS,
|
||||
|
||||
[SPECIES_OLD_UNOWN_T] =
|
||||
{
|
||||
.baseHP = 50,
|
||||
.baseAttack = 150,
|
||||
.baseDefense = 50,
|
||||
.baseSpeed = 150,
|
||||
.baseSpAttack = 150,
|
||||
.baseSpDefense = 50,
|
||||
.type1 = TYPE_NORMAL,
|
||||
.type2 = TYPE_NORMAL,
|
||||
.catchRate = 3,
|
||||
.expYield = 1,
|
||||
.evYield_HP = 2,
|
||||
.evYield_Attack = 2,
|
||||
.evYield_Defense = 2,
|
||||
.evYield_Speed = 2,
|
||||
.evYield_SpAttack = 2,
|
||||
.evYield_SpDefense = 2,
|
||||
.item1 = ITEM_NONE,
|
||||
.item2 = ITEM_NONE,
|
||||
.genderRatio = MON_GENDERLESS,
|
||||
.eggCycles = 120,
|
||||
.friendship = 0,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroup1 = EGG_GROUP_UNDISCOVERED,
|
||||
.eggGroup2 = EGG_GROUP_UNDISCOVERED,
|
||||
.ability1 = ABILITY_NONE,
|
||||
.ability2 = ABILITY_NONE,
|
||||
.safariZoneFleeRate = 0,
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.noFlip = FALSE,
|
||||
},
|
||||
[SPECIES_OLD_UNOWN_T] = OLD_UNOWN_BASE_STATS,
|
||||
|
||||
[SPECIES_OLD_UNOWN_U] =
|
||||
{
|
||||
.baseHP = 50,
|
||||
.baseAttack = 150,
|
||||
.baseDefense = 50,
|
||||
.baseSpeed = 150,
|
||||
.baseSpAttack = 150,
|
||||
.baseSpDefense = 50,
|
||||
.type1 = TYPE_NORMAL,
|
||||
.type2 = TYPE_NORMAL,
|
||||
.catchRate = 3,
|
||||
.expYield = 1,
|
||||
.evYield_HP = 2,
|
||||
.evYield_Attack = 2,
|
||||
.evYield_Defense = 2,
|
||||
.evYield_Speed = 2,
|
||||
.evYield_SpAttack = 2,
|
||||
.evYield_SpDefense = 2,
|
||||
.item1 = ITEM_NONE,
|
||||
.item2 = ITEM_NONE,
|
||||
.genderRatio = MON_GENDERLESS,
|
||||
.eggCycles = 120,
|
||||
.friendship = 0,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroup1 = EGG_GROUP_UNDISCOVERED,
|
||||
.eggGroup2 = EGG_GROUP_UNDISCOVERED,
|
||||
.ability1 = ABILITY_NONE,
|
||||
.ability2 = ABILITY_NONE,
|
||||
.safariZoneFleeRate = 0,
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.noFlip = FALSE,
|
||||
},
|
||||
[SPECIES_OLD_UNOWN_U] = OLD_UNOWN_BASE_STATS,
|
||||
|
||||
[SPECIES_OLD_UNOWN_V] =
|
||||
{
|
||||
.baseHP = 50,
|
||||
.baseAttack = 150,
|
||||
.baseDefense = 50,
|
||||
.baseSpeed = 150,
|
||||
.baseSpAttack = 150,
|
||||
.baseSpDefense = 50,
|
||||
.type1 = TYPE_NORMAL,
|
||||
.type2 = TYPE_NORMAL,
|
||||
.catchRate = 3,
|
||||
.expYield = 1,
|
||||
.evYield_HP = 2,
|
||||
.evYield_Attack = 2,
|
||||
.evYield_Defense = 2,
|
||||
.evYield_Speed = 2,
|
||||
.evYield_SpAttack = 2,
|
||||
.evYield_SpDefense = 2,
|
||||
.item1 = ITEM_NONE,
|
||||
.item2 = ITEM_NONE,
|
||||
.genderRatio = MON_GENDERLESS,
|
||||
.eggCycles = 120,
|
||||
.friendship = 0,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroup1 = EGG_GROUP_UNDISCOVERED,
|
||||
.eggGroup2 = EGG_GROUP_UNDISCOVERED,
|
||||
.ability1 = ABILITY_NONE,
|
||||
.ability2 = ABILITY_NONE,
|
||||
.safariZoneFleeRate = 0,
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.noFlip = FALSE,
|
||||
},
|
||||
[SPECIES_OLD_UNOWN_V] = OLD_UNOWN_BASE_STATS,
|
||||
|
||||
[SPECIES_OLD_UNOWN_W] =
|
||||
{
|
||||
.baseHP = 50,
|
||||
.baseAttack = 150,
|
||||
.baseDefense = 50,
|
||||
.baseSpeed = 150,
|
||||
.baseSpAttack = 150,
|
||||
.baseSpDefense = 50,
|
||||
.type1 = TYPE_NORMAL,
|
||||
.type2 = TYPE_NORMAL,
|
||||
.catchRate = 3,
|
||||
.expYield = 1,
|
||||
.evYield_HP = 2,
|
||||
.evYield_Attack = 2,
|
||||
.evYield_Defense = 2,
|
||||
.evYield_Speed = 2,
|
||||
.evYield_SpAttack = 2,
|
||||
.evYield_SpDefense = 2,
|
||||
.item1 = ITEM_NONE,
|
||||
.item2 = ITEM_NONE,
|
||||
.genderRatio = MON_GENDERLESS,
|
||||
.eggCycles = 120,
|
||||
.friendship = 0,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroup1 = EGG_GROUP_UNDISCOVERED,
|
||||
.eggGroup2 = EGG_GROUP_UNDISCOVERED,
|
||||
.ability1 = ABILITY_NONE,
|
||||
.ability2 = ABILITY_NONE,
|
||||
.safariZoneFleeRate = 0,
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.noFlip = FALSE,
|
||||
},
|
||||
[SPECIES_OLD_UNOWN_W] = OLD_UNOWN_BASE_STATS,
|
||||
|
||||
[SPECIES_OLD_UNOWN_X] =
|
||||
{
|
||||
.baseHP = 50,
|
||||
.baseAttack = 150,
|
||||
.baseDefense = 50,
|
||||
.baseSpeed = 150,
|
||||
.baseSpAttack = 150,
|
||||
.baseSpDefense = 50,
|
||||
.type1 = TYPE_NORMAL,
|
||||
.type2 = TYPE_NORMAL,
|
||||
.catchRate = 3,
|
||||
.expYield = 1,
|
||||
.evYield_HP = 2,
|
||||
.evYield_Attack = 2,
|
||||
.evYield_Defense = 2,
|
||||
.evYield_Speed = 2,
|
||||
.evYield_SpAttack = 2,
|
||||
.evYield_SpDefense = 2,
|
||||
.item1 = ITEM_NONE,
|
||||
.item2 = ITEM_NONE,
|
||||
.genderRatio = MON_GENDERLESS,
|
||||
.eggCycles = 120,
|
||||
.friendship = 0,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroup1 = EGG_GROUP_UNDISCOVERED,
|
||||
.eggGroup2 = EGG_GROUP_UNDISCOVERED,
|
||||
.ability1 = ABILITY_NONE,
|
||||
.ability2 = ABILITY_NONE,
|
||||
.safariZoneFleeRate = 0,
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.noFlip = FALSE,
|
||||
},
|
||||
[SPECIES_OLD_UNOWN_X] = OLD_UNOWN_BASE_STATS,
|
||||
|
||||
[SPECIES_OLD_UNOWN_Y] =
|
||||
{
|
||||
.baseHP = 50,
|
||||
.baseAttack = 150,
|
||||
.baseDefense = 50,
|
||||
.baseSpeed = 150,
|
||||
.baseSpAttack = 150,
|
||||
.baseSpDefense = 50,
|
||||
.type1 = TYPE_NORMAL,
|
||||
.type2 = TYPE_NORMAL,
|
||||
.catchRate = 3,
|
||||
.expYield = 1,
|
||||
.evYield_HP = 2,
|
||||
.evYield_Attack = 2,
|
||||
.evYield_Defense = 2,
|
||||
.evYield_Speed = 2,
|
||||
.evYield_SpAttack = 2,
|
||||
.evYield_SpDefense = 2,
|
||||
.item1 = ITEM_NONE,
|
||||
.item2 = ITEM_NONE,
|
||||
.genderRatio = MON_GENDERLESS,
|
||||
.eggCycles = 120,
|
||||
.friendship = 0,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroup1 = EGG_GROUP_UNDISCOVERED,
|
||||
.eggGroup2 = EGG_GROUP_UNDISCOVERED,
|
||||
.ability1 = ABILITY_NONE,
|
||||
.ability2 = ABILITY_NONE,
|
||||
.safariZoneFleeRate = 0,
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.noFlip = FALSE,
|
||||
},
|
||||
[SPECIES_OLD_UNOWN_Y] = OLD_UNOWN_BASE_STATS,
|
||||
|
||||
[SPECIES_OLD_UNOWN_Z] =
|
||||
{
|
||||
.baseHP = 50,
|
||||
.baseAttack = 150,
|
||||
.baseDefense = 50,
|
||||
.baseSpeed = 150,
|
||||
.baseSpAttack = 150,
|
||||
.baseSpDefense = 50,
|
||||
.type1 = TYPE_NORMAL,
|
||||
.type2 = TYPE_NORMAL,
|
||||
.catchRate = 3,
|
||||
.expYield = 1,
|
||||
.evYield_HP = 2,
|
||||
.evYield_Attack = 2,
|
||||
.evYield_Defense = 2,
|
||||
.evYield_Speed = 2,
|
||||
.evYield_SpAttack = 2,
|
||||
.evYield_SpDefense = 2,
|
||||
.item1 = ITEM_NONE,
|
||||
.item2 = ITEM_NONE,
|
||||
.genderRatio = MON_GENDERLESS,
|
||||
.eggCycles = 120,
|
||||
.friendship = 0,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroup1 = EGG_GROUP_UNDISCOVERED,
|
||||
.eggGroup2 = EGG_GROUP_UNDISCOVERED,
|
||||
.ability1 = ABILITY_NONE,
|
||||
.ability2 = ABILITY_NONE,
|
||||
.safariZoneFleeRate = 0,
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.noFlip = FALSE,
|
||||
},
|
||||
[SPECIES_OLD_UNOWN_Z] = OLD_UNOWN_BASE_STATS,
|
||||
|
||||
[SPECIES_TREECKO] =
|
||||
{
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+4
-21
@@ -16,33 +16,16 @@
|
||||
#include "menu.h"
|
||||
#include "international_string_util.h"
|
||||
#include "script.h"
|
||||
#include "strings.h"
|
||||
#include "task.h"
|
||||
#include "window.h"
|
||||
#include "party_menu.h"
|
||||
#include "list_menu.h"
|
||||
#include "overworld.h"
|
||||
|
||||
#define EGG_MOVES_ARRAY_COUNT 10
|
||||
#define EGG_LVL_UP_MOVES_ARRAY_COUNT 50
|
||||
|
||||
// text
|
||||
extern const u8 gText_MaleSymbol4[];
|
||||
extern const u8 gText_FemaleSymbol4[];
|
||||
extern const u8 gText_GenderlessSymbol[];
|
||||
extern const u8 gText_NewLine2[];
|
||||
extern const u8 gText_Exit4[];
|
||||
extern const u8 gText_Lv[];
|
||||
extern const u8 gExpandedPlaceholder_Empty[];
|
||||
extern const u8 gText_Exit[];
|
||||
extern const u8 gDaycareText_GetAlongVeryWell[];
|
||||
extern const u8 gDaycareText_GetAlong[];
|
||||
extern const u8 gDaycareText_DontLikeOther[];
|
||||
extern const u8 gDaycareText_PlayOther[];
|
||||
|
||||
extern u8 GetCursorSelectionMonId(void);
|
||||
extern u16 ItemIdToBattleMoveId(u16);
|
||||
extern void sub_819746C(u8, bool8);
|
||||
extern void sub_81B9328(void);
|
||||
|
||||
// this file's functions
|
||||
static void ClearDaycareMonMail(struct DayCareMail *mail);
|
||||
static void SetInitialEggData(struct Pokemon *mon, u16 species, struct DayCare *daycare);
|
||||
@@ -901,7 +884,7 @@ static bool8 _DoEggActions_CheckHatch(struct DayCare *daycare)
|
||||
|
||||
for (i = 0; i < DAYCARE_MON_COUNT; i++)
|
||||
{
|
||||
if (GetBoxMonData(&daycare->mons[i].mon, MON_DATA_SANITY_BIT2))
|
||||
if (GetBoxMonData(&daycare->mons[i].mon, MON_DATA_SANITY_HAS_SPECIES))
|
||||
daycare->mons[i].steps++, validEggs++;
|
||||
}
|
||||
|
||||
@@ -922,7 +905,7 @@ static bool8 _DoEggActions_CheckHatch(struct DayCare *daycare)
|
||||
{
|
||||
if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG))
|
||||
continue;
|
||||
if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_BIT1))
|
||||
if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_IS_BAD_EGG))
|
||||
continue;
|
||||
|
||||
steps = GetMonData(&gPlayerParty[i], MON_DATA_FRIENDSHIP);
|
||||
|
||||
+6
-6
@@ -22,7 +22,7 @@ void LZDecompressVram(const u32 *src, void *dest)
|
||||
LZ77UnCompVram(src, dest);
|
||||
}
|
||||
|
||||
u16 LoadCompressedObjectPic(const struct CompressedSpriteSheet *src)
|
||||
u16 LoadCompressedSpriteSheet(const struct CompressedSpriteSheet *src)
|
||||
{
|
||||
struct SpriteSheet dest;
|
||||
|
||||
@@ -33,7 +33,7 @@ u16 LoadCompressedObjectPic(const struct CompressedSpriteSheet *src)
|
||||
return LoadSpriteSheet(&dest);
|
||||
}
|
||||
|
||||
void LoadCompressedObjectPicOverrideBuffer(const struct CompressedSpriteSheet *src, void *buffer)
|
||||
void LoadCompressedSpriteSheetOverrideBuffer(const struct CompressedSpriteSheet *src, void *buffer)
|
||||
{
|
||||
struct SpriteSheet dest;
|
||||
|
||||
@@ -44,7 +44,7 @@ void LoadCompressedObjectPicOverrideBuffer(const struct CompressedSpriteSheet *s
|
||||
LoadSpriteSheet(&dest);
|
||||
}
|
||||
|
||||
void LoadCompressedObjectPalette(const struct CompressedSpritePalette *src)
|
||||
void LoadCompressedSpritePalette(const struct CompressedSpritePalette *src)
|
||||
{
|
||||
struct SpritePalette dest;
|
||||
|
||||
@@ -54,7 +54,7 @@ void LoadCompressedObjectPalette(const struct CompressedSpritePalette *src)
|
||||
LoadSpritePalette(&dest);
|
||||
}
|
||||
|
||||
void LoadCompressedObjectPaletteOverrideBuffer(const struct CompressedSpritePalette *a, void *buffer)
|
||||
void LoadCompressedSpritePaletteOverrideBuffer(const struct CompressedSpritePalette *a, void *buffer)
|
||||
{
|
||||
struct SpritePalette dest;
|
||||
|
||||
@@ -465,7 +465,7 @@ u32 GetDecompressedDataSize(const u32 *ptr)
|
||||
return (ptr8[3] << 16) | (ptr8[2] << 8) | (ptr8[1]);
|
||||
}
|
||||
|
||||
bool8 LoadCompressedObjectPicUsingHeap(const struct CompressedSpriteSheet* src)
|
||||
bool8 LoadCompressedSpriteSheetUsingHeap(const struct CompressedSpriteSheet* src)
|
||||
{
|
||||
struct SpriteSheet dest;
|
||||
void* buffer;
|
||||
@@ -482,7 +482,7 @@ bool8 LoadCompressedObjectPicUsingHeap(const struct CompressedSpriteSheet* src)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 LoadCompressedObjectPaletteUsingHeap(const struct CompressedSpritePalette *src)
|
||||
bool8 LoadCompressedSpritePaletteUsingHeap(const struct CompressedSpritePalette *src)
|
||||
{
|
||||
struct SpritePalette dest;
|
||||
void* buffer;
|
||||
|
||||
+3
-3
@@ -519,7 +519,7 @@ void sub_8126B80(u8 taskId)
|
||||
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
menuPos = GetMenuCursorPos();
|
||||
menuPos = Menu_GetCursorPos();
|
||||
switch (Menu_ProcessInput())
|
||||
{
|
||||
default:
|
||||
@@ -527,7 +527,7 @@ void sub_8126B80(u8 taskId)
|
||||
sSecretBasePCMenuActions[sSecretBasePCMenuCursorPos].func.void_u8(taskId);
|
||||
break;
|
||||
case -2:
|
||||
sSecretBasePCMenuCursorPos = GetMenuCursorPos();
|
||||
sSecretBasePCMenuCursorPos = Menu_GetCursorPos();
|
||||
if ((s8)menuPos != sSecretBasePCMenuCursorPos)
|
||||
{
|
||||
sub_8126C08();
|
||||
@@ -2065,7 +2065,7 @@ u8 AddDecorationIconObjectFromIconTable(u16 tilesTag, u16 paletteTag, u8 decor)
|
||||
LoadSpriteSheet(&sheet);
|
||||
palette.data = GetDecorationIconPicOrPalette(decor, 1);
|
||||
palette.tag = paletteTag;
|
||||
LoadCompressedObjectPalette(&palette);
|
||||
LoadCompressedSpritePalette(&palette);
|
||||
template = malloc(sizeof(struct SpriteTemplate));
|
||||
*template = gItemIconSpriteTemplate;
|
||||
template->tileTag = tilesTag;
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
#include "global.h"
|
||||
#include "dma3.h"
|
||||
|
||||
// Maximum amount of data we will transfer in one operation
|
||||
#define MAX_DMA_BLOCK_SIZE 0x1000
|
||||
|
||||
#define MAX_DMA_REQUESTS 128
|
||||
|
||||
#define DMA_REQUEST_COPY32 1
|
||||
@@ -40,49 +37,6 @@ void ClearDma3Requests(void)
|
||||
gDma3ManagerLocked = FALSE;
|
||||
}
|
||||
|
||||
#define Dma3CopyLarge_(src, dest, size, bit) \
|
||||
{ \
|
||||
const void *_src = src; \
|
||||
void *_dest = dest; \
|
||||
u32 _size = size; \
|
||||
while (1) \
|
||||
{ \
|
||||
if (_size <= MAX_DMA_BLOCK_SIZE) \
|
||||
{ \
|
||||
DmaCopy##bit(3, _src, _dest, _size); \
|
||||
break; \
|
||||
} \
|
||||
DmaCopy##bit(3, _src, _dest, MAX_DMA_BLOCK_SIZE); \
|
||||
_src += MAX_DMA_BLOCK_SIZE; \
|
||||
_dest += MAX_DMA_BLOCK_SIZE; \
|
||||
_size -= MAX_DMA_BLOCK_SIZE; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define Dma3CopyLarge16_(src, dest, size) Dma3CopyLarge_(src, dest, size, 16)
|
||||
#define Dma3CopyLarge32_(src, dest, size) Dma3CopyLarge_(src, dest, size, 32)
|
||||
|
||||
#define Dma3FillLarge_(value, dest, size, bit) \
|
||||
{ \
|
||||
void *_dest = dest; \
|
||||
u32 _size = size; \
|
||||
while (1) \
|
||||
{ \
|
||||
if (_size <= MAX_DMA_BLOCK_SIZE) \
|
||||
{ \
|
||||
DmaFill##bit(3, value, _dest, _size); \
|
||||
break; \
|
||||
} \
|
||||
DmaFill##bit(3, value, _dest, MAX_DMA_BLOCK_SIZE); \
|
||||
_dest += MAX_DMA_BLOCK_SIZE; \
|
||||
_size -= MAX_DMA_BLOCK_SIZE; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define Dma3FillLarge16_(value, dest, size) Dma3FillLarge_(value, dest, size, 16)
|
||||
#define Dma3FillLarge32_(value, dest, size) Dma3FillLarge_(value, dest, size, 32)
|
||||
|
||||
|
||||
void ProcessDma3Requests(void)
|
||||
{
|
||||
u16 bytesTransferred;
|
||||
|
||||
+2
-2
@@ -251,7 +251,7 @@ void sub_81131B4(struct Sprite *sprite)
|
||||
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1);
|
||||
}
|
||||
|
||||
sub_80A6864(sprite, gBattleAnimArgs[1]);
|
||||
SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[1]);
|
||||
sprite->pos1.y += gBattleAnimArgs[2];
|
||||
sprite->callback = RunStoredCallbackWhenAnimEnds;
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
@@ -329,7 +329,7 @@ void sub_81133E8(u8 taskId)
|
||||
struct Task *task = &gTasks[taskId];
|
||||
u16 i;
|
||||
u8 r1;
|
||||
if (sub_80A8364(gBattleAnimAttacker) == 1)
|
||||
if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1)
|
||||
{
|
||||
sp.dmaDest = ®_BG1HOFS;
|
||||
task->data[2] = gBattle_BG1_X;
|
||||
|
||||
+6
-9
@@ -31,6 +31,7 @@
|
||||
#include "field_weather.h"
|
||||
#include "international_string_util.h"
|
||||
#include "naming_screen.h"
|
||||
#include "pokemon_storage_system.h"
|
||||
#include "field_screen_effect.h"
|
||||
#include "battle.h" // to get rid of later
|
||||
|
||||
@@ -56,10 +57,6 @@ extern const u32 gUnknown_08331F60[]; // tilemap gameboy circle
|
||||
extern const u8 gText_HatchedFromEgg[];
|
||||
extern const u8 gText_NickHatchPrompt[];
|
||||
|
||||
extern void PlayRainSoundEffect(void);
|
||||
extern u16 sub_80D22D0(void);
|
||||
extern u8 CountPartyAliveNonEggMonsExcept(u8);
|
||||
|
||||
static void Task_EggHatch(u8 taskID);
|
||||
static void CB2_EggHatch_0(void);
|
||||
static void CB2_EggHatch_1(void);
|
||||
@@ -438,7 +435,7 @@ static u8 EggHatchCreateMonSprite(u8 a0, u8 switchID, u8 pokeID, u16* speciesLoc
|
||||
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species],
|
||||
gMonSpritesGfxPtr->sprites[(a0 * 2) + 1],
|
||||
species, pid);
|
||||
LoadCompressedObjectPalette(GetMonSpritePalStruct(mon));
|
||||
LoadCompressedSpritePalette(GetMonSpritePalStruct(mon));
|
||||
*speciesLoc = species;
|
||||
}
|
||||
break;
|
||||
@@ -872,7 +869,7 @@ u8 GetEggStepsToSubtract(void)
|
||||
u8 count, i;
|
||||
for (count = CalculatePlayerPartyCount(), i = 0; i < count; i++)
|
||||
{
|
||||
if (!GetMonData(&gPlayerParty[i], MON_DATA_SANITY_BIT3))
|
||||
if (!GetMonData(&gPlayerParty[i], MON_DATA_SANITY_IS_EGG))
|
||||
{
|
||||
u8 ability = GetMonAbility(&gPlayerParty[i]);
|
||||
if (ability == ABILITY_MAGMA_ARMOR || ability == ABILITY_FLAME_BODY)
|
||||
@@ -884,7 +881,7 @@ u8 GetEggStepsToSubtract(void)
|
||||
|
||||
u16 sub_80722E0(void)
|
||||
{
|
||||
u16 value = sub_80D22D0();
|
||||
value += CountPartyAliveNonEggMonsExcept(6);
|
||||
return value;
|
||||
u16 aliveNonEggMonsCount = CountStorageNonEggMons();
|
||||
aliveNonEggMonsCount += CountPartyAliveNonEggMonsExcept(6);
|
||||
return aliveNonEggMonsCount;
|
||||
}
|
||||
|
||||
+53
-227
@@ -6,7 +6,6 @@
|
||||
#include "sound.h"
|
||||
|
||||
extern void sub_810E2C8(struct Sprite *);
|
||||
extern bool8 sub_810B614(struct Task *task, u8 taskId);
|
||||
extern void TranslateAnimSpriteToTargetMonLocation(struct Sprite *);
|
||||
|
||||
static void sub_810A1A8(struct Sprite *);
|
||||
@@ -38,6 +37,8 @@ static void sub_810B1F0(struct Sprite *);
|
||||
static void sub_810B23C(struct Sprite *);
|
||||
static bool8 sub_810B430(struct Task *task, u8 taskId);
|
||||
static void sub_810B51C(struct Sprite *);
|
||||
static bool8 sub_810B614(struct Task *task, u8 taskId);
|
||||
static void sub_810B684(struct Sprite *sprite);
|
||||
|
||||
const union AnimCmd gUnknown_085956A4[] =
|
||||
{
|
||||
@@ -462,7 +463,7 @@ static void sub_810A1A8(struct Sprite *sprite)
|
||||
sprite->pos1.x -= gBattleAnimArgs[0];
|
||||
else
|
||||
sprite->pos1.x += gBattleAnimArgs[0];
|
||||
|
||||
|
||||
sprite->pos1.y += gBattleAnimArgs[1];
|
||||
sprite->callback = sub_810A1F8;
|
||||
}
|
||||
@@ -479,7 +480,7 @@ static void sub_810A214(struct Sprite *sprite)
|
||||
sprite->pos1.x -= gBattleAnimArgs[0];
|
||||
else
|
||||
sprite->pos1.x += gBattleAnimArgs[0];
|
||||
|
||||
|
||||
sprite->callback = sub_810A258;
|
||||
}
|
||||
|
||||
@@ -493,7 +494,7 @@ static void sub_810A274(struct Sprite *sprite)
|
||||
{
|
||||
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
|
||||
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
|
||||
|
||||
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
{
|
||||
sprite->pos1.x -= gBattleAnimArgs[0];
|
||||
@@ -556,7 +557,7 @@ static void sub_810A308(struct Sprite *sprite)
|
||||
sprite->pos2.y = (gSineTable[gBattleAnimArgs[0] + 64] * gBattleAnimArgs[1]) >> 8;
|
||||
|
||||
if (gBattleAnimArgs[6] & 1)
|
||||
sprite->oam.priority = sub_80A8328(battler) + 1;
|
||||
sprite->oam.priority = GetBattlerSpriteBGPriority(battler) + 1;
|
||||
|
||||
matrixNum = sprite->oam.matrixNum;
|
||||
sineVal = gSineTable[gBattleAnimArgs[2]];
|
||||
@@ -571,7 +572,7 @@ static void sub_810A308(struct Sprite *sprite)
|
||||
|
||||
static void sub_810A46C(struct Sprite *sprite)
|
||||
{
|
||||
InitAnimSpritePos(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
sprite->data[0] = gBattleAnimArgs[3];
|
||||
sprite->data[1] = sprite->pos1.x;
|
||||
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
|
||||
@@ -588,7 +589,7 @@ static void sub_810A46C(struct Sprite *sprite)
|
||||
|
||||
static void sub_810A4F4(struct Sprite *sprite)
|
||||
{
|
||||
if (!TranslateAnimLinear(sprite))
|
||||
if (!AnimTranslateLinear(sprite))
|
||||
{
|
||||
sprite->pos2.x += Sin(sprite->data[7], sprite->data[5]);
|
||||
sprite->pos2.y += Cos(sprite->data[7], sprite->data[5]);
|
||||
@@ -615,7 +616,7 @@ static void sub_810A5BC(struct Sprite *sprite)
|
||||
{
|
||||
if (IsContest() || GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)
|
||||
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
|
||||
|
||||
|
||||
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[1];
|
||||
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[2];
|
||||
sprite->data[3] = gBattleAnimArgs[0];
|
||||
@@ -665,7 +666,7 @@ static void sub_810A6EC(struct Sprite *sprite)
|
||||
|
||||
static void sub_810A75C(struct Sprite *sprite)
|
||||
{
|
||||
sub_80A6980(sprite, FALSE);
|
||||
InitSpritePosToAnimTarget(sprite, FALSE);
|
||||
sprite->oam.tileNum += gBattleAnimArgs[3] * 4;
|
||||
|
||||
if (gBattleAnimArgs[3] == 1)
|
||||
@@ -686,17 +687,16 @@ void sub_810A7DC(u8 taskId)
|
||||
gTasks[taskId].func = sub_810A834;
|
||||
}
|
||||
|
||||
#ifdef NONMATCHING // couldn't get the proper tail merging in the "CreateSprite" switch cases.(ported from ruby)
|
||||
static void sub_810A834(u8 taskId)
|
||||
{
|
||||
u16 r8;
|
||||
u16 r2;
|
||||
s16 r12;
|
||||
s16 r2;
|
||||
u8 spriteId = 0;
|
||||
u8 r7 = 0;
|
||||
u8 sp = gTasks[taskId].data[2];
|
||||
s16 r4 = gTasks[taskId].data[0];
|
||||
s16 r6 = gTasks[taskId].data[1];
|
||||
s16 x = gTasks[taskId].data[0];
|
||||
s16 y = gTasks[taskId].data[1];
|
||||
|
||||
if (!gTasks[taskId].data[2])
|
||||
{
|
||||
@@ -714,27 +714,31 @@ static void sub_810A834(u8 taskId)
|
||||
switch (gTasks[taskId].data[10])
|
||||
{
|
||||
case 0:
|
||||
r8 += r2 * 0;
|
||||
spriteId = CreateSprite(&gUnknown_08595828, r4, r6 + (r12 * 1), 2);
|
||||
r12 *= 1;
|
||||
spriteId = CreateSprite(&gUnknown_08595828, x, y + r12, 2);
|
||||
r7++;
|
||||
break;
|
||||
case 2:
|
||||
r12 *= 2;
|
||||
r8 += r2;
|
||||
spriteId = CreateSprite(&gUnknown_08595828, r4, r6 + (r12 * 2), 2);
|
||||
spriteId = CreateSprite(&gUnknown_08595828, x, y + r12, 2);
|
||||
r7++;
|
||||
break;
|
||||
case 4:
|
||||
r12 *= 3;
|
||||
r8 += r2 * 2;
|
||||
spriteId = CreateSprite(&gUnknown_08595828, r4, r6 + (r12 * 3), 2);
|
||||
spriteId = CreateSprite(&gUnknown_08595828, x, y + r12, 2);
|
||||
r7++;
|
||||
break;
|
||||
case 6:
|
||||
r12 *= 4;
|
||||
r8 += r2 * 3;
|
||||
spriteId = CreateSprite(&gUnknown_08595828, r4, r6 + (r12 * 4), 2);
|
||||
spriteId = CreateSprite(&gUnknown_08595828, x, y + r12, 2);
|
||||
r7++;
|
||||
break;
|
||||
case 8:
|
||||
spriteId = CreateSprite(&gUnknown_08595828, r4, r6 + (r12 * 5), 2);
|
||||
r12 *= 5;
|
||||
spriteId = CreateSprite(&gUnknown_08595828, x, y + r12, 2);
|
||||
r7++;
|
||||
break;
|
||||
case 10:
|
||||
@@ -751,211 +755,6 @@ static void sub_810A834(u8 taskId)
|
||||
|
||||
gTasks[taskId].data[10]++;
|
||||
}
|
||||
#else
|
||||
NAKED
|
||||
static void sub_810A834(u8 taskId)
|
||||
{
|
||||
asm_unified("\n\
|
||||
push {r4-r7,lr}\n\
|
||||
mov r7, r10\n\
|
||||
mov r6, r9\n\
|
||||
mov r5, r8\n\
|
||||
push {r5-r7}\n\
|
||||
sub sp, 0x4\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
mov r9, r0\n\
|
||||
movs r5, 0\n\
|
||||
movs r7, 0\n\
|
||||
ldr r1, =gTasks\n\
|
||||
lsls r0, 2\n\
|
||||
add r0, r9\n\
|
||||
lsls r0, 3\n\
|
||||
adds r0, r1\n\
|
||||
ldrb r2, [r0, 0xC]\n\
|
||||
str r2, [sp]\n\
|
||||
ldrh r4, [r0, 0x8]\n\
|
||||
ldrh r6, [r0, 0xA]\n\
|
||||
movs r3, 0xC\n\
|
||||
ldrsh r0, [r0, r3]\n\
|
||||
mov r10, r1\n\
|
||||
cmp r0, 0\n\
|
||||
bne _0810A878\n\
|
||||
movs r0, 0\n\
|
||||
mov r8, r0\n\
|
||||
movs r2, 0x1\n\
|
||||
movs r1, 0x10\n\
|
||||
mov r12, r1\n\
|
||||
b _0810A882\n\
|
||||
.pool\n\
|
||||
_0810A878:\n\
|
||||
movs r2, 0x10\n\
|
||||
mov r12, r2\n\
|
||||
movs r3, 0x8\n\
|
||||
mov r8, r3\n\
|
||||
movs r2, 0x4\n\
|
||||
_0810A882:\n\
|
||||
mov r0, r9\n\
|
||||
lsls r1, r0, 2\n\
|
||||
adds r0, r1, r0\n\
|
||||
lsls r0, 3\n\
|
||||
add r0, r10\n\
|
||||
movs r3, 0x1C\n\
|
||||
ldrsh r0, [r0, r3]\n\
|
||||
mov r10, r1\n\
|
||||
cmp r0, 0xA\n\
|
||||
bhi _0810A978\n\
|
||||
lsls r0, 2\n\
|
||||
ldr r1, =_0810A8A4\n\
|
||||
adds r0, r1\n\
|
||||
ldr r0, [r0]\n\
|
||||
mov pc, r0\n\
|
||||
.pool\n\
|
||||
.align 2, 0\n\
|
||||
_0810A8A4:\n\
|
||||
.4byte _0810A8D0\n\
|
||||
.4byte _0810A978\n\
|
||||
.4byte _0810A8E4\n\
|
||||
.4byte _0810A978\n\
|
||||
.4byte _0810A904\n\
|
||||
.4byte _0810A978\n\
|
||||
.4byte _0810A91A\n\
|
||||
.4byte _0810A978\n\
|
||||
.4byte _0810A93C\n\
|
||||
.4byte _0810A978\n\
|
||||
.4byte _0810A970\n\
|
||||
_0810A8D0:\n\
|
||||
ldr r0, =gUnknown_08595828\n\
|
||||
lsls r1, r4, 16\n\
|
||||
asrs r1, 16\n\
|
||||
lsls r2, r6, 16\n\
|
||||
asrs r2, 16\n\
|
||||
mov r4, r12\n\
|
||||
lsls r3, r4, 16\n\
|
||||
b _0810A952\n\
|
||||
.pool\n\
|
||||
_0810A8E4:\n\
|
||||
mov r0, r12\n\
|
||||
lsls r3, r0, 17\n\
|
||||
mov r1, r8\n\
|
||||
adds r0, r1, r2\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r0, 16\n\
|
||||
mov r8, r0\n\
|
||||
ldr r0, =gUnknown_08595828\n\
|
||||
lsls r1, r4, 16\n\
|
||||
asrs r1, 16\n\
|
||||
lsls r2, r6, 16\n\
|
||||
asrs r2, 16\n\
|
||||
b _0810A952\n\
|
||||
.pool\n\
|
||||
_0810A904:\n\
|
||||
mov r3, r12\n\
|
||||
lsls r0, r3, 16\n\
|
||||
asrs r0, 16\n\
|
||||
lsls r3, r0, 1\n\
|
||||
adds r3, r0\n\
|
||||
lsls r0, r2, 1\n\
|
||||
add r0, r8\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r0, 16\n\
|
||||
mov r8, r0\n\
|
||||
b _0810A946\n\
|
||||
_0810A91A:\n\
|
||||
mov r0, r12\n\
|
||||
lsls r3, r0, 18\n\
|
||||
lsls r0, r2, 1\n\
|
||||
adds r0, r2\n\
|
||||
add r0, r8\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r0, 16\n\
|
||||
mov r8, r0\n\
|
||||
ldr r0, =gUnknown_08595828\n\
|
||||
lsls r1, r4, 16\n\
|
||||
asrs r1, 16\n\
|
||||
lsls r2, r6, 16\n\
|
||||
asrs r2, 16\n\
|
||||
b _0810A952\n\
|
||||
.pool\n\
|
||||
_0810A93C:\n\
|
||||
mov r1, r12\n\
|
||||
lsls r0, r1, 16\n\
|
||||
asrs r0, 16\n\
|
||||
lsls r3, r0, 2\n\
|
||||
adds r3, r0\n\
|
||||
_0810A946:\n\
|
||||
ldr r0, =gUnknown_08595828\n\
|
||||
lsls r1, r4, 16\n\
|
||||
asrs r1, 16\n\
|
||||
lsls r2, r6, 16\n\
|
||||
asrs r2, 16\n\
|
||||
lsls r3, 16\n\
|
||||
_0810A952:\n\
|
||||
asrs r3, 16\n\
|
||||
adds r2, r3\n\
|
||||
lsls r2, 16\n\
|
||||
asrs r2, 16\n\
|
||||
movs r3, 0x2\n\
|
||||
bl CreateSprite\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r5, r0, 24\n\
|
||||
adds r0, r7, 0x1\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r7, r0, 24\n\
|
||||
b _0810A978\n\
|
||||
.pool\n\
|
||||
_0810A970:\n\
|
||||
mov r0, r9\n\
|
||||
bl DestroyAnimVisualTask\n\
|
||||
b _0810A9BC\n\
|
||||
_0810A978:\n\
|
||||
cmp r7, 0\n\
|
||||
beq _0810A9AC\n\
|
||||
ldr r4, =gSprites\n\
|
||||
lsls r3, r5, 4\n\
|
||||
adds r3, r5\n\
|
||||
lsls r3, 2\n\
|
||||
adds r0, r3, r4\n\
|
||||
ldrh r5, [r0, 0x4]\n\
|
||||
lsls r2, r5, 22\n\
|
||||
lsrs r2, 22\n\
|
||||
add r2, r8\n\
|
||||
ldr r6, =0x000003ff\n\
|
||||
adds r1, r6, 0\n\
|
||||
ands r2, r1\n\
|
||||
ldr r1, =0xfffffc00\n\
|
||||
ands r1, r5\n\
|
||||
orrs r1, r2\n\
|
||||
strh r1, [r0, 0x4]\n\
|
||||
mov r1, sp\n\
|
||||
ldrh r1, [r1]\n\
|
||||
strh r1, [r0, 0x2E]\n\
|
||||
adds r4, 0x1C\n\
|
||||
adds r3, r4\n\
|
||||
ldr r1, [r3]\n\
|
||||
bl _call_via_r1\n\
|
||||
_0810A9AC:\n\
|
||||
ldr r0, =gTasks\n\
|
||||
mov r1, r10\n\
|
||||
add r1, r9\n\
|
||||
lsls r1, 3\n\
|
||||
adds r1, r0\n\
|
||||
ldrh r0, [r1, 0x1C]\n\
|
||||
adds r0, 0x1\n\
|
||||
strh r0, [r1, 0x1C]\n\
|
||||
_0810A9BC:\n\
|
||||
add sp, 0x4\n\
|
||||
pop {r3-r5}\n\
|
||||
mov r8, r3\n\
|
||||
mov r9, r4\n\
|
||||
mov r10, r5\n\
|
||||
pop {r4-r7}\n\
|
||||
pop {r0}\n\
|
||||
bx r0\n\
|
||||
.pool\n\
|
||||
");
|
||||
}
|
||||
#endif
|
||||
|
||||
static void sub_810A9DC(struct Sprite *sprite)
|
||||
{
|
||||
@@ -1002,7 +801,7 @@ void sub_810AAFC(u8 taskId)
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
if (!gBattleAnimArgs[0])
|
||||
if (!gBattleAnimArgs[0])
|
||||
{
|
||||
task->data[14] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
|
||||
task->data[15] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
|
||||
@@ -1073,7 +872,7 @@ void sub_810AB78(u8 taskId)
|
||||
|
||||
static void sub_810AC8C(struct Sprite *sprite)
|
||||
{
|
||||
if (TranslateAnimLinear(sprite))
|
||||
if (AnimTranslateLinear(sprite))
|
||||
{
|
||||
gTasks[sprite->data[5]].data[7]--;
|
||||
DestroySprite(sprite);
|
||||
@@ -1188,7 +987,7 @@ void sub_810AE5C(u8 taskId)
|
||||
}
|
||||
else
|
||||
task->data[0]++;
|
||||
|
||||
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
@@ -1334,6 +1133,7 @@ static void sub_810B23C(struct Sprite *sprite)
|
||||
case 1:
|
||||
if (sprite->affineAnimEnded)
|
||||
DestroySpriteAndMatrix(sprite);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1493,3 +1293,29 @@ void sub_810B55C(u8 taskId)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_810B614(struct Task *task, u8 taskId)
|
||||
{
|
||||
u8 spriteId = CreateSprite(&gUnknown_085956C0, task->data[13], task->data[14], task->data[12]);
|
||||
|
||||
if (spriteId != MAX_SPRITES)
|
||||
{
|
||||
gSprites[spriteId].callback = sub_810B684;
|
||||
gSprites[spriteId].data[6] = taskId;
|
||||
gSprites[spriteId].data[7] = 10;
|
||||
task->data[10]++;
|
||||
}
|
||||
if (task->data[14] >= task->data[15])
|
||||
return TRUE;
|
||||
task->data[14] += 32;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void sub_810B684(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->animEnded)
|
||||
{
|
||||
gTasks[sprite->data[6]].data[sprite->data[7]]--;
|
||||
DestroySprite(sprite);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1144,7 +1144,7 @@ u8 GetFirstInactiveEventObjectId(void)
|
||||
|
||||
u8 GetEventObjectIdByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroupId)
|
||||
{
|
||||
if (localId < 0xFF)
|
||||
if (localId < EVENT_OBJ_ID_PLAYER)
|
||||
{
|
||||
return GetEventObjectIdByLocalIdAndMapInternal(localId, mapNum, mapGroupId);
|
||||
}
|
||||
|
||||
@@ -251,7 +251,7 @@ static void CreatePostEvoSparkleSet2(u8 arg0)
|
||||
|
||||
void LoadEvoSparkleSpriteAndPal(void)
|
||||
{
|
||||
LoadCompressedObjectPicUsingHeap(&sEvoSparkleSpriteSheets[0]);
|
||||
LoadCompressedSpriteSheetUsingHeap(&sEvoSparkleSpriteSheets[0]);
|
||||
LoadSpritePalettes(sEvoSparkleSpritePals);
|
||||
}
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
#include "field_poison.h"
|
||||
#include "field_screen_effect.h"
|
||||
#include "field_specials.h"
|
||||
#include "fldeff_80F9BCC.h"
|
||||
#include "fldeff_misc.h"
|
||||
#include "item_menu.h"
|
||||
#include "link.h"
|
||||
#include "metatile_behavior.h"
|
||||
@@ -521,13 +521,13 @@ static bool8 TryStartMiscWalkingScripts(u16 metatileBehavior)
|
||||
}
|
||||
else if (MetatileBehavior_IsSecretBaseGlitterMat(metatileBehavior) == TRUE)
|
||||
{
|
||||
sub_80FA9D0();
|
||||
DoSecretBaseGlitterMatSparkle();
|
||||
return FALSE;
|
||||
}
|
||||
else if (MetatileBehavior_IsSecretBaseSoundMat(metatileBehavior) == TRUE)
|
||||
{
|
||||
PlayerGetDestCoords(&x, &y);
|
||||
sub_80FA970(MapGridGetMetatileIdAt(x, y));
|
||||
PlaySecretBaseMusicNoteMatSound(MapGridGetMetatileIdAt(x, y));
|
||||
return FALSE;
|
||||
}
|
||||
return FALSE;
|
||||
|
||||
+3
-3
@@ -9,7 +9,7 @@
|
||||
#include "field_screen_effect.h"
|
||||
#include "field_weather.h"
|
||||
#include "fieldmap.h"
|
||||
#include "fldeff_groundshake.h"
|
||||
#include "fldeff.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "main.h"
|
||||
#include "menu.h"
|
||||
@@ -733,8 +733,8 @@ bool8 FieldEffectActiveListContains(u8 id)
|
||||
u8 CreateTrainerSprite(u8 trainerSpriteID, s16 x, s16 y, u8 subpriority, u8 *buffer)
|
||||
{
|
||||
struct SpriteTemplate spriteTemplate;
|
||||
LoadCompressedObjectPaletteOverrideBuffer(&gTrainerFrontPicPaletteTable[trainerSpriteID], buffer);
|
||||
LoadCompressedObjectPicOverrideBuffer(&gTrainerFrontPicTable[trainerSpriteID], buffer);
|
||||
LoadCompressedSpritePaletteOverrideBuffer(&gTrainerFrontPicPaletteTable[trainerSpriteID], buffer);
|
||||
LoadCompressedSpriteSheetOverrideBuffer(&gTrainerFrontPicTable[trainerSpriteID], buffer);
|
||||
spriteTemplate.tileTag = gTrainerFrontPicTable[trainerSpriteID].tag;
|
||||
spriteTemplate.paletteTag = gTrainerFrontPicPaletteTable[trainerSpriteID].tag;
|
||||
spriteTemplate.oam = &gNewGameBirchOamAttributes;
|
||||
|
||||
@@ -1228,13 +1228,11 @@ u32 ShowTreeDisguiseFieldEffect(void)
|
||||
return ShowDisguiseFieldEffect(FLDEFF_TREE_DISGUISE, 24, 4);
|
||||
}
|
||||
|
||||
|
||||
u32 ShowMountainDisguiseFieldEffect(void)
|
||||
{
|
||||
return ShowDisguiseFieldEffect(FLDEFF_MOUNTAIN_DISGUISE, 25, 3);
|
||||
}
|
||||
|
||||
|
||||
u32 ShowSandDisguiseFieldEffect(void)
|
||||
{
|
||||
return ShowDisguiseFieldEffect(FLDEFF_SAND_DISGUISE, 28, 2);
|
||||
@@ -1579,3 +1577,19 @@ static void sub_81561FC(struct Sprite *sprite, u8 z, u8 offset)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Unused data. Feel free to remove.
|
||||
static const u8 gUnknown_085CDC6E[] =
|
||||
{
|
||||
0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, 0x02,
|
||||
0x01, 0x02, 0x02, 0x01, 0x02, 0x02, 0x01, 0x02, 0x01, 0x01, 0x02, 0x01, 0x01, 0x02,
|
||||
0x01, 0x01, 0x02, 0x01, 0x01, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00,
|
||||
0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01,
|
||||
0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF,
|
||||
0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00
|
||||
};
|
||||
|
||||
@@ -1310,7 +1310,7 @@ bool8 PartyHasMonWithSurf(void)
|
||||
{
|
||||
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) == SPECIES_NONE)
|
||||
break;
|
||||
if (pokemon_has_move(&gPlayerParty[i], MOVE_SURF))
|
||||
if (MonKnowsMove(&gPlayerParty[i], MOVE_SURF))
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
@@ -1845,7 +1845,7 @@ static bool8 Fishing6(struct Task *task)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!GetMonData(&gPlayerParty[0], MON_DATA_SANITY_BIT3))
|
||||
if (!GetMonData(&gPlayerParty[0], MON_DATA_SANITY_IS_EGG))
|
||||
{
|
||||
u8 ability = GetMonAbility(&gPlayerParty[0]);
|
||||
if (ability == ABILITY_SUCTION_CUPS || ability == ABILITY_STICKY_HOLD)
|
||||
|
||||
+3
-3
@@ -4,7 +4,7 @@
|
||||
#include "event_data.h"
|
||||
#include "field_message_box.h"
|
||||
#include "field_poison.h"
|
||||
#include "fldeff_80F9BCC.h"
|
||||
#include "fldeff_misc.h"
|
||||
#include "frontier_util.h"
|
||||
#include "party_menu.h"
|
||||
#include "pokenav.h"
|
||||
@@ -122,7 +122,7 @@ s32 DoPoisonFieldEffect(void)
|
||||
u32 numFainted = 0;
|
||||
for (i = 0; i < PARTY_SIZE; i++)
|
||||
{
|
||||
if (GetMonData(pokemon, MON_DATA_SANITY_BIT2) && pokemon_ailments_get_primary(GetMonData(pokemon, MON_DATA_STATUS)) == AILMENT_PSN)
|
||||
if (GetMonData(pokemon, MON_DATA_SANITY_HAS_SPECIES) && pokemon_ailments_get_primary(GetMonData(pokemon, MON_DATA_STATUS)) == AILMENT_PSN)
|
||||
{
|
||||
hp = GetMonData(pokemon, MON_DATA_HP);
|
||||
if (hp == 0 || --hp == 0)
|
||||
@@ -136,7 +136,7 @@ s32 DoPoisonFieldEffect(void)
|
||||
}
|
||||
if (numFainted != 0 || numPoisoned != 0)
|
||||
{
|
||||
FldeffPoison_Start();
|
||||
FldEffPoison_Start();
|
||||
}
|
||||
if (numFainted != 0)
|
||||
{
|
||||
|
||||
@@ -1266,7 +1266,7 @@ void IsGrassTypeInParty(void)
|
||||
for (i = 0; i < PARTY_SIZE; i++)
|
||||
{
|
||||
pokemon = &gPlayerParty[i];
|
||||
if (GetMonData(pokemon, MON_DATA_SANITY_BIT2) && !GetMonData(pokemon, MON_DATA_IS_EGG))
|
||||
if (GetMonData(pokemon, MON_DATA_SANITY_HAS_SPECIES) && !GetMonData(pokemon, MON_DATA_IS_EGG))
|
||||
{
|
||||
species = GetMonData(pokemon, MON_DATA_SPECIES);
|
||||
if (gBaseStats[species].type1 == TYPE_GRASS || gBaseStats[species].type2 == TYPE_GRASS)
|
||||
@@ -1279,17 +1279,17 @@ void IsGrassTypeInParty(void)
|
||||
gSpecialVar_Result = FALSE;
|
||||
}
|
||||
|
||||
void SpawnScriptEventObject(void)
|
||||
void SpawnCameraObject(void)
|
||||
{
|
||||
u8 obj = SpawnSpecialEventObjectParameterized(EVENT_OBJ_GFX_BOY_1, 8, 0x7F, gSaveBlock1Ptr->pos.x + 7, gSaveBlock1Ptr->pos.y + 7, 3);
|
||||
u8 obj = SpawnSpecialEventObjectParameterized(EVENT_OBJ_GFX_BOY_1, 8, EVENT_OBJ_ID_CAMERA, gSaveBlock1Ptr->pos.x + 7, gSaveBlock1Ptr->pos.y + 7, 3);
|
||||
gEventObjects[obj].invisible = TRUE;
|
||||
CameraObjectSetFollowedObjectId(gEventObjects[obj].spriteId);
|
||||
}
|
||||
|
||||
void RemoveScriptEventObject(void)
|
||||
void RemoveCameraObject(void)
|
||||
{
|
||||
CameraObjectSetFollowedObjectId(GetPlayerAvatarObjectId());
|
||||
RemoveEventObjectByLocalIdAndMap(0x7F, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
|
||||
RemoveEventObjectByLocalIdAndMap(EVENT_OBJ_ID_CAMERA, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
|
||||
}
|
||||
|
||||
u8 GetPokeblockNameByMonNature(void)
|
||||
@@ -1658,7 +1658,7 @@ bool8 sub_813990C(void)
|
||||
|
||||
for (i = 0; i < partyCount; i++)
|
||||
{
|
||||
if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_BIT1) == 1)
|
||||
if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_IS_BAD_EGG) == 1)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -3193,7 +3193,7 @@ void sub_813AEB4(void)
|
||||
i = 0;
|
||||
do
|
||||
{
|
||||
if (gUnknown_0861500C[i] == gUnknown_085B320C[temp2])
|
||||
if (gTutorMoves[i] == gUnknown_085B320C[temp2])
|
||||
{
|
||||
gSpecialVar_0x8005 = i;
|
||||
break;
|
||||
@@ -3206,7 +3206,7 @@ void sub_813AEB4(void)
|
||||
i = 0;
|
||||
do
|
||||
{
|
||||
if (gUnknown_0861500C[i] == gUnknown_085B31F8[temp2])
|
||||
if (gTutorMoves[i] == gUnknown_085B31F8[temp2])
|
||||
{
|
||||
gSpecialVar_0x8005 = i;
|
||||
break;
|
||||
@@ -3817,7 +3817,7 @@ void sub_813B9A0(void)
|
||||
}
|
||||
}
|
||||
|
||||
bool32 sub_813B9C0(void)
|
||||
bool8 sub_813B9C0(void)
|
||||
{
|
||||
static const u16 gUnknown_085B3444[] = {
|
||||
MAP_OLDALE_TOWN_POKEMON_CENTER_1F,
|
||||
|
||||
+2
-3
@@ -1,9 +1,8 @@
|
||||
#include "global.h"
|
||||
#include "bg.h"
|
||||
#include "fieldmap.h"
|
||||
#include "fldeff_80F9BCC.h"
|
||||
#include "fldeff_cut.h"
|
||||
#include "fldeff_groundshake.h"
|
||||
#include "fldeff.h"
|
||||
#include "fldeff_misc.h"
|
||||
#include "frontier_util.h"
|
||||
#include "menu.h"
|
||||
#include "overworld.h"
|
||||
|
||||
+15
-15
@@ -416,7 +416,7 @@ const struct SpriteTemplate gUnknown_08596104 =
|
||||
|
||||
void unc_080B08A0(struct Sprite *sprite)
|
||||
{
|
||||
sub_80A6864(sprite, gBattleAnimArgs[0]);
|
||||
SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]);
|
||||
sprite->pos1.y += gBattleAnimArgs[1];
|
||||
sprite->data[0] = 15;
|
||||
sprite->callback = WaitAnimForDuration;
|
||||
@@ -459,9 +459,9 @@ void AnimBasicFistOrFoot(struct Sprite *sprite)
|
||||
StartSpriteAnim(sprite, gBattleAnimArgs[4]);
|
||||
|
||||
if (gBattleAnimArgs[3] == 0)
|
||||
InitAnimSpritePos(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
else
|
||||
sub_80A6980(sprite, TRUE);
|
||||
InitSpritePosToAnimTarget(sprite, TRUE);
|
||||
|
||||
sprite->data[0] = gBattleAnimArgs[2];
|
||||
sprite->callback = WaitAnimForDuration;
|
||||
@@ -534,7 +534,7 @@ static void sub_810D0B8(struct Sprite *sprite)
|
||||
|
||||
void sub_810D10C(struct Sprite *sprite)
|
||||
{
|
||||
sub_80A6980(sprite, TRUE);
|
||||
InitSpritePosToAnimTarget(sprite, TRUE);
|
||||
sprite->data[0] = 30;
|
||||
|
||||
if (gBattleAnimArgs[2] == 0)
|
||||
@@ -574,7 +574,7 @@ void sub_810D1B4(struct Sprite *sprite)
|
||||
if (BATTLE_PARTNER(gBattleAnimAttacker) == gBattleAnimTarget && GetBattlerPosition(gBattleAnimTarget) < B_POSITION_PLAYER_RIGHT)
|
||||
gBattleAnimArgs[0] *= -1;
|
||||
|
||||
sub_80A6980(sprite, TRUE);
|
||||
InitSpritePosToAnimTarget(sprite, TRUE);
|
||||
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
|
||||
@@ -596,7 +596,7 @@ void sub_810D1B4(struct Sprite *sprite)
|
||||
|
||||
static void sub_810D240(struct Sprite *sprite)
|
||||
{
|
||||
if (!TranslateAnimLinear(sprite))
|
||||
if (!AnimTranslateLinear(sprite))
|
||||
{
|
||||
sprite->pos2.y += Sin(sprite->data[7] >> 8, sprite->data[5]);
|
||||
sprite->data[7] += sprite->data[6];
|
||||
@@ -615,7 +615,7 @@ static void sub_810D240(struct Sprite *sprite)
|
||||
// arg 3: spin duration
|
||||
void AnimSpinningKickOrPunch(struct Sprite *sprite)
|
||||
{
|
||||
sub_80A6980(sprite, TRUE);
|
||||
InitSpritePosToAnimTarget(sprite, TRUE);
|
||||
StartSpriteAnim(sprite, gBattleAnimArgs[2]);
|
||||
sprite->data[0] = gBattleAnimArgs[3];
|
||||
|
||||
@@ -639,7 +639,7 @@ static void AnimSpinningKickOrPunchFinish(struct Sprite *sprite)
|
||||
// arg 2: initial wait duration
|
||||
void AnimStompFoot(struct Sprite *sprite)
|
||||
{
|
||||
sub_80A6980(sprite, TRUE);
|
||||
InitSpritePosToAnimTarget(sprite, TRUE);
|
||||
sprite->data[0] = gBattleAnimArgs[2];
|
||||
|
||||
sprite->callback = AnimStompFootStep;
|
||||
@@ -670,7 +670,7 @@ void sub_810D37C(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[0] == 0)
|
||||
{
|
||||
sub_80A6980(sprite, TRUE);
|
||||
InitSpritePosToAnimTarget(sprite, TRUE);
|
||||
sprite->data[1] = gBattleAnimArgs[2];
|
||||
sprite->data[2] = gBattleAnimArgs[3];
|
||||
sprite->data[0]++;
|
||||
@@ -800,12 +800,12 @@ void sub_810D608(struct Sprite *sprite)
|
||||
{
|
||||
sprite->pos1.x = GetBattlerSpriteCoord(gBattlerAttacker, 2);
|
||||
sprite->pos1.y = GetBattlerSpriteCoord(gBattlerAttacker, 3);
|
||||
sprite->oam.priority = sub_80A8328(gBattleAnimAttacker);
|
||||
sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker);
|
||||
sprite->data[7] = gBattleAnimTarget;
|
||||
}
|
||||
else
|
||||
{
|
||||
sprite->oam.priority = sub_80A8328(gBattleAnimTarget);
|
||||
sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimTarget);
|
||||
sprite->data[7] = gBattleAnimAttacker;
|
||||
}
|
||||
|
||||
@@ -903,12 +903,12 @@ void sub_810D874(struct Sprite *sprite)
|
||||
sprite->pos1.x = GetBattlerSpriteCoord(gBattlerAttacker, 2);
|
||||
sprite->pos1.y = GetBattlerSpriteCoord(gBattlerAttacker, 3);
|
||||
battler = gBattleAnimTarget;
|
||||
sprite->oam.priority = sub_80A8328(gBattleAnimAttacker);
|
||||
sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker);
|
||||
}
|
||||
else
|
||||
{
|
||||
battler = gBattleAnimAttacker;
|
||||
sprite->oam.priority = sub_80A8328(gBattleAnimTarget);
|
||||
sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimTarget);
|
||||
}
|
||||
|
||||
if (IsContest())
|
||||
@@ -965,9 +965,9 @@ void sub_810D984(struct Sprite *sprite)
|
||||
void sub_810DA10(struct Sprite *sprite)
|
||||
{
|
||||
if (gBattleAnimArgs[2] == 0)
|
||||
InitAnimSpritePos(sprite, 0);
|
||||
InitSpritePosToAnimAttacker(sprite, 0);
|
||||
else
|
||||
sub_80A6980(sprite, FALSE);
|
||||
InitSpritePosToAnimTarget(sprite, FALSE);
|
||||
|
||||
if (IsContest())
|
||||
{
|
||||
|
||||
+11
-11
@@ -472,14 +472,14 @@ static void sub_8108EC8(struct Sprite *sprite)
|
||||
|
||||
static void sub_8108F08(struct Sprite *sprite)
|
||||
{
|
||||
sub_80A6864(sprite, gBattleAnimArgs[0]);
|
||||
SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]);
|
||||
|
||||
sprite->pos1.y += gBattleAnimArgs[1];
|
||||
sprite->data[0] = gBattleAnimArgs[4];
|
||||
sprite->data[1] = gBattleAnimArgs[2];
|
||||
sprite->data[2] = gBattleAnimArgs[3];
|
||||
|
||||
sprite->callback = TranslateAnimLinearSimple;
|
||||
sprite->callback = AnimTranslateLinearSimple;
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
}
|
||||
|
||||
@@ -644,7 +644,7 @@ static void sub_8109200(struct Sprite *sprite)
|
||||
//void AnimFireRing(struct Sprite *sprite)
|
||||
void AnimFireRing(struct Sprite *sprite)
|
||||
{
|
||||
InitAnimSpritePos(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
|
||||
sprite->data[7] = gBattleAnimArgs[2];
|
||||
sprite->data[0] = 0;
|
||||
@@ -672,7 +672,7 @@ static void AnimFireRingStep1(struct Sprite *sprite)
|
||||
|
||||
static void AnimFireRingStep2(struct Sprite *sprite)
|
||||
{
|
||||
if (TranslateAnimLinear(sprite))
|
||||
if (AnimTranslateLinear(sprite))
|
||||
{
|
||||
sprite->data[0] = 0;
|
||||
|
||||
@@ -731,7 +731,7 @@ static void AnimFireCross(struct Sprite *sprite)
|
||||
|
||||
static void sub_81093A4(struct Sprite *sprite)
|
||||
{
|
||||
InitAnimSpritePos(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
|
||||
sprite->data[1] = gBattleAnimArgs[2];
|
||||
sprite->data[0] = gBattleAnimArgs[3];
|
||||
@@ -1054,7 +1054,7 @@ static void sub_8109AFC(struct Sprite *sprite)
|
||||
switch (sprite->data[0])
|
||||
{
|
||||
case 0:
|
||||
InitAnimSpritePos(sprite, 0);
|
||||
InitSpritePosToAnimAttacker(sprite, 0);
|
||||
StartSpriteAnim(sprite, gBattleAnimArgs[2]);
|
||||
sprite->data[7] = gBattleAnimArgs[2];
|
||||
|
||||
@@ -1067,7 +1067,7 @@ static void sub_8109AFC(struct Sprite *sprite)
|
||||
sprite->data[4] = -4;
|
||||
}
|
||||
|
||||
sprite->oam.priority = sub_80A8328(gBattleAnimTarget);
|
||||
sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimTarget);
|
||||
sprite->data[0]++;
|
||||
break;
|
||||
case 1:
|
||||
@@ -1119,7 +1119,7 @@ static void sub_8109C4C(struct Sprite *sprite)
|
||||
s16 initialData5;
|
||||
s16 newData5;
|
||||
|
||||
if (!TranslateAnimLinear(sprite))
|
||||
if (!AnimTranslateLinear(sprite))
|
||||
{
|
||||
sprite->pos2.x += Sin(sprite->data[5], 16);
|
||||
initialData5 = sprite->data[5];
|
||||
@@ -1157,9 +1157,9 @@ void sub_8109CB0(struct Sprite *sprite)
|
||||
if (!IsContest())
|
||||
{
|
||||
if (sprite->data[1] < 64 || sprite->data[1] > 195)
|
||||
sprite->oam.priority = sub_80A8328(gBattleAnimTarget);
|
||||
sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimTarget);
|
||||
else
|
||||
sprite->oam.priority = sub_80A8328(gBattleAnimTarget) + 1;
|
||||
sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimTarget) + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1318,4 +1318,4 @@ void sub_810A094(u8 taskId)
|
||||
gSprites[spriteId].pos2.y = 0;
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-2
@@ -5,12 +5,11 @@
|
||||
#include "field_effect.h"
|
||||
#include "field_player_avatar.h"
|
||||
#include "fieldmap.h"
|
||||
#include "fldeff_cut.h"
|
||||
#include "fldeff.h"
|
||||
#include "alloc.h"
|
||||
#include "metatile_behavior.h"
|
||||
#include "overworld.h"
|
||||
#include "party_menu.h"
|
||||
#include "rom6.h"
|
||||
#include "script.h"
|
||||
#include "sound.h"
|
||||
#include "sprite.h"
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
#include "global.h"
|
||||
#include "braille_puzzles.h"
|
||||
#include "field_effect.h"
|
||||
#include "field_player_avatar.h"
|
||||
#include "fldeff.h"
|
||||
#include "item_use.h"
|
||||
#include "overworld.h"
|
||||
#include "party_menu.h"
|
||||
#include "sprite.h"
|
||||
#include "constants/field_effects.h"
|
||||
|
||||
// static functions
|
||||
static void hm2_dig(void);
|
||||
static void sub_8135780(void);
|
||||
|
||||
// text
|
||||
bool8 SetUpFieldMove_Dig(void)
|
||||
{
|
||||
if (CanUseEscapeRopeOnCurrMap() == TRUE)
|
||||
{
|
||||
gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu;
|
||||
gPostMenuFieldCallback = hm2_dig;
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
static void hm2_dig(void)
|
||||
{
|
||||
Overworld_ResetStateAfterDigEscRope();
|
||||
FieldEffectStart(FLDEFF_USE_DIG);
|
||||
gFieldEffectArguments[0] = GetCursorSelectionMonId();
|
||||
}
|
||||
|
||||
bool8 FldEff_UseDig(void)
|
||||
{
|
||||
u8 taskId = oei_task_add();
|
||||
|
||||
gTasks[taskId].data[8] = (u32)sub_8135780 >> 16;
|
||||
gTasks[taskId].data[9] = (u32)sub_8135780;
|
||||
if (!ShouldDoBrailleDigEffect())
|
||||
SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void sub_8135780(void)
|
||||
{
|
||||
u8 taskId;
|
||||
|
||||
FieldEffectActiveListRemove(FLDEFF_USE_DIG);
|
||||
if (ShouldDoBrailleDigEffect())
|
||||
{
|
||||
DoBrailleDigEffect();
|
||||
}
|
||||
else
|
||||
{
|
||||
taskId = CreateTask(task08_080A1C44, 8);
|
||||
gTasks[taskId].data[0] = 0;
|
||||
}
|
||||
}
|
||||
@@ -2,18 +2,19 @@
|
||||
#include "field_camera.h"
|
||||
#include "field_player_avatar.h"
|
||||
#include "fieldmap.h"
|
||||
#include "fldeff.h"
|
||||
#include "task.h"
|
||||
|
||||
static EWRAM_DATA u8 sEscalatorAnim_TaskId = 0;
|
||||
|
||||
void sub_80E12E8(u8 taskId, const s16 *list, u16 c)
|
||||
static void sub_80E12E8(u8 taskId, const s16 *list, u16 c)
|
||||
{
|
||||
s16 r5 = gTasks[taskId].data[4] - 1;
|
||||
s16 r3 = gTasks[taskId].data[5] - 1;
|
||||
s16 r4 = gTasks[taskId].data[1];
|
||||
s16 y;
|
||||
s16 x;
|
||||
|
||||
|
||||
if (gTasks[taskId].data[2] == 0)
|
||||
{
|
||||
for (y = 0; y < 3; y++)
|
||||
@@ -21,7 +22,7 @@ void sub_80E12E8(u8 taskId, const s16 *list, u16 c)
|
||||
for (x = 0; x < 3; x++)
|
||||
{
|
||||
s16 metatileId = MapGridGetMetatileIdAt(r5 + x, r3 + y);
|
||||
|
||||
|
||||
if (list[r4] == metatileId)
|
||||
{
|
||||
if (r4 != 2)
|
||||
@@ -39,7 +40,7 @@ void sub_80E12E8(u8 taskId, const s16 *list, u16 c)
|
||||
for (x = 0; x < 3; x++)
|
||||
{
|
||||
s16 metatileId = MapGridGetMetatileIdAt(r5 + x, r3 + y);
|
||||
|
||||
|
||||
if (list[2 - r4] == metatileId)
|
||||
{
|
||||
if (r4 != 2)
|
||||
@@ -60,7 +61,7 @@ static const u16 gUnknown_08589AD2[] = {0x2A0, 0x2A2, 0x2A4};
|
||||
static const u16 gUnknown_08589AD8[] = {0x2A1, 0x2A3, 0x2A5};
|
||||
static const u16 gUnknown_08589ADE[] = {0x2A8, 0x2AA, 0x2AC};
|
||||
|
||||
void sub_80E1444(u8 taskId)
|
||||
static void sub_80E1444(u8 taskId)
|
||||
{
|
||||
s16 *data = gTasks[taskId].data;
|
||||
|
||||
@@ -100,7 +101,7 @@ void sub_80E1444(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
u8 sub_80E150C(u16 var)
|
||||
static u8 sub_80E150C(u16 var)
|
||||
{
|
||||
u8 taskId = CreateTask(sub_80E1444, 0);
|
||||
s16 *data = gTasks[taskId].data;
|
||||
|
||||
+1
-1
@@ -3,12 +3,12 @@
|
||||
#include "event_data.h"
|
||||
#include "event_scripts.h"
|
||||
#include "field_effect.h"
|
||||
#include "fldeff.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "main.h"
|
||||
#include "overworld.h"
|
||||
#include "palette.h"
|
||||
#include "party_menu.h"
|
||||
#include "rom6.h"
|
||||
#include "script.h"
|
||||
#include "sound.h"
|
||||
#include "sprite.h"
|
||||
|
||||
+42
-28
@@ -2,6 +2,7 @@
|
||||
#include "event_data.h"
|
||||
#include "event_object_movement.h"
|
||||
#include "field_camera.h"
|
||||
#include "fldeff.h"
|
||||
#include "alloc.h"
|
||||
#include "random.h"
|
||||
#include "roulette_util.h"
|
||||
@@ -10,6 +11,7 @@
|
||||
#include "sprite.h"
|
||||
#include "task.h"
|
||||
#include "constants/flags.h"
|
||||
#include "constants/maps.h"
|
||||
#include "constants/songs.h"
|
||||
|
||||
// structures
|
||||
@@ -73,7 +75,13 @@ static const struct OamData gUnknown_08617E2C =
|
||||
};
|
||||
|
||||
static const struct SpriteTemplate gUnknown_08617E34 = {
|
||||
0x0FA0, 0xFFFF, &gUnknown_08617E2C, gSpriteAnimTable_8617E28, NULL, gDummySpriteAffineAnimTable, sub_81BEAD8
|
||||
.tileTag = 0x0FA0,
|
||||
.paletteTag = 0xFFFF,
|
||||
.oam = &gUnknown_08617E2C,
|
||||
.anims = gSpriteAnimTable_8617E28,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = sub_81BEAD8
|
||||
};
|
||||
|
||||
static const union AnimCmd gSpriteAnim_8617E4C[] =
|
||||
@@ -105,7 +113,13 @@ static const struct OamData gSpriteAnim_8617E58 =
|
||||
};
|
||||
|
||||
static const struct SpriteTemplate gUnknown_08617E60 = {
|
||||
0x0FA0, 0xFFFF, &gSpriteAnim_8617E58, gSpriteAnim_8617E54, NULL, gDummySpriteAffineAnimTable, sub_81BEAD8
|
||||
.tileTag = 0x0FA0,
|
||||
.paletteTag = 0xFFFF,
|
||||
.oam = &gSpriteAnim_8617E58,
|
||||
.anims = gSpriteAnim_8617E54,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = sub_81BEAD8
|
||||
};
|
||||
|
||||
// ewram
|
||||
@@ -114,12 +128,13 @@ EWRAM_DATA struct Struct203CF18 *gUnknown_0203CF18 = NULL;
|
||||
// text
|
||||
bool8 sub_81BE66C(void)
|
||||
{
|
||||
if (!(gSaveBlock1Ptr->location.mapGroup == 0x0 && gSaveBlock1Ptr->location.mapNum == 0x1A))
|
||||
return 0;
|
||||
return FlagGet(FLAG_0x14E);
|
||||
if (!(gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(ROUTE111) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE111)))
|
||||
return FALSE;
|
||||
else
|
||||
return FlagGet(FLAG_0x14E);
|
||||
}
|
||||
|
||||
void sub_81BE698(u8 taskId)
|
||||
static void sub_81BE698(u8 taskId)
|
||||
{
|
||||
sub_8151E50(&(gUnknown_0203CF18->unk4));
|
||||
}
|
||||
@@ -131,12 +146,13 @@ void sub_81BE6AC(void)
|
||||
|
||||
void sub_81BE6B8(void)
|
||||
{
|
||||
if(gUnknown_0203CF18 != NULL)
|
||||
if (gUnknown_0203CF18 != NULL)
|
||||
{
|
||||
gUnknown_0203CF18 = NULL;
|
||||
return;
|
||||
}
|
||||
if(!(gSaveBlock1Ptr->location.mapGroup == 0x0 && gSaveBlock1Ptr->location.mapNum == 0x1A) || !FlagGet(FLAG_0x14E))
|
||||
|
||||
if (gSaveBlock1Ptr->location.mapGroup != MAP_GROUP(ROUTE111) || gSaveBlock1Ptr->location.mapNum != MAP_NUM(ROUTE111) || !FlagGet(FLAG_0x14E))
|
||||
return;
|
||||
|
||||
gUnknown_0203CF18 = (struct Struct203CF18 *)AllocZeroed(sizeof(struct Struct203CF18));
|
||||
@@ -148,10 +164,13 @@ void sub_81BE6B8(void)
|
||||
|
||||
void sub_81BE72C(void)
|
||||
{
|
||||
if(!(gSaveBlock1Ptr->location.mapGroup == 0x0 && gSaveBlock1Ptr->location.mapNum == 0x1A) || !FlagGet(FLAG_0x14E) || gUnknown_0203CF18 == NULL)
|
||||
if (gSaveBlock1Ptr->location.mapGroup != MAP_GROUP(ROUTE111) || gSaveBlock1Ptr->location.mapNum != MAP_NUM(ROUTE111)
|
||||
|| !FlagGet(FLAG_0x14E) || gUnknown_0203CF18 == NULL)
|
||||
return;
|
||||
if(FuncIsActiveTask(sub_81BE698))
|
||||
|
||||
if( FuncIsActiveTask(sub_81BE698))
|
||||
DestroyTask(gUnknown_0203CF18->taskId);
|
||||
|
||||
sub_8151D28(&(gUnknown_0203CF18->unk4), 1, 1);
|
||||
sub_8151C50(&(gUnknown_0203CF18->unk4), 1, 1);
|
||||
Free(gUnknown_0203CF18);
|
||||
@@ -163,16 +182,16 @@ void sub_81BE79C(void)
|
||||
u16 rand;
|
||||
bool8 chance;
|
||||
|
||||
if(VarGet(VAR_0x40CB) != 0)
|
||||
if (VarGet(VAR_0x40CB) != 0)
|
||||
{
|
||||
FlagClear(FLAG_0x14E);
|
||||
return;
|
||||
}
|
||||
rand = Random();
|
||||
chance = rand & 1;
|
||||
if(FlagGet(FLAG_0x09D) == TRUE)
|
||||
if (FlagGet(FLAG_0x09D) == TRUE)
|
||||
chance = TRUE;
|
||||
if(chance)
|
||||
if (chance)
|
||||
{
|
||||
FlagSet(FLAG_0x14E);
|
||||
sub_81BE6B8();
|
||||
@@ -221,18 +240,17 @@ static void sp136_strengh_sound(u8 a, u8 b, u8 c, u8 d)
|
||||
|
||||
static void sub_81BE900(u8 taskId)
|
||||
{
|
||||
s16 *data;
|
||||
s16 *data = gTasks[taskId].data;
|
||||
|
||||
data = gTasks[taskId].data;
|
||||
data[1]++;
|
||||
if((data[1] % data[3]) == 0)
|
||||
if ((data[1] % data[3]) == 0)
|
||||
{
|
||||
data[1] = 0;
|
||||
data[2]--;
|
||||
data[0] = -data[0];
|
||||
data[4] = -data[4];
|
||||
SetCameraPanning(data[0], data[4]);
|
||||
if(!data[2])
|
||||
if (!data[2])
|
||||
{
|
||||
sub_81BE968();
|
||||
DestroyTask(taskId);
|
||||
@@ -243,10 +261,8 @@ static void sub_81BE900(u8 taskId)
|
||||
|
||||
static void sub_81BE968(void)
|
||||
{
|
||||
u8 taskId;
|
||||
|
||||
taskId = FindTaskIdByFunc(sub_81BE9C0);
|
||||
if(taskId != 0xFF)
|
||||
u8 taskId = FindTaskIdByFunc(sub_81BE9C0);
|
||||
if (taskId != 0xFF)
|
||||
gTasks[taskId].data[0]++;
|
||||
}
|
||||
|
||||
@@ -260,11 +276,9 @@ void sub_81BE994(void)
|
||||
|
||||
static void sub_81BE9C0(u8 taskId)
|
||||
{
|
||||
u16 *data;
|
||||
u16 *data = gTasks[taskId].data;
|
||||
|
||||
data = gTasks[taskId].data;
|
||||
data[1]++;
|
||||
if(data[1] == 1000 || data[0] == 17)
|
||||
if (++data[1] == 1000 || data[0] == 17)
|
||||
gTasks[taskId].func = sub_81BEA00;
|
||||
}
|
||||
|
||||
@@ -280,14 +294,14 @@ static void sub_81BEA20(void)
|
||||
u8 i;
|
||||
u8 spriteId;
|
||||
|
||||
for(i = 0; i < 8; i++)
|
||||
for (i = 0; i < 8; i++)
|
||||
{
|
||||
spriteId = CreateSprite(&gUnknown_08617E60, gUnknown_08617D64[i][0] + 120, gUnknown_08617D64[i][1], 8);
|
||||
gSprites[spriteId].oam.priority = 0;
|
||||
gSprites[spriteId].oam.paletteNum = 0;
|
||||
gSprites[spriteId].data[0] = i;
|
||||
}
|
||||
for(i = 0; i < 8; i++)
|
||||
for (i = 0; i < 8; i++)
|
||||
{
|
||||
spriteId = CreateSprite(&gUnknown_08617E34, gUnknown_08617D64[i][0] + 115, gUnknown_08617D64[i][1] - 3, 8);
|
||||
gSprites[spriteId].oam.priority = 0;
|
||||
@@ -300,7 +314,7 @@ static void sub_81BEAD8(struct Sprite* sprite)
|
||||
{
|
||||
sprite->data[1] += 2;
|
||||
sprite->pos2.y = (sprite->data[1] / 2);
|
||||
if(((sprite->pos1.y) + (sprite->pos2.y)) > gUnknown_08617D64[sprite->data[0]][2])
|
||||
if (((sprite->pos1.y) + (sprite->pos2.y)) > gUnknown_08617D64[sprite->data[0]][2])
|
||||
{
|
||||
DestroySprite(sprite);
|
||||
sub_81BE968();
|
||||
|
||||
+1307
File diff suppressed because it is too large
Load Diff
@@ -5,10 +5,10 @@
|
||||
#include "event_scripts.h"
|
||||
#include "field_effect.h"
|
||||
#include "field_player_avatar.h"
|
||||
#include "fldeff.h"
|
||||
#include "item_use.h"
|
||||
#include "overworld.h"
|
||||
#include "party_menu.h"
|
||||
#include "rom6.h"
|
||||
#include "script.h"
|
||||
#include "sound.h"
|
||||
#include "sprite.h"
|
||||
@@ -26,8 +26,6 @@ static void sub_813552C(u8 taskId);
|
||||
static void sub_813561C(u8 taskId);
|
||||
static void sub_81356C4(void);
|
||||
static void sub_8135714(void);
|
||||
static void hm2_dig(void);
|
||||
static void sub_8135780(void);
|
||||
|
||||
// extern RAM loc
|
||||
extern struct MapPosition gPlayerFacingPosition;
|
||||
@@ -162,51 +160,3 @@ static void sub_8135714(void)
|
||||
FieldEffectActiveListRemove(FLDEFF_USE_ROCK_SMASH);
|
||||
EnableBothScriptContexts();
|
||||
}
|
||||
|
||||
bool8 SetUpFieldMove_Dig(void)
|
||||
{
|
||||
if (CanUseEscapeRopeOnCurrMap() == TRUE)
|
||||
{
|
||||
gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu;
|
||||
gPostMenuFieldCallback = hm2_dig;
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
static void hm2_dig(void)
|
||||
{
|
||||
Overworld_ResetStateAfterDigEscRope();
|
||||
FieldEffectStart(FLDEFF_USE_DIG);
|
||||
gFieldEffectArguments[0] = GetCursorSelectionMonId();
|
||||
}
|
||||
|
||||
bool8 FldEff_UseDig(void)
|
||||
{
|
||||
u8 taskId = oei_task_add();
|
||||
|
||||
gTasks[taskId].data[8] = (u32)sub_8135780 >> 16;
|
||||
gTasks[taskId].data[9] = (u32)sub_8135780;
|
||||
if (!ShouldDoBrailleDigEffect())
|
||||
SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void sub_8135780(void)
|
||||
{
|
||||
u8 taskId;
|
||||
|
||||
FieldEffectActiveListRemove(FLDEFF_USE_DIG);
|
||||
if (ShouldDoBrailleDigEffect())
|
||||
{
|
||||
DoBrailleDigEffect();
|
||||
}
|
||||
else
|
||||
{
|
||||
taskId = CreateTask(task08_080A1C44, 8);
|
||||
gTasks[taskId].data[0] = 0;
|
||||
}
|
||||
}
|
||||
@@ -103,7 +103,7 @@ static void sub_8161784(u8 taskId)
|
||||
static void sub_81617B8(u8 taskId)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
sub_81B1B5C(&gText_CantBeUsedOnPkmn, 0);
|
||||
sub_81B1B5C(gText_CantBeUsedOnPkmn, 0);
|
||||
schedule_bg_copy_tilemap_to_vram(2);
|
||||
gTasks[taskId].func = sub_8161784;
|
||||
}
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
#include "event_data.h"
|
||||
#include "event_scripts.h"
|
||||
#include "field_effect.h"
|
||||
#include "fldeff.h"
|
||||
#include "party_menu.h"
|
||||
#include "rom6.h"
|
||||
#include "script.h"
|
||||
#include "string_util.h"
|
||||
#include "task.h"
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
#include "field_player_avatar.h"
|
||||
#include "field_screen_effect.h"
|
||||
#include "field_weather.h"
|
||||
#include "fldeff.h"
|
||||
#include "palette.h"
|
||||
#include "party_menu.h"
|
||||
#include "rom6.h"
|
||||
#include "script.h"
|
||||
#include "sound.h"
|
||||
#include "sprite.h"
|
||||
@@ -21,8 +21,6 @@ static void FieldCallback_SweetScent(void);
|
||||
static void StartSweetScentFieldEffect(void);
|
||||
static void TrySweetScentEncounter(u8 taskId);
|
||||
static void FailSweetScentEncounter(u8 taskId);
|
||||
void sub_81BE6B8(void);
|
||||
void sub_81BE72C(void);
|
||||
|
||||
bool8 SetUpFieldMove_SweetScent(void)
|
||||
{
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
#include "global.h"
|
||||
#include "field_effect.h"
|
||||
#include "field_player_avatar.h"
|
||||
#include "fldeff.h"
|
||||
#include "party_menu.h"
|
||||
#include "overworld.h"
|
||||
#include "rom6.h"
|
||||
#include "task.h"
|
||||
#include "constants/field_effects.h"
|
||||
|
||||
|
||||
+10
-10
@@ -217,7 +217,7 @@ const struct SpriteTemplate gUnknown_08596E48 =
|
||||
|
||||
static void sub_811160C(struct Sprite *sprite)
|
||||
{
|
||||
InitAnimSpritePos(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
sprite->data[0] = gBattleAnimArgs[2];
|
||||
sprite->data[1] = sprite->pos1.x;
|
||||
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
|
||||
@@ -235,7 +235,7 @@ static void sub_8111674(struct Sprite *sprite)
|
||||
s16 r0;
|
||||
s16 r2;
|
||||
sub_8111764(sprite);
|
||||
if (TranslateAnimLinear(sprite))
|
||||
if (AnimTranslateLinear(sprite))
|
||||
{
|
||||
sprite->callback = sub_81116E8;
|
||||
return;
|
||||
@@ -258,7 +258,7 @@ static void sub_81116E8(struct Sprite *sprite)
|
||||
s16 r2;
|
||||
s16 r0;
|
||||
sprite->data[0] = 1;
|
||||
TranslateAnimLinear(sprite);
|
||||
AnimTranslateLinear(sprite);
|
||||
sprite->pos2.x += Sin(sprite->data[5], 10);
|
||||
sprite->pos2.y += Cos(sprite->data[5], 15);
|
||||
|
||||
@@ -313,7 +313,7 @@ static void sub_8111764(struct Sprite *sprite)
|
||||
|
||||
static void sub_81117F4(struct Sprite *sprite)
|
||||
{
|
||||
sub_80A6980(sprite, TRUE);
|
||||
InitSpritePosToAnimTarget(sprite, TRUE);
|
||||
sprite->callback = sub_8111814;
|
||||
sprite->callback(sprite);
|
||||
}
|
||||
@@ -461,7 +461,7 @@ static void AnimShadowBallStep(struct Sprite *sprite)
|
||||
|
||||
static void sub_8111B9C(struct Sprite *sprite)
|
||||
{
|
||||
sub_80A6980(sprite, TRUE);
|
||||
InitSpritePosToAnimTarget(sprite, TRUE);
|
||||
sprite->callback = sub_8111BB4;
|
||||
}
|
||||
|
||||
@@ -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 = TranslateAnimLinearSimple;
|
||||
gSprites[task->data[0]].callback = AnimTranslateLinearSimple;
|
||||
task->func = sub_8111D78;
|
||||
}
|
||||
|
||||
@@ -590,7 +590,7 @@ static void sub_8111E78(u8 taskId)
|
||||
{
|
||||
s16 startLine;
|
||||
struct Task *task = &gTasks[taskId];
|
||||
u8 position = sub_80A8364(gBattleAnimTarget);
|
||||
u8 position = GetBattlerSpriteBGPriorityRank(gBattleAnimTarget);
|
||||
|
||||
switch (task->data[15])
|
||||
{
|
||||
@@ -698,7 +698,7 @@ static void sub_81120DC(u8 taskId)
|
||||
static void sub_8112170(u8 taskId)
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
u8 position = sub_80A8364(gBattleAnimTarget);
|
||||
u8 position = GetBattlerSpriteBGPriorityRank(gBattleAnimTarget);
|
||||
|
||||
switch (task->data[15])
|
||||
{
|
||||
@@ -1026,7 +1026,7 @@ static void sub_81129F0(struct Sprite *sprite)
|
||||
s16 xDelta;
|
||||
s16 xDelta2;
|
||||
|
||||
InitAnimSpritePos(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
|
||||
{
|
||||
xDelta = 24;
|
||||
@@ -1170,7 +1170,7 @@ void sub_8112C6C(u8 taskId)
|
||||
task->data[10] = GetBattlerYCoordWithElevation(gBattleAnimAttacker);
|
||||
task->data[11] = (sub_80A861C(gBattleAnimAttacker, 1) / 2) + 8;
|
||||
task->data[7] = 0;
|
||||
task->data[5] = sub_80A8328(gBattleAnimAttacker);
|
||||
task->data[5] = GetBattlerSpriteBGPriority(gBattleAnimAttacker);
|
||||
task->data[6] = GetBattlerSpriteSubpriority(gBattleAnimAttacker) - 2;
|
||||
task->data[3] = 0;
|
||||
task->data[4] = 16;
|
||||
|
||||
+20
-10
@@ -72,16 +72,20 @@ void SetGpuReg(u8 regOffset, u16 value)
|
||||
GPU_REG_BUF(regOffset) = value;
|
||||
vcount = REG_VCOUNT & 0xFF;
|
||||
|
||||
if ((vcount >= 161 && vcount <= 225)
|
||||
|| (REG_DISPCNT & DISPCNT_FORCED_BLANK)) {
|
||||
if ((vcount >= 161 && vcount <= 225) || (REG_DISPCNT & DISPCNT_FORCED_BLANK))
|
||||
{
|
||||
CopyBufferedValueToGpuReg(regOffset);
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
s32 i;
|
||||
|
||||
sGpuRegBufferLocked = TRUE;
|
||||
|
||||
for (i = 0; i < GPU_REG_BUF_SIZE && sGpuRegWaitingList[i] != EMPTY_SLOT; i++) {
|
||||
if (sGpuRegWaitingList[i] == regOffset) {
|
||||
for (i = 0; i < GPU_REG_BUF_SIZE && sGpuRegWaitingList[i] != EMPTY_SLOT; i++)
|
||||
{
|
||||
if (sGpuRegWaitingList[i] == regOffset)
|
||||
{
|
||||
sGpuRegBufferLocked = FALSE;
|
||||
return;
|
||||
}
|
||||
@@ -99,15 +103,20 @@ void SetGpuReg_ForcedBlank(u8 regOffset, u16 value)
|
||||
{
|
||||
GPU_REG_BUF(regOffset) = value;
|
||||
|
||||
if (REG_DISPCNT & DISPCNT_FORCED_BLANK) {
|
||||
if (REG_DISPCNT & DISPCNT_FORCED_BLANK)
|
||||
{
|
||||
CopyBufferedValueToGpuReg(regOffset);
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
s32 i;
|
||||
|
||||
sGpuRegBufferLocked = TRUE;
|
||||
|
||||
for (i = 0; i < GPU_REG_BUF_SIZE && sGpuRegWaitingList[i] != EMPTY_SLOT; i++) {
|
||||
if (sGpuRegWaitingList[i] == regOffset) {
|
||||
for (i = 0; i < GPU_REG_BUF_SIZE && sGpuRegWaitingList[i] != EMPTY_SLOT; i++)
|
||||
{
|
||||
if (sGpuRegWaitingList[i] == regOffset)
|
||||
{
|
||||
sGpuRegBufferLocked = FALSE;
|
||||
return;
|
||||
}
|
||||
@@ -144,7 +153,8 @@ void ClearGpuRegBits(u8 regOffset, u16 mask)
|
||||
|
||||
static void SyncRegIE(void)
|
||||
{
|
||||
if (sShouldSyncRegIE) {
|
||||
if (sShouldSyncRegIE)
|
||||
{
|
||||
u16 temp = REG_IME;
|
||||
REG_IME = 0;
|
||||
REG_IE = sRegIE;
|
||||
|
||||
+5
-5
@@ -183,7 +183,7 @@ static void AnimBonemerangProjectileEnd(struct Sprite *sprite)
|
||||
// arg 4: duration
|
||||
void AnimBoneHitProjectile(struct Sprite *sprite)
|
||||
{
|
||||
sub_80A6980(sprite, TRUE);
|
||||
InitSpritePosToAnimTarget(sprite, TRUE);
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
|
||||
|
||||
@@ -205,7 +205,7 @@ void AnimDirtScatter(struct Sprite *sprite)
|
||||
u8 targetXPos, targetYPos;
|
||||
s16 xOffset, yOffset;
|
||||
|
||||
InitAnimSpritePos(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
|
||||
targetXPos = GetBattlerSpriteCoord2(gBattleAnimTarget, 2);
|
||||
targetYPos = GetBattlerSpriteCoord2(gBattleAnimTarget, 3);
|
||||
@@ -306,7 +306,7 @@ static void sub_8114CFC(u8 taskId)
|
||||
{
|
||||
case 0:
|
||||
task->data[10] = GetAnimBattlerSpriteId(0);
|
||||
task->data[11] = sub_80A8364(gBattleAnimAttacker);
|
||||
task->data[11] = GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker);
|
||||
if (task->data[11] == 1)
|
||||
{
|
||||
task->data[12] = gBattle_BG1_X;
|
||||
@@ -375,7 +375,7 @@ static void sub_8114EB4(u8 taskId)
|
||||
gSprites[spriteId].pos2.x = 0;
|
||||
gSprites[spriteId].pos2.y = 0;
|
||||
|
||||
if (sub_80A8364(gBattleAnimAttacker) == 1)
|
||||
if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1)
|
||||
gBattle_BG1_Y = 0;
|
||||
else
|
||||
gBattle_BG2_Y = 0;
|
||||
@@ -422,7 +422,7 @@ static void sub_8114FD8(u8 taskId)
|
||||
{
|
||||
case 0:
|
||||
task->data[10] = GetAnimBattlerSpriteId(0);
|
||||
task->data[11] = sub_80A8364(gBattleAnimAttacker);
|
||||
task->data[11] = GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker);
|
||||
if (task->data[11] == 1)
|
||||
task->data[12] = gBattle_BG1_X;
|
||||
else
|
||||
|
||||
+8
-31
@@ -14,7 +14,9 @@
|
||||
#include "constants/songs.h"
|
||||
#include "decompress.h"
|
||||
#include "save.h"
|
||||
#include "strings.h"
|
||||
#include "window.h"
|
||||
#include "credits.h"
|
||||
#include "bg.h"
|
||||
#include "constants/species.h"
|
||||
#include "constants/game_stat.h"
|
||||
@@ -28,6 +30,7 @@
|
||||
#include "event_data.h"
|
||||
#include "overworld.h"
|
||||
#include "menu.h"
|
||||
#include "fldeff_misc.h"
|
||||
#include "trainer_pokemon_sprites.h"
|
||||
#include "data2.h"
|
||||
#include "rom_81520A8.h"
|
||||
@@ -59,37 +62,11 @@ static EWRAM_DATA u32 sUnknown_0203BCD4 = 0;
|
||||
static EWRAM_DATA struct HallofFameTeam *sHofMonPtr = NULL;
|
||||
static EWRAM_DATA struct HofGfx *sHofGfxPtr = NULL;
|
||||
|
||||
extern bool8 gHasHallOfFameRecords;
|
||||
extern struct MusicPlayerInfo gMPlayInfo_BGM;
|
||||
|
||||
#define HALL_OF_FAME_MAX_TEAMS 50
|
||||
|
||||
// strings
|
||||
extern const u8 gText_SavingDontTurnOffPower[];
|
||||
extern const u8 gText_LeagueChamp[];
|
||||
extern const u8 gText_HOFNumber[];
|
||||
extern const u8 gText_PickNextCancel[];
|
||||
extern const u8 gText_PickCancel[];
|
||||
extern const u8 gText_UnkCtrlF800Exit[];
|
||||
extern const u8 gText_HOFCorrupted[];
|
||||
extern const u8 gText_WelcomeToHOF[];
|
||||
extern const u8 gText_Number[];
|
||||
extern const u8 gText_Level[];
|
||||
extern const u8 gText_IDNumber[];
|
||||
extern const u8 gText_Name[];
|
||||
extern const u8 gText_MainMenuTime[];
|
||||
|
||||
extern void sub_8175620(void);
|
||||
extern bool8 sub_80F9C30(void);
|
||||
extern void sub_8198314(void);
|
||||
extern void ReturnFromHallOfFamePC(void);
|
||||
extern void sub_8198180(const u8 *src, u8, u8);
|
||||
extern void sub_80F9BF4(u16, u16, u8);
|
||||
extern void sub_81980F0(u8, u8, u8, u8, u16);
|
||||
extern void sub_80F9BCC(u16, u16, u8);
|
||||
extern bool8 sub_80F9C1C(void);
|
||||
extern void sub_81971D0(void);
|
||||
extern void sub_8197200(void);
|
||||
|
||||
// this file's functions
|
||||
static void ClearVramOamPltt_LoadHofPal(void);
|
||||
@@ -1088,7 +1065,7 @@ static void Task_HofPC_HandleExit(u8 taskId)
|
||||
|
||||
static void Task_HofPC_PrintDataIsCorrupted(u8 taskId)
|
||||
{
|
||||
sub_8198180(gText_UnkCtrlF800Exit, 8, 1);
|
||||
sub_8198180(gText_UnkCtrlF800Exit, 8, TRUE);
|
||||
NewMenuHelpers_DrawDialogueFrame(0, 0);
|
||||
AddTextPrinterParameterized2(0, 1, gText_HOFCorrupted, 0, NULL, 2, 1, 3);
|
||||
CopyWindowToVram(0, 3);
|
||||
@@ -1283,8 +1260,8 @@ static void sub_8174F70(void)
|
||||
ResetAllPicSprites();
|
||||
FreeAllSpritePalettes();
|
||||
gReservedSpritePaletteCount = 8;
|
||||
LoadCompressedObjectPic(sHallOfFame_ConfettiSpriteSheet);
|
||||
LoadCompressedObjectPalette(sHallOfFame_ConfettiSpritePalette);
|
||||
LoadCompressedSpriteSheet(sHallOfFame_ConfettiSpriteSheet);
|
||||
LoadCompressedSpritePalette(sHallOfFame_ConfettiSpritePalette);
|
||||
}
|
||||
|
||||
static void sub_8174FAC(void)
|
||||
@@ -1475,8 +1452,8 @@ static void sub_8175364(u8 taskId)
|
||||
gSpecialVar_0x8004 = var;
|
||||
gSpecialVar_0x8005 = 0xFFFF;
|
||||
}
|
||||
LoadCompressedObjectPic(sHallOfFame_ConfettiSpriteSheet);
|
||||
LoadCompressedObjectPalette(sHallOfFame_ConfettiSpritePalette);
|
||||
LoadCompressedSpriteSheet(sHallOfFame_ConfettiSpriteSheet);
|
||||
LoadCompressedSpritePalette(sHallOfFame_ConfettiSpritePalette);
|
||||
data[0]++;
|
||||
break;
|
||||
case 1:
|
||||
|
||||
+13
-13
@@ -1044,10 +1044,10 @@ static void Task_IntroLoadPart1Graphics(u8 taskId)
|
||||
SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(2) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(20) | BGCNT_16COLOR | BGCNT_TXT256x512);
|
||||
SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(1) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(18) | BGCNT_16COLOR | BGCNT_TXT256x512);
|
||||
SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(16) | BGCNT_16COLOR | BGCNT_TXT256x512);
|
||||
LoadCompressedObjectPic(gUnknown_085E4FDC);
|
||||
LoadCompressedObjectPic(gUnknown_085E4FEC);
|
||||
LoadCompressedSpriteSheet(gUnknown_085E4FDC);
|
||||
LoadCompressedSpriteSheet(gUnknown_085E4FEC);
|
||||
LoadSpritePalettes(gUnknown_085E4FFC);
|
||||
LoadCompressedObjectPic(gUnknown_085E4A74);
|
||||
LoadCompressedSpriteSheet(gUnknown_085E4A74);
|
||||
LoadSpritePalettes(gUnknown_085E4A84);
|
||||
CpuCopy16(gPlttBufferUnfaded + 0x100, gPlttBufferUnfaded + 0x1F0, 0x20);
|
||||
CpuCopy16(gPlttBufferUnfaded + 0x100, gPlttBufferUnfaded + 0x1E1, 0x1E);
|
||||
@@ -1204,16 +1204,16 @@ static void Task_IntroStartBikeRide(u8 taskId)
|
||||
u8 spriteId;
|
||||
|
||||
if (gUnknown_0203BCC8 == 0)
|
||||
LoadCompressedObjectPic(gIntro2BrendanSpriteSheet);
|
||||
LoadCompressedSpriteSheet(gIntro2BrendanSpriteSheet);
|
||||
else
|
||||
LoadCompressedObjectPic(gIntro2MaySpriteSheet);
|
||||
LoadCompressedSpriteSheet(gIntro2MaySpriteSheet);
|
||||
|
||||
LoadCompressedObjectPic(gIntro2BicycleSpriteSheet);
|
||||
LoadCompressedObjectPic(gIntro2FlygonSpriteSheet);
|
||||
LoadCompressedSpriteSheet(gIntro2BicycleSpriteSheet);
|
||||
LoadCompressedSpriteSheet(gIntro2FlygonSpriteSheet);
|
||||
|
||||
for (spriteId = 0; spriteId < 3; spriteId++)
|
||||
{
|
||||
LoadCompressedObjectPic(&gUnknown_085E4AE8[spriteId]);
|
||||
LoadCompressedSpriteSheet(&gUnknown_085E4AE8[spriteId]);
|
||||
}
|
||||
|
||||
LoadSpritePalettes(gUnknown_085F530C);
|
||||
@@ -1542,8 +1542,8 @@ static void Task_IntroLoadPart1Graphics3(u8 taskId)
|
||||
LZDecompressVram(gIntro3GroudonTilemap, (void *)(VRAM + 0xC000));
|
||||
LZDecompressVram(gIntro3LegendBgGfx, (void *)(VRAM + 0x4000));
|
||||
LZDecompressVram(gIntro3GroudonBgTilemap, (void *)(VRAM + 0xE000));
|
||||
LoadCompressedObjectPicUsingHeap(&gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(ANIM_TAG_ROCKS)]);
|
||||
LoadCompressedObjectPaletteUsingHeap(&gBattleAnimPaletteTable[GET_TRUE_SPRITE_INDEX(ANIM_TAG_ROCKS)]);
|
||||
LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(ANIM_TAG_ROCKS)]);
|
||||
LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[GET_TRUE_SPRITE_INDEX(ANIM_TAG_ROCKS)]);
|
||||
CpuCopy16(gIntro3BgPal, gPlttBufferUnfaded, sizeof(gIntro3BgPal));
|
||||
gTasks[taskId].func = Task_IntroLoadPart1Graphics4;
|
||||
}
|
||||
@@ -1764,7 +1764,7 @@ static void Task_IntroLoadPart1Graphics9(u8 taskId)
|
||||
LZDecompressVram(gIntro3KyogreGfx, (void *)VRAM);
|
||||
LZDecompressVram(gIntro3KyogreTilemap, (void *)(VRAM + 0xC000));
|
||||
LZDecompressVram(gIntro3KyogreBgTilemap, (void *)(VRAM + 0xE000));
|
||||
LoadCompressedObjectPic(gUnknown_085E4C88);
|
||||
LoadCompressedSpriteSheet(gUnknown_085E4C88);
|
||||
LoadSpritePalette(gUnknown_085E4C98);
|
||||
BeginNormalPaletteFade(0xFFFFFFFE, 0, 0x10, 0, RGB_WHITEALPHA);
|
||||
gTasks[taskId].func = Task_IntroFadeIn0;
|
||||
@@ -2092,7 +2092,7 @@ static void Task_IntroFadeIn5(u8 taskId)
|
||||
gTasks[taskId].data[0] = 0;
|
||||
gTasks[taskId].data[6] = 1;
|
||||
gTasks[taskId].data[7] = 0;
|
||||
LoadCompressedObjectPicUsingHeap(gUnknown_085E4BF4);
|
||||
LoadCompressedSpriteSheetUsingHeap(gUnknown_085E4BF4);
|
||||
LoadSpritePalettes(gUnknown_085E4C04);
|
||||
}
|
||||
|
||||
@@ -2169,7 +2169,7 @@ static void Task_IntroFadeIn7(u8 taskId)
|
||||
{
|
||||
u8 newTaskId;
|
||||
|
||||
LoadCompressedObjectPic(gUnknown_085E5048);
|
||||
LoadCompressedSpriteSheet(gUnknown_085E5048);
|
||||
LoadSpritePalettes(gUnknown_085E5058);
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0
|
||||
| DISPCNT_OBJ_1D_MAP
|
||||
|
||||
@@ -341,7 +341,7 @@ void load_intro_part2_graphics(u8 a)
|
||||
LZ77UnCompVram(gUnknown_085F0DBC, (void *)(VRAM));
|
||||
LZ77UnCompVram(gUnknown_085F1398, (void *)(VRAM + 0x3000));
|
||||
LoadPalette(&gUnknown_085F0CFC, 0, 96);
|
||||
LoadCompressedObjectPic(gUnknown_085F5064);
|
||||
LoadCompressedSpriteSheet(gUnknown_085F5064);
|
||||
LoadPalette(&gUnknown_085F1668, 256, 32);
|
||||
sub_817B76C();
|
||||
break;
|
||||
@@ -349,7 +349,7 @@ void load_intro_part2_graphics(u8 a)
|
||||
LZ77UnCompVram(gUnknown_085F1824, (void *)(VRAM));
|
||||
LZ77UnCompVram(gUnknown_085F1EAC, (void *)(VRAM + 0x3000));
|
||||
LoadPalette(&gUnknown_085F17E4, 0, 32);
|
||||
LoadCompressedObjectPic(gUnknown_085F50EC);
|
||||
LoadCompressedSpriteSheet(gUnknown_085F50EC);
|
||||
LoadPalette(&gUnknown_085F21B0, 256, 32);
|
||||
sub_817B788();
|
||||
break;
|
||||
@@ -447,7 +447,7 @@ void sub_817B1C8(u8 a)
|
||||
LZ77UnCompVram(gUnknown_085F0DBC, (void *)(VRAM));
|
||||
LZ77UnCompVram(gUnknown_085F1398, (void *)(VRAM + 0x3000));
|
||||
LoadPalette(&gUnknown_085F0CFC, 0, 96);
|
||||
LoadCompressedObjectPic(gUnknown_085F5064);
|
||||
LoadCompressedSpriteSheet(gUnknown_085F5064);
|
||||
LZ77UnCompVram(gUnknown_085F16A8, (void *)(VRAM + 0x10000));
|
||||
LoadPalette(&gUnknown_085F1668, 256, 32);
|
||||
sub_817B76C();
|
||||
@@ -457,7 +457,7 @@ void sub_817B1C8(u8 a)
|
||||
LZ77UnCompVram(gUnknown_085F0DBC, (void *)(VRAM));
|
||||
LZ77UnCompVram(gUnknown_085F1398, (void *)(VRAM + 0x3000));
|
||||
LoadPalette(&gUnknown_085F0D5C, 0, 96);
|
||||
LoadCompressedObjectPic(gUnknown_085F5064);
|
||||
LoadCompressedSpriteSheet(gUnknown_085F5064);
|
||||
LZ77UnCompVram(gUnknown_085F16A8, (void *)(VRAM + 0x10000));
|
||||
LoadPalette(&gUnknown_085F1688, 256, 32);
|
||||
sub_817B76C();
|
||||
@@ -468,7 +468,7 @@ void sub_817B1C8(u8 a)
|
||||
LZ77UnCompVram(gUnknown_085F1824, (void *)(VRAM));
|
||||
LZ77UnCompVram(gUnknown_085F1EAC, (void *)(VRAM + 0x3000));
|
||||
LoadPalette(&gUnknown_085F1804, 0, 32);
|
||||
LoadCompressedObjectPic(gUnknown_085F50EC);
|
||||
LoadCompressedSpriteSheet(gUnknown_085F50EC);
|
||||
LoadPalette(&gUnknown_085F1804, 256, 32);
|
||||
sub_817B788();
|
||||
break;
|
||||
@@ -477,7 +477,7 @@ void sub_817B1C8(u8 a)
|
||||
LZ77UnCompVram(gUnknown_085F235C, (void *)(VRAM));
|
||||
LZ77UnCompVram(gUnknown_085F2568, (void *)(VRAM + 0x3000));
|
||||
LoadPalette(&gUnknown_085F231C, 0, 64);
|
||||
LoadCompressedObjectPic(gUnknown_085F5180);
|
||||
LoadCompressedSpriteSheet(gUnknown_085F5180);
|
||||
LoadPalette(&gUnknown_085F2548, 256, 32);
|
||||
sub_817B7A4();
|
||||
break;
|
||||
|
||||
+2
-2
@@ -107,7 +107,7 @@ u8 AddItemIconSprite(u16 tilesTag, u16 paletteTag, u16 itemId)
|
||||
|
||||
spritePalette.data = GetItemIconPicOrPalette(itemId, 1);
|
||||
spritePalette.tag = paletteTag;
|
||||
LoadCompressedObjectPalette(&spritePalette);
|
||||
LoadCompressedSpritePalette(&spritePalette);
|
||||
|
||||
spriteTemplate = Alloc(sizeof(*spriteTemplate));
|
||||
CpuCopy16(&gItemIconSpriteTemplate, spriteTemplate, sizeof(*spriteTemplate));
|
||||
@@ -144,7 +144,7 @@ u8 AddCustomItemIconSprite(struct SpriteTemplate *customSpriteTemplate, u16 tile
|
||||
|
||||
spritePalette.data = GetItemIconPicOrPalette(itemId, 1);
|
||||
spritePalette.tag = paletteTag;
|
||||
LoadCompressedObjectPalette(&spritePalette);
|
||||
LoadCompressedSpritePalette(&spritePalette);
|
||||
|
||||
spriteTemplate = Alloc(sizeof(*spriteTemplate));
|
||||
CpuCopy16(customSpriteTemplate, spriteTemplate, sizeof(*spriteTemplate));
|
||||
|
||||
+4
-4
@@ -713,13 +713,13 @@ bool8 load_bag_menu_graphics(void)
|
||||
break;
|
||||
case 3:
|
||||
if (IsWallysBag() == TRUE || gSaveBlock2Ptr->playerGender == MALE)
|
||||
LoadCompressedObjectPic(&gUnknown_0857FB34);
|
||||
LoadCompressedSpriteSheet(&gUnknown_0857FB34);
|
||||
else
|
||||
LoadCompressedObjectPic(&gUnknown_0857FB3C);
|
||||
LoadCompressedSpriteSheet(&gUnknown_0857FB3C);
|
||||
gUnknown_0203CE54->unk834++;
|
||||
break;
|
||||
case 4:
|
||||
LoadCompressedObjectPalette(&gUnknown_0857FB44);
|
||||
LoadCompressedSpritePalette(&gUnknown_0857FB44);
|
||||
gUnknown_0203CE54->unk834++;
|
||||
break;
|
||||
default:
|
||||
@@ -1564,7 +1564,7 @@ void Task_HandleOutOfBattleItemMenuInput(u8 taskId)
|
||||
{
|
||||
if (sub_81221EC() != TRUE)
|
||||
{
|
||||
s8 cursorPos = GetMenuCursorPos();
|
||||
s8 cursorPos = Menu_GetCursorPos();
|
||||
if (gMain.newKeys & DPAD_UP)
|
||||
{
|
||||
if (cursorPos > 0 && sub_81ACDFC(cursorPos - 2))
|
||||
|
||||
@@ -583,7 +583,7 @@ static void sub_80D5070(u8 berryId)
|
||||
|
||||
pal.data = gBerryPicTable[berryId].pal;
|
||||
pal.tag = 0x7544;
|
||||
LoadCompressedObjectPalette(&pal);
|
||||
LoadCompressedSpritePalette(&pal);
|
||||
LZDecompressWram(gBerryPicTable[berryId].tiles, &gDecompressionBuffer[0x1000]);
|
||||
sub_80D5018(&gDecompressionBuffer[0x1000], &gDecompressionBuffer[0]);
|
||||
}
|
||||
|
||||
+2
-2
@@ -38,7 +38,7 @@
|
||||
#include "constants/vars.h"
|
||||
|
||||
extern void(*gUnknown_0203A0F4)(u8 taskId);
|
||||
extern void (*gUnknown_03006328)(u8, u16, TaskFunc);
|
||||
extern void (*gUnknown_03006328)(u8, TaskFunc);
|
||||
extern void unknown_ItemMenu_Confirm(u8 taskId);
|
||||
extern void sub_81C5B14(u8 taskId);
|
||||
extern void ScriptUnfreezeEventObjects(void);
|
||||
@@ -52,7 +52,7 @@ extern u8 BattleFrontier_OutsideEast_EventScript_242CFC[];
|
||||
extern int sub_80247BC(void);
|
||||
extern struct MapHeader* mapconnection_get_mapheader(struct MapConnection *connection);
|
||||
extern void SetUpItemUseCallback(u8 taskId);
|
||||
extern void ItemUseCB_Medicine(u8, u16, TaskFunc);
|
||||
extern void ItemUseCB_Medicine(u8, TaskFunc);
|
||||
extern void bag_menu_yes_no(u8, u8, const struct YesNoFuncTable*);
|
||||
extern void sub_81C5924(void);
|
||||
extern void sub_81C59BC(void);
|
||||
|
||||
+3
-1
@@ -5,7 +5,9 @@
|
||||
#include "global.h"
|
||||
#include "main.h"
|
||||
#include "overworld.h"
|
||||
#include "rom6.h"
|
||||
#include "fldeff.h"
|
||||
#include "field_specials.h"
|
||||
#include "pokeblock.h"
|
||||
#include "event_data.h"
|
||||
#include "script.h"
|
||||
#include "random.h"
|
||||
|
||||
+1
-1
@@ -2244,7 +2244,7 @@ void sub_800E0E8(void)
|
||||
{
|
||||
if (GetSpriteTileStartByTag(sWirelessStatusIndicatorSpriteSheet.tag) == 0xFFFF)
|
||||
{
|
||||
LoadCompressedObjectPic(&sWirelessStatusIndicatorSpriteSheet);
|
||||
LoadCompressedSpriteSheet(&sWirelessStatusIndicatorSpriteSheet);
|
||||
}
|
||||
LoadSpritePalette(&sWirelessStatusIndicatorSpritePalette);
|
||||
gWirelessStatusIndicatorSpriteId = 0xFF;
|
||||
|
||||
+3
-3
@@ -1074,7 +1074,7 @@ u8 AddScrollIndicatorArrowPair(const struct ScrollArrowsTemplate *arrowInfo, u16
|
||||
spriteSheet.data = sRedArrowOtherGfx;
|
||||
spriteSheet.size = 0x100;
|
||||
spriteSheet.tag = arrowInfo->tileTag;
|
||||
LoadCompressedObjectPic(&spriteSheet);
|
||||
LoadCompressedSpriteSheet(&spriteSheet);
|
||||
|
||||
if (arrowInfo->palTag == SPRITE_INVALID_TAG)
|
||||
{
|
||||
@@ -1320,7 +1320,7 @@ static u8 ListMenuAddRedOutlineCursorObject(struct CursorStruct *cursor)
|
||||
spriteSheet.data = sSelectorOutlineGfx;
|
||||
spriteSheet.size = 0x100;
|
||||
spriteSheet.tag = cursor->tileTag;
|
||||
LoadCompressedObjectPic(&spriteSheet);
|
||||
LoadCompressedSpriteSheet(&spriteSheet);
|
||||
|
||||
if (cursor->palTag == SPRITE_INVALID_TAG)
|
||||
{
|
||||
@@ -1405,7 +1405,7 @@ static u8 ListMenuAddRedArrowCursorObject(struct CursorStruct *cursor)
|
||||
spriteSheet.data = sRedArrowGfx;
|
||||
spriteSheet.size = 0x80;
|
||||
spriteSheet.tag = cursor->tileTag;
|
||||
LoadCompressedObjectPic(&spriteSheet);
|
||||
LoadCompressedSpriteSheet(&spriteSheet);
|
||||
|
||||
if (cursor->palTag == SPRITE_INVALID_TAG)
|
||||
{
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#include "load_save.h"
|
||||
#include "main.h"
|
||||
#include "pokemon.h"
|
||||
#include "pokemon_storage_system.h"
|
||||
#include "random.h"
|
||||
#include "alloc.h"
|
||||
#include "item.h"
|
||||
|
||||
+1
-1
@@ -1394,7 +1394,7 @@ static void Task_NewGameBirchSpeech_ChooseGender(u8 taskId)
|
||||
gTasks[taskId].func = Task_NewGameBirchSpeech_WhatsYourName;
|
||||
break;
|
||||
}
|
||||
gender2 = GetMenuCursorPos();
|
||||
gender2 = Menu_GetCursorPos();
|
||||
if (gender2 != gTasks[taskId].tPlayerGender)
|
||||
{
|
||||
gTasks[taskId].tPlayerGender = gender2;
|
||||
|
||||
+19
-19
@@ -132,7 +132,7 @@ extern void sub_8197BB4(u8, u8, u8, u8, u8, u8);
|
||||
extern void sub_8197E30(u8, u8, u8, u8, u8, u8);
|
||||
extern void DrawWindowBorder(u8, u8, u8, u8, u8, u8);
|
||||
extern void sub_81980A8(u8, u8, u8, u8, u8, u8);
|
||||
extern u8 MoveMenuCursor(s8);
|
||||
extern u8 Menu_MoveCursor(s8);
|
||||
extern u8 sub_8199134(s8, s8);
|
||||
extern void sub_8198C78(void);
|
||||
extern void task_free_buf_after_copying_tile_data_to_vram(u8 taskId);
|
||||
@@ -910,7 +910,7 @@ u8 sub_8198348(u8 windowId, u8 fontId, u8 left, u8 top, u8 cursorHeight, u8 numC
|
||||
else
|
||||
gUnknown_0203CD90.cursorPos = pos;
|
||||
|
||||
MoveMenuCursor(0);
|
||||
Menu_MoveCursor(0);
|
||||
return gUnknown_0203CD90.cursorPos;
|
||||
}
|
||||
|
||||
@@ -935,7 +935,7 @@ void RedrawMenuCursor(u8 oldPos, u8 newPos)
|
||||
AddTextPrinterParameterized(gUnknown_0203CD90.windowId, gUnknown_0203CD90.fontId, gText_SelectorArrow3, gUnknown_0203CD90.left, gUnknown_0203CD90.optionHeight * newPos + gUnknown_0203CD90.top, 0, 0);
|
||||
}
|
||||
|
||||
u8 MoveMenuCursor(s8 cursorDelta)
|
||||
u8 Menu_MoveCursor(s8 cursorDelta)
|
||||
{
|
||||
u8 oldPos = gUnknown_0203CD90.cursorPos;
|
||||
int newPos = gUnknown_0203CD90.cursorPos + cursorDelta;
|
||||
@@ -951,7 +951,7 @@ u8 MoveMenuCursor(s8 cursorDelta)
|
||||
return gUnknown_0203CD90.cursorPos;
|
||||
}
|
||||
|
||||
u8 MoveMenuCursorNoWrapAround(s8 cursorDelta)
|
||||
u8 Menu_MoveCursorNoWrapAround(s8 cursorDelta)
|
||||
{
|
||||
u8 oldPos = gUnknown_0203CD90.cursorPos;
|
||||
int newPos = gUnknown_0203CD90.cursorPos + cursorDelta;
|
||||
@@ -967,7 +967,7 @@ u8 MoveMenuCursorNoWrapAround(s8 cursorDelta)
|
||||
return gUnknown_0203CD90.cursorPos;
|
||||
}
|
||||
|
||||
u8 GetMenuCursorPos(void)
|
||||
u8 Menu_GetCursorPos(void)
|
||||
{
|
||||
return gUnknown_0203CD90.cursorPos;
|
||||
}
|
||||
@@ -987,13 +987,13 @@ s8 Menu_ProcessInput(void)
|
||||
else if (gMain.newKeys & DPAD_UP)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
MoveMenuCursor(-1);
|
||||
Menu_MoveCursor(-1);
|
||||
return MENU_NOTHING_CHOSEN;
|
||||
}
|
||||
else if (gMain.newKeys & DPAD_DOWN)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
MoveMenuCursor(1);
|
||||
Menu_MoveCursor(1);
|
||||
return MENU_NOTHING_CHOSEN;
|
||||
}
|
||||
|
||||
@@ -1016,13 +1016,13 @@ s8 Menu_ProcessInputNoWrap(void)
|
||||
}
|
||||
else if (gMain.newKeys & DPAD_UP)
|
||||
{
|
||||
if (oldPos != MoveMenuCursorNoWrapAround(-1))
|
||||
if (oldPos != Menu_MoveCursorNoWrapAround(-1))
|
||||
PlaySE(SE_SELECT);
|
||||
return MENU_NOTHING_CHOSEN;
|
||||
}
|
||||
else if (gMain.newKeys & DPAD_DOWN)
|
||||
{
|
||||
if (oldPos != MoveMenuCursorNoWrapAround(1))
|
||||
if (oldPos != Menu_MoveCursorNoWrapAround(1))
|
||||
PlaySE(SE_SELECT);
|
||||
return MENU_NOTHING_CHOSEN;
|
||||
}
|
||||
@@ -1045,13 +1045,13 @@ s8 ProcessMenuInput_other(void)
|
||||
else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_UP)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
MoveMenuCursor(-1);
|
||||
Menu_MoveCursor(-1);
|
||||
return MENU_NOTHING_CHOSEN;
|
||||
}
|
||||
else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_DOWN)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
MoveMenuCursor(1);
|
||||
Menu_MoveCursor(1);
|
||||
return MENU_NOTHING_CHOSEN;
|
||||
}
|
||||
|
||||
@@ -1074,13 +1074,13 @@ s8 Menu_ProcessInputNoWrapAround_other(void)
|
||||
}
|
||||
else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_UP)
|
||||
{
|
||||
if (oldPos != MoveMenuCursorNoWrapAround(-1))
|
||||
if (oldPos != Menu_MoveCursorNoWrapAround(-1))
|
||||
PlaySE(SE_SELECT);
|
||||
return MENU_NOTHING_CHOSEN;
|
||||
}
|
||||
else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_DOWN)
|
||||
{
|
||||
if (oldPos != MoveMenuCursorNoWrapAround(1))
|
||||
if (oldPos != Menu_MoveCursorNoWrapAround(1))
|
||||
PlaySE(SE_SELECT);
|
||||
return MENU_NOTHING_CHOSEN;
|
||||
}
|
||||
@@ -1588,7 +1588,7 @@ u8 InitMenuInUpperLeftCorner(u8 windowId, u8 itemCount, u8 initialCursorPos, boo
|
||||
else
|
||||
gUnknown_0203CD90.cursorPos = pos;
|
||||
|
||||
return MoveMenuCursor(0);
|
||||
return Menu_MoveCursor(0);
|
||||
}
|
||||
|
||||
u8 InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 windowId, u8 itemCount, u8 initialCursorPos)
|
||||
@@ -1797,9 +1797,9 @@ bool8 free_temp_tile_data_buffers_if_possible(void)
|
||||
}
|
||||
}
|
||||
|
||||
void *decompress_and_copy_tile_data_to_vram(u8 bgId, const void *src, int size, u16 offset, u8 mode)
|
||||
void *decompress_and_copy_tile_data_to_vram(u8 bgId, const void *src, u32 size, u16 offset, u8 mode)
|
||||
{
|
||||
int sizeOut;
|
||||
u32 sizeOut;
|
||||
if (gUnknown_0203CDA8 < ARRAY_COUNT(gUnknown_0203CDAC))
|
||||
{
|
||||
void *ptr = malloc_and_decompress(src, &sizeOut);
|
||||
@@ -1815,9 +1815,9 @@ void *decompress_and_copy_tile_data_to_vram(u8 bgId, const void *src, int size,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void *src, int size, u16 offset, u8 mode)
|
||||
void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void *src, u32 size, u16 offset, u8 mode)
|
||||
{
|
||||
int sizeOut;
|
||||
u32 sizeOut;
|
||||
void *ptr = malloc_and_decompress(src, &sizeOut);
|
||||
if (!size)
|
||||
size = sizeOut;
|
||||
@@ -1838,7 +1838,7 @@ void task_free_buf_after_copying_tile_data_to_vram(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
void *malloc_and_decompress(const void *src, int *size)
|
||||
void *malloc_and_decompress(const void *src, u32 *size)
|
||||
{
|
||||
void *ptr;
|
||||
u8 *sizeAsBytes = (u8 *)size;
|
||||
|
||||
+2
-2
@@ -394,8 +394,8 @@ void sub_8122298(u16 *arg0, u16 *arg1, u8 arg2, u8 arg3, u8 arg4)
|
||||
|
||||
void LoadListMenuArrowsGfx(void)
|
||||
{
|
||||
LoadCompressedObjectPic(&gUnknown_0859F514);
|
||||
LoadCompressedObjectPalette(&gUnknown_0859F51C);
|
||||
LoadCompressedSpriteSheet(&gUnknown_0859F514);
|
||||
LoadCompressedSpritePalette(&gUnknown_0859F51C);
|
||||
}
|
||||
|
||||
void sub_8122344(u8 *spriteIds, u8 count)
|
||||
|
||||
@@ -390,7 +390,6 @@ void sub_811FAF8(void)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool8 sub_811FBA4(void)
|
||||
{
|
||||
u16 i;
|
||||
|
||||
+2
-2
@@ -186,8 +186,8 @@ void HideMoneyBox(void)
|
||||
|
||||
void AddMoneyLabelObject(u16 x, u16 y)
|
||||
{
|
||||
LoadCompressedObjectPic(&sSpriteSheet_MoneyLabel);
|
||||
LoadCompressedObjectPalette(&sSpritePalette_MoneyLabel);
|
||||
LoadCompressedSpriteSheet(&sSpriteSheet_MoneyLabel);
|
||||
LoadCompressedSpritePalette(&sSpritePalette_MoneyLabel);
|
||||
sMoneyLabelSpriteId = CreateSprite(&sSpriteTemplate_MoneyLabel, x, y, 0);
|
||||
}
|
||||
|
||||
|
||||
+10
-10
@@ -880,9 +880,9 @@ void sub_8116388(struct Sprite *sprite)
|
||||
{
|
||||
StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]);
|
||||
if (gBattleAnimArgs[2] == 0)
|
||||
InitAnimSpritePos(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
else
|
||||
sub_80A6980(sprite, TRUE);
|
||||
InitSpritePosToAnimTarget(sprite, TRUE);
|
||||
|
||||
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
@@ -892,9 +892,9 @@ static void sub_81163D0(struct Sprite *sprite)
|
||||
{
|
||||
StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]);
|
||||
if (gBattleAnimArgs[2] == 0)
|
||||
InitAnimSpritePos(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
else
|
||||
sub_80A6980(sprite, TRUE);
|
||||
InitSpritePosToAnimTarget(sprite, TRUE);
|
||||
|
||||
sprite->data[0] = gBattleAnimArgs[4];
|
||||
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
|
||||
@@ -916,9 +916,9 @@ void sub_8116458(struct Sprite *sprite)
|
||||
|
||||
StartSpriteAffineAnim(sprite, gBattleAnimArgs[1]);
|
||||
if (gBattleAnimArgs[0] == 0)
|
||||
InitAnimSpritePos(sprite, 0);
|
||||
InitSpritePosToAnimAttacker(sprite, 0);
|
||||
else
|
||||
sub_80A6980(sprite, FALSE);
|
||||
InitSpritePosToAnimTarget(sprite, FALSE);
|
||||
|
||||
sprite->pos2.x += (Random2() % 48) - 24;
|
||||
sprite->pos2.y += (Random2() % 24) - 12;
|
||||
@@ -942,9 +942,9 @@ void sub_81164F0(struct Sprite *sprite)
|
||||
void sub_8116560(struct Sprite *sprite)
|
||||
{
|
||||
if (gBattleAnimArgs[2] == 0)
|
||||
InitAnimSpritePos(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
else
|
||||
sub_80A6980(sprite, TRUE);
|
||||
InitSpritePosToAnimTarget(sprite, TRUE);
|
||||
|
||||
sprite->data[0] = gBattleAnimArgs[3];
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
@@ -955,9 +955,9 @@ void sub_81165A8(struct Sprite *sprite)
|
||||
{
|
||||
StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]);
|
||||
if (gBattleAnimArgs[2] == 0)
|
||||
InitAnimSpritePos(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
else
|
||||
sub_80A6980(sprite, TRUE);
|
||||
InitSpritePosToAnimTarget(sprite, TRUE);
|
||||
|
||||
sprite->callback = sub_81165E4;
|
||||
}
|
||||
|
||||
+1
-1
@@ -1340,7 +1340,7 @@ void UpdateAmbientCry(s16 *state, u16 *delayCounter)
|
||||
monsCount = CalculatePlayerPartyCount();
|
||||
for (i = 0; i < monsCount; i++)
|
||||
{
|
||||
if (!GetMonData(&gPlayerParty[i], MON_DATA_SANITY_BIT3)
|
||||
if (!GetMonData(&gPlayerParty[i], MON_DATA_SANITY_IS_EGG)
|
||||
&& GetMonAbility(&gPlayerParty[0]) == ABILITY_SWARM)
|
||||
{
|
||||
divBy = 2;
|
||||
|
||||
Executable
+7434
File diff suppressed because it is too large
Load Diff
+2
-2
@@ -461,9 +461,9 @@ static void ItemStorageMenuProcessInput(u8 taskId)
|
||||
s8 r2;
|
||||
s8 inputOptionId;
|
||||
|
||||
r5 = GetMenuCursorPos();
|
||||
r5 = Menu_GetCursorPos();
|
||||
inputOptionId = Menu_ProcessInput();
|
||||
r2 = GetMenuCursorPos();
|
||||
r2 = Menu_GetCursorPos();
|
||||
switch(inputOptionId)
|
||||
{
|
||||
case -2:
|
||||
|
||||
+4
-4
@@ -194,7 +194,7 @@ void sub_810DBAC(struct Sprite *sprite)
|
||||
if (!gBattleAnimArgs[3])
|
||||
StartSpriteAnim(sprite, 2);
|
||||
|
||||
InitAnimSpritePos(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
|
||||
sprite->data[0] = gBattleAnimArgs[2];
|
||||
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
|
||||
@@ -218,7 +218,7 @@ void sub_810DC2C(struct Sprite *sprite)
|
||||
if (!gBattleAnimArgs[3])
|
||||
StartSpriteAnim(sprite, 2);
|
||||
|
||||
InitAnimSpritePos(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
SetAverageBattlerPositions(gBattleAnimTarget, 1, &l1, &l2);
|
||||
|
||||
if (GetBattlerSide(gBattleAnimAttacker))
|
||||
@@ -258,7 +258,7 @@ void sub_810DCD0(struct Sprite *sprite)
|
||||
|
||||
static void sub_810DD24(struct Sprite *sprite)
|
||||
{
|
||||
TranslateAnimLinearSimple(sprite);
|
||||
AnimTranslateLinearSimple(sprite);
|
||||
|
||||
sprite->data[1] -= sprite->data[5];
|
||||
sprite->data[2] -= sprite->data[6];
|
||||
@@ -295,7 +295,7 @@ void AnimBubbleEffect(struct Sprite *sprite)
|
||||
{
|
||||
if (!gBattleAnimArgs[2])
|
||||
{
|
||||
sub_80A6980(sprite, TRUE);
|
||||
InitSpritePosToAnimTarget(sprite, TRUE);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
+7
-7
@@ -922,7 +922,7 @@ static void SpriteCB_PlayerMonSendOut_2(struct Sprite *sprite)
|
||||
StartSpriteAffineAnim(sprite, 4);
|
||||
}
|
||||
r4 = sprite->data[0];
|
||||
TranslateAnimLinear(sprite);
|
||||
AnimTranslateLinear(sprite);
|
||||
sprite->data[7] += sprite->sBattler / 3;
|
||||
sprite->pos2.y += Sin(HIBYTE(sprite->data[7]), sprite->data[5]);
|
||||
sprite->oam.affineParam += 0x100;
|
||||
@@ -999,8 +999,8 @@ void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 battlerId, u8 x, u8 y,
|
||||
{
|
||||
u8 spriteId;
|
||||
|
||||
LoadCompressedObjectPicUsingHeap(&gBallSpriteSheets[0]);
|
||||
LoadCompressedObjectPaletteUsingHeap(&gBallSpritePalettes[0]);
|
||||
LoadCompressedSpriteSheetUsingHeap(&gBallSpriteSheets[0]);
|
||||
LoadCompressedSpritePaletteUsingHeap(&gBallSpritePalettes[0]);
|
||||
spriteId = CreateSprite(&gBallSpriteTemplates[0], x, y, subpriortiy);
|
||||
|
||||
gSprites[spriteId].data[0] = monSpriteId;
|
||||
@@ -1101,8 +1101,8 @@ u8 sub_807671C(u8 a, u8 b, u8 x, u8 y, u8 oamPriority, u8 subPriority, u8 g, u32
|
||||
{
|
||||
u8 spriteId;
|
||||
|
||||
LoadCompressedObjectPicUsingHeap(&gBallSpriteSheets[0]);
|
||||
LoadCompressedObjectPaletteUsingHeap(&gBallSpritePalettes[0]);
|
||||
LoadCompressedSpriteSheetUsingHeap(&gBallSpriteSheets[0]);
|
||||
LoadCompressedSpritePaletteUsingHeap(&gBallSpritePalettes[0]);
|
||||
spriteId = CreateSprite(&gBallSpriteTemplates[0], x, y, subPriority);
|
||||
gSprites[spriteId].data[0] = a;
|
||||
gSprites[spriteId].data[1] = g;
|
||||
@@ -1245,8 +1245,8 @@ void LoadBallGfx(u8 ballId)
|
||||
|
||||
if (GetSpriteTileStartByTag(gBallSpriteSheets[ballId].tag) == 0xFFFF)
|
||||
{
|
||||
LoadCompressedObjectPicUsingHeap(&gBallSpriteSheets[ballId]);
|
||||
LoadCompressedObjectPaletteUsingHeap(&gBallSpritePalettes[ballId]);
|
||||
LoadCompressedSpriteSheetUsingHeap(&gBallSpriteSheets[ballId]);
|
||||
LoadCompressedSpritePaletteUsingHeap(&gBallSpritePalettes[ballId]);
|
||||
}
|
||||
switch (ballId)
|
||||
{
|
||||
|
||||
+5
-8
@@ -1,4 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "alloc.h"
|
||||
#include "battle.h"
|
||||
#include "battle_controllers.h"
|
||||
#include "battle_message.h"
|
||||
@@ -6,14 +7,15 @@
|
||||
#include "bg.h"
|
||||
#include "decompress.h"
|
||||
#include "event_data.h"
|
||||
#include "field_screen_effect.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "graphics.h"
|
||||
#include "international_string_util.h"
|
||||
#include "item.h"
|
||||
#include "item_menu.h"
|
||||
#include "lilycove_lady.h"
|
||||
#include "list_menu.h"
|
||||
#include "main.h"
|
||||
#include "alloc.h"
|
||||
#include "menu.h"
|
||||
#include "menu_helpers.h"
|
||||
#include "overworld.h"
|
||||
@@ -70,14 +72,9 @@ enum
|
||||
PKBL_GIVE_TO_LADY
|
||||
};
|
||||
|
||||
extern u16 gSpecialVar_ItemId;
|
||||
|
||||
extern const u16 gUnknown_0860F074[];
|
||||
|
||||
extern void CB2_ReturnToField(void);
|
||||
extern bool8 sub_81221EC(void);
|
||||
extern void sub_80AF168(void);
|
||||
|
||||
// this file's functions
|
||||
static void CB2_InitPokeblockMenu(void);
|
||||
static bool8 InitPokeblockMenu(void);
|
||||
@@ -640,11 +637,11 @@ static bool8 LoadPokeblockMenuGfx(void)
|
||||
sPokeblockMenu->gfxState++;
|
||||
break;
|
||||
case 3:
|
||||
LoadCompressedObjectPic(&gPokeblockCase_SpriteSheet);
|
||||
LoadCompressedSpriteSheet(&gPokeblockCase_SpriteSheet);
|
||||
sPokeblockMenu->gfxState++;
|
||||
break;
|
||||
case 4:
|
||||
LoadCompressedObjectPalette(&gPokeblockCase_SpritePal);
|
||||
LoadCompressedSpritePalette(&gPokeblockCase_SpritePal);
|
||||
sPokeblockMenu->gfxState++;
|
||||
break;
|
||||
case 5:
|
||||
|
||||
@@ -656,25 +656,25 @@ static bool8 LoadMonAndSceneGfx(struct Pokemon *mon)
|
||||
trainerId = GetMonData(mon, MON_DATA_OT_ID);
|
||||
palette = GetMonSpritePalStructFromOtIdPersonality(species, trainerId, personality);
|
||||
|
||||
LoadCompressedObjectPalette(palette);
|
||||
LoadCompressedSpritePalette(palette);
|
||||
SetMultiuseSpriteTemplateToPokemon(palette->tag, 1);
|
||||
sPokeblockFeed->loadGfxState++;
|
||||
break;
|
||||
case 2:
|
||||
LoadCompressedObjectPic(&gPokeblockCase_SpriteSheet);
|
||||
LoadCompressedSpriteSheet(&gPokeblockCase_SpriteSheet);
|
||||
sPokeblockFeed->loadGfxState++;
|
||||
break;
|
||||
case 3:
|
||||
LoadCompressedObjectPalette(&gPokeblockCase_SpritePal);
|
||||
LoadCompressedSpritePalette(&gPokeblockCase_SpritePal);
|
||||
sPokeblockFeed->loadGfxState++;
|
||||
break;
|
||||
case 4:
|
||||
LoadCompressedObjectPic(&sPokeblock_SpriteSheet);
|
||||
LoadCompressedSpriteSheet(&sPokeblock_SpriteSheet);
|
||||
sPokeblockFeed->loadGfxState++;
|
||||
break;
|
||||
case 5:
|
||||
SetPokeblockSpritePal(gSpecialVar_ItemId);
|
||||
LoadCompressedObjectPalette(&sPokeblockSpritePal);
|
||||
LoadCompressedSpritePalette(&sPokeblockSpritePal);
|
||||
sPokeblockFeed->loadGfxState++;
|
||||
break;
|
||||
case 6:
|
||||
|
||||
+2
-2
@@ -1803,7 +1803,7 @@ bool8 sub_80BC514(u8 a)
|
||||
ResetSpriteData();
|
||||
FreeAllSpritePalettes();
|
||||
gReservedSpritePaletteCount = 8;
|
||||
LoadCompressedObjectPic(&sInterfaceSpriteSheet[0]);
|
||||
LoadCompressedSpriteSheet(&sInterfaceSpriteSheet[0]);
|
||||
LoadSpritePalettes(sInterfaceSpritePalette);
|
||||
CreateInterfaceSprites(a);
|
||||
gMain.state++;
|
||||
@@ -4815,7 +4815,7 @@ void sub_80C12E0(u8 taskId)
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
LoadCompressedObjectPic(sInterfaceSpriteSheet);
|
||||
LoadCompressedSpriteSheet(sInterfaceSpriteSheet);
|
||||
LoadSpritePalettes(sInterfaceSpritePalette);
|
||||
sub_80C2594(taskId);
|
||||
for (i = 0; i < 16; i++)
|
||||
|
||||
+31
-35
@@ -1,4 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "alloc.h"
|
||||
#include "apprentice.h"
|
||||
#include "battle.h"
|
||||
#include "battle_controllers.h"
|
||||
@@ -12,12 +13,14 @@
|
||||
#include "item.h"
|
||||
#include "link.h"
|
||||
#include "main.h"
|
||||
#include "alloc.h"
|
||||
#include "overworld.h"
|
||||
#include "m4a.h"
|
||||
#include "party_menu.h"
|
||||
#include "pokedex.h"
|
||||
#include "pokeblock.h"
|
||||
#include "pokemon.h"
|
||||
#include "pokemon_animation.h"
|
||||
#include "pokemon_summary_screen.h"
|
||||
#include "pokemon_storage_system.h"
|
||||
#include "pokenav.h"
|
||||
#include "random.h"
|
||||
@@ -45,8 +48,6 @@ struct SpeciesItem
|
||||
u16 item;
|
||||
};
|
||||
|
||||
extern const struct OamData gUnknown_0831ACB0;
|
||||
extern const struct OamData gUnknown_0831ACA8;
|
||||
extern const struct SpriteFrameImage gUnknown_082FF3A8[];
|
||||
extern const struct SpriteFrameImage gUnknown_082FF3C8[];
|
||||
extern const struct SpriteFrameImage gUnknown_082FF3E8[];
|
||||
@@ -70,15 +71,10 @@ extern const struct CompressedSpritePalette gMonPaletteTable[];
|
||||
extern const struct CompressedSpritePalette gMonShinyPaletteTable[];
|
||||
extern const u8 gTrainerClassNames[][13];
|
||||
|
||||
extern u8 pokemon_order_func(u8);
|
||||
extern u16 get_unknown_box_id(void);
|
||||
extern u8 StorageGetCurrentBox(void);
|
||||
extern void set_unknown_box_id(u8);
|
||||
extern void sub_803FA70(u8 battlerId);
|
||||
extern u8 sav1_map_get_name(void);
|
||||
extern bool8 sub_806F104(void);
|
||||
extern u8 sub_81D63C8(u16 trainerOpponentId);
|
||||
extern void SummaryScreen_SetUnknownTaskId(u8);
|
||||
|
||||
// this file's functions
|
||||
static u16 CalculateBoxMonChecksum(struct BoxPokemon *boxMon);
|
||||
@@ -2298,7 +2294,7 @@ const struct SpriteTemplate gUnknown_08329D98[MAX_BATTLERS_COUNT] =
|
||||
{ // B_POSITION_PLAYER_LEFT
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = 0,
|
||||
.oam = &gUnknown_0831ACB0,
|
||||
.oam = &gOamData_831ACB0,
|
||||
.anims = NULL,
|
||||
.images = gUnknown_082FF3A8,
|
||||
.affineAnims = gUnknown_082FF618,
|
||||
@@ -2307,16 +2303,16 @@ const struct SpriteTemplate gUnknown_08329D98[MAX_BATTLERS_COUNT] =
|
||||
{ // B_POSITION_OPPONENT_LEFT
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = 0,
|
||||
.oam = &gUnknown_0831ACA8,
|
||||
.oam = &gOamData_831ACA8,
|
||||
.anims = NULL,
|
||||
.images = gUnknown_082FF3C8,
|
||||
.affineAnims = gUnknown_082FF694,
|
||||
.callback = oac_poke_opponent,
|
||||
.callback = SpriteCb_WildMon,
|
||||
},
|
||||
{ // B_POSITION_PLAYER_RIGHT
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = 0,
|
||||
.oam = &gUnknown_0831ACB0,
|
||||
.oam = &gOamData_831ACB0,
|
||||
.anims = NULL,
|
||||
.images = gUnknown_082FF3E8,
|
||||
.affineAnims = gUnknown_082FF618,
|
||||
@@ -2325,11 +2321,11 @@ const struct SpriteTemplate gUnknown_08329D98[MAX_BATTLERS_COUNT] =
|
||||
{ // B_POSITION_OPPONENT_RIGHT
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = 0,
|
||||
.oam = &gUnknown_0831ACA8,
|
||||
.oam = &gOamData_831ACA8,
|
||||
.anims = NULL,
|
||||
.images = gUnknown_082FF408,
|
||||
.affineAnims = gUnknown_082FF694,
|
||||
.callback = oac_poke_opponent
|
||||
.callback = SpriteCb_WildMon
|
||||
},
|
||||
};
|
||||
|
||||
@@ -2338,7 +2334,7 @@ static const struct SpriteTemplate gUnknown_08329DF8[] =
|
||||
{
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = 0,
|
||||
.oam = &gUnknown_0831ACB0,
|
||||
.oam = &gOamData_831ACB0,
|
||||
.anims = NULL,
|
||||
.images = gUnknown_082FF428,
|
||||
.affineAnims = gUnknown_082FF618,
|
||||
@@ -2347,7 +2343,7 @@ static const struct SpriteTemplate gUnknown_08329DF8[] =
|
||||
{
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = 0,
|
||||
.oam = &gUnknown_0831ACB0,
|
||||
.oam = &gOamData_831ACB0,
|
||||
.anims = NULL,
|
||||
.images = gUnknown_082FF448,
|
||||
.affineAnims = gUnknown_082FF618,
|
||||
@@ -2356,7 +2352,7 @@ static const struct SpriteTemplate gUnknown_08329DF8[] =
|
||||
{
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = 0,
|
||||
.oam = &gUnknown_0831ACB0,
|
||||
.oam = &gOamData_831ACB0,
|
||||
.anims = NULL,
|
||||
.images = gUnknown_082FF468,
|
||||
.affineAnims = gUnknown_082FF618,
|
||||
@@ -2365,7 +2361,7 @@ static const struct SpriteTemplate gUnknown_08329DF8[] =
|
||||
{
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = 0,
|
||||
.oam = &gUnknown_0831ACB0,
|
||||
.oam = &gOamData_831ACB0,
|
||||
.anims = NULL,
|
||||
.images = gUnknown_082FF490,
|
||||
.affineAnims = gUnknown_082FF618,
|
||||
@@ -2374,7 +2370,7 @@ static const struct SpriteTemplate gUnknown_08329DF8[] =
|
||||
{
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = 0,
|
||||
.oam = &gUnknown_0831ACB0,
|
||||
.oam = &gOamData_831ACB0,
|
||||
.anims = NULL,
|
||||
.images = gUnknown_082FF4B8,
|
||||
.affineAnims = gUnknown_082FF618,
|
||||
@@ -2383,7 +2379,7 @@ static const struct SpriteTemplate gUnknown_08329DF8[] =
|
||||
{
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = 0,
|
||||
.oam = &gUnknown_0831ACB0,
|
||||
.oam = &gOamData_831ACB0,
|
||||
.anims = NULL,
|
||||
.images = gUnknown_082FF4D8,
|
||||
.affineAnims = gUnknown_082FF618,
|
||||
@@ -2392,7 +2388,7 @@ static const struct SpriteTemplate gUnknown_08329DF8[] =
|
||||
{
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = 0,
|
||||
.oam = &gUnknown_0831ACB0,
|
||||
.oam = &gOamData_831ACB0,
|
||||
.anims = NULL,
|
||||
.images = gUnknown_082FF4F8,
|
||||
.affineAnims = gUnknown_082FF618,
|
||||
@@ -2401,7 +2397,7 @@ static const struct SpriteTemplate gUnknown_08329DF8[] =
|
||||
{
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = 0,
|
||||
.oam = &gUnknown_0831ACB0,
|
||||
.oam = &gOamData_831ACB0,
|
||||
.anims = NULL,
|
||||
.images = gUnknown_082FF518,
|
||||
.affineAnims = gUnknown_082FF618,
|
||||
@@ -4091,13 +4087,13 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data)
|
||||
case MON_DATA_LANGUAGE:
|
||||
retVal = boxMon->language;
|
||||
break;
|
||||
case MON_DATA_SANITY_BIT1:
|
||||
case MON_DATA_SANITY_IS_BAD_EGG:
|
||||
retVal = boxMon->isBadEgg;
|
||||
break;
|
||||
case MON_DATA_SANITY_BIT2:
|
||||
case MON_DATA_SANITY_HAS_SPECIES:
|
||||
retVal = boxMon->hasSpecies;
|
||||
break;
|
||||
case MON_DATA_SANITY_BIT3:
|
||||
case MON_DATA_SANITY_IS_EGG:
|
||||
retVal = boxMon->isEgg;
|
||||
break;
|
||||
case MON_DATA_OT_NAME:
|
||||
@@ -4298,7 +4294,7 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data)
|
||||
u16 *moves = (u16 *)data;
|
||||
s32 i = 0;
|
||||
|
||||
while (moves[i] != 355)
|
||||
while (moves[i] != MOVES_COUNT)
|
||||
{
|
||||
u16 move = moves[i];
|
||||
if (substruct1->moves[0] == move
|
||||
@@ -4460,13 +4456,13 @@ void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *dataArg)
|
||||
case MON_DATA_LANGUAGE:
|
||||
SET8(boxMon->language);
|
||||
break;
|
||||
case MON_DATA_SANITY_BIT1:
|
||||
case MON_DATA_SANITY_IS_BAD_EGG:
|
||||
SET8(boxMon->isBadEgg);
|
||||
break;
|
||||
case MON_DATA_SANITY_BIT2:
|
||||
case MON_DATA_SANITY_HAS_SPECIES:
|
||||
SET8(boxMon->hasSpecies);
|
||||
break;
|
||||
case MON_DATA_SANITY_BIT3:
|
||||
case MON_DATA_SANITY_IS_EGG:
|
||||
SET8(boxMon->isEgg);
|
||||
break;
|
||||
case MON_DATA_OT_NAME:
|
||||
@@ -4722,7 +4718,7 @@ u8 SendMonToPC(struct Pokemon* mon)
|
||||
|
||||
do
|
||||
{
|
||||
for (boxPos = 0; boxPos < 30; boxPos++)
|
||||
for (boxPos = 0; boxPos < IN_BOX_COUNT; boxPos++)
|
||||
{
|
||||
struct BoxPokemon* checkingMon = GetBoxedMonPtr(boxNo, boxPos);
|
||||
if (GetBoxMonData(checkingMon, MON_DATA_SPECIES, NULL) == SPECIES_NONE)
|
||||
@@ -4739,7 +4735,7 @@ u8 SendMonToPC(struct Pokemon* mon)
|
||||
}
|
||||
|
||||
boxNo++;
|
||||
if (boxNo == 14)
|
||||
if (boxNo == TOTAL_BOXES_COUNT)
|
||||
boxNo = 0;
|
||||
} while (boxNo != StorageGetCurrentBox());
|
||||
|
||||
@@ -4889,9 +4885,9 @@ bool8 IsPokemonStorageFull(void)
|
||||
{
|
||||
s32 i, j;
|
||||
|
||||
for (i = 0; i < 14; i++)
|
||||
for (j = 0; j < 30; j++)
|
||||
if (GetBoxMonDataFromAnyBox(i, j, MON_DATA_SPECIES) == SPECIES_NONE)
|
||||
for (i = 0; i < TOTAL_BOXES_COUNT; i++)
|
||||
for (j = 0; j < IN_BOX_COUNT; j++)
|
||||
if (GetBoxMonDataAt(i, j, MON_DATA_SPECIES) == SPECIES_NONE)
|
||||
return FALSE;
|
||||
|
||||
return TRUE;
|
||||
@@ -6847,7 +6843,7 @@ void SetWildMonHeldItem(void)
|
||||
u16 species = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, 0);
|
||||
u16 var1 = 45;
|
||||
u16 var2 = 95;
|
||||
if (!GetMonData(&gPlayerParty[0], MON_DATA_SANITY_BIT3, 0)
|
||||
if (!GetMonData(&gPlayerParty[0], MON_DATA_SANITY_IS_EGG, 0)
|
||||
&& GetMonAbility(&gPlayerParty[0]) == ABILITY_COMPOUND_EYES)
|
||||
{
|
||||
var1 = 20;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user