Merge branch 'master' of github.com:pret/pokeemerald
This commit is contained in:
+19
-19
@@ -1924,7 +1924,7 @@ bool8 IsBattlerSpriteVisible(u8 battlerId)
|
||||
|
||||
void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible)
|
||||
{
|
||||
struct UnknownAnimStruct2 unknownStruct;
|
||||
struct BattleAnimBgData animBg;
|
||||
u8 battlerSpriteId;
|
||||
|
||||
if (!toBG_2)
|
||||
@@ -1942,9 +1942,9 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible)
|
||||
RequestDma3Fill(0xFF, (void*)(VRAM + 0xe000), 0x1000, 0);
|
||||
}
|
||||
|
||||
sub_80A6B30(&unknownStruct);
|
||||
CpuFill16(0, unknownStruct.bgTiles, 0x1000);
|
||||
CpuFill16(0xFF, unknownStruct.unk4, 0x800);
|
||||
sub_80A6B30(&animBg);
|
||||
CpuFill16(0, animBg.bgTiles, 0x1000);
|
||||
CpuFill16(0xFF, animBg.bgTilemap, 0x800);
|
||||
|
||||
SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 2);
|
||||
SetAnimBgAttribute(1, BG_ANIM_SCREEN_SIZE, 1);
|
||||
@@ -1963,15 +1963,15 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible)
|
||||
SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
|
||||
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
|
||||
|
||||
LoadPalette(&gPlttBufferUnfaded[0x100 + battlerId * 16], unknownStruct.unk8 * 16, 0x20);
|
||||
CpuCopy32(&gPlttBufferUnfaded[0x100 + battlerId * 16], (void*)(BG_PLTT + unknownStruct.unk8 * 32), 0x20);
|
||||
LoadPalette(&gPlttBufferUnfaded[0x100 + battlerId * 16], animBg.paletteId * 16, 0x20);
|
||||
CpuCopy32(&gPlttBufferUnfaded[0x100 + battlerId * 16], (void*)(BG_PLTT + animBg.paletteId * 32), 0x20);
|
||||
|
||||
if (IsContest())
|
||||
battlerPosition = 0;
|
||||
else
|
||||
battlerPosition = GetBattlerPosition(battlerId);
|
||||
|
||||
sub_8118FBC(1, 0, 0, battlerPosition, unknownStruct.unk8, unknownStruct.bgTiles, unknownStruct.unk4, unknownStruct.tilesOffset);
|
||||
sub_8118FBC(1, 0, 0, battlerPosition, animBg.paletteId, animBg.bgTiles, animBg.bgTilemap, animBg.tilesOffset);
|
||||
|
||||
if (IsContest())
|
||||
sub_80A46A0();
|
||||
@@ -1980,9 +1980,9 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible)
|
||||
{
|
||||
RequestDma3Fill(0, (void*)(VRAM + 0x6000), 0x2000, 1);
|
||||
RequestDma3Fill(0, (void*)(VRAM + 0xF000), 0x1000, 1);
|
||||
sub_80A6B90(&unknownStruct, 2);
|
||||
CpuFill16(0, unknownStruct.bgTiles + 0x1000, 0x1000);
|
||||
CpuFill16(0, unknownStruct.unk4 + 0x400, 0x800);
|
||||
sub_80A6B90(&animBg, 2);
|
||||
CpuFill16(0, animBg.bgTiles + 0x1000, 0x1000);
|
||||
CpuFill16(0, animBg.bgTilemap + 0x400, 0x800);
|
||||
SetAnimBgAttribute(2, BG_ANIM_PRIORITY, 2);
|
||||
SetAnimBgAttribute(2, BG_ANIM_SCREEN_SIZE, 1);
|
||||
SetAnimBgAttribute(2, BG_ANIM_AREA_OVERFLOW_MODE, 0);
|
||||
@@ -2001,20 +2001,20 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible)
|
||||
LoadPalette(&gPlttBufferUnfaded[0x100 + battlerId * 16], 0x90, 0x20);
|
||||
CpuCopy32(&gPlttBufferUnfaded[0x100 + battlerId * 16], (void*)(BG_PLTT + 0x120), 0x20);
|
||||
|
||||
sub_8118FBC(2, 0, 0, GetBattlerPosition(battlerId), unknownStruct.unk8, unknownStruct.bgTiles + 0x1000, unknownStruct.unk4 + 0x400, unknownStruct.tilesOffset);
|
||||
sub_8118FBC(2, 0, 0, GetBattlerPosition(battlerId), animBg.paletteId, animBg.bgTiles + 0x1000, animBg.bgTilemap + 0x400, animBg.tilesOffset);
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_80A46A0(void)
|
||||
{
|
||||
s32 i, j;
|
||||
struct UnknownAnimStruct2 unknownStruct;
|
||||
struct BattleAnimBgData animBg;
|
||||
u16 *ptr;
|
||||
|
||||
if (IsSpeciesNotUnown(gContestResources->field_18->species))
|
||||
{
|
||||
sub_80A6B30(&unknownStruct);
|
||||
ptr = unknownStruct.unk4;
|
||||
sub_80A6B30(&animBg);
|
||||
ptr = animBg.bgTilemap;
|
||||
for (i = 0; i < 8; i++)
|
||||
{
|
||||
for (j = 0; j < 4; j++)
|
||||
@@ -2052,8 +2052,8 @@ void sub_80A4720(u16 a, u16 *b, u32 c, u8 d)
|
||||
|
||||
void sub_80A477C(bool8 to_BG2)
|
||||
{
|
||||
struct UnknownAnimStruct2 unknownStruct;
|
||||
sub_80A6B30(&unknownStruct);
|
||||
struct BattleAnimBgData animBg;
|
||||
sub_80A6B30(&animBg);
|
||||
|
||||
if (!to_BG2 || IsContest())
|
||||
{
|
||||
@@ -2073,11 +2073,11 @@ static void task_pA_ma0A_obj_to_bg_pal(u8 taskId)
|
||||
{
|
||||
u8 spriteId, palIndex;
|
||||
s16 x, y;
|
||||
struct UnknownAnimStruct2 unknownStruct;
|
||||
struct BattleAnimBgData animBg;
|
||||
|
||||
spriteId = gTasks[taskId].data[0];
|
||||
palIndex = gTasks[taskId].data[6];
|
||||
sub_80A6B30(&unknownStruct);
|
||||
sub_80A6B30(&animBg);
|
||||
x = gTasks[taskId].data[1] - (gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x);
|
||||
y = gTasks[taskId].data[2] - (gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y);
|
||||
|
||||
@@ -2089,7 +2089,7 @@ static void task_pA_ma0A_obj_to_bg_pal(u8 taskId)
|
||||
gBattle_BG1_X = x + gTasks[taskId].data[3];
|
||||
gBattle_BG1_Y = y + gTasks[taskId].data[4];
|
||||
src = gPlttBufferFaded + 0x100 + palIndex * 16;
|
||||
dst = gPlttBufferFaded + 0x100 + unknownStruct.unk8 * 16 - 256;
|
||||
dst = gPlttBufferFaded + 0x100 + animBg.paletteId * 16 - 256;
|
||||
CpuCopy32(src, dst, 0x20);
|
||||
}
|
||||
else
|
||||
|
||||
+112
-115
@@ -33,21 +33,18 @@ extern const u8 gEnemyMonElevation[];
|
||||
extern const struct CompressedSpriteSheet gMonFrontPicTable[];
|
||||
extern const union AffineAnimCmd *gUnknown_082FF6C0[];
|
||||
|
||||
// This file's functions.
|
||||
void sub_80A64EC(struct Sprite *sprite);
|
||||
void sub_80A6FB4(struct Sprite *sprite);
|
||||
void sub_80A7144(struct Sprite *sprite);
|
||||
void sub_80A791C(struct Sprite *sprite);
|
||||
void sub_80A8DFC(struct Sprite *sprite);
|
||||
void sub_80A8E88(struct Sprite *sprite);
|
||||
void SetBattlerSpriteYOffsetFromYScale(u8 spriteId);
|
||||
u16 GetBattlerYDeltaFromSpriteId(u8 spriteId);
|
||||
void AnimTask_BlendMonInAndOutSetup(struct Task *task);
|
||||
void sub_80A7AFC(u8 taskId);
|
||||
void sub_80A8CAC(u8 taskId);
|
||||
void AnimTask_BlendMonInAndOutStep(u8 taskId);
|
||||
bool8 sub_80A7238(void);
|
||||
void sub_80A8D78(struct Task *task, u8 taskId);
|
||||
static void sub_80A6FB4(struct Sprite *sprite);
|
||||
static void sub_80A7144(struct Sprite *sprite);
|
||||
static void sub_80A791C(struct Sprite *sprite);
|
||||
static void sub_80A8DFC(struct Sprite *sprite);
|
||||
static void sub_80A8E88(struct Sprite *sprite);
|
||||
static u16 GetBattlerYDeltaFromSpriteId(u8 spriteId);
|
||||
static void AnimTask_BlendMonInAndOutSetup(struct Task *task);
|
||||
static void sub_80A7AFC(u8 taskId);
|
||||
static void sub_80A8CAC(u8 taskId);
|
||||
static void AnimTask_BlendMonInAndOutStep(u8 taskId);
|
||||
static bool8 sub_80A7238(void);
|
||||
static void sub_80A8D78(struct Task *task, u8 taskId);
|
||||
|
||||
// EWRAM vars
|
||||
EWRAM_DATA static union AffineAnimCmd *gAnimTaskAffineAnim = NULL;
|
||||
@@ -503,7 +500,7 @@ void sub_80A63C8(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80A6450(struct Sprite *sprite)
|
||||
void TranslateSpriteInEllipseOverDuration(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[3])
|
||||
{
|
||||
@@ -533,28 +530,28 @@ void WaitAnimForDuration(struct Sprite *sprite)
|
||||
SetCallbackToStoredInData6(sprite);
|
||||
}
|
||||
|
||||
void sub_80A64D0(struct Sprite *sprite)
|
||||
static void sub_80A64D0(struct Sprite *sprite)
|
||||
{
|
||||
sub_80A64EC(sprite);
|
||||
sprite->callback = TranslateSpriteOverDuration;
|
||||
sprite->callback = TranslateSpriteLinear;
|
||||
sprite->callback(sprite);
|
||||
}
|
||||
|
||||
void sub_80A64EC(struct Sprite *sprite)
|
||||
{
|
||||
s16 old;
|
||||
int v1;
|
||||
int xDiff;
|
||||
|
||||
if (sprite->data[1] > sprite->data[2])
|
||||
sprite->data[0] = -sprite->data[0];
|
||||
v1 = sprite->data[2] - sprite->data[1];
|
||||
xDiff = sprite->data[2] - sprite->data[1];
|
||||
old = sprite->data[0];
|
||||
sprite->data[0] = abs(v1 / sprite->data[0]);
|
||||
sprite->data[0] = abs(xDiff / sprite->data[0]);
|
||||
sprite->data[2] = (sprite->data[4] - sprite->data[3]) / sprite->data[0];
|
||||
sprite->data[1] = old;
|
||||
}
|
||||
|
||||
void TranslateSpriteOverDuration(struct Sprite *sprite)
|
||||
void TranslateSpriteLinear(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[0] > 0)
|
||||
{
|
||||
@@ -568,7 +565,7 @@ void TranslateSpriteOverDuration(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimTranslateLinearSimple(struct Sprite *sprite)
|
||||
void TranslateSpriteLinearFixedPoint(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[0] > 0)
|
||||
{
|
||||
@@ -584,7 +581,7 @@ void AnimTranslateLinearSimple(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80A65A8(struct Sprite *sprite)
|
||||
static void TranslateSpriteLinearFixedPointIconFrame(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[0] > 0)
|
||||
{
|
||||
@@ -598,6 +595,7 @@ void sub_80A65A8(struct Sprite *sprite)
|
||||
{
|
||||
SetCallbackToStoredInData6(sprite);
|
||||
}
|
||||
|
||||
UpdateMonIconFrame(sprite);
|
||||
}
|
||||
|
||||
@@ -605,12 +603,12 @@ void sub_80A65EC(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[1] = sprite->pos1.x + sprite->pos2.x;
|
||||
sprite->data[3] = sprite->pos1.y + sprite->pos2.y;
|
||||
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
|
||||
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
|
||||
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
|
||||
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
|
||||
sprite->callback = sub_80A64D0;
|
||||
}
|
||||
|
||||
void TranslateMonBGUntil(struct Sprite *sprite)
|
||||
void TranslateMonSpriteLinear(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[0] > 0)
|
||||
{
|
||||
@@ -624,9 +622,7 @@ void TranslateMonBGUntil(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
// Same as TranslateMonBGUntil, but it operates on sub-pixel values
|
||||
// to handle slower translations.
|
||||
void sub_80A6680(struct Sprite *sprite)
|
||||
void TranslateMonSpriteLinearFixedPoint(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[0] > 0)
|
||||
{
|
||||
@@ -642,7 +638,7 @@ void sub_80A6680(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80A66DC(struct Sprite *sprite)
|
||||
void TranslateSpriteLinearAndFlicker(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[0] > 0)
|
||||
{
|
||||
@@ -673,8 +669,8 @@ void sub_80A6760(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[1] = sprite->pos1.x + sprite->pos2.x;
|
||||
sprite->data[3] = sprite->pos1.y + sprite->pos2.y;
|
||||
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
|
||||
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
|
||||
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
|
||||
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
|
||||
sprite->callback = sub_80A64D0;
|
||||
}
|
||||
|
||||
@@ -696,7 +692,7 @@ void RunStoredCallbackWhenAnimEnds(struct Sprite *sprite)
|
||||
SetCallbackToStoredInData6(sprite);
|
||||
}
|
||||
|
||||
void sub_80A67F4(struct Sprite *sprite)
|
||||
void DestroyAnimSpriteAndDisableBlend(struct Sprite *sprite)
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
|
||||
@@ -749,7 +745,7 @@ void InitAnimArcTranslation(struct Sprite *sprite)
|
||||
sprite->data[7] = 0;
|
||||
}
|
||||
|
||||
bool8 TranslateAnimArc(struct Sprite *sprite)
|
||||
bool8 TranslateAnimHorizontalArc(struct Sprite *sprite)
|
||||
{
|
||||
if (AnimTranslateLinear(sprite))
|
||||
return TRUE;
|
||||
@@ -758,7 +754,7 @@ bool8 TranslateAnimArc(struct Sprite *sprite)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 sub_80A6934(struct Sprite *sprite)
|
||||
bool8 TranslateAnimVerticalArc(struct Sprite *sprite)
|
||||
{
|
||||
if (AnimTranslateLinear(sprite))
|
||||
return TRUE;
|
||||
@@ -767,7 +763,7 @@ bool8 sub_80A6934(struct Sprite *sprite)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void oamt_add_pos2_onto_pos1(struct Sprite *sprite)
|
||||
void SetSpritePrimaryCoordsFromSecondaryCoords(struct Sprite *sprite)
|
||||
{
|
||||
sprite->pos1.x += sprite->pos2.x;
|
||||
sprite->pos1.y += sprite->pos2.y;
|
||||
@@ -862,38 +858,38 @@ bool8 IsDoubleBattle(void)
|
||||
return IS_DOUBLE_BATTLE();
|
||||
}
|
||||
|
||||
void sub_80A6B30(struct UnknownAnimStruct2 *unk)
|
||||
void sub_80A6B30(struct BattleAnimBgData *unk)
|
||||
{
|
||||
if (IsContest())
|
||||
{
|
||||
unk->bgTiles = gUnknown_0202305C;
|
||||
unk->unk4 = (u16 *)gUnknown_02023060;
|
||||
unk->unk8 = 0xe;
|
||||
unk->bgTilemap = (u16 *)gUnknown_02023060;
|
||||
unk->paletteId = 14;
|
||||
unk->bgId = 1;
|
||||
unk->tilesOffset = 0;
|
||||
unk->unkC = 0;
|
||||
unk->unused = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
unk->bgTiles = gUnknown_0202305C;
|
||||
unk->unk4 = (u16 *)gUnknown_02023060;
|
||||
unk->unk8 = 0x8;
|
||||
unk->bgTilemap = (u16 *)gUnknown_02023060;
|
||||
unk->paletteId = 8;
|
||||
unk->bgId = 1;
|
||||
unk->tilesOffset = 0x200;
|
||||
unk->unkC = 0;
|
||||
unk->unused = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80A6B90(struct UnknownAnimStruct2 *unk, u32 arg1)
|
||||
void sub_80A6B90(struct BattleAnimBgData *unk, u32 arg1)
|
||||
{
|
||||
if (IsContest())
|
||||
{
|
||||
unk->bgTiles = gUnknown_0202305C;
|
||||
unk->unk4 = (u16 *)gUnknown_02023060;
|
||||
unk->unk8 = 0xe;
|
||||
unk->bgTilemap = (u16 *)gUnknown_02023060;
|
||||
unk->paletteId = 14;
|
||||
unk->bgId = 1;
|
||||
unk->tilesOffset = 0;
|
||||
unk->unkC = 0;
|
||||
unk->unused = 0;
|
||||
}
|
||||
else if (arg1 == 1)
|
||||
{
|
||||
@@ -902,76 +898,76 @@ void sub_80A6B90(struct UnknownAnimStruct2 *unk, u32 arg1)
|
||||
else
|
||||
{
|
||||
unk->bgTiles = gUnknown_0202305C;
|
||||
unk->unk4 = (u16 *)gUnknown_02023060;
|
||||
unk->unk8 = 0x9;
|
||||
unk->bgTilemap = (u16 *)gUnknown_02023060;
|
||||
unk->paletteId = 9;
|
||||
unk->bgId = 2;
|
||||
unk->tilesOffset = 0x300;
|
||||
unk->unkC = 0;
|
||||
unk->unused = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80A6BFC(struct UnknownAnimStruct2 *unk, u8 unused)
|
||||
void sub_80A6BFC(struct BattleAnimBgData *unk, u8 unused)
|
||||
{
|
||||
unk->bgTiles = gUnknown_0202305C;
|
||||
unk->unk4 = (u16 *)gUnknown_02023060;
|
||||
unk->bgTilemap = (u16 *)gUnknown_02023060;
|
||||
if (IsContest())
|
||||
{
|
||||
unk->unk8 = 0xe;
|
||||
unk->paletteId = 14;
|
||||
unk->bgId = 1;
|
||||
unk->tilesOffset = 0;
|
||||
unk->unkC = 0;
|
||||
unk->unused = 0;
|
||||
}
|
||||
else if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1)
|
||||
{
|
||||
unk->unk8 = 8;
|
||||
unk->paletteId = 8;
|
||||
unk->bgId = 1;
|
||||
unk->tilesOffset = 0x200;
|
||||
unk->unkC = 0;
|
||||
unk->unused = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
unk->unk8 = 0x9;
|
||||
unk->paletteId = 9;
|
||||
unk->bgId = 2;
|
||||
unk->tilesOffset = 0x300;
|
||||
unk->unkC = 0;
|
||||
unk->unused = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80A6C68(u32 bgId)
|
||||
{
|
||||
struct UnknownAnimStruct2 unkStruct;
|
||||
struct BattleAnimBgData unkStruct;
|
||||
|
||||
sub_80A6B90(&unkStruct, bgId);
|
||||
CpuFill32(0, unkStruct.bgTiles, 0x2000);
|
||||
LoadBgTiles(unkStruct.bgId, unkStruct.bgTiles, 0x2000, unkStruct.tilesOffset);
|
||||
FillBgTilemapBufferRect(unkStruct.bgId, 0, 0, 0, 0x20, 0x40, 0x11);
|
||||
FillBgTilemapBufferRect(unkStruct.bgId, 0, 0, 0, 32, 64, 17);
|
||||
CopyBgTilemapBufferToVram(unkStruct.bgId);
|
||||
}
|
||||
|
||||
void sub_80A6CC0(u32 bgId, const u32 *src, u32 tilesOffset)
|
||||
void AnimLoadCompressedBgGfx(u32 bgId, const u32 *src, u32 tilesOffset)
|
||||
{
|
||||
CpuFill32(0, gUnknown_0202305C, 0x2000);
|
||||
LZDecompressWram(src, gUnknown_0202305C);
|
||||
LoadBgTiles(bgId, gUnknown_0202305C, 0x2000, tilesOffset);
|
||||
}
|
||||
|
||||
void sub_80A6D10(u32 bgId, const void *src)
|
||||
static void InitAnimBgTilemapBuffer(u32 bgId, const void *src)
|
||||
{
|
||||
FillBgTilemapBufferRect(bgId, 0, 0, 0, 0x20, 0x40, 0x11);
|
||||
FillBgTilemapBufferRect(bgId, 0, 0, 0, 32, 64, 17);
|
||||
CopyToBgTilemapBuffer(bgId, src, 0, 0);
|
||||
}
|
||||
|
||||
void sub_80A6D48(u32 bgId, const void *src)
|
||||
void AnimLoadCompressedBgTilemap(u32 bgId, const void *src)
|
||||
{
|
||||
sub_80A6D10(bgId, src);
|
||||
InitAnimBgTilemapBuffer(bgId, src);
|
||||
CopyBgTilemapBufferToVram(bgId);
|
||||
}
|
||||
|
||||
void sub_80A6D60(struct UnknownAnimStruct2 *unk, const void *src, u32 arg2)
|
||||
void sub_80A6D60(struct BattleAnimBgData *unk, const void *src, u32 arg2)
|
||||
{
|
||||
sub_80A6D10(unk->bgId, src);
|
||||
InitAnimBgTilemapBuffer(unk->bgId, src);
|
||||
if (IsContest() == TRUE)
|
||||
sub_80A4720(unk->unk8, unk->unk4, 0, arg2);
|
||||
sub_80A4720(unk->paletteId, unk->bgTilemap, 0, arg2);
|
||||
CopyBgTilemapBufferToVram(unk->bgId);
|
||||
}
|
||||
|
||||
@@ -1002,7 +998,7 @@ void sub_80A6DEC(struct Sprite *sprite)
|
||||
sprite->data[1] = sprite->pos1.x;
|
||||
sprite->data[3] = sprite->pos1.y;
|
||||
InitSpriteDataForLinearTranslation(sprite);
|
||||
sprite->callback = sub_80A65A8;
|
||||
sprite->callback = TranslateSpriteLinearFixedPointIconFrame;
|
||||
sprite->callback(sprite);
|
||||
}
|
||||
|
||||
@@ -1098,7 +1094,7 @@ void sub_80A6F98(struct Sprite *sprite)
|
||||
SetCallbackToStoredInData6(sprite);
|
||||
}
|
||||
|
||||
void sub_80A6FB4(struct Sprite *sprite)
|
||||
static void sub_80A6FB4(struct Sprite *sprite)
|
||||
{
|
||||
sub_8039E9C(sprite);
|
||||
if (AnimTranslateLinear(sprite))
|
||||
@@ -1188,7 +1184,7 @@ bool8 AnimFastTranslateLinear(struct Sprite *sprite)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_80A7144(struct Sprite *sprite)
|
||||
static void sub_80A7144(struct Sprite *sprite)
|
||||
{
|
||||
if (AnimFastTranslateLinear(sprite))
|
||||
SetCallbackToStoredInData6(sprite);
|
||||
@@ -1229,7 +1225,7 @@ void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation)
|
||||
gOamMatrices[i].d = matrix.d;
|
||||
}
|
||||
|
||||
bool8 sub_80A7238(void)
|
||||
static bool8 sub_80A7238(void)
|
||||
{
|
||||
if (IsContest())
|
||||
{
|
||||
@@ -1352,56 +1348,57 @@ void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor)
|
||||
}
|
||||
}
|
||||
|
||||
u32 sub_80A75AC(u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7)
|
||||
u32 sub_80A75AC(u8 battleBackground, u8 attacker, u8 target, u8 attackerPartner, u8 targetPartner, u8 a6, u8 a7)
|
||||
{
|
||||
u32 var = 0;
|
||||
u32 selectedPalettes = 0;
|
||||
u32 shift;
|
||||
|
||||
if (a1)
|
||||
if (battleBackground)
|
||||
{
|
||||
if (!IsContest())
|
||||
var = 0xe;
|
||||
selectedPalettes = 0xe;
|
||||
else
|
||||
var = 1 << sub_80A6D94();
|
||||
selectedPalettes = 1 << sub_80A6D94();
|
||||
}
|
||||
if (a2)
|
||||
if (attacker)
|
||||
{
|
||||
shift = gBattleAnimAttacker + 16;
|
||||
var |= 1 << shift;
|
||||
selectedPalettes |= 1 << shift;
|
||||
}
|
||||
if (a3) {
|
||||
shift = gBattleAnimTarget + 16;
|
||||
var |= 1 << shift;
|
||||
}
|
||||
if (a4)
|
||||
if (target)
|
||||
{
|
||||
if (IsBattlerSpriteVisible(gBattleAnimAttacker ^ 2))
|
||||
shift = gBattleAnimTarget + 16;
|
||||
selectedPalettes |= 1 << shift;
|
||||
}
|
||||
if (attackerPartner)
|
||||
{
|
||||
if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker)))
|
||||
{
|
||||
shift = (gBattleAnimAttacker ^ 2) + 16;
|
||||
var |= 1 << shift;
|
||||
shift = BATTLE_PARTNER(gBattleAnimAttacker) + 16;
|
||||
selectedPalettes |= 1 << shift;
|
||||
}
|
||||
}
|
||||
if (a5)
|
||||
if (targetPartner)
|
||||
{
|
||||
if (IsBattlerSpriteVisible(gBattleAnimTarget ^ 2))
|
||||
if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimTarget)))
|
||||
{
|
||||
shift = (gBattleAnimTarget ^ 2) + 16;
|
||||
var |= 1 << shift;
|
||||
shift = BATTLE_PARTNER(gBattleAnimTarget) + 16;
|
||||
selectedPalettes |= 1 << shift;
|
||||
}
|
||||
}
|
||||
if (a6)
|
||||
{
|
||||
if (!IsContest())
|
||||
var |= 0x100;
|
||||
selectedPalettes |= 0x100;
|
||||
else
|
||||
var |= 0x4000;
|
||||
selectedPalettes |= 0x4000;
|
||||
}
|
||||
if (a7)
|
||||
{
|
||||
if (!IsContest())
|
||||
var |= 0x200;
|
||||
selectedPalettes |= 0x200;
|
||||
}
|
||||
return var;
|
||||
return selectedPalettes;
|
||||
}
|
||||
|
||||
u32 sub_80A76C4(u8 a1, u8 a2, u8 a3, u8 a4)
|
||||
@@ -1459,7 +1456,7 @@ u8 sub_80A77AC(u8 a1)
|
||||
return a1;
|
||||
}
|
||||
|
||||
u8 sub_80A77B4(u8 position)
|
||||
static u8 GetBattlerAtPosition_(u8 position)
|
||||
{
|
||||
return GetBattlerAtPosition(position);
|
||||
}
|
||||
@@ -1527,33 +1524,33 @@ void sub_80A78AC(struct Sprite *sprite)
|
||||
if (GetBattlerSide(gBattleAnimAttacker))
|
||||
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
|
||||
sprite->data[0] = gBattleAnimArgs[4];
|
||||
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2];
|
||||
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3];
|
||||
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2];
|
||||
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3];
|
||||
sprite->data[5] = gBattleAnimArgs[5];
|
||||
InitAnimArcTranslation(sprite);
|
||||
sprite->callback = sub_80A791C;
|
||||
}
|
||||
|
||||
void sub_80A791C(struct Sprite *sprite)
|
||||
static void sub_80A791C(struct Sprite *sprite)
|
||||
{
|
||||
if (TranslateAnimArc(sprite))
|
||||
if (TranslateAnimHorizontalArc(sprite))
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
void sub_80A7938(struct Sprite *sprite)
|
||||
{
|
||||
bool8 r4;
|
||||
u8 battlerId, attributeId;
|
||||
u8 battlerId, coordType;
|
||||
|
||||
if (!gBattleAnimArgs[6])
|
||||
{
|
||||
r4 = TRUE;
|
||||
attributeId = BATTLER_COORD_Y_PIC_OFFSET;
|
||||
coordType = BATTLER_COORD_Y_PIC_OFFSET;
|
||||
}
|
||||
else
|
||||
{
|
||||
r4 = FALSE;
|
||||
attributeId = BATTLER_COORD_Y;
|
||||
coordType = BATTLER_COORD_Y;
|
||||
}
|
||||
if (!gBattleAnimArgs[5])
|
||||
{
|
||||
@@ -1570,7 +1567,7 @@ void sub_80A7938(struct Sprite *sprite)
|
||||
InitSpritePosToAnimTarget(sprite, r4);
|
||||
sprite->data[0] = gBattleAnimArgs[4];
|
||||
sprite->data[2] = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) + gBattleAnimArgs[2];
|
||||
sprite->data[4] = GetBattlerSpriteCoord(battlerId, attributeId) + gBattleAnimArgs[3];
|
||||
sprite->data[4] = GetBattlerSpriteCoord(battlerId, coordType) + gBattleAnimArgs[3];
|
||||
sprite->callback = StartAnimLinearTranslation;
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
}
|
||||
@@ -1629,7 +1626,7 @@ void sub_80A7A74(u8 taskId)
|
||||
gTasks[taskId].func = sub_80A7AFC;
|
||||
}
|
||||
|
||||
void sub_80A7AFC(u8 taskId)
|
||||
static void sub_80A7AFC(u8 taskId)
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
@@ -1674,7 +1671,7 @@ void AnimTask_BlendMonInAndOut(u8 task)
|
||||
AnimTask_BlendMonInAndOutSetup(&gTasks[task]);
|
||||
}
|
||||
|
||||
void AnimTask_BlendMonInAndOutSetup(struct Task *task)
|
||||
static void AnimTask_BlendMonInAndOutSetup(struct Task *task)
|
||||
{
|
||||
task->data[1] = gBattleAnimArgs[1];
|
||||
task->data[2] = 0;
|
||||
@@ -1686,7 +1683,7 @@ void AnimTask_BlendMonInAndOutSetup(struct Task *task)
|
||||
task->func = AnimTask_BlendMonInAndOutStep;
|
||||
}
|
||||
|
||||
void AnimTask_BlendMonInAndOutStep(u8 taskId)
|
||||
static void AnimTask_BlendMonInAndOutStep(u8 taskId)
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
@@ -1844,7 +1841,7 @@ void SetBattlerSpriteYOffsetFromOtherYScale(u8 spriteId, u8 otherSpriteId)
|
||||
gSprites[spriteId].pos2.y = (var - var2) / 2;
|
||||
}
|
||||
|
||||
u16 GetBattlerYDeltaFromSpriteId(u8 spriteId)
|
||||
static u16 GetBattlerYDeltaFromSpriteId(u8 spriteId)
|
||||
{
|
||||
struct BattleSpriteInfo *spriteInfo;
|
||||
u8 battlerId = gSprites[spriteId].data[0];
|
||||
@@ -2300,7 +2297,7 @@ void sub_80A8A6C(struct Sprite *sprite)
|
||||
sprite->data[3] = gBattleAnimArgs[4];
|
||||
sprite->data[5] = gBattleAnimArgs[5];
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
sprite->callback = sub_80A66DC;
|
||||
sprite->callback = TranslateSpriteLinearAndFlicker;
|
||||
}
|
||||
|
||||
void sub_80A8AEC(struct Sprite *sprite)
|
||||
@@ -2321,7 +2318,7 @@ void sub_80A8AEC(struct Sprite *sprite)
|
||||
sprite->data[5] = gBattleAnimArgs[5];
|
||||
StartSpriteAnim(sprite, gBattleAnimArgs[6]);
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
sprite->callback = sub_80A66DC;
|
||||
sprite->callback = TranslateSpriteLinearAndFlicker;
|
||||
}
|
||||
|
||||
void sub_80A8B64(struct Sprite *sprite)
|
||||
@@ -2362,7 +2359,7 @@ void sub_80A8BC4(u8 taskId)
|
||||
task->func = sub_80A8CAC;
|
||||
}
|
||||
|
||||
void sub_80A8CAC(u8 taskId)
|
||||
static void sub_80A8CAC(u8 taskId)
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
switch (task->data[2])
|
||||
@@ -2395,7 +2392,7 @@ void sub_80A8CAC(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80A8D78(struct Task *task, u8 taskId)
|
||||
static void sub_80A8D78(struct Task *task, u8 taskId)
|
||||
{
|
||||
s16 spriteId = CloneBattlerSpriteWithBlend(0);
|
||||
if (spriteId >= 0)
|
||||
@@ -2411,7 +2408,7 @@ void sub_80A8D78(struct Task *task, u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80A8DFC(struct Sprite *sprite)
|
||||
static void sub_80A8DFC(struct Sprite *sprite)
|
||||
{
|
||||
if (--sprite->data[0] == 0)
|
||||
{
|
||||
@@ -2432,7 +2429,7 @@ void sub_80A8E30(struct Sprite *sprite)
|
||||
sprite->callback = sub_80A8E88;
|
||||
}
|
||||
|
||||
void sub_80A8E88(struct Sprite *sprite)
|
||||
static void sub_80A8E88(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[2] += sprite->data[0];
|
||||
sprite->data[3] += sprite->data[1];
|
||||
|
||||
@@ -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 = TranslateMonBGUntil;
|
||||
sprite->callback = TranslateMonSpriteLinear;
|
||||
}
|
||||
|
||||
static void ReverseHorizontalLungeDirection(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[0] = sprite->data[4];
|
||||
sprite->data[1] = -sprite->data[1];
|
||||
sprite->callback = TranslateMonBGUntil;
|
||||
sprite->callback = TranslateMonSpriteLinear;
|
||||
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 = TranslateMonBGUntil;
|
||||
sprite->callback = TranslateMonSpriteLinear;
|
||||
}
|
||||
|
||||
static void ReverseVerticalDipDirection(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[0] = sprite->data[4];
|
||||
sprite->data[2] = -sprite->data[2];
|
||||
sprite->callback = TranslateMonBGUntil;
|
||||
sprite->callback = TranslateMonSpriteLinear;
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
}
|
||||
|
||||
@@ -581,7 +581,7 @@ static void SlideMonToOffset(struct Sprite *sprite)
|
||||
sprite->data[5] = monSpriteId;
|
||||
sprite->invisible = TRUE;
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
sprite->callback = sub_80A6680;
|
||||
sprite->callback = TranslateMonSpriteLinearFixedPoint;
|
||||
}
|
||||
|
||||
static void sub_80D5B48(struct Sprite *sprite)
|
||||
@@ -624,7 +624,7 @@ static void sub_80D5B48(struct Sprite *sprite)
|
||||
{
|
||||
StoreSpriteCallbackInData6(sprite, sub_80D5C20);
|
||||
}
|
||||
sprite->callback = sub_80A6680;
|
||||
sprite->callback = TranslateMonSpriteLinearFixedPoint;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -392,7 +392,7 @@ extern const struct SpriteTemplate gMiniTwinklingStarSpriteTemplate;
|
||||
|
||||
void unref_sub_8170478(u8 taskId)
|
||||
{
|
||||
struct UnknownAnimStruct2 unknownStruct;
|
||||
struct BattleAnimBgData unknownStruct;
|
||||
u8 healthBoxSpriteId;
|
||||
u8 battler;
|
||||
u8 spriteId1, spriteId2, spriteId3, spriteId4;
|
||||
@@ -426,9 +426,9 @@ void unref_sub_8170478(u8 taskId)
|
||||
gSprites[spriteId4].callback = SpriteCallbackDummy;
|
||||
|
||||
sub_80A6B30(&unknownStruct);
|
||||
sub_80A6D48(unknownStruct.bgId, gUnknown_08C2EA9C);
|
||||
sub_80A6CC0(unknownStruct.bgId, gUnknown_08C2EA50, unknownStruct.tilesOffset);
|
||||
LoadCompressedPalette(gCureBubblesPal, unknownStruct.unk8 << 4, 32);
|
||||
AnimLoadCompressedBgTilemap(unknownStruct.bgId, gUnknown_08C2EA9C);
|
||||
AnimLoadCompressedBgGfx(unknownStruct.bgId, gUnknown_08C2EA50, unknownStruct.tilesOffset);
|
||||
LoadCompressedPalette(gCureBubblesPal, unknownStruct.paletteId << 4, 32);
|
||||
|
||||
gBattle_BG1_X = -gSprites[spriteId3].pos1.x + 32;
|
||||
gBattle_BG1_Y = -gSprites[spriteId3].pos1.y - 32;
|
||||
@@ -806,7 +806,7 @@ static void sub_8171134(struct Sprite *sprite)
|
||||
u8 ballId;
|
||||
int ballId2; // extra var needed to match
|
||||
|
||||
if (TranslateAnimArc(sprite))
|
||||
if (TranslateAnimHorizontalArc(sprite))
|
||||
{
|
||||
if (gBattleSpritesDataPtr->animationData->ballThrowCaseId == BALL_TRAINER_BLOCK)
|
||||
{
|
||||
@@ -1276,7 +1276,7 @@ static void sub_81719EC(struct Sprite *sprite)
|
||||
static void sub_8171AAC(struct Sprite *sprite)
|
||||
{
|
||||
sprite->invisible = !sprite->invisible;
|
||||
if (TranslateAnimArc(sprite))
|
||||
if (TranslateAnimHorizontalArc(sprite))
|
||||
DestroySprite(sprite);
|
||||
}
|
||||
|
||||
@@ -2206,7 +2206,7 @@ static void sub_817339C(struct Sprite *sprite)
|
||||
|
||||
static void sub_81733D4(struct Sprite *sprite)
|
||||
{
|
||||
if (TranslateAnimArc(sprite))
|
||||
if (TranslateAnimHorizontalArc(sprite))
|
||||
{
|
||||
sprite->data[0] = 0;
|
||||
sprite->invisible = 1;
|
||||
|
||||
+17
-17
@@ -2326,7 +2326,7 @@ void AnimAbsorptionOrb(struct Sprite* sprite)
|
||||
|
||||
static void AnimAbsorptionOrbStep(struct Sprite* sprite)
|
||||
{
|
||||
if (TranslateAnimArc(sprite))
|
||||
if (TranslateAnimHorizontalArc(sprite))
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
@@ -2401,7 +2401,7 @@ void AnimLeechSeed(struct Sprite* sprite)
|
||||
|
||||
static void AnimLeechSeedStep(struct Sprite* sprite)
|
||||
{
|
||||
if (TranslateAnimArc(sprite))
|
||||
if (TranslateAnimHorizontalArc(sprite))
|
||||
{
|
||||
sprite->invisible = 1;
|
||||
sprite->data[0] = 10;
|
||||
@@ -2662,7 +2662,7 @@ static void AnimTranslateLinearSingleSineWaveStep(struct Sprite* sprite)
|
||||
s16 r0;
|
||||
|
||||
sprite->data[0] = 1;
|
||||
TranslateAnimArc(sprite);
|
||||
TranslateAnimHorizontalArc(sprite);
|
||||
r0 = sprite->data[7];
|
||||
sprite->data[0] = a;
|
||||
if (b > 200 && r0 < 56 && sprite->oam.affineParam == 0)
|
||||
@@ -3325,7 +3325,7 @@ static void sub_8100128(u8 taskId)
|
||||
{
|
||||
case 4:
|
||||
sub_8100524(task, taskId);
|
||||
if (TranslateAnimArc(sprite))
|
||||
if (TranslateAnimHorizontalArc(sprite))
|
||||
{
|
||||
task->data[15] = 5;
|
||||
task->data[0] = 0xFF;
|
||||
@@ -3333,7 +3333,7 @@ static void sub_8100128(u8 taskId)
|
||||
break;
|
||||
case 8:
|
||||
sub_8100524(task, taskId);
|
||||
if (TranslateAnimArc(sprite))
|
||||
if (TranslateAnimHorizontalArc(sprite))
|
||||
{
|
||||
task->data[15] = 9;
|
||||
task->data[0] = 0xFF;
|
||||
@@ -3341,7 +3341,7 @@ static void sub_8100128(u8 taskId)
|
||||
break;
|
||||
case 0:
|
||||
sub_8100524(task, taskId);
|
||||
if (TranslateAnimArc(sprite))
|
||||
if (TranslateAnimHorizontalArc(sprite))
|
||||
{
|
||||
task->data[15] = 1;
|
||||
task->data[0] = 0xFF;
|
||||
@@ -3367,7 +3367,7 @@ static void sub_8100128(u8 taskId)
|
||||
break;
|
||||
case 2:
|
||||
sub_8100524(task, taskId);
|
||||
if (TranslateAnimArc(sprite))
|
||||
if (TranslateAnimHorizontalArc(sprite))
|
||||
{
|
||||
task->data[15] = 3;
|
||||
task->data[0] = 0xFF;
|
||||
@@ -3410,7 +3410,7 @@ static void sub_8100128(u8 taskId)
|
||||
break;
|
||||
case 6:
|
||||
sub_8100524(task, taskId);
|
||||
if (TranslateAnimArc(sprite))
|
||||
if (TranslateAnimHorizontalArc(sprite))
|
||||
{
|
||||
task->data[15] = 7;
|
||||
task->data[0] = 0xFF;
|
||||
@@ -3453,7 +3453,7 @@ static void sub_8100128(u8 taskId)
|
||||
break;
|
||||
case 10:
|
||||
sub_8100524(task, taskId);
|
||||
if (TranslateAnimArc(sprite))
|
||||
if (TranslateAnimHorizontalArc(sprite))
|
||||
{
|
||||
task->data[15] = 11;
|
||||
task->data[0] = 0xFF;
|
||||
@@ -3481,7 +3481,7 @@ static void sub_8100128(u8 taskId)
|
||||
}
|
||||
case 12:
|
||||
sub_8100524(task, taskId);
|
||||
if (TranslateAnimArc(sprite))
|
||||
if (TranslateAnimHorizontalArc(sprite))
|
||||
{
|
||||
DestroySprite(sprite);
|
||||
task->data[0]++;
|
||||
@@ -3766,7 +3766,7 @@ void sub_8100A94(struct Sprite* sprite)
|
||||
sprite->data[5] = gBattleAnimArgs[5];
|
||||
StartSpriteAffineAnim(sprite, gBattleAnimArgs[6]);
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
sprite->callback = sub_80A66DC;
|
||||
sprite->callback = TranslateSpriteLinearAndFlicker;
|
||||
}
|
||||
|
||||
// Moves the sprite in a diagonally slashing motion across the target mon.
|
||||
@@ -3995,7 +3995,7 @@ static void sub_8100FD4(struct Sprite *sprite)
|
||||
if (sprite->data[7] == 16)
|
||||
{
|
||||
sprite->invisible = 1;
|
||||
sprite->callback = sub_80A67F4;
|
||||
sprite->callback = DestroyAnimSpriteAndDisableBlend;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4121,7 +4121,7 @@ void sub_810130C(struct Sprite* sprite)
|
||||
sprite->data[1] = gBattleAnimArgs[3];
|
||||
sprite->data[2] = gBattleAnimArgs[4];
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
sprite->callback = AnimTranslateLinearSimple;
|
||||
sprite->callback = TranslateSpriteLinearFixedPoint;
|
||||
}
|
||||
|
||||
void sub_810135C(struct Sprite* sprite)
|
||||
@@ -4158,7 +4158,7 @@ void sub_810135C(struct Sprite* sprite)
|
||||
sprite->data[1] = gBattleAnimArgs[3];
|
||||
sprite->data[2] = gBattleAnimArgs[4];
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
sprite->callback = AnimTranslateLinearSimple;
|
||||
sprite->callback = TranslateSpriteLinearFixedPoint;
|
||||
}
|
||||
|
||||
void sub_8101440(struct Sprite* sprite)
|
||||
@@ -4428,7 +4428,7 @@ static void sub_8101998(struct Sprite* sprite)
|
||||
sprite->data[2] = 0;
|
||||
sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker];
|
||||
StoreSpriteCallbackInData6(sprite, sub_81019E8);
|
||||
sprite->callback = TranslateMonBGUntil;
|
||||
sprite->callback = TranslateMonSpriteLinear;
|
||||
}
|
||||
|
||||
static void sub_81019E8(struct Sprite* sprite)
|
||||
@@ -4458,7 +4458,7 @@ static void sub_8101A74(struct Sprite* sprite)
|
||||
sprite->data[2] = 0;
|
||||
sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker];
|
||||
StoreSpriteCallbackInData6(sprite, sub_8101B84);
|
||||
sprite->callback = TranslateMonBGUntil;
|
||||
sprite->callback = TranslateMonSpriteLinear;
|
||||
}
|
||||
|
||||
static void sub_8101AC4(struct Sprite* sprite)
|
||||
@@ -4737,7 +4737,7 @@ static void sub_8102044(struct Sprite* sprite)
|
||||
sprite->data[1] = 8;
|
||||
sprite->data[2] = 0;
|
||||
StoreSpriteCallbackInData6(sprite, sub_810207C);
|
||||
sprite->callback = TranslateSpriteOverDuration;
|
||||
sprite->callback = TranslateSpriteLinear;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+20
-20
@@ -1264,7 +1264,7 @@ void sub_8103448(struct Sprite *sprite)
|
||||
sprite->data[3] = gBattleAnimArgs[5];
|
||||
sprite->data[4] = gBattleAnimArgs[3];
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
sprite->callback = sub_80A6450;
|
||||
sprite->callback = TranslateSpriteInEllipseOverDuration;
|
||||
sprite->callback(sprite);
|
||||
}
|
||||
|
||||
@@ -2318,7 +2318,7 @@ void Anim_BreathPuff(struct Sprite *sprite)
|
||||
sprite->data[3] = 0;
|
||||
sprite->data[4] = 0;
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
sprite->callback = AnimTranslateLinearSimple;
|
||||
sprite->callback = TranslateSpriteLinearFixedPoint;
|
||||
}
|
||||
|
||||
// Animates an "angry" mark above a mon's head.
|
||||
@@ -3291,7 +3291,7 @@ static void sub_810627C(struct Sprite *sprite)
|
||||
|
||||
void sub_81062E8(u8 taskId)
|
||||
{
|
||||
struct UnknownAnimStruct2 unknownStruct;
|
||||
struct BattleAnimBgData animBg;
|
||||
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16));
|
||||
@@ -3304,16 +3304,16 @@ void sub_81062E8(u8 taskId)
|
||||
gBattle_BG1_Y = 0;
|
||||
SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
|
||||
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
|
||||
sub_80A6B30(&unknownStruct);
|
||||
sub_80A6CC0(unknownStruct.bgId, &gUnknown_08C232E0, unknownStruct.tilesOffset);
|
||||
sub_80A6D60(&unknownStruct, &gUnknown_08C23D78, 0);
|
||||
LoadCompressedPalette(&gUnknown_08C23D50, unknownStruct.unk8 << 4, 32);
|
||||
sub_80A6B30(&animBg);
|
||||
AnimLoadCompressedBgGfx(animBg.bgId, &gUnknown_08C232E0, animBg.tilesOffset);
|
||||
sub_80A6D60(&animBg, &gUnknown_08C23D78, 0);
|
||||
LoadCompressedPalette(&gUnknown_08C23D50, animBg.paletteId * 16, 32);
|
||||
gTasks[taskId].func = sub_81063A8;
|
||||
}
|
||||
|
||||
static void sub_81063A8(u8 taskId)
|
||||
{
|
||||
struct UnknownAnimStruct2 unknownStruct;
|
||||
struct BattleAnimBgData animBg;
|
||||
|
||||
switch (gTasks[taskId].data[12])
|
||||
{
|
||||
@@ -3351,8 +3351,8 @@ static void sub_81063A8(u8 taskId)
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
sub_80A6B30(&unknownStruct);
|
||||
sub_80A6C68(unknownStruct.bgId);
|
||||
sub_80A6B30(&animBg);
|
||||
sub_80A6C68(animBg.bgId);
|
||||
gTasks[taskId].data[12]++;
|
||||
break;
|
||||
case 4:
|
||||
@@ -3369,7 +3369,7 @@ static void sub_81063A8(u8 taskId)
|
||||
|
||||
void sub_81064F8(u8 taskId)
|
||||
{
|
||||
struct UnknownAnimStruct2 unknownStruct;
|
||||
struct BattleAnimBgData animBg;
|
||||
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16));
|
||||
@@ -3382,22 +3382,22 @@ void sub_81064F8(u8 taskId)
|
||||
gBattle_BG1_Y = 0;
|
||||
SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
|
||||
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
|
||||
sub_80A6B30(&unknownStruct);
|
||||
sub_80A6B30(&animBg);
|
||||
if (IsContest())
|
||||
sub_80A6D60(&unknownStruct, &gBattleAnimBackgroundTilemap_ScaryFaceContest, 0);
|
||||
sub_80A6D60(&animBg, &gBattleAnimBackgroundTilemap_ScaryFaceContest, 0);
|
||||
else if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_OPPONENT)
|
||||
sub_80A6D60(&unknownStruct, &gBattleAnimBackgroundTilemap_ScaryFacePlayer, 0);
|
||||
sub_80A6D60(&animBg, &gBattleAnimBackgroundTilemap_ScaryFacePlayer, 0);
|
||||
else
|
||||
sub_80A6D60(&unknownStruct, &gBattleAnimBackgroundTilemap_ScaryFaceOpponent, 0);
|
||||
sub_80A6D60(&animBg, &gBattleAnimBackgroundTilemap_ScaryFaceOpponent, 0);
|
||||
|
||||
sub_80A6CC0(unknownStruct.bgId, gUnknown_08C249F8, unknownStruct.tilesOffset);
|
||||
LoadCompressedPalette(gUnknown_08C249D0, unknownStruct.unk8 << 4, 32);
|
||||
AnimLoadCompressedBgGfx(animBg.bgId, gUnknown_08C249F8, animBg.tilesOffset);
|
||||
LoadCompressedPalette(gUnknown_08C249D0, animBg.paletteId * 16, 32);
|
||||
gTasks[taskId].func = sub_81065EC;
|
||||
}
|
||||
|
||||
static void sub_81065EC(u8 taskId)
|
||||
{
|
||||
struct UnknownAnimStruct2 unknownStruct;
|
||||
struct BattleAnimBgData animBg;
|
||||
|
||||
switch (gTasks[taskId].data[12])
|
||||
{
|
||||
@@ -3435,7 +3435,7 @@ static void sub_81065EC(u8 taskId)
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
sub_80A6B30(&unknownStruct);
|
||||
sub_80A6B30(&animBg);
|
||||
sub_80A6C68(1);
|
||||
sub_80A6C68(2);
|
||||
gTasks[taskId].data[12]++;
|
||||
@@ -3804,7 +3804,7 @@ void sub_8106F60(struct Sprite *sprite)
|
||||
sprite->callback = sub_8107018;
|
||||
|
||||
sprite->data[0] = 0;
|
||||
oamt_add_pos2_onto_pos1(sprite);
|
||||
SetSpritePrimaryCoordsFromSecondaryCoords(sprite);
|
||||
sprite->data[2] = 5;
|
||||
sprite->data[4] = 0;
|
||||
sprite->data[3] = 0;
|
||||
|
||||
+27
-27
@@ -1453,7 +1453,7 @@ void sub_815A6C4(struct Sprite *sprite)
|
||||
|
||||
static void sub_815A73C(struct Sprite *sprite)
|
||||
{
|
||||
if (TranslateAnimArc(sprite))
|
||||
if (TranslateAnimHorizontalArc(sprite))
|
||||
{
|
||||
sprite->data[0] = 30;
|
||||
sprite->data[1] = 0;
|
||||
@@ -2257,10 +2257,10 @@ void sub_815B7D0(u8 taskId)
|
||||
{
|
||||
int i, j;
|
||||
u8 position;
|
||||
struct UnknownAnimStruct2 unknownStruct;
|
||||
struct BattleAnimBgData animBg;
|
||||
u8 *dest;
|
||||
u8 *src;
|
||||
u16 *unk4;
|
||||
u16 *bgTilemap;
|
||||
u16 stretch;
|
||||
|
||||
switch (gTasks[taskId].data[0])
|
||||
@@ -2288,7 +2288,7 @@ void sub_815B7D0(u8 taskId)
|
||||
break;
|
||||
case 2:
|
||||
HandleSpeciesGfxDataChange(gBattleAnimAttacker, gBattleAnimTarget, gTasks[taskId].data[10]);
|
||||
sub_80A6BFC(&unknownStruct, gBattleAnimAttacker);
|
||||
sub_80A6BFC(&animBg, gBattleAnimAttacker);
|
||||
|
||||
if (IsContest())
|
||||
position = 0;
|
||||
@@ -2296,21 +2296,21 @@ void sub_815B7D0(u8 taskId)
|
||||
position = GetBattlerPosition(gBattleAnimAttacker);
|
||||
|
||||
src = gMonSpritesGfxPtr->sprites[position] + (gBattleMonForms[gBattleAnimAttacker] << 11);
|
||||
dest = unknownStruct.bgTiles;
|
||||
dest = animBg.bgTiles;
|
||||
CpuCopy32(src, dest, 0x800);
|
||||
LoadBgTiles(1, unknownStruct.bgTiles, 0x800, unknownStruct.tilesOffset);
|
||||
LoadBgTiles(1, animBg.bgTiles, 0x800, animBg.tilesOffset);
|
||||
if (IsContest())
|
||||
{
|
||||
if (IsSpeciesNotUnown(gContestResources->field_18->species) != IsSpeciesNotUnown(gContestResources->field_18->unk2))
|
||||
{
|
||||
unk4 = (u16 *)unknownStruct.unk4;
|
||||
bgTilemap = (u16 *)animBg.bgTilemap;
|
||||
for (i = 0; i < 8; i++)
|
||||
{
|
||||
for (j = 0; j < 4; j++)
|
||||
{
|
||||
u16 temp = unk4[j + i * 0x20];
|
||||
unk4[j + i * 0x20] = unk4[(7 - j) + i * 0x20];
|
||||
unk4[(7 - j) + i * 0x20] = temp;
|
||||
u16 temp = bgTilemap[j + i * 0x20];
|
||||
bgTilemap[j + i * 0x20] = bgTilemap[(7 - j) + i * 0x20];
|
||||
bgTilemap[(7 - j) + i * 0x20] = temp;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2318,7 +2318,7 @@ void sub_815B7D0(u8 taskId)
|
||||
{
|
||||
for (j = 0; j < 8; j++)
|
||||
{
|
||||
unk4[j + i * 0x20] ^= 0x400;
|
||||
bgTilemap[j + i * 0x20] ^= 0x400;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2380,7 +2380,7 @@ void sub_815BB58(u8 taskId)
|
||||
|
||||
void sub_815BB84(u8 taskId)
|
||||
{
|
||||
struct UnknownAnimStruct2 unknownStruct;
|
||||
struct BattleAnimBgData animBg;
|
||||
|
||||
switch (gTasks[taskId].data[0])
|
||||
{
|
||||
@@ -2392,8 +2392,8 @@ void sub_815BB84(u8 taskId)
|
||||
if (!IsContest())
|
||||
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1);
|
||||
|
||||
sub_80A6B30(&unknownStruct);
|
||||
sub_80A6D60(&unknownStruct, &gUnknown_08C2A6EC, 0);
|
||||
sub_80A6B30(&animBg);
|
||||
sub_80A6D60(&animBg, &gUnknown_08C2A6EC, 0);
|
||||
if (IsContest())
|
||||
{
|
||||
gBattle_BG1_X = -56;
|
||||
@@ -2409,8 +2409,8 @@ void sub_815BB84(u8 taskId)
|
||||
gBattle_BG1_Y = 0;
|
||||
}
|
||||
|
||||
sub_80A6CC0(unknownStruct.bgId, gUnknown_08C2A634, unknownStruct.tilesOffset);
|
||||
LoadCompressedPalette(gUnknown_08C2A6D4, unknownStruct.unk8 << 4, 32);
|
||||
AnimLoadCompressedBgGfx(animBg.bgId, gUnknown_08C2A634, animBg.tilesOffset);
|
||||
LoadCompressedPalette(gUnknown_08C2A6D4, animBg.paletteId * 16, 32);
|
||||
|
||||
gTasks[taskId].data[10] = gBattle_BG1_X;
|
||||
gTasks[taskId].data[11] = gBattle_BG1_Y;
|
||||
@@ -2455,8 +2455,8 @@ void sub_815BB84(u8 taskId)
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
sub_80A6B30(&unknownStruct);
|
||||
sub_80A6C68(unknownStruct.bgId);
|
||||
sub_80A6B30(&animBg);
|
||||
sub_80A6C68(animBg.bgId);
|
||||
if (!IsContest())
|
||||
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0);
|
||||
|
||||
@@ -2571,7 +2571,7 @@ static void sub_815C050(struct Sprite *sprite)
|
||||
|
||||
void sub_815C0A4(u8 taskId)
|
||||
{
|
||||
struct UnknownAnimStruct2 unknownStruct;
|
||||
struct BattleAnimBgData animBg;
|
||||
|
||||
switch (gTasks[taskId].data[0])
|
||||
{
|
||||
@@ -2583,8 +2583,8 @@ void sub_815C0A4(u8 taskId)
|
||||
if (!IsContest())
|
||||
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1);
|
||||
|
||||
sub_80A6B30(&unknownStruct);
|
||||
sub_80A6D60(&unknownStruct, &gUnknown_08C2A6EC, 0);
|
||||
sub_80A6B30(&animBg);
|
||||
sub_80A6D60(&animBg, &gUnknown_08C2A6EC, 0);
|
||||
if (IsContest())
|
||||
{
|
||||
gBattle_BG1_X = -56;
|
||||
@@ -2615,8 +2615,8 @@ void sub_815C0A4(u8 taskId)
|
||||
gBattle_BG1_Y = 0;
|
||||
}
|
||||
|
||||
sub_80A6CC0(unknownStruct.bgId, gUnknown_08C2A634, unknownStruct.tilesOffset);
|
||||
LoadCompressedPalette(gUnknown_08C2A6D4, unknownStruct.unk8 << 4, 32);
|
||||
AnimLoadCompressedBgGfx(animBg.bgId, gUnknown_08C2A634, animBg.tilesOffset);
|
||||
LoadCompressedPalette(gUnknown_08C2A6D4, animBg.paletteId * 16, 32);
|
||||
gTasks[taskId].data[10] = gBattle_BG1_X;
|
||||
gTasks[taskId].data[11] = gBattle_BG1_Y;
|
||||
gTasks[taskId].data[0]++;
|
||||
@@ -2654,8 +2654,8 @@ void sub_815C0A4(u8 taskId)
|
||||
gTasks[taskId].data[0] = 1;
|
||||
break;
|
||||
case 5:
|
||||
sub_80A6B30(&unknownStruct);
|
||||
sub_80A6C68(unknownStruct.bgId);
|
||||
sub_80A6B30(&animBg);
|
||||
sub_80A6C68(animBg.bgId);
|
||||
if (!IsContest())
|
||||
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0);
|
||||
|
||||
@@ -4130,13 +4130,13 @@ static void AnimTask_BarrageBallStep(u8 taskId)
|
||||
if (++task->data[1] > 1)
|
||||
{
|
||||
task->data[1] = 0;
|
||||
TranslateAnimArc(&gSprites[task->data[15]]);
|
||||
TranslateAnimHorizontalArc(&gSprites[task->data[15]]);
|
||||
if (++task->data[2] > 7)
|
||||
task->data[0]++;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (TranslateAnimArc(&gSprites[task->data[15]]))
|
||||
if (TranslateAnimHorizontalArc(&gSprites[task->data[15]]))
|
||||
{
|
||||
task->data[1] = 0;
|
||||
task->data[2] = 0;
|
||||
|
||||
@@ -276,7 +276,7 @@ void sub_8116B14(u8 taskId)
|
||||
int spriteId, newSpriteId;
|
||||
u16 var0;
|
||||
u16 bg1Cnt;
|
||||
struct UnknownAnimStruct2 unknownStruct;
|
||||
struct BattleAnimBgData unknownStruct;
|
||||
|
||||
var0 = 0;
|
||||
gBattle_WIN0H = 0;
|
||||
@@ -330,8 +330,8 @@ void sub_8116B14(u8 taskId)
|
||||
newSpriteId = sub_80A89C8(gBattleAnimAttacker, spriteId, species);
|
||||
sub_80A6B30(&unknownStruct);
|
||||
sub_80A6D60(&unknownStruct, gUnknown_08C20684, 0);
|
||||
sub_80A6CC0(unknownStruct.bgId, gUnknown_08C20668, unknownStruct.tilesOffset);
|
||||
LoadPalette(&gUnknown_08597418, unknownStruct.unk8 * 16 + 1, 2);
|
||||
AnimLoadCompressedBgGfx(unknownStruct.bgId, gUnknown_08C20668, unknownStruct.tilesOffset);
|
||||
LoadPalette(&gUnknown_08597418, unknownStruct.paletteId * 16 + 1, 2);
|
||||
|
||||
gBattle_BG1_X = -gSprites[spriteId].pos1.x + 32;
|
||||
gBattle_BG1_Y = -gSprites[spriteId].pos1.y + 32;
|
||||
@@ -342,7 +342,7 @@ void sub_8116B14(u8 taskId)
|
||||
|
||||
static void sub_8116D64(u8 taskId)
|
||||
{
|
||||
struct UnknownAnimStruct2 unknownStruct;
|
||||
struct BattleAnimBgData unknownStruct;
|
||||
struct Sprite *sprite;
|
||||
u16 bg1Cnt;
|
||||
|
||||
@@ -453,7 +453,7 @@ static void sub_8116F04(u8 taskId)
|
||||
|
||||
static void sub_81170EC(u8 taskId)
|
||||
{
|
||||
struct UnknownAnimStruct2 unknownStruct;
|
||||
struct BattleAnimBgData unknownStruct;
|
||||
u8 spriteId, spriteId2;
|
||||
u8 battlerSpriteId;
|
||||
|
||||
@@ -472,32 +472,32 @@ static void sub_81170EC(u8 taskId)
|
||||
else
|
||||
sub_80A6D60(&unknownStruct, gBattleStatMask2_Tilemap, 0);
|
||||
|
||||
sub_80A6CC0(unknownStruct.bgId, gBattleStatMask_Gfx, unknownStruct.tilesOffset);
|
||||
AnimLoadCompressedBgGfx(unknownStruct.bgId, gBattleStatMask_Gfx, unknownStruct.tilesOffset);
|
||||
switch (sAnimStatsChangeData->data[1])
|
||||
{
|
||||
case 0:
|
||||
LoadCompressedPalette(gBattleStatMask2_Pal, unknownStruct.unk8 << 4, 32);
|
||||
LoadCompressedPalette(gBattleStatMask2_Pal, unknownStruct.paletteId * 16, 32);
|
||||
break;
|
||||
case 1:
|
||||
LoadCompressedPalette(gBattleStatMask1_Pal, unknownStruct.unk8 << 4, 32);
|
||||
LoadCompressedPalette(gBattleStatMask1_Pal, unknownStruct.paletteId * 16, 32);
|
||||
break;
|
||||
case 2:
|
||||
LoadCompressedPalette(gBattleStatMask3_Pal, unknownStruct.unk8 << 4, 32);
|
||||
LoadCompressedPalette(gBattleStatMask3_Pal, unknownStruct.paletteId * 16, 32);
|
||||
break;
|
||||
case 3:
|
||||
LoadCompressedPalette(gBattleStatMask4_Pal, unknownStruct.unk8 << 4, 32);
|
||||
LoadCompressedPalette(gBattleStatMask4_Pal, unknownStruct.paletteId * 16, 32);
|
||||
break;
|
||||
case 4:
|
||||
LoadCompressedPalette(gBattleStatMask6_Pal, unknownStruct.unk8 << 4, 32);
|
||||
LoadCompressedPalette(gBattleStatMask6_Pal, unknownStruct.paletteId * 16, 32);
|
||||
break;
|
||||
case 5:
|
||||
LoadCompressedPalette(gBattleStatMask7_Pal, unknownStruct.unk8 << 4, 32);
|
||||
LoadCompressedPalette(gBattleStatMask7_Pal, unknownStruct.paletteId * 16, 32);
|
||||
break;
|
||||
case 6:
|
||||
LoadCompressedPalette(gBattleStatMask8_Pal, unknownStruct.unk8 << 4, 32);
|
||||
LoadCompressedPalette(gBattleStatMask8_Pal, unknownStruct.paletteId * 16, 32);
|
||||
break;
|
||||
default:
|
||||
LoadCompressedPalette(gBattleStatMask5_Pal, unknownStruct.unk8 << 4, 32);
|
||||
LoadCompressedPalette(gBattleStatMask5_Pal, unknownStruct.paletteId * 16, 32);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -773,7 +773,7 @@ void sub_8117854(u8 taskId, int unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5,
|
||||
u16 species;
|
||||
u8 spriteId, spriteId2;
|
||||
u16 bg1Cnt;
|
||||
struct UnknownAnimStruct2 unknownStruct;
|
||||
struct BattleAnimBgData unknownStruct;
|
||||
u8 battler2;
|
||||
|
||||
spriteId2 = 0;
|
||||
@@ -820,8 +820,8 @@ void sub_8117854(u8 taskId, int unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5,
|
||||
|
||||
sub_80A6B30(&unknownStruct);
|
||||
sub_80A6D60(&unknownStruct, tilemap, 0);
|
||||
sub_80A6CC0(unknownStruct.bgId, gfx, unknownStruct.tilesOffset);
|
||||
LoadCompressedPalette(palette, unknownStruct.unk8 << 4, 32);
|
||||
AnimLoadCompressedBgGfx(unknownStruct.bgId, gfx, unknownStruct.tilesOffset);
|
||||
LoadCompressedPalette(palette, unknownStruct.paletteId * 16, 32);
|
||||
|
||||
gBattle_BG1_X = 0;
|
||||
gBattle_BG1_Y = 0;
|
||||
|
||||
+75
-59
@@ -22,18 +22,20 @@
|
||||
#include "constants/songs.h"
|
||||
#include "constants/battle_string_ids.h"
|
||||
#include "constants/battle_frontier.h"
|
||||
#include "constants/items.h"
|
||||
#include "constants/moves.h"
|
||||
#include "constants/rgb.h"
|
||||
|
||||
// This file's functions.
|
||||
static void sub_81A58B4(void);
|
||||
static void sub_81A5964(void);
|
||||
static void sub_81A59FC(void);
|
||||
static void InitArenaChallenge(void);
|
||||
static void GetArenaData(void);
|
||||
static void SetArenaData(void);
|
||||
static void sub_81A5AC4(void);
|
||||
static void sub_81A5B08(void);
|
||||
static void sub_81A5B88(void);
|
||||
static void sub_81A5BE0(void);
|
||||
static void SetArenaRewardItem(void);
|
||||
static void GiveArenaRewardItem(void);
|
||||
static void BufferArenaOpponentName(void);
|
||||
static void SpriteCb_JudgmentIcon(struct Sprite *sprite);
|
||||
static void ShowJudgmentSprite(u8 x, u8 y, u8 arg2, u8 battler);
|
||||
static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler);
|
||||
|
||||
// Const rom data.
|
||||
static const s8 sMindRatings[] =
|
||||
@@ -395,7 +397,9 @@ static const s8 sMindRatings[] =
|
||||
[MOVE_PSYCHO_BOOST] = 1,
|
||||
};
|
||||
|
||||
static const struct OamData sOamData_8611F24 =
|
||||
#define TAG_JUDGEMENT_ICON 1000
|
||||
|
||||
static const struct OamData sJudgementIconOamData =
|
||||
{
|
||||
.y = 0,
|
||||
.affineMode = 0,
|
||||
@@ -412,74 +416,87 @@ static const struct OamData sOamData_8611F24 =
|
||||
.affineParam = 0
|
||||
};
|
||||
|
||||
static const union AnimCmd sSpriteAnim_8611F2C[] =
|
||||
static const union AnimCmd sJudgementIconAnimCmd0[] =
|
||||
{
|
||||
ANIMCMD_FRAME(0, 1),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sSpriteAnim_8611F34[] =
|
||||
static const union AnimCmd sJudgementIconAnimCmd1[] =
|
||||
{
|
||||
ANIMCMD_FRAME(4, 1),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sSpriteAnim_8611F3C[] =
|
||||
static const union AnimCmd sJudgementIconAnimCmd2[] =
|
||||
{
|
||||
ANIMCMD_FRAME(8, 1),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sSpriteAnim_8611F44[] =
|
||||
static const union AnimCmd sJudgementIconAnimCmd3[] =
|
||||
{
|
||||
ANIMCMD_FRAME(12, 1),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd *const sSpriteAnimTable_8611F4C[] =
|
||||
static const union AnimCmd *const sJudgementIconAnimCmds[] =
|
||||
{
|
||||
sSpriteAnim_8611F2C,
|
||||
sSpriteAnim_8611F34,
|
||||
sSpriteAnim_8611F3C,
|
||||
sSpriteAnim_8611F44
|
||||
sJudgementIconAnimCmd0,
|
||||
sJudgementIconAnimCmd1,
|
||||
sJudgementIconAnimCmd2,
|
||||
sJudgementIconAnimCmd3
|
||||
};
|
||||
|
||||
static const struct SpriteTemplate sSpriteTemplate_JudgmentIcon =
|
||||
{
|
||||
.tileTag = 0x3E8,
|
||||
.tileTag = TAG_JUDGEMENT_ICON,
|
||||
.paletteTag = 0xFFFF,
|
||||
.oam = &sOamData_8611F24,
|
||||
.anims = sSpriteAnimTable_8611F4C,
|
||||
.oam = &sJudgementIconOamData,
|
||||
.anims = sJudgementIconAnimCmds,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCb_JudgmentIcon,
|
||||
};
|
||||
|
||||
static const struct CompressedSpriteSheet gUnknown_08611F74[] =
|
||||
static const struct CompressedSpriteSheet sBattleArenaJudgementSymbolsSpriteSheet[] =
|
||||
{
|
||||
{gUnknown_08D854E8, 0x200, 0x3E8},
|
||||
{gBattleArenaJudgementSymbolsGfx, 0x200, TAG_JUDGEMENT_ICON},
|
||||
{0}
|
||||
};
|
||||
|
||||
static void (* const sArenaFunctions[])(void) =
|
||||
{
|
||||
sub_81A58B4,
|
||||
sub_81A5964,
|
||||
sub_81A59FC,
|
||||
InitArenaChallenge,
|
||||
GetArenaData,
|
||||
SetArenaData,
|
||||
sub_81A5AC4,
|
||||
sub_81A5B08,
|
||||
sub_81A5B88,
|
||||
sub_81A5BE0,
|
||||
SetArenaRewardItem,
|
||||
GiveArenaRewardItem,
|
||||
BufferArenaOpponentName,
|
||||
};
|
||||
|
||||
static const u16 gUnknown_08611FA0[6] =
|
||||
static const u16 sShortStreakRewardItems[] =
|
||||
{
|
||||
0x003f, 0x0040, 0x0041, 0x0043, 0x0042, 0x0046
|
||||
ITEM_HP_UP,
|
||||
ITEM_PROTEIN,
|
||||
ITEM_IRON,
|
||||
ITEM_CALCIUM,
|
||||
ITEM_CARBOS,
|
||||
ITEM_ZINC,
|
||||
};
|
||||
|
||||
static const u16 gUnknown_08611FAC[9] =
|
||||
static const u16 sLongStreakRewardItems[] =
|
||||
{
|
||||
0x00b3, 0x00b4, 0x00b7, 0x00c8, 0x00b9, 0x00bb, 0x00c4, 0x00c6, 0x00ba
|
||||
ITEM_BRIGHT_POWDER,
|
||||
ITEM_WHITE_HERB,
|
||||
ITEM_QUICK_CLAW,
|
||||
ITEM_LEFTOVERS,
|
||||
ITEM_MENTAL_HERB,
|
||||
ITEM_KINGS_ROCK,
|
||||
ITEM_FOCUS_BAND,
|
||||
ITEM_SCOPE_LENS,
|
||||
ITEM_CHOICE_BAND,
|
||||
};
|
||||
|
||||
// code
|
||||
@@ -490,15 +507,15 @@ void CallBattleArenaFunction(void)
|
||||
|
||||
u8 BattleArena_ShowJudgmentWindow(u8 *state)
|
||||
{
|
||||
s32 i;
|
||||
int i;
|
||||
u8 ret = 0;
|
||||
switch (*state)
|
||||
{
|
||||
case 0:
|
||||
BeginNormalPaletteFade(0x7FFFFF1C, 4, 0, 8, 0);
|
||||
BeginNormalPaletteFade(0x7FFFFF1C, 4, 0, 8, RGB_BLACK);
|
||||
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
|
||||
LoadCompressedSpriteSheet(gUnknown_08611F74);
|
||||
LoadCompressedPalette(gUnknown_08D855E8, 0x1F0, 0x20);
|
||||
LoadCompressedSpriteSheet(sBattleArenaJudgementSymbolsSpriteSheet);
|
||||
LoadCompressedPalette(gBattleArenaJudgementSymbolsPalette, 0x1F0, 0x20);
|
||||
gBattle_WIN0H = 0xFF;
|
||||
gBattle_WIN0V = 0x70;
|
||||
(*state)++;
|
||||
@@ -536,7 +553,7 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state)
|
||||
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
|
||||
for (i = 0; i < 8; i++)
|
||||
{
|
||||
u8 spriteId = CreateSprite(&sSpriteTemplate_JudgmentIcon, 0x40 + (i * 0x10), 84, 0);
|
||||
u8 spriteId = CreateSprite(&sSpriteTemplate_JudgmentIcon, 64 + i * 16, 84, 0);
|
||||
StartSpriteAnim(&gSprites[spriteId], 3);
|
||||
}
|
||||
ret = 1;
|
||||
@@ -596,14 +613,14 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state)
|
||||
HandleBattleWindow(5, 0, 24, 13, WINDOW_CLEAR);
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 256);
|
||||
BeginNormalPaletteFade(0x7FFFFF1C, 4, 8, 0, 0);
|
||||
BeginNormalPaletteFade(0x7FFFFF1C, 4, 8, 0, RGB_BLACK);
|
||||
(*state)++;
|
||||
break;
|
||||
case 10:
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
|
||||
FreeSpriteTilesByTag(0x3E8);
|
||||
FreeSpriteTilesByTag(TAG_JUDGEMENT_ICON);
|
||||
ret = 1;
|
||||
(*state)++;
|
||||
}
|
||||
@@ -615,9 +632,9 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state)
|
||||
|
||||
static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler)
|
||||
{
|
||||
s32 animNum = 0;
|
||||
s32 pointsPlayer = 0;
|
||||
s32 pointsOpponent = 0;
|
||||
int animNum = 0;
|
||||
int pointsPlayer = 0;
|
||||
int pointsOpponent = 0;
|
||||
s8 *mindPoints = gBattleStruct->arenaMindPoints;
|
||||
s8 *skillPoints = gBattleStruct->arenaSkillPoints;
|
||||
u16 *hpAtStart = gBattleStruct->arenaStartHp;
|
||||
@@ -686,7 +703,6 @@ void BattleArena_InitPoints(void)
|
||||
void BattleArena_AddMindPoints(u8 battler)
|
||||
{
|
||||
s8 *mindPoints = gBattleStruct->arenaMindPoints;
|
||||
|
||||
mindPoints[battler] += sMindRatings[gCurrentMove];
|
||||
}
|
||||
|
||||
@@ -707,7 +723,7 @@ void BattleArena_AddSkillPoints(u8 battler)
|
||||
if (!(gMoveResultFlags & MOVE_RESULT_MISSED) || gBattleCommunication[6] != 1)
|
||||
skillPoints[battler] -= 2;
|
||||
}
|
||||
else if (gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE && gMoveResultFlags & MOVE_RESULT_NOT_VERY_EFFECTIVE)
|
||||
else if ((gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) && (gMoveResultFlags & MOVE_RESULT_NOT_VERY_EFFECTIVE))
|
||||
{
|
||||
skillPoints[battler] += 1;
|
||||
}
|
||||
@@ -765,7 +781,7 @@ void sub_81A586C(u8 battler) // Unused.
|
||||
hpAtStart[BATTLE_OPPOSITE(battler)] = gBattleMons[BATTLE_OPPOSITE(battler)].hp;
|
||||
}
|
||||
|
||||
static void sub_81A58B4(void)
|
||||
static void InitArenaChallenge(void)
|
||||
{
|
||||
bool32 isCurrent;
|
||||
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
|
||||
@@ -786,14 +802,14 @@ static void sub_81A58B4(void)
|
||||
gTrainerBattleOpponent_A = 0;
|
||||
}
|
||||
|
||||
static void sub_81A5964(void)
|
||||
static void GetArenaData(void)
|
||||
{
|
||||
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
|
||||
|
||||
switch (gSpecialVar_0x8005)
|
||||
{
|
||||
case 0:
|
||||
gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_DD8;
|
||||
gSpecialVar_Result = gSaveBlock2Ptr->frontier.arenaRewardItem;
|
||||
break;
|
||||
case 1:
|
||||
gSpecialVar_Result = gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode];
|
||||
@@ -807,14 +823,14 @@ static void sub_81A5964(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_81A59FC(void)
|
||||
static void SetArenaData(void)
|
||||
{
|
||||
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
|
||||
|
||||
switch (gSpecialVar_0x8005)
|
||||
{
|
||||
case 0:
|
||||
gSaveBlock2Ptr->frontier.field_DD8 = gSpecialVar_0x8006;
|
||||
gSaveBlock2Ptr->frontier.arenaRewardItem = gSpecialVar_0x8006;
|
||||
break;
|
||||
case 1:
|
||||
gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode] = gSpecialVar_0x8006;
|
||||
@@ -846,22 +862,22 @@ static void sub_81A5AC4(void)
|
||||
sub_81A4C30();
|
||||
}
|
||||
|
||||
static void sub_81A5B08(void)
|
||||
static void SetArenaRewardItem(void)
|
||||
{
|
||||
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
|
||||
|
||||
if (gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode] > 41)
|
||||
gSaveBlock2Ptr->frontier.field_DD8 = gUnknown_08611FAC[Random() % ARRAY_COUNT(gUnknown_08611FAC)];
|
||||
gSaveBlock2Ptr->frontier.arenaRewardItem = sLongStreakRewardItems[Random() % ARRAY_COUNT(sLongStreakRewardItems)];
|
||||
else
|
||||
gSaveBlock2Ptr->frontier.field_DD8 = gUnknown_08611FA0[Random() % ARRAY_COUNT(gUnknown_08611FA0)];
|
||||
gSaveBlock2Ptr->frontier.arenaRewardItem = sShortStreakRewardItems[Random() % ARRAY_COUNT(sShortStreakRewardItems)];
|
||||
}
|
||||
|
||||
static void sub_81A5B88(void)
|
||||
static void GiveArenaRewardItem(void)
|
||||
{
|
||||
if (AddBagItem(gSaveBlock2Ptr->frontier.field_DD8, 1) == TRUE)
|
||||
if (AddBagItem(gSaveBlock2Ptr->frontier.arenaRewardItem, 1) == TRUE)
|
||||
{
|
||||
CopyItemName(gSaveBlock2Ptr->frontier.field_DD8, gStringVar1);
|
||||
gSaveBlock2Ptr->frontier.field_DD8 = 0;
|
||||
CopyItemName(gSaveBlock2Ptr->frontier.arenaRewardItem, gStringVar1);
|
||||
gSaveBlock2Ptr->frontier.arenaRewardItem = 0;
|
||||
gSpecialVar_Result = TRUE;
|
||||
}
|
||||
else
|
||||
@@ -870,12 +886,12 @@ static void sub_81A5B88(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_81A5BE0(void)
|
||||
static void BufferArenaOpponentName(void)
|
||||
{
|
||||
GetFrontierTrainerName(gStringVar1, gTrainerBattleOpponent_A);
|
||||
}
|
||||
|
||||
void sub_81A5BF8(void)
|
||||
void DrawArenaRefereeTextBox(void)
|
||||
{
|
||||
u8 width = 27;
|
||||
u8 palNum = 7;
|
||||
@@ -898,7 +914,7 @@ void sub_81A5BF8(void)
|
||||
FillBgTilemapBufferRect(0, 0x836, 29, 19, 1, 1, palNum);
|
||||
}
|
||||
|
||||
void sub_81A5D44(void)
|
||||
void RemoveArenaRefereeTextBox(void)
|
||||
{
|
||||
u8 width;
|
||||
u8 height;
|
||||
|
||||
@@ -1339,7 +1339,7 @@ static void LinkOpponentHandleTrainerSlide(void)
|
||||
|
||||
static void LinkOpponentHandleTrainerSlideBack(void)
|
||||
{
|
||||
oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y;
|
||||
@@ -1700,7 +1700,7 @@ static void LinkOpponentHandleIntroTrainerBallThrow(void)
|
||||
u8 paletteNum;
|
||||
u8 taskId;
|
||||
|
||||
oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280;
|
||||
|
||||
@@ -1160,7 +1160,7 @@ static void LinkPartnerHandleTrainerSlide(void)
|
||||
|
||||
static void LinkPartnerHandleTrainerSlideBack(void)
|
||||
{
|
||||
oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y;
|
||||
@@ -1525,7 +1525,7 @@ static void LinkPartnerHandleIntroTrainerBallThrow(void)
|
||||
u8 taskId;
|
||||
u32 trainerPicId;
|
||||
|
||||
oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40;
|
||||
|
||||
@@ -1376,7 +1376,7 @@ static void OpponentHandleTrainerSlide(void)
|
||||
|
||||
static void OpponentHandleTrainerSlideBack(void)
|
||||
{
|
||||
oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y;
|
||||
@@ -1849,7 +1849,7 @@ static void OpponentHandleIntroTrainerBallThrow(void)
|
||||
u8 paletteNum;
|
||||
u8 taskId;
|
||||
|
||||
oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280;
|
||||
|
||||
@@ -2377,7 +2377,7 @@ static void PlayerHandleTrainerSlide(void)
|
||||
|
||||
static void PlayerHandleTrainerSlideBack(void)
|
||||
{
|
||||
oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y;
|
||||
@@ -2921,7 +2921,7 @@ static void PlayerHandleIntroTrainerBallThrow(void)
|
||||
u8 paletteNum;
|
||||
u8 taskId;
|
||||
|
||||
oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40;
|
||||
|
||||
@@ -1354,7 +1354,7 @@ static void PlayerPartnerHandleTrainerSlide(void)
|
||||
|
||||
static void PlayerPartnerHandleTrainerSlideBack(void)
|
||||
{
|
||||
oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y;
|
||||
@@ -1777,7 +1777,7 @@ static void PlayerPartnerHandleIntroTrainerBallThrow(void)
|
||||
u8 paletteNum;
|
||||
u8 taskId;
|
||||
|
||||
oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40;
|
||||
|
||||
@@ -1267,7 +1267,7 @@ static void RecordedOpponentHandleTrainerSlide(void)
|
||||
|
||||
static void RecordedOpponentHandleTrainerSlideBack(void)
|
||||
{
|
||||
oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y;
|
||||
@@ -1640,7 +1640,7 @@ static void RecordedOpponentHandleIntroTrainerBallThrow(void)
|
||||
u8 paletteNum;
|
||||
u8 taskId;
|
||||
|
||||
oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280;
|
||||
|
||||
@@ -1268,7 +1268,7 @@ static void RecordedPlayerHandleTrainerSlide(void)
|
||||
|
||||
static void RecordedPlayerHandleTrainerSlideBack(void)
|
||||
{
|
||||
oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y;
|
||||
@@ -1662,7 +1662,7 @@ static void RecordedPlayerHandleIntroTrainerBallThrow(void)
|
||||
u8 taskId;
|
||||
u32 trainerPicId;
|
||||
|
||||
oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40;
|
||||
|
||||
@@ -1427,7 +1427,7 @@ static void WallyHandleIntroTrainerBallThrow(void)
|
||||
u8 paletteNum;
|
||||
u8 taskId;
|
||||
|
||||
oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50;
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40;
|
||||
|
||||
+376
-493
File diff suppressed because it is too large
Load Diff
+99
-97
@@ -16,28 +16,28 @@
|
||||
#include "constants/moves.h"
|
||||
|
||||
// IWRAM bss
|
||||
static IWRAM_DATA bool8 gUnknown_03001288;
|
||||
static IWRAM_DATA bool8 sPerformedRentalSwap;
|
||||
|
||||
// This file's functions.
|
||||
static void sub_81A5E94(void);
|
||||
static void sub_81A5FA8(void);
|
||||
static void sub_81A6054(void);
|
||||
static void InitFactoryChallenge(void);
|
||||
static void GetBattleFactoryData(void);
|
||||
static void SetBattleFactoryData(void);
|
||||
static void sub_81A613C(void);
|
||||
static void nullsub_75(void);
|
||||
static void nullsub_123(void);
|
||||
static void sub_81A6188(void);
|
||||
static void sub_81A6198(void);
|
||||
static void sub_81A61A4(void);
|
||||
static void sub_81A63CC(void);
|
||||
static void sub_81A64C4(void);
|
||||
static void sub_81A63B8(void);
|
||||
static void sub_81A61B0(void);
|
||||
static void sub_81A67EC(void);
|
||||
static void sub_81A6A08(void);
|
||||
static void sub_81A6AEC(void);
|
||||
static void sub_81A6C1C(void);
|
||||
static void SelectInitialRentalMons(void);
|
||||
static void SwapRentalMons(void);
|
||||
static void SetPerformedRentalSwap(void);
|
||||
static void SetRentalsToOpponentParty(void);
|
||||
static void SetPlayerAndOpponentParties(void);
|
||||
static void SetOpponentGfxVar(void);
|
||||
static void GenerateOpponentMons(void);
|
||||
static void GenerateInitialRentalMons(void);
|
||||
static void GetOpponentMostCommonMonType(void);
|
||||
static void GetOpponentBattleStyle(void);
|
||||
static void RestorePlayerPartyHeldItems(void);
|
||||
static u16 GetMonSetId(u8 lvlMode, u8 challengeNum, bool8 arg2);
|
||||
static u8 GetStyleForMove(u16 move);
|
||||
static u8 GetMoveBattleStyle(u16 move);
|
||||
|
||||
// Const rom data.
|
||||
static const u8 sRequiredMoveCounts[] = {3, 3, 3, 2, 2, 2, 2};
|
||||
@@ -110,25 +110,25 @@ static const u16 *const sMoveStyles[] =
|
||||
sMoves_DependsOnTheBattlesFlow,
|
||||
};
|
||||
|
||||
static void (* const gUnknown_08612120[])(void) =
|
||||
static void (* const sBattleFactoryFunctions[])(void) =
|
||||
{
|
||||
sub_81A5E94,
|
||||
sub_81A5FA8,
|
||||
sub_81A6054,
|
||||
InitFactoryChallenge,
|
||||
GetBattleFactoryData,
|
||||
SetBattleFactoryData,
|
||||
sub_81A613C,
|
||||
nullsub_75,
|
||||
nullsub_123,
|
||||
sub_81A6188,
|
||||
sub_81A6198,
|
||||
sub_81A61A4,
|
||||
sub_81A63CC,
|
||||
sub_81A64C4,
|
||||
sub_81A63B8,
|
||||
sub_81A61B0,
|
||||
sub_81A67EC,
|
||||
sub_81A6A08,
|
||||
sub_81A6AEC,
|
||||
sub_81A6C1C,
|
||||
SelectInitialRentalMons,
|
||||
SwapRentalMons,
|
||||
SetPerformedRentalSwap,
|
||||
SetRentalsToOpponentParty,
|
||||
SetPlayerAndOpponentParties,
|
||||
SetOpponentGfxVar,
|
||||
GenerateOpponentMons,
|
||||
GenerateInitialRentalMons,
|
||||
GetOpponentMostCommonMonType,
|
||||
GetOpponentBattleStyle,
|
||||
RestorePlayerPartyHeldItems,
|
||||
};
|
||||
|
||||
static const u32 gUnknown_08612164[][2] =
|
||||
@@ -178,10 +178,10 @@ static const u16 sMonsToChooseFrom[][2] =
|
||||
// code
|
||||
void CallBattleFactoryFunction(void)
|
||||
{
|
||||
gUnknown_08612120[gSpecialVar_0x8004]();
|
||||
sBattleFactoryFunctions[gSpecialVar_0x8004]();
|
||||
}
|
||||
|
||||
static void sub_81A5E94(void)
|
||||
static void InitFactoryChallenge(void)
|
||||
{
|
||||
u8 i;
|
||||
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
|
||||
@@ -197,9 +197,9 @@ static void sub_81A5E94(void)
|
||||
gSaveBlock2Ptr->frontier.factoryRentsCount[battleMode][lvlMode] = 0;
|
||||
}
|
||||
|
||||
gUnknown_03001288 = FALSE;
|
||||
sPerformedRentalSwap = FALSE;
|
||||
for (i = 0; i < 6; i++)
|
||||
gSaveBlock2Ptr->frontier.field_E70[i].monId = 0xFFFF;
|
||||
gSaveBlock2Ptr->frontier.rentalMons[i].monId = 0xFFFF;
|
||||
for (i = 0; i < 3; i++)
|
||||
gUnknown_03006298[i] = 0xFFFF;
|
||||
|
||||
@@ -207,10 +207,10 @@ static void sub_81A5E94(void)
|
||||
gTrainerBattleOpponent_A = 0;
|
||||
}
|
||||
|
||||
static void sub_81A5FA8(void)
|
||||
static void GetBattleFactoryData(void)
|
||||
{
|
||||
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
|
||||
u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
|
||||
int lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
|
||||
int battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
|
||||
|
||||
switch (gSpecialVar_0x8005)
|
||||
{
|
||||
@@ -226,10 +226,10 @@ static void sub_81A5FA8(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_81A6054(void)
|
||||
static void SetBattleFactoryData(void)
|
||||
{
|
||||
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
|
||||
u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
|
||||
int lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
|
||||
int battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
|
||||
|
||||
switch (gSpecialVar_0x8005)
|
||||
{
|
||||
@@ -243,10 +243,10 @@ static void sub_81A6054(void)
|
||||
gSaveBlock2Ptr->frontier.field_CDC &= gUnknown_08612174[battleMode][lvlMode];
|
||||
break;
|
||||
case 3:
|
||||
if (gUnknown_03001288 == TRUE)
|
||||
if (sPerformedRentalSwap == TRUE)
|
||||
{
|
||||
gSaveBlock2Ptr->frontier.factoryRentsCount[battleMode][lvlMode] = gSpecialVar_0x8006;
|
||||
gUnknown_03001288 = FALSE;
|
||||
sPerformedRentalSwap = FALSE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -270,28 +270,28 @@ static void nullsub_123(void)
|
||||
|
||||
}
|
||||
|
||||
static void sub_81A6188(void)
|
||||
static void SelectInitialRentalMons(void)
|
||||
{
|
||||
ZeroPlayerPartyMons();
|
||||
DoBattleFactorySelectScreen();
|
||||
}
|
||||
|
||||
static void sub_81A6198(void)
|
||||
static void SwapRentalMons(void)
|
||||
{
|
||||
DoBattleFactorySwapScreen();
|
||||
}
|
||||
|
||||
static void sub_81A61A4(void)
|
||||
static void SetPerformedRentalSwap(void)
|
||||
{
|
||||
gUnknown_03001288 = TRUE;
|
||||
sPerformedRentalSwap = TRUE;
|
||||
}
|
||||
|
||||
static void sub_81A61B0(void)
|
||||
static void GenerateOpponentMons(void)
|
||||
{
|
||||
s32 i, j, k;
|
||||
int i, j, k;
|
||||
u16 species[3];
|
||||
u16 heldItems[3];
|
||||
s32 firstMonId = 0;
|
||||
int firstMonId = 0;
|
||||
u16 trainerId = 0;
|
||||
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
|
||||
u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
|
||||
@@ -304,14 +304,14 @@ static void sub_81A61B0(void)
|
||||
trainerId = sub_8162548(challengeNum, gSaveBlock2Ptr->frontier.curChallengeBattleNum);
|
||||
for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum; i++)
|
||||
{
|
||||
if (gSaveBlock2Ptr->frontier.field_CB4[i] == trainerId)
|
||||
if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId)
|
||||
break;
|
||||
}
|
||||
} while (i != gSaveBlock2Ptr->frontier.curChallengeBattleNum);
|
||||
|
||||
gTrainerBattleOpponent_A = trainerId;
|
||||
if (gSaveBlock2Ptr->frontier.curChallengeBattleNum < 6)
|
||||
gSaveBlock2Ptr->frontier.field_CB4[gSaveBlock2Ptr->frontier.curChallengeBattleNum] = trainerId;
|
||||
gSaveBlock2Ptr->frontier.trainerIds[gSaveBlock2Ptr->frontier.curChallengeBattleNum] = trainerId;
|
||||
|
||||
i = 0;
|
||||
while (i != 3)
|
||||
@@ -322,7 +322,7 @@ static void sub_81A61B0(void)
|
||||
|
||||
for (j = 0; j < 6; j++)
|
||||
{
|
||||
if (gFacilityTrainerMons[monSetId].species == gFacilityTrainerMons[gSaveBlock2Ptr->frontier.field_E70[j].monId].species)
|
||||
if (gFacilityTrainerMons[monSetId].species == gFacilityTrainerMons[gSaveBlock2Ptr->frontier.rentalMons[j].monId].species)
|
||||
break;
|
||||
}
|
||||
if (j != 6)
|
||||
@@ -354,12 +354,12 @@ static void sub_81A61B0(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_81A63B8(void)
|
||||
static void SetOpponentGfxVar(void)
|
||||
{
|
||||
SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_A, 0);
|
||||
}
|
||||
|
||||
static void sub_81A63CC(void)
|
||||
static void SetRentalsToOpponentParty(void)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
@@ -370,18 +370,18 @@ static void sub_81A63CC(void)
|
||||
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
gSaveBlock2Ptr->frontier.field_E70[i + 3].monId = gUnknown_03006298[i];
|
||||
gSaveBlock2Ptr->frontier.field_E70[i + 3].ivs = GetBoxMonData(&gEnemyParty[i].box, MON_DATA_ATK_IV, NULL);
|
||||
gSaveBlock2Ptr->frontier.field_E70[i + 3].personality = GetMonData(&gEnemyParty[i], MON_DATA_PERSONALITY, NULL);
|
||||
gSaveBlock2Ptr->frontier.field_E70[i + 3].abilityBit = GetBoxMonData(&gEnemyParty[i].box, MON_DATA_ALT_ABILITY, NULL);
|
||||
gSaveBlock2Ptr->frontier.rentalMons[i + 3].monId = gUnknown_03006298[i];
|
||||
gSaveBlock2Ptr->frontier.rentalMons[i + 3].ivs = GetBoxMonData(&gEnemyParty[i].box, MON_DATA_ATK_IV, NULL);
|
||||
gSaveBlock2Ptr->frontier.rentalMons[i + 3].personality = GetMonData(&gEnemyParty[i], MON_DATA_PERSONALITY, NULL);
|
||||
gSaveBlock2Ptr->frontier.rentalMons[i + 3].abilityBit = GetBoxMonData(&gEnemyParty[i].box, MON_DATA_ALT_ABILITY, NULL);
|
||||
SetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[gUnknown_03006298[i]].itemTableId]);
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_81A64C4(void)
|
||||
static void SetPlayerAndOpponentParties(void)
|
||||
{
|
||||
s32 i, j, k;
|
||||
s32 count = 0;
|
||||
int i, j, k;
|
||||
int count = 0;
|
||||
u8 bits = 0;
|
||||
u8 monLevel;
|
||||
u16 monSetId;
|
||||
@@ -408,13 +408,13 @@ static void sub_81A64C4(void)
|
||||
ZeroPlayerPartyMons();
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
monSetId = gSaveBlock2Ptr->frontier.field_E70[i].monId;
|
||||
ivs = gSaveBlock2Ptr->frontier.field_E70[i].ivs;
|
||||
monSetId = gSaveBlock2Ptr->frontier.rentalMons[i].monId;
|
||||
ivs = gSaveBlock2Ptr->frontier.rentalMons[i].ivs;
|
||||
CreateMon(&gPlayerParty[i],
|
||||
gFacilityTrainerMons[monSetId].species,
|
||||
monLevel,
|
||||
ivs,
|
||||
TRUE, gSaveBlock2Ptr->frontier.field_E70[i].personality,
|
||||
TRUE, gSaveBlock2Ptr->frontier.rentalMons[i].personality,
|
||||
0, 0);
|
||||
|
||||
count = 0;
|
||||
@@ -439,7 +439,7 @@ static void sub_81A64C4(void)
|
||||
SetMonMoveAvoidReturn(&gPlayerParty[i], gFacilityTrainerMons[monSetId].moves[k], k);
|
||||
SetMonData(&gPlayerParty[i], MON_DATA_FRIENDSHIP, &friendship);
|
||||
SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]);
|
||||
SetMonData(&gPlayerParty[i], MON_DATA_ALT_ABILITY, &gSaveBlock2Ptr->frontier.field_E70[i].abilityBit);
|
||||
SetMonData(&gPlayerParty[i], MON_DATA_ALT_ABILITY, &gSaveBlock2Ptr->frontier.rentalMons[i].abilityBit);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -449,13 +449,13 @@ static void sub_81A64C4(void)
|
||||
case 2:
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
monSetId = gSaveBlock2Ptr->frontier.field_E70[i + 3].monId;
|
||||
ivs = gSaveBlock2Ptr->frontier.field_E70[i + 3].ivs;
|
||||
monSetId = gSaveBlock2Ptr->frontier.rentalMons[i + 3].monId;
|
||||
ivs = gSaveBlock2Ptr->frontier.rentalMons[i + 3].ivs;
|
||||
CreateMon(&gEnemyParty[i],
|
||||
gFacilityTrainerMons[monSetId].species,
|
||||
monLevel,
|
||||
ivs,
|
||||
TRUE, gSaveBlock2Ptr->frontier.field_E70[i + 3].personality,
|
||||
TRUE, gSaveBlock2Ptr->frontier.rentalMons[i + 3].personality,
|
||||
0, 0);
|
||||
|
||||
count = 0;
|
||||
@@ -478,15 +478,15 @@ static void sub_81A64C4(void)
|
||||
for (k = 0; k < MAX_MON_MOVES; k++)
|
||||
SetMonMoveAvoidReturn(&gEnemyParty[i], gFacilityTrainerMons[monSetId].moves[k], k);
|
||||
SetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]);
|
||||
SetMonData(&gEnemyParty[i], MON_DATA_ALT_ABILITY, &gSaveBlock2Ptr->frontier.field_E70[i + 3].abilityBit);
|
||||
SetMonData(&gEnemyParty[i], MON_DATA_ALT_ABILITY, &gSaveBlock2Ptr->frontier.rentalMons[i + 3].abilityBit);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_81A67EC(void)
|
||||
static void GenerateInitialRentalMons(void)
|
||||
{
|
||||
s32 i, j;
|
||||
int i, j;
|
||||
u8 firstMonId;
|
||||
u8 battleMode;
|
||||
u8 lvlMode;
|
||||
@@ -526,7 +526,7 @@ static void sub_81A67EC(void)
|
||||
factoryLvlMode = FRONTIER_LVL_50;
|
||||
firstMonId = 0;
|
||||
}
|
||||
var_40 = sub_81A6F70(factoryBattleMode, factoryLvlMode);
|
||||
var_40 = GetNumPastRentalsRank(factoryBattleMode, factoryLvlMode);
|
||||
|
||||
currSpecies = SPECIES_NONE;
|
||||
i = 0;
|
||||
@@ -570,7 +570,7 @@ static void sub_81A67EC(void)
|
||||
if (j != firstMonId + i)
|
||||
continue;
|
||||
|
||||
gSaveBlock2Ptr->frontier.field_E70[i].monId = monSetId;
|
||||
gSaveBlock2Ptr->frontier.rentalMons[i].monId = monSetId;
|
||||
species[i] = gFacilityTrainerMons[monSetId].species;
|
||||
heldItems[i] = gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId];
|
||||
monIds[i] = monSetId;
|
||||
@@ -578,7 +578,7 @@ static void sub_81A67EC(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_81A6A08(void)
|
||||
static void GetOpponentMostCommonMonType(void)
|
||||
{
|
||||
u8 i;
|
||||
u8 typesCount[NUMBER_OF_MON_TYPES];
|
||||
@@ -613,7 +613,7 @@ static void sub_81A6A08(void)
|
||||
gSpecialVar_Result = NUMBER_OF_MON_TYPES;
|
||||
}
|
||||
|
||||
static void sub_81A6AEC(void)
|
||||
static void GetOpponentBattleStyle(void)
|
||||
{
|
||||
u8 i, j, count;
|
||||
u8 stylePoints[8];
|
||||
@@ -622,13 +622,14 @@ static void sub_81A6AEC(void)
|
||||
gFacilityTrainerMons = gBattleFrontierMons;
|
||||
for (i = 0; i < 8; i++)
|
||||
stylePoints[i] = 0;
|
||||
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
u16 monSetId = gUnknown_03006298[i];
|
||||
for (j = 0; j < MAX_MON_MOVES; j++)
|
||||
{
|
||||
u8 id = GetStyleForMove(gFacilityTrainerMons[monSetId].moves[j]);
|
||||
stylePoints[id]++;
|
||||
u8 battleStyle = GetMoveBattleStyle(gFacilityTrainerMons[monSetId].moves[j]);
|
||||
stylePoints[battleStyle]++;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -641,11 +642,12 @@ static void sub_81A6AEC(void)
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
if (count > 2)
|
||||
gSpecialVar_Result = 8;
|
||||
}
|
||||
|
||||
static u8 GetStyleForMove(u16 move)
|
||||
static u8 GetMoveBattleStyle(u16 move)
|
||||
{
|
||||
const u16 *moves;
|
||||
u8 i, j;
|
||||
@@ -661,13 +663,13 @@ static u8 GetStyleForMove(u16 move)
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool8 sub_81A6BF4(void)
|
||||
bool8 InBattleFactory(void)
|
||||
{
|
||||
return gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM
|
||||
|| gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM;
|
||||
}
|
||||
|
||||
static void sub_81A6C1C(void)
|
||||
static void RestorePlayerPartyHeldItems(void)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
@@ -680,7 +682,7 @@ static void sub_81A6C1C(void)
|
||||
{
|
||||
SetMonData(&gPlayerParty[i],
|
||||
MON_DATA_HELD_ITEM,
|
||||
&gBattleFrontierHeldItems[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.field_E70[i].monId].itemTableId]);
|
||||
&gBattleFrontierHeldItems[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.rentalMons[i].monId].itemTableId]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -699,11 +701,11 @@ u8 GetFactoryMonFixedIV(u8 arg0, u8 arg1)
|
||||
|
||||
void FillFactoryBrainParty(void)
|
||||
{
|
||||
s32 i, j, k;
|
||||
int i, j, k;
|
||||
u16 species[3];
|
||||
u16 heldItems[3];
|
||||
u8 friendship;
|
||||
s32 monLevel;
|
||||
int monLevel;
|
||||
u8 fixedIV;
|
||||
u32 otId;
|
||||
|
||||
@@ -726,7 +728,7 @@ void FillFactoryBrainParty(void)
|
||||
|
||||
for (j = 0; j < 6; j++)
|
||||
{
|
||||
if (monSetId == gSaveBlock2Ptr->frontier.field_E70[j].monId)
|
||||
if (monSetId == gSaveBlock2Ptr->frontier.rentalMons[j].monId)
|
||||
break;
|
||||
}
|
||||
if (j != 6)
|
||||
@@ -769,7 +771,7 @@ void FillFactoryBrainParty(void)
|
||||
|
||||
static u16 GetMonSetId(u8 lvlMode, u8 challengeNum, bool8 arg2)
|
||||
{
|
||||
u16 range, ret;
|
||||
u16 range, monSetId;
|
||||
u16 adder;
|
||||
|
||||
if (lvlMode == FRONTIER_LVL_50)
|
||||
@@ -782,14 +784,14 @@ static u16 GetMonSetId(u8 lvlMode, u8 challengeNum, bool8 arg2)
|
||||
if (arg2)
|
||||
{
|
||||
range = (sMonsToChooseFrom[adder + challengeNum + 1][1] - sMonsToChooseFrom[adder + challengeNum + 1][0]) + 1;
|
||||
ret = Random() % range;
|
||||
ret += sMonsToChooseFrom[adder + challengeNum + 1][0];
|
||||
monSetId = Random() % range;
|
||||
monSetId += sMonsToChooseFrom[adder + challengeNum + 1][0];
|
||||
}
|
||||
else
|
||||
{
|
||||
range = (sMonsToChooseFrom[adder + challengeNum][1] - sMonsToChooseFrom[adder + challengeNum][0]) + 1;
|
||||
ret = Random() % range;
|
||||
ret += sMonsToChooseFrom[adder + challengeNum][0];
|
||||
monSetId = Random() % range;
|
||||
monSetId += sMonsToChooseFrom[adder + challengeNum][0];
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -798,14 +800,14 @@ static u16 GetMonSetId(u8 lvlMode, u8 challengeNum, bool8 arg2)
|
||||
if (num != 7)
|
||||
num = 7;
|
||||
range = (sMonsToChooseFrom[adder + num][1] - sMonsToChooseFrom[adder + num][0]) + 1;
|
||||
ret = Random() % range;
|
||||
ret += sMonsToChooseFrom[adder + num][0];
|
||||
monSetId = Random() % range;
|
||||
monSetId += sMonsToChooseFrom[adder + num][0];
|
||||
}
|
||||
|
||||
return ret;
|
||||
return monSetId;
|
||||
}
|
||||
|
||||
u8 sub_81A6F70(u8 battleMode, u8 lvlMode)
|
||||
u8 GetNumPastRentalsRank(u8 battleMode, u8 lvlMode)
|
||||
{
|
||||
u8 ret;
|
||||
u8 rents = gSaveBlock2Ptr->frontier.factoryRentsCount[battleMode][lvlMode];
|
||||
@@ -828,7 +830,7 @@ u8 sub_81A6F70(u8 battleMode, u8 lvlMode)
|
||||
|
||||
u32 GetAiScriptsInBattleFactory(void)
|
||||
{
|
||||
s32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
|
||||
int lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
|
||||
|
||||
if (lvlMode == FRONTIER_LVL_TENT)
|
||||
{
|
||||
@@ -836,8 +838,8 @@ u32 GetAiScriptsInBattleFactory(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
s32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
|
||||
s32 challengeNum = gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode] / 7;
|
||||
int battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
|
||||
int challengeNum = gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode] / 7;
|
||||
|
||||
if (gTrainerBattleOpponent_A == TRAINER_FRONTIER_BRAIN)
|
||||
return AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY;
|
||||
|
||||
+11
-11
@@ -1673,12 +1673,12 @@ static void CreateFrontierFactorySelectableMons(u8 firstMonId)
|
||||
else
|
||||
level = 50;
|
||||
|
||||
var_28 = sub_81A6F70(battleMode, lvlMode);
|
||||
var_28 = GetNumPastRentalsRank(battleMode, lvlMode);
|
||||
otId = T1_READ_32(gSaveBlock2Ptr->playerTrainerId);
|
||||
|
||||
for (i = 0; i < SELECTABLE_MONS_COUNT; i++)
|
||||
{
|
||||
u16 monSetId = gSaveBlock2Ptr->frontier.field_E70[i].monId;
|
||||
u16 monSetId = gSaveBlock2Ptr->frontier.rentalMons[i].monId;
|
||||
sFactorySelectScreen->mons[i + firstMonId].monSetId = monSetId;
|
||||
if (i < var_28)
|
||||
ivs = GetFactoryMonFixedIV(challengeNum + 1, 0);
|
||||
@@ -1712,7 +1712,7 @@ static void CreateTentFactorySelectableMons(u8 firstMonId)
|
||||
|
||||
for (i = 0; i < SELECTABLE_MONS_COUNT; i++)
|
||||
{
|
||||
u16 monSetId = gSaveBlock2Ptr->frontier.field_E70[i].monId;
|
||||
u16 monSetId = gSaveBlock2Ptr->frontier.rentalMons[i].monId;
|
||||
sFactorySelectScreen->mons[i + firstMonId].monSetId = monSetId;
|
||||
CreateMonWithEVSpreadNatureOTID(&sFactorySelectScreen->mons[i + firstMonId].monData,
|
||||
gFacilityTrainerMons[monSetId].species,
|
||||
@@ -1740,10 +1740,10 @@ static void Select_CopyMonsToPlayerParty(void)
|
||||
if (sFactorySelectScreen->mons[j].selectedId == i + 1)
|
||||
{
|
||||
gPlayerParty[i] = sFactorySelectScreen->mons[j].monData;
|
||||
gSaveBlock2Ptr->frontier.field_E70[i].monId = sFactorySelectScreen->mons[j].monSetId;
|
||||
gSaveBlock2Ptr->frontier.field_E70[i].personality = GetMonData(&gPlayerParty[i].box, MON_DATA_PERSONALITY, NULL);
|
||||
gSaveBlock2Ptr->frontier.field_E70[i].abilityBit = GetBoxMonData(&gPlayerParty[i].box, MON_DATA_ALT_ABILITY, NULL);
|
||||
gSaveBlock2Ptr->frontier.field_E70[i].ivs = GetBoxMonData(&gPlayerParty[i].box, MON_DATA_ATK_IV, NULL);
|
||||
gSaveBlock2Ptr->frontier.rentalMons[i].monId = sFactorySelectScreen->mons[j].monSetId;
|
||||
gSaveBlock2Ptr->frontier.rentalMons[i].personality = GetMonData(&gPlayerParty[i].box, MON_DATA_PERSONALITY, NULL);
|
||||
gSaveBlock2Ptr->frontier.rentalMons[i].abilityBit = GetBoxMonData(&gPlayerParty[i].box, MON_DATA_ALT_ABILITY, NULL);
|
||||
gSaveBlock2Ptr->frontier.rentalMons[i].ivs = GetBoxMonData(&gPlayerParty[i].box, MON_DATA_ATK_IV, NULL);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -2263,10 +2263,10 @@ static void CopySwappedMonData(void)
|
||||
gPlayerParty[sFactorySwapScreen->playerMonId] = gEnemyParty[sFactorySwapScreen->enemyMonId];
|
||||
happiness = 0;
|
||||
SetMonData(&gPlayerParty[sFactorySwapScreen->playerMonId], MON_DATA_FRIENDSHIP, &happiness);
|
||||
gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->playerMonId].monId = gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->enemyMonId + 3].monId;
|
||||
gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->playerMonId].ivs = gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->enemyMonId + 3].ivs;
|
||||
gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->playerMonId].personality = GetMonData(&gEnemyParty[sFactorySwapScreen->enemyMonId], MON_DATA_PERSONALITY, NULL);
|
||||
gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->playerMonId].abilityBit = GetBoxMonData(&gEnemyParty[sFactorySwapScreen->enemyMonId].box, MON_DATA_ALT_ABILITY, NULL);
|
||||
gSaveBlock2Ptr->frontier.rentalMons[sFactorySwapScreen->playerMonId].monId = gSaveBlock2Ptr->frontier.rentalMons[sFactorySwapScreen->enemyMonId + 3].monId;
|
||||
gSaveBlock2Ptr->frontier.rentalMons[sFactorySwapScreen->playerMonId].ivs = gSaveBlock2Ptr->frontier.rentalMons[sFactorySwapScreen->enemyMonId + 3].ivs;
|
||||
gSaveBlock2Ptr->frontier.rentalMons[sFactorySwapScreen->playerMonId].personality = GetMonData(&gEnemyParty[sFactorySwapScreen->enemyMonId], MON_DATA_PERSONALITY, NULL);
|
||||
gSaveBlock2Ptr->frontier.rentalMons[sFactorySwapScreen->playerMonId].abilityBit = GetBoxMonData(&gEnemyParty[sFactorySwapScreen->enemyMonId].box, MON_DATA_ALT_ABILITY, NULL);
|
||||
}
|
||||
|
||||
static void Task_FromSwapScreenToSummaryScreen(u8 taskId)
|
||||
|
||||
+399
-376
File diff suppressed because it is too large
Load Diff
+964
-901
File diff suppressed because it is too large
Load Diff
@@ -338,7 +338,7 @@ static const struct SpriteTemplate gUnknown_0861F3D4 =
|
||||
};
|
||||
|
||||
// code
|
||||
void sub_81C4EEC(void)
|
||||
void InitBattlePyramidBagCursorPosition(void)
|
||||
{
|
||||
gPyramidBagCursorData.cursorPosition = 0;
|
||||
gPyramidBagCursorData.scrollPosition = 0;
|
||||
|
||||
@@ -6721,10 +6721,10 @@ static void atk76_various(void)
|
||||
MarkBattlerForControllerExec(gActiveBattler);
|
||||
break;
|
||||
case 14:
|
||||
sub_81A5BF8();
|
||||
DrawArenaRefereeTextBox();
|
||||
break;
|
||||
case 15:
|
||||
sub_81A5D44();
|
||||
RemoveArenaRefereeTextBox();
|
||||
break;
|
||||
case VARIOUS_ARENA_JUDGMENT_STRING:
|
||||
BattleStringExpandPlaceholdersToDisplayedString(gRefereeStringsTable[gBattlescriptCurrInstr[1]]);
|
||||
|
||||
+3
-3
@@ -874,8 +874,8 @@ u8 sub_80B100C(s32 arg0)
|
||||
return sUnknown_0854FE98[Random() % ARRAY_COUNT(sUnknown_0854FE98)];
|
||||
}
|
||||
|
||||
var = gSaveBlock2Ptr->frontier.field_CB4[gSaveBlock2Ptr->frontier.curChallengeBattleNum * 2 + 0]
|
||||
+ gSaveBlock2Ptr->frontier.field_CB4[gSaveBlock2Ptr->frontier.curChallengeBattleNum * 2 + 1];
|
||||
var = gSaveBlock2Ptr->frontier.trainerIds[gSaveBlock2Ptr->frontier.curChallengeBattleNum * 2 + 0]
|
||||
+ gSaveBlock2Ptr->frontier.trainerIds[gSaveBlock2Ptr->frontier.curChallengeBattleNum * 2 + 1];
|
||||
|
||||
return sUnknown_0854FE98[var % ARRAY_COUNT(sUnknown_0854FE98)];
|
||||
}
|
||||
@@ -1266,7 +1266,7 @@ void BattleSetup_StartTrainerBattle(void)
|
||||
ZeroMonData(&gEnemyParty[2]);
|
||||
}
|
||||
|
||||
sub_81A9B04();
|
||||
MarkApproachingPyramidTrainersAsBattled();
|
||||
}
|
||||
else if (sub_81D5C18())
|
||||
{
|
||||
|
||||
+4
-4
@@ -329,7 +329,7 @@ static void sub_81B9EC0(void)
|
||||
if (j != i + firstMonId)
|
||||
continue;
|
||||
|
||||
gSaveBlock2Ptr->frontier.field_E70[i].monId = monSetId;
|
||||
gSaveBlock2Ptr->frontier.rentalMons[i].monId = monSetId;
|
||||
species[i] = gFacilityTrainerMons[monSetId].species;
|
||||
heldItems[i] = gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId];
|
||||
monIds[i] = monSetId;
|
||||
@@ -356,7 +356,7 @@ static void sub_81BA040(void)
|
||||
trainerId = Random() % 30;
|
||||
for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum; i++)
|
||||
{
|
||||
if (gSaveBlock2Ptr->frontier.field_CB4[i] == trainerId)
|
||||
if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId)
|
||||
break;
|
||||
}
|
||||
} while (i != gSaveBlock2Ptr->frontier.curChallengeBattleNum);
|
||||
@@ -370,7 +370,7 @@ static void sub_81BA040(void)
|
||||
}
|
||||
|
||||
if (gSaveBlock2Ptr->frontier.curChallengeBattleNum < 2)
|
||||
gSaveBlock2Ptr->frontier.field_CB4[gSaveBlock2Ptr->frontier.curChallengeBattleNum] = gTrainerBattleOpponent_A;
|
||||
gSaveBlock2Ptr->frontier.trainerIds[gSaveBlock2Ptr->frontier.curChallengeBattleNum] = gTrainerBattleOpponent_A;
|
||||
|
||||
monSets = gFacilityTrainers[gTrainerBattleOpponent_A].monSets;
|
||||
i = 0;
|
||||
@@ -379,7 +379,7 @@ static void sub_81BA040(void)
|
||||
sRandMonSetId = monSets[Random() % setsCount];
|
||||
for (j = 0; j < 6; j++)
|
||||
{
|
||||
if (gFacilityTrainerMons[sRandMonSetId].species == gFacilityTrainerMons[gSaveBlock2Ptr->frontier.field_E70[j].monId].species)
|
||||
if (gFacilityTrainerMons[sRandMonSetId].species == gFacilityTrainerMons[gSaveBlock2Ptr->frontier.rentalMons[j].monId].species)
|
||||
break;
|
||||
}
|
||||
if (j != 6)
|
||||
|
||||
+43
-43
@@ -1311,15 +1311,15 @@ static void ChooseNextBattleTowerTrainer(void)
|
||||
if (battleMode == FRONTIER_MODE_MULTIS || battleMode == FRONTIER_MODE_LINK_MULTIS)
|
||||
{
|
||||
id = gSaveBlock2Ptr->frontier.curChallengeBattleNum;
|
||||
gTrainerBattleOpponent_A = gSaveBlock2Ptr->frontier.field_CB4[id * 2];
|
||||
gTrainerBattleOpponent_B = gSaveBlock2Ptr->frontier.field_CB4[id * 2 + 1];
|
||||
gTrainerBattleOpponent_A = gSaveBlock2Ptr->frontier.trainerIds[id * 2];
|
||||
gTrainerBattleOpponent_B = gSaveBlock2Ptr->frontier.trainerIds[id * 2 + 1];
|
||||
SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_A, 0);
|
||||
SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_B, 1);
|
||||
}
|
||||
else if (ChooseSpecialBattleTowerTrainer())
|
||||
{
|
||||
SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_A, 0);
|
||||
gSaveBlock2Ptr->frontier.field_CB4[gSaveBlock2Ptr->frontier.curChallengeBattleNum] = gTrainerBattleOpponent_A;
|
||||
gSaveBlock2Ptr->frontier.trainerIds[gSaveBlock2Ptr->frontier.curChallengeBattleNum] = gTrainerBattleOpponent_A;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1331,7 +1331,7 @@ static void ChooseNextBattleTowerTrainer(void)
|
||||
// Ensure trainer wasn't previously fought in this challenge.
|
||||
for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum; i++)
|
||||
{
|
||||
if (gSaveBlock2Ptr->frontier.field_CB4[i] == id)
|
||||
if (gSaveBlock2Ptr->frontier.trainerIds[i] == id)
|
||||
break;
|
||||
}
|
||||
if (i == gSaveBlock2Ptr->frontier.curChallengeBattleNum)
|
||||
@@ -1341,7 +1341,7 @@ static void ChooseNextBattleTowerTrainer(void)
|
||||
gTrainerBattleOpponent_A = id;
|
||||
SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_A, 0);
|
||||
if (gSaveBlock2Ptr->frontier.curChallengeBattleNum + 1 < 7)
|
||||
gSaveBlock2Ptr->frontier.field_CB4[gSaveBlock2Ptr->frontier.curChallengeBattleNum] = gTrainerBattleOpponent_A;
|
||||
gSaveBlock2Ptr->frontier.trainerIds[gSaveBlock2Ptr->frontier.curChallengeBattleNum] = gTrainerBattleOpponent_A;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2250,7 +2250,7 @@ void DoSpecialTrainerBattle(void)
|
||||
break;
|
||||
case FRONTIER_MODE_MULTIS:
|
||||
FillFrontierTrainersParties(2);
|
||||
gPartnerTrainerId = gSaveBlock2Ptr->frontier.field_CB4[17];
|
||||
gPartnerTrainerId = gSaveBlock2Ptr->frontier.trainerIds[17];
|
||||
FillPartnerParty(gPartnerTrainerId);
|
||||
gBattleTypeFlags |= BATTLE_TYPE_DOUBLE | BATTLE_TYPE_INGAME_PARTNER | BATTLE_TYPE_MULTI | BATTLE_TYPE_TWO_OPPONENTS;
|
||||
break;
|
||||
@@ -2524,32 +2524,32 @@ static void sub_81642A0(void)
|
||||
trainerId = sub_8162548(challengeNum, 0);
|
||||
for (i = 0; i < j; i++)
|
||||
{
|
||||
if (gSaveBlock2Ptr->frontier.field_CB4[i] == trainerId)
|
||||
if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId)
|
||||
break;
|
||||
if (gFacilityTrainers[gSaveBlock2Ptr->frontier.field_CB4[i]].facilityClass == gFacilityTrainers[trainerId].facilityClass)
|
||||
if (gFacilityTrainers[gSaveBlock2Ptr->frontier.trainerIds[i]].facilityClass == gFacilityTrainers[trainerId].facilityClass)
|
||||
break;
|
||||
}
|
||||
} while (i != j);
|
||||
gSaveBlock2Ptr->frontier.field_CB4[j] = trainerId;
|
||||
gSaveBlock2Ptr->frontier.trainerIds[j] = trainerId;
|
||||
j++;
|
||||
} while (j < 6);
|
||||
|
||||
r10 = 8;
|
||||
for (i = 0; i < 6; i++)
|
||||
{
|
||||
trainerId = gSaveBlock2Ptr->frontier.field_CB4[i];
|
||||
trainerId = gSaveBlock2Ptr->frontier.trainerIds[i];
|
||||
eventObjTemplates[i + 1].graphicsId = GetBattleFacilityTrainerGfxId(trainerId);
|
||||
for (j = 0; j < 2; j++)
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
monSetId = RandomizeFacilityTrainerMonSet(trainerId);
|
||||
if (j % 2 != 0 && gFacilityTrainerMons[gSaveBlock2Ptr->frontier.field_CB4[r10 - 1]].itemTableId == gFacilityTrainerMons[monSetId].itemTableId)
|
||||
if (j % 2 != 0 && gFacilityTrainerMons[gSaveBlock2Ptr->frontier.trainerIds[r10 - 1]].itemTableId == gFacilityTrainerMons[monSetId].itemTableId)
|
||||
continue;
|
||||
|
||||
for (k = 8; k < r10; k++)
|
||||
{
|
||||
if (gFacilityTrainerMons[gSaveBlock2Ptr->frontier.field_CB4[k]].species == gFacilityTrainerMons[monSetId].species)
|
||||
if (gFacilityTrainerMons[gSaveBlock2Ptr->frontier.trainerIds[k]].species == gFacilityTrainerMons[monSetId].species)
|
||||
break;
|
||||
if (species1 == gFacilityTrainerMons[monSetId].species)
|
||||
break;
|
||||
@@ -2560,7 +2560,7 @@ static void sub_81642A0(void)
|
||||
break;
|
||||
}
|
||||
|
||||
gSaveBlock2Ptr->frontier.field_CB4[r10] = monSetId;
|
||||
gSaveBlock2Ptr->frontier.trainerIds[r10] = monSetId;
|
||||
r10++;
|
||||
}
|
||||
}
|
||||
@@ -2591,10 +2591,10 @@ static void sub_81642A0(void)
|
||||
}
|
||||
if (r10 != 0)
|
||||
{
|
||||
gSaveBlock2Ptr->frontier.field_CB4[6] = spArray[Random() % r10];
|
||||
eventObjTemplates[7].graphicsId = GetBattleFacilityTrainerGfxId(gSaveBlock2Ptr->frontier.field_CB4[6]);
|
||||
gSaveBlock2Ptr->frontier.trainerIds[6] = spArray[Random() % r10];
|
||||
eventObjTemplates[7].graphicsId = GetBattleFacilityTrainerGfxId(gSaveBlock2Ptr->frontier.trainerIds[6]);
|
||||
FlagClear(FLAG_HIDE_BATTLE_TOWER_MULTI_BATTLE_PARTNER_ALT_1);
|
||||
sub_81640E0(gSaveBlock2Ptr->frontier.field_CB4[6]);
|
||||
sub_81640E0(gSaveBlock2Ptr->frontier.trainerIds[6]);
|
||||
}
|
||||
|
||||
r10 = 0;
|
||||
@@ -2634,10 +2634,10 @@ static void sub_81642A0(void)
|
||||
}
|
||||
if (r10 != 0)
|
||||
{
|
||||
gSaveBlock2Ptr->frontier.field_CB4[7] = spArray[Random() % r10];
|
||||
eventObjTemplates[8].graphicsId = GetBattleFacilityTrainerGfxId(gSaveBlock2Ptr->frontier.field_CB4[7]);
|
||||
gSaveBlock2Ptr->frontier.trainerIds[7] = spArray[Random() % r10];
|
||||
eventObjTemplates[8].graphicsId = GetBattleFacilityTrainerGfxId(gSaveBlock2Ptr->frontier.trainerIds[7]);
|
||||
FlagClear(FLAG_HIDE_BATTLE_TOWER_MULTI_BATTLE_PARTNER_ALT_2);
|
||||
sub_8164188(gSaveBlock2Ptr->frontier.field_CB4[7]);
|
||||
sub_8164188(gSaveBlock2Ptr->frontier.trainerIds[7]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2684,7 +2684,7 @@ static void sub_8164828(void)
|
||||
u16 winStreak = GetCurrentFacilityWinStreak();
|
||||
s32 challengeNum = winStreak / 7;
|
||||
s32 k = gSpecialVar_LastTalked - 2;
|
||||
s32 trainerId = gSaveBlock2Ptr->frontier.field_CB4[k];
|
||||
s32 trainerId = gSaveBlock2Ptr->frontier.trainerIds[k];
|
||||
|
||||
for (arrId = 0; arrId < ARRAY_COUNT(gUnknown_085DD500); arrId++)
|
||||
{
|
||||
@@ -2717,29 +2717,29 @@ static void sub_8164828(void)
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
monSetId = gSaveBlock2Ptr->frontier.field_CB4[8 + k * 2];
|
||||
monSetId = gSaveBlock2Ptr->frontier.trainerIds[8 + k * 2];
|
||||
sub_81646BC(trainerId, monSetId);
|
||||
break;
|
||||
case 2:
|
||||
monSetId = gSaveBlock2Ptr->frontier.field_CB4[9 + k * 2];
|
||||
monSetId = gSaveBlock2Ptr->frontier.trainerIds[9 + k * 2];
|
||||
sub_81646BC(trainerId, monSetId);
|
||||
break;
|
||||
case 3:
|
||||
gPartnerTrainerId = trainerId;
|
||||
if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
|
||||
{
|
||||
gSaveBlock2Ptr->frontier.field_CB4[18] = gSaveBlock2Ptr->frontier.field_CB4[8 + k * 2];
|
||||
gSaveBlock2Ptr->frontier.field_CB4[19] = gSaveBlock2Ptr->frontier.field_CB4[9 + k * 2];
|
||||
gSaveBlock2Ptr->frontier.trainerIds[18] = gSaveBlock2Ptr->frontier.trainerIds[8 + k * 2];
|
||||
gSaveBlock2Ptr->frontier.trainerIds[19] = gSaveBlock2Ptr->frontier.trainerIds[9 + k * 2];
|
||||
}
|
||||
else if (trainerId < TRAINER_RECORD_MIXING_APPRENTICE)
|
||||
{
|
||||
gSaveBlock2Ptr->frontier.field_CB4[18] = gUnknown_03006298[2];
|
||||
gSaveBlock2Ptr->frontier.field_CB4[19] = gUnknown_03006298[3];
|
||||
gSaveBlock2Ptr->frontier.trainerIds[18] = gUnknown_03006298[2];
|
||||
gSaveBlock2Ptr->frontier.trainerIds[19] = gUnknown_03006298[3];
|
||||
}
|
||||
else
|
||||
{
|
||||
gSaveBlock2Ptr->frontier.field_CB4[18] = gUnknown_03006298[0];
|
||||
gSaveBlock2Ptr->frontier.field_CB4[19] = gUnknown_03006298[1];
|
||||
gSaveBlock2Ptr->frontier.trainerIds[18] = gUnknown_03006298[0];
|
||||
gSaveBlock2Ptr->frontier.trainerIds[19] = gUnknown_03006298[1];
|
||||
}
|
||||
for (k = 0; k < 14; k++)
|
||||
{
|
||||
@@ -2751,15 +2751,15 @@ static void sub_8164828(void)
|
||||
|
||||
for (j = 0; j < k; j++)
|
||||
{
|
||||
if (gSaveBlock2Ptr->frontier.field_CB4[j] == i)
|
||||
if (gSaveBlock2Ptr->frontier.trainerIds[j] == i)
|
||||
break;
|
||||
}
|
||||
if (j == k)
|
||||
break;
|
||||
}
|
||||
gSaveBlock2Ptr->frontier.field_CB4[k] = i;
|
||||
gSaveBlock2Ptr->frontier.trainerIds[k] = i;
|
||||
}
|
||||
gSaveBlock2Ptr->frontier.field_CB4[17] = trainerId;
|
||||
gSaveBlock2Ptr->frontier.trainerIds[17] = trainerId;
|
||||
break;
|
||||
case 4:
|
||||
break;
|
||||
@@ -2825,12 +2825,12 @@ static void sub_8164B74(void)
|
||||
trainerId = sub_8162548(challengeNum, i / 2);
|
||||
for (j = 0; j < i; j++)
|
||||
{
|
||||
if (gSaveBlock2Ptr->frontier.field_CB4[j] == trainerId)
|
||||
if (gSaveBlock2Ptr->frontier.trainerIds[j] == trainerId)
|
||||
break;
|
||||
}
|
||||
} while (i != j);
|
||||
if (i == j) // This condition is always true, because of the loop above.
|
||||
gSaveBlock2Ptr->frontier.field_CB4[i] = trainerId;
|
||||
gSaveBlock2Ptr->frontier.trainerIds[i] = trainerId;
|
||||
}
|
||||
gSpecialVar_Result = 2;
|
||||
}
|
||||
@@ -2838,7 +2838,7 @@ static void sub_8164B74(void)
|
||||
case 2:
|
||||
if (IsLinkTaskFinished())
|
||||
{
|
||||
SendBlock(bitmask_all_link_players_but_self(), &gSaveBlock2Ptr->frontier.field_CB4, sizeof(gSaveBlock2Ptr->frontier.field_CB4));
|
||||
SendBlock(bitmask_all_link_players_but_self(), &gSaveBlock2Ptr->frontier.trainerIds, sizeof(gSaveBlock2Ptr->frontier.trainerIds));
|
||||
gSpecialVar_Result = 3;
|
||||
}
|
||||
break;
|
||||
@@ -2846,9 +2846,9 @@ static void sub_8164B74(void)
|
||||
if ((GetBlockReceivedStatus() & 3) == 3)
|
||||
{
|
||||
ResetBlockReceivedFlags();
|
||||
memcpy(&gSaveBlock2Ptr->frontier.field_CB4, gBlockRecvBuffer, sizeof(gSaveBlock2Ptr->frontier.field_CB4));
|
||||
gTrainerBattleOpponent_A = gSaveBlock2Ptr->frontier.field_CB4[battleNum * 2];
|
||||
gTrainerBattleOpponent_B = gSaveBlock2Ptr->frontier.field_CB4[battleNum * 2 + 1];
|
||||
memcpy(&gSaveBlock2Ptr->frontier.trainerIds, gBlockRecvBuffer, sizeof(gSaveBlock2Ptr->frontier.trainerIds));
|
||||
gTrainerBattleOpponent_A = gSaveBlock2Ptr->frontier.trainerIds[battleNum * 2];
|
||||
gTrainerBattleOpponent_B = gSaveBlock2Ptr->frontier.trainerIds[battleNum * 2 + 1];
|
||||
SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_A, 0);
|
||||
SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_B, 1);
|
||||
if (gReceivedRemoteLinkPlayers != 0 && gWirelessCommType == 0)
|
||||
@@ -2880,7 +2880,7 @@ static void sub_8164DCC(void)
|
||||
|
||||
static void sub_8164DE4(void)
|
||||
{
|
||||
SetBattleFacilityTrainerGfxId(gSaveBlock2Ptr->frontier.field_CB4[17], 0xF);
|
||||
SetBattleFacilityTrainerGfxId(gSaveBlock2Ptr->frontier.trainerIds[17], 0xF);
|
||||
}
|
||||
|
||||
static void sub_8164E04(void)
|
||||
@@ -3213,7 +3213,7 @@ static void FillPartnerParty(u16 trainerId)
|
||||
otID = Random32();
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
monSetId = gSaveBlock2Ptr->frontier.field_CB4[i + 18];
|
||||
monSetId = gSaveBlock2Ptr->frontier.trainerIds[i + 18];
|
||||
CreateMonWithEVSpreadNatureOTID(&gPlayerParty[3 + i],
|
||||
gFacilityTrainerMons[monSetId].species,
|
||||
level,
|
||||
@@ -3243,7 +3243,7 @@ static void FillPartnerParty(u16 trainerId)
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
struct EmeraldBattleTowerRecord *record = &gSaveBlock2Ptr->frontier.towerRecords[trainerId];
|
||||
struct BattleTowerPokemon monData = record->party[gSaveBlock2Ptr->frontier.field_CB4[18 + i]];
|
||||
struct BattleTowerPokemon monData = record->party[gSaveBlock2Ptr->frontier.trainerIds[18 + i]];
|
||||
StringCopy(trainerName, record->name);
|
||||
if (record->language == LANGUAGE_JAPANESE)
|
||||
{
|
||||
@@ -3269,7 +3269,7 @@ static void FillPartnerParty(u16 trainerId)
|
||||
trainerId -= TRAINER_RECORD_MIXING_APPRENTICE;
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
CreateApprenticeMon(&gPlayerParty[3 + i], &gSaveBlock2Ptr->apprentices[trainerId], gSaveBlock2Ptr->frontier.field_CB4[18 + i]);
|
||||
CreateApprenticeMon(&gPlayerParty[3 + i], &gSaveBlock2Ptr->apprentices[trainerId], gSaveBlock2Ptr->frontier.trainerIds[18 + i]);
|
||||
j = IsFrontierTrainerFemale(trainerId + TRAINER_RECORD_MIXING_APPRENTICE);
|
||||
SetMonData(&gPlayerParty[3 + i], MON_DATA_OT_GENDER, &j);
|
||||
}
|
||||
@@ -3564,7 +3564,7 @@ static void sub_8165E18(void)
|
||||
trainerId = sub_8165D40();
|
||||
for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum; i++)
|
||||
{
|
||||
if (gSaveBlock2Ptr->frontier.field_CB4[i] == trainerId)
|
||||
if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId)
|
||||
break;
|
||||
}
|
||||
} while (i != gSaveBlock2Ptr->frontier.curChallengeBattleNum);
|
||||
@@ -3572,7 +3572,7 @@ static void sub_8165E18(void)
|
||||
gTrainerBattleOpponent_A = trainerId;
|
||||
SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_A, 0);
|
||||
if (gSaveBlock2Ptr->frontier.curChallengeBattleNum + 1 < 3)
|
||||
gSaveBlock2Ptr->frontier.field_CB4[gSaveBlock2Ptr->frontier.curChallengeBattleNum] = gTrainerBattleOpponent_A;
|
||||
gSaveBlock2Ptr->frontier.trainerIds[gSaveBlock2Ptr->frontier.curChallengeBattleNum] = gTrainerBattleOpponent_A;
|
||||
}
|
||||
|
||||
static void FillTentTrainerParty_(u16 trainerId, u8 firstMonId, u8 monCount)
|
||||
|
||||
@@ -433,7 +433,7 @@ static void AnimMissileArcStep(struct Sprite *sprite)
|
||||
{
|
||||
sprite->invisible = FALSE;
|
||||
|
||||
if (TranslateAnimArc(sprite))
|
||||
if (TranslateAnimHorizontalArc(sprite))
|
||||
{
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
@@ -453,7 +453,7 @@ static void AnimMissileArcStep(struct Sprite *sprite)
|
||||
x2 += x1;
|
||||
y2 += y1;
|
||||
|
||||
if (!TranslateAnimArc(sprite))
|
||||
if (!TranslateAnimHorizontalArc(sprite))
|
||||
{
|
||||
u16 rotation = ArcTan2Neg(sprite->pos1.x + sprite->pos2.x - x2,
|
||||
sprite->pos1.y + sprite->pos2.y - y2);
|
||||
|
||||
+16
-16
@@ -389,14 +389,14 @@ void sub_8113A90(struct Sprite *sprite)
|
||||
|
||||
static void sub_8113B90(struct Sprite *sprite)
|
||||
{
|
||||
if (TranslateAnimArc(sprite))
|
||||
if (TranslateAnimHorizontalArc(sprite))
|
||||
DestroySpriteAndMatrix(sprite);
|
||||
}
|
||||
|
||||
void sub_8113BAC(u8 taskId)
|
||||
{
|
||||
struct ScanlineEffectParams scanlineParams;
|
||||
struct UnknownAnimStruct2 unknownStruct;
|
||||
struct BattleAnimBgData animBg;
|
||||
u16 i;
|
||||
u8 pos;
|
||||
int var0;
|
||||
@@ -420,10 +420,10 @@ void sub_8113BAC(u8 taskId)
|
||||
task->data[3] = GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker);
|
||||
if (task->data[3] == 1)
|
||||
{
|
||||
sub_80A6B30(&unknownStruct);
|
||||
sub_80A6B30(&animBg);
|
||||
task->data[10] = gBattle_BG1_Y;
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG1);
|
||||
FillPalette(0, unknownStruct.unk8 << 4, 32);
|
||||
FillPalette(0, animBg.paletteId * 16, 32);
|
||||
scanlineParams.dmaDest = ®_BG1VOFS;
|
||||
var0 = WINOUT_WIN01_BG1;
|
||||
if (!IsContest())
|
||||
@@ -524,7 +524,7 @@ static void sub_8113D60(u8 taskId)
|
||||
|
||||
void sub_8113E78(u8 taskId)
|
||||
{
|
||||
struct UnknownAnimStruct2 unknownStruct;
|
||||
struct BattleAnimBgData animBg;
|
||||
struct ScanlineEffectParams scanlineParams;
|
||||
u8 x;
|
||||
u16 i;
|
||||
@@ -561,14 +561,14 @@ void sub_8113E78(u8 taskId)
|
||||
case 1:
|
||||
if (task->data[3] == 1)
|
||||
{
|
||||
sub_80A6B30(&unknownStruct);
|
||||
sub_80A6B30(&animBg);
|
||||
task->data[10] = gBattle_BG1_Y;
|
||||
FillPalette(0, unknownStruct.unk8 << 4, 32);
|
||||
FillPalette(0, animBg.paletteId * 16, 32);
|
||||
}
|
||||
else
|
||||
{
|
||||
task->data[10] = gBattle_BG2_Y;
|
||||
FillPalette(0, 144, 32);
|
||||
FillPalette(0, 9 * 16, 32);
|
||||
}
|
||||
|
||||
sub_8114374(3);
|
||||
@@ -809,7 +809,7 @@ void sub_81144F8(u8 taskId)
|
||||
u8 spriteId;
|
||||
u8 newSpriteId;
|
||||
u16 paletteNum;
|
||||
struct UnknownAnimStruct2 unknownStruct;
|
||||
struct BattleAnimBgData animBg;
|
||||
int var0 = 0;
|
||||
|
||||
gBattle_WIN0H = var0;
|
||||
@@ -852,10 +852,10 @@ void sub_81144F8(u8 taskId)
|
||||
spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
|
||||
newSpriteId = sub_80A89C8(gBattleAnimAttacker, spriteId, species);
|
||||
|
||||
sub_80A6B30(&unknownStruct);
|
||||
sub_80A6D48(unknownStruct.bgId, gUnknown_08C1D210);
|
||||
sub_80A6CC0(unknownStruct.bgId, gUnknown_08C1D0AC, unknownStruct.tilesOffset);
|
||||
LoadCompressedPalette(gUnknown_08C1D1E8, unknownStruct.unk8 << 4, 32);
|
||||
sub_80A6B30(&animBg);
|
||||
AnimLoadCompressedBgTilemap(animBg.bgId, gMetalShineTilemap);
|
||||
AnimLoadCompressedBgGfx(animBg.bgId, gMetalShineGfx, animBg.tilesOffset);
|
||||
LoadCompressedPalette(gMetalShinePalette, animBg.paletteId * 16, 32);
|
||||
|
||||
gBattle_BG1_X = -gSprites[spriteId].pos1.x + 96;
|
||||
gBattle_BG1_Y = -gSprites[spriteId].pos1.y + 32;
|
||||
@@ -876,7 +876,7 @@ void sub_81144F8(u8 taskId)
|
||||
|
||||
static void sub_8114748(u8 taskId)
|
||||
{
|
||||
struct UnknownAnimStruct2 unknownStruct;
|
||||
struct BattleAnimBgData animBg;
|
||||
u16 paletteNum;
|
||||
u8 spriteId;
|
||||
u8 taskIdCopy = taskId;
|
||||
@@ -896,8 +896,8 @@ static void sub_8114748(u8 taskId)
|
||||
SetGreyscaleOrOriginalPalette(paletteNum, 1);
|
||||
|
||||
DestroySprite(&gSprites[gTasks[taskIdCopy].data[0]]);
|
||||
sub_80A6B30(&unknownStruct);
|
||||
sub_80A6C68(unknownStruct.bgId);
|
||||
sub_80A6B30(&animBg);
|
||||
sub_80A6C68(animBg.bgId);
|
||||
if (gTasks[taskIdCopy].data[6] == 1)
|
||||
gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].oam.priority++;
|
||||
}
|
||||
|
||||
+1
-1
@@ -209,7 +209,7 @@ void sub_8113064(struct Sprite *sprite)
|
||||
sprite->data[5] = gBattleAnimArgs[5];
|
||||
sprite->invisible = 1;
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
sprite->callback = sub_80A66DC;
|
||||
sprite->callback = TranslateSpriteLinearAndFlicker;
|
||||
}
|
||||
|
||||
static void sub_8113100(struct Sprite *sprite)
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
#include "global.h"
|
||||
#include "alloc.h"
|
||||
#include "battle_pyramid.h"
|
||||
#include "berry.h"
|
||||
#include "decoration.h"
|
||||
#include "event_data.h"
|
||||
@@ -9,14 +11,12 @@
|
||||
#include "field_effect_helpers.h"
|
||||
#include "field_player_avatar.h"
|
||||
#include "fieldmap.h"
|
||||
#include "alloc.h"
|
||||
#include "mauville_old_man.h"
|
||||
#include "metatile_behavior.h"
|
||||
#include "overworld.h"
|
||||
#include "palette.h"
|
||||
#include "pokenav.h"
|
||||
#include "random.h"
|
||||
#include "rom_818CFC8.h"
|
||||
#include "sprite.h"
|
||||
#include "task.h"
|
||||
#include "trainer_see.h"
|
||||
@@ -1420,7 +1420,7 @@ u8 Unref_TryInitLocalEventObject(u8 localId)
|
||||
{
|
||||
if (InBattlePyramid())
|
||||
{
|
||||
eventObjectCount = sub_81AAA40();
|
||||
eventObjectCount = GetNumBattlePyramidEventObjects();
|
||||
}
|
||||
else if (InTrainerHill())
|
||||
{
|
||||
@@ -1746,7 +1746,7 @@ void TrySpawnEventObjects(s16 cameraX, s16 cameraY)
|
||||
|
||||
if (InBattlePyramid())
|
||||
{
|
||||
objectCount = sub_81AAA40();
|
||||
objectCount = GetNumBattlePyramidEventObjects();
|
||||
}
|
||||
else if (InTrainerHill())
|
||||
{
|
||||
|
||||
+1
-1
@@ -1,6 +1,7 @@
|
||||
#include "global.h"
|
||||
#include "battle.h"
|
||||
#include "battle_pike.h"
|
||||
#include "battle_pyramid.h"
|
||||
#include "event_data.h"
|
||||
#include "field_message_box.h"
|
||||
#include "field_poison.h"
|
||||
@@ -8,7 +9,6 @@
|
||||
#include "frontier_util.h"
|
||||
#include "party_menu.h"
|
||||
#include "pokenav.h"
|
||||
#include "rom_818CFC8.h"
|
||||
#include "script.h"
|
||||
#include "string_util.h"
|
||||
#include "strings.h"
|
||||
|
||||
@@ -1004,9 +1004,9 @@ void WriteFlashScanlineEffectBuffer(u8 flashLevel)
|
||||
}
|
||||
}
|
||||
|
||||
void door_upload_tiles(void)
|
||||
void WriteBattlePyramidViewScanlineEffectBuffer(void)
|
||||
{
|
||||
SetFlashScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], 120, 80, gSaveBlock2Ptr->frontier.field_E68);
|
||||
SetFlashScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], 120, 80, gSaveBlock2Ptr->frontier.pyramidLightRadius);
|
||||
CpuFastSet(&gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 480);
|
||||
}
|
||||
|
||||
|
||||
@@ -1956,7 +1956,7 @@ void sub_8139D98(void)
|
||||
}
|
||||
}
|
||||
|
||||
bool32 warp0_in_pokecenter(void)
|
||||
bool8 warp0_in_pokecenter(void)
|
||||
{
|
||||
static const u16 gUnknown_085B2C2A[] = { 0x0202, 0x0301, 0x0405, 0x0504, 0x0604, 0x0700, 0x0804, 0x090b, 0x0a05, 0x0b05, 0x0c02, 0x0d06, 0x0e03, 0x0f02, 0x100c, 0x100a, 0x1a35, 0x193c, 0xFFFF };
|
||||
|
||||
|
||||
+3
-4
@@ -1,4 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "battle_pyramid.h"
|
||||
#include "bg.h"
|
||||
#include "fieldmap.h"
|
||||
#include "fldeff.h"
|
||||
@@ -15,8 +16,6 @@
|
||||
#include "tv.h"
|
||||
#include "constants/rgb.h"
|
||||
|
||||
extern void sub_81AA078(u16*, u8);
|
||||
|
||||
struct ConnectionFlags
|
||||
{
|
||||
u8 south:1;
|
||||
@@ -67,10 +66,10 @@ void InitMapFromSavedGame(void)
|
||||
UpdateTVScreensOnMap(gBackupMapLayout.width, gBackupMapLayout.height);
|
||||
}
|
||||
|
||||
void InitBattlePyramidMap(u8 a0)
|
||||
void InitBattlePyramidMap(bool8 setPlayerPosition)
|
||||
{
|
||||
CpuFastFill(0x03ff03ff, gBackupMapData, sizeof(gBackupMapData));
|
||||
sub_81AA078(gBackupMapData, a0);
|
||||
GenerateBattlePyramidFloorLayout(gBackupMapData, setPlayerPosition);
|
||||
}
|
||||
|
||||
void InitTrainerHillMap(void)
|
||||
|
||||
+5
-5
@@ -479,7 +479,7 @@ static void sub_8108F08(struct Sprite *sprite)
|
||||
sprite->data[1] = gBattleAnimArgs[2];
|
||||
sprite->data[2] = gBattleAnimArgs[3];
|
||||
|
||||
sprite->callback = AnimTranslateLinearSimple;
|
||||
sprite->callback = TranslateSpriteLinearFixedPoint;
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
}
|
||||
|
||||
@@ -726,7 +726,7 @@ static void AnimFireCross(struct Sprite *sprite)
|
||||
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
|
||||
sprite->callback = TranslateSpriteOverDuration;
|
||||
sprite->callback = TranslateSpriteLinear;
|
||||
}
|
||||
|
||||
static void sub_81093A4(struct Sprite *sprite)
|
||||
@@ -1280,9 +1280,9 @@ static void sub_8109E2C(u8 taskId)
|
||||
// arg 1: color code
|
||||
void AnimTask_BlendBackground(u8 taskId)
|
||||
{
|
||||
struct UnknownAnimStruct2 unk;
|
||||
sub_80A6B30(&unk);
|
||||
BlendPalette(unk.unk8 << 4, 16, gBattleAnimArgs[0], gBattleAnimArgs[1]); // u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor
|
||||
struct BattleAnimBgData animBg;
|
||||
sub_80A6B30(&animBg);
|
||||
BlendPalette(animBg.paletteId * 16, 16, gBattleAnimArgs[0], gBattleAnimArgs[1]); // u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -1827,7 +1827,7 @@ void sub_81A3ACC(void)
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < 20; i++)
|
||||
gSaveBlock2Ptr->frontier.field_CB4[i] = 0xFFFF;
|
||||
gSaveBlock2Ptr->frontier.trainerIds[i] = 0xFFFF;
|
||||
}
|
||||
|
||||
static void sub_81A3B00(void)
|
||||
|
||||
+2
-2
@@ -275,7 +275,7 @@ static void sub_81116E8(struct Sprite *sprite)
|
||||
if (sprite->data[6] == 0)
|
||||
{
|
||||
sprite->invisible = TRUE;
|
||||
sprite->callback = sub_80A67F4;
|
||||
sprite->callback = DestroyAnimSpriteAndDisableBlend;
|
||||
}
|
||||
else
|
||||
sub_8111764(sprite);
|
||||
@@ -536,7 +536,7 @@ void sub_8111C50(u8 taskId)
|
||||
gSprites[task->data[0]].data[3] = 0;
|
||||
gSprites[task->data[0]].data[4] = 0;
|
||||
StoreSpriteCallbackInData6(&gSprites[task->data[0]], SpriteCallbackDummy);
|
||||
gSprites[task->data[0]].callback = AnimTranslateLinearSimple;
|
||||
gSprites[task->data[0]].callback = TranslateSpriteLinearFixedPoint;
|
||||
task->func = sub_8111D78;
|
||||
}
|
||||
|
||||
|
||||
+5
-5
@@ -592,9 +592,9 @@ const u32 gBattleAnimBackgroundImage_00[] = INCBIN_U32("graphics/battle_anims/ba
|
||||
const u32 gBattleAnimBackgroundPalette_00[] = INCBIN_U32("graphics/battle_anims/backgrounds/00.gbapal.lz");
|
||||
const u32 gBattleAnimBackgroundTilemap_00[] = INCBIN_U32("graphics/battle_anims/backgrounds/00.bin.lz");
|
||||
|
||||
const u32 gUnknown_08C1D0AC[] = INCBIN_U32("graphics/battle_anims/masks/metal_shine.4bpp.lz");
|
||||
const u32 gUnknown_08C1D1E8[] = INCBIN_U32("graphics/battle_anims/masks/metal_shine.gbapal.lz");
|
||||
const u32 gUnknown_08C1D210[] = INCBIN_U32("graphics/battle_anims/masks/metal_shine.bin.lz");
|
||||
const u32 gMetalShineGfx[] = INCBIN_U32("graphics/battle_anims/masks/metal_shine.4bpp.lz");
|
||||
const u32 gMetalShinePalette[] = INCBIN_U32("graphics/battle_anims/masks/metal_shine.gbapal.lz");
|
||||
const u32 gMetalShineTilemap[] = INCBIN_U32("graphics/battle_anims/masks/metal_shine.bin.lz");
|
||||
|
||||
const u32 gUnusedGfx_Goosuto[] = INCBIN_U32("graphics/unused/goosuto.4bpp.lz"); // ghost
|
||||
const u32 gUnusedPal_Goosuto[] = INCBIN_U32("graphics/unused/goosuto.gbapal.lz");
|
||||
@@ -984,8 +984,8 @@ const u32 gUnknown_08D85358[] = INCBIN_U32("graphics/battle_frontier/options_pal
|
||||
const u32 gUnknown_08D85444[] = INCBIN_U32("graphics/battle_frontier/options_pal2.gbapal.lz"); // pokeball pal
|
||||
const u32 gUnknown_08D854C8[] = INCBIN_U32("graphics/battle_frontier/options_pal3.gbapal.lz"); // arrow pal
|
||||
|
||||
const u32 gUnknown_08D854E8[] = INCBIN_U32("graphics/battle_frontier/symbols.4bpp.lz");
|
||||
const u32 gUnknown_08D855E8[] = INCBIN_U32("graphics/battle_frontier/symbols.gbapal.lz");
|
||||
const u32 gBattleArenaJudgementSymbolsGfx[] = INCBIN_U32("graphics/battle_frontier/arena_judgement_symbols.4bpp.lz");
|
||||
const u32 gBattleArenaJudgementSymbolsPalette[] = INCBIN_U32("graphics/battle_frontier/arena_judgement_symbols.gbapal.lz");
|
||||
|
||||
const u32 gUnknown_08D85600[] = INCBIN_U32("graphics/battle_frontier/text.gbapal.lz");
|
||||
const u16 gUnknown_08D85620[] = INCBIN_U16("graphics/battle_frontier/text_pp.gbapal");
|
||||
|
||||
+3
-3
@@ -153,7 +153,7 @@ void AnimBonemerangProjectile(struct Sprite *sprite)
|
||||
|
||||
static void AnimBonemerangProjectileStep(struct Sprite *sprite)
|
||||
{
|
||||
if (TranslateAnimArc(sprite))
|
||||
if (TranslateAnimHorizontalArc(sprite))
|
||||
{
|
||||
sprite->pos1.x += sprite->pos2.x;
|
||||
sprite->pos1.y += sprite->pos2.y;
|
||||
@@ -170,7 +170,7 @@ static void AnimBonemerangProjectileStep(struct Sprite *sprite)
|
||||
|
||||
static void AnimBonemerangProjectileEnd(struct Sprite *sprite)
|
||||
{
|
||||
if (TranslateAnimArc(sprite))
|
||||
if (TranslateAnimHorizontalArc(sprite))
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
@@ -530,7 +530,7 @@ void AnimFissureDirtPlumeParticle(struct Sprite *sprite)
|
||||
|
||||
static void AnimFissureDirtPlumeParticleStep(struct Sprite *sprite)
|
||||
{
|
||||
if (TranslateAnimArc(sprite))
|
||||
if (TranslateAnimHorizontalArc(sprite))
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
|
||||
@@ -1176,7 +1176,7 @@ void AnimSwirlingFogAnim(struct Sprite *sprite)
|
||||
// Fades mons to black and places foggy overlay in Haze.
|
||||
void AnimTask_Haze1(u8 taskId)
|
||||
{
|
||||
struct UnknownAnimStruct2 subStruct;
|
||||
struct BattleAnimBgData animBg;
|
||||
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16));
|
||||
@@ -1191,17 +1191,17 @@ void AnimTask_Haze1(u8 taskId)
|
||||
SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
|
||||
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
|
||||
|
||||
sub_80A6B30(&subStruct);
|
||||
LoadBgTiles(subStruct.bgId, gWeatherFog1Tiles, 0x800, subStruct.tilesOffset);
|
||||
sub_80A6D60(&subStruct, gBattleAnimFogTilemap, 0);
|
||||
LoadPalette(&gUnknown_083970E8, subStruct.unk8 * 16, 32);
|
||||
sub_80A6B30(&animBg);
|
||||
LoadBgTiles(animBg.bgId, gWeatherFog1Tiles, 0x800, animBg.tilesOffset);
|
||||
sub_80A6D60(&animBg, gBattleAnimFogTilemap, 0);
|
||||
LoadPalette(&gUnknown_083970E8, animBg.paletteId * 16, 32);
|
||||
|
||||
gTasks[taskId].func = AnimTask_Haze2;
|
||||
}
|
||||
|
||||
void AnimTask_Haze2(u8 taskId)
|
||||
{
|
||||
struct UnknownAnimStruct2 subStruct;
|
||||
struct BattleAnimBgData animBg;
|
||||
|
||||
gBattle_BG1_X += -1;
|
||||
gBattle_BG1_Y += 0;
|
||||
@@ -1245,7 +1245,7 @@ void AnimTask_Haze2(u8 taskId)
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
sub_80A6B30(&subStruct);
|
||||
sub_80A6B30(&animBg);
|
||||
sub_80A6C68(1);
|
||||
sub_80A6C68(2);
|
||||
|
||||
@@ -1283,7 +1283,7 @@ void AnimThrowMistBall(struct Sprite *sprite)
|
||||
// Displays misty background in Mist Ball.
|
||||
void AnimTask_LoadMistTiles(u8 taskId)
|
||||
{
|
||||
struct UnknownAnimStruct2 subStruct;
|
||||
struct BattleAnimBgData animBg;
|
||||
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16));
|
||||
@@ -1298,10 +1298,10 @@ void AnimTask_LoadMistTiles(u8 taskId)
|
||||
SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
|
||||
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
|
||||
|
||||
sub_80A6B30(&subStruct);
|
||||
LoadBgTiles(subStruct.bgId, gWeatherFog1Tiles, 0x800, subStruct.tilesOffset);
|
||||
sub_80A6D60(&subStruct, gBattleAnimFogTilemap, 0);
|
||||
LoadPalette(&gUnknown_083970E8, subStruct.unk8 * 16, 32);
|
||||
sub_80A6B30(&animBg);
|
||||
LoadBgTiles(animBg.bgId, gWeatherFog1Tiles, 0x800, animBg.tilesOffset);
|
||||
sub_80A6D60(&animBg, gBattleAnimFogTilemap, 0);
|
||||
LoadPalette(&gUnknown_083970E8, animBg.paletteId * 16, 32);
|
||||
|
||||
gTasks[taskId].data[15] = -1;
|
||||
gTasks[taskId].func = AnimTask_OverlayFogTiles;
|
||||
@@ -1309,7 +1309,7 @@ void AnimTask_LoadMistTiles(u8 taskId)
|
||||
|
||||
void AnimTask_OverlayFogTiles(u8 taskId)
|
||||
{
|
||||
struct UnknownAnimStruct2 subStruct;
|
||||
struct BattleAnimBgData animBg;
|
||||
|
||||
gBattle_BG1_X += gTasks[taskId].data[15];
|
||||
gBattle_BG1_Y += 0;
|
||||
@@ -1347,7 +1347,7 @@ void AnimTask_OverlayFogTiles(u8 taskId)
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
sub_80A6B30(&subStruct);
|
||||
sub_80A6B30(&animBg);
|
||||
sub_80A6C68(1);
|
||||
sub_80A6C68(2);
|
||||
|
||||
@@ -1887,7 +1887,7 @@ void InitIceBallAnim(struct Sprite *sprite)
|
||||
// Throws the ball of ice in Ice Ball.
|
||||
void AnimThrowIceBall(struct Sprite *sprite)
|
||||
{
|
||||
if (!TranslateAnimArc(sprite))
|
||||
if (!TranslateAnimHorizontalArc(sprite))
|
||||
return;
|
||||
|
||||
StartSpriteAnim(sprite, 1);
|
||||
|
||||
+1
-1
@@ -2,6 +2,7 @@
|
||||
#include "item_menu.h"
|
||||
#include "battle.h"
|
||||
#include "battle_controllers.h"
|
||||
#include "battle_pyramid.h"
|
||||
#include "frontier_util.h"
|
||||
#include "berry_tag_screen.h"
|
||||
#include "bg.h"
|
||||
@@ -33,7 +34,6 @@
|
||||
#include "player_pc.h"
|
||||
#include "pokemon.h"
|
||||
#include "pokemon_summary_screen.h"
|
||||
#include "rom_818CFC8.h"
|
||||
#include "scanline_effect.h"
|
||||
#include "script.h"
|
||||
#include "shop.h"
|
||||
|
||||
+1
-1
@@ -1,6 +1,7 @@
|
||||
#include "global.h"
|
||||
#include "item_use.h"
|
||||
#include "battle.h"
|
||||
#include "battle_pyramid.h"
|
||||
#include "battle_pyramid_bag.h"
|
||||
#include "berry.h"
|
||||
#include "bike.h"
|
||||
@@ -24,7 +25,6 @@
|
||||
#include "party_menu.h"
|
||||
#include "pokeblock.h"
|
||||
#include "pokemon.h"
|
||||
#include "rom_818CFC8.h"
|
||||
#include "script.h"
|
||||
#include "sound.h"
|
||||
#include "strings.h"
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "battle_pyramid.h"
|
||||
#include "bg.h"
|
||||
#include "event_data.h"
|
||||
#include "gpu_regs.h"
|
||||
@@ -7,7 +8,6 @@
|
||||
#include "map_name_popup.h"
|
||||
#include "palette.h"
|
||||
#include "region_map.h"
|
||||
#include "rom_818CFC8.h"
|
||||
#include "start_menu.h"
|
||||
#include "string_util.h"
|
||||
#include "task.h"
|
||||
|
||||
+1
-1
@@ -8,6 +8,7 @@
|
||||
#include "lottery_corner.h"
|
||||
#include "play_time.h"
|
||||
#include "mauville_old_man.h"
|
||||
#include "match_call.h"
|
||||
#include "lilycove_lady.h"
|
||||
#include "load_save.h"
|
||||
#include "pokeblock.h"
|
||||
@@ -47,7 +48,6 @@ extern void NewGameInitPCItems(void);
|
||||
extern void ClearDecorationInventories(void);
|
||||
extern void ResetFanClub(void);
|
||||
extern void copy_strings_to_sav1(void);
|
||||
extern void InitMatchCallCounters(void);
|
||||
extern void sub_801AFD8(void);
|
||||
extern void sub_800E5AC(void);
|
||||
extern void ResetContestLinkResults(void);
|
||||
|
||||
+6
-6
@@ -323,14 +323,14 @@ void AnimSimplePaletteBlend(struct Sprite *sprite)
|
||||
// 6: BG palette 5
|
||||
u32 UnpackSelectedBattleAnimPalettes(s16 selector)
|
||||
{
|
||||
u8 arg0 = selector & 1;
|
||||
u8 arg1 = (selector >> 1) & 1;
|
||||
u8 arg2 = (selector >> 2) & 1;
|
||||
u8 arg3 = (selector >> 3) & 1;
|
||||
u8 arg4 = (selector >> 4) & 1;
|
||||
u8 battleBackground = selector & 1;
|
||||
u8 attacker = (selector >> 1) & 1;
|
||||
u8 target = (selector >> 2) & 1;
|
||||
u8 attackerPartner = (selector >> 3) & 1;
|
||||
u8 targetPartner = (selector >> 4) & 1;
|
||||
u8 arg5 = (selector >> 5) & 1;
|
||||
u8 arg6 = (selector >> 6) & 1;
|
||||
return sub_80A75AC(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
|
||||
return sub_80A75AC(battleBackground, attacker, target, attackerPartner, targetPartner, arg5, arg6);
|
||||
}
|
||||
|
||||
static void AnimSimplePaletteBlendStep(struct Sprite *sprite)
|
||||
|
||||
+17
-77
@@ -19,6 +19,7 @@
|
||||
#include "field_tasks.h"
|
||||
#include "field_weather.h"
|
||||
#include "fieldmap.h"
|
||||
#include "fldeff.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "heal_location.h"
|
||||
#include "link.h"
|
||||
@@ -28,6 +29,7 @@
|
||||
#include "alloc.h"
|
||||
#include "m4a.h"
|
||||
#include "map_name_popup.h"
|
||||
#include "match_call.h"
|
||||
#include "menu.h"
|
||||
#include "metatile_behavior.h"
|
||||
#include "mirage_tower.h"
|
||||
@@ -42,14 +44,15 @@
|
||||
#include "save.h"
|
||||
#include "save_location.h"
|
||||
#include "script.h"
|
||||
// #include "script_pokemon_80C4.h"
|
||||
#include "script_pokemon_util_80F87D8.h"
|
||||
#include "secret_base.h"
|
||||
#include "sound.h"
|
||||
#include "start_menu.h"
|
||||
#include "task.h"
|
||||
// #include "tileset_anim.h"
|
||||
#include "tileset_anims.h"
|
||||
#include "time_events.h"
|
||||
#include "trainer_hill.h"
|
||||
#include "trainer_pokemon_sprites.h"
|
||||
#include "tv.h"
|
||||
#include "scanline_effect.h"
|
||||
#include "wild_encounter.h"
|
||||
@@ -85,74 +88,11 @@ extern const u8 gUnknown_082773F5[];
|
||||
extern const u8 gUnknown_082774EF[];
|
||||
extern const u8 gUnknown_08277509[];
|
||||
|
||||
// vars
|
||||
extern const struct MapLayout *const gMapLayouts[];
|
||||
extern const struct MapHeader *const *const gMapGroups[];
|
||||
extern const s32 gMaxFlashLevel;
|
||||
extern const int gMaxFlashLevel;
|
||||
extern const u16 gUnknown_82EC7C4[];
|
||||
|
||||
// functions
|
||||
extern void HealPlayerParty(void);
|
||||
extern void move_tilemap_camera_to_upper_left_corner(void);
|
||||
extern void cur_mapheader_run_tileset_funcs_after_some_cpuset(void);
|
||||
extern void DrawWholeMapView(void);
|
||||
extern void copy_map_tileset1_tileset2_to_vram(const struct MapLayout *);
|
||||
extern void apply_map_tileset1_tileset2_palette(const struct MapLayout *);
|
||||
extern void ResetCyclingRoadChallengeData(void);
|
||||
extern void ApplyNewEncryptionKeyToWord(u32 *word, u32 newKey);
|
||||
extern void mapheader_run_script_with_tag_x5(void);
|
||||
extern void ResetFieldTasksArgs(void);
|
||||
extern void sub_80A0A2C(void);
|
||||
extern void apply_map_tileset2_palette(const struct MapLayout *);
|
||||
extern void copy_map_tileset2_to_vram_2(const struct MapLayout *);
|
||||
extern void RestartWildEncounterImmunitySteps(void);
|
||||
extern void ShowMapNamePopup(void);
|
||||
extern bool32 sub_808651C(void);
|
||||
extern bool8 sub_80AF6A4(void);
|
||||
extern bool8 sub_80E909C(void);
|
||||
extern void sub_81AA1D8(void);
|
||||
extern void c2_change_map(void);
|
||||
extern void sub_81D5DF8(void);
|
||||
extern void sub_80EB218(void);
|
||||
extern void sub_80AF3C8(void);
|
||||
extern void sub_808B578(void);
|
||||
extern void sub_80AF314(void);
|
||||
extern void sub_80AF214(void);
|
||||
extern void sub_80AF188(void);
|
||||
extern void door_upload_tiles(void);
|
||||
extern void RotatingGate_InitPuzzleAndGraphics(void);
|
||||
extern void sub_80AF168(void);
|
||||
extern void sub_80AF3C8(void);
|
||||
extern void ExecuteTruckSequence(void);
|
||||
extern void sub_80A0A38(void);
|
||||
extern void WriteFlashScanlineEffectBuffer(u8);
|
||||
extern void sub_81AA2F8(void);
|
||||
extern void InitMatchCallCounters(void);
|
||||
extern void sub_80EDB44(void);
|
||||
extern void InitFieldMessageBox(void);
|
||||
extern void copy_map_tileset1_to_vram(const struct MapLayout *);
|
||||
extern void copy_map_tileset2_to_vram(const struct MapLayout *);
|
||||
extern void FieldUpdateBgTilemapScroll(void);
|
||||
extern void TransferTilesetAnimsBuffer(void);
|
||||
extern bool8 warp0_in_pokecenter(void);
|
||||
extern void ResetAllPicSprites(void);
|
||||
extern void FieldEffectActiveListClear(void);
|
||||
extern void SetUpFieldTasks(void);
|
||||
extern void ShowStartMenu(void);
|
||||
extern void sub_80AEE84(void);
|
||||
extern void mapldr_default(void);
|
||||
extern bool32 sub_800F0B8(void);
|
||||
extern bool32 sub_8009F3C(void);
|
||||
extern void sub_8010198(void);
|
||||
extern u32 sub_800B4DC(void);
|
||||
extern bool32 sub_80B39D4(u8);
|
||||
extern const u8* GetInteractedLinkPlayerScript(struct MapPosition *a1, u8, u8);
|
||||
extern u8 *GetCoordEventScriptAtMapPosition(void*);
|
||||
extern u8 GetFRLGAvatarGraphicsIdByGender(u8);
|
||||
extern u8 GetRSAvatarGraphicsIdByGender(u8);
|
||||
extern void UpdateEventObjectSpriteVisibility(struct Sprite*, u8);
|
||||
|
||||
// this file's functions
|
||||
static void Overworld_ResetStateAfterWhiteOut(void);
|
||||
static void c2_80567AC(void);
|
||||
static void CB2_LoadMap2(void);
|
||||
@@ -588,7 +528,7 @@ static void mapdata_load_assets_to_gpu_and_full_redraw(void)
|
||||
copy_map_tileset1_tileset2_to_vram(gMapHeader.mapLayout);
|
||||
apply_map_tileset1_tileset2_palette(gMapHeader.mapLayout);
|
||||
DrawWholeMapView();
|
||||
cur_mapheader_run_tileset_funcs_after_some_cpuset();
|
||||
InitTilesetAnimations();
|
||||
}
|
||||
|
||||
const struct MapLayout *GetMapLayout(void)
|
||||
@@ -868,7 +808,7 @@ void mliX_load_map(u8 mapGroup, u8 mapNum)
|
||||
for (paletteIndex = 6; paletteIndex < 13; paletteIndex++)
|
||||
ApplyWeatherGammaShiftToPal(paletteIndex);
|
||||
|
||||
sub_80A0A2C();
|
||||
InitSecondaryTilesetAnimation();
|
||||
UpdateLocationHistoryForRoamer();
|
||||
RoamerMove();
|
||||
DoCurrentWeather();
|
||||
@@ -888,7 +828,7 @@ static void mli0_load_map(u32 a1)
|
||||
if (!(sUnknown_020322D8 & 1))
|
||||
{
|
||||
if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE)
|
||||
sub_81AA1D8();
|
||||
LoadBattlePyramidEventObjectTemplates();
|
||||
else if (InTrainerHill())
|
||||
sub_81D5DF8();
|
||||
else
|
||||
@@ -916,7 +856,7 @@ static void mli0_load_map(u32 a1)
|
||||
UpdateLocationHistoryForRoamer();
|
||||
RoamerMoveToOtherLocationSet();
|
||||
if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE)
|
||||
InitBattlePyramidMap(0);
|
||||
InitBattlePyramidMap(FALSE);
|
||||
else if (InTrainerHill())
|
||||
InitTrainerHillMap();
|
||||
else
|
||||
@@ -1511,7 +1451,7 @@ static void OverworldBasic(void)
|
||||
UpdateCameraPanning();
|
||||
BuildOamBuffer();
|
||||
UpdatePaletteFade();
|
||||
sub_80A0A38();
|
||||
UpdateTilesetAnimations();
|
||||
do_scheduled_bg_tilemap_copies_to_vram();
|
||||
}
|
||||
|
||||
@@ -1755,7 +1695,7 @@ void CB2_ContinueSavedGame(void)
|
||||
ClearDiveAndHoleWarps();
|
||||
trainerHillMapId = GetCurrentTrainerHillMapId();
|
||||
if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE)
|
||||
sub_81AA2F8();
|
||||
LoadBattlePyramidFloorEventObjectScripts();
|
||||
else if (trainerHillMapId != 0 && trainerHillMapId != 6)
|
||||
sub_81D5F48();
|
||||
else
|
||||
@@ -1765,7 +1705,7 @@ void CB2_ContinueSavedGame(void)
|
||||
DoTimeBasedEvents();
|
||||
sub_8084788();
|
||||
if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE)
|
||||
InitBattlePyramidMap(1);
|
||||
InitBattlePyramidMap(TRUE);
|
||||
else if (trainerHillMapId != 0)
|
||||
InitTrainerHillMap();
|
||||
else
|
||||
@@ -1836,7 +1776,7 @@ static void InitCurrentFlashLevelScanlineEffect(void)
|
||||
|
||||
if (InBattlePyramid_())
|
||||
{
|
||||
door_upload_tiles();
|
||||
WriteBattlePyramidViewScanlineEffectBuffer();
|
||||
ScanlineEffect_SetParams(sFlashEffectParams);
|
||||
}
|
||||
else if ((flashLevel = Overworld_GetFlashLevel()))
|
||||
@@ -1903,7 +1843,7 @@ static bool32 map_loading_iteration_3(u8 *state)
|
||||
(*state)++;
|
||||
break;
|
||||
case 10:
|
||||
cur_mapheader_run_tileset_funcs_after_some_cpuset();
|
||||
InitTilesetAnimations();
|
||||
(*state)++;
|
||||
break;
|
||||
case 11:
|
||||
@@ -1978,7 +1918,7 @@ static bool32 load_map_stuff(u8 *state, u32 a2)
|
||||
(*state)++;
|
||||
break;
|
||||
case 10:
|
||||
cur_mapheader_run_tileset_funcs_after_some_cpuset();
|
||||
InitTilesetAnimations();
|
||||
(*state)++;
|
||||
break;
|
||||
case 11:
|
||||
@@ -2075,7 +2015,7 @@ static bool32 map_loading_iteration_2_link(u8 *state)
|
||||
(*state)++;
|
||||
break;
|
||||
case 9:
|
||||
cur_mapheader_run_tileset_funcs_after_some_cpuset();
|
||||
InitTilesetAnimations();
|
||||
(*state)++;
|
||||
break;
|
||||
case 11:
|
||||
|
||||
+3
-3
@@ -208,7 +208,7 @@ void sub_810DBAC(struct Sprite *sprite)
|
||||
|
||||
static void sub_810DC10(struct Sprite *sprite)
|
||||
{
|
||||
if (TranslateAnimArc(sprite))
|
||||
if (TranslateAnimHorizontalArc(sprite))
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
@@ -236,7 +236,7 @@ void sub_810DC2C(struct Sprite *sprite)
|
||||
|
||||
static void sub_810DCB4(struct Sprite *sprite)
|
||||
{
|
||||
if (TranslateAnimArc(sprite))
|
||||
if (TranslateAnimHorizontalArc(sprite))
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
@@ -258,7 +258,7 @@ void sub_810DCD0(struct Sprite *sprite)
|
||||
|
||||
static void sub_810DD24(struct Sprite *sprite)
|
||||
{
|
||||
AnimTranslateLinearSimple(sprite);
|
||||
TranslateSpriteLinearFixedPoint(sprite);
|
||||
|
||||
sprite->data[1] -= sprite->data[5];
|
||||
sprite->data[2] -= sprite->data[6];
|
||||
|
||||
+2
-2
@@ -411,7 +411,7 @@ static void Task_DoPokeballSendOutAnim(u8 taskId)
|
||||
|
||||
static void SpriteCB_TestBallThrow(struct Sprite *sprite)
|
||||
{
|
||||
if (TranslateAnimArc(sprite))
|
||||
if (TranslateAnimHorizontalArc(sprite))
|
||||
{
|
||||
u16 ballId;
|
||||
u8 taskId = sprite->oam.affineParam;
|
||||
@@ -940,7 +940,7 @@ static void SpriteCB_PlayerMonSendOut_2(struct Sprite *sprite)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (TranslateAnimArc(sprite))
|
||||
if (TranslateAnimHorizontalArc(sprite))
|
||||
{
|
||||
sprite->pos1.x += sprite->pos2.x;
|
||||
sprite->pos1.y += sprite->pos2.y;
|
||||
|
||||
+1
-1
@@ -6081,7 +6081,7 @@ s32 GetBattlerMultiplayerId(u16 a1)
|
||||
u8 GetTrainerEncounterMusicId(u16 trainerOpponentId)
|
||||
{
|
||||
if (InBattlePyramid())
|
||||
return GetTrainerEncounterMusicIdInBattlePyramind(trainerOpponentId);
|
||||
return GetBattlePyramindTrainerEncounterMusicId(trainerOpponentId);
|
||||
else if (sub_81D5C18())
|
||||
return GetTrainerEncounterMusicIdInTrainerHill(trainerOpponentId);
|
||||
else
|
||||
|
||||
@@ -2801,7 +2801,7 @@ static void CreatePageWindowTilemaps(u8 page)
|
||||
case PSS_PAGE_INFO:
|
||||
PutWindowTilemap(0);
|
||||
PutWindowTilemap(4);
|
||||
if (sub_81A6BF4() == TRUE || sub_81B9E94() == TRUE)
|
||||
if (InBattleFactory() == TRUE || sub_81B9E94() == TRUE)
|
||||
PutWindowTilemap(8);
|
||||
PutWindowTilemap(9);
|
||||
break;
|
||||
@@ -2852,7 +2852,7 @@ static void ClearPageWindowTilemaps(u8 page)
|
||||
{
|
||||
case PSS_PAGE_INFO:
|
||||
ClearWindowTilemap(4);
|
||||
if (sub_81A6BF4() == TRUE || sub_81B9E94() == TRUE)
|
||||
if (InBattleFactory() == TRUE || sub_81B9E94() == TRUE)
|
||||
ClearWindowTilemap(8);
|
||||
ClearWindowTilemap(9);
|
||||
break;
|
||||
@@ -2985,7 +2985,7 @@ static void PrintMonOTName(void)
|
||||
{
|
||||
u8 windowId;
|
||||
int x;
|
||||
if (sub_81A6BF4() != TRUE && sub_81B9E94() != TRUE)
|
||||
if (InBattleFactory() != TRUE && sub_81B9E94() != TRUE)
|
||||
{
|
||||
windowId = AddWindowFromTemplateList(gUnknown_0861CCCC, 0);
|
||||
SummaryScreen_PrintTextOnWindow(windowId, gText_OTSlash, 0, 1, 0, 1);
|
||||
@@ -3000,7 +3000,7 @@ static void PrintMonOTName(void)
|
||||
static void PrintMonOTID(void)
|
||||
{
|
||||
int xPos;
|
||||
if (sub_81A6BF4() != TRUE && sub_81B9E94() != TRUE)
|
||||
if (InBattleFactory() != TRUE && sub_81B9E94() != TRUE)
|
||||
{
|
||||
ConvertIntToDecimalStringN(StringCopy(gStringVar1, gText_UnkCtrlF907F908), (u16)pssData->summary.OTID, 2, 5);
|
||||
xPos = GetStringRightAlignXOffset(1, gStringVar1, 56);
|
||||
@@ -3030,7 +3030,7 @@ static void BufferMonTrainerMemo(void)
|
||||
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gUnknown_0861CE7B);
|
||||
BufferNatureString();
|
||||
|
||||
if (sub_81A6BF4() == TRUE || sub_81B9E94() == TRUE || IsInGamePartnerMon() == TRUE)
|
||||
if (InBattleFactory() == TRUE || sub_81B9E94() == TRUE || IsInGamePartnerMon() == TRUE)
|
||||
{
|
||||
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gText_XNature);
|
||||
}
|
||||
|
||||
+1
-1
@@ -939,7 +939,7 @@ static void sub_810FD3C(u8 taskId)
|
||||
|
||||
void sub_810FDF0(struct Sprite *sprite)
|
||||
{
|
||||
if (TranslateAnimArc(sprite))
|
||||
if (TranslateAnimHorizontalArc(sprite))
|
||||
{
|
||||
FreeOamMatrix(sprite->oam.matrixNum);
|
||||
DestroySprite(sprite);
|
||||
|
||||
+12
-12
@@ -326,7 +326,7 @@ void sub_81109F0(struct Sprite *sprite)
|
||||
sprite->data[5] = gBattleAnimArgs[2];
|
||||
|
||||
StoreSpriteCallbackInData6(sprite, sub_8110A70);
|
||||
sprite->callback = sub_80A6450;
|
||||
sprite->callback = TranslateSpriteInEllipseOverDuration;
|
||||
sprite->callback(sprite);
|
||||
}
|
||||
|
||||
@@ -341,7 +341,7 @@ static void sub_8110A70(struct Sprite *sprite)
|
||||
sprite->data[4] = -24;
|
||||
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
sprite->callback = sub_80A6450;
|
||||
sprite->callback = TranslateSpriteInEllipseOverDuration;
|
||||
sprite->callback(sprite);
|
||||
}
|
||||
|
||||
@@ -367,7 +367,7 @@ void sub_8110AB4(struct Sprite *sprite)
|
||||
sprite->data[3] = 0;
|
||||
sprite->data[4] = 0;
|
||||
|
||||
sprite->callback = AnimTranslateLinearSimple;
|
||||
sprite->callback = TranslateSpriteLinearFixedPoint;
|
||||
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
|
||||
}
|
||||
|
||||
@@ -402,7 +402,7 @@ static void sub_8110B80(struct Sprite *sprite)
|
||||
void AnimTask_LoadSandstormBackground(u8 taskId)
|
||||
{
|
||||
int var0;
|
||||
struct UnknownAnimStruct2 unknownStruct;
|
||||
struct BattleAnimBgData animBg;
|
||||
|
||||
var0 = 0;
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND);
|
||||
@@ -418,10 +418,10 @@ void AnimTask_LoadSandstormBackground(u8 taskId)
|
||||
SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
|
||||
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
|
||||
|
||||
sub_80A6B30(&unknownStruct);
|
||||
sub_80A6CC0(unknownStruct.bgId, gUnknown_08D8D58C, unknownStruct.tilesOffset);
|
||||
sub_80A6D60(&unknownStruct, gUnknown_08D8D410, 0);
|
||||
LoadCompressedPalette(gBattleAnimSpritePalette_261, unknownStruct.unk8 * 16, 32);
|
||||
sub_80A6B30(&animBg);
|
||||
AnimLoadCompressedBgGfx(animBg.bgId, gUnknown_08D8D58C, animBg.tilesOffset);
|
||||
sub_80A6D60(&animBg, gUnknown_08D8D410, 0);
|
||||
LoadCompressedPalette(gBattleAnimSpritePalette_261, animBg.paletteId * 16, 32);
|
||||
|
||||
if (gBattleAnimArgs[0] && GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
var0 = 1;
|
||||
@@ -432,7 +432,7 @@ void AnimTask_LoadSandstormBackground(u8 taskId)
|
||||
|
||||
static void sub_8110CB0(u8 taskId)
|
||||
{
|
||||
struct UnknownAnimStruct2 unknownStruct;
|
||||
struct BattleAnimBgData animBg;
|
||||
|
||||
if (gTasks[taskId].data[0] == 0)
|
||||
gBattle_BG1_X += -6;
|
||||
@@ -477,8 +477,8 @@ static void sub_8110CB0(u8 taskId)
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
sub_80A6B30(&unknownStruct);
|
||||
sub_80A6C68(unknownStruct.bgId);
|
||||
sub_80A6B30(&animBg);
|
||||
sub_80A6C68(animBg.bgId);
|
||||
gTasks[taskId].data[12]++;
|
||||
break;
|
||||
case 4:
|
||||
@@ -735,7 +735,7 @@ static void sub_8111214(struct Task *task)
|
||||
|
||||
void sub_811131C(struct Sprite *sprite)
|
||||
{
|
||||
if (TranslateAnimArc(sprite))
|
||||
if (TranslateAnimHorizontalArc(sprite))
|
||||
{
|
||||
u8 taskId = FindTaskIdByFunc(sub_81110A4);
|
||||
if (taskId != 0xFF)
|
||||
|
||||
+3
-5
@@ -15,7 +15,6 @@
|
||||
#include "overworld.h"
|
||||
#include "link.h"
|
||||
#include "frontier_util.h"
|
||||
#include "rom_818CFC8.h"
|
||||
#include "field_specials.h"
|
||||
#include "event_object_movement.h"
|
||||
#include "script.h"
|
||||
@@ -36,6 +35,7 @@
|
||||
#include "international_string_util.h"
|
||||
#include "constants/songs.h"
|
||||
#include "field_player_avatar.h"
|
||||
#include "battle_pyramid.h"
|
||||
#include "battle_pyramid_bag.h"
|
||||
#include "battle_pike.h"
|
||||
#include "new_game.h"
|
||||
@@ -94,9 +94,7 @@ extern void CB2_Pokedex(void);
|
||||
extern void PlayRainSoundEffect(void);
|
||||
extern void CB2_PokeNav(void);
|
||||
extern void ScriptUnfreezeEventObjects(void);
|
||||
extern void sub_81A9EC8(void);
|
||||
extern void save_serialize_map(void);
|
||||
extern void sub_81A9E90(void);
|
||||
|
||||
// Menu action callbacks
|
||||
static bool8 StartMenuPokedexCallback(void);
|
||||
@@ -751,7 +749,7 @@ static bool8 StartMenuBattlePyramidRetireCallback(void)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_809FDD4(void) // Called from battle_frontier_2.s
|
||||
void sub_809FDD4(void)
|
||||
{
|
||||
sub_8197DF8(0, FALSE);
|
||||
ScriptUnfreezeEventObjects();
|
||||
@@ -798,7 +796,7 @@ static bool8 SaveCallback(void)
|
||||
sub_8197DF8(0, TRUE);
|
||||
ScriptUnfreezeEventObjects();
|
||||
ScriptContext2_Disable();
|
||||
sub_81A9EC8();
|
||||
SoftResetInBattlePyramid();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
+719
-943
File diff suppressed because it is too large
Load Diff
+5
-5
@@ -660,7 +660,7 @@ void sub_81D5DF8(void)
|
||||
|
||||
SetUpDataStruct();
|
||||
for (i = 0; i < 2; i++)
|
||||
gSaveBlock2Ptr->frontier.field_CB4[i] = 0xFFFF;
|
||||
gSaveBlock2Ptr->frontier.trainerIds[i] = 0xFFFF;
|
||||
CpuFill32(0, gSaveBlock1Ptr->eventObjectTemplates, sizeof(gSaveBlock1Ptr->eventObjectTemplates));
|
||||
|
||||
floorId = GetFloorId();
|
||||
@@ -677,7 +677,7 @@ void sub_81D5DF8(void)
|
||||
eventTemplates[i].movementType = ((sHillData->tag.floors[floorId].direction >> bits) & 0xF) + MOVEMENT_TYPE_FACE_UP;
|
||||
eventTemplates[i].trainerRange_berryTreeId = (sHillData->tag.floors[floorId].range >> bits) & 0xF;
|
||||
eventTemplates[i].script = EventScript_2C83F0;
|
||||
gSaveBlock2Ptr->frontier.field_CB4[i] = i + 1;
|
||||
gSaveBlock2Ptr->frontier.trainerIds[i] = i + 1;
|
||||
}
|
||||
|
||||
FreeDataStruct();
|
||||
@@ -874,7 +874,7 @@ const struct WarpEvent* sub_81D6134(u8 warpEventId)
|
||||
|
||||
u16 LocalIdToHillTrainerId(u8 localId)
|
||||
{
|
||||
return gSaveBlock2Ptr->frontier.field_CB4[localId - 1];
|
||||
return gSaveBlock2Ptr->frontier.trainerIds[localId - 1];
|
||||
}
|
||||
|
||||
bool8 GetHillTrainerFlag(u8 eventObjectId)
|
||||
@@ -892,7 +892,7 @@ void SetHillTrainerFlag(void)
|
||||
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
if (gSaveBlock2Ptr->frontier.field_CB4[i] == gTrainerBattleOpponent_A)
|
||||
if (gSaveBlock2Ptr->frontier.trainerIds[i] == gTrainerBattleOpponent_A)
|
||||
{
|
||||
gSaveBlock2Ptr->frontier.field_EE0 |= gBitTable[floorId + i];
|
||||
break;
|
||||
@@ -903,7 +903,7 @@ void SetHillTrainerFlag(void)
|
||||
{
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
if (gSaveBlock2Ptr->frontier.field_CB4[i] == gTrainerBattleOpponent_B)
|
||||
if (gSaveBlock2Ptr->frontier.trainerIds[i] == gTrainerBattleOpponent_B)
|
||||
{
|
||||
gSaveBlock2Ptr->frontier.field_EE0 |= gBitTable[floorId + i];
|
||||
break;
|
||||
|
||||
+18
-18
@@ -876,31 +876,31 @@ void sub_810790C(struct Sprite *sprite)
|
||||
#ifdef NONMATCHING
|
||||
void AnimTask_CreateSurfWave(u8 taskId)
|
||||
{
|
||||
struct UnknownAnimStruct2 unk;
|
||||
struct BattleAnimBgData animBg;
|
||||
u8 taskId2;
|
||||
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16));
|
||||
SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1);
|
||||
SetAnimBgAttribute(1, BG_ANIM_SCREEN_SIZE, 1);
|
||||
sub_80A6B30(&unk);
|
||||
sub_80A6B30(&animBg);
|
||||
if (!IsContest())
|
||||
{
|
||||
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1);
|
||||
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT)
|
||||
sub_80A6D48(unk.bgId, gUnknown_08D95E00);
|
||||
AnimLoadCompressedBgTilemap(animBg.bgId, gUnknown_08D95E00);
|
||||
else
|
||||
sub_80A6D48(unk.bgId, gUnknown_08D960D0);
|
||||
AnimLoadCompressedBgTilemap(animBg.bgId, gUnknown_08D960D0);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_80A6D60(&unk, gUnknown_08D963A4, 1);
|
||||
sub_80A6D60(&animBg, gUnknown_08D963A4, 1);
|
||||
}
|
||||
sub_80A6CC0(unk.bgId, gBattleAnimBackgroundImage_Surf, unk.tilesOffset);
|
||||
AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBackgroundImage_Surf, animBg.tilesOffset);
|
||||
if (gBattleAnimArgs[0] == 0)
|
||||
LoadCompressedPalette(gBattleAnimBackgroundPalette_Surf, unk.unk8 * 16, 32);
|
||||
LoadCompressedPalette(gBattleAnimBackgroundPalette_Surf, animBg.paletteId * 16, 32);
|
||||
else
|
||||
LoadCompressedPalette(gBattleAnimBackgroundImageMuddyWater_Pal, unk.unk8 * 16, 32);
|
||||
LoadCompressedPalette(gBattleAnimBackgroundImageMuddyWater_Pal, animBg.paletteId * 16, 32);
|
||||
taskId2 = CreateTask(sub_8107D58, gTasks[taskId].priority + 1);
|
||||
gTasks[taskId].data[15] = taskId2;
|
||||
gTasks[taskId2].data[0] = 0;
|
||||
@@ -993,14 +993,14 @@ void AnimTask_CreateSurfWave(u8 taskId)
|
||||
mov r0, sp\n\
|
||||
ldrb r0, [r0, 0x9]\n\
|
||||
ldr r1, =gUnknown_08D95E00\n\
|
||||
bl sub_80A6D48\n\
|
||||
bl AnimLoadCompressedBgTilemap\n\
|
||||
b _081079EA\n\
|
||||
.pool\n\
|
||||
_081079D0:\n\
|
||||
mov r0, sp\n\
|
||||
ldrb r0, [r0, 0x9]\n\
|
||||
ldr r1, =gUnknown_08D960D0\n\
|
||||
bl sub_80A6D48\n\
|
||||
bl AnimLoadCompressedBgTilemap\n\
|
||||
b _081079EA\n\
|
||||
.pool\n\
|
||||
_081079E0:\n\
|
||||
@@ -1014,7 +1014,7 @@ _081079EA:\n\
|
||||
ldr r1, =gBattleAnimBackgroundImage_Surf\n\
|
||||
mov r2, sp\n\
|
||||
ldrh r2, [r2, 0xA]\n\
|
||||
bl sub_80A6CC0\n\
|
||||
bl AnimLoadCompressedBgGfx\n\
|
||||
ldr r0, =gBattleAnimArgs\n\
|
||||
movs r1, 0\n\
|
||||
ldrsh r0, [r0, r1]\n\
|
||||
@@ -1176,7 +1176,7 @@ _08107B58:\n\
|
||||
#ifdef NONMATCHING
|
||||
void sub_8107B84(u8 taskId)
|
||||
{
|
||||
struct UnknownAnimStruct2 unk;
|
||||
struct BattleAnimBgData animBg;
|
||||
u8 i;
|
||||
u16 rgbBuffer;
|
||||
u16 *BGptrX = &gBattle_BG1_X;
|
||||
@@ -1187,18 +1187,18 @@ void sub_8107B84(u8 taskId)
|
||||
|
||||
*BGptrX += gTasks[taskId].data[0];
|
||||
*BGptrY += gTasks[taskId].data[1];
|
||||
sub_80A6B30(&unk);
|
||||
sub_80A6B30(&animBg);
|
||||
gTasks[taskId].data[2] += gTasks[taskId].data[1];
|
||||
if (++gTasks[taskId].data[5] == 4)
|
||||
{
|
||||
rgbBuffer = gPlttBufferFaded[unk.unk8 * 16 + 7];
|
||||
rgbBuffer = gPlttBufferFaded[animBg.paletteId * 16 + 7];
|
||||
for (i = 6; i != 0; i--)
|
||||
{
|
||||
palNum = unk.unk8 * 16;
|
||||
palNum = animBg.paletteId * 16;
|
||||
palOffset = 1 + i;
|
||||
gPlttBufferFaded[palNum + palOffset] = gPlttBufferFaded[palNum + palOffset - 1];
|
||||
}
|
||||
gPlttBufferFaded[unk.unk8 * 16 + 1] = rgbBuffer;
|
||||
gPlttBufferFaded[animBg.paletteId * 16 + 1] = rgbBuffer;
|
||||
gTasks[taskId].data[5] = 0;
|
||||
}
|
||||
if (++gTasks[taskId].data[6] > 1)
|
||||
@@ -2320,7 +2320,7 @@ void sub_8108AC0(struct Task *task)
|
||||
|
||||
void sub_8108B2C(struct Sprite *sprite)
|
||||
{
|
||||
if (TranslateAnimArc(sprite))
|
||||
if (TranslateAnimHorizontalArc(sprite))
|
||||
{
|
||||
sprite->pos1.x += sprite->pos2.x;
|
||||
sprite->pos1.y += sprite->pos2.y;
|
||||
@@ -2337,7 +2337,7 @@ void sub_8108B94(struct Sprite *sprite)
|
||||
{
|
||||
u16 i;
|
||||
|
||||
if (TranslateAnimArc(sprite))
|
||||
if (TranslateAnimHorizontalArc(sprite))
|
||||
{
|
||||
for (i = 0; i < NUM_TASKS; i++)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user