Merge remote-tracking branch 'pret/master' into trade

This commit is contained in:
Diegoisawesome
2018-12-25 15:03:13 -06:00
517 changed files with 41317 additions and 67419 deletions
+16 -12
View File
@@ -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
View File
@@ -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)
+2 -2
View File
@@ -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)
{
+8 -8
View File
@@ -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];
File diff suppressed because it is too large Load Diff
+19 -19
View File
@@ -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
View File
@@ -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 = &REG_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
View File
@@ -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
View File
@@ -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))
{
+1 -1
View File
@@ -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);
+1 -1
View File
@@ -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);
-3
View File
@@ -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[];
+1 -2
View File
@@ -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
View File
@@ -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++)
+2 -8
View File
@@ -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
View File
@@ -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);
+1 -1
View File
@@ -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
View File
@@ -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)
{
+1 -8
View File
@@ -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
View File
@@ -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)
+2 -3
View File
@@ -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];
+2 -2
View File
@@ -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))
+5 -9
View File
@@ -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
View File
@@ -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
View File
@@ -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;
+2 -4
View File
@@ -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
View File
@@ -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]);
}
}
+2 -2
View File
@@ -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
}
+37 -47
View File
@@ -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)
{
-2
View File
@@ -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
View File
@@ -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;
+4 -4
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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 = &REG_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 = &REG_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 = &REG_BG1VOFS;
else
scanlineParams.dmaDest = &REG_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);
}
+1 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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;
-46
View File
@@ -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
View File
@@ -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 = &REG_BG1HOFS;
task->data[2] = gBattle_BG1_X;
+6 -9
View File
@@ -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
View File
@@ -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);
}
}
+1 -1
View File
@@ -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);
}
+1 -1
View File
@@ -251,7 +251,7 @@ static void CreatePostEvoSparkleSet2(u8 arg0)
void LoadEvoSparkleSpriteAndPal(void)
{
LoadCompressedObjectPicUsingHeap(&sEvoSparkleSpriteSheets[0]);
LoadCompressedSpriteSheetUsingHeap(&sEvoSparkleSpriteSheets[0]);
LoadSpritePalettes(sEvoSparkleSpritePals);
}
+3 -3
View File
@@ -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
View File
@@ -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;
+16 -2
View File
@@ -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
};
+2 -2
View File
@@ -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
View File
@@ -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)
{
+9 -9
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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"
+63
View File
@@ -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;
}
}
+7 -6
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
File diff suppressed because it is too large Load Diff
+1 -51
View File
@@ -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;
}
}
+1 -1
View File
@@ -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;
}
+1 -1
View File
@@ -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"
+1 -3
View File
@@ -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 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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:
+1490 -41
View File
File diff suppressed because it is too large Load Diff
+13 -13
View File
@@ -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
+6 -6
View File
@@ -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
View File
@@ -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
View File
@@ -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))
+1 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -2244,7 +2244,7 @@ void sub_800E0E8(void)
{
if (GetSpriteTileStartByTag(sWirelessStatusIndicatorSpriteSheet.tag) == 0xFFFF)
{
LoadCompressedObjectPic(&sWirelessStatusIndicatorSpriteSheet);
LoadCompressedSpriteSheet(&sWirelessStatusIndicatorSpriteSheet);
}
LoadSpritePalette(&sWirelessStatusIndicatorSpritePalette);
gWirelessStatusIndicatorSpriteId = 0xFF;
+3 -3
View File
@@ -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)
{
+1
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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)
-1
View File
@@ -390,7 +390,6 @@ void sub_811FAF8(void)
}
}
bool8 sub_811FBA4(void)
{
u16 i;
+2 -2
View File
@@ -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
View File
@@ -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
View File
@@ -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;
+7434
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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:
+5 -5
View File
@@ -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
View File
@@ -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
View File
@@ -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