Merge with master
This commit is contained in:
+11
-9
@@ -26,8 +26,6 @@ extern struct MusicPlayerInfo gMPlayInfo_SE2;
|
||||
|
||||
extern const u16 gMovesWithQuietBGM[];
|
||||
extern const u8 *const gBattleAnims_Moves[];
|
||||
extern const struct CompressedSpriteSheet gBattleAnimPicTable[];
|
||||
extern const struct CompressedSpritePalette gBattleAnimPaletteTable[];
|
||||
extern const struct BattleAnimBackground gBattleAnimBackgroundTable[];
|
||||
|
||||
// this file's functions
|
||||
@@ -1658,7 +1656,7 @@ static void ScriptCmd_createsprite(void)
|
||||
else
|
||||
argVar *= -1;
|
||||
|
||||
subpriority = sub_80A82E4(gBattleAnimTarget) + (s8)(argVar);
|
||||
subpriority = GetBattlerSpriteSubpriority(gBattleAnimTarget) + (s8)(argVar);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1667,13 +1665,17 @@ static void ScriptCmd_createsprite(void)
|
||||
else
|
||||
argVar *= -1;
|
||||
|
||||
subpriority = sub_80A82E4(gBattleAnimAttacker) + (s8)(argVar);
|
||||
subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) + (s8)(argVar);
|
||||
}
|
||||
|
||||
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++;
|
||||
}
|
||||
|
||||
@@ -3031,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)
|
||||
@@ -3066,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);
|
||||
}
|
||||
|
||||
|
||||
+227
-217
File diff suppressed because it is too large
Load Diff
@@ -175,7 +175,7 @@ static void sub_80A9E78(struct Sprite *sprite)
|
||||
void sub_80A9EF4(u8 taskId)
|
||||
{
|
||||
s16 x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) - 32;
|
||||
s16 y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_3) - 36;
|
||||
s16 y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) - 36;
|
||||
u8 spriteId;
|
||||
|
||||
if (IsContest())
|
||||
|
||||
+12
-12
@@ -441,14 +441,14 @@ static void DoHorizontalLunge(struct Sprite *sprite)
|
||||
sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker];
|
||||
sprite->data[4] = gBattleAnimArgs[0];
|
||||
StoreSpriteCallbackInData6(sprite, ReverseHorizontalLungeDirection);
|
||||
sprite->callback = sub_80A6630;
|
||||
sprite->callback = TranslateMonBGUntil;
|
||||
}
|
||||
|
||||
static void ReverseHorizontalLungeDirection(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[0] = sprite->data[4];
|
||||
sprite->data[1] = -sprite->data[1];
|
||||
sprite->callback = sub_80A6630;
|
||||
sprite->callback = TranslateMonBGUntil;
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
}
|
||||
|
||||
@@ -468,14 +468,14 @@ static void DoVerticalDip(struct Sprite *sprite)
|
||||
sprite->data[3] = spriteId;
|
||||
sprite->data[4] = gBattleAnimArgs[0];
|
||||
StoreSpriteCallbackInData6(sprite, ReverseVerticalDipDirection);
|
||||
sprite->callback = sub_80A6630;
|
||||
sprite->callback = TranslateMonBGUntil;
|
||||
}
|
||||
|
||||
static void ReverseVerticalDipDirection(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[0] = sprite->data[4];
|
||||
sprite->data[2] = -sprite->data[2];
|
||||
sprite->callback = sub_80A6630;
|
||||
sprite->callback = TranslateMonBGUntil;
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
}
|
||||
|
||||
@@ -834,7 +834,7 @@ void AnimTask_ScaleMonAndRestore(u8 taskId)
|
||||
{
|
||||
u8 spriteId;
|
||||
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[3]);
|
||||
sub_80A7270(spriteId, gBattleAnimArgs[4]);
|
||||
PrepareBattlerSpriteForRotScale(spriteId, gBattleAnimArgs[4]);
|
||||
gTasks[taskId].data[0] = gBattleAnimArgs[0];
|
||||
gTasks[taskId].data[1] = gBattleAnimArgs[1];
|
||||
gTasks[taskId].data[2] = gBattleAnimArgs[2];
|
||||
@@ -851,7 +851,7 @@ void AnimTask_ScaleMonAndRestoreStep(u8 taskId)
|
||||
gTasks[taskId].data[10] += gTasks[taskId].data[0];
|
||||
gTasks[taskId].data[11] += gTasks[taskId].data[1];
|
||||
spriteId = gTasks[taskId].data[4];
|
||||
obj_id_set_rotscale(spriteId, gTasks[taskId].data[10], gTasks[taskId].data[11], 0);
|
||||
SetSpriteRotScale(spriteId, gTasks[taskId].data[10], gTasks[taskId].data[11], 0);
|
||||
if (--gTasks[taskId].data[2] == 0)
|
||||
{
|
||||
if (gTasks[taskId].data[3] > 0)
|
||||
@@ -863,7 +863,7 @@ void AnimTask_ScaleMonAndRestoreStep(u8 taskId)
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_80A7344(spriteId);
|
||||
ResetSpriteRotScale(spriteId);
|
||||
DestroyAnimVisualTask(taskId);
|
||||
return;
|
||||
}
|
||||
@@ -874,7 +874,7 @@ void sub_80D6134(u8 taskId)
|
||||
{
|
||||
u8 spriteId;
|
||||
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]);
|
||||
sub_80A7270(spriteId, 0);
|
||||
PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL);
|
||||
gTasks[taskId].data[1] = 0;
|
||||
gTasks[taskId].data[2] = gBattleAnimArgs[0];
|
||||
if (gBattleAnimArgs[3] != 1)
|
||||
@@ -918,7 +918,7 @@ void sub_80D622C(u8 taskId)
|
||||
{
|
||||
u8 spriteId;
|
||||
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]);
|
||||
sub_80A7270(spriteId, 0);
|
||||
PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL);
|
||||
gTasks[taskId].data[1] = 0;
|
||||
gTasks[taskId].data[2] = gBattleAnimArgs[0];
|
||||
if (gBattleAnimArgs[2] == 0)
|
||||
@@ -955,17 +955,17 @@ void sub_80D622C(u8 taskId)
|
||||
void sub_80D6308(u8 taskId)
|
||||
{
|
||||
gTasks[taskId].data[3] += gTasks[taskId].data[4];
|
||||
obj_id_set_rotscale(gTasks[taskId].data[5], 0x100, 0x100, gTasks[taskId].data[3]);
|
||||
SetSpriteRotScale(gTasks[taskId].data[5], 0x100, 0x100, gTasks[taskId].data[3]);
|
||||
if (gTasks[taskId].data[7])
|
||||
{
|
||||
sub_80A73A0(gTasks[taskId].data[5]);
|
||||
SetBattlerSpriteYOffsetFromRotation(gTasks[taskId].data[5]);
|
||||
}
|
||||
if (++gTasks[taskId].data[1] >= gTasks[taskId].data[2])
|
||||
{
|
||||
switch (gTasks[taskId].data[6])
|
||||
{
|
||||
case 1:
|
||||
sub_80A7344(gTasks[taskId].data[5]);
|
||||
ResetSpriteRotScale(gTasks[taskId].data[5]);
|
||||
case 0:
|
||||
default:
|
||||
DestroyAnimVisualTask(taskId);
|
||||
|
||||
Executable
+2267
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Executable
+3884
File diff suppressed because it is too large
Load Diff
Executable
+4889
File diff suppressed because it is too large
Load Diff
@@ -40,10 +40,10 @@ static void sub_8117FD0(u8);
|
||||
|
||||
const u16 gUnknown_08597418 = RGB(31, 31, 31);
|
||||
|
||||
// no clue what these are...
|
||||
// possibly some register offsets
|
||||
const u8 gUnknown_0859741A[] = {0x08, 0x0a, 0x0c, 0x0e};
|
||||
const u8 gUnknown_0859741E[] = {0x08, 0x0a, 0x0c, 0x0e};
|
||||
// These belong in battle_intro.c, but there putting them there causes 2 bytes of alignment padding
|
||||
// between the two .rodata segments. Perhaps battle_intro.c actually belongs in this file, too.
|
||||
const u8 gUnknown_0859741A[] = {REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, REG_OFFSET_BG2CNT, REG_OFFSET_BG3CNT};
|
||||
const u8 gUnknown_0859741E[] = {REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, REG_OFFSET_BG2CNT, REG_OFFSET_BG3CNT};
|
||||
|
||||
void sub_8116620(u8 taskId)
|
||||
{
|
||||
@@ -236,7 +236,7 @@ static void sub_81169F8(u8 taskId)
|
||||
}
|
||||
else
|
||||
{
|
||||
task->data[6] = duplicate_obj_of_side_rel2move_in_transparent_mode(task->data[0]);
|
||||
task->data[6] = CloneBattlerSpriteWithBlend(task->data[0]);
|
||||
if (task->data[6] >= 0)
|
||||
{
|
||||
gSprites[task->data[6]].oam.priority = task->data[0] ? 1 : 2;
|
||||
|
||||
@@ -1136,7 +1136,7 @@ static void LinkOpponentHandleLoadMonSprite(void)
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
|
||||
GetBattlerSpriteCoord(gActiveBattler, 2),
|
||||
GetBattlerSpriteDefault_Y(gActiveBattler),
|
||||
sub_80A82E4(gActiveBattler));
|
||||
GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler;
|
||||
@@ -1170,7 +1170,7 @@ static void sub_8066494(u8 battlerId, bool8 dontClearSubstituteBit)
|
||||
&gMultiuseSpriteTemplate,
|
||||
GetBattlerSpriteCoord(battlerId, 2),
|
||||
GetBattlerSpriteDefault_Y(battlerId),
|
||||
sub_80A82E4(battlerId));
|
||||
GetBattlerSpriteSubpriority(battlerId));
|
||||
|
||||
gSprites[gUnknown_03005D7C[battlerId]].data[1] = gBattlerSpriteIds[battlerId];
|
||||
gSprites[gUnknown_03005D7C[battlerId]].data[2] = battlerId;
|
||||
@@ -1302,7 +1302,7 @@ static void LinkOpponentHandleDrawTrainerPic(void)
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
|
||||
xPos,
|
||||
(8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40,
|
||||
sub_80A82E4(gActiveBattler));
|
||||
GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2;
|
||||
|
||||
@@ -1024,7 +1024,7 @@ static void LinkPartnerHandleLoadMonSprite(void)
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
|
||||
GetBattlerSpriteCoord(gActiveBattler, 2),
|
||||
GetBattlerSpriteDefault_Y(gActiveBattler),
|
||||
sub_80A82E4(gActiveBattler));
|
||||
GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
|
||||
@@ -1055,7 +1055,7 @@ static void sub_814CC98(u8 battlerId, bool8 dontClearSubstituteBit)
|
||||
&gMultiuseSpriteTemplate,
|
||||
GetBattlerSpriteCoord(battlerId, 2),
|
||||
GetBattlerSpriteDefault_Y(battlerId),
|
||||
sub_80A82E4(battlerId));
|
||||
GetBattlerSpriteSubpriority(battlerId));
|
||||
|
||||
gSprites[gUnknown_03005D7C[battlerId]].data[1] = gBattlerSpriteIds[battlerId];
|
||||
gSprites[gUnknown_03005D7C[battlerId]].data[2] = battlerId;
|
||||
@@ -1143,7 +1143,7 @@ static void LinkPartnerHandleDrawTrainerPic(void)
|
||||
|
||||
DecompressTrainerBackPic(trainerPicId, gActiveBattler);
|
||||
SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(gActiveBattler));
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, (8 - gTrainerBackPicCoords[trainerPicId].coords) * 4 + 80, sub_80A82E4(gActiveBattler));
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, (8 - gTrainerBackPicCoords[trainerPicId].coords) * 4 + 80, GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
|
||||
|
||||
@@ -1128,7 +1128,7 @@ static void OpponentHandleLoadMonSprite(void)
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
|
||||
GetBattlerSpriteCoord(gActiveBattler, 2),
|
||||
GetBattlerSpriteDefault_Y(gActiveBattler),
|
||||
sub_80A82E4(gActiveBattler));
|
||||
GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler;
|
||||
@@ -1163,7 +1163,7 @@ static void sub_80613DC(u8 battlerId, bool8 dontClearSubstituteBit)
|
||||
gBattlerSpriteIds[battlerId] = CreateSprite(&gMultiuseSpriteTemplate,
|
||||
GetBattlerSpriteCoord(battlerId, 2),
|
||||
GetBattlerSpriteDefault_Y(battlerId),
|
||||
sub_80A82E4(battlerId));
|
||||
GetBattlerSpriteSubpriority(battlerId));
|
||||
|
||||
gSprites[gBattlerSpriteIds[battlerId]].data[0] = battlerId;
|
||||
gSprites[gBattlerSpriteIds[battlerId]].data[2] = species;
|
||||
@@ -1293,7 +1293,7 @@ static void OpponentHandleDrawTrainerPic(void)
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
|
||||
xPos,
|
||||
(8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40,
|
||||
sub_80A82E4(gActiveBattler));
|
||||
GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2;
|
||||
|
||||
@@ -2200,7 +2200,7 @@ static void sub_805B258(u8 battlerId, bool8 dontClearSubstituteBit)
|
||||
&gMultiuseSpriteTemplate,
|
||||
GetBattlerSpriteCoord(battlerId, 2),
|
||||
GetBattlerSpriteDefault_Y(battlerId),
|
||||
sub_80A82E4(battlerId));
|
||||
GetBattlerSpriteSubpriority(battlerId));
|
||||
|
||||
gSprites[gUnknown_03005D7C[battlerId]].data[1] = gBattlerSpriteIds[battlerId];
|
||||
gSprites[gUnknown_03005D7C[battlerId]].data[2] = battlerId;
|
||||
@@ -2314,7 +2314,7 @@ static void PlayerHandleDrawTrainerPic(void)
|
||||
trainerPicId = PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender);
|
||||
DecompressTrainerFrontPic(trainerPicId, gActiveBattler);
|
||||
SetMultiuseSpriteTemplateToTrainerFront(trainerPicId, GetBattlerPosition(gActiveBattler));
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, sub_80A82E4(gActiveBattler));
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag);
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
|
||||
@@ -2329,7 +2329,7 @@ static void PlayerHandleDrawTrainerPic(void)
|
||||
{
|
||||
DecompressTrainerBackPic(trainerPicId, gActiveBattler);
|
||||
SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(gActiveBattler));
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, sub_80A82E4(gActiveBattler));
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
|
||||
|
||||
@@ -1211,7 +1211,7 @@ static void PlayerPartnerHandleLoadMonSprite(void)
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
|
||||
GetBattlerSpriteCoord(gActiveBattler, 2),
|
||||
GetBattlerSpriteDefault_Y(gActiveBattler),
|
||||
sub_80A82E4(gActiveBattler));
|
||||
GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
|
||||
@@ -1242,7 +1242,7 @@ static void sub_81BD0E4(u8 battlerId, bool8 dontClearSubstituteBit)
|
||||
&gMultiuseSpriteTemplate,
|
||||
GetBattlerSpriteCoord(battlerId, 2),
|
||||
GetBattlerSpriteDefault_Y(battlerId),
|
||||
sub_80A82E4(battlerId));
|
||||
GetBattlerSpriteSubpriority(battlerId));
|
||||
|
||||
gSprites[gUnknown_03005D7C[battlerId]].data[1] = gBattlerSpriteIds[battlerId];
|
||||
gSprites[gUnknown_03005D7C[battlerId]].data[2] = battlerId;
|
||||
@@ -1322,7 +1322,7 @@ static void PlayerPartnerHandleDrawTrainerPic(void)
|
||||
{
|
||||
DecompressTrainerBackPic(trainerPicId, gActiveBattler);
|
||||
SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(gActiveBattler));
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, sub_80A82E4(gActiveBattler));
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
|
||||
@@ -1333,7 +1333,7 @@ static void PlayerPartnerHandleDrawTrainerPic(void)
|
||||
{
|
||||
DecompressTrainerFrontPic(trainerPicId, gActiveBattler);
|
||||
SetMultiuseSpriteTemplateToTrainerFront(trainerPicId, GetBattlerPosition(gActiveBattler));
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, sub_80A82E4(gActiveBattler));
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag);
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
|
||||
|
||||
@@ -1119,9 +1119,7 @@ static void RecordedOpponentHandleLoadMonSprite(void)
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
|
||||
GetBattlerSpriteCoord(gActiveBattler, 2),
|
||||
GetBattlerSpriteDefault_Y(gActiveBattler),
|
||||
sub_80A82E4(gActiveBattler));
|
||||
|
||||
|
||||
GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler;
|
||||
@@ -1154,7 +1152,7 @@ static void sub_81885D8(u8 battlerId, bool8 dontClearSubstituteBit)
|
||||
gBattlerSpriteIds[battlerId] = CreateSprite(&gMultiuseSpriteTemplate,
|
||||
GetBattlerSpriteCoord(battlerId, 2),
|
||||
GetBattlerSpriteDefault_Y(battlerId),
|
||||
sub_80A82E4(battlerId));
|
||||
GetBattlerSpriteSubpriority(battlerId));
|
||||
|
||||
gSprites[gUnknown_03005D7C[battlerId]].data[1] = gBattlerSpriteIds[battlerId];
|
||||
gSprites[gUnknown_03005D7C[battlerId]].data[2] = battlerId;
|
||||
@@ -1251,7 +1249,7 @@ static void RecordedOpponentHandleDrawTrainerPic(void)
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
|
||||
xPos,
|
||||
(8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40,
|
||||
sub_80A82E4(gActiveBattler));
|
||||
GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2;
|
||||
|
||||
@@ -1105,7 +1105,7 @@ static void RecordedPlayerHandleLoadMonSprite(void)
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
|
||||
GetBattlerSpriteCoord(gActiveBattler, 2),
|
||||
GetBattlerSpriteDefault_Y(gActiveBattler),
|
||||
sub_80A82E4(gActiveBattler));
|
||||
GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
|
||||
@@ -1136,7 +1136,7 @@ static void sub_818BA6C(u8 battlerId, bool8 dontClearSubstituteBit)
|
||||
&gMultiuseSpriteTemplate,
|
||||
GetBattlerSpriteCoord(battlerId, 2),
|
||||
GetBattlerSpriteDefault_Y(battlerId),
|
||||
sub_80A82E4(battlerId));
|
||||
GetBattlerSpriteSubpriority(battlerId));
|
||||
|
||||
gSprites[gUnknown_03005D7C[battlerId]].data[1] = gBattlerSpriteIds[battlerId];
|
||||
gSprites[gUnknown_03005D7C[battlerId]].data[2] = battlerId;
|
||||
@@ -1236,7 +1236,7 @@ static void RecordedPlayerHandleDrawTrainerPic(void)
|
||||
trainerPicId = PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender);
|
||||
DecompressTrainerFrontPic(trainerPicId, gActiveBattler);
|
||||
SetMultiuseSpriteTemplateToTrainerFront(trainerPicId, GetBattlerPosition(gActiveBattler));
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, sub_80A82E4(gActiveBattler));
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag);
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
|
||||
@@ -1250,7 +1250,7 @@ static void RecordedPlayerHandleDrawTrainerPic(void)
|
||||
{
|
||||
DecompressTrainerBackPic(trainerPicId, gActiveBattler);
|
||||
SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(gActiveBattler));
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, sub_80A82E4(gActiveBattler));
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, GetBattlerSpriteSubpriority(gActiveBattler));
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
|
||||
|
||||
@@ -1464,7 +1464,7 @@ static void sub_816AA80(u8 battlerId)
|
||||
gBattlerSpriteIds[battlerId] = CreateSprite(&gMultiuseSpriteTemplate,
|
||||
GetBattlerSpriteCoord(battlerId, 2),
|
||||
GetBattlerSpriteDefault_Y(battlerId),
|
||||
sub_80A82E4(battlerId));
|
||||
GetBattlerSpriteSubpriority(battlerId));
|
||||
|
||||
gSprites[gUnknown_03005D7C[battlerId]].data[1] = gBattlerSpriteIds[battlerId];
|
||||
gSprites[gUnknown_03005D7C[battlerId]].data[2] = battlerId;
|
||||
|
||||
+1
-10
@@ -26,6 +26,7 @@
|
||||
#include "international_string_util.h"
|
||||
#include "trainer_pokemon_sprites.h"
|
||||
#include "scanline_effect.h"
|
||||
#include "script_pokemon_util_80F87D8.h"
|
||||
#include "graphics.h"
|
||||
#include "constants/species.h"
|
||||
#include "constants/moves.h"
|
||||
@@ -57,19 +58,9 @@ struct UnkStruct_860DD10
|
||||
};
|
||||
|
||||
extern void sub_81B8558(void);
|
||||
extern u16 GetFrontierBrainMonMove(u8 monId, u8 moveSlotId);
|
||||
extern u8 GetFrontierBrainMonEvs(u8, u8);
|
||||
extern u8 GetFrontierBrainMonNature(u8);
|
||||
extern void sub_81A4C30(void);
|
||||
extern u8 sub_81A3610(void);
|
||||
extern u16 GetFrontierBrainMonSpecies(u8);
|
||||
extern void ReducePlayerPartyToSelectedMons(void);
|
||||
|
||||
extern u8 gSelectedOrderFromParty[];
|
||||
|
||||
extern const u16 gBattleFrontierHeldItems[];
|
||||
extern const struct FacilityMon gBattleFrontierMons[];
|
||||
extern const struct BattleFrontierTrainer gBattleFrontierTrainers[];
|
||||
extern const struct SpriteTemplate gUnknown_0860CFA8;
|
||||
|
||||
// text
|
||||
|
||||
@@ -13,11 +13,6 @@
|
||||
#include "constants/trainers.h"
|
||||
#include "constants/moves.h"
|
||||
|
||||
extern const struct FacilityMon gBattleFrontierMons[];
|
||||
extern const struct FacilityMon gSlateportBattleTentMons[];
|
||||
extern const struct BattleFrontierTrainer gBattleFrontierTrainers[];
|
||||
extern const u16 gBattleFrontierHeldItems[];
|
||||
|
||||
// IWRAM bss
|
||||
static IWRAM_DATA bool8 gUnknown_03001288;
|
||||
|
||||
@@ -531,7 +526,7 @@ static void sub_81A67EC(void)
|
||||
}
|
||||
var_40 = sub_81A6F70(factoryBattleMode, factoryLvlMode);
|
||||
|
||||
currSpecies = 0;
|
||||
currSpecies = SPECIES_NONE;
|
||||
i = 0;
|
||||
while (i != PARTY_SIZE)
|
||||
{
|
||||
@@ -551,7 +546,7 @@ static void sub_81A67EC(void)
|
||||
break;
|
||||
if (species[j] == gFacilityTrainerMons[monSetId].species)
|
||||
{
|
||||
if (currSpecies == 0)
|
||||
if (currSpecies == SPECIES_NONE)
|
||||
currSpecies = gFacilityTrainerMons[monSetId].species;
|
||||
else
|
||||
break;
|
||||
@@ -566,7 +561,7 @@ static void sub_81A67EC(void)
|
||||
if (heldItems[j] != 0 && heldItems[j] == gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId])
|
||||
{
|
||||
if (gFacilityTrainerMons[monSetId].species == currSpecies)
|
||||
currSpecies = 0;
|
||||
currSpecies = SPECIES_NONE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -584,7 +579,7 @@ static void sub_81A67EC(void)
|
||||
static void sub_81A6A08(void)
|
||||
{
|
||||
u8 i;
|
||||
u8 typesCount[18];
|
||||
u8 typesCount[NUMBER_OF_MON_TYPES];
|
||||
u8 usedType[2];
|
||||
|
||||
gFacilityTrainerMons = gBattleFrontierMons;
|
||||
|
||||
@@ -1097,14 +1097,14 @@ void sub_805EB9C(u8 affineMode)
|
||||
if (IsBattlerSpritePresent(i))
|
||||
{
|
||||
gSprites[gBattlerSpriteIds[i]].oam.affineMode = affineMode;
|
||||
if (affineMode == 0)
|
||||
if (affineMode == ST_OAM_AFFINE_OFF)
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[i].field_6 = gSprites[gBattlerSpriteIds[i]].oam.matrixNum;
|
||||
gBattleSpritesDataPtr->healthBoxesData[i].matrixNum = gSprites[gBattlerSpriteIds[i]].oam.matrixNum;
|
||||
gSprites[gBattlerSpriteIds[i]].oam.matrixNum = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
gSprites[gBattlerSpriteIds[i]].oam.matrixNum = gBattleSpritesDataPtr->healthBoxesData[i].field_6;
|
||||
gSprites[gBattlerSpriteIds[i]].oam.matrixNum = gBattleSpritesDataPtr->healthBoxesData[i].matrixNum;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+722
-15
@@ -1,21 +1,728 @@
|
||||
#include "global.h"
|
||||
#include "battle.h"
|
||||
#include "battle_anim.h"
|
||||
#include "battle_main.h"
|
||||
#include "battle_setup.h"
|
||||
#include "bg.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "main.h"
|
||||
#include "scanline_effect.h"
|
||||
#include "task.h"
|
||||
#include "trig.h"
|
||||
#include "constants/trainers.h"
|
||||
|
||||
extern void task_battle_intro_80BC47C(u8);
|
||||
extern void task00_battle_intro_80BC6C8(u8);
|
||||
extern void task_battle_intro_80BC47C(u8);
|
||||
extern void task_battle_intro_anim(u8);
|
||||
static EWRAM_DATA u16 sBgCnt = 0;
|
||||
|
||||
const TaskFunc gUnknown_08597424[] =
|
||||
extern const u8 gUnknown_0859741A[];
|
||||
extern const u8 gUnknown_0859741E[];
|
||||
|
||||
static void BattleIntroSlide1(u8);
|
||||
static void BattleIntroSlide2(u8);
|
||||
static void BattleIntroSlide3(u8);
|
||||
static void BattleIntroSlideLink(u8);
|
||||
static void BattleIntroSlidePartner(u8);
|
||||
|
||||
static const TaskFunc sBattleIntroSlideFuncs[] =
|
||||
{
|
||||
task_battle_intro_80BC47C,
|
||||
task_battle_intro_80BC47C,
|
||||
task00_battle_intro_80BC6C8,
|
||||
task00_battle_intro_80BC6C8,
|
||||
task00_battle_intro_80BC6C8,
|
||||
task_battle_intro_80BC47C,
|
||||
task_battle_intro_80BC47C,
|
||||
task_battle_intro_80BC47C,
|
||||
task_battle_intro_anim,
|
||||
task_battle_intro_anim,
|
||||
BattleIntroSlide1, // BATTLE_TERRAIN_GRASS
|
||||
BattleIntroSlide1, // BATTLE_TERRAIN_LONG_GRASS
|
||||
BattleIntroSlide2, // BATTLE_TERRAIN_SAND
|
||||
BattleIntroSlide2, // BATTLE_TERRAIN_UNDERWATER
|
||||
BattleIntroSlide2, // BATTLE_TERRAIN_WATER
|
||||
BattleIntroSlide1, // BATTLE_TERRAIN_POND
|
||||
BattleIntroSlide1, // BATTLE_TERRAIN_MOUNTAIN
|
||||
BattleIntroSlide1, // BATTLE_TERRAIN_CAVE
|
||||
BattleIntroSlide3, // BATTLE_TERRAIN_BUILDING
|
||||
BattleIntroSlide3, // BATTLE_TERRAIN_PLAIN
|
||||
};
|
||||
|
||||
void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value)
|
||||
{
|
||||
if (bgId < 4)
|
||||
{
|
||||
sBgCnt = GetGpuReg(gUnknown_0859741A[bgId]);
|
||||
switch (attributeId)
|
||||
{
|
||||
case BG_ANIM_SCREEN_SIZE:
|
||||
((struct BgCnt *)&sBgCnt)->screenSize = value;
|
||||
break;
|
||||
case BG_ANIM_AREA_OVERFLOW_MODE:
|
||||
((struct BgCnt *)&sBgCnt)->areaOverflowMode = value;
|
||||
break;
|
||||
case BG_ANIM_MOSAIC:
|
||||
((struct BgCnt *)&sBgCnt)->mosaic = value;
|
||||
break;
|
||||
case BG_ANIM_CHAR_BASE_BLOCK:
|
||||
((struct BgCnt *)&sBgCnt)->charBaseBlock = value;
|
||||
break;
|
||||
case BG_ANIM_PRIORITY:
|
||||
((struct BgCnt *)&sBgCnt)->priority = value;
|
||||
break;
|
||||
case BG_ANIM_PALETTES_MODE:
|
||||
((struct BgCnt *)&sBgCnt)->palettes = value;
|
||||
break;
|
||||
case BG_ANIM_SCREEN_BASE_BLOCK:
|
||||
((struct BgCnt *)&sBgCnt)->screenBaseBlock = value;
|
||||
break;
|
||||
}
|
||||
|
||||
SetGpuReg(gUnknown_0859741A[bgId], sBgCnt);
|
||||
}
|
||||
}
|
||||
|
||||
int GetAnimBgAttribute(u8 bgId, u8 attributeId)
|
||||
{
|
||||
u16 bgCnt;
|
||||
|
||||
if (bgId < 4)
|
||||
{
|
||||
bgCnt = GetGpuReg(gUnknown_0859741E[bgId]);
|
||||
switch (attributeId)
|
||||
{
|
||||
case BG_ANIM_SCREEN_SIZE:
|
||||
return ((struct BgCnt *)&bgCnt)->screenSize;
|
||||
case BG_ANIM_AREA_OVERFLOW_MODE:
|
||||
return ((struct BgCnt *)&bgCnt)->areaOverflowMode;
|
||||
case BG_ANIM_MOSAIC:
|
||||
return ((struct BgCnt *)&bgCnt)->mosaic;
|
||||
case BG_ANIM_CHAR_BASE_BLOCK:
|
||||
return ((struct BgCnt *)&bgCnt)->charBaseBlock;
|
||||
case BG_ANIM_PRIORITY:
|
||||
return ((struct BgCnt *)&bgCnt)->priority;
|
||||
case BG_ANIM_PALETTES_MODE:
|
||||
return ((struct BgCnt *)&bgCnt)->palettes;
|
||||
case BG_ANIM_SCREEN_BASE_BLOCK:
|
||||
return ((struct BgCnt *)&bgCnt)->screenBaseBlock;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void HandleIntroSlide(u8 terrain)
|
||||
{
|
||||
u8 taskId;
|
||||
|
||||
if ((gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) && gPartnerTrainerId != TRAINER_STEVEN_PARTNER)
|
||||
{
|
||||
taskId = CreateTask(BattleIntroSlidePartner, 0);
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_LINK)
|
||||
{
|
||||
taskId = CreateTask(BattleIntroSlideLink, 0);
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER)
|
||||
{
|
||||
taskId = CreateTask(BattleIntroSlide3, 0);
|
||||
}
|
||||
else if ((gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON) && gGameVersion != VERSION_RUBY)
|
||||
{
|
||||
terrain = BATTLE_TERRAIN_UNDERWATER;
|
||||
taskId = CreateTask(BattleIntroSlide2, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
taskId = CreateTask(sBattleIntroSlideFuncs[terrain], 0);
|
||||
}
|
||||
|
||||
gTasks[taskId].data[0] = 0;
|
||||
gTasks[taskId].data[1] = terrain;
|
||||
gTasks[taskId].data[2] = 0;
|
||||
gTasks[taskId].data[3] = 0;
|
||||
gTasks[taskId].data[4] = 0;
|
||||
gTasks[taskId].data[5] = 0;
|
||||
gTasks[taskId].data[6] = 0;
|
||||
}
|
||||
|
||||
void sub_811828C(u8 taskId)
|
||||
{
|
||||
DestroyTask(taskId);
|
||||
gBattle_BG1_X = 0;
|
||||
gBattle_BG1_Y = 0;
|
||||
gBattle_BG2_X = 0;
|
||||
gBattle_BG2_Y = 0;
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDY, 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_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR | WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR);
|
||||
}
|
||||
|
||||
static void BattleIntroSlide1(u8 taskId)
|
||||
{
|
||||
int i;
|
||||
|
||||
gBattle_BG1_X += 6;
|
||||
switch (gTasks[taskId].data[0])
|
||||
{
|
||||
case 0:
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
|
||||
{
|
||||
gTasks[taskId].data[2] = 16;
|
||||
gTasks[taskId].data[0]++;
|
||||
}
|
||||
else
|
||||
{
|
||||
gTasks[taskId].data[2] = 1;
|
||||
gTasks[taskId].data[0]++;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (--gTasks[taskId].data[2] == 0)
|
||||
{
|
||||
gTasks[taskId].data[0]++;
|
||||
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
gBattle_WIN0V -= 0xFF;
|
||||
if ((gBattle_WIN0V & 0xFF00) == 0x3000)
|
||||
{
|
||||
gTasks[taskId].data[0]++;
|
||||
gTasks[taskId].data[2] = 240;
|
||||
gTasks[taskId].data[3] = 32;
|
||||
gIntroSlideFlags &= ~1;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (gTasks[taskId].data[3])
|
||||
{
|
||||
gTasks[taskId].data[3]--;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gTasks[taskId].data[1] == 1)
|
||||
{
|
||||
if (gBattle_BG1_Y != 0xFFB0)
|
||||
gBattle_BG1_Y -= 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gBattle_BG1_Y != 0xFFC8)
|
||||
gBattle_BG1_Y -= 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (gBattle_WIN0V & 0xFF00)
|
||||
gBattle_WIN0V -= 0x3FC;
|
||||
|
||||
if (gTasks[taskId].data[2])
|
||||
gTasks[taskId].data[2] -= 2;
|
||||
|
||||
// Scanline settings have already been set in CB2_InitBattleInternal()
|
||||
for (i = 0; i < 80; i++)
|
||||
gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gTasks[taskId].data[2];
|
||||
|
||||
for (; i < 160; i++)
|
||||
gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = -gTasks[taskId].data[2];
|
||||
|
||||
if (!gTasks[taskId].data[2])
|
||||
{
|
||||
gScanlineEffect.state = 3;
|
||||
gTasks[taskId].data[0]++;
|
||||
CpuFill32(0, (void *)BG_SCREEN_ADDR(28), BG_SCREEN_SIZE);
|
||||
SetBgAttribute(1, BG_CTRL_ATTR_VISIBLE, 0);
|
||||
SetBgAttribute(2, BG_CTRL_ATTR_VISIBLE, 0);
|
||||
SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(28) | BGCNT_TXT256x512);
|
||||
SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(30) | BGCNT_TXT512x256);
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
sub_811828C(taskId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void BattleIntroSlide2(u8 taskId)
|
||||
{
|
||||
int i;
|
||||
|
||||
switch (gTasks[taskId].data[1])
|
||||
{
|
||||
case 2:
|
||||
case 4:
|
||||
gBattle_BG1_X += 8;
|
||||
break;
|
||||
case 3:
|
||||
gBattle_BG1_X += 6;
|
||||
break;
|
||||
}
|
||||
|
||||
if (gTasks[taskId].data[1] == 4)
|
||||
{
|
||||
gBattle_BG1_Y = Cos2(gTasks[taskId].data[6]) / 512 - 8;
|
||||
if (gTasks[taskId].data[6] < 180)
|
||||
gTasks[taskId].data[6] += 4;
|
||||
else
|
||||
gTasks[taskId].data[6] += 6;
|
||||
|
||||
if (gTasks[taskId].data[6] == 360)
|
||||
gTasks[taskId].data[6] = 0;
|
||||
}
|
||||
|
||||
switch (gTasks[taskId].data[0])
|
||||
{
|
||||
case 0:
|
||||
gTasks[taskId].data[4] = 16;
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
|
||||
{
|
||||
gTasks[taskId].data[2] = 16;
|
||||
gTasks[taskId].data[0]++;
|
||||
}
|
||||
else
|
||||
{
|
||||
gTasks[taskId].data[2] = 1;
|
||||
gTasks[taskId].data[0]++;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (--gTasks[taskId].data[2] == 0)
|
||||
{
|
||||
gTasks[taskId].data[0]++;
|
||||
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
gBattle_WIN0V -= 0xFF;
|
||||
if ((gBattle_WIN0V & 0xFF00) == 0x3000)
|
||||
{
|
||||
gTasks[taskId].data[0]++;
|
||||
gTasks[taskId].data[2] = 240;
|
||||
gTasks[taskId].data[3] = 32;
|
||||
gTasks[taskId].data[5] = 1;
|
||||
gIntroSlideFlags &= ~1;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (gTasks[taskId].data[3])
|
||||
{
|
||||
if (--gTasks[taskId].data[3] == 0)
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(15, 0));
|
||||
SetGpuReg(REG_OFFSET_BLDY, 0);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((gTasks[taskId].data[4] & 0x1F) && --gTasks[taskId].data[5] == 0)
|
||||
{
|
||||
gTasks[taskId].data[4] += 0xFF;
|
||||
gTasks[taskId].data[5] = 4;
|
||||
}
|
||||
}
|
||||
|
||||
if (gBattle_WIN0V & 0xFF00)
|
||||
gBattle_WIN0V -= 0x3FC;
|
||||
|
||||
if (gTasks[taskId].data[2])
|
||||
gTasks[taskId].data[2] -= 2;
|
||||
|
||||
// Scanline settings have already been set in CB2_InitBattleInternal()
|
||||
for (i = 0; i < 80; i++)
|
||||
gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gTasks[taskId].data[2];
|
||||
|
||||
for (; i < 160; i++)
|
||||
gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = -gTasks[taskId].data[2];
|
||||
|
||||
if (!gTasks[taskId].data[2])
|
||||
{
|
||||
gScanlineEffect.state = 3;
|
||||
gTasks[taskId].data[0]++;
|
||||
CpuFill32(0, (void *)BG_SCREEN_ADDR(28), BG_SCREEN_SIZE);
|
||||
SetBgAttribute(1, BG_CTRL_ATTR_VISIBLE, 0);
|
||||
SetBgAttribute(2, BG_CTRL_ATTR_VISIBLE, 0);
|
||||
SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(28) | BGCNT_TXT256x512);
|
||||
SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(30) | BGCNT_TXT512x256);
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
sub_811828C(taskId);
|
||||
break;
|
||||
}
|
||||
|
||||
if (gTasks[taskId].data[0] != 4)
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[4], 0));
|
||||
}
|
||||
|
||||
static void BattleIntroSlide3(u8 taskId)
|
||||
{
|
||||
int i;
|
||||
|
||||
gBattle_BG1_X += 8;
|
||||
switch (gTasks[taskId].data[0])
|
||||
{
|
||||
case 0:
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(8, 8));
|
||||
SetGpuReg(REG_OFFSET_BLDY, 0);
|
||||
gTasks[taskId].data[4] = BLDALPHA_BLEND(8, 8);
|
||||
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000))
|
||||
{
|
||||
gTasks[taskId].data[2] = 16;
|
||||
gTasks[taskId].data[0]++;
|
||||
}
|
||||
else
|
||||
{
|
||||
gTasks[taskId].data[2] = 1;
|
||||
gTasks[taskId].data[0]++;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (--gTasks[taskId].data[2] == 0)
|
||||
{
|
||||
gTasks[taskId].data[0]++;
|
||||
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
gBattle_WIN0V -= 0xFF;
|
||||
if ((gBattle_WIN0V & 0xFF00) == 0x3000)
|
||||
{
|
||||
gTasks[taskId].data[0]++;
|
||||
gTasks[taskId].data[2] = 240;
|
||||
gTasks[taskId].data[3] = 32;
|
||||
gTasks[taskId].data[5] = 1;
|
||||
gIntroSlideFlags &= ~1;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (gTasks[taskId].data[3])
|
||||
{
|
||||
gTasks[taskId].data[3]--;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((gTasks[taskId].data[4] & 0xF) && --gTasks[taskId].data[5] == 0)
|
||||
{
|
||||
gTasks[taskId].data[4] += 0xFF;
|
||||
gTasks[taskId].data[5] = 6;
|
||||
}
|
||||
}
|
||||
|
||||
if (gBattle_WIN0V & 0xFF00)
|
||||
gBattle_WIN0V -= 0x3FC;
|
||||
|
||||
if (gTasks[taskId].data[2])
|
||||
gTasks[taskId].data[2] -= 2;
|
||||
|
||||
// Scanline settings have already been set in CB2_InitBattleInternal()
|
||||
for (i = 0; i < 80; i++)
|
||||
gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gTasks[taskId].data[2];
|
||||
|
||||
for (; i < 160; i++)
|
||||
gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = -gTasks[taskId].data[2];
|
||||
|
||||
if (!gTasks[taskId].data[2])
|
||||
{
|
||||
gScanlineEffect.state = 3;
|
||||
gTasks[taskId].data[0]++;
|
||||
CpuFill32(0, (void *)BG_SCREEN_ADDR(28), BG_SCREEN_SIZE);
|
||||
SetBgAttribute(1, BG_CTRL_ATTR_VISIBLE, 0);
|
||||
SetBgAttribute(2, BG_CTRL_ATTR_VISIBLE, 0);
|
||||
SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(28) | BGCNT_TXT256x512);
|
||||
SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(30) | BGCNT_TXT512x256);
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
sub_811828C(taskId);
|
||||
break;
|
||||
}
|
||||
|
||||
if (gTasks[taskId].data[0] != 4)
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[4], 0));
|
||||
}
|
||||
|
||||
static void BattleIntroSlideLink(u8 taskId)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (gTasks[taskId].data[0] > 1 && !gTasks[taskId].data[4])
|
||||
{
|
||||
u16 var0 = gBattle_BG1_X & 0x8000;
|
||||
if (var0 || gBattle_BG1_X < 80)
|
||||
{
|
||||
gBattle_BG1_X += 3;
|
||||
gBattle_BG2_X -= 3;
|
||||
}
|
||||
else
|
||||
{
|
||||
CpuFill32(0, (void *)BG_SCREEN_ADDR(28), BG_SCREEN_SIZE);
|
||||
CpuFill32(0, (void *)BG_SCREEN_ADDR(30), BG_SCREEN_SIZE);
|
||||
gTasks[taskId].data[4] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
switch (gTasks[taskId].data[0])
|
||||
{
|
||||
case 0:
|
||||
gTasks[taskId].data[2] = 32;
|
||||
gTasks[taskId].data[0]++;
|
||||
break;
|
||||
case 1:
|
||||
if (--gTasks[taskId].data[2] == 0)
|
||||
{
|
||||
gTasks[taskId].data[0]++;
|
||||
gSprites[gBattleStruct->field_7D].oam.objMode = ST_OAM_OBJ_WINDOW;
|
||||
gSprites[gBattleStruct->field_7D].callback = sub_8038B74;
|
||||
gSprites[gBattleStruct->field_7E].oam.objMode = ST_OAM_OBJ_WINDOW;
|
||||
gSprites[gBattleStruct->field_7E].callback = sub_8038B74;
|
||||
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR);
|
||||
SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
gBattle_WIN0V -= 0xFF;
|
||||
if ((gBattle_WIN0V & 0xFF00) == 0x3000)
|
||||
{
|
||||
gTasks[taskId].data[0]++;
|
||||
gTasks[taskId].data[2] = 240;
|
||||
gTasks[taskId].data[3] = 32;
|
||||
gIntroSlideFlags &= ~1;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (gBattle_WIN0V & 0xFF00)
|
||||
gBattle_WIN0V -= 0x3FC;
|
||||
|
||||
if (gTasks[taskId].data[2])
|
||||
gTasks[taskId].data[2] -= 2;
|
||||
|
||||
// Scanline settings have already been set in CB2_InitBattleInternal()
|
||||
for (i = 0; i < 80; i++)
|
||||
gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gTasks[taskId].data[2];
|
||||
|
||||
for (; i < 160; i++)
|
||||
gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = -gTasks[taskId].data[2];
|
||||
|
||||
if (!gTasks[taskId].data[2])
|
||||
{
|
||||
gScanlineEffect.state = 3;
|
||||
gTasks[taskId].data[0]++;
|
||||
SetBgAttribute(1, BG_CTRL_ATTR_VISIBLE, 0);
|
||||
SetBgAttribute(2, BG_CTRL_ATTR_VISIBLE, 0);
|
||||
SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(28) | BGCNT_TXT256x512);
|
||||
SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(30) | BGCNT_TXT512x256);
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
sub_811828C(taskId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void BattleIntroSlidePartner(u8 taskId)
|
||||
{
|
||||
switch (gTasks[taskId].data[0])
|
||||
{
|
||||
case 0:
|
||||
gTasks[taskId].data[2] = 1;
|
||||
gTasks[taskId].data[0]++;
|
||||
break;
|
||||
case 1:
|
||||
if (--gTasks[taskId].data[2] == 0)
|
||||
{
|
||||
gTasks[taskId].data[0]++;
|
||||
SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(2) | BGCNT_CHARBASE(2) | BGCNT_16COLOR | BGCNT_SCREENBASE(28) | BGCNT_TXT512x256);
|
||||
SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(2) | BGCNT_CHARBASE(2) | BGCNT_16COLOR | BGCNT_SCREENBASE(30) | BGCNT_TXT512x256);
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, GetGpuReg(REG_OFFSET_DISPCNT) | DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON | DISPCNT_WIN1_ON | DISPCNT_OBJWIN_ON);
|
||||
SetGpuReg(REG_OFFSET_WININ, WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR);
|
||||
SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR | WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR);
|
||||
gBattle_BG0_Y = -48;
|
||||
gBattle_BG1_X = 240;
|
||||
gBattle_BG2_X = -240;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
gBattle_WIN0V += 0x100;
|
||||
if ((gBattle_WIN0V & 0xFF00) != 0x100)
|
||||
gBattle_WIN0V--;
|
||||
|
||||
if ((gBattle_WIN0V & 0xFF00) == 0x2000)
|
||||
{
|
||||
gTasks[taskId].data[0]++;
|
||||
gTasks[taskId].data[2] = 240;
|
||||
gIntroSlideFlags &= ~1;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if ((gBattle_WIN0V & 0xFF00) != 0x4C00)
|
||||
gBattle_WIN0V += 0x3FC;
|
||||
|
||||
if (gTasks[taskId].data[2])
|
||||
gTasks[taskId].data[2] -= 2;
|
||||
|
||||
gBattle_BG1_X = gTasks[taskId].data[2];
|
||||
gBattle_BG2_X = -gTasks[taskId].data[2];
|
||||
if (!gTasks[taskId].data[2])
|
||||
gTasks[taskId].data[0]++;
|
||||
break;
|
||||
case 4:
|
||||
gBattle_BG0_Y += 2;
|
||||
gBattle_BG2_Y += 2;
|
||||
if ((gBattle_WIN0V & 0xFF00) != 0x5000)
|
||||
gBattle_WIN0V += 0xFF;
|
||||
|
||||
if (!gBattle_BG0_Y)
|
||||
{
|
||||
CpuFill32(0, (void *)BG_SCREEN_ADDR(28), BG_SCREEN_SIZE * 4);
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, GetGpuReg(REG_OFFSET_DISPCNT) & ~DISPCNT_WIN1_ON);
|
||||
SetBgAttribute(1, BG_CTRL_ATTR_VISIBLE, 0);
|
||||
SetBgAttribute(2, BG_CTRL_ATTR_VISIBLE, 0);
|
||||
SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(28) | BGCNT_TXT256x512);
|
||||
SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(30) | BGCNT_TXT512x256);
|
||||
gScanlineEffect.state = 3;
|
||||
gTasks[taskId].data[0]++;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
sub_811828C(taskId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8118FBC(int bgId, u8 arg1, u8 arg2, u8 battlerPosition, u8 arg4, u8 *arg5, u16 *arg6, u16 tilesOffset)
|
||||
{
|
||||
int i, j;
|
||||
u8 battler = GetBattlerAtPosition(battlerPosition);
|
||||
int offset = tilesOffset;
|
||||
CpuCopy16(gMonSpritesGfxPtr->sprites[battlerPosition] + BG_SCREEN_SIZE * gBattleMonForms[battler], arg5, BG_SCREEN_SIZE);
|
||||
LoadBgTiles(bgId, arg5, 0x1000, tilesOffset);
|
||||
for (i = arg2; i < arg2 + 8; i++)
|
||||
{
|
||||
for (j = arg1; j < arg1 + 8; j++)
|
||||
{
|
||||
arg6[i * 32 + j] = offset | (arg4 << 12);
|
||||
offset++;
|
||||
}
|
||||
}
|
||||
|
||||
LoadBgTilemap(bgId, arg6, BG_SCREEN_SIZE, 0);
|
||||
}
|
||||
|
||||
#ifdef NONMATCHING
|
||||
void unref_sub_8119094(u8 arg0, u8 arg1, u8 battlerPosition, u8 arg3, u8 arg4, u16 arg5, u8 arg6, u8 arg7)
|
||||
{
|
||||
int i, j;
|
||||
int offset;
|
||||
DmaCopy16(3, gMonSpritesGfxPtr->sprites[battlerPosition] + BG_SCREEN_SIZE * arg3, (void *)BG_SCREEN_ADDR(0) + arg5, BG_SCREEN_SIZE);
|
||||
offset = (arg5 >> 5) - (arg7 << 9);
|
||||
for (i = arg1; i < arg1 + 8; i++)
|
||||
{
|
||||
for (j = arg0; j < arg0 + 8; j++)
|
||||
{
|
||||
((u16 *)BG_VRAM)[i * 32 + j + (arg6 * 0x400) + arg0] = offset | (arg4 << 12);
|
||||
offset++;
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
NAKED
|
||||
void unref_sub_8119094(u8 arg0, u8 arg1, u8 battlerPosition, u8 arg3, u8 arg4, u16 arg5, u8 arg6, u8 arg7)
|
||||
{
|
||||
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\
|
||||
ldr r4, [sp, 0x24]\n\
|
||||
ldr r5, [sp, 0x28]\n\
|
||||
mov r8, r5\n\
|
||||
ldr r5, [sp, 0x2C]\n\
|
||||
ldr r6, [sp, 0x30]\n\
|
||||
mov r9, r6\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
mov r12, r0\n\
|
||||
lsls r1, 24\n\
|
||||
lsls r2, 24\n\
|
||||
lsls r3, 24\n\
|
||||
lsls r4, 24\n\
|
||||
lsrs r4, 24\n\
|
||||
mov r10, r4\n\
|
||||
mov r7, r8\n\
|
||||
lsls r7, 16\n\
|
||||
lsrs r6, r7, 16\n\
|
||||
lsls r5, 24\n\
|
||||
lsrs r5, 24\n\
|
||||
mov r0, r9\n\
|
||||
lsls r0, 24\n\
|
||||
mov r9, r0\n\
|
||||
ldr r4, =0x040000d4\n\
|
||||
ldr r0, =gMonSpritesGfxPtr\n\
|
||||
ldr r0, [r0]\n\
|
||||
lsrs r2, 22\n\
|
||||
adds r0, 0x4\n\
|
||||
adds r0, r2\n\
|
||||
lsrs r3, 13\n\
|
||||
ldr r0, [r0]\n\
|
||||
adds r0, r3\n\
|
||||
str r0, [r4]\n\
|
||||
movs r0, 0xC0\n\
|
||||
lsls r0, 19\n\
|
||||
adds r6, r0\n\
|
||||
str r6, [r4, 0x4]\n\
|
||||
ldr r0, =0x80000400\n\
|
||||
str r0, [r4, 0x8]\n\
|
||||
ldr r0, [r4, 0x8]\n\
|
||||
adds r2, r7, 0\n\
|
||||
lsrs r2, 21\n\
|
||||
mov r6, r9\n\
|
||||
lsrs r6, 15\n\
|
||||
subs r4, r2, r6\n\
|
||||
lsrs r0, r1, 24\n\
|
||||
adds r1, r0, 0\n\
|
||||
adds r1, 0x8\n\
|
||||
cmp r0, r1\n\
|
||||
bge _08119148\n\
|
||||
mov r9, r1\n\
|
||||
mov r7, r12\n\
|
||||
lsls r7, 1\n\
|
||||
mov r8, r7\n\
|
||||
lsls r5, 11\n\
|
||||
str r5, [sp]\n\
|
||||
_08119110:\n\
|
||||
mov r2, r12\n\
|
||||
adds r3, r2, 0\n\
|
||||
adds r3, 0x8\n\
|
||||
adds r5, r0, 0x1\n\
|
||||
cmp r2, r3\n\
|
||||
bge _08119142\n\
|
||||
mov r1, r10\n\
|
||||
lsls r6, r1, 12\n\
|
||||
lsls r0, 6\n\
|
||||
movs r7, 0xC0\n\
|
||||
lsls r7, 19\n\
|
||||
adds r0, r7\n\
|
||||
ldr r1, [sp]\n\
|
||||
adds r0, r1, r0\n\
|
||||
mov r7, r8\n\
|
||||
adds r1, r7, r0\n\
|
||||
subs r2, r3, r2\n\
|
||||
_08119132:\n\
|
||||
adds r0, r4, 0\n\
|
||||
orrs r0, r6\n\
|
||||
strh r0, [r1]\n\
|
||||
adds r4, 0x1\n\
|
||||
adds r1, 0x2\n\
|
||||
subs r2, 0x1\n\
|
||||
cmp r2, 0\n\
|
||||
bne _08119132\n\
|
||||
_08119142:\n\
|
||||
adds r0, r5, 0\n\
|
||||
cmp r0, r9\n\
|
||||
blt _08119110\n\
|
||||
_08119148:\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");
|
||||
}
|
||||
#endif
|
||||
|
||||
+5
-18
@@ -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"
|
||||
@@ -55,20 +56,6 @@
|
||||
#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[];
|
||||
@@ -81,7 +68,7 @@ extern const u8 *const gBattlescriptsForBallThrow[];
|
||||
extern const u8 *const gBattlescriptsForRunningByItem[];
|
||||
extern const u8 *const gBattlescriptsForUsingItem[];
|
||||
extern const u8 *const gBattlescriptsForSafariActions[];
|
||||
extern const struct ScanlineEffectParams gUnknown_0831AC70;
|
||||
extern const struct ScanlineEffectParams gBattleIntroSlideScanlineEffectParams;
|
||||
|
||||
// strings
|
||||
extern const u8 gText_LinkStandby3[];
|
||||
@@ -633,7 +620,7 @@ static void CB2_InitBattleInternal(void)
|
||||
gScanlineEffectRegBuffers[1][i] = 0xFF10;
|
||||
}
|
||||
|
||||
ScanlineEffect_SetParams(gUnknown_0831AC70);
|
||||
ScanlineEffect_SetParams(gBattleIntroSlideScanlineEffectParams);
|
||||
}
|
||||
|
||||
ResetPaletteFade();
|
||||
@@ -2122,12 +2109,12 @@ static void sub_8038B94(u8 taskId)
|
||||
if (species != SPECIES_EGG && hp != 0 && status == 0)
|
||||
r7 |= 1 << i * 2;
|
||||
|
||||
if (species == 0)
|
||||
if (species == SPECIES_NONE)
|
||||
continue;
|
||||
if (hp != 0 && (species == SPECIES_EGG || status != 0))
|
||||
r7 |= 2 << i * 2;
|
||||
|
||||
if (species == 0)
|
||||
if (species == SPECIES_NONE)
|
||||
continue;
|
||||
if (species != SPECIES_EGG && hp == 0)
|
||||
r7 |= 3 << i * 2;
|
||||
|
||||
@@ -50,8 +50,6 @@ struct PikeWildMon
|
||||
u16 moves[4];
|
||||
};
|
||||
|
||||
extern const struct BattleFrontierTrainer gBattleFrontierTrainers[];
|
||||
|
||||
// IWRAM bss
|
||||
static IWRAM_DATA u8 sRoomType;
|
||||
static IWRAM_DATA u8 sStatusMon;
|
||||
|
||||
@@ -37,9 +37,6 @@ extern void door_upload_tiles(void);
|
||||
|
||||
extern const struct MapLayout *const gMapLayouts[];
|
||||
extern const u16 gUnknown_08D856C8[][16];
|
||||
extern const u16 gBattleFrontierHeldItems[];
|
||||
extern const struct FacilityMon gBattleFrontierMons[];
|
||||
extern const struct BattleFrontierTrainer gBattleFrontierTrainers[];
|
||||
|
||||
#define TOTAL_ROUNDS 20
|
||||
#define PICKUP_ITEMS_PER_ROUND 10
|
||||
|
||||
@@ -55,11 +55,11 @@ extern const u8* const gBattleScriptsForMoveEffects[];
|
||||
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 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* GetMonNickname(struct Pokemon* mon, u8* dst); // party_menu
|
||||
extern void sub_81B8E80(u8 battlerId, u8, u8); // party menu
|
||||
extern bool8 sub_81B1250(void); // ?
|
||||
extern bool8 IsMultiBattle(void); // ?
|
||||
extern u8 sub_813B21C(void);
|
||||
extern u16 get_unknown_box_id(void);
|
||||
|
||||
@@ -7609,7 +7609,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)
|
||||
@@ -8648,7 +8648,7 @@ static void atkAE_healpartystatus(void)
|
||||
u16 species = GetMonData(&party[i], MON_DATA_SPECIES2);
|
||||
u8 abilityBit = GetMonData(&party[i], MON_DATA_ALT_ABILITY);
|
||||
|
||||
if (species != 0 && species != SPECIES_EGG)
|
||||
if (species != SPECIES_NONE && species != SPECIES_EGG)
|
||||
{
|
||||
u8 ability;
|
||||
|
||||
|
||||
+2
-2
@@ -57,7 +57,7 @@ struct TrainerBattleParameter
|
||||
};
|
||||
|
||||
extern bool32 InTrainerHill(void);
|
||||
extern bool32 FieldPoisonEffectIsRunning(void);
|
||||
extern bool32 FldEffPoison_IsActive(void);
|
||||
extern void RestartWildEncounterImmunitySteps(void);
|
||||
extern void ClearPoisonStepCounter(void);
|
||||
extern void sub_81BE72C(void);
|
||||
@@ -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();
|
||||
|
||||
+4
-7
@@ -13,10 +13,7 @@
|
||||
#include "string_util.h"
|
||||
#include "constants/items.h"
|
||||
#include "constants/region_map_sections.h"
|
||||
|
||||
extern const struct BattleFrontierTrainer gSlateportBattleTentTrainers[];
|
||||
extern const struct FacilityMon gSlateportBattleTentMons[];
|
||||
extern const u16 gBattleFrontierHeldItems[];
|
||||
#include "constants/species.h"
|
||||
|
||||
// This file's functions.
|
||||
static void sub_81B99D4(void);
|
||||
@@ -296,7 +293,7 @@ static void sub_81B9EC0(void)
|
||||
heldItems[i] = 0;
|
||||
}
|
||||
gFacilityTrainerMons = gSlateportBattleTentMons;
|
||||
currSpecies = 0;
|
||||
currSpecies = SPECIES_NONE;
|
||||
i = 0;
|
||||
while (i != PARTY_SIZE)
|
||||
{
|
||||
@@ -309,7 +306,7 @@ static void sub_81B9EC0(void)
|
||||
break;
|
||||
if (species[j] == gFacilityTrainerMons[monSetId].species)
|
||||
{
|
||||
if (currSpecies == 0)
|
||||
if (currSpecies == SPECIES_NONE)
|
||||
currSpecies = gFacilityTrainerMons[monSetId].species;
|
||||
else
|
||||
break;
|
||||
@@ -324,7 +321,7 @@ static void sub_81B9EC0(void)
|
||||
if (heldItems[j] != 0 && heldItems[j] == gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId])
|
||||
{
|
||||
if (gFacilityTrainerMons[monSetId].species == currSpecies)
|
||||
currSpecies = 0;
|
||||
currSpecies = SPECIES_NONE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
+987
-35
File diff suppressed because it is too large
Load Diff
@@ -59,7 +59,7 @@ typedef bool8 (*TransitionSpriteCallback)(struct Sprite *sprite);
|
||||
|
||||
extern const struct OamData gEventObjectBaseOam_32x32;
|
||||
|
||||
extern void sub_80AC3D0(void);
|
||||
extern void SetWeatherScreenFadeOut(void);
|
||||
|
||||
// this file's functions
|
||||
static void LaunchBattleTransitionTask(u8 transitionId);
|
||||
@@ -981,7 +981,7 @@ static void Task_BattleTransitionMain(u8 taskId)
|
||||
|
||||
static bool8 Transition_Phase1(struct Task *task)
|
||||
{
|
||||
sub_80AC3D0();
|
||||
SetWeatherScreenFadeOut();
|
||||
CpuCopy32(gPlttBufferFaded, gPlttBufferUnfaded, 0x400);
|
||||
if (sPhase1_Tasks[task->tTransitionId] != NULL)
|
||||
{
|
||||
|
||||
+9
-9
@@ -17,13 +17,13 @@
|
||||
#include "string_util.h"
|
||||
#include "battle_message.h"
|
||||
#include "constants/battle_string_ids.h"
|
||||
#include "constants/weather.h"
|
||||
#include "battle_ai_script_commands.h"
|
||||
#include "battle_controllers.h"
|
||||
#include "event_data.h"
|
||||
#include "link.h"
|
||||
#include "berry.h"
|
||||
|
||||
extern u8 weather_get_current(void);
|
||||
#include "field_weather.h"
|
||||
|
||||
// rom const data
|
||||
static const u16 sSoundMovesTable[] =
|
||||
@@ -1827,11 +1827,11 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
|
||||
case ABILITYEFFECT_SWITCH_IN_WEATHER:
|
||||
if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED))
|
||||
{
|
||||
switch (weather_get_current())
|
||||
switch (GetCurrentWeather())
|
||||
{
|
||||
case 3:
|
||||
case 5:
|
||||
case 13:
|
||||
case WEATHER_RAIN_LIGHT:
|
||||
case WEATHER_RAIN_MED:
|
||||
case WEATHER_RAIN_HEAVY:
|
||||
if (!(gBattleWeather & WEATHER_RAIN_ANY))
|
||||
{
|
||||
gBattleWeather = (WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_PERMANENT);
|
||||
@@ -1840,7 +1840,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
|
||||
effect++;
|
||||
}
|
||||
break;
|
||||
case 8:
|
||||
case WEATHER_SANDSTORM:
|
||||
if (!(gBattleWeather & WEATHER_SANDSTORM_ANY))
|
||||
{
|
||||
gBattleWeather = (WEATHER_SANDSTORM_PERMANENT | WEATHER_SANDSTORM_TEMPORARY);
|
||||
@@ -1849,7 +1849,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
|
||||
effect++;
|
||||
}
|
||||
break;
|
||||
case 12:
|
||||
case WEATHER_DROUGHT:
|
||||
if (!(gBattleWeather & WEATHER_SUN_ANY))
|
||||
{
|
||||
gBattleWeather = (WEATHER_SUN_PERMANENT | WEATHER_SUN_TEMPORARY);
|
||||
@@ -1862,7 +1862,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
|
||||
}
|
||||
if (effect)
|
||||
{
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = weather_get_current();
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = GetCurrentWeather();
|
||||
BattleScriptPushCursorAndCallback(BattleScript_OverworldWeatherStarts);
|
||||
}
|
||||
break;
|
||||
|
||||
+1
-1
@@ -42,7 +42,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]);
|
||||
}
|
||||
}
|
||||
|
||||
+7
-7
@@ -66,20 +66,20 @@ const u8 *GetPokedexRatingText(u16 count)
|
||||
return gBirchDexRatingText_LessThan200;
|
||||
if (count == 200)
|
||||
{
|
||||
if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_JIRACHI), 1)
|
||||
|| GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_DEOXYS), 1)) // Jirachi or Deoxys is not counted towards the dex completion. If either of these flags are enabled, it means the actual count is less than 200.
|
||||
if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_JIRACHI), FLAG_GET_CAUGHT)
|
||||
|| GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_DEOXYS), FLAG_GET_CAUGHT)) // Jirachi or Deoxys is not counted towards the dex completion. If either of these flags are enabled, it means the actual count is less than 200.
|
||||
return gBirchDexRatingText_LessThan200;
|
||||
return gBirchDexRatingText_DexCompleted;
|
||||
}
|
||||
if (count == 201)
|
||||
if (count == HOENN_DEX_COUNT - 1)
|
||||
{
|
||||
if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_JIRACHI), 1)
|
||||
&& GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_DEOXYS), 1)) // If both of these flags are enabled, it means the actual count is less than 200.
|
||||
if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_JIRACHI), FLAG_GET_CAUGHT)
|
||||
&& GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_DEOXYS), FLAG_GET_CAUGHT)) // If both of these flags are enabled, it means the actual count is less than 200.
|
||||
return gBirchDexRatingText_LessThan200;
|
||||
return gBirchDexRatingText_DexCompleted;
|
||||
}
|
||||
if (count == 202)
|
||||
return gBirchDexRatingText_DexCompleted; // Hoenn dex is considered complete, even though the hoenn dex count is 210.
|
||||
if (count == HOENN_DEX_COUNT)
|
||||
return gBirchDexRatingText_DexCompleted;
|
||||
return gBirchDexRatingText_LessThan10;
|
||||
}
|
||||
|
||||
|
||||
+5
-5
@@ -1,12 +1,12 @@
|
||||
#include "global.h"
|
||||
#include "blit.h"
|
||||
|
||||
void BlitBitmapRect4BitWithoutColorKey(struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 srcY, u16 dstX, u16 dstY, u16 width, u16 height)
|
||||
void BlitBitmapRect4BitWithoutColorKey(const struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 srcY, u16 dstX, u16 dstY, u16 width, u16 height)
|
||||
{
|
||||
BlitBitmapRect4Bit(src, dst, srcX, srcY, dstX, dstY, width, height, 0xFF);
|
||||
}
|
||||
|
||||
void BlitBitmapRect4Bit(struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 srcY, u16 dstX, u16 dstY, u16 width, u16 height, u8 colorKey)
|
||||
void BlitBitmapRect4Bit(const struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 srcY, u16 dstX, u16 dstY, u16 width, u16 height, u8 colorKey)
|
||||
{
|
||||
s32 xEnd;
|
||||
s32 yEnd;
|
||||
@@ -14,7 +14,7 @@ void BlitBitmapRect4Bit(struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 sr
|
||||
s32 multiplierDstY;
|
||||
s32 loopSrcY, loopDstY;
|
||||
s32 loopSrcX, loopDstX;
|
||||
u8 *pixelsSrc;
|
||||
const u8 *pixelsSrc;
|
||||
u8 *pixelsDst;
|
||||
s32 toOrr;
|
||||
s32 toAnd;
|
||||
@@ -103,7 +103,7 @@ void FillBitmapRect4Bit(struct Bitmap *surface, u16 x, u16 y, u16 width, u16 hei
|
||||
}
|
||||
}
|
||||
|
||||
void BlitBitmapRect4BitTo8Bit(struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 srcY, u16 dstX, u16 dstY, u16 width, u16 height, u8 colorKey, u8 paletteOffset)
|
||||
void BlitBitmapRect4BitTo8Bit(const struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 srcY, u16 dstX, u16 dstY, u16 width, u16 height, u8 colorKey, u8 paletteOffset)
|
||||
{
|
||||
s32 palOffsetBits;
|
||||
s32 xEnd;
|
||||
@@ -112,7 +112,7 @@ void BlitBitmapRect4BitTo8Bit(struct Bitmap *src, struct Bitmap *dst, u16 srcX,
|
||||
s32 multiplierDstY;
|
||||
s32 loopSrcY, loopDstY;
|
||||
s32 loopSrcX, loopDstX;
|
||||
u8 *pixelsSrc;
|
||||
const u8 *pixelsSrc;
|
||||
u8 *pixelsDst;
|
||||
s32 colorKeyBits;
|
||||
|
||||
|
||||
@@ -252,7 +252,7 @@ void sub_81104E4(struct Sprite *sprite)
|
||||
if (IsContest())
|
||||
gBattleAnimArgs[2] /= 2;
|
||||
|
||||
InitAnimSpritePos(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
sprite->data[0] = gBattleAnimArgs[2];
|
||||
sprite->data[1] = sprite->pos1.x;
|
||||
sprite->data[3] = sprite->pos1.y;
|
||||
@@ -274,7 +274,7 @@ void sub_81104E4(struct Sprite *sprite)
|
||||
|
||||
static void sub_811057C(struct Sprite *sprite)
|
||||
{
|
||||
if (TranslateAnimLinear(sprite))
|
||||
if (AnimTranslateLinear(sprite))
|
||||
{
|
||||
DestroyAnimSprite(sprite);
|
||||
return;
|
||||
@@ -389,13 +389,13 @@ void AnimTranslateStinger(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
InitAnimSpritePos(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
|
||||
lVarX = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2];
|
||||
lVarY = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3];
|
||||
rot = ArcTan2Neg(lVarX - sprite->pos1.x, lVarY - sprite->pos1.y);
|
||||
rot += 0xC000;
|
||||
sub_80A73E0(sprite, FALSE, 0x100, 0x100, rot);
|
||||
TrySetSpriteRotScale(sprite, FALSE, 0x100, 0x100, rot);
|
||||
|
||||
sprite->data[0] = gBattleAnimArgs[4];
|
||||
sprite->data[2] = lVarX;
|
||||
@@ -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];
|
||||
@@ -458,7 +458,7 @@ static void AnimMissileArcStep(struct Sprite *sprite)
|
||||
u16 rotation = ArcTan2Neg(sprite->pos1.x + sprite->pos2.x - x2,
|
||||
sprite->pos1.y + sprite->pos2.y - y2);
|
||||
rotation += 0xC000;
|
||||
sub_80A73E0(sprite, FALSE, 0x100, 0x100, rotation);
|
||||
TrySetSpriteRotScale(sprite, FALSE, 0x100, 0x100, rotation);
|
||||
|
||||
for (i = 0; i < 8; i++)
|
||||
data[i] = tempData[i];
|
||||
@@ -479,6 +479,6 @@ void sub_8110994(struct Sprite *sprite)
|
||||
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + 18;
|
||||
}
|
||||
|
||||
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
|
||||
sprite->callback = sub_80A67BC;
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
|
||||
}
|
||||
|
||||
Executable
+1006
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -5,7 +5,7 @@
|
||||
#include "lottery_corner.h"
|
||||
#include "dewford_trend.h"
|
||||
#include "tv.h"
|
||||
#include "field_screen.h"
|
||||
#include "field_weather.h"
|
||||
#include "berry.h"
|
||||
#include "main.h"
|
||||
#include "overworld.h"
|
||||
|
||||
+1
-1
@@ -2520,7 +2520,7 @@ u8 sub_80DB174(u16 species, u32 otId, u32 personality, u32 index)
|
||||
spriteId = CreateSprite(&gMultiuseSpriteTemplate, 0x70, GetBattlerSpriteFinal_Y(2, species, FALSE), 30);
|
||||
gSprites[spriteId].oam.paletteNum = 2;
|
||||
gSprites[spriteId].oam.priority = 2;
|
||||
gSprites[spriteId].subpriority = sub_80A82E4(2);
|
||||
gSprites[spriteId].subpriority = GetBattlerSpriteSubpriority(2);
|
||||
gSprites[spriteId].callback = SpriteCallbackDummy;
|
||||
gSprites[spriteId].data[0] = gSprites[spriteId].oam.paletteNum;
|
||||
gSprites[spriteId].data[2] = species;
|
||||
|
||||
+706
-5
@@ -1,8 +1,709 @@
|
||||
#include "global.h"
|
||||
#include "alloc.h"
|
||||
#include "battle.h"
|
||||
#include "bg.h"
|
||||
#include "contest.h"
|
||||
#include "contest_painting.h"
|
||||
#include "contest_painting_effects.h"
|
||||
#include "battle_gfx_sfx_util.h"
|
||||
#include "decompress.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "international_string_util.h"
|
||||
#include "main.h"
|
||||
#include "lilycove_lady.h"
|
||||
#include "palette.h"
|
||||
#include "random.h"
|
||||
#include "scanline_effect.h"
|
||||
#include "string_util.h"
|
||||
#include "strings.h"
|
||||
#include "text.h"
|
||||
#include "window.h"
|
||||
#include "constants/rgb.h"
|
||||
|
||||
extern u8 gUnknown_02039F5C;
|
||||
extern u8 gUnknown_02039F5D;
|
||||
|
||||
extern u16 (*gUnknown_03006190)[][32];
|
||||
extern struct ContestWinner *gUnknown_030061C0;
|
||||
extern u16 *gContestPaintingMonPalette;
|
||||
extern struct Unk030061A0 gUnknown_030061A0;
|
||||
|
||||
// IWRAM bss
|
||||
IWRAM_DATA u8 gUnknown_030011F0;
|
||||
IWRAM_DATA u16 gUnknown_030011F2;
|
||||
IWRAM_DATA u16 gUnknown_030011F4;
|
||||
IWRAM_DATA u8 gUnknown_030011F6;
|
||||
IWRAM_DATA u8 gUnknown_030011F7;
|
||||
IWRAM_DATA u8 gContestPaintingState;
|
||||
IWRAM_DATA u16 gContestPaintingMosaicVal;
|
||||
IWRAM_DATA u16 gContestPaintingFadeCounter;
|
||||
IWRAM_DATA bool8 gUnknown_030011F6;
|
||||
IWRAM_DATA u8 gContestPaintingWindowId;
|
||||
|
||||
static void ShowContestPainting(void);
|
||||
static void HoldContestPainting(void);
|
||||
static void InitContestPaintingWindow(void);
|
||||
static void InitContestPaintingBg(void);
|
||||
static void InitContestPaintingVars(bool8);
|
||||
static void sub_8130884(u8, u8);
|
||||
static void PrintContestPaintingCaption(u8, u8);
|
||||
static void VBlankCB_ContestPainting(void);
|
||||
static void sub_8130380(u8 *spritePixels, u16 *palette, u16 (*destColorBuffer)[64][64]);
|
||||
|
||||
extern const u8 gUnknown_0827EA0C[];
|
||||
extern const struct CompressedSpriteSheet gMonFrontPicTable[];
|
||||
extern const struct CompressedSpriteSheet gMonBackPicTable[];
|
||||
extern const u8 gContestCoolness[];
|
||||
extern const u8 gContestBeauty[];
|
||||
extern const u8 gContestCuteness[];
|
||||
extern const u8 gContestSmartness[];
|
||||
extern const u8 gContestToughness[];
|
||||
extern const u8 gContestRankNormal[];
|
||||
extern const u8 gContestRankSuper[];
|
||||
extern const u8 gContestRankHyper[];
|
||||
extern const u8 gContestRankMaster[];
|
||||
extern const u8 gContestLink[];
|
||||
extern const u8 gContestPaintingCool1[];
|
||||
extern const u8 gContestPaintingCool2[];
|
||||
extern const u8 gContestPaintingCool3[];
|
||||
extern const u8 gContestPaintingBeauty1[];
|
||||
extern const u8 gContestPaintingBeauty2[];
|
||||
extern const u8 gContestPaintingBeauty3[];
|
||||
extern const u8 gContestPaintingCute1[];
|
||||
extern const u8 gContestPaintingCute2[];
|
||||
extern const u8 gContestPaintingCute3[];
|
||||
extern const u8 gContestPaintingSmart1[];
|
||||
extern const u8 gContestPaintingSmart2[];
|
||||
extern const u8 gContestPaintingSmart3[];
|
||||
extern const u8 gContestPaintingTough1[];
|
||||
extern const u8 gContestPaintingTough2[];
|
||||
extern const u8 gContestPaintingTough3[];
|
||||
|
||||
const u16 gPictureFramePalettes[] = INCBIN_U16("graphics/picture_frame/bg.gbapal");
|
||||
const u8 gPictureFrameTiles_0[] = INCBIN_U8("graphics/picture_frame/frame0.4bpp.rl");
|
||||
const u8 gPictureFrameTiles_1[] = INCBIN_U8("graphics/picture_frame/frame1.4bpp.rl");
|
||||
const u8 gPictureFrameTiles_2[] = INCBIN_U8("graphics/picture_frame/frame2.4bpp.rl");
|
||||
const u8 gPictureFrameTiles_3[] = INCBIN_U8("graphics/picture_frame/frame3.4bpp.rl");
|
||||
const u8 gPictureFrameTiles_4[] = INCBIN_U8("graphics/picture_frame/frame4.4bpp.rl");
|
||||
const u8 gPictureFrameTiles_5[] = INCBIN_U8("graphics/picture_frame/frame5.4bpp.rl");
|
||||
const u8 gPictureFrameTilemap_0[] = INCBIN_U8("graphics/picture_frame/frame0_map.bin.rl");
|
||||
const u8 gPictureFrameTilemap_1[] = INCBIN_U8("graphics/picture_frame/frame1_map.bin.rl");
|
||||
const u8 gPictureFrameTilemap_2[] = INCBIN_U8("graphics/picture_frame/frame2_map.bin.rl");
|
||||
const u8 gPictureFrameTilemap_3[] = INCBIN_U8("graphics/picture_frame/frame3_map.bin.rl");
|
||||
const u8 gPictureFrameTilemap_4[] = INCBIN_U8("graphics/picture_frame/frame4_map.bin.rl");
|
||||
const u8 gPictureFrameTilemap_5[] = INCBIN_U8("graphics/picture_frame/frame5_map.bin.rl");
|
||||
|
||||
const u8 *const gUnknown_085B07C0[] =
|
||||
{
|
||||
gContestCoolness,
|
||||
gContestBeauty,
|
||||
gContestCuteness,
|
||||
gContestSmartness,
|
||||
gContestToughness,
|
||||
};
|
||||
|
||||
const u8 *const gContestRankTextPointers[] =
|
||||
{
|
||||
gContestRankNormal,
|
||||
gContestRankSuper,
|
||||
gContestRankHyper,
|
||||
gContestRankMaster,
|
||||
gContestLink,
|
||||
};
|
||||
|
||||
const struct BgTemplate gUnknown_085B07E8[] =
|
||||
{
|
||||
{
|
||||
.bg = 1,
|
||||
.charBaseIndex = 1,
|
||||
.mapBaseIndex = 10,
|
||||
.screenSize = 0,
|
||||
.paletteMode = 0,
|
||||
.priority = 1,
|
||||
.baseTile = 0,
|
||||
},
|
||||
};
|
||||
|
||||
const struct WindowTemplate gUnknown_085B07EC =
|
||||
{
|
||||
.bg = 1,
|
||||
.tilemapLeft = 2,
|
||||
.tilemapTop = 14,
|
||||
.width = 26,
|
||||
.height = 4,
|
||||
.paletteNum = 15,
|
||||
.baseBlock = 1,
|
||||
};
|
||||
|
||||
const u8 *const gContestPaintingDescriptionPointers[] =
|
||||
{
|
||||
gContestPaintingCool1,
|
||||
gContestPaintingCool2,
|
||||
gContestPaintingCool3,
|
||||
gContestPaintingBeauty1,
|
||||
gContestPaintingBeauty2,
|
||||
gContestPaintingBeauty3,
|
||||
gContestPaintingCute1,
|
||||
gContestPaintingCute2,
|
||||
gContestPaintingCute3,
|
||||
gContestPaintingSmart1,
|
||||
gContestPaintingSmart2,
|
||||
gContestPaintingSmart3,
|
||||
gContestPaintingTough1,
|
||||
gContestPaintingTough2,
|
||||
gContestPaintingTough3,
|
||||
};
|
||||
|
||||
const struct OamData gUnknown_085B0830 =
|
||||
{
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 1,
|
||||
.bpp = ST_OAM_8BPP,
|
||||
.shape = ST_OAM_SQUARE,
|
||||
.x = 0,
|
||||
.matrixNum = 0,
|
||||
.size = 3,
|
||||
.tileNum = 0,
|
||||
.priority = 0,
|
||||
.paletteNum = 0,
|
||||
.affineParam = 0,
|
||||
};
|
||||
|
||||
const u16 gUnknown_085B0838[] = {RGB(0, 0, 0), RGB(0, 0, 0)};
|
||||
|
||||
void sub_812FDA8(int contestWinner)
|
||||
{
|
||||
// probably fakematching
|
||||
u8 *ptr1 = &gUnknown_02039F5D;
|
||||
u8 *ptr2 = &gUnknown_02039F5C;
|
||||
gUnknown_02039F3C = gSaveBlock1Ptr->contestWinners[contestWinner - 1];
|
||||
*ptr1 = contestWinner - 1;
|
||||
*ptr2 = 0;
|
||||
}
|
||||
|
||||
void CB2_ContestPainting(void)
|
||||
{
|
||||
ShowContestPainting();
|
||||
}
|
||||
|
||||
static void CB2_HoldContestPainting(void)
|
||||
{
|
||||
HoldContestPainting();
|
||||
RunTextPrinters();
|
||||
UpdatePaletteFade();
|
||||
}
|
||||
|
||||
static void CB2_QuitContestPainting(void)
|
||||
{
|
||||
SetMainCallback2(gMain.savedCallback);
|
||||
FREE_AND_SET_NULL(gContestPaintingMonPalette);
|
||||
FREE_AND_SET_NULL(gUnknown_03006190);
|
||||
RemoveWindow(gContestPaintingWindowId);
|
||||
Free(GetBgTilemapBuffer(1));
|
||||
FreeMonSpritesGfx();
|
||||
}
|
||||
|
||||
static void ShowContestPainting(void)
|
||||
{
|
||||
switch (gMain.state)
|
||||
{
|
||||
case 0:
|
||||
ScanlineEffect_Stop();
|
||||
SetVBlankCallback(NULL);
|
||||
AllocateMonSpritesGfx();
|
||||
gUnknown_030061C0 = &gUnknown_02039F3C;
|
||||
InitContestPaintingVars(1);
|
||||
InitContestPaintingBg();
|
||||
gMain.state++;
|
||||
break;
|
||||
case 1:
|
||||
ResetPaletteFade();
|
||||
DmaFillLarge32(3, 0, (void *)BG_VRAM, 0x18000, 0x1000);
|
||||
ResetSpriteData();
|
||||
gMain.state++;
|
||||
break;
|
||||
case 2:
|
||||
SeedRng(gMain.vblankCounter1);
|
||||
InitKeys();
|
||||
InitContestPaintingWindow();
|
||||
gMain.state++;
|
||||
break;
|
||||
case 3:
|
||||
sub_8130884(gUnknown_02039F5D, gUnknown_02039F5C);
|
||||
gMain.state++;
|
||||
break;
|
||||
case 4:
|
||||
PrintContestPaintingCaption(gUnknown_02039F5D, gUnknown_02039F5C);
|
||||
LoadPalette(gUnknown_085B0838, 0, 1 * 2);
|
||||
DmaClear32(3, PLTT, PLTT_SIZE);
|
||||
BeginFastPaletteFade(2);
|
||||
SetVBlankCallback(VBlankCB_ContestPainting);
|
||||
gContestPaintingState = 0;
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_OBJ_ON);
|
||||
SetMainCallback2(CB2_HoldContestPainting);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void HoldContestPainting(void)
|
||||
{
|
||||
switch (gContestPaintingState)
|
||||
{
|
||||
case 0:
|
||||
if (!gPaletteFade.active)
|
||||
gContestPaintingState = 1;
|
||||
if (gUnknown_030011F6 && gContestPaintingFadeCounter)
|
||||
gContestPaintingFadeCounter--;
|
||||
break;
|
||||
case 1:
|
||||
if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & B_BUTTON))
|
||||
{
|
||||
u8 two = 2; //needed to make the asm match
|
||||
gContestPaintingState = two;
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0));
|
||||
}
|
||||
|
||||
if (gUnknown_030011F6)
|
||||
gContestPaintingFadeCounter = 0;
|
||||
break;
|
||||
case 2:
|
||||
if (!gPaletteFade.active)
|
||||
SetMainCallback2(CB2_QuitContestPainting);
|
||||
if (gUnknown_030011F6 && gContestPaintingFadeCounter < 30)
|
||||
gContestPaintingFadeCounter++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void InitContestPaintingWindow(void)
|
||||
{
|
||||
ResetBgsAndClearDma3BusyFlags(0);
|
||||
InitBgsFromTemplates(0, gUnknown_085B07E8, ARRAY_COUNT(gUnknown_085B07E8));
|
||||
ChangeBgX(1, 0, 0);
|
||||
ChangeBgY(1, 0, 0);
|
||||
SetBgTilemapBuffer(1, AllocZeroed(BG_SCREEN_SIZE));
|
||||
gContestPaintingWindowId = AddWindow(&gUnknown_085B07EC);
|
||||
DeactivateAllTextPrinters();
|
||||
FillWindowPixelBuffer(gContestPaintingWindowId, 0);
|
||||
PutWindowTilemap(gContestPaintingWindowId);
|
||||
CopyWindowToVram(gContestPaintingWindowId, 3);
|
||||
ShowBg(1);
|
||||
}
|
||||
|
||||
static void PrintContestPaintingCaption(u8 contestType, u8 arg1)
|
||||
{
|
||||
int x;
|
||||
u8 category;
|
||||
|
||||
if (arg1 == TRUE)
|
||||
return;
|
||||
|
||||
category = gUnknown_030061C0->contestCategory;
|
||||
if (contestType < 8)
|
||||
{
|
||||
sub_818E868(gStringVar1, category);
|
||||
StringAppend(gStringVar1, gText_Space);
|
||||
StringAppend(gStringVar1, gContestRankTextPointers[gUnknown_030061C0->contestRank]);
|
||||
StringCopy(gStringVar2, gUnknown_030061C0->trainerName);
|
||||
sub_81DB5AC(gStringVar2);
|
||||
StringCopy(gStringVar3, gUnknown_030061C0->monName);
|
||||
StringExpandPlaceholders(gStringVar4, gUnknown_0827EA0C);
|
||||
}
|
||||
else
|
||||
{
|
||||
StringCopy(gStringVar1, gUnknown_030061C0->monName);
|
||||
StringExpandPlaceholders(gStringVar4, gContestPaintingDescriptionPointers[category]);
|
||||
}
|
||||
|
||||
x = GetStringCenterAlignXOffset(1, gStringVar4, 208);
|
||||
AddTextPrinterParameterized(gContestPaintingWindowId, 1, gStringVar4, x, 1, 0, 0);
|
||||
CopyBgTilemapBufferToVram(1);
|
||||
}
|
||||
|
||||
static void InitContestPaintingBg(void)
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, 0);
|
||||
REG_IE |= INTR_FLAG_VBLANK;
|
||||
SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(2) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(12) | BGCNT_MOSAIC | BGCNT_16COLOR | BGCNT_TXT256x256);
|
||||
SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(1) | BGCNT_CHARBASE(1) | BGCNT_SCREENBASE(10) | BGCNT_MOSAIC | BGCNT_16COLOR | BGCNT_TXT256x256);
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDY, 0);
|
||||
}
|
||||
|
||||
static void InitContestPaintingVars(bool8 arg0)
|
||||
{
|
||||
if (arg0 == FALSE)
|
||||
{
|
||||
gUnknown_030011F6 = FALSE;
|
||||
gContestPaintingMosaicVal = 0;
|
||||
gContestPaintingFadeCounter = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
gUnknown_030011F6 = TRUE;
|
||||
gContestPaintingMosaicVal = 15;
|
||||
gContestPaintingFadeCounter = 30;
|
||||
}
|
||||
}
|
||||
|
||||
static void UpdateContestPaintingMosaicEffect(void)
|
||||
{
|
||||
if (!gUnknown_030011F6)
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_MOSAIC, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(1) | BGCNT_CHARBASE(1) | BGCNT_SCREENBASE(10) | BGCNT_MOSAIC | BGCNT_16COLOR | BGCNT_TXT256x256);
|
||||
gContestPaintingMosaicVal = gContestPaintingFadeCounter / 2;
|
||||
SetGpuReg(REG_OFFSET_MOSAIC, (gContestPaintingMosaicVal << 12) | (gContestPaintingMosaicVal << 8) | (gContestPaintingMosaicVal << 4) | (gContestPaintingMosaicVal << 0));
|
||||
}
|
||||
}
|
||||
|
||||
static void VBlankCB_ContestPainting(void)
|
||||
{
|
||||
UpdateContestPaintingMosaicEffect();
|
||||
LoadOam();
|
||||
ProcessSpriteCopyRequests();
|
||||
TransferPlttBuffer();
|
||||
}
|
||||
|
||||
void sub_81302E8(u16 species, u8 arg1)
|
||||
{
|
||||
const void *pal = GetFrontSpritePalFromSpeciesAndPersonality(species, gUnknown_030061C0->trainerId, gUnknown_030061C0->personality);
|
||||
LZDecompressVram(pal, gContestPaintingMonPalette);
|
||||
if (!arg1)
|
||||
{
|
||||
HandleLoadSpecialPokePic_DontHandleDeoxys(
|
||||
&gMonFrontPicTable[species],
|
||||
gMonSpritesGfxPtr->sprites[1],
|
||||
species,
|
||||
gUnknown_030061C0->personality);
|
||||
sub_8130380(gMonSpritesGfxPtr->sprites[1], gContestPaintingMonPalette, (void *)gUnknown_03006190);
|
||||
}
|
||||
else
|
||||
{
|
||||
HandleLoadSpecialPokePic_DontHandleDeoxys(
|
||||
&gMonBackPicTable[species],
|
||||
gMonSpritesGfxPtr->sprites[0],
|
||||
species,
|
||||
gUnknown_030061C0->personality);
|
||||
sub_8130380(gMonSpritesGfxPtr->sprites[0], gContestPaintingMonPalette, (void *)gUnknown_03006190);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef NONMATCHING
|
||||
// functionally equivalent.
|
||||
static void sub_8130380(u8 *spritePixels, u16 *palette, u16 (*destColorBuffer)[64][64])
|
||||
{
|
||||
u16 tileY, tileX, pixelY, pixelX;
|
||||
u8 colorIndex;
|
||||
|
||||
for (tileY = 0; tileY < 8; tileY++)
|
||||
{
|
||||
for (tileX = 0; tileX < 8; tileX++)
|
||||
{
|
||||
for (pixelY = 0; pixelY < 8; pixelY++)
|
||||
{
|
||||
for (pixelX = 0; pixelX < 8; pixelX++)
|
||||
{
|
||||
int offset = 32 * (8 * tileY + tileX) + (pixelY * 4 + pixelX / 2);
|
||||
colorIndex = spritePixels[offset];
|
||||
if (pixelX & 1)
|
||||
colorIndex >>= 4;
|
||||
else
|
||||
colorIndex &= 0xF;
|
||||
|
||||
if (colorIndex == 0) // transparent pixel
|
||||
(*destColorBuffer)[8 * tileY + pixelY][tileX * 8 + pixelX] = 0x8000;
|
||||
else
|
||||
(*destColorBuffer)[8 * tileY + pixelY][tileX * 8 + pixelX] = palette[colorIndex];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
NAKED
|
||||
static void sub_8130380(u8 *spritePixels, u16 *palette, u16 (*destColorBuffer)[64][64])
|
||||
{
|
||||
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, 0xC\n\
|
||||
mov r10, r0\n\
|
||||
mov r9, r1\n\
|
||||
str r2, [sp]\n\
|
||||
movs r0, 0\n\
|
||||
_08130394:\n\
|
||||
movs r3, 0\n\
|
||||
adds r1, r0, 0x1\n\
|
||||
str r1, [sp, 0x4]\n\
|
||||
lsls r0, 3\n\
|
||||
str r0, [sp, 0x8]\n\
|
||||
_0813039E:\n\
|
||||
movs r1, 0\n\
|
||||
adds r2, r3, 0x1\n\
|
||||
mov r8, r2\n\
|
||||
ldr r7, [sp, 0x8]\n\
|
||||
adds r0, r7, r3\n\
|
||||
lsls r0, 5\n\
|
||||
mov r12, r0\n\
|
||||
lsls r4, r3, 3\n\
|
||||
_081303AE:\n\
|
||||
movs r3, 0\n\
|
||||
lsls r0, r1, 2\n\
|
||||
adds r6, r1, 0x1\n\
|
||||
mov r2, r12\n\
|
||||
adds r5, r2, r0\n\
|
||||
ldr r7, [sp, 0x8]\n\
|
||||
adds r0, r7, r1\n\
|
||||
lsls r0, 7\n\
|
||||
ldr r1, [sp]\n\
|
||||
adds r2, r0, r1\n\
|
||||
_081303C2:\n\
|
||||
lsrs r0, r3, 1\n\
|
||||
adds r0, r5, r0\n\
|
||||
add r0, r10\n\
|
||||
ldrb r1, [r0]\n\
|
||||
movs r0, 0x1\n\
|
||||
ands r0, r3\n\
|
||||
cmp r0, 0\n\
|
||||
beq _081303D6\n\
|
||||
lsrs r1, 4\n\
|
||||
b _081303DA\n\
|
||||
_081303D6:\n\
|
||||
movs r0, 0xF\n\
|
||||
ands r1, r0\n\
|
||||
_081303DA:\n\
|
||||
cmp r1, 0\n\
|
||||
bne _081303EC\n\
|
||||
adds r0, r4, r3\n\
|
||||
lsls r0, 1\n\
|
||||
adds r0, r2\n\
|
||||
movs r7, 0x80\n\
|
||||
lsls r7, 8\n\
|
||||
adds r1, r7, 0\n\
|
||||
b _081303F8\n\
|
||||
_081303EC:\n\
|
||||
adds r0, r4, r3\n\
|
||||
lsls r0, 1\n\
|
||||
adds r0, r2\n\
|
||||
lsls r1, 1\n\
|
||||
add r1, r9\n\
|
||||
ldrh r1, [r1]\n\
|
||||
_081303F8:\n\
|
||||
strh r1, [r0]\n\
|
||||
adds r0, r3, 0x1\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r3, r0, 16\n\
|
||||
cmp r3, 0x7\n\
|
||||
bls _081303C2\n\
|
||||
lsls r0, r6, 16\n\
|
||||
lsrs r1, r0, 16\n\
|
||||
cmp r1, 0x7\n\
|
||||
bls _081303AE\n\
|
||||
mov r1, r8\n\
|
||||
lsls r0, r1, 16\n\
|
||||
lsrs r3, r0, 16\n\
|
||||
cmp r3, 0x7\n\
|
||||
bls _0813039E\n\
|
||||
ldr r2, [sp, 0x4]\n\
|
||||
lsls r0, r2, 16\n\
|
||||
lsrs r0, 16\n\
|
||||
cmp r0, 0x7\n\
|
||||
bls _08130394\n\
|
||||
add sp, 0xC\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");
|
||||
}
|
||||
#endif
|
||||
|
||||
static void sub_8130430(u8 arg0, u8 arg1)
|
||||
{
|
||||
u8 x, y;
|
||||
|
||||
LoadPalette(gPictureFramePalettes, 0, 0x100);
|
||||
if (arg1 == 1)
|
||||
{
|
||||
switch (gUnknown_030061C0->contestCategory / 3)
|
||||
{
|
||||
case CONTEST_CATEGORY_COOL:
|
||||
RLUnCompVram(gPictureFrameTiles_0, (void *)VRAM);
|
||||
RLUnCompWram(gPictureFrameTilemap_0, gUnknown_03006190);
|
||||
break;
|
||||
case CONTEST_CATEGORY_BEAUTY:
|
||||
RLUnCompVram(gPictureFrameTiles_1, (void *)VRAM);
|
||||
RLUnCompWram(gPictureFrameTilemap_1, gUnknown_03006190);
|
||||
break;
|
||||
case CONTEST_CATEGORY_CUTE:
|
||||
RLUnCompVram(gPictureFrameTiles_2, (void *)VRAM);
|
||||
RLUnCompWram(gPictureFrameTilemap_2, gUnknown_03006190);
|
||||
break;
|
||||
case CONTEST_CATEGORY_SMART:
|
||||
RLUnCompVram(gPictureFrameTiles_3, (void *)VRAM);
|
||||
RLUnCompWram(gPictureFrameTilemap_3, gUnknown_03006190);
|
||||
break;
|
||||
case CONTEST_CATEGORY_TOUGH:
|
||||
RLUnCompVram(gPictureFrameTiles_4, (void *)VRAM);
|
||||
RLUnCompWram(gPictureFrameTilemap_4, gUnknown_03006190);
|
||||
break;
|
||||
}
|
||||
|
||||
#define VRAM_PICTURE_DATA(x, y) (((u16 *)(VRAM + 0x6000))[(y) * 32 + (x)])
|
||||
|
||||
// Set the background
|
||||
for (y = 0; y < 20; y++)
|
||||
{
|
||||
for (x = 0; x < 32; x++)
|
||||
VRAM_PICTURE_DATA(x, y) = 0x1015;
|
||||
}
|
||||
|
||||
// Copy the image frame
|
||||
for (y = 0; y < 10; y++)
|
||||
{
|
||||
for (x = 0; x < 18; x++)
|
||||
VRAM_PICTURE_DATA(x + 6, y + 2) = (*gUnknown_03006190)[y + 2][x + 6];
|
||||
}
|
||||
|
||||
// Re-set the entire top row to the first top frame part
|
||||
for (x = 0; x < 16; x++)
|
||||
VRAM_PICTURE_DATA(x + 7, 2) = (*gUnknown_03006190)[2][7];
|
||||
|
||||
#undef VRAM_PICTURE_DATA
|
||||
}
|
||||
else if (arg0 < 8)
|
||||
{
|
||||
RLUnCompVram(gPictureFrameTiles_5, (void *)VRAM);
|
||||
RLUnCompVram(gPictureFrameTilemap_5, (void *)(VRAM + 0x6000));
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (gUnknown_030061C0->contestCategory / 3)
|
||||
{
|
||||
case CONTEST_CATEGORY_COOL:
|
||||
RLUnCompVram(gPictureFrameTiles_0, (void *)VRAM);
|
||||
RLUnCompVram(gPictureFrameTilemap_0, (void *)(VRAM + 0x6000));
|
||||
break;
|
||||
case CONTEST_CATEGORY_BEAUTY:
|
||||
RLUnCompVram(gPictureFrameTiles_1, (void *)VRAM);
|
||||
RLUnCompVram(gPictureFrameTilemap_1, (void *)(VRAM + 0x6000));
|
||||
break;
|
||||
case CONTEST_CATEGORY_CUTE:
|
||||
RLUnCompVram(gPictureFrameTiles_2, (void *)VRAM);
|
||||
RLUnCompVram(gPictureFrameTilemap_2, (void *)(VRAM + 0x6000));
|
||||
break;
|
||||
case CONTEST_CATEGORY_SMART:
|
||||
RLUnCompVram(gPictureFrameTiles_3, (void *)VRAM);
|
||||
RLUnCompVram(gPictureFrameTilemap_3, (void *)(VRAM + 0x6000));
|
||||
break;
|
||||
case CONTEST_CATEGORY_TOUGH:
|
||||
RLUnCompVram(gPictureFrameTiles_4, (void *)VRAM);
|
||||
RLUnCompVram(gPictureFrameTilemap_4, (void *)(VRAM + 0x6000));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_8130688(u8 arg0)
|
||||
{
|
||||
//Some hacks just to get the asm to match
|
||||
#ifndef NONMATCHING
|
||||
asm(""::"r"(arg0));
|
||||
#endif
|
||||
|
||||
gMain.oamBuffer[0] = gUnknown_085B0830;
|
||||
gMain.oamBuffer[0].tileNum = 0;
|
||||
|
||||
#ifndef NONMATCHING
|
||||
if (arg0) arg0 = gMain.oamBuffer[0].tileNum;
|
||||
#endif
|
||||
|
||||
gMain.oamBuffer[0].x = 88;
|
||||
gMain.oamBuffer[0].y = 24;
|
||||
}
|
||||
|
||||
static u8 sub_81306CC(u8 arg0)
|
||||
{
|
||||
u8 contestCategory;
|
||||
|
||||
if (arg0 < 8)
|
||||
contestCategory = gUnknown_030061C0->contestCategory;
|
||||
else
|
||||
contestCategory = gUnknown_030061C0->contestCategory / 3;
|
||||
|
||||
switch (contestCategory)
|
||||
{
|
||||
case CONTEST_CATEGORY_COOL:
|
||||
return CONTESTRESULT_COOL;
|
||||
case CONTEST_CATEGORY_BEAUTY:
|
||||
return CONTESTRESULT_BEAUTY;
|
||||
case CONTEST_CATEGORY_CUTE:
|
||||
return CONTESTRESULT_CUTE;
|
||||
case CONTEST_CATEGORY_SMART:
|
||||
return CONTESTRESULT_SMART;
|
||||
case CONTEST_CATEGORY_TOUGH:
|
||||
return CONTESTRESULT_TOUGH;
|
||||
}
|
||||
|
||||
return contestCategory;
|
||||
}
|
||||
|
||||
static void sub_8130738(void)
|
||||
{
|
||||
gContestPaintingMonPalette = AllocZeroed(0x200);
|
||||
gUnknown_03006190 = AllocZeroed(0x2000);
|
||||
}
|
||||
|
||||
static void sub_8130760(u8 contestResult)
|
||||
{
|
||||
gUnknown_030061A0.var_4 = gUnknown_03006190;
|
||||
gUnknown_030061A0.var_8 = gContestPaintingMonPalette;
|
||||
gUnknown_030061A0.var_18 = 0;
|
||||
gUnknown_030061A0.var_1F = gUnknown_030061C0->personality % 256;
|
||||
gUnknown_030061A0.var_19 = 0;
|
||||
gUnknown_030061A0.var_1A = 0;
|
||||
gUnknown_030061A0.var_1B = 64;
|
||||
gUnknown_030061A0.var_1C = 64;
|
||||
gUnknown_030061A0.var_1D = 64;
|
||||
gUnknown_030061A0.var_1E = 64;
|
||||
|
||||
switch (contestResult)
|
||||
{
|
||||
case CONTESTRESULT_SMART:
|
||||
case CONTESTRESULT_TOUGH:
|
||||
gUnknown_030061A0.var_14 = 3;
|
||||
break;
|
||||
case CONTESTRESULT_COOL:
|
||||
case CONTESTRESULT_BEAUTY:
|
||||
case CONTESTRESULT_CUTE:
|
||||
default:
|
||||
gUnknown_030061A0.var_14 = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
gUnknown_030061A0.var_16 = 2;
|
||||
gUnknown_030061A0.var_0 = contestResult;
|
||||
gUnknown_030061A0.var_10 = 0x6010000;
|
||||
|
||||
sub_8124F2C(&gUnknown_030061A0);
|
||||
sub_81261A4(&gUnknown_030061A0);
|
||||
sub_8126058(&gUnknown_030061A0);
|
||||
|
||||
LoadPalette(gContestPaintingMonPalette, 0x100, 0x200);
|
||||
}
|
||||
|
||||
static void sub_8130884(u8 arg0, u8 arg1)
|
||||
{
|
||||
sub_8130738();
|
||||
sub_81302E8(gUnknown_030061C0->species, 0);
|
||||
sub_8130760(sub_81306CC(arg0));
|
||||
sub_8130688(arg0);
|
||||
sub_8130430(arg0, arg1);
|
||||
}
|
||||
|
||||
+6
-6
@@ -135,7 +135,7 @@ struct Unk201C000
|
||||
u16 unk90;
|
||||
u16 unk92;
|
||||
u16 unk94;
|
||||
u16 unk96[386];
|
||||
u16 unk96[NATIONAL_DEX_COUNT];
|
||||
u16 unk39A;
|
||||
u16 unk39C[7];
|
||||
};
|
||||
@@ -2254,12 +2254,12 @@ static void sub_8177050(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
static u8 sub_8177224(u16 species, s16 x, s16 y, u16 position)
|
||||
static u8 sub_8177224(u16 nationalDexNum, s16 x, s16 y, u16 position)
|
||||
{
|
||||
u8 spriteId;
|
||||
u8 spriteId2;
|
||||
|
||||
spriteId = sub_80C0E9C(species, x, y, position);
|
||||
spriteId = CreateMonSpriteFromNationalDexNumber(nationalDexNum, x, y, position);
|
||||
gSprites[spriteId].oam.priority = 1;
|
||||
gSprites[spriteId].data[1] = position + 1;
|
||||
gSprites[spriteId].invisible = TRUE;
|
||||
@@ -2297,16 +2297,16 @@ static void sub_8177388(void)
|
||||
u16 dexNum;
|
||||
u16 j;
|
||||
|
||||
for (dexNum = 1, j = 0; dexNum < 386; dexNum++)
|
||||
for (dexNum = 1, j = 0; dexNum < NATIONAL_DEX_COUNT; dexNum++)
|
||||
{
|
||||
if (GetSetPokedexFlag(dexNum, 1))
|
||||
if (GetSetPokedexFlag(dexNum, FLAG_GET_CAUGHT))
|
||||
{
|
||||
gUnknown_0203BCE8->unk96[j] = dexNum;
|
||||
j++;
|
||||
}
|
||||
}
|
||||
|
||||
for (dexNum = j; dexNum < 386; dexNum++)
|
||||
for (dexNum = j; dexNum < NATIONAL_DEX_COUNT; dexNum++)
|
||||
gUnknown_0203BCE8->unk96[dexNum] = 0;
|
||||
|
||||
gUnknown_0203BCE8->unk39A = j;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -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");
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
const union AnimCmd gAnimCmd_NONE_1[] =
|
||||
{
|
||||
ANIMCMD_FRAME(0, 30),
|
||||
@@ -6946,446 +6946,449 @@ const union AnimCmd *const gAnims_UNOWN_QMARK[] ={
|
||||
gAnimCmd_UNOWN_QMARK_1,
|
||||
};
|
||||
|
||||
#define ANIM_CMD(name) [SPECIES_##name] = gAnims_##name
|
||||
#define ANIM_CMD_FULL(name, anims) [SPECIES_##name] = anims
|
||||
|
||||
const union AnimCmd* const * const gMonAnimationsSpriteAnimsPtrTable[] =
|
||||
{
|
||||
gAnims_NONE,
|
||||
gAnims_BULBASAUR,
|
||||
gAnims_IVYSAUR,
|
||||
gAnims_VENUSAUR,
|
||||
gAnims_CHARMANDER,
|
||||
gAnims_CHARMELEON,
|
||||
gAnims_CHARIZARD,
|
||||
gAnims_SQUIRTLE,
|
||||
gAnims_WARTORTLE,
|
||||
gAnims_BLASTOISE,
|
||||
gAnims_CATERPIE,
|
||||
gAnims_METAPOD,
|
||||
gAnims_BUTTERFREE,
|
||||
gAnims_WEEDLE,
|
||||
gAnims_KAKUNA,
|
||||
gAnims_BEEDRILL,
|
||||
gAnims_PIDGEY,
|
||||
gAnims_PIDGEOTTO,
|
||||
gAnims_PIDGEOT,
|
||||
gAnims_RATTATA,
|
||||
gAnims_RATICATE,
|
||||
gAnims_SPEAROW,
|
||||
gAnims_FEAROW,
|
||||
gAnims_EKANS,
|
||||
gAnims_ARBOK,
|
||||
gAnims_PIKACHU,
|
||||
gAnims_RAICHU,
|
||||
gAnims_SANDSHREW,
|
||||
gAnims_SANDSLASH,
|
||||
gAnims_NIDORAN_F,
|
||||
gAnims_NIDORINA,
|
||||
gAnims_NIDOQUEEN,
|
||||
gAnims_NIDORAN_M,
|
||||
gAnims_NIDORINO,
|
||||
gAnims_NIDOKING,
|
||||
gAnims_CLEFAIRY,
|
||||
gAnims_CLEFABLE,
|
||||
gAnims_VULPIX,
|
||||
gAnims_NINETALES,
|
||||
gAnims_JIGGLYPUFF,
|
||||
gAnims_WIGGLYTUFF,
|
||||
gAnims_ZUBAT,
|
||||
gAnims_GOLBAT,
|
||||
gAnims_ODDISH,
|
||||
gAnims_GLOOM,
|
||||
gAnims_VILEPLUME,
|
||||
gAnims_PARAS,
|
||||
gAnims_PARASECT,
|
||||
gAnims_VENONAT,
|
||||
gAnims_VENOMOTH,
|
||||
gAnims_DIGLETT,
|
||||
gAnims_DUGTRIO,
|
||||
gAnims_MEOWTH,
|
||||
gAnims_PERSIAN,
|
||||
gAnims_PSYDUCK,
|
||||
gAnims_GOLDUCK,
|
||||
gAnims_MANKEY,
|
||||
gAnims_PRIMEAPE,
|
||||
gAnims_GROWLITHE,
|
||||
gAnims_ARCANINE,
|
||||
gAnims_POLIWAG,
|
||||
gAnims_POLIWHIRL,
|
||||
gAnims_POLIWRATH,
|
||||
gAnims_ABRA,
|
||||
gAnims_KADABRA,
|
||||
gAnims_ALAKAZAM,
|
||||
gAnims_MACHOP,
|
||||
gAnims_MACHOKE,
|
||||
gAnims_MACHAMP,
|
||||
gAnims_BELLSPROUT,
|
||||
gAnims_WEEPINBELL,
|
||||
gAnims_VICTREEBEL,
|
||||
gAnims_TENTACOOL,
|
||||
gAnims_TENTACRUEL,
|
||||
gAnims_GEODUDE,
|
||||
gAnims_GRAVELER,
|
||||
gAnims_GOLEM,
|
||||
gAnims_PONYTA,
|
||||
gAnims_RAPIDASH,
|
||||
gAnims_SLOWPOKE,
|
||||
gAnims_SLOWBRO,
|
||||
gAnims_MAGNEMITE,
|
||||
gAnims_MAGNETON,
|
||||
gAnims_FARFETCHD,
|
||||
gAnims_DODUO,
|
||||
gAnims_DODRIO,
|
||||
gAnims_SEEL,
|
||||
gAnims_DEWGONG,
|
||||
gAnims_GRIMER,
|
||||
gAnims_MUK,
|
||||
gAnims_SHELLDER,
|
||||
gAnims_CLOYSTER,
|
||||
gAnims_GASTLY,
|
||||
gAnims_HAUNTER,
|
||||
gAnims_GENGAR,
|
||||
gAnims_ONIX,
|
||||
gAnims_DROWZEE,
|
||||
gAnims_HYPNO,
|
||||
gAnims_KRABBY,
|
||||
gAnims_KINGLER,
|
||||
gAnims_VOLTORB,
|
||||
gAnims_ELECTRODE,
|
||||
gAnims_EXEGGCUTE,
|
||||
gAnims_EXEGGUTOR,
|
||||
gAnims_CUBONE,
|
||||
gAnims_MAROWAK,
|
||||
gAnims_HITMONLEE,
|
||||
gAnims_HITMONCHAN,
|
||||
gAnims_LICKITUNG,
|
||||
gAnims_KOFFING,
|
||||
gAnims_WEEZING,
|
||||
gAnims_RHYHORN,
|
||||
gAnims_RHYDON,
|
||||
gAnims_CHANSEY,
|
||||
gAnims_TANGELA,
|
||||
gAnims_KANGASKHAN,
|
||||
gAnims_HORSEA,
|
||||
gAnims_SEADRA,
|
||||
gAnims_GOLDEEN,
|
||||
gAnims_SEAKING,
|
||||
gAnims_STARYU,
|
||||
gAnims_STARMIE,
|
||||
gAnims_MR_MIME,
|
||||
gAnims_SCYTHER,
|
||||
gAnims_JYNX,
|
||||
gAnims_ELECTABUZZ,
|
||||
gAnims_MAGMAR,
|
||||
gAnims_PINSIR,
|
||||
gAnims_TAUROS,
|
||||
gAnims_MAGIKARP,
|
||||
gAnims_GYARADOS,
|
||||
gAnims_LAPRAS,
|
||||
gAnims_DITTO,
|
||||
gAnims_EEVEE,
|
||||
gAnims_VAPOREON,
|
||||
gAnims_JOLTEON,
|
||||
gAnims_FLAREON,
|
||||
gAnims_PORYGON,
|
||||
gAnims_OMANYTE,
|
||||
gAnims_OMASTAR,
|
||||
gAnims_KABUTO,
|
||||
gAnims_KABUTOPS,
|
||||
gAnims_AERODACTYL,
|
||||
gAnims_SNORLAX,
|
||||
gAnims_ARTICUNO,
|
||||
gAnims_ZAPDOS,
|
||||
gAnims_MOLTRES,
|
||||
gAnims_DRATINI,
|
||||
gAnims_DRAGONAIR,
|
||||
gAnims_DRAGONITE,
|
||||
gAnims_MEWTWO,
|
||||
gAnims_MEW,
|
||||
gAnims_CHIKORITA,
|
||||
gAnims_BAYLEEF,
|
||||
gAnims_MEGANIUM,
|
||||
gAnims_CYNDAQUIL,
|
||||
gAnims_QUILAVA,
|
||||
gAnims_TYPHLOSION,
|
||||
gAnims_TOTODILE,
|
||||
gAnims_CROCONAW,
|
||||
gAnims_FERALIGATR,
|
||||
gAnims_SENTRET,
|
||||
gAnims_FURRET,
|
||||
gAnims_HOOTHOOT,
|
||||
gAnims_NOCTOWL,
|
||||
gAnims_LEDYBA,
|
||||
gAnims_LEDIAN,
|
||||
gAnims_SPINARAK,
|
||||
gAnims_ARIADOS,
|
||||
gAnims_CROBAT,
|
||||
gAnims_CHINCHOU,
|
||||
gAnims_LANTURN,
|
||||
gAnims_PICHU,
|
||||
gAnims_CLEFFA,
|
||||
gAnims_IGGLYBUFF,
|
||||
gAnims_TOGEPI,
|
||||
gAnims_TOGETIC,
|
||||
gAnims_NATU,
|
||||
gAnims_XATU,
|
||||
gAnims_MAREEP,
|
||||
gAnims_FLAAFFY,
|
||||
gAnims_AMPHAROS,
|
||||
gAnims_BELLOSSOM,
|
||||
gAnims_MARILL,
|
||||
gAnims_AZUMARILL,
|
||||
gAnims_SUDOWOODO,
|
||||
gAnims_POLITOED,
|
||||
gAnims_HOPPIP,
|
||||
gAnims_SKIPLOOM,
|
||||
gAnims_JUMPLUFF,
|
||||
gAnims_AIPOM,
|
||||
gAnims_SUNKERN,
|
||||
gAnims_SUNFLORA,
|
||||
gAnims_YANMA,
|
||||
gAnims_WOOPER,
|
||||
gAnims_QUAGSIRE,
|
||||
gAnims_ESPEON,
|
||||
gAnims_UMBREON,
|
||||
gAnims_MURKROW,
|
||||
gAnims_SLOWKING,
|
||||
gAnims_MISDREAVUS,
|
||||
gAnims_UNOWN,
|
||||
gAnims_WOBBUFFET,
|
||||
gAnims_GIRAFARIG,
|
||||
gAnims_PINECO,
|
||||
gAnims_FORRETRESS,
|
||||
gAnims_DUNSPARCE,
|
||||
gAnims_GLIGAR,
|
||||
gAnims_STEELIX,
|
||||
gAnims_SNUBBULL,
|
||||
gAnims_GRANBULL,
|
||||
gAnims_QWILFISH,
|
||||
gAnims_SCIZOR,
|
||||
gAnims_SHUCKLE,
|
||||
gAnims_HERACROSS,
|
||||
gAnims_SNEASEL,
|
||||
gAnims_TEDDIURSA,
|
||||
gAnims_URSARING,
|
||||
gAnims_SLUGMA,
|
||||
gAnims_MAGCARGO,
|
||||
gAnims_SWINUB,
|
||||
gAnims_PILOSWINE,
|
||||
gAnims_CORSOLA,
|
||||
gAnims_REMORAID,
|
||||
gAnims_OCTILLERY,
|
||||
gAnims_DELIBIRD,
|
||||
gAnims_MANTINE,
|
||||
gAnims_SKARMORY,
|
||||
gAnims_HOUNDOUR,
|
||||
gAnims_HOUNDOOM,
|
||||
gAnims_KINGDRA,
|
||||
gAnims_PHANPY,
|
||||
gAnims_DONPHAN,
|
||||
gAnims_PORYGON2,
|
||||
gAnims_STANTLER,
|
||||
gAnims_SMEARGLE,
|
||||
gAnims_TYROGUE,
|
||||
gAnims_HITMONTOP,
|
||||
gAnims_SMOOCHUM,
|
||||
gAnims_ELEKID,
|
||||
gAnims_MAGBY,
|
||||
gAnims_MILTANK,
|
||||
gAnims_BLISSEY,
|
||||
gAnims_RAIKOU,
|
||||
gAnims_ENTEI,
|
||||
gAnims_SUICUNE,
|
||||
gAnims_LARVITAR,
|
||||
gAnims_PUPITAR,
|
||||
gAnims_TYRANITAR,
|
||||
gAnims_LUGIA,
|
||||
gAnims_HO_OH,
|
||||
gAnims_CELEBI,
|
||||
gAnims_OLD_UNOWN_B,
|
||||
gAnims_OLD_UNOWN_B,
|
||||
gAnims_OLD_UNOWN_B,
|
||||
gAnims_OLD_UNOWN_B,
|
||||
gAnims_OLD_UNOWN_B,
|
||||
gAnims_OLD_UNOWN_B,
|
||||
gAnims_OLD_UNOWN_B,
|
||||
gAnims_OLD_UNOWN_B,
|
||||
gAnims_OLD_UNOWN_B,
|
||||
gAnims_OLD_UNOWN_B,
|
||||
gAnims_OLD_UNOWN_B,
|
||||
gAnims_OLD_UNOWN_B,
|
||||
gAnims_OLD_UNOWN_B,
|
||||
gAnims_OLD_UNOWN_B,
|
||||
gAnims_OLD_UNOWN_B,
|
||||
gAnims_OLD_UNOWN_B,
|
||||
gAnims_OLD_UNOWN_B,
|
||||
gAnims_OLD_UNOWN_B,
|
||||
gAnims_OLD_UNOWN_B,
|
||||
gAnims_OLD_UNOWN_B,
|
||||
gAnims_OLD_UNOWN_B,
|
||||
gAnims_OLD_UNOWN_B,
|
||||
gAnims_OLD_UNOWN_B,
|
||||
gAnims_OLD_UNOWN_B,
|
||||
gAnims_OLD_UNOWN_B,
|
||||
gAnims_TREECKO,
|
||||
gAnims_GROVYLE,
|
||||
gAnims_SCEPTILE,
|
||||
gAnims_TORCHIC,
|
||||
gAnims_COMBUSKEN,
|
||||
gAnims_BLAZIKEN,
|
||||
gAnims_MUDKIP,
|
||||
gAnims_MARSHTOMP,
|
||||
gAnims_SWAMPERT,
|
||||
gAnims_POOCHYENA,
|
||||
gAnims_MIGHTYENA,
|
||||
gAnims_ZIGZAGOON,
|
||||
gAnims_LINOONE,
|
||||
gAnims_WURMPLE,
|
||||
gAnims_SILCOON,
|
||||
gAnims_BEAUTIFLY,
|
||||
gAnims_CASCOON,
|
||||
gAnims_DUSTOX,
|
||||
gAnims_LOTAD,
|
||||
gAnims_LOMBRE,
|
||||
gAnims_LUDICOLO,
|
||||
gAnims_SEEDOT,
|
||||
gAnims_NUZLEAF,
|
||||
gAnims_SHIFTRY,
|
||||
gAnims_NINCADA,
|
||||
gAnims_NINJASK,
|
||||
gAnims_SHEDINJA,
|
||||
gAnims_TAILLOW,
|
||||
gAnims_SWELLOW,
|
||||
gAnims_SHROOMISH,
|
||||
gAnims_BRELOOM,
|
||||
gAnims_SPINDA,
|
||||
gAnims_WINGULL,
|
||||
gAnims_PELIPPER,
|
||||
gAnims_SURSKIT,
|
||||
gAnims_MASQUERAIN,
|
||||
gAnims_WAILMER,
|
||||
gAnims_WAILORD,
|
||||
gAnims_SKITTY,
|
||||
gAnims_DELCATTY,
|
||||
gAnims_KECLEON,
|
||||
gAnims_BALTOY,
|
||||
gAnims_CLAYDOL,
|
||||
gAnims_NOSEPASS,
|
||||
gAnims_TORKOAL,
|
||||
gAnims_SABLEYE,
|
||||
gAnims_BARBOACH,
|
||||
gAnims_WHISCASH,
|
||||
gAnims_LUVDISC,
|
||||
gAnims_CORPHISH,
|
||||
gAnims_CRAWDAUNT,
|
||||
gAnims_FEEBAS,
|
||||
gAnims_MILOTIC,
|
||||
gAnims_CARVANHA,
|
||||
gAnims_SHARPEDO,
|
||||
gAnims_TRAPINCH,
|
||||
gAnims_VIBRAVA,
|
||||
gAnims_FLYGON,
|
||||
gAnims_MAKUHITA,
|
||||
gAnims_HARIYAMA,
|
||||
gAnims_ELECTRIKE,
|
||||
gAnims_MANECTRIC,
|
||||
gAnims_NUMEL,
|
||||
gAnims_CAMERUPT,
|
||||
gAnims_SPHEAL,
|
||||
gAnims_SEALEO,
|
||||
gAnims_WALREIN,
|
||||
gAnims_CACNEA,
|
||||
gAnims_CACTURNE,
|
||||
gAnims_SNORUNT,
|
||||
gAnims_GLALIE,
|
||||
gAnims_LUNATONE,
|
||||
gAnims_SOLROCK,
|
||||
gAnims_AZURILL,
|
||||
gAnims_SPOINK,
|
||||
gAnims_GRUMPIG,
|
||||
gAnims_PLUSLE,
|
||||
gAnims_MINUN,
|
||||
gAnims_MAWILE,
|
||||
gAnims_MEDITITE,
|
||||
gAnims_MEDICHAM,
|
||||
gAnims_SWABLU,
|
||||
gAnims_ALTARIA,
|
||||
gAnims_WYNAUT,
|
||||
gAnims_DUSKULL,
|
||||
gAnims_DUSCLOPS,
|
||||
gAnims_ROSELIA,
|
||||
gAnims_SLAKOTH,
|
||||
gAnims_VIGOROTH,
|
||||
gAnims_SLAKING,
|
||||
gAnims_GULPIN,
|
||||
gAnims_SWALOT,
|
||||
gAnims_TROPIUS,
|
||||
gAnims_WHISMUR,
|
||||
gAnims_LOUDRED,
|
||||
gAnims_EXPLOUD,
|
||||
gAnims_CLAMPERL,
|
||||
gAnims_HUNTAIL,
|
||||
gAnims_GOREBYSS,
|
||||
gAnims_ABSOL,
|
||||
gAnims_SHUPPET,
|
||||
gAnims_BANETTE,
|
||||
gAnims_SEVIPER,
|
||||
gAnims_ZANGOOSE,
|
||||
gAnims_RELICANTH,
|
||||
gAnims_ARON,
|
||||
gAnims_LAIRON,
|
||||
gAnims_AGGRON,
|
||||
gAnims_CASTFORM,
|
||||
gAnims_VOLBEAT,
|
||||
gAnims_ILLUMISE,
|
||||
gAnims_LILEEP,
|
||||
gAnims_CRADILY,
|
||||
gAnims_ANORITH,
|
||||
gAnims_ARMALDO,
|
||||
gAnims_RALTS,
|
||||
gAnims_KIRLIA,
|
||||
gAnims_GARDEVOIR,
|
||||
gAnims_BAGON,
|
||||
gAnims_SHELGON,
|
||||
gAnims_SALAMENCE,
|
||||
gAnims_BELDUM,
|
||||
gAnims_METANG,
|
||||
gAnims_METAGROSS,
|
||||
gAnims_REGIROCK,
|
||||
gAnims_REGICE,
|
||||
gAnims_REGISTEEL,
|
||||
gAnims_KYOGRE,
|
||||
gAnims_GROUDON,
|
||||
gAnims_RAYQUAZA,
|
||||
gAnims_LATIAS,
|
||||
gAnims_LATIOS,
|
||||
gAnims_JIRACHI,
|
||||
gAnims_DEOXYS,
|
||||
gAnims_CHIMECHO,
|
||||
gAnims_EGG,
|
||||
gAnims_UNOWN_B,
|
||||
gAnims_UNOWN_C,
|
||||
gAnims_UNOWN_D,
|
||||
gAnims_UNOWN_E,
|
||||
gAnims_UNOWN_F,
|
||||
gAnims_UNOWN_G,
|
||||
gAnims_UNOWN_H,
|
||||
gAnims_UNOWN_I,
|
||||
gAnims_UNOWN_J,
|
||||
gAnims_UNOWN_K,
|
||||
gAnims_UNOWN_L,
|
||||
gAnims_UNOWN_M,
|
||||
gAnims_UNOWN_N,
|
||||
gAnims_UNOWN_O,
|
||||
gAnims_UNOWN_P,
|
||||
gAnims_UNOWN_Q,
|
||||
gAnims_UNOWN_R,
|
||||
gAnims_UNOWN_S,
|
||||
gAnims_UNOWN_T,
|
||||
gAnims_UNOWN_U,
|
||||
gAnims_UNOWN_V,
|
||||
gAnims_UNOWN_W,
|
||||
gAnims_UNOWN_X,
|
||||
gAnims_UNOWN_Y,
|
||||
gAnims_UNOWN_Z,
|
||||
gAnims_UNOWN_EMARK,
|
||||
gAnims_UNOWN_QMARK,
|
||||
ANIM_CMD(NONE),
|
||||
ANIM_CMD(BULBASAUR),
|
||||
ANIM_CMD(IVYSAUR),
|
||||
ANIM_CMD(VENUSAUR),
|
||||
ANIM_CMD(CHARMANDER),
|
||||
ANIM_CMD(CHARMELEON),
|
||||
ANIM_CMD(CHARIZARD),
|
||||
ANIM_CMD(SQUIRTLE),
|
||||
ANIM_CMD(WARTORTLE),
|
||||
ANIM_CMD(BLASTOISE),
|
||||
ANIM_CMD(CATERPIE),
|
||||
ANIM_CMD(METAPOD),
|
||||
ANIM_CMD(BUTTERFREE),
|
||||
ANIM_CMD(WEEDLE),
|
||||
ANIM_CMD(KAKUNA),
|
||||
ANIM_CMD(BEEDRILL),
|
||||
ANIM_CMD(PIDGEY),
|
||||
ANIM_CMD(PIDGEOTTO),
|
||||
ANIM_CMD(PIDGEOT),
|
||||
ANIM_CMD(RATTATA),
|
||||
ANIM_CMD(RATICATE),
|
||||
ANIM_CMD(SPEAROW),
|
||||
ANIM_CMD(FEAROW),
|
||||
ANIM_CMD(EKANS),
|
||||
ANIM_CMD(ARBOK),
|
||||
ANIM_CMD(PIKACHU),
|
||||
ANIM_CMD(RAICHU),
|
||||
ANIM_CMD(SANDSHREW),
|
||||
ANIM_CMD(SANDSLASH),
|
||||
ANIM_CMD(NIDORAN_F),
|
||||
ANIM_CMD(NIDORINA),
|
||||
ANIM_CMD(NIDOQUEEN),
|
||||
ANIM_CMD(NIDORAN_M),
|
||||
ANIM_CMD(NIDORINO),
|
||||
ANIM_CMD(NIDOKING),
|
||||
ANIM_CMD(CLEFAIRY),
|
||||
ANIM_CMD(CLEFABLE),
|
||||
ANIM_CMD(VULPIX),
|
||||
ANIM_CMD(NINETALES),
|
||||
ANIM_CMD(JIGGLYPUFF),
|
||||
ANIM_CMD(WIGGLYTUFF),
|
||||
ANIM_CMD(ZUBAT),
|
||||
ANIM_CMD(GOLBAT),
|
||||
ANIM_CMD(ODDISH),
|
||||
ANIM_CMD(GLOOM),
|
||||
ANIM_CMD(VILEPLUME),
|
||||
ANIM_CMD(PARAS),
|
||||
ANIM_CMD(PARASECT),
|
||||
ANIM_CMD(VENONAT),
|
||||
ANIM_CMD(VENOMOTH),
|
||||
ANIM_CMD(DIGLETT),
|
||||
ANIM_CMD(DUGTRIO),
|
||||
ANIM_CMD(MEOWTH),
|
||||
ANIM_CMD(PERSIAN),
|
||||
ANIM_CMD(PSYDUCK),
|
||||
ANIM_CMD(GOLDUCK),
|
||||
ANIM_CMD(MANKEY),
|
||||
ANIM_CMD(PRIMEAPE),
|
||||
ANIM_CMD(GROWLITHE),
|
||||
ANIM_CMD(ARCANINE),
|
||||
ANIM_CMD(POLIWAG),
|
||||
ANIM_CMD(POLIWHIRL),
|
||||
ANIM_CMD(POLIWRATH),
|
||||
ANIM_CMD(ABRA),
|
||||
ANIM_CMD(KADABRA),
|
||||
ANIM_CMD(ALAKAZAM),
|
||||
ANIM_CMD(MACHOP),
|
||||
ANIM_CMD(MACHOKE),
|
||||
ANIM_CMD(MACHAMP),
|
||||
ANIM_CMD(BELLSPROUT),
|
||||
ANIM_CMD(WEEPINBELL),
|
||||
ANIM_CMD(VICTREEBEL),
|
||||
ANIM_CMD(TENTACOOL),
|
||||
ANIM_CMD(TENTACRUEL),
|
||||
ANIM_CMD(GEODUDE),
|
||||
ANIM_CMD(GRAVELER),
|
||||
ANIM_CMD(GOLEM),
|
||||
ANIM_CMD(PONYTA),
|
||||
ANIM_CMD(RAPIDASH),
|
||||
ANIM_CMD(SLOWPOKE),
|
||||
ANIM_CMD(SLOWBRO),
|
||||
ANIM_CMD(MAGNEMITE),
|
||||
ANIM_CMD(MAGNETON),
|
||||
ANIM_CMD(FARFETCHD),
|
||||
ANIM_CMD(DODUO),
|
||||
ANIM_CMD(DODRIO),
|
||||
ANIM_CMD(SEEL),
|
||||
ANIM_CMD(DEWGONG),
|
||||
ANIM_CMD(GRIMER),
|
||||
ANIM_CMD(MUK),
|
||||
ANIM_CMD(SHELLDER),
|
||||
ANIM_CMD(CLOYSTER),
|
||||
ANIM_CMD(GASTLY),
|
||||
ANIM_CMD(HAUNTER),
|
||||
ANIM_CMD(GENGAR),
|
||||
ANIM_CMD(ONIX),
|
||||
ANIM_CMD(DROWZEE),
|
||||
ANIM_CMD(HYPNO),
|
||||
ANIM_CMD(KRABBY),
|
||||
ANIM_CMD(KINGLER),
|
||||
ANIM_CMD(VOLTORB),
|
||||
ANIM_CMD(ELECTRODE),
|
||||
ANIM_CMD(EXEGGCUTE),
|
||||
ANIM_CMD(EXEGGUTOR),
|
||||
ANIM_CMD(CUBONE),
|
||||
ANIM_CMD(MAROWAK),
|
||||
ANIM_CMD(HITMONLEE),
|
||||
ANIM_CMD(HITMONCHAN),
|
||||
ANIM_CMD(LICKITUNG),
|
||||
ANIM_CMD(KOFFING),
|
||||
ANIM_CMD(WEEZING),
|
||||
ANIM_CMD(RHYHORN),
|
||||
ANIM_CMD(RHYDON),
|
||||
ANIM_CMD(CHANSEY),
|
||||
ANIM_CMD(TANGELA),
|
||||
ANIM_CMD(KANGASKHAN),
|
||||
ANIM_CMD(HORSEA),
|
||||
ANIM_CMD(SEADRA),
|
||||
ANIM_CMD(GOLDEEN),
|
||||
ANIM_CMD(SEAKING),
|
||||
ANIM_CMD(STARYU),
|
||||
ANIM_CMD(STARMIE),
|
||||
ANIM_CMD(MR_MIME),
|
||||
ANIM_CMD(SCYTHER),
|
||||
ANIM_CMD(JYNX),
|
||||
ANIM_CMD(ELECTABUZZ),
|
||||
ANIM_CMD(MAGMAR),
|
||||
ANIM_CMD(PINSIR),
|
||||
ANIM_CMD(TAUROS),
|
||||
ANIM_CMD(MAGIKARP),
|
||||
ANIM_CMD(GYARADOS),
|
||||
ANIM_CMD(LAPRAS),
|
||||
ANIM_CMD(DITTO),
|
||||
ANIM_CMD(EEVEE),
|
||||
ANIM_CMD(VAPOREON),
|
||||
ANIM_CMD(JOLTEON),
|
||||
ANIM_CMD(FLAREON),
|
||||
ANIM_CMD(PORYGON),
|
||||
ANIM_CMD(OMANYTE),
|
||||
ANIM_CMD(OMASTAR),
|
||||
ANIM_CMD(KABUTO),
|
||||
ANIM_CMD(KABUTOPS),
|
||||
ANIM_CMD(AERODACTYL),
|
||||
ANIM_CMD(SNORLAX),
|
||||
ANIM_CMD(ARTICUNO),
|
||||
ANIM_CMD(ZAPDOS),
|
||||
ANIM_CMD(MOLTRES),
|
||||
ANIM_CMD(DRATINI),
|
||||
ANIM_CMD(DRAGONAIR),
|
||||
ANIM_CMD(DRAGONITE),
|
||||
ANIM_CMD(MEWTWO),
|
||||
ANIM_CMD(MEW),
|
||||
ANIM_CMD(CHIKORITA),
|
||||
ANIM_CMD(BAYLEEF),
|
||||
ANIM_CMD(MEGANIUM),
|
||||
ANIM_CMD(CYNDAQUIL),
|
||||
ANIM_CMD(QUILAVA),
|
||||
ANIM_CMD(TYPHLOSION),
|
||||
ANIM_CMD(TOTODILE),
|
||||
ANIM_CMD(CROCONAW),
|
||||
ANIM_CMD(FERALIGATR),
|
||||
ANIM_CMD(SENTRET),
|
||||
ANIM_CMD(FURRET),
|
||||
ANIM_CMD(HOOTHOOT),
|
||||
ANIM_CMD(NOCTOWL),
|
||||
ANIM_CMD(LEDYBA),
|
||||
ANIM_CMD(LEDIAN),
|
||||
ANIM_CMD(SPINARAK),
|
||||
ANIM_CMD(ARIADOS),
|
||||
ANIM_CMD(CROBAT),
|
||||
ANIM_CMD(CHINCHOU),
|
||||
ANIM_CMD(LANTURN),
|
||||
ANIM_CMD(PICHU),
|
||||
ANIM_CMD(CLEFFA),
|
||||
ANIM_CMD(IGGLYBUFF),
|
||||
ANIM_CMD(TOGEPI),
|
||||
ANIM_CMD(TOGETIC),
|
||||
ANIM_CMD(NATU),
|
||||
ANIM_CMD(XATU),
|
||||
ANIM_CMD(MAREEP),
|
||||
ANIM_CMD(FLAAFFY),
|
||||
ANIM_CMD(AMPHAROS),
|
||||
ANIM_CMD(BELLOSSOM),
|
||||
ANIM_CMD(MARILL),
|
||||
ANIM_CMD(AZUMARILL),
|
||||
ANIM_CMD(SUDOWOODO),
|
||||
ANIM_CMD(POLITOED),
|
||||
ANIM_CMD(HOPPIP),
|
||||
ANIM_CMD(SKIPLOOM),
|
||||
ANIM_CMD(JUMPLUFF),
|
||||
ANIM_CMD(AIPOM),
|
||||
ANIM_CMD(SUNKERN),
|
||||
ANIM_CMD(SUNFLORA),
|
||||
ANIM_CMD(YANMA),
|
||||
ANIM_CMD(WOOPER),
|
||||
ANIM_CMD(QUAGSIRE),
|
||||
ANIM_CMD(ESPEON),
|
||||
ANIM_CMD(UMBREON),
|
||||
ANIM_CMD(MURKROW),
|
||||
ANIM_CMD(SLOWKING),
|
||||
ANIM_CMD(MISDREAVUS),
|
||||
ANIM_CMD(UNOWN),
|
||||
ANIM_CMD(WOBBUFFET),
|
||||
ANIM_CMD(GIRAFARIG),
|
||||
ANIM_CMD(PINECO),
|
||||
ANIM_CMD(FORRETRESS),
|
||||
ANIM_CMD(DUNSPARCE),
|
||||
ANIM_CMD(GLIGAR),
|
||||
ANIM_CMD(STEELIX),
|
||||
ANIM_CMD(SNUBBULL),
|
||||
ANIM_CMD(GRANBULL),
|
||||
ANIM_CMD(QWILFISH),
|
||||
ANIM_CMD(SCIZOR),
|
||||
ANIM_CMD(SHUCKLE),
|
||||
ANIM_CMD(HERACROSS),
|
||||
ANIM_CMD(SNEASEL),
|
||||
ANIM_CMD(TEDDIURSA),
|
||||
ANIM_CMD(URSARING),
|
||||
ANIM_CMD(SLUGMA),
|
||||
ANIM_CMD(MAGCARGO),
|
||||
ANIM_CMD(SWINUB),
|
||||
ANIM_CMD(PILOSWINE),
|
||||
ANIM_CMD(CORSOLA),
|
||||
ANIM_CMD(REMORAID),
|
||||
ANIM_CMD(OCTILLERY),
|
||||
ANIM_CMD(DELIBIRD),
|
||||
ANIM_CMD(MANTINE),
|
||||
ANIM_CMD(SKARMORY),
|
||||
ANIM_CMD(HOUNDOUR),
|
||||
ANIM_CMD(HOUNDOOM),
|
||||
ANIM_CMD(KINGDRA),
|
||||
ANIM_CMD(PHANPY),
|
||||
ANIM_CMD(DONPHAN),
|
||||
ANIM_CMD(PORYGON2),
|
||||
ANIM_CMD(STANTLER),
|
||||
ANIM_CMD(SMEARGLE),
|
||||
ANIM_CMD(TYROGUE),
|
||||
ANIM_CMD(HITMONTOP),
|
||||
ANIM_CMD(SMOOCHUM),
|
||||
ANIM_CMD(ELEKID),
|
||||
ANIM_CMD(MAGBY),
|
||||
ANIM_CMD(MILTANK),
|
||||
ANIM_CMD(BLISSEY),
|
||||
ANIM_CMD(RAIKOU),
|
||||
ANIM_CMD(ENTEI),
|
||||
ANIM_CMD(SUICUNE),
|
||||
ANIM_CMD(LARVITAR),
|
||||
ANIM_CMD(PUPITAR),
|
||||
ANIM_CMD(TYRANITAR),
|
||||
ANIM_CMD(LUGIA),
|
||||
ANIM_CMD(HO_OH),
|
||||
ANIM_CMD(CELEBI),
|
||||
ANIM_CMD(OLD_UNOWN_B),
|
||||
ANIM_CMD_FULL(OLD_UNOWN_C, gAnims_OLD_UNOWN_B),
|
||||
ANIM_CMD_FULL(OLD_UNOWN_D, gAnims_OLD_UNOWN_B),
|
||||
ANIM_CMD_FULL(OLD_UNOWN_E, gAnims_OLD_UNOWN_B),
|
||||
ANIM_CMD_FULL(OLD_UNOWN_F, gAnims_OLD_UNOWN_B),
|
||||
ANIM_CMD_FULL(OLD_UNOWN_G, gAnims_OLD_UNOWN_B),
|
||||
ANIM_CMD_FULL(OLD_UNOWN_H, gAnims_OLD_UNOWN_B),
|
||||
ANIM_CMD_FULL(OLD_UNOWN_I, gAnims_OLD_UNOWN_B),
|
||||
ANIM_CMD_FULL(OLD_UNOWN_J, gAnims_OLD_UNOWN_B),
|
||||
ANIM_CMD_FULL(OLD_UNOWN_K, gAnims_OLD_UNOWN_B),
|
||||
ANIM_CMD_FULL(OLD_UNOWN_L, gAnims_OLD_UNOWN_B),
|
||||
ANIM_CMD_FULL(OLD_UNOWN_M, gAnims_OLD_UNOWN_B),
|
||||
ANIM_CMD_FULL(OLD_UNOWN_N, gAnims_OLD_UNOWN_B),
|
||||
ANIM_CMD_FULL(OLD_UNOWN_O, gAnims_OLD_UNOWN_B),
|
||||
ANIM_CMD_FULL(OLD_UNOWN_P, gAnims_OLD_UNOWN_B),
|
||||
ANIM_CMD_FULL(OLD_UNOWN_Q, gAnims_OLD_UNOWN_B),
|
||||
ANIM_CMD_FULL(OLD_UNOWN_R, gAnims_OLD_UNOWN_B),
|
||||
ANIM_CMD_FULL(OLD_UNOWN_S, gAnims_OLD_UNOWN_B),
|
||||
ANIM_CMD_FULL(OLD_UNOWN_T, gAnims_OLD_UNOWN_B),
|
||||
ANIM_CMD_FULL(OLD_UNOWN_U, gAnims_OLD_UNOWN_B),
|
||||
ANIM_CMD_FULL(OLD_UNOWN_V, gAnims_OLD_UNOWN_B),
|
||||
ANIM_CMD_FULL(OLD_UNOWN_W, gAnims_OLD_UNOWN_B),
|
||||
ANIM_CMD_FULL(OLD_UNOWN_X, gAnims_OLD_UNOWN_B),
|
||||
ANIM_CMD_FULL(OLD_UNOWN_Y, gAnims_OLD_UNOWN_B),
|
||||
ANIM_CMD_FULL(OLD_UNOWN_Z, gAnims_OLD_UNOWN_B),
|
||||
ANIM_CMD(TREECKO),
|
||||
ANIM_CMD(GROVYLE),
|
||||
ANIM_CMD(SCEPTILE),
|
||||
ANIM_CMD(TORCHIC),
|
||||
ANIM_CMD(COMBUSKEN),
|
||||
ANIM_CMD(BLAZIKEN),
|
||||
ANIM_CMD(MUDKIP),
|
||||
ANIM_CMD(MARSHTOMP),
|
||||
ANIM_CMD(SWAMPERT),
|
||||
ANIM_CMD(POOCHYENA),
|
||||
ANIM_CMD(MIGHTYENA),
|
||||
ANIM_CMD(ZIGZAGOON),
|
||||
ANIM_CMD(LINOONE),
|
||||
ANIM_CMD(WURMPLE),
|
||||
ANIM_CMD(SILCOON),
|
||||
ANIM_CMD(BEAUTIFLY),
|
||||
ANIM_CMD(CASCOON),
|
||||
ANIM_CMD(DUSTOX),
|
||||
ANIM_CMD(LOTAD),
|
||||
ANIM_CMD(LOMBRE),
|
||||
ANIM_CMD(LUDICOLO),
|
||||
ANIM_CMD(SEEDOT),
|
||||
ANIM_CMD(NUZLEAF),
|
||||
ANIM_CMD(SHIFTRY),
|
||||
ANIM_CMD(NINCADA),
|
||||
ANIM_CMD(NINJASK),
|
||||
ANIM_CMD(SHEDINJA),
|
||||
ANIM_CMD(TAILLOW),
|
||||
ANIM_CMD(SWELLOW),
|
||||
ANIM_CMD(SHROOMISH),
|
||||
ANIM_CMD(BRELOOM),
|
||||
ANIM_CMD(SPINDA),
|
||||
ANIM_CMD(WINGULL),
|
||||
ANIM_CMD(PELIPPER),
|
||||
ANIM_CMD(SURSKIT),
|
||||
ANIM_CMD(MASQUERAIN),
|
||||
ANIM_CMD(WAILMER),
|
||||
ANIM_CMD(WAILORD),
|
||||
ANIM_CMD(SKITTY),
|
||||
ANIM_CMD(DELCATTY),
|
||||
ANIM_CMD(KECLEON),
|
||||
ANIM_CMD(BALTOY),
|
||||
ANIM_CMD(CLAYDOL),
|
||||
ANIM_CMD(NOSEPASS),
|
||||
ANIM_CMD(TORKOAL),
|
||||
ANIM_CMD(SABLEYE),
|
||||
ANIM_CMD(BARBOACH),
|
||||
ANIM_CMD(WHISCASH),
|
||||
ANIM_CMD(LUVDISC),
|
||||
ANIM_CMD(CORPHISH),
|
||||
ANIM_CMD(CRAWDAUNT),
|
||||
ANIM_CMD(FEEBAS),
|
||||
ANIM_CMD(MILOTIC),
|
||||
ANIM_CMD(CARVANHA),
|
||||
ANIM_CMD(SHARPEDO),
|
||||
ANIM_CMD(TRAPINCH),
|
||||
ANIM_CMD(VIBRAVA),
|
||||
ANIM_CMD(FLYGON),
|
||||
ANIM_CMD(MAKUHITA),
|
||||
ANIM_CMD(HARIYAMA),
|
||||
ANIM_CMD(ELECTRIKE),
|
||||
ANIM_CMD(MANECTRIC),
|
||||
ANIM_CMD(NUMEL),
|
||||
ANIM_CMD(CAMERUPT),
|
||||
ANIM_CMD(SPHEAL),
|
||||
ANIM_CMD(SEALEO),
|
||||
ANIM_CMD(WALREIN),
|
||||
ANIM_CMD(CACNEA),
|
||||
ANIM_CMD(CACTURNE),
|
||||
ANIM_CMD(SNORUNT),
|
||||
ANIM_CMD(GLALIE),
|
||||
ANIM_CMD(LUNATONE),
|
||||
ANIM_CMD(SOLROCK),
|
||||
ANIM_CMD(AZURILL),
|
||||
ANIM_CMD(SPOINK),
|
||||
ANIM_CMD(GRUMPIG),
|
||||
ANIM_CMD(PLUSLE),
|
||||
ANIM_CMD(MINUN),
|
||||
ANIM_CMD(MAWILE),
|
||||
ANIM_CMD(MEDITITE),
|
||||
ANIM_CMD(MEDICHAM),
|
||||
ANIM_CMD(SWABLU),
|
||||
ANIM_CMD(ALTARIA),
|
||||
ANIM_CMD(WYNAUT),
|
||||
ANIM_CMD(DUSKULL),
|
||||
ANIM_CMD(DUSCLOPS),
|
||||
ANIM_CMD(ROSELIA),
|
||||
ANIM_CMD(SLAKOTH),
|
||||
ANIM_CMD(VIGOROTH),
|
||||
ANIM_CMD(SLAKING),
|
||||
ANIM_CMD(GULPIN),
|
||||
ANIM_CMD(SWALOT),
|
||||
ANIM_CMD(TROPIUS),
|
||||
ANIM_CMD(WHISMUR),
|
||||
ANIM_CMD(LOUDRED),
|
||||
ANIM_CMD(EXPLOUD),
|
||||
ANIM_CMD(CLAMPERL),
|
||||
ANIM_CMD(HUNTAIL),
|
||||
ANIM_CMD(GOREBYSS),
|
||||
ANIM_CMD(ABSOL),
|
||||
ANIM_CMD(SHUPPET),
|
||||
ANIM_CMD(BANETTE),
|
||||
ANIM_CMD(SEVIPER),
|
||||
ANIM_CMD(ZANGOOSE),
|
||||
ANIM_CMD(RELICANTH),
|
||||
ANIM_CMD(ARON),
|
||||
ANIM_CMD(LAIRON),
|
||||
ANIM_CMD(AGGRON),
|
||||
ANIM_CMD(CASTFORM),
|
||||
ANIM_CMD(VOLBEAT),
|
||||
ANIM_CMD(ILLUMISE),
|
||||
ANIM_CMD(LILEEP),
|
||||
ANIM_CMD(CRADILY),
|
||||
ANIM_CMD(ANORITH),
|
||||
ANIM_CMD(ARMALDO),
|
||||
ANIM_CMD(RALTS),
|
||||
ANIM_CMD(KIRLIA),
|
||||
ANIM_CMD(GARDEVOIR),
|
||||
ANIM_CMD(BAGON),
|
||||
ANIM_CMD(SHELGON),
|
||||
ANIM_CMD(SALAMENCE),
|
||||
ANIM_CMD(BELDUM),
|
||||
ANIM_CMD(METANG),
|
||||
ANIM_CMD(METAGROSS),
|
||||
ANIM_CMD(REGIROCK),
|
||||
ANIM_CMD(REGICE),
|
||||
ANIM_CMD(REGISTEEL),
|
||||
ANIM_CMD(KYOGRE),
|
||||
ANIM_CMD(GROUDON),
|
||||
ANIM_CMD(RAYQUAZA),
|
||||
ANIM_CMD(LATIAS),
|
||||
ANIM_CMD(LATIOS),
|
||||
ANIM_CMD(JIRACHI),
|
||||
ANIM_CMD(DEOXYS),
|
||||
ANIM_CMD(CHIMECHO),
|
||||
ANIM_CMD(EGG),
|
||||
ANIM_CMD(UNOWN_B),
|
||||
ANIM_CMD(UNOWN_C),
|
||||
ANIM_CMD(UNOWN_D),
|
||||
ANIM_CMD(UNOWN_E),
|
||||
ANIM_CMD(UNOWN_F),
|
||||
ANIM_CMD(UNOWN_G),
|
||||
ANIM_CMD(UNOWN_H),
|
||||
ANIM_CMD(UNOWN_I),
|
||||
ANIM_CMD(UNOWN_J),
|
||||
ANIM_CMD(UNOWN_K),
|
||||
ANIM_CMD(UNOWN_L),
|
||||
ANIM_CMD(UNOWN_M),
|
||||
ANIM_CMD(UNOWN_N),
|
||||
ANIM_CMD(UNOWN_O),
|
||||
ANIM_CMD(UNOWN_P),
|
||||
ANIM_CMD(UNOWN_Q),
|
||||
ANIM_CMD(UNOWN_R),
|
||||
ANIM_CMD(UNOWN_S),
|
||||
ANIM_CMD(UNOWN_T),
|
||||
ANIM_CMD(UNOWN_U),
|
||||
ANIM_CMD(UNOWN_V),
|
||||
ANIM_CMD(UNOWN_W),
|
||||
ANIM_CMD(UNOWN_X),
|
||||
ANIM_CMD(UNOWN_Y),
|
||||
ANIM_CMD(UNOWN_Z),
|
||||
ANIM_CMD(UNOWN_EMARK),
|
||||
ANIM_CMD(UNOWN_QMARK),
|
||||
};
|
||||
|
||||
@@ -1,446 +1,448 @@
|
||||
#define STILL_FRONT_PIC(species, frontpic) [SPECIES_##species] = {frontpic, 0x800, SPECIES_##species}
|
||||
|
||||
const struct CompressedSpriteSheet gMonStillFrontPicTable[] =
|
||||
{ //.data .size .tag
|
||||
gMonStillFrontPic_CircledQuestionMark, 0x800, 0,
|
||||
gMonStillFrontPic_Bulbasaur, 0x800, 1,
|
||||
gMonStillFrontPic_Ivysaur, 0x800, 2,
|
||||
gMonStillFrontPic_Venusaur, 0x800, 3,
|
||||
gMonStillFrontPic_Charmander, 0x800, 4,
|
||||
gMonStillFrontPic_Charmeleon, 0x800, 5,
|
||||
gMonStillFrontPic_Charizard, 0x800, 6,
|
||||
gMonStillFrontPic_Squirtle, 0x800, 7,
|
||||
gMonStillFrontPic_Wartortle, 0x800, 8,
|
||||
gMonStillFrontPic_Blastoise, 0x800, 9,
|
||||
gMonStillFrontPic_Caterpie, 0x800, 10,
|
||||
gMonStillFrontPic_Metapod, 0x800, 11,
|
||||
gMonStillFrontPic_Butterfree, 0x800, 12,
|
||||
gMonStillFrontPic_Weedle, 0x800, 13,
|
||||
gMonStillFrontPic_Kakuna, 0x800, 14,
|
||||
gMonStillFrontPic_Beedrill, 0x800, 15,
|
||||
gMonStillFrontPic_Pidgey, 0x800, 16,
|
||||
gMonStillFrontPic_Pidgeotto, 0x800, 17,
|
||||
gMonStillFrontPic_Pidgeot, 0x800, 18,
|
||||
gMonStillFrontPic_Rattata, 0x800, 19,
|
||||
gMonStillFrontPic_Raticate, 0x800, 20,
|
||||
gMonStillFrontPic_Spearow, 0x800, 21,
|
||||
gMonStillFrontPic_Fearow, 0x800, 22,
|
||||
gMonStillFrontPic_Ekans, 0x800, 23,
|
||||
gMonStillFrontPic_Arbok, 0x800, 24,
|
||||
gMonStillFrontPic_Pikachu, 0x800, 25,
|
||||
gMonStillFrontPic_Raichu, 0x800, 26,
|
||||
gMonStillFrontPic_Sandshrew, 0x800, 27,
|
||||
gMonStillFrontPic_Sandslash, 0x800, 28,
|
||||
gMonStillFrontPic_NidoranF, 0x800, 29,
|
||||
gMonStillFrontPic_Nidorina, 0x800, 30,
|
||||
gMonStillFrontPic_Nidoqueen, 0x800, 31,
|
||||
gMonStillFrontPic_NidoranM, 0x800, 32,
|
||||
gMonStillFrontPic_Nidorino, 0x800, 33,
|
||||
gMonStillFrontPic_Nidoking, 0x800, 34,
|
||||
gMonStillFrontPic_Clefairy, 0x800, 35,
|
||||
gMonStillFrontPic_Clefable, 0x800, 36,
|
||||
gMonStillFrontPic_Vulpix, 0x800, 37,
|
||||
gMonStillFrontPic_Ninetales, 0x800, 38,
|
||||
gMonStillFrontPic_Jigglypuff, 0x800, 39,
|
||||
gMonStillFrontPic_Wigglytuff, 0x800, 40,
|
||||
gMonStillFrontPic_Zubat, 0x800, 41,
|
||||
gMonStillFrontPic_Golbat, 0x800, 42,
|
||||
gMonStillFrontPic_Oddish, 0x800, 43,
|
||||
gMonStillFrontPic_Gloom, 0x800, 44,
|
||||
gMonStillFrontPic_Vileplume, 0x800, 45,
|
||||
gMonStillFrontPic_Paras, 0x800, 46,
|
||||
gMonStillFrontPic_Parasect, 0x800, 47,
|
||||
gMonStillFrontPic_Venonat, 0x800, 48,
|
||||
gMonStillFrontPic_Venomoth, 0x800, 49,
|
||||
gMonStillFrontPic_Diglett, 0x800, 50,
|
||||
gMonStillFrontPic_Dugtrio, 0x800, 51,
|
||||
gMonStillFrontPic_Meowth, 0x800, 52,
|
||||
gMonStillFrontPic_Persian, 0x800, 53,
|
||||
gMonStillFrontPic_Psyduck, 0x800, 54,
|
||||
gMonStillFrontPic_Golduck, 0x800, 55,
|
||||
gMonStillFrontPic_Mankey, 0x800, 56,
|
||||
gMonStillFrontPic_Primeape, 0x800, 57,
|
||||
gMonStillFrontPic_Growlithe, 0x800, 58,
|
||||
gMonStillFrontPic_Arcanine, 0x800, 59,
|
||||
gMonStillFrontPic_Poliwag, 0x800, 60,
|
||||
gMonStillFrontPic_Poliwhirl, 0x800, 61,
|
||||
gMonStillFrontPic_Poliwrath, 0x800, 62,
|
||||
gMonStillFrontPic_Abra, 0x800, 63,
|
||||
gMonStillFrontPic_Kadabra, 0x800, 64,
|
||||
gMonStillFrontPic_Alakazam, 0x800, 65,
|
||||
gMonStillFrontPic_Machop, 0x800, 66,
|
||||
gMonStillFrontPic_Machoke, 0x800, 67,
|
||||
gMonStillFrontPic_Machamp, 0x800, 68,
|
||||
gMonStillFrontPic_Bellsprout, 0x800, 69,
|
||||
gMonStillFrontPic_Weepinbell, 0x800, 70,
|
||||
gMonStillFrontPic_Victreebel, 0x800, 71,
|
||||
gMonStillFrontPic_Tentacool, 0x800, 72,
|
||||
gMonStillFrontPic_Tentacruel, 0x800, 73,
|
||||
gMonStillFrontPic_Geodude, 0x800, 74,
|
||||
gMonStillFrontPic_Graveler, 0x800, 75,
|
||||
gMonStillFrontPic_Golem, 0x800, 76,
|
||||
gMonStillFrontPic_Ponyta, 0x800, 77,
|
||||
gMonStillFrontPic_Rapidash, 0x800, 78,
|
||||
gMonStillFrontPic_Slowpoke, 0x800, 79,
|
||||
gMonStillFrontPic_Slowbro, 0x800, 80,
|
||||
gMonStillFrontPic_Magnemite, 0x800, 81,
|
||||
gMonStillFrontPic_Magneton, 0x800, 82,
|
||||
gMonStillFrontPic_Farfetchd, 0x800, 83,
|
||||
gMonStillFrontPic_Doduo, 0x800, 84,
|
||||
gMonStillFrontPic_Dodrio, 0x800, 85,
|
||||
gMonStillFrontPic_Seel, 0x800, 86,
|
||||
gMonStillFrontPic_Dewgong, 0x800, 87,
|
||||
gMonStillFrontPic_Grimer, 0x800, 88,
|
||||
gMonStillFrontPic_Muk, 0x800, 89,
|
||||
gMonStillFrontPic_Shellder, 0x800, 90,
|
||||
gMonStillFrontPic_Cloyster, 0x800, 91,
|
||||
gMonStillFrontPic_Gastly, 0x800, 92,
|
||||
gMonStillFrontPic_Haunter, 0x800, 93,
|
||||
gMonStillFrontPic_Gengar, 0x800, 94,
|
||||
gMonStillFrontPic_Onix, 0x800, 95,
|
||||
gMonStillFrontPic_Drowzee, 0x800, 96,
|
||||
gMonStillFrontPic_Hypno, 0x800, 97,
|
||||
gMonStillFrontPic_Krabby, 0x800, 98,
|
||||
gMonStillFrontPic_Kingler, 0x800, 99,
|
||||
gMonStillFrontPic_Voltorb, 0x800, 100,
|
||||
gMonStillFrontPic_Electrode, 0x800, 101,
|
||||
gMonStillFrontPic_Exeggcute, 0x800, 102,
|
||||
gMonStillFrontPic_Exeggutor, 0x800, 103,
|
||||
gMonStillFrontPic_Cubone, 0x800, 104,
|
||||
gMonStillFrontPic_Marowak, 0x800, 105,
|
||||
gMonStillFrontPic_Hitmonlee, 0x800, 106,
|
||||
gMonStillFrontPic_Hitmonchan, 0x800, 107,
|
||||
gMonStillFrontPic_Lickitung, 0x800, 108,
|
||||
gMonStillFrontPic_Koffing, 0x800, 109,
|
||||
gMonStillFrontPic_Weezing, 0x800, 110,
|
||||
gMonStillFrontPic_Rhyhorn, 0x800, 111,
|
||||
gMonStillFrontPic_Rhydon, 0x800, 112,
|
||||
gMonStillFrontPic_Chansey, 0x800, 113,
|
||||
gMonStillFrontPic_Tangela, 0x800, 114,
|
||||
gMonStillFrontPic_Kangaskhan, 0x800, 115,
|
||||
gMonStillFrontPic_Horsea, 0x800, 116,
|
||||
gMonStillFrontPic_Seadra, 0x800, 117,
|
||||
gMonStillFrontPic_Goldeen, 0x800, 118,
|
||||
gMonStillFrontPic_Seaking, 0x800, 119,
|
||||
gMonStillFrontPic_Staryu, 0x800, 120,
|
||||
gMonStillFrontPic_Starmie, 0x800, 121,
|
||||
gMonStillFrontPic_Mrmime, 0x800, 122,
|
||||
gMonStillFrontPic_Scyther, 0x800, 123,
|
||||
gMonStillFrontPic_Jynx, 0x800, 124,
|
||||
gMonStillFrontPic_Electabuzz, 0x800, 125,
|
||||
gMonStillFrontPic_Magmar, 0x800, 126,
|
||||
gMonStillFrontPic_Pinsir, 0x800, 127,
|
||||
gMonStillFrontPic_Tauros, 0x800, 128,
|
||||
gMonStillFrontPic_Magikarp, 0x800, 129,
|
||||
gMonStillFrontPic_Gyarados, 0x800, 130,
|
||||
gMonStillFrontPic_Lapras, 0x800, 131,
|
||||
gMonStillFrontPic_Ditto, 0x800, 132,
|
||||
gMonStillFrontPic_Eevee, 0x800, 133,
|
||||
gMonStillFrontPic_Vaporeon, 0x800, 134,
|
||||
gMonStillFrontPic_Jolteon, 0x800, 135,
|
||||
gMonStillFrontPic_Flareon, 0x800, 136,
|
||||
gMonStillFrontPic_Porygon, 0x800, 137,
|
||||
gMonStillFrontPic_Omanyte, 0x800, 138,
|
||||
gMonStillFrontPic_Omastar, 0x800, 139,
|
||||
gMonStillFrontPic_Kabuto, 0x800, 140,
|
||||
gMonStillFrontPic_Kabutops, 0x800, 141,
|
||||
gMonStillFrontPic_Aerodactyl, 0x800, 142,
|
||||
gMonStillFrontPic_Snorlax, 0x800, 143,
|
||||
gMonStillFrontPic_Articuno, 0x800, 144,
|
||||
gMonStillFrontPic_Zapdos, 0x800, 145,
|
||||
gMonStillFrontPic_Moltres, 0x800, 146,
|
||||
gMonStillFrontPic_Dratini, 0x800, 147,
|
||||
gMonStillFrontPic_Dragonair, 0x800, 148,
|
||||
gMonStillFrontPic_Dragonite, 0x800, 149,
|
||||
gMonStillFrontPic_Mewtwo, 0x800, 150,
|
||||
gMonStillFrontPic_Mew, 0x800, 151,
|
||||
{
|
||||
STILL_FRONT_PIC(NONE, gMonStillFrontPic_CircledQuestionMark),
|
||||
STILL_FRONT_PIC(BULBASAUR, gMonStillFrontPic_Bulbasaur),
|
||||
STILL_FRONT_PIC(IVYSAUR, gMonStillFrontPic_Ivysaur),
|
||||
STILL_FRONT_PIC(VENUSAUR, gMonStillFrontPic_Venusaur),
|
||||
STILL_FRONT_PIC(CHARMANDER, gMonStillFrontPic_Charmander),
|
||||
STILL_FRONT_PIC(CHARMELEON, gMonStillFrontPic_Charmeleon),
|
||||
STILL_FRONT_PIC(CHARIZARD, gMonStillFrontPic_Charizard),
|
||||
STILL_FRONT_PIC(SQUIRTLE, gMonStillFrontPic_Squirtle),
|
||||
STILL_FRONT_PIC(WARTORTLE, gMonStillFrontPic_Wartortle),
|
||||
STILL_FRONT_PIC(BLASTOISE, gMonStillFrontPic_Blastoise),
|
||||
STILL_FRONT_PIC(CATERPIE, gMonStillFrontPic_Caterpie),
|
||||
STILL_FRONT_PIC(METAPOD, gMonStillFrontPic_Metapod),
|
||||
STILL_FRONT_PIC(BUTTERFREE, gMonStillFrontPic_Butterfree),
|
||||
STILL_FRONT_PIC(WEEDLE, gMonStillFrontPic_Weedle),
|
||||
STILL_FRONT_PIC(KAKUNA, gMonStillFrontPic_Kakuna),
|
||||
STILL_FRONT_PIC(BEEDRILL, gMonStillFrontPic_Beedrill),
|
||||
STILL_FRONT_PIC(PIDGEY, gMonStillFrontPic_Pidgey),
|
||||
STILL_FRONT_PIC(PIDGEOTTO, gMonStillFrontPic_Pidgeotto),
|
||||
STILL_FRONT_PIC(PIDGEOT, gMonStillFrontPic_Pidgeot),
|
||||
STILL_FRONT_PIC(RATTATA, gMonStillFrontPic_Rattata),
|
||||
STILL_FRONT_PIC(RATICATE, gMonStillFrontPic_Raticate),
|
||||
STILL_FRONT_PIC(SPEAROW, gMonStillFrontPic_Spearow),
|
||||
STILL_FRONT_PIC(FEAROW, gMonStillFrontPic_Fearow),
|
||||
STILL_FRONT_PIC(EKANS, gMonStillFrontPic_Ekans),
|
||||
STILL_FRONT_PIC(ARBOK, gMonStillFrontPic_Arbok),
|
||||
STILL_FRONT_PIC(PIKACHU, gMonStillFrontPic_Pikachu),
|
||||
STILL_FRONT_PIC(RAICHU, gMonStillFrontPic_Raichu),
|
||||
STILL_FRONT_PIC(SANDSHREW, gMonStillFrontPic_Sandshrew),
|
||||
STILL_FRONT_PIC(SANDSLASH, gMonStillFrontPic_Sandslash),
|
||||
STILL_FRONT_PIC(NIDORAN_F, gMonStillFrontPic_NidoranF),
|
||||
STILL_FRONT_PIC(NIDORINA, gMonStillFrontPic_Nidorina),
|
||||
STILL_FRONT_PIC(NIDOQUEEN, gMonStillFrontPic_Nidoqueen),
|
||||
STILL_FRONT_PIC(NIDORAN_M, gMonStillFrontPic_NidoranM),
|
||||
STILL_FRONT_PIC(NIDORINO, gMonStillFrontPic_Nidorino),
|
||||
STILL_FRONT_PIC(NIDOKING, gMonStillFrontPic_Nidoking),
|
||||
STILL_FRONT_PIC(CLEFAIRY, gMonStillFrontPic_Clefairy),
|
||||
STILL_FRONT_PIC(CLEFABLE, gMonStillFrontPic_Clefable),
|
||||
STILL_FRONT_PIC(VULPIX, gMonStillFrontPic_Vulpix),
|
||||
STILL_FRONT_PIC(NINETALES, gMonStillFrontPic_Ninetales),
|
||||
STILL_FRONT_PIC(JIGGLYPUFF, gMonStillFrontPic_Jigglypuff),
|
||||
STILL_FRONT_PIC(WIGGLYTUFF, gMonStillFrontPic_Wigglytuff),
|
||||
STILL_FRONT_PIC(ZUBAT, gMonStillFrontPic_Zubat),
|
||||
STILL_FRONT_PIC(GOLBAT, gMonStillFrontPic_Golbat),
|
||||
STILL_FRONT_PIC(ODDISH, gMonStillFrontPic_Oddish),
|
||||
STILL_FRONT_PIC(GLOOM, gMonStillFrontPic_Gloom),
|
||||
STILL_FRONT_PIC(VILEPLUME, gMonStillFrontPic_Vileplume),
|
||||
STILL_FRONT_PIC(PARAS, gMonStillFrontPic_Paras),
|
||||
STILL_FRONT_PIC(PARASECT, gMonStillFrontPic_Parasect),
|
||||
STILL_FRONT_PIC(VENONAT, gMonStillFrontPic_Venonat),
|
||||
STILL_FRONT_PIC(VENOMOTH, gMonStillFrontPic_Venomoth),
|
||||
STILL_FRONT_PIC(DIGLETT, gMonStillFrontPic_Diglett),
|
||||
STILL_FRONT_PIC(DUGTRIO, gMonStillFrontPic_Dugtrio),
|
||||
STILL_FRONT_PIC(MEOWTH, gMonStillFrontPic_Meowth),
|
||||
STILL_FRONT_PIC(PERSIAN, gMonStillFrontPic_Persian),
|
||||
STILL_FRONT_PIC(PSYDUCK, gMonStillFrontPic_Psyduck),
|
||||
STILL_FRONT_PIC(GOLDUCK, gMonStillFrontPic_Golduck),
|
||||
STILL_FRONT_PIC(MANKEY, gMonStillFrontPic_Mankey),
|
||||
STILL_FRONT_PIC(PRIMEAPE, gMonStillFrontPic_Primeape),
|
||||
STILL_FRONT_PIC(GROWLITHE, gMonStillFrontPic_Growlithe),
|
||||
STILL_FRONT_PIC(ARCANINE, gMonStillFrontPic_Arcanine),
|
||||
STILL_FRONT_PIC(POLIWAG, gMonStillFrontPic_Poliwag),
|
||||
STILL_FRONT_PIC(POLIWHIRL, gMonStillFrontPic_Poliwhirl),
|
||||
STILL_FRONT_PIC(POLIWRATH, gMonStillFrontPic_Poliwrath),
|
||||
STILL_FRONT_PIC(ABRA, gMonStillFrontPic_Abra),
|
||||
STILL_FRONT_PIC(KADABRA, gMonStillFrontPic_Kadabra),
|
||||
STILL_FRONT_PIC(ALAKAZAM, gMonStillFrontPic_Alakazam),
|
||||
STILL_FRONT_PIC(MACHOP, gMonStillFrontPic_Machop),
|
||||
STILL_FRONT_PIC(MACHOKE, gMonStillFrontPic_Machoke),
|
||||
STILL_FRONT_PIC(MACHAMP, gMonStillFrontPic_Machamp),
|
||||
STILL_FRONT_PIC(BELLSPROUT, gMonStillFrontPic_Bellsprout),
|
||||
STILL_FRONT_PIC(WEEPINBELL, gMonStillFrontPic_Weepinbell),
|
||||
STILL_FRONT_PIC(VICTREEBEL, gMonStillFrontPic_Victreebel),
|
||||
STILL_FRONT_PIC(TENTACOOL, gMonStillFrontPic_Tentacool),
|
||||
STILL_FRONT_PIC(TENTACRUEL, gMonStillFrontPic_Tentacruel),
|
||||
STILL_FRONT_PIC(GEODUDE, gMonStillFrontPic_Geodude),
|
||||
STILL_FRONT_PIC(GRAVELER, gMonStillFrontPic_Graveler),
|
||||
STILL_FRONT_PIC(GOLEM, gMonStillFrontPic_Golem),
|
||||
STILL_FRONT_PIC(PONYTA, gMonStillFrontPic_Ponyta),
|
||||
STILL_FRONT_PIC(RAPIDASH, gMonStillFrontPic_Rapidash),
|
||||
STILL_FRONT_PIC(SLOWPOKE, gMonStillFrontPic_Slowpoke),
|
||||
STILL_FRONT_PIC(SLOWBRO, gMonStillFrontPic_Slowbro),
|
||||
STILL_FRONT_PIC(MAGNEMITE, gMonStillFrontPic_Magnemite),
|
||||
STILL_FRONT_PIC(MAGNETON, gMonStillFrontPic_Magneton),
|
||||
STILL_FRONT_PIC(FARFETCHD, gMonStillFrontPic_Farfetchd),
|
||||
STILL_FRONT_PIC(DODUO, gMonStillFrontPic_Doduo),
|
||||
STILL_FRONT_PIC(DODRIO, gMonStillFrontPic_Dodrio),
|
||||
STILL_FRONT_PIC(SEEL, gMonStillFrontPic_Seel),
|
||||
STILL_FRONT_PIC(DEWGONG, gMonStillFrontPic_Dewgong),
|
||||
STILL_FRONT_PIC(GRIMER, gMonStillFrontPic_Grimer),
|
||||
STILL_FRONT_PIC(MUK, gMonStillFrontPic_Muk),
|
||||
STILL_FRONT_PIC(SHELLDER, gMonStillFrontPic_Shellder),
|
||||
STILL_FRONT_PIC(CLOYSTER, gMonStillFrontPic_Cloyster),
|
||||
STILL_FRONT_PIC(GASTLY, gMonStillFrontPic_Gastly),
|
||||
STILL_FRONT_PIC(HAUNTER, gMonStillFrontPic_Haunter),
|
||||
STILL_FRONT_PIC(GENGAR, gMonStillFrontPic_Gengar),
|
||||
STILL_FRONT_PIC(ONIX, gMonStillFrontPic_Onix),
|
||||
STILL_FRONT_PIC(DROWZEE, gMonStillFrontPic_Drowzee),
|
||||
STILL_FRONT_PIC(HYPNO, gMonStillFrontPic_Hypno),
|
||||
STILL_FRONT_PIC(KRABBY, gMonStillFrontPic_Krabby),
|
||||
STILL_FRONT_PIC(KINGLER, gMonStillFrontPic_Kingler),
|
||||
STILL_FRONT_PIC(VOLTORB, gMonStillFrontPic_Voltorb),
|
||||
STILL_FRONT_PIC(ELECTRODE, gMonStillFrontPic_Electrode),
|
||||
STILL_FRONT_PIC(EXEGGCUTE, gMonStillFrontPic_Exeggcute),
|
||||
STILL_FRONT_PIC(EXEGGUTOR, gMonStillFrontPic_Exeggutor),
|
||||
STILL_FRONT_PIC(CUBONE, gMonStillFrontPic_Cubone),
|
||||
STILL_FRONT_PIC(MAROWAK, gMonStillFrontPic_Marowak),
|
||||
STILL_FRONT_PIC(HITMONLEE, gMonStillFrontPic_Hitmonlee),
|
||||
STILL_FRONT_PIC(HITMONCHAN, gMonStillFrontPic_Hitmonchan),
|
||||
STILL_FRONT_PIC(LICKITUNG, gMonStillFrontPic_Lickitung),
|
||||
STILL_FRONT_PIC(KOFFING, gMonStillFrontPic_Koffing),
|
||||
STILL_FRONT_PIC(WEEZING, gMonStillFrontPic_Weezing),
|
||||
STILL_FRONT_PIC(RHYHORN, gMonStillFrontPic_Rhyhorn),
|
||||
STILL_FRONT_PIC(RHYDON, gMonStillFrontPic_Rhydon),
|
||||
STILL_FRONT_PIC(CHANSEY, gMonStillFrontPic_Chansey),
|
||||
STILL_FRONT_PIC(TANGELA, gMonStillFrontPic_Tangela),
|
||||
STILL_FRONT_PIC(KANGASKHAN, gMonStillFrontPic_Kangaskhan),
|
||||
STILL_FRONT_PIC(HORSEA, gMonStillFrontPic_Horsea),
|
||||
STILL_FRONT_PIC(SEADRA, gMonStillFrontPic_Seadra),
|
||||
STILL_FRONT_PIC(GOLDEEN, gMonStillFrontPic_Goldeen),
|
||||
STILL_FRONT_PIC(SEAKING, gMonStillFrontPic_Seaking),
|
||||
STILL_FRONT_PIC(STARYU, gMonStillFrontPic_Staryu),
|
||||
STILL_FRONT_PIC(STARMIE, gMonStillFrontPic_Starmie),
|
||||
STILL_FRONT_PIC(MR_MIME, gMonStillFrontPic_Mrmime),
|
||||
STILL_FRONT_PIC(SCYTHER, gMonStillFrontPic_Scyther),
|
||||
STILL_FRONT_PIC(JYNX, gMonStillFrontPic_Jynx),
|
||||
STILL_FRONT_PIC(ELECTABUZZ, gMonStillFrontPic_Electabuzz),
|
||||
STILL_FRONT_PIC(MAGMAR, gMonStillFrontPic_Magmar),
|
||||
STILL_FRONT_PIC(PINSIR, gMonStillFrontPic_Pinsir),
|
||||
STILL_FRONT_PIC(TAUROS, gMonStillFrontPic_Tauros),
|
||||
STILL_FRONT_PIC(MAGIKARP, gMonStillFrontPic_Magikarp),
|
||||
STILL_FRONT_PIC(GYARADOS, gMonStillFrontPic_Gyarados),
|
||||
STILL_FRONT_PIC(LAPRAS, gMonStillFrontPic_Lapras),
|
||||
STILL_FRONT_PIC(DITTO, gMonStillFrontPic_Ditto),
|
||||
STILL_FRONT_PIC(EEVEE, gMonStillFrontPic_Eevee),
|
||||
STILL_FRONT_PIC(VAPOREON, gMonStillFrontPic_Vaporeon),
|
||||
STILL_FRONT_PIC(JOLTEON, gMonStillFrontPic_Jolteon),
|
||||
STILL_FRONT_PIC(FLAREON, gMonStillFrontPic_Flareon),
|
||||
STILL_FRONT_PIC(PORYGON, gMonStillFrontPic_Porygon),
|
||||
STILL_FRONT_PIC(OMANYTE, gMonStillFrontPic_Omanyte),
|
||||
STILL_FRONT_PIC(OMASTAR, gMonStillFrontPic_Omastar),
|
||||
STILL_FRONT_PIC(KABUTO, gMonStillFrontPic_Kabuto),
|
||||
STILL_FRONT_PIC(KABUTOPS, gMonStillFrontPic_Kabutops),
|
||||
STILL_FRONT_PIC(AERODACTYL, gMonStillFrontPic_Aerodactyl),
|
||||
STILL_FRONT_PIC(SNORLAX, gMonStillFrontPic_Snorlax),
|
||||
STILL_FRONT_PIC(ARTICUNO, gMonStillFrontPic_Articuno),
|
||||
STILL_FRONT_PIC(ZAPDOS, gMonStillFrontPic_Zapdos),
|
||||
STILL_FRONT_PIC(MOLTRES, gMonStillFrontPic_Moltres),
|
||||
STILL_FRONT_PIC(DRATINI, gMonStillFrontPic_Dratini),
|
||||
STILL_FRONT_PIC(DRAGONAIR, gMonStillFrontPic_Dragonair),
|
||||
STILL_FRONT_PIC(DRAGONITE, gMonStillFrontPic_Dragonite),
|
||||
STILL_FRONT_PIC(MEWTWO, gMonStillFrontPic_Mewtwo),
|
||||
STILL_FRONT_PIC(MEW, gMonStillFrontPic_Mew),
|
||||
// Gen II
|
||||
gMonStillFrontPic_Chikorita, 0x800, 152,
|
||||
gMonStillFrontPic_Bayleef, 0x800, 153,
|
||||
gMonStillFrontPic_Meganium, 0x800, 154,
|
||||
gMonStillFrontPic_Cyndaquil, 0x800, 155,
|
||||
gMonStillFrontPic_Quilava, 0x800, 156,
|
||||
gMonStillFrontPic_Typhlosion, 0x800, 157,
|
||||
gMonStillFrontPic_Totodile, 0x800, 158,
|
||||
gMonStillFrontPic_Croconaw, 0x800, 159,
|
||||
gMonStillFrontPic_Feraligatr, 0x800, 160,
|
||||
gMonStillFrontPic_Sentret, 0x800, 161,
|
||||
gMonStillFrontPic_Furret, 0x800, 162,
|
||||
gMonStillFrontPic_Hoothoot, 0x800, 163,
|
||||
gMonStillFrontPic_Noctowl, 0x800, 164,
|
||||
gMonStillFrontPic_Ledyba, 0x800, 165,
|
||||
gMonStillFrontPic_Ledian, 0x800, 166,
|
||||
gMonStillFrontPic_Spinarak, 0x800, 167,
|
||||
gMonStillFrontPic_Ariados, 0x800, 168,
|
||||
gMonStillFrontPic_Crobat, 0x800, 169,
|
||||
gMonStillFrontPic_Chinchou, 0x800, 170,
|
||||
gMonStillFrontPic_Lanturn, 0x800, 171,
|
||||
gMonStillFrontPic_Pichu, 0x800, 172,
|
||||
gMonStillFrontPic_Cleffa, 0x800, 173,
|
||||
gMonStillFrontPic_Igglybuff, 0x800, 174,
|
||||
gMonStillFrontPic_Togepi, 0x800, 175,
|
||||
gMonStillFrontPic_Togetic, 0x800, 176,
|
||||
gMonStillFrontPic_Natu, 0x800, 177,
|
||||
gMonStillFrontPic_Xatu, 0x800, 178,
|
||||
gMonStillFrontPic_Mareep, 0x800, 179,
|
||||
gMonStillFrontPic_Flaaffy, 0x800, 180,
|
||||
gMonStillFrontPic_Ampharos, 0x800, 181,
|
||||
gMonStillFrontPic_Bellossom, 0x800, 182,
|
||||
gMonStillFrontPic_Marill, 0x800, 183,
|
||||
gMonStillFrontPic_Azumarill, 0x800, 184,
|
||||
gMonStillFrontPic_Sudowoodo, 0x800, 185,
|
||||
gMonStillFrontPic_Politoed, 0x800, 186,
|
||||
gMonStillFrontPic_Hoppip, 0x800, 187,
|
||||
gMonStillFrontPic_Skiploom, 0x800, 188,
|
||||
gMonStillFrontPic_Jumpluff, 0x800, 189,
|
||||
gMonStillFrontPic_Aipom, 0x800, 190,
|
||||
gMonStillFrontPic_Sunkern, 0x800, 191,
|
||||
gMonStillFrontPic_Sunflora, 0x800, 192,
|
||||
gMonStillFrontPic_Yanma, 0x800, 193,
|
||||
gMonStillFrontPic_Wooper, 0x800, 194,
|
||||
gMonStillFrontPic_Quagsire, 0x800, 195,
|
||||
gMonStillFrontPic_Espeon, 0x800, 196,
|
||||
gMonStillFrontPic_Umbreon, 0x800, 197,
|
||||
gMonStillFrontPic_Murkrow, 0x800, 198,
|
||||
gMonStillFrontPic_Slowking, 0x800, 199,
|
||||
gMonStillFrontPic_Misdreavus, 0x800, 200,
|
||||
gMonStillFrontPic_UnownA, 0x800, 201,
|
||||
gMonStillFrontPic_Wobbuffet, 0x800, 202,
|
||||
gMonStillFrontPic_Girafarig, 0x800, 203,
|
||||
gMonStillFrontPic_Pineco, 0x800, 204,
|
||||
gMonStillFrontPic_Forretress, 0x800, 205,
|
||||
gMonStillFrontPic_Dunsparce, 0x800, 206,
|
||||
gMonStillFrontPic_Gligar, 0x800, 207,
|
||||
gMonStillFrontPic_Steelix, 0x800, 208,
|
||||
gMonStillFrontPic_Snubbull, 0x800, 209,
|
||||
gMonStillFrontPic_Granbull, 0x800, 210,
|
||||
gMonStillFrontPic_Qwilfish, 0x800, 211,
|
||||
gMonStillFrontPic_Scizor, 0x800, 212,
|
||||
gMonStillFrontPic_Shuckle, 0x800, 213,
|
||||
gMonStillFrontPic_Heracross, 0x800, 214,
|
||||
gMonStillFrontPic_Sneasel, 0x800, 215,
|
||||
gMonStillFrontPic_Teddiursa, 0x800, 216,
|
||||
gMonStillFrontPic_Ursaring, 0x800, 217,
|
||||
gMonStillFrontPic_Slugma, 0x800, 218,
|
||||
gMonStillFrontPic_Magcargo, 0x800, 219,
|
||||
gMonStillFrontPic_Swinub, 0x800, 220,
|
||||
gMonStillFrontPic_Piloswine, 0x800, 221,
|
||||
gMonStillFrontPic_Corsola, 0x800, 222,
|
||||
gMonStillFrontPic_Remoraid, 0x800, 223,
|
||||
gMonStillFrontPic_Octillery, 0x800, 224,
|
||||
gMonStillFrontPic_Delibird, 0x800, 225,
|
||||
gMonStillFrontPic_Mantine, 0x800, 226,
|
||||
gMonStillFrontPic_Skarmory, 0x800, 227,
|
||||
gMonStillFrontPic_Houndour, 0x800, 228,
|
||||
gMonStillFrontPic_Houndoom, 0x800, 229,
|
||||
gMonStillFrontPic_Kingdra, 0x800, 230,
|
||||
gMonStillFrontPic_Phanpy, 0x800, 231,
|
||||
gMonStillFrontPic_Donphan, 0x800, 232,
|
||||
gMonStillFrontPic_Porygon2, 0x800, 233,
|
||||
gMonStillFrontPic_Stantler, 0x800, 234,
|
||||
gMonStillFrontPic_Smeargle, 0x800, 235,
|
||||
gMonStillFrontPic_Tyrogue, 0x800, 236,
|
||||
gMonStillFrontPic_Hitmontop, 0x800, 237,
|
||||
gMonStillFrontPic_Smoochum, 0x800, 238,
|
||||
gMonStillFrontPic_Elekid, 0x800, 239,
|
||||
gMonStillFrontPic_Magby, 0x800, 240,
|
||||
gMonStillFrontPic_Miltank, 0x800, 241,
|
||||
gMonStillFrontPic_Blissey, 0x800, 242,
|
||||
gMonStillFrontPic_Raikou, 0x800, 243,
|
||||
gMonStillFrontPic_Entei, 0x800, 244,
|
||||
gMonStillFrontPic_Suicune, 0x800, 245,
|
||||
gMonStillFrontPic_Larvitar, 0x800, 246,
|
||||
gMonStillFrontPic_Pupitar, 0x800, 247,
|
||||
gMonStillFrontPic_Tyranitar, 0x800, 248,
|
||||
gMonStillFrontPic_Lugia, 0x800, 249,
|
||||
gMonStillFrontPic_HoOh, 0x800, 250,
|
||||
gMonStillFrontPic_Celebi, 0x800, 251,
|
||||
STILL_FRONT_PIC(CHIKORITA, gMonStillFrontPic_Chikorita),
|
||||
STILL_FRONT_PIC(BAYLEEF, gMonStillFrontPic_Bayleef),
|
||||
STILL_FRONT_PIC(MEGANIUM, gMonStillFrontPic_Meganium),
|
||||
STILL_FRONT_PIC(CYNDAQUIL, gMonStillFrontPic_Cyndaquil),
|
||||
STILL_FRONT_PIC(QUILAVA, gMonStillFrontPic_Quilava),
|
||||
STILL_FRONT_PIC(TYPHLOSION, gMonStillFrontPic_Typhlosion),
|
||||
STILL_FRONT_PIC(TOTODILE, gMonStillFrontPic_Totodile),
|
||||
STILL_FRONT_PIC(CROCONAW, gMonStillFrontPic_Croconaw),
|
||||
STILL_FRONT_PIC(FERALIGATR, gMonStillFrontPic_Feraligatr),
|
||||
STILL_FRONT_PIC(SENTRET, gMonStillFrontPic_Sentret),
|
||||
STILL_FRONT_PIC(FURRET, gMonStillFrontPic_Furret),
|
||||
STILL_FRONT_PIC(HOOTHOOT, gMonStillFrontPic_Hoothoot),
|
||||
STILL_FRONT_PIC(NOCTOWL, gMonStillFrontPic_Noctowl),
|
||||
STILL_FRONT_PIC(LEDYBA, gMonStillFrontPic_Ledyba),
|
||||
STILL_FRONT_PIC(LEDIAN, gMonStillFrontPic_Ledian),
|
||||
STILL_FRONT_PIC(SPINARAK, gMonStillFrontPic_Spinarak),
|
||||
STILL_FRONT_PIC(ARIADOS, gMonStillFrontPic_Ariados),
|
||||
STILL_FRONT_PIC(CROBAT, gMonStillFrontPic_Crobat),
|
||||
STILL_FRONT_PIC(CHINCHOU, gMonStillFrontPic_Chinchou),
|
||||
STILL_FRONT_PIC(LANTURN, gMonStillFrontPic_Lanturn),
|
||||
STILL_FRONT_PIC(PICHU, gMonStillFrontPic_Pichu),
|
||||
STILL_FRONT_PIC(CLEFFA, gMonStillFrontPic_Cleffa),
|
||||
STILL_FRONT_PIC(IGGLYBUFF, gMonStillFrontPic_Igglybuff),
|
||||
STILL_FRONT_PIC(TOGEPI, gMonStillFrontPic_Togepi),
|
||||
STILL_FRONT_PIC(TOGETIC, gMonStillFrontPic_Togetic),
|
||||
STILL_FRONT_PIC(NATU, gMonStillFrontPic_Natu),
|
||||
STILL_FRONT_PIC(XATU, gMonStillFrontPic_Xatu),
|
||||
STILL_FRONT_PIC(MAREEP, gMonStillFrontPic_Mareep),
|
||||
STILL_FRONT_PIC(FLAAFFY, gMonStillFrontPic_Flaaffy),
|
||||
STILL_FRONT_PIC(AMPHAROS, gMonStillFrontPic_Ampharos),
|
||||
STILL_FRONT_PIC(BELLOSSOM, gMonStillFrontPic_Bellossom),
|
||||
STILL_FRONT_PIC(MARILL, gMonStillFrontPic_Marill),
|
||||
STILL_FRONT_PIC(AZUMARILL, gMonStillFrontPic_Azumarill),
|
||||
STILL_FRONT_PIC(SUDOWOODO, gMonStillFrontPic_Sudowoodo),
|
||||
STILL_FRONT_PIC(POLITOED, gMonStillFrontPic_Politoed),
|
||||
STILL_FRONT_PIC(HOPPIP, gMonStillFrontPic_Hoppip),
|
||||
STILL_FRONT_PIC(SKIPLOOM, gMonStillFrontPic_Skiploom),
|
||||
STILL_FRONT_PIC(JUMPLUFF, gMonStillFrontPic_Jumpluff),
|
||||
STILL_FRONT_PIC(AIPOM, gMonStillFrontPic_Aipom),
|
||||
STILL_FRONT_PIC(SUNKERN, gMonStillFrontPic_Sunkern),
|
||||
STILL_FRONT_PIC(SUNFLORA, gMonStillFrontPic_Sunflora),
|
||||
STILL_FRONT_PIC(YANMA, gMonStillFrontPic_Yanma),
|
||||
STILL_FRONT_PIC(WOOPER, gMonStillFrontPic_Wooper),
|
||||
STILL_FRONT_PIC(QUAGSIRE, gMonStillFrontPic_Quagsire),
|
||||
STILL_FRONT_PIC(ESPEON, gMonStillFrontPic_Espeon),
|
||||
STILL_FRONT_PIC(UMBREON, gMonStillFrontPic_Umbreon),
|
||||
STILL_FRONT_PIC(MURKROW, gMonStillFrontPic_Murkrow),
|
||||
STILL_FRONT_PIC(SLOWKING, gMonStillFrontPic_Slowking),
|
||||
STILL_FRONT_PIC(MISDREAVUS, gMonStillFrontPic_Misdreavus),
|
||||
STILL_FRONT_PIC(UNOWN, gMonStillFrontPic_UnownA),
|
||||
STILL_FRONT_PIC(WOBBUFFET, gMonStillFrontPic_Wobbuffet),
|
||||
STILL_FRONT_PIC(GIRAFARIG, gMonStillFrontPic_Girafarig),
|
||||
STILL_FRONT_PIC(PINECO, gMonStillFrontPic_Pineco),
|
||||
STILL_FRONT_PIC(FORRETRESS, gMonStillFrontPic_Forretress),
|
||||
STILL_FRONT_PIC(DUNSPARCE, gMonStillFrontPic_Dunsparce),
|
||||
STILL_FRONT_PIC(GLIGAR, gMonStillFrontPic_Gligar),
|
||||
STILL_FRONT_PIC(STEELIX, gMonStillFrontPic_Steelix),
|
||||
STILL_FRONT_PIC(SNUBBULL, gMonStillFrontPic_Snubbull),
|
||||
STILL_FRONT_PIC(GRANBULL, gMonStillFrontPic_Granbull),
|
||||
STILL_FRONT_PIC(QWILFISH, gMonStillFrontPic_Qwilfish),
|
||||
STILL_FRONT_PIC(SCIZOR, gMonStillFrontPic_Scizor),
|
||||
STILL_FRONT_PIC(SHUCKLE, gMonStillFrontPic_Shuckle),
|
||||
STILL_FRONT_PIC(HERACROSS, gMonStillFrontPic_Heracross),
|
||||
STILL_FRONT_PIC(SNEASEL, gMonStillFrontPic_Sneasel),
|
||||
STILL_FRONT_PIC(TEDDIURSA, gMonStillFrontPic_Teddiursa),
|
||||
STILL_FRONT_PIC(URSARING, gMonStillFrontPic_Ursaring),
|
||||
STILL_FRONT_PIC(SLUGMA, gMonStillFrontPic_Slugma),
|
||||
STILL_FRONT_PIC(MAGCARGO, gMonStillFrontPic_Magcargo),
|
||||
STILL_FRONT_PIC(SWINUB, gMonStillFrontPic_Swinub),
|
||||
STILL_FRONT_PIC(PILOSWINE, gMonStillFrontPic_Piloswine),
|
||||
STILL_FRONT_PIC(CORSOLA, gMonStillFrontPic_Corsola),
|
||||
STILL_FRONT_PIC(REMORAID, gMonStillFrontPic_Remoraid),
|
||||
STILL_FRONT_PIC(OCTILLERY, gMonStillFrontPic_Octillery),
|
||||
STILL_FRONT_PIC(DELIBIRD, gMonStillFrontPic_Delibird),
|
||||
STILL_FRONT_PIC(MANTINE, gMonStillFrontPic_Mantine),
|
||||
STILL_FRONT_PIC(SKARMORY, gMonStillFrontPic_Skarmory),
|
||||
STILL_FRONT_PIC(HOUNDOUR, gMonStillFrontPic_Houndour),
|
||||
STILL_FRONT_PIC(HOUNDOOM, gMonStillFrontPic_Houndoom),
|
||||
STILL_FRONT_PIC(KINGDRA, gMonStillFrontPic_Kingdra),
|
||||
STILL_FRONT_PIC(PHANPY, gMonStillFrontPic_Phanpy),
|
||||
STILL_FRONT_PIC(DONPHAN, gMonStillFrontPic_Donphan),
|
||||
STILL_FRONT_PIC(PORYGON2, gMonStillFrontPic_Porygon2),
|
||||
STILL_FRONT_PIC(STANTLER, gMonStillFrontPic_Stantler),
|
||||
STILL_FRONT_PIC(SMEARGLE, gMonStillFrontPic_Smeargle),
|
||||
STILL_FRONT_PIC(TYROGUE, gMonStillFrontPic_Tyrogue),
|
||||
STILL_FRONT_PIC(HITMONTOP, gMonStillFrontPic_Hitmontop),
|
||||
STILL_FRONT_PIC(SMOOCHUM, gMonStillFrontPic_Smoochum),
|
||||
STILL_FRONT_PIC(ELEKID, gMonStillFrontPic_Elekid),
|
||||
STILL_FRONT_PIC(MAGBY, gMonStillFrontPic_Magby),
|
||||
STILL_FRONT_PIC(MILTANK, gMonStillFrontPic_Miltank),
|
||||
STILL_FRONT_PIC(BLISSEY, gMonStillFrontPic_Blissey),
|
||||
STILL_FRONT_PIC(RAIKOU, gMonStillFrontPic_Raikou),
|
||||
STILL_FRONT_PIC(ENTEI, gMonStillFrontPic_Entei),
|
||||
STILL_FRONT_PIC(SUICUNE, gMonStillFrontPic_Suicune),
|
||||
STILL_FRONT_PIC(LARVITAR, gMonStillFrontPic_Larvitar),
|
||||
STILL_FRONT_PIC(PUPITAR, gMonStillFrontPic_Pupitar),
|
||||
STILL_FRONT_PIC(TYRANITAR, gMonStillFrontPic_Tyranitar),
|
||||
STILL_FRONT_PIC(LUGIA, gMonStillFrontPic_Lugia),
|
||||
STILL_FRONT_PIC(HO_OH, gMonStillFrontPic_HoOh),
|
||||
STILL_FRONT_PIC(CELEBI, gMonStillFrontPic_Celebi),
|
||||
// Empty slots
|
||||
gMonStillFrontPic_DoubleQuestionMark, 0x800, 252,
|
||||
gMonStillFrontPic_DoubleQuestionMark, 0x800, 253,
|
||||
gMonStillFrontPic_DoubleQuestionMark, 0x800, 254,
|
||||
gMonStillFrontPic_DoubleQuestionMark, 0x800, 255,
|
||||
gMonStillFrontPic_DoubleQuestionMark, 0x800, 256,
|
||||
gMonStillFrontPic_DoubleQuestionMark, 0x800, 257,
|
||||
gMonStillFrontPic_DoubleQuestionMark, 0x800, 258,
|
||||
gMonStillFrontPic_DoubleQuestionMark, 0x800, 259,
|
||||
gMonStillFrontPic_DoubleQuestionMark, 0x800, 260,
|
||||
gMonStillFrontPic_DoubleQuestionMark, 0x800, 261,
|
||||
gMonStillFrontPic_DoubleQuestionMark, 0x800, 262,
|
||||
gMonStillFrontPic_DoubleQuestionMark, 0x800, 263,
|
||||
gMonStillFrontPic_DoubleQuestionMark, 0x800, 264,
|
||||
gMonStillFrontPic_DoubleQuestionMark, 0x800, 265,
|
||||
gMonStillFrontPic_DoubleQuestionMark, 0x800, 266,
|
||||
gMonStillFrontPic_DoubleQuestionMark, 0x800, 267,
|
||||
gMonStillFrontPic_DoubleQuestionMark, 0x800, 268,
|
||||
gMonStillFrontPic_DoubleQuestionMark, 0x800, 269,
|
||||
gMonStillFrontPic_DoubleQuestionMark, 0x800, 270,
|
||||
gMonStillFrontPic_DoubleQuestionMark, 0x800, 271,
|
||||
gMonStillFrontPic_DoubleQuestionMark, 0x800, 272,
|
||||
gMonStillFrontPic_DoubleQuestionMark, 0x800, 273,
|
||||
gMonStillFrontPic_DoubleQuestionMark, 0x800, 274,
|
||||
gMonStillFrontPic_DoubleQuestionMark, 0x800, 275,
|
||||
gMonStillFrontPic_DoubleQuestionMark, 0x800, 276,
|
||||
STILL_FRONT_PIC(OLD_UNOWN_B, gMonStillFrontPic_DoubleQuestionMark),
|
||||
STILL_FRONT_PIC(OLD_UNOWN_C, gMonStillFrontPic_DoubleQuestionMark),
|
||||
STILL_FRONT_PIC(OLD_UNOWN_D, gMonStillFrontPic_DoubleQuestionMark),
|
||||
STILL_FRONT_PIC(OLD_UNOWN_E, gMonStillFrontPic_DoubleQuestionMark),
|
||||
STILL_FRONT_PIC(OLD_UNOWN_F, gMonStillFrontPic_DoubleQuestionMark),
|
||||
STILL_FRONT_PIC(OLD_UNOWN_G, gMonStillFrontPic_DoubleQuestionMark),
|
||||
STILL_FRONT_PIC(OLD_UNOWN_H, gMonStillFrontPic_DoubleQuestionMark),
|
||||
STILL_FRONT_PIC(OLD_UNOWN_I, gMonStillFrontPic_DoubleQuestionMark),
|
||||
STILL_FRONT_PIC(OLD_UNOWN_J, gMonStillFrontPic_DoubleQuestionMark),
|
||||
STILL_FRONT_PIC(OLD_UNOWN_K, gMonStillFrontPic_DoubleQuestionMark),
|
||||
STILL_FRONT_PIC(OLD_UNOWN_L, gMonStillFrontPic_DoubleQuestionMark),
|
||||
STILL_FRONT_PIC(OLD_UNOWN_M, gMonStillFrontPic_DoubleQuestionMark),
|
||||
STILL_FRONT_PIC(OLD_UNOWN_N, gMonStillFrontPic_DoubleQuestionMark),
|
||||
STILL_FRONT_PIC(OLD_UNOWN_O, gMonStillFrontPic_DoubleQuestionMark),
|
||||
STILL_FRONT_PIC(OLD_UNOWN_P, gMonStillFrontPic_DoubleQuestionMark),
|
||||
STILL_FRONT_PIC(OLD_UNOWN_Q, gMonStillFrontPic_DoubleQuestionMark),
|
||||
STILL_FRONT_PIC(OLD_UNOWN_R, gMonStillFrontPic_DoubleQuestionMark),
|
||||
STILL_FRONT_PIC(OLD_UNOWN_S, gMonStillFrontPic_DoubleQuestionMark),
|
||||
STILL_FRONT_PIC(OLD_UNOWN_T, gMonStillFrontPic_DoubleQuestionMark),
|
||||
STILL_FRONT_PIC(OLD_UNOWN_U, gMonStillFrontPic_DoubleQuestionMark),
|
||||
STILL_FRONT_PIC(OLD_UNOWN_V, gMonStillFrontPic_DoubleQuestionMark),
|
||||
STILL_FRONT_PIC(OLD_UNOWN_W, gMonStillFrontPic_DoubleQuestionMark),
|
||||
STILL_FRONT_PIC(OLD_UNOWN_X, gMonStillFrontPic_DoubleQuestionMark),
|
||||
STILL_FRONT_PIC(OLD_UNOWN_Y, gMonStillFrontPic_DoubleQuestionMark),
|
||||
STILL_FRONT_PIC(OLD_UNOWN_Z, gMonStillFrontPic_DoubleQuestionMark),
|
||||
// Gen III
|
||||
gMonStillFrontPic_Treecko, 0x800, 277,
|
||||
gMonStillFrontPic_Grovyle, 0x800, 278,
|
||||
gMonStillFrontPic_Sceptile, 0x800, 279,
|
||||
gMonStillFrontPic_Torchic, 0x800, 280,
|
||||
gMonStillFrontPic_Combusken, 0x800, 281,
|
||||
gMonStillFrontPic_Blaziken, 0x800, 282,
|
||||
gMonStillFrontPic_Mudkip, 0x800, 283,
|
||||
gMonStillFrontPic_Marshtomp, 0x800, 284,
|
||||
gMonStillFrontPic_Swampert, 0x800, 285,
|
||||
gMonStillFrontPic_Poochyena, 0x800, 286,
|
||||
gMonStillFrontPic_Mightyena, 0x800, 287,
|
||||
gMonStillFrontPic_Zigzagoon, 0x800, 288,
|
||||
gMonStillFrontPic_Linoone, 0x800, 289,
|
||||
gMonStillFrontPic_Wurmple, 0x800, 290,
|
||||
gMonStillFrontPic_Silcoon, 0x800, 291,
|
||||
gMonStillFrontPic_Beautifly, 0x800, 292,
|
||||
gMonStillFrontPic_Cascoon, 0x800, 293,
|
||||
gMonStillFrontPic_Dustox, 0x800, 294,
|
||||
gMonStillFrontPic_Lotad, 0x800, 295,
|
||||
gMonStillFrontPic_Lombre, 0x800, 296,
|
||||
gMonStillFrontPic_Ludicolo, 0x800, 297,
|
||||
gMonStillFrontPic_Seedot, 0x800, 298,
|
||||
gMonStillFrontPic_Nuzleaf, 0x800, 299,
|
||||
gMonStillFrontPic_Shiftry, 0x800, 300,
|
||||
gMonStillFrontPic_Nincada, 0x800, 301,
|
||||
gMonStillFrontPic_Ninjask, 0x800, 302,
|
||||
gMonStillFrontPic_Shedinja, 0x800, 303,
|
||||
gMonStillFrontPic_Taillow, 0x800, 304,
|
||||
gMonStillFrontPic_Swellow, 0x800, 305,
|
||||
gMonStillFrontPic_Shroomish, 0x800, 306,
|
||||
gMonStillFrontPic_Breloom, 0x800, 307,
|
||||
gMonStillFrontPic_Spinda, 0x800, 308,
|
||||
gMonStillFrontPic_Wingull, 0x800, 309,
|
||||
gMonStillFrontPic_Pelipper, 0x800, 310,
|
||||
gMonStillFrontPic_Surskit, 0x800, 311,
|
||||
gMonStillFrontPic_Masquerain, 0x800, 312,
|
||||
gMonStillFrontPic_Wailmer, 0x800, 313,
|
||||
gMonStillFrontPic_Wailord, 0x800, 314,
|
||||
gMonStillFrontPic_Skitty, 0x800, 315,
|
||||
gMonStillFrontPic_Delcatty, 0x800, 316,
|
||||
gMonStillFrontPic_Kecleon, 0x800, 317,
|
||||
gMonStillFrontPic_Baltoy, 0x800, 318,
|
||||
gMonStillFrontPic_Claydol, 0x800, 319,
|
||||
gMonStillFrontPic_Nosepass, 0x800, 320,
|
||||
gMonStillFrontPic_Torkoal, 0x800, 321,
|
||||
gMonStillFrontPic_Sableye, 0x800, 322,
|
||||
gMonStillFrontPic_Barboach, 0x800, 323,
|
||||
gMonStillFrontPic_Whiscash, 0x800, 324,
|
||||
gMonStillFrontPic_Luvdisc, 0x800, 325,
|
||||
gMonStillFrontPic_Corphish, 0x800, 326,
|
||||
gMonStillFrontPic_Crawdaunt, 0x800, 327,
|
||||
gMonStillFrontPic_Feebas, 0x800, 328,
|
||||
gMonStillFrontPic_Milotic, 0x800, 329,
|
||||
gMonStillFrontPic_Carvanha, 0x800, 330,
|
||||
gMonStillFrontPic_Sharpedo, 0x800, 331,
|
||||
gMonStillFrontPic_Trapinch, 0x800, 332,
|
||||
gMonStillFrontPic_Vibrava, 0x800, 333,
|
||||
gMonStillFrontPic_Flygon, 0x800, 334,
|
||||
gMonStillFrontPic_Makuhita, 0x800, 335,
|
||||
gMonStillFrontPic_Hariyama, 0x800, 336,
|
||||
gMonStillFrontPic_Electrike, 0x800, 337,
|
||||
gMonStillFrontPic_Manectric, 0x800, 338,
|
||||
gMonStillFrontPic_Numel, 0x800, 339,
|
||||
gMonStillFrontPic_Camerupt, 0x800, 340,
|
||||
gMonStillFrontPic_Spheal, 0x800, 341,
|
||||
gMonStillFrontPic_Sealeo, 0x800, 342,
|
||||
gMonStillFrontPic_Walrein, 0x800, 343,
|
||||
gMonStillFrontPic_Cacnea, 0x800, 344,
|
||||
gMonStillFrontPic_Cacturne, 0x800, 345,
|
||||
gMonStillFrontPic_Snorunt, 0x800, 346,
|
||||
gMonStillFrontPic_Glalie, 0x800, 347,
|
||||
gMonStillFrontPic_Lunatone, 0x800, 348,
|
||||
gMonStillFrontPic_Solrock, 0x800, 349,
|
||||
gMonStillFrontPic_Azurill, 0x800, 350,
|
||||
gMonStillFrontPic_Spoink, 0x800, 351,
|
||||
gMonStillFrontPic_Grumpig, 0x800, 352,
|
||||
gMonStillFrontPic_Plusle, 0x800, 353,
|
||||
gMonStillFrontPic_Minun, 0x800, 354,
|
||||
gMonStillFrontPic_Mawile, 0x800, 355,
|
||||
gMonStillFrontPic_Meditite, 0x800, 356,
|
||||
gMonStillFrontPic_Medicham, 0x800, 357,
|
||||
gMonStillFrontPic_Swablu, 0x800, 358,
|
||||
gMonStillFrontPic_Altaria, 0x800, 359,
|
||||
gMonStillFrontPic_Wynaut, 0x800, 360,
|
||||
gMonStillFrontPic_Duskull, 0x800, 361,
|
||||
gMonStillFrontPic_Dusclops, 0x800, 362,
|
||||
gMonStillFrontPic_Roselia, 0x800, 363,
|
||||
gMonStillFrontPic_Slakoth, 0x800, 364,
|
||||
gMonStillFrontPic_Vigoroth, 0x800, 365,
|
||||
gMonStillFrontPic_Slaking, 0x800, 366,
|
||||
gMonStillFrontPic_Gulpin, 0x800, 367,
|
||||
gMonStillFrontPic_Swalot, 0x800, 368,
|
||||
gMonStillFrontPic_Tropius, 0x800, 369,
|
||||
gMonStillFrontPic_Whismur, 0x800, 370,
|
||||
gMonStillFrontPic_Loudred, 0x800, 371,
|
||||
gMonStillFrontPic_Exploud, 0x800, 372,
|
||||
gMonStillFrontPic_Clamperl, 0x800, 373,
|
||||
gMonStillFrontPic_Huntail, 0x800, 374,
|
||||
gMonStillFrontPic_Gorebyss, 0x800, 375,
|
||||
gMonStillFrontPic_Absol, 0x800, 376,
|
||||
gMonStillFrontPic_Shuppet, 0x800, 377,
|
||||
gMonStillFrontPic_Banette, 0x800, 378,
|
||||
gMonStillFrontPic_Seviper, 0x800, 379,
|
||||
gMonStillFrontPic_Zangoose, 0x800, 380,
|
||||
gMonStillFrontPic_Relicanth, 0x800, 381,
|
||||
gMonStillFrontPic_Aron, 0x800, 382,
|
||||
gMonStillFrontPic_Lairon, 0x800, 383,
|
||||
gMonStillFrontPic_Aggron, 0x800, 384,
|
||||
gMonStillFrontPic_Castform, 0x800, 385,
|
||||
gMonStillFrontPic_Volbeat, 0x800, 386,
|
||||
gMonStillFrontPic_Illumise, 0x800, 387,
|
||||
gMonStillFrontPic_Lileep, 0x800, 388,
|
||||
gMonStillFrontPic_Cradily, 0x800, 389,
|
||||
gMonStillFrontPic_Anorith, 0x800, 390,
|
||||
gMonStillFrontPic_Armaldo, 0x800, 391,
|
||||
gMonStillFrontPic_Ralts, 0x800, 392,
|
||||
gMonStillFrontPic_Kirlia, 0x800, 393,
|
||||
gMonStillFrontPic_Gardevoir, 0x800, 394,
|
||||
gMonStillFrontPic_Bagon, 0x800, 395,
|
||||
gMonStillFrontPic_Shelgon, 0x800, 396,
|
||||
gMonStillFrontPic_Salamence, 0x800, 397,
|
||||
gMonStillFrontPic_Beldum, 0x800, 398,
|
||||
gMonStillFrontPic_Metang, 0x800, 399,
|
||||
gMonStillFrontPic_Metagross, 0x800, 400,
|
||||
gMonStillFrontPic_Regirock, 0x800, 401,
|
||||
gMonStillFrontPic_Regice, 0x800, 402,
|
||||
gMonStillFrontPic_Registeel, 0x800, 403,
|
||||
gMonStillFrontPic_Kyogre, 0x800, 404,
|
||||
gMonStillFrontPic_Groudon, 0x800, 405,
|
||||
gMonStillFrontPic_Rayquaza, 0x800, 406,
|
||||
gMonStillFrontPic_Latias, 0x800, 407,
|
||||
gMonStillFrontPic_Latios, 0x800, 408,
|
||||
gMonStillFrontPic_Jirachi, 0x800, 409,
|
||||
gMonStillFrontPic_Deoxys, 0x800, 410,
|
||||
gMonStillFrontPic_Chimecho, 0x800, 411,
|
||||
gMonStillFrontPic_Egg, 0x800, 412,
|
||||
gMonStillFrontPic_UnownB, 0x800, 413,
|
||||
gMonStillFrontPic_UnownC, 0x800, 414,
|
||||
gMonStillFrontPic_UnownD, 0x800, 415,
|
||||
gMonStillFrontPic_UnownE, 0x800, 416,
|
||||
gMonStillFrontPic_UnownF, 0x800, 417,
|
||||
gMonStillFrontPic_UnownG, 0x800, 418,
|
||||
gMonStillFrontPic_UnownH, 0x800, 419,
|
||||
gMonStillFrontPic_UnownI, 0x800, 420,
|
||||
gMonStillFrontPic_UnownJ, 0x800, 421,
|
||||
gMonStillFrontPic_UnownK, 0x800, 422,
|
||||
gMonStillFrontPic_UnownL, 0x800, 423,
|
||||
gMonStillFrontPic_UnownM, 0x800, 424,
|
||||
gMonStillFrontPic_UnownN, 0x800, 425,
|
||||
gMonStillFrontPic_UnownO, 0x800, 426,
|
||||
gMonStillFrontPic_UnownP, 0x800, 427,
|
||||
gMonStillFrontPic_UnownQ, 0x800, 428,
|
||||
gMonStillFrontPic_UnownR, 0x800, 429,
|
||||
gMonStillFrontPic_UnownS, 0x800, 430,
|
||||
gMonStillFrontPic_UnownT, 0x800, 431,
|
||||
gMonStillFrontPic_UnownU, 0x800, 432,
|
||||
gMonStillFrontPic_UnownV, 0x800, 433,
|
||||
gMonStillFrontPic_UnownW, 0x800, 434,
|
||||
gMonStillFrontPic_UnownX, 0x800, 435,
|
||||
gMonStillFrontPic_UnownY, 0x800, 436,
|
||||
gMonStillFrontPic_UnownZ, 0x800, 437,
|
||||
gMonStillFrontPic_UnownExclamationMark, 0x800, 438,
|
||||
gMonStillFrontPic_UnownQuestionMark, 0x800, 439,
|
||||
STILL_FRONT_PIC(TREECKO, gMonStillFrontPic_Treecko),
|
||||
STILL_FRONT_PIC(GROVYLE, gMonStillFrontPic_Grovyle),
|
||||
STILL_FRONT_PIC(SCEPTILE, gMonStillFrontPic_Sceptile),
|
||||
STILL_FRONT_PIC(TORCHIC, gMonStillFrontPic_Torchic),
|
||||
STILL_FRONT_PIC(COMBUSKEN, gMonStillFrontPic_Combusken),
|
||||
STILL_FRONT_PIC(BLAZIKEN, gMonStillFrontPic_Blaziken),
|
||||
STILL_FRONT_PIC(MUDKIP, gMonStillFrontPic_Mudkip),
|
||||
STILL_FRONT_PIC(MARSHTOMP, gMonStillFrontPic_Marshtomp),
|
||||
STILL_FRONT_PIC(SWAMPERT, gMonStillFrontPic_Swampert),
|
||||
STILL_FRONT_PIC(POOCHYENA, gMonStillFrontPic_Poochyena),
|
||||
STILL_FRONT_PIC(MIGHTYENA, gMonStillFrontPic_Mightyena),
|
||||
STILL_FRONT_PIC(ZIGZAGOON, gMonStillFrontPic_Zigzagoon),
|
||||
STILL_FRONT_PIC(LINOONE, gMonStillFrontPic_Linoone),
|
||||
STILL_FRONT_PIC(WURMPLE, gMonStillFrontPic_Wurmple),
|
||||
STILL_FRONT_PIC(SILCOON, gMonStillFrontPic_Silcoon),
|
||||
STILL_FRONT_PIC(BEAUTIFLY, gMonStillFrontPic_Beautifly),
|
||||
STILL_FRONT_PIC(CASCOON, gMonStillFrontPic_Cascoon),
|
||||
STILL_FRONT_PIC(DUSTOX, gMonStillFrontPic_Dustox),
|
||||
STILL_FRONT_PIC(LOTAD, gMonStillFrontPic_Lotad),
|
||||
STILL_FRONT_PIC(LOMBRE, gMonStillFrontPic_Lombre),
|
||||
STILL_FRONT_PIC(LUDICOLO, gMonStillFrontPic_Ludicolo),
|
||||
STILL_FRONT_PIC(SEEDOT, gMonStillFrontPic_Seedot),
|
||||
STILL_FRONT_PIC(NUZLEAF, gMonStillFrontPic_Nuzleaf),
|
||||
STILL_FRONT_PIC(SHIFTRY, gMonStillFrontPic_Shiftry),
|
||||
STILL_FRONT_PIC(NINCADA, gMonStillFrontPic_Nincada),
|
||||
STILL_FRONT_PIC(NINJASK, gMonStillFrontPic_Ninjask),
|
||||
STILL_FRONT_PIC(SHEDINJA, gMonStillFrontPic_Shedinja),
|
||||
STILL_FRONT_PIC(TAILLOW, gMonStillFrontPic_Taillow),
|
||||
STILL_FRONT_PIC(SWELLOW, gMonStillFrontPic_Swellow),
|
||||
STILL_FRONT_PIC(SHROOMISH, gMonStillFrontPic_Shroomish),
|
||||
STILL_FRONT_PIC(BRELOOM, gMonStillFrontPic_Breloom),
|
||||
STILL_FRONT_PIC(SPINDA, gMonStillFrontPic_Spinda),
|
||||
STILL_FRONT_PIC(WINGULL, gMonStillFrontPic_Wingull),
|
||||
STILL_FRONT_PIC(PELIPPER, gMonStillFrontPic_Pelipper),
|
||||
STILL_FRONT_PIC(SURSKIT, gMonStillFrontPic_Surskit),
|
||||
STILL_FRONT_PIC(MASQUERAIN, gMonStillFrontPic_Masquerain),
|
||||
STILL_FRONT_PIC(WAILMER, gMonStillFrontPic_Wailmer),
|
||||
STILL_FRONT_PIC(WAILORD, gMonStillFrontPic_Wailord),
|
||||
STILL_FRONT_PIC(SKITTY, gMonStillFrontPic_Skitty),
|
||||
STILL_FRONT_PIC(DELCATTY, gMonStillFrontPic_Delcatty),
|
||||
STILL_FRONT_PIC(KECLEON, gMonStillFrontPic_Kecleon),
|
||||
STILL_FRONT_PIC(BALTOY, gMonStillFrontPic_Baltoy),
|
||||
STILL_FRONT_PIC(CLAYDOL, gMonStillFrontPic_Claydol),
|
||||
STILL_FRONT_PIC(NOSEPASS, gMonStillFrontPic_Nosepass),
|
||||
STILL_FRONT_PIC(TORKOAL, gMonStillFrontPic_Torkoal),
|
||||
STILL_FRONT_PIC(SABLEYE, gMonStillFrontPic_Sableye),
|
||||
STILL_FRONT_PIC(BARBOACH, gMonStillFrontPic_Barboach),
|
||||
STILL_FRONT_PIC(WHISCASH, gMonStillFrontPic_Whiscash),
|
||||
STILL_FRONT_PIC(LUVDISC, gMonStillFrontPic_Luvdisc),
|
||||
STILL_FRONT_PIC(CORPHISH, gMonStillFrontPic_Corphish),
|
||||
STILL_FRONT_PIC(CRAWDAUNT, gMonStillFrontPic_Crawdaunt),
|
||||
STILL_FRONT_PIC(FEEBAS, gMonStillFrontPic_Feebas),
|
||||
STILL_FRONT_PIC(MILOTIC, gMonStillFrontPic_Milotic),
|
||||
STILL_FRONT_PIC(CARVANHA, gMonStillFrontPic_Carvanha),
|
||||
STILL_FRONT_PIC(SHARPEDO, gMonStillFrontPic_Sharpedo),
|
||||
STILL_FRONT_PIC(TRAPINCH, gMonStillFrontPic_Trapinch),
|
||||
STILL_FRONT_PIC(VIBRAVA, gMonStillFrontPic_Vibrava),
|
||||
STILL_FRONT_PIC(FLYGON, gMonStillFrontPic_Flygon),
|
||||
STILL_FRONT_PIC(MAKUHITA, gMonStillFrontPic_Makuhita),
|
||||
STILL_FRONT_PIC(HARIYAMA, gMonStillFrontPic_Hariyama),
|
||||
STILL_FRONT_PIC(ELECTRIKE, gMonStillFrontPic_Electrike),
|
||||
STILL_FRONT_PIC(MANECTRIC, gMonStillFrontPic_Manectric),
|
||||
STILL_FRONT_PIC(NUMEL, gMonStillFrontPic_Numel),
|
||||
STILL_FRONT_PIC(CAMERUPT, gMonStillFrontPic_Camerupt),
|
||||
STILL_FRONT_PIC(SPHEAL, gMonStillFrontPic_Spheal),
|
||||
STILL_FRONT_PIC(SEALEO, gMonStillFrontPic_Sealeo),
|
||||
STILL_FRONT_PIC(WALREIN, gMonStillFrontPic_Walrein),
|
||||
STILL_FRONT_PIC(CACNEA, gMonStillFrontPic_Cacnea),
|
||||
STILL_FRONT_PIC(CACTURNE, gMonStillFrontPic_Cacturne),
|
||||
STILL_FRONT_PIC(SNORUNT, gMonStillFrontPic_Snorunt),
|
||||
STILL_FRONT_PIC(GLALIE, gMonStillFrontPic_Glalie),
|
||||
STILL_FRONT_PIC(LUNATONE, gMonStillFrontPic_Lunatone),
|
||||
STILL_FRONT_PIC(SOLROCK, gMonStillFrontPic_Solrock),
|
||||
STILL_FRONT_PIC(AZURILL, gMonStillFrontPic_Azurill),
|
||||
STILL_FRONT_PIC(SPOINK, gMonStillFrontPic_Spoink),
|
||||
STILL_FRONT_PIC(GRUMPIG, gMonStillFrontPic_Grumpig),
|
||||
STILL_FRONT_PIC(PLUSLE, gMonStillFrontPic_Plusle),
|
||||
STILL_FRONT_PIC(MINUN, gMonStillFrontPic_Minun),
|
||||
STILL_FRONT_PIC(MAWILE, gMonStillFrontPic_Mawile),
|
||||
STILL_FRONT_PIC(MEDITITE, gMonStillFrontPic_Meditite),
|
||||
STILL_FRONT_PIC(MEDICHAM, gMonStillFrontPic_Medicham),
|
||||
STILL_FRONT_PIC(SWABLU, gMonStillFrontPic_Swablu),
|
||||
STILL_FRONT_PIC(ALTARIA, gMonStillFrontPic_Altaria),
|
||||
STILL_FRONT_PIC(WYNAUT, gMonStillFrontPic_Wynaut),
|
||||
STILL_FRONT_PIC(DUSKULL, gMonStillFrontPic_Duskull),
|
||||
STILL_FRONT_PIC(DUSCLOPS, gMonStillFrontPic_Dusclops),
|
||||
STILL_FRONT_PIC(ROSELIA, gMonStillFrontPic_Roselia),
|
||||
STILL_FRONT_PIC(SLAKOTH, gMonStillFrontPic_Slakoth),
|
||||
STILL_FRONT_PIC(VIGOROTH, gMonStillFrontPic_Vigoroth),
|
||||
STILL_FRONT_PIC(SLAKING, gMonStillFrontPic_Slaking),
|
||||
STILL_FRONT_PIC(GULPIN, gMonStillFrontPic_Gulpin),
|
||||
STILL_FRONT_PIC(SWALOT, gMonStillFrontPic_Swalot),
|
||||
STILL_FRONT_PIC(TROPIUS, gMonStillFrontPic_Tropius),
|
||||
STILL_FRONT_PIC(WHISMUR, gMonStillFrontPic_Whismur),
|
||||
STILL_FRONT_PIC(LOUDRED, gMonStillFrontPic_Loudred),
|
||||
STILL_FRONT_PIC(EXPLOUD, gMonStillFrontPic_Exploud),
|
||||
STILL_FRONT_PIC(CLAMPERL, gMonStillFrontPic_Clamperl),
|
||||
STILL_FRONT_PIC(HUNTAIL, gMonStillFrontPic_Huntail),
|
||||
STILL_FRONT_PIC(GOREBYSS, gMonStillFrontPic_Gorebyss),
|
||||
STILL_FRONT_PIC(ABSOL, gMonStillFrontPic_Absol),
|
||||
STILL_FRONT_PIC(SHUPPET, gMonStillFrontPic_Shuppet),
|
||||
STILL_FRONT_PIC(BANETTE, gMonStillFrontPic_Banette),
|
||||
STILL_FRONT_PIC(SEVIPER, gMonStillFrontPic_Seviper),
|
||||
STILL_FRONT_PIC(ZANGOOSE, gMonStillFrontPic_Zangoose),
|
||||
STILL_FRONT_PIC(RELICANTH, gMonStillFrontPic_Relicanth),
|
||||
STILL_FRONT_PIC(ARON, gMonStillFrontPic_Aron),
|
||||
STILL_FRONT_PIC(LAIRON, gMonStillFrontPic_Lairon),
|
||||
STILL_FRONT_PIC(AGGRON, gMonStillFrontPic_Aggron),
|
||||
STILL_FRONT_PIC(CASTFORM, gMonStillFrontPic_Castform),
|
||||
STILL_FRONT_PIC(VOLBEAT, gMonStillFrontPic_Volbeat),
|
||||
STILL_FRONT_PIC(ILLUMISE, gMonStillFrontPic_Illumise),
|
||||
STILL_FRONT_PIC(LILEEP, gMonStillFrontPic_Lileep),
|
||||
STILL_FRONT_PIC(CRADILY, gMonStillFrontPic_Cradily),
|
||||
STILL_FRONT_PIC(ANORITH, gMonStillFrontPic_Anorith),
|
||||
STILL_FRONT_PIC(ARMALDO, gMonStillFrontPic_Armaldo),
|
||||
STILL_FRONT_PIC(RALTS, gMonStillFrontPic_Ralts),
|
||||
STILL_FRONT_PIC(KIRLIA, gMonStillFrontPic_Kirlia),
|
||||
STILL_FRONT_PIC(GARDEVOIR, gMonStillFrontPic_Gardevoir),
|
||||
STILL_FRONT_PIC(BAGON, gMonStillFrontPic_Bagon),
|
||||
STILL_FRONT_PIC(SHELGON, gMonStillFrontPic_Shelgon),
|
||||
STILL_FRONT_PIC(SALAMENCE, gMonStillFrontPic_Salamence),
|
||||
STILL_FRONT_PIC(BELDUM, gMonStillFrontPic_Beldum),
|
||||
STILL_FRONT_PIC(METANG, gMonStillFrontPic_Metang),
|
||||
STILL_FRONT_PIC(METAGROSS, gMonStillFrontPic_Metagross),
|
||||
STILL_FRONT_PIC(REGIROCK, gMonStillFrontPic_Regirock),
|
||||
STILL_FRONT_PIC(REGICE, gMonStillFrontPic_Regice),
|
||||
STILL_FRONT_PIC(REGISTEEL, gMonStillFrontPic_Registeel),
|
||||
STILL_FRONT_PIC(KYOGRE, gMonStillFrontPic_Kyogre),
|
||||
STILL_FRONT_PIC(GROUDON, gMonStillFrontPic_Groudon),
|
||||
STILL_FRONT_PIC(RAYQUAZA, gMonStillFrontPic_Rayquaza),
|
||||
STILL_FRONT_PIC(LATIAS, gMonStillFrontPic_Latias),
|
||||
STILL_FRONT_PIC(LATIOS, gMonStillFrontPic_Latios),
|
||||
STILL_FRONT_PIC(JIRACHI, gMonStillFrontPic_Jirachi),
|
||||
STILL_FRONT_PIC(DEOXYS, gMonStillFrontPic_Deoxys),
|
||||
STILL_FRONT_PIC(CHIMECHO, gMonStillFrontPic_Chimecho),
|
||||
STILL_FRONT_PIC(EGG, gMonStillFrontPic_Egg),
|
||||
STILL_FRONT_PIC(UNOWN_B, gMonStillFrontPic_UnownB),
|
||||
STILL_FRONT_PIC(UNOWN_C, gMonStillFrontPic_UnownC),
|
||||
STILL_FRONT_PIC(UNOWN_D, gMonStillFrontPic_UnownD),
|
||||
STILL_FRONT_PIC(UNOWN_E, gMonStillFrontPic_UnownE),
|
||||
STILL_FRONT_PIC(UNOWN_F, gMonStillFrontPic_UnownF),
|
||||
STILL_FRONT_PIC(UNOWN_G, gMonStillFrontPic_UnownG),
|
||||
STILL_FRONT_PIC(UNOWN_H, gMonStillFrontPic_UnownH),
|
||||
STILL_FRONT_PIC(UNOWN_I, gMonStillFrontPic_UnownI),
|
||||
STILL_FRONT_PIC(UNOWN_J, gMonStillFrontPic_UnownJ),
|
||||
STILL_FRONT_PIC(UNOWN_K, gMonStillFrontPic_UnownK),
|
||||
STILL_FRONT_PIC(UNOWN_L, gMonStillFrontPic_UnownL),
|
||||
STILL_FRONT_PIC(UNOWN_M, gMonStillFrontPic_UnownM),
|
||||
STILL_FRONT_PIC(UNOWN_N, gMonStillFrontPic_UnownN),
|
||||
STILL_FRONT_PIC(UNOWN_O, gMonStillFrontPic_UnownO),
|
||||
STILL_FRONT_PIC(UNOWN_P, gMonStillFrontPic_UnownP),
|
||||
STILL_FRONT_PIC(UNOWN_Q, gMonStillFrontPic_UnownQ),
|
||||
STILL_FRONT_PIC(UNOWN_R, gMonStillFrontPic_UnownR),
|
||||
STILL_FRONT_PIC(UNOWN_S, gMonStillFrontPic_UnownS),
|
||||
STILL_FRONT_PIC(UNOWN_T, gMonStillFrontPic_UnownT),
|
||||
STILL_FRONT_PIC(UNOWN_U, gMonStillFrontPic_UnownU),
|
||||
STILL_FRONT_PIC(UNOWN_V, gMonStillFrontPic_UnownV),
|
||||
STILL_FRONT_PIC(UNOWN_W, gMonStillFrontPic_UnownW),
|
||||
STILL_FRONT_PIC(UNOWN_X, gMonStillFrontPic_UnownX),
|
||||
STILL_FRONT_PIC(UNOWN_Y, gMonStillFrontPic_UnownY),
|
||||
STILL_FRONT_PIC(UNOWN_Z, gMonStillFrontPic_UnownZ),
|
||||
STILL_FRONT_PIC(UNOWN_EMARK, gMonStillFrontPic_UnownExclamationMark),
|
||||
STILL_FRONT_PIC(UNOWN_QMARK, gMonStillFrontPic_UnownQuestionMark),
|
||||
};
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -16,7 +16,7 @@
|
||||
#include "field_weather.h"
|
||||
#include "field_player_avatar.h"
|
||||
#include "field_camera.h"
|
||||
#include "field_screen.h"
|
||||
#include "field_screen_effect.h"
|
||||
#include "event_object_movement.h"
|
||||
#include "list_menu.h"
|
||||
#include "menu_helpers.h"
|
||||
|
||||
+7
-7
@@ -208,13 +208,13 @@ void sub_8113064(struct Sprite *sprite)
|
||||
sprite->data[3] = gBattleAnimArgs[4];
|
||||
sprite->data[5] = gBattleAnimArgs[5];
|
||||
sprite->invisible = 1;
|
||||
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
sprite->callback = sub_80A66DC;
|
||||
}
|
||||
|
||||
static void sub_8113100(struct Sprite *sprite)
|
||||
{
|
||||
sub_80A6838(sprite);
|
||||
SetSpriteCoordsToAnimAttackerCoords(sprite);
|
||||
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
|
||||
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
@@ -235,7 +235,7 @@ static void sub_8113100(struct Sprite *sprite)
|
||||
|
||||
sprite->data[0] = gBattleAnimArgs[4];
|
||||
sprite->callback = StartAnimLinearTranslation;
|
||||
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
}
|
||||
|
||||
void sub_81131B4(struct Sprite *sprite)
|
||||
@@ -251,10 +251,10 @@ 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 = sub_80A67D8;
|
||||
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
|
||||
sprite->callback = RunStoredCallbackWhenAnimEnds;
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
}
|
||||
|
||||
void sub_8113224(struct Sprite *sprite)
|
||||
@@ -329,7 +329,7 @@ void sub_81133E8(u8 taskId)
|
||||
struct Task *task = &gTasks[taskId];
|
||||
u16 i;
|
||||
u8 r1;
|
||||
if (sub_80A8364(gBattleAnimAttacker) == 1)
|
||||
if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1)
|
||||
{
|
||||
sp.dmaDest = ®_BG1HOFS;
|
||||
task->data[2] = gBattle_BG1_X;
|
||||
|
||||
@@ -51,6 +51,9 @@ EWRAM_DATA struct
|
||||
u16 ecWordBuffer[9];
|
||||
} *gUnknown_0203A118 = NULL;
|
||||
|
||||
EWRAM_DATA void *gUnknown_0203A11C = 0;
|
||||
EWRAM_DATA void *gUnknown_0203A120 = 0;
|
||||
|
||||
// Static ROM declarations
|
||||
|
||||
static void sub_811A2C0(u8);
|
||||
|
||||
-2093
File diff suppressed because it is too large
Load Diff
-1197
File diff suppressed because it is too large
Load Diff
+2
-4
@@ -30,8 +30,8 @@
|
||||
#include "field_weather.h"
|
||||
#include "international_string_util.h"
|
||||
#include "naming_screen.h"
|
||||
#include "field_screen.h"
|
||||
#include "pokemon_storage_system.h"
|
||||
#include "field_screen_effect.h"
|
||||
#include "battle.h" // to get rid of later
|
||||
|
||||
struct EggHatchData
|
||||
@@ -61,8 +61,6 @@ extern const u32 gUnknown_08331F60[]; // tilemap gameboy circle
|
||||
extern const u8 gText_HatchedFromEgg[];
|
||||
extern const u8 gText_NickHatchPrompt[];
|
||||
|
||||
extern void play_some_sound(void);
|
||||
|
||||
static void Task_EggHatch(u8 taskID);
|
||||
static void CB2_EggHatch_0(void);
|
||||
static void CB2_EggHatch_1(void);
|
||||
@@ -580,7 +578,7 @@ static void Task_EggHatchPlayBGM(u8 taskID)
|
||||
if (gTasks[taskID].data[0] == 0)
|
||||
{
|
||||
StopMapMusic();
|
||||
play_some_sound();
|
||||
PlayRainSoundEffect();
|
||||
}
|
||||
if (gTasks[taskID].data[0] == 1)
|
||||
PlayBGM(MUS_ME_SHINKA);
|
||||
|
||||
+1073
-16
File diff suppressed because it is too large
Load Diff
+2
-1
@@ -1,5 +1,6 @@
|
||||
#include "global.h"
|
||||
#include "event_data.h"
|
||||
#include "pokedex.h"
|
||||
|
||||
#define TEMP_FLAGS_SIZE 0x4
|
||||
#define TEMP_UPPER_FLAGS_SIZE 0x8
|
||||
@@ -67,7 +68,7 @@ void EnableNationalPokedex(void)
|
||||
gSaveBlock2Ptr->pokedex.nationalMagic = 0xDA;
|
||||
*nationalDexVar = 0x302;
|
||||
FlagSet(FLAG_SYS_NATIONAL_DEX);
|
||||
gSaveBlock2Ptr->pokedex.unknown1 = 1;
|
||||
gSaveBlock2Ptr->pokedex.mode = DEX_MODE_NATIONAL;
|
||||
gSaveBlock2Ptr->pokedex.order = 0;
|
||||
sub_80BB358();
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -8,12 +8,11 @@
|
||||
#include "event_scripts.h"
|
||||
#include "fieldmap.h"
|
||||
#include "field_control_avatar.h"
|
||||
#include "field_fadetransition.h"
|
||||
#include "field_player_avatar.h"
|
||||
#include "field_poison.h"
|
||||
#include "field_screen.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"
|
||||
@@ -522,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;
|
||||
|
||||
+13
-13
@@ -6,7 +6,7 @@
|
||||
#include "field_effect.h"
|
||||
#include "field_effect_helpers.h"
|
||||
#include "field_player_avatar.h"
|
||||
#include "field_screen.h"
|
||||
#include "field_screen_effect.h"
|
||||
#include "field_weather.h"
|
||||
#include "fieldmap.h"
|
||||
#include "fldeff_groundshake.h"
|
||||
@@ -244,7 +244,7 @@ extern void pal_fill_for_maplights(void);
|
||||
extern void sub_80E1558(u8);
|
||||
extern void sub_80E1570(void);
|
||||
extern bool8 sub_80E1584(void);
|
||||
extern void sub_80AF0B4(void);
|
||||
extern void WarpFadeScreen(void);
|
||||
|
||||
// .rodata
|
||||
const u32 gNewGameBirchPic[] = INCBIN_U32("graphics/birch_speech/birch.4bpp");
|
||||
@@ -1593,8 +1593,8 @@ static void sub_80B7004(struct Task *task)
|
||||
|
||||
static void sub_80B7050(void)
|
||||
{
|
||||
music_something();
|
||||
sub_80AF0B4();
|
||||
TryFadeOutOldMapMusic();
|
||||
WarpFadeScreen();
|
||||
}
|
||||
|
||||
static void sub_80B7060(void)
|
||||
@@ -1943,8 +1943,8 @@ static bool8 sub_80B7704(struct Task *task, struct EventObject *eventObject, str
|
||||
|
||||
static bool8 sub_80B77F8(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
{
|
||||
music_something();
|
||||
sub_80AF0B4();
|
||||
TryFadeOutOldMapMusic();
|
||||
WarpFadeScreen();
|
||||
task->data[0]++;
|
||||
return FALSE;
|
||||
}
|
||||
@@ -2099,8 +2099,8 @@ static bool8 sub_80B7BCC(struct Task *task, struct EventObject *eventObject, str
|
||||
{
|
||||
if (!FieldEffectActiveListContains(FLDEFF_POP_OUT_OF_ASH))
|
||||
{
|
||||
music_something();
|
||||
sub_80AF0B4();
|
||||
TryFadeOutOldMapMusic();
|
||||
WarpFadeScreen();
|
||||
task->data[0]++;
|
||||
}
|
||||
return FALSE;
|
||||
@@ -2161,8 +2161,8 @@ static void EscapeRopeFieldEffect_Step1(struct Task *task)
|
||||
u8 spinDirections[5] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH};
|
||||
if (task->data[14] != 0 && (--task->data[14]) == 0)
|
||||
{
|
||||
music_something();
|
||||
sub_80AF0B4();
|
||||
TryFadeOutOldMapMusic();
|
||||
WarpFadeScreen();
|
||||
}
|
||||
eventObject = &gEventObjects[gPlayerAvatar.eventObjectId];
|
||||
if (!EventObjectIsMovementOverridden(eventObject) || EventObjectClearHeldMovementIfFinished(eventObject))
|
||||
@@ -2314,8 +2314,8 @@ static void TeleportFieldEffectTask3(struct Task *task)
|
||||
if (task->data[4] >= 0xa8)
|
||||
{
|
||||
task->data[0]++;
|
||||
music_something();
|
||||
sub_80AF0B4();
|
||||
TryFadeOutOldMapMusic();
|
||||
WarpFadeScreen();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3123,7 +3123,7 @@ static void sub_80B9474(struct Task *task)
|
||||
{
|
||||
if (sub_80B9508(task->data[1]))
|
||||
{
|
||||
sub_80AF0B4();
|
||||
WarpFadeScreen();
|
||||
task->data[0]++;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -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"
|
||||
@@ -136,7 +136,7 @@ s32 DoPoisonFieldEffect(void)
|
||||
}
|
||||
if (numFainted != 0 || numPoisoned != 0)
|
||||
{
|
||||
FldeffPoison_Start();
|
||||
FldEffPoison_Start();
|
||||
}
|
||||
if (numFainted != 0)
|
||||
{
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
|
||||
// Includes
|
||||
#include "global.h"
|
||||
|
||||
// Static type declarations
|
||||
|
||||
// Static RAM declarations
|
||||
IWRAM_DATA u8 *gUnknown_03000F50;
|
||||
IWRAM_DATA u32 filler_03000f54;
|
||||
|
||||
// Static ROM declarations
|
||||
|
||||
// .rodata
|
||||
|
||||
// .text
|
||||
File diff suppressed because it is too large
Load Diff
@@ -12,7 +12,7 @@
|
||||
#include "field_effect.h"
|
||||
#include "field_message_box.h"
|
||||
#include "field_player_avatar.h"
|
||||
#include "field_screen.h"
|
||||
#include "field_screen_effect.h"
|
||||
#include "field_specials.h"
|
||||
#include "field_weather.h"
|
||||
#include "international_string_util.h"
|
||||
@@ -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)
|
||||
|
||||
+1095
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -1,7 +1,7 @@
|
||||
#include "global.h"
|
||||
#include "bg.h"
|
||||
#include "fieldmap.h"
|
||||
#include "fldeff_80F9BCC.h"
|
||||
#include "fldeff_misc.h"
|
||||
#include "fldeff_cut.h"
|
||||
#include "fldeff_groundshake.h"
|
||||
#include "frontier_util.h"
|
||||
|
||||
+20
-20
@@ -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;
|
||||
}
|
||||
|
||||
@@ -828,7 +828,7 @@ static void sub_810D6A8(struct Sprite *sprite)
|
||||
sprite->data[4] = GetBattlerSpriteCoord(sprite->data[7], 3);
|
||||
|
||||
InitAnimLinearTranslation(sprite);
|
||||
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
sprite->callback = sub_80A6F98;
|
||||
}
|
||||
}
|
||||
@@ -839,7 +839,7 @@ void sub_810D714(struct Sprite *sprite)
|
||||
sprite->pos1.y = 120;
|
||||
|
||||
sprite->data[0] = gBattleAnimArgs[3];
|
||||
sub_80A8048(&sprite->data[4], &sprite->data[5], (void *)(sprite->pos1.y << 8));
|
||||
StorePointerInVars(&sprite->data[4], &sprite->data[5], (void *)(sprite->pos1.y << 8));
|
||||
|
||||
sprite->data[6] = gBattleAnimArgs[1];
|
||||
sprite->oam.tileNum += gBattleAnimArgs[2] * 4;
|
||||
@@ -853,9 +853,9 @@ static void sub_810D770(struct Sprite *sprite)
|
||||
|
||||
if (sprite->data[0] != 0)
|
||||
{
|
||||
var0 = sub_80A8050(sprite->data[4], sprite->data[5]);
|
||||
var0 = LoadPointerFromVars(sprite->data[4], sprite->data[5]);
|
||||
var0 -= sprite->data[6];
|
||||
sub_80A8048(&sprite->data[4], &sprite->data[5], var0);
|
||||
StorePointerInVars(&sprite->data[4], &sprite->data[5], var0);
|
||||
|
||||
var0 = (void *)(((intptr_t)var0) >> 8);
|
||||
sprite->pos1.y = (intptr_t)var0;
|
||||
@@ -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())
|
||||
{
|
||||
@@ -978,7 +978,7 @@ void sub_810DA10(struct Sprite *sprite)
|
||||
StartSpriteAnim(sprite, 1);
|
||||
}
|
||||
|
||||
sprite->callback = sub_80A67D8;
|
||||
sprite->callback = RunStoredCallbackWhenAnimEnds;
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
}
|
||||
|
||||
|
||||
+20
-20
@@ -466,26 +466,26 @@ static void sub_8108EC8(struct Sprite *sprite)
|
||||
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
|
||||
sprite->callback = sub_80A634C;
|
||||
sprite->callback = TranslateSpriteInGrowingCircleOverDuration;
|
||||
sprite->callback(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 = sub_80A656C;
|
||||
sprite->callback = AnimTranslateLinearSimple;
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
}
|
||||
|
||||
static void sub_8108F4C(struct Sprite *sprite)
|
||||
{
|
||||
sub_80A6838(sprite);
|
||||
SetSpriteCoordsToAnimAttackerCoords(sprite);
|
||||
|
||||
if (GetBattlerSide(gBattleAnimAttacker))
|
||||
{
|
||||
@@ -538,12 +538,12 @@ static void sub_8109028(struct Sprite *sprite)
|
||||
}
|
||||
|
||||
if (sprite->data[0] == sprite->data[1])
|
||||
move_anim_8074EE0(sprite);
|
||||
DestroySpriteAndMatrix(sprite);
|
||||
}
|
||||
|
||||
static void sub_8109064(struct Sprite *sprite)
|
||||
{
|
||||
sub_80A6838(sprite);
|
||||
SetSpriteCoordsToAnimAttackerCoords(sprite);
|
||||
|
||||
if (GetBattlerSide(gBattleAnimAttacker))
|
||||
{
|
||||
@@ -588,7 +588,7 @@ static void sub_81090D8(struct Sprite *sprite)
|
||||
}
|
||||
else
|
||||
{
|
||||
move_anim_8074EE0(sprite);
|
||||
DestroySpriteAndMatrix(sprite);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -726,12 +726,12 @@ static void AnimFireCross(struct Sprite *sprite)
|
||||
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
|
||||
sprite->callback = sub_80A653C; //TranslateSpriteOverDuration
|
||||
sprite->callback = TranslateSpriteOverDuration;
|
||||
}
|
||||
|
||||
static void sub_81093A4(struct Sprite *sprite)
|
||||
{
|
||||
InitAnimSpritePos(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
|
||||
sprite->data[1] = gBattleAnimArgs[2];
|
||||
sprite->data[0] = gBattleAnimArgs[3];
|
||||
@@ -779,7 +779,7 @@ void sub_8109460(u8 taskId) // initialize animation task for Move_ERUPTION?
|
||||
task->data[5] = GetBattlerSide(gBattleAnimAttacker);
|
||||
task->data[6] = 0;
|
||||
|
||||
sub_80A7270(task->data[15], 0);
|
||||
PrepareBattlerSpriteForRotScale(task->data[15], ST_OAM_OBJ_NORMAL);
|
||||
|
||||
task->func = sub_81094D0;
|
||||
}
|
||||
@@ -816,7 +816,7 @@ static void sub_81094D0(u8 taskId) // animate Move_ERUPTION?
|
||||
|
||||
if(!sub_80A80C8(task))
|
||||
{
|
||||
sub_80A7E6C(task->data[15]);
|
||||
SetBattlerSpriteYOffsetFromYScale(task->data[15]);
|
||||
gSprites[task->data[15]].pos2.x = 0;
|
||||
|
||||
task->data[1] = 0;
|
||||
@@ -879,7 +879,7 @@ static void sub_81094D0(u8 taskId) // animate Move_ERUPTION?
|
||||
if (!sub_80A80C8(task))
|
||||
{
|
||||
gSprites[task->data[15]].pos1.y = task->data[4];
|
||||
sub_80A7344(task->data[15]);
|
||||
ResetSpriteRotScale(task->data[15]);
|
||||
|
||||
task->data[2] = 0;
|
||||
task->data[0]++;
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -170,7 +170,7 @@ static bool8 sub_8137304(void)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 sub_8137360(u8 a1, u8 a2)
|
||||
bool8 GetMapPairFadeToType(u8 a1, u8 a2)
|
||||
{
|
||||
u8 i;
|
||||
u8 v0 = a1;
|
||||
@@ -187,7 +187,7 @@ bool8 sub_8137360(u8 a1, u8 a2)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 fade_type_for_given_maplight_pair(u8 a1, u8 a2)
|
||||
bool8 GetMapPairFadeFromType(u8 a1, u8 a2)
|
||||
{
|
||||
u8 i;
|
||||
u8 v0 = a1;
|
||||
|
||||
@@ -73,7 +73,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 +111,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
|
||||
|
||||
+1525
File diff suppressed because it is too large
Load Diff
@@ -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;
|
||||
}
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
#include "event_scripts.h"
|
||||
#include "field_effect.h"
|
||||
#include "field_player_avatar.h"
|
||||
#include "field_screen.h"
|
||||
#include "field_screen_effect.h"
|
||||
#include "field_weather.h"
|
||||
#include "palette.h"
|
||||
#include "party_menu.h"
|
||||
#include "rom6.h"
|
||||
@@ -40,7 +41,7 @@ bool8 FldEff_SweetScent(void)
|
||||
{
|
||||
u8 taskId;
|
||||
|
||||
sub_80AC3D0();
|
||||
SetWeatherScreenFadeOut();
|
||||
taskId = oei_task_add();
|
||||
gTasks[taskId].data[8] = (u32)StartSweetScentFieldEffect >> 16;
|
||||
gTasks[taskId].data[9] = (u32)StartSweetScentFieldEffect;
|
||||
|
||||
@@ -48,8 +48,6 @@ struct FrontierBrainMon
|
||||
u16 moves[4];
|
||||
};
|
||||
|
||||
extern const struct BattleFrontierTrainer gBattleFrontierTrainers[];
|
||||
|
||||
extern void sub_81B8558(void);
|
||||
|
||||
// This file's functions.
|
||||
|
||||
+1151
-10
File diff suppressed because it is too large
Load Diff
+3
-3
@@ -897,9 +897,9 @@ const u32 gBattleStatMask6_Pal[] = INCBIN_U32("graphics/battle_anims/masks/stat6
|
||||
const u32 gBattleStatMask7_Pal[] = INCBIN_U32("graphics/battle_anims/masks/stat7.gbapal.lz");
|
||||
const u32 gBattleStatMask8_Pal[] = INCBIN_U32("graphics/battle_anims/masks/stat8.gbapal.lz");
|
||||
|
||||
const u32 gUnknown_08C2DC68[] = INCBIN_U32("graphics/battle_anims/masks/cure_bubbles.4bpp.lz");
|
||||
const u32 gUnknown_08C2DDA4[] = INCBIN_U32("graphics/battle_anims/masks/cure_bubbles.gbapal.lz");
|
||||
const u32 gUnknown_08C2DDC4[] = INCBIN_U32("graphics/battle_anims/masks/cure_bubbles.bin.lz");
|
||||
const u8 gUnknown_08C2DC68[] = INCBIN_U8("graphics/battle_anims/masks/cure_bubbles.4bpp.lz");
|
||||
const u16 gUnknown_08C2DDA4[] = INCBIN_U16("graphics/battle_anims/masks/cure_bubbles.gbapal.lz");
|
||||
const u8 gUnknown_08C2DDC4[] = INCBIN_U8("graphics/battle_anims/masks/cure_bubbles.bin.lz");
|
||||
|
||||
const u32 gBattleAnimSpritePalette_245[] = INCBIN_U32("graphics/battle_anims/sprites/245.gbapal.lz");
|
||||
const u32 gBattleAnimSpriteSheet_245[] = INCBIN_U32("graphics/battle_anims/sprites/245.4bpp.lz");
|
||||
|
||||
+6
-6
@@ -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);
|
||||
@@ -221,7 +221,7 @@ void AnimDirtScatter(struct Sprite *sprite)
|
||||
sprite->data[2] = targetXPos + xOffset;
|
||||
sprite->data[4] = targetYPos + yOffset;
|
||||
sprite->callback = StartAnimLinearTranslation;
|
||||
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
}
|
||||
|
||||
// Moves a particle of dirt in the Mud Sport animation.
|
||||
@@ -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
|
||||
|
||||
+1
-1
@@ -497,7 +497,7 @@ static void Task_Hof_InitTeamSaveData(u8 taskId)
|
||||
|
||||
for (i = 0; i < HALL_OF_FAME_MAX_TEAMS; i++, lastSavedTeam++)
|
||||
{
|
||||
if (lastSavedTeam->mon[0].species == 0)
|
||||
if (lastSavedTeam->mon[0].species == SPECIES_NONE)
|
||||
break;
|
||||
}
|
||||
if (i >= HALL_OF_FAME_MAX_TEAMS)
|
||||
|
||||
+1
-1
@@ -543,7 +543,7 @@ bool8 RemoveBagItem(u16 itemId, u16 count)
|
||||
VarSet(VAR_0x40ED, itemId);
|
||||
}
|
||||
|
||||
var = sub_81ABB2C(pocket);
|
||||
var = GetItemListPosition(pocket);
|
||||
if (itemPocket->capacity > var
|
||||
&& itemPocket->itemSlots[var].itemId == itemId)
|
||||
{
|
||||
|
||||
+130
-130
@@ -57,7 +57,7 @@ bool8 load_bag_menu_graphics(void);
|
||||
void setup_bag_menu_textboxes(void);
|
||||
void allocate_bag_item_list_buffers(void);
|
||||
void load_bag_item_list_buffers(u8);
|
||||
void bag_menu_print_pocket_names(u8*, u8*);
|
||||
void bag_menu_print_pocket_names(const u8*, const u8*);
|
||||
void bag_menu_copy_pocket_name_to_window(u32);
|
||||
void bag_menu_draw_pocket_indicator_square(u8, u8);
|
||||
void bag_menu_add_pocket_scroll_arrow_indicators_maybe(void);
|
||||
@@ -69,7 +69,6 @@ void Task_BagMenu(u8);
|
||||
void get_name(s8*, u16);
|
||||
u16 ItemIdToBattleMoveId(u16);
|
||||
u16 BagGetItemIdByPocketPosition(u8, u16);
|
||||
void AddBagItemIconSprite(u16, u8);
|
||||
void bag_menu_print_description_box_text(int);
|
||||
void bag_menu_print_cursor(u8, u8);
|
||||
void bag_menu_print(u8, u8, const u8*, u8, u8, u8, u8, u8, u8);
|
||||
@@ -121,7 +120,7 @@ void bag_menu_leave_maybe_3(void);
|
||||
void bag_menu_leave_maybe_2(void);
|
||||
void bag_menu_leave_maybe(void);
|
||||
void sub_81ABA6C(void);
|
||||
void sub_81ABAC4(void);
|
||||
static void SetPocketListPositions(void);
|
||||
void sub_81ABAE0(void);
|
||||
u8 sub_81AB1F0(u8);
|
||||
void sub_81AC23C(u8);
|
||||
@@ -151,7 +150,7 @@ void sub_81AD6FC(u8 taskId);
|
||||
|
||||
// .rodata
|
||||
|
||||
const struct BgTemplate gUnknown_08613F90[3] =
|
||||
static const struct BgTemplate sBgTemplates_ItemMenu[3] =
|
||||
{
|
||||
{
|
||||
.bg = 0,
|
||||
@@ -182,7 +181,7 @@ const struct BgTemplate gUnknown_08613F90[3] =
|
||||
},
|
||||
};
|
||||
|
||||
const struct ListMenuTemplate gUnknown_08613F9C =
|
||||
static const struct ListMenuTemplate sItemListMenu =
|
||||
{
|
||||
.items = NULL,
|
||||
.moveCursorFunc = bag_menu_change_item_callback,
|
||||
@@ -258,7 +257,8 @@ const struct ScrollArrowsTemplate gUnknown_08614094 = {SCROLL_ARROW_LEFT, 0x1C,
|
||||
|
||||
const u8 gUnknown_086140A4[] = INCBIN_U8("graphics/interface/select_button.4bpp");
|
||||
|
||||
const u8 gUnknown_08614164[][3] = {
|
||||
static const u8 sFontColorTable[][3] = {
|
||||
// bgColor, textColor, shadowColor
|
||||
{0, 1, 3},
|
||||
{0, 1, 4},
|
||||
{0, 3, 6},
|
||||
@@ -268,7 +268,7 @@ const u8 gUnknown_08614164[][3] = {
|
||||
|
||||
const struct WindowTemplate gUnknown_08614174[] =
|
||||
{
|
||||
{
|
||||
{ // Item names
|
||||
.bg = 0,
|
||||
.tilemapLeft = 14,
|
||||
.tilemapTop = 2,
|
||||
@@ -277,7 +277,7 @@ const struct WindowTemplate gUnknown_08614174[] =
|
||||
.paletteNum = 1,
|
||||
.baseBlock = 0x27,
|
||||
},
|
||||
{
|
||||
{ // Description
|
||||
.bg = 0,
|
||||
.tilemapLeft = 0,
|
||||
.tilemapTop = 13,
|
||||
@@ -286,7 +286,7 @@ const struct WindowTemplate gUnknown_08614174[] =
|
||||
.paletteNum = 1,
|
||||
.baseBlock = 0x117,
|
||||
},
|
||||
{
|
||||
{ // Pocket name
|
||||
.bg = 0,
|
||||
.tilemapLeft = 4,
|
||||
.tilemapTop = 1,
|
||||
@@ -295,7 +295,7 @@ const struct WindowTemplate gUnknown_08614174[] =
|
||||
.paletteNum = 1,
|
||||
.baseBlock = 0x1A1,
|
||||
},
|
||||
{
|
||||
{ // TM/HM info icons
|
||||
.bg = 0,
|
||||
.tilemapLeft = 1,
|
||||
.tilemapTop = 13,
|
||||
@@ -304,7 +304,7 @@ const struct WindowTemplate gUnknown_08614174[] =
|
||||
.paletteNum = 12,
|
||||
.baseBlock = 0x16B,
|
||||
},
|
||||
{
|
||||
{// TM/HM info
|
||||
.bg = 0,
|
||||
.tilemapLeft = 7,
|
||||
.tilemapTop = 13,
|
||||
@@ -313,7 +313,7 @@ const struct WindowTemplate gUnknown_08614174[] =
|
||||
.paletteNum = 12,
|
||||
.baseBlock = 0x189,
|
||||
},
|
||||
{
|
||||
{ // Field message box
|
||||
.bg = 1,
|
||||
.tilemapLeft = 2,
|
||||
.tilemapTop = 15,
|
||||
@@ -432,83 +432,81 @@ struct ListBuffer2 {
|
||||
struct TempWallyStruct {
|
||||
struct ItemSlot bagPocket_Items[30];
|
||||
struct ItemSlot bagPocket_PokeBalls[16];
|
||||
u16 cursorPosition[5];
|
||||
u16 scrollPosition[5];
|
||||
u16 cursorPosition[POCKETS_COUNT];
|
||||
u16 scrollPosition[POCKETS_COUNT];
|
||||
u8 filler[0x2];
|
||||
u16 pocket;
|
||||
};
|
||||
|
||||
EWRAM_DATA struct UnkBagStruct *gUnknown_0203CE54 = 0;
|
||||
EWRAM_DATA struct BagStruct gUnknown_0203CE58 = {0};
|
||||
EWRAM_DATA struct ListBuffer1 *gUnknown_0203CE74 = 0;
|
||||
EWRAM_DATA struct ListBuffer2 *gUnknown_0203CE78 = 0;
|
||||
static EWRAM_DATA struct ListBuffer1 *sListBuffer1 = 0;
|
||||
static EWRAM_DATA struct ListBuffer2 *sListBuffer2 = 0;
|
||||
EWRAM_DATA u16 gSpecialVar_ItemId = 0;
|
||||
EWRAM_DATA struct TempWallyStruct *gUnknown_0203CE80 = 0;
|
||||
static EWRAM_DATA struct TempWallyStruct *gUnknown_0203CE80 = 0;
|
||||
|
||||
extern u8 *gPocketNamesStringsTable[];
|
||||
extern struct ListMenuTemplate gUnknown_08613F9C;
|
||||
extern u8 *const gPocketNamesStringsTable[];
|
||||
extern const u8 gMoveNames[][0xD];
|
||||
extern u8* gReturnToXStringsTable[];
|
||||
extern u32 gUnknown_0203CE5E[];
|
||||
extern const u8 EventScript_2736B3[];
|
||||
extern const u16 gUnknown_0860F074[];
|
||||
|
||||
void ResetBagScrollPositions(void)
|
||||
{
|
||||
gUnknown_0203CE58.pocket = 0;
|
||||
gUnknown_0203CE58.pocket = ITEMS_POCKET;
|
||||
memset(gUnknown_0203CE58.cursorPosition, 0, 10);
|
||||
memset(gUnknown_0203CE58.scrollPosition, 0, 10);
|
||||
}
|
||||
|
||||
void CB2_BagMenuFromStartMenu(void)
|
||||
{
|
||||
GoToBagMenu(0, 5, CB2_ReturnToFieldWithOpenMenu);
|
||||
GoToBagMenu(RETURN_LOCATION_FIELD, POCKETS_COUNT, CB2_ReturnToFieldWithOpenMenu);
|
||||
}
|
||||
|
||||
void sub_81AABB0(void)
|
||||
{
|
||||
if (!InBattlePyramid())
|
||||
GoToBagMenu(1, 5, SetCB2ToReshowScreenAfterMenu2);
|
||||
GoToBagMenu(RETURN_LOCATION_BATTLE, POCKETS_COUNT, SetCB2ToReshowScreenAfterMenu2);
|
||||
else
|
||||
sub_81C4F98(1, SetCB2ToReshowScreenAfterMenu2);
|
||||
}
|
||||
|
||||
void CB2_ChooseBerry(void)
|
||||
{
|
||||
GoToBagMenu(4, 3, CB2_ReturnToFieldContinueScript);
|
||||
GoToBagMenu(RETURN_LOCATION_FIELD_2, BERRIES_POCKET, CB2_ReturnToFieldContinueScript);
|
||||
}
|
||||
|
||||
void sub_81AABF0(void(*callback)(void))
|
||||
{
|
||||
GoToBagMenu(5, 3, callback);
|
||||
GoToBagMenu(RETURN_LOCATION_FIELD_3, BERRIES_POCKET, callback);
|
||||
}
|
||||
|
||||
void CB2_GoToSellMenu(void)
|
||||
{
|
||||
GoToBagMenu(3, 5, CB2_ExitSellMenu);
|
||||
GoToBagMenu(RETURN_LOCATION_SHOP, POCKETS_COUNT, CB2_ExitSellMenu);
|
||||
}
|
||||
|
||||
void sub_81AAC14(void)
|
||||
{
|
||||
GoToBagMenu(6, 5, sub_816B31C);
|
||||
GoToBagMenu(RETURN_LOCATION_PC, POCKETS_COUNT, sub_816B31C);
|
||||
}
|
||||
|
||||
void sub_81AAC28(void)
|
||||
{
|
||||
GoToBagMenu(9, 5, bag_menu_leave_maybe_3);
|
||||
GoToBagMenu(RETURN_LOCATION_FIELD_6, POCKETS_COUNT, bag_menu_leave_maybe_3);
|
||||
gSpecialVar_0x8005 = 0;
|
||||
gSpecialVar_Result = 0;
|
||||
}
|
||||
|
||||
void sub_81AAC50(void)
|
||||
{
|
||||
GoToBagMenu(7, 5, bag_menu_leave_maybe_2);
|
||||
GoToBagMenu(RETURN_LOCATION_FIELD_4, POCKETS_COUNT, bag_menu_leave_maybe_2);
|
||||
gSpecialVar_Result = 0;
|
||||
}
|
||||
|
||||
void sub_81AAC70(void)
|
||||
{
|
||||
GoToBagMenu(8, 5, bag_menu_leave_maybe);
|
||||
GoToBagMenu(RETURN_LOCATION_FIELD_5, POCKETS_COUNT, bag_menu_leave_maybe);
|
||||
gSpecialVar_Result = 0;
|
||||
}
|
||||
|
||||
@@ -522,21 +520,21 @@ void GoToBagMenu(u8 bagMenuType, u8 pocketId, void ( *postExitMenuMainCallback2)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (bagMenuType != 12)
|
||||
if (bagMenuType != RETURN_LOCATION_UNCHANGED)
|
||||
gUnknown_0203CE58.location = bagMenuType;
|
||||
if (postExitMenuMainCallback2)
|
||||
gUnknown_0203CE58.bagCallback = postExitMenuMainCallback2;
|
||||
if (pocketId <= 4)
|
||||
if (pocketId < POCKETS_COUNT)
|
||||
gUnknown_0203CE58.pocket = pocketId;
|
||||
temp = gUnknown_0203CE58.location - 4;
|
||||
temp = gUnknown_0203CE58.location - (POCKETS_COUNT - 1);
|
||||
if (temp <= 1)
|
||||
gUnknown_0203CE54->unk81B = 1;
|
||||
gUnknown_0203CE54->unk0 = 0;
|
||||
gUnknown_0203CE54->mainCallback2 = 0;
|
||||
gUnknown_0203CE54->unk81A = 0xFF;
|
||||
gUnknown_0203CE54->unk81E = -1;
|
||||
gUnknown_0203CE54->unk81F = -1;
|
||||
memset(gUnknown_0203CE54->unk804, 0xFF, sizeof(gUnknown_0203CE54->unk804));
|
||||
memset(gUnknown_0203CE54->unk810, 0xFF, 10);
|
||||
memset(gUnknown_0203CE54->spriteId, 0xFF, sizeof(gUnknown_0203CE54->spriteId));
|
||||
memset(gUnknown_0203CE54->windowPointers, 0xFF, 10);
|
||||
SetMainCallback2(CB2_Bag);
|
||||
}
|
||||
}
|
||||
@@ -615,7 +613,7 @@ bool8 setup_bag_menu(void)
|
||||
break;
|
||||
case 10:
|
||||
sub_81ABA6C();
|
||||
sub_81ABAC4();
|
||||
SetPocketListPositions();
|
||||
sub_81ABAE0();
|
||||
gMain.state++;
|
||||
break;
|
||||
@@ -677,10 +675,10 @@ bool8 setup_bag_menu(void)
|
||||
void bag_menu_init_bgs(void)
|
||||
{
|
||||
ResetVramOamAndBgCntRegs();
|
||||
memset(gUnknown_0203CE54->unk4, 0, 0x800);
|
||||
memset(gUnknown_0203CE54->tilemapBuffer, 0, 0x800);
|
||||
ResetBgsAndClearDma3BusyFlags(0);
|
||||
InitBgsFromTemplates(0, gUnknown_08613F90, 3);
|
||||
SetBgTilemapBuffer(2, gUnknown_0203CE54->unk4);
|
||||
InitBgsFromTemplates(0, sBgTemplates_ItemMenu, 3);
|
||||
SetBgTilemapBuffer(2, gUnknown_0203CE54->tilemapBuffer);
|
||||
ResetAllBgsCoordinates();
|
||||
schedule_bg_copy_tilemap_to_vram(2);
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP);
|
||||
@@ -702,7 +700,7 @@ bool8 load_bag_menu_graphics(void)
|
||||
case 1:
|
||||
if (free_temp_tile_data_buffers_if_possible() != TRUE)
|
||||
{
|
||||
LZDecompressWram(gUnknown_08D9A88C, gUnknown_0203CE54->unk4);
|
||||
LZDecompressWram(gUnknown_08D9A88C, gUnknown_0203CE54->tilemapBuffer);
|
||||
gUnknown_0203CE54->unk834++;
|
||||
}
|
||||
break;
|
||||
@@ -744,8 +742,8 @@ u8 sub_81AB1F0(u8 a)
|
||||
|
||||
void allocate_bag_item_list_buffers(void)
|
||||
{
|
||||
gUnknown_0203CE74 = Alloc(sizeof(struct ListBuffer1));
|
||||
gUnknown_0203CE78 = Alloc(sizeof(struct ListBuffer2));
|
||||
sListBuffer1 = Alloc(sizeof(struct ListBuffer1));
|
||||
sListBuffer2 = Alloc(sizeof(struct ListBuffer2));
|
||||
}
|
||||
|
||||
void load_bag_item_list_buffers(u8 pocketId)
|
||||
@@ -754,41 +752,41 @@ void load_bag_item_list_buffers(u8 pocketId)
|
||||
struct BagPocket *pocket = &gBagPockets[pocketId];
|
||||
struct ListMenuItem *subBuffer;
|
||||
|
||||
if (!gUnknown_0203CE54->unk81B_2)
|
||||
if (!gUnknown_0203CE54->hideCloseBagText)
|
||||
{
|
||||
for (i = 0; i < gUnknown_0203CE54->unk829[pocketId] - 1; i++)
|
||||
for (i = 0; i < gUnknown_0203CE54->numItemStacks[pocketId] - 1; i++)
|
||||
{
|
||||
get_name(gUnknown_0203CE78->name[i], pocket->itemSlots[i].itemId);
|
||||
subBuffer = gUnknown_0203CE74->subBuffers;
|
||||
subBuffer[i].name = gUnknown_0203CE78->name[i];
|
||||
get_name(sListBuffer2->name[i], pocket->itemSlots[i].itemId);
|
||||
subBuffer = sListBuffer1->subBuffers;
|
||||
subBuffer[i].name = sListBuffer2->name[i];
|
||||
subBuffer[i].id = i;
|
||||
}
|
||||
StringCopy(gUnknown_0203CE78->name[i], gText_CloseBag);
|
||||
subBuffer = gUnknown_0203CE74->subBuffers;
|
||||
subBuffer[i].name = gUnknown_0203CE78->name[i];
|
||||
StringCopy(sListBuffer2->name[i], gText_CloseBag);
|
||||
subBuffer = sListBuffer1->subBuffers;
|
||||
subBuffer[i].name = sListBuffer2->name[i];
|
||||
subBuffer[i].id = -2;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i = 0; i < gUnknown_0203CE54->unk829[pocketId]; i++)
|
||||
for (i = 0; i < gUnknown_0203CE54->numItemStacks[pocketId]; i++)
|
||||
{
|
||||
get_name(gUnknown_0203CE78->name[i], pocket->itemSlots[i].itemId);
|
||||
subBuffer = gUnknown_0203CE74->subBuffers;
|
||||
subBuffer[i].name = gUnknown_0203CE78->name[i];
|
||||
get_name(sListBuffer2->name[i], pocket->itemSlots[i].itemId);
|
||||
subBuffer = sListBuffer1->subBuffers;
|
||||
subBuffer[i].name = sListBuffer2->name[i];
|
||||
subBuffer[i].id = i;
|
||||
}
|
||||
}
|
||||
gMultiuseListMenuTemplate = gUnknown_08613F9C;
|
||||
gMultiuseListMenuTemplate.totalItems = gUnknown_0203CE54->unk829[pocketId];
|
||||
gMultiuseListMenuTemplate.items = gUnknown_0203CE74->subBuffers;
|
||||
gMultiuseListMenuTemplate.maxShowed = gUnknown_0203CE54->unk82E[pocketId];
|
||||
gMultiuseListMenuTemplate = sItemListMenu;
|
||||
gMultiuseListMenuTemplate.totalItems = gUnknown_0203CE54->numItemStacks[pocketId];
|
||||
gMultiuseListMenuTemplate.items = sListBuffer1->subBuffers;
|
||||
gMultiuseListMenuTemplate.maxShowed = gUnknown_0203CE54->numShownItems[pocketId];
|
||||
}
|
||||
|
||||
void get_name(s8 *dest, u16 itemId)
|
||||
{
|
||||
switch (gUnknown_0203CE58.pocket)
|
||||
{
|
||||
case 2:
|
||||
case TMHM_POCKET:
|
||||
StringCopy(gStringVar2, gMoveNames[ItemIdToBattleMoveId(itemId)]);
|
||||
if (itemId >= ITEM_HM01)
|
||||
{
|
||||
@@ -801,7 +799,7 @@ void get_name(s8 *dest, u16 itemId)
|
||||
StringExpandPlaceholders(dest, gText_UnkF908Var1Clear7Var2);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
case BERRIES_POCKET:
|
||||
ConvertIntToDecimalStringN(gStringVar1, itemId - ITEM_CHERI_BERRY + 1, 2, 2);
|
||||
CopyItemName(itemId, gStringVar2);
|
||||
StringExpandPlaceholders(dest, gText_UnkF908Var1Clear7Var2);
|
||||
@@ -851,14 +849,14 @@ void sub_81AB520(u8 rboxId, int item_index_in_pocket, u8 a)
|
||||
itemQuantity = BagGetQuantityByPocketPosition(gUnknown_0203CE58.pocket + 1, item_index_in_pocket);
|
||||
if (itemId >= ITEM_HM01 && itemId <= ITEM_HM08)
|
||||
BlitBitmapToWindow(rboxId, gBagMenuHMIcon_Gfx, 8, a - 1, 16, 16);
|
||||
if (gUnknown_0203CE58.pocket == 3)
|
||||
if (gUnknown_0203CE58.pocket == BERRIES_POCKET)
|
||||
{
|
||||
ConvertIntToDecimalStringN(gStringVar1, itemQuantity, 1, 3);
|
||||
StringExpandPlaceholders(gStringVar4, gText_xVar1);
|
||||
offset = GetStringRightAlignXOffset(7, gStringVar4, 0x77);
|
||||
bag_menu_print(rboxId, 7, gStringVar4, offset, a, 0, 0, -1, 0);
|
||||
}
|
||||
else if (gUnknown_0203CE58.pocket != 4 && (unique = ItemId_GetImportance(itemId)) == FALSE)
|
||||
else if (gUnknown_0203CE58.pocket != KEYITEMS_POCKET && (unique = ItemId_GetImportance(itemId)) == FALSE)
|
||||
{
|
||||
ConvertIntToDecimalStringN(gStringVar1, itemQuantity, 1, 2);
|
||||
StringExpandPlaceholders(gStringVar4, gText_xVar1);
|
||||
@@ -907,7 +905,7 @@ void bag_menu_print_cursor(u8 a, u8 b)
|
||||
void bag_menu_add_pocket_scroll_arrow_indicators_maybe(void)
|
||||
{
|
||||
if (gUnknown_0203CE54->unk81E == 0xFF)
|
||||
gUnknown_0203CE54->unk81E = AddScrollIndicatorArrowPairParameterized(SCROLL_ARROW_UP, 0xAC, 12, 0x94, gUnknown_0203CE54->unk829[gUnknown_0203CE58.pocket] - gUnknown_0203CE54->unk82E[gUnknown_0203CE58.pocket], 0x6E, 0x6E, &gUnknown_0203CE58.scrollPosition[gUnknown_0203CE58.pocket]);
|
||||
gUnknown_0203CE54->unk81E = AddScrollIndicatorArrowPairParameterized(SCROLL_ARROW_UP, 0xAC, 12, 0x94, gUnknown_0203CE54->numItemStacks[gUnknown_0203CE58.pocket] - gUnknown_0203CE54->numShownItems[gUnknown_0203CE58.pocket], 0x6E, 0x6E, &gUnknown_0203CE58.scrollPosition[gUnknown_0203CE58.pocket]);
|
||||
}
|
||||
|
||||
void sub_81AB824(void)
|
||||
@@ -937,8 +935,8 @@ void sub_81AB89C(void)
|
||||
|
||||
void free_bag_item_list_buffers(void)
|
||||
{
|
||||
Free(gUnknown_0203CE78);
|
||||
Free(gUnknown_0203CE74);
|
||||
Free(sListBuffer2);
|
||||
Free(sListBuffer1);
|
||||
FreeAllWindowBuffers();
|
||||
Free(gUnknown_0203CE54);
|
||||
}
|
||||
@@ -955,8 +953,8 @@ void task_close_bag_menu_2(u8 taskId)
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
DestroyListMenuTask(data[0], &gUnknown_0203CE58.scrollPosition[gUnknown_0203CE58.pocket], &gUnknown_0203CE58.cursorPosition[gUnknown_0203CE58.pocket]);
|
||||
if (gUnknown_0203CE54->unk0 != 0)
|
||||
SetMainCallback2(gUnknown_0203CE54->unk0);
|
||||
if (gUnknown_0203CE54->mainCallback2 != 0)
|
||||
SetMainCallback2(gUnknown_0203CE54->mainCallback2);
|
||||
else
|
||||
SetMainCallback2(gUnknown_0203CE58.bagCallback);
|
||||
sub_81AB824();
|
||||
@@ -973,52 +971,54 @@ void sub_81AB9A8(u8 pocketId)
|
||||
struct BagPocket *pocket = &gBagPockets[pocketId];
|
||||
switch (pocketId)
|
||||
{
|
||||
case 2:
|
||||
case 3:
|
||||
case TMHM_POCKET:
|
||||
case BERRIES_POCKET:
|
||||
SortBerriesOrTMHMs(pocket);
|
||||
break;
|
||||
default:
|
||||
CompactItemsInBagPocket(pocket);
|
||||
break;
|
||||
}
|
||||
gUnknown_0203CE54->unk829[pocketId] = 0;
|
||||
gUnknown_0203CE54->numItemStacks[pocketId] = 0;
|
||||
for (i = 0; i < pocket->capacity && pocket->itemSlots[i].itemId; i++)
|
||||
gUnknown_0203CE54->unk829[pocketId]++;
|
||||
if (!gUnknown_0203CE54->unk81B_2)
|
||||
gUnknown_0203CE54->unk829[pocketId]++;
|
||||
if (gUnknown_0203CE54->unk829[pocketId] > 8)
|
||||
gUnknown_0203CE54->unk82E[pocketId] = 8;
|
||||
gUnknown_0203CE54->numItemStacks[pocketId]++;
|
||||
|
||||
if (!gUnknown_0203CE54->hideCloseBagText)
|
||||
gUnknown_0203CE54->numItemStacks[pocketId]++;
|
||||
|
||||
if (gUnknown_0203CE54->numItemStacks[pocketId] > 8)
|
||||
gUnknown_0203CE54->numShownItems[pocketId] = 8;
|
||||
else
|
||||
gUnknown_0203CE54->unk82E[pocketId] = gUnknown_0203CE54->unk829[pocketId];
|
||||
gUnknown_0203CE54->numShownItems[pocketId] = gUnknown_0203CE54->numItemStacks[pocketId];
|
||||
}
|
||||
|
||||
void sub_81ABA6C(void)
|
||||
{
|
||||
u8 i;
|
||||
for (i = 0; i < 5; i++)
|
||||
for (i = 0; i < POCKETS_COUNT; i++)
|
||||
sub_81AB9A8(i);
|
||||
}
|
||||
|
||||
void sub_81ABA88(u8 a)
|
||||
void SetInitialScrollAndCursorPositions(u8 pocketId)
|
||||
{
|
||||
sub_812225C(&gUnknown_0203CE58.scrollPosition[a], &gUnknown_0203CE58.cursorPosition[a], gUnknown_0203CE54->unk82E[a], gUnknown_0203CE54->unk829[a]);
|
||||
sub_812225C(&gUnknown_0203CE58.scrollPosition[pocketId], &gUnknown_0203CE58.cursorPosition[pocketId], gUnknown_0203CE54->numShownItems[pocketId], gUnknown_0203CE54->numItemStacks[pocketId]);
|
||||
}
|
||||
|
||||
void sub_81ABAC4(void)
|
||||
static void SetPocketListPositions(void)
|
||||
{
|
||||
u8 i;
|
||||
for (i = 0; i < 5; i++)
|
||||
sub_81ABA88(i);
|
||||
for (i = 0; i < POCKETS_COUNT; i++)
|
||||
SetInitialScrollAndCursorPositions(i);
|
||||
}
|
||||
|
||||
void sub_81ABAE0(void)
|
||||
{
|
||||
u8 i;
|
||||
for (i = 0; i < 5; i++)
|
||||
sub_8122298(&gUnknown_0203CE58.scrollPosition[i], &gUnknown_0203CE58.cursorPosition[i], gUnknown_0203CE54->unk82E[i], gUnknown_0203CE54->unk829[i], 8);
|
||||
for (i = 0; i < POCKETS_COUNT; i++)
|
||||
sub_8122298(&gUnknown_0203CE58.scrollPosition[i], &gUnknown_0203CE58.cursorPosition[i], gUnknown_0203CE54->numShownItems[i], gUnknown_0203CE54->numItemStacks[i], 8);
|
||||
}
|
||||
|
||||
u8 sub_81ABB2C(u8 pocketId)
|
||||
u8 GetItemListPosition(u8 pocketId)
|
||||
{
|
||||
return gUnknown_0203CE58.scrollPosition[pocketId] + gUnknown_0203CE58.cursorPosition[pocketId];
|
||||
}
|
||||
@@ -1041,7 +1041,7 @@ void bag_menu_inits_lists_menu(u8 taskId)
|
||||
bag_menu_RemoveBagItem_message_window(4);
|
||||
DestroyListMenuTask(data[0], scrollPos, cursorPos);
|
||||
sub_81AB9A8(gUnknown_0203CE58.pocket);
|
||||
sub_81ABA88(gUnknown_0203CE58.pocket);
|
||||
SetInitialScrollAndCursorPositions(gUnknown_0203CE58.pocket);
|
||||
load_bag_item_list_buffers(gUnknown_0203CE58.pocket);
|
||||
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos);
|
||||
schedule_bg_copy_tilemap_to_vram(0);
|
||||
@@ -1055,7 +1055,7 @@ void sub_81ABC3C(u8 a)
|
||||
|
||||
void sub_81ABC54(u8 a, s16 b)
|
||||
{
|
||||
u8 r3 = (gUnknown_0203CE58.pocket == 3) ? 3 : 2;
|
||||
u8 r3 = (gUnknown_0203CE58.pocket == BERRIES_POCKET) ? 3 : 2;
|
||||
ConvertIntToDecimalStringN(gStringVar1, b, 2, r3);
|
||||
StringExpandPlaceholders(gStringVar4, gText_xVar1);
|
||||
AddTextPrinterParameterized(a, 1, gStringVar4, GetStringCenterAlignXOffset(1, gStringVar4, 0x28), 2, 0, 0);
|
||||
@@ -1063,7 +1063,7 @@ void sub_81ABC54(u8 a, s16 b)
|
||||
|
||||
void sub_81ABCC0(int a, int b, int c)
|
||||
{
|
||||
u8 r3 = (gUnknown_0203CE58.pocket == 3) ? 3 : 2;
|
||||
u8 r3 = (gUnknown_0203CE58.pocket == BERRIES_POCKET) ? 3 : 2;
|
||||
ConvertIntToDecimalStringN(gStringVar1, b, 2, r3);
|
||||
StringExpandPlaceholders(gStringVar4, gText_xVar1);
|
||||
AddTextPrinterParameterized(a, 1, gStringVar4, 0, 1, -1, 0);
|
||||
@@ -1092,7 +1092,7 @@ void Task_BagMenu(u8 taskId)
|
||||
if (sub_81AC2C0() == 1)
|
||||
{
|
||||
ListMenuGetScrollAndRow(data[0], scrollPos, cursorPos);
|
||||
if ((*scrollPos + *cursorPos) != gUnknown_0203CE54->unk829[gUnknown_0203CE58.pocket] - 1)
|
||||
if ((*scrollPos + *cursorPos) != gUnknown_0203CE54->numItemStacks[gUnknown_0203CE58.pocket] - 1)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
bag_menu_swap_items(taskId);
|
||||
@@ -1102,13 +1102,13 @@ void Task_BagMenu(u8 taskId)
|
||||
}
|
||||
else
|
||||
{
|
||||
int r4 = ListMenuHandleInputGetItemId(data[0]);
|
||||
int listPosition = ListMenuHandleInputGetItemId(data[0]);
|
||||
ListMenuGetScrollAndRow(data[0], scrollPos, cursorPos);
|
||||
switch (r4)
|
||||
switch (listPosition)
|
||||
{
|
||||
case -1:
|
||||
case LIST_NOTHING_CHOSEN:
|
||||
break;
|
||||
case -2:
|
||||
case LIST_B_PRESSED:
|
||||
if (gUnknown_0203CE58.location == 5)
|
||||
{
|
||||
PlaySE(SE_HAZURE);
|
||||
@@ -1118,13 +1118,13 @@ void Task_BagMenu(u8 taskId)
|
||||
gSpecialVar_ItemId = select;
|
||||
gTasks[taskId].func = unknown_ItemMenu_Confirm;
|
||||
break;
|
||||
default:
|
||||
default: // A_BUTTON
|
||||
PlaySE(SE_SELECT);
|
||||
sub_81AB824();
|
||||
bag_menu_print_cursor_(data[0], 2);
|
||||
data[1] = r4;
|
||||
data[2] = BagGetQuantityByPocketPosition(gUnknown_0203CE58.pocket + 1, r4);
|
||||
gSpecialVar_ItemId = BagGetItemIdByPocketPosition(gUnknown_0203CE58.pocket + 1, r4);
|
||||
data[1] = listPosition;
|
||||
data[2] = BagGetQuantityByPocketPosition(gUnknown_0203CE58.pocket + 1, listPosition);
|
||||
gSpecialVar_ItemId = BagGetItemIdByPocketPosition(gUnknown_0203CE58.pocket + 1, listPosition);
|
||||
gUnknown_08614054[gUnknown_0203CE58.location](taskId);
|
||||
break;
|
||||
}
|
||||
@@ -1164,10 +1164,10 @@ u8 GetSwitchBagPocketDirection(void)
|
||||
|
||||
void ChangeBagPocketId(u8 *bagPocketId, s8 deltaBagPocketId)
|
||||
{
|
||||
if (deltaBagPocketId == 1 && *bagPocketId == 4)
|
||||
if (deltaBagPocketId == 1 && *bagPocketId == POCKETS_COUNT - 1)
|
||||
*bagPocketId = 0;
|
||||
else if (deltaBagPocketId == -1 && *bagPocketId == 0)
|
||||
*bagPocketId = 4;
|
||||
*bagPocketId = POCKETS_COUNT - 1;
|
||||
else
|
||||
*bagPocketId += deltaBagPocketId;
|
||||
}
|
||||
@@ -1186,7 +1186,7 @@ void SwitchBagPocket(u8 taskId, s16 deltaBagPocketId, u16 a3)
|
||||
ClearWindowTilemap(1);
|
||||
DestroyListMenuTask(data[0], &gUnknown_0203CE58.scrollPosition[gUnknown_0203CE58.pocket], &gUnknown_0203CE58.cursorPosition[gUnknown_0203CE58.pocket]);
|
||||
schedule_bg_copy_tilemap_to_vram(0);
|
||||
gSprites[gUnknown_0203CE54->unk804[2 + (gUnknown_0203CE54->unk81B_1 ^ 1)]].invisible = TRUE;
|
||||
gSprites[gUnknown_0203CE54->spriteId[2 + (gUnknown_0203CE54->unk81B_1 ^ 1)]].invisible = TRUE;
|
||||
sub_81AB824();
|
||||
}
|
||||
pocketId = gUnknown_0203CE58.pocket;
|
||||
@@ -1444,7 +1444,7 @@ void sub_81AC644(u8 unused)
|
||||
default:
|
||||
if (sub_81221AC() == TRUE || InUnionRoom() == TRUE)
|
||||
{
|
||||
if (gUnknown_0203CE58.pocket == 4 || !sub_8122148(gSpecialVar_ItemId))
|
||||
if (gUnknown_0203CE58.pocket == KEYITEMS_POCKET || !sub_8122148(gSpecialVar_ItemId))
|
||||
{
|
||||
gUnknown_0203CE54->unk820 = &gUnknown_08614046;
|
||||
gUnknown_0203CE54->unk828 = 1;
|
||||
@@ -1459,14 +1459,14 @@ void sub_81AC644(u8 unused)
|
||||
{
|
||||
switch (gUnknown_0203CE58.pocket)
|
||||
{
|
||||
case 0:
|
||||
case ITEMS_POCKET:
|
||||
gUnknown_0203CE54->unk820 = &gUnknown_0203CE54->unk824;
|
||||
gUnknown_0203CE54->unk828 = 4;
|
||||
memcpy(&gUnknown_0203CE54->unk824, &gUnknown_0861402C, 4);
|
||||
if (ItemIsMail(gSpecialVar_ItemId) == TRUE)
|
||||
gUnknown_0203CE54->unk824 = 6;
|
||||
break;
|
||||
case 4:
|
||||
case KEYITEMS_POCKET:
|
||||
gUnknown_0203CE54->unk820 = &gUnknown_0203CE54->unk824;
|
||||
gUnknown_0203CE54->unk828 = 4;
|
||||
memcpy(&gUnknown_0203CE54->unk824, &gUnknown_08614030, 4);
|
||||
@@ -1478,22 +1478,22 @@ void sub_81AC644(u8 unused)
|
||||
gUnknown_0203CE54->unk824 = 7;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
case BALLS_POCKET:
|
||||
gUnknown_0203CE54->unk820 = gUnknown_08614034;
|
||||
gUnknown_0203CE54->unk828 = 4;
|
||||
break;
|
||||
case 2:
|
||||
case TMHM_POCKET:
|
||||
gUnknown_0203CE54->unk820 = gUnknown_08614038;
|
||||
gUnknown_0203CE54->unk828 = 4;
|
||||
break;
|
||||
case 3:
|
||||
case BERRIES_POCKET:
|
||||
gUnknown_0203CE54->unk820 = gUnknown_0861403C;
|
||||
gUnknown_0203CE54->unk828 = 6;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (gUnknown_0203CE58.pocket == 2)
|
||||
if (gUnknown_0203CE58.pocket == TMHM_POCKET)
|
||||
{
|
||||
ClearWindowTilemap(1);
|
||||
PrintTMHMMoveData(gSpecialVar_ItemId);
|
||||
@@ -1624,17 +1624,17 @@ bool8 sub_81ACDFC(s8 a)
|
||||
void bag_menu_remove_some_window(void)
|
||||
{
|
||||
if (gUnknown_0203CE54->unk828 == 1)
|
||||
bag_menu_remove_window(0);
|
||||
bag_menu_remove_window(0);
|
||||
else if (gUnknown_0203CE54->unk828 == 2)
|
||||
{
|
||||
bag_menu_remove_window(1);
|
||||
bag_menu_remove_window(1);
|
||||
}
|
||||
else if (gUnknown_0203CE54->unk828 == 4)
|
||||
{
|
||||
bag_menu_remove_window(2);
|
||||
bag_menu_remove_window(2);
|
||||
}
|
||||
else
|
||||
bag_menu_remove_window(3);
|
||||
bag_menu_remove_window(3);
|
||||
}
|
||||
|
||||
void ItemMenu_UseOutOfBattle(u8 taskId)
|
||||
@@ -1648,7 +1648,7 @@ void ItemMenu_UseOutOfBattle(u8 taskId)
|
||||
{
|
||||
FillWindowPixelBuffer(1, 0);
|
||||
schedule_bg_copy_tilemap_to_vram(0);
|
||||
if (gUnknown_0203CE58.pocket != 3)
|
||||
if (gUnknown_0203CE58.pocket != BERRIES_POCKET)
|
||||
ItemId_GetFieldFunc(gSpecialVar_ItemId)(taskId);
|
||||
else
|
||||
sub_80FDD10(taskId);
|
||||
@@ -1744,7 +1744,7 @@ void Task_ActuallyToss(u8 taskId)
|
||||
RemoveBagItem(gSpecialVar_ItemId, data[8]);
|
||||
DestroyListMenuTask(data[0], scrollPos, cursorPos);
|
||||
sub_81AB9A8(gUnknown_0203CE58.pocket);
|
||||
sub_81ABA88(gUnknown_0203CE58.pocket);
|
||||
SetInitialScrollAndCursorPositions(gUnknown_0203CE58.pocket);
|
||||
load_bag_item_list_buffers(gUnknown_0203CE58.pocket);
|
||||
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos);
|
||||
schedule_bg_copy_tilemap_to_vram(0);
|
||||
@@ -1782,7 +1782,7 @@ void ItemMenu_Give(u8 taskId)
|
||||
bag_menu_print_there_is_no_pokemon(taskId);
|
||||
else
|
||||
{
|
||||
gUnknown_0203CE54->unk0 = sub_81B7F60;
|
||||
gUnknown_0203CE54->mainCallback2 = sub_81B7F60;
|
||||
unknown_ItemMenu_Confirm(taskId);
|
||||
}
|
||||
}
|
||||
@@ -1815,7 +1815,7 @@ void sub_81AD350(u8 taskId)
|
||||
|
||||
void ItemMenu_CheckTag(u8 taskId)
|
||||
{
|
||||
gUnknown_0203CE54->unk0 = DoBerryTagScreen;
|
||||
gUnknown_0203CE54->mainCallback2 = DoBerryTagScreen;
|
||||
unknown_ItemMenu_Confirm(taskId);
|
||||
}
|
||||
|
||||
@@ -1842,7 +1842,7 @@ void ItemMenu_UseInBattle(u8 taskId)
|
||||
|
||||
void bag_menu_mail_related(void)
|
||||
{
|
||||
GoToBagMenu(12, 5, NULL);
|
||||
GoToBagMenu(RETURN_LOCATION_UNCHANGED, POCKETS_COUNT, NULL);
|
||||
}
|
||||
|
||||
void item_menu_type_2(u8 taskId)
|
||||
@@ -1857,7 +1857,7 @@ void item_menu_type_2(u8 taskId)
|
||||
StringExpandPlaceholders(gStringVar4, gText_Var1CantBeHeldHere);
|
||||
DisplayItemMessage(taskId, 1, gStringVar4, sub_81AD350);
|
||||
}
|
||||
else if (gUnknown_0203CE58.pocket != 4 && !ItemId_GetImportance(gSpecialVar_ItemId))
|
||||
else if (gUnknown_0203CE58.pocket != KEYITEMS_POCKET && !ItemId_GetImportance(gSpecialVar_ItemId))
|
||||
{
|
||||
unknown_ItemMenu_Confirm(taskId);
|
||||
}
|
||||
@@ -1871,7 +1871,7 @@ void item_menu_type_b(u8 taskId)
|
||||
{
|
||||
if (ItemIsMail(gSpecialVar_ItemId) == TRUE)
|
||||
DisplayItemMessage(taskId, 1, gText_CantWriteMail, sub_81AD350);
|
||||
else if (gUnknown_0203CE58.pocket != 4 && !ItemId_GetImportance(gSpecialVar_ItemId))
|
||||
else if (gUnknown_0203CE58.pocket != KEYITEMS_POCKET && !ItemId_GetImportance(gSpecialVar_ItemId))
|
||||
gTasks[taskId].func = unknown_ItemMenu_Confirm;
|
||||
else
|
||||
bag_menu_print_cant_be_held_msg(taskId);
|
||||
@@ -2012,7 +2012,7 @@ void sub_81AD8C8(u8 taskId)
|
||||
AddMoney(&gSaveBlock1Ptr->money, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * data[8]);
|
||||
DestroyListMenuTask(data[0], scrollPos, cursorPos);
|
||||
sub_81AB9A8(gUnknown_0203CE58.pocket);
|
||||
sub_81ABA88(gUnknown_0203CE58.pocket);
|
||||
SetInitialScrollAndCursorPositions(gUnknown_0203CE58.pocket);
|
||||
load_bag_item_list_buffers(gUnknown_0203CE58.pocket);
|
||||
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos);
|
||||
bag_menu_print_cursor_(data[0], 2);
|
||||
@@ -2157,7 +2157,7 @@ void DoWallyTutorialBagMenu(void)
|
||||
PrepareBagForWallyTutorial();
|
||||
AddBagItem(ITEM_POTION, 1);
|
||||
AddBagItem(ITEM_POKE_BALL, 1);
|
||||
GoToBagMenu(10, 0, SetCB2ToReshowScreenAfterMenu2);
|
||||
GoToBagMenu(RETURN_LOCATION_BATTLE_2, ITEMS_POCKET, SetCB2ToReshowScreenAfterMenu2);
|
||||
}
|
||||
|
||||
void Task_WallyTutorialBagMenu(u8 taskId)
|
||||
@@ -2235,7 +2235,7 @@ void bag_menu_leave_maybe(void)
|
||||
SetMainCallback2(CB2_ReturnToField);
|
||||
}
|
||||
|
||||
void bag_menu_print_pocket_names(u8 *pocketName1, u8 *pocketName2)
|
||||
void bag_menu_print_pocket_names(const u8 *pocketName1, const u8 *pocketName2)
|
||||
{
|
||||
struct WindowTemplate window = {0, 0, 0, 0, 0, 0, 0};
|
||||
u16 windowId;
|
||||
@@ -2252,7 +2252,7 @@ void bag_menu_print_pocket_names(u8 *pocketName1, u8 *pocketName2)
|
||||
offset = GetStringCenterAlignXOffset(1, pocketName2, 0x40);
|
||||
bag_menu_print(windowId, 1, pocketName2, offset + 0x40, 1, 0, 0, -1, 1);
|
||||
}
|
||||
CpuCopy32((u8*)GetWindowAttribute(windowId, WINDOW_TILE_DATA), gUnknown_0203CE54->unk844, 0x400);
|
||||
CpuCopy32((u8*)GetWindowAttribute(windowId, WINDOW_TILE_DATA), gUnknown_0203CE54->pocketNameBuffer, 0x400);
|
||||
RemoveWindow(windowId);
|
||||
}
|
||||
|
||||
@@ -2263,7 +2263,7 @@ void bag_menu_copy_pocket_name_to_window(u32 a)
|
||||
int b;
|
||||
if (a > 8)
|
||||
a = 8;
|
||||
r4 = &gUnknown_0203CE54->unk844;
|
||||
r4 = &gUnknown_0203CE54->pocketNameBuffer;
|
||||
windowAttribute = (u8*)GetWindowAttribute(2, WINDOW_TILE_DATA);
|
||||
CpuCopy32(r4[0][a], windowAttribute, 0x100);
|
||||
b = a + 16;
|
||||
@@ -2292,17 +2292,17 @@ void setup_bag_menu_textboxes(void)
|
||||
|
||||
void bag_menu_print(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 h)
|
||||
{
|
||||
AddTextPrinterParameterized4(windowId, fontId, left, top, letterSpacing, lineSpacing, gUnknown_08614164[h], speed, str);
|
||||
AddTextPrinterParameterized4(windowId, fontId, left, top, letterSpacing, lineSpacing, sFontColorTable[h], speed, str);
|
||||
}
|
||||
|
||||
u8 sub_81AE124(u8 a)
|
||||
{
|
||||
return gUnknown_0203CE54->unk810[a];
|
||||
return gUnknown_0203CE54->windowPointers[a];
|
||||
}
|
||||
|
||||
u8 bag_menu_add_window(u8 a)
|
||||
{
|
||||
u8 *ptr = &gUnknown_0203CE54->unk810[a];
|
||||
u8 *ptr = &gUnknown_0203CE54->windowPointers[a];
|
||||
if (*ptr == 0xFF)
|
||||
{
|
||||
*ptr = AddWindow(&gUnknown_086141AC[a]);
|
||||
@@ -2314,7 +2314,7 @@ u8 bag_menu_add_window(u8 a)
|
||||
|
||||
void bag_menu_remove_window(u8 a)
|
||||
{
|
||||
u8 *ptr = &gUnknown_0203CE54->unk810[a];
|
||||
u8 *ptr = &gUnknown_0203CE54->windowPointers[a];
|
||||
if (*ptr != 0xFF)
|
||||
{
|
||||
sub_8198070(*ptr, 0);
|
||||
@@ -2327,7 +2327,7 @@ void bag_menu_remove_window(u8 a)
|
||||
|
||||
u8 AddItemMessageWindow(u8 a)
|
||||
{
|
||||
u8 *ptr = &gUnknown_0203CE54->unk810[a];
|
||||
u8 *ptr = &gUnknown_0203CE54->windowPointers[a];
|
||||
if (*ptr == 0xFF)
|
||||
*ptr = AddWindow(&gUnknown_086141AC[a]);
|
||||
return *ptr;
|
||||
@@ -2335,7 +2335,7 @@ u8 AddItemMessageWindow(u8 a)
|
||||
|
||||
void bag_menu_RemoveBagItem_message_window(u8 a)
|
||||
{
|
||||
u8 *ptr = &gUnknown_0203CE54->unk810[a];
|
||||
u8 *ptr = &gUnknown_0203CE54->windowPointers[a];
|
||||
if (*ptr != 0xFF)
|
||||
{
|
||||
sub_8197DF8(*ptr, 0);
|
||||
|
||||
+16
-16
@@ -1,14 +1,14 @@
|
||||
#include "global.h"
|
||||
#include "sprite.h"
|
||||
#include "berry.h"
|
||||
#include "decompress.h"
|
||||
#include "graphics.h"
|
||||
#include "item.h"
|
||||
#include "item_menu.h"
|
||||
#include "item_icon.h"
|
||||
#include "item_menu_icons.h"
|
||||
#include "window.h"
|
||||
#include "menu_helpers.h"
|
||||
#include "berry.h"
|
||||
#include "graphics.h"
|
||||
#include "item.h"
|
||||
#include "sprite.h"
|
||||
#include "window.h"
|
||||
#include "constants/items.h"
|
||||
|
||||
struct CompressedTilesPal
|
||||
@@ -199,7 +199,7 @@ static const struct SpritePalette gUnknown_0857FBA8 =
|
||||
gUnknown_0857F564, 101
|
||||
};
|
||||
|
||||
static const struct SpriteTemplate gUnknown_0857FBB0 =
|
||||
static const struct SpriteTemplate gSpriteTemplate_RotatingBall =
|
||||
{
|
||||
.tileTag = 101,
|
||||
.paletteTag = 101,
|
||||
@@ -409,7 +409,7 @@ static const struct SpriteTemplate gUnknown_0857FE10 =
|
||||
// code
|
||||
void RemoveBagSprite(u8 id)
|
||||
{
|
||||
u8 *spriteId = &gUnknown_0203CE54->unk804[id];
|
||||
u8 *spriteId = &gUnknown_0203CE54->spriteId[id];
|
||||
if (*spriteId != 0xFF)
|
||||
{
|
||||
FreeSpriteTilesByTag(id + 100);
|
||||
@@ -422,14 +422,14 @@ void RemoveBagSprite(u8 id)
|
||||
|
||||
void AddBagVisualSprite(u8 bagPocketId)
|
||||
{
|
||||
u8 *spriteId = &gUnknown_0203CE54->unk804[0];
|
||||
u8 *spriteId = &gUnknown_0203CE54->spriteId[0];
|
||||
*spriteId = CreateSprite(&gUnknown_0857FB4C, 68, 66, 0);
|
||||
SetBagVisualPocketId(bagPocketId, FALSE);
|
||||
}
|
||||
|
||||
void SetBagVisualPocketId(u8 bagPocketId, bool8 isSwitchingPockets)
|
||||
{
|
||||
struct Sprite *sprite = &gSprites[gUnknown_0203CE54->unk804[0]];
|
||||
struct Sprite *sprite = &gSprites[gUnknown_0203CE54->spriteId[0]];
|
||||
if (isSwitchingPockets)
|
||||
{
|
||||
sprite->pos2.y = -5;
|
||||
@@ -458,7 +458,7 @@ static void SpriteCB_BagVisualSwitchingPockets(struct Sprite *sprite)
|
||||
|
||||
void ShakeBagVisual(void)
|
||||
{
|
||||
struct Sprite *sprite = &gSprites[gUnknown_0203CE54->unk804[0]];
|
||||
struct Sprite *sprite = &gSprites[gUnknown_0203CE54->spriteId[0]];
|
||||
if (sprite->affineAnimEnded)
|
||||
{
|
||||
StartSpriteAffineAnim(sprite, 1);
|
||||
@@ -477,10 +477,10 @@ static void SpriteCB_ShakeBagVisual(struct Sprite *sprite)
|
||||
|
||||
void AddSwitchPocketRotatingBallSprite(s16 rotationDirection)
|
||||
{
|
||||
u8 *spriteId = &gUnknown_0203CE54->unk804[1];
|
||||
u8 *spriteId = &gUnknown_0203CE54->spriteId[1];
|
||||
LoadSpriteSheet(&gUnknown_0857FBA0);
|
||||
LoadSpritePalette(&gUnknown_0857FBA8);
|
||||
*spriteId = CreateSprite(&gUnknown_0857FBB0, 16, 16, 0);
|
||||
*spriteId = CreateSprite(&gSpriteTemplate_RotatingBall, 16, 16, 0);
|
||||
gSprites[*spriteId].data[0] = rotationDirection;
|
||||
}
|
||||
|
||||
@@ -515,7 +515,7 @@ static void SpriteCB_SwitchPocketRotatingBallContinue(struct Sprite *sprite)
|
||||
|
||||
void AddBagItemIconSprite(u16 itemId, u8 id)
|
||||
{
|
||||
u8 *spriteId = &gUnknown_0203CE54->unk804[id + 2];
|
||||
u8 *spriteId = &gUnknown_0203CE54->spriteId[id + 2];
|
||||
if (*spriteId == 0xFF)
|
||||
{
|
||||
u8 iconSpriteId;
|
||||
@@ -539,17 +539,17 @@ void RemoveBagItemIconSprite(u8 id)
|
||||
|
||||
void sub_80D4FAC(void)
|
||||
{
|
||||
sub_8122344(&gUnknown_0203CE54->unk804[4], 8);
|
||||
sub_8122344(&gUnknown_0203CE54->spriteId[4], 8);
|
||||
}
|
||||
|
||||
void sub_80D4FC8(u8 arg0)
|
||||
{
|
||||
sub_81223FC(&gUnknown_0203CE54->unk804[4], 8, arg0);
|
||||
sub_81223FC(&gUnknown_0203CE54->spriteId[4], 8, arg0);
|
||||
}
|
||||
|
||||
void sub_80D4FEC(u8 arg0)
|
||||
{
|
||||
sub_8122448(&gUnknown_0203CE54->unk804[4], 136, 120, (arg0 + 1) * 16);
|
||||
sub_8122448(&gUnknown_0203CE54->spriteId[4], 136, 120, (arg0 + 1) * 16);
|
||||
}
|
||||
|
||||
static void sub_80D5018(void *mem0, void *mem1)
|
||||
|
||||
+9
-10
@@ -10,7 +10,7 @@
|
||||
#include "fieldmap.h"
|
||||
#include "event_object_movement.h"
|
||||
#include "field_player_avatar.h"
|
||||
#include "field_screen.h"
|
||||
#include "field_screen_effect.h"
|
||||
#include "field_weather.h"
|
||||
#include "item.h"
|
||||
#include "item_menu.h"
|
||||
@@ -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,12 +52,11 @@ 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);
|
||||
extern void sub_81AB9A8(u8);
|
||||
extern void sub_81ABA88(u8);
|
||||
extern void StartEscapeRopeFieldEffect(void);
|
||||
extern u8* sub_806CF78(u16);
|
||||
extern void sub_81B89F0(void);
|
||||
@@ -128,7 +127,7 @@ void SetUpItemUseCallback(u8 taskId)
|
||||
type = ItemId_GetType(gSpecialVar_ItemId) - 1;
|
||||
if (!InBattlePyramid())
|
||||
{
|
||||
gUnknown_0203CE54->unk0 = gUnknown_085920D8[type];
|
||||
gUnknown_0203CE54->mainCallback2 = gUnknown_085920D8[type];
|
||||
unknown_ItemMenu_Confirm(taskId);
|
||||
}
|
||||
else
|
||||
@@ -212,7 +211,7 @@ void sub_80FD254(void)
|
||||
|
||||
void ItemUseOutOfBattle_Mail(u8 taskId)
|
||||
{
|
||||
gUnknown_0203CE54->unk0 = sub_80FD254;
|
||||
gUnknown_0203CE54->mainCallback2 = sub_80FD254;
|
||||
unknown_ItemMenu_Confirm(taskId);
|
||||
}
|
||||
|
||||
@@ -608,7 +607,7 @@ void ItemUseOutOfBattle_PokeblockCase(u8 taskId)
|
||||
}
|
||||
else if (gTasks[taskId].data[3] != TRUE)
|
||||
{
|
||||
gUnknown_0203CE54->unk0 = sub_80FDBEC;
|
||||
gUnknown_0203CE54->mainCallback2 = sub_80FDBEC;
|
||||
unknown_ItemMenu_Confirm(taskId);
|
||||
}
|
||||
else
|
||||
@@ -670,7 +669,7 @@ void sub_80FDD10(u8 taskId)
|
||||
{
|
||||
gUnknown_0203A0F4 = sub_80FDD74;
|
||||
gFieldCallback = MapPostLoadHook_UseItem;
|
||||
gUnknown_0203CE54->unk0 = CB2_ReturnToField;
|
||||
gUnknown_0203CE54->mainCallback2 = CB2_ReturnToField;
|
||||
unknown_ItemMenu_Confirm(taskId);
|
||||
}
|
||||
else
|
||||
@@ -812,7 +811,7 @@ void sub_80FE058(void)
|
||||
if (!InBattlePyramid())
|
||||
{
|
||||
sub_81AB9A8(ItemId_GetPocket(gSpecialVar_ItemId));
|
||||
sub_81ABA88(ItemId_GetPocket(gSpecialVar_ItemId));
|
||||
SetInitialScrollAndCursorPositions(ItemId_GetPocket(gSpecialVar_ItemId));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -993,7 +992,7 @@ void sub_80FE54C(u8 taskId)
|
||||
{
|
||||
if (!InBattlePyramid())
|
||||
{
|
||||
gUnknown_0203CE54->unk0 = sub_81B89F0;
|
||||
gUnknown_0203CE54->mainCallback2 = sub_81B89F0;
|
||||
unknown_ItemMenu_Confirm(taskId);
|
||||
}
|
||||
else
|
||||
|
||||
+17
-17
@@ -5,7 +5,7 @@
|
||||
#include "contest_effect.h"
|
||||
#include "data2.h"
|
||||
#include "event_data.h"
|
||||
#include "field_screen.h"
|
||||
#include "field_screen_effect.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "learn_move.h"
|
||||
#include "list_menu.h"
|
||||
@@ -52,7 +52,7 @@ static EWRAM_DATA struct {
|
||||
const u16 gUnknown_085CE9F8[] = INCBIN_U16("graphics/interface/ui_learn_move.gbapal");
|
||||
const u8 gUnknown_085CEA18[] = INCBIN_U8("graphics/interface/ui_learn_move.4bpp");
|
||||
|
||||
const struct OamData gUnknown_085CEB98 =
|
||||
const struct OamData gUnknown_085CEB98 =
|
||||
{
|
||||
.y = 0,
|
||||
.affineMode = 0,
|
||||
@@ -69,7 +69,7 @@ const struct OamData gUnknown_085CEB98 =
|
||||
.affineParam = 0,
|
||||
};
|
||||
|
||||
const struct OamData gUnknown_085CEBA0 =
|
||||
const struct OamData gUnknown_085CEBA0 =
|
||||
{
|
||||
.y = 0,
|
||||
.affineMode = 0,
|
||||
@@ -86,7 +86,7 @@ const struct OamData gUnknown_085CEBA0 =
|
||||
.affineParam = 0,
|
||||
};
|
||||
|
||||
const struct OamData gUnknown_085CEBA8 =
|
||||
const struct OamData gUnknown_085CEBA8 =
|
||||
{
|
||||
.y = 0,
|
||||
.affineMode = 0,
|
||||
@@ -103,20 +103,20 @@ const struct OamData gUnknown_085CEBA8 =
|
||||
.affineParam = 0,
|
||||
};
|
||||
|
||||
const struct SpriteSheet gUnknown_085CEBB0 =
|
||||
const struct SpriteSheet gUnknown_085CEBB0 =
|
||||
{
|
||||
.data = gUnknown_085CEA18,
|
||||
.size = 0x180,
|
||||
.tag = 5525
|
||||
};
|
||||
|
||||
const struct SpritePalette gUnknown_085CEBB8 =
|
||||
const struct SpritePalette gUnknown_085CEBB8 =
|
||||
{
|
||||
.data = gUnknown_085CE9F8,
|
||||
.tag = 5526
|
||||
};
|
||||
|
||||
const struct ScrollArrowsTemplate gUnknown_085CEBC0 =
|
||||
const struct ScrollArrowsTemplate gUnknown_085CEBC0 =
|
||||
{
|
||||
.firstArrowType = 0,
|
||||
.firstX = 27,
|
||||
@@ -131,7 +131,7 @@ const struct ScrollArrowsTemplate gUnknown_085CEBC0 =
|
||||
.palNum = 0,
|
||||
};
|
||||
|
||||
const struct ScrollArrowsTemplate gUnknown_085CEBD0 =
|
||||
const struct ScrollArrowsTemplate gUnknown_085CEBD0 =
|
||||
{
|
||||
.firstArrowType = 2,
|
||||
.firstX = 192,
|
||||
@@ -146,31 +146,31 @@ const struct ScrollArrowsTemplate gUnknown_085CEBD0 =
|
||||
.palNum = 0,
|
||||
};
|
||||
|
||||
const union AnimCmd gUnknown_085CEBE0[] =
|
||||
const union AnimCmd gUnknown_085CEBE0[] =
|
||||
{
|
||||
ANIMCMD_FRAME(8, 5, FALSE, FALSE),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
const union AnimCmd gUnknown_085CEBE8[] =
|
||||
const union AnimCmd gUnknown_085CEBE8[] =
|
||||
{
|
||||
ANIMCMD_FRAME(9, 5, FALSE, FALSE),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
const union AnimCmd gUnknown_085CEBF0[] =
|
||||
const union AnimCmd gUnknown_085CEBF0[] =
|
||||
{
|
||||
ANIMCMD_FRAME(10, 5, FALSE, FALSE),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
const union AnimCmd gUnknown_085CEBF8[] =
|
||||
const union AnimCmd gUnknown_085CEBF8[] =
|
||||
{
|
||||
ANIMCMD_FRAME(11, 5, FALSE, FALSE),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
const union AnimCmd *const gUnknown_085CEC00[] =
|
||||
const union AnimCmd *const gUnknown_085CEC00[] =
|
||||
{
|
||||
gUnknown_085CEBE0,
|
||||
gUnknown_085CEBE8,
|
||||
@@ -178,7 +178,7 @@ const union AnimCmd *const gUnknown_085CEC00[] =
|
||||
gUnknown_085CEBF8,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gUnknown_085CEC10 =
|
||||
const struct SpriteTemplate gUnknown_085CEC10 =
|
||||
{
|
||||
.tileTag = 5525,
|
||||
.paletteTag = 5526,
|
||||
@@ -707,7 +707,7 @@ static void CreateHearts(void)
|
||||
sLearnMoveStruct->scrollArrowTaskId2 = -1;
|
||||
sLearnMoveStruct->scrollArrowTaskId1 = -1;
|
||||
AddScrollArrows();
|
||||
|
||||
|
||||
for (i = 0; i < 8; i++)
|
||||
{
|
||||
sLearnMoveStruct->spriteIds[i] = CreateSprite(&gUnknown_085CEC10, (i - (i / 4) * 4) * 8 + 104, (i / 4) * 8 + 36, 0);
|
||||
@@ -791,7 +791,7 @@ void ShowHideHearts(s32 item)
|
||||
else
|
||||
{
|
||||
numHearts = (u8)(gContestEffects[gContestMoves[item].effect].appeal / 10);
|
||||
|
||||
|
||||
if (numHearts == 0xFF)
|
||||
{
|
||||
numHearts = 0;
|
||||
@@ -811,7 +811,7 @@ void ShowHideHearts(s32 item)
|
||||
}
|
||||
|
||||
numHearts = (u8)(gContestEffects[gContestMoves[item].effect].jam / 10);
|
||||
|
||||
|
||||
if (numHearts == 0xFF)
|
||||
{
|
||||
numHearts = 0;
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -62,14 +62,14 @@ static const u8 * const sGiddyAdjectives[] = {
|
||||
};
|
||||
|
||||
static const u8 * const sGiddyQuestions[] = {
|
||||
gUnknown_08294313,
|
||||
gUnknown_08294359,
|
||||
gUnknown_08294398,
|
||||
gUnknown_082943DA,
|
||||
gUnknown_0829441C,
|
||||
gUnknown_08294460,
|
||||
gUnknown_082944A0,
|
||||
gUnknown_082944D5
|
||||
gMauvilleManText_ISoWantToGoOnAVacation,
|
||||
gMauvilleManText_IBoughtCrayonsWith120Colors,
|
||||
gMauvilleManText_WouldntItBeNiceIfWeCouldFloat,
|
||||
gMauvilleManText_WhenYouWriteOnASandyBeach,
|
||||
gMauvilleManText_WhatsTheBottomOfTheSeaLike,
|
||||
gMauvilleManText_WhenYouSeeTheSettingSunDoesIt,
|
||||
gMauvilleManText_LyingBackInTheGreenGrass,
|
||||
gMauvilleManText_SecretBasesAreSoWonderful
|
||||
};
|
||||
|
||||
static void SetupBard(void)
|
||||
|
||||
+18
-18
@@ -410,8 +410,8 @@ void sub_81159B4(struct Sprite *sprite)
|
||||
sprite->data[3] = 40;
|
||||
sprite->data[4] = 112;
|
||||
sprite->data[5] = 0;
|
||||
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
|
||||
sprite->callback = sub_80A634C;
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
sprite->callback = TranslateSpriteInGrowingCircleOverDuration;
|
||||
sprite->callback(sprite);
|
||||
}
|
||||
|
||||
@@ -880,11 +880,11 @@ 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 = sub_80A67BC;
|
||||
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
}
|
||||
|
||||
@@ -892,12 +892,12 @@ 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 = sub_80A67BC;
|
||||
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
|
||||
StoreSpriteCallbackInData6(sprite, sub_810E2C8);
|
||||
}
|
||||
|
||||
@@ -916,15 +916,15 @@ 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;
|
||||
|
||||
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
|
||||
sprite->callback = sub_80A67BC;
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
|
||||
}
|
||||
|
||||
void sub_81164F0(struct Sprite *sprite)
|
||||
@@ -935,16 +935,16 @@ void sub_81164F0(struct Sprite *sprite)
|
||||
sprite->pos2.x = gBattleAnimArgs[1];
|
||||
sprite->pos2.y = gBattleAnimArgs[2];
|
||||
StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]);
|
||||
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
|
||||
sprite->callback = sub_80A67BC;
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
|
||||
}
|
||||
|
||||
void sub_8116560(struct Sprite *sprite)
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
+7
-9
@@ -4,18 +4,17 @@
|
||||
#include "battle_setup.h"
|
||||
#include "berry.h"
|
||||
#include "bg.h"
|
||||
// #include "cable_club.h"
|
||||
#include "cable_club.h"
|
||||
#include "clock.h"
|
||||
#include "event_data.h"
|
||||
#include "field_camera.h"
|
||||
#include "field_control_avatar.h"
|
||||
#include "field_effect.h"
|
||||
#include "field_fadetransition.h"
|
||||
#include "event_object_movement.h"
|
||||
#include "field_message_box.h"
|
||||
#include "field_player_avatar.h"
|
||||
#include "field_screen_effect.h"
|
||||
// #include "field_special_scene.h"
|
||||
#include "field_special_scene.h"
|
||||
#include "field_specials.h"
|
||||
#include "field_tasks.h"
|
||||
#include "field_weather.h"
|
||||
@@ -38,7 +37,7 @@
|
||||
#include "play_time.h"
|
||||
#include "random.h"
|
||||
#include "roamer.h"
|
||||
// #include "rotating_gate.h"
|
||||
#include "rotating_gate.h"
|
||||
#include "safari_zone.h"
|
||||
#include "save.h"
|
||||
#include "save_location.h"
|
||||
@@ -129,7 +128,7 @@ extern void sub_80A0A38(void);
|
||||
extern void trainer_hill_map_load_related(void);
|
||||
extern void sub_8087D74(void);
|
||||
extern void battle_pyramid_map_load_related(u8);
|
||||
extern void sub_80B00E8(u8);
|
||||
extern void WriteFlashScanlineEffectBuffer(u8);
|
||||
extern void sub_80E9238(u8);
|
||||
extern void sub_81AA2F8(void);
|
||||
extern void sub_8195E10(void);
|
||||
@@ -148,7 +147,6 @@ extern void ResetAllPicSprites(void);
|
||||
extern void FieldEffectActiveListClear(void);
|
||||
extern void SetUpFieldTasks(void);
|
||||
extern void sub_81BE6B8(void);
|
||||
extern void sub_80AAFA4(void);
|
||||
extern void ShowStartMenu(void);
|
||||
extern void sub_80AEE84(void);
|
||||
extern void mapldr_default(void);
|
||||
@@ -1277,7 +1275,7 @@ u8 GetMapMusicFadeoutSpeed(void)
|
||||
return 4;
|
||||
}
|
||||
|
||||
void music_something(void)
|
||||
void TryFadeOutOldMapMusic(void)
|
||||
{
|
||||
u16 currentMusic = GetCurrentMapMusic();
|
||||
u16 warpMusic = GetWarpDestinationMusic();
|
||||
@@ -1855,7 +1853,7 @@ static void InitCurrentFlashLevelScanlineEffect(void)
|
||||
}
|
||||
else if ((flashLevel = Overworld_GetFlashLevel()))
|
||||
{
|
||||
sub_80B00E8(flashLevel);
|
||||
WriteFlashScanlineEffectBuffer(flashLevel);
|
||||
ScanlineEffect_SetParams(sFlashEffectParams);
|
||||
}
|
||||
}
|
||||
@@ -2196,7 +2194,7 @@ static void sub_8086988(u32 a1)
|
||||
InitEventObjectPalettes(1);
|
||||
|
||||
FieldEffectActiveListClear();
|
||||
sub_80AAFA4();
|
||||
StartWeather();
|
||||
sub_80AEE84();
|
||||
if (!a1)
|
||||
SetUpFieldTasks();
|
||||
|
||||
Executable
+7164
File diff suppressed because it is too large
Load Diff
+1
-2
@@ -3,9 +3,8 @@
|
||||
#include "bg.h"
|
||||
#include "decoration.h"
|
||||
#include "event_scripts.h"
|
||||
#include "field_fadetransition.h"
|
||||
#include "event_object_movement.h"
|
||||
#include "field_screen.h"
|
||||
#include "field_screen_effect.h"
|
||||
#include "field_weather.h"
|
||||
#include "international_string_util.h"
|
||||
#include "item.h"
|
||||
|
||||
+4
-4
@@ -194,7 +194,7 @@ void sub_810DBAC(struct Sprite *sprite)
|
||||
if (!gBattleAnimArgs[3])
|
||||
StartSpriteAnim(sprite, 2);
|
||||
|
||||
InitAnimSpritePos(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
|
||||
sprite->data[0] = gBattleAnimArgs[2];
|
||||
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
|
||||
@@ -218,7 +218,7 @@ void sub_810DC2C(struct Sprite *sprite)
|
||||
if (!gBattleAnimArgs[3])
|
||||
StartSpriteAnim(sprite, 2);
|
||||
|
||||
InitAnimSpritePos(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
SetAverageBattlerPositions(gBattleAnimTarget, 1, &l1, &l2);
|
||||
|
||||
if (GetBattlerSide(gBattleAnimAttacker))
|
||||
@@ -258,7 +258,7 @@ void sub_810DCD0(struct Sprite *sprite)
|
||||
|
||||
static void sub_810DD24(struct Sprite *sprite)
|
||||
{
|
||||
sub_80A656C(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
@@ -426,7 +426,7 @@ static void SpriteCB_TestBallThrow(struct Sprite *sprite)
|
||||
sprite->pos2.y = 0;
|
||||
sprite->data[5] = 0;
|
||||
ballId = ItemIdToBallId(GetBattlerPokeballItemId(opponentBattler));
|
||||
LaunchBallStarsTask(sprite->pos1.x, sprite->pos1.y - 5, 1, 0x1C, ballId);
|
||||
AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 0x1C, ballId);
|
||||
sprite->data[0] = LaunchBallFadeMonTask(FALSE, opponentBattler, 14, ballId);
|
||||
sprite->sBattler = opponentBattler;
|
||||
sprite->data[7] = noOfShakes;
|
||||
@@ -737,7 +737,7 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite)
|
||||
|
||||
StartSpriteAnim(sprite, 1);
|
||||
ballId = ItemIdToBallId(GetBattlerPokeballItemId(battlerId));
|
||||
LaunchBallStarsTask(sprite->pos1.x, sprite->pos1.y - 5, 1, 0x1C, ballId);
|
||||
AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 0x1C, ballId);
|
||||
sprite->data[0] = LaunchBallFadeMonTask(1, sprite->sBattler, 14, ballId);
|
||||
sprite->callback = HandleBallAnimEnd;
|
||||
|
||||
@@ -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;
|
||||
@@ -985,9 +985,9 @@ static void SpriteCB_OpponentMonSendOut(struct Sprite *sprite)
|
||||
|
||||
#undef sBattler
|
||||
|
||||
static u8 LaunchBallStarsTaskForPokeball(u8 x, u8 y, u8 kindOfStars, u8 d)
|
||||
static u8 AnimateBallOpenParticlesForPokeball(u8 x, u8 y, u8 kindOfStars, u8 d)
|
||||
{
|
||||
return LaunchBallStarsTask(x, y, kindOfStars, d, BALL_POKE);
|
||||
return AnimateBallOpenParticles(x, y, kindOfStars, d, BALL_POKE);
|
||||
}
|
||||
|
||||
static u8 LaunchBallFadeMonTaskForPokeball(bool8 unFadeLater, u8 battlerId, u32 arg2)
|
||||
@@ -1036,7 +1036,7 @@ static void sub_8076524(struct Sprite *sprite)
|
||||
r5 = 0;
|
||||
|
||||
StartSpriteAnim(sprite, 1);
|
||||
LaunchBallStarsTaskForPokeball(sprite->pos1.x, sprite->pos1.y - 5, sprite->oam.priority, r5);
|
||||
AnimateBallOpenParticlesForPokeball(sprite->pos1.x, sprite->pos1.y - 5, sprite->oam.priority, r5);
|
||||
sprite->data[1] = LaunchBallFadeMonTaskForPokeball(1, battlerId, r4);
|
||||
sprite->callback = sub_80765E0;
|
||||
gSprites[r7].invisible = FALSE;
|
||||
@@ -1129,7 +1129,7 @@ static void sub_80767D4(struct Sprite *sprite)
|
||||
r6 = 0;
|
||||
|
||||
StartSpriteAnim(sprite, 1);
|
||||
LaunchBallStarsTaskForPokeball(sprite->pos1.x, sprite->pos1.y - 5, sprite->oam.priority, r6);
|
||||
AnimateBallOpenParticlesForPokeball(sprite->pos1.x, sprite->pos1.y - 5, sprite->oam.priority, r6);
|
||||
sprite->data[1] = LaunchBallFadeMonTaskForPokeball(1, r8, r5);
|
||||
sprite->callback = sub_807687C;
|
||||
StartSpriteAffineAnim(&gSprites[r7], 2);
|
||||
|
||||
+79
-85
@@ -75,9 +75,6 @@ struct UnknownStruct4
|
||||
u8 unk9;
|
||||
};
|
||||
|
||||
#define HOENN_DEX_COUNT 202
|
||||
#define NATIONAL_DEX_COUNT 386
|
||||
|
||||
extern struct MusicPlayerInfo gMPlayInfo_BGM;
|
||||
|
||||
struct PokedexListItem
|
||||
@@ -130,12 +127,6 @@ struct PokedexView
|
||||
u8 unk65C[8];
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
DEX_MODE_HOENN,
|
||||
DEX_MODE_NATIONAL
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
AREA_SCREEN,
|
||||
@@ -176,7 +167,7 @@ u16 sub_80BD69C(u16, u16);
|
||||
void sub_80BD8D0(void);
|
||||
bool8 sub_80BD930(void);
|
||||
u8 sub_80BDA40(void);
|
||||
u16 sub_80BDA8C(u16);
|
||||
u16 GetPokemonSpriteToDisplay(u16);
|
||||
u32 sub_80BDACC(u16, s16, s16);
|
||||
static void CreateInterfaceSprites(u8);
|
||||
void sub_80BE470(struct Sprite *sprite);
|
||||
@@ -1237,7 +1228,7 @@ void ResetPokedex(void)
|
||||
gUnknown_02039B50 = 0;
|
||||
gUnknown_02039B52 = 64;
|
||||
gUnknown_030060B0 = 0;
|
||||
gSaveBlock2Ptr->pokedex.unknown1 = 0;
|
||||
gSaveBlock2Ptr->pokedex.mode = DEX_MODE_HOENN;
|
||||
gSaveBlock2Ptr->pokedex.order = 0;
|
||||
gSaveBlock2Ptr->pokedex.nationalMagic = 0;
|
||||
gSaveBlock2Ptr->pokedex.unknown2 = 0;
|
||||
@@ -1289,7 +1280,7 @@ static void ResetPokedexView(struct PokedexView *pokedexView)
|
||||
pokedexView->unk618 = 0;
|
||||
pokedexView->seenCount = 0;
|
||||
pokedexView->ownCount = 0;
|
||||
for (i = 0; i <= 3; i++)
|
||||
for (i = 0; i < 4; i++)
|
||||
pokedexView->unk61E[i] |= 0xFFFF;
|
||||
pokedexView->unk628 = 0;
|
||||
pokedexView->unk62A = 0;
|
||||
@@ -1348,7 +1339,7 @@ void CB2_Pokedex(void)
|
||||
sPokedexView = AllocZeroed(sizeof(struct PokedexView));
|
||||
ResetPokedexView(sPokedexView);
|
||||
CreateTask(sub_80BB78C, 0);
|
||||
sPokedexView->dexMode = gSaveBlock2Ptr->pokedex.unknown1;
|
||||
sPokedexView->dexMode = gSaveBlock2Ptr->pokedex.mode;
|
||||
if (!IsNationalPokedexEnabled())
|
||||
sPokedexView->dexMode = DEX_MODE_HOENN;
|
||||
sPokedexView->dexOrder = gSaveBlock2Ptr->pokedex.order;
|
||||
@@ -1571,9 +1562,9 @@ void sub_80BBDE8(u8 taskId)
|
||||
{
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
gSaveBlock2Ptr->pokedex.unknown1 = sPokedexView->dexMode;
|
||||
gSaveBlock2Ptr->pokedex.mode = sPokedexView->dexMode;
|
||||
if (!IsNationalPokedexEnabled())
|
||||
gSaveBlock2Ptr->pokedex.unknown1 = DEX_MODE_HOENN;
|
||||
gSaveBlock2Ptr->pokedex.mode = DEX_MODE_HOENN;
|
||||
gSaveBlock2Ptr->pokedex.order = sPokedexView->dexOrder;
|
||||
sub_80BDA40();
|
||||
sub_80BC890();
|
||||
@@ -1898,6 +1889,9 @@ void sub_80BC890(void)
|
||||
void sub_80BC8D4(u8 dexMode, u8 sortMode)
|
||||
{
|
||||
u16 vars[3]; //I have no idea why three regular variables are stored in an array, but whatever.
|
||||
#define temp_dexCount vars[0]
|
||||
#define temp_isHoennDex vars[1]
|
||||
#define temp_dexNum vars[2]
|
||||
s16 i;
|
||||
|
||||
sPokedexView->pokemonListCount = 0;
|
||||
@@ -1906,19 +1900,19 @@ void sub_80BC8D4(u8 dexMode, u8 sortMode)
|
||||
{
|
||||
default:
|
||||
case DEX_MODE_HOENN:
|
||||
vars[0] = HOENN_DEX_COUNT;
|
||||
vars[1] = 1;
|
||||
temp_dexCount = HOENN_DEX_COUNT;
|
||||
temp_isHoennDex = TRUE;
|
||||
break;
|
||||
case DEX_MODE_NATIONAL:
|
||||
if (IsNationalPokedexEnabled())
|
||||
{
|
||||
vars[0] = NATIONAL_DEX_COUNT;
|
||||
vars[1] = 0;
|
||||
temp_dexCount = NATIONAL_DEX_COUNT;
|
||||
temp_isHoennDex = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
vars[0] = HOENN_DEX_COUNT;
|
||||
vars[1] = 1;
|
||||
temp_dexCount = HOENN_DEX_COUNT;
|
||||
temp_isHoennDex = TRUE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -1926,14 +1920,14 @@ void sub_80BC8D4(u8 dexMode, u8 sortMode)
|
||||
switch (sortMode)
|
||||
{
|
||||
case 0:
|
||||
if (vars[1])
|
||||
if (temp_isHoennDex)
|
||||
{
|
||||
for (i = 0; i < vars[0]; i++)
|
||||
for (i = 0; i < temp_dexCount; i++)
|
||||
{
|
||||
vars[2] = HoennToNationalOrder(i + 1);
|
||||
sPokedexView->pokedexList[i].dexNum = vars[2];
|
||||
sPokedexView->pokedexList[i].seen = GetSetPokedexFlag(vars[2], 0);
|
||||
sPokedexView->pokedexList[i].owned = GetSetPokedexFlag(vars[2], 1);
|
||||
temp_dexNum = HoennToNationalOrder(i + 1);
|
||||
sPokedexView->pokedexList[i].dexNum = temp_dexNum;
|
||||
sPokedexView->pokedexList[i].seen = GetSetPokedexFlag(temp_dexNum, FLAG_GET_SEEN);
|
||||
sPokedexView->pokedexList[i].owned = GetSetPokedexFlag(temp_dexNum, FLAG_GET_CAUGHT);
|
||||
if (sPokedexView->pokedexList[i].seen)
|
||||
sPokedexView->pokemonListCount = i + 1;
|
||||
}
|
||||
@@ -1944,17 +1938,17 @@ void sub_80BC8D4(u8 dexMode, u8 sortMode)
|
||||
s16 r5;
|
||||
|
||||
r10 = r5 = i = 0;
|
||||
for (i = 0; i < vars[0]; i++)
|
||||
for (i = 0; i < temp_dexCount; i++)
|
||||
{
|
||||
vars[2] = i + 1;
|
||||
if (GetSetPokedexFlag(vars[2], 0))
|
||||
temp_dexNum = i + 1;
|
||||
if (GetSetPokedexFlag(temp_dexNum, FLAG_GET_SEEN))
|
||||
r10 = 1;
|
||||
if (r10)
|
||||
{
|
||||
asm(""); //Needed to match for some reason
|
||||
sPokedexView->pokedexList[r5].dexNum = vars[2];
|
||||
sPokedexView->pokedexList[r5].seen = GetSetPokedexFlag(vars[2], 0);
|
||||
sPokedexView->pokedexList[r5].owned = GetSetPokedexFlag(vars[2], 1);
|
||||
sPokedexView->pokedexList[r5].dexNum = temp_dexNum;
|
||||
sPokedexView->pokedexList[r5].seen = GetSetPokedexFlag(temp_dexNum, FLAG_GET_SEEN);
|
||||
sPokedexView->pokedexList[r5].owned = GetSetPokedexFlag(temp_dexNum, FLAG_GET_CAUGHT);
|
||||
if (sPokedexView->pokedexList[r5].seen)
|
||||
sPokedexView->pokemonListCount = r5 + 1;
|
||||
r5++;
|
||||
@@ -1965,13 +1959,13 @@ void sub_80BC8D4(u8 dexMode, u8 sortMode)
|
||||
case 1:
|
||||
for (i = 0; i < POKEMON_SLOTS_NUMBER - 1; i++)
|
||||
{
|
||||
vars[2] = gPokedexOrder_Alphabetical[i];
|
||||
temp_dexNum = gPokedexOrder_Alphabetical[i];
|
||||
|
||||
if (NationalToHoennOrder(vars[2]) <= vars[0] && GetSetPokedexFlag(vars[2], 0))
|
||||
if (NationalToHoennOrder(temp_dexNum) <= temp_dexCount && GetSetPokedexFlag(temp_dexNum, FLAG_GET_SEEN))
|
||||
{
|
||||
sPokedexView->pokedexList[sPokedexView->pokemonListCount].dexNum = vars[2];
|
||||
sPokedexView->pokedexList[sPokedexView->pokemonListCount].seen = 1;
|
||||
sPokedexView->pokedexList[sPokedexView->pokemonListCount].owned = GetSetPokedexFlag(vars[2], 1);
|
||||
sPokedexView->pokedexList[sPokedexView->pokemonListCount].dexNum = temp_dexNum;
|
||||
sPokedexView->pokedexList[sPokedexView->pokemonListCount].seen = TRUE;
|
||||
sPokedexView->pokedexList[sPokedexView->pokemonListCount].owned = GetSetPokedexFlag(temp_dexNum, FLAG_GET_CAUGHT);
|
||||
sPokedexView->pokemonListCount++;
|
||||
}
|
||||
}
|
||||
@@ -1979,13 +1973,13 @@ void sub_80BC8D4(u8 dexMode, u8 sortMode)
|
||||
case 2:
|
||||
for (i = NATIONAL_DEX_COUNT - 1; i >= 0; i--)
|
||||
{
|
||||
vars[2] = gPokedexOrder_Weight[i];
|
||||
temp_dexNum = gPokedexOrder_Weight[i];
|
||||
|
||||
if (NationalToHoennOrder(vars[2]) <= vars[0] && GetSetPokedexFlag(vars[2], 1))
|
||||
if (NationalToHoennOrder(temp_dexNum) <= temp_dexCount && GetSetPokedexFlag(temp_dexNum, FLAG_GET_CAUGHT))
|
||||
{
|
||||
sPokedexView->pokedexList[sPokedexView->pokemonListCount].dexNum = vars[2];
|
||||
sPokedexView->pokedexList[sPokedexView->pokemonListCount].seen = 1;
|
||||
sPokedexView->pokedexList[sPokedexView->pokemonListCount].owned = 1;
|
||||
sPokedexView->pokedexList[sPokedexView->pokemonListCount].dexNum = temp_dexNum;
|
||||
sPokedexView->pokedexList[sPokedexView->pokemonListCount].seen = TRUE;
|
||||
sPokedexView->pokedexList[sPokedexView->pokemonListCount].owned = TRUE;
|
||||
sPokedexView->pokemonListCount++;
|
||||
}
|
||||
}
|
||||
@@ -1993,27 +1987,27 @@ void sub_80BC8D4(u8 dexMode, u8 sortMode)
|
||||
case 3:
|
||||
for (i = 0; i < NATIONAL_DEX_COUNT; i++)
|
||||
{
|
||||
vars[2] = gPokedexOrder_Weight[i];
|
||||
temp_dexNum = gPokedexOrder_Weight[i];
|
||||
|
||||
if (NationalToHoennOrder(vars[2]) <= vars[0] && GetSetPokedexFlag(vars[2], 1))
|
||||
if (NationalToHoennOrder(temp_dexNum) <= temp_dexCount && GetSetPokedexFlag(temp_dexNum, FLAG_GET_CAUGHT))
|
||||
{
|
||||
sPokedexView->pokedexList[sPokedexView->pokemonListCount].dexNum = vars[2];
|
||||
sPokedexView->pokedexList[sPokedexView->pokemonListCount].seen = 1;
|
||||
sPokedexView->pokedexList[sPokedexView->pokemonListCount].owned = 1;
|
||||
sPokedexView->pokedexList[sPokedexView->pokemonListCount].dexNum = temp_dexNum;
|
||||
sPokedexView->pokedexList[sPokedexView->pokemonListCount].seen = TRUE;
|
||||
sPokedexView->pokedexList[sPokedexView->pokemonListCount].owned = TRUE;
|
||||
sPokedexView->pokemonListCount++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
for (i = NATIONAL_DEX_COUNT - 1; i >=0; i--)
|
||||
for (i = NATIONAL_DEX_COUNT - 1; i >= 0; i--)
|
||||
{
|
||||
vars[2] = gPokedexOrder_Height[i];
|
||||
temp_dexNum = gPokedexOrder_Height[i];
|
||||
|
||||
if (NationalToHoennOrder(vars[2]) <= vars[0] && GetSetPokedexFlag(vars[2], 1))
|
||||
if (NationalToHoennOrder(temp_dexNum) <= temp_dexCount && GetSetPokedexFlag(temp_dexNum, FLAG_GET_CAUGHT))
|
||||
{
|
||||
sPokedexView->pokedexList[sPokedexView->pokemonListCount].dexNum = vars[2];
|
||||
sPokedexView->pokedexList[sPokedexView->pokemonListCount].seen = 1;
|
||||
sPokedexView->pokedexList[sPokedexView->pokemonListCount].owned = 1;
|
||||
sPokedexView->pokedexList[sPokedexView->pokemonListCount].dexNum = temp_dexNum;
|
||||
sPokedexView->pokedexList[sPokedexView->pokemonListCount].seen = TRUE;
|
||||
sPokedexView->pokedexList[sPokedexView->pokemonListCount].owned = TRUE;
|
||||
sPokedexView->pokemonListCount++;
|
||||
}
|
||||
}
|
||||
@@ -2021,13 +2015,13 @@ void sub_80BC8D4(u8 dexMode, u8 sortMode)
|
||||
case 5:
|
||||
for (i = 0; i < NATIONAL_DEX_COUNT; i++)
|
||||
{
|
||||
vars[2] = gPokedexOrder_Height[i];
|
||||
temp_dexNum = gPokedexOrder_Height[i];
|
||||
|
||||
if (NationalToHoennOrder(vars[2]) <= vars[0] && GetSetPokedexFlag(vars[2], 1))
|
||||
if (NationalToHoennOrder(temp_dexNum) <= temp_dexCount && GetSetPokedexFlag(temp_dexNum, FLAG_GET_CAUGHT))
|
||||
{
|
||||
sPokedexView->pokedexList[sPokedexView->pokemonListCount].dexNum = vars[2];
|
||||
sPokedexView->pokedexList[sPokedexView->pokemonListCount].seen = 1;
|
||||
sPokedexView->pokedexList[sPokedexView->pokemonListCount].owned = 1;
|
||||
sPokedexView->pokedexList[sPokedexView->pokemonListCount].dexNum = temp_dexNum;
|
||||
sPokedexView->pokedexList[sPokedexView->pokemonListCount].seen = TRUE;
|
||||
sPokedexView->pokedexList[sPokedexView->pokemonListCount].owned = TRUE;
|
||||
sPokedexView->pokemonListCount++;
|
||||
}
|
||||
}
|
||||
@@ -2037,8 +2031,8 @@ void sub_80BC8D4(u8 dexMode, u8 sortMode)
|
||||
for (i = sPokedexView->pokemonListCount; i < NATIONAL_DEX_COUNT; i++)
|
||||
{
|
||||
sPokedexView->pokedexList[i].dexNum |= 0xFFFF;
|
||||
sPokedexView->pokedexList[i].seen = 0;
|
||||
sPokedexView->pokedexList[i].owned = 0;
|
||||
sPokedexView->pokedexList[i].seen = FALSE;
|
||||
sPokedexView->pokedexList[i].owned = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2192,7 +2186,7 @@ static void CreateInitialPokemonSprites(u16 selectedMon, u16 b)
|
||||
sPokedexView->unk61E[i] = 0xFFFF;
|
||||
sPokedexView->selectedMonSpriteId = 0xFFFF;
|
||||
|
||||
unk = sub_80BDA8C(selectedMon - 1);
|
||||
unk = GetPokemonSpriteToDisplay(selectedMon - 1);
|
||||
if (unk != 0xFFFF)
|
||||
{
|
||||
spriteId = sub_80BDACC(unk, 0x60, 0x50);
|
||||
@@ -2200,7 +2194,7 @@ static void CreateInitialPokemonSprites(u16 selectedMon, u16 b)
|
||||
gSprites[spriteId].data[5] = -32;
|
||||
}
|
||||
|
||||
unk = sub_80BDA8C(selectedMon);
|
||||
unk = GetPokemonSpriteToDisplay(selectedMon);
|
||||
if (unk != 0xFFFF)
|
||||
{
|
||||
spriteId = sub_80BDACC(unk, 0x60, 0x50);
|
||||
@@ -2208,7 +2202,7 @@ static void CreateInitialPokemonSprites(u16 selectedMon, u16 b)
|
||||
gSprites[spriteId].data[5] = 0;
|
||||
}
|
||||
|
||||
unk = sub_80BDA8C(selectedMon + 1);
|
||||
unk = GetPokemonSpriteToDisplay(selectedMon + 1);
|
||||
if (unk != 0xFFFF)
|
||||
{
|
||||
spriteId = sub_80BDACC(unk, 0x60, 0x50);
|
||||
@@ -2274,7 +2268,7 @@ static void CreateNewPokemonSprite(u8 direction, u16 selectedMon)
|
||||
switch (direction)
|
||||
{
|
||||
case 1: // up
|
||||
unk = sub_80BDA8C(selectedMon - 1);
|
||||
unk = GetPokemonSpriteToDisplay(selectedMon - 1);
|
||||
if (unk != 0xFFFF)
|
||||
{
|
||||
spriteId = sub_80BDACC(unk, 0x60, 0x50);
|
||||
@@ -2287,7 +2281,7 @@ static void CreateNewPokemonSprite(u8 direction, u16 selectedMon)
|
||||
sPokedexView->unk630 = 15;
|
||||
break;
|
||||
case 2: // down
|
||||
unk = sub_80BDA8C(selectedMon + 1);
|
||||
unk = GetPokemonSpriteToDisplay(selectedMon + 1);
|
||||
if (unk != 0xFFFF)
|
||||
{
|
||||
spriteId = sub_80BDACC(unk, 0x60, 0x50);
|
||||
@@ -2449,12 +2443,12 @@ u8 sub_80BDA40(void)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
u16 sub_80BDA8C(u16 a1)
|
||||
u16 GetPokemonSpriteToDisplay(u16 species)
|
||||
{
|
||||
if (a1 >= NATIONAL_DEX_COUNT || sPokedexView->pokedexList[a1].dexNum == 0xFFFF)
|
||||
if (species >= NATIONAL_DEX_COUNT || sPokedexView->pokedexList[species].dexNum == 0xFFFF)
|
||||
return 0xFFFF;
|
||||
else if (sPokedexView->pokedexList[a1].seen)
|
||||
return sPokedexView->pokedexList[a1].dexNum;
|
||||
else if (sPokedexView->pokedexList[species].seen)
|
||||
return sPokedexView->pokedexList[species].dexNum;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
@@ -2467,7 +2461,7 @@ u32 sub_80BDACC(u16 num, s16 x, s16 y)
|
||||
{
|
||||
if (sPokedexView->unk61E[i] == 0xFFFF)
|
||||
{
|
||||
u8 spriteId = sub_80C0E9C(num, x, y, i);
|
||||
u8 spriteId = CreateMonSpriteFromNationalDexNumber(num, x, y, i);
|
||||
|
||||
gSprites[spriteId].oam.affineMode = 1;
|
||||
gSprites[spriteId].oam.priority = 3;
|
||||
@@ -2963,7 +2957,7 @@ void sub_80BEA24(u8 taskId)
|
||||
case 5:
|
||||
if (gTasks[taskId].data[1] == 0)
|
||||
{
|
||||
gTasks[taskId].data[4] = (u16)sub_80C0E9C(sPokedexListItem->dexNum, 0x30, 0x38, 0);
|
||||
gTasks[taskId].data[4] = (u16)CreateMonSpriteFromNationalDexNumber(sPokedexListItem->dexNum, 48, 56, 0);
|
||||
gSprites[gTasks[taskId].data[4]].oam.priority = 0;
|
||||
}
|
||||
gMain.state++;
|
||||
@@ -3251,7 +3245,7 @@ void sub_80BF250(u8 taskId)
|
||||
gMain.state++;
|
||||
break;
|
||||
case 5:
|
||||
gTasks[taskId].data[4] = sub_80C0E9C(sPokedexListItem->dexNum, 48, 56, 0);
|
||||
gTasks[taskId].data[4] = CreateMonSpriteFromNationalDexNumber(sPokedexListItem->dexNum, 48, 56, 0);
|
||||
gSprites[gTasks[taskId].data[4]].oam.priority = 0;
|
||||
gDexCryScreenState = 0;
|
||||
gMain.state++;
|
||||
@@ -3459,7 +3453,7 @@ void sub_80BF82C(u8 taskId)
|
||||
gMain.state++;
|
||||
break;
|
||||
case 6:
|
||||
spriteId = sub_80C0E9C(sPokedexListItem->dexNum, 88, 56, 1);
|
||||
spriteId = CreateMonSpriteFromNationalDexNumber(sPokedexListItem->dexNum, 88, 56, 1);
|
||||
gSprites[spriteId].oam.affineMode = 1;
|
||||
gSprites[spriteId].oam.matrixNum = 2;
|
||||
gSprites[spriteId].oam.priority = 0;
|
||||
@@ -3790,7 +3784,7 @@ void sub_80BFE38(u8 taskId)
|
||||
gTasks[taskId].data[0]++;
|
||||
break;
|
||||
case 4:
|
||||
spriteId = sub_80C0E9C(dexNum, 0x30, 0x38, 0);
|
||||
spriteId = CreateMonSpriteFromNationalDexNumber(dexNum, 48, 56, 0);
|
||||
gSprites[spriteId].oam.priority = 0;
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK);
|
||||
SetVBlankCallback(gUnknown_030060B4);
|
||||
@@ -4348,7 +4342,7 @@ u16 GetHoennPokedexCount(u8 caseID)
|
||||
u16 count = 0;
|
||||
u16 i;
|
||||
|
||||
for (i = 0; i < 202; i++)
|
||||
for (i = 0; i < HOENN_DEX_COUNT; i++)
|
||||
{
|
||||
switch (caseID)
|
||||
{
|
||||
@@ -4417,17 +4411,17 @@ u16 sub_80C0944(void)
|
||||
|
||||
for (i = 0; i < 150; i++)
|
||||
{
|
||||
if (GetSetPokedexFlag(i + 1, 1) == 0)
|
||||
if (!GetSetPokedexFlag(i + 1, FLAG_GET_CAUGHT))
|
||||
return 0;
|
||||
}
|
||||
for (i = 151; i < 248; i++)
|
||||
{
|
||||
if (GetSetPokedexFlag(i + 1, 1) == 0)
|
||||
if (!GetSetPokedexFlag(i + 1, FLAG_GET_CAUGHT))
|
||||
return 0;
|
||||
}
|
||||
for (i = 251; i < 384; i++)
|
||||
{
|
||||
if (GetSetPokedexFlag(i + 1, 1) == 0)
|
||||
if (!GetSetPokedexFlag(i + 1, FLAG_GET_CAUGHT))
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
@@ -4643,10 +4637,10 @@ u32 sub_80C0E68(u16 a)
|
||||
}
|
||||
}
|
||||
|
||||
u16 sub_80C0E9C(u16 num, s16 x, s16 y, u16 paletteSlot)
|
||||
u16 CreateMonSpriteFromNationalDexNumber(u16 nationalNum, s16 x, s16 y, u16 paletteSlot)
|
||||
{
|
||||
num = NationalPokedexNumToSpecies(num);
|
||||
return CreateMonPicSprite_HandleDeoxys(num, 8, sub_80C0E68(num), TRUE, x, y, paletteSlot, 0xFFFF);
|
||||
nationalNum = NationalPokedexNumToSpecies(nationalNum);
|
||||
return CreateMonPicSprite_HandleDeoxys(nationalNum, 8, sub_80C0E68(nationalNum), TRUE, x, y, paletteSlot, 0xFFFF);
|
||||
}
|
||||
|
||||
u16 sub_80C0EF8(u16 species, s16 x, s16 y, s8 paletteSlot)
|
||||
@@ -4980,10 +4974,10 @@ void sub_80C170C(u8 taskId)
|
||||
sPokedexView->unk62A = 0x40;
|
||||
gUnknown_02039B50 = 0;
|
||||
sPokedexView->unk610 = 0;
|
||||
gSaveBlock2Ptr->pokedex.unknown1 = sub_80C2318(taskId, 5);
|
||||
gSaveBlock2Ptr->pokedex.mode = sub_80C2318(taskId, 5);
|
||||
if (!IsNationalPokedexEnabled())
|
||||
gSaveBlock2Ptr->pokedex.unknown1 = 0;
|
||||
sPokedexView->unk614 = gSaveBlock2Ptr->pokedex.unknown1;
|
||||
gSaveBlock2Ptr->pokedex.mode = DEX_MODE_HOENN;
|
||||
sPokedexView->unk614 = gSaveBlock2Ptr->pokedex.mode;
|
||||
gSaveBlock2Ptr->pokedex.order = sub_80C2318(taskId, 4);
|
||||
sPokedexView->unk618 = gSaveBlock2Ptr->pokedex.order;
|
||||
PlaySE(SE_PC_OFF);
|
||||
|
||||
+16
-28
@@ -45,12 +45,6 @@ struct SpeciesItem
|
||||
u16 item;
|
||||
};
|
||||
|
||||
// Extracts the upper 16 bits of a 32-bit number
|
||||
#define HIHALF(n) (((n) & 0xFFFF0000) >> 16)
|
||||
|
||||
// Extracts the lower 16 bits of a 32-bit number
|
||||
#define LOHALF(n) ((n) & 0xFFFF)
|
||||
|
||||
extern const struct OamData gUnknown_0831ACB0;
|
||||
extern const struct OamData gUnknown_0831ACA8;
|
||||
extern const struct SpriteFrameImage gUnknown_082FF3A8[];
|
||||
@@ -2755,7 +2749,7 @@ void CreateMonWithEVSpread(struct Pokemon *mon, u16 species, u8 level, u8 fixedI
|
||||
CalculateMonStats(mon);
|
||||
}
|
||||
|
||||
void sub_806819C(struct Pokemon *mon, struct UnknownPokemonStruct *src)
|
||||
void sub_806819C(struct Pokemon *mon, struct BattleTowerPokemon *src)
|
||||
{
|
||||
s32 i;
|
||||
u8 nickname[30];
|
||||
@@ -2809,7 +2803,7 @@ void sub_806819C(struct Pokemon *mon, struct UnknownPokemonStruct *src)
|
||||
CalculateMonStats(mon);
|
||||
}
|
||||
|
||||
void sub_8068338(struct Pokemon *mon, struct UnknownPokemonStruct *src, bool8 lvl50)
|
||||
void sub_8068338(struct Pokemon *mon, struct BattleTowerPokemon *src, bool8 lvl50)
|
||||
{
|
||||
s32 i;
|
||||
u8 nickname[30];
|
||||
@@ -2937,7 +2931,7 @@ void CreateMonWithEVSpreadNatureOTID(struct Pokemon *mon, u16 species, u8 level,
|
||||
CalculateMonStats(mon);
|
||||
}
|
||||
|
||||
void sub_80686FC(struct Pokemon *mon, struct UnknownPokemonStruct *dest)
|
||||
void sub_80686FC(struct Pokemon *mon, struct BattleTowerPokemon *dest)
|
||||
{
|
||||
s32 i;
|
||||
u16 heldItem;
|
||||
@@ -5864,10 +5858,10 @@ u16 HoennPokedexNumToSpecies(u16 hoennNum)
|
||||
|
||||
species = 0;
|
||||
|
||||
while (species < 411 && gSpeciesToHoennPokedexNum[species] != hoennNum)
|
||||
while (species < (NUM_SPECIES - 1) && gSpeciesToHoennPokedexNum[species] != hoennNum)
|
||||
species++;
|
||||
|
||||
if (species == 411)
|
||||
if (species == NUM_SPECIES - 1)
|
||||
return 0;
|
||||
|
||||
return species + 1;
|
||||
@@ -5882,10 +5876,10 @@ u16 NationalPokedexNumToSpecies(u16 nationalNum)
|
||||
|
||||
species = 0;
|
||||
|
||||
while (species < 411 && gSpeciesToNationalPokedexNum[species] != nationalNum)
|
||||
while (species < (NUM_SPECIES - 1) && gSpeciesToNationalPokedexNum[species] != nationalNum)
|
||||
species++;
|
||||
|
||||
if (species == 411)
|
||||
if (species == NUM_SPECIES - 1)
|
||||
return 0;
|
||||
|
||||
return species + 1;
|
||||
@@ -5900,10 +5894,10 @@ u16 NationalToHoennOrder(u16 nationalNum)
|
||||
|
||||
hoennNum = 0;
|
||||
|
||||
while (hoennNum < 411 && gHoennToNationalOrder[hoennNum] != nationalNum)
|
||||
while (hoennNum < (NUM_SPECIES - 1) && gHoennToNationalOrder[hoennNum] != nationalNum)
|
||||
hoennNum++;
|
||||
|
||||
if (hoennNum == 411)
|
||||
if (hoennNum == NUM_SPECIES - 1)
|
||||
return 0;
|
||||
|
||||
return hoennNum + 1;
|
||||
@@ -5935,13 +5929,13 @@ u16 HoennToNationalOrder(u16 hoennNum)
|
||||
|
||||
u16 SpeciesToCryId(u16 species)
|
||||
{
|
||||
if (species <= 250)
|
||||
if (species <= SPECIES_CELEBI - 1)
|
||||
return species;
|
||||
|
||||
if (species < 276)
|
||||
return 200;
|
||||
if (species < SPECIES_TREECKO - 1)
|
||||
return SPECIES_UNOWN - 1;
|
||||
|
||||
return gSpeciesIdToCryId[species - 276];
|
||||
return gSpeciesIdToCryId[species - (SPECIES_TREECKO - 1)];
|
||||
}
|
||||
|
||||
void sub_806D544(u16 species, u32 personality, u8 *dest)
|
||||
@@ -6584,15 +6578,15 @@ u16 SpeciesToPokedexNum(u16 species)
|
||||
else
|
||||
{
|
||||
species = SpeciesToHoennPokedexNum(species);
|
||||
if (species <= 202)
|
||||
if (species <= HOENN_DEX_COUNT)
|
||||
return species;
|
||||
return 0xFFFF;
|
||||
}
|
||||
}
|
||||
|
||||
bool32 sub_806E3F8(u16 species)
|
||||
bool32 IsSpeciesInHoennDex(u16 species)
|
||||
{
|
||||
if (SpeciesToHoennPokedexNum(species) > 202)
|
||||
if (SpeciesToHoennPokedexNum(species) > HOENN_DEX_COUNT)
|
||||
return FALSE;
|
||||
else
|
||||
return TRUE;
|
||||
@@ -6707,12 +6701,6 @@ const u32 *GetMonFrontSpritePal(struct Pokemon *mon)
|
||||
return GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality);
|
||||
}
|
||||
|
||||
// Extracts the upper 16 bits of a 32-bit number
|
||||
#define HIHALF(n) (((n) & 0xFFFF0000) >> 16)
|
||||
|
||||
// Extracts the lower 16 bits of a 32-bit number
|
||||
#define LOHALF(n) ((n) & 0xFFFF)
|
||||
|
||||
const u32 *GetFrontSpritePalFromSpeciesAndPersonality(u16 species, u32 otId, u32 personality)
|
||||
{
|
||||
u32 shinyValue;
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#include "dma3.h"
|
||||
#include "dynamic_placeholder_text_util.h"
|
||||
#include "event_data.h"
|
||||
#include "field_screen.h"
|
||||
#include "field_screen_effect.h"
|
||||
#include "field_weather.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "graphics.h"
|
||||
@@ -10198,7 +10198,7 @@ void SetBoxWallpaper(u8 boxId, u8 wallpaperId)
|
||||
gPokemonStoragePtr->boxWallpapers[boxId] = wallpaperId;
|
||||
}
|
||||
|
||||
s16 sub_80D214C(struct BoxPokemon *boxMons, s8 currIndex, u8 maxIndex, u8 arg3)
|
||||
s16 sub_80D214C(struct BoxPokemon *boxMons, u8 currIndex, u8 maxIndex, u8 arg3)
|
||||
{
|
||||
s16 i;
|
||||
s16 adder = -1;
|
||||
@@ -10208,7 +10208,7 @@ s16 sub_80D214C(struct BoxPokemon *boxMons, s8 currIndex, u8 maxIndex, u8 arg3)
|
||||
|
||||
if (arg3 == 1 || arg3 == 3)
|
||||
{
|
||||
for (i = currIndex + adder; i >= 0 && i <= maxIndex; i += adder)
|
||||
for (i = (s8)currIndex + adder; i >= 0 && i <= maxIndex; i += adder)
|
||||
{
|
||||
if (GetBoxMonData(&boxMons[i], MON_DATA_SPECIES) != SPECIES_NONE)
|
||||
return i;
|
||||
@@ -10216,7 +10216,7 @@ s16 sub_80D214C(struct BoxPokemon *boxMons, s8 currIndex, u8 maxIndex, u8 arg3)
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i = currIndex + adder; i >= 0 && i <= maxIndex; i += adder)
|
||||
for (i = (s8)currIndex + adder; i >= 0 && i <= maxIndex; i += adder)
|
||||
{
|
||||
if (GetBoxMonData(&boxMons[i], MON_DATA_SPECIES) != SPECIES_NONE
|
||||
&& !GetBoxMonData(&boxMons[i], MON_DATA_IS_EGG))
|
||||
|
||||
@@ -129,7 +129,7 @@ struct UnkStruct_61CC04
|
||||
};
|
||||
|
||||
// forward declarations
|
||||
bool8 sub_81B1250(void);
|
||||
bool8 IsMultiBattle(void);
|
||||
static bool8 SummaryScreen_LoadGraphics(void);
|
||||
static void SummaryScreen_LoadingCB2(void);
|
||||
static void InitBGs(void);
|
||||
@@ -1500,7 +1500,7 @@ static void sub_81C0604(u8 taskId, s8 a)
|
||||
}
|
||||
r4_2 = sub_80D214C(pssData->monList.boxMons, pssData->curMonIndex, pssData->maxMonIndex, a);
|
||||
}
|
||||
else if (sub_81B1250() == 1)
|
||||
else if (IsMultiBattle() == TRUE)
|
||||
{
|
||||
r4_2 = sub_81C09B4(a);
|
||||
}
|
||||
@@ -3254,7 +3254,7 @@ static void PrintHeldItemName(void)
|
||||
const u8 *text;
|
||||
int offset;
|
||||
|
||||
if (pssData->summary.item == ITEM_ENIGMA_BERRY && sub_81B1250() == TRUE && (pssData->curMonIndex == 1 || pssData->curMonIndex == 4 || pssData->curMonIndex == 5))
|
||||
if (pssData->summary.item == ITEM_ENIGMA_BERRY && IsMultiBattle() == TRUE && (pssData->curMonIndex == 1 || pssData->curMonIndex == 4 || pssData->curMonIndex == 5))
|
||||
{
|
||||
text = ItemId_GetName(ITEM_ENIGMA_BERRY);
|
||||
}
|
||||
|
||||
+4
-4
@@ -22,8 +22,8 @@
|
||||
#include "constants/songs.h"
|
||||
#include "menu.h"
|
||||
#include "overworld.h"
|
||||
#include "field_screen.h"
|
||||
#include "fldeff_80F9BCC.h"
|
||||
#include "field_screen_effect.h"
|
||||
#include "fldeff_misc.h"
|
||||
#include "script.h"
|
||||
#include "event_data.h"
|
||||
#include "lilycove_lady.h"
|
||||
@@ -647,7 +647,7 @@ static void ReceiveOldManData(OldMan *oldMan, size_t recordSize, u8 which)
|
||||
static void ReceiveBattleTowerData(void *battleTowerRecord, size_t recordSize, u8 which)
|
||||
{
|
||||
struct EmeraldBattleTowerRecord *dest;
|
||||
struct UnknownPokemonStruct *btPokemon;
|
||||
struct BattleTowerPokemon *btPokemon;
|
||||
u32 mixIndices[4];
|
||||
s32 i;
|
||||
|
||||
@@ -1866,7 +1866,7 @@ static void SanitizeEmeraldBattleTowerRecord(struct EmeraldBattleTowerRecord *ds
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
struct UnknownPokemonStruct *towerMon = &dst->party[i];
|
||||
struct BattleTowerPokemon *towerMon = &dst->party[i];
|
||||
if (towerMon->species != 0)
|
||||
StripExtCtrlCodes(towerMon->nickname);
|
||||
}
|
||||
|
||||
@@ -226,7 +226,7 @@ static void CreateBattlerSprite(u8 battler)
|
||||
return;
|
||||
|
||||
SetMultiuseSpriteTemplateToPokemon(GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES), GetBattlerPosition(battler));
|
||||
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, 2), posY, sub_80A82E4(battler));
|
||||
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, 2), posY, GetBattlerSpriteSubpriority(battler));
|
||||
gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler;
|
||||
gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy;
|
||||
gSprites[gBattlerSpriteIds[battler]].data[0] = battler;
|
||||
@@ -241,7 +241,7 @@ static void CreateBattlerSprite(u8 battler)
|
||||
SetMultiuseSpriteTemplateToTrainerBack(gSaveBlock2Ptr->playerGender, GetBattlerPosition(B_POSITION_PLAYER_LEFT));
|
||||
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, 0x50,
|
||||
(8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].coords) * 4 + 80,
|
||||
sub_80A82E4(0));
|
||||
GetBattlerSpriteSubpriority(0));
|
||||
gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler;
|
||||
gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy;
|
||||
gSprites[gBattlerSpriteIds[battler]].data[0] = battler;
|
||||
@@ -251,7 +251,7 @@ static void CreateBattlerSprite(u8 battler)
|
||||
SetMultiuseSpriteTemplateToTrainerBack(TRAINER_BACK_PIC_WALLY, GetBattlerPosition(0));
|
||||
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, 0x50,
|
||||
(8 - gTrainerBackPicCoords[TRAINER_BACK_PIC_WALLY].coords) * 4 + 80,
|
||||
sub_80A82E4(0));
|
||||
GetBattlerSpriteSubpriority(0));
|
||||
gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler;
|
||||
gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy;
|
||||
gSprites[gBattlerSpriteIds[battler]].data[0] = battler;
|
||||
@@ -262,7 +262,7 @@ static void CreateBattlerSprite(u8 battler)
|
||||
return;
|
||||
|
||||
SetMultiuseSpriteTemplateToPokemon(GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES), GetBattlerPosition(battler));
|
||||
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, 2), posY, sub_80A82E4(battler));
|
||||
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, 2), posY, GetBattlerSpriteSubpriority(battler));
|
||||
gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler;
|
||||
gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy;
|
||||
gSprites[gBattlerSpriteIds[battler]].data[0] = battler;
|
||||
|
||||
+6
-6
@@ -340,7 +340,7 @@ static void sub_8110A70(struct Sprite *sprite)
|
||||
sprite->data[3] = 32;
|
||||
sprite->data[4] = -24;
|
||||
|
||||
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
sprite->callback = sub_80A6450;
|
||||
sprite->callback(sprite);
|
||||
}
|
||||
@@ -367,16 +367,16 @@ void sub_8110AB4(struct Sprite *sprite)
|
||||
sprite->data[3] = 0;
|
||||
sprite->data[4] = 0;
|
||||
|
||||
sprite->callback = sub_80A656C;
|
||||
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
|
||||
sprite->callback = AnimTranslateLinearSimple;
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
}
|
||||
|
||||
void sub_8110B38(struct Sprite *sprite)
|
||||
{
|
||||
if (gBattleAnimArgs[6] == 0)
|
||||
InitAnimSpritePos(sprite, 0);
|
||||
InitSpritePosToAnimAttacker(sprite, 0);
|
||||
else
|
||||
sub_80A6980(sprite, FALSE);
|
||||
InitSpritePosToAnimTarget(sprite, FALSE);
|
||||
|
||||
sprite->data[0] = gBattleAnimArgs[3];
|
||||
sprite->data[1] = gBattleAnimArgs[2];
|
||||
@@ -555,7 +555,7 @@ void AnimDirtParticleAcrossScreen(struct Sprite *sprite)
|
||||
void AnimRaiseSprite(struct Sprite *sprite)
|
||||
{
|
||||
StartSpriteAnim(sprite, gBattleAnimArgs[4]);
|
||||
InitAnimSpritePos(sprite, 0);
|
||||
InitSpritePosToAnimAttacker(sprite, 0);
|
||||
|
||||
sprite->data[0] = gBattleAnimArgs[3];
|
||||
sprite->data[2] = sprite->pos1.x;
|
||||
|
||||
+1
-1
@@ -32,7 +32,7 @@
|
||||
#include "decompress.h"
|
||||
#include "start_menu.h"
|
||||
#include "data2.h"
|
||||
#include "field_screen.h"
|
||||
#include "field_screen_effect.h"
|
||||
|
||||
extern void HealPlayerParty(void);
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#include "decompress.h"
|
||||
#include "load_save.h"
|
||||
#include "overworld.h"
|
||||
#include "pokemon_storage_system.h"
|
||||
#include "main.h"
|
||||
#include "constants/game_stat.h"
|
||||
|
||||
|
||||
+1
-2
@@ -13,7 +13,6 @@
|
||||
#include "event_data.h"
|
||||
#include "field_door.h"
|
||||
#include "field_effect.h"
|
||||
#include "field_fadetransition.h"
|
||||
#include "event_object_movement.h"
|
||||
#include "field_message_box.h"
|
||||
#include "field_player_avatar.h"
|
||||
@@ -1486,7 +1485,7 @@ bool8 ScrCmd_braillemessage(struct ScriptContext *ctx)
|
||||
|
||||
StringExpandPlaceholders(gStringVar4, ptr + 6);
|
||||
|
||||
width = GetStringWidth(6, gStringVar4, -1) / 8;
|
||||
width = GetStringWidth(6, gStringVar4, -1) / 8u;
|
||||
|
||||
if (width > 0x1C)
|
||||
width = 0x1C;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user