summaryrefslogtreecommitdiff
path: root/src/battle_anim.c
diff options
context:
space:
mode:
authorgolem galvanize <golemgalvanize@github.com>2018-01-09 16:48:01 -0500
committergolem galvanize <golemgalvanize@github.com>2018-01-09 16:48:01 -0500
commitc7722a492017dbd8a5fb3bb216062eb62129daf5 (patch)
tree2a5c0ba6a6b9364aa93eb4a9a89b35153954ab63 /src/battle_anim.c
parent2d141bc612ffecc984f6b4238c2791ba8419a192 (diff)
parent85174ad6193d3d58b92deaaedf8c510440ed85ee (diff)
fixing merge conflicts
Diffstat (limited to 'src/battle_anim.c')
-rw-r--r--src/battle_anim.c2270
1 files changed, 0 insertions, 2270 deletions
diff --git a/src/battle_anim.c b/src/battle_anim.c
deleted file mode 100644
index 6bd98099a..000000000
--- a/src/battle_anim.c
+++ /dev/null
@@ -1,2270 +0,0 @@
-#include "global.h"
-#include "battle_anim.h"
-#include "battle.h"
-#include "battle_anim_80CA710.h"
-#include "battle_interface.h"
-#include "contest.h"
-#include "decompress.h"
-#include "m4a.h"
-#include "main.h"
-#include "palette.h"
-#include "rom_8077ABC.h"
-#include "sound.h"
-#include "sprite.h"
-#include "task.h"
-
-// sprites start at 10000 and thus must be subtracted of 10000 to account for the true index.
-#define GET_TRUE_SPRITE_INDEX(i) (i - 10000)
-
-extern u8 unk_2000000[];
-extern u16 gBattlePartyID[4];
-extern u8 gObjectBankIDs[];
-extern u8 gBankAttacker;
-extern u8 gBankTarget;
-EWRAM_DATA const u8 *gBattleAnimScriptPtr = NULL;
-EWRAM_DATA const u8 *gBattleAnimScriptRetAddr = NULL;
-EWRAM_DATA void (*gAnimScriptCallback)(void) = NULL;
-EWRAM_DATA s8 gAnimFramesToWait = 0;
-EWRAM_DATA u8 gAnimScriptActive = FALSE;
-EWRAM_DATA u8 gAnimVisualTaskCount = 0;
-EWRAM_DATA u8 gAnimSoundTaskCount = 0;
-EWRAM_DATA u32 gDisableStructMoveAnim = 0;
-EWRAM_DATA u32 gMoveDmgMoveAnim = 0;
-EWRAM_DATA u16 gMovePowerMoveAnim = 0;
-EWRAM_DATA u8 gHappinessMoveAnim = 0;
-EWRAM_DATA u16 gWeatherMoveAnim = 0;
-EWRAM_DATA u8 gMonAnimTaskIdArray[2] = {0};
-EWRAM_DATA u8 gUnknown_0202F7C4 = 0;
-EWRAM_DATA u8 gUnknown_0202F7C5 = 0;
-EWRAM_DATA u16 gAnimMoveIndex = 0; // set but unused.
-EWRAM_DATA u8 gBattleAnimPlayerMonIndex = 0;
-EWRAM_DATA u8 gBattleAnimEnemyMonIndex = 0;
-EWRAM_DATA u16 gUnknown_0202F7CA[4] = {0};
-EWRAM_DATA u8 gUnknown_0202F7D2 = 0;
-extern u16 gUnknown_030041B4;
-extern u16 gUnknown_03004200;
-extern u16 gUnknown_03004240;
-extern u16 gUnknown_03004244;
-extern u16 gUnknown_03004280;
-extern u16 gUnknown_03004288;
-extern u16 gUnknown_030042C0;
-extern u16 gUnknown_030042C4;
-
-u16 gSoundAnimFramesToWait;
-s16 gBattleAnimArgs[8];
-u16 gAnimSpriteIndexArray[8];
-
-extern struct MusicPlayerInfo gMPlay_BGM;
-extern struct MusicPlayerInfo gMPlay_SE1;
-extern struct MusicPlayerInfo gMPlay_SE2;
-
-extern const u16 gUnknown_081C7160[];
-extern const u8 *const gBattleAnims_Moves[];
-extern const struct CompressedSpriteSheet gBattleAnimPicTable[];
-extern const struct CompressedSpritePalette gBattleAnimPaletteTable[];
-extern const struct BattleAnimBackground gBattleAnimBackgroundTable[];
-
-static void RunAnimScriptCommand(void);
-static void ScriptCmd_loadsprite(void);
-static void ScriptCmd_unloadsprite(void);
-static void ScriptCmd_sprite(void);
-static void ScriptCmd_createtask(void);
-static void ScriptCmd_delay(void);
-static void ScriptCmd_waitforvisualfinish(void);
-static void ScriptCmd_hang1(void);
-static void ScriptCmd_hang2(void);
-static void ScriptCmd_end(void);
-static void ScriptCmd_playse(void);
-static void ScriptCmd_monbg(void);
-static void sub_8076380(void);
-static void task_pA_ma0A_obj_to_bg_pal(u8);
-static void ScriptCmd_clearmonbg(void);
-static void sub_807672C(u8);
-static void ScriptCmd_monbg_22(void);
-static void ScriptCmd_clearmonbg_23(void);
-static void sub_80769A4(u8);
-static void ScriptCmd_setalpha(void);
-static void ScriptCmd_setbldcnt(void);
-static void ScriptCmd_blendoff(void);
-static void ScriptCmd_call(void);
-static void ScriptCmd_return(void);
-static void ScriptCmd_setvar(void);
-static void ScriptCmd_ifelse(void);
-static void ScriptCmd_jumpif(void);
-static void ScriptCmd_jump(void);
-static void ScriptCmd_fadetobg(void);
-static void ScriptCmd_fadetobg_25(void);
-static void task_p5_load_battle_screen_elements(u8);
-static void sub_8076DB8(u16);
-static void dp01t_11_3_message_for_player_only(void);
-static void ScriptCmd_restorebg(void);
-static void ScriptCmd_waitbgfadeout(void);
-static void ScriptCmd_waitbgfadein(void);
-static void ScriptCmd_changebg(void);
-static void ScriptCmd_panse_19(void);
-static void ScriptCmd_setpan(void);
-static void ScriptCmd_panse_1B(void);
-static void c3_08073CEC(u8);
-static void ScriptCmd_panse_26(void);
-static void ScriptCmd_panse_27(void);
-static void ScriptCmd_panse_1C(void);
-static void sub_80774FC(u8);
-static void ScriptCmd_panse_1D(void);
-static void sub_80775CC(u8);
-static void ScriptCmd_createtask_1F(void);
-static void ScriptCmd_waitsound(void);
-static void ScriptCmd_jumpvareq(void);
-static void ScriptCmd_jumpunkcond(void);
-static void ScriptCmd_monbgprio_28(void);
-static void ScriptCmd_monbgprio_29(void);
-static void ScriptCmd_monbgprio_2A(void);
-static void ScriptCmd_invisible(void);
-static void ScriptCmd_visible(void);
-static void ScriptCmd_doublebattle_2D(void);
-static void ScriptCmd_doublebattle_2E(void);
-static void ScriptCmd_stopsound(void);
-
-static void (*const sScriptCmdTable[])(void) = {
- ScriptCmd_loadsprite,
- ScriptCmd_unloadsprite,
- ScriptCmd_sprite,
- ScriptCmd_createtask,
- ScriptCmd_delay,
- ScriptCmd_waitforvisualfinish,
- ScriptCmd_hang1,
- ScriptCmd_hang2,
- ScriptCmd_end,
- ScriptCmd_playse,
- ScriptCmd_monbg,
- ScriptCmd_clearmonbg,
- ScriptCmd_setalpha,
- ScriptCmd_blendoff,
- ScriptCmd_call,
- ScriptCmd_return,
- ScriptCmd_setvar,
- ScriptCmd_ifelse,
- ScriptCmd_jumpif,
- ScriptCmd_jump,
- ScriptCmd_fadetobg,
- ScriptCmd_restorebg,
- ScriptCmd_waitbgfadeout,
- ScriptCmd_waitbgfadein,
- ScriptCmd_changebg,
- ScriptCmd_panse_19,
- ScriptCmd_setpan,
- ScriptCmd_panse_1B,
- ScriptCmd_panse_1C,
- ScriptCmd_panse_1D,
- ScriptCmd_setbldcnt,
- ScriptCmd_createtask_1F,
- ScriptCmd_waitsound,
- ScriptCmd_jumpvareq,
- ScriptCmd_monbg_22,
- ScriptCmd_clearmonbg_23,
- ScriptCmd_jumpunkcond,
- ScriptCmd_fadetobg_25,
- ScriptCmd_panse_26,
- ScriptCmd_panse_27,
- ScriptCmd_monbgprio_28,
- ScriptCmd_monbgprio_29,
- ScriptCmd_monbgprio_2A,
- ScriptCmd_invisible,
- ScriptCmd_visible,
- ScriptCmd_doublebattle_2D,
- ScriptCmd_doublebattle_2E,
- ScriptCmd_stopsound,
-};
-
-void battle_anim_clear_some_data(void)
-{
- s32 i;
-
- gAnimFramesToWait = 0;
- gAnimScriptActive = FALSE;
- gAnimVisualTaskCount = 0;
- gAnimSoundTaskCount = 0;
- gDisableStructMoveAnim = 0;
- gMoveDmgMoveAnim = 0;
- gMovePowerMoveAnim = 0;
- gHappinessMoveAnim = 0;
-
- // clear index array.
- for (i = 0; i < 8; i++)
- gAnimSpriteIndexArray[i] |= 0xFFFF;
-
- // clear anim args.
- for (i = 0; i < 8; i++)
- gBattleAnimArgs[i] = 0;
-
- gMonAnimTaskIdArray[0] = 0xFF;
- gMonAnimTaskIdArray[1] = 0xFF;
- gUnknown_0202F7C4 = 0;
- gUnknown_0202F7C5 = 0;
- gAnimMoveIndex = 0;
- gBattleAnimPlayerMonIndex = 0;
- gBattleAnimEnemyMonIndex = 0;
- gUnknown_0202F7D2 = 0;
-}
-
-void ExecuteMoveAnim(u16 move)
-{
- gBattleAnimPlayerMonIndex = gBankAttacker;
- gBattleAnimEnemyMonIndex = gBankTarget;
- DoMoveAnim(gBattleAnims_Moves, move, 1);
-}
-
-void DoMoveAnim(const u8 *const moveAnims[], u16 move, u8 c)
-{
- s32 i;
-
- if (IsContest() == 0)
- {
- sub_8079E24();
- sub_8043EB4(0);
- for (i = 0; i < 4; i++)
- {
- if (GetBankSide(i) != 0)
- gUnknown_0202F7CA[i] = GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_SPECIES);
- else
- gUnknown_0202F7CA[i] = GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_SPECIES);
- }
- }
- else
- {
- for (i = 0; i < 4; i++)
- gUnknown_0202F7CA[i] = EWRAM_19348;
- }
-
- if (c == 0)
- gAnimMoveIndex = 0;
- else
- gAnimMoveIndex = move;
-
- for (i = 0; i < 8; i++)
- gBattleAnimArgs[i] = 0;
-
- gMonAnimTaskIdArray[0] = 0xFF;
- gMonAnimTaskIdArray[1] = 0xFF;
- gBattleAnimScriptPtr = moveAnims[move];
- gAnimScriptActive = TRUE;
- gAnimFramesToWait = 0;
- gAnimScriptCallback = RunAnimScriptCommand;
-
- for (i = 0; i < 8; i++)
- gAnimSpriteIndexArray[i] |= 0xFFFF;
-
- if (c != 0)
- {
- for (i = 0; gUnknown_081C7160[i] != 0xFFFF; i++)
- {
- if (move == gUnknown_081C7160[i])
- {
- m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 128);
- break;
- }
- }
- }
-
- gUnknown_030042C4 = 0;
- gUnknown_03004240 = 0;
- gUnknown_03004200 = 0;
- gUnknown_03004244 = 0;
-}
-
-void move_anim_8072740(struct Sprite *sprite)
-{
- FreeSpriteOamMatrix(sprite);
- DestroySprite(sprite);
- gAnimVisualTaskCount--;
-}
-
-void DestroyAnimVisualTask(u8 taskId)
-{
- DestroyTask(taskId);
- gAnimVisualTaskCount--;
-}
-
-void DestroyAnimSoundTask(u8 taskId)
-{
- DestroyTask(taskId);
- gAnimSoundTaskCount--;
-}
-
-static void AddSpriteIndex(u16 index)
-{
- s32 i;
-
- for (i = 0; i < 8; i++)
- {
- if (gAnimSpriteIndexArray[i] == 0xFFFF)
- {
- gAnimSpriteIndexArray[i] = index;
- return;
- }
- }
-}
-
-static void ClearSpriteIndex(u16 index)
-{
- s32 i;
-
- for (i = 0; i < 8; i++)
- {
- if (gAnimSpriteIndexArray[i] == index)
- {
- gAnimSpriteIndexArray[i] |= 0xFFFF;
- return;
- }
- }
-}
-
-static void WaitAnimFrameCount(void)
-{
- if (gAnimFramesToWait <= 0)
- {
- gAnimScriptCallback = RunAnimScriptCommand;
- gAnimFramesToWait = 0;
- }
- else
- {
- gAnimFramesToWait--;
- }
-}
-
-static void RunAnimScriptCommand(void)
-{
- do
- {
- sScriptCmdTable[SCRIPT_READ_8(gBattleAnimScriptPtr)]();
- } while (gAnimFramesToWait == 0 && gAnimScriptActive != FALSE);
-}
-
-static void ScriptCmd_loadsprite(void)
-{
- u16 index;
-
- gBattleAnimScriptPtr++;
- index = SCRIPT_READ_16(gBattleAnimScriptPtr);
- LoadCompressedObjectPic(&gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(index)]);
- LoadCompressedObjectPalette(&gBattleAnimPaletteTable[GET_TRUE_SPRITE_INDEX(index)]);
- gBattleAnimScriptPtr += 2;
- AddSpriteIndex(GET_TRUE_SPRITE_INDEX(index));
- gAnimFramesToWait = 1;
- gAnimScriptCallback = WaitAnimFrameCount;
-}
-
-static void ScriptCmd_unloadsprite(void)
-{
- u16 index;
-
- gBattleAnimScriptPtr++;
- index = SCRIPT_READ_16(gBattleAnimScriptPtr);
- FreeSpriteTilesByTag(gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(index)].tag);
- FreeSpritePaletteByTag(gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(index)].tag);
- gBattleAnimScriptPtr += 2;
- ClearSpriteIndex(GET_TRUE_SPRITE_INDEX(index));
-}
-
-#ifdef NONMATCHING
-static void ScriptCmd_sprite(void)
-{
- s32 i;
- struct SpriteTemplate *r7;
- u8 r4;
- u8 r0;
- u8 _r0;
- u16 r6;
- u8 r2;
- s8 r1;
-
- gBattleAnimScriptPtr++;
- r7 = (struct SpriteTemplate *)(SCRIPT_READ_32(gBattleAnimScriptPtr));
- gBattleAnimScriptPtr += 4;
- r4 = SCRIPT_READ_8(gBattleAnimScriptPtr);
- gBattleAnimScriptPtr++;
- r0 = SCRIPT_READ_8(gBattleAnimScriptPtr);
- gBattleAnimScriptPtr++;
- for (i = 0; i < r0; i++)
- {
- gBattleAnimArgs[i] = SCRIPT_READ_16(gBattleAnimScriptPtr);
- gBattleAnimScriptPtr += 2;
- }
- if (r4 & 0x80)
- {
- r4 ^= 0x80;
- if (r4 > 0x3F)
- r4 -= 0x40;
- else
- r4 = -r4;
- _r0 = sub_8079E90(gBattleAnimEnemyMonIndex);
- r1 = r4;
-
- }
- else
- {
- //_08075B44
- if (r4 > 0x3F)
- r4 -= 0x40;
- else
- r4 = -r4;
- _r0 = sub_8079E90(gBattleAnimPlayerMonIndex);
- r1 = r4;
- }
- r6 = _r0 + r1;
- if ((s16)r6 < 3)
- r6 = 3;
-
- r4 = sub_8077ABC(gBattleAnimEnemyMonIndex, 2);
- r2 = sub_8077ABC(gBattleAnimEnemyMonIndex, 3);
- CreateSpriteAndAnimate(r7, r4, r2, r6);
- gAnimVisualTaskCount++;
-}
-#else
-__attribute__((naked))
-static void ScriptCmd_sprite(void)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- ldr r5, _08075B2C @ =gBattleAnimScriptPtr\n\
- ldr r1, [r5]\n\
- adds r3, r1, 0x1\n\
- str r3, [r5]\n\
- ldrb r2, [r1, 0x1]\n\
- ldrb r0, [r3, 0x1]\n\
- lsls r0, 8\n\
- adds r2, r0\n\
- ldrb r0, [r3, 0x2]\n\
- lsls r0, 16\n\
- adds r2, r0\n\
- ldrb r0, [r3, 0x3]\n\
- lsls r0, 24\n\
- adds r7, r2, r0\n\
- adds r0, r1, 0x5\n\
- str r0, [r5]\n\
- ldrb r4, [r1, 0x5]\n\
- adds r0, r1, 0x6\n\
- str r0, [r5]\n\
- ldrb r0, [r1, 0x6]\n\
- adds r1, 0x7\n\
- str r1, [r5]\n\
- cmp r0, 0\n\
- beq _08075B14\n\
- adds r6, r5, 0\n\
- ldr r5, _08075B30 @ =gBattleAnimArgs\n\
- adds r3, r0, 0\n\
-_08075AFC:\n\
- ldr r2, [r6]\n\
- ldrb r1, [r2]\n\
- ldrb r0, [r2, 0x1]\n\
- lsls r0, 8\n\
- orrs r1, r0\n\
- strh r1, [r5]\n\
- adds r2, 0x2\n\
- str r2, [r6]\n\
- adds r5, 0x2\n\
- subs r3, 0x1\n\
- cmp r3, 0\n\
- bne _08075AFC\n\
-_08075B14:\n\
- movs r0, 0x80\n\
- ands r0, r4\n\
- cmp r0, 0\n\
- beq _08075B44\n\
- movs r0, 0x80\n\
- eors r4, r0\n\
- cmp r4, 0x3F\n\
- bls _08075B34\n\
- adds r0, r4, 0\n\
- subs r0, 0x40\n\
- b _08075B36\n\
- .align 2, 0\n\
-_08075B2C: .4byte gBattleAnimScriptPtr\n\
-_08075B30: .4byte gBattleAnimArgs\n\
-_08075B34:\n\
- negs r0, r4\n\
-_08075B36:\n\
- lsls r0, 24\n\
- lsrs r4, r0, 24\n\
- ldr r0, _08075B40 @ =gBattleAnimEnemyMonIndex\n\
- b _08075B56\n\
- .align 2, 0\n\
-_08075B40: .4byte gBattleAnimEnemyMonIndex\n\
-_08075B44:\n\
- cmp r4, 0x3F\n\
- bls _08075B4E\n\
- adds r0, r4, 0\n\
- subs r0, 0x40\n\
- b _08075B50\n\
-_08075B4E:\n\
- negs r0, r4\n\
-_08075B50:\n\
- lsls r0, 24\n\
- lsrs r4, r0, 24\n\
- ldr r0, _08075BAC @ =gBattleAnimPlayerMonIndex\n\
-_08075B56:\n\
- ldrb r0, [r0]\n\
- bl sub_8079E90\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- lsls r1, r4, 24\n\
- asrs r1, 24\n\
- adds r0, r1\n\
- lsls r0, 16\n\
- lsrs r6, r0, 16\n\
- lsls r0, r6, 16\n\
- asrs r0, 16\n\
- cmp r0, 0x2\n\
- bgt _08075B74\n\
- movs r6, 0x3\n\
-_08075B74:\n\
- ldr r5, _08075BB0 @ =gBattleAnimEnemyMonIndex\n\
- ldrb r0, [r5]\n\
- movs r1, 0x2\n\
- bl sub_8077ABC\n\
- adds r4, r0, 0\n\
- lsls r4, 24\n\
- lsrs r4, 24\n\
- ldrb r0, [r5]\n\
- movs r1, 0x3\n\
- bl sub_8077ABC\n\
- adds r2, r0, 0\n\
- lsls r2, 24\n\
- lsrs r2, 24\n\
- lsls r3, r6, 24\n\
- lsrs r3, 24\n\
- adds r0, r7, 0\n\
- adds r1, r4, 0\n\
- bl CreateSpriteAndAnimate\n\
- ldr r1, _08075BB4 @ =gAnimVisualTaskCount\n\
- ldrb r0, [r1]\n\
- adds r0, 0x1\n\
- strb r0, [r1]\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_08075BAC: .4byte gBattleAnimPlayerMonIndex\n\
-_08075BB0: .4byte gBattleAnimEnemyMonIndex\n\
-_08075BB4: .4byte gAnimVisualTaskCount\n\
- .syntax divided\n");
-}
-#endif
-
-static void ScriptCmd_createtask(void)
-{
- TaskFunc taskFunc;
- u8 taskPriority;
- u8 taskId;
- u8 numArgs;
- s32 i;
-
- gBattleAnimScriptPtr++;
- taskFunc = (TaskFunc)SCRIPT_READ_32(gBattleAnimScriptPtr);
- gBattleAnimScriptPtr += 4;
- taskPriority = SCRIPT_READ_8(gBattleAnimScriptPtr);
- gBattleAnimScriptPtr++;
- numArgs = SCRIPT_READ_8(gBattleAnimScriptPtr);
- gBattleAnimScriptPtr++;
-
- for (i = 0; i < numArgs; i++)
- {
- gBattleAnimArgs[i] = SCRIPT_READ_16(gBattleAnimScriptPtr);
- gBattleAnimScriptPtr += 2;
- }
-
- taskId = CreateTask(taskFunc, taskPriority);
- taskFunc(taskId);
- gAnimVisualTaskCount++;
-}
-
-static void ScriptCmd_delay(void)
-{
- gBattleAnimScriptPtr++;
- gAnimFramesToWait = SCRIPT_READ_8(gBattleAnimScriptPtr);
- if (gAnimFramesToWait == 0)
- gAnimFramesToWait = -1;
- gBattleAnimScriptPtr++;
- gAnimScriptCallback = WaitAnimFrameCount;
-}
-
-// wait for visual tasks to finish.
-static void ScriptCmd_waitforvisualfinish(void)
-{
- if (gAnimVisualTaskCount == 0)
- {
- gBattleAnimScriptPtr++;
- gAnimFramesToWait = 0;
- }
- else
- {
- gAnimFramesToWait = 1;
- }
-}
-
-static void ScriptCmd_hang1(void)
-{
-}
-
-static void ScriptCmd_hang2(void)
-{
-}
-
-static void ScriptCmd_end(void)
-{
- s32 i;
- bool32 continuousAnim = FALSE;
-
- // keep waiting as long as there is animations to be done.
- if (gAnimVisualTaskCount != 0 || gAnimSoundTaskCount != 0
- || gMonAnimTaskIdArray[0] != 0xFF || gMonAnimTaskIdArray[1] != 0xFF)
- {
- gSoundAnimFramesToWait = 0;
- gAnimFramesToWait = 1;
- return;
- }
-
- // finish the sound effects.
- if (IsSEPlaying())
- {
- if (++gSoundAnimFramesToWait <= 90) // wait 90 frames, then halt the sound effect.
- {
- gAnimFramesToWait = 1;
- return;
- }
- else
- {
- m4aMPlayStop(&gMPlay_SE1);
- m4aMPlayStop(&gMPlay_SE2);
- }
- }
-
- // the SE has halted, so set the SE Frame Counter to 0 and continue.
- gSoundAnimFramesToWait = 0;
-
- for (i = 0; i < 8; i++)
- {
- if (gAnimSpriteIndexArray[i] != 0xFFFF)
- {
- FreeSpriteTilesByTag(gBattleAnimPicTable[gAnimSpriteIndexArray[i]].tag);
- FreeSpritePaletteByTag(gBattleAnimPicTable[gAnimSpriteIndexArray[i]].tag);
- gAnimSpriteIndexArray[i] |= 0xFFFF; // set terminator.
- }
- }
-
- if (continuousAnim == FALSE) // may have been used for debug?
- {
- m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 256);
- if (IsContest() == 0)
- {
- sub_8079E24();
- sub_8043EB4(1);
- }
- gAnimScriptActive = FALSE;
- }
-}
-
-static void ScriptCmd_playse(void)
-{
- gBattleAnimScriptPtr++;
- PlaySE(SCRIPT_READ_16(gBattleAnimScriptPtr));
- gBattleAnimScriptPtr += 2;
-}
-
-static void ScriptCmd_monbg(void)
-{
- u8 r6;
- u8 r5;
- u8 r0;
- u8 r7;
- u16 r4;
- u8 taskId;
-
- gBattleAnimScriptPtr++;
- r6 = SCRIPT_READ_8(gBattleAnimScriptPtr);
- if (r6 == 0)
- r6 = 2;
- else if (r6 == 1)
- r6 = 3;
- if (r6 == 0 || r6 == 2)
- r5 = gBattleAnimPlayerMonIndex;
- else
- r5 = gBattleAnimEnemyMonIndex;
- if (b_side_obj__get_some_boolean(r5))
- {
- r0 = GetBankIdentity(r5);
- r0 += 0xFF;
- if (r0 <= 1 || IsContest() != 0)
- r7 = 0;
- else
- r7 = 1;
- sub_8076034(r5, r7);
- r4 = gObjectBankIDs[r5];
- taskId = CreateTask(task_pA_ma0A_obj_to_bg_pal, 10);
- gTasks[taskId].data[0] = r4;
- gTasks[taskId].data[1] = gSprites[r4].pos1.x + gSprites[r4].pos2.x;
- gTasks[taskId].data[2] = gSprites[r4].pos1.y + gSprites[r4].pos2.y;
- if (r7 == 0)
- {
- gTasks[taskId].data[3] = gUnknown_030042C0;
- gTasks[taskId].data[4] = gUnknown_030041B4;
- }
- else
- {
- gTasks[taskId].data[3] = gUnknown_03004288;
- gTasks[taskId].data[4] = gUnknown_03004280;
- }
- gTasks[taskId].data[5] = r7;
- gTasks[taskId].data[6] = r5;
- gMonAnimTaskIdArray[0] = taskId;
-
- }
- r5 ^= 2;
- if (r6 > 1 && b_side_obj__get_some_boolean(r5))
- {
- r0 = GetBankIdentity(r5);
- r0 += 0xFF;
- if (r0 <= 1 || IsContest() != 0)
- r7 = 0;
- else
- r7 = 1;
- sub_8076034(r5, r7);
- r4 = gObjectBankIDs[r5];
- taskId = CreateTask(task_pA_ma0A_obj_to_bg_pal, 10);
- gTasks[taskId].data[0] = r4;
- gTasks[taskId].data[1] = gSprites[r4].pos1.x + gSprites[r4].pos2.x;
- gTasks[taskId].data[2] = gSprites[r4].pos1.y + gSprites[r4].pos2.y;
- if (r7 == 0)
- {
- gTasks[taskId].data[3] = gUnknown_030042C0;
- gTasks[taskId].data[4] = gUnknown_030041B4;
- }
- else
- {
- gTasks[taskId].data[3] = gUnknown_03004288;
- gTasks[taskId].data[4] = gUnknown_03004280;
- }
- gTasks[taskId].data[5] = r7;
- gTasks[taskId].data[6] = r5;
- gMonAnimTaskIdArray[1] = taskId;
- }
- gBattleAnimScriptPtr++;
-}
-
-#ifdef NONMATCHING
-bool8 b_side_obj__get_some_boolean(u8 a)
-{
- if (IsContest() != 0)
- {
- if (a == gBattleAnimPlayerMonIndex)
- return TRUE;
- else
- return FALSE;
- }
- if (sub_8078874(a) == 0)
- return FALSE;
- if (IsContest() != 0)
- return TRUE; // this line wont ever be reached.
- if ((EWRAM_17800[a].unk0 & 1) == 0)
- return TRUE;
- if (gSprites[gObjectBankIDs[a]].invisible)
- return FALSE;
- return TRUE;
-}
-#else
-__attribute__((naked))
-bool8 b_side_obj__get_some_boolean(u8 a)
-{
- asm(".syntax unified\n\
- push {r4,r5,lr}\n\
- lsls r0, 24\n\
- lsrs r4, r0, 24\n\
- adds r5, r4, 0\n\
- bl IsContest\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- beq _08075FDC\n\
- ldr r0, _08075FD8 @ =gBattleAnimPlayerMonIndex\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- beq _0807601C\n\
- b _0807602C\n\
- .align 2, 0\n\
-_08075FD8: .4byte gBattleAnimPlayerMonIndex\n\
-_08075FDC:\n\
- adds r0, r4, 0\n\
- bl sub_8078874\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- beq _0807602C\n\
- bl IsContest\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- bne _0807601C\n\
- lsls r0, r5, 2\n\
- ldr r1, _08076020 @ =0x02017800\n\
- adds r0, r1\n\
- ldrb r1, [r0]\n\
- movs r0, 0x1\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _0807601C\n\
- ldr r2, _08076024 @ =gSprites\n\
- ldr r0, _08076028 @ =gObjectBankIDs\n\
- adds r0, r5, r0\n\
- ldrb r1, [r0]\n\
- lsls r0, r1, 4\n\
- adds r0, r1\n\
- lsls r0, 2\n\
- adds r0, r2\n\
- adds r0, 0x3E\n\
- ldrb r0, [r0]\n\
- lsls r0, 29\n\
- cmp r0, 0\n\
- blt _0807602C\n\
-_0807601C:\n\
- movs r0, 0x1\n\
- b _0807602E\n\
- .align 2, 0\n\
-_08076020: .4byte 0x02017800\n\
-_08076024: .4byte gSprites\n\
-_08076028: .4byte gObjectBankIDs\n\
-_0807602C:\n\
- movs r0, 0\n\
-_0807602E:\n\
- pop {r4,r5}\n\
- pop {r1}\n\
- bx r1\n\
- .syntax divided\n");
-}
-#endif
-
-void sub_8076034(u8 a, u8 b)
-{
- volatile u8 pointlessZero;
- u16 *addr2;
- u8 spriteId;
-
- if (b == 0)
- {
- struct UnknownStruct2 s;
- u8 *addr;
- u32 size;
- u8 r2;
- u16 *addr3;
-
- sub_8078914(&s);
- addr = s.unk0;
- size = 0x2000;
- while (1)
- {
- DmaFill32(3, 0, addr, 0x1000);
- addr += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
- {
- DmaFill32(3, 0, addr, size);
- break;
- }
- }
- pointlessZero = 0;
- pointlessZero = 0;
- addr2 = (void *)s.unk4;
- DmaFill16(3, 0xFF, addr2, 0x1000);
-
- REG_BG1CNT_BITFIELD.priority = 2;
- REG_BG1CNT_BITFIELD.screenSize = 1;
- REG_BG1CNT_BITFIELD.areaOverflowMode = 0;
-
- spriteId = gObjectBankIDs[a];
- gUnknown_030042C0 = -(gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x) + 32;
- if (IsContest() != 0 && sub_80AEB1C(EWRAM_19348) != 0)
- gUnknown_030042C0--;
- gUnknown_030041B4 = -(gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y) + 32;
- gSprites[gObjectBankIDs[a]].invisible = TRUE;
-
- REG_BG1HOFS = gUnknown_030042C0;
- REG_BG1VOFS = gUnknown_030041B4;
-
- LoadPalette(gPlttBufferUnfaded + 0x100 + a * 16, s.unk8 * 16, 32);
- addr3 = (u16 *)PLTT + s.unk8 * 16;
- DmaCopy32(3, gPlttBufferUnfaded + 0x100 + a * 16, addr3, 32);
-
- if (IsContest() != 0)
- r2 = 0;
- else
- r2 = GetBankIdentity(a);
- sub_80E4EF8(0, 0, r2, s.unk8, (u32)s.unk0, (((s32)s.unk4 - VRAM) / 2048), REG_BG1CNT_BITFIELD.charBaseBlock);
- if (IsContest() != 0)
- sub_8076380();
- }
- else
- {
- u8 *addr;
- u32 size;
- u16 *addr3;
-
- addr = (void *)(VRAM + 0x6000);
- size = 0x2000;
- while (1)
- {
- DmaFill32(3, 0, addr, 0x1000);
- addr += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
- {
- DmaFill32(3, 0, addr, size);
- break;
- }
- }
- pointlessZero = 0;
- pointlessZero = 0;
- addr2 = (void *)(VRAM + 0xF000);
- DmaFill32(3, 0, addr2, 0x800);
-
- REG_BG2CNT_BITFIELD.priority = 2;
- REG_BG2CNT_BITFIELD.screenSize = 1;
- REG_BG2CNT_BITFIELD.areaOverflowMode = 0;
-
- spriteId = gObjectBankIDs[a];
- gUnknown_03004288 = -(gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x) + 32;
- gUnknown_03004280 = -(gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y) + 32;
- gSprites[gObjectBankIDs[a]].invisible = TRUE;
-
- REG_BG2HOFS = gUnknown_03004288;
- REG_BG2VOFS = gUnknown_03004280;
-
- LoadPalette(gPlttBufferUnfaded + 0x100 + a * 16, 0x90, 32);
- addr3 = (void *)(PLTT + 0x120);
- DmaCopy32(3, gPlttBufferUnfaded + 0x100 + a * 16, addr3, 32);
-
- sub_80E4EF8(0, 0, GetBankIdentity(a), 9, 0x6000, 0x1E, REG_BG2CNT_BITFIELD.charBaseBlock);
- }
-}
-
-static void sub_8076380(void)
-{
- int i;
- int j;
- struct UnknownStruct2 s;
- u16 *ptr;
-
- if (sub_80AEB1C(EWRAM_19348) != 0)
- {
- sub_8078914(&s);
- ptr = s.unk4;
- for (i = 0; i < 8; i++)
- {
- for (j = 0; j < 4; j++)
- {
- u16 temp = ptr[j + i * 32];
-
- ptr[j + i * 32] = ptr[7 - j + i * 32];
- ptr[7 - j + i * 32] = temp;
- }
- }
- for (i = 0; i < 8; i++)
- {
- for (j = 0; j < 8; j++)
- ptr[j + i * 32] ^= 0x400;
- }
- }
-}
-
-void sub_80763FC(u16 a, u16 *b, u32 c, u8 d)
-{
- u8 i;
- u8 j;
- u32 r9;
-
- if (d == 0)
- r9 = 32;
- else
- r9 = 64;
- a <<= 12;
- for (i = 0; i < r9; i++)
- {
- for (j = 0; j < 32; j++)
- b[j + i * 32] = ((b[j + i * 32] & 0xFFF) | a) + c;
- }
-}
-
-void sub_8076464(u8 a)
-{
- u8 *addr;
- u32 size;
- volatile u8 pointlessZero;
- struct UnknownStruct2 s;
-
- sub_8078914(&s);
- if (a == 0 || IsContest() != 0)
- {
- u16 *addr2;
-
- addr = s.unk0;
- size = 0x2000;
- while (1)
- {
- DmaFill32(3, 0, addr, 0x1000);
- addr += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
- {
- DmaFill32(3, 0, addr, size);
- break;
- }
- }
- pointlessZero = 0;
- pointlessZero = 0;
- addr2 = s.unk4;
- DmaFill32(3, 0, addr2, 0x800);
- gUnknown_030042C0 = 0;
- gUnknown_030041B4 = 0;
- }
- else
- {
- u16 *addr2;
-
- addr = (void *)(VRAM + 0x6000);
- size = 0x2000;
- while (1)
- {
- DmaFill32(3, 0, addr, 0x1000);
- addr += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
- {
- DmaFill32(3, 0, addr, size);
- break;
- }
- }
- pointlessZero = 0;
- pointlessZero = 0;
- addr2 = (void *)(VRAM + 0xF000);
- DmaFill32(3, 0, addr2, 0x800);
- gUnknown_03004288 = 0;
- gUnknown_03004280 = 0;
- }
-}
-
-static void task_pA_ma0A_obj_to_bg_pal(u8 taskId)
-{
- u8 r4;
- u8 r6;
- s16 r3;
- s16 r2;
- struct UnknownStruct2 s;
-
- r4 = gTasks[taskId].data[0];
- r6 = gTasks[taskId].data[6];
- sub_8078914(&s);
- r3 = gTasks[taskId].data[1] - (gSprites[r4].pos1.x + gSprites[r4].pos2.x);
- r2 = gTasks[taskId].data[2] - (gSprites[r4].pos1.y + gSprites[r4].pos2.y);
- if (gTasks[taskId].data[5] == 0)
- {
- u16 *src;
- u16 *dst;
-
- gUnknown_030042C0 = r3 + gTasks[taskId].data[3];
- gUnknown_030041B4 = r2 + gTasks[taskId].data[4];
- src = gPlttBufferFaded + 0x100 + r6 * 16;
- dst = gPlttBufferFaded + 0x100 + s.unk8 * 16 - 256;
- DmaCopy32(3, src, dst, 32);
- }
- else
- {
- u16 *src;
- u16 *dst;
-
- gUnknown_03004288 = r3 + gTasks[taskId].data[3];
- gUnknown_03004280 = r2 + gTasks[taskId].data[4];
- src = gPlttBufferFaded + 0x100 + r6 * 16;
- dst = gPlttBufferFaded + 0x100 - 112;
- DmaCopy32(3, src, dst, 32);
- }
-}
-
-static void ScriptCmd_clearmonbg(void)
-{
- u8 r4;
- u8 r5;
- u8 taskId;
-
- gBattleAnimScriptPtr++;
- r4 = SCRIPT_READ_8(gBattleAnimScriptPtr);
- if (r4 == 0)
- r4 = 2;
- else if (r4 == 1)
- r4 = 3;
- if (r4 == 0 || r4 == 2)
- r5 = gBattleAnimPlayerMonIndex;
- else
- r5 = gBattleAnimEnemyMonIndex;
- if (gMonAnimTaskIdArray[0] != 0xFF)
- gSprites[gObjectBankIDs[r5]].invisible = FALSE;
- if (r4 > 1 && gMonAnimTaskIdArray[1] != 0xFF)
- gSprites[gObjectBankIDs[r5 ^ 2]].invisible = FALSE;
- else
- r4 = 0;
- taskId = CreateTask(sub_807672C, 5);
- gTasks[taskId].data[0] = r4;
- gTasks[taskId].data[2] = r5;
- gBattleAnimScriptPtr++;
-}
-
-static void sub_807672C(u8 taskId)
-{
- u8 var;
- u8 r4;
-
- gTasks[taskId].data[1]++;
- if (gTasks[taskId].data[1] != 1)
- {
- var = GetBankIdentity(gTasks[taskId].data[2]);
- var += 0xFF;
- if (var <= 1 || IsContest() != 0)
- r4 = 0;
- else
- r4 = 1;
- if (gMonAnimTaskIdArray[0] != 0xFF)
- {
- sub_8076464(r4);
- DestroyTask(gMonAnimTaskIdArray[0]);
- gMonAnimTaskIdArray[0] = 0xFF;
- }
- if (gTasks[taskId].data[0] > 1)
- {
- sub_8076464(r4 ^ 1);
- DestroyTask(gMonAnimTaskIdArray[1]);
- gMonAnimTaskIdArray[1] = 0xFF;
- }
- DestroyTask(taskId);
- }
-}
-
-static void ScriptCmd_monbg_22(void)
-{
- u8 r5;
- u8 r4;
- u8 r0;
- u8 r1;
-
- gBattleAnimScriptPtr++;
- r5 = SCRIPT_READ_8(gBattleAnimScriptPtr);
- if (r5 == 0)
- r5 = 2;
- else if (r5 == 1)
- r5 = 3;
- if (r5 == 0 || r5 == 2)
- r4 = gBattleAnimPlayerMonIndex;
- else
- r4 = gBattleAnimEnemyMonIndex;
- if (b_side_obj__get_some_boolean(r4))
- {
- r0 = GetBankIdentity(r4);
- r0 += 0xFF;
- if (r0 <= 1 || IsContest() != 0)
- r1 = 0;
- else
- r1 = 1;
- sub_8076034(r4, r1);
- gSprites[gObjectBankIDs[r4]].invisible = FALSE;
- }
- r4 ^= 2;
- if (r5 > 1 && b_side_obj__get_some_boolean(r4))
- {
- r0 = GetBankIdentity(r4);
- r0 += 0xFF;
- if (r0 <= 1 || IsContest() != 0)
- r1 = 0;
- else
- r1 = 1;
- sub_8076034(r4, r1);
- gSprites[gObjectBankIDs[r4]].invisible = FALSE;
- }
- gBattleAnimScriptPtr++;
-}
-
-static void ScriptCmd_clearmonbg_23(void)
-{
- u8 r5;
- u8 r6;
- u8 taskId;
-
- gBattleAnimScriptPtr++;
- r5 = SCRIPT_READ_8(gBattleAnimScriptPtr);
- if (r5 == 0)
- r5 = 2;
- else if (r5 == 1)
- r5 = 3;
- if (r5 == 0 || r5 == 2)
- r6 = gBattleAnimPlayerMonIndex;
- else
- r6 = gBattleAnimEnemyMonIndex;
- if (b_side_obj__get_some_boolean(r6))
- gSprites[gObjectBankIDs[r6]].invisible = FALSE;
- if (r5 > 1 && b_side_obj__get_some_boolean(r6 ^ 2))
- gSprites[gObjectBankIDs[r6 ^ 2]].invisible = FALSE;
- else
- r5 = 0;
- taskId = CreateTask(sub_80769A4, 5);
- gTasks[taskId].data[0] = r5;
- gTasks[taskId].data[2] = r6;
- gBattleAnimScriptPtr++;
-}
-
-static void sub_80769A4(u8 taskId)
-{
- u8 r0;
- u8 r4;
- u8 r5;
-
- gTasks[taskId].data[1]++;
- if (gTasks[taskId].data[1] != 1)
- {
- r4 = gTasks[taskId].data[2];
- r0 = GetBankIdentity(r4);
- r0 += 0xFF;
- if (r0 <= 1 || IsContest() != 0)
- r5 = 0;
- else
- r5 = 1;
- if (b_side_obj__get_some_boolean(r4))
- sub_8076464(r5);
- if (gTasks[taskId].data[0] > 1 && b_side_obj__get_some_boolean(r4 ^ 2))
- sub_8076464(r5 ^ 1);
- DestroyTask(taskId);
- }
-}
-
-static void ScriptCmd_setalpha(void)
-{
- u16 r3;
- u16 r1;
-
- gBattleAnimScriptPtr++;
- r3 = *(gBattleAnimScriptPtr++);
- r1 = *(gBattleAnimScriptPtr++) << 8;
- REG_BLDCNT = 0x3F40;
- REG_BLDALPHA = r3 | r1;
-}
-
-static void ScriptCmd_setbldcnt(void)
-{
- u16 r3;
- u16 r1;
-
- gBattleAnimScriptPtr++;
- r3 = *(gBattleAnimScriptPtr++);
- r1 = *(gBattleAnimScriptPtr++) << 8;
- REG_BLDCNT = r3 | r1;
-}
-
-static void ScriptCmd_blendoff(void)
-{
- gBattleAnimScriptPtr++;
- REG_BLDCNT = 0;
- REG_BLDALPHA = 0;
-}
-
-static void ScriptCmd_call(void)
-{
- u32 addr;
-
- gBattleAnimScriptPtr++;
- gBattleAnimScriptRetAddr = gBattleAnimScriptPtr + 4;
- addr = SCRIPT_READ_32(gBattleAnimScriptPtr);
- gBattleAnimScriptPtr = (u8 *)addr;
-}
-
-static void ScriptCmd_return(void)
-{
- gBattleAnimScriptPtr = gBattleAnimScriptRetAddr;
-}
-
-static void ScriptCmd_setvar(void)
-{
- const u8 *addr = gBattleAnimScriptPtr;
- u16 r4;
- u8 r2;
-
- gBattleAnimScriptPtr++;
- r2 = SCRIPT_READ_8(gBattleAnimScriptPtr);
- gBattleAnimScriptPtr++;
- r4 = SCRIPT_READ_16(gBattleAnimScriptPtr);
- gBattleAnimScriptPtr = addr + 4;
- gBattleAnimArgs[r2] = r4;
-}
-
-static void ScriptCmd_ifelse(void)
-{
- u32 addr;
-
- gBattleAnimScriptPtr++;
- if (gUnknown_0202F7C4 & 1)
- gBattleAnimScriptPtr += 4;
- addr = SCRIPT_READ_32(gBattleAnimScriptPtr);
- gBattleAnimScriptPtr = (u8 *)addr;
-}
-
-static void ScriptCmd_jumpif(void)
-{
- u8 r1;
- u32 addr;
-
- gBattleAnimScriptPtr++;
- r1 = SCRIPT_READ_8(gBattleAnimScriptPtr);
- gBattleAnimScriptPtr++;
- if (r1 == gUnknown_0202F7C4)
- {
- addr = SCRIPT_READ_32(gBattleAnimScriptPtr);
- gBattleAnimScriptPtr = (u8 *)addr;
- }
- else
- {
- gBattleAnimScriptPtr += 4;
- }
-}
-
-static void ScriptCmd_jump(void)
-{
- u32 addr;
-
- gBattleAnimScriptPtr++;
- addr = SCRIPT_READ_32(gBattleAnimScriptPtr);
- gBattleAnimScriptPtr = (u8 *)addr;
-}
-
-// Uses of this function that rely on a TRUE return are expecting inBattle to not be ticked as defined in contest behavior. As a result, if misused, this function cannot reliably discern between field and contest status and could result in undefined behavior.
-bool8 IsContest(void)
-{
- if (!gMain.inBattle)
- return TRUE;
- else
- return FALSE;
-}
-
-static void ScriptCmd_fadetobg(void)
-{
- u8 r4;
- u8 taskId;
-
- gBattleAnimScriptPtr++;
- r4 = SCRIPT_READ_8(gBattleAnimScriptPtr);
- gBattleAnimScriptPtr++;
- taskId = CreateTask(task_p5_load_battle_screen_elements, 5);
- gTasks[taskId].data[0] = r4;
- gUnknown_0202F7C5 = 1;
-}
-
-static void ScriptCmd_fadetobg_25(void)
-{
- u8 r8;
- u8 r7;
- u8 r6;
- u8 taskId;
-
- gBattleAnimScriptPtr++;
- r8 = gBattleAnimScriptPtr[0];
- r7 = gBattleAnimScriptPtr[1];
- r6 = gBattleAnimScriptPtr[2];
- gBattleAnimScriptPtr += 3;
- taskId = CreateTask(task_p5_load_battle_screen_elements, 5);
- if (IsContest() != 0)
- gTasks[taskId].data[0] = r6;
- else if (GetBankSide(gBattleAnimEnemyMonIndex) == 0)
- gTasks[taskId].data[0] = r7;
- else
- gTasks[taskId].data[0] = r8;
- gUnknown_0202F7C5 = 1;
-}
-
-static void task_p5_load_battle_screen_elements(u8 taskId)
-{
- if (gTasks[taskId].data[10] == 0)
- {
- BeginHardwarePaletteFade(0xE8, 0, 0, 16, 0);
- gTasks[taskId].data[10]++;
- return;
- }
- if (gPaletteFade.active)
- return;
- if (gTasks[taskId].data[10] == 1)
- {
- gTasks[taskId].data[10]++;
- gUnknown_0202F7C5 = 2;
- }
- else if (gTasks[taskId].data[10] == 2)
- {
- s16 data0 = (u16)gTasks[taskId].data[0];
-
- if (data0 == -1)
- dp01t_11_3_message_for_player_only();
- else
- sub_8076DB8(data0);
- BeginHardwarePaletteFade(0xE8, 0, 16, 0, 1);
- gTasks[taskId].data[10]++;
- return;
- }
- if (gPaletteFade.active)
- return;
- if (gTasks[taskId].data[10] == 3)
- {
- DestroyTask(taskId);
- gUnknown_0202F7C5 = 0;
- }
-}
-
-static void sub_8076DB8(u16 a)
-{
- if (IsContest())
- {
- void *tilemap = gBattleAnimBackgroundTable[a].tilemap;
- void *dmaSrc;
- void *dmaDest;
-
- sub_800D238(tilemap, IsContest() ? EWRAM_14800 : EWRAM_18000);
- sub_80763FC(sub_80789BC(), IsContest() ? EWRAM_14800 : EWRAM_18000, 0x100, 0);
- dmaSrc = IsContest() ? EWRAM_14800 : EWRAM_18000;
- dmaDest = (void *)(VRAM + 0xD000);
- DmaCopy32(3, dmaSrc, dmaDest, 0x800);
- LZDecompressVram(gBattleAnimBackgroundTable[a].image, (void *)(VRAM + 0x2000));
- LoadCompressedPalette(gBattleAnimBackgroundTable[a].palette, sub_80789BC() * 16, 32);
- }
- else
- {
- LZDecompressVram(gBattleAnimBackgroundTable[a].tilemap, (void *)(VRAM + 0xD000));
- LZDecompressVram(gBattleAnimBackgroundTable[a].image, (void *)(VRAM + 0x8000));
- LoadCompressedPalette(gBattleAnimBackgroundTable[a].palette, 32, 32);
- }
-}
-
-static void dp01t_11_3_message_for_player_only(void)
-{
- if (IsContest())
- sub_80AB2AC();
- else
- sub_800D7B8();
-}
-
-static void ScriptCmd_restorebg(void)
-{
- u8 taskId;
-
- gBattleAnimScriptPtr++;
- taskId = CreateTask(task_p5_load_battle_screen_elements, 5);
- gTasks[taskId].data[0] = 0xFFFF;
- gUnknown_0202F7C5 = 1;
-}
-
-static void ScriptCmd_waitbgfadeout(void)
-{
- if (gUnknown_0202F7C5 == 2)
- {
- gBattleAnimScriptPtr++;
- gAnimFramesToWait = 0;
- }
- else
- {
- gAnimFramesToWait = 1;
- }
-}
-
-static void ScriptCmd_waitbgfadein(void)
-{
- if (gUnknown_0202F7C5 == 0)
- {
- gBattleAnimScriptPtr++;
- gAnimFramesToWait = 0;
- }
- else
- {
- gAnimFramesToWait = 1;
- }
-}
-
-static void ScriptCmd_changebg(void)
-{
- gBattleAnimScriptPtr++;
- sub_8076DB8(SCRIPT_READ_8(gBattleAnimScriptPtr));
- gBattleAnimScriptPtr++;
-}
-
-//Weird control flow
-/*
-s8 sub_8076F98(s8 a)
-{
- if (!IsContest() && (EWRAM_17810[gBattleAnimPlayerMonIndex].unk0 & 0x10))
- {
- a = GetBankSide(gBattleAnimPlayerMonIndex) ? 0xC0 : 0x3F;
- }
- //_08076FDC
- else
- {
- if (IsContest())
- {
- if (gBattleAnimPlayerMonIndex == gBattleAnimEnemyMonIndex && gBattleAnimPlayerMonIndex == 2
- && a == 0x3F)
- {
- //jump to _0807707A
- if (a < -0x40)
- a = 0xC0;
- return a;
- }
- }
- //_08077004
- else
- {
- if (GetBankSide(gBattleAnimPlayerMonIndex) == 0)
- {
- if (GetBankSide(gBattleAnimEnemyMonIndex) == 0)
- }
- //_08077042
- else
- {
-
- }
- //_0807706C
- }
- }
- //_0807706E
-}
-*/
-__attribute__((naked))
-s8 sub_8076F98(s8 a)
-{
- asm(".syntax unified\n\
- push {r4,lr}\n\
- lsls r0, 24\n\
- lsrs r4, r0, 24\n\
- bl IsContest\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- bne _08076FDC\n\
- ldr r0, _08076FD4 @ =gBattleAnimPlayerMonIndex\n\
- ldrb r2, [r0]\n\
- lsls r0, r2, 1\n\
- adds r0, r2\n\
- lsls r0, 2\n\
- ldr r1, _08076FD8 @ =0x02017810\n\
- adds r0, r1\n\
- ldrb r1, [r0]\n\
- movs r0, 0x10\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08076FDC\n\
- adds r0, r2, 0\n\
- bl GetBankSide\n\
- lsls r0, 24\n\
- movs r4, 0xC0\n\
- cmp r0, 0\n\
- beq _0807706E\n\
- movs r4, 0x3F\n\
- b _0807706E\n\
- .align 2, 0\n\
-_08076FD4: .4byte gBattleAnimPlayerMonIndex\n\
-_08076FD8: .4byte 0x02017810\n\
-_08076FDC:\n\
- bl IsContest\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- beq _08077004\n\
- ldr r0, _08076FFC @ =gBattleAnimPlayerMonIndex\n\
- ldr r1, _08077000 @ =gBattleAnimEnemyMonIndex\n\
- ldrb r0, [r0]\n\
- ldrb r1, [r1]\n\
- cmp r0, r1\n\
- bne _08077068\n\
- cmp r0, 0x2\n\
- bne _08077068\n\
- cmp r4, 0x3F\n\
- beq _0807707A\n\
- b _08077068\n\
- .align 2, 0\n\
-_08076FFC: .4byte gBattleAnimPlayerMonIndex\n\
-_08077000: .4byte gBattleAnimEnemyMonIndex\n\
-_08077004:\n\
- ldr r0, _0807702C @ =gBattleAnimPlayerMonIndex\n\
- ldrb r0, [r0]\n\
- bl GetBankSide\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- bne _08077042\n\
- ldr r0, _08077030 @ =gBattleAnimEnemyMonIndex\n\
- ldrb r0, [r0]\n\
- bl GetBankSide\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- bne _0807706E\n\
- lsls r0, r4, 24\n\
- asrs r1, r0, 24\n\
- cmp r1, 0x3F\n\
- bne _08077034\n\
- movs r4, 0xC0\n\
- b _0807706E\n\
- .align 2, 0\n\
-_0807702C: .4byte gBattleAnimPlayerMonIndex\n\
-_08077030: .4byte gBattleAnimEnemyMonIndex\n\
-_08077034:\n\
- movs r0, 0x40\n\
- negs r0, r0\n\
- cmp r1, r0\n\
- beq _0807706E\n\
- negs r0, r1\n\
- lsls r0, 24\n\
- b _0807706C\n\
-_08077042:\n\
- ldr r0, _08077064 @ =gBattleAnimEnemyMonIndex\n\
- ldrb r0, [r0]\n\
- bl GetBankSide\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0x1\n\
- bne _08077068\n\
- lsls r0, r4, 24\n\
- asrs r0, 24\n\
- movs r1, 0x40\n\
- negs r1, r1\n\
- cmp r0, r1\n\
- bne _0807706E\n\
- movs r4, 0x3F\n\
- b _0807706E\n\
- .align 2, 0\n\
-_08077064: .4byte gBattleAnimEnemyMonIndex\n\
-_08077068:\n\
- lsls r0, r4, 24\n\
- negs r0, r0\n\
-_0807706C:\n\
- lsrs r4, r0, 24\n\
-_0807706E:\n\
- lsls r0, r4, 24\n\
- asrs r0, 24\n\
- cmp r0, 0x3F\n\
- ble _0807707A\n\
- movs r4, 0x3F\n\
- b _08077088\n\
-_0807707A:\n\
- lsls r0, r4, 24\n\
- asrs r0, 24\n\
- movs r1, 0x40\n\
- negs r1, r1\n\
- cmp r0, r1\n\
- bge _08077088\n\
- movs r4, 0xC0\n\
-_08077088:\n\
- lsls r0, r4, 24\n\
- asrs r0, 24\n\
- pop {r4}\n\
- pop {r1}\n\
- bx r1\n\
- .syntax divided\n");
-}
-
-s8 sub_8077094(s8 a)
-{
- if (!IsContest() && (EWRAM_17810[gBattleAnimPlayerMonIndex].unk0 & 0x10))
- {
- if (GetBankSide(gBattleAnimPlayerMonIndex) != 0)
- a = 0x3F;
- else
- a = 0xC0;
- }
- else
- {
- if (GetBankSide(gBattleAnimPlayerMonIndex) != 0 || IsContest() != 0)
- a = -a;
- }
- return a;
-}
-
-s16 sub_8077104(s16 a)
-{
- s16 var = a;
-
- if (var > 63)
- var = 63;
- else if (var < -64)
- var = -64;
- return var;
-}
-
-s16 sub_807712C(s16 a, s16 b, s16 c)
-{
- u16 var;
-
- if (a < b)
- var = ((c < 0) ? -c : c);
- else if (a > b)
- var = -((c < 0) ? -c : c);
- else
- var = 0;
- return var;
-}
-
-static void ScriptCmd_panse_19(void)
-{
- u16 r4;
- s8 r0;
-
- gBattleAnimScriptPtr++;
- r4 = SCRIPT_READ_16(gBattleAnimScriptPtr);
- r0 = SCRIPT_READ_8(gBattleAnimScriptPtr + 2);
- PlaySE12WithPanning(r4, sub_8076F98(r0));
- gBattleAnimScriptPtr += 3;
-}
-
-static void ScriptCmd_setpan(void)
-{
- s8 r0;
-
- gBattleAnimScriptPtr++;
- r0 = SCRIPT_READ_8(gBattleAnimScriptPtr);
- SE12PanpotControl(sub_8076F98(r0));
- gBattleAnimScriptPtr++;
-}
-
-static void ScriptCmd_panse_1B(void)
-{
- u16 songNum;
- s8 r0;
- s8 r4;
- s8 r6;
- u8 r7;
- s8 panning;
- s8 r8;
- u8 taskId;
-
- gBattleAnimScriptPtr++;
- songNum = SCRIPT_READ_16(gBattleAnimScriptPtr);
- r0 = SCRIPT_READ_8(gBattleAnimScriptPtr + 2);
- r4 = SCRIPT_READ_8(gBattleAnimScriptPtr + 3);
- r6 = SCRIPT_READ_8(gBattleAnimScriptPtr + 4);
- r7 = SCRIPT_READ_8(gBattleAnimScriptPtr + 5);
- panning = sub_8076F98(r0);
- r8 = sub_8076F98(r4);
- r4 = sub_807712C(panning, r8, r6);
- taskId = CreateTask(c3_08073CEC, 1);
- gTasks[taskId].data[0] = panning;
- gTasks[taskId].data[1] = r8;
- gTasks[taskId].data[2] = r4;
- gTasks[taskId].data[3] = r7;
- gTasks[taskId].data[4] = panning;
- PlaySE12WithPanning(songNum, panning);
- gAnimSoundTaskCount++;
- gBattleAnimScriptPtr += 6;
-}
-
-#ifdef NONMATCHING
-static void c3_08073CEC(u8 taskId)
-{
- u16 r7 = 0;
- s16 r0;
- s16 r6;
- s16 r3;
- s16 r4;
- int foo;
-
- r0 = gTasks[taskId].data[8];
- gTasks[taskId].data[8]++;
- if (r0 >= gTasks[taskId].data[3])
- {
- gTasks[taskId].data[8] = r7;
- r6 = gTasks[taskId].data[0];
- r3 = gTasks[taskId].data[1];
- foo = gTasks[taskId].data[4] + gTasks[taskId].data[2];
- r4 = foo;
- gTasks[taskId].data[4] = r4;
- if (gTasks[taskId].data[2] == 0)
- {
- r4 = r3;
- DestroyTask(taskId);
- gAnimSoundTaskCount--;
- }
- //_080772D8
- else
- {
- if (r6 < r3)
- {
- if (r4 < r3)
- goto check;
- DestroyTask(taskId);
- gAnimSoundTaskCount--;
- }
- else
- {
- if (r4 <= r3)
- r7 = 1;
- check:
- if (r7 != 0)
- {
- DestroyTask(taskId);
- gAnimSoundTaskCount--;
- }
- }
- }
- //_080772F8
- SE12PanpotControl(r4);
- }
- //_08077314
-}
-#else
-__attribute__((naked))
-static void c3_08073CEC(u8 taskId)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- lsls r0, 24\n\
- lsrs r5, r0, 24\n\
- movs r7, 0\n\
- ldr r1, _080772D4 @ =gTasks\n\
- lsls r0, r5, 2\n\
- adds r0, r5\n\
- lsls r0, 3\n\
- adds r2, r0, r1\n\
- ldrh r0, [r2, 0x18]\n\
- adds r1, r0, 0x1\n\
- strh r1, [r2, 0x18]\n\
- lsls r0, 16\n\
- asrs r0, 16\n\
- movs r3, 0xE\n\
- ldrsh r1, [r2, r3]\n\
- cmp r0, r1\n\
- blt _08077314\n\
- strh r7, [r2, 0x18]\n\
- ldrh r6, [r2, 0x8]\n\
- ldrh r3, [r2, 0xA]\n\
- movs r4, 0x10\n\
- ldrsh r0, [r2, r4]\n\
- movs r4, 0xC\n\
- ldrsh r1, [r2, r4]\n\
- adds r0, r1\n\
- lsls r0, 16\n\
- lsrs r4, r0, 16\n\
- strh r4, [r2, 0x10]\n\
- cmp r1, 0\n\
- bne _080772D8\n\
- lsls r2, r3, 16\n\
- b _080772FC\n\
- .align 2, 0\n\
-_080772D4: .4byte gTasks\n\
-_080772D8:\n\
- lsls r1, r6, 16\n\
- lsls r0, r3, 16\n\
- asrs r3, r0, 16\n\
- adds r2, r0, 0\n\
- cmp r1, r2\n\
- bge _080772EE\n\
- lsls r0, r4, 16\n\
- asrs r0, 16\n\
- cmp r0, r3\n\
- blt _080772F8\n\
- b _080772FC\n\
-_080772EE:\n\
- lsls r0, r4, 16\n\
- asrs r0, 16\n\
- cmp r0, r3\n\
- bgt _080772F8\n\
- movs r7, 0x1\n\
-_080772F8:\n\
- cmp r7, 0\n\
- beq _0807730C\n\
-_080772FC:\n\
- lsrs r4, r2, 16\n\
- adds r0, r5, 0\n\
- bl DestroyTask\n\
- ldr r1, _0807731C @ =gAnimSoundTaskCount\n\
- ldrb r0, [r1]\n\
- subs r0, 0x1\n\
- strb r0, [r1]\n\
-_0807730C:\n\
- lsls r0, r4, 24\n\
- asrs r0, 24\n\
- bl SE12PanpotControl\n\
-_08077314:\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_0807731C: .4byte gAnimSoundTaskCount\n\
- .syntax divided\n");
-}
-#endif
-
-static void ScriptCmd_panse_26(void)
-{
- u16 r8;
- s8 r4;
- s8 r5;
- s8 r6;
- u8 r10;
- u8 taskId;
-
- gBattleAnimScriptPtr++;
- r8 = SCRIPT_READ_16(gBattleAnimScriptPtr);
- r4 = SCRIPT_READ_8(gBattleAnimScriptPtr + 2);
- r5 = SCRIPT_READ_8(gBattleAnimScriptPtr + 3);
- r6 = SCRIPT_READ_8(gBattleAnimScriptPtr + 4);
- r10 = SCRIPT_READ_8(gBattleAnimScriptPtr + 5);
- taskId = CreateTask(c3_08073CEC, 1);
- gTasks[taskId].data[0] = r4;
- gTasks[taskId].data[1] = r5;
- gTasks[taskId].data[2] = r6;
- gTasks[taskId].data[3] = r10;
- gTasks[taskId].data[4] = r4;
- PlaySE12WithPanning(r8, r4);
- gAnimSoundTaskCount++;
- gBattleAnimScriptPtr += 6;
-}
-
-static void ScriptCmd_panse_27(void)
-{
- u16 r9;
- u8 r4;
- u8 r8;
- u8 r7;
- u8 r0;
- s8 r6;
- s8 r5;
- s8 r4_2;
- u8 taskId;
-
- gBattleAnimScriptPtr++;
- r9 = SCRIPT_READ_16(gBattleAnimScriptPtr);
- r0 = SCRIPT_READ_8(gBattleAnimScriptPtr + 2);
- r4 = SCRIPT_READ_8(gBattleAnimScriptPtr + 3);
- r8 = SCRIPT_READ_8(gBattleAnimScriptPtr + 4);
- r7 = SCRIPT_READ_8(gBattleAnimScriptPtr + 5);
- r6 = sub_8077094(r0);
- r5 = sub_8077094(r4);
- r4_2 = sub_8077094(r8);
- taskId = CreateTask(c3_08073CEC, 1);
- gTasks[taskId].data[0] = r6;
- gTasks[taskId].data[1] = r5;
- gTasks[taskId].data[2] = r4_2;
- gTasks[taskId].data[3] = r7;
- gTasks[taskId].data[4] = r6;
- PlaySE12WithPanning(r9, r6);
- gAnimSoundTaskCount++;
- gBattleAnimScriptPtr += 6;
-}
-
-static void ScriptCmd_panse_1C(void)
-{
- u16 r5;
- u8 r0;
- u8 r8;
- u8 r9;
- s8 r4;
- u8 taskId;
-
- gBattleAnimScriptPtr++;
- r5 = SCRIPT_READ_16(gBattleAnimScriptPtr);
- r0 = SCRIPT_READ_8(gBattleAnimScriptPtr + 2);
- r8 = SCRIPT_READ_8(gBattleAnimScriptPtr + 3);
- r9 = SCRIPT_READ_8(gBattleAnimScriptPtr + 4);
- r4 = sub_8076F98(r0);
- taskId = CreateTask(sub_80774FC, 1);
- gTasks[taskId].data[0] = r5;
- gTasks[taskId].data[1] = r4;
- gTasks[taskId].data[2] = r8;
- gTasks[taskId].data[3] = r9;
- gTasks[taskId].data[8] = r8;
- gTasks[taskId].func(taskId);
- gAnimSoundTaskCount++;
- gBattleAnimScriptPtr += 5;
-}
-
-static void sub_80774FC(u8 taskId)
-{
- s16 data8;
- u16 r0;
- s8 r1;
- u8 r4;
-
- data8 = gTasks[taskId].data[8];
- gTasks[taskId].data[8]++;
- if (data8 >= gTasks[taskId].data[2])
- {
- gTasks[taskId].data[8] = 0;
- r0 = gTasks[taskId].data[0];
- r1 = gTasks[taskId].data[1];
- gTasks[taskId].data[3]--;
- r4 = gTasks[taskId].data[3];
- PlaySE12WithPanning(r0, r1);
- if (r4 == 0)
- {
- DestroyTask(taskId);
- gAnimSoundTaskCount--;
- }
- }
-}
-
-static void ScriptCmd_panse_1D(void)
-{
- u16 r5;
- u8 r0;
- u8 r8;
- s8 r4;
- u8 taskId;
-
- gBattleAnimScriptPtr++;
- r5 = SCRIPT_READ_16(gBattleAnimScriptPtr);
- r0 = SCRIPT_READ_8(gBattleAnimScriptPtr + 2);
- r8 = SCRIPT_READ_8(gBattleAnimScriptPtr + 3);
- r4 = sub_8076F98(r0);
- taskId = CreateTask(sub_80775CC, 1);
- gTasks[taskId].data[0] = r5;
- gTasks[taskId].data[1] = r4;
- gTasks[taskId].data[2] = r8;
- gAnimSoundTaskCount++;
- gBattleAnimScriptPtr += 4;
-}
-
-static void sub_80775CC(u8 taskId)
-{
- s16 r0;
-
- r0 = gTasks[taskId].data[2];
- gTasks[taskId].data[2]--;
- if (r0 <= 0)
- {
- PlaySE12WithPanning(gTasks[taskId].data[0], gTasks[taskId].data[1]);
- DestroyTask(taskId);
- gAnimSoundTaskCount--;
- }
-}
-
-static void ScriptCmd_createtask_1F(void)
-{
- TaskFunc func;
- u8 numArgs;
- int i;
- u8 taskId;
-
- gBattleAnimScriptPtr++;
- func = (TaskFunc)SCRIPT_READ_32(gBattleAnimScriptPtr);
- gBattleAnimScriptPtr += 4;
- numArgs = SCRIPT_READ_8(gBattleAnimScriptPtr);
- gBattleAnimScriptPtr++;
- for (i = 0; i < numArgs; i++)
- {
- gBattleAnimArgs[i] = SCRIPT_READ_16(gBattleAnimScriptPtr);
- gBattleAnimScriptPtr += 2;
- }
- taskId = CreateTask(func, 1);
- func(taskId);
- gAnimSoundTaskCount++;
-}
-
-static void ScriptCmd_waitsound(void)
-{
- if (gAnimSoundTaskCount != 0)
- {
- gSoundAnimFramesToWait = 0;
- gAnimFramesToWait = 1;
- }
- else if (IsSEPlaying())
- {
- if (++gSoundAnimFramesToWait > 90)
- {
- m4aMPlayStop(&gMPlay_SE1);
- m4aMPlayStop(&gMPlay_SE2);
- gSoundAnimFramesToWait = 0;
- }
- else
- {
- gAnimFramesToWait = 1;
- }
- }
- else
- {
- gSoundAnimFramesToWait = 0;
- gBattleAnimScriptPtr++;
- gAnimFramesToWait = 0;
- }
-}
-
-static void ScriptCmd_jumpvareq(void)
-{
- u8 r2;
- s16 r1;
- u8 *addr;
-
- gBattleAnimScriptPtr++;
- r2 = SCRIPT_READ_8(gBattleAnimScriptPtr);
- r1 = SCRIPT_READ_16(gBattleAnimScriptPtr + 1);
- if (r1 == gBattleAnimArgs[r2])
- {
- addr = (u8 *)SCRIPT_READ_32(gBattleAnimScriptPtr + 3);
- gBattleAnimScriptPtr = addr;
- }
- else
- {
- gBattleAnimScriptPtr += 7;
- }
-}
-
-static void ScriptCmd_jumpunkcond(void)
-{
- u8 *addr;
-
- gBattleAnimScriptPtr++;
- if (IsContest())
- {
- addr = (u8 *)SCRIPT_READ_32(gBattleAnimScriptPtr);
- gBattleAnimScriptPtr = addr;
- }
- else
- {
- gBattleAnimScriptPtr += 4;
- }
-}
-
-static void ScriptCmd_monbgprio_28(void)
-{
- u8 r2;
- u8 r0;
- u8 r4;
-
- r2 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
- gBattleAnimScriptPtr += 2;
- if (r2 != 0)
- r0 = gBattleAnimEnemyMonIndex;
- else
- r0 = gBattleAnimPlayerMonIndex;
- r4 = GetBankIdentity(r0);
- if (!IsContest() && (r4 == 0 || r4 == 3))
- {
- REG_BG1CNT_BITFIELD.priority = 1;
- REG_BG2CNT_BITFIELD.priority = 2;
- }
-}
-
-static void ScriptCmd_monbgprio_29(void)
-{
- gBattleAnimScriptPtr++;
- if (!IsContest())
- {
- REG_BG1CNT_BITFIELD.priority = 1;
- REG_BG2CNT_BITFIELD.priority = 2;
- }
-}
-
-static void ScriptCmd_monbgprio_2A(void)
-{
- u8 r6;
- u8 r4;
- u8 r0;
-
- r6 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
- gBattleAnimScriptPtr += 2;
- if (GetBankSide(gBattleAnimPlayerMonIndex) != GetBankSide(gBattleAnimEnemyMonIndex))
- {
- if (r6 != 0)
- r0 = gBattleAnimEnemyMonIndex;
- else
- r0 = gBattleAnimPlayerMonIndex;
- r4 = GetBankIdentity(r0);
- if (!IsContest() && (r4 == 0 || r4 == 3))
- {
- REG_BG1CNT_BITFIELD.priority = 1;
- REG_BG2CNT_BITFIELD.priority = 2;
- }
- }
-}
-
-static void ScriptCmd_invisible(void)
-{
- u8 r0;
- u8 spriteId;
-
- r0 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
- spriteId = obj_id_for_side_relative_to_move(r0);
- if (spriteId != 0xFF)
- {
- gSprites[spriteId].invisible = TRUE;
- }
- gBattleAnimScriptPtr += 2;
-}
-
-static void ScriptCmd_visible(void)
-{
- u8 r0;
- u8 spriteId;
-
- r0 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
- spriteId = obj_id_for_side_relative_to_move(r0);
- if (spriteId != 0xFF)
- {
- gSprites[spriteId].invisible = FALSE;
- }
- gBattleAnimScriptPtr += 2;
-}
-
-static void ScriptCmd_doublebattle_2D(void)
-{
- u8 r7;
- u8 r4;
- u8 spriteId;
-
- r7 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
- gBattleAnimScriptPtr += 2;
- if (!IsContest() && IsDoubleBattle()
- && GetBankSide(gBattleAnimPlayerMonIndex) == GetBankSide(gBattleAnimEnemyMonIndex))
- {
- if (r7 == 0)
- {
- r4 = GetBankIdentity_permutated(gBattleAnimPlayerMonIndex);
- spriteId = obj_id_for_side_relative_to_move(0);
- }
- else
- {
- r4 = GetBankIdentity_permutated(gBattleAnimEnemyMonIndex);
- spriteId = obj_id_for_side_relative_to_move(1);
- }
- if (spriteId != 0xFF)
- {
- gSprites[spriteId].invisible = FALSE;
- if (r4 == 2)
- gSprites[spriteId].oam.priority = 3;
- if (r4 == 1)
- sub_8076464(0);
- else
- sub_8076464(1);
- }
- }
-}
-
-static void ScriptCmd_doublebattle_2E(void)
-{
- u8 r7;
- u8 r4;
- u8 spriteId;
-
- r7 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
- gBattleAnimScriptPtr += 2;
- if (!IsContest() && IsDoubleBattle()
- && GetBankSide(gBattleAnimPlayerMonIndex) == GetBankSide(gBattleAnimEnemyMonIndex))
- {
- if (r7 == 0)
- {
- r4 = GetBankIdentity_permutated(gBattleAnimPlayerMonIndex);
- spriteId = obj_id_for_side_relative_to_move(0);
- }
- else
- {
- r4 = GetBankIdentity_permutated(gBattleAnimEnemyMonIndex);
- spriteId = obj_id_for_side_relative_to_move(1);
- }
- if (spriteId != 0xFF && r4 == 2)
- {
- gSprites[spriteId].oam.priority = 2;
- }
- }
-}
-
-static void ScriptCmd_stopsound(void)
-{
- m4aMPlayStop(&gMPlay_SE1);
- m4aMPlayStop(&gMPlay_SE2);
- gBattleAnimScriptPtr++;
-}