Document battle_anim_mons, 1

This commit is contained in:
PikalaxALT
2021-03-18 08:49:31 -04:00
parent 5add6bc54f
commit d86c9b0976
18 changed files with 97 additions and 95 deletions
+2 -2
View File
@@ -671,8 +671,8 @@ extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT];
extern void (*gPreBattleCallback1)(void); extern void (*gPreBattleCallback1)(void);
extern bool8 gDoingBattleAnim; extern bool8 gDoingBattleAnim;
extern struct PokedudeBattlerState *gPokedudeBattlerStates[MAX_BATTLERS_COUNT]; extern struct PokedudeBattlerState *gPokedudeBattlerStates[MAX_BATTLERS_COUNT];
extern u8 *gUnknown_2022BB8; extern u8 *gBattleAnimMons_BgTilesBuffer;
extern u8 *gUnknown_2022BBC; extern u8 *gBattleAnimMons_BgTilemapBuffer;
extern void (*gBattleMainFunc)(void); extern void (*gBattleMainFunc)(void);
extern u8 gMoveSelectionCursor[MAX_BATTLERS_COUNT]; extern u8 gMoveSelectionCursor[MAX_BATTLERS_COUNT];
extern u32 gUnknown_2022B54; extern u32 gUnknown_2022B54;
+7 -7
View File
@@ -158,7 +158,7 @@ void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value);
s32 GetAnimBgAttribute(u8 bgId, u8 attributeId); s32 GetAnimBgAttribute(u8 bgId, u8 attributeId);
void HandleIntroSlide(u8 terrain); void HandleIntroSlide(u8 terrain);
void sub_80BC41C(u8 taskId); void sub_80BC41C(u8 taskId);
void sub_80BCEF4(s32 bgId, u8 arg1, u8 arg2, u8 battlerPosition, u8 arg4, u8 *arg5, u16 *arg6, u16 tilesOffset); void CopyBattlerSpriteToBg(s32 bgId, u8 x, u8 y, u8 battlerPosition, u8 palno, u8 *tilesDest, u16 *tilemapDest, u16 tilesOffset);
// battle_anim_effects_1.c // battle_anim_effects_1.c
extern const union AnimCmd *const gMusicNotesAnimTable[]; extern const union AnimCmd *const gMusicNotesAnimTable[];
@@ -392,14 +392,14 @@ u8 GetBattlerAtPosition(u8 position);
bool8 IsBattlerSpritePresent(u8 battlerId); bool8 IsBattlerSpritePresent(u8 battlerId);
bool8 IsDoubleBattle(void); bool8 IsDoubleBattle(void);
void GetBattleAnimBg1Data(struct BattleAnimBgData *animBgData); void GetBattleAnimBg1Data(struct BattleAnimBgData *animBgData);
void sub_80752C8(struct BattleAnimBgData *animBgData, u32 arg1); void GetBattleAnimBgData(struct BattleAnimBgData *animBgData, u32 bgId);
void sub_8075300(struct BattleAnimBgData *animBgData, u8 unused); void GetBattleAnimBgDataByPriorityRank(struct BattleAnimBgData *animBgData, u8 unused);
void sub_8075358(u32 bgId); void InitBattleAnimBg(u32 bgId);
void AnimLoadCompressedBgGfx(u32 bgId, const u32 *src, u32 tilesOffset); void AnimLoadCompressedBgGfx(u32 bgId, const u32 *src, u32 tilesOffset);
void InitAnimBgTilemapBuffer(u32 bgId, const void *src); void InitAnimBgTilemapBuffer(u32 bgId, const void *src);
void AnimLoadCompressedBgTilemap(u32 bgId, const u32 *src); void AnimLoadCompressedBgTilemap(u32 bgId, const u32 *src);
u8 GetBattleBgPaletteNum(void); u8 GetBattleBgPaletteNum(void);
void sub_8075458(bool8 arg0); void ToggleBg3Mode(bool8 arg0);
void StartSpriteLinearTranslationFromCurrentPos(struct Sprite *sprite); void StartSpriteLinearTranslationFromCurrentPos(struct Sprite *sprite);
void InitSpriteDataForLinearTranslation(struct Sprite *sprite); void InitSpriteDataForLinearTranslation(struct Sprite *sprite);
void InitAnimLinearTranslation(struct Sprite *sprite); void InitAnimLinearTranslation(struct Sprite *sprite);
@@ -407,8 +407,8 @@ void StartAnimLinearTranslation(struct Sprite *sprite);
void PlayerThrowBall_StartAnimLinearTranslation(struct Sprite *sprite); void PlayerThrowBall_StartAnimLinearTranslation(struct Sprite *sprite);
bool8 AnimTranslateLinear(struct Sprite *sprite); bool8 AnimTranslateLinear(struct Sprite *sprite);
void RunLinearTranslation_ThenceSetCBtoStoredInData6(struct Sprite *sprite); void RunLinearTranslation_ThenceSetCBtoStoredInData6(struct Sprite *sprite);
void sub_8075678(struct Sprite *sprite); void BattleAnim_InitLinearTranslationWithDuration(struct Sprite *sprite);
void sub_80756A4(struct Sprite *sprite); void BattleAnim_InitAndRunLinearTranslationWithDuration(struct Sprite *sprite);
void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite); void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite);
bool8 AnimFastTranslateLinear(struct Sprite *sprite); bool8 AnimFastTranslateLinear(struct Sprite *sprite);
void InitAnimFastLinearTranslationWithSpeed(struct Sprite *sprite); void InitAnimFastLinearTranslationWithSpeed(struct Sprite *sprite);
+7 -5
View File
@@ -2278,13 +2278,14 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2)
LoadPalette(&gPlttBufferUnfaded[0x100 + battlerId * 16], animBg.paletteId * 16, 0x20); LoadPalette(&gPlttBufferUnfaded[0x100 + battlerId * 16], animBg.paletteId * 16, 0x20);
CpuCopy32(&gPlttBufferUnfaded[0x100 + battlerId * 16], (void*)(BG_PLTT + animBg.paletteId * 32), 0x20); CpuCopy32(&gPlttBufferUnfaded[0x100 + battlerId * 16], (void*)(BG_PLTT + animBg.paletteId * 32), 0x20);
sub_80BCEF4(1, 0, 0, GetBattlerPosition(battlerId), animBg.paletteId, animBg.bgTiles, animBg.bgTilemap, animBg.tilesOffset); CopyBattlerSpriteToBg(1, 0, 0, GetBattlerPosition(battlerId), animBg.paletteId, animBg.bgTiles,
animBg.bgTilemap, animBg.tilesOffset);
} }
else else
{ {
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(12)), 0x2000, DMA3_32BIT); RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(12)), 0x2000, DMA3_32BIT);
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(30)), 0x1000, DMA3_32BIT); RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(30)), 0x1000, DMA3_32BIT);
sub_80752C8(&animBg, 2); GetBattleAnimBgData(&animBg, 2);
CpuFill16(0, animBg.bgTiles + 0x1000, 0x1000); CpuFill16(0, animBg.bgTiles + 0x1000, 0x1000);
CpuFill16(0, animBg.bgTilemap + 0x400, 0x800); CpuFill16(0, animBg.bgTilemap + 0x400, 0x800);
SetAnimBgAttribute(2, BG_ANIM_PRIORITY, 2); SetAnimBgAttribute(2, BG_ANIM_PRIORITY, 2);
@@ -2302,7 +2303,8 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2)
LoadPalette(&gPlttBufferUnfaded[0x100 + battlerId * 16], 0x90, 0x20); LoadPalette(&gPlttBufferUnfaded[0x100 + battlerId * 16], 0x90, 0x20);
CpuCopy32(&gPlttBufferUnfaded[0x100 + battlerId * 16], (void*)(BG_PLTT + 0x120), 0x20); CpuCopy32(&gPlttBufferUnfaded[0x100 + battlerId * 16], (void*)(BG_PLTT + 0x120), 0x20);
sub_80BCEF4(2, 0, 0, GetBattlerPosition(battlerId), animBg.paletteId, animBg.bgTiles + 0x1000, animBg.bgTilemap + 0x400, animBg.tilesOffset); CopyBattlerSpriteToBg(2, 0, 0, GetBattlerPosition(battlerId), animBg.paletteId, animBg.bgTiles + 0x1000,
animBg.bgTilemap + 0x400, animBg.tilesOffset);
} }
} }
@@ -2333,13 +2335,13 @@ void ResetBattleAnimBg(bool8 to_BG2)
if (!to_BG2) if (!to_BG2)
{ {
sub_8075358(1); InitBattleAnimBg(1);
gBattle_BG1_X = 0; gBattle_BG1_X = 0;
gBattle_BG1_Y = 0; gBattle_BG1_Y = 0;
} }
else else
{ {
sub_8075358(2); InitBattleAnimBg(2);
gBattle_BG2_X = 0; gBattle_BG2_X = 0;
gBattle_BG2_Y = 0; gBattle_BG2_Y = 0;
} }
+4 -4
View File
@@ -1738,7 +1738,7 @@ void AnimCoinThrow(struct Sprite *sprite)
sprite->data[0] = gBattleAnimArgs[4]; sprite->data[0] = gBattleAnimArgs[4];
sprite->data[2] = r6; sprite->data[2] = r6;
sprite->data[4] = r7; sprite->data[4] = r7;
sprite->callback = sub_80756A4; sprite->callback = BattleAnim_InitAndRunLinearTranslationWithDuration;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
} }
@@ -3283,7 +3283,7 @@ static void HeartsBackground_Step(u8 taskId)
break; break;
case 3: case 3:
GetBattleAnimBg1Data(&animBg); GetBattleAnimBg1Data(&animBg);
sub_8075358(animBg.bgId); InitBattleAnimBg(animBg.bgId);
gTasks[taskId].data[12]++; gTasks[taskId].data[12]++;
break; break;
case 4: case 4:
@@ -3371,8 +3371,8 @@ static void ScaryFace_Step(u8 taskId)
break; break;
case 3: case 3:
GetBattleAnimBg1Data(&animBg); GetBattleAnimBg1Data(&animBg);
sub_8075358(1); InitBattleAnimBg(1);
sub_8075358(2); InitBattleAnimBg(2);
gTasks[taskId].data[12]++; gTasks[taskId].data[12]++;
// fall through // fall through
case 4: case 4:
+3 -3
View File
@@ -2216,7 +2216,7 @@ void AnimTask_TransformMon(u8 taskId)
break; break;
case 2: case 2:
HandleSpeciesGfxDataChange(gBattleAnimAttacker, gBattleAnimTarget, gTasks[taskId].data[10]); HandleSpeciesGfxDataChange(gBattleAnimAttacker, gBattleAnimTarget, gTasks[taskId].data[10]);
sub_8075300(&animBg, gBattleAnimAttacker); GetBattleAnimBgDataByPriorityRank(&animBg, gBattleAnimAttacker);
if (IsContest()) if (IsContest())
position = 0; position = 0;
else else
@@ -2349,7 +2349,7 @@ void AnimTask_MorningSunLightBeam(u8 taskId)
break; break;
case 4: case 4:
GetBattleAnimBg1Data(&animBg); GetBattleAnimBg1Data(&animBg);
sub_8075358(animBg.bgId); InitBattleAnimBg(animBg.bgId);
if (!IsContest()) if (!IsContest())
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0); SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0);
@@ -2541,7 +2541,7 @@ void AnimTask_DoomDesireLightBeam(u8 taskId)
break; break;
case 5: case 5:
GetBattleAnimBg1Data(&animBg); GetBattleAnimBg1Data(&animBg);
sub_8075358(animBg.bgId); InitBattleAnimBg(animBg.bgId);
if (!IsContest()) if (!IsContest())
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0); SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0);
+26 -26
View File
@@ -20,8 +20,8 @@
static u8 GetBattlerSpriteFinal_Y(u8 battlerId, u16 species, bool8 a3); static u8 GetBattlerSpriteFinal_Y(u8 battlerId, u16 species, bool8 a3);
static void PlayerThrowBall_RunLinearTranslation_ThenceSetCBtoStoredInData6(struct Sprite *sprite); static void PlayerThrowBall_RunLinearTranslation_ThenceSetCBtoStoredInData6(struct Sprite *sprite);
static void sub_80757E8(struct Sprite *sprite); static void SpriteCB_RunAnimFastLinearTranslation(struct Sprite *sprite);
static bool8 sub_80758DC(void); static bool8 Dummy_ReturnFalse(void);
static void AnimThrowProjectile_Step(struct Sprite *sprite); static void AnimThrowProjectile_Step(struct Sprite *sprite);
static void sub_80760D0(u8 taskId); static void sub_80760D0(u8 taskId);
static void AnimTask_BlendMonInAndOutSetup(struct Task *task); static void AnimTask_BlendMonInAndOutSetup(struct Task *task);
@@ -803,24 +803,24 @@ bool8 IsDoubleBattle(void)
void GetBattleAnimBg1Data(struct BattleAnimBgData *animBgData) void GetBattleAnimBg1Data(struct BattleAnimBgData *animBgData)
{ {
animBgData->bgTiles = gUnknown_2022BB8; animBgData->bgTiles = gBattleAnimMons_BgTilesBuffer;
animBgData->bgTilemap = (u16 *)gUnknown_2022BBC; animBgData->bgTilemap = (u16 *)gBattleAnimMons_BgTilemapBuffer;
animBgData->paletteId = 8; animBgData->paletteId = 8;
animBgData->bgId = 1; animBgData->bgId = 1;
animBgData->tilesOffset = 0x200; animBgData->tilesOffset = 0x200;
animBgData->unused = 0; animBgData->unused = 0;
} }
void sub_80752C8(struct BattleAnimBgData *animBgData, u32 arg1) void GetBattleAnimBgData(struct BattleAnimBgData *animBgData, u32 bgId)
{ {
if (arg1 == 1) if (bgId == 1)
{ {
GetBattleAnimBg1Data(animBgData); GetBattleAnimBg1Data(animBgData);
} }
else else
{ {
animBgData->bgTiles = gUnknown_2022BB8; animBgData->bgTiles = gBattleAnimMons_BgTilesBuffer;
animBgData->bgTilemap = (u16 *)gUnknown_2022BBC; animBgData->bgTilemap = (u16 *)gBattleAnimMons_BgTilemapBuffer;
animBgData->paletteId = 9; animBgData->paletteId = 9;
animBgData->bgId = 2; animBgData->bgId = 2;
animBgData->tilesOffset = 0x300; animBgData->tilesOffset = 0x300;
@@ -828,10 +828,10 @@ void sub_80752C8(struct BattleAnimBgData *animBgData, u32 arg1)
} }
} }
void sub_8075300(struct BattleAnimBgData *animBgData, u8 unused) void GetBattleAnimBgDataByPriorityRank(struct BattleAnimBgData *animBgData, u8 unused)
{ {
animBgData->bgTiles = gUnknown_2022BB8; animBgData->bgTiles = gBattleAnimMons_BgTilesBuffer;
animBgData->bgTilemap = (u16 *)gUnknown_2022BBC; animBgData->bgTilemap = (u16 *)gBattleAnimMons_BgTilemapBuffer;
if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1) if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1)
{ {
animBgData->paletteId = 8; animBgData->paletteId = 8;
@@ -848,11 +848,11 @@ void sub_8075300(struct BattleAnimBgData *animBgData, u8 unused)
} }
} }
void sub_8075358(u32 bgId) void InitBattleAnimBg(u32 bgId)
{ {
struct BattleAnimBgData animBgData; struct BattleAnimBgData animBgData;
sub_80752C8(&animBgData, bgId); GetBattleAnimBgData(&animBgData, bgId);
CpuFill32(0, animBgData.bgTiles, 0x2000); CpuFill32(0, animBgData.bgTiles, 0x2000);
LoadBgTiles(bgId, animBgData.bgTiles, 0x2000, animBgData.tilesOffset); LoadBgTiles(bgId, animBgData.bgTiles, 0x2000, animBgData.tilesOffset);
FillBgTilemapBufferRect(bgId, 0, 0, 0, 32, 64, 17); FillBgTilemapBufferRect(bgId, 0, 0, 0, 32, 64, 17);
@@ -861,9 +861,9 @@ void sub_8075358(u32 bgId)
void AnimLoadCompressedBgGfx(u32 bgId, const u32 *src, u32 tilesOffset) void AnimLoadCompressedBgGfx(u32 bgId, const u32 *src, u32 tilesOffset)
{ {
CpuFill32(0, gUnknown_2022BB8, 0x2000); CpuFill32(0, gBattleAnimMons_BgTilesBuffer, 0x2000);
LZDecompressWram(src, gUnknown_2022BB8); LZDecompressWram(src, gBattleAnimMons_BgTilesBuffer);
LoadBgTiles(bgId, gUnknown_2022BB8, 0x2000, tilesOffset); LoadBgTiles(bgId, gBattleAnimMons_BgTilesBuffer, 0x2000, tilesOffset);
} }
void InitAnimBgTilemapBuffer(u32 bgId, const void *src) void InitAnimBgTilemapBuffer(u32 bgId, const void *src)
@@ -883,7 +883,7 @@ u8 GetBattleBgPaletteNum(void)
return 2; return 2;
} }
void sub_8075458(bool8 arg0) void ToggleBg3Mode(bool8 arg0)
{ {
if (!arg0) if (!arg0)
{ {
@@ -1003,7 +1003,7 @@ static void PlayerThrowBall_RunLinearTranslation_ThenceSetCBtoStoredInData6(stru
SetCallbackToStoredInData6(sprite); SetCallbackToStoredInData6(sprite);
} }
void sub_8075678(struct Sprite *sprite) void BattleAnim_InitLinearTranslationWithDuration(struct Sprite *sprite)
{ {
s32 v1 = abs(sprite->sTransl_DestX - sprite->sTransl_InitX) << 8; s32 v1 = abs(sprite->sTransl_DestX - sprite->sTransl_InitX) << 8;
@@ -1011,11 +1011,11 @@ void sub_8075678(struct Sprite *sprite)
InitAnimLinearTranslation(sprite); InitAnimLinearTranslation(sprite);
} }
void sub_80756A4(struct Sprite *sprite) void BattleAnim_InitAndRunLinearTranslationWithDuration(struct Sprite *sprite)
{ {
sprite->sTransl_InitX = sprite->pos1.x; sprite->sTransl_InitX = sprite->pos1.x;
sprite->sTransl_InitY = sprite->pos1.y; sprite->sTransl_InitY = sprite->pos1.y;
sub_8075678(sprite); BattleAnim_InitLinearTranslationWithDuration(sprite);
sprite->callback = RunLinearTranslation_ThenceSetCBtoStoredInData6; sprite->callback = RunLinearTranslation_ThenceSetCBtoStoredInData6;
sprite->callback(sprite); sprite->callback(sprite);
} }
@@ -1050,7 +1050,7 @@ void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite)
sprite->sTransl_InitX = sprite->pos1.x; sprite->sTransl_InitX = sprite->pos1.x;
sprite->sTransl_InitY = sprite->pos1.y; sprite->sTransl_InitY = sprite->pos1.y;
InitAnimFastLinearTranslation(sprite); InitAnimFastLinearTranslation(sprite);
sprite->callback = sub_80757E8; sprite->callback = SpriteCB_RunAnimFastLinearTranslation;
sprite->callback(sprite); sprite->callback(sprite);
} }
@@ -1080,7 +1080,7 @@ bool8 AnimFastTranslateLinear(struct Sprite *sprite)
return FALSE; return FALSE;
} }
static void sub_80757E8(struct Sprite *sprite) static void SpriteCB_RunAnimFastLinearTranslation(struct Sprite *sprite)
{ {
if (AnimFastTranslateLinear(sprite)) if (AnimFastTranslateLinear(sprite))
SetCallbackToStoredInData6(sprite); SetCallbackToStoredInData6(sprite);
@@ -1099,7 +1099,7 @@ void sub_8075830(struct Sprite *sprite)
sprite->data[1] = sprite->pos1.x; sprite->data[1] = sprite->pos1.x;
sprite->data[3] = sprite->pos1.y; sprite->data[3] = sprite->pos1.y;
InitAnimFastLinearTranslationWithSpeed(sprite); InitAnimFastLinearTranslationWithSpeed(sprite);
sprite->callback = sub_80757E8; sprite->callback = SpriteCB_RunAnimFastLinearTranslation;
sprite->callback(sprite); sprite->callback(sprite);
} }
@@ -1112,7 +1112,7 @@ void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation)
src.xScale = xScale; src.xScale = xScale;
src.yScale = yScale; src.yScale = yScale;
src.rotation = rotation; src.rotation = rotation;
if (sub_80758DC()) if (Dummy_ReturnFalse())
src.xScale = -src.xScale; src.xScale = -src.xScale;
i = gSprites[spriteId].oam.matrixNum; i = gSprites[spriteId].oam.matrixNum;
ObjAffineSet(&src, &matrix, 1, 2); ObjAffineSet(&src, &matrix, 1, 2);
@@ -1122,7 +1122,7 @@ void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation)
gOamMatrices[i].d = matrix.d; gOamMatrices[i].d = matrix.d;
} }
static bool8 sub_80758DC(void) static bool8 Dummy_ReturnFalse(void)
{ {
return FALSE; return FALSE;
} }
@@ -1177,7 +1177,7 @@ void TrySetSpriteRotScale(struct Sprite *sprite, bool8 recalcCenterVector, s16 x
src.xScale = xScale; src.xScale = xScale;
src.yScale = yScale; src.yScale = yScale;
src.rotation = rotation; src.rotation = rotation;
if (sub_80758DC()) if (Dummy_ReturnFalse())
src.xScale = -src.xScale; src.xScale = -src.xScale;
i = sprite->oam.matrixNum; i = sprite->oam.matrixNum;
ObjAffineSet(&src, &matrix, 1, 2); ObjAffineSet(&src, &matrix, 1, 2);
+7 -7
View File
@@ -33,9 +33,9 @@ static void sub_80BC19C(u8 taskId);
static EWRAM_DATA struct AnimStatsChangeData *sAnimStatsChangeData = NULL; static EWRAM_DATA struct AnimStatsChangeData *sAnimStatsChangeData = NULL;
static const u16 gUnknown_83E7CC8[] = { RGB(31, 31, 31) }; static const u16 sRgbWhite[] = { RGB(31, 31, 31) };
const u8 gUnknown_83E7CCA[] = { REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, REG_OFFSET_BG2CNT, REG_OFFSET_BG3CNT }; const u8 gBattleAnimRegOffsBgCnt[] = { REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, REG_OFFSET_BG2CNT, REG_OFFSET_BG3CNT };
const u8 gUnknown_83E7CCE[] = { REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, REG_OFFSET_BG2CNT, REG_OFFSET_BG3CNT }; const u8 gBattleIntroRegOffsBgCnt[] = { REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, REG_OFFSET_BG2CNT, REG_OFFSET_BG3CNT };
// gBattleAnimArgs[0] is a bitfield. // gBattleAnimArgs[0] is a bitfield.
// Bits 0-10 result in the following palettes being selected: // Bits 0-10 result in the following palettes being selected:
@@ -336,7 +336,7 @@ void AnimTask_SetUpCurseBackground(u8 taskId)
if (IsContest()) if (IsContest())
sub_80730C0(animBgData.paletteId, animBgData.bgTilemap, 0, 0); sub_80730C0(animBgData.paletteId, animBgData.bgTilemap, 0, 0);
AnimLoadCompressedBgGfx(animBgData.bgId, gFile_graphics_battle_anims_masks_curse_sheet, animBgData.tilesOffset); AnimLoadCompressedBgGfx(animBgData.bgId, gFile_graphics_battle_anims_masks_curse_sheet, animBgData.tilesOffset);
LoadPalette(gUnknown_83E7CC8, animBgData.paletteId * 16 + 1, 2); LoadPalette(sRgbWhite, animBgData.paletteId * 16 + 1, 2);
gBattle_BG1_X = -gSprites[spriteId].pos1.x + 32; gBattle_BG1_X = -gSprites[spriteId].pos1.x + 32;
gBattle_BG1_Y = -gSprites[spriteId].pos1.y + 32; gBattle_BG1_Y = -gSprites[spriteId].pos1.y + 32;
gTasks[taskId].data[0] = newSpriteId; gTasks[taskId].data[0] = newSpriteId;
@@ -378,7 +378,7 @@ static void sub_80BAF38(u8 taskId)
sprite = &gSprites[gTasks[taskId].data[0]]; sprite = &gSprites[gTasks[taskId].data[0]];
DestroySprite(sprite); DestroySprite(sprite);
GetBattleAnimBg1Data(&animBgData); GetBattleAnimBg1Data(&animBgData);
sub_8075358(animBgData.bgId); InitBattleAnimBg(animBgData.bgId);
if (gTasks[taskId].data[6] == 1) if (gTasks[taskId].data[6] == 1)
++gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].oam.priority; ++gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].oam.priority;
gBattle_BG1_Y = 0; gBattle_BG1_Y = 0;
@@ -663,7 +663,7 @@ void AnimTask_StartSlidingBg(u8 taskId)
{ {
u8 newTaskId; u8 newTaskId;
sub_8075458(0); ToggleBg3Mode(0);
newTaskId = CreateTask(sub_80BB8A4, 5); newTaskId = CreateTask(sub_80BB8A4, 5);
if (gBattleAnimArgs[2] && GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) if (gBattleAnimArgs[2] && GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
{ {
@@ -689,7 +689,7 @@ static void sub_80BB8A4(u8 taskId)
{ {
gBattle_BG3_X = 0; gBattle_BG3_X = 0;
gBattle_BG3_Y = 0; gBattle_BG3_Y = 0;
sub_8075458(1); ToggleBg3Mode(1);
DestroyTask(taskId); DestroyTask(taskId);
} }
} }
+12 -12
View File
@@ -9,8 +9,8 @@
static EWRAM_DATA u16 sBgCnt = 0; static EWRAM_DATA u16 sBgCnt = 0;
extern const u8 gUnknown_83E7CCA[]; extern const u8 gBattleAnimRegOffsBgCnt[];
extern const u8 gUnknown_83E7CCE[]; extern const u8 gBattleIntroRegOffsBgCnt[];
static void BattleIntroSlide1(u8 taskId); static void BattleIntroSlide1(u8 taskId);
static void BattleIntroSlide2(u8 taskId); static void BattleIntroSlide2(u8 taskId);
@@ -35,7 +35,7 @@ void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value)
{ {
if (bgId < 4) if (bgId < 4)
{ {
sBgCnt = GetGpuReg(gUnknown_83E7CCA[bgId]); sBgCnt = GetGpuReg(gBattleAnimRegOffsBgCnt[bgId]);
switch (attributeId) switch (attributeId)
{ {
case BG_ANIM_SCREEN_SIZE: case BG_ANIM_SCREEN_SIZE:
@@ -60,7 +60,7 @@ void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value)
((struct BgCnt *)&sBgCnt)->screenBaseBlock = value; ((struct BgCnt *)&sBgCnt)->screenBaseBlock = value;
break; break;
} }
SetGpuReg(gUnknown_83E7CCA[bgId], sBgCnt); SetGpuReg(gBattleAnimRegOffsBgCnt[bgId], sBgCnt);
} }
} }
@@ -70,7 +70,7 @@ s32 GetAnimBgAttribute(u8 bgId, u8 attributeId)
if (bgId < 4) if (bgId < 4)
{ {
bgCnt = GetGpuReg(gUnknown_83E7CCE[bgId]); bgCnt = GetGpuReg(gBattleIntroRegOffsBgCnt[bgId]);
switch (attributeId) switch (attributeId)
{ {
case BG_ANIM_SCREEN_SIZE: case BG_ANIM_SCREEN_SIZE:
@@ -465,18 +465,18 @@ static void BattleIntroSlideLink(u8 taskId)
} }
} }
void sub_80BCEF4(s32 bgId, u8 arg1, u8 arg2, u8 battlerPosition, u8 arg4, u8 *arg5, u16 *arg6, u16 tilesOffset) void CopyBattlerSpriteToBg(s32 bgId, u8 x, u8 y, u8 battlerPosition, u8 palno, u8 *tilesDest, u16 *tilemapDest, u16 tilesOffset)
{ {
s32 i, j; s32 i, j;
u8 battler = GetBattlerAtPosition(battlerPosition); u8 battler = GetBattlerAtPosition(battlerPosition);
s32 offset = tilesOffset; s32 offset = tilesOffset;
CpuCopy16(gMonSpritesGfxPtr->sprites[battlerPosition] + BG_SCREEN_SIZE * gBattleMonForms[battler], arg5, BG_SCREEN_SIZE); CpuCopy16(gMonSpritesGfxPtr->sprites[battlerPosition] + BG_SCREEN_SIZE * gBattleMonForms[battler], tilesDest, BG_SCREEN_SIZE);
LoadBgTiles(bgId, arg5, 0x1000, tilesOffset); LoadBgTiles(bgId, tilesDest, 0x1000, tilesOffset);
for (i = arg2; i < arg2 + 8; ++i) for (i = y; i < y + 8; ++i)
for (j = arg1; j < arg1 + 8; ++j) for (j = x; j < x + 8; ++j)
arg6[i * 32 + j] = offset++ | (arg4 << 12); tilemapDest[i * 32 + j] = offset++ | (palno << 12);
LoadBgTilemap(bgId, arg6, BG_SCREEN_SIZE, 0); LoadBgTilemap(bgId, tilemapDest, BG_SCREEN_SIZE, 0);
} }
// not used // not used
+2 -2
View File
@@ -130,8 +130,8 @@ EWRAM_DATA u32 gBattleTypeFlags = 0;
EWRAM_DATA u8 gBattleTerrain = 0; EWRAM_DATA u8 gBattleTerrain = 0;
EWRAM_DATA u32 gUnknown_2022B54 = 0; EWRAM_DATA u32 gUnknown_2022B54 = 0;
EWRAM_DATA struct MultiBattlePokemonTx gMultiPartnerParty[3] = {0}; EWRAM_DATA struct MultiBattlePokemonTx gMultiPartnerParty[3] = {0};
EWRAM_DATA u8 *gUnknown_2022BB8 = NULL; EWRAM_DATA u8 *gBattleAnimMons_BgTilesBuffer = NULL;
EWRAM_DATA u8 *gUnknown_2022BBC = NULL; EWRAM_DATA u8 *gBattleAnimMons_BgTilemapBuffer = NULL;
EWRAM_DATA u16 *sUnknownDebugSpriteDataBuffer = NULL; EWRAM_DATA u16 *sUnknownDebugSpriteDataBuffer = NULL;
EWRAM_DATA u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200] = {0}; EWRAM_DATA u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200] = {0};
EWRAM_DATA u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200] = {0}; EWRAM_DATA u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200] = {0};
+6 -6
View File
@@ -29,10 +29,10 @@ void AllocateBattleResources(void)
gBattleResources->AI_ScriptsStack = AllocZeroed(sizeof(*gBattleResources->AI_ScriptsStack)); gBattleResources->AI_ScriptsStack = AllocZeroed(sizeof(*gBattleResources->AI_ScriptsStack));
gLinkBattleSendBuffer = AllocZeroed(BATTLE_BUFFER_LINK_SIZE); gLinkBattleSendBuffer = AllocZeroed(BATTLE_BUFFER_LINK_SIZE);
gLinkBattleRecvBuffer = AllocZeroed(BATTLE_BUFFER_LINK_SIZE); gLinkBattleRecvBuffer = AllocZeroed(BATTLE_BUFFER_LINK_SIZE);
gUnknown_2022BB8 = AllocZeroed(0x2000); gBattleAnimMons_BgTilesBuffer = AllocZeroed(0x2000);
gUnknown_2022BBC = AllocZeroed(0x1000); gBattleAnimMons_BgTilemapBuffer = AllocZeroed(0x1000);
SetBgTilemapBuffer(1, gUnknown_2022BBC); SetBgTilemapBuffer(1, gBattleAnimMons_BgTilemapBuffer);
SetBgTilemapBuffer(2, gUnknown_2022BBC); SetBgTilemapBuffer(2, gBattleAnimMons_BgTilemapBuffer);
} }
void FreeBattleResources(void) void FreeBattleResources(void)
@@ -62,8 +62,8 @@ void FreeBattleResources(void)
FREE_AND_SET_NULL(gBattleResources); FREE_AND_SET_NULL(gBattleResources);
FREE_AND_SET_NULL(gLinkBattleSendBuffer); FREE_AND_SET_NULL(gLinkBattleSendBuffer);
FREE_AND_SET_NULL(gLinkBattleRecvBuffer); FREE_AND_SET_NULL(gLinkBattleRecvBuffer);
FREE_AND_SET_NULL(gUnknown_2022BB8); FREE_AND_SET_NULL(gBattleAnimMons_BgTilesBuffer);
FREE_AND_SET_NULL(gUnknown_2022BBC); FREE_AND_SET_NULL(gBattleAnimMons_BgTilemapBuffer);
} }
} }
+1 -1
View File
@@ -264,7 +264,7 @@ static void AnimTranslateWebThread(struct Sprite *sprite)
{ {
SetAverageBattlerPositions(gBattleAnimTarget, 1, &sprite->data[2], &sprite->data[4]); SetAverageBattlerPositions(gBattleAnimTarget, 1, &sprite->data[2], &sprite->data[4]);
} }
sub_8075678(sprite); BattleAnim_InitLinearTranslationWithDuration(sprite);
sprite->data[5] = gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[3];
sprite->callback = sub_80B41C0; sprite->callback = sub_80B41C0;
} }
+1 -1
View File
@@ -840,7 +840,7 @@ static void sub_80B8920(u8 taskId)
SetGreyscaleOrOriginalPalette(paletteNum, 1); SetGreyscaleOrOriginalPalette(paletteNum, 1);
DestroySprite(&gSprites[gTasks[taskId].data[0]]); DestroySprite(&gSprites[gTasks[taskId].data[0]]);
GetBattleAnimBg1Data(&animBg); GetBattleAnimBg1Data(&animBg);
sub_8075358(animBg.bgId); InitBattleAnimBg(animBg.bgId);
if (gTasks[taskId].data[6] == 1) if (gTasks[taskId].data[6] == 1)
gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].oam.priority++; gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].oam.priority++;
} }
+2 -2
View File
@@ -940,7 +940,7 @@ void AnimTask_MoveSkyUppercutBg(u8 taskId)
switch (task->data[0]) switch (task->data[0])
{ {
case 0: case 0:
sub_8075458(0); ToggleBg3Mode(0);
task->data[8] = gBattleAnimArgs[0]; task->data[8] = gBattleAnimArgs[0];
++task->data[0]; ++task->data[0];
break; break;
@@ -965,7 +965,7 @@ void AnimTask_MoveSkyUppercutBg(u8 taskId)
{ {
gBattle_BG3_X = 0; gBattle_BG3_X = 0;
gBattle_BG3_Y = 0; gBattle_BG3_Y = 0;
sub_8075458(1); ToggleBg3Mode(1);
DestroyAnimVisualTask(taskId); DestroyAnimVisualTask(taskId);
} }
} }
+1 -1
View File
@@ -1016,7 +1016,7 @@ static void AnimWillOWispOrb(struct Sprite *sprite)
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
sprite->data[3] = sprite->pos1.y; sprite->data[3] = sprite->pos1.y;
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
sub_8075678(sprite); BattleAnim_InitLinearTranslationWithDuration(sprite);
sprite->callback = sub_80AD690; sprite->callback = sub_80AD690;
} }
break; break;
+4 -4
View File
@@ -226,7 +226,7 @@ static void AnimConfuseRayBallBounce(struct Sprite *sprite)
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
sprite->data[3] = sprite->pos1.y; sprite->data[3] = sprite->pos1.y;
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
sub_8075678(sprite); BattleAnim_InitLinearTranslationWithDuration(sprite);
sprite->callback = sub_80B52D0; sprite->callback = sub_80B52D0;
sprite->data[6] = 16; sprite->data[6] = 16;
SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL)); SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL));
@@ -1314,12 +1314,12 @@ static void sub_80B6BE4(u8 taskId)
gBattle_BG2_Y = 0; gBattle_BG2_Y = 0;
SetGpuReg(REG_OFFSET_BG2HOFS, gBattle_BG2_X); SetGpuReg(REG_OFFSET_BG2HOFS, gBattle_BG2_X);
SetGpuReg(REG_OFFSET_BG2VOFS, gBattle_BG2_Y); SetGpuReg(REG_OFFSET_BG2VOFS, gBattle_BG2_Y);
sub_80752C8(&animBgData, 2); GetBattleAnimBgData(&animBgData, 2);
AnimLoadCompressedBgGfx(animBgData.bgId, gBattleAnim_ScaryFaceGfx, animBgData.tilesOffset); AnimLoadCompressedBgGfx(animBgData.bgId, gBattleAnim_ScaryFaceGfx, animBgData.tilesOffset);
LoadCompressedPalette(gBattleAnim_ScaryFacePal, 16 * animBgData.paletteId, 0x20); LoadCompressedPalette(gBattleAnim_ScaryFacePal, 16 * animBgData.paletteId, 0x20);
break; break;
case 3: case 3:
sub_80752C8(&animBgData, 2); GetBattleAnimBgData(&animBgData, 2);
gMonSpritesGfxPtr->multiUseBuffer = AllocZeroed(0x2000); gMonSpritesGfxPtr->multiUseBuffer = AllocZeroed(0x2000);
LZDecompressWram(gBattleAnimBgTilemap_ScaryFacePlayer, gMonSpritesGfxPtr->multiUseBuffer); LZDecompressWram(gBattleAnimBgTilemap_ScaryFacePlayer, gMonSpritesGfxPtr->multiUseBuffer);
sub_80730C0(animBgData.paletteId, gMonSpritesGfxPtr->multiUseBuffer, 256, 0); sub_80730C0(animBgData.paletteId, gMonSpritesGfxPtr->multiUseBuffer, 256, 0);
@@ -1417,7 +1417,7 @@ static void sub_80B6FC4(u8 taskId)
SetAnimBgAttribute(2, BG_ANIM_PRIORITY, 2); SetAnimBgAttribute(2, BG_ANIM_PRIORITY, 2);
break; break;
case 3: case 3:
sub_8075358(2); InitBattleAnimBg(2);
FillPalette(0, 0x90, 0x20); FillPalette(0, 0x90, 0x20);
SetAnimBgAttribute(2, BG_ANIM_CHAR_BASE_BLOCK, 0); SetAnimBgAttribute(2, BG_ANIM_CHAR_BASE_BLOCK, 0);
task->data[1] = 12; task->data[1] = 12;
+5 -5
View File
@@ -993,8 +993,8 @@ static void AnimTask_Haze2(u8 taskId)
break; break;
case 3: case 3:
GetBattleAnimBg1Data(&animBg); GetBattleAnimBg1Data(&animBg);
sub_8075358(1); InitBattleAnimBg(1);
sub_8075358(2); InitBattleAnimBg(2);
++gTasks[taskId].data[12]; ++gTasks[taskId].data[12];
// fall through // fall through
case 4: case 4:
@@ -1088,8 +1088,8 @@ static void AnimTask_OverlayFogTiles(u8 taskId)
break; break;
case 3: case 3:
GetBattleAnimBg1Data(&animBg); GetBattleAnimBg1Data(&animBg);
sub_8075358(1); InitBattleAnimBg(1);
sub_8075358(2); InitBattleAnimBg(2);
++gTasks[taskId].data[12]; ++gTasks[taskId].data[12];
// fall through // fall through
case 4: case 4:
@@ -1230,7 +1230,7 @@ static void MovePoisonGasCloud(struct Sprite *sprite)
sprite->data[2] = -0x10; sprite->data[2] = -0x10;
++sprite->data[7]; ++sprite->data[7];
sprite->pos2.x = sprite->pos2.y = 0; sprite->pos2.x = sprite->pos2.y = 0;
sub_8075678(sprite); BattleAnim_InitLinearTranslationWithDuration(sprite);
} }
break; break;
case 2: case 2:
+5 -5
View File
@@ -465,7 +465,7 @@ static void sub_80B490C(u8 taskId)
break; break;
case 3: case 3:
GetBattleAnimBg1Data(&animBg); GetBattleAnimBg1Data(&animBg);
sub_8075358(animBg.bgId); InitBattleAnimBg(animBg.bgId);
++gTasks[taskId].data[12]; ++gTasks[taskId].data[12];
break; break;
case 4: case 4:
@@ -795,14 +795,14 @@ void AnimTask_MoveSeismicTossBg(u8 taskId)
{ {
if (gTasks[taskId].data[0] == 0) if (gTasks[taskId].data[0] == 0)
{ {
sub_8075458(0); ToggleBg3Mode(0);
gTasks[taskId].data[1] = 200; gTasks[taskId].data[1] = 200;
} }
gBattle_BG3_Y += gTasks[taskId].data[1] / 10; gBattle_BG3_Y += gTasks[taskId].data[1] / 10;
gTasks[taskId].data[1] -= 3; gTasks[taskId].data[1] -= 3;
if (gTasks[taskId].data[0] == 120) if (gTasks[taskId].data[0] == 120)
{ {
sub_8075458(1); ToggleBg3Mode(1);
DestroyAnimVisualTask(taskId); DestroyAnimVisualTask(taskId);
} }
++gTasks[taskId].data[0]; ++gTasks[taskId].data[0];
@@ -812,7 +812,7 @@ void AnimTask_SeismicTossBgAccelerateDownAtEnd(u8 taskId)
{ {
if (gTasks[taskId].data[0] == 0) if (gTasks[taskId].data[0] == 0)
{ {
sub_8075458(0); ToggleBg3Mode(0);
++gTasks[taskId].data[0]; ++gTasks[taskId].data[0];
gTasks[taskId].data[2] = gBattle_BG3_Y; gTasks[taskId].data[2] = gBattle_BG3_Y;
} }
@@ -822,7 +822,7 @@ void AnimTask_SeismicTossBgAccelerateDownAtEnd(u8 taskId)
if (gBattleAnimArgs[7] == 0xFFF) if (gBattleAnimArgs[7] == 0xFFF)
{ {
gBattle_BG3_Y = 0; gBattle_BG3_Y = 0;
sub_8075458(1); ToggleBg3Mode(1);
DestroyAnimVisualTask(taskId); DestroyAnimVisualTask(taskId);
} }
} }
+2 -2
View File
@@ -928,8 +928,8 @@ static void AnimTask_CreateSurfWave_Step2(u8 taskId)
u16 *BGptrY = &gBattle_BG1_Y; u16 *BGptrY = &gBattle_BG1_Y;
if (gTasks[taskId].data[0] == 0) if (gTasks[taskId].data[0] == 0)
{ {
sub_8075358(1); InitBattleAnimBg(1);
sub_8075358(2); InitBattleAnimBg(2);
gTasks[taskId].data[0]++; gTasks[taskId].data[0]++;
} }
else else