diff --git a/include/battle_bg.h b/include/battle_bg.h index 1b32c7395d..fe9110aedb 100644 --- a/include/battle_bg.h +++ b/include/battle_bg.h @@ -5,9 +5,12 @@ struct BattleBackground { const void *tileset; const void *tilemap; - const void *entryTileset; - const void *entryTilemap; - const void *palette; +}; + +struct BattleBackgroundEntry +{ + const void *tileset; + const void *tilemap; }; void BattleInitBgsAndWindows(void); diff --git a/include/battle_environment.h b/include/battle_environment.h index 450fc5d51c..a277e7758f 100644 --- a/include/battle_environment.h +++ b/include/battle_environment.h @@ -13,7 +13,9 @@ struct BattleEnvironment u16 secretPowerEffect; enum Type camouflageType; u16 camouflageBlend; + struct BattleBackgroundEntry entry; struct BattleBackground background; + const void *palette; TaskFunc battleIntroSlide; }; diff --git a/src/battle_bg.c b/src/battle_bg.c index 13e5b04fff..73640d5f76 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -629,7 +629,7 @@ static void LoadBattleEnvironmentGfx(u16 environment) // Copy to bg3 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); + LoadPalette(gBattleEnvironmentInfo[environment].palette, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); } // Loads the entry associated with the battle environment. @@ -639,8 +639,8 @@ static void LoadBattleEnvironmentEntryGfx(u16 environment) if (environment >= NELEMS(gBattleEnvironmentInfo)) environment = BATTLE_ENVIRONMENT_PLAIN; // Copy to bg1 - DecompressDataWithHeaderVram(gBattleEnvironmentInfo[environment].background.entryTileset, (void *)BG_CHAR_ADDR(1)); - DecompressDataWithHeaderVram(gBattleEnvironmentInfo[environment].background.entryTilemap, (void *)BG_SCREEN_ADDR(28)); + DecompressDataWithHeaderVram(gBattleEnvironmentInfo[environment].entry.tileset, (void *)BG_CHAR_ADDR(1)); + DecompressDataWithHeaderVram(gBattleEnvironmentInfo[environment].entry.tilemap, (void *)BG_SCREEN_ADDR(28)); } static u8 GetBattleEnvironmentOverride(void) @@ -1090,7 +1090,7 @@ bool8 LoadChosenBattleElement(u8 caseId) DecompressDataWithHeaderVram(gBattleEnvironmentInfo[GetBattleEnvironmentOverride()].background.tilemap, (void *)(BG_SCREEN_ADDR(26))); break; case 5: - LoadPalette(gBattleEnvironmentInfo[GetBattleEnvironmentOverride()].background.palette, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LoadPalette(gBattleEnvironmentInfo[GetBattleEnvironmentOverride()].palette, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case 6: LoadBattleMenuWindowGfx(); diff --git a/src/battle_intro.c b/src/battle_intro.c index 50943c79ff..76826f224d 100644 --- a/src/battle_intro.c +++ b/src/battle_intro.c @@ -105,11 +105,6 @@ void HandleIntroSlide(u8 environment) { taskId = CreateTask(BattleIntroSlide3, 0); } - else if (GetMonData(&gEnemyParty[0], MON_DATA_SPECIES) == SPECIES_KYOGRE) - { - environment = BATTLE_ENVIRONMENT_UNDERWATER; - taskId = CreateTask(BattleIntroSlide2, 0); - } else { if (environment >= NELEMS(gBattleEnvironmentInfo) @@ -289,6 +284,7 @@ void BattleIntroSlide2(u8 taskId) gBattle_BG1_X += 8; break; case BATTLE_ENVIRONMENT_UNDERWATER: + case BATTLE_ENVIRONMENT_KYOGRE: gBattle_BG1_X += 6; break; } diff --git a/src/battle_main.c b/src/battle_main.c index cb169aed5f..c5278cf3d0 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -515,9 +515,7 @@ static void CB2_InitBattleInternal(void) gBattle_BG3_Y = 0; if (!DEBUG_OVERWORLD_MENU || (DEBUG_OVERWORLD_MENU && !gIsDebugBattle)) - { gBattleEnvironment = BattleSetup_GetEnvironmentId(); - } if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) gBattleEnvironment = BATTLE_ENVIRONMENT_BUILDING; if (TestRunner_Battle_GetForcedEnvironment()) @@ -5955,6 +5953,10 @@ enum Type GetDynamicMoveType(struct Pokemon *mon, enum Move move, enum BattlerId if (species == SPECIES_TERAPAGOS_STELLAR) return TYPE_STELLAR; break; + case EFFECT_NATURE_POWER: + if (state == MON_IN_BATTLE) + return GetMoveType(GetNaturePowerMove(battler)); + break; default: break; } diff --git a/src/data/battle_environment.h b/src/data/battle_environment.h index 1373d5a8e3..3733ac8237 100644 --- a/src/data/battle_environment.h +++ b/src/data/battle_environment.h @@ -1,50 +1,15 @@ #include "battle_anim_scripts.h" -const u32 gBattleEnvironmentTiles_TallGrass[] = INCBIN_U32("graphics/battle_environment/tall_grass/tiles.4bpp.smol"); -const u16 gBattleEnvironmentPalette_TallGrass[] = INCBIN_U16("graphics/battle_environment/tall_grass/palette.gbapal"); -const u32 gBattleEnvironmentTilemap_TallGrass[] = INCBIN_U32("graphics/battle_environment/tall_grass/map.bin.smolTM"); +#define ENVIRONMENT_BACKGROUND(Background) \ +{ \ + .tileset = gBattleEnvironmentTiles_##Background, \ + .tilemap = gBattleEnvironmentTilemap_##Background, \ +} -const u32 gBattleEnvironmentTiles_LongGrass[] = INCBIN_U32("graphics/battle_environment/long_grass/tiles.4bpp.smol"); -const u16 gBattleEnvironmentPalette_LongGrass[] = INCBIN_U16("graphics/battle_environment/long_grass/palette.gbapal"); -const u32 gBattleEnvironmentTilemap_LongGrass[] = INCBIN_U32("graphics/battle_environment/long_grass/map.bin.smolTM"); - -const u32 gBattleEnvironmentTiles_Sand[] = INCBIN_U32("graphics/battle_environment/sand/tiles.4bpp.smol"); -const u16 gBattleEnvironmentPalette_Sand[] = INCBIN_U16("graphics/battle_environment/sand/palette.gbapal"); -const u32 gBattleEnvironmentTilemap_Sand[] = INCBIN_U32("graphics/battle_environment/sand/map.bin.smolTM"); - -const u32 gBattleEnvironmentTiles_Underwater[] = INCBIN_U32("graphics/battle_environment/underwater/tiles.4bpp.smol"); -const u16 gBattleEnvironmentPalette_Underwater[] = INCBIN_U16("graphics/battle_environment/underwater/palette.gbapal"); -const u32 gBattleEnvironmentTilemap_Underwater[] = INCBIN_U32("graphics/battle_environment/underwater/map.bin.smolTM"); - -const u32 gBattleEnvironmentTiles_Water[] = INCBIN_U32("graphics/battle_environment/water/tiles.4bpp.smol"); -const u16 gBattleEnvironmentPalette_Water[] = INCBIN_U16("graphics/battle_environment/water/palette.gbapal"); -const u32 gBattleEnvironmentTilemap_Water[] = INCBIN_U32("graphics/battle_environment/water/map.bin.smolTM"); - -const u32 gBattleEnvironmentTiles_PondWater[] = INCBIN_U32("graphics/battle_environment/pond_water/tiles.4bpp.smol"); -const u16 gBattleEnvironmentPalette_PondWater[] = INCBIN_U16("graphics/battle_environment/pond_water/palette.gbapal"); -const u32 gBattleEnvironmentTilemap_PondWater[] = INCBIN_U32("graphics/battle_environment/pond_water/map.bin.smolTM"); - -const u32 gBattleEnvironmentTiles_Rock[] = INCBIN_U32("graphics/battle_environment/rock/tiles.4bpp.smol"); -const u16 gBattleEnvironmentPalette_Rock[] = INCBIN_U16("graphics/battle_environment/rock/palette.gbapal"); -const u32 gBattleEnvironmentTilemap_Rock[] = INCBIN_U32("graphics/battle_environment/rock/map.bin.smolTM"); - -const u32 gBattleEnvironmentTiles_Cave[] = INCBIN_U32("graphics/battle_environment/cave/tiles.4bpp.smol"); -const u16 gBattleEnvironmentPalette_Cave[] = INCBIN_U16("graphics/battle_environment/cave/palette.gbapal"); -const u32 gBattleEnvironmentTilemap_Cave[] = INCBIN_U32("graphics/battle_environment/cave/map.bin.smolTM"); - -const u16 gBattleEnvironmentPalette_Plain[] = INCBIN_U16("graphics/battle_environment/plain/palette.gbapal"); - -const u32 gBattleEnvironmentTiles_Building[] = INCBIN_U32("graphics/battle_environment/building/tiles.4bpp.smol"); -const u16 gBattleEnvironmentPalette_Frontier[] = INCBIN_U16("graphics/battle_environment/stadium/battle_frontier.gbapal"); // this is also used for link battles -const u32 gBattleEnvironmentTilemap_Building[] = INCBIN_U32("graphics/battle_environment/building/map.bin.smolTM"); - -#define ENVIRONMENT_BACKGROUND(background) \ -{ \ - .tileset = gBattleEnvironmentTiles_##background, \ - .tilemap = gBattleEnvironmentTilemap_##background, \ - .entryTileset = gBattleEnvironmentAnimTiles_##background, \ - .entryTilemap = gBattleEnvironmentAnimTilemap_##background, \ - .palette = gBattleEnvironmentPalette_##background, \ +#define ENVIRONMENT_ENTRY(Background) \ +{ \ + .tileset = gBattleEnvironmentAnimTiles_##Background, \ + .tilemap = gBattleEnvironmentAnimTilemap_##Background, \ } #define DEFAULT_CAMOUFLAGE_BLEND RGB_WHITE @@ -116,7 +81,9 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT] .secretPowerEffect = B_SECRET_POWER_EFFECT >= GEN_4 ? MOVE_EFFECT_SLEEP : MOVE_EFFECT_POISON, .camouflageType = TYPE_GRASS, .camouflageBlend = RGB(12, 24, 2), + .entry = ENVIRONMENT_ENTRY(TallGrass), .background = ENVIRONMENT_BACKGROUND(TallGrass), + .palette = gBattleEnvironmentPalette_TallGrass, .battleIntroSlide = BattleIntroSlide1, }, @@ -134,7 +101,9 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT] .secretPowerEffect = MOVE_EFFECT_SLEEP, .camouflageType = TYPE_GRASS, .camouflageBlend = RGB(0, 15, 2), + .entry = ENVIRONMENT_ENTRY(LongGrass), .background = ENVIRONMENT_BACKGROUND(LongGrass), + .palette = gBattleEnvironmentPalette_LongGrass, .battleIntroSlide = BattleIntroSlide1, }, @@ -146,7 +115,9 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT] .secretPowerEffect = MOVE_EFFECT_ACC_MINUS_1, .camouflageType = TYPE_GROUND, .camouflageBlend = RGB(30, 24, 11), + .entry = ENVIRONMENT_ENTRY(Sand), .background = ENVIRONMENT_BACKGROUND(Sand), + .palette = gBattleEnvironmentPalette_Sand, .battleIntroSlide = BattleIntroSlide2, }, @@ -158,7 +129,9 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT] .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), + .entry = ENVIRONMENT_ENTRY(Underwater), .background = ENVIRONMENT_BACKGROUND(Underwater), + .palette = gBattleEnvironmentPalette_Underwater, .battleIntroSlide = BattleIntroSlide2, }, @@ -170,7 +143,9 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT] .secretPowerEffect = MOVE_EFFECT_ATK_MINUS_1, .camouflageType = TYPE_WATER, .camouflageBlend = RGB(11, 22, 31), + .entry = ENVIRONMENT_ENTRY(Water), .background = ENVIRONMENT_BACKGROUND(Water), + .palette = gBattleEnvironmentPalette_Water, .battleIntroSlide = BattleIntroSlide2, }, @@ -182,7 +157,9 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT] .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), + .entry = ENVIRONMENT_ENTRY(PondWater), .background = ENVIRONMENT_BACKGROUND(PondWater), + .palette = gBattleEnvironmentPalette_PondWater, .battleIntroSlide = BattleIntroSlide1, }, @@ -206,7 +183,9 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT] #endif .camouflageType = B_CAMOUFLAGE_TYPES >= GEN_5 ? TYPE_GROUND : TYPE_ROCK, .camouflageBlend = RGB(22, 16, 10), + .entry = ENVIRONMENT_ENTRY(Rock), .background = ENVIRONMENT_BACKGROUND(Rock), + .palette = gBattleEnvironmentPalette_Rock, .battleIntroSlide = BattleIntroSlide1, }, @@ -218,7 +197,9 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT] .secretPowerEffect = CAVE_SECRET_POWER_EFFECT, .camouflageType = CAVE_CAMOUFLAGE_TYPE, .camouflageBlend = CAVE_CAMOUFLAGE_BLEND, + .entry = ENVIRONMENT_ENTRY(Cave), .background = ENVIRONMENT_BACKGROUND(Cave), + .palette = gBattleEnvironmentPalette_Cave, .battleIntroSlide = CAVE_BATTLE_INTRO_SLIDE, }, @@ -230,7 +211,9 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT] .secretPowerEffect = BUILDING_SECRET_POWER_EFFECT, .camouflageType = BUILDING_CAMOUFLAGE_TYPE, .camouflageBlend = BUILDING_CAMOUFLAGE_BLEND, + .entry = ENVIRONMENT_ENTRY(Building), .background = ENVIRONMENT_BACKGROUND(Building), + .palette = gBattleEnvironmentPalette_Building, .battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE, }, @@ -242,14 +225,9 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT] .secretPowerEffect = PLAIN_SECRET_POWER_EFFECT, .camouflageType = PLAIN_CAMOUFLAGE_TYPE, .camouflageBlend = PLAIN_CAMOUFLAGE_BLEND, - .background = - { - .tileset = gBattleEnvironmentTiles_Building, - .tilemap = gBattleEnvironmentTilemap_Building, - .entryTileset = gBattleEnvironmentAnimTiles_Building, - .entryTilemap = gBattleEnvironmentAnimTilemap_Building, - .palette = gBattleEnvironmentPalette_Plain, - }, + .entry = ENVIRONMENT_ENTRY(Building), + .background = ENVIRONMENT_BACKGROUND(Building), + .palette = gBattleEnvironmentPalette_Plain, .battleIntroSlide = PLAIN_BATTLE_INTRO_SLIDE, }, @@ -260,14 +238,9 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT] .secretPowerEffect = BUILDING_SECRET_POWER_EFFECT, .camouflageType = BUILDING_CAMOUFLAGE_TYPE, .camouflageBlend = BUILDING_CAMOUFLAGE_BLEND, - .background = - { - .tileset = gBattleEnvironmentTiles_Building, - .tilemap = gBattleEnvironmentTilemap_Building, - .entryTileset = gBattleEnvironmentAnimTiles_Building, - .entryTilemap = gBattleEnvironmentAnimTilemap_Building, - .palette = gBattleEnvironmentPalette_Frontier, - }, + .entry = ENVIRONMENT_ENTRY(Building), + .background = ENVIRONMENT_BACKGROUND(Building), + .palette = gBattleEnvironmentPalette_Frontier, .battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE, }, @@ -278,14 +251,9 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT] .secretPowerEffect = BUILDING_SECRET_POWER_EFFECT, .camouflageType = BUILDING_CAMOUFLAGE_TYPE, .camouflageBlend = BUILDING_CAMOUFLAGE_BLEND, - .background = - { - .tileset = gBattleEnvironmentTiles_Building, - .tilemap = gBattleEnvironmentTilemap_Building, - .entryTileset = gBattleEnvironmentAnimTiles_Building, - .entryTilemap = gBattleEnvironmentAnimTilemap_Building, - .palette = gBattleEnvironmentPalette_BuildingGym, - }, + .entry = ENVIRONMENT_ENTRY(Building), + .background = ENVIRONMENT_BACKGROUND(Building), + .palette = gBattleEnvironmentPalette_BuildingGym, .battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE, }, @@ -296,14 +264,9 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT] .secretPowerEffect = BUILDING_SECRET_POWER_EFFECT, .camouflageType = BUILDING_CAMOUFLAGE_TYPE, .camouflageBlend = BUILDING_CAMOUFLAGE_BLEND, - .background = - { - .tileset = gBattleEnvironmentTiles_Building, - .tilemap = gBattleEnvironmentTilemap_Building, - .entryTileset = gBattleEnvironmentAnimTiles_Building, - .entryTilemap = gBattleEnvironmentAnimTilemap_Building, - .palette = gBattleEnvironmentPalette_BuildingLeader, - }, + .entry = ENVIRONMENT_ENTRY(Building), + .background = ENVIRONMENT_BACKGROUND(Building), + .palette = gBattleEnvironmentPalette_BuildingLeader, .battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE, }, @@ -314,14 +277,9 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT] .secretPowerEffect = BUILDING_SECRET_POWER_EFFECT, .camouflageType = BUILDING_CAMOUFLAGE_TYPE, .camouflageBlend = BUILDING_CAMOUFLAGE_BLEND, - .background = - { - .tileset = gBattleEnvironmentTiles_Stadium, - .tilemap = gBattleEnvironmentTilemap_Stadium, - .entryTileset = gBattleEnvironmentAnimTiles_Building, - .entryTilemap = gBattleEnvironmentAnimTilemap_Building, - .palette = gBattleEnvironmentPalette_StadiumMagma, - }, + .entry = ENVIRONMENT_ENTRY(Building), + .background = ENVIRONMENT_BACKGROUND(Stadium), + .palette = gBattleEnvironmentPalette_StadiumMagma, .battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE, }, @@ -332,14 +290,9 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT] .secretPowerEffect = BUILDING_SECRET_POWER_EFFECT, .camouflageType = BUILDING_CAMOUFLAGE_TYPE, .camouflageBlend = BUILDING_CAMOUFLAGE_BLEND, - .background = - { - .tileset = gBattleEnvironmentTiles_Stadium, - .tilemap = gBattleEnvironmentTilemap_Stadium, - .entryTileset = gBattleEnvironmentAnimTiles_Building, - .entryTilemap = gBattleEnvironmentAnimTilemap_Building, - .palette = gBattleEnvironmentPalette_StadiumAqua, - }, + .entry = ENVIRONMENT_ENTRY(Building), + .background = ENVIRONMENT_BACKGROUND(Stadium), + .palette = gBattleEnvironmentPalette_StadiumAqua, .battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE, }, @@ -350,14 +303,9 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT] .secretPowerEffect = BUILDING_SECRET_POWER_EFFECT, .camouflageType = BUILDING_CAMOUFLAGE_TYPE, .camouflageBlend = BUILDING_CAMOUFLAGE_BLEND, - .background = - { - .tileset = gBattleEnvironmentTiles_Stadium, - .tilemap = gBattleEnvironmentTilemap_Stadium, - .entryTileset = gBattleEnvironmentAnimTiles_Building, - .entryTilemap = gBattleEnvironmentAnimTilemap_Building, - .palette = gBattleEnvironmentPalette_StadiumSidney, - }, + .entry = ENVIRONMENT_ENTRY(Building), + .background = ENVIRONMENT_BACKGROUND(Stadium), + .palette = gBattleEnvironmentPalette_StadiumSidney, .battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE, }, @@ -368,14 +316,9 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT] .secretPowerEffect = BUILDING_SECRET_POWER_EFFECT, .camouflageType = BUILDING_CAMOUFLAGE_TYPE, .camouflageBlend = BUILDING_CAMOUFLAGE_BLEND, - .background = - { - .tileset = gBattleEnvironmentTiles_Stadium, - .tilemap = gBattleEnvironmentTilemap_Stadium, - .entryTileset = gBattleEnvironmentAnimTiles_Building, - .entryTilemap = gBattleEnvironmentAnimTilemap_Building, - .palette = gBattleEnvironmentPalette_StadiumPhoebe, - }, + .entry = ENVIRONMENT_ENTRY(Building), + .background = ENVIRONMENT_BACKGROUND(Stadium), + .palette = gBattleEnvironmentPalette_StadiumPhoebe, .battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE, }, @@ -386,14 +329,9 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT] .secretPowerEffect = BUILDING_SECRET_POWER_EFFECT, .camouflageType = BUILDING_CAMOUFLAGE_TYPE, .camouflageBlend = BUILDING_CAMOUFLAGE_BLEND, - .background = - { - .tileset = gBattleEnvironmentTiles_Stadium, - .tilemap = gBattleEnvironmentTilemap_Stadium, - .entryTileset = gBattleEnvironmentAnimTiles_Building, - .entryTilemap = gBattleEnvironmentAnimTilemap_Building, - .palette = gBattleEnvironmentPalette_StadiumGlacia, - }, + .entry = ENVIRONMENT_ENTRY(Building), + .background = ENVIRONMENT_BACKGROUND(Stadium), + .palette = gBattleEnvironmentPalette_StadiumGlacia, .battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE, }, @@ -404,14 +342,9 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT] .secretPowerEffect = BUILDING_SECRET_POWER_EFFECT, .camouflageType = BUILDING_CAMOUFLAGE_TYPE, .camouflageBlend = BUILDING_CAMOUFLAGE_BLEND, - .background = - { - .tileset = gBattleEnvironmentTiles_Stadium, - .tilemap = gBattleEnvironmentTilemap_Stadium, - .entryTileset = gBattleEnvironmentAnimTiles_Building, - .entryTilemap = gBattleEnvironmentAnimTilemap_Building, - .palette = gBattleEnvironmentPalette_StadiumDrake, - }, + .entry = ENVIRONMENT_ENTRY(Building), + .background = ENVIRONMENT_BACKGROUND(Stadium), + .palette = gBattleEnvironmentPalette_StadiumDrake, .battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE, }, @@ -422,14 +355,9 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT] .secretPowerEffect = BUILDING_SECRET_POWER_EFFECT, .camouflageType = BUILDING_CAMOUFLAGE_TYPE, .camouflageBlend = BUILDING_CAMOUFLAGE_BLEND, - .background = - { - .tileset = gBattleEnvironmentTiles_Stadium, - .tilemap = gBattleEnvironmentTilemap_Stadium, - .entryTileset = gBattleEnvironmentAnimTiles_Building, - .entryTilemap = gBattleEnvironmentAnimTilemap_Building, - .palette = gBattleEnvironmentPalette_StadiumWallace, - }, + .entry = ENVIRONMENT_ENTRY(Building), + .background = ENVIRONMENT_BACKGROUND(Stadium), + .palette = gBattleEnvironmentPalette_StadiumWallace, .battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE, }, @@ -441,14 +369,9 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT] .secretPowerEffect = CAVE_SECRET_POWER_EFFECT, .camouflageType = CAVE_CAMOUFLAGE_TYPE, .camouflageBlend = CAVE_CAMOUFLAGE_BLEND, - .background = - { - .tileset = gBattleEnvironmentTiles_Cave, - .tilemap = gBattleEnvironmentTilemap_Cave, - .entryTileset = gBattleEnvironmentAnimTiles_Cave, - .entryTilemap = gBattleEnvironmentAnimTilemap_Cave, - .palette = gBattleEnvironmentPalette_Groudon, - }, + .entry = ENVIRONMENT_ENTRY(Cave), + .background = ENVIRONMENT_BACKGROUND(Cave), + .palette = gBattleEnvironmentPalette_Groudon, .battleIntroSlide = CAVE_BATTLE_INTRO_SLIDE, }, @@ -460,15 +383,10 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT] .secretPowerEffect = CAVE_SECRET_POWER_EFFECT, .camouflageType = CAVE_CAMOUFLAGE_TYPE, .camouflageBlend = CAVE_CAMOUFLAGE_BLEND, - .background = - { - .tileset = gBattleEnvironmentTiles_Water, - .tilemap = gBattleEnvironmentTilemap_Water, - .entryTileset = gBattleEnvironmentAnimTiles_Underwater, - .entryTilemap = gBattleEnvironmentAnimTilemap_Underwater, - .palette = gBattleEnvironmentPalette_Kyogre, - }, - .battleIntroSlide = CAVE_BATTLE_INTRO_SLIDE, + .entry = ENVIRONMENT_ENTRY(Underwater), + .background = ENVIRONMENT_BACKGROUND(Water), + .palette = gBattleEnvironmentPalette_Kyogre, + .battleIntroSlide = BattleIntroSlide2, }, [BATTLE_ENVIRONMENT_RAYQUAZA] = @@ -479,14 +397,9 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT] .secretPowerEffect = PLAIN_SECRET_POWER_EFFECT, .camouflageType = PLAIN_CAMOUFLAGE_TYPE, .camouflageBlend = PLAIN_CAMOUFLAGE_BLEND, - .background = - { - .tileset = gBattleEnvironmentTiles_Rayquaza, - .tilemap = gBattleEnvironmentTilemap_Rayquaza, - .entryTileset = gBattleEnvironmentAnimTiles_Rayquaza, - .entryTilemap = gBattleEnvironmentAnimTilemap_Rayquaza, - .palette = gBattleEnvironmentPalette_Rayquaza, - }, + .entry = ENVIRONMENT_ENTRY(Rayquaza), + .background = ENVIRONMENT_BACKGROUND(Rayquaza), + .palette = gBattleEnvironmentPalette_Rayquaza, .battleIntroSlide = PLAIN_BATTLE_INTRO_SLIDE, }, diff --git a/src/data/graphics/battle_environment.h b/src/data/graphics/battle_environment.h index c1802892e3..8134816f26 100644 --- a/src/data/graphics/battle_environment.h +++ b/src/data/graphics/battle_environment.h @@ -1,15 +1,47 @@ +const u32 gBattleEnvironmentTiles_TallGrass[] = INCBIN_U32("graphics/battle_environment/tall_grass/tiles.4bpp.smol"); +const u16 gBattleEnvironmentPalette_TallGrass[] = INCBIN_U16("graphics/battle_environment/tall_grass/palette.gbapal"); +const u32 gBattleEnvironmentTilemap_TallGrass[] = INCBIN_U32("graphics/battle_environment/tall_grass/map.bin.smolTM"); + +const u32 gBattleEnvironmentTiles_LongGrass[] = INCBIN_U32("graphics/battle_environment/long_grass/tiles.4bpp.smol"); +const u16 gBattleEnvironmentPalette_LongGrass[] = INCBIN_U16("graphics/battle_environment/long_grass/palette.gbapal"); +const u32 gBattleEnvironmentTilemap_LongGrass[] = INCBIN_U32("graphics/battle_environment/long_grass/map.bin.smolTM"); + +const u32 gBattleEnvironmentTiles_Sand[] = INCBIN_U32("graphics/battle_environment/sand/tiles.4bpp.smol"); +const u16 gBattleEnvironmentPalette_Sand[] = INCBIN_U16("graphics/battle_environment/sand/palette.gbapal"); +const u32 gBattleEnvironmentTilemap_Sand[] = INCBIN_U32("graphics/battle_environment/sand/map.bin.smolTM"); + +const u32 gBattleEnvironmentTiles_Underwater[] = INCBIN_U32("graphics/battle_environment/underwater/tiles.4bpp.smol"); +const u16 gBattleEnvironmentPalette_Underwater[] = INCBIN_U16("graphics/battle_environment/underwater/palette.gbapal"); +const u32 gBattleEnvironmentTilemap_Underwater[] = INCBIN_U32("graphics/battle_environment/underwater/map.bin.smolTM"); + +const u32 gBattleEnvironmentTiles_Water[] = INCBIN_U32("graphics/battle_environment/water/tiles.4bpp.smol"); +const u16 gBattleEnvironmentPalette_Water[] = INCBIN_U16("graphics/battle_environment/water/palette.gbapal"); +const u32 gBattleEnvironmentTilemap_Water[] = INCBIN_U32("graphics/battle_environment/water/map.bin.smolTM"); + +const u32 gBattleEnvironmentTiles_PondWater[] = INCBIN_U32("graphics/battle_environment/pond_water/tiles.4bpp.smol"); +const u16 gBattleEnvironmentPalette_PondWater[] = INCBIN_U16("graphics/battle_environment/pond_water/palette.gbapal"); +const u32 gBattleEnvironmentTilemap_PondWater[] = INCBIN_U32("graphics/battle_environment/pond_water/map.bin.smolTM"); + +const u32 gBattleEnvironmentTiles_Rock[] = INCBIN_U32("graphics/battle_environment/rock/tiles.4bpp.smol"); +const u16 gBattleEnvironmentPalette_Rock[] = INCBIN_U16("graphics/battle_environment/rock/palette.gbapal"); +const u32 gBattleEnvironmentTilemap_Rock[] = INCBIN_U32("graphics/battle_environment/rock/map.bin.smolTM"); + +const u32 gBattleEnvironmentTiles_Cave[] = INCBIN_U32("graphics/battle_environment/cave/tiles.4bpp.smol"); +const u16 gBattleEnvironmentPalette_Cave[] = INCBIN_U16("graphics/battle_environment/cave/palette.gbapal"); +const u32 gBattleEnvironmentTilemap_Cave[] = INCBIN_U32("graphics/battle_environment/cave/map.bin.smolTM"); + +const u32 gBattleEnvironmentTiles_Building[] = INCBIN_U32("graphics/battle_environment/building/tiles.4bpp.smol"); +const u16 gBattleEnvironmentPalette_Building[] = INCBIN_U16("graphics/battle_environment/building/palette.gbapal"); +const u32 gBattleEnvironmentTilemap_Building[] = INCBIN_U32("graphics/battle_environment/building/map.bin.smolTM"); + +const u16 gBattleEnvironmentPalette_BuildingGym[] = INCBIN_U16("graphics/battle_environment/building/gym.gbapal"); +const u16 gBattleEnvironmentPalette_BuildingLeader[] = INCBIN_U16("graphics/battle_environment/building/leader.gbapal"); +const u16 gBattleEnvironmentPalette_Plain[] = INCBIN_U16("graphics/battle_environment/plain/palette.gbapal"); + const u32 gBattleEnvironmentTiles_Stadium[] = INCBIN_U32("graphics/battle_environment/stadium/tiles.4bpp.smol"); const u32 gBattleEnvironmentTilemap_Stadium[] = INCBIN_U32("graphics/battle_environment/stadium/map.bin.smolTM"); -const u32 gBattleEnvironmentTiles_Rayquaza[] = INCBIN_U32("graphics/battle_environment/sky/tiles.4bpp.smol"); -const u32 gBattleEnvironmentTilemap_Rayquaza[] = INCBIN_U32("graphics/battle_environment/sky/map.bin.smolTM"); - -const u16 gBattleEnvironmentPalette_Building[] = INCBIN_U16("graphics/battle_environment/building/palette.gbapal"); - -const u16 gBattleEnvironmentPalette_Kyogre[] = INCBIN_U16("graphics/battle_environment/water/kyogre.gbapal"); -const u16 gBattleEnvironmentPalette_Groudon[] = INCBIN_U16("graphics/battle_environment/cave/groudon.gbapal"); -const u16 gBattleEnvironmentPalette_BuildingGym[] = INCBIN_U16("graphics/battle_environment/building/gym.gbapal"); -const u16 gBattleEnvironmentPalette_BuildingLeader[] = INCBIN_U16("graphics/battle_environment/building/leader.gbapal"); +const u16 gBattleEnvironmentPalette_Frontier[] = INCBIN_U16("graphics/battle_environment/stadium/battle_frontier.gbapal"); // this is also used for link battles const u16 gBattleEnvironmentPalette_StadiumAqua[] = INCBIN_U16("graphics/battle_environment/stadium/aqua.gbapal"); const u16 gBattleEnvironmentPalette_StadiumMagma[] = INCBIN_U16("graphics/battle_environment/stadium/magma.gbapal"); const u16 gBattleEnvironmentPalette_StadiumSidney[] = INCBIN_U16("graphics/battle_environment/stadium/sidney.gbapal"); @@ -17,7 +49,13 @@ const u16 gBattleEnvironmentPalette_StadiumPhoebe[] = INCBIN_U16("graphics/battl const u16 gBattleEnvironmentPalette_StadiumGlacia[] = INCBIN_U16("graphics/battle_environment/stadium/glacia.gbapal"); const u16 gBattleEnvironmentPalette_StadiumDrake[] = INCBIN_U16("graphics/battle_environment/stadium/drake.gbapal"); const u16 gBattleEnvironmentPalette_StadiumWallace[] = INCBIN_U16("graphics/battle_environment/stadium/wallace.gbapal"); + +const u16 gBattleEnvironmentPalette_Kyogre[] = INCBIN_U16("graphics/battle_environment/water/kyogre.gbapal"); +const u16 gBattleEnvironmentPalette_Groudon[] = INCBIN_U16("graphics/battle_environment/cave/groudon.gbapal"); + +const u32 gBattleEnvironmentTiles_Rayquaza[] = INCBIN_U32("graphics/battle_environment/sky/tiles.4bpp.smol"); const u16 gBattleEnvironmentPalette_Rayquaza[] = INCBIN_U16("graphics/battle_environment/sky/palette.gbapal"); +const u32 gBattleEnvironmentTilemap_Rayquaza[] = INCBIN_U32("graphics/battle_environment/sky/map.bin.smolTM"); const u32 gBattleEnvironmentAnimTiles_TallGrass[] = INCBIN_U32("graphics/battle_environment/tall_grass/anim_tiles.4bpp.smol"); const u32 gBattleEnvironmentAnimTilemap_TallGrass[] = INCBIN_U32("graphics/battle_environment/tall_grass/anim_map.bin.smolTM"); diff --git a/src/pokemon_sprite_visualizer.c b/src/pokemon_sprite_visualizer.c index 96f61d57c9..7180408d27 100644 --- a/src/pokemon_sprite_visualizer.c +++ b/src/pokemon_sprite_visualizer.c @@ -968,7 +968,7 @@ static void LoadBattleBg(enum BattleEnvironments battleEnvironment) { DecompressDataWithHeaderVram(gBattleEnvironmentInfo[battleEnvironment].background.tileset, (void *)(BG_CHAR_ADDR(BACKGROUND_3_CHAR_BASE))); DecompressDataWithHeaderVram(gBattleEnvironmentInfo[battleEnvironment].background.tilemap, (void *)(BG_SCREEN_ADDR(BACKGROUND_3_MAP_BASE))); - LoadPalette(gBattleEnvironmentInfo[battleEnvironment].background.palette, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LoadPalette(gBattleEnvironmentInfo[battleEnvironment].palette, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); } static void PrintBattleBgName(u8 battleEnvironment)