start decompilation
This commit is contained in:
@@ -0,0 +1,136 @@
|
||||
#include "global.h"
|
||||
#include "battle.h"
|
||||
#include "battle_anim.h"
|
||||
#include "battle_controllers.h"
|
||||
#include "battle_interface.h"
|
||||
|
||||
// Defines
|
||||
#define ANIM_SPRITE_INDEX_COUNT 8
|
||||
|
||||
// RAM
|
||||
EWRAM_DATA static const u8 *sBattleAnimScriptPtr = NULL;
|
||||
EWRAM_DATA static const u8 *sBattleAnimScriptRetAddr = NULL;
|
||||
EWRAM_DATA void (*gAnimScriptCallback)(void) = NULL;
|
||||
EWRAM_DATA static s8 gAnimFramesToWait = 0;
|
||||
EWRAM_DATA bool8 gAnimScriptActive = FALSE;
|
||||
EWRAM_DATA u8 gAnimVisualTaskCount = 0;
|
||||
EWRAM_DATA u8 gAnimSoundTaskCount = 0;
|
||||
EWRAM_DATA struct DisableStruct *gAnimDisableStructPtr = NULL;
|
||||
EWRAM_DATA s32 gAnimMoveDmg = 0;
|
||||
EWRAM_DATA u16 gAnimMovePower = 0;
|
||||
EWRAM_DATA static u16 sAnimSpriteIndexArray[ANIM_SPRITE_INDEX_COUNT] = {0};
|
||||
EWRAM_DATA u8 gAnimFriendship = 0;
|
||||
EWRAM_DATA u16 gWeatherMoveAnim = 0;
|
||||
EWRAM_DATA s16 gBattleAnimArgs[ANIM_ARGS_COUNT] = {0};
|
||||
EWRAM_DATA static u16 sSoundAnimFramesToWait = 0;
|
||||
EWRAM_DATA static u8 sMonAnimTaskIdArray[2] = {0};
|
||||
EWRAM_DATA u8 gAnimMoveTurn = 0;
|
||||
EWRAM_DATA static u8 sAnimBackgroundFadeState = 0;
|
||||
EWRAM_DATA static u16 sAnimMoveIndex = 0; // Set but unused.
|
||||
EWRAM_DATA u8 gBattleAnimAttacker = 0;
|
||||
EWRAM_DATA u8 gBattleAnimTarget = 0;
|
||||
EWRAM_DATA u16 gAnimBattlerSpecies[MAX_BATTLERS_COUNT] = {0};
|
||||
EWRAM_DATA u8 gUnknown_2037F24 = 0;
|
||||
|
||||
// Data
|
||||
|
||||
// Function Declarations
|
||||
|
||||
|
||||
void ClearBattleAnimationVars(void)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
gAnimFramesToWait = 0;
|
||||
gAnimScriptActive = FALSE;
|
||||
gAnimVisualTaskCount = 0;
|
||||
gAnimSoundTaskCount = 0;
|
||||
gAnimDisableStructPtr = NULL;
|
||||
gAnimMoveDmg = 0;
|
||||
gAnimMovePower = 0;
|
||||
gAnimFriendship = 0;
|
||||
|
||||
// Clear index array.
|
||||
for (i = 0; i < ANIM_SPRITE_INDEX_COUNT; i++)
|
||||
sAnimSpriteIndexArray[i] |= 0xFFFF;
|
||||
|
||||
// Clear anim args.
|
||||
for (i = 0; i < ANIM_ARGS_COUNT; i++)
|
||||
gBattleAnimArgs[i] = 0;
|
||||
|
||||
sMonAnimTaskIdArray[0] = 0xFF;
|
||||
sMonAnimTaskIdArray[1] = (s8)0xFF;
|
||||
gAnimMoveTurn = 0;
|
||||
sAnimBackgroundFadeState = 0;
|
||||
sAnimMoveIndex = 0;
|
||||
gBattleAnimAttacker = 0;
|
||||
gBattleAnimTarget = 0;
|
||||
gUnknown_2037F24 = 0;
|
||||
}
|
||||
|
||||
void DoMoveAnim(u16 move)
|
||||
{
|
||||
gBattleAnimAttacker = gBattlerAttacker;
|
||||
gBattleAnimTarget = gBattlerTarget;
|
||||
LaunchBattleAnimation(gBattleAnims_Moves, move, TRUE);
|
||||
}
|
||||
|
||||
void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMoveAnim)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
if (!IsContest())
|
||||
{
|
||||
sub_80A8278();
|
||||
UpdateOamPriorityInAllHealthboxes(0);
|
||||
for (i = 0; i < MAX_BATTLERS_COUNT; i++)
|
||||
{
|
||||
if (GetBattlerSide(i) != B_SIDE_PLAYER)
|
||||
gAnimBattlerSpecies[i] = GetMonData(&gEnemyParty[gBattlerPartyIndexes[i]], MON_DATA_SPECIES);
|
||||
else
|
||||
gAnimBattlerSpecies[i] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_SPECIES);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i = 0; i < 4; i++)
|
||||
gAnimBattlerSpecies[i] = gContestResources->field_18->species;
|
||||
}
|
||||
|
||||
if (!isMoveAnim)
|
||||
sAnimMoveIndex = 0;
|
||||
else
|
||||
sAnimMoveIndex = tableId;
|
||||
|
||||
for (i = 0; i < ANIM_ARGS_COUNT; i++)
|
||||
gBattleAnimArgs[i] = 0;
|
||||
|
||||
sMonAnimTaskIdArray[0] = 0xFF;
|
||||
sMonAnimTaskIdArray[1] = 0xFF;
|
||||
sBattleAnimScriptPtr = animsTable[tableId];
|
||||
gAnimScriptActive = TRUE;
|
||||
gAnimFramesToWait = 0;
|
||||
gAnimScriptCallback = RunAnimScriptCommand;
|
||||
|
||||
for (i = 0; i < ANIM_SPRITE_INDEX_COUNT; i++)
|
||||
sAnimSpriteIndexArray[i] = 0xFFFF;
|
||||
|
||||
if (isMoveAnim)
|
||||
{
|
||||
for (i = 0; gMovesWithQuietBGM[i] != 0xFFFF; i++)
|
||||
{
|
||||
if (tableId == gMovesWithQuietBGM[i])
|
||||
{
|
||||
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 128);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
gBattle_WIN0H = 0;
|
||||
gBattle_WIN0V = 0;
|
||||
gBattle_WIN1H = 0;
|
||||
gBattle_WIN1V = 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user