From 064ca5c24314780fed46ba8e291d73107bd5b7d7 Mon Sep 17 00:00:00 2001 From: Frank DeBlasio <35279583+fdeblasio@users.noreply.github.com> Date: Fri, 6 Feb 2026 10:08:20 -0500 Subject: [PATCH] Added macro for Surf/Muddy Water's animation (#2232) --- asm/macros/battle_anim_script.inc | 4 ++++ data/battle_anim_scripts.s | 4 ++-- include/constants/battle_anim.h | 4 ++++ src/battle_anim_water.c | 7 +++++-- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/asm/macros/battle_anim_script.inc b/asm/macros/battle_anim_script.inc index d46638949b..e6bb3d6705 100644 --- a/asm/macros/battle_anim_script.inc +++ b/asm/macros/battle_anim_script.inc @@ -579,3 +579,7 @@ .macro shake_battle_platforms priority=2, x_offset:req, y_offset:req, shakes:req, delay:req createvisualtask AnimTask_ShakeBattlePlatforms, \priority, \x_offset, \y_offset, \shakes, \delay .endm + + .macro create_surf_wave priority=2, palette:req + createvisualtask AnimTask_CreateSurfWave, \priority, \palette + .endm diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 884360034c..4fc244acba 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -6296,7 +6296,7 @@ Move_CRABHAMMER: end Move_SURF: - createvisualtask AnimTask_CreateSurfWave, 2, FALSE + create_surf_wave palette=ANIM_SURF_PAL_SURF delay 24 panse SE_M_SURF, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 waitforvisualfinish @@ -8594,7 +8594,7 @@ ArmThrustLeft: Move_MUDDY_WATER: panse SE_M_WHIRLPOOL, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 - createvisualtask AnimTask_CreateSurfWave, 2, TRUE + create_surf_wave palette=ANIM_SURF_PAL_MUDDY_WATER waitforvisualfinish end diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index 9e63874312..b293890eca 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -420,6 +420,10 @@ #define ANIM_WEATHER_SANDSTORM 3 #define ANIM_WEATHER_HAIL 4 +// Surf wave palettes +#define ANIM_SURF_PAL_SURF 0 +#define ANIM_SURF_PAL_MUDDY_WATER 1 + // Flags given to various functions to indicate which palettes to consider. // Handled by UnpackSelectedBattlePalettes #define F_PAL_BG (1 << 0) diff --git a/src/battle_anim_water.c b/src/battle_anim_water.c index 883cf5825e..1518d7e988 100644 --- a/src/battle_anim_water.c +++ b/src/battle_anim_water.c @@ -1,6 +1,7 @@ #include "global.h" #include "battle.h" #include "battle_anim.h" +#include "battle_anim_internal.h" #include "gpu_regs.h" #include "graphics.h" #include "palette.h" @@ -514,7 +515,7 @@ static void AnimRainDrop_Step(struct Sprite *sprite) if (++sprite->data[0] <= 13) { // - // Make the raindrop fall, but only until it reaches the + // Make the raindrop fall, but only until it reaches the // impact/splash frames of its animation. // sprite->x2++; @@ -812,6 +813,8 @@ static void AnimSmallBubblePair_Step(struct Sprite *sprite) void AnimTask_CreateSurfWave(u8 taskId) { + CMD_ARGS(palette); + struct BattleAnimBgData animBg; u8 taskId2; u16 *x; @@ -838,7 +841,7 @@ void AnimTask_CreateSurfWave(u8 taskId) AnimLoadCompressedBgTilemapHandleContest(&animBg, gBattleAnimBgTilemap_SurfContest, TRUE); } AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBgImage_Surf, animBg.tilesOffset); - if (gBattleAnimArgs[0] == 0) + if (cmd->palette == ANIM_SURF_PAL_SURF) LoadCompressedPalette(gBattleAnimBgPalette_Surf, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP); else LoadCompressedPalette(gBattleAnimBackgroundImageMuddyWater_Pal, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP);