Merge branch 'master' of github.com:pret/pokeemerald

This commit is contained in:
Diegoisawesome
2019-02-12 00:40:42 -06:00
336 changed files with 4022 additions and 4179 deletions
+19 -19
View File
@@ -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
View File
@@ -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];
+6 -6
View File
@@ -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;
}
+7 -7
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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;
+17 -17
View File
@@ -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
View File
@@ -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;
+2 -2
View File
@@ -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;
+2 -2
View File
@@ -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;
+2 -2
View File
@@ -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;
+2 -2
View File
@@ -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;
+2 -2
View File
@@ -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;
+2 -2
View File
@@ -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;
+2 -2
View File
@@ -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;
+1 -1
View File
@@ -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
View File
File diff suppressed because it is too large Load Diff
+99 -97
View File
@@ -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
View File
@@ -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
View File
File diff suppressed because it is too large Load Diff
+964 -901
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -338,7 +338,7 @@ static const struct SpriteTemplate gUnknown_0861F3D4 =
};
// code
void sub_81C4EEC(void)
void InitBattlePyramidBagCursorPosition(void)
{
gPyramidBagCursorData.cursorPosition = 0;
gPyramidBagCursorData.scrollPosition = 0;
+2 -2
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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)
+2 -2
View File
@@ -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
View File
@@ -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 = &REG_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
View File
@@ -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)
+4 -4
View File
@@ -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
View File
@@ -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"
+2 -2
View File
@@ -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);
}
+1 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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);
}
+15 -15
View File
@@ -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
View File
@@ -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
View File
@@ -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 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
+5 -5
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
File diff suppressed because it is too large Load Diff
+5 -5
View File
@@ -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
View File
@@ -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++)
{