diff --git a/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml b/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml index b570c6f322..d1bbbb4e94 100644 --- a/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml +++ b/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml @@ -42,9 +42,10 @@ body: label: Version description: What version of pokeemerald-expansion are you using? options: - - 1.11.1 (Latest release) + - 1.11.2 (Latest release) - master (default, unreleased bugfixes) - upcoming (Edge) + - 1.11.1 - 1.11.0 - 1.10.3 - 1.10.2 diff --git a/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml b/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml index e3d40589ea..71d10d7e4d 100644 --- a/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml +++ b/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml @@ -42,9 +42,10 @@ body: label: Version description: What version of pokeemerald-expansion are you using? options: - - 1.11.1 (Latest release) + - 1.11.2 (Latest release) - master (default, unreleased bugfixes) - upcoming (Edge) + - 1.11.1 - 1.11.0 - 1.10.3 - 1.10.2 diff --git a/.github/ISSUE_TEMPLATE/04_other_errors.yaml b/.github/ISSUE_TEMPLATE/04_other_errors.yaml index 0e467b4536..61f71ba3db 100644 --- a/.github/ISSUE_TEMPLATE/04_other_errors.yaml +++ b/.github/ISSUE_TEMPLATE/04_other_errors.yaml @@ -42,9 +42,10 @@ body: label: Version description: What version of pokeemerald-expansion are you using? options: - - 1.11.1 (Latest release) + - 1.11.2 (Latest release) - master (default, unreleased bugfixes) - upcoming (Edge) + - 1.11.1 - 1.11.0 - 1.10.3 - 1.10.2 diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index 018e923c40..aa53665e8f 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -2,7 +2,7 @@ name: Labels on: pull_request: - types: [opened, labeled, unlabeled] + types: [opened, synchronize, labeled, unlabeled] jobs: label: diff --git a/README.md b/README.md index 75a63603a5..d863b9ce94 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ The main advantage of using vanilla pokeemerald as a base is being able to link If you use pokeemerald-expansion in your hack, please add RHH (Rom Hacking Hideout) to your credits list. Optionally, you can list the version used, so it can help players know what features to expect. You can phrase it as the following: ``` -Based off RHH's pokeemerald-expansion 1.11.1 https://github.com/rh-hideout/pokeemerald-expansion/ +Based off RHH's pokeemerald-expansion 1.11.2 https://github.com/rh-hideout/pokeemerald-expansion/ ``` #### Important: DO NOT use GitHub's "Download Zip" option. Using this option will not download the commit history required to update your expansion version or merge other feature branches. Instead, please read [this guide](https://github.com/Pawkkie/Team-Aquas-Asset-Repo/wiki/The-Basics-of-GitHub) to learn how to fork the repository and clone locally from there. diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index d1cf55ffee..16f4a567c4 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -1100,7 +1100,7 @@ .byte \battler .endm - .macro callterrainattack + .macro callenvironmentattack .byte 0xcc .endm @@ -1254,7 +1254,7 @@ .4byte \failInstr .endm - .macro settypetoterrain failInstr:req + .macro settypetoenvironment failInstr:req .byte 0xeb .4byte \failInstr .endm diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 4f09416d79..adab9de89f 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -1878,7 +1878,7 @@ gBattleAnimMove_Avalanche:: loadspritegfx ANIM_TAG_ROCKS loadspritegfx ANIM_TAG_ICE_CHUNK monbg ANIM_DEF_PARTNER - createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 7, 1, 11, 1 + createsprite gShakeMonOrPlatformSpriteTemplate, ANIM_ATTACKER, 2, 7, 1, 11, 1 createsprite gAvalancheSpriteTemplate, ANIM_TARGET, 2, -5, 1, -5, 1 playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 @@ -12878,7 +12878,7 @@ gBattleAnimMove_GlitzyGlow:: createsprite gSynchronoiseYellowRingTemplate, ANIM_ATTACKER, 0, 25, 0, 0, 0, 0, 0, 1 delay 36 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 6, 1 - createvisualtask AnimTask_ShakeBattleTerrain, 2, 1, 0, 6, 1 + createvisualtask AnimTask_ShakeBattlePlatforms, 2, 1, 0, 6, 1 waitforvisualfinish createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 1, 12, 0, 0 @Darken waitforvisualfinish @@ -13691,7 +13691,7 @@ OverdriveRings: createsprite gHyperVoiceRingSpriteTemplate, ANIM_ATTACKER, 0, 0x2d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 6, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_DEF_PARTNER, 1, 0, 6, 1 - createvisualtask AnimTask_ShakeBattleTerrain, 0x2, 0x1, 0x0, 0x6, 0x1 + createvisualtask AnimTask_ShakeBattlePlatforms, 0x2, 0x1, 0x0, 0x6, 0x1 createvisualtask SoundTask_WaitForCry, 0x5 return @@ -14327,7 +14327,7 @@ gBattleAnimMove_RisingVoltage:: loadspritegfx ANIM_TAG_LIGHTNING monbg ANIM_ATTACKER setalpha 12, 8 - createvisualtask AnimTask_GetBattleTerrain, 0x5, + createvisualtask AnimTask_GetBattleEnvironment, 0x5, jumpargeq 0x0, BG_ELECTRIC_TERRAIN, ANIM_RISING_VOLTAGE_STRONGER ANIM_RISING_VOLTAGE_NORMAL: createvisualtask AnimTask_BlendBattleAnimPal, 0x2, F_PAL_BG, 0x1, 0x0, 0x4, 0x0 @;To black @@ -15296,7 +15296,7 @@ gBattleAnimMove_AstralBarrage:: setalpha 12, 8 fadetobg BG_GHOST waitbgfadein - createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 4, 1, 180, 1 + createsprite gShakeMonOrPlatformSpriteTemplate, ANIM_ATTACKER, 2, 4, 1, 180, 1 createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_FAINT_ATTACK, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 5, 20, 0, 5 createsprite gSuperpowerRockSpriteTemplate, ANIM_ATTACKER, 41, 200, 96, 1, 120 delay 8 @@ -16508,7 +16508,7 @@ gBattleAnimMove_AlluringVoice:: createsprite gHyperVoiceRingSpriteTemplate, ANIM_ATTACKER, 0, 45, 0, 0, 0, 0, 0, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 6, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_DEF_PARTNER, 1, 0, 6, 1 - createvisualtask AnimTask_ShakeBattleTerrain, 2, 1, 0, 6, 1 + createvisualtask AnimTask_ShakeBattlePlatforms, 2, 1, 0, 6, 1 createvisualtask SoundTask_WaitForCry, 5 delay 0xA createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 26, 1 @@ -17118,7 +17118,7 @@ TorchSongEffect: createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 5, ANIM_ATTACKER, 0 createsprite gHyperVoiceRingSpriteTemplate, ANIM_ATTACKER, 0, 45, 0, 0, 0, 0, 0, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 6, 1 - createvisualtask AnimTask_ShakeBattleTerrain, 2, 1, 0, 6, 1 + createvisualtask AnimTask_ShakeBattlePlatforms, 2, 1, 0, 6, 1 createvisualtask SoundTask_WaitForCry, 5 return @@ -17599,7 +17599,7 @@ gBattleAnimMove_MakeItRain:: jumprettrue MakingItRainOnPlayer MakingItRainContinue: waitbgfadeout - createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 7, 1, 11, 1 + createsprite gShakeMonOrPlatformSpriteTemplate, ANIM_ATTACKER, 2, 7, 1, 11, 1 loopsewithpan SE_M_PAY_DAY, SOUND_PAN_TARGET, 8, 15 createsprite gMakingItRainTemplate, ANIM_TARGET, 2, -5, 0, -5, 1 delay 2 @@ -19965,7 +19965,7 @@ gBattleAnimMove_MeanLook:: gBattleAnimMove_RockThrow:: loadspritegfx ANIM_TAG_ROCKS - createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_TARGET, 2, 6, 1, 15, 1 + createsprite gShakeMonOrPlatformSpriteTemplate, ANIM_TARGET, 2, 6, 1, 15, 1 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 0, 1, 0, 0 playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 6 @@ -19987,7 +19987,7 @@ gBattleAnimMove_RockThrow:: gBattleAnimMove_RockSlide:: loadspritegfx ANIM_TAG_ROCKS monbg ANIM_DEF_PARTNER - createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 7, 1, 11, 1 + createsprite gShakeMonOrPlatformSpriteTemplate, ANIM_ATTACKER, 2, 7, 1, 11, 1 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -5, 1, -5, 1 playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 @@ -20781,7 +20781,7 @@ gBattleAnimMove_Barrage:: createvisualtask AnimTask_BarrageBall, 3 playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER delay 24 - createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 8, 1, 40, 1 + createsprite gShakeMonOrPlatformSpriteTemplate, ANIM_ATTACKER, 2, 8, 1, 40, 1 createvisualtask AnimTask_ShakeMon, 3, ANIM_TARGET, 0, 4, 20, 1 createvisualtask AnimTask_ShakeMon, 3, ANIM_DEF_PARTNER, 0, 4, 20, 1 loopsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET, 8, 2 @@ -21528,7 +21528,7 @@ gBattleAnimMove_Superpower:: createsprite gSuperpowerOrbSpriteTemplate, ANIM_TARGET, 2, ANIM_ATTACKER playsewithpan SE_M_MEGA_KICK, SOUND_PAN_ATTACKER delay 20 - createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 4, 1, 180, 1 + createsprite gShakeMonOrPlatformSpriteTemplate, ANIM_ATTACKER, 2, 4, 1, 180, 1 createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_EARTHQUAKE, 0 delay 40 createsprite gSuperpowerRockSpriteTemplate, ANIM_ATTACKER, 41, 200, 96, 1, 120 @@ -22879,7 +22879,7 @@ SnoreEffect: playsewithpan SE_M_SNORE, SOUND_PAN_ATTACKER createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 7, ANIM_ATTACKER, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 7, 1 - createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, 14, 0, 0 + createsprite gShakeMonOrPlatformSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, 14, 0, 0 createsprite gSnoreZSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, -42, -38, 24, 0, 0 createsprite gSnoreZSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0, -42, 24, 0, 0 createsprite gSnoreZSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 42, -38, 24, 0, 0 @@ -24727,7 +24727,7 @@ gBattleAnimMove_AncientPower:: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 4, 1, 10, 1 + createsprite gShakeMonOrPlatformSpriteTemplate, ANIM_ATTACKER, 2, 4, 1, 10, 1 createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, 20, 32, -48, 50, 2 createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, -38, 25, 5 createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, 32, 32, -28, 40, 3 @@ -25152,14 +25152,14 @@ gBattleAnimMove_MetalClaw:: playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, -10, 0 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, 10, 0 - createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 + createsprite gShakeMonOrPlatformSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 delay 8 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 2 playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, -10, 1 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, 10, 1 - createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 + createsprite gShakeMonOrPlatformSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 waitforvisualfinish end @@ -26375,7 +26375,7 @@ HyperVoiceEffect: createsprite gHyperVoiceRingSpriteTemplate, ANIM_ATTACKER, 0, 45, 0, 0, 0, 0, 0, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 6, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_DEF_PARTNER, 1, 0, 6, 1 - createvisualtask AnimTask_ShakeBattleTerrain, 2, 1, 0, 6, 1 + createvisualtask AnimTask_ShakeBattlePlatforms, 2, 1, 0, 6, 1 createvisualtask SoundTask_WaitForCry, 5 return @@ -26497,7 +26497,7 @@ gBattleAnimMove_DragonClaw:: createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_RAZOR_WIND, SOUND_PAN_TARGET createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, -10, 0 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, 10, 0 - createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 + createsprite gShakeMonOrPlatformSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 480, 20, 16, -46, ANIM_ATTACKER delay 2 createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 576, 20, 8, 42, ANIM_ATTACKER @@ -26510,7 +26510,7 @@ gBattleAnimMove_DragonClaw:: createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_RAZOR_WIND, SOUND_PAN_TARGET createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, -10, 1 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, 10, 1 - createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 + createsprite gShakeMonOrPlatformSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 464, 30, 15, -50, ANIM_ATTACKER delay 2 createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 528, 30, 13, 50, ANIM_ATTACKER @@ -26971,7 +26971,7 @@ gBattleAnimMove_BlastBurn:: createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 70, 60, -30, 24, 0, 0, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -4, 3, ANIM_TARGET, 0 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 12, 0, 20, 1 - createvisualtask AnimTask_ShakeBattleTerrain, 2, 2, 0, 10, 1 + createvisualtask AnimTask_ShakeBattlePlatforms, 2, 2, 0, 10, 1 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, 96, 0, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, 60, 30, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, 0, 48, 24, 0, 0, 0 @@ -26985,32 +26985,32 @@ gBattleAnimMove_BlastBurn:: gBattleAnimMove_RockTomb:: loadspritegfx ANIM_TAG_X_SIGN loadspritegfx ANIM_TAG_ROCKS - createvisualtask AnimTask_ShakeBattleTerrain, 2, 2, 0, 10, 1 + createvisualtask AnimTask_ShakeBattlePlatforms, 2, 2, 0, 10, 1 waitforvisualfinish createsprite gRockTombRockSpriteTemplate, ANIM_TARGET, 2, 20, 12, 64, 114, 0 delay 8 - createvisualtask AnimTask_ShakeBattleTerrain, 2, 0, 2, 3, 1 + createvisualtask AnimTask_ShakeBattlePlatforms, 2, 0, 2, 3, 1 playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET delay 8 createsprite gRockTombRockSpriteTemplate, ANIM_TARGET, 2, -20, 12, 64, 98, 0 delay 8 - createvisualtask AnimTask_ShakeBattleTerrain, 2, 0, 2, 3, 1 + createvisualtask AnimTask_ShakeBattlePlatforms, 2, 0, 2, 3, 1 playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET delay 8 createsprite gRockTombRockSpriteTemplate, ANIM_TARGET, 66, 3, 6, 64, 82, 0 delay 8 - createvisualtask AnimTask_ShakeBattleTerrain, 2, 0, 2, 3, 1 + createvisualtask AnimTask_ShakeBattlePlatforms, 2, 0, 2, 3, 1 playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET delay 8 createsprite gRockTombRockSpriteTemplate, ANIM_TARGET, 2, -3, 13, 64, 66, 0 delay 8 - createvisualtask AnimTask_ShakeBattleTerrain, 2, 0, 2, 3, 1 + createvisualtask AnimTask_ShakeBattlePlatforms, 2, 0, 2, 3, 1 playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET delay 24 playsewithpan SE_M_HYPER_BEAM, SOUND_PAN_TARGET createsprite gRedXSpriteTemplate, ANIM_TARGET, 5, ANIM_TARGET, 50 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 20, 1 - createvisualtask AnimTask_ShakeBattleTerrain, 2, 2, 0, 10, 1 + createvisualtask AnimTask_ShakeBattlePlatforms, 2, 2, 0, 10, 1 waitforvisualfinish end @@ -27508,42 +27508,42 @@ gBattleAnimMove_SecretPower:: jumpargeq 0, STATUS_FIELD_GRASSY_TERRAIN, gBattleAnimMove_NeedleArm jumpargeq 0, STATUS_FIELD_ELECTRIC_TERRAIN, gBattleAnimMove_ThunderShock jumpargeq 0, STATUS_FIELD_PSYCHIC_TERRAIN, gBattleAnimMove_Confusion - createvisualtask AnimTask_GetBattleTerrain, 5 - jumpargeq 0, BATTLE_TERRAIN_GRASS, gBattleAnimMove_NeedleArm - jumpargeq 0, BATTLE_TERRAIN_LONG_GRASS, gBattleAnimMove_MagicalLeaf - jumpargeq 0, BATTLE_TERRAIN_SAND, gBattleAnimMove_MudShot - jumpargeq 0, BATTLE_TERRAIN_UNDERWATER, gBattleAnimMove_Waterfall - jumpargeq 0, BATTLE_TERRAIN_WATER, gBattleAnimMove_Surf - jumpargeq 0, BATTLE_TERRAIN_POND, gBattleAnimMove_BubbleBeam - jumpargeq 0, BATTLE_TERRAIN_MOUNTAIN, gBattleAnimMove_RockThrow - jumpargeq 0, BATTLE_TERRAIN_CAVE, gBattleAnimMove_Bite - jumpargeq 0, BATTLE_TERRAIN_BUILDING, gBattleAnimMove_Strength - jumpargeq 0, BATTLE_TERRAIN_SOARING, gBattleAnimMove_Gust - jumpargeq 0, BATTLE_TERRAIN_SKY_PILLAR, gBattleAnimMove_Gust - jumpargeq 0, BATTLE_TERRAIN_BURIAL_GROUND, gBattleAnimMove_ShadowSneak - jumpargeq 0, BATTLE_TERRAIN_PUDDLE, gBattleAnimMove_MudShot - jumpargeq 0, BATTLE_TERRAIN_MARSH, gBattleAnimMove_MudShot - jumpargeq 0, BATTLE_TERRAIN_SWAMP, gBattleAnimMove_MudShot - jumpargeq 0, BATTLE_TERRAIN_ICE, gBattleAnimMove_IceShard - jumpargeq 0, BATTLE_TERRAIN_VOLCANO, gBattleAnimMove_Incinerate - jumpargeq 0, BATTLE_TERRAIN_DISTORTION_WORLD, gBattleAnimMove_Pound - jumpargeq 0, BATTLE_TERRAIN_SPACE, gBattleAnimMove_Swift - jumpargeq 0, BATTLE_TERRAIN_ULTRA_SPACE, gBattleAnimMove_Psywave + createvisualtask AnimTask_GetBattleEnvironment, 5 + jumpargeq 0, BATTLE_ENVIRONMENT_GRASS, gBattleAnimMove_NeedleArm + jumpargeq 0, BATTLE_ENVIRONMENT_LONG_GRASS, gBattleAnimMove_MagicalLeaf + jumpargeq 0, BATTLE_ENVIRONMENT_SAND, gBattleAnimMove_MudShot + jumpargeq 0, BATTLE_ENVIRONMENT_UNDERWATER, gBattleAnimMove_Waterfall + jumpargeq 0, BATTLE_ENVIRONMENT_WATER, gBattleAnimMove_Surf + jumpargeq 0, BATTLE_ENVIRONMENT_POND, gBattleAnimMove_BubbleBeam + jumpargeq 0, BATTLE_ENVIRONMENT_MOUNTAIN, gBattleAnimMove_RockThrow + jumpargeq 0, BATTLE_ENVIRONMENT_CAVE, gBattleAnimMove_Bite + jumpargeq 0, BATTLE_ENVIRONMENT_BUILDING, gBattleAnimMove_Strength + jumpargeq 0, BATTLE_ENVIRONMENT_SOARING, gBattleAnimMove_Gust + jumpargeq 0, BATTLE_ENVIRONMENT_SKY_PILLAR, gBattleAnimMove_Gust + jumpargeq 0, BATTLE_ENVIRONMENT_BURIAL_GROUND, gBattleAnimMove_ShadowSneak + jumpargeq 0, BATTLE_ENVIRONMENT_PUDDLE, gBattleAnimMove_MudShot + jumpargeq 0, BATTLE_ENVIRONMENT_MARSH, gBattleAnimMove_MudShot + jumpargeq 0, BATTLE_ENVIRONMENT_SWAMP, gBattleAnimMove_MudShot + jumpargeq 0, BATTLE_ENVIRONMENT_ICE, gBattleAnimMove_IceShard + jumpargeq 0, BATTLE_ENVIRONMENT_VOLCANO, gBattleAnimMove_Incinerate + jumpargeq 0, BATTLE_ENVIRONMENT_DISTORTION_WORLD, gBattleAnimMove_Pound + jumpargeq 0, BATTLE_ENVIRONMENT_SPACE, gBattleAnimMove_Swift + jumpargeq 0, BATTLE_ENVIRONMENT_ULTRA_SPACE, gBattleAnimMove_Psywave .if B_SECRET_POWER_ANIMATION >= GEN_7 - jumpargeq 0, BATTLE_TERRAIN_SNOW, gBattleAnimMove_IceShard - jumpargeq 0, BATTLE_TERRAIN_BUILDING, gBattleAnimMove_SpitUp + jumpargeq 0, BATTLE_ENVIRONMENT_SNOW, gBattleAnimMove_IceShard + jumpargeq 0, BATTLE_ENVIRONMENT_BUILDING, gBattleAnimMove_SpitUp goto gBattleAnimMove_SpitUp .elseif B_SECRET_POWER_ANIMATION >= GEN_6 - jumpargeq 0, BATTLE_TERRAIN_SNOW, gBattleAnimMove_Avalanche - jumpargeq 0, BATTLE_TERRAIN_BUILDING, gBattleAnimMove_BodySlam + jumpargeq 0, BATTLE_ENVIRONMENT_SNOW, gBattleAnimMove_Avalanche + jumpargeq 0, BATTLE_ENVIRONMENT_BUILDING, gBattleAnimMove_BodySlam goto gBattleAnimMove_BodySlam .elseif B_SECRET_POWER_ANIMATION >= GEN_4 - jumpargeq 0, BATTLE_TERRAIN_SNOW, gBattleAnimMove_Avalanche - jumpargeq 0, BATTLE_TERRAIN_BUILDING, gBattleAnimMove_BodySlam + jumpargeq 0, BATTLE_ENVIRONMENT_SNOW, gBattleAnimMove_Avalanche + jumpargeq 0, BATTLE_ENVIRONMENT_BUILDING, gBattleAnimMove_BodySlam goto gBattleAnimMove_MudSlap .else - jumpargeq 0, BATTLE_TERRAIN_SNOW, gBattleAnimMove_Avalanche - jumpargeq 0, BATTLE_TERRAIN_BUILDING, gBattleAnimMove_Strength + jumpargeq 0, BATTLE_ENVIRONMENT_SNOW, gBattleAnimMove_Avalanche + jumpargeq 0, BATTLE_ENVIRONMENT_BUILDING, gBattleAnimMove_Strength goto gBattleAnimMove_Slam .endif diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 3bf5b1f3d7..cfa0f9e3ff 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -4898,7 +4898,7 @@ BattleScript_EffectNaturePower:: attackcanceler attackstring pause B_WAIT_TIME_SHORT - callterrainattack + callenvironmentattack printstring STRINGID_NATUREPOWERTURNEDINTO waitmessage B_WAIT_TIME_LONG return @@ -5347,7 +5347,7 @@ BattleScript_EffectCamouflage:: attackcanceler attackstring ppreduce - settypetoterrain BattleScript_ButItFailed + settypetoenvironment BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNCHANGEDTYPE diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index 2d521b6a97..e38949773d 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -20,6 +20,7 @@ - [Day/Night System FAQ](tutorials/dns.md) - [Changelog](./CHANGELOG.md) - [1.11.x]() + - [Version 1.11.2](changelogs/1.11.x/1.11.2.md) - [Version 1.11.1](changelogs/1.11.x/1.11.1.md) - [Version 1.11.0](changelogs/1.11.x/1.11.0.md) - [1.10.x]() diff --git a/docs/changelogs/1.11.x/1.11.2.md b/docs/changelogs/1.11.x/1.11.2.md new file mode 100644 index 0000000000..47d9b11b97 --- /dev/null +++ b/docs/changelogs/1.11.x/1.11.2.md @@ -0,0 +1,143 @@ +```md +## How to update +- If you haven't set up a remote, run the command `git remote add RHH https://github.com/rh-hideout/pokeemerald-expansion`. +- Once you have your remote set up, run the command `git pull RHH expansion/1.11.2 +`. +``` + + +## 🧬 General 🧬 +### Changed +* 1.11.1 Release by @hedara90 in [#6503](https://github.com/rh-hideout/pokeemerald-expansion/pull/6503) +* Add General Merge to label check by @hedara90 in [#6512](https://github.com/rh-hideout/pokeemerald-expansion/pull/6512) +* Added AI switch display to the battle debug by @hedara90 in [#6529](https://github.com/rh-hideout/pokeemerald-expansion/pull/6529) +* Consolidated "How to add Pokémon" tutorials by @AsparagusEduardo in [#6541](https://github.com/rh-hideout/pokeemerald-expansion/pull/6541) +* Fixed Behemoth Blade/Bash handler not using form change tables by @AsparagusEduardo in [#6558](https://github.com/rh-hideout/pokeemerald-expansion/pull/6558) +* Documentation by @hedara90 in [#6576](https://github.com/rh-hideout/pokeemerald-expansion/pull/6576) +* Corrected Dexnav config related comment by @LOuroboros in [#6610](https://github.com/rh-hideout/pokeemerald-expansion/pull/6610) +* Make generated files match the current formatting by @hedara90 in [#6636](https://github.com/rh-hideout/pokeemerald-expansion/pull/6636) + +### Fixed +* Mark RTC/Flash save hint string as used by @aronson in [#6507](https://github.com/rh-hideout/pokeemerald-expansion/pull/6507) +* Fix move names in learnset helper by @malad1211 in [#6510](https://github.com/rh-hideout/pokeemerald-expansion/pull/6510) +* Fix no eligible mons when only the partner wins in multi battle by @Bivurnum in [#6626](https://github.com/rh-hideout/pokeemerald-expansion/pull/6626) +* Fixed broken palette load for shiny followers in the sprite visualizer by @hedara90 in [#6683](https://github.com/rh-hideout/pokeemerald-expansion/pull/6683) +* Fix `FORM_CHANGE_ITEM_HOLD` bug manifested during `givemon` by @AsparagusEduardo in [#6702](https://github.com/rh-hideout/pokeemerald-expansion/pull/6702) + +## 🗺️ Overworld 🗺️ +### Fixed +* Added call to ItemId_GetDescription by @pkmnsnfrn in [#6582](https://github.com/rh-hideout/pokeemerald-expansion/pull/6582) + +## 🐉 Pokémon 🐉 +### Changed +* Add clarification for EVO_SCRIPT_TRIGGER_DMG by @Bassoonian in [#6579](https://github.com/rh-hideout/pokeemerald-expansion/pull/6579) + +### Fixed +* Capped Exp from Daycare to level cap by @hedara90 in [#6622](https://github.com/rh-hideout/pokeemerald-expansion/pull/6622) + +## ⚔️ Battle General ⚔️ +### Changed +* Fixes Thermal Exchange not curing existing burn by @PhallenTree in [#6545](https://github.com/rh-hideout/pokeemerald-expansion/pull/6545) +* Add clarification for underlying math in EV caps by @Bassoonian and @i0brendan0 in [#6580](https://github.com/rh-hideout/pokeemerald-expansion/pull/6580) +* Added missing `gMovesInfo` encapsulation by @AsparagusEduardo in [#6656](https://github.com/rh-hideout/pokeemerald-expansion/pull/6656) +* Remove misleading comment by @AlexOn1ine in [#6684](https://github.com/rh-hideout/pokeemerald-expansion/pull/6684) + +### Fixed +* Fixes Tera Type not being carried over to during form change / evolution by @AlexOn1ine in [#6502](https://github.com/rh-hideout/pokeemerald-expansion/pull/6502) +* Fixes Hone Claws checking the wrong stats for its stat change animation and Stockpile drops being stopped by stat reduction prevention effects by @PhallenTree in [#6522](https://github.com/rh-hideout/pokeemerald-expansion/pull/6522) +* Fixes Red Card against Dynamaxed mons by @AlexOn1ine in [#6526](https://github.com/rh-hideout/pokeemerald-expansion/pull/6526) +* Fixes transformed mon being able to use tera on Terapagos by @AlexOn1ine in [#6528](https://github.com/rh-hideout/pokeemerald-expansion/pull/6528) +* Fixes Will-O-Wisp not being blocked by Thermal Exchange by @AlexOn1ine in [#6534](https://github.com/rh-hideout/pokeemerald-expansion/pull/6534) +* Add hold effects for PLA Origin Trio items by @Bassoonian in [#6578](https://github.com/rh-hideout/pokeemerald-expansion/pull/6578) +* Ability imposter by @wiz1989 and @AlexOn1ine in [#6552](https://github.com/rh-hideout/pokeemerald-expansion/pull/6552) +* Fixes Dynamax reversion animation when fainting by @PhallenTree in [#6597](https://github.com/rh-hideout/pokeemerald-expansion/pull/6597) +* Fix potential compile error caused by sTeraIndicatorDataPtrs by @AlexOn1ine in [#6599](https://github.com/rh-hideout/pokeemerald-expansion/pull/6599) +* Revert wrongly done Embody Aspect fix by @AlexOn1ine in [#6607](https://github.com/rh-hideout/pokeemerald-expansion/pull/6607) +* Fixes wrong battler's Illusion wearing off when the Attacker faints and fixes Illusion tests by @PhallenTree in [#6596](https://github.com/rh-hideout/pokeemerald-expansion/pull/6596) +* Fixes Gulp Missile freezing the game if when attacker fainted by @AlexOn1ine in [#6639](https://github.com/rh-hideout/pokeemerald-expansion/pull/6639) +* Fixes Big Root Leech Seed heal amount by @AlexOn1ine in [#6638](https://github.com/rh-hideout/pokeemerald-expansion/pull/6638) +* Fix Mirror Armor and Obstruct interaction by @AlexOn1ine in [#6630](https://github.com/rh-hideout/pokeemerald-expansion/pull/6630) +* Fixes some restore issues by @AlexOn1ine in [#6629](https://github.com/rh-hideout/pokeemerald-expansion/pull/6629) +* Fixes Ally Switch cancelling partner's moves targeting that side of the field by @PhallenTree and @hedara90 made the Ally Switch test in #6646 in [#6647](https://github.com/rh-hideout/pokeemerald-expansion/pull/6647) +* Fixes commander activation on a fainted mon by @AlexOn1ine in [#6632](https://github.com/rh-hideout/pokeemerald-expansion/pull/6632) +* Fix captivate-oblivious interaction and related test by @cawtds in [#6653](https://github.com/rh-hideout/pokeemerald-expansion/pull/6653) +* Fix gBattlerTarget OOB for Gravity and Perish Song by @AlexOn1ine in [#6662](https://github.com/rh-hideout/pokeemerald-expansion/pull/6662) +* Fixes Intimidate / Eject Pack interaction by @AlexOn1ine in [#6645](https://github.com/rh-hideout/pokeemerald-expansion/pull/6645) +* Fixes Neutralizing Gas activating again after switch-in by @PhallenTree in [#6667](https://github.com/rh-hideout/pokeemerald-expansion/pull/6667) +* Fixes Bug Bite eaten berry not ignoring Unnerve by @AlexOn1ine in [#6666](https://github.com/rh-hideout/pokeemerald-expansion/pull/6666) +* Fixes Mirror Armor stat drops not being stopped by Substitute by @PhallenTree in [#6675](https://github.com/rh-hideout/pokeemerald-expansion/pull/6675) +* Fixes Magician Life Orb interaction by @AlexOn1ine in [#6676](https://github.com/rh-hideout/pokeemerald-expansion/pull/6676) +* Fixes Unburden doubling speed when affected by Neutralizing Gas by @PhallenTree in [#6691](https://github.com/rh-hideout/pokeemerald-expansion/pull/6691) +* Fix various Toxic Spikes interactions by @hedara90 in [#6690](https://github.com/rh-hideout/pokeemerald-expansion/pull/6690) +* Fixes Z and Max moves dmg reduction against side protection by @AlexOn1ine in [#6697](https://github.com/rh-hideout/pokeemerald-expansion/pull/6697) +* Fixes Stomping Tantrum not doubling power if asleep or frozen by @AlexOn1ine in [#6719](https://github.com/rh-hideout/pokeemerald-expansion/pull/6719) + +## 🤹 Moves 🤹 +### Fixed +* Gimmick Indicator refactor by @hedara90 in [#6553](https://github.com/rh-hideout/pokeemerald-expansion/pull/6553) + - This frees up a lot of VRAM in battles. +* Animation fixes from lucky adapted to expansion by @hedara90 and @/luckytyphlosion in [#6452](https://github.com/rh-hideout/pokeemerald-expansion/pull/6452) +* Fix Magma Storm getting stuck by @hedara90 in [#6605](https://github.com/rh-hideout/pokeemerald-expansion/pull/6605) +* Fix VRAM load for Black Hole Eclipse by @hedara90 in [#6635](https://github.com/rh-hideout/pokeemerald-expansion/pull/6635) +* Fixes some moves trying to load too much VRAM by @hedara90 in [#6633](https://github.com/rh-hideout/pokeemerald-expansion/pull/6633) + +## 🧶 Items 🧶 +### Fixed +* Fix using items to heal partner in battle by @hedara90 in [#6517](https://github.com/rh-hideout/pokeemerald-expansion/pull/6517) + +## 🤖 Battle AI 🤖 +### Changed +* Add AI thinking cycle count display to frame count by @aronson in [#6509](https://github.com/rh-hideout/pokeemerald-expansion/pull/6509) +* Remove redundant AI defines by @Bassoonian in [#6590](https://github.com/rh-hideout/pokeemerald-expansion/pull/6590) + +## 🧹 Other Cleanup 🧹 +* Added call to ItemId_GetDescription by @pkmnsnfrn in [#6582](https://github.com/rh-hideout/pokeemerald-expansion/pull/6582) +* Remove redundant AI defines by @Bassoonian in [#6590](https://github.com/rh-hideout/pokeemerald-expansion/pull/6590) +* Corrected Dexnav config related comment by @LOuroboros in [#6610](https://github.com/rh-hideout/pokeemerald-expansion/pull/6610) +* Added missing `gMovesInfo` encapsulation by @AsparagusEduardo in [#6656](https://github.com/rh-hideout/pokeemerald-expansion/pull/6656) +* Remove HitmarkerSwapAttackerTarget by @AlexOn1ine in [#6627](https://github.com/rh-hideout/pokeemerald-expansion/pull/6627) +* Remove misleading comment by @AlexOn1ine in [#6684](https://github.com/rh-hideout/pokeemerald-expansion/pull/6684) + +## 🧪 Test Runner 🧪 +### Changed +* Support make check on macOS by @aronson in [#6513](https://github.com/rh-hideout/pokeemerald-expansion/pull/6513) + - The new test runner binary will not support macOS versions older than 10.7 or 11 (for Intel and Apple Silicon respectively). + - macOS users running `make check` may need to confirm with an OS dialog they're willing to open `mgba-rom-test-mac` when run for the first time. + - macOS users running `make check` must have `stdbuf` installed through `brew`'s `coreutils` package. +* Thermal exchange tests by @hedara90 in [#6536](https://github.com/rh-hideout/pokeemerald-expansion/pull/6536) +* Air Balloon AI tests by @Pawkkie in [#6604](https://github.com/rh-hideout/pokeemerald-expansion/pull/6604) +* Big Root tests by @Bassoonian in [#6601](https://github.com/rh-hideout/pokeemerald-expansion/pull/6601) +* Test for Freeze vs Scald thaw by @AlexOn1ine in [#6658](https://github.com/rh-hideout/pokeemerald-expansion/pull/6658) +* Adds a whole bunch of new tests by @Bassoonian in [#6685](https://github.com/rh-hideout/pokeemerald-expansion/pull/6685) + +### Fixed +* Fixed Color Change test referring to the wrong mon by @hedara90 in [#6644](https://github.com/rh-hideout/pokeemerald-expansion/pull/6644) +* Fixed LGPE move test fail with `B_UPDATED_MOVE_DATA` to `GEN_7` by @AsparagusEduardo in [#6657](https://github.com/rh-hideout/pokeemerald-expansion/pull/6657) +* Use correct define for moves in test runner by @AsparagusEduardo in [#6711](https://github.com/rh-hideout/pokeemerald-expansion/pull/6711) + +## 📚 Documentation 📚 +* Consolidated "How to add Pokémon" tutorials by @AsparagusEduardo in [#6541](https://github.com/rh-hideout/pokeemerald-expansion/pull/6541) +* Documentation by @hedara90 in [#6576](https://github.com/rh-hideout/pokeemerald-expansion/pull/6576) +* Add clarification for underlying math in EV caps by @Bassoonian and @i0brendan0 in [#6580](https://github.com/rh-hideout/pokeemerald-expansion/pull/6580) +* Add clarification for EVO_SCRIPT_TRIGGER_DMG by @Bassoonian in [#6579](https://github.com/rh-hideout/pokeemerald-expansion/pull/6579) + +## 📦 Branch Synchronisation 📦 +### pret +* 11 of April in [#6575](https://github.com/rh-hideout/pokeemerald-expansion/pull/6575) + * Align gMPlayTrack_BGM by @DizzyEggg in [pret#2115](https://github.com/pret/pokeemerald/pull/2115) + * GENDER_COUNT in sPlayer/RivalAvatarGfxIds by @AsparagusEduardo in [pret#2117](https://github.com/pret/pokeemerald/pull/2117) + * Fixed init call when using AGBPrint as log handler by @pokemonmasteraaron in [pret#2119](https://github.com/pret/pokeemerald/pull/2119) + * Make linkDirection more robust to member reordering by @cawtds in [pret#2118](https://github.com/pret/pokeemerald/pull/2118) +* 29th of April 2025 in [#6722](https://github.com/rh-hideout/pokeemerald-expansion/pull/6722) + * Rename battle terrain to environment by @Bassoonian in [pret#2014](https://github.com/pret/pokeemerald/pull/2014) + * Fixes for Mirage Tower graphics by @GriffinRichards in [pret#2120](https://github.com/pret/pokeemerald/pull/2120) + * Missing constant in Birch speech dialogue by @estellarc in [pret#2123](https://github.com/pret/pokeemerald/pull/2123) + +## New Contributors +* @malad1211 made their first contribution in [#6510](https://github.com/rh-hideout/pokeemerald-expansion/pull/6510) + +**Full Changelog**: https://github.com/rh-hideout/pokeemerald-expansion/compare/expansion/1.11.1...expansion/1.11.2 + + + + diff --git a/graphics/battle_terrain/building/anim_map.bin b/graphics/battle_environment/building/anim_map.bin similarity index 100% rename from graphics/battle_terrain/building/anim_map.bin rename to graphics/battle_environment/building/anim_map.bin diff --git a/graphics/battle_terrain/building/anim_tiles.png b/graphics/battle_environment/building/anim_tiles.png similarity index 100% rename from graphics/battle_terrain/building/anim_tiles.png rename to graphics/battle_environment/building/anim_tiles.png diff --git a/graphics/battle_terrain/building/map.bin b/graphics/battle_environment/building/map.bin similarity index 100% rename from graphics/battle_terrain/building/map.bin rename to graphics/battle_environment/building/map.bin diff --git a/graphics/battle_terrain/building/palette.pal b/graphics/battle_environment/building/palette.pal similarity index 100% rename from graphics/battle_terrain/building/palette.pal rename to graphics/battle_environment/building/palette.pal diff --git a/graphics/battle_terrain/building/palette2.pal b/graphics/battle_environment/building/palette2.pal similarity index 100% rename from graphics/battle_terrain/building/palette2.pal rename to graphics/battle_environment/building/palette2.pal diff --git a/graphics/battle_terrain/building/palette3.pal b/graphics/battle_environment/building/palette3.pal similarity index 100% rename from graphics/battle_terrain/building/palette3.pal rename to graphics/battle_environment/building/palette3.pal diff --git a/graphics/battle_terrain/building/tiles.png b/graphics/battle_environment/building/tiles.png similarity index 100% rename from graphics/battle_terrain/building/tiles.png rename to graphics/battle_environment/building/tiles.png diff --git a/graphics/battle_terrain/cave/anim_map.bin b/graphics/battle_environment/cave/anim_map.bin similarity index 100% rename from graphics/battle_terrain/cave/anim_map.bin rename to graphics/battle_environment/cave/anim_map.bin diff --git a/graphics/battle_terrain/cave/anim_tiles.png b/graphics/battle_environment/cave/anim_tiles.png similarity index 100% rename from graphics/battle_terrain/cave/anim_tiles.png rename to graphics/battle_environment/cave/anim_tiles.png diff --git a/graphics/battle_terrain/cave/groudon.pal b/graphics/battle_environment/cave/groudon.pal similarity index 100% rename from graphics/battle_terrain/cave/groudon.pal rename to graphics/battle_environment/cave/groudon.pal diff --git a/graphics/battle_terrain/cave/map.bin b/graphics/battle_environment/cave/map.bin similarity index 100% rename from graphics/battle_terrain/cave/map.bin rename to graphics/battle_environment/cave/map.bin diff --git a/graphics/battle_terrain/cave/palette.pal b/graphics/battle_environment/cave/palette.pal similarity index 100% rename from graphics/battle_terrain/cave/palette.pal rename to graphics/battle_environment/cave/palette.pal diff --git a/graphics/battle_terrain/cave/tiles.png b/graphics/battle_environment/cave/tiles.png similarity index 100% rename from graphics/battle_terrain/cave/tiles.png rename to graphics/battle_environment/cave/tiles.png diff --git a/graphics/battle_terrain/long_grass/anim_map.bin b/graphics/battle_environment/long_grass/anim_map.bin similarity index 100% rename from graphics/battle_terrain/long_grass/anim_map.bin rename to graphics/battle_environment/long_grass/anim_map.bin diff --git a/graphics/battle_terrain/long_grass/anim_tiles.png b/graphics/battle_environment/long_grass/anim_tiles.png similarity index 100% rename from graphics/battle_terrain/long_grass/anim_tiles.png rename to graphics/battle_environment/long_grass/anim_tiles.png diff --git a/graphics/battle_terrain/long_grass/map.bin b/graphics/battle_environment/long_grass/map.bin similarity index 100% rename from graphics/battle_terrain/long_grass/map.bin rename to graphics/battle_environment/long_grass/map.bin diff --git a/graphics/battle_terrain/long_grass/palette.pal b/graphics/battle_environment/long_grass/palette.pal similarity index 100% rename from graphics/battle_terrain/long_grass/palette.pal rename to graphics/battle_environment/long_grass/palette.pal diff --git a/graphics/battle_terrain/long_grass/tiles.png b/graphics/battle_environment/long_grass/tiles.png similarity index 100% rename from graphics/battle_terrain/long_grass/tiles.png rename to graphics/battle_environment/long_grass/tiles.png diff --git a/graphics/battle_terrain/plain/palette.pal b/graphics/battle_environment/plain/palette.pal similarity index 100% rename from graphics/battle_terrain/plain/palette.pal rename to graphics/battle_environment/plain/palette.pal diff --git a/graphics/battle_terrain/pond_water/anim_map.bin b/graphics/battle_environment/pond_water/anim_map.bin similarity index 100% rename from graphics/battle_terrain/pond_water/anim_map.bin rename to graphics/battle_environment/pond_water/anim_map.bin diff --git a/graphics/battle_terrain/pond_water/anim_tiles.png b/graphics/battle_environment/pond_water/anim_tiles.png similarity index 100% rename from graphics/battle_terrain/pond_water/anim_tiles.png rename to graphics/battle_environment/pond_water/anim_tiles.png diff --git a/graphics/battle_terrain/pond_water/map.bin b/graphics/battle_environment/pond_water/map.bin similarity index 100% rename from graphics/battle_terrain/pond_water/map.bin rename to graphics/battle_environment/pond_water/map.bin diff --git a/graphics/battle_terrain/pond_water/palette.pal b/graphics/battle_environment/pond_water/palette.pal similarity index 100% rename from graphics/battle_terrain/pond_water/palette.pal rename to graphics/battle_environment/pond_water/palette.pal diff --git a/graphics/battle_terrain/pond_water/tiles.png b/graphics/battle_environment/pond_water/tiles.png similarity index 100% rename from graphics/battle_terrain/pond_water/tiles.png rename to graphics/battle_environment/pond_water/tiles.png diff --git a/graphics/battle_terrain/rock/anim_map.bin b/graphics/battle_environment/rock/anim_map.bin similarity index 100% rename from graphics/battle_terrain/rock/anim_map.bin rename to graphics/battle_environment/rock/anim_map.bin diff --git a/graphics/battle_terrain/rock/anim_tiles.png b/graphics/battle_environment/rock/anim_tiles.png similarity index 100% rename from graphics/battle_terrain/rock/anim_tiles.png rename to graphics/battle_environment/rock/anim_tiles.png diff --git a/graphics/battle_terrain/rock/map.bin b/graphics/battle_environment/rock/map.bin similarity index 100% rename from graphics/battle_terrain/rock/map.bin rename to graphics/battle_environment/rock/map.bin diff --git a/graphics/battle_terrain/rock/palette.pal b/graphics/battle_environment/rock/palette.pal similarity index 100% rename from graphics/battle_terrain/rock/palette.pal rename to graphics/battle_environment/rock/palette.pal diff --git a/graphics/battle_terrain/rock/tiles.png b/graphics/battle_environment/rock/tiles.png similarity index 100% rename from graphics/battle_terrain/rock/tiles.png rename to graphics/battle_environment/rock/tiles.png diff --git a/graphics/battle_terrain/sand/anim_map.bin b/graphics/battle_environment/sand/anim_map.bin similarity index 100% rename from graphics/battle_terrain/sand/anim_map.bin rename to graphics/battle_environment/sand/anim_map.bin diff --git a/graphics/battle_terrain/sand/anim_tiles.png b/graphics/battle_environment/sand/anim_tiles.png similarity index 100% rename from graphics/battle_terrain/sand/anim_tiles.png rename to graphics/battle_environment/sand/anim_tiles.png diff --git a/graphics/battle_terrain/sand/map.bin b/graphics/battle_environment/sand/map.bin similarity index 100% rename from graphics/battle_terrain/sand/map.bin rename to graphics/battle_environment/sand/map.bin diff --git a/graphics/battle_terrain/sand/palette.pal b/graphics/battle_environment/sand/palette.pal similarity index 100% rename from graphics/battle_terrain/sand/palette.pal rename to graphics/battle_environment/sand/palette.pal diff --git a/graphics/battle_terrain/sand/tiles.png b/graphics/battle_environment/sand/tiles.png similarity index 100% rename from graphics/battle_terrain/sand/tiles.png rename to graphics/battle_environment/sand/tiles.png diff --git a/graphics/battle_terrain/sky/anim_map.bin b/graphics/battle_environment/sky/anim_map.bin similarity index 100% rename from graphics/battle_terrain/sky/anim_map.bin rename to graphics/battle_environment/sky/anim_map.bin diff --git a/graphics/battle_terrain/sky/anim_tiles.png b/graphics/battle_environment/sky/anim_tiles.png similarity index 100% rename from graphics/battle_terrain/sky/anim_tiles.png rename to graphics/battle_environment/sky/anim_tiles.png diff --git a/graphics/battle_terrain/sky/map.bin b/graphics/battle_environment/sky/map.bin similarity index 100% rename from graphics/battle_terrain/sky/map.bin rename to graphics/battle_environment/sky/map.bin diff --git a/graphics/battle_terrain/sky/palette.pal b/graphics/battle_environment/sky/palette.pal similarity index 100% rename from graphics/battle_terrain/sky/palette.pal rename to graphics/battle_environment/sky/palette.pal diff --git a/graphics/battle_terrain/sky/tiles.png b/graphics/battle_environment/sky/tiles.png similarity index 100% rename from graphics/battle_terrain/sky/tiles.png rename to graphics/battle_environment/sky/tiles.png diff --git a/graphics/battle_terrain/stadium/battle_frontier.pal b/graphics/battle_environment/stadium/battle_frontier.pal similarity index 100% rename from graphics/battle_terrain/stadium/battle_frontier.pal rename to graphics/battle_environment/stadium/battle_frontier.pal diff --git a/graphics/battle_terrain/stadium/map.bin b/graphics/battle_environment/stadium/map.bin similarity index 100% rename from graphics/battle_terrain/stadium/map.bin rename to graphics/battle_environment/stadium/map.bin diff --git a/graphics/battle_terrain/stadium/palette1.pal b/graphics/battle_environment/stadium/palette1.pal similarity index 100% rename from graphics/battle_terrain/stadium/palette1.pal rename to graphics/battle_environment/stadium/palette1.pal diff --git a/graphics/battle_terrain/stadium/palette2.pal b/graphics/battle_environment/stadium/palette2.pal similarity index 100% rename from graphics/battle_terrain/stadium/palette2.pal rename to graphics/battle_environment/stadium/palette2.pal diff --git a/graphics/battle_terrain/stadium/palette3.pal b/graphics/battle_environment/stadium/palette3.pal similarity index 100% rename from graphics/battle_terrain/stadium/palette3.pal rename to graphics/battle_environment/stadium/palette3.pal diff --git a/graphics/battle_terrain/stadium/palette4.pal b/graphics/battle_environment/stadium/palette4.pal similarity index 100% rename from graphics/battle_terrain/stadium/palette4.pal rename to graphics/battle_environment/stadium/palette4.pal diff --git a/graphics/battle_terrain/stadium/palette5.pal b/graphics/battle_environment/stadium/palette5.pal similarity index 100% rename from graphics/battle_terrain/stadium/palette5.pal rename to graphics/battle_environment/stadium/palette5.pal diff --git a/graphics/battle_terrain/stadium/palette6.pal b/graphics/battle_environment/stadium/palette6.pal similarity index 100% rename from graphics/battle_terrain/stadium/palette6.pal rename to graphics/battle_environment/stadium/palette6.pal diff --git a/graphics/battle_terrain/stadium/palette7.pal b/graphics/battle_environment/stadium/palette7.pal similarity index 100% rename from graphics/battle_terrain/stadium/palette7.pal rename to graphics/battle_environment/stadium/palette7.pal diff --git a/graphics/battle_terrain/stadium/tiles.png b/graphics/battle_environment/stadium/tiles.png similarity index 100% rename from graphics/battle_terrain/stadium/tiles.png rename to graphics/battle_environment/stadium/tiles.png diff --git a/graphics/battle_terrain/tall_grass/anim_map.bin b/graphics/battle_environment/tall_grass/anim_map.bin similarity index 100% rename from graphics/battle_terrain/tall_grass/anim_map.bin rename to graphics/battle_environment/tall_grass/anim_map.bin diff --git a/graphics/battle_terrain/tall_grass/anim_tiles.png b/graphics/battle_environment/tall_grass/anim_tiles.png similarity index 100% rename from graphics/battle_terrain/tall_grass/anim_tiles.png rename to graphics/battle_environment/tall_grass/anim_tiles.png diff --git a/graphics/battle_terrain/tall_grass/map.bin b/graphics/battle_environment/tall_grass/map.bin similarity index 100% rename from graphics/battle_terrain/tall_grass/map.bin rename to graphics/battle_environment/tall_grass/map.bin diff --git a/graphics/battle_terrain/tall_grass/palette.pal b/graphics/battle_environment/tall_grass/palette.pal similarity index 100% rename from graphics/battle_terrain/tall_grass/palette.pal rename to graphics/battle_environment/tall_grass/palette.pal diff --git a/graphics/battle_terrain/tall_grass/tiles.png b/graphics/battle_environment/tall_grass/tiles.png similarity index 100% rename from graphics/battle_terrain/tall_grass/tiles.png rename to graphics/battle_environment/tall_grass/tiles.png diff --git a/graphics/battle_terrain/underwater/anim_map.bin b/graphics/battle_environment/underwater/anim_map.bin similarity index 100% rename from graphics/battle_terrain/underwater/anim_map.bin rename to graphics/battle_environment/underwater/anim_map.bin diff --git a/graphics/battle_terrain/underwater/anim_tiles.png b/graphics/battle_environment/underwater/anim_tiles.png similarity index 100% rename from graphics/battle_terrain/underwater/anim_tiles.png rename to graphics/battle_environment/underwater/anim_tiles.png diff --git a/graphics/battle_terrain/underwater/map.bin b/graphics/battle_environment/underwater/map.bin similarity index 100% rename from graphics/battle_terrain/underwater/map.bin rename to graphics/battle_environment/underwater/map.bin diff --git a/graphics/battle_terrain/underwater/palette.pal b/graphics/battle_environment/underwater/palette.pal similarity index 100% rename from graphics/battle_terrain/underwater/palette.pal rename to graphics/battle_environment/underwater/palette.pal diff --git a/graphics/battle_terrain/underwater/tiles.png b/graphics/battle_environment/underwater/tiles.png similarity index 100% rename from graphics/battle_terrain/underwater/tiles.png rename to graphics/battle_environment/underwater/tiles.png diff --git a/graphics/battle_terrain/water/anim_map.bin b/graphics/battle_environment/water/anim_map.bin similarity index 100% rename from graphics/battle_terrain/water/anim_map.bin rename to graphics/battle_environment/water/anim_map.bin diff --git a/graphics/battle_terrain/water/anim_tiles.png b/graphics/battle_environment/water/anim_tiles.png similarity index 100% rename from graphics/battle_terrain/water/anim_tiles.png rename to graphics/battle_environment/water/anim_tiles.png diff --git a/graphics/battle_terrain/water/kyogre.pal b/graphics/battle_environment/water/kyogre.pal similarity index 100% rename from graphics/battle_terrain/water/kyogre.pal rename to graphics/battle_environment/water/kyogre.pal diff --git a/graphics/battle_terrain/water/map.bin b/graphics/battle_environment/water/map.bin similarity index 100% rename from graphics/battle_terrain/water/map.bin rename to graphics/battle_environment/water/map.bin diff --git a/graphics/battle_terrain/water/palette.pal b/graphics/battle_environment/water/palette.pal similarity index 100% rename from graphics/battle_terrain/water/palette.pal rename to graphics/battle_environment/water/palette.pal diff --git a/graphics/battle_terrain/water/tiles.png b/graphics/battle_environment/water/tiles.png similarity index 100% rename from graphics/battle_terrain/water/tiles.png rename to graphics/battle_environment/water/tiles.png diff --git a/graphics/misc/mirage_tower.png b/graphics/misc/mirage_tower.png index c851953d21..36890686f1 100644 Binary files a/graphics/misc/mirage_tower.png and b/graphics/misc/mirage_tower.png differ diff --git a/graphics/pokemon/lurantis/anim_front.png b/graphics/pokemon/lurantis/anim_front.png new file mode 100644 index 0000000000..4b34e5e711 Binary files /dev/null and b/graphics/pokemon/lurantis/anim_front.png differ diff --git a/graphics/pokemon/lurantis/front.png b/graphics/pokemon/lurantis/front.png deleted file mode 100644 index f73999e0d1..0000000000 Binary files a/graphics/pokemon/lurantis/front.png and /dev/null differ diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk index 9f1be162f4..75460992f8 100644 --- a/graphics_file_rules.mk +++ b/graphics_file_rules.mk @@ -290,6 +290,9 @@ graphics/pokenav/region_map/map.8bpp: %.8bpp: %.png $(MISCGFXDIR)/japanese_hof.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 29 -Wnum_tiles +$(MISCGFXDIR)/mirage_tower.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 73 -Wnum_tiles + $(BATINTGFXDIR)/textbox.gbapal: $(BATINTGFXDIR)/textbox_0.gbapal \ $(BATINTGFXDIR)/textbox_1.gbapal @cat $^ >$@ diff --git a/include/battle.h b/include/battle.h index a8cc291455..65fad63651 100644 --- a/include/battle.h +++ b/include/battle.h @@ -144,25 +144,18 @@ struct ProtectStruct u32 helpingHand:1; u32 bounceMove:1; u32 stealMove:1; - u32 prlzImmobility:1; + u32 nonVolatileStatusImmobility:1; u32 confusionSelfDmg:1; - u32 touchedProtectLike:1; u32 chargingTurn:1; u32 fleeType:2; // 0: Normal, 1: FLEE_ITEM, 2: FLEE_ABILITY - u32 usedImprisonedMove:1; - u32 loveImmobility:1; - u32 usedDisabledMove:1; - u32 usedTauntedMove:1; - u32 flag2Unknown:1; // Only set to 0 once. Checked in 'WasUnableToUseMove' function. - u32 flinchImmobility:1; + u32 unableToUseMove:1; // Not to be confused with HITMARKER_UNABLE_TO_USE_MOVE (It is questionable though if there is a difference. Needs further research) u32 notFirstStrike:1; u32 palaceUnableToUseMove:1; - u32 usedHealBlockedMove:1; - u32 usedGravityPreventedMove:1; u32 powderSelfDmg:1; - u32 usedThroatChopPreventedMove:1; u32 statRaised:1; u32 usedCustapBerry:1; // also quick claw + u32 touchedProtectLike:1; + u32 unused:8; // End of 32-bit bitfield u16 disableEjectPack:1; u16 statFell:1; @@ -1068,7 +1061,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; diff --git a/include/battle_anim.h b/include/battle_anim.h index 06bd00a245..0075010f77 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -82,7 +82,7 @@ void LoadMoveBg(u16 bgId); // battle_intro.c void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value); void DrawBattlerOnBg(int bgId, u8 x, u8 y, u8 battlerPosition, u8 paletteId, u8 *tiles, u16 *tilemap, u16 tilesOffset); -void HandleIntroSlide(u8 terrainId); +void HandleIntroSlide(u8 environmentId); int GetAnimBgAttribute(u8 bgId, u8 attributeId); // battle_anim_mons.c diff --git a/include/battle_setup.h b/include/battle_setup.h index f8eda0d8dc..278ca6d9ce 100644 --- a/include/battle_setup.h +++ b/include/battle_setup.h @@ -60,7 +60,7 @@ void BattleSetup_StartLatiBattle(void); void BattleSetup_StartLegendaryBattle(void); void StartGroudonKyogreBattle(void); void StartRegiBattle(void); -u8 BattleSetup_GetTerrainId(void); +u8 BattleSetup_GetEnvironmentId(void); u8 GetWildBattleTransition(void); u8 GetTrainerBattleTransition(void); u8 GetSpecialBattleTransition(s32 id); diff --git a/include/constants/battle.h b/include/constants/battle.h index 8f019db3ef..88224cf5b3 100644 --- a/include/constants/battle.h +++ b/include/constants/battle.h @@ -466,32 +466,32 @@ 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 -// 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 +// Battle environment 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 environments are used for Secret Power but not fully implemented. +#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_TERRAIN_COUNT 22 +#define BATTLE_ENVIRONMENT_COUNT 22 #define B_WAIT_TIME_LONG (B_WAIT_TIME_MULTIPLIER * 4) #define B_WAIT_TIME_MED (B_WAIT_TIME_MULTIPLIER * 3) diff --git a/include/constants/expansion.h b/include/constants/expansion.h index da902444e8..9d61a24a3b 100644 --- a/include/constants/expansion.h +++ b/include/constants/expansion.h @@ -1,7 +1,7 @@ #ifndef GUARD_CONSTANTS_EXPANSION_H #define GUARD_CONSTANTS_EXPANSION_H -// Last version: 1.11.1 +// Last version: 1.11.2 #define EXPANSION_VERSION_MAJOR 1 #define EXPANSION_VERSION_MINOR 12 #define EXPANSION_VERSION_PATCH 0 diff --git a/include/graphics.h b/include/graphics.h index 0a78bfa8f7..58212d67c2 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -214,72 +214,72 @@ extern const u32 gBattleVSFrame_Tilemap[]; extern const u32 gMultiBattleIntroBg_Opponent_Tilemap[]; extern const u32 gMultiBattleIntroBg_Player_Tilemap[]; -// battle terrains -extern const u32 gBattleTerrainTiles_TallGrass[]; -extern const u32 gBattleTerrainTilemap_TallGrass[]; -extern const u32 gBattleTerrainAnimTiles_TallGrass[]; -extern const u32 gBattleTerrainAnimTilemap_TallGrass[]; -extern const u16 gBattleTerrainPalette_TallGrass[]; -extern const u32 gBattleTerrainTiles_LongGrass[]; -extern const u32 gBattleTerrainTilemap_LongGrass[]; -extern const u32 gBattleTerrainAnimTiles_LongGrass[]; -extern const u32 gBattleTerrainAnimTilemap_LongGrass[]; -extern const u16 gBattleTerrainPalette_LongGrass[]; -extern const u32 gBattleTerrainTiles_Sand[]; -extern const u32 gBattleTerrainTilemap_Sand[]; -extern const u32 gBattleTerrainAnimTiles_Sand[]; -extern const u32 gBattleTerrainAnimTilemap_Sand[]; -extern const u16 gBattleTerrainPalette_Sand[]; -extern const u32 gBattleTerrainTiles_Underwater[]; -extern const u32 gBattleTerrainTilemap_Underwater[]; -extern const u32 gBattleTerrainAnimTiles_Underwater[]; -extern const u32 gBattleTerrainAnimTilemap_Underwater[]; -extern const u16 gBattleTerrainPalette_Underwater[]; -extern const u32 gBattleTerrainTiles_Water[]; -extern const u32 gBattleTerrainTilemap_Water[]; -extern const u32 gBattleTerrainAnimTiles_Water[]; -extern const u32 gBattleTerrainAnimTilemap_Water[]; -extern const u16 gBattleTerrainPalette_Water[]; -extern const u32 gBattleTerrainTiles_PondWater[]; -extern const u32 gBattleTerrainTilemap_PondWater[]; -extern const u32 gBattleTerrainAnimTiles_PondWater[]; -extern const u32 gBattleTerrainAnimTilemap_PondWater[]; -extern const u16 gBattleTerrainPalette_PondWater[]; -extern const u32 gBattleTerrainTiles_Rock[]; -extern const u32 gBattleTerrainTilemap_Rock[]; -extern const u32 gBattleTerrainAnimTiles_Rock[]; -extern const u32 gBattleTerrainAnimTilemap_Rock[]; -extern const u16 gBattleTerrainPalette_Rock[]; -extern const u32 gBattleTerrainTiles_Cave[]; -extern const u32 gBattleTerrainTilemap_Cave[]; -extern const u32 gBattleTerrainAnimTiles_Cave[]; -extern const u32 gBattleTerrainAnimTilemap_Cave[]; -extern const u16 gBattleTerrainPalette_Cave[]; -extern const u32 gBattleTerrainTiles_Building[]; -extern const u32 gBattleTerrainTilemap_Building[]; -extern const u32 gBattleTerrainAnimTiles_Building[]; -extern const u32 gBattleTerrainAnimTilemap_Building[]; -extern const u16 gBattleTerrainPalette_Building[]; -extern const u16 gBattleTerrainPalette_Plain[]; -extern const u16 gBattleTerrainPalette_Frontier[]; -extern const u32 gBattleTerrainTiles_Stadium[]; -extern const u32 gBattleTerrainTilemap_Stadium[]; -extern const u32 gBattleTerrainTiles_Rayquaza[]; -extern const u32 gBattleTerrainTilemap_Rayquaza[]; -extern const u32 gBattleTerrainAnimTiles_Rayquaza[]; -extern const u32 gBattleTerrainAnimTilemap_Rayquaza[]; -extern const u16 gBattleTerrainPalette_Rayquaza[]; -extern const u16 gBattleTerrainPalette_Kyogre[]; -extern const u16 gBattleTerrainPalette_Groudon[]; -extern const u16 gBattleTerrainPalette_BuildingGym[]; -extern const u16 gBattleTerrainPalette_BuildingLeader[]; -extern const u16 gBattleTerrainPalette_StadiumAqua[]; -extern const u16 gBattleTerrainPalette_StadiumMagma[]; -extern const u16 gBattleTerrainPalette_StadiumSidney[]; -extern const u16 gBattleTerrainPalette_StadiumPhoebe[]; -extern const u16 gBattleTerrainPalette_StadiumGlacia[]; -extern const u16 gBattleTerrainPalette_StadiumDrake[]; -extern const u16 gBattleTerrainPalette_StadiumWallace[]; +// battle environments +extern const u32 gBattleEnvironmentTiles_TallGrass[]; +extern const u32 gBattleEnvironmentTilemap_TallGrass[]; +extern const u32 gBattleEnvironmentAnimTiles_TallGrass[]; +extern const u32 gBattleEnvironmentAnimTilemap_TallGrass[]; +extern const u16 gBattleEnvironmentPalette_TallGrass[]; +extern const u32 gBattleEnvironmentTiles_LongGrass[]; +extern const u32 gBattleEnvironmentTilemap_LongGrass[]; +extern const u32 gBattleEnvironmentAnimTiles_LongGrass[]; +extern const u32 gBattleEnvironmentAnimTilemap_LongGrass[]; +extern const u16 gBattleEnvironmentPalette_LongGrass[]; +extern const u32 gBattleEnvironmentTiles_Sand[]; +extern const u32 gBattleEnvironmentTilemap_Sand[]; +extern const u32 gBattleEnvironmentAnimTiles_Sand[]; +extern const u32 gBattleEnvironmentAnimTilemap_Sand[]; +extern const u16 gBattleEnvironmentPalette_Sand[]; +extern const u32 gBattleEnvironmentTiles_Underwater[]; +extern const u32 gBattleEnvironmentTilemap_Underwater[]; +extern const u32 gBattleEnvironmentAnimTiles_Underwater[]; +extern const u32 gBattleEnvironmentAnimTilemap_Underwater[]; +extern const u16 gBattleEnvironmentPalette_Underwater[]; +extern const u32 gBattleEnvironmentTiles_Water[]; +extern const u32 gBattleEnvironmentTilemap_Water[]; +extern const u32 gBattleEnvironmentAnimTiles_Water[]; +extern const u32 gBattleEnvironmentAnimTilemap_Water[]; +extern const u16 gBattleEnvironmentPalette_Water[]; +extern const u32 gBattleEnvironmentTiles_PondWater[]; +extern const u32 gBattleEnvironmentTilemap_PondWater[]; +extern const u32 gBattleEnvironmentAnimTiles_PondWater[]; +extern const u32 gBattleEnvironmentAnimTilemap_PondWater[]; +extern const u16 gBattleEnvironmentPalette_PondWater[]; +extern const u32 gBattleEnvironmentTiles_Rock[]; +extern const u32 gBattleEnvironmentTilemap_Rock[]; +extern const u32 gBattleEnvironmentAnimTiles_Rock[]; +extern const u32 gBattleEnvironmentAnimTilemap_Rock[]; +extern const u16 gBattleEnvironmentPalette_Rock[]; +extern const u32 gBattleEnvironmentTiles_Cave[]; +extern const u32 gBattleEnvironmentTilemap_Cave[]; +extern const u32 gBattleEnvironmentAnimTiles_Cave[]; +extern const u32 gBattleEnvironmentAnimTilemap_Cave[]; +extern const u16 gBattleEnvironmentPalette_Cave[]; +extern const u32 gBattleEnvironmentTiles_Building[]; +extern const u32 gBattleEnvironmentTilemap_Building[]; +extern const u32 gBattleEnvironmentAnimTiles_Building[]; +extern const u32 gBattleEnvironmentAnimTilemap_Building[]; +extern const u16 gBattleEnvironmentPalette_Building[]; +extern const u16 gBattleEnvironmentPalette_Plain[]; +extern const u16 gBattleEnvironmentPalette_Frontier[]; +extern const u32 gBattleEnvironmentTiles_Stadium[]; +extern const u32 gBattleEnvironmentTilemap_Stadium[]; +extern const u32 gBattleEnvironmentTiles_Rayquaza[]; +extern const u32 gBattleEnvironmentTilemap_Rayquaza[]; +extern const u32 gBattleEnvironmentAnimTiles_Rayquaza[]; +extern const u32 gBattleEnvironmentAnimTilemap_Rayquaza[]; +extern const u16 gBattleEnvironmentPalette_Rayquaza[]; +extern const u16 gBattleEnvironmentPalette_Kyogre[]; +extern const u16 gBattleEnvironmentPalette_Groudon[]; +extern const u16 gBattleEnvironmentPalette_BuildingGym[]; +extern const u16 gBattleEnvironmentPalette_BuildingLeader[]; +extern const u16 gBattleEnvironmentPalette_StadiumAqua[]; +extern const u16 gBattleEnvironmentPalette_StadiumMagma[]; +extern const u16 gBattleEnvironmentPalette_StadiumSidney[]; +extern const u16 gBattleEnvironmentPalette_StadiumPhoebe[]; +extern const u16 gBattleEnvironmentPalette_StadiumGlacia[]; +extern const u16 gBattleEnvironmentPalette_StadiumDrake[]; +extern const u16 gBattleEnvironmentPalette_StadiumWallace[]; // Pokédex extern const u32 gPokedexInterface_Gfx[]; diff --git a/src/battle_anim_ground.c b/src/battle_anim_ground.c index 6119371757..10303ffe2e 100644 --- a/src/battle_anim_ground.c +++ b/src/battle_anim_ground.c @@ -18,7 +18,7 @@ static void AnimTask_DigEndBounceMovementSetInvisible(u8); static void AnimTask_DigSetVisibleUnderground(u8); static void AnimTask_DigRiseUpFromHole(u8); static void SetDigScanlineEffect(u8, s16, s16); -static void AnimTask_ShakeTerrain(u8); +static void AnimTask_ShakePlatforms(u8); static void AnimTask_ShakeBattlers(u8); static void SetBattlersXOffsetForShake(struct Task *); static void WaitForFissureCompletion(u8); @@ -581,12 +581,12 @@ static void AnimDigDirtMound(struct Sprite *sprite) #define tMaxTime data[3] #define tbattlerSpriteIds(i) data[9 + (i)] #define tNumBattlers data[13] // AnimTask_ShakeBattlers -#define tInitialX data[13] // AnimTask_ShakeTerrain +#define tInitialX data[13] // AnimTask_ShakePlatforms #define tHorizOffset data[14] #define tInitHorizOffset data[15] -// Shakes battler(s) or the battle terrain back and forth horizontally. Used by e.g. Earthquake, Eruption -// arg0: What to shake. 0-3 for any specific battler, MAX_BATTLERS_COUNT for all battlers, MAX_BATTLERS_COUNT + 1 for the terrain +// Shakes battler(s) or the battle platforms back and forth horizontally. Used by e.g. Earthquake, Eruption +// arg0: What to shake. 0-3 for any specific battler, MAX_BATTLERS_COUNT for all battlers, MAX_BATTLERS_COUNT + 1 for the platforms // arg1: Shake intensity, used to calculate horizontal pixel offset (if 0, use move power instead) // arg2: Length of time to shake for void AnimTask_HorizontalShake(u8 taskId) @@ -602,9 +602,9 @@ void AnimTask_HorizontalShake(u8 taskId) task->tMaxTime = gBattleAnimArgs[2]; switch (gBattleAnimArgs[0]) { - case MAX_BATTLERS_COUNT + 1: // Shake terrain + case MAX_BATTLERS_COUNT + 1: // Shake platforms task->tInitialX = gBattle_BG3_X; - task->func = AnimTask_ShakeTerrain; + task->func = AnimTask_ShakePlatforms; break; case MAX_BATTLERS_COUNT: // Shake all battlers task->tNumBattlers = 0; @@ -633,7 +633,7 @@ void AnimTask_HorizontalShake(u8 taskId) } } -static void AnimTask_ShakeTerrain(u8 taskId) +static void AnimTask_ShakePlatforms(u8 taskId) { struct Task *task = &gTasks[taskId]; diff --git a/src/battle_anim_normal.c b/src/battle_anim_normal.c index a8a6417d6e..f825c717a5 100644 --- a/src/battle_anim_normal.c +++ b/src/battle_anim_normal.c @@ -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) { diff --git a/src/battle_anim_utility_funcs.c b/src/battle_anim_utility_funcs.c index 23e4730c95..75e13faa04 100644 --- a/src/battle_anim_utility_funcs.c +++ b/src/battle_anim_utility_funcs.c @@ -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; @@ -916,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); } diff --git a/src/battle_bg.c b/src/battle_bg.c index 99d571b289..a315b962dd 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -610,96 +610,96 @@ const struct WindowTemplate * const gBattleWindowTemplates[] = [B_WIN_TYPE_ARENA] = sBattleArenaWindowTemplates, }; -const struct BattleBackground sBattleTerrainTable[] = +const struct BattleBackground sBattleEnvironmentTable[] = { - [BATTLE_TERRAIN_GRASS] = + [BATTLE_ENVIRONMENT_GRASS] = { - .tileset = gBattleTerrainTiles_TallGrass, - .tilemap = gBattleTerrainTilemap_TallGrass, - .entryTileset = gBattleTerrainAnimTiles_TallGrass, - .entryTilemap = gBattleTerrainAnimTilemap_TallGrass, - .palette = gBattleTerrainPalette_TallGrass, + .tileset = gBattleEnvironmentTiles_TallGrass, + .tilemap = gBattleEnvironmentTilemap_TallGrass, + .entryTileset = gBattleEnvironmentAnimTiles_TallGrass, + .entryTilemap = gBattleEnvironmentAnimTilemap_TallGrass, + .palette = gBattleEnvironmentPalette_TallGrass, }, - [BATTLE_TERRAIN_LONG_GRASS] = + [BATTLE_ENVIRONMENT_LONG_GRASS] = { - .tileset = gBattleTerrainTiles_LongGrass, - .tilemap = gBattleTerrainTilemap_LongGrass, - .entryTileset = gBattleTerrainAnimTiles_LongGrass, - .entryTilemap = gBattleTerrainAnimTilemap_LongGrass, - .palette = gBattleTerrainPalette_LongGrass, + .tileset = gBattleEnvironmentTiles_LongGrass, + .tilemap = gBattleEnvironmentTilemap_LongGrass, + .entryTileset = gBattleEnvironmentAnimTiles_LongGrass, + .entryTilemap = gBattleEnvironmentAnimTilemap_LongGrass, + .palette = gBattleEnvironmentPalette_LongGrass, }, - [BATTLE_TERRAIN_SAND] = + [BATTLE_ENVIRONMENT_SAND] = { - .tileset = gBattleTerrainTiles_Sand, - .tilemap = gBattleTerrainTilemap_Sand, - .entryTileset = gBattleTerrainAnimTiles_Sand, - .entryTilemap = gBattleTerrainAnimTilemap_Sand, - .palette = gBattleTerrainPalette_Sand, + .tileset = gBattleEnvironmentTiles_Sand, + .tilemap = gBattleEnvironmentTilemap_Sand, + .entryTileset = gBattleEnvironmentAnimTiles_Sand, + .entryTilemap = gBattleEnvironmentAnimTilemap_Sand, + .palette = gBattleEnvironmentPalette_Sand, }, - [BATTLE_TERRAIN_UNDERWATER] = + [BATTLE_ENVIRONMENT_UNDERWATER] = { - .tileset = gBattleTerrainTiles_Underwater, - .tilemap = gBattleTerrainTilemap_Underwater, - .entryTileset = gBattleTerrainAnimTiles_Underwater, - .entryTilemap = gBattleTerrainAnimTilemap_Underwater, - .palette = gBattleTerrainPalette_Underwater, + .tileset = gBattleEnvironmentTiles_Underwater, + .tilemap = gBattleEnvironmentTilemap_Underwater, + .entryTileset = gBattleEnvironmentAnimTiles_Underwater, + .entryTilemap = gBattleEnvironmentAnimTilemap_Underwater, + .palette = gBattleEnvironmentPalette_Underwater, }, - [BATTLE_TERRAIN_WATER] = + [BATTLE_ENVIRONMENT_WATER] = { - .tileset = gBattleTerrainTiles_Water, - .tilemap = gBattleTerrainTilemap_Water, - .entryTileset = gBattleTerrainAnimTiles_Water, - .entryTilemap = gBattleTerrainAnimTilemap_Water, - .palette = gBattleTerrainPalette_Water, + .tileset = gBattleEnvironmentTiles_Water, + .tilemap = gBattleEnvironmentTilemap_Water, + .entryTileset = gBattleEnvironmentAnimTiles_Water, + .entryTilemap = gBattleEnvironmentAnimTilemap_Water, + .palette = gBattleEnvironmentPalette_Water, }, - [BATTLE_TERRAIN_POND] = + [BATTLE_ENVIRONMENT_POND] = { - .tileset = gBattleTerrainTiles_PondWater, - .tilemap = gBattleTerrainTilemap_PondWater, - .entryTileset = gBattleTerrainAnimTiles_PondWater, - .entryTilemap = gBattleTerrainAnimTilemap_PondWater, - .palette = gBattleTerrainPalette_PondWater, + .tileset = gBattleEnvironmentTiles_PondWater, + .tilemap = gBattleEnvironmentTilemap_PondWater, + .entryTileset = gBattleEnvironmentAnimTiles_PondWater, + .entryTilemap = gBattleEnvironmentAnimTilemap_PondWater, + .palette = gBattleEnvironmentPalette_PondWater, }, - [BATTLE_TERRAIN_MOUNTAIN] = + [BATTLE_ENVIRONMENT_MOUNTAIN] = { - .tileset = gBattleTerrainTiles_Rock, - .tilemap = gBattleTerrainTilemap_Rock, - .entryTileset = gBattleTerrainAnimTiles_Rock, - .entryTilemap = gBattleTerrainAnimTilemap_Rock, - .palette = gBattleTerrainPalette_Rock, + .tileset = gBattleEnvironmentTiles_Rock, + .tilemap = gBattleEnvironmentTilemap_Rock, + .entryTileset = gBattleEnvironmentAnimTiles_Rock, + .entryTilemap = gBattleEnvironmentAnimTilemap_Rock, + .palette = gBattleEnvironmentPalette_Rock, }, - [BATTLE_TERRAIN_CAVE] = + [BATTLE_ENVIRONMENT_CAVE] = { - .tileset = gBattleTerrainTiles_Cave, - .tilemap = gBattleTerrainTilemap_Cave, - .entryTileset = gBattleTerrainAnimTiles_Cave, - .entryTilemap = gBattleTerrainAnimTilemap_Cave, - .palette = gBattleTerrainPalette_Cave, + .tileset = gBattleEnvironmentTiles_Cave, + .tilemap = gBattleEnvironmentTilemap_Cave, + .entryTileset = gBattleEnvironmentAnimTiles_Cave, + .entryTilemap = gBattleEnvironmentAnimTilemap_Cave, + .palette = gBattleEnvironmentPalette_Cave, }, - [BATTLE_TERRAIN_BUILDING] = + [BATTLE_ENVIRONMENT_BUILDING] = { - .tileset = gBattleTerrainTiles_Building, - .tilemap = gBattleTerrainTilemap_Building, - .entryTileset = gBattleTerrainAnimTiles_Building, - .entryTilemap = gBattleTerrainAnimTilemap_Building, - .palette = gBattleTerrainPalette_Building, + .tileset = gBattleEnvironmentTiles_Building, + .tilemap = gBattleEnvironmentTilemap_Building, + .entryTileset = gBattleEnvironmentAnimTiles_Building, + .entryTilemap = gBattleEnvironmentAnimTilemap_Building, + .palette = gBattleEnvironmentPalette_Building, }, - [BATTLE_TERRAIN_PLAIN] = + [BATTLE_ENVIRONMENT_PLAIN] = { - .tileset = gBattleTerrainTiles_Building, - .tilemap = gBattleTerrainTilemap_Building, - .entryTileset = gBattleTerrainAnimTiles_Building, - .entryTilemap = gBattleTerrainAnimTilemap_Building, - .palette = gBattleTerrainPalette_Plain, + .tileset = gBattleEnvironmentTiles_Building, + .tilemap = gBattleEnvironmentTilemap_Building, + .entryTileset = gBattleEnvironmentAnimTiles_Building, + .entryTilemap = gBattleEnvironmentAnimTilemap_Building, + .palette = gBattleEnvironmentPalette_Plain, }, }; @@ -754,33 +754,33 @@ void DrawMainBattleBackground(void) { if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_RECORDED_LINK)) { - LZDecompressVram(gBattleTerrainTiles_Building, (void *)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(BG_SCREEN_ADDR(26))); - LoadPalette(gBattleTerrainPalette_Frontier, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LZDecompressVram(gBattleEnvironmentTiles_Building, (void *)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTilemap_Building, (void *)(BG_SCREEN_ADDR(26))); + LoadPalette(gBattleEnvironmentPalette_Frontier, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); } else if (gBattleTypeFlags & BATTLE_TYPE_LEGENDARY) { switch (GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, NULL)) { case SPECIES_GROUDON: - LZDecompressVram(gBattleTerrainTiles_Cave, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Cave, (void*)(BG_SCREEN_ADDR(26))); - LoadPalette(gBattleTerrainPalette_Groudon, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LZDecompressVram(gBattleEnvironmentTiles_Cave, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTilemap_Cave, (void*)(BG_SCREEN_ADDR(26))); + LoadPalette(gBattleEnvironmentPalette_Groudon, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case SPECIES_KYOGRE: - LZDecompressVram(gBattleTerrainTiles_Water, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Water, (void*)(BG_SCREEN_ADDR(26))); - LoadPalette(gBattleTerrainPalette_Kyogre, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LZDecompressVram(gBattleEnvironmentTiles_Water, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTilemap_Water, (void*)(BG_SCREEN_ADDR(26))); + LoadPalette(gBattleEnvironmentPalette_Kyogre, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case SPECIES_RAYQUAZA: - LZDecompressVram(gBattleTerrainTiles_Rayquaza, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Rayquaza, (void*)(BG_SCREEN_ADDR(26))); - LoadPalette(gBattleTerrainPalette_Rayquaza, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LZDecompressVram(gBattleEnvironmentTiles_Rayquaza, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTilemap_Rayquaza, (void*)(BG_SCREEN_ADDR(26))); + LoadPalette(gBattleEnvironmentPalette_Rayquaza, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; default: - LZDecompressVram(sBattleTerrainTable[gBattleTerrain].tileset, (void *)(BG_CHAR_ADDR(2))); - LZDecompressVram(sBattleTerrainTable[gBattleTerrain].tilemap, (void *)(BG_SCREEN_ADDR(26))); - LoadPalette(sBattleTerrainTable[gBattleTerrain].palette, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LZDecompressVram(sBattleEnvironmentTable[gBattleEnvironment].tileset, (void *)(BG_CHAR_ADDR(2))); + LZDecompressVram(sBattleEnvironmentTable[gBattleEnvironment].tilemap, (void *)(BG_SCREEN_ADDR(26))); + LoadPalette(sBattleEnvironmentTable[gBattleEnvironment].palette, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; } } @@ -791,16 +791,16 @@ void DrawMainBattleBackground(void) u32 trainerClass = GetTrainerClassFromId(TRAINER_BATTLE_PARAM.opponentA); if (trainerClass == TRAINER_CLASS_LEADER) { - LZDecompressVram(gBattleTerrainTiles_Building, (void *)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(BG_SCREEN_ADDR(26))); - LoadPalette(gBattleTerrainPalette_BuildingLeader, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LZDecompressVram(gBattleEnvironmentTiles_Building, (void *)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTilemap_Building, (void *)(BG_SCREEN_ADDR(26))); + LoadPalette(gBattleEnvironmentPalette_BuildingLeader, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); return; } else if (trainerClass == TRAINER_CLASS_CHAMPION) { - LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); - LoadPalette(gBattleTerrainPalette_StadiumWallace, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LZDecompressVram(gBattleEnvironmentTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); + LoadPalette(gBattleEnvironmentPalette_StadiumWallace, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); return; } } @@ -809,49 +809,49 @@ void DrawMainBattleBackground(void) { default: case MAP_BATTLE_SCENE_NORMAL: - LZDecompressVram(sBattleTerrainTable[gBattleTerrain].tileset, (void *)(BG_CHAR_ADDR(2))); - LZDecompressVram(sBattleTerrainTable[gBattleTerrain].tilemap, (void *)(BG_SCREEN_ADDR(26))); - LoadPalette(sBattleTerrainTable[gBattleTerrain].palette, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LZDecompressVram(sBattleEnvironmentTable[gBattleEnvironment].tileset, (void *)(BG_CHAR_ADDR(2))); + LZDecompressVram(sBattleEnvironmentTable[gBattleEnvironment].tilemap, (void *)(BG_SCREEN_ADDR(26))); + LoadPalette(sBattleEnvironmentTable[gBattleEnvironment].palette, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_GYM: - LZDecompressVram(gBattleTerrainTiles_Building, (void *)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(BG_SCREEN_ADDR(26))); - LoadPalette(gBattleTerrainPalette_BuildingGym, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LZDecompressVram(gBattleEnvironmentTiles_Building, (void *)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTilemap_Building, (void *)(BG_SCREEN_ADDR(26))); + LoadPalette(gBattleEnvironmentPalette_BuildingGym, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_MAGMA: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); - LoadPalette(gBattleTerrainPalette_StadiumMagma, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LZDecompressVram(gBattleEnvironmentTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); + LoadPalette(gBattleEnvironmentPalette_StadiumMagma, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_AQUA: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); - LoadPalette(gBattleTerrainPalette_StadiumAqua, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LZDecompressVram(gBattleEnvironmentTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); + LoadPalette(gBattleEnvironmentPalette_StadiumAqua, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_SIDNEY: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); - LoadPalette(gBattleTerrainPalette_StadiumSidney, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LZDecompressVram(gBattleEnvironmentTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); + LoadPalette(gBattleEnvironmentPalette_StadiumSidney, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_PHOEBE: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); - LoadPalette(gBattleTerrainPalette_StadiumPhoebe, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LZDecompressVram(gBattleEnvironmentTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); + LoadPalette(gBattleEnvironmentPalette_StadiumPhoebe, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_GLACIA: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); - LoadPalette(gBattleTerrainPalette_StadiumGlacia, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LZDecompressVram(gBattleEnvironmentTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); + LoadPalette(gBattleEnvironmentPalette_StadiumGlacia, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_DRAKE: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); - LoadPalette(gBattleTerrainPalette_StadiumDrake, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LZDecompressVram(gBattleEnvironmentTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); + LoadPalette(gBattleEnvironmentPalette_StadiumDrake, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_FRONTIER: - LZDecompressVram(gBattleTerrainTiles_Building, (void *)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(BG_SCREEN_ADDR(26))); - LoadPalette(gBattleTerrainPalette_Frontier, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LZDecompressVram(gBattleEnvironmentTiles_Building, (void *)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTilemap_Building, (void *)(BG_SCREEN_ADDR(26))); + LoadPalette(gBattleEnvironmentPalette_Frontier, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; } } @@ -1148,8 +1148,8 @@ void DrawBattleEntryBackground(void) { if (!(gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) || gPartnerTrainerId > TRAINER_PARTNER(PARTNER_NONE)) { - LZDecompressVram(gBattleTerrainAnimTiles_Building, (void *)(BG_CHAR_ADDR(1))); - LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void *)(BG_SCREEN_ADDR(28))); + LZDecompressVram(gBattleEnvironmentAnimTiles_Building, (void *)(BG_CHAR_ADDR(1))); + LZDecompressVram(gBattleEnvironmentAnimTilemap_Building, (void *)(BG_SCREEN_ADDR(28))); } else { @@ -1168,20 +1168,20 @@ void DrawBattleEntryBackground(void) switch (GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, NULL)) { case SPECIES_GROUDON: - LZDecompressVram(gBattleTerrainAnimTiles_Cave, (void*)(BG_CHAR_ADDR(1))); - LZDecompressVram(gBattleTerrainAnimTilemap_Cave, (void*)(BG_SCREEN_ADDR(28))); + LZDecompressVram(gBattleEnvironmentAnimTiles_Cave, (void*)(BG_CHAR_ADDR(1))); + LZDecompressVram(gBattleEnvironmentAnimTilemap_Cave, (void*)(BG_SCREEN_ADDR(28))); break; case SPECIES_KYOGRE: - LZDecompressVram(gBattleTerrainAnimTiles_Underwater, (void*)(BG_CHAR_ADDR(1))); - LZDecompressVram(gBattleTerrainAnimTilemap_Underwater, (void*)(BG_SCREEN_ADDR(28))); + LZDecompressVram(gBattleEnvironmentAnimTiles_Underwater, (void*)(BG_CHAR_ADDR(1))); + LZDecompressVram(gBattleEnvironmentAnimTilemap_Underwater, (void*)(BG_SCREEN_ADDR(28))); break; case SPECIES_RAYQUAZA: - LZDecompressVram(gBattleTerrainAnimTiles_Rayquaza, (void*)(BG_CHAR_ADDR(1))); - LZDecompressVram(gBattleTerrainAnimTilemap_Rayquaza, (void*)(BG_SCREEN_ADDR(28))); + LZDecompressVram(gBattleEnvironmentAnimTiles_Rayquaza, (void*)(BG_CHAR_ADDR(1))); + LZDecompressVram(gBattleEnvironmentAnimTilemap_Rayquaza, (void*)(BG_SCREEN_ADDR(28))); break; default: - LZDecompressVram(sBattleTerrainTable[gBattleTerrain].entryTileset, (void *)(BG_CHAR_ADDR(1))); - LZDecompressVram(sBattleTerrainTable[gBattleTerrain].entryTilemap, (void *)(BG_SCREEN_ADDR(28))); + LZDecompressVram(sBattleEnvironmentTable[gBattleEnvironment].entryTileset, (void *)(BG_CHAR_ADDR(1))); + LZDecompressVram(sBattleEnvironmentTable[gBattleEnvironment].entryTilemap, (void *)(BG_SCREEN_ADDR(28))); break; } } @@ -1192,27 +1192,27 @@ void DrawBattleEntryBackground(void) u32 trainerClass = GetTrainerClassFromId(TRAINER_BATTLE_PARAM.opponentA); if (trainerClass == TRAINER_CLASS_LEADER) { - LZDecompressVram(gBattleTerrainAnimTiles_Building, (void *)(BG_CHAR_ADDR(1))); - LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void *)(BG_SCREEN_ADDR(28))); + LZDecompressVram(gBattleEnvironmentAnimTiles_Building, (void *)(BG_CHAR_ADDR(1))); + LZDecompressVram(gBattleEnvironmentAnimTilemap_Building, (void *)(BG_SCREEN_ADDR(28))); return; } else if (trainerClass == TRAINER_CLASS_CHAMPION) { - LZDecompressVram(gBattleTerrainAnimTiles_Building, (void *)(BG_CHAR_ADDR(1))); - LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void *)(BG_SCREEN_ADDR(28))); + LZDecompressVram(gBattleEnvironmentAnimTiles_Building, (void *)(BG_CHAR_ADDR(1))); + LZDecompressVram(gBattleEnvironmentAnimTilemap_Building, (void *)(BG_SCREEN_ADDR(28))); return; } } if (GetCurrentMapBattleScene() == MAP_BATTLE_SCENE_NORMAL) { - LZDecompressVram(sBattleTerrainTable[gBattleTerrain].entryTileset, (void *)(BG_CHAR_ADDR(1))); - LZDecompressVram(sBattleTerrainTable[gBattleTerrain].entryTilemap, (void *)(BG_SCREEN_ADDR(28))); + LZDecompressVram(sBattleEnvironmentTable[gBattleEnvironment].entryTileset, (void *)(BG_CHAR_ADDR(1))); + LZDecompressVram(sBattleEnvironmentTable[gBattleEnvironment].entryTilemap, (void *)(BG_SCREEN_ADDR(28))); } else { - LZDecompressVram(gBattleTerrainAnimTiles_Building, (void *)(BG_CHAR_ADDR(1))); - LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void *)(BG_SCREEN_ADDR(28))); + LZDecompressVram(gBattleEnvironmentAnimTiles_Building, (void *)(BG_CHAR_ADDR(1))); + LZDecompressVram(gBattleEnvironmentAnimTilemap_Building, (void *)(BG_SCREEN_ADDR(28))); } } } @@ -1236,17 +1236,17 @@ bool8 LoadChosenBattleElement(u8 caseId) case 3: if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_EREADER_TRAINER)) { - LZDecompressVram(gBattleTerrainTiles_Building, (void *)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTiles_Building, (void *)(BG_CHAR_ADDR(2))); } else if (gBattleTypeFlags & BATTLE_TYPE_LEGENDARY) { switch (GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, NULL)) { case SPECIES_GROUDON: - LZDecompressVram(gBattleTerrainTiles_Cave, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTiles_Cave, (void*)(BG_CHAR_ADDR(2))); break; case SPECIES_KYOGRE: - LZDecompressVram(gBattleTerrainTilemap_Water, (void*)(BG_SCREEN_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTilemap_Water, (void*)(BG_SCREEN_ADDR(2))); break; } } @@ -1257,12 +1257,12 @@ bool8 LoadChosenBattleElement(u8 caseId) u32 trainerClass = GetTrainerClassFromId(TRAINER_BATTLE_PARAM.opponentA); if (trainerClass == TRAINER_CLASS_LEADER) { - LZDecompressVram(gBattleTerrainTiles_Building, (void *)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTiles_Building, (void *)(BG_CHAR_ADDR(2))); break; } else if (trainerClass == TRAINER_CLASS_CHAMPION) { - LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); break; } } @@ -1271,31 +1271,31 @@ bool8 LoadChosenBattleElement(u8 caseId) { default: case MAP_BATTLE_SCENE_NORMAL: - LZDecompressVram(sBattleTerrainTable[gBattleTerrain].tileset, (void *)(BG_CHAR_ADDR(2))); + LZDecompressVram(sBattleEnvironmentTable[gBattleEnvironment].tileset, (void *)(BG_CHAR_ADDR(2))); break; case MAP_BATTLE_SCENE_GYM: - LZDecompressVram(gBattleTerrainTiles_Building, (void *)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTiles_Building, (void *)(BG_CHAR_ADDR(2))); break; case MAP_BATTLE_SCENE_MAGMA: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); break; case MAP_BATTLE_SCENE_AQUA: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); break; case MAP_BATTLE_SCENE_SIDNEY: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); break; case MAP_BATTLE_SCENE_PHOEBE: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); break; case MAP_BATTLE_SCENE_GLACIA: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); break; case MAP_BATTLE_SCENE_DRAKE: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); break; case MAP_BATTLE_SCENE_FRONTIER: - LZDecompressVram(gBattleTerrainTiles_Building, (void *)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTiles_Building, (void *)(BG_CHAR_ADDR(2))); break; } } @@ -1303,14 +1303,14 @@ bool8 LoadChosenBattleElement(u8 caseId) case 4: if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_EREADER_TRAINER)) { - LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(BG_SCREEN_ADDR(26))); + LZDecompressVram(gBattleEnvironmentTilemap_Building, (void *)(BG_SCREEN_ADDR(26))); } else if (gBattleTypeFlags & BATTLE_TYPE_LEGENDARY) { if (GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, NULL) == SPECIES_GROUDON) - LZDecompressVram(gBattleTerrainTilemap_Cave, (void*)(BG_SCREEN_ADDR(26))); + LZDecompressVram(gBattleEnvironmentTilemap_Cave, (void*)(BG_SCREEN_ADDR(26))); else - LZDecompressVram(gBattleTerrainTilemap_Water, (void *)(BG_SCREEN_ADDR(26))); + LZDecompressVram(gBattleEnvironmentTilemap_Water, (void *)(BG_SCREEN_ADDR(26))); } else { @@ -1319,12 +1319,12 @@ bool8 LoadChosenBattleElement(u8 caseId) u32 trainerClass = GetTrainerClassFromId(TRAINER_BATTLE_PARAM.opponentA); if (trainerClass == TRAINER_CLASS_LEADER) { - LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(BG_SCREEN_ADDR(26))); + LZDecompressVram(gBattleEnvironmentTilemap_Building, (void *)(BG_SCREEN_ADDR(26))); break; } else if (trainerClass == TRAINER_CLASS_CHAMPION) { - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); + LZDecompressVram(gBattleEnvironmentTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); break; } } @@ -1333,31 +1333,31 @@ bool8 LoadChosenBattleElement(u8 caseId) { default: case MAP_BATTLE_SCENE_NORMAL: - LZDecompressVram(sBattleTerrainTable[gBattleTerrain].tilemap, (void *)(BG_SCREEN_ADDR(26))); + LZDecompressVram(sBattleEnvironmentTable[gBattleEnvironment].tilemap, (void *)(BG_SCREEN_ADDR(26))); break; case MAP_BATTLE_SCENE_GYM: - LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(BG_SCREEN_ADDR(26))); + LZDecompressVram(gBattleEnvironmentTilemap_Building, (void *)(BG_SCREEN_ADDR(26))); break; case MAP_BATTLE_SCENE_MAGMA: - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); + LZDecompressVram(gBattleEnvironmentTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); break; case MAP_BATTLE_SCENE_AQUA: - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); + LZDecompressVram(gBattleEnvironmentTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); break; case MAP_BATTLE_SCENE_SIDNEY: - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); + LZDecompressVram(gBattleEnvironmentTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); break; case MAP_BATTLE_SCENE_PHOEBE: - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); + LZDecompressVram(gBattleEnvironmentTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); break; case MAP_BATTLE_SCENE_GLACIA: - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); + LZDecompressVram(gBattleEnvironmentTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); break; case MAP_BATTLE_SCENE_DRAKE: - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); + LZDecompressVram(gBattleEnvironmentTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); break; case MAP_BATTLE_SCENE_FRONTIER: - LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(BG_SCREEN_ADDR(26))); + LZDecompressVram(gBattleEnvironmentTilemap_Building, (void *)(BG_SCREEN_ADDR(26))); break; } } @@ -1365,14 +1365,14 @@ bool8 LoadChosenBattleElement(u8 caseId) case 5: if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_EREADER_TRAINER)) { - LoadPalette(gBattleTerrainPalette_Frontier, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LoadPalette(gBattleEnvironmentPalette_Frontier, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); } else if (gBattleTypeFlags & BATTLE_TYPE_LEGENDARY) { if (GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, NULL) == SPECIES_GROUDON) - LoadPalette(gBattleTerrainPalette_Groudon, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LoadPalette(gBattleEnvironmentPalette_Groudon, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); else - LoadPalette(gBattleTerrainPalette_Kyogre, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LoadPalette(gBattleEnvironmentPalette_Kyogre, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); } else { @@ -1381,12 +1381,12 @@ bool8 LoadChosenBattleElement(u8 caseId) u32 trainerClass = GetTrainerClassFromId(TRAINER_BATTLE_PARAM.opponentA); if (trainerClass == TRAINER_CLASS_LEADER) { - LoadPalette(gBattleTerrainPalette_BuildingLeader, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LoadPalette(gBattleEnvironmentPalette_BuildingLeader, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; } else if (trainerClass == TRAINER_CLASS_CHAMPION) { - LoadPalette(gBattleTerrainPalette_StadiumWallace, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LoadPalette(gBattleEnvironmentPalette_StadiumWallace, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; } } @@ -1395,31 +1395,31 @@ bool8 LoadChosenBattleElement(u8 caseId) { default: case MAP_BATTLE_SCENE_NORMAL: - LoadPalette(sBattleTerrainTable[gBattleTerrain].palette, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LoadPalette(sBattleEnvironmentTable[gBattleEnvironment].palette, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_GYM: - LoadPalette(gBattleTerrainPalette_BuildingGym, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LoadPalette(gBattleEnvironmentPalette_BuildingGym, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_MAGMA: - LoadPalette(gBattleTerrainPalette_StadiumMagma, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LoadPalette(gBattleEnvironmentPalette_StadiumMagma, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_AQUA: - LoadPalette(gBattleTerrainPalette_StadiumAqua, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LoadPalette(gBattleEnvironmentPalette_StadiumAqua, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_SIDNEY: - LoadPalette(gBattleTerrainPalette_StadiumSidney, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LoadPalette(gBattleEnvironmentPalette_StadiumSidney, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_PHOEBE: - LoadPalette(gBattleTerrainPalette_StadiumPhoebe, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LoadPalette(gBattleEnvironmentPalette_StadiumPhoebe, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_GLACIA: - LoadPalette(gBattleTerrainPalette_StadiumGlacia, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LoadPalette(gBattleEnvironmentPalette_StadiumGlacia, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_DRAKE: - LoadPalette(gBattleTerrainPalette_StadiumDrake, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LoadPalette(gBattleEnvironmentPalette_StadiumDrake, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_FRONTIER: - LoadPalette(gBattleTerrainPalette_Frontier, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LoadPalette(gBattleEnvironmentPalette_Frontier, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; } } diff --git a/src/battle_controllers.c b/src/battle_controllers.c index 7ee2640e80..c7a3931e14 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -1419,10 +1419,10 @@ void BtlController_EmitFaintingCry(u32 battler, u32 bufferId) PrepareBufferDataTransfer(battler, bufferId, gBattleResources->transferBuffer, 4); } -void BtlController_EmitIntroSlide(u32 battler, u32 bufferId, u8 terrainId) +void BtlController_EmitIntroSlide(u32 battler, u32 bufferId, u8 environmentId) { gBattleResources->transferBuffer[0] = CONTROLLER_INTROSLIDE; - gBattleResources->transferBuffer[1] = terrainId; + gBattleResources->transferBuffer[1] = environmentId; PrepareBufferDataTransfer(battler, bufferId, gBattleResources->transferBuffer, 2); } diff --git a/src/battle_intro.c b/src/battle_intro.c index b951c163c8..5239a81575 100644 --- a/src/battle_intro.c +++ b/src/battle_intro.c @@ -24,16 +24,16 @@ static const u8 sBattleAnimBgCnts[] = {REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, REG static const TaskFunc sBattleIntroSlideFuncs[] = { - [BATTLE_TERRAIN_GRASS] = BattleIntroSlide1, - [BATTLE_TERRAIN_LONG_GRASS] = BattleIntroSlide1, - [BATTLE_TERRAIN_SAND] = BattleIntroSlide2, - [BATTLE_TERRAIN_UNDERWATER] = BattleIntroSlide2, - [BATTLE_TERRAIN_WATER] = BattleIntroSlide2, - [BATTLE_TERRAIN_POND] = BattleIntroSlide1, - [BATTLE_TERRAIN_MOUNTAIN] = BattleIntroSlide1, - [BATTLE_TERRAIN_CAVE] = BattleIntroSlide1, - [BATTLE_TERRAIN_BUILDING] = BattleIntroSlide3, - [BATTLE_TERRAIN_PLAIN] = BattleIntroSlide3, + [BATTLE_ENVIRONMENT_GRASS] = BattleIntroSlide1, + [BATTLE_ENVIRONMENT_LONG_GRASS] = BattleIntroSlide1, + [BATTLE_ENVIRONMENT_SAND] = BattleIntroSlide2, + [BATTLE_ENVIRONMENT_UNDERWATER] = BattleIntroSlide2, + [BATTLE_ENVIRONMENT_WATER] = BattleIntroSlide2, + [BATTLE_ENVIRONMENT_POND] = BattleIntroSlide1, + [BATTLE_ENVIRONMENT_MOUNTAIN] = BattleIntroSlide1, + [BATTLE_ENVIRONMENT_CAVE] = BattleIntroSlide1, + [BATTLE_ENVIRONMENT_BUILDING] = BattleIntroSlide3, + [BATTLE_ENVIRONMENT_PLAIN] = BattleIntroSlide3, }; void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value) @@ -100,9 +100,9 @@ int GetAnimBgAttribute(u8 bgId, u8 attributeId) } #define tState data[0] -#define tTerrain data[1] +#define tEnvironment data[1] -void HandleIntroSlide(u8 terrain) +void HandleIntroSlide(u8 environment) { u8 taskId; @@ -120,16 +120,16 @@ void HandleIntroSlide(u8 terrain) } else if (GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, NULL) == SPECIES_KYOGRE) { - terrain = BATTLE_TERRAIN_UNDERWATER; + environment = BATTLE_ENVIRONMENT_UNDERWATER; taskId = CreateTask(BattleIntroSlide2, 0); } else { - taskId = CreateTask(sBattleIntroSlideFuncs[terrain], 0); + taskId = CreateTask(sBattleIntroSlideFuncs[environment], 0); } gTasks[taskId].tState = 0; - gTasks[taskId].tTerrain = terrain; + gTasks[taskId].tEnvironment = environment; gTasks[taskId].data[2] = 0; gTasks[taskId].data[3] = 0; gTasks[taskId].data[4] = 0; @@ -244,7 +244,7 @@ static void BattleIntroSlide1(u8 taskId) } else { - if (gTasks[taskId].tTerrain == BATTLE_TERRAIN_LONG_GRASS) + if (gTasks[taskId].tEnvironment == BATTLE_ENVIRONMENT_LONG_GRASS) { if (gBattle_BG1_Y != (u16)(-80)) gBattle_BG1_Y -= 2; @@ -292,18 +292,18 @@ static void BattleIntroSlide2(u8 taskId) if (B_FAST_INTRO_NO_SLIDE || gTestRunnerHeadless) return BattleIntroNoSlide(taskId); - switch (gTasks[taskId].tTerrain) + switch (gTasks[taskId].tEnvironment) { - case BATTLE_TERRAIN_SAND: - case BATTLE_TERRAIN_WATER: + case BATTLE_ENVIRONMENT_SAND: + case BATTLE_ENVIRONMENT_WATER: gBattle_BG1_X += 8; break; - case BATTLE_TERRAIN_UNDERWATER: + case BATTLE_ENVIRONMENT_UNDERWATER: gBattle_BG1_X += 6; break; } - if (gTasks[taskId].tTerrain == BATTLE_TERRAIN_WATER) + if (gTasks[taskId].tEnvironment == BATTLE_ENVIRONMENT_WATER) { gBattle_BG1_Y = Cos2(gTasks[taskId].data[6]) / 512 - 8; if (gTasks[taskId].data[6] < 180) diff --git a/src/battle_main.c b/src/battle_main.c index d35919cb8d..c69a408084 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -145,7 +145,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; @@ -516,10 +516,10 @@ static void CB2_InitBattleInternal(void) if (!DEBUG_OVERWORLD_MENU || (DEBUG_OVERWORLD_MENU && !gIsDebugBattle)) { - gBattleTerrain = BattleSetup_GetTerrainId(); + gBattleEnvironment = BattleSetup_GetEnvironmentId(); } 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 @@ -3292,20 +3292,12 @@ const u8* FaintClearSetData(u32 battler) gProtectStructs[battler].helpingHand = FALSE; gProtectStructs[battler].bounceMove = FALSE; gProtectStructs[battler].stealMove = FALSE; - gProtectStructs[battler].prlzImmobility = FALSE; + gProtectStructs[battler].nonVolatileStatusImmobility = FALSE; + gProtectStructs[battler].unableToUseMove = FALSE; gProtectStructs[battler].confusionSelfDmg = FALSE; gProtectStructs[battler].chargingTurn = FALSE; gProtectStructs[battler].fleeType = 0; - gProtectStructs[battler].usedImprisonedMove = FALSE; - gProtectStructs[battler].loveImmobility = FALSE; - gProtectStructs[battler].usedDisabledMove = FALSE; - gProtectStructs[battler].usedTauntedMove = FALSE; - gProtectStructs[battler].flag2Unknown = FALSE; - gProtectStructs[battler].flinchImmobility = FALSE; gProtectStructs[battler].notFirstStrike = FALSE; - gProtectStructs[battler].usedHealBlockedMove = FALSE; - gProtectStructs[battler].usedGravityPreventedMove = FALSE; - gProtectStructs[battler].usedThroatChopPreventedMove = FALSE; gProtectStructs[battler].statRaised = FALSE; gProtectStructs[battler].statFell = FALSE; gProtectStructs[battler].pranksterElevated = FALSE; @@ -3431,7 +3423,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; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 265c5f1020..0ccbb86b02 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -550,7 +550,7 @@ static void Cmd_unused_c8(void); static void Cmd_trymemento(void); static void Cmd_setforcedtarget(void); static void Cmd_setcharge(void); -static void Cmd_callterrainattack(void); +static void Cmd_callenvironmentattack(void); static void Cmd_curestatuswithmove(void); static void Cmd_settorment(void); static void Cmd_jumpifnodamage(void); @@ -581,7 +581,7 @@ static void Cmd_unused_0xE7(void); static void Cmd_settypebasedhalvers(void); static void Cmd_jumpifsubstituteblocks(void); static void Cmd_tryrecycleitem(void); -static void Cmd_settypetoterrain(void); +static void Cmd_settypetoenvironment(void); static void Cmd_pursuitdoubles(void); static void Cmd_snatchsetbattlers(void); static void Cmd_removescreens(void); @@ -809,7 +809,7 @@ void (* const gBattleScriptingCommandsTable[])(void) = Cmd_trymemento, //0xC9 Cmd_setforcedtarget, //0xCA Cmd_setcharge, //0xCB - Cmd_callterrainattack, //0xCC + Cmd_callenvironmentattack, //0xCC Cmd_curestatuswithmove, //0xCD Cmd_settorment, //0xCE Cmd_jumpifnodamage, //0xCF @@ -840,7 +840,7 @@ void (* const gBattleScriptingCommandsTable[])(void) = Cmd_settypebasedhalvers, //0xE8 Cmd_jumpifsubstituteblocks, //0xE9 Cmd_tryrecycleitem, //0xEA - Cmd_settypetoterrain, //0xEB + Cmd_settypetoenvironment, //0xEB Cmd_pursuitdoubles, //0xEC Cmd_snatchsetbattlers, //0xED Cmd_removescreens, //0xEE @@ -971,76 +971,76 @@ static const u16 sFinalStrikeOnlyEffects[] = MOVE_EFFECT_WRAP, }; -static const u16 sNaturePowerMoves[BATTLE_TERRAIN_COUNT] = +static const u16 sNaturePowerMoves[BATTLE_ENVIRONMENT_COUNT] = { #if B_NATURE_POWER_MOVES >= GEN_7 - [BATTLE_TERRAIN_GRASS] = MOVE_ENERGY_BALL, - [BATTLE_TERRAIN_LONG_GRASS] = MOVE_ENERGY_BALL, - [BATTLE_TERRAIN_SAND] = MOVE_EARTH_POWER, - [BATTLE_TERRAIN_WATER] = MOVE_HYDRO_PUMP, - [BATTLE_TERRAIN_POND] = MOVE_HYDRO_PUMP, - [BATTLE_TERRAIN_MOUNTAIN] = MOVE_EARTH_POWER, - [BATTLE_TERRAIN_CAVE] = MOVE_EARTH_POWER, - [BATTLE_TERRAIN_BUILDING] = MOVE_TRI_ATTACK, - [BATTLE_TERRAIN_PLAIN] = MOVE_TRI_ATTACK, - [BATTLE_TERRAIN_SNOW] = MOVE_ICE_BEAM, + [BATTLE_ENVIRONMENT_GRASS] = MOVE_ENERGY_BALL, + [BATTLE_ENVIRONMENT_LONG_GRASS] = MOVE_ENERGY_BALL, + [BATTLE_ENVIRONMENT_SAND] = MOVE_EARTH_POWER, + [BATTLE_ENVIRONMENT_WATER] = MOVE_HYDRO_PUMP, + [BATTLE_ENVIRONMENT_POND] = MOVE_HYDRO_PUMP, + [BATTLE_ENVIRONMENT_MOUNTAIN] = MOVE_EARTH_POWER, + [BATTLE_ENVIRONMENT_CAVE] = MOVE_EARTH_POWER, + [BATTLE_ENVIRONMENT_BUILDING] = MOVE_TRI_ATTACK, + [BATTLE_ENVIRONMENT_PLAIN] = MOVE_TRI_ATTACK, + [BATTLE_ENVIRONMENT_SNOW] = MOVE_ICE_BEAM, #elif B_NATURE_POWER_MOVES == GEN_6 - [BATTLE_TERRAIN_GRASS] = MOVE_ENERGY_BALL, - [BATTLE_TERRAIN_LONG_GRASS] = MOVE_ENERGY_BALL, - [BATTLE_TERRAIN_SAND] = MOVE_EARTH_POWER, - [BATTLE_TERRAIN_WATER] = MOVE_HYDRO_PUMP, - [BATTLE_TERRAIN_POND] = MOVE_HYDRO_PUMP, - [BATTLE_TERRAIN_MOUNTAIN] = MOVE_EARTH_POWER, - [BATTLE_TERRAIN_CAVE] = MOVE_EARTH_POWER, - [BATTLE_TERRAIN_BUILDING] = MOVE_TRI_ATTACK, - [BATTLE_TERRAIN_PLAIN] = MOVE_TRI_ATTACK, - [BATTLE_TERRAIN_SNOW] = MOVE_FROST_BREATH, + [BATTLE_ENVIRONMENT_GRASS] = MOVE_ENERGY_BALL, + [BATTLE_ENVIRONMENT_LONG_GRASS] = MOVE_ENERGY_BALL, + [BATTLE_ENVIRONMENT_SAND] = MOVE_EARTH_POWER, + [BATTLE_ENVIRONMENT_WATER] = MOVE_HYDRO_PUMP, + [BATTLE_ENVIRONMENT_POND] = MOVE_HYDRO_PUMP, + [BATTLE_ENVIRONMENT_MOUNTAIN] = MOVE_EARTH_POWER, + [BATTLE_ENVIRONMENT_CAVE] = MOVE_EARTH_POWER, + [BATTLE_ENVIRONMENT_BUILDING] = MOVE_TRI_ATTACK, + [BATTLE_ENVIRONMENT_PLAIN] = MOVE_TRI_ATTACK, + [BATTLE_ENVIRONMENT_SNOW] = MOVE_FROST_BREATH, #elif B_NATURE_POWER_MOVES == GEN_5 - [BATTLE_TERRAIN_GRASS] = MOVE_SEED_BOMB, - [BATTLE_TERRAIN_LONG_GRASS] = MOVE_SEED_BOMB, - [BATTLE_TERRAIN_SAND] = MOVE_EARTHQUAKE, - [BATTLE_TERRAIN_WATER] = MOVE_HYDRO_PUMP, - [BATTLE_TERRAIN_POND] = MOVE_HYDRO_PUMP, - [BATTLE_TERRAIN_MOUNTAIN] = MOVE_EARTHQUAKE, - [BATTLE_TERRAIN_CAVE] = MOVE_EARTHQUAKE, - [BATTLE_TERRAIN_BUILDING] = MOVE_TRI_ATTACK, - [BATTLE_TERRAIN_PLAIN] = MOVE_EARTHQUAKE, - [BATTLE_TERRAIN_SNOW] = MOVE_BLIZZARD, + [BATTLE_ENVIRONMENT_GRASS] = MOVE_SEED_BOMB, + [BATTLE_ENVIRONMENT_LONG_GRASS] = MOVE_SEED_BOMB, + [BATTLE_ENVIRONMENT_SAND] = MOVE_EARTHQUAKE, + [BATTLE_ENVIRONMENT_WATER] = MOVE_HYDRO_PUMP, + [BATTLE_ENVIRONMENT_POND] = MOVE_HYDRO_PUMP, + [BATTLE_ENVIRONMENT_MOUNTAIN] = MOVE_EARTHQUAKE, + [BATTLE_ENVIRONMENT_CAVE] = MOVE_EARTHQUAKE, + [BATTLE_ENVIRONMENT_BUILDING] = MOVE_TRI_ATTACK, + [BATTLE_ENVIRONMENT_PLAIN] = MOVE_EARTHQUAKE, + [BATTLE_ENVIRONMENT_SNOW] = MOVE_BLIZZARD, #elif B_NATURE_POWER_MOVES == GEN_4 - [BATTLE_TERRAIN_GRASS] = MOVE_SEED_BOMB, - [BATTLE_TERRAIN_LONG_GRASS] = MOVE_SEED_BOMB, - [BATTLE_TERRAIN_SAND] = MOVE_EARTHQUAKE, - [BATTLE_TERRAIN_WATER] = MOVE_HYDRO_PUMP, - [BATTLE_TERRAIN_POND] = MOVE_HYDRO_PUMP, - [BATTLE_TERRAIN_MOUNTAIN] = MOVE_ROCK_SLIDE, - [BATTLE_TERRAIN_CAVE] = MOVE_ROCK_SLIDE, - [BATTLE_TERRAIN_BUILDING] = MOVE_TRI_ATTACK, - [BATTLE_TERRAIN_PLAIN] = MOVE_EARTHQUAKE, - [BATTLE_TERRAIN_SNOW] = MOVE_BLIZZARD, + [BATTLE_ENVIRONMENT_GRASS] = MOVE_SEED_BOMB, + [BATTLE_ENVIRONMENT_LONG_GRASS] = MOVE_SEED_BOMB, + [BATTLE_ENVIRONMENT_SAND] = MOVE_EARTHQUAKE, + [BATTLE_ENVIRONMENT_WATER] = MOVE_HYDRO_PUMP, + [BATTLE_ENVIRONMENT_POND] = MOVE_HYDRO_PUMP, + [BATTLE_ENVIRONMENT_MOUNTAIN] = MOVE_ROCK_SLIDE, + [BATTLE_ENVIRONMENT_CAVE] = MOVE_ROCK_SLIDE, + [BATTLE_ENVIRONMENT_BUILDING] = MOVE_TRI_ATTACK, + [BATTLE_ENVIRONMENT_PLAIN] = MOVE_EARTHQUAKE, + [BATTLE_ENVIRONMENT_SNOW] = MOVE_BLIZZARD, #else // Gen 1-3 - [BATTLE_TERRAIN_GRASS] = MOVE_STUN_SPORE, - [BATTLE_TERRAIN_LONG_GRASS] = MOVE_RAZOR_LEAF, - [BATTLE_TERRAIN_SAND] = MOVE_EARTHQUAKE, - [BATTLE_TERRAIN_WATER] = MOVE_SURF, - [BATTLE_TERRAIN_POND] = MOVE_BUBBLE_BEAM, - [BATTLE_TERRAIN_MOUNTAIN] = MOVE_ROCK_SLIDE, - [BATTLE_TERRAIN_CAVE] = MOVE_SHADOW_BALL, - [BATTLE_TERRAIN_BUILDING] = MOVE_SWIFT, - [BATTLE_TERRAIN_PLAIN] = MOVE_SWIFT, - [BATTLE_TERRAIN_SNOW] = MOVE_BLIZZARD, + [BATTLE_ENVIRONMENT_GRASS] = MOVE_STUN_SPORE, + [BATTLE_ENVIRONMENT_LONG_GRASS] = MOVE_RAZOR_LEAF, + [BATTLE_ENVIRONMENT_SAND] = MOVE_EARTHQUAKE, + [BATTLE_ENVIRONMENT_WATER] = MOVE_SURF, + [BATTLE_ENVIRONMENT_POND] = MOVE_BUBBLE_BEAM, + [BATTLE_ENVIRONMENT_MOUNTAIN] = MOVE_ROCK_SLIDE, + [BATTLE_ENVIRONMENT_CAVE] = MOVE_SHADOW_BALL, + [BATTLE_ENVIRONMENT_BUILDING] = MOVE_SWIFT, + [BATTLE_ENVIRONMENT_PLAIN] = MOVE_SWIFT, + [BATTLE_ENVIRONMENT_SNOW] = MOVE_BLIZZARD, #endif - [BATTLE_TERRAIN_UNDERWATER] = MOVE_HYDRO_PUMP, - [BATTLE_TERRAIN_SOARING] = MOVE_AIR_SLASH, - [BATTLE_TERRAIN_SKY_PILLAR] = MOVE_AIR_SLASH, - [BATTLE_TERRAIN_BURIAL_GROUND] = MOVE_SHADOW_BALL, - [BATTLE_TERRAIN_PUDDLE] = MOVE_MUD_BOMB, - [BATTLE_TERRAIN_MARSH] = MOVE_MUD_BOMB, - [BATTLE_TERRAIN_SWAMP] = MOVE_MUD_BOMB, - [BATTLE_TERRAIN_ICE] = MOVE_ICE_BEAM, - [BATTLE_TERRAIN_VOLCANO] = MOVE_LAVA_PLUME, - [BATTLE_TERRAIN_DISTORTION_WORLD] = MOVE_TRI_ATTACK, - [BATTLE_TERRAIN_SPACE] = MOVE_DRACO_METEOR, - [BATTLE_TERRAIN_ULTRA_SPACE] = MOVE_PSYSHOCK, + [BATTLE_ENVIRONMENT_UNDERWATER] = MOVE_HYDRO_PUMP, + [BATTLE_ENVIRONMENT_SOARING] = MOVE_AIR_SLASH, + [BATTLE_ENVIRONMENT_SKY_PILLAR] = MOVE_AIR_SLASH, + [BATTLE_ENVIRONMENT_BURIAL_GROUND] = MOVE_SHADOW_BALL, + [BATTLE_ENVIRONMENT_PUDDLE] = MOVE_MUD_BOMB, + [BATTLE_ENVIRONMENT_MARSH] = MOVE_MUD_BOMB, + [BATTLE_ENVIRONMENT_SWAMP] = MOVE_MUD_BOMB, + [BATTLE_ENVIRONMENT_ICE] = MOVE_ICE_BEAM, + [BATTLE_ENVIRONMENT_VOLCANO] = MOVE_LAVA_PLUME, + [BATTLE_ENVIRONMENT_DISTORTION_WORLD] = MOVE_TRI_ATTACK, + [BATTLE_ENVIRONMENT_SPACE] = MOVE_DRACO_METEOR, + [BATTLE_ENVIRONMENT_ULTRA_SPACE] = MOVE_PSYSHOCK, }; #define _ 0 @@ -1081,30 +1081,30 @@ static const struct PickupItem sPickupTable[] = #undef _ -static const u8 sTerrainToType[BATTLE_TERRAIN_COUNT] = +static const u8 sEnvironmentToType[BATTLE_ENVIRONMENT_COUNT] = { - [BATTLE_TERRAIN_GRASS] = TYPE_GRASS, - [BATTLE_TERRAIN_LONG_GRASS] = TYPE_GRASS, - [BATTLE_TERRAIN_SAND] = TYPE_GROUND, - [BATTLE_TERRAIN_UNDERWATER] = TYPE_WATER, - [BATTLE_TERRAIN_WATER] = TYPE_WATER, - [BATTLE_TERRAIN_POND] = TYPE_WATER, - [BATTLE_TERRAIN_CAVE] = TYPE_ROCK, - [BATTLE_TERRAIN_BUILDING] = TYPE_NORMAL, - [BATTLE_TERRAIN_SOARING] = TYPE_FLYING, - [BATTLE_TERRAIN_SKY_PILLAR] = TYPE_FLYING, - [BATTLE_TERRAIN_BURIAL_GROUND] = TYPE_GHOST, - [BATTLE_TERRAIN_PUDDLE] = TYPE_GROUND, - [BATTLE_TERRAIN_MARSH] = TYPE_GROUND, - [BATTLE_TERRAIN_SWAMP] = TYPE_GROUND, - [BATTLE_TERRAIN_SNOW] = TYPE_ICE, - [BATTLE_TERRAIN_ICE] = TYPE_ICE, - [BATTLE_TERRAIN_VOLCANO] = TYPE_FIRE, - [BATTLE_TERRAIN_DISTORTION_WORLD] = TYPE_NORMAL, - [BATTLE_TERRAIN_SPACE] = TYPE_DRAGON, - [BATTLE_TERRAIN_ULTRA_SPACE] = TYPE_PSYCHIC, - [BATTLE_TERRAIN_MOUNTAIN] = (B_CAMOUFLAGE_TYPES >= GEN_5 ? TYPE_GROUND : TYPE_ROCK), - [BATTLE_TERRAIN_PLAIN] = (B_CAMOUFLAGE_TYPES >= GEN_4 ? TYPE_GROUND : TYPE_NORMAL), + [BATTLE_ENVIRONMENT_GRASS] = TYPE_GRASS, + [BATTLE_ENVIRONMENT_LONG_GRASS] = TYPE_GRASS, + [BATTLE_ENVIRONMENT_SAND] = TYPE_GROUND, + [BATTLE_ENVIRONMENT_UNDERWATER] = TYPE_WATER, + [BATTLE_ENVIRONMENT_WATER] = TYPE_WATER, + [BATTLE_ENVIRONMENT_POND] = TYPE_WATER, + [BATTLE_ENVIRONMENT_CAVE] = TYPE_ROCK, + [BATTLE_ENVIRONMENT_BUILDING] = TYPE_NORMAL, + [BATTLE_ENVIRONMENT_SOARING] = TYPE_FLYING, + [BATTLE_ENVIRONMENT_SKY_PILLAR] = TYPE_FLYING, + [BATTLE_ENVIRONMENT_BURIAL_GROUND] = TYPE_GHOST, + [BATTLE_ENVIRONMENT_PUDDLE] = TYPE_GROUND, + [BATTLE_ENVIRONMENT_MARSH] = TYPE_GROUND, + [BATTLE_ENVIRONMENT_SWAMP] = TYPE_GROUND, + [BATTLE_ENVIRONMENT_SNOW] = TYPE_ICE, + [BATTLE_ENVIRONMENT_ICE] = TYPE_ICE, + [BATTLE_ENVIRONMENT_VOLCANO] = TYPE_FIRE, + [BATTLE_ENVIRONMENT_DISTORTION_WORLD] = TYPE_NORMAL, + [BATTLE_ENVIRONMENT_SPACE] = TYPE_DRAGON, + [BATTLE_ENVIRONMENT_ULTRA_SPACE] = TYPE_PSYCHIC, + [BATTLE_ENVIRONMENT_MOUNTAIN] = (B_CAMOUFLAGE_TYPES >= GEN_5 ? TYPE_GROUND : TYPE_ROCK), + [BATTLE_ENVIRONMENT_PLAIN] = (B_CAMOUFLAGE_TYPES >= GEN_4 ? TYPE_GROUND : TYPE_NORMAL), }; static bool32 NoTargetPresent(u8 battler, u32 move) @@ -4128,18 +4128,18 @@ void SetMoveEffect(bool32 primary, bool32 certain) } else { - switch (gBattleTerrain) + switch (gBattleEnvironment) { - case BATTLE_TERRAIN_GRASS: + case BATTLE_ENVIRONMENT_GRASS: gBattleScripting.moveEffect = (B_SECRET_POWER_EFFECT >= GEN_4 ? MOVE_EFFECT_SLEEP : MOVE_EFFECT_POISON); break; - case BATTLE_TERRAIN_UNDERWATER: + case BATTLE_ENVIRONMENT_UNDERWATER: gBattleScripting.moveEffect = (B_SECRET_POWER_EFFECT >= GEN_6 ? MOVE_EFFECT_ATK_MINUS_1 : MOVE_EFFECT_DEF_MINUS_1); break; - case BATTLE_TERRAIN_POND: + case BATTLE_ENVIRONMENT_POND: gBattleScripting.moveEffect = (B_SECRET_POWER_EFFECT >= GEN_4 ? MOVE_EFFECT_ATK_MINUS_1 : MOVE_EFFECT_SPD_MINUS_1); break; - case BATTLE_TERRAIN_MOUNTAIN: + case BATTLE_ENVIRONMENT_MOUNTAIN: if (B_SECRET_POWER_EFFECT >= GEN_5) gBattleScripting.moveEffect = MOVE_EFFECT_ACC_MINUS_1; else if (B_SECRET_POWER_EFFECT >= GEN_4) @@ -4147,37 +4147,37 @@ void SetMoveEffect(bool32 primary, bool32 certain) else gBattleScripting.moveEffect = MOVE_EFFECT_CONFUSION; break; - case BATTLE_TERRAIN_PUDDLE: + case BATTLE_ENVIRONMENT_PUDDLE: gBattleScripting.moveEffect = (B_SECRET_POWER_EFFECT >= GEN_5 ? MOVE_EFFECT_SPD_MINUS_1 : MOVE_EFFECT_ACC_MINUS_1); break; - case BATTLE_TERRAIN_LONG_GRASS: + case BATTLE_ENVIRONMENT_LONG_GRASS: gBattleScripting.moveEffect = MOVE_EFFECT_SLEEP; break; - case BATTLE_TERRAIN_SAND: + case BATTLE_ENVIRONMENT_SAND: gBattleScripting.moveEffect = MOVE_EFFECT_ACC_MINUS_1; break; - case BATTLE_TERRAIN_WATER: + case BATTLE_ENVIRONMENT_WATER: gBattleScripting.moveEffect = MOVE_EFFECT_ATK_MINUS_1; break; - case BATTLE_TERRAIN_CAVE: - case BATTLE_TERRAIN_BURIAL_GROUND: - case BATTLE_TERRAIN_SPACE: + case BATTLE_ENVIRONMENT_CAVE: + case BATTLE_ENVIRONMENT_BURIAL_GROUND: + case BATTLE_ENVIRONMENT_SPACE: gBattleScripting.moveEffect = MOVE_EFFECT_FLINCH; break; - case BATTLE_TERRAIN_SOARING: - case BATTLE_TERRAIN_SKY_PILLAR: - case BATTLE_TERRAIN_MARSH: - case BATTLE_TERRAIN_SWAMP: + case BATTLE_ENVIRONMENT_SOARING: + case BATTLE_ENVIRONMENT_SKY_PILLAR: + case BATTLE_ENVIRONMENT_MARSH: + case BATTLE_ENVIRONMENT_SWAMP: gBattleScripting.moveEffect = MOVE_EFFECT_SPD_MINUS_1; break; - case BATTLE_TERRAIN_SNOW: - case BATTLE_TERRAIN_ICE: + case BATTLE_ENVIRONMENT_SNOW: + case BATTLE_ENVIRONMENT_ICE: gBattleScripting.moveEffect = MOVE_EFFECT_FREEZE_OR_FROSTBITE; break; - case BATTLE_TERRAIN_VOLCANO: + case BATTLE_ENVIRONMENT_VOLCANO: gBattleScripting.moveEffect = MOVE_EFFECT_BURN; break; - case BATTLE_TERRAIN_ULTRA_SPACE: + case BATTLE_ENVIRONMENT_ULTRA_SPACE: gBattleScripting.moveEffect = MOVE_EFFECT_DEF_MINUS_1; break; default: @@ -7054,7 +7054,7 @@ static void Cmd_moveend(void) case MOVEEND_UPDATE_LAST_MOVES: if ((gBattleStruct->moveResultFlags[gBattlerTarget] & (MOVE_RESULT_FAILED | MOVE_RESULT_DOESNT_AFFECT_FOE)) || (gBattleMons[gBattlerAttacker].status2 & (STATUS2_FLINCHED)) - || gProtectStructs[gBattlerAttacker].prlzImmobility) + || gProtectStructs[gBattlerAttacker].nonVolatileStatusImmobility) gBattleStruct->battlerState[gBattlerAttacker].lastMoveFailed = TRUE; else gBattleStruct->battlerState[gBattlerAttacker].lastMoveFailed = FALSE; @@ -14920,7 +14920,7 @@ static void Cmd_setcharge(void) } // Nature Power -static void Cmd_callterrainattack(void) +static void Cmd_callenvironmentattack(void) { CMD_ARGS(); @@ -14933,7 +14933,7 @@ static void Cmd_callterrainattack(void) u32 GetNaturePowerMove(u32 battler) { - u32 move = sNaturePowerMoves[gBattleTerrain]; + u32 move = sNaturePowerMoves[gBattleEnvironment]; if (gFieldStatuses & STATUS_FIELD_MISTY_TERRAIN) move = MOVE_MOONBLAST; else if (gFieldStatuses & STATUS_FIELD_ELECTRIC_TERRAIN) @@ -14942,7 +14942,7 @@ u32 GetNaturePowerMove(u32 battler) move = MOVE_ENERGY_BALL; else if (gFieldStatuses & STATUS_FIELD_PSYCHIC_TERRAIN) move = MOVE_PSYCHIC; - else if (sNaturePowerMoves[gBattleTerrain] == MOVE_NONE) + else if (sNaturePowerMoves[gBattleEnvironment] == MOVE_NONE) move = MOVE_TRI_ATTACK; if (GetActiveGimmick(battler) == GIMMICK_Z_MOVE) @@ -15806,39 +15806,39 @@ static void Cmd_tryrecycleitem(void) bool32 CanCamouflage(u8 battler) { - if (IS_BATTLER_OF_TYPE(battler, sTerrainToType[gBattleTerrain])) + if (IS_BATTLER_OF_TYPE(battler, sEnvironmentToType[gBattleEnvironment])) return FALSE; return TRUE; } -static void Cmd_settypetoterrain(void) +static void Cmd_settypetoenvironment(void) { CMD_ARGS(const u8 *failInstr); - u8 terrainType; + u8 environmentType; switch(gFieldStatuses & STATUS_FIELD_TERRAIN_ANY) { case STATUS_FIELD_ELECTRIC_TERRAIN: - terrainType = TYPE_ELECTRIC; + environmentType = TYPE_ELECTRIC; break; case STATUS_FIELD_GRASSY_TERRAIN: - terrainType = TYPE_GRASS; + environmentType = TYPE_GRASS; break; case STATUS_FIELD_MISTY_TERRAIN: - terrainType = TYPE_FAIRY; + environmentType = TYPE_FAIRY; break; case STATUS_FIELD_PSYCHIC_TERRAIN: - terrainType = TYPE_PSYCHIC; + environmentType = TYPE_PSYCHIC; break; default: - terrainType = sTerrainToType[gBattleTerrain]; + environmentType = sEnvironmentToType[gBattleEnvironment]; break; } - if (!IS_BATTLER_OF_TYPE(gBattlerAttacker, terrainType) && GetActiveGimmick(gBattlerAttacker) != GIMMICK_TERA) + if (!IS_BATTLER_OF_TYPE(gBattlerAttacker, environmentType) && GetActiveGimmick(gBattlerAttacker) != GIMMICK_TERA) { - SET_BATTLER_TYPE(gBattlerAttacker, terrainType); - PREPARE_TYPE_BUFFER(gBattleTextBuff1, terrainType); + SET_BATTLER_TYPE(gBattlerAttacker, environmentType); + PREPARE_TYPE_BUFFER(gBattleTextBuff1, environmentType); gBattlescriptCurrInstr = cmd->nextInstr; } diff --git a/src/battle_setup.c b/src/battle_setup.c index f38135adcc..f2d4ebd497 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -621,7 +621,7 @@ static void CB2_EndScriptedWildBattle(void) } } -u8 BattleSetup_GetTerrainId(void) +u8 BattleSetup_GetEnvironmentId(void) { u16 tileBehavior; s16 x, y; @@ -634,11 +634,11 @@ u8 BattleSetup_GetTerrainId(void) 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_IsSandOrDeepSand(tileBehavior)) - return BATTLE_TERRAIN_SAND; + return BATTLE_ENVIRONMENT_SAND; switch (gMapHeader.mapType) { @@ -648,41 +648,41 @@ u8 BattleSetup_GetTerrainId(void) break; case MAP_TYPE_UNDERGROUND: if (MetatileBehavior_IsIndoorEncounter(tileBehavior)) - return BATTLE_TERRAIN_BUILDING; + return BATTLE_ENVIRONMENT_BUILDING; if (MetatileBehavior_IsSurfableWaterOrUnderwater(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_IsSurfableWaterOrUnderwater(tileBehavior)) - return BATTLE_TERRAIN_WATER; - return BATTLE_TERRAIN_PLAIN; + return BATTLE_ENVIRONMENT_WATER; + return BATTLE_ENVIRONMENT_PLAIN; } if (MetatileBehavior_IsDeepOrOceanWater(tileBehavior)) - return BATTLE_TERRAIN_WATER; + return BATTLE_ENVIRONMENT_WATER; if (MetatileBehavior_IsSurfableWaterOrUnderwater(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)) { // Is BRIDGE_TYPE_POND_*? if (MetatileBehavior_GetBridgeType(tileBehavior) != BRIDGE_TYPE_OCEAN) - return BATTLE_TERRAIN_POND; + return BATTLE_ENVIRONMENT_POND; if (MetatileBehavior_IsBridgeOverWater(tileBehavior) == TRUE) - return BATTLE_TERRAIN_WATER; + return BATTLE_ENVIRONMENT_WATER; } if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(ROUTE113) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE113)) - return BATTLE_TERRAIN_SAND; + return BATTLE_ENVIRONMENT_SAND; if (GetSavedWeather() == WEATHER_SANDSTORM) - return BATTLE_TERRAIN_SAND; + return BATTLE_ENVIRONMENT_SAND; - return BATTLE_TERRAIN_PLAIN; + return BATTLE_ENVIRONMENT_PLAIN; } static u8 GetBattleTransitionTypeByMap(void) diff --git a/src/battle_util.c b/src/battle_util.c index d017249bc3..53e3499aec 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -1124,21 +1124,12 @@ const u8 *CancelMultiTurnMoves(u32 battler, enum SkyDropState skyDropState) bool32 WasUnableToUseMove(u32 battler) { - if (gProtectStructs[battler].prlzImmobility - || gProtectStructs[battler].usedImprisonedMove - || gProtectStructs[battler].loveImmobility - || gProtectStructs[battler].usedDisabledMove - || gProtectStructs[battler].usedTauntedMove - || gProtectStructs[battler].usedGravityPreventedMove - || gProtectStructs[battler].usedHealBlockedMove - || gProtectStructs[battler].flag2Unknown - || gProtectStructs[battler].flinchImmobility - || gProtectStructs[battler].confusionSelfDmg - || gProtectStructs[battler].powderSelfDmg - || gProtectStructs[battler].usedThroatChopPreventedMove) + if (gProtectStructs[battler].nonVolatileStatusImmobility + || gProtectStructs[battler].unableToUseMove + || gProtectStructs[battler].powderSelfDmg + || gProtectStructs[battler].confusionSelfDmg) return TRUE; - else - return FALSE; + return FALSE; } void PrepareStringBattle(enum StringID stringId, u32 battler) @@ -1918,6 +1909,7 @@ static void CancellerAsleep(u32 *effect) enum BattleMoveEffects moveEffect = GetMoveEffect(gChosenMove); if (moveEffect != EFFECT_SNORE && moveEffect != EFFECT_SLEEP_TALK) { + gProtectStructs[gBattlerAttacker].nonVolatileStatusImmobility = TRUE; gBattlescriptCurrInstr = BattleScript_MoveUsedIsAsleep; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; *effect = 2; @@ -1942,6 +1934,7 @@ static void CancellerFrozen(u32 *effect) { if (!RandomPercentage(RNG_FROZEN, 20)) { + gProtectStructs[gBattlerAttacker].nonVolatileStatusImmobility = TRUE; gBattlescriptCurrInstr = BattleScript_MoveUsedIsFrozen; gHitMarker |= (HITMARKER_NO_ATTACKSTRING | HITMARKER_UNABLE_TO_USE_MOVE); } @@ -2030,7 +2023,7 @@ static void CancellerFlinch(u32 *effect) { if (gBattleMons[gBattlerAttacker].status2 & STATUS2_FLINCHED) { - gProtectStructs[gBattlerAttacker].flinchImmobility = TRUE; + gProtectStructs[gBattlerAttacker].unableToUseMove = TRUE; CancelMultiTurnMoves(gBattlerAttacker, SKY_DROP_ATTACKCANCELLER_CHECK); gBattlescriptCurrInstr = BattleScript_MoveUsedFlinched; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; @@ -2051,7 +2044,7 @@ static void CancellerInLove(u32 *effect) { BattleScriptPush(BattleScript_MoveUsedIsInLoveCantAttack); gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; - gProtectStructs[gBattlerAttacker].loveImmobility = TRUE; + gProtectStructs[gBattlerAttacker].unableToUseMove = TRUE; CancelMultiTurnMoves(gBattlerAttacker, SKY_DROP_ATTACKCANCELLER_CHECK); } gBattlescriptCurrInstr = BattleScript_MoveUsedIsInLove; @@ -2063,7 +2056,7 @@ static void CancellerDisabled(u32 *effect) { if (GetActiveGimmick(gBattlerAttacker) != GIMMICK_Z_MOVE && gDisableStructs[gBattlerAttacker].disabledMove == gCurrentMove && gDisableStructs[gBattlerAttacker].disabledMove != MOVE_NONE) { - gProtectStructs[gBattlerAttacker].usedDisabledMove = TRUE; + gProtectStructs[gBattlerAttacker].unableToUseMove = TRUE; gBattleScripting.battler = gBattlerAttacker; CancelMultiTurnMoves(gBattlerAttacker, SKY_DROP_ATTACKCANCELLER_CHECK); gBattlescriptCurrInstr = BattleScript_MoveUsedIsDisabled; @@ -2076,7 +2069,7 @@ static void CancellerHealBlocked(u32 *effect) { if (GetActiveGimmick(gBattlerAttacker) != GIMMICK_Z_MOVE && gStatuses3[gBattlerAttacker] & STATUS3_HEAL_BLOCK && IsHealBlockPreventingMove(gBattlerAttacker, gCurrentMove)) { - gProtectStructs[gBattlerAttacker].usedHealBlockedMove = TRUE; + gProtectStructs[gBattlerAttacker].unableToUseMove = TRUE; gBattleScripting.battler = gBattlerAttacker; CancelMultiTurnMoves(gBattlerAttacker, SKY_DROP_ATTACKCANCELLER_CHECK); gBattlescriptCurrInstr = BattleScript_MoveUsedHealBlockPrevents; @@ -2089,7 +2082,7 @@ static void CancellerGravity(u32 *effect) { if (gFieldStatuses & STATUS_FIELD_GRAVITY && IsGravityPreventingMove(gCurrentMove)) { - gProtectStructs[gBattlerAttacker].usedGravityPreventedMove = TRUE; + gProtectStructs[gBattlerAttacker].unableToUseMove = TRUE; gBattleScripting.battler = gBattlerAttacker; CancelMultiTurnMoves(gBattlerAttacker, SKY_DROP_ATTACKCANCELLER_CHECK); gBattlescriptCurrInstr = BattleScript_MoveUsedGravityPrevents; @@ -2102,7 +2095,7 @@ static void CancellerThroatChop(u32 *effect) { if (GetActiveGimmick(gBattlerAttacker) != GIMMICK_Z_MOVE && gDisableStructs[gBattlerAttacker].throatChopTimer > gBattleTurnCounter && IsSoundMove(gCurrentMove)) { - gProtectStructs[gBattlerAttacker].usedThroatChopPreventedMove = TRUE; + gProtectStructs[gBattlerAttacker].unableToUseMove = TRUE; CancelMultiTurnMoves(gBattlerAttacker, SKY_DROP_ATTACKCANCELLER_CHECK); gBattlescriptCurrInstr = BattleScript_MoveUsedIsThroatChopPrevented; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; @@ -2114,7 +2107,7 @@ static void CancellerTaunted(u32 *effect) { if (GetActiveGimmick(gBattlerAttacker) != GIMMICK_Z_MOVE && gDisableStructs[gBattlerAttacker].tauntTimer && IsBattleMoveStatus(gCurrentMove)) { - gProtectStructs[gBattlerAttacker].usedTauntedMove = TRUE; + gProtectStructs[gBattlerAttacker].unableToUseMove = TRUE; CancelMultiTurnMoves(gBattlerAttacker, SKY_DROP_ATTACKCANCELLER_CHECK); gBattlescriptCurrInstr = BattleScript_MoveUsedIsTaunted; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; @@ -2126,7 +2119,7 @@ static void CancellerImprisoned(u32 *effect) { if (GetActiveGimmick(gBattlerAttacker) != GIMMICK_Z_MOVE && GetImprisonedMovesCount(gBattlerAttacker, gCurrentMove)) { - gProtectStructs[gBattlerAttacker].usedImprisonedMove = TRUE; + gProtectStructs[gBattlerAttacker].unableToUseMove = TRUE; CancelMultiTurnMoves(gBattlerAttacker, SKY_DROP_ATTACKCANCELLER_CHECK); gBattlescriptCurrInstr = BattleScript_MoveUsedIsImprisoned; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; @@ -2184,7 +2177,7 @@ static void CancellerParalysed(u32 *effect) && !(B_MAGIC_GUARD == GEN_4 && GetBattlerAbility(gBattlerAttacker) == ABILITY_MAGIC_GUARD) && !RandomPercentage(RNG_PARALYSIS, 75)) { - gProtectStructs[gBattlerAttacker].prlzImmobility = TRUE; + gProtectStructs[gBattlerAttacker].nonVolatileStatusImmobility = TRUE; // This is removed in FRLG and Emerald for some reason //CancelMultiTurnMoves(gBattlerAttacker, SKY_DROP_ATTACKCANCELLER_CHECK); gBattlescriptCurrInstr = BattleScript_MoveUsedIsParalyzed; diff --git a/src/data/graphics/battle_environment.h b/src/data/graphics/battle_environment.h new file mode 100644 index 0000000000..29339011f5 --- /dev/null +++ b/src/data/graphics/battle_environment.h @@ -0,0 +1,88 @@ +const u32 gBattleEnvironmentTiles_TallGrass[] = INCBIN_U32("graphics/battle_environment/tall_grass/tiles.4bpp.lz"); +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.lz"); + +const u32 gBattleEnvironmentTiles_LongGrass[] = INCBIN_U32("graphics/battle_environment/long_grass/tiles.4bpp.lz"); +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.lz"); + +const u32 gBattleEnvironmentTiles_Sand[] = INCBIN_U32("graphics/battle_environment/sand/tiles.4bpp.lz"); +const u16 gBattleEnvironmentPalette_Sand[] = INCBIN_U16("graphics/battle_environment/sand/palette.gbapal"); +const u32 gBattleEnvironmentTilemap_Sand[] = INCBIN_U32("graphics/battle_environment/sand/map.bin.lz"); + +const u32 gBattleEnvironmentTiles_Underwater[] = INCBIN_U32("graphics/battle_environment/underwater/tiles.4bpp.lz"); +const u16 gBattleEnvironmentPalette_Underwater[] = INCBIN_U16("graphics/battle_environment/underwater/palette.gbapal"); +const u32 gBattleEnvironmentTilemap_Underwater[] = INCBIN_U32("graphics/battle_environment/underwater/map.bin.lz"); + +const u32 gBattleEnvironmentTiles_Water[] = INCBIN_U32("graphics/battle_environment/water/tiles.4bpp.lz"); +const u16 gBattleEnvironmentPalette_Water[] = INCBIN_U16("graphics/battle_environment/water/palette.gbapal"); +const u32 gBattleEnvironmentTilemap_Water[] = INCBIN_U32("graphics/battle_environment/water/map.bin.lz"); + +const u32 gBattleEnvironmentTiles_PondWater[] = INCBIN_U32("graphics/battle_environment/pond_water/tiles.4bpp.lz"); +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.lz"); + +const u32 gBattleEnvironmentTiles_Rock[] = INCBIN_U32("graphics/battle_environment/rock/tiles.4bpp.lz"); +const u16 gBattleEnvironmentPalette_Rock[] = INCBIN_U16("graphics/battle_environment/rock/palette.gbapal"); +const u32 gBattleEnvironmentTilemap_Rock[] = INCBIN_U32("graphics/battle_environment/rock/map.bin.lz"); + +const u32 gBattleEnvironmentTiles_Cave[] = INCBIN_U32("graphics/battle_environment/cave/tiles.4bpp.lz"); +const u16 gBattleEnvironmentPalette_Cave[] = INCBIN_U16("graphics/battle_environment/cave/palette.gbapal"); +const u32 gBattleEnvironmentTilemap_Cave[] = INCBIN_U32("graphics/battle_environment/cave/map.bin.lz"); + +const u16 gBattleEnvironmentPalette_Plain[] = INCBIN_U16("graphics/battle_environment/plain/palette.gbapal"); + +const u32 gBattleEnvironmentTiles_Building[] = INCBIN_U32("graphics/battle_environment/building/tiles.4bpp.lz"); +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.lz"); + +const u32 gBattleEnvironmentTiles_Stadium[] = INCBIN_U32("graphics/battle_environment/stadium/tiles.4bpp.lz"); +const u32 gBattleEnvironmentTilemap_Stadium[] = INCBIN_U32("graphics/battle_environment/stadium/map.bin.lz"); + +const u32 gBattleEnvironmentTiles_Rayquaza[] = INCBIN_U32("graphics/battle_environment/sky/tiles.4bpp.lz"); +const u32 gBattleEnvironmentTilemap_Rayquaza[] = INCBIN_U32("graphics/battle_environment/sky/map.bin.lz"); + +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/palette2.gbapal"); +const u16 gBattleEnvironmentPalette_BuildingLeader[] = INCBIN_U16("graphics/battle_environment/building/palette3.gbapal"); +const u16 gBattleEnvironmentPalette_StadiumAqua[] = INCBIN_U16("graphics/battle_environment/stadium/palette1.gbapal"); +const u16 gBattleEnvironmentPalette_StadiumMagma[] = INCBIN_U16("graphics/battle_environment/stadium/palette2.gbapal"); +const u16 gBattleEnvironmentPalette_StadiumSidney[] = INCBIN_U16("graphics/battle_environment/stadium/palette3.gbapal"); +const u16 gBattleEnvironmentPalette_StadiumPhoebe[] = INCBIN_U16("graphics/battle_environment/stadium/palette4.gbapal"); +const u16 gBattleEnvironmentPalette_StadiumGlacia[] = INCBIN_U16("graphics/battle_environment/stadium/palette5.gbapal"); +const u16 gBattleEnvironmentPalette_StadiumDrake[] = INCBIN_U16("graphics/battle_environment/stadium/palette6.gbapal"); +const u16 gBattleEnvironmentPalette_StadiumWallace[] = INCBIN_U16("graphics/battle_environment/stadium/palette7.gbapal"); +const u16 gBattleEnvironmentPalette_Rayquaza[] = INCBIN_U16("graphics/battle_environment/sky/palette.gbapal"); + +const u32 gBattleEnvironmentAnimTiles_TallGrass[] = INCBIN_U32("graphics/battle_environment/tall_grass/anim_tiles.4bpp.lz"); +const u32 gBattleEnvironmentAnimTilemap_TallGrass[] = INCBIN_U32("graphics/battle_environment/tall_grass/anim_map.bin.lz"); + +const u32 gBattleEnvironmentAnimTiles_LongGrass[] = INCBIN_U32("graphics/battle_environment/long_grass/anim_tiles.4bpp.lz"); +const u32 gBattleEnvironmentAnimTilemap_LongGrass[] = INCBIN_U32("graphics/battle_environment/long_grass/anim_map.bin.lz"); + +const u32 gBattleEnvironmentAnimTiles_Sand[] = INCBIN_U32("graphics/battle_environment/sand/anim_tiles.4bpp.lz"); +const u32 gBattleEnvironmentAnimTilemap_Sand[] = INCBIN_U32("graphics/battle_environment/sand/anim_map.bin.lz"); + +const u32 gBattleEnvironmentAnimTiles_Underwater[] = INCBIN_U32("graphics/battle_environment/underwater/anim_tiles.4bpp.lz"); +const u32 gBattleEnvironmentAnimTilemap_Underwater[] = INCBIN_U32("graphics/battle_environment/underwater/anim_map.bin.lz"); + +const u32 gBattleEnvironmentAnimTiles_Water[] = INCBIN_U32("graphics/battle_environment/water/anim_tiles.4bpp.lz"); +const u32 gBattleEnvironmentAnimTilemap_Water[] = INCBIN_U32("graphics/battle_environment/water/anim_map.bin.lz"); + +const u32 gBattleEnvironmentAnimTiles_PondWater[] = INCBIN_U32("graphics/battle_environment/pond_water/anim_tiles.4bpp.lz"); +const u32 gBattleEnvironmentAnimTilemap_PondWater[] = INCBIN_U32("graphics/battle_environment/pond_water/anim_map.bin.lz"); + +const u32 gBattleEnvironmentAnimTiles_Rock[] = INCBIN_U32("graphics/battle_environment/rock/anim_tiles.4bpp.lz"); +const u32 gBattleEnvironmentAnimTilemap_Rock[] = INCBIN_U32("graphics/battle_environment/rock/anim_map.bin.lz"); + +const u32 gBattleEnvironmentAnimTiles_Cave[] = INCBIN_U32("graphics/battle_environment/cave/anim_tiles.4bpp.lz"); +const u32 gBattleEnvironmentAnimTilemap_Cave[] = INCBIN_U32("graphics/battle_environment/cave/anim_map.bin.lz"); + +const u32 gBattleEnvironmentAnimTiles_Building[] = INCBIN_U32("graphics/battle_environment/building/anim_tiles.4bpp.lz"); +const u32 gBattleEnvironmentAnimTilemap_Building[] = INCBIN_U32("graphics/battle_environment/building/anim_map.bin.lz"); + +const u32 gBattleEnvironmentAnimTiles_Rayquaza[] = INCBIN_U32("graphics/battle_environment/sky/anim_tiles.4bpp.lz"); +const u32 gBattleEnvironmentAnimTilemap_Rayquaza[] = INCBIN_U32("graphics/battle_environment/sky/anim_map.bin.lz"); diff --git a/src/data/graphics/battle_terrain.h b/src/data/graphics/battle_terrain.h deleted file mode 100644 index 0e093aa639..0000000000 --- a/src/data/graphics/battle_terrain.h +++ /dev/null @@ -1,88 +0,0 @@ -const u32 gBattleTerrainTiles_TallGrass[] = INCBIN_U32("graphics/battle_terrain/tall_grass/tiles.4bpp.lz"); -const u16 gBattleTerrainPalette_TallGrass[] = INCBIN_U16("graphics/battle_terrain/tall_grass/palette.gbapal"); -const u32 gBattleTerrainTilemap_TallGrass[] = INCBIN_U32("graphics/battle_terrain/tall_grass/map.bin.lz"); - -const u32 gBattleTerrainTiles_LongGrass[] = INCBIN_U32("graphics/battle_terrain/long_grass/tiles.4bpp.lz"); -const u16 gBattleTerrainPalette_LongGrass[] = INCBIN_U16("graphics/battle_terrain/long_grass/palette.gbapal"); -const u32 gBattleTerrainTilemap_LongGrass[] = INCBIN_U32("graphics/battle_terrain/long_grass/map.bin.lz"); - -const u32 gBattleTerrainTiles_Sand[] = INCBIN_U32("graphics/battle_terrain/sand/tiles.4bpp.lz"); -const u16 gBattleTerrainPalette_Sand[] = INCBIN_U16("graphics/battle_terrain/sand/palette.gbapal"); -const u32 gBattleTerrainTilemap_Sand[] = INCBIN_U32("graphics/battle_terrain/sand/map.bin.lz"); - -const u32 gBattleTerrainTiles_Underwater[] = INCBIN_U32("graphics/battle_terrain/underwater/tiles.4bpp.lz"); -const u16 gBattleTerrainPalette_Underwater[] = INCBIN_U16("graphics/battle_terrain/underwater/palette.gbapal"); -const u32 gBattleTerrainTilemap_Underwater[] = INCBIN_U32("graphics/battle_terrain/underwater/map.bin.lz"); - -const u32 gBattleTerrainTiles_Water[] = INCBIN_U32("graphics/battle_terrain/water/tiles.4bpp.lz"); -const u16 gBattleTerrainPalette_Water[] = INCBIN_U16("graphics/battle_terrain/water/palette.gbapal"); -const u32 gBattleTerrainTilemap_Water[] = INCBIN_U32("graphics/battle_terrain/water/map.bin.lz"); - -const u32 gBattleTerrainTiles_PondWater[] = INCBIN_U32("graphics/battle_terrain/pond_water/tiles.4bpp.lz"); -const u16 gBattleTerrainPalette_PondWater[] = INCBIN_U16("graphics/battle_terrain/pond_water/palette.gbapal"); -const u32 gBattleTerrainTilemap_PondWater[] = INCBIN_U32("graphics/battle_terrain/pond_water/map.bin.lz"); - -const u32 gBattleTerrainTiles_Rock[] = INCBIN_U32("graphics/battle_terrain/rock/tiles.4bpp.lz"); -const u16 gBattleTerrainPalette_Rock[] = INCBIN_U16("graphics/battle_terrain/rock/palette.gbapal"); -const u32 gBattleTerrainTilemap_Rock[] = INCBIN_U32("graphics/battle_terrain/rock/map.bin.lz"); - -const u32 gBattleTerrainTiles_Cave[] = INCBIN_U32("graphics/battle_terrain/cave/tiles.4bpp.lz"); -const u16 gBattleTerrainPalette_Cave[] = INCBIN_U16("graphics/battle_terrain/cave/palette.gbapal"); -const u32 gBattleTerrainTilemap_Cave[] = INCBIN_U32("graphics/battle_terrain/cave/map.bin.lz"); - -const u16 gBattleTerrainPalette_Plain[] = INCBIN_U16("graphics/battle_terrain/plain/palette.gbapal"); - -const u32 gBattleTerrainTiles_Building[] = INCBIN_U32("graphics/battle_terrain/building/tiles.4bpp.lz"); -const u16 gBattleTerrainPalette_Frontier[] = INCBIN_U16("graphics/battle_terrain/stadium/battle_frontier.gbapal"); // this is also used for link battles -const u32 gBattleTerrainTilemap_Building[] = INCBIN_U32("graphics/battle_terrain/building/map.bin.lz"); - -const u32 gBattleTerrainTiles_Stadium[] = INCBIN_U32("graphics/battle_terrain/stadium/tiles.4bpp.lz"); -const u32 gBattleTerrainTilemap_Stadium[] = INCBIN_U32("graphics/battle_terrain/stadium/map.bin.lz"); - -const u32 gBattleTerrainTiles_Rayquaza[] = INCBIN_U32("graphics/battle_terrain/sky/tiles.4bpp.lz"); -const u32 gBattleTerrainTilemap_Rayquaza[] = INCBIN_U32("graphics/battle_terrain/sky/map.bin.lz"); - -const u16 gBattleTerrainPalette_Building[] = INCBIN_U16("graphics/battle_terrain/building/palette.gbapal"); - -const u16 gBattleTerrainPalette_Kyogre[] = INCBIN_U16("graphics/battle_terrain/water/kyogre.gbapal"); -const u16 gBattleTerrainPalette_Groudon[] = INCBIN_U16("graphics/battle_terrain/cave/groudon.gbapal"); -const u16 gBattleTerrainPalette_BuildingGym[] = INCBIN_U16("graphics/battle_terrain/building/palette2.gbapal"); -const u16 gBattleTerrainPalette_BuildingLeader[] = INCBIN_U16("graphics/battle_terrain/building/palette3.gbapal"); -const u16 gBattleTerrainPalette_StadiumAqua[] = INCBIN_U16("graphics/battle_terrain/stadium/palette1.gbapal"); -const u16 gBattleTerrainPalette_StadiumMagma[] = INCBIN_U16("graphics/battle_terrain/stadium/palette2.gbapal"); -const u16 gBattleTerrainPalette_StadiumSidney[] = INCBIN_U16("graphics/battle_terrain/stadium/palette3.gbapal"); -const u16 gBattleTerrainPalette_StadiumPhoebe[] = INCBIN_U16("graphics/battle_terrain/stadium/palette4.gbapal"); -const u16 gBattleTerrainPalette_StadiumGlacia[] = INCBIN_U16("graphics/battle_terrain/stadium/palette5.gbapal"); -const u16 gBattleTerrainPalette_StadiumDrake[] = INCBIN_U16("graphics/battle_terrain/stadium/palette6.gbapal"); -const u16 gBattleTerrainPalette_StadiumWallace[] = INCBIN_U16("graphics/battle_terrain/stadium/palette7.gbapal"); -const u16 gBattleTerrainPalette_Rayquaza[] = INCBIN_U16("graphics/battle_terrain/sky/palette.gbapal"); - -const u32 gBattleTerrainAnimTiles_TallGrass[] = INCBIN_U32("graphics/battle_terrain/tall_grass/anim_tiles.4bpp.lz"); -const u32 gBattleTerrainAnimTilemap_TallGrass[] = INCBIN_U32("graphics/battle_terrain/tall_grass/anim_map.bin.lz"); - -const u32 gBattleTerrainAnimTiles_LongGrass[] = INCBIN_U32("graphics/battle_terrain/long_grass/anim_tiles.4bpp.lz"); -const u32 gBattleTerrainAnimTilemap_LongGrass[] = INCBIN_U32("graphics/battle_terrain/long_grass/anim_map.bin.lz"); - -const u32 gBattleTerrainAnimTiles_Sand[] = INCBIN_U32("graphics/battle_terrain/sand/anim_tiles.4bpp.lz"); -const u32 gBattleTerrainAnimTilemap_Sand[] = INCBIN_U32("graphics/battle_terrain/sand/anim_map.bin.lz"); - -const u32 gBattleTerrainAnimTiles_Underwater[] = INCBIN_U32("graphics/battle_terrain/underwater/anim_tiles.4bpp.lz"); -const u32 gBattleTerrainAnimTilemap_Underwater[] = INCBIN_U32("graphics/battle_terrain/underwater/anim_map.bin.lz"); - -const u32 gBattleTerrainAnimTiles_Water[] = INCBIN_U32("graphics/battle_terrain/water/anim_tiles.4bpp.lz"); -const u32 gBattleTerrainAnimTilemap_Water[] = INCBIN_U32("graphics/battle_terrain/water/anim_map.bin.lz"); - -const u32 gBattleTerrainAnimTiles_PondWater[] = INCBIN_U32("graphics/battle_terrain/pond_water/anim_tiles.4bpp.lz"); -const u32 gBattleTerrainAnimTilemap_PondWater[] = INCBIN_U32("graphics/battle_terrain/pond_water/anim_map.bin.lz"); - -const u32 gBattleTerrainAnimTiles_Rock[] = INCBIN_U32("graphics/battle_terrain/rock/anim_tiles.4bpp.lz"); -const u32 gBattleTerrainAnimTilemap_Rock[] = INCBIN_U32("graphics/battle_terrain/rock/anim_map.bin.lz"); - -const u32 gBattleTerrainAnimTiles_Cave[] = INCBIN_U32("graphics/battle_terrain/cave/anim_tiles.4bpp.lz"); -const u32 gBattleTerrainAnimTilemap_Cave[] = INCBIN_U32("graphics/battle_terrain/cave/anim_map.bin.lz"); - -const u32 gBattleTerrainAnimTiles_Building[] = INCBIN_U32("graphics/battle_terrain/building/anim_tiles.4bpp.lz"); -const u32 gBattleTerrainAnimTilemap_Building[] = INCBIN_U32("graphics/battle_terrain/building/anim_map.bin.lz"); - -const u32 gBattleTerrainAnimTiles_Rayquaza[] = INCBIN_U32("graphics/battle_terrain/sky/anim_tiles.4bpp.lz"); -const u32 gBattleTerrainAnimTilemap_Rayquaza[] = INCBIN_U32("graphics/battle_terrain/sky/anim_map.bin.lz"); diff --git a/src/data/graphics/pokemon.h b/src/data/graphics/pokemon.h index 6c380392ef..91163906b9 100644 --- a/src/data/graphics/pokemon.h +++ b/src/data/graphics/pokemon.h @@ -21436,7 +21436,7 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_Lurantis[] = INCBIN_U32("graphics/pokemon/lurantis/front.4bpp.lz"); + const u32 gMonFrontPic_Lurantis[] = INCBIN_U32("graphics/pokemon/lurantis/anim_front.4bpp.lz"); const u16 gMonPalette_Lurantis[] = INCBIN_U16("graphics/pokemon/lurantis/normal.gbapal"); const u32 gMonBackPic_Lurantis[] = INCBIN_U32("graphics/pokemon/lurantis/back.4bpp.lz"); const u16 gMonShinyPalette_Lurantis[] = INCBIN_U16("graphics/pokemon/lurantis/shiny.gbapal"); diff --git a/src/data/pokemon/form_change_tables.h b/src/data/pokemon/form_change_tables.h index 1cab4fc833..b15ad80b76 100644 --- a/src/data/pokemon/form_change_tables.h +++ b/src/data/pokemon/form_change_tables.h @@ -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 diff --git a/src/data/pokemon/species_info/gen_7_families.h b/src/data/pokemon/species_info/gen_7_families.h index ff5f1a9344..d264f830ad 100644 --- a/src/data/pokemon/species_info/gen_7_families.h +++ b/src/data/pokemon/species_info/gen_7_families.h @@ -2987,7 +2987,11 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .frontPic = gMonFrontPic_Lurantis, .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 2, - .frontAnimFrames = sAnims_SingleFramePlaceHolder, + .frontAnimFrames = ANIM_FRAMES( + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 1), + ), .frontAnimId = ANIM_GROW_VIBRATE, .backPic = gMonBackPic_Lurantis, .backPicSize = MON_COORDS_SIZE(56, 64), diff --git a/src/debug.c b/src/debug.c index d137ea201b..ad0cf449d4 100644 --- a/src/debug.c +++ b/src/debug.c @@ -1767,7 +1767,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++) diff --git a/src/evolution_scene.c b/src/evolution_scene.c index 636a322cf5..70accb3f2a 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -236,7 +236,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(); @@ -342,7 +342,7 @@ static void CB2_EvolutionSceneLoadGraphics(void) gBattle_BG3_X = 256; gBattle_BG3_Y = 0; - gBattleTerrain = BATTLE_TERRAIN_PLAIN; + gBattleEnvironment = BATTLE_ENVIRONMENT_PLAIN; InitBattleBgsVideo(); LoadBattleTextboxAndBackground(); diff --git a/src/graphics.c b/src/graphics.c index 70ce2a811b..97acda7732 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -1303,7 +1303,7 @@ const u16 gBattleVSFrame_Pal[] = INCBIN_U16("graphics/battle_transitions/vs_fram const u32 gVsLettersGfx[] = INCBIN_U32("graphics/battle_transitions/vs.4bpp.lz"); -#include "data/graphics/battle_terrain.h" +#include "data/graphics/battle_environment.h" // Battle Dome const u32 gDomeTourneyTree_Gfx[] = INCBIN_U32("graphics/battle_frontier/tourney_tree.4bpp.lz"); diff --git a/src/main_menu.c b/src/main_menu.c index c8132c6df8..cb02eba1f8 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -547,6 +547,7 @@ enum }; #define MAIN_MENU_BORDER_TILE 0x1D5 +#define BIRCH_DLG_BASE_TILE_NUM 0xFC static void CB2_MainMenu(void) { @@ -1349,7 +1350,7 @@ static void Task_NewGameBirchSpeech_WaitForSpriteFadeInWelcome(u8 taskId) { InitWindows(sNewGameBirchSpeechTextWindows); LoadMainMenuWindowFrameTiles(0, 0xF3); - LoadMessageBoxGfx(0, 0xFC, BG_PLTT_ID(15)); + LoadMessageBoxGfx(0, BIRCH_DLG_BASE_TILE_NUM, BG_PLTT_ID(15)); NewGameBirchSpeech_ShowDialogueWindow(0, 1); PutWindowTilemap(0); CopyWindowToVram(0, COPYWIN_GFX); @@ -1875,7 +1876,7 @@ static void CB2_NewGameBirchSpeech_ReturnFromNamingScreen(void) SetMainCallback2(CB2_MainMenu); InitWindows(sNewGameBirchSpeechTextWindows); LoadMainMenuWindowFrameTiles(0, 0xF3); - LoadMessageBoxGfx(0, 0xFC, BG_PLTT_ID(15)); + LoadMessageBoxGfx(0, BIRCH_DLG_BASE_TILE_NUM, BG_PLTT_ID(15)); PutWindowTilemap(0); CopyWindowToVram(0, COPYWIN_FULL); } @@ -2297,20 +2298,20 @@ static void NewGameBirchSpeech_ShowDialogueWindow(u8 windowId, u8 copyToVram) static void NewGameBirchSpeech_CreateDialogueWindowBorder(u8 bg, u8 x, u8 y, u8 width, u8 height, u8 palNum) { - FillBgTilemapBufferRect(bg, 0xFD, x-2, y-1, 1, 1, palNum); - FillBgTilemapBufferRect(bg, 0xFF, x-1, y-1, 1, 1, palNum); - FillBgTilemapBufferRect(bg, 0x100, x, y-1, width, 1, palNum); - FillBgTilemapBufferRect(bg, 0x101, x+width-1, y-1, 1, 1, palNum); - FillBgTilemapBufferRect(bg, 0x102, x+width, y-1, 1, 1, palNum); - FillBgTilemapBufferRect(bg, 0x103, x-2, y, 1, 5, palNum); - FillBgTilemapBufferRect(bg, 0x105, x-1, y, width+1, 5, palNum); - FillBgTilemapBufferRect(bg, 0x106, x+width, y, 1, 5, palNum); + FillBgTilemapBufferRect(bg, BIRCH_DLG_BASE_TILE_NUM + 1, x-2, y-1, 1, 1, palNum); + FillBgTilemapBufferRect(bg, BIRCH_DLG_BASE_TILE_NUM + 3, x-1, y-1, 1, 1, palNum); + FillBgTilemapBufferRect(bg, BIRCH_DLG_BASE_TILE_NUM + 4, x, y-1, width, 1, palNum); + FillBgTilemapBufferRect(bg, BIRCH_DLG_BASE_TILE_NUM + 5, x+width-1, y-1, 1, 1, palNum); + FillBgTilemapBufferRect(bg, BIRCH_DLG_BASE_TILE_NUM + 6, x+width, y-1, 1, 1, palNum); + FillBgTilemapBufferRect(bg, BIRCH_DLG_BASE_TILE_NUM + 7, x-2, y, 1, 5, palNum); + FillBgTilemapBufferRect(bg, BIRCH_DLG_BASE_TILE_NUM + 9, x-1, y, width+1, 5, palNum); + FillBgTilemapBufferRect(bg, BIRCH_DLG_BASE_TILE_NUM + 10, x+width, y, 1, 5, palNum); - FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(0xFD), x-2, y+height, 1, 1, palNum); - FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(0xFF), x-1, y+height, 1, 1, palNum); - FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(0x100), x, y+height, width-1, 1, palNum); - FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(0x101), x+width-1, y+height, 1, 1, palNum); - FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(0x102), x+width, y+height, 1, 1, palNum); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(BIRCH_DLG_BASE_TILE_NUM + 1), x-2, y+height, 1, 1, palNum); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(BIRCH_DLG_BASE_TILE_NUM + 3), x-1, y+height, 1, 1, palNum); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(BIRCH_DLG_BASE_TILE_NUM + 4), x, y+height, width-1, 1, palNum); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(BIRCH_DLG_BASE_TILE_NUM + 5), x+width-1, y+height, 1, 1, palNum); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(BIRCH_DLG_BASE_TILE_NUM + 6), x+width, y+height, 1, 1, palNum); } static void Task_NewGameBirchSpeech_ReturnFromNamingScreenShowTextbox(u8 taskId) diff --git a/src/mirage_tower.c b/src/mirage_tower.c index 6b541e37ac..0b5408ecdf 100644 --- a/src/mirage_tower.c +++ b/src/mirage_tower.c @@ -57,12 +57,9 @@ struct FallAnim_Fossil #define TAG_CEILING_CRUMBLE 4000 -#define MIRAGE_TOWER_GFX_LENGTH (sizeof(sBlankTile_Gfx) + sizeof(sMirageTower_Gfx)) +#define MIRAGE_TOWER_GFX_LENGTH (sizeof(sMirageTower_Gfx)) #define FOSSIL_DISINTEGRATE_LENGTH 0x100 -static const struct SpriteSheet sCeilingCrumbleSpriteSheets[]; -static const s16 sCeilingCrumblePositions[][3]; - static void PlayerDescendMirageTower(u8); static void DoScreenShake(u8); static void IncrementCeilingCrumbleFinishedCount(void); @@ -76,8 +73,7 @@ static void Task_FossilFallAndSink(u8); static void SpriteCB_FallingFossil(struct Sprite *); static void UpdateDisintegrationEffect(u8 *, u16, u8, u8, u8); -static const u8 ALIGNED(2) sBlankTile_Gfx[32] = {0}; -static const u8 sMirageTower_Gfx[] = INCBIN_U8("graphics/misc/mirage_tower.4bpp"); +static const ALIGNED(2) u8 sMirageTower_Gfx[] = INCBIN_U8("graphics/misc/mirage_tower.4bpp"); static const u16 sMirageTowerTilemap[] = INCBIN_U16("graphics/misc/mirage_tower.bin"); static const u16 sFossil_Pal[] = INCBIN_U16("graphics/object_events/pics/misc/fossil.gbapal"); // Unused static const u8 sFossil_Gfx[] = INCBIN_U8("graphics/object_events/pics/misc/fossil.4bpp"); // Duplicate of gObjectEventPic_Fossil @@ -446,38 +442,47 @@ static void FinishCeilingCrumbleTask(u8 taskId) ScriptContext_Enable(); } +#define sIndex data[0] +#define sYOffset data[1] + static void CreateCeilingCrumbleSprites(void) { u8 i; u8 spriteId; - for (i = 0; i < 8; i++) + for (i = 0; i < ARRAY_COUNT(sCeilingCrumblePositions); i++) { spriteId = CreateSprite(&sSpriteTemplate_CeilingCrumbleLarge, sCeilingCrumblePositions[i][0] + 120, sCeilingCrumblePositions[i][1], 8); gSprites[spriteId].oam.priority = 0; - gSprites[spriteId].oam.paletteNum = 0; - gSprites[spriteId].data[0] = i; + // These sprites use color index 11 from the player's sprite palette. This probably wasn't intentional. + // The palettes for Brendan and May have different shades of green at this index, so the color of these sprites changes + // depending on the player's gender (and neither shade of green particularly fits a crumbling yellow/brown ceiling). + gSprites[spriteId].oam.paletteNum = PALSLOT_PLAYER; + gSprites[spriteId].sIndex = i; } - for (i = 0; i < 8; i++) + for (i = 0; i < ARRAY_COUNT(sCeilingCrumblePositions); i++) { spriteId = CreateSprite(&sSpriteTemplate_CeilingCrumbleSmall, sCeilingCrumblePositions[i][0] + 115, sCeilingCrumblePositions[i][1] - 3, 8); gSprites[spriteId].oam.priority = 0; - gSprites[spriteId].oam.paletteNum = 0; - gSprites[spriteId].data[0] = i; + gSprites[spriteId].oam.paletteNum = PALSLOT_PLAYER; + gSprites[spriteId].sIndex = i; } } static void SpriteCB_CeilingCrumble(struct Sprite *sprite) { - sprite->data[1] += 2; - sprite->y2 = sprite->data[1] / 2; - if(((sprite->y) + (sprite->y2)) > sCeilingCrumblePositions[sprite->data[0]][2]) + sprite->sYOffset += 2; + sprite->y2 = sprite->sYOffset / 2; + if ((sprite->y + sprite->y2) > sCeilingCrumblePositions[sprite->sIndex][2]) { DestroySprite(sprite); IncrementCeilingCrumbleFinishedCount(); } } +#undef sIndex +#undef sYOffset + static void SetInvisibleMirageTowerMetatiles(void) { u8 i; @@ -544,7 +549,7 @@ static void InitMirageTowerShake(u8 taskId) gTasks[taskId].tState++; break; case 2: - CpuSet(sBlankTile_Gfx, sMirageTowerGfxBuffer, MIRAGE_TOWER_GFX_LENGTH / 2); + CpuSet(sMirageTower_Gfx, sMirageTowerGfxBuffer, MIRAGE_TOWER_GFX_LENGTH / 2); LoadBgTiles(0, sMirageTowerGfxBuffer, MIRAGE_TOWER_GFX_LENGTH, 0); gTasks[taskId].tState++; break; diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c index 668c58c9ea..ef83dc6eda 100644 --- a/src/pokeblock_feed.c +++ b/src/pokeblock_feed.c @@ -691,7 +691,7 @@ static bool8 LoadMonAndSceneGfx(struct Pokemon *mon) break; case 6: ResetTempTileDataBuffers(); - DecompressAndCopyTileDataToVram(1, gBattleTerrainTiles_Building, 0, 0, 0); + DecompressAndCopyTileDataToVram(1, gBattleEnvironmentTiles_Building, 0, 0, 0); sPokeblockFeed->loadGfxState++; break; case 7: @@ -702,7 +702,7 @@ static bool8 LoadMonAndSceneGfx(struct Pokemon *mon) } break; case 8: - LoadPalette(gBattleTerrainPalette_Frontier, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + LoadPalette(gBattleEnvironmentPalette_Frontier, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); sPokeblockFeed->loadGfxState = 0; return TRUE; } diff --git a/src/pokemon.c b/src/pokemon.c index 3576c66f56..2fa18a4bc3 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -6625,7 +6625,23 @@ u32 GetFormChangeTargetSpeciesBoxMon(struct BoxPokemon *boxMon, enum FormChanges case FORM_CHANGE_ITEM_HOLD: if ((heldItem == formChanges[i].param1 || formChanges[i].param1 == ITEM_NONE) && (ability == formChanges[i].param2 || formChanges[i].param2 == ABILITY_NONE)) - targetSpecies = formChanges[i].targetSpecies; + { + // This is to prevent reverting to base form when giving the item to the corresponding form. + // Eg. Giving a Zap Plate to an Electric Arceus without an item (most likely to happen when using givemon) + bool32 currentItemForm = FALSE; + for (int j = 0; formChanges[j].method != FORM_CHANGE_TERMINATOR; j++) + { + if (species == formChanges[j].targetSpecies + && formChanges[j].param1 == heldItem + && formChanges[j].param1 != ITEM_NONE) + { + currentItemForm = TRUE; + break; + } + } + if (!currentItemForm) + targetSpecies = formChanges[i].targetSpecies; + } break; case FORM_CHANGE_ITEM_USE: if (arg == formChanges[i].param1) @@ -6667,7 +6683,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: diff --git a/src/pokemon_sprite_visualizer.c b/src/pokemon_sprite_visualizer.c index 23fc45a468..e2264dfc64 100644 --- a/src/pokemon_sprite_visualizer.c +++ b/src/pokemon_sprite_visualizer.c @@ -42,7 +42,7 @@ #include "constants/rgb.h" #include "constants/songs.h" -extern const struct BattleBackground sBattleTerrainTable[]; +extern const struct BattleBackground sBattleEnvironmentTable[]; extern const struct CompressedSpriteSheet gSpriteSheet_EnemyShadow; extern const struct CompressedSpriteSheet gSpriteSheet_EnemyShadowsSized; extern const struct SpriteTemplate gSpriteTemplate_EnemyShadow; @@ -387,16 +387,16 @@ const u8 gBattleBackgroundNames[][30] = }; const u8 gBattleBackgroundTerrainNames[][26] = { - [BATTLE_TERRAIN_GRASS] = _("NORMAL - GRASS "), - [BATTLE_TERRAIN_LONG_GRASS] = _("NORMAL - LONG GRASS "), - [BATTLE_TERRAIN_SAND] = _("NORMAL - SAND "), - [BATTLE_TERRAIN_UNDERWATER] = _("NORMAL - UNDERWATER "), - [BATTLE_TERRAIN_WATER] = _("NORMAL - WATER "), - [BATTLE_TERRAIN_POND] = _("NORMAL - POND "), - [BATTLE_TERRAIN_MOUNTAIN] = _("NORMAL - MOUNTAIN "), - [BATTLE_TERRAIN_CAVE] = _("NORMAL - CAVE "), - [BATTLE_TERRAIN_BUILDING] = _("NORMAL - BUILDING "), - [BATTLE_TERRAIN_PLAIN] = _("NORMAL - PLAIN "), + [BATTLE_ENVIRONMENT_GRASS] = _("NORMAL - GRASS "), + [BATTLE_ENVIRONMENT_LONG_GRASS] = _("NORMAL - LONG GRASS "), + [BATTLE_ENVIRONMENT_SAND] = _("NORMAL - SAND "), + [BATTLE_ENVIRONMENT_UNDERWATER] = _("NORMAL - UNDERWATER "), + [BATTLE_ENVIRONMENT_WATER] = _("NORMAL - WATER "), + [BATTLE_ENVIRONMENT_POND] = _("NORMAL - POND "), + [BATTLE_ENVIRONMENT_MOUNTAIN] = _("NORMAL - MOUNTAIN "), + [BATTLE_ENVIRONMENT_CAVE] = _("NORMAL - CAVE "), + [BATTLE_ENVIRONMENT_BUILDING] = _("NORMAL - BUILDING "), + [BATTLE_ENVIRONMENT_PLAIN] = _("NORMAL - PLAIN "), }; const u8 sShadowSizeLabels[][4] = { @@ -921,80 +921,80 @@ static void LoadAndCreateEnemyShadowSpriteCustom(struct PokemonSpriteVisualizer } //Battle background functions -static void LoadBattleBg(u8 battleBgType, u8 battleTerrain) +static void LoadBattleBg(u8 battleBgType, u8 battleEnvironment) { switch (battleBgType) { default: case MAP_BATTLE_SCENE_NORMAL: - LZDecompressVram(sBattleTerrainTable[battleTerrain].tileset, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(sBattleTerrainTable[battleTerrain].tilemap, (void*)(BG_SCREEN_ADDR(26))); - LoadPalette(sBattleTerrainTable[battleTerrain].palette, 0x20, 0x60); + LZDecompressVram(sBattleEnvironmentTable[battleEnvironment].tileset, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(sBattleEnvironmentTable[battleEnvironment].tilemap, (void*)(BG_SCREEN_ADDR(26))); + LoadPalette(sBattleEnvironmentTable[battleEnvironment].palette, 0x20, 0x60); break; case MAP_BATTLE_SCENE_GYM: - LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26))); - LoadPalette(gBattleTerrainPalette_BuildingGym, 0x20, 0x60); + LZDecompressVram(gBattleEnvironmentTiles_Building, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTilemap_Building, (void*)(BG_SCREEN_ADDR(26))); + LoadPalette(gBattleEnvironmentPalette_BuildingGym, 0x20, 0x60); break; case MAP_BATTLE_SCENE_MAGMA: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); - LoadPalette(gBattleTerrainPalette_StadiumMagma, 0x20, 0x60); + LZDecompressVram(gBattleEnvironmentTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); + LoadPalette(gBattleEnvironmentPalette_StadiumMagma, 0x20, 0x60); break; case MAP_BATTLE_SCENE_AQUA: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); - LoadPalette(gBattleTerrainPalette_StadiumAqua, 0x20, 0x60); + LZDecompressVram(gBattleEnvironmentTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); + LoadPalette(gBattleEnvironmentPalette_StadiumAqua, 0x20, 0x60); break; case MAP_BATTLE_SCENE_SIDNEY: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); - LoadPalette(gBattleTerrainPalette_StadiumSidney, 0x20, 0x60); + LZDecompressVram(gBattleEnvironmentTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); + LoadPalette(gBattleEnvironmentPalette_StadiumSidney, 0x20, 0x60); break; case MAP_BATTLE_SCENE_PHOEBE: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); - LoadPalette(gBattleTerrainPalette_StadiumPhoebe, 0x20, 0x60); + LZDecompressVram(gBattleEnvironmentTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); + LoadPalette(gBattleEnvironmentPalette_StadiumPhoebe, 0x20, 0x60); break; case MAP_BATTLE_SCENE_GLACIA: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); - LoadPalette(gBattleTerrainPalette_StadiumGlacia, 0x20, 0x60); + LZDecompressVram(gBattleEnvironmentTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); + LoadPalette(gBattleEnvironmentPalette_StadiumGlacia, 0x20, 0x60); break; case MAP_BATTLE_SCENE_DRAKE: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); - LoadPalette(gBattleTerrainPalette_StadiumDrake, 0x20, 0x60); + LZDecompressVram(gBattleEnvironmentTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); + LoadPalette(gBattleEnvironmentPalette_StadiumDrake, 0x20, 0x60); break; case MAP_BATTLE_SCENE_FRONTIER: - LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26))); - LoadPalette(gBattleTerrainPalette_Frontier, 0x20, 0x60); + LZDecompressVram(gBattleEnvironmentTiles_Building, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTilemap_Building, (void*)(BG_SCREEN_ADDR(26))); + LoadPalette(gBattleEnvironmentPalette_Frontier, 0x20, 0x60); break; case MAP_BATTLE_SCENE_LEADER: - LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26))); - LoadPalette(gBattleTerrainPalette_BuildingLeader, 0x20, 0x60); + LZDecompressVram(gBattleEnvironmentTiles_Building, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTilemap_Building, (void*)(BG_SCREEN_ADDR(26))); + LoadPalette(gBattleEnvironmentPalette_BuildingLeader, 0x20, 0x60); break; case MAP_BATTLE_SCENE_WALLACE: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); - LoadPalette(gBattleTerrainPalette_StadiumWallace, 0x20, 0x60); + LZDecompressVram(gBattleEnvironmentTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); + LoadPalette(gBattleEnvironmentPalette_StadiumWallace, 0x20, 0x60); break; case MAP_BATTLE_SCENE_GROUDON: - LZDecompressVram(gBattleTerrainTiles_Cave, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Cave, (void*)(BG_SCREEN_ADDR(26))); - LoadPalette(gBattleTerrainPalette_Groudon, 0x20, 0x60); + LZDecompressVram(gBattleEnvironmentTiles_Cave, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTilemap_Cave, (void*)(BG_SCREEN_ADDR(26))); + LoadPalette(gBattleEnvironmentPalette_Groudon, 0x20, 0x60); break; case MAP_BATTLE_SCENE_KYOGRE: - LZDecompressVram(gBattleTerrainTiles_Water, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Water, (void*)(BG_SCREEN_ADDR(26))); - LoadPalette(gBattleTerrainPalette_Kyogre, 0x20, 0x60); + LZDecompressVram(gBattleEnvironmentTiles_Water, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTilemap_Water, (void*)(BG_SCREEN_ADDR(26))); + LoadPalette(gBattleEnvironmentPalette_Kyogre, 0x20, 0x60); break; case MAP_BATTLE_SCENE_RAYQUAZA: - LZDecompressVram(gBattleTerrainTiles_Rayquaza, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Rayquaza, (void*)(BG_SCREEN_ADDR(26))); - LoadPalette(gBattleTerrainPalette_Rayquaza, 0x20, 0x60); + LZDecompressVram(gBattleEnvironmentTiles_Rayquaza, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleEnvironmentTilemap_Rayquaza, (void*)(BG_SCREEN_ADDR(26))); + LoadPalette(gBattleEnvironmentPalette_Rayquaza, 0x20, 0x60); break; } } @@ -1018,14 +1018,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; @@ -1038,7 +1038,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) @@ -1046,7 +1046,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; @@ -1244,7 +1244,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; diff --git a/test/battle/move_effect/stomping_tantrum.c b/test/battle/move_effect/stomping_tantrum.c index c759de38b1..18d8ffb7e9 100644 --- a/test/battle/move_effect/stomping_tantrum.c +++ b/test/battle/move_effect/stomping_tantrum.c @@ -90,7 +90,7 @@ SINGLE_BATTLE_TEST("Stomping Tatrum will not deal double damage if target protec } } -SINGLE_BATTLE_TEST("Stomping Tatrum will not deal double damage if it failed on the previous turn cause of Protect") +SINGLE_BATTLE_TEST("Stomping Tatrum will not deal double if it missed") { s16 damage[2]; GIVEN { diff --git a/test/pokemon.c b/test/pokemon.c index 16aadee798..dbb88081cf 100644 --- a/test/pokemon.c +++ b/test/pokemon.c @@ -256,6 +256,23 @@ TEST("givemon respects perfectIVCount") } } +TEST("givemon respects FORM_CHANGE_ITEM_HOLD") +{ + ZeroPlayerPartyMons(); + + RUN_OVERWORLD_SCRIPT( + givemon SPECIES_ARCEUS_NORMAL, 100, item=ITEM_ZAP_PLATE; + givemon SPECIES_ARCEUS_GRASS, 100, item=ITEM_ZAP_PLATE; + givemon SPECIES_ARCEUS_ELECTRIC, 100, item=ITEM_ZAP_PLATE; + givemon SPECIES_GIRATINA_ORIGIN, 100, item=ITEM_POTION; + ); + + EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_SPECIES), SPECIES_ARCEUS_ELECTRIC); + EXPECT_EQ(GetMonData(&gPlayerParty[1], MON_DATA_SPECIES), SPECIES_ARCEUS_ELECTRIC); + EXPECT_EQ(GetMonData(&gPlayerParty[2], MON_DATA_SPECIES), SPECIES_ARCEUS_ELECTRIC); + EXPECT_EQ(GetMonData(&gPlayerParty[3], MON_DATA_SPECIES), SPECIES_GIRATINA_ALTERED); +} + TEST("givemon [moves]") { ZeroPlayerPartyMons(); diff --git a/test/test_runner_battle.c b/test/test_runner_battle.c index 627273ec7f..db49155e18 100644 --- a/test/test_runner_battle.c +++ b/test/test_runner_battle.c @@ -2373,7 +2373,7 @@ void ExpectMoves(u32 sourceLine, struct BattlePokemon *battler, bool32 notExpect s32 battlerId = battler - gBattleMons; u32 i; - for (i = 0; i < MAX_BATTLERS_COUNT; i++) + for (i = 0; i < MAX_MON_MOVES; i++) { if (moves.moves[i] != MOVE_NONE) {