mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-09 04:23:14 -05:00
start decompilation
This commit is contained in:
parent
1196d0b533
commit
0b547dff4d
|
|
@ -5,131 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start ClearBattleAnimationVars
|
||||
ClearBattleAnimationVars: @ 80724C0
|
||||
push {r4-r7,lr}
|
||||
mov r7, r9
|
||||
mov r6, r8
|
||||
push {r6,r7}
|
||||
ldr r0, _08072554 @ =gUnknown_2037EE0
|
||||
movs r1, 0
|
||||
strb r1, [r0]
|
||||
ldr r0, _08072558 @ =gAnimScriptActive
|
||||
strb r1, [r0]
|
||||
ldr r0, _0807255C @ =gAnimVisualTaskCount
|
||||
strb r1, [r0]
|
||||
ldr r0, _08072560 @ =gUnknown_2037EE3
|
||||
strb r1, [r0]
|
||||
ldr r0, _08072564 @ =gAnimDisableStructPtr
|
||||
movs r1, 0
|
||||
str r1, [r0]
|
||||
ldr r0, _08072568 @ =gAnimMoveDmg
|
||||
str r1, [r0]
|
||||
ldr r0, _0807256C @ =gAnimMovePower
|
||||
movs r2, 0
|
||||
strh r1, [r0]
|
||||
ldr r0, _08072570 @ =gAnimFriendship
|
||||
strb r2, [r0]
|
||||
ldr r4, _08072574 @ =gUnknown_2037F14
|
||||
ldr r5, _08072578 @ =gAnimMoveTurn
|
||||
ldr r6, _0807257C @ =gUnknown_2037F17
|
||||
ldr r7, _08072580 @ =gUnknown_2037F18
|
||||
ldr r0, _08072584 @ =gBattleAnimAttacker
|
||||
mov r12, r0
|
||||
ldr r1, _08072588 @ =gBattleAnimTarget
|
||||
mov r8, r1
|
||||
ldr r0, _0807258C @ =gUnknown_2037F24
|
||||
mov r9, r0
|
||||
ldr r1, _08072590 @ =0x0000ffff
|
||||
adds r3, r1, 0
|
||||
ldr r1, _08072594 @ =gUnknown_2037EEE
|
||||
movs r2, 0x7
|
||||
_0807250A:
|
||||
ldrh r0, [r1]
|
||||
orrs r0, r3
|
||||
strh r0, [r1]
|
||||
adds r1, 0x2
|
||||
subs r2, 0x1
|
||||
cmp r2, 0
|
||||
bge _0807250A
|
||||
ldr r1, _08072598 @ =gBattleAnimArgs
|
||||
movs r2, 0
|
||||
adds r0, r1, 0
|
||||
adds r0, 0xE
|
||||
_08072520:
|
||||
strh r2, [r0]
|
||||
subs r0, 0x2
|
||||
cmp r0, r1
|
||||
bge _08072520
|
||||
movs r1, 0
|
||||
movs r0, 0xFF
|
||||
strb r0, [r4]
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
strb r0, [r4, 0x1]
|
||||
strb r1, [r5]
|
||||
strb r1, [r6]
|
||||
movs r0, 0
|
||||
strh r1, [r7]
|
||||
mov r1, r12
|
||||
strb r0, [r1]
|
||||
mov r1, r8
|
||||
strb r0, [r1]
|
||||
mov r1, r9
|
||||
strb r0, [r1]
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08072554: .4byte gUnknown_2037EE0
|
||||
_08072558: .4byte gAnimScriptActive
|
||||
_0807255C: .4byte gAnimVisualTaskCount
|
||||
_08072560: .4byte gUnknown_2037EE3
|
||||
_08072564: .4byte gAnimDisableStructPtr
|
||||
_08072568: .4byte gAnimMoveDmg
|
||||
_0807256C: .4byte gAnimMovePower
|
||||
_08072570: .4byte gAnimFriendship
|
||||
_08072574: .4byte gUnknown_2037F14
|
||||
_08072578: .4byte gAnimMoveTurn
|
||||
_0807257C: .4byte gUnknown_2037F17
|
||||
_08072580: .4byte gUnknown_2037F18
|
||||
_08072584: .4byte gBattleAnimAttacker
|
||||
_08072588: .4byte gBattleAnimTarget
|
||||
_0807258C: .4byte gUnknown_2037F24
|
||||
_08072590: .4byte 0x0000ffff
|
||||
_08072594: .4byte gUnknown_2037EEE
|
||||
_08072598: .4byte gBattleAnimArgs
|
||||
thumb_func_end ClearBattleAnimationVars
|
||||
|
||||
thumb_func_start DoMoveAnim
|
||||
DoMoveAnim: @ 807259C
|
||||
push {lr}
|
||||
adds r1, r0, 0
|
||||
lsls r1, 16
|
||||
lsrs r1, 16
|
||||
ldr r2, _080725C0 @ =gBattleAnimAttacker
|
||||
ldr r0, _080725C4 @ =gBattlerAttacker
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r2]
|
||||
ldr r2, _080725C8 @ =gBattleAnimTarget
|
||||
ldr r0, _080725CC @ =gBattlerTarget
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r2]
|
||||
ldr r0, _080725D0 @ =gBattleAnims_Moves
|
||||
movs r2, 0x1
|
||||
bl LaunchBattleAnimation
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080725C0: .4byte gBattleAnimAttacker
|
||||
_080725C4: .4byte gBattlerAttacker
|
||||
_080725C8: .4byte gBattleAnimTarget
|
||||
_080725CC: .4byte gBattlerTarget
|
||||
_080725D0: .4byte gBattleAnims_Moves
|
||||
thumb_func_end DoMoveAnim
|
||||
|
||||
thumb_func_start LaunchBattleAnimation
|
||||
LaunchBattleAnimation: @ 80725D4
|
||||
|
|
|
|||
|
|
@ -111,6 +111,7 @@ SECTIONS {
|
|||
src/tileset_anims.o(.text);
|
||||
src/palette.o(.text);
|
||||
src/sound.o(.text);
|
||||
src/battle_anim.o(.text);
|
||||
asm/battle_anim.o(.text);
|
||||
src/battle_anim_mons.o(.text);
|
||||
src/task.o(.text);
|
||||
|
|
|
|||
136
src/battle_anim.c
Normal file
136
src/battle_anim.c
Normal file
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -119,77 +119,8 @@ gUnknown_203709C: @ 203709C
|
|||
.include "src/palette.o"
|
||||
.align 2
|
||||
.include "src/sound.o"
|
||||
|
||||
.align 2
|
||||
gUnknown_2037ED4: @ 2037ED4
|
||||
.space 0x4
|
||||
|
||||
gUnknown_2037ED8: @ 2037ED8
|
||||
.space 0x4
|
||||
|
||||
gAnimScriptCallback: @ 2037EDC
|
||||
.space 0x4
|
||||
|
||||
gUnknown_2037EE0: @ 2037EE0
|
||||
.space 0x1
|
||||
|
||||
gAnimScriptActive: @ 2037EE1
|
||||
.space 0x1
|
||||
|
||||
gAnimVisualTaskCount: @ 2037EE2
|
||||
.space 0x1
|
||||
|
||||
gUnknown_2037EE3: @ 2037EE3
|
||||
.space 0x1
|
||||
|
||||
gAnimDisableStructPtr: @ 2037EE4
|
||||
.space 0x4
|
||||
|
||||
gAnimMoveDmg: @ 2037EE8
|
||||
.space 0x4
|
||||
|
||||
gAnimMovePower: @ 2037EEC
|
||||
.space 0x2
|
||||
|
||||
gUnknown_2037EEE: @ 2037EEE
|
||||
.space 0x10
|
||||
|
||||
gAnimFriendship: @ 2037EFE
|
||||
.space 0x2
|
||||
|
||||
gWeatherMoveAnim: @ 2037F00
|
||||
.space 0x2
|
||||
|
||||
gBattleAnimArgs: @ 2037F02
|
||||
.space 0x10
|
||||
|
||||
gUnknown_2037F12: @ 2037F12
|
||||
.space 0x2
|
||||
|
||||
gUnknown_2037F14: @ 2037F14
|
||||
.space 0x2
|
||||
|
||||
gAnimMoveTurn: @ 2037F16
|
||||
.space 0x1
|
||||
|
||||
gUnknown_2037F17: @ 2037F17
|
||||
.space 0x1
|
||||
|
||||
gUnknown_2037F18: @ 2037F18
|
||||
.space 0x2
|
||||
|
||||
gBattleAnimAttacker: @ 2037F1A
|
||||
.space 0x1
|
||||
|
||||
gBattleAnimTarget: @ 2037F1B
|
||||
.space 0x1
|
||||
|
||||
gAnimBattlerSpecies: @ 2037F1C
|
||||
.space 0x8
|
||||
|
||||
gUnknown_2037F24: @ 2037F24
|
||||
.space 0x4
|
||||
|
||||
.include "src/battle_anim.o"
|
||||
.align 2
|
||||
.include "src/battle_anim_mons.o"
|
||||
.align 2
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user