start decompilation
This commit is contained in:
@@ -5,131 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.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
|
thumb_func_start LaunchBattleAnimation
|
||||||
LaunchBattleAnimation: @ 80725D4
|
LaunchBattleAnimation: @ 80725D4
|
||||||
|
|||||||
@@ -111,6 +111,7 @@ SECTIONS {
|
|||||||
src/tileset_anims.o(.text);
|
src/tileset_anims.o(.text);
|
||||||
src/palette.o(.text);
|
src/palette.o(.text);
|
||||||
src/sound.o(.text);
|
src/sound.o(.text);
|
||||||
|
src/battle_anim.o(.text);
|
||||||
asm/battle_anim.o(.text);
|
asm/battle_anim.o(.text);
|
||||||
src/battle_anim_mons.o(.text);
|
src/battle_anim_mons.o(.text);
|
||||||
src/task.o(.text);
|
src/task.o(.text);
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
+1
-70
@@ -119,77 +119,8 @@ gUnknown_203709C: @ 203709C
|
|||||||
.include "src/palette.o"
|
.include "src/palette.o"
|
||||||
.align 2
|
.align 2
|
||||||
.include "src/sound.o"
|
.include "src/sound.o"
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gUnknown_2037ED4: @ 2037ED4
|
.include "src/battle_anim.o"
|
||||||
.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
|
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
.include "src/battle_anim_mons.o"
|
.include "src/battle_anim_mons.o"
|
||||||
.align 2
|
.align 2
|
||||||
|
|||||||
Reference in New Issue
Block a user