More battle environment updates (#8809)

This commit is contained in:
Frank DeBlasio 2026-01-06 16:10:08 -05:00 committed by GitHub
parent 2183fa748a
commit f6be01e92c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 216 additions and 184 deletions

View File

@ -27523,7 +27523,7 @@ gBattleAnimMove_RazorLeaf::
end
gBattleAnimMove_NaturePower::
@ No actual animation, uses the animation of a move from gBattleEnvironmentInfo.naturePower instead
@ No actual animation, uses the animation of a move from src/data/battle_environment.h instead
gBattleAnimMove_AncientPower::
loadspritegfx ANIM_TAG_ROCKS
@ -30306,7 +30306,7 @@ gBattleAnimMove_SkyUppercut::
end
gBattleAnimMove_SecretPower::
@ No actual animation, uses the animation of a move from gBattleEnvironmentInfo.secretPowerAnimation instead
@ No actual animation, uses the animation of a move from src/data/battle_environment.h instead
gBattleAnimMove_Twister::
loadspritegfx ANIM_TAG_LEAF

View File

@ -101,6 +101,9 @@ void LoadMoveBg(u16 bgId);
void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value);
void DrawBattlerOnBg(int bgId, u8 x, u8 y, u8 battlerPosition, u8 paletteId, u8 *tiles, u16 *tilemap, u16 tilesOffset);
void HandleIntroSlide(u8 environment);
void BattleIntroSlide1(u8 taskId);
void BattleIntroSlide2(u8 taskId);
void BattleIntroSlide3(u8 taskId);
int GetAnimBgAttribute(u8 bgId, u8 attributeId);
// battle_anim_mons.c

View File

@ -6,11 +6,14 @@
struct BattleEnvironment
{
u8 name[26];
u16 naturePower;
const void *secretPowerAnimation;
u16 secretPowerEffect;
enum Type camouflageType;
u16 camouflageBlend;
struct BattleBackground background;
TaskFunc battleIntroSlide;
};
extern const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT];

View File

@ -1,5 +1,6 @@
#include "global.h"
#include "battle_anim.h"
#include "battle_environment.h"
#include "contest.h"
#include "gpu_regs.h"
#include "graphics.h"
@ -104,41 +105,7 @@ void AnimTask_BlendBattleAnimPalExclude(u8 taskId)
void AnimTask_SetCamouflageBlend(u8 taskId)
{
u32 selectedPalettes = UnpackSelectedBattlePalettes(gBattleAnimArgs[0]);
switch (gBattleEnvironment)
{
case BATTLE_ENVIRONMENT_GRASS:
gBattleAnimArgs[4] = RGB(12, 24, 2);
break;
case BATTLE_ENVIRONMENT_LONG_GRASS:
gBattleAnimArgs[4] = RGB(0, 15, 2);
break;
case BATTLE_ENVIRONMENT_SAND:
gBattleAnimArgs[4] = RGB(30, 24, 11);
break;
case BATTLE_ENVIRONMENT_UNDERWATER:
gBattleAnimArgs[4] = RGB(0, 0, 18);
break;
case BATTLE_ENVIRONMENT_WATER:
gBattleAnimArgs[4] = RGB(11, 22, 31);
break;
case BATTLE_ENVIRONMENT_POND:
gBattleAnimArgs[4] = RGB(11, 22, 31);
break;
case BATTLE_ENVIRONMENT_MOUNTAIN:
gBattleAnimArgs[4] = RGB(22, 16, 10);
break;
case BATTLE_ENVIRONMENT_CAVE:
gBattleAnimArgs[4] = RGB(14, 9, 3);
break;
case BATTLE_ENVIRONMENT_BUILDING:
gBattleAnimArgs[4] = RGB_WHITE;
break;
case BATTLE_ENVIRONMENT_PLAIN:
default:
gBattleAnimArgs[4] = RGB_WHITE;
break;
}
gBattleAnimArgs[4] = gBattleEnvironmentInfo[gBattleEnvironment].camouflageBlend;
StartBlendAnimSpriteColor(taskId, selectedPalettes);
}

View File

@ -609,7 +609,7 @@ const struct WindowTemplate *const gBattleWindowTemplates[] =
};
// If current map scene equals any of the values in sMapBattleSceneMapping,
// use its battle terrain value. Otherwise, use the default.
// use its battle environment value. Otherwise, use the default.
static u8 GetBattleEnvironmentByMapScene(u8 mapBattleScene)
{
int i;
@ -621,26 +621,26 @@ static u8 GetBattleEnvironmentByMapScene(u8 mapBattleScene)
return BATTLE_ENVIRONMENT_PLAIN;
}
// Loads the initial battle terrain.
static void LoadBattleEnvironmentGfx(u16 terrain)
// Loads the initial battle environment.
static void LoadBattleEnvironmentGfx(u16 environment)
{
if (terrain >= NELEMS(gBattleEnvironmentInfo))
terrain = BATTLE_ENVIRONMENT_PLAIN; // If higher than the number of entries in gBattleEnvironmentInfo, use the default.
if (environment >= NELEMS(gBattleEnvironmentInfo))
environment = BATTLE_ENVIRONMENT_PLAIN; // If higher than the number of entries in gBattleEnvironmentInfo, use the default.
// Copy to bg3
DecompressDataWithHeaderVram(gBattleEnvironmentInfo[terrain].background.tileset, (void *)(BG_CHAR_ADDR(2)));
DecompressDataWithHeaderVram(gBattleEnvironmentInfo[terrain].background.tilemap, (void *)(BG_SCREEN_ADDR(26)));
LoadPalette(gBattleEnvironmentInfo[terrain].background.palette, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
DecompressDataWithHeaderVram(gBattleEnvironmentInfo[environment].background.tileset, (void *)(BG_CHAR_ADDR(2)));
DecompressDataWithHeaderVram(gBattleEnvironmentInfo[environment].background.tilemap, (void *)(BG_SCREEN_ADDR(26)));
LoadPalette(gBattleEnvironmentInfo[environment].background.palette, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
}
// Loads the entry associated with the battle terrain.
// Loads the entry associated with the battle environment.
// This can be the grass moving on the screen at the start of a wild encounter in tall grass.
static void LoadBattleEnvironmentEntryGfx(u16 terrain)
static void LoadBattleEnvironmentEntryGfx(u16 environment)
{
if (terrain >= NELEMS(gBattleEnvironmentInfo))
terrain = BATTLE_ENVIRONMENT_PLAIN;
if (environment >= NELEMS(gBattleEnvironmentInfo))
environment = BATTLE_ENVIRONMENT_PLAIN;
// Copy to bg1
DecompressDataWithHeaderVram(gBattleEnvironmentInfo[terrain].background.entryTileset, (void *)BG_CHAR_ADDR(1));
DecompressDataWithHeaderVram(gBattleEnvironmentInfo[terrain].background.entryTilemap, (void *)BG_SCREEN_ADDR(28));
DecompressDataWithHeaderVram(gBattleEnvironmentInfo[environment].background.entryTileset, (void *)BG_CHAR_ADDR(1));
DecompressDataWithHeaderVram(gBattleEnvironmentInfo[environment].background.entryTilemap, (void *)BG_SCREEN_ADDR(28));
}
static u8 GetBattleEnvironmentOverride(void)
@ -1049,48 +1049,21 @@ void DrawBattleEntryBackground(void)
}
else if (gBattleTypeFlags & BATTLE_TYPE_LEGENDARY)
{
switch (GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, NULL))
{
case SPECIES_GROUDON:
LoadBattleEnvironmentEntryGfx(BATTLE_ENVIRONMENT_CAVE);
break;
case SPECIES_KYOGRE:
LoadBattleEnvironmentEntryGfx(BATTLE_ENVIRONMENT_UNDERWATER);
break;
case SPECIES_RAYQUAZA:
LoadBattleEnvironmentEntryGfx(BATTLE_ENVIRONMENT_RAYQUAZA);
break;
default:
DecompressDataWithHeaderVram(gBattleEnvironmentInfo[gBattleEnvironment].background.entryTileset, (void *)(BG_CHAR_ADDR(1)));
DecompressDataWithHeaderVram(gBattleEnvironmentInfo[gBattleEnvironment].background.entryTilemap, (void *)(BG_SCREEN_ADDR(28)));
break;
}
LoadBattleEnvironmentEntryGfx(GetBattleEnvironmentOverride());
}
else
{
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
{
enum TrainerClassID trainerClass = GetTrainerClassFromId(TRAINER_BATTLE_PARAM.opponentA);
if (trainerClass == TRAINER_CLASS_LEADER)
if (trainerClass == TRAINER_CLASS_LEADER || trainerClass == TRAINER_CLASS_CHAMPION)
{
LoadBattleEnvironmentEntryGfx(BATTLE_ENVIRONMENT_BUILDING);
return;
}
else if (trainerClass == TRAINER_CLASS_CHAMPION)
{
LoadBattleEnvironmentEntryGfx(BATTLE_ENVIRONMENT_BUILDING);
LoadBattleEnvironmentEntryGfx(GetBattleEnvironmentOverride());
return;
}
}
if (GetCurrentMapBattleScene() == MAP_BATTLE_SCENE_NORMAL)
{
LoadBattleEnvironmentEntryGfx(gBattleEnvironment);
}
else
{
LoadBattleEnvironmentEntryGfx(gBattleEnvironment);
}
LoadBattleEnvironmentEntryGfx(gBattleEnvironment);
}
}

View File

@ -1,6 +1,7 @@
#include "global.h"
#include "battle.h"
#include "battle_anim.h"
#include "battle_environment.h"
#include "battle_main.h"
#include "battle_setup.h"
#include "bg.h"
@ -13,29 +14,15 @@
#include "constants/battle_partner.h"
#include "constants/trainers.h"
static void BattleIntroSlide1(u8);
static void BattleIntroSlide2(u8);
static void BattleIntroSlide3(u8);
void BattleIntroSlide1(u8);
void BattleIntroSlide2(u8);
void BattleIntroSlide3(u8);
static void BattleIntroSlideLink(u8);
static void BattleIntroSlidePartner(u8);
static void BattleIntroNoSlide(u8);
static const u8 sBattleAnimBgCnts[] = {REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, REG_OFFSET_BG2CNT, REG_OFFSET_BG3CNT};
static const TaskFunc sBattleIntroSlideFuncs[] =
{
[BATTLE_ENVIRONMENT_GRASS] = BattleIntroSlide1,
[BATTLE_ENVIRONMENT_LONG_GRASS] = BattleIntroSlide1,
[BATTLE_ENVIRONMENT_SAND] = BattleIntroSlide2,
[BATTLE_ENVIRONMENT_UNDERWATER] = BattleIntroSlide2,
[BATTLE_ENVIRONMENT_WATER] = BattleIntroSlide2,
[BATTLE_ENVIRONMENT_POND] = BattleIntroSlide1,
[BATTLE_ENVIRONMENT_MOUNTAIN] = BattleIntroSlide1,
[BATTLE_ENVIRONMENT_CAVE] = BattleIntroSlide1,
[BATTLE_ENVIRONMENT_BUILDING] = BattleIntroSlide3,
[BATTLE_ENVIRONMENT_PLAIN] = BattleIntroSlide3,
};
void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value)
{
if (bgId < 4)
@ -125,10 +112,10 @@ void HandleIntroSlide(u8 environment)
}
else
{
if (environment >= NELEMS(sBattleIntroSlideFuncs)
|| sBattleIntroSlideFuncs[environment] == NULL)
if (environment >= NELEMS(gBattleEnvironmentInfo)
|| gBattleEnvironmentInfo[environment].battleIntroSlide == NULL)
environment = BATTLE_ENVIRONMENT_PLAIN;
taskId = CreateTask(sBattleIntroSlideFuncs[environment], 0);
taskId = CreateTask(gBattleEnvironmentInfo[environment].battleIntroSlide, 0);
}
gTasks[taskId].tState = 0;
@ -202,7 +189,7 @@ static void BattleIntroNoSlide(u8 taskId)
}
}
static void BattleIntroSlide1(u8 taskId)
void BattleIntroSlide1(u8 taskId)
{
int i;
if (B_FAST_INTRO_NO_SLIDE || gTestRunnerHeadless)
@ -289,7 +276,7 @@ static void BattleIntroSlide1(u8 taskId)
}
}
static void BattleIntroSlide2(u8 taskId)
void BattleIntroSlide2(u8 taskId)
{
int i;
if (B_FAST_INTRO_NO_SLIDE || gTestRunnerHeadless)
@ -403,7 +390,7 @@ static void BattleIntroSlide2(u8 taskId)
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[4], 0));
}
static void BattleIntroSlide3(u8 taskId)
void BattleIntroSlide3(u8 taskId)
{
int i;
if (B_FAST_INTRO_NO_SLIDE || gTestRunnerHeadless)

View File

@ -47,6 +47,24 @@ const u32 gBattleEnvironmentTilemap_Building[] = INCBIN_U32("graphics/battle_env
.palette = gBattleEnvironmentPalette_##background, \
}
#define DEFAULT_CAMOUFLAGE_BLEND RGB_WHITE
// Cave values. Used for BATTLE_ENVIRONMENT_CAVE as well as BATTLE_ENVIRONMENT_GROUDON and BATTLE_ENVIRONMENT_KYOGRE
#if B_NATURE_POWER_MOVES >= GEN_6
#define CAVE_NATURE_POWER MOVE_POWER_GEM
#elif B_NATURE_POWER_MOVES >= GEN_4
#define CAVE_NATURE_POWER MOVE_ROCK_SLIDE
#else
#define CAVE_NATURE_POWER MOVE_SHADOW_BALL
#endif
#define CAVE_SECRET_POWER_ANIMATION B_SECRET_POWER_ANIMATION >= GEN_4 ? gBattleAnimMove_RockThrow : gBattleAnimMove_Bite
#define CAVE_SECRET_POWER_EFFECT MOVE_EFFECT_FLINCH
#define CAVE_CAMOUFLAGE_TYPE TYPE_ROCK
#define CAVE_CAMOUFLAGE_BLEND RGB(14, 9, 3)
#define CAVE_BATTLE_INTRO_SLIDE BattleIntroSlide1
// Building values. Used for BATTLE_ENVIRONMENT_BUILDING as well as the environments that come from the vanilla MAP_BATTLE_SCENEs: BATTLE_ENVIRONMENT_PLAIN, BATTLE_ENVIRONMENT_FRONTIER, BATTLE_ENVIRONMENT_GYM, BATTLE_ENVIRONMENT_LEADER, BATTLE_ENVIRONMENT_MAGMA, BATTLE_ENVIRONMENT_AQUA, BATTLE_ENVIRONMENT_SIDNEY, BATTLE_ENVIRONMENT_PHOEBE, BATTLE_ENVIRONMENT_GLACIA, BATTLE_ENVIRONMENT_DRAKE, BATTLE_ENVIRONMENT_CHAMPION
#define BUILDING_NATURE_POWER B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_TRI_ATTACK : MOVE_SWIFT
#if B_SECRET_POWER_ANIMATION >= GEN_7
#define BUILDING_SECRET_POWER_ANIMATION gBattleAnimMove_SpitUp
#elif B_SECRET_POWER_ANIMATION >= GEN_4
@ -54,13 +72,39 @@ const u32 gBattleEnvironmentTilemap_Building[] = INCBIN_U32("graphics/battle_env
#else
#define BUILDING_SECRET_POWER_ANIMATION gBattleAnimMove_Strength,
#endif
#define BUILDING_SECRET_POWER_EFFECT MOVE_EFFECT_PARALYSIS
#define BUILDING_CAMOUFLAGE_TYPE TYPE_NORMAL
#define BUILDING_CAMOUFLAGE_BLEND RGB_WHITE
#define BUILDING_BATTLE_INTRO_SLIDE BattleIntroSlide3
// Plain values. USED for BATTLE_ENVIRONMENT_PLAIN as well as BATTLE_ENVIRONMENT_RAYQUAZA
// (BATTLE_ENVIRONMENT_SKY_PILLAR wasn't introduced until Gen6, so Sky Pillar's roof counts as a Route which uses Plain)
#if B_NATURE_POWER_MOVES >= GEN_6
#define PLAIN_NATURE_POWER MOVE_TRI_ATTACK
#elif B_NATURE_POWER_MOVES >= GEN_4
#define PLAIN_NATURE_POWER MOVE_EARTHQUAKE
#else
#define PLAIN_NATURE_POWER MOVE_SWIFT
#endif
#if B_SECRET_POWER_ANIMATION >= GEN_7
#define PLAIN_SECRET_POWER_ANIMATION gBattleAnimMove_SpitUp
#elif B_SECRET_POWER_ANIMATION == GEN_6
#define PLAIN_SECRET_POWER_ANIMATION gBattleAnimMove_BodySlam
#elif B_SECRET_POWER_ANIMATION >= GEN_4
#define PLAIN_SECRET_POWER_ANIMATION gBattleAnimMove_MudSlap
#else
#define PLAIN_SECRET_POWER_ANIMATION gBattleAnimMove_Slam
#endif
#define PLAIN_SECRET_POWER_EFFECT (B_SECRET_POWER_EFFECT == GEN_4 || B_SECRET_POWER_EFFECT == GEN_5) ? MOVE_EFFECT_ACC_MINUS_1 : MOVE_EFFECT_PARALYSIS
#define PLAIN_CAMOUFLAGE_TYPE (B_CAMOUFLAGE_TYPES == GEN_4 || B_CAMOUFLAGE_TYPES == GEN_5) ? TYPE_GROUND : TYPE_NORMAL
#define PLAIN_CAMOUFLAGE_BLEND RGB_WHITE
#define PLAIN_BATTLE_INTRO_SLIDE BattleIntroSlide3
const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT] =
{
[BATTLE_ENVIRONMENT_GRASS] =
{
.name = _("Grass "),
#if B_NATURE_POWER_MOVES >= GEN_6
.naturePower = MOVE_ENERGY_BALL,
#elif B_NATURE_POWER_MOVES >= GEN_4
@ -71,11 +115,14 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
.secretPowerAnimation = gBattleAnimMove_NeedleArm,
.secretPowerEffect = B_SECRET_POWER_EFFECT >= GEN_4 ? MOVE_EFFECT_SLEEP : MOVE_EFFECT_POISON,
.camouflageType = TYPE_GRASS,
.camouflageBlend = RGB(12, 24, 2),
.background = ENVIRONMENT_BACKGROUND(TallGrass),
.battleIntroSlide = BattleIntroSlide1,
},
[BATTLE_ENVIRONMENT_LONG_GRASS] =
{
.name = _("Long Grass "),
#if B_NATURE_POWER_MOVES >= GEN_6
.naturePower = MOVE_ENERGY_BALL,
#elif B_NATURE_POWER_MOVES >= GEN_4
@ -83,50 +130,65 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
#else
.naturePower = MOVE_RAZOR_LEAF,
#endif
.secretPowerAnimation = gBattleAnimMove_MagicalLeaf,
.secretPowerAnimation = B_SECRET_POWER_ANIMATION >= GEN_4 ? gBattleAnimMove_NeedleArm : gBattleAnimMove_MagicalLeaf,
.secretPowerEffect = MOVE_EFFECT_SLEEP,
.camouflageType = TYPE_GRASS,
.camouflageBlend = RGB(0, 15, 2),
.background = ENVIRONMENT_BACKGROUND(LongGrass),
.battleIntroSlide = BattleIntroSlide1,
},
[BATTLE_ENVIRONMENT_SAND] =
{
.name = _("Sand "),
.naturePower = B_NATURE_POWER_MOVES >= GEN_6 ? MOVE_EARTH_POWER : MOVE_EARTHQUAKE,
.secretPowerAnimation = B_SECRET_POWER_ANIMATION >= GEN_4 ? gBattleAnimMove_MudSlap : gBattleAnimMove_MudShot,
.secretPowerEffect = MOVE_EFFECT_ACC_MINUS_1,
.camouflageType = TYPE_GROUND,
.camouflageBlend = RGB(30, 24, 11),
.background = ENVIRONMENT_BACKGROUND(Sand),
.battleIntroSlide = BattleIntroSlide2,
},
[BATTLE_ENVIRONMENT_UNDERWATER] =
{
.name = _("Underwater "),
.naturePower = MOVE_HYDRO_PUMP,
.secretPowerAnimation = B_SECRET_POWER_ANIMATION >= GEN_6 ? gBattleAnimMove_WaterPulse : gBattleAnimMove_Waterfall,
.secretPowerEffect = B_SECRET_POWER_EFFECT >= GEN_6 ? MOVE_EFFECT_ATK_MINUS_1 : MOVE_EFFECT_DEF_MINUS_1,
.camouflageType = TYPE_WATER,
.camouflageBlend = RGB(0, 0, 18),
.background = ENVIRONMENT_BACKGROUND(Underwater),
.battleIntroSlide = BattleIntroSlide2,
},
[BATTLE_ENVIRONMENT_WATER] =
{
.name = _("Water "),
.naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_HYDRO_PUMP : MOVE_SURF,
.secretPowerAnimation = B_SECRET_POWER_ANIMATION >= GEN_4 ? gBattleAnimMove_WaterPulse : gBattleAnimMove_Surf,
.secretPowerEffect = MOVE_EFFECT_ATK_MINUS_1,
.camouflageType = TYPE_WATER,
.camouflageBlend = RGB(11, 22, 31),
.background = ENVIRONMENT_BACKGROUND(Water),
.battleIntroSlide = BattleIntroSlide2,
},
[BATTLE_ENVIRONMENT_POND] =
{
.name = _("Pond "),
.naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_HYDRO_PUMP : MOVE_BUBBLE_BEAM,
.secretPowerAnimation = B_SECRET_POWER_ANIMATION >= GEN_4 ? gBattleAnimMove_WaterPulse : gBattleAnimMove_BubbleBeam,
.secretPowerEffect = B_SECRET_POWER_EFFECT >= GEN_4 ? MOVE_EFFECT_ATK_MINUS_1 : MOVE_EFFECT_SPD_MINUS_1,
.camouflageType = TYPE_WATER,
.camouflageBlend = RGB(11, 22, 31),
.background = ENVIRONMENT_BACKGROUND(PondWater),
.battleIntroSlide = BattleIntroSlide1,
},
[BATTLE_ENVIRONMENT_MOUNTAIN] =
{
.name = _("Mountain "),
#if B_NATURE_POWER_MOVES >= GEN_6
.naturePower = MOVE_EARTH_POWER,
#elif B_NATURE_POWER_MOVES >= GEN_5
@ -137,59 +199,49 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
.secretPowerAnimation = B_SECRET_POWER_ANIMATION >= GEN_5 ? gBattleAnimMove_MudSlap : gBattleAnimMove_RockThrow,
#if B_SECRET_POWER_EFFECT >= GEN_5
.secretPowerEffect = MOVE_EFFECT_ACC_MINUS_1,
#elif B_SECRET_POWER_EFFECT >= GEN_4
#elif B_SECRET_POWER_EFFECT == GEN_4
.secretPowerEffect = MOVE_EFFECT_FLINCH,
#else
.secretPowerEffect = MOVE_EFFECT_CONFUSION,
#endif
.camouflageType = B_CAMOUFLAGE_TYPES >= GEN_5 ? TYPE_GROUND : TYPE_ROCK,
.camouflageBlend = RGB(22, 16, 10),
.background = ENVIRONMENT_BACKGROUND(Rock),
.battleIntroSlide = BattleIntroSlide1,
},
[BATTLE_ENVIRONMENT_CAVE] =
{
#if B_NATURE_POWER_MOVES >= GEN_6
.naturePower = MOVE_POWER_GEM,
#elif B_NATURE_POWER_MOVES >= GEN_4
.naturePower = MOVE_ROCK_SLIDE,
#else
.naturePower = MOVE_SHADOW_BALL,
#endif
.secretPowerAnimation = B_SECRET_POWER_ANIMATION >= GEN_4 ? gBattleAnimMove_RockThrow : gBattleAnimMove_Bite,
.secretPowerEffect = MOVE_EFFECT_FLINCH,
.camouflageType = TYPE_ROCK,
.name = _("Cave "),
.naturePower = CAVE_NATURE_POWER,
.secretPowerAnimation = CAVE_SECRET_POWER_ANIMATION,
.secretPowerEffect = CAVE_SECRET_POWER_EFFECT,
.camouflageType = CAVE_CAMOUFLAGE_TYPE,
.camouflageBlend = CAVE_CAMOUFLAGE_BLEND,
.background = ENVIRONMENT_BACKGROUND(Cave),
.battleIntroSlide = CAVE_BATTLE_INTRO_SLIDE,
},
[BATTLE_ENVIRONMENT_BUILDING] =
{
.naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_TRI_ATTACK : MOVE_SWIFT,
.name = _("Building "),
.naturePower = BUILDING_NATURE_POWER,
.secretPowerAnimation = BUILDING_SECRET_POWER_ANIMATION,
.secretPowerEffect = BUILDING_SECRET_POWER_EFFECT,
.camouflageType = TYPE_NORMAL,
.camouflageType = BUILDING_CAMOUFLAGE_TYPE,
.camouflageBlend = BUILDING_CAMOUFLAGE_BLEND,
.background = ENVIRONMENT_BACKGROUND(Building),
.battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE,
},
[BATTLE_ENVIRONMENT_PLAIN] =
{
#if B_NATURE_POWER_MOVES >= GEN_6
.naturePower = MOVE_TRI_ATTACK,
#elif B_NATURE_POWER_MOVES >= GEN_4
.naturePower = MOVE_EARTHQUAKE,
#else
.naturePower = MOVE_SWIFT,
#endif
#if B_SECRET_POWER_ANIMATION >= GEN_7
.secretPowerAnimation = gBattleAnimMove_SpitUp,
#elif B_SECRET_POWER_ANIMATION >= GEN_6
.secretPowerAnimation = gBattleAnimMove_BodySlam,
#elif B_SECRET_POWER_ANIMATION >= GEN_4
.secretPowerAnimation = gBattleAnimMove_MudSlap,
#else
.secretPowerAnimation = gBattleAnimMove_Slam,
#endif
.secretPowerEffect = (B_SECRET_POWER_EFFECT == GEN_4 || B_SECRET_POWER_EFFECT == GEN_5) ? MOVE_EFFECT_ACC_MINUS_1 : MOVE_EFFECT_PARALYSIS,
.camouflageType = (B_CAMOUFLAGE_TYPES == GEN_4 || B_CAMOUFLAGE_TYPES == GEN_5) ? TYPE_GROUND : TYPE_NORMAL,
.name = _("Plain "),
.naturePower = PLAIN_NATURE_POWER,
.secretPowerAnimation = PLAIN_SECRET_POWER_ANIMATION,
.secretPowerEffect = PLAIN_SECRET_POWER_EFFECT,
.camouflageType = PLAIN_CAMOUFLAGE_TYPE,
.camouflageBlend = PLAIN_CAMOUFLAGE_BLEND,
.background =
{
.tileset = gBattleEnvironmentTiles_Building,
@ -198,12 +250,16 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
.entryTilemap = gBattleEnvironmentAnimTilemap_Building,
.palette = gBattleEnvironmentPalette_Plain,
},
.battleIntroSlide = PLAIN_BATTLE_INTRO_SLIDE,
},
[BATTLE_ENVIRONMENT_FRONTIER] =
{
.name = _("Frontier "),
.secretPowerAnimation = BUILDING_SECRET_POWER_ANIMATION,
.secretPowerEffect = BUILDING_SECRET_POWER_EFFECT,
.camouflageType = BUILDING_CAMOUFLAGE_TYPE,
.camouflageBlend = BUILDING_CAMOUFLAGE_BLEND,
.background =
{
.tileset = gBattleEnvironmentTiles_Building,
@ -212,12 +268,16 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
.entryTilemap = gBattleEnvironmentAnimTilemap_Building,
.palette = gBattleEnvironmentPalette_Frontier,
},
.battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE,
},
[BATTLE_ENVIRONMENT_GYM] =
{
.name = _("Gym "),
.secretPowerAnimation = BUILDING_SECRET_POWER_ANIMATION,
.secretPowerEffect = BUILDING_SECRET_POWER_EFFECT,
.camouflageType = BUILDING_CAMOUFLAGE_TYPE,
.camouflageBlend = BUILDING_CAMOUFLAGE_BLEND,
.background =
{
.tileset = gBattleEnvironmentTiles_Building,
@ -226,12 +286,16 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
.entryTilemap = gBattleEnvironmentAnimTilemap_Building,
.palette = gBattleEnvironmentPalette_BuildingGym,
},
.battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE,
},
[BATTLE_ENVIRONMENT_LEADER] =
{
.name = _("Leader "),
.secretPowerAnimation = BUILDING_SECRET_POWER_ANIMATION,
.secretPowerEffect = BUILDING_SECRET_POWER_EFFECT,
.camouflageType = BUILDING_CAMOUFLAGE_TYPE,
.camouflageBlend = BUILDING_CAMOUFLAGE_BLEND,
.background =
{
.tileset = gBattleEnvironmentTiles_Building,
@ -240,12 +304,16 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
.entryTilemap = gBattleEnvironmentAnimTilemap_Building,
.palette = gBattleEnvironmentPalette_BuildingLeader,
},
.battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE,
},
[BATTLE_ENVIRONMENT_MAGMA] =
{
.name = _("Magma "),
.secretPowerAnimation = BUILDING_SECRET_POWER_ANIMATION,
.secretPowerEffect = BUILDING_SECRET_POWER_EFFECT,
.camouflageType = BUILDING_CAMOUFLAGE_TYPE,
.camouflageBlend = BUILDING_CAMOUFLAGE_BLEND,
.background =
{
.tileset = gBattleEnvironmentTiles_Stadium,
@ -254,12 +322,16 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
.entryTilemap = gBattleEnvironmentAnimTilemap_Building,
.palette = gBattleEnvironmentPalette_StadiumMagma,
},
.battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE,
},
[BATTLE_ENVIRONMENT_AQUA] =
{
.name = _("Aqua "),
.secretPowerAnimation = BUILDING_SECRET_POWER_ANIMATION,
.secretPowerEffect = BUILDING_SECRET_POWER_EFFECT,
.camouflageType = BUILDING_CAMOUFLAGE_TYPE,
.camouflageBlend = BUILDING_CAMOUFLAGE_BLEND,
.background =
{
.tileset = gBattleEnvironmentTiles_Stadium,
@ -268,12 +340,16 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
.entryTilemap = gBattleEnvironmentAnimTilemap_Building,
.palette = gBattleEnvironmentPalette_StadiumAqua,
},
.battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE,
},
[BATTLE_ENVIRONMENT_SIDNEY] =
{
.name = _("Sidney "),
.secretPowerAnimation = BUILDING_SECRET_POWER_ANIMATION,
.secretPowerEffect = BUILDING_SECRET_POWER_EFFECT,
.camouflageType = BUILDING_CAMOUFLAGE_TYPE,
.camouflageBlend = BUILDING_CAMOUFLAGE_BLEND,
.background =
{
.tileset = gBattleEnvironmentTiles_Stadium,
@ -282,12 +358,16 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
.entryTilemap = gBattleEnvironmentAnimTilemap_Building,
.palette = gBattleEnvironmentPalette_StadiumSidney,
},
.battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE,
},
[BATTLE_ENVIRONMENT_PHOEBE] =
{
.name = _("Phoebe "),
.secretPowerAnimation = BUILDING_SECRET_POWER_ANIMATION,
.secretPowerEffect = BUILDING_SECRET_POWER_EFFECT,
.camouflageType = BUILDING_CAMOUFLAGE_TYPE,
.camouflageBlend = BUILDING_CAMOUFLAGE_BLEND,
.background =
{
.tileset = gBattleEnvironmentTiles_Stadium,
@ -296,12 +376,16 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
.entryTilemap = gBattleEnvironmentAnimTilemap_Building,
.palette = gBattleEnvironmentPalette_StadiumPhoebe,
},
.battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE,
},
[BATTLE_ENVIRONMENT_GLACIA] =
{
.name = _("Glacia "),
.secretPowerAnimation = BUILDING_SECRET_POWER_ANIMATION,
.secretPowerEffect = BUILDING_SECRET_POWER_EFFECT,
.camouflageType = BUILDING_CAMOUFLAGE_TYPE,
.camouflageBlend = BUILDING_CAMOUFLAGE_BLEND,
.background =
{
.tileset = gBattleEnvironmentTiles_Stadium,
@ -310,12 +394,16 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
.entryTilemap = gBattleEnvironmentAnimTilemap_Building,
.palette = gBattleEnvironmentPalette_StadiumGlacia,
},
.battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE,
},
[BATTLE_ENVIRONMENT_DRAKE] =
{
.name = _("Drake "),
.secretPowerAnimation = BUILDING_SECRET_POWER_ANIMATION,
.secretPowerEffect = BUILDING_SECRET_POWER_EFFECT,
.camouflageType = BUILDING_CAMOUFLAGE_TYPE,
.camouflageBlend = BUILDING_CAMOUFLAGE_BLEND,
.background =
{
.tileset = gBattleEnvironmentTiles_Stadium,
@ -324,12 +412,16 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
.entryTilemap = gBattleEnvironmentAnimTilemap_Building,
.palette = gBattleEnvironmentPalette_StadiumDrake,
},
.battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE,
},
[BATTLE_ENVIRONMENT_CHAMPION] =
{
.name = _("Champion "),
.secretPowerAnimation = BUILDING_SECRET_POWER_ANIMATION,
.secretPowerEffect = BUILDING_SECRET_POWER_EFFECT,
.camouflageType = BUILDING_CAMOUFLAGE_TYPE,
.camouflageBlend = BUILDING_CAMOUFLAGE_BLEND,
.background =
{
.tileset = gBattleEnvironmentTiles_Stadium,
@ -338,10 +430,17 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
.entryTilemap = gBattleEnvironmentAnimTilemap_Building,
.palette = gBattleEnvironmentPalette_StadiumWallace,
},
.battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE,
},
[BATTLE_ENVIRONMENT_GROUDON] =
{
.name = _("Groudon "),
.naturePower = CAVE_NATURE_POWER,
.secretPowerAnimation = CAVE_SECRET_POWER_ANIMATION,
.secretPowerEffect = CAVE_SECRET_POWER_EFFECT,
.camouflageType = CAVE_CAMOUFLAGE_TYPE,
.camouflageBlend = CAVE_CAMOUFLAGE_BLEND,
.background =
{
.tileset = gBattleEnvironmentTiles_Cave,
@ -350,10 +449,17 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
.entryTilemap = gBattleEnvironmentAnimTilemap_Cave,
.palette = gBattleEnvironmentPalette_Groudon,
},
.battleIntroSlide = CAVE_BATTLE_INTRO_SLIDE,
},
[BATTLE_ENVIRONMENT_KYOGRE] =
{
.name = _("Kyogre "),
.naturePower = CAVE_NATURE_POWER,
.secretPowerAnimation = CAVE_SECRET_POWER_ANIMATION,
.secretPowerEffect = CAVE_SECRET_POWER_EFFECT,
.camouflageType = CAVE_CAMOUFLAGE_TYPE,
.camouflageBlend = CAVE_CAMOUFLAGE_BLEND,
.background =
{
.tileset = gBattleEnvironmentTiles_Water,
@ -362,10 +468,17 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
.entryTilemap = gBattleEnvironmentAnimTilemap_Underwater,
.palette = gBattleEnvironmentPalette_Kyogre,
},
.battleIntroSlide = CAVE_BATTLE_INTRO_SLIDE,
},
[BATTLE_ENVIRONMENT_RAYQUAZA] =
{
.name = _("Rayquaza "),
.naturePower = PLAIN_NATURE_POWER,
.secretPowerAnimation = PLAIN_SECRET_POWER_ANIMATION,
.secretPowerEffect = PLAIN_SECRET_POWER_EFFECT,
.camouflageType = PLAIN_CAMOUFLAGE_TYPE,
.camouflageBlend = PLAIN_CAMOUFLAGE_BLEND,
.background =
{
.tileset = gBattleEnvironmentTiles_Rayquaza,
@ -374,61 +487,75 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
.entryTilemap = gBattleEnvironmentAnimTilemap_Rayquaza,
.palette = gBattleEnvironmentPalette_Rayquaza,
},
.battleIntroSlide = PLAIN_BATTLE_INTRO_SLIDE,
},
[BATTLE_ENVIRONMENT_SOARING] =
{
.name = _("Soaring "),
.naturePower = MOVE_AIR_SLASH,
.secretPowerAnimation = gBattleAnimMove_Gust,
.secretPowerEffect = MOVE_EFFECT_SPD_MINUS_1,
.camouflageType = TYPE_FLYING,
.camouflageBlend = DEFAULT_CAMOUFLAGE_BLEND,
},
[BATTLE_ENVIRONMENT_SKY_PILLAR] =
{
.name = _("Sky Pillar "),
.naturePower = MOVE_AIR_SLASH,
.secretPowerAnimation = gBattleAnimMove_Gust,
.secretPowerEffect = MOVE_EFFECT_SPD_MINUS_1,
.camouflageType = TYPE_FLYING,
.camouflageBlend = DEFAULT_CAMOUFLAGE_BLEND,
},
[BATTLE_ENVIRONMENT_BURIAL_GROUND] =
{
.name = _("Burial Ground "),
.naturePower = MOVE_SHADOW_BALL,
.secretPowerAnimation = gBattleAnimMove_ShadowSneak,
.secretPowerEffect = MOVE_EFFECT_FLINCH,
.camouflageType = TYPE_GHOST,
.camouflageBlend = DEFAULT_CAMOUFLAGE_BLEND,
},
[BATTLE_ENVIRONMENT_PUDDLE] =
{
.name = _("Puddle "),
.naturePower = MOVE_MUD_BOMB,
.secretPowerAnimation = B_SECRET_POWER_ANIMATION >= GEN_5 ? gBattleAnimMove_MudShot : gBattleAnimMove_MudSlap,
.secretPowerEffect = B_SECRET_POWER_EFFECT >= GEN_5 ? MOVE_EFFECT_SPD_MINUS_1 : MOVE_EFFECT_ACC_MINUS_1,
.camouflageType = TYPE_GROUND,
.camouflageBlend = DEFAULT_CAMOUFLAGE_BLEND,
},
[BATTLE_ENVIRONMENT_MARSH] =
{
.name = _("Marsh "),
.naturePower = MOVE_MUD_BOMB,
.secretPowerAnimation = gBattleAnimMove_MudShot,
.secretPowerEffect = MOVE_EFFECT_SPD_MINUS_1,
.camouflageType = TYPE_GROUND,
.camouflageBlend = DEFAULT_CAMOUFLAGE_BLEND,
},
[BATTLE_ENVIRONMENT_SWAMP] =
{
.name = _("Swamp "),
.naturePower = MOVE_MUD_BOMB,
.secretPowerAnimation = gBattleAnimMove_MudShot,
.secretPowerEffect = MOVE_EFFECT_SPD_MINUS_1,
.camouflageType = TYPE_GROUND,
.camouflageBlend = DEFAULT_CAMOUFLAGE_BLEND,
},
[BATTLE_ENVIRONMENT_SNOW] =
{
.name = _("Snow "),
#if B_NATURE_POWER_MOVES >= GEN_7
.naturePower = MOVE_ICE_BEAM,
#elif B_NATURE_POWER_MOVES >= GEN_6
#elif B_NATURE_POWER_MOVES == GEN_6
.naturePower = MOVE_FROST_BREATH,
#else
.naturePower = MOVE_BLIZZARD,
@ -436,46 +563,57 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
.secretPowerAnimation = B_SECRET_POWER_ANIMATION >= GEN_7 ? gBattleAnimMove_IceShard : gBattleAnimMove_Avalanche,
.secretPowerEffect = MOVE_EFFECT_FREEZE_OR_FROSTBITE,
.camouflageType = TYPE_ICE,
.camouflageBlend = DEFAULT_CAMOUFLAGE_BLEND,
},
[BATTLE_ENVIRONMENT_ICE] =
{
.name = _("Ice "),
.naturePower = MOVE_ICE_BEAM,
.secretPowerAnimation = gBattleAnimMove_IceShard,
.secretPowerEffect = MOVE_EFFECT_FREEZE_OR_FROSTBITE,
.camouflageType = TYPE_ICE,
.camouflageBlend = DEFAULT_CAMOUFLAGE_BLEND,
},
[BATTLE_ENVIRONMENT_VOLCANO] =
{
.name = _("Volcano "),
.naturePower = MOVE_LAVA_PLUME,
.secretPowerAnimation = gBattleAnimMove_Incinerate,
.secretPowerEffect = MOVE_EFFECT_BURN,
.camouflageType = TYPE_FIRE,
.camouflageBlend = DEFAULT_CAMOUFLAGE_BLEND,
},
[BATTLE_ENVIRONMENT_DISTORTION_WORLD] =
{
.name = _("Distortion World "),
.naturePower = MOVE_TRI_ATTACK,
.secretPowerAnimation = gBattleAnimMove_Pound,
.secretPowerEffect = MOVE_EFFECT_PARALYSIS,
.camouflageType = TYPE_NORMAL,
.camouflageBlend = DEFAULT_CAMOUFLAGE_BLEND,
},
[BATTLE_ENVIRONMENT_SPACE] =
{
.name = _("Space "),
.naturePower = MOVE_DRACO_METEOR,
.secretPowerAnimation = gBattleAnimMove_Swift,
.secretPowerEffect = MOVE_EFFECT_FLINCH,
.camouflageType = TYPE_DRAGON,
.camouflageBlend = DEFAULT_CAMOUFLAGE_BLEND,
},
[BATTLE_ENVIRONMENT_ULTRA_SPACE] =
{
.name = _("Ultra Space "),
.naturePower = MOVE_PSYSHOCK,
.secretPowerAnimation = gBattleAnimMove_Psywave,
.secretPowerEffect = MOVE_EFFECT_DEF_MINUS_1,
.camouflageType = TYPE_PSYCHIC,
.camouflageBlend = DEFAULT_CAMOUFLAGE_BLEND,
},
};

View File

@ -338,33 +338,6 @@ const u8 gFrontAnimNames[][34] =
[ANIM_SHAKE_GLOW_PURPLE_SLOW] = _("SHAKE GLOW PURPLE SLOW"),
};
const u8 gBattleEnvironmentBackgroundNames[][17] =
{
[BATTLE_ENVIRONMENT_GRASS] = _("GRASS "),
[BATTLE_ENVIRONMENT_LONG_GRASS] = _("LONG GRASS "),
[BATTLE_ENVIRONMENT_SAND] = _("SAND "),
[BATTLE_ENVIRONMENT_UNDERWATER] = _("UNDERWATER "),
[BATTLE_ENVIRONMENT_WATER] = _("WATER "),
[BATTLE_ENVIRONMENT_POND] = _("POND "),
[BATTLE_ENVIRONMENT_MOUNTAIN] = _("MOUNTAIN "),
[BATTLE_ENVIRONMENT_CAVE] = _("CAVE "),
[BATTLE_ENVIRONMENT_BUILDING] = _("BUILDING "),
[BATTLE_ENVIRONMENT_PLAIN] = _("PLAIN "),
[BATTLE_ENVIRONMENT_FRONTIER] = _("FRONTIER "),
[BATTLE_ENVIRONMENT_GYM] = _("GYM "),
[BATTLE_ENVIRONMENT_LEADER] = _("LEADER "),
[BATTLE_ENVIRONMENT_MAGMA] = _("MAGMA "),
[BATTLE_ENVIRONMENT_AQUA] = _("AQUA "),
[BATTLE_ENVIRONMENT_SIDNEY] = _("SIDNEY "),
[BATTLE_ENVIRONMENT_PHOEBE] = _("PHOEBE "),
[BATTLE_ENVIRONMENT_GLACIA] = _("GLACIA "),
[BATTLE_ENVIRONMENT_DRAKE] = _("DRAKE "),
[BATTLE_ENVIRONMENT_CHAMPION] = _("CHAMPION "),
[BATTLE_ENVIRONMENT_GROUDON] = _("GROUDON "),
[BATTLE_ENVIRONMENT_KYOGRE] = _("KYOGRE "),
[BATTLE_ENVIRONMENT_RAYQUAZA] = _("RAYQUAZA "),
};
const u8 sShadowSizeLabels[][4] =
{
[SHADOW_SIZE_S] = _(" S"),
@ -902,7 +875,7 @@ static void PrintBattleBgName(u8 taskId)
u8 fontId = 0;
u8 text[30+1];
StringCopy(text, gBattleEnvironmentBackgroundNames[data->battleEnvironment]);
StringCopy(text, gBattleEnvironmentInfo[data->battleEnvironment].name);
AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, text, 0, 24, 0, NULL);
}
@ -910,30 +883,18 @@ static void UpdateBattleBg(u8 taskId, bool8 increment)
{
struct PokemonSpriteVisualizer *data = GetStructPtr(taskId);
if (data->battleEnvironment == BATTLE_ENVIRONMENT_GRASS)
{
if (increment)
data->battleEnvironment += 1;
else
data->battleEnvironment = BATTLE_ENVIRONMENT_RAYQUAZA;
}
else if (data->battleEnvironment == BATTLE_ENVIRONMENT_RAYQUAZA)
{
if (increment)
data->battleEnvironment = BATTLE_ENVIRONMENT_GRASS;
else
data->battleEnvironment -= 1;
if (increment) {
data->battleEnvironment = (data->battleEnvironment + 1) % (BATTLE_ENVIRONMENT_RAYQUAZA + 1); // Can use BATTLE_ENVIRONMENT_COUNT once the remaining environments have sprites
}
else
{
if (increment)
data->battleEnvironment += 1;
if (data->battleEnvironment == BATTLE_ENVIRONMENT_GRASS)
data->battleEnvironment = BATTLE_ENVIRONMENT_RAYQUAZA;
else
data->battleEnvironment -= 1;
}
PrintBattleBgName(taskId);
LoadBattleBg(data->battleEnvironment);
}
@ -1755,7 +1716,7 @@ static void HandleInput_PokemonSpriteVisualizer(u8 taskId)
SetArrowInvisibility(data);
PrintInstructionsOnWindow(data);
UpdateMonAnimNames(taskId);
if (data->followerspriteId != 0)
gSprites[data->followerspriteId].invisible = FALSE;
}