mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-20 20:08:07 -05:00
update battle anims, battle terrains renamed
This commit is contained in:
parent
8ed8aed1a7
commit
8c5990955f
File diff suppressed because it is too large
Load Diff
19
graphics/battle_anims/backgrounds/rock_afternoon.pal
Normal file
19
graphics/battle_anims/backgrounds/rock_afternoon.pal
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
0 0 255
|
||||
246 189 49
|
||||
246 172 41
|
||||
238 156 32
|
||||
222 131 24
|
||||
205 115 8
|
||||
246 172 41
|
||||
246 172 41
|
||||
246 172 41
|
||||
246 172 41
|
||||
167 81 31
|
||||
139 74 49
|
||||
123 65 32
|
||||
98 49 32
|
||||
82 32 16
|
||||
74 24 8
|
||||
19
graphics/battle_anims/backgrounds/rock_day.pal
Normal file
19
graphics/battle_anims/backgrounds/rock_day.pal
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
0 0 255
|
||||
129 196 237
|
||||
152 208 243
|
||||
174 221 250
|
||||
240 186 88
|
||||
232 144 39
|
||||
152 208 243
|
||||
152 208 243
|
||||
255 255 255
|
||||
255 241 188
|
||||
212 111 53
|
||||
227 148 56
|
||||
197 101 18
|
||||
163 70 36
|
||||
128 57 35
|
||||
113 41 18
|
||||
BIN
graphics/battle_anims/backgrounds/rock_field.bin
Normal file
BIN
graphics/battle_anims/backgrounds/rock_field.bin
Normal file
Binary file not shown.
BIN
graphics/battle_anims/backgrounds/rock_field.png
Normal file
BIN
graphics/battle_anims/backgrounds/rock_field.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.8 KiB |
19
graphics/battle_anims/backgrounds/rock_night.pal
Normal file
19
graphics/battle_anims/backgrounds/rock_night.pal
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
0 0 255
|
||||
38 17 60
|
||||
22 29 82
|
||||
20 43 90
|
||||
91 97 155
|
||||
47 50 120
|
||||
255 255 255
|
||||
243 237 195
|
||||
22 29 82
|
||||
22 29 82
|
||||
43 29 98
|
||||
49 25 82
|
||||
40 5 57
|
||||
53 41 103
|
||||
58 65 118
|
||||
27 16 70
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
0 0 0
|
||||
246 230 180
|
||||
255 222 139
|
||||
255 230 123
|
||||
255 222 106
|
||||
255 213 98
|
||||
255 197 57
|
||||
255 180 32
|
||||
255 172 8
|
||||
255 156 8
|
||||
230 131 8
|
||||
222 123 8
|
||||
205 106 8
|
||||
205 90 8
|
||||
197 74 8
|
||||
189 57 8
|
||||
Binary file not shown.
|
|
@ -1,19 +0,0 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
0 0 0
|
||||
211 216 222
|
||||
198 208 221
|
||||
184 199 218
|
||||
170 191 215
|
||||
156 181 212
|
||||
142 172 207
|
||||
128 162 203
|
||||
117 154 198
|
||||
104 147 199
|
||||
101 141 189
|
||||
89 137 194
|
||||
82 127 179
|
||||
77 128 190
|
||||
63 117 184
|
||||
52 106 169
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 7.3 KiB |
|
|
@ -1,19 +0,0 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
0 0 0
|
||||
139 90 222
|
||||
131 65 230
|
||||
106 41 230
|
||||
98 32 230
|
||||
98 16 255
|
||||
65 8 255
|
||||
49 8 205
|
||||
41 8 180
|
||||
24 0 172
|
||||
24 0 156
|
||||
32 0 148
|
||||
32 0 131
|
||||
32 0 115
|
||||
24 0 106
|
||||
24 0 98
|
||||
|
|
@ -1078,7 +1078,7 @@ extern u8 gBattleTextBuff1[TEXT_BUFF_ARRAY_COUNT];
|
|||
extern u8 gBattleTextBuff2[TEXT_BUFF_ARRAY_COUNT];
|
||||
extern u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT + 13]; //to handle stupidly large z move names
|
||||
extern u32 gBattleTypeFlags;
|
||||
extern u8 gBattleTerrain;
|
||||
extern u8 gBattleEnvironment;
|
||||
extern u8 *gBattleAnimBgTileBuffer;
|
||||
extern u8 *gBattleAnimBgTilemapBuffer;
|
||||
extern u32 gBattleControllerExecFlags;
|
||||
|
|
|
|||
|
|
@ -12,6 +12,6 @@ struct BattleTerrain {
|
|||
struct BattleBackground background;
|
||||
};
|
||||
|
||||
extern const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT];
|
||||
extern const struct BattleTerrain gBattleTerrainInfo[BATTLE_ENVIRONMENT_COUNT];
|
||||
|
||||
#endif // GUARD_BATTLE_TERRAIN_H
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
#define DEXNAV_CHAIN_MAX 100 // maximum chain value
|
||||
|
||||
// hidden pokemon options - an approximation of values to due to lack of available data
|
||||
// hidden pokemon options - an approximation of values due to lack of available data
|
||||
#define HIDDEN_MON_STEP_COUNT 100 // Look for hidden pokemon every x steps
|
||||
#define HIDDEN_MON_SEARCH_RATE 25 // x% chance of finding hidden pokemon every x steps
|
||||
#define HIDDEN_MON_PROBABILTY 15 // x% chance of finding hidden mon compared to regular encounter data
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
// #ifndef GUARD_FOLLOWER_NPC_OVERWORLD_H
|
||||
// #define GUARD_FOLLOWER_NPC_OVERWORLD_H
|
||||
#ifndef GUARD_FOLLOWER_NPC_OVERWORLD_H
|
||||
#define GUARD_FOLLOWER_NPC_OVERWORLD_H
|
||||
|
||||
// // NPC Followers
|
||||
// #define FNPC_ENABLE_NPC_FOLLOWERS FALSE // Enables the use of script macros to designate NPCs to follow behind the player, DPP style. Slightly increases the size of the saveblock (SaveBlock3).
|
||||
// #define FNPC_FLAG_HEAL_AFTER_FOLLOWER_BATTLE 0 // Replace the 0 with a flag in order to use that flag to toggle whether the Player's party will be automatically healed after every follower partner battle. If you want this to always be active without using a flag, replace 0 with FNPC_ALWAYS.
|
||||
// #define FNPC_FLAG_PARTNER_WILD_BATTLES 0 // Replace the 0 with a flag in order to use that flag to toggle whether the follower partner will join you for wild battles. If you want this to always be active without using a flag, replace 0 with FNPC_ALWAYS.
|
||||
// #define FNPC_NPC_FOLLOWER_WILD_BATTLE_VS_2 TRUE // If set to TRUE, two wild Pokemon will show up to the partner battle instead of just one.
|
||||
// #define FNPC_NPC_FOLLOWER_PARTY_PREVIEW TRUE // If set to TRUE, a preview of the player's and partner's teams will be shown before every trainer battle.
|
||||
// #define FNPC_FACE_NPC_FOLLOWER_ON_DOOR_EXIT TRUE // If set to TRUE, the player will turn to face the follower when they exit a doorway.
|
||||
// #define FNPC_NPC_FOLLOWER_SHOW_AFTER_LEAVE_ROUTE TRUE // If set to TRUE, the follower will reappear and walk out of the player after using Fly, Escape Rope, or Teleport.
|
||||
// NPC Followers
|
||||
#define FNPC_ENABLE_NPC_FOLLOWERS FALSE // Enables the use of script macros to designate NPCs to follow behind the player, DPP style. Slightly increases the size of the saveblock (SaveBlock3).
|
||||
#define FNPC_FLAG_HEAL_AFTER_FOLLOWER_BATTLE 0 // Replace the 0 with a flag in order to use that flag to toggle whether the Player's party will be automatically healed after every follower partner battle. If you want this to always be active without using a flag, replace 0 with FNPC_ALWAYS.
|
||||
#define FNPC_FLAG_PARTNER_WILD_BATTLES 0 // Replace the 0 with a flag in order to use that flag to toggle whether the follower partner will join you for wild battles. If you want this to always be active without using a flag, replace 0 with FNPC_ALWAYS.
|
||||
#define FNPC_NPC_FOLLOWER_WILD_BATTLE_VS_2 TRUE // If set to TRUE, two wild Pokemon will show up to the partner battle instead of just one.
|
||||
#define FNPC_NPC_FOLLOWER_PARTY_PREVIEW TRUE // If set to TRUE, a preview of the player's and partner's teams will be shown before every trainer battle.
|
||||
#define FNPC_FACE_NPC_FOLLOWER_ON_DOOR_EXIT TRUE // If set to TRUE, the player will turn to face the follower when they exit a doorway.
|
||||
#define FNPC_NPC_FOLLOWER_SHOW_AFTER_LEAVE_ROUTE TRUE // If set to TRUE, the follower will reappear and walk out of the player after using Fly, Escape Rope, or Teleport.
|
||||
|
||||
// #endif // GUARD_FOLLOWER_NPC_OVERWORLD_H
|
||||
#endif // GUARD_FOLLOWER_NPC_OVERWORLD_H
|
||||
|
|
|
|||
|
|
@ -8,8 +8,9 @@
|
|||
// Ruby's actual debug build does not use the AGBPrint features.
|
||||
// #define NDEBUG
|
||||
|
||||
// Fire Red likely forgot to define NDEBUG/NOAGBPRN before release, leading
|
||||
// to the inclusion of asserts in the retail ROM.
|
||||
// To enable printf debugging, comment out "#define NDEBUG". This allows
|
||||
// the various AGBPrint functions to be used. (See include/gba/isagbprint.h).
|
||||
// See below for enabling different pretty printing versions.
|
||||
|
||||
#ifndef NDEBUG
|
||||
#define PRETTY_PRINT_OFF (0)
|
||||
|
|
@ -31,7 +32,7 @@
|
|||
// AGB_PRINT is supported on respective debug units.
|
||||
|
||||
#define LOG_HANDLER (LOG_HANDLER_MGBA_PRINT)
|
||||
#endif // NDEBUG
|
||||
#endif
|
||||
|
||||
// Uncomment to fix some identified minor bugs
|
||||
#define BUGFIX
|
||||
|
|
@ -70,7 +71,6 @@
|
|||
|
||||
// General settings
|
||||
#define EXPANSION_INTRO TRUE // If TRUE, a custom RHH intro will play after the vanilla copyright screen.
|
||||
#define POKEDEX_PLUS_HGSS FALSE // If TRUE, enables the custom HGSS style Pokedex.
|
||||
#define SUMMARY_SCREEN_NATURE_COLORS TRUE // If TRUE, nature-based stat boosts and reductions will be red and blue in the summary screen.
|
||||
#define HQ_RANDOM TRUE // If TRUE, replaces the default RNG with an implementation of SFC32 RNG. May break code that relies on RNG.
|
||||
#define COMPETITIVE_PARTY_SYNTAX TRUE // If TRUE, parties are defined in "competitive syntax".
|
||||
|
|
@ -87,4 +87,5 @@
|
|||
// Naming Screen
|
||||
#define AUTO_LOWERCASE_KEYBOARD GEN_LATEST // Starting in GEN_6, after entering the first uppercase character, the keyboard switches to lowercase letters.
|
||||
|
||||
#define SAVE_TYPE_ERROR_SCREEN FALSE // When enabled, this shows an error message when the game is loaded on a cart without a flash chip or on an emulator with the wrong save type setting instead of crashing.
|
||||
#endif // GUARD_CONFIG_GENERAL_H
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
#define I_REPEL_INCLUDE_FAINTED GEN_LATEST // In Gen1 and Gen6+, Repels always use the level of the first member of the party to check which wild Pokémon to prevent encounters with, even if that member is fainted. In Gen2-5, it only uses the level of the first non-fainted Pokémon.
|
||||
|
||||
// TM config
|
||||
#define I_REUSABLE_TMS TRUE // In Gen5-8, TMs are reusable. Setting this to TRUE will make all vanilla TMs reusable, though they can also be cherry-picked by setting their importance to 1.
|
||||
#define I_REUSABLE_TMS FALSE // In Gen5-8, TMs are reusable. Setting this to TRUE will make all vanilla TMs reusable, though they can also be cherry-picked by setting their importance to 1.
|
||||
|
||||
// Exp. Share config
|
||||
// To use this feature, replace the 0 with the flag ID you're assigning it to.
|
||||
|
|
@ -38,9 +38,10 @@
|
|||
// Vs. Seeker
|
||||
#define I_VS_SEEKER_CHARGING 0 // If this flag is assigned, the Vs Seeker functionality will be enabled. When the player has the Vs. Seeker, Match Call rematch functions will stop working.
|
||||
|
||||
//Fishing
|
||||
#define I_FISHING_CHAIN FALSE // Introduced in XY, hooking the same Pokémon repeatedly will increase the odds of that mon being shiny. NOTE: This implementation is an approximation of the actual feature, as XY have not been throughoutly documented or datamined.
|
||||
#define I_FISHING_MINIGAME GEN_1 // Each generation uses a variation of reeling in Pokémon once they have been hooked.
|
||||
// Fishing
|
||||
#define I_FISHING_BITE_ODDS GEN_LATEST // In Gen 1 and Gen 2, the Old Rod has a 100% chance for a bite, Good Rod has a 66% chance for a bite, and Super Rod has a 50% chance for a bite. In Gen 3, all rods have a base 50% chance for a bite. In Gen 4 onwards, the Old Rod has a base 25% chance for a bite, Good Rod has a 50% chance for a bite, and Super Rod has a 75% chance for a bite.
|
||||
#define I_FISHING_MINIGAME GEN_3 // Each generation uses a variation of reeling in Pokémon once they have been hooked. NOTE: Only the Gen 1/2 and Gen 3 minigames are implemented right now!
|
||||
#define I_FISHING_ENVIRONMENT GEN_LATEST // In Gen 3, the battle environment when fighting a hooked Pokémon is based on the tile the player is standing on. In Gen 4 onwards, the environment is based on tile that is being fished in, resulting in it usually being a water environment.
|
||||
#define I_FISHING_STICKY_BOOST GEN_LATEST // In Gen 3, a Pokemon with Suction Cups or Sticky Hold in the first slot of the party causes the chance for a bite to increase by about 35%. In Gen 4 onwards, it doubles the base bite chance.
|
||||
#define I_FISHING_FOLLOWER_BOOST FALSE // In HGSS, fishing bite odds are increased depending on the friendship of the current following Pokémon.
|
||||
#define I_FISHING_CHAIN FALSE // Introduced in XY, hooking the same Pokémon repeatedly will increase the odds of that mon being shiny. NOTE: This implementation is an approximation of the actual feature, as XY have not been throughoutly documented or datamined.
|
||||
|
|
|
|||
|
|
@ -3,13 +3,14 @@
|
|||
|
||||
// Movement config
|
||||
#define OW_RUNNING_INDOORS GEN_LATEST // In Gen4+, players are allowed to run indoors.
|
||||
#define OW_AUTO_SIGNPOST FALSE // When enabled, if the tile that the player is facing has MB_SIGNPOST, MB_POKEMART_SIGN, or MB_POKEMON_CENTER_SIGN, the player will automatically read the signpost, as seen in FRLG.
|
||||
#define SLOW_MOVEMENT_ON_STAIRS TRUE // If enabled, the player will move slower up/down stairs like in FR
|
||||
#define SLOW_MOVEMENT_ON_STAIRS FALSE // If enabled, the player will move slower up/down stairs like in FR
|
||||
|
||||
// Other settings
|
||||
#define OW_POISON_DAMAGE GEN_LATEST // In Gen4, Pokémon no longer faint from Poison in the overworld. In Gen5+, they no longer take damage at all.
|
||||
#define OW_DOUBLE_APPROACH_WITH_ONE_MON FALSE // If enabled, you can be spotted by two trainers at the same time even if you only have one eligible Pokémon in your party.
|
||||
#define OW_HIDE_REPEAT_MAP_POPUP FALSE // If enabled, map popups will not appear if entering a map with the same Map Section Id as the last.
|
||||
#define OW_FRLG_WHITEOUT FALSE // If enabled, shows an additional whiteout message and post whiteout event script with healing NPC.
|
||||
#define OW_DEFOG_FIELD_MOVE FALSE // If enabled, Defog can be used as a Field Move as seen in DPPt.
|
||||
|
||||
// Item Obtain Description Box
|
||||
#define OW_ITEM_DESCRIPTIONS_OFF 0 // never show descriptions
|
||||
|
|
@ -57,11 +58,17 @@
|
|||
#define OW_FOLLOWERS_ENABLED TRUE // Enables follower Pokémon, HGSS style. Requires OW_POKEMON_OBJECT_EVENTS. Note that additional scripting may be required for them to be fully supported!
|
||||
#define OW_FOLLOWERS_BOBBING TRUE // If TRUE, follower Pokémon will bob up and down during their idle & walking animations
|
||||
#define OW_FOLLOWERS_POKEBALLS TRUE // If TRUE, follower Pokémon will emerge from the Poké Ball they are stored in, instead of a normal Poké Ball
|
||||
#define OW_FOLLOWERS_WEATHER_FORMS TRUE // If TRUE, Castform and Cherrim gain FORM_CHANGE_OVERWORLD_WEATHER, which will make them transform in the overworld based on the weather.
|
||||
#define OW_FOLLOWERS_COPY_WILD_PKMN TRUE // If TRUE, follower Pokémon that know Transform or have Illusion/Imposter will copy wild Pokémon at random.
|
||||
#define OW_FOLLOWERS_WEATHER_FORMS FALSE // If TRUE, Castform and Cherrim gain FORM_CHANGE_OVERWORLD_WEATHER, which will make them transform in the overworld based on the weather.
|
||||
#define OW_FOLLOWERS_COPY_WILD_PKMN FALSE // If TRUE, follower Pokémon that know Transform or have Illusion/Imposter will copy wild Pokémon at random.
|
||||
#define OW_BATTLE_ONLY_FORMS TRUE // If TRUE, loads overworld sprites for battle-only forms like Mega Evos. Requires OW_POKEMON_OBJECT_EVENTS.
|
||||
#define B_FLAG_FOLLOWERS_DISABLED 0 // Enables / Disables followers by using a flag. Helpful to disable followers for a period of time.
|
||||
|
||||
#define OW_FOLLOWERS_SCRIPT_MOVEMENT TRUE // If TRUE, follower Pokémon only go back to their Poké Ball if a non-player collides with them by setting the FLAG_SAFE_FOLLOWER_MOVEMENT flag by default.
|
||||
// Follower Pokémon Restrictions
|
||||
// If set, the only pokemon allowed to follow you will be those matching species, met location, and/or met level; These accept vars, too: VAR_TEMP_1, etc
|
||||
// For examples, see "docs/tutorials/how_to_new_pokemon.md"
|
||||
#define OW_FOLLOWERS_ALLOWED_SPECIES (0)
|
||||
#define OW_FOLLOWERS_ALLOWED_MET_LVL (0)
|
||||
#define OW_FOLLOWERS_ALLOWED_MET_LOC (0)
|
||||
|
||||
// Out-of-battle Ability effects
|
||||
#define OW_SYNCHRONIZE_NATURE GEN_LATEST // In Gen8+, if a Pokémon with Synchronize leads the party, wild Pokémon will always have their same Nature as opposed to the 50% chance in previous games. Gift Pokémon excluded.
|
||||
|
|
@ -74,15 +81,26 @@
|
|||
#define OW_STORM_DRAIN GEN_LATEST // In Gen8+, if a Pokémon with Storm Drain is leading the party, there is a 50% chance to encounter a Water-type Pokémon.
|
||||
#define OW_FLASH_FIRE GEN_LATEST // In Gen8+, if a Pokémon with Flash Fire is leading the party, there is a 50% chance to encounter a Fire-type Pokémon.
|
||||
|
||||
// These generational defines only make a distinction for OW_ALTERED_TIME_RATIO
|
||||
// These defines only make a distinction for OW_ALTERED_TIME_RATIO
|
||||
#define GEN_8_PLA GEN_LATEST + 2
|
||||
#define TIME_DEBUG GEN_LATEST + 3
|
||||
|
||||
//Time
|
||||
#define OW_TIMES_OF_DAY GEN_5 // Different generations have the times of day change at different times.
|
||||
#define OW_USE_FAKE_RTC FALSE // When TRUE, seconds on the in-game clock will only advance once every 60 playTimeVBlanks (every 60 frames).
|
||||
#define OW_ALTERED_TIME_RATIO GEN_LATEST // In GEN_8_PLA, the time in game moves forward 60 seconds for every second in the RTC. In GEN_9, it is 20 seconds. This has no effect if OW_USE_FAKE_RTC is FALSE.
|
||||
#define OW_TIMES_OF_DAY GEN_LATEST // Different generations have the times of day change at different times.
|
||||
#define OW_USE_FAKE_RTC FALSE // When TRUE, seconds on the in-game clock will only advance once every 60 playTimeVBlanks (every 60 frames).
|
||||
#define OW_ALTERED_TIME_RATIO GEN_LATEST // In GEN_8_PLA, the time in game moves forward 60 seconds for every second in the RTC. In GEN_9, it is 20 seconds. TIME_DEBUG is 1:1, and meant for debugging purposes. This has no effect if OW_USE_FAKE_RTC is FALSE.
|
||||
#define OW_TIME_OF_DAY_ENCOUNTERS FALSE // If TRUE, will allow the user to define and use different encounter tables based on the time of day.
|
||||
#define OW_TIME_OF_DAY_DISABLE_FALLBACK FALSE // If TRUE, if the encounter table for a specific map and time is empty, the area will have no encounters instead of falling back to the vanilla map and time.
|
||||
#define OW_TIME_OF_DAY_FALLBACK TIME_MORNING // The time of day that encounter tables fall back to.
|
||||
#define OW_SEASONS TRUE // Enables seasonal tilesets
|
||||
#define OW_DAY_AND_NIGHT TRUE // Enables day and night system
|
||||
|
||||
// Lighting
|
||||
#define OW_SHADOW_INTENSITY 4 // Ranges from 0 to 16, where 0 is fully transparent and 16 is black.
|
||||
#define OW_OBJECT_SUBPRIORITY 148 // The higher the value, the farther back compared to other sprites. Shadows should be behind object events.
|
||||
#define OW_ENABLE_DNS TRUE // If set to TRUE, the overworld will be tinted depending on time of day.
|
||||
|
||||
// Object Event Shadows
|
||||
#define OW_OBJECT_VANILLA_SHADOWS FALSE // In vanilla shadows in the overworld are only shown when jumping.
|
||||
|
||||
// Overworld flags
|
||||
// To use the following features in scripting, replace the 0s with the flag ID you're assigning it to.
|
||||
|
|
@ -91,14 +109,13 @@
|
|||
#define OW_FLAG_NO_ENCOUNTER 0 // If this flag is set, wild encounters will be disabled.
|
||||
#define OW_FLAG_NO_TRAINER_SEE 0 // If this flag is set, trainers will not battle the player unless they're talked to.
|
||||
#define OW_FLAG_NO_COLLISION 0 // If this flag is set, the player will be able to walk over tiles with collision. Mainly intended for debugging purposes.
|
||||
#define OW_FLAG_POKE_RIDER 0 // If this flag is set, the player will be able to use fly from the Pokenav Region Map and the Town Map key item by pressing 'R' on a city/location they are able to fly to.
|
||||
|
||||
#define BATTLE_PYRAMID_RANDOM_ENCOUNTERS FALSE // If set to TRUE, battle pyramid Pokemon will be generated randomly based on the round's challenge instead of hardcoded in src/data/battle_frontier/battle_pyramid_level_50_wild_mons.h (or open_level_wild_mons.h)
|
||||
|
||||
// Map pop-up config
|
||||
#define OW_POPUP_GENERATION GEN_3 // Different generations display location names in overworld pop-ups differently.
|
||||
// <= Gen3: Firered/Leafgreen pop-up
|
||||
// == Gen5: Black/White pop-up
|
||||
// other: Emerald pop-up
|
||||
// Only choices are currently GEN_3 and GEN_5, all others will default to Gen3 pop-ups.
|
||||
|
||||
// Gen5 map pop-up config
|
||||
// Constants
|
||||
|
|
@ -115,10 +132,13 @@
|
|||
#define OW_POPUP_BW_ALPHA_BLEND FALSE // Enables alpha blending/transparency for the pop-ups. Mainly intended to be used with the black color option.
|
||||
|
||||
// Pokémon Center
|
||||
#define OW_IGNORE_EGGS_ON_HEAL GEN_LATEST // In Gen 4+, the nurse in the Pokémon Center does not heal Eggs on healing machine.
|
||||
#define OW_IGNORE_EGGS_ON_HEAL GEN_LATEST // In Gen 4+, the nurse in the Pokémon Center does not heal Eggs on healing machine.
|
||||
#define OW_UNION_DISABLE_CHECK FALSE // When TRUE, the nurse does not inform the player if there is a trainer waiting in the Union Room. This speeds up the loading of the Pokémon Center.
|
||||
#define OW_FLAG_MOVE_UNION_ROOM_CHECK 0 // If this flag is set, the game will only check if players are in the Union Room while healing Pokémon, and not when players enter the Pokémon Center. This speeds up the loading of the Pokémon Center. This is ignored if OW_UNION_DISABLE_CHECK is TRUE.
|
||||
|
||||
// Berry Blender
|
||||
#define BERRY_BLENDER_THROW_ALL_BERRIES_AT_ONCE TRUE // This is a small little addition, that basically speeds up the animation where all players' berries are thrown into the blender. Self-explanatory I hope!
|
||||
|
||||
#define OW_FIELD_MOVES_WITHOUT_HMS TRUE
|
||||
|
||||
#endif // GUARD_CONFIG_OVERWORLD_H
|
||||
|
|
|
|||
11
include/config/pokedex_plus_hgss.h
Normal file
11
include/config/pokedex_plus_hgss.h
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
#ifndef GUARD_CONFIG_POKEDEX_PLUS_HGSS_H
|
||||
#define GUARD_CONFIG_POKEDEX_PLUS_HGSS_H
|
||||
|
||||
#define POKEDEX_PLUS_HGSS FALSE // If TRUE, enables the custom HGSS style Pokedex.
|
||||
#define HGSS_DECAPPED FALSE // If TRUE, uses decapped gfx and strings.
|
||||
#define HGSS_DARK_MODE FALSE // If TRUE, enables dark mode.
|
||||
#define HGSS_HIDE_UNSEEN_EVOLUTION_NAMES FALSE // If TRUE, hides evolution mon names.
|
||||
#define HGSS_SORT_TMS_BY_NUM FALSE // If TRUE, sorts the TMS in HGSS Dex by TM number, rather than alphabetically.
|
||||
#define HGSS_SHOW_EGG_MOVES_FOR_EVOS FALSE // If TRUE, shows Egg Moves for evolved Pokémon too.
|
||||
|
||||
#endif // GUARD_CONFIG_POKEDEX_PLUS_HGSS_H
|
||||
|
|
@ -62,7 +62,8 @@
|
|||
#define P_SHOW_DYNAMIC_TYPES FALSE // If TRUE, all moves with dynamic type changes will be reflected as their current type in battle/summary screens instead of just select ones like in vanilla.
|
||||
|
||||
// Learnset helper toggles
|
||||
#define P_LEARNSET_HELPER_TEACHABLE TRUE // If TRUE, teachable_learnsets.h will be populated by tools/learnset_helpers/teachable.py using the included JSON files based on available TMs and tutors.
|
||||
#define P_LEARNSET_HELPER_TEACHABLE TRUE // If TRUE, teachable_learnsets.h will be populated by tools/learnset_helpers/make_teachables.py using the included JSON files based on available TMs and tutors.
|
||||
#define P_TUTOR_MOVES_ARRAY FALSE // If TRUE, generates a gTutorMoves array automatically using make_teachables.py. (generally not needed, but the HGSS Pokedex has an optional use for it)
|
||||
|
||||
// Flag settings
|
||||
// To use the following features in scripting, replace the 0s with the flag ID you're assigning it to.
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
// SaveBlock1 configs
|
||||
#define FREE_EXTRA_SEEN_FLAGS_SAVEBLOCK1 FALSE // Free up unused Pokédex seen flags (52 bytes).
|
||||
#define FREE_TRAINER_HILL FALSE // Frees up Trainer Tower data (28 bytes).
|
||||
#define FREE_TRAINER_HILL FALSE // Frees up Trainer Hill data (28 bytes).
|
||||
#define FREE_MYSTERY_EVENT_BUFFERS FALSE // Frees up ramScript (1104 bytes).
|
||||
#define FREE_MATCH_CALL FALSE // Frees up match call and rematch / VS Seeker data. (104 bytes).
|
||||
#define FREE_UNION_ROOM_CHAT FALSE // Frees up union room chat (212 bytes).
|
||||
|
|
|
|||
30
include/config/summary_screen.h
Normal file
30
include/config/summary_screen.h
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
#ifndef GUARD_CONFIG_SUMMARY_SCREEN_H
|
||||
#define GUARD_CONFIG_SUMMARY_SCREEN_H
|
||||
|
||||
// Settings
|
||||
#define P_SUMMARY_SCREEN_MOVE_RELEARNER TRUE // If TRUE, shows an option for Pokémon to relearn moves on the summary screen moves page.
|
||||
#define P_SUMMARY_MOVE_RELEARNER_FULL_PP TRUE // If TRUE, the move relearner in the summary screen restores relearned moves' PP to full.
|
||||
#define P_SUMMARY_SCREEN_RENAME TRUE // If TRUE, an option to change Pokémon nicknames replaces the cancel prompt on the summary screen info page.
|
||||
#define P_SUMMARY_SCREEN_IV_EV_INFO FALSE // If TRUE, will allow player to cycle through the Stats, IVs, and EVs in the summary screen skills page.
|
||||
#define P_SUMMARY_SCREEN_IV_EV_BOX_ONLY FALSE // If TRUE, will allow player to cycle through the Stats, IVs, and EVs in the summary screen skills page, but only in the PC storage box.
|
||||
#define P_SUMMARY_SCREEN_IV_EV_TILESET FALSE // If TRUE, loads an alternate tileset to allow changing the "STATS" label in the summary screen skills page. Note: if it's still loading the alternate tileset after changing this and recompiling, you may need a `make clean` before compilation.
|
||||
#define P_SUMMARY_SCREEN_IV_EV_VALUES FALSE // If TRUE, will show the actual IV value instead of the letter grade.
|
||||
/*
|
||||
LETTER GRADE GUIDE:
|
||||
|
||||
F = 0
|
||||
D = 1 - 15
|
||||
C = 16 - 25
|
||||
B = 26 - 29
|
||||
A = 30
|
||||
S = 31
|
||||
|
||||
Info taken from https://bulbapedia.bulbagarden.net/wiki/Stats_judge.
|
||||
*/
|
||||
#define P_SUMMARY_SCREEN_IV_ONLY FALSE // If TRUE, will only show IV info in the summary screen.
|
||||
#define P_SUMMARY_SCREEN_EV_ONLY FALSE // If TRUE, will only show EV info in the summary screen.
|
||||
|
||||
// Flags
|
||||
#define P_FLAG_SUMMARY_SCREEN_IV_EV_INFO 0 // If this flag is set, will allow player to cycle through the Stats, IVs, and EVs in the summary screen skills page. Note: if P_SUMMARY_SCREEN_IV_EV_INFO is TRUE, this flag does nothing.
|
||||
|
||||
#endif // GUARD_CONFIG_SUMMARY_SCREEN_H
|
||||
|
|
@ -473,42 +473,42 @@ enum MoveEffects
|
|||
#define MOVE_EFFECT_CERTAIN 0x4000
|
||||
#define MOVE_EFFECT_CONTINUE 0x8000
|
||||
|
||||
// Battle terrain defines for gBattleTerrain.
|
||||
#define BATTLE_TERRAIN_GRASS 0
|
||||
#define BATTLE_TERRAIN_LONG_GRASS 1
|
||||
#define BATTLE_TERRAIN_SAND 2
|
||||
#define BATTLE_TERRAIN_UNDERWATER 3
|
||||
#define BATTLE_TERRAIN_WATER 4
|
||||
#define BATTLE_TERRAIN_POND 5
|
||||
#define BATTLE_TERRAIN_MOUNTAIN 6
|
||||
#define BATTLE_TERRAIN_CAVE 7
|
||||
#define BATTLE_TERRAIN_BUILDING 8
|
||||
#define BATTLE_TERRAIN_PLAIN 9
|
||||
// Battle terrain defines for gBattleEnvironment.
|
||||
#define BATTLE_ENVIRONMENT_GRASS 0
|
||||
#define BATTLE_ENVIRONMENT_LONG_GRASS 1
|
||||
#define BATTLE_ENVIRONMENT_SAND 2
|
||||
#define BATTLE_ENVIRONMENT_UNDERWATER 3
|
||||
#define BATTLE_ENVIRONMENT_WATER 4
|
||||
#define BATTLE_ENVIRONMENT_POND 5
|
||||
#define BATTLE_ENVIRONMENT_MOUNTAIN 6
|
||||
#define BATTLE_ENVIRONMENT_CAVE 7
|
||||
#define BATTLE_ENVIRONMENT_BUILDING 8
|
||||
#define BATTLE_ENVIRONMENT_PLAIN 9
|
||||
// New battle terrains are used for Secret Power but not fully implemented.
|
||||
#define BATTLE_TERRAIN_SOARING 10
|
||||
#define BATTLE_TERRAIN_SKY_PILLAR 11
|
||||
#define BATTLE_TERRAIN_BURIAL_GROUND 12
|
||||
#define BATTLE_TERRAIN_PUDDLE 13
|
||||
#define BATTLE_TERRAIN_MARSH 14
|
||||
#define BATTLE_TERRAIN_SWAMP 15
|
||||
#define BATTLE_TERRAIN_SNOW 16
|
||||
#define BATTLE_TERRAIN_ICE 17
|
||||
#define BATTLE_TERRAIN_VOLCANO 18
|
||||
#define BATTLE_TERRAIN_DISTORTION_WORLD 19
|
||||
#define BATTLE_TERRAIN_SPACE 20
|
||||
#define BATTLE_TERRAIN_ULTRA_SPACE 21
|
||||
#define BATTLE_TERRAIN_LINK 22
|
||||
#define BATTLE_TERRAIN_GYM 23
|
||||
#define BATTLE_TERRAIN_LEADER 24
|
||||
#define BATTLE_TERRAIN_INDOOR_2 25
|
||||
#define BATTLE_TERRAIN_INDOOR_1 26
|
||||
#define BATTLE_TERRAIN_LORELEI 27
|
||||
#define BATTLE_TERRAIN_BRUNO 28
|
||||
#define BATTLE_TERRAIN_AGATHA 29
|
||||
#define BATTLE_TERRAIN_LANCE 30
|
||||
#define BATTLE_TERRAIN_CHAMPION 31
|
||||
#define BATTLE_ENVIRONMENT_SOARING 10
|
||||
#define BATTLE_ENVIRONMENT_SKY_PILLAR 11
|
||||
#define BATTLE_ENVIRONMENT_BURIAL_GROUND 12
|
||||
#define BATTLE_ENVIRONMENT_PUDDLE 13
|
||||
#define BATTLE_ENVIRONMENT_MARSH 14
|
||||
#define BATTLE_ENVIRONMENT_SWAMP 15
|
||||
#define BATTLE_ENVIRONMENT_SNOW 16
|
||||
#define BATTLE_ENVIRONMENT_ICE 17
|
||||
#define BATTLE_ENVIRONMENT_VOLCANO 18
|
||||
#define BATTLE_ENVIRONMENT_DISTORTION_WORLD 19
|
||||
#define BATTLE_ENVIRONMENT_SPACE 20
|
||||
#define BATTLE_ENVIRONMENT_ULTRA_SPACE 21
|
||||
#define BATTLE_ENVIRONMENT_LINK 22
|
||||
#define BATTLE_ENVIRONMENT_GYM 23
|
||||
#define BATTLE_ENVIRONMENT_LEADER 24
|
||||
#define BATTLE_ENVIRONMENT_INDOOR_2 25
|
||||
#define BATTLE_ENVIRONMENT_INDOOR_1 26
|
||||
#define BATTLE_ENVIRONMENT_LORELEI 27
|
||||
#define BATTLE_ENVIRONMENT_BRUNO 28
|
||||
#define BATTLE_ENVIRONMENT_AGATHA 29
|
||||
#define BATTLE_ENVIRONMENT_LANCE 30
|
||||
#define BATTLE_ENVIRONMENT_CHAMPION 31
|
||||
|
||||
#define BATTLE_TERRAIN_COUNT 32
|
||||
#define BATTLE_ENVIRONMENT_COUNT 32
|
||||
|
||||
#define B_WAIT_TIME_LONG (B_WAIT_TIME_MULTIPLIER * 4)
|
||||
#define B_WAIT_TIME_MED (B_WAIT_TIME_MULTIPLIER * 3)
|
||||
|
|
|
|||
|
|
@ -1,19 +1,6 @@
|
|||
#ifndef GUARD_CONSTANTS_BATTLE_AI_H
|
||||
#define GUARD_CONSTANTS_BATTLE_AI_H
|
||||
|
||||
// battlers
|
||||
#define AI_TARGET 0
|
||||
#define AI_USER 1
|
||||
#define AI_TARGET_PARTNER 2
|
||||
#define AI_USER_PARTNER 3
|
||||
|
||||
// get_type command
|
||||
#define AI_TYPE1_TARGET 0
|
||||
#define AI_TYPE1_USER 1
|
||||
#define AI_TYPE2_TARGET 2
|
||||
#define AI_TYPE2_USER 3
|
||||
#define AI_TYPE_MOVE 4
|
||||
|
||||
// AI Flags. Most run specific functions to update score, new flags are used for internal logic in other scripts
|
||||
// See docs/ai_flags.md for more details.
|
||||
#define AI_FLAG_CHECK_BAD_MOVE (1 << 0) // AI will avoid using moves that are likely to fail or be ineffective in the current situation.
|
||||
|
|
|
|||
|
|
@ -298,7 +298,7 @@
|
|||
#define ANIM_TAG_SLASH_2 (ANIM_SPRITES_START + 286)
|
||||
#define ANIM_TAG_WHIP_HIT (ANIM_SPRITES_START + 287)
|
||||
#define ANIM_TAG_BLUE_RING_2 (ANIM_SPRITES_START + 288)
|
||||
// new particles
|
||||
//new particles
|
||||
#define ANIM_TAG_WHITE_STREAK (ANIM_SPRITES_START + 289)
|
||||
#define ANIM_TAG_PURPLE_JAB (ANIM_SPRITES_START + 290)
|
||||
#define ANIM_TAG_TOXIC_SPIKES (ANIM_SPRITES_START + 291)
|
||||
|
|
@ -421,10 +421,10 @@
|
|||
#define ANIM_TAG_SALT_PARTICLE (ANIM_SPRITES_START + 407)
|
||||
|
||||
// battlers
|
||||
#define ANIM_ATTACKER 0
|
||||
#define ANIM_TARGET 1
|
||||
#define ANIM_ATK_PARTNER 2
|
||||
#define ANIM_DEF_PARTNER 3
|
||||
#define ANIM_ATTACKER 0
|
||||
#define ANIM_TARGET 1
|
||||
#define ANIM_ATK_PARTNER 2
|
||||
#define ANIM_DEF_PARTNER 3
|
||||
|
||||
// Below are used by AnimTask_ShakeMon2 and AnimTask_SetGrayscaleOrOriginalPal
|
||||
#define ANIM_PLAYER_LEFT (MAX_BATTLERS_COUNT + 0)
|
||||
|
|
@ -448,7 +448,7 @@
|
|||
#define SOUND_PAN_TARGET 63
|
||||
|
||||
// move background ids
|
||||
#define BG_NONE 0 // the same as BG_DARK
|
||||
#define BG_NONE 0 // the same as BG_DARK but is unused
|
||||
#define BG_DARK 1
|
||||
#define BG_GHOST 2
|
||||
#define BG_PSYCHIC 3
|
||||
|
|
@ -506,9 +506,9 @@
|
|||
#define BG_BOLT_STRIKE 55
|
||||
#define BG_ZMOVE_ACTIVATE 56
|
||||
#define BG_TECTONIC_RAGE 57
|
||||
#define BG_BLUE_SKY_DAY 58
|
||||
#define BG_BLUE_SKY_AFTERNOON 59
|
||||
#define BG_BLUE_SKY_NIGHT 60
|
||||
#define BG_ROCK_FIELD_DAY 58
|
||||
#define BG_ROCK_FIELD_AFTERNOON 59
|
||||
#define BG_ROCK_FIELD_NIGHT 60
|
||||
#define BG_ZMOVE_MOUNTAIN 61
|
||||
#define BG_NEVERENDING_NIGHTMARE 62
|
||||
#define BG_WATER_PULSE 63
|
||||
|
|
@ -532,7 +532,7 @@
|
|||
#define BG_RAINBOW 81
|
||||
#define BG_SWAMP 82
|
||||
|
||||
// table ids for general animations (gBattleAnims_General)
|
||||
// table ids for general animations (sBattleAnims_General)
|
||||
#define B_ANIM_STATS_CHANGE 0
|
||||
#define B_ANIM_SUBSTITUTE_FADE 1
|
||||
#define B_ANIM_SUBSTITUTE_APPEAR 2
|
||||
|
|
@ -620,7 +620,7 @@
|
|||
|
||||
#define NUM_B_ANIMS_STATUS 9
|
||||
|
||||
// Most tasks return a value to gBattleAnimArgs[7].
|
||||
// Tasks with return values often assign them to gBattleAnimArgs[7].
|
||||
#define ARG_RET_ID 7
|
||||
|
||||
// For createsprite macro to use internally
|
||||
|
|
@ -664,16 +664,16 @@
|
|||
|
||||
// Flags given to various functions to indicate which palettes to consider.
|
||||
// Handled by UnpackSelectedBattlePalettes
|
||||
#define F_PAL_BG (1 << 0)
|
||||
#define F_PAL_ATTACKER (1 << 1)
|
||||
#define F_PAL_TARGET (1 << 2)
|
||||
#define F_PAL_ATK_PARTNER (1 << 3)
|
||||
#define F_PAL_DEF_PARTNER (1 << 4)
|
||||
#define F_PAL_ANIM_1 (1 << 5) // Palette set for GetBattleAnimBg1Data/GetBgDataForTransform. Only used (ineffectually?) by Aromatherapy.
|
||||
#define F_PAL_ANIM_2 (1 << 6) // Palette set for GetBattleAnimBgData/GetBgDataForTransform. Unused.
|
||||
#define F_PAL_ATK_SIDE (F_PAL_ATTACKER | F_PAL_ATK_PARTNER)
|
||||
#define F_PAL_DEF_SIDE (F_PAL_TARGET | F_PAL_DEF_PARTNER)
|
||||
#define F_PAL_BATTLERS (F_PAL_ATK_SIDE | F_PAL_DEF_SIDE)
|
||||
#define F_PAL_BG (1 << 0)
|
||||
#define F_PAL_ATTACKER (1 << 1)
|
||||
#define F_PAL_TARGET (1 << 2)
|
||||
#define F_PAL_ATK_PARTNER (1 << 3)
|
||||
#define F_PAL_DEF_PARTNER (1 << 4)
|
||||
#define F_PAL_ANIM_1 (1 << 5) // Palette set for GetBattleAnimBg1Data/GetBgDataForTransform. Only used (ineffectually?) by Aromatherapy.
|
||||
#define F_PAL_ANIM_2 (1 << 6) // Palette set for GetBattleAnimBgData/GetBgDataForTransform. Unused.
|
||||
#define F_PAL_ATK_SIDE (F_PAL_ATTACKER | F_PAL_ATK_PARTNER)
|
||||
#define F_PAL_DEF_SIDE (F_PAL_TARGET | F_PAL_DEF_PARTNER)
|
||||
#define F_PAL_BATTLERS (F_PAL_ATK_SIDE | F_PAL_DEF_SIDE)
|
||||
#define F_PAL_ADJACENT (F_PAL_DEF_SIDE | F_PAL_ATK_PARTNER)
|
||||
#define F_PAL_ALL_BUT_DEF (F_PAL_ATK_SIDE | F_PAL_DEF_PARTNER)
|
||||
#define F_PAL_ALL_BUT_ATK_PARTNER (F_PAL_ATTACKER | F_PAL_DEF_SIDE)
|
||||
|
|
@ -681,33 +681,4 @@
|
|||
// It's redundant with F_PAL_BATTLERS, because they're only ever used together to refer to all the battlers at once.
|
||||
#define F_PAL_BATTLERS_2 (1 << 7 | 1 << 8 | 1 << 9 | 1 << 10)
|
||||
|
||||
// Battle mon back animations.
|
||||
// #define BACK_ANIM_NONE 0x00
|
||||
// #define BACK_ANIM_H_SLIDE_QUICK 0x01
|
||||
// #define BACK_ANIM_H_SLIDE 0x02
|
||||
// #define BACK_ANIM_H_SLIDE_WITH_V_COMPRESS_1 0x03
|
||||
// #define BACK_ANIM_H_SLIDE_WITH_V_COMPRESS_2 0x04
|
||||
// #define BACK_ANIM_SHRINK_GROW_1 0x05
|
||||
// #define BACK_ANIM_GROW_1 0x06
|
||||
// #define BACK_ANIM_CIRCLE_MOVE_COUNTERCLOCKWISE 0x07
|
||||
// #define BACK_ANIM_HORIZONTAL_SHAKE 0x08
|
||||
// #define BACK_ANIM_VERTICAL_SHAKE 0x09
|
||||
// #define BACK_ANIM_V_SHAKE_WITH_H_SLIDE 0x0a
|
||||
// #define BACK_ANIM_VERTICAL_STRETCH 0x0b
|
||||
// #define BACK_ANIM_HORIZONTAL_STRETCH 0x0c
|
||||
// #define BACK_ANIM_GROW_2 0x0d
|
||||
// #define BACK_ANIM_V_SHAKE_WITH_PAUSE 0x0e
|
||||
// #define BACK_ANIM_CIRCLE_MOVE_CLOCKWISE 0x0f
|
||||
// #define BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL 0x10
|
||||
// #define BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE 0x11
|
||||
// #define BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE 0x12
|
||||
// #define BACK_ANIM_DIP_RIGHT_SIDE 0x13
|
||||
// #define BACK_ANIM_SHRINK_GROW_2 0x14
|
||||
// #define BACK_ANIM_JOLT_RIGHT 0x15
|
||||
// #define BACK_ANIM_FLASH_YELLOW_WITH_SHAKE 0x16
|
||||
// #define BACK_ANIM_FADE_RED_WITH_SHAKE 0x17
|
||||
// #define BACK_ANIM_FADE_GREEN_WITH_SHAKE 0x18
|
||||
// #define BACK_ANIM_FADE_BLUE_WITH_SHAKE 0x19
|
||||
|
||||
|
||||
#endif // GUARD_CONSTANTS_BATTLE_ANIM_H
|
||||
|
|
|
|||
|
|
@ -6482,11 +6482,11 @@ extern const u32 gBattleAnimBgTilemap_PsychicTerrain[];
|
|||
extern const u32 gBattleAnimBgImage_ShatteredPsyche[];
|
||||
extern const u16 gBattleAnimBgPalette_ShatteredPsyche[];
|
||||
extern const u32 gBattleAnimBgTilemap_ShatteredPsyche[];
|
||||
extern const u32 gBattleAnimBgImage_SkyDay[];
|
||||
extern const u16 gBattleAnimBgPalette_SkyDay[];
|
||||
extern const u32 gBattleAnimBgTilemap_SkyDay[];
|
||||
extern const u16 gBattleAnimBgPalette_SkyAfternoon[];
|
||||
extern const u16 gBattleAnimBgPalette_SkyNight[];
|
||||
extern const u32 gBattleAnimBgImage_RockField[];
|
||||
extern const u16 gBattleAnimBgPalette_RockDay[];
|
||||
extern const u32 gBattleAnimBgTilemap_RockField[];
|
||||
extern const u16 gBattleAnimBgPalette_RockAfternoon[];
|
||||
extern const u16 gBattleAnimBgPalette_RockNight[];
|
||||
extern const u32 gBattleAnimBgImage_SnuggleForever[];
|
||||
extern const u16 gBattleAnimBgPalette_SnuggleForever[];
|
||||
extern const u32 gBattleAnimBgTilemap_SnuggleForever[];
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ static void AnimComplexPaletteBlend(struct Sprite *);
|
|||
static void AnimComplexPaletteBlend_Step1(struct Sprite *);
|
||||
static void AnimComplexPaletteBlend_Step2(struct Sprite *);
|
||||
static void AnimCirclingSparkle(struct Sprite *);
|
||||
static void AnimShakeMonOrBattleTerrain(struct Sprite *);
|
||||
static void AnimShakeMonOrBattleTerrain_Step(struct Sprite *);
|
||||
static void AnimShakeMonOrBattleTerrain_UpdateCoordOffsetEnabled(void);
|
||||
static void AnimShakeMonOrBattlePlatforms(struct Sprite *);
|
||||
static void AnimShakeMonOrBattlePlatforms_Step(struct Sprite *);
|
||||
static void AnimShakeMonOrBattlePlatforms_UpdateCoordOffsetEnabled(void);
|
||||
static void AnimHitSplatPersistent(struct Sprite *);
|
||||
static void AnimHitSplatHandleInvert(struct Sprite *);
|
||||
static void AnimConfusionDuck_Step(struct Sprite *);
|
||||
|
|
@ -27,7 +27,7 @@ static void BlendColorCycleByTag(u8, u8, u8);
|
|||
static void AnimTask_BlendColorCycleByTagLoop(u8);
|
||||
static void AnimTask_FlashAnimTagWithColor_Step1(u8);
|
||||
static void AnimTask_FlashAnimTagWithColor_Step2(u8);
|
||||
static void AnimTask_ShakeBattleTerrain_Step(u8);
|
||||
static void AnimTask_ShakeBattlePlatforms_Step(u8);
|
||||
static void AnimMovePowerSwapGuardSwap(struct Sprite *);
|
||||
|
||||
static const union AnimCmd sAnim_ConfusionDuck_0[] =
|
||||
|
|
@ -171,7 +171,7 @@ static const struct SpriteTemplate sCirclingSparkleSpriteTemplate =
|
|||
.callback = AnimCirclingSparkle,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gShakeMonOrTerrainSpriteTemplate =
|
||||
const struct SpriteTemplate gShakeMonOrPlatformSpriteTemplate =
|
||||
{
|
||||
.tileTag = 0,
|
||||
.paletteTag = 0,
|
||||
|
|
@ -179,7 +179,7 @@ const struct SpriteTemplate gShakeMonOrTerrainSpriteTemplate =
|
|||
.anims = gDummySpriteAnimTable,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = AnimShakeMonOrBattleTerrain,
|
||||
.callback = AnimShakeMonOrBattlePlatforms,
|
||||
};
|
||||
|
||||
static const union AffineAnimCmd sAffineAnim_HitSplat_0[] =
|
||||
|
|
@ -899,7 +899,7 @@ void AnimTask_TintPalettes(u8 taskId)
|
|||
#undef tColorG
|
||||
#undef tColorB
|
||||
|
||||
static void AnimShakeMonOrBattleTerrain(struct Sprite *sprite)
|
||||
static void AnimShakeMonOrBattlePlatforms(struct Sprite *sprite)
|
||||
{
|
||||
u16 var0;
|
||||
|
||||
|
|
@ -929,12 +929,12 @@ static void AnimShakeMonOrBattleTerrain(struct Sprite *sprite)
|
|||
sprite->data[5] = gBattleAnimArgs[3];
|
||||
var0 = sprite->data[5] - 2;
|
||||
if (var0 < 2)
|
||||
AnimShakeMonOrBattleTerrain_UpdateCoordOffsetEnabled();
|
||||
AnimShakeMonOrBattlePlatforms_UpdateCoordOffsetEnabled();
|
||||
|
||||
sprite->callback = AnimShakeMonOrBattleTerrain_Step;
|
||||
sprite->callback = AnimShakeMonOrBattlePlatforms_Step;
|
||||
}
|
||||
|
||||
static void AnimShakeMonOrBattleTerrain_Step(struct Sprite *sprite)
|
||||
static void AnimShakeMonOrBattlePlatforms_Step(struct Sprite *sprite)
|
||||
{
|
||||
u8 i;
|
||||
u16 var0;
|
||||
|
|
@ -967,7 +967,7 @@ static void AnimShakeMonOrBattleTerrain_Step(struct Sprite *sprite)
|
|||
}
|
||||
}
|
||||
|
||||
static void AnimShakeMonOrBattleTerrain_UpdateCoordOffsetEnabled(void)
|
||||
static void AnimShakeMonOrBattlePlatforms_UpdateCoordOffsetEnabled(void)
|
||||
{
|
||||
gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = FALSE;
|
||||
gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = FALSE;
|
||||
|
|
@ -986,19 +986,19 @@ static void AnimShakeMonOrBattleTerrain_UpdateCoordOffsetEnabled(void)
|
|||
}
|
||||
}
|
||||
|
||||
// Task data for AnimTask_ShakeBattleTerrain
|
||||
// Task data for AnimTask_ShakeBattlePlatforms
|
||||
#define tXOffset data[0]
|
||||
#define tYOffset data[1]
|
||||
#define tNumShakes data[2]
|
||||
#define tTimer data[3]
|
||||
#define tShakeDelay data[8]
|
||||
|
||||
// Can shake battle terrain back and forth on the X or down and back to original pos on Y (cant shake up from orig pos)
|
||||
// Can shake battle platforms back and forth on the X or down and back to original pos on Y (cant shake up from orig pos)
|
||||
// arg0: x offset of shake
|
||||
// arg1: y offset of shake
|
||||
// arg2: number of shakes
|
||||
// arg3: time between shakes
|
||||
void AnimTask_ShakeBattleTerrain(u8 taskId)
|
||||
void AnimTask_ShakeBattlePlatforms(u8 taskId)
|
||||
{
|
||||
gTasks[taskId].tXOffset = gBattleAnimArgs[0];
|
||||
gTasks[taskId].tYOffset = gBattleAnimArgs[1];
|
||||
|
|
@ -1007,11 +1007,11 @@ void AnimTask_ShakeBattleTerrain(u8 taskId)
|
|||
gTasks[taskId].tShakeDelay = gBattleAnimArgs[3];
|
||||
gBattle_BG3_X = gBattleAnimArgs[0];
|
||||
gBattle_BG3_Y = gBattleAnimArgs[1];
|
||||
gTasks[taskId].func = AnimTask_ShakeBattleTerrain_Step;
|
||||
gTasks[taskId].func = AnimTask_ShakeBattlePlatforms_Step;
|
||||
gTasks[taskId].func(taskId);
|
||||
}
|
||||
|
||||
static void AnimTask_ShakeBattleTerrain_Step(u8 taskId)
|
||||
static void AnimTask_ShakeBattlePlatforms_Step(u8 taskId)
|
||||
{
|
||||
if (gTasks[taskId].tTimer == 0)
|
||||
{
|
||||
|
|
@ -1045,6 +1045,10 @@ static void AnimTask_ShakeBattleTerrain_Step(u8 taskId)
|
|||
#undef tTimer
|
||||
#undef tShakeDelay
|
||||
|
||||
// args[0] - initial pos x
|
||||
// args[1] - initial pos y
|
||||
// args[2] - which battler
|
||||
// args[3] - affine anim number
|
||||
void AnimHitSplatBasic(struct Sprite *sprite)
|
||||
{
|
||||
StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]);
|
||||
|
|
|
|||
|
|
@ -104,36 +104,36 @@ void AnimTask_BlendBattleAnimPalExclude(u8 taskId)
|
|||
void AnimTask_SetCamouflageBlend(u8 taskId)
|
||||
{
|
||||
u32 selectedPalettes = UnpackSelectedBattlePalettes(gBattleAnimArgs[0]);
|
||||
switch (gBattleTerrain)
|
||||
switch (gBattleEnvironment)
|
||||
{
|
||||
case BATTLE_TERRAIN_GRASS:
|
||||
case BATTLE_ENVIRONMENT_GRASS:
|
||||
gBattleAnimArgs[4] = RGB(12, 24, 2);
|
||||
break;
|
||||
case BATTLE_TERRAIN_LONG_GRASS:
|
||||
case BATTLE_ENVIRONMENT_LONG_GRASS:
|
||||
gBattleAnimArgs[4] = RGB(0, 15, 2);
|
||||
break;
|
||||
case BATTLE_TERRAIN_SAND:
|
||||
case BATTLE_ENVIRONMENT_SAND:
|
||||
gBattleAnimArgs[4] = RGB(30, 24, 11);
|
||||
break;
|
||||
case BATTLE_TERRAIN_UNDERWATER:
|
||||
case BATTLE_ENVIRONMENT_UNDERWATER:
|
||||
gBattleAnimArgs[4] = RGB(0, 0, 18);
|
||||
break;
|
||||
case BATTLE_TERRAIN_WATER:
|
||||
case BATTLE_ENVIRONMENT_WATER:
|
||||
gBattleAnimArgs[4] = RGB(11, 22, 31);
|
||||
break;
|
||||
case BATTLE_TERRAIN_POND:
|
||||
case BATTLE_ENVIRONMENT_POND:
|
||||
gBattleAnimArgs[4] = RGB(11, 22, 31);
|
||||
break;
|
||||
case BATTLE_TERRAIN_MOUNTAIN:
|
||||
case BATTLE_ENVIRONMENT_MOUNTAIN:
|
||||
gBattleAnimArgs[4] = RGB(22, 16, 10);
|
||||
break;
|
||||
case BATTLE_TERRAIN_CAVE:
|
||||
case BATTLE_ENVIRONMENT_CAVE:
|
||||
gBattleAnimArgs[4] = RGB(14, 9, 3);
|
||||
break;
|
||||
case BATTLE_TERRAIN_BUILDING:
|
||||
case BATTLE_ENVIRONMENT_BUILDING:
|
||||
gBattleAnimArgs[4] = RGB_WHITE;
|
||||
break;
|
||||
case BATTLE_TERRAIN_PLAIN:
|
||||
case BATTLE_ENVIRONMENT_PLAIN:
|
||||
default:
|
||||
gBattleAnimArgs[4] = RGB_WHITE;
|
||||
break;
|
||||
|
|
@ -316,9 +316,7 @@ void AnimTask_DrawFallingWhiteLinesOnAttacker(u8 taskId)
|
|||
}
|
||||
|
||||
if (IsContest())
|
||||
{
|
||||
species = SPECIES_NONE; // species = gContestResources->moveAnim->species;
|
||||
}
|
||||
species = 0; //gContestResources->moveAnim->species;
|
||||
else
|
||||
species = GetMonData(GetPartyBattlerData(gBattleAnimAttacker), MON_DATA_SPECIES);
|
||||
|
||||
|
|
@ -453,9 +451,7 @@ static void StatsChangeAnimation_Step1(u8 taskId)
|
|||
}
|
||||
|
||||
if (IsContest())
|
||||
{
|
||||
sAnimStatsChangeData->species = SPECIES_NONE; // sAnimStatsChangeData->species = gContestResources->moveAnim->species;
|
||||
}
|
||||
sAnimStatsChangeData->species = 0; // gContestResources->moveAnim->species;
|
||||
else
|
||||
sAnimStatsChangeData->species = GetMonData(GetPartyBattlerData(sAnimStatsChangeData->battler1), MON_DATA_SPECIES);
|
||||
|
||||
|
|
@ -726,6 +722,10 @@ void AnimTask_BlendNonAttackerPalettes(u8 taskId)
|
|||
StartBlendAnimSpriteColor(taskId, selectedPalettes);
|
||||
}
|
||||
|
||||
// gBattleAnimArgs[0] - initial x
|
||||
// gBattleAnimArgs[1] - initial y
|
||||
// gBattleAnimArgs[2] - negative?
|
||||
// gBattleAnimArgs[3] - sentinel value to compare to
|
||||
void AnimTask_StartSlidingBg(u8 taskId)
|
||||
{
|
||||
u8 newTaskId;
|
||||
|
|
@ -830,9 +830,7 @@ void StartMonScrollingBgMask(u8 taskId, int UNUSED unused, u16 scrollSpeed, u8 b
|
|||
SetGpuReg(REG_OFFSET_BG1CNT, bg1Cnt);
|
||||
|
||||
if (IsContest())
|
||||
{
|
||||
species = SPECIES_NONE; // species = gContestResources->moveAnim->species;
|
||||
}
|
||||
species = 0; // gContestResources->moveAnim->species;
|
||||
else
|
||||
species = GetMonData(GetPartyBattlerData(battler), MON_DATA_SPECIES);
|
||||
|
||||
|
|
@ -918,9 +916,9 @@ static void UpdateMonScrollingBgMask(u8 taskId)
|
|||
}
|
||||
}
|
||||
|
||||
void AnimTask_GetBattleTerrain(u8 taskId)
|
||||
void AnimTask_GetBattleEnvironment(u8 taskId)
|
||||
{
|
||||
gBattleAnimArgs[0] = gBattleTerrain;
|
||||
gBattleAnimArgs[0] = gBattleEnvironment;
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
|
||||
|
|
@ -1042,7 +1040,7 @@ void AnimTask_SetAnimAttackerAndTargetForEffectTgt(u8 taskId)
|
|||
|
||||
void AnimTask_IsTargetSameSide(u8 taskId)
|
||||
{
|
||||
if (GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget))
|
||||
if (IsBattlerAlly(gBattleAnimAttacker, gBattleAnimTarget))
|
||||
gBattleAnimArgs[ARG_RET_ID] = TRUE;
|
||||
else
|
||||
gBattleAnimArgs[ARG_RET_ID] = FALSE;
|
||||
|
|
|
|||
|
|
@ -376,14 +376,14 @@ static const struct {
|
|||
u8 mapScene;
|
||||
u8 battleTerrain;
|
||||
} sMapBattleSceneMapping[] = {
|
||||
{MAP_BATTLE_SCENE_GYM, BATTLE_TERRAIN_GYM},
|
||||
{MAP_BATTLE_SCENE_INDOOR_1, BATTLE_TERRAIN_INDOOR_1},
|
||||
{MAP_BATTLE_SCENE_INDOOR_2, BATTLE_TERRAIN_INDOOR_2},
|
||||
{MAP_BATTLE_SCENE_LORELEI, BATTLE_TERRAIN_LORELEI},
|
||||
{MAP_BATTLE_SCENE_BRUNO, BATTLE_TERRAIN_BRUNO},
|
||||
{MAP_BATTLE_SCENE_AGATHA, BATTLE_TERRAIN_AGATHA},
|
||||
{MAP_BATTLE_SCENE_LANCE, BATTLE_TERRAIN_LANCE},
|
||||
{MAP_BATTLE_SCENE_LINK, BATTLE_TERRAIN_LINK}
|
||||
{MAP_BATTLE_SCENE_GYM, BATTLE_ENVIRONMENT_GYM},
|
||||
{MAP_BATTLE_SCENE_INDOOR_1, BATTLE_ENVIRONMENT_INDOOR_1},
|
||||
{MAP_BATTLE_SCENE_INDOOR_2, BATTLE_ENVIRONMENT_INDOOR_2},
|
||||
{MAP_BATTLE_SCENE_LORELEI, BATTLE_ENVIRONMENT_LORELEI},
|
||||
{MAP_BATTLE_SCENE_BRUNO, BATTLE_ENVIRONMENT_BRUNO},
|
||||
{MAP_BATTLE_SCENE_AGATHA, BATTLE_ENVIRONMENT_AGATHA},
|
||||
{MAP_BATTLE_SCENE_LANCE, BATTLE_ENVIRONMENT_LANCE},
|
||||
{MAP_BATTLE_SCENE_LINK, BATTLE_ENVIRONMENT_LINK}
|
||||
};
|
||||
|
||||
static u8 GetBattleTerrainByMapScene(u8 mapBattleScene)
|
||||
|
|
@ -394,12 +394,12 @@ static u8 GetBattleTerrainByMapScene(u8 mapBattleScene)
|
|||
if (mapBattleScene == sMapBattleSceneMapping[i].mapScene)
|
||||
return sMapBattleSceneMapping[i].battleTerrain;
|
||||
}
|
||||
return BATTLE_TERRAIN_PLAIN;
|
||||
return BATTLE_ENVIRONMENT_PLAIN;
|
||||
}
|
||||
|
||||
static const void* const sSeasonBattleBackgrounds[BATTLE_TERRAIN_COUNT][SEASON_WINTER + 1] =
|
||||
static const void* const sSeasonBattleBackgrounds[BATTLE_ENVIRONMENT_COUNT][SEASON_WINTER + 1] =
|
||||
{
|
||||
[BATTLE_TERRAIN_GRASS] =
|
||||
[BATTLE_ENVIRONMENT_GRASS] =
|
||||
{
|
||||
[SEASON_SPRING] = &gBattleTerrainPalette_Grass,
|
||||
[SEASON_SUMMER] = &gBattleTerrainPalette_GrassSummer,
|
||||
|
|
@ -421,7 +421,7 @@ const void* GetBattleBackgroundPalette(u16 terrain)
|
|||
static void LoadBattleTerrainGfx(u16 terrain)
|
||||
{
|
||||
if (terrain >= NELEMS(gBattleTerrainInfo))
|
||||
terrain = BATTLE_TERRAIN_PLAIN;
|
||||
terrain = BATTLE_ENVIRONMENT_PLAIN;
|
||||
// Copy to bg3
|
||||
LZDecompressVram(gBattleTerrainInfo[terrain].background.tileset, (void *)BG_CHAR_ADDR(2));
|
||||
LZDecompressVram(gBattleTerrainInfo[terrain].background.tilemap, (void *)BG_SCREEN_ADDR(26));
|
||||
|
|
@ -431,7 +431,7 @@ static void LoadBattleTerrainGfx(u16 terrain)
|
|||
static void LoadBattleTerrainEntryGfx(u16 terrain)
|
||||
{
|
||||
if (terrain >= NELEMS(gBattleTerrainInfo))
|
||||
terrain = BATTLE_TERRAIN_PLAIN;
|
||||
terrain = BATTLE_ENVIRONMENT_PLAIN;
|
||||
// Copy to bg1
|
||||
LZDecompressVram(gBattleTerrainInfo[terrain].background.entryTileset, (void *)BG_CHAR_ADDR(1));
|
||||
LZDecompressVram(gBattleTerrainInfo[terrain].background.entryTilemap, (void *)BG_SCREEN_ADDR(28));
|
||||
|
|
@ -440,8 +440,8 @@ static void LoadBattleTerrainEntryGfx(u16 terrain)
|
|||
// Unused
|
||||
void GetBattleTerrainGfxPtrs(u8 terrain, const u32 **tilesPtr, const u32 **mapPtr, const u32 **palPtr)
|
||||
{
|
||||
if (terrain > BATTLE_TERRAIN_PLAIN)
|
||||
terrain = BATTLE_TERRAIN_PLAIN;
|
||||
if (terrain > BATTLE_ENVIRONMENT_PLAIN)
|
||||
terrain = BATTLE_ENVIRONMENT_PLAIN;
|
||||
*tilesPtr = gBattleTerrainInfo[terrain].background.tileset;
|
||||
*mapPtr = gBattleTerrainInfo[terrain].background.tilemap;
|
||||
*palPtr = gBattleTerrainInfo[terrain].background.palette;
|
||||
|
|
@ -780,27 +780,27 @@ void DrawBattleEntryBackground(void)
|
|||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_POKEDUDE)
|
||||
{
|
||||
LoadBattleTerrainEntryGfx(BATTLE_TERRAIN_GRASS);
|
||||
LoadBattleTerrainEntryGfx(BATTLE_ENVIRONMENT_GRASS);
|
||||
}
|
||||
else if (gBattleTypeFlags & (BATTLE_TYPE_TRAINER_TOWER | BATTLE_TYPE_LINK | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_RECORDED_LINK))
|
||||
{
|
||||
LoadBattleTerrainEntryGfx(BATTLE_TERRAIN_BUILDING);
|
||||
LoadBattleTerrainEntryGfx(BATTLE_ENVIRONMENT_BUILDING);
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_LEGENDARY)
|
||||
{
|
||||
switch (GetMonData(&gEnemyParty[0], MON_DATA_SPECIES))
|
||||
{
|
||||
case SPECIES_GROUDON:
|
||||
LoadBattleTerrainEntryGfx(BATTLE_TERRAIN_CAVE);
|
||||
LoadBattleTerrainEntryGfx(BATTLE_ENVIRONMENT_CAVE);
|
||||
break;
|
||||
case SPECIES_KYOGRE:
|
||||
LoadBattleTerrainEntryGfx(BATTLE_TERRAIN_WATER);
|
||||
LoadBattleTerrainEntryGfx(BATTLE_ENVIRONMENT_WATER);
|
||||
break;
|
||||
default:
|
||||
if (GetCurrentMapBattleScene() == MAP_BATTLE_SCENE_NORMAL)
|
||||
LoadBattleTerrainEntryGfx(gBattleTerrain);
|
||||
LoadBattleTerrainEntryGfx(gBattleEnvironment);
|
||||
else
|
||||
LoadBattleTerrainEntryGfx(BATTLE_TERRAIN_BUILDING);
|
||||
LoadBattleTerrainEntryGfx(BATTLE_ENVIRONMENT_BUILDING);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -811,23 +811,23 @@ void DrawBattleEntryBackground(void)
|
|||
u32 trainerClass = GetTrainerClassFromId(TRAINER_BATTLE_PARAM.opponentA);
|
||||
if (trainerClass == TRAINER_CLASS_LEADER)
|
||||
{
|
||||
LoadBattleTerrainEntryGfx(BATTLE_TERRAIN_BUILDING);
|
||||
LoadBattleTerrainEntryGfx(BATTLE_ENVIRONMENT_BUILDING);
|
||||
return;
|
||||
}
|
||||
else if (trainerClass == TRAINER_CLASS_CHAMPION)
|
||||
{
|
||||
LoadBattleTerrainEntryGfx(BATTLE_TERRAIN_BUILDING);
|
||||
LoadBattleTerrainEntryGfx(BATTLE_ENVIRONMENT_BUILDING);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (GetCurrentMapBattleScene() == MAP_BATTLE_SCENE_NORMAL)
|
||||
{
|
||||
LoadBattleTerrainEntryGfx(gBattleTerrain);
|
||||
LoadBattleTerrainEntryGfx(gBattleEnvironment);
|
||||
}
|
||||
else
|
||||
{
|
||||
LoadBattleTerrainEntryGfx(BATTLE_TERRAIN_BUILDING);
|
||||
LoadBattleTerrainEntryGfx(BATTLE_ENVIRONMENT_BUILDING);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -837,25 +837,25 @@ static u8 GetBattleTerrainOverride(void)
|
|||
u8 battleScene;
|
||||
if (gBattleTypeFlags & (BATTLE_TYPE_TRAINER_TOWER | BATTLE_TYPE_LINK | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_RECORDED_LINK))
|
||||
{
|
||||
return BATTLE_TERRAIN_LINK;
|
||||
return BATTLE_ENVIRONMENT_LINK;
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_POKEDUDE)
|
||||
{
|
||||
gBattleTerrain = BATTLE_TERRAIN_GRASS;
|
||||
return BATTLE_TERRAIN_GRASS;
|
||||
gBattleEnvironment = BATTLE_ENVIRONMENT_GRASS;
|
||||
return BATTLE_ENVIRONMENT_GRASS;
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
|
||||
{
|
||||
u32 trainerClass = GetTrainerClassFromId(TRAINER_BATTLE_PARAM.opponentA);
|
||||
if (trainerClass == TRAINER_CLASS_LEADER)
|
||||
return BATTLE_TERRAIN_LEADER;
|
||||
return BATTLE_ENVIRONMENT_LEADER;
|
||||
else if (trainerClass == TRAINER_CLASS_CHAMPION)
|
||||
return BATTLE_TERRAIN_CHAMPION;
|
||||
return BATTLE_ENVIRONMENT_CHAMPION;
|
||||
}
|
||||
battleScene = GetCurrentMapBattleScene();
|
||||
if (battleScene == MAP_BATTLE_SCENE_NORMAL)
|
||||
{
|
||||
return gBattleTerrain;
|
||||
return gBattleEnvironment;
|
||||
}
|
||||
return GetBattleTerrainByMapScene(battleScene);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,16 +17,16 @@ static const u8 sBattleAnimBgCnts[] = {REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, REG
|
|||
|
||||
static const TaskFunc sBattleIntroSlideFuncs[] =
|
||||
{
|
||||
BattleIntroSlide1, // BATTLE_TERRAIN_GRASS
|
||||
BattleIntroSlide1, // BATTLE_TERRAIN_LONG_GRASS
|
||||
BattleIntroSlide2, // BATTLE_TERRAIN_SAND
|
||||
BattleIntroSlide2, // BATTLE_TERRAIN_UNDERWATER
|
||||
BattleIntroSlide2, // BATTLE_TERRAIN_WATER
|
||||
BattleIntroSlide1, // BATTLE_TERRAIN_POND
|
||||
BattleIntroSlide1, // BATTLE_TERRAIN_MOUNTAIN
|
||||
BattleIntroSlide1, // BATTLE_TERRAIN_CAVE
|
||||
BattleIntroSlide3, // BATTLE_TERRAIN_BUILDING
|
||||
BattleIntroSlide3, // BATTLE_TERRAIN_PLAIN
|
||||
BattleIntroSlide1, // BATTLE_ENVIRONMENT_GRASS
|
||||
BattleIntroSlide1, // BATTLE_ENVIRONMENT_LONG_GRASS
|
||||
BattleIntroSlide2, // BATTLE_ENVIRONMENT_SAND
|
||||
BattleIntroSlide2, // BATTLE_ENVIRONMENT_UNDERWATER
|
||||
BattleIntroSlide2, // BATTLE_ENVIRONMENT_WATER
|
||||
BattleIntroSlide1, // BATTLE_ENVIRONMENT_POND
|
||||
BattleIntroSlide1, // BATTLE_ENVIRONMENT_MOUNTAIN
|
||||
BattleIntroSlide1, // BATTLE_ENVIRONMENT_CAVE
|
||||
BattleIntroSlide3, // BATTLE_ENVIRONMENT_BUILDING
|
||||
BattleIntroSlide3, // BATTLE_ENVIRONMENT_PLAIN
|
||||
};
|
||||
|
||||
void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value)
|
||||
|
|
@ -103,7 +103,7 @@ void HandleIntroSlide(u8 terrain)
|
|||
}
|
||||
else if ((gBattleTypeFlags & BATTLE_TYPE_LEGENDARY) && GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, NULL) == SPECIES_KYOGRE)
|
||||
{
|
||||
terrain = BATTLE_TERRAIN_UNDERWATER;
|
||||
terrain = BATTLE_ENVIRONMENT_UNDERWATER;
|
||||
taskId = CreateTask(BattleIntroSlide2, 0);
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -146,7 +146,7 @@ EWRAM_DATA u8 gBattleTextBuff1[TEXT_BUFF_ARRAY_COUNT] = {0};
|
|||
EWRAM_DATA u8 gBattleTextBuff2[TEXT_BUFF_ARRAY_COUNT] = {0};
|
||||
EWRAM_DATA u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT + 13] = {0}; // expanded for stupidly long z move names
|
||||
EWRAM_DATA u32 gBattleTypeFlags = 0;
|
||||
EWRAM_DATA u8 gBattleTerrain = 0;
|
||||
EWRAM_DATA u8 gBattleEnvironment = 0;
|
||||
EWRAM_DATA struct MultiPartnerMenuPokemon gMultiPartnerParty[MULTI_PARTY_SIZE] = {0};
|
||||
EWRAM_DATA static struct MultiPartnerMenuPokemon* sMultiPartnerPartyBuffer = NULL;
|
||||
EWRAM_DATA u8 *gBattleAnimBgTileBuffer = NULL;
|
||||
|
|
@ -566,10 +566,10 @@ static void CB2_InitBattleInternal(void)
|
|||
|
||||
if (!DEBUG_OVERWORLD_MENU || (DEBUG_OVERWORLD_MENU && !gIsDebugBattle))
|
||||
{
|
||||
gBattleTerrain = BattleSetup_GetTerrainId();
|
||||
gBattleEnvironment = BattleSetup_GetTerrainId();
|
||||
}
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
|
||||
gBattleTerrain = BATTLE_TERRAIN_BUILDING;
|
||||
gBattleEnvironment = BATTLE_ENVIRONMENT_BUILDING;
|
||||
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && !(gBattleTypeFlags & (BATTLE_TYPE_FRONTIER
|
||||
| BATTLE_TYPE_EREADER_TRAINER
|
||||
|
|
@ -3182,7 +3182,7 @@ static void DoBattleIntro(void)
|
|||
if (!gBattleControllerExecFlags)
|
||||
{
|
||||
battler = GetBattlerAtPosition(0);
|
||||
BtlController_EmitIntroSlide(battler, BUFFER_A, gBattleTerrain);
|
||||
BtlController_EmitIntroSlide(battler, BUFFER_A, gBattleEnvironment);
|
||||
MarkBattlerForControllerExec(battler);
|
||||
gBattleCommunication[0] = 0;
|
||||
gBattleCommunication[1] = 0;
|
||||
|
|
|
|||
|
|
@ -4047,7 +4047,7 @@ void SetMoveEffect(bool32 primary, bool32 certain)
|
|||
}
|
||||
}
|
||||
else
|
||||
gBattleScripting.moveEffect = gBattleTerrainInfo[gBattleTerrain].secretPowerEffect;
|
||||
gBattleScripting.moveEffect = gBattleTerrainInfo[gBattleEnvironment].secretPowerEffect;
|
||||
SetMoveEffect(primary, certain);
|
||||
break;
|
||||
case MOVE_EFFECT_PSYCHIC_NOISE:
|
||||
|
|
@ -14812,7 +14812,7 @@ static void Cmd_callterrainattack(void)
|
|||
|
||||
u32 GetNaturePowerMove(u32 battler)
|
||||
{
|
||||
u32 move = gBattleTerrainInfo[gBattleTerrain].naturePower;
|
||||
u32 move = gBattleTerrainInfo[gBattleEnvironment].naturePower;
|
||||
if (gFieldStatuses & STATUS_FIELD_MISTY_TERRAIN)
|
||||
move = MOVE_MOONBLAST;
|
||||
else if (gFieldStatuses & STATUS_FIELD_ELECTRIC_TERRAIN)
|
||||
|
|
@ -14821,7 +14821,7 @@ u32 GetNaturePowerMove(u32 battler)
|
|||
move = MOVE_ENERGY_BALL;
|
||||
else if (gFieldStatuses & STATUS_FIELD_PSYCHIC_TERRAIN)
|
||||
move = MOVE_PSYCHIC;
|
||||
else if (gBattleTerrainInfo[gBattleTerrain].naturePower == MOVE_NONE)
|
||||
else if (gBattleTerrainInfo[gBattleEnvironment].naturePower == MOVE_NONE)
|
||||
move = MOVE_TRI_ATTACK;
|
||||
|
||||
if (GetActiveGimmick(battler) == GIMMICK_Z_MOVE)
|
||||
|
|
@ -15673,7 +15673,7 @@ static void Cmd_tryrecycleitem(void)
|
|||
|
||||
bool32 CanCamouflage(u8 battler)
|
||||
{
|
||||
if (IS_BATTLER_OF_TYPE(battler, gBattleTerrainInfo[gBattleTerrain].camouflageType))
|
||||
if (IS_BATTLER_OF_TYPE(battler, gBattleTerrainInfo[gBattleEnvironment].camouflageType))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
|
@ -15698,7 +15698,7 @@ static void Cmd_settypetoterrain(void)
|
|||
terrainType = TYPE_PSYCHIC;
|
||||
break;
|
||||
default:
|
||||
terrainType = gBattleTerrainInfo[gBattleTerrain].camouflageType;
|
||||
terrainType = gBattleTerrainInfo[gBattleEnvironment].camouflageType;
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -423,11 +423,11 @@ u8 BattleSetup_GetTerrainId(void)
|
|||
PlayerGetDestCoords(&x, &y);
|
||||
tileBehavior = MapGridGetMetatileBehaviorAt(x, y);
|
||||
if (MetatileBehavior_IsTallGrass(tileBehavior))
|
||||
return BATTLE_TERRAIN_GRASS;
|
||||
return BATTLE_ENVIRONMENT_GRASS;
|
||||
if (MetatileBehavior_IsLongGrass(tileBehavior))
|
||||
return BATTLE_TERRAIN_LONG_GRASS;
|
||||
return BATTLE_ENVIRONMENT_LONG_GRASS;
|
||||
if (MetatileBehavior_IsSandOrShallowFlowingWater(tileBehavior))
|
||||
return BATTLE_TERRAIN_SAND;
|
||||
return BATTLE_ENVIRONMENT_SAND;
|
||||
switch (gMapHeader.mapType)
|
||||
{
|
||||
case MAP_TYPE_TOWN:
|
||||
|
|
@ -436,34 +436,34 @@ u8 BattleSetup_GetTerrainId(void)
|
|||
break;
|
||||
case MAP_TYPE_UNDERGROUND:
|
||||
if (MetatileBehavior_IsIndoorEncounter(tileBehavior))
|
||||
return BATTLE_TERRAIN_BUILDING;
|
||||
return BATTLE_ENVIRONMENT_BUILDING;
|
||||
if (MetatileBehavior_IsSurfable(tileBehavior))
|
||||
return BATTLE_TERRAIN_POND;
|
||||
return BATTLE_TERRAIN_CAVE;
|
||||
return BATTLE_ENVIRONMENT_POND;
|
||||
return BATTLE_ENVIRONMENT_CAVE;
|
||||
case MAP_TYPE_INDOOR:
|
||||
case MAP_TYPE_SECRET_BASE:
|
||||
return BATTLE_TERRAIN_BUILDING;
|
||||
return BATTLE_ENVIRONMENT_BUILDING;
|
||||
case MAP_TYPE_UNDERWATER:
|
||||
return BATTLE_TERRAIN_UNDERWATER;
|
||||
return BATTLE_ENVIRONMENT_UNDERWATER;
|
||||
case MAP_TYPE_OCEAN_ROUTE:
|
||||
if (MetatileBehavior_IsSurfable(tileBehavior))
|
||||
return BATTLE_TERRAIN_WATER;
|
||||
return BATTLE_TERRAIN_PLAIN;
|
||||
return BATTLE_ENVIRONMENT_WATER;
|
||||
return BATTLE_ENVIRONMENT_PLAIN;
|
||||
}
|
||||
if (MetatileBehavior_IsDeepWaterTerrain(tileBehavior))
|
||||
return BATTLE_TERRAIN_WATER;
|
||||
return BATTLE_ENVIRONMENT_WATER;
|
||||
if (MetatileBehavior_IsSurfable(tileBehavior))
|
||||
return BATTLE_TERRAIN_POND;
|
||||
return BATTLE_ENVIRONMENT_POND;
|
||||
if (MetatileBehavior_IsMountain(tileBehavior))
|
||||
return BATTLE_TERRAIN_MOUNTAIN;
|
||||
return BATTLE_ENVIRONMENT_MOUNTAIN;
|
||||
if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING))
|
||||
{
|
||||
if (MetatileBehavior_GetBridgeType(tileBehavior))
|
||||
return BATTLE_TERRAIN_POND;
|
||||
return BATTLE_ENVIRONMENT_POND;
|
||||
if (MetatileBehavior_IsBridge(tileBehavior) == TRUE)
|
||||
return BATTLE_TERRAIN_WATER;
|
||||
return BATTLE_ENVIRONMENT_WATER;
|
||||
}
|
||||
return BATTLE_TERRAIN_PLAIN;
|
||||
return BATTLE_ENVIRONMENT_PLAIN;
|
||||
}
|
||||
|
||||
static u8 GetBattleTransitionTypeByMap(void)
|
||||
|
|
|
|||
|
|
@ -2000,9 +2000,9 @@ const struct BattleAnimBackground gBattleAnimBackgroundTable[] =
|
|||
[BG_BOLT_STRIKE] = {gBattleAnimBgImage_BoltStrike, gBattleAnimBgPalette_BoltStrike, gBattleAnimBgTilemap_BoltStrike},
|
||||
[BG_ZMOVE_ACTIVATE] = {gBattleAnimBgImage_ZMoveActivate, gBattleAnimBgPalette_ZMoveActivate, gBattleAnimBgTilemap_ZMoveActivate},
|
||||
[BG_TECTONIC_RAGE] = {gBattleAnimBgImage_InAir, gBattleAnimBgPalette_TectonicRage, gBattleAnimBgTilemap_InAir},
|
||||
[BG_BLUE_SKY_DAY] = {gBattleAnimBgImage_SkyDay, gBattleAnimBgPalette_SkyDay, gBattleAnimBgTilemap_SkyDay},
|
||||
[BG_BLUE_SKY_AFTERNOON] = {gBattleAnimBgImage_SkyDay, gBattleAnimBgPalette_SkyAfternoon, gBattleAnimBgTilemap_SkyDay},
|
||||
[BG_BLUE_SKY_NIGHT] = {gBattleAnimBgImage_SkyDay, gBattleAnimBgPalette_SkyNight, gBattleAnimBgTilemap_SkyDay},
|
||||
[BG_ROCK_FIELD_DAY] = {gBattleAnimBgImage_RockField, gBattleAnimBgPalette_RockDay, gBattleAnimBgTilemap_RockField},
|
||||
[BG_ROCK_FIELD_AFTERNOON] = {gBattleAnimBgImage_RockField, gBattleAnimBgPalette_RockAfternoon, gBattleAnimBgTilemap_RockField},
|
||||
[BG_ROCK_FIELD_NIGHT] = {gBattleAnimBgImage_RockField, gBattleAnimBgPalette_RockNight, gBattleAnimBgTilemap_RockField},
|
||||
[BG_ZMOVE_MOUNTAIN] = {gBattleAnimBgImage_ZMoveMountain, gBattleAnimBgPalette_ZMoveMountain, gBattleAnimBgTilemap_ZMoveMountain},
|
||||
[BG_NEVERENDING_NIGHTMARE] = {gBattleAnimBgImage_NeverendingNightmare, gBattleAnimBgPalette_NeverendingNightmare, gBattleAnimBgTilemap_NeverendingNightmare},
|
||||
[BG_WATER_PULSE] = {gBattleAnimBgImage_WaterPulse, gBattleAnimBgPalette_WaterPulse, gBattleAnimBgTilemap_WaterPulse},
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
#include "graphics/battle_terrain.h"
|
||||
|
||||
const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] =
|
||||
const struct BattleTerrain gBattleTerrainInfo[BATTLE_ENVIRONMENT_COUNT] =
|
||||
{
|
||||
[BATTLE_TERRAIN_GRASS] =
|
||||
[BATTLE_ENVIRONMENT_GRASS] =
|
||||
{
|
||||
.name = _("NORMAL - GRASS"),
|
||||
#if B_NATURE_POWER_MOVES >= GEN_6
|
||||
|
|
@ -23,7 +23,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] =
|
|||
.palette = gBattleTerrainPalette_Grass,
|
||||
},
|
||||
},
|
||||
[BATTLE_TERRAIN_LONG_GRASS] =
|
||||
[BATTLE_ENVIRONMENT_LONG_GRASS] =
|
||||
{
|
||||
.name = _("NORMAL - LONG GRASS "),
|
||||
#if B_NATURE_POWER_MOVES >= GEN_6
|
||||
|
|
@ -44,7 +44,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] =
|
|||
.palette = gBattleTerrainPalette_LongGrass,
|
||||
},
|
||||
},
|
||||
[BATTLE_TERRAIN_SAND] =
|
||||
[BATTLE_ENVIRONMENT_SAND] =
|
||||
{
|
||||
.name = _("NORMAL - SAND "),
|
||||
.naturePower = B_NATURE_POWER_MOVES >= GEN_6 ? MOVE_EARTH_POWER : MOVE_EARTHQUAKE,
|
||||
|
|
@ -59,7 +59,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] =
|
|||
.palette = gBattleTerrainPalette_Sand,
|
||||
},
|
||||
},
|
||||
[BATTLE_TERRAIN_UNDERWATER] =
|
||||
[BATTLE_ENVIRONMENT_UNDERWATER] =
|
||||
{
|
||||
.name = _("NORMAL - UNDERWATER "),
|
||||
.naturePower = MOVE_HYDRO_PUMP,
|
||||
|
|
@ -74,7 +74,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] =
|
|||
.palette = gBattleTerrainPalette_Underwater,
|
||||
},
|
||||
},
|
||||
[BATTLE_TERRAIN_WATER] =
|
||||
[BATTLE_ENVIRONMENT_WATER] =
|
||||
{
|
||||
.name = _("NORMAL - WATER "),
|
||||
.naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_HYDRO_PUMP : MOVE_SURF,
|
||||
|
|
@ -89,7 +89,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] =
|
|||
.palette = gBattleTerrainPalette_Water,
|
||||
},
|
||||
},
|
||||
[BATTLE_TERRAIN_POND] =
|
||||
[BATTLE_ENVIRONMENT_POND] =
|
||||
{
|
||||
.name = _("NORMAL - POND "),
|
||||
.naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_HYDRO_PUMP : MOVE_BUBBLE_BEAM,
|
||||
|
|
@ -104,7 +104,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] =
|
|||
.palette = gBattleTerrainPalette_Pond,
|
||||
},
|
||||
},
|
||||
[BATTLE_TERRAIN_MOUNTAIN] =
|
||||
[BATTLE_ENVIRONMENT_MOUNTAIN] =
|
||||
{
|
||||
.name = _("NORMAL - MOUNTAIN "),
|
||||
#if B_NATURE_POWER_MOVES >= GEN_6
|
||||
|
|
@ -131,7 +131,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] =
|
|||
.palette = gBattleTerrainPalette_Mountain,
|
||||
},
|
||||
},
|
||||
[BATTLE_TERRAIN_CAVE] =
|
||||
[BATTLE_ENVIRONMENT_CAVE] =
|
||||
{
|
||||
.name = _("NORMAL - CAVE "),
|
||||
#if B_NATURE_POWER_MOVES >= GEN_6
|
||||
|
|
@ -154,7 +154,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] =
|
|||
.palette = gBattleTerrainPalette_Cave,
|
||||
},
|
||||
},
|
||||
[BATTLE_TERRAIN_BUILDING] =
|
||||
[BATTLE_ENVIRONMENT_BUILDING] =
|
||||
{
|
||||
.name = _("NORMAL - BUILDING "),
|
||||
.naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_TRI_ATTACK : MOVE_SWIFT,
|
||||
|
|
@ -169,7 +169,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] =
|
|||
.palette = gBattleTerrainPalette_Building,
|
||||
},
|
||||
},
|
||||
[BATTLE_TERRAIN_PLAIN] =
|
||||
[BATTLE_ENVIRONMENT_PLAIN] =
|
||||
{
|
||||
.name = _("NORMAL - PLAIN "),
|
||||
#if B_NATURE_POWER_MOVES >= GEN_6
|
||||
|
|
@ -190,49 +190,49 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] =
|
|||
.palette = gBattleTerrainPalette_Plain,
|
||||
},
|
||||
},
|
||||
[BATTLE_TERRAIN_SOARING] =
|
||||
[BATTLE_ENVIRONMENT_SOARING] =
|
||||
{
|
||||
.name = _("NORMAL - SOARING "),
|
||||
.naturePower = MOVE_AIR_SLASH,
|
||||
.secretPowerEffect = MOVE_EFFECT_SPD_MINUS_1,
|
||||
.camouflageType = TYPE_FLYING,
|
||||
},
|
||||
[BATTLE_TERRAIN_SKY_PILLAR] =
|
||||
[BATTLE_ENVIRONMENT_SKY_PILLAR] =
|
||||
{
|
||||
.name = _("NORMAL - SKY PILLAR "),
|
||||
.naturePower = MOVE_AIR_SLASH,
|
||||
.secretPowerEffect = MOVE_EFFECT_SPD_MINUS_1,
|
||||
.camouflageType = TYPE_FLYING,
|
||||
},
|
||||
[BATTLE_TERRAIN_BURIAL_GROUND] =
|
||||
[BATTLE_ENVIRONMENT_BURIAL_GROUND] =
|
||||
{
|
||||
.name = _("NORMAL - BURIAL GROUND "),
|
||||
.naturePower = MOVE_SHADOW_BALL,
|
||||
.secretPowerEffect = MOVE_EFFECT_FLINCH,
|
||||
.camouflageType = TYPE_GHOST,
|
||||
},
|
||||
[BATTLE_TERRAIN_PUDDLE] =
|
||||
[BATTLE_ENVIRONMENT_PUDDLE] =
|
||||
{
|
||||
.name = _("NORMAL - PUDDLE "),
|
||||
.naturePower = MOVE_MUD_BOMB,
|
||||
.secretPowerEffect = B_SECRET_POWER_EFFECT >= GEN_5 ? MOVE_EFFECT_SPD_MINUS_1 : MOVE_EFFECT_ACC_MINUS_1,
|
||||
.camouflageType = TYPE_GROUND,
|
||||
},
|
||||
[BATTLE_TERRAIN_MARSH] =
|
||||
[BATTLE_ENVIRONMENT_MARSH] =
|
||||
{
|
||||
.name = _("NORMAL - MARSH "),
|
||||
.naturePower = MOVE_MUD_BOMB,
|
||||
.secretPowerEffect = MOVE_EFFECT_SPD_MINUS_1,
|
||||
.camouflageType = TYPE_GROUND,
|
||||
},
|
||||
[BATTLE_TERRAIN_SWAMP] =
|
||||
[BATTLE_ENVIRONMENT_SWAMP] =
|
||||
{
|
||||
.name = _("NORMAL - SWAMP "),
|
||||
.naturePower = MOVE_MUD_BOMB,
|
||||
.secretPowerEffect = MOVE_EFFECT_SPD_MINUS_1,
|
||||
.camouflageType = TYPE_GROUND,
|
||||
},
|
||||
[BATTLE_TERRAIN_SNOW] =
|
||||
[BATTLE_ENVIRONMENT_SNOW] =
|
||||
{
|
||||
.name = _("NORMAL - SNOW "),
|
||||
#if B_NATURE_POWER_MOVES >= GEN_7
|
||||
|
|
@ -245,42 +245,42 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] =
|
|||
.secretPowerEffect = MOVE_EFFECT_FREEZE_OR_FROSTBITE,
|
||||
.camouflageType = TYPE_ICE,
|
||||
},
|
||||
[BATTLE_TERRAIN_ICE] =
|
||||
[BATTLE_ENVIRONMENT_ICE] =
|
||||
{
|
||||
.name = _("NORMAL - ICE "),
|
||||
.naturePower = MOVE_ICE_BEAM,
|
||||
.secretPowerEffect = MOVE_EFFECT_FREEZE_OR_FROSTBITE,
|
||||
.camouflageType = TYPE_ICE,
|
||||
},
|
||||
[BATTLE_TERRAIN_VOLCANO] =
|
||||
[BATTLE_ENVIRONMENT_VOLCANO] =
|
||||
{
|
||||
.name = _("NORMAL - VOLCANO "),
|
||||
.naturePower = MOVE_LAVA_PLUME,
|
||||
.secretPowerEffect = MOVE_EFFECT_BURN,
|
||||
.camouflageType = TYPE_FIRE,
|
||||
},
|
||||
[BATTLE_TERRAIN_DISTORTION_WORLD] =
|
||||
[BATTLE_ENVIRONMENT_DISTORTION_WORLD] =
|
||||
{
|
||||
.name = _("NORMAL - DISTORTION WORLD"),
|
||||
.naturePower = MOVE_TRI_ATTACK,
|
||||
.secretPowerEffect = MOVE_EFFECT_PARALYSIS,
|
||||
.camouflageType = TYPE_NORMAL,
|
||||
},
|
||||
[BATTLE_TERRAIN_SPACE] =
|
||||
[BATTLE_ENVIRONMENT_SPACE] =
|
||||
{
|
||||
.name = _("NORMAL - SPACE "),
|
||||
.naturePower = MOVE_DRACO_METEOR,
|
||||
.secretPowerEffect = MOVE_EFFECT_FLINCH,
|
||||
.camouflageType = TYPE_DRAGON,
|
||||
},
|
||||
[BATTLE_TERRAIN_ULTRA_SPACE] =
|
||||
[BATTLE_ENVIRONMENT_ULTRA_SPACE] =
|
||||
{
|
||||
.name = _("NORMAL - ULTRA SPACE "),
|
||||
.naturePower = MOVE_PSYSHOCK,
|
||||
.secretPowerEffect = MOVE_EFFECT_DEF_MINUS_1,
|
||||
.camouflageType = TYPE_PSYCHIC,
|
||||
},
|
||||
[BATTLE_TERRAIN_LINK] =
|
||||
[BATTLE_ENVIRONMENT_LINK] =
|
||||
{
|
||||
.name = _("NORMAL - LINK "),
|
||||
.naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_TRI_ATTACK : MOVE_SWIFT,
|
||||
|
|
@ -294,7 +294,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] =
|
|||
.palette = gBattleTerrainPalette_Link
|
||||
}
|
||||
},
|
||||
[BATTLE_TERRAIN_GYM] =
|
||||
[BATTLE_ENVIRONMENT_GYM] =
|
||||
{
|
||||
.name = _("NORMAL - GYM "),
|
||||
.naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_TRI_ATTACK : MOVE_SWIFT,
|
||||
|
|
@ -308,7 +308,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] =
|
|||
.palette = gBattleTerrainPalette_Gym
|
||||
}
|
||||
},
|
||||
[BATTLE_TERRAIN_LEADER] =
|
||||
[BATTLE_ENVIRONMENT_LEADER] =
|
||||
{
|
||||
.name = _("NORMAL - LEADER "),
|
||||
.naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_TRI_ATTACK : MOVE_SWIFT,
|
||||
|
|
@ -322,7 +322,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] =
|
|||
.palette = gBattleTerrainPalette_Leader
|
||||
}
|
||||
},
|
||||
[BATTLE_TERRAIN_INDOOR_2] =
|
||||
[BATTLE_ENVIRONMENT_INDOOR_2] =
|
||||
{
|
||||
.name = _("NORMAL - INDOOR_2 "),
|
||||
.naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_TRI_ATTACK : MOVE_SWIFT,
|
||||
|
|
@ -336,7 +336,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] =
|
|||
.palette = gBattleTerrainPalette_Indoor2
|
||||
}
|
||||
},
|
||||
[BATTLE_TERRAIN_INDOOR_1] =
|
||||
[BATTLE_ENVIRONMENT_INDOOR_1] =
|
||||
{
|
||||
.name = _("NORMAL - INDOOR_1 "),
|
||||
.naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_TRI_ATTACK : MOVE_SWIFT,
|
||||
|
|
@ -350,7 +350,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] =
|
|||
.palette = gBattleTerrainPalette_Indoor1
|
||||
}
|
||||
},
|
||||
[BATTLE_TERRAIN_LORELEI] =
|
||||
[BATTLE_ENVIRONMENT_LORELEI] =
|
||||
{
|
||||
.name = _("NORMAL - LORELEI "),
|
||||
.naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_TRI_ATTACK : MOVE_SWIFT,
|
||||
|
|
@ -364,7 +364,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] =
|
|||
.palette = gBattleTerrainPalette_Lorelei
|
||||
}
|
||||
},
|
||||
[BATTLE_TERRAIN_BRUNO] =
|
||||
[BATTLE_ENVIRONMENT_BRUNO] =
|
||||
{
|
||||
.name = _("NORMAL - BRUNO "),
|
||||
.naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_TRI_ATTACK : MOVE_SWIFT,
|
||||
|
|
@ -378,7 +378,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] =
|
|||
.palette = gBattleTerrainPalette_Bruno
|
||||
}
|
||||
},
|
||||
[BATTLE_TERRAIN_AGATHA] =
|
||||
[BATTLE_ENVIRONMENT_AGATHA] =
|
||||
{
|
||||
.name = _("NORMAL - AGATHA "),
|
||||
.naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_TRI_ATTACK : MOVE_SWIFT,
|
||||
|
|
@ -392,7 +392,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] =
|
|||
.palette = gBattleTerrainPalette_Agatha
|
||||
}
|
||||
},
|
||||
[BATTLE_TERRAIN_LANCE] =
|
||||
[BATTLE_ENVIRONMENT_LANCE] =
|
||||
{
|
||||
.name = _("NORMAL - LANCE "),
|
||||
.naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_TRI_ATTACK : MOVE_SWIFT,
|
||||
|
|
@ -406,7 +406,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] =
|
|||
.palette = gBattleTerrainPalette_Lance
|
||||
}
|
||||
},
|
||||
[BATTLE_TERRAIN_CHAMPION] =
|
||||
[BATTLE_ENVIRONMENT_CHAMPION] =
|
||||
{
|
||||
.name = _("NORMAL - CHAMPION "),
|
||||
.naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_TRI_ATTACK : MOVE_SWIFT,
|
||||
|
|
|
|||
|
|
@ -528,14 +528,14 @@ static const struct FormChange sDeoxysSpeedFormChangeTable[] = {
|
|||
|
||||
#if P_FAMILY_BURMY
|
||||
static const struct FormChange sBurmyFormChangeTable[] = {
|
||||
{FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT, BATTLE_TERRAIN_GRASS},
|
||||
{FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT, BATTLE_TERRAIN_LONG_GRASS},
|
||||
{FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT, BATTLE_TERRAIN_POND},
|
||||
{FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT, BATTLE_TERRAIN_MOUNTAIN},
|
||||
{FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT, BATTLE_TERRAIN_PLAIN},
|
||||
{FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_SANDY, BATTLE_TERRAIN_CAVE},
|
||||
{FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_SANDY, BATTLE_TERRAIN_SAND},
|
||||
{FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_TRASH, BATTLE_TERRAIN_BUILDING},
|
||||
{FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT, BATTLE_ENVIRONMENT_GRASS},
|
||||
{FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT, BATTLE_ENVIRONMENT_LONG_GRASS},
|
||||
{FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT, BATTLE_ENVIRONMENT_POND},
|
||||
{FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT, BATTLE_ENVIRONMENT_MOUNTAIN},
|
||||
{FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT, BATTLE_ENVIRONMENT_PLAIN},
|
||||
{FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_SANDY, BATTLE_ENVIRONMENT_CAVE},
|
||||
{FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_SANDY, BATTLE_ENVIRONMENT_SAND},
|
||||
{FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_TRASH, BATTLE_ENVIRONMENT_BUILDING},
|
||||
{FORM_CHANGE_TERMINATOR},
|
||||
};
|
||||
#endif //P_FAMILY_BURMY
|
||||
|
|
|
|||
|
|
@ -1751,7 +1751,7 @@ static void Debug_InitializeBattle(u8 taskId)
|
|||
}
|
||||
|
||||
// Set terrain
|
||||
gBattleTerrain = sDebugBattleData->battleTerrain;
|
||||
gBattleEnvironment = sDebugBattleData->battleTerrain;
|
||||
|
||||
// Populate enemy party
|
||||
for (i = 0; i < PARTY_SIZE; i++)
|
||||
|
|
|
|||
|
|
@ -238,7 +238,7 @@ void EvolutionScene(struct Pokemon* mon, u16 postEvoSpecies, bool8 canStopEvo, u
|
|||
gBattle_BG3_X = 256;
|
||||
gBattle_BG3_Y = 0;
|
||||
|
||||
gBattleTerrain = BATTLE_TERRAIN_PLAIN;
|
||||
gBattleEnvironment = BATTLE_ENVIRONMENT_PLAIN;
|
||||
|
||||
InitBattleBgsVideo();
|
||||
LoadBattleTextboxAndBackground();
|
||||
|
|
@ -345,7 +345,7 @@ static void CB2_EvolutionSceneLoadGraphics(void)
|
|||
gBattle_BG3_X = 256;
|
||||
gBattle_BG3_Y = 0;
|
||||
|
||||
gBattleTerrain = BATTLE_TERRAIN_PLAIN;
|
||||
gBattleEnvironment = BATTLE_ENVIRONMENT_PLAIN;
|
||||
|
||||
InitBattleBgsVideo();
|
||||
LoadBattleTextboxAndBackground();
|
||||
|
|
|
|||
|
|
@ -1895,13 +1895,13 @@ const u32 gBattleAnimBgImage_ShatteredPsyche[] = INCBIN_U32("graphics/battle_ani
|
|||
const u16 gBattleAnimBgPalette_ShatteredPsyche[] = INCBIN_U16("graphics/battle_anims/backgrounds/shattered_psyche.gbapal");
|
||||
const u32 gBattleAnimBgTilemap_ShatteredPsyche[] = INCBIN_U32("graphics/battle_anims/backgrounds/shattered_psyche.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_SkyDay[] = INCBIN_U32("graphics/battle_anims/backgrounds/sky_day.4bpp.lz");
|
||||
const u16 gBattleAnimBgPalette_SkyDay[] = INCBIN_U16("graphics/battle_anims/backgrounds/sky_day.gbapal");
|
||||
const u32 gBattleAnimBgTilemap_SkyDay[] = INCBIN_U32("graphics/battle_anims/backgrounds/sky_day.bin.lz");
|
||||
const u32 gBattleAnimBgImage_RockField[] = INCBIN_U32("graphics/battle_anims/backgrounds/rock_field.4bpp.lz");
|
||||
const u16 gBattleAnimBgPalette_RockDay[] = INCBIN_U16("graphics/battle_anims/backgrounds/rock_day.gbapal");
|
||||
const u32 gBattleAnimBgTilemap_RockField[] = INCBIN_U32("graphics/battle_anims/backgrounds/rock_field.bin.lz");
|
||||
|
||||
const u16 gBattleAnimBgPalette_SkyAfternoon[] = INCBIN_U16("graphics/battle_anims/backgrounds/sky_afternoon.gbapal");
|
||||
const u16 gBattleAnimBgPalette_RockAfternoon[] = INCBIN_U16("graphics/battle_anims/backgrounds/rock_afternoon.gbapal");
|
||||
|
||||
const u16 gBattleAnimBgPalette_SkyNight[] = INCBIN_U16("graphics/battle_anims/backgrounds/sky_night.gbapal");
|
||||
const u16 gBattleAnimBgPalette_RockNight[] = INCBIN_U16("graphics/battle_anims/backgrounds/rock_night.gbapal");
|
||||
|
||||
const u32 gBattleAnimBgImage_SnuggleForever[] = INCBIN_U32("graphics/battle_anims/backgrounds/snuggle_forever.4bpp.lz");
|
||||
const u16 gBattleAnimBgPalette_SnuggleForever[] = INCBIN_U16("graphics/battle_anims/backgrounds/snuggle_forever.gbapal");
|
||||
|
|
|
|||
|
|
@ -1550,7 +1550,7 @@ void UpdateTimeOfDay(void)
|
|||
// Whether a map type is naturally lit/outside
|
||||
bool8 MapHasNaturalLight(u8 mapType)
|
||||
{
|
||||
if (!OW_DAY_AND_NIGHT)
|
||||
if (!OW_ENABLE_DNS)
|
||||
return FALSE;
|
||||
return (mapType == MAP_TYPE_TOWN
|
||||
|| mapType == MAP_TYPE_CITY
|
||||
|
|
|
|||
|
|
@ -6834,7 +6834,7 @@ u32 GetFormChangeTargetSpeciesBoxMon(struct BoxPokemon *boxMon, enum FormChanges
|
|||
targetSpecies = formChanges[i].targetSpecies;
|
||||
break;
|
||||
case FORM_CHANGE_END_BATTLE_TERRAIN:
|
||||
if (gBattleTerrain == formChanges[i].param1)
|
||||
if (gBattleEnvironment == formChanges[i].param1)
|
||||
targetSpecies = formChanges[i].targetSpecies;
|
||||
break;
|
||||
case FORM_CHANGE_WITHDRAW:
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@
|
|||
#include "constants/items.h"
|
||||
#include "constants/event_objects.h"
|
||||
|
||||
extern const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT];
|
||||
extern const struct BattleTerrain gBattleTerrainInfo[BATTLE_ENVIRONMENT_COUNT];
|
||||
extern const struct CompressedSpriteSheet gSpriteSheet_EnemyShadow;
|
||||
extern const struct CompressedSpriteSheet gSpriteSheet_EnemyShadowsSized;
|
||||
extern const struct SpriteTemplate gSpriteTemplate_EnemyShadow;
|
||||
|
|
@ -917,7 +917,7 @@ static void LoadBattleBg(u8 battleBgType, u8 battleTerrain)
|
|||
case MAP_BATTLE_SCENE_NORMAL:
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_GYM:
|
||||
battleTerrain = BATTLE_TERRAIN_GYM;
|
||||
battleTerrain = BATTLE_ENVIRONMENT_GYM;
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_MAGMA:
|
||||
// todo
|
||||
|
|
@ -926,31 +926,31 @@ static void LoadBattleBg(u8 battleBgType, u8 battleTerrain)
|
|||
// todo
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_LORELEI:
|
||||
battleTerrain = BATTLE_TERRAIN_LORELEI;
|
||||
battleTerrain = BATTLE_ENVIRONMENT_LORELEI;
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_BRUNO:
|
||||
battleTerrain = BATTLE_TERRAIN_BRUNO;
|
||||
battleTerrain = BATTLE_ENVIRONMENT_BRUNO;
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_AGATHA:
|
||||
battleTerrain = BATTLE_TERRAIN_AGATHA;
|
||||
battleTerrain = BATTLE_ENVIRONMENT_AGATHA;
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_LANCE:
|
||||
battleTerrain = BATTLE_TERRAIN_LANCE;
|
||||
battleTerrain = BATTLE_ENVIRONMENT_LANCE;
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_FRONTIER:
|
||||
// todo
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_LEADER:
|
||||
battleTerrain = BATTLE_TERRAIN_LEADER;
|
||||
battleTerrain = BATTLE_ENVIRONMENT_LEADER;
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_CHAMPION:
|
||||
battleTerrain = BATTLE_TERRAIN_CHAMPION;
|
||||
battleTerrain = BATTLE_ENVIRONMENT_CHAMPION;
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_GROUDON:
|
||||
battleTerrain = BATTLE_TERRAIN_CAVE;
|
||||
battleTerrain = BATTLE_ENVIRONMENT_CAVE;
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_KYOGRE:
|
||||
battleTerrain = BATTLE_TERRAIN_WATER;
|
||||
battleTerrain = BATTLE_ENVIRONMENT_WATER;
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_RAYQUAZA:
|
||||
// todo
|
||||
|
|
@ -981,14 +981,14 @@ static void UpdateBattleBg(u8 taskId, bool8 increment)
|
|||
{
|
||||
if (increment)
|
||||
{
|
||||
if (data->battleTerrain == BATTLE_TERRAIN_PLAIN)
|
||||
if (data->battleTerrain == BATTLE_ENVIRONMENT_PLAIN)
|
||||
data->battleBgType += 1;
|
||||
else
|
||||
data->battleTerrain += 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (data->battleTerrain == BATTLE_TERRAIN_GRASS)
|
||||
if (data->battleTerrain == BATTLE_ENVIRONMENT_GRASS)
|
||||
data->battleBgType = MAP_BATTLE_SCENE_RAYQUAZA;
|
||||
else
|
||||
data->battleTerrain -= 1;
|
||||
|
|
@ -1001,7 +1001,7 @@ static void UpdateBattleBg(u8 taskId, bool8 increment)
|
|||
else
|
||||
{
|
||||
data->battleBgType = MAP_BATTLE_SCENE_NORMAL;
|
||||
data->battleTerrain = BATTLE_TERRAIN_PLAIN;
|
||||
data->battleTerrain = BATTLE_ENVIRONMENT_PLAIN;
|
||||
}
|
||||
}
|
||||
else if (data->battleBgType == MAP_BATTLE_SCENE_RAYQUAZA)
|
||||
|
|
@ -1009,7 +1009,7 @@ static void UpdateBattleBg(u8 taskId, bool8 increment)
|
|||
if (increment)
|
||||
{
|
||||
data->battleBgType = MAP_BATTLE_SCENE_NORMAL;
|
||||
data->battleTerrain = BATTLE_TERRAIN_GRASS;
|
||||
data->battleTerrain = BATTLE_ENVIRONMENT_GRASS;
|
||||
}
|
||||
else
|
||||
data->battleBgType -= 1;
|
||||
|
|
@ -1207,7 +1207,7 @@ void CB2_Pokemon_Sprite_Visualizer(void)
|
|||
|
||||
FillBgTilemapBufferRect(0, 0, 0, 0, 32, 20, 15);
|
||||
InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates));
|
||||
LoadBattleBg(0, BATTLE_TERRAIN_GRASS);
|
||||
LoadBattleBg(0, BATTLE_ENVIRONMENT_GRASS);
|
||||
|
||||
gMain.state++;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -222,7 +222,7 @@ static void SceneSingles(u32 move, struct BattlePokemon *mon)
|
|||
{
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_POUND, mon);
|
||||
}
|
||||
else if (gMovesInfo[move].effect == EFFECT_NATURE_POWER) // Recorded battles always use BATTLE_TERRAIN_BUILDING
|
||||
else if (gMovesInfo[move].effect == EFFECT_NATURE_POWER) // Recorded battles always use BATTLE_ENVIRONMENT_BUILDING
|
||||
{
|
||||
ANIMATION(ANIM_TYPE_MOVE, B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_TRI_ATTACK : MOVE_SWIFT, mon);
|
||||
}
|
||||
|
|
@ -354,7 +354,7 @@ static void DoublesScene(u32 move, struct BattlePokemon *attacker)
|
|||
ANIMATION(ANIM_TYPE_MOVE, MOVE_POUND, attacker);
|
||||
}
|
||||
else if (gMovesInfo[move].effect == EFFECT_NATURE_POWER)
|
||||
{ // Recorded battles always use BATTLE_TERRAIN_BUILDING
|
||||
{ // Recorded battles always use BATTLE_ENVIRONMENT_BUILDING
|
||||
ANIMATION(ANIM_TYPE_MOVE, B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_TRI_ATTACK : MOVE_SWIFT, attacker);
|
||||
}
|
||||
else
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user