Simplified sprite visualizer's battle backgrounds (#8775)

This commit is contained in:
Frank DeBlasio 2026-01-03 16:59:34 -05:00 committed by GitHub
parent 8cd51b94b0
commit 2fba6a4da4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 38 additions and 159 deletions

View File

@ -34,20 +34,4 @@
#define WIN_FOOTPRINT 4
#define WIN_END 5
//Battle backgrounds
#define MAP_BATTLE_SCENE_NORMAL 0
#define MAP_BATTLE_SCENE_GYM 1
#define MAP_BATTLE_SCENE_MAGMA 2
#define MAP_BATTLE_SCENE_AQUA 3
#define MAP_BATTLE_SCENE_SIDNEY 4
#define MAP_BATTLE_SCENE_PHOEBE 5
#define MAP_BATTLE_SCENE_GLACIA 6
#define MAP_BATTLE_SCENE_DRAKE 7
#define MAP_BATTLE_SCENE_FRONTIER 8
#define MAP_BATTLE_SCENE_LEADER 9
#define MAP_BATTLE_SCENE_WALLACE 10
#define MAP_BATTLE_SCENE_GROUDON 11
#define MAP_BATTLE_SCENE_KYOGRE 12
#define MAP_BATTLE_SCENE_RAYQUAZA 13
#endif // GUARD_CONSTANTS_POKEMON_SPRITE_VISUALIZER_H

View File

@ -80,7 +80,6 @@ struct PokemonSpriteVisualizer
u8 animIdBack;
u8 animIdFront;
u8 battleBgType;
u8 battleEnvironment;
u8 currentSubmenu;
u8 submenuYpos[3];

View File

@ -338,36 +338,32 @@ const u8 gFrontAnimNames[][34] =
[ANIM_SHAKE_GLOW_WHITE_SLOW] = _("SHAKE GLOW WHITE SLOW"),
[ANIM_SHAKE_GLOW_PURPLE_SLOW] = _("SHAKE GLOW PURPLE SLOW"),
};
const u8 gBattleBackgroundNames[][30] =
{
[MAP_BATTLE_SCENE_NORMAL] = _("NORMAL "),
[MAP_BATTLE_SCENE_GYM] = _("GYM "),
[MAP_BATTLE_SCENE_MAGMA] = _("MAGMA "),
[MAP_BATTLE_SCENE_AQUA] = _("AQUA "),
[MAP_BATTLE_SCENE_SIDNEY] = _("SIDNEY "),
[MAP_BATTLE_SCENE_PHOEBE] = _("PHOEBE "),
[MAP_BATTLE_SCENE_GLACIA] = _("GLACIA "),
[MAP_BATTLE_SCENE_DRAKE] = _("DRAKE "),
[MAP_BATTLE_SCENE_FRONTIER] = _("FRONTIER "),
[MAP_BATTLE_SCENE_LEADER] = _("LEADER "),
[MAP_BATTLE_SCENE_WALLACE] = _("WALLACE "),
[MAP_BATTLE_SCENE_GROUDON] = _("GROUDON "),
[MAP_BATTLE_SCENE_KYOGRE] = _("KYOGRE "),
[MAP_BATTLE_SCENE_RAYQUAZA] = _("RAYQUAZA "),
};
const u8 gBattleBackgroundTerrainNames[][26] =
const u8 gBattleEnvironmentBackgroundNames[][17] =
{
[BATTLE_ENVIRONMENT_GRASS] = _("NORMAL - GRASS "),
[BATTLE_ENVIRONMENT_LONG_GRASS] = _("NORMAL - LONG GRASS "),
[BATTLE_ENVIRONMENT_SAND] = _("NORMAL - SAND "),
[BATTLE_ENVIRONMENT_UNDERWATER] = _("NORMAL - UNDERWATER "),
[BATTLE_ENVIRONMENT_WATER] = _("NORMAL - WATER "),
[BATTLE_ENVIRONMENT_POND] = _("NORMAL - POND "),
[BATTLE_ENVIRONMENT_MOUNTAIN] = _("NORMAL - MOUNTAIN "),
[BATTLE_ENVIRONMENT_CAVE] = _("NORMAL - CAVE "),
[BATTLE_ENVIRONMENT_BUILDING] = _("NORMAL - BUILDING "),
[BATTLE_ENVIRONMENT_PLAIN] = _("NORMAL - PLAIN "),
[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] =
@ -894,82 +890,11 @@ static void LoadAndCreateEnemyShadowSpriteCustom(struct PokemonSpriteVisualizer
}
//Battle background functions
static void LoadBattleBg(u8 battleBgType, enum BattleEnvironments battleEnvironment)
static void LoadBattleBg(enum BattleEnvironments battleEnvironment)
{
switch (battleBgType)
{
default:
case MAP_BATTLE_SCENE_NORMAL:
DecompressDataWithHeaderVram(gBattleEnvironmentInfo[battleEnvironment].background.tileset, (void*)(BG_CHAR_ADDR(2)));
DecompressDataWithHeaderVram(gBattleEnvironmentInfo[battleEnvironment].background.tilemap, (void*)(BG_SCREEN_ADDR(26)));
LoadPalette(gBattleEnvironmentInfo[battleEnvironment].background.palette, 0x20, 0x60);
break;
case MAP_BATTLE_SCENE_GYM:
DecompressDataWithHeaderVram(gBattleEnvironmentTiles_Building, (void*)(BG_CHAR_ADDR(2)));
DecompressDataWithHeaderVram(gBattleEnvironmentTilemap_Building, (void*)(BG_SCREEN_ADDR(26)));
LoadPalette(gBattleEnvironmentPalette_BuildingGym, 0x20, 0x60);
break;
case MAP_BATTLE_SCENE_MAGMA:
DecompressDataWithHeaderVram(gBattleEnvironmentTiles_Stadium, (void*)(BG_CHAR_ADDR(2)));
DecompressDataWithHeaderVram(gBattleEnvironmentTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26)));
LoadPalette(gBattleEnvironmentPalette_StadiumMagma, 0x20, 0x60);
break;
case MAP_BATTLE_SCENE_AQUA:
DecompressDataWithHeaderVram(gBattleEnvironmentTiles_Stadium, (void*)(BG_CHAR_ADDR(2)));
DecompressDataWithHeaderVram(gBattleEnvironmentTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26)));
LoadPalette(gBattleEnvironmentPalette_StadiumAqua, 0x20, 0x60);
break;
case MAP_BATTLE_SCENE_SIDNEY:
DecompressDataWithHeaderVram(gBattleEnvironmentTiles_Stadium, (void*)(BG_CHAR_ADDR(2)));
DecompressDataWithHeaderVram(gBattleEnvironmentTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26)));
LoadPalette(gBattleEnvironmentPalette_StadiumSidney, 0x20, 0x60);
break;
case MAP_BATTLE_SCENE_PHOEBE:
DecompressDataWithHeaderVram(gBattleEnvironmentTiles_Stadium, (void*)(BG_CHAR_ADDR(2)));
DecompressDataWithHeaderVram(gBattleEnvironmentTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26)));
LoadPalette(gBattleEnvironmentPalette_StadiumPhoebe, 0x20, 0x60);
break;
case MAP_BATTLE_SCENE_GLACIA:
DecompressDataWithHeaderVram(gBattleEnvironmentTiles_Stadium, (void*)(BG_CHAR_ADDR(2)));
DecompressDataWithHeaderVram(gBattleEnvironmentTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26)));
LoadPalette(gBattleEnvironmentPalette_StadiumGlacia, 0x20, 0x60);
break;
case MAP_BATTLE_SCENE_DRAKE:
DecompressDataWithHeaderVram(gBattleEnvironmentTiles_Stadium, (void*)(BG_CHAR_ADDR(2)));
DecompressDataWithHeaderVram(gBattleEnvironmentTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26)));
LoadPalette(gBattleEnvironmentPalette_StadiumDrake, 0x20, 0x60);
break;
case MAP_BATTLE_SCENE_FRONTIER:
DecompressDataWithHeaderVram(gBattleEnvironmentTiles_Building, (void*)(BG_CHAR_ADDR(2)));
DecompressDataWithHeaderVram(gBattleEnvironmentTilemap_Building, (void*)(BG_SCREEN_ADDR(26)));
LoadPalette(gBattleEnvironmentPalette_Frontier, 0x20, 0x60);
break;
case MAP_BATTLE_SCENE_LEADER:
DecompressDataWithHeaderVram(gBattleEnvironmentTiles_Building, (void*)(BG_CHAR_ADDR(2)));
DecompressDataWithHeaderVram(gBattleEnvironmentTilemap_Building, (void*)(BG_SCREEN_ADDR(26)));
LoadPalette(gBattleEnvironmentPalette_BuildingLeader, 0x20, 0x60);
break;
case MAP_BATTLE_SCENE_WALLACE:
DecompressDataWithHeaderVram(gBattleEnvironmentTiles_Stadium, (void*)(BG_CHAR_ADDR(2)));
DecompressDataWithHeaderVram(gBattleEnvironmentTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26)));
LoadPalette(gBattleEnvironmentPalette_StadiumWallace, 0x20, 0x60);
break;
case MAP_BATTLE_SCENE_GROUDON:
DecompressDataWithHeaderVram(gBattleEnvironmentTiles_Cave, (void*)(BG_CHAR_ADDR(2)));
DecompressDataWithHeaderVram(gBattleEnvironmentTilemap_Cave, (void*)(BG_SCREEN_ADDR(26)));
LoadPalette(gBattleEnvironmentPalette_Groudon, 0x20, 0x60);
break;
case MAP_BATTLE_SCENE_KYOGRE:
DecompressDataWithHeaderVram(gBattleEnvironmentTiles_Water, (void*)(BG_CHAR_ADDR(2)));
DecompressDataWithHeaderVram(gBattleEnvironmentTilemap_Water, (void*)(BG_SCREEN_ADDR(26)));
LoadPalette(gBattleEnvironmentPalette_Kyogre, 0x20, 0x60);
break;
case MAP_BATTLE_SCENE_RAYQUAZA:
DecompressDataWithHeaderVram(gBattleEnvironmentTiles_Rayquaza, (void*)(BG_CHAR_ADDR(2)));
DecompressDataWithHeaderVram(gBattleEnvironmentTilemap_Rayquaza, (void*)(BG_SCREEN_ADDR(26)));
LoadPalette(gBattleEnvironmentPalette_Rayquaza, 0x20, 0x60);
break;
}
DecompressDataWithHeaderVram(gBattleEnvironmentInfo[battleEnvironment].background.tileset, (void *)(BG_CHAR_ADDR(2)));
DecompressDataWithHeaderVram(gBattleEnvironmentInfo[battleEnvironment].background.tilemap, (void *)(BG_SCREEN_ADDR(26)));
LoadPalette(gBattleEnvironmentInfo[battleEnvironment].background.palette, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
}
static void PrintBattleBgName(u8 taskId)
@ -978,10 +903,7 @@ static void PrintBattleBgName(u8 taskId)
u8 fontId = 0;
u8 text[30+1];
if (data->battleBgType == 0)
StringCopy(text, gBattleBackgroundTerrainNames[data->battleEnvironment]);
else
StringCopy(text, gBattleBackgroundNames[data->battleBgType]);
StringCopy(text, gBattleEnvironmentBackgroundNames[data->battleEnvironment]);
AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, text, 0, 24, 0, NULL);
}
@ -989,54 +911,31 @@ static void UpdateBattleBg(u8 taskId, bool8 increment)
{
struct PokemonSpriteVisualizer *data = GetStructPtr(taskId);
if (data->battleBgType == MAP_BATTLE_SCENE_NORMAL)
if (data->battleEnvironment == BATTLE_ENVIRONMENT_GRASS)
{
if (increment)
{
if (data->battleEnvironment == BATTLE_ENVIRONMENT_PLAIN)
data->battleBgType += 1;
else
data->battleEnvironment += 1;
}
data->battleEnvironment += 1;
else
{
if (data->battleEnvironment == BATTLE_ENVIRONMENT_GRASS)
data->battleBgType = MAP_BATTLE_SCENE_RAYQUAZA;
else
data->battleEnvironment -= 1;
}
data->battleEnvironment = BATTLE_ENVIRONMENT_RAYQUAZA;
}
else if (data->battleBgType == MAP_BATTLE_SCENE_GYM)
else if (data->battleEnvironment == BATTLE_ENVIRONMENT_RAYQUAZA)
{
if (increment)
data->battleBgType += 1;
else
{
data->battleBgType = MAP_BATTLE_SCENE_NORMAL;
data->battleEnvironment = BATTLE_ENVIRONMENT_PLAIN;
}
}
else if (data->battleBgType == MAP_BATTLE_SCENE_RAYQUAZA)
{
if (increment)
{
data->battleBgType = MAP_BATTLE_SCENE_NORMAL;
data->battleEnvironment = BATTLE_ENVIRONMENT_GRASS;
}
else
data->battleBgType -= 1;
data->battleEnvironment -= 1;
}
else
{
if (increment)
data->battleBgType += 1;
data->battleEnvironment += 1;
else
data->battleBgType -= 1;
data->battleEnvironment -= 1;
}
PrintBattleBgName(taskId);
LoadBattleBg(data->battleBgType, data->battleEnvironment);
LoadBattleBg(data->battleEnvironment);
}
// *******************************
@ -1219,7 +1118,7 @@ void CB2_Pokemon_Sprite_Visualizer(void)
FillBgTilemapBufferRect(0, 0, 0, 0, 32, 20, 15);
InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates));
LoadBattleBg(0, BATTLE_ENVIRONMENT_GRASS);
LoadBattleBg(BATTLE_ENVIRONMENT_GRASS);
gMain.state++;
break;
@ -1320,9 +1219,6 @@ void CB2_Pokemon_Sprite_Visualizer(void)
data->animIdFront = gSpeciesInfo[data->currentmonId].frontAnimId;
UpdateMonAnimNames(taskId);
//BattleNg Name
PrintBattleBgName(taskId);
//Footprint
DrawFootprint(WIN_FOOTPRINT, species);
CopyWindowToVram(WIN_FOOTPRINT, COPYWIN_GFX);