Merge remote-tracking branch 'pret/master' into new-pret-merge

Conflicts:
	asm/macros/battle_script.inc
	data/battle_anim_scripts.s
	include/battle.h
	include/battle_controllers.h
	include/battle_setup.h
	include/constants/battle.h
	src/battle_anim_normal.c
	src/battle_anim_utility_funcs.c
	src/battle_bg.c
	src/battle_controllers.c
	src/battle_main.c
	src/battle_script_commands.c
This commit is contained in:
Hedara 2025-04-29 20:27:33 +02:00
commit 4873589c65
95 changed files with 730 additions and 721 deletions

View File

@ -1100,7 +1100,7 @@
.byte \battler
.endm
.macro callterrainattack
.macro callenvironmentattack
.byte 0xcc
.endm
@ -1255,7 +1255,7 @@
.4byte \failInstr
.endm
.macro settypetoterrain failInstr:req
.macro settypetoenvironment failInstr:req
.byte 0xeb
.4byte \failInstr
.endm

View File

@ -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

View File

@ -4946,7 +4946,7 @@ BattleScript_EffectNaturePower::
attackcanceler
attackstring
pause B_WAIT_TIME_SHORT
callterrainattack
callenvironmentattack
printstring STRINGID_NATUREPOWERTURNEDINTO
waitmessage B_WAIT_TIME_LONG
return
@ -5395,7 +5395,7 @@ BattleScript_EffectCamouflage::
attackcanceler
attackstring
ppreduce
settypetoterrain BattleScript_ButItFailed
settypetoenvironment BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNCHANGEDTYPE

View File

Before

Width:  |  Height:  |  Size: 308 B

After

Width:  |  Height:  |  Size: 308 B

View File

Before

Width:  |  Height:  |  Size: 709 B

After

Width:  |  Height:  |  Size: 709 B

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 864 B

After

Width:  |  Height:  |  Size: 864 B

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 900 B

After

Width:  |  Height:  |  Size: 900 B

View File

Before

Width:  |  Height:  |  Size: 592 B

After

Width:  |  Height:  |  Size: 592 B

View File

Before

Width:  |  Height:  |  Size: 732 B

After

Width:  |  Height:  |  Size: 732 B

View File

Before

Width:  |  Height:  |  Size: 760 B

After

Width:  |  Height:  |  Size: 760 B

View File

Before

Width:  |  Height:  |  Size: 725 B

After

Width:  |  Height:  |  Size: 725 B

View File

Before

Width:  |  Height:  |  Size: 644 B

After

Width:  |  Height:  |  Size: 644 B

View File

Before

Width:  |  Height:  |  Size: 805 B

After

Width:  |  Height:  |  Size: 805 B

View File

Before

Width:  |  Height:  |  Size: 961 B

After

Width:  |  Height:  |  Size: 961 B

View File

Before

Width:  |  Height:  |  Size: 820 B

After

Width:  |  Height:  |  Size: 820 B

View File

Before

Width:  |  Height:  |  Size: 712 B

After

Width:  |  Height:  |  Size: 712 B

View File

Before

Width:  |  Height:  |  Size: 793 B

After

Width:  |  Height:  |  Size: 793 B

View File

Before

Width:  |  Height:  |  Size: 739 B

After

Width:  |  Height:  |  Size: 739 B

View File

Before

Width:  |  Height:  |  Size: 506 B

After

Width:  |  Height:  |  Size: 506 B

View File

Before

Width:  |  Height:  |  Size: 773 B

After

Width:  |  Height:  |  Size: 773 B

View File

Before

Width:  |  Height:  |  Size: 887 B

After

Width:  |  Height:  |  Size: 887 B

View File

Before

Width:  |  Height:  |  Size: 766 B

After

Width:  |  Height:  |  Size: 766 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 904 B

After

Width:  |  Height:  |  Size: 935 B

View File

@ -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 $^ >$@

View File

@ -1087,7 +1087,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;

View File

@ -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

View File

@ -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);

View File

@ -470,32 +470,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)

View File

@ -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 u32 gBattleTerrainPalette_TallGrass[];
extern const u32 gBattleTerrainTiles_LongGrass[];
extern const u32 gBattleTerrainTilemap_LongGrass[];
extern const u32 gBattleTerrainAnimTiles_LongGrass[];
extern const u32 gBattleTerrainAnimTilemap_LongGrass[];
extern const u32 gBattleTerrainPalette_LongGrass[];
extern const u32 gBattleTerrainTiles_Sand[];
extern const u32 gBattleTerrainTilemap_Sand[];
extern const u32 gBattleTerrainAnimTiles_Sand[];
extern const u32 gBattleTerrainAnimTilemap_Sand[];
extern const u32 gBattleTerrainPalette_Sand[];
extern const u32 gBattleTerrainTiles_Underwater[];
extern const u32 gBattleTerrainTilemap_Underwater[];
extern const u32 gBattleTerrainAnimTiles_Underwater[];
extern const u32 gBattleTerrainAnimTilemap_Underwater[];
extern const u32 gBattleTerrainPalette_Underwater[];
extern const u32 gBattleTerrainTiles_Water[];
extern const u32 gBattleTerrainTilemap_Water[];
extern const u32 gBattleTerrainAnimTiles_Water[];
extern const u32 gBattleTerrainAnimTilemap_Water[];
extern const u32 gBattleTerrainPalette_Water[];
extern const u32 gBattleTerrainTiles_PondWater[];
extern const u32 gBattleTerrainTilemap_PondWater[];
extern const u32 gBattleTerrainAnimTiles_PondWater[];
extern const u32 gBattleTerrainAnimTilemap_PondWater[];
extern const u32 gBattleTerrainPalette_PondWater[];
extern const u32 gBattleTerrainTiles_Rock[];
extern const u32 gBattleTerrainTilemap_Rock[];
extern const u32 gBattleTerrainAnimTiles_Rock[];
extern const u32 gBattleTerrainAnimTilemap_Rock[];
extern const u32 gBattleTerrainPalette_Rock[];
extern const u32 gBattleTerrainTiles_Cave[];
extern const u32 gBattleTerrainTilemap_Cave[];
extern const u32 gBattleTerrainAnimTiles_Cave[];
extern const u32 gBattleTerrainAnimTilemap_Cave[];
extern const u32 gBattleTerrainPalette_Cave[];
extern const u32 gBattleTerrainTiles_Building[];
extern const u32 gBattleTerrainTilemap_Building[];
extern const u32 gBattleTerrainAnimTiles_Building[];
extern const u32 gBattleTerrainAnimTilemap_Building[];
extern const u32 gBattleTerrainPalette_Building[];
extern const u32 gBattleTerrainPalette_Plain[];
extern const u32 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 u32 gBattleTerrainPalette_Rayquaza[];
extern const u32 gBattleTerrainPalette_Kyogre[];
extern const u32 gBattleTerrainPalette_Groudon[];
extern const u32 gBattleTerrainPalette_BuildingGym[];
extern const u32 gBattleTerrainPalette_BuildingLeader[];
extern const u32 gBattleTerrainPalette_StadiumAqua[];
extern const u32 gBattleTerrainPalette_StadiumMagma[];
extern const u32 gBattleTerrainPalette_StadiumSidney[];
extern const u32 gBattleTerrainPalette_StadiumPhoebe[];
extern const u32 gBattleTerrainPalette_StadiumGlacia[];
extern const u32 gBattleTerrainPalette_StadiumDrake[];
extern const u32 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 u32 gBattleEnvironmentPalette_TallGrass[];
extern const u32 gBattleEnvironmentTiles_LongGrass[];
extern const u32 gBattleEnvironmentTilemap_LongGrass[];
extern const u32 gBattleEnvironmentAnimTiles_LongGrass[];
extern const u32 gBattleEnvironmentAnimTilemap_LongGrass[];
extern const u32 gBattleEnvironmentPalette_LongGrass[];
extern const u32 gBattleEnvironmentTiles_Sand[];
extern const u32 gBattleEnvironmentTilemap_Sand[];
extern const u32 gBattleEnvironmentAnimTiles_Sand[];
extern const u32 gBattleEnvironmentAnimTilemap_Sand[];
extern const u32 gBattleEnvironmentPalette_Sand[];
extern const u32 gBattleEnvironmentTiles_Underwater[];
extern const u32 gBattleEnvironmentTilemap_Underwater[];
extern const u32 gBattleEnvironmentAnimTiles_Underwater[];
extern const u32 gBattleEnvironmentAnimTilemap_Underwater[];
extern const u32 gBattleEnvironmentPalette_Underwater[];
extern const u32 gBattleEnvironmentTiles_Water[];
extern const u32 gBattleEnvironmentTilemap_Water[];
extern const u32 gBattleEnvironmentAnimTiles_Water[];
extern const u32 gBattleEnvironmentAnimTilemap_Water[];
extern const u32 gBattleEnvironmentPalette_Water[];
extern const u32 gBattleEnvironmentTiles_PondWater[];
extern const u32 gBattleEnvironmentTilemap_PondWater[];
extern const u32 gBattleEnvironmentAnimTiles_PondWater[];
extern const u32 gBattleEnvironmentAnimTilemap_PondWater[];
extern const u32 gBattleEnvironmentPalette_PondWater[];
extern const u32 gBattleEnvironmentTiles_Rock[];
extern const u32 gBattleEnvironmentTilemap_Rock[];
extern const u32 gBattleEnvironmentAnimTiles_Rock[];
extern const u32 gBattleEnvironmentAnimTilemap_Rock[];
extern const u32 gBattleEnvironmentPalette_Rock[];
extern const u32 gBattleEnvironmentTiles_Cave[];
extern const u32 gBattleEnvironmentTilemap_Cave[];
extern const u32 gBattleEnvironmentAnimTiles_Cave[];
extern const u32 gBattleEnvironmentAnimTilemap_Cave[];
extern const u32 gBattleEnvironmentPalette_Cave[];
extern const u32 gBattleEnvironmentTiles_Building[];
extern const u32 gBattleEnvironmentTilemap_Building[];
extern const u32 gBattleEnvironmentAnimTiles_Building[];
extern const u32 gBattleEnvironmentAnimTilemap_Building[];
extern const u32 gBattleEnvironmentPalette_Building[];
extern const u32 gBattleEnvironmentPalette_Plain[];
extern const u32 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 u32 gBattleEnvironmentPalette_Rayquaza[];
extern const u32 gBattleEnvironmentPalette_Kyogre[];
extern const u32 gBattleEnvironmentPalette_Groudon[];
extern const u32 gBattleEnvironmentPalette_BuildingGym[];
extern const u32 gBattleEnvironmentPalette_BuildingLeader[];
extern const u32 gBattleEnvironmentPalette_StadiumAqua[];
extern const u32 gBattleEnvironmentPalette_StadiumMagma[];
extern const u32 gBattleEnvironmentPalette_StadiumSidney[];
extern const u32 gBattleEnvironmentPalette_StadiumPhoebe[];
extern const u32 gBattleEnvironmentPalette_StadiumGlacia[];
extern const u32 gBattleEnvironmentPalette_StadiumDrake[];
extern const u32 gBattleEnvironmentPalette_StadiumWallace[];
// Pokédex
extern const u32 gPokedexInterface_Gfx[];

View File

@ -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];

View File

@ -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)
{

View File

@ -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);
}

View File

@ -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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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)));
LoadCompressedPalette(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))
{
LoadCompressedPalette(gBattleTerrainPalette_Frontier, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
LoadCompressedPalette(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)
LoadCompressedPalette(gBattleTerrainPalette_Groudon, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
LoadCompressedPalette(gBattleEnvironmentPalette_Groudon, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
else
LoadCompressedPalette(gBattleTerrainPalette_Kyogre, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
LoadCompressedPalette(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)
{
LoadCompressedPalette(gBattleTerrainPalette_BuildingLeader, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
LoadCompressedPalette(gBattleEnvironmentPalette_BuildingLeader, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
break;
}
else if (trainerClass == TRAINER_CLASS_CHAMPION)
{
LoadCompressedPalette(gBattleTerrainPalette_StadiumWallace, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
LoadCompressedPalette(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:
LoadCompressedPalette(sBattleTerrainTable[gBattleTerrain].palette, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
LoadCompressedPalette(sBattleEnvironmentTable[gBattleEnvironment].palette, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
break;
case MAP_BATTLE_SCENE_GYM:
LoadCompressedPalette(gBattleTerrainPalette_BuildingGym, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
LoadCompressedPalette(gBattleEnvironmentPalette_BuildingGym, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
break;
case MAP_BATTLE_SCENE_MAGMA:
LoadCompressedPalette(gBattleTerrainPalette_StadiumMagma, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
LoadCompressedPalette(gBattleEnvironmentPalette_StadiumMagma, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
break;
case MAP_BATTLE_SCENE_AQUA:
LoadCompressedPalette(gBattleTerrainPalette_StadiumAqua, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
LoadCompressedPalette(gBattleEnvironmentPalette_StadiumAqua, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
break;
case MAP_BATTLE_SCENE_SIDNEY:
LoadCompressedPalette(gBattleTerrainPalette_StadiumSidney, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
LoadCompressedPalette(gBattleEnvironmentPalette_StadiumSidney, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
break;
case MAP_BATTLE_SCENE_PHOEBE:
LoadCompressedPalette(gBattleTerrainPalette_StadiumPhoebe, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
LoadCompressedPalette(gBattleEnvironmentPalette_StadiumPhoebe, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
break;
case MAP_BATTLE_SCENE_GLACIA:
LoadCompressedPalette(gBattleTerrainPalette_StadiumGlacia, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
LoadCompressedPalette(gBattleEnvironmentPalette_StadiumGlacia, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
break;
case MAP_BATTLE_SCENE_DRAKE:
LoadCompressedPalette(gBattleTerrainPalette_StadiumDrake, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
LoadCompressedPalette(gBattleEnvironmentPalette_StadiumDrake, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
break;
case MAP_BATTLE_SCENE_FRONTIER:
LoadCompressedPalette(gBattleTerrainPalette_Frontier, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
LoadCompressedPalette(gBattleEnvironmentPalette_Frontier, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
break;
}
}

View File

@ -1415,10 +1415,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);
}

View File

@ -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)

View File

@ -143,7 +143,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;
@ -505,10 +505,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
@ -3423,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;

View File

@ -551,7 +551,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);
@ -582,7 +582,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);
@ -810,7 +810,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
@ -841,7 +841,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
@ -972,76 +972,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
@ -1082,30 +1082,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)
@ -4065,18 +4065,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)
@ -4084,37 +4084,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:
@ -14833,7 +14833,7 @@ static void Cmd_setcharge(void)
}
// Nature Power
static void Cmd_callterrainattack(void)
static void Cmd_callenvironmentattack(void)
{
CMD_ARGS();
@ -14846,7 +14846,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)
@ -14855,7 +14855,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)
@ -15739,39 +15739,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;
}

View File

@ -605,7 +605,7 @@ static void CB2_EndScriptedWildBattle(void)
}
}
u8 BattleSetup_GetTerrainId(void)
u8 BattleSetup_GetEnvironmentId(void)
{
u16 tileBehavior;
s16 x, y;
@ -618,11 +618,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)
{
@ -632,41 +632,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)

View File

@ -0,0 +1,88 @@
const u32 gBattleEnvironmentTiles_TallGrass[] = INCBIN_U32("graphics/battle_environment/tall_grass/tiles.4bpp.lz");
const u32 gBattleEnvironmentPalette_TallGrass[] = INCBIN_U32("graphics/battle_environment/tall_grass/palette.gbapal.lz");
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 u32 gBattleEnvironmentPalette_LongGrass[] = INCBIN_U32("graphics/battle_environment/long_grass/palette.gbapal.lz");
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 u32 gBattleEnvironmentPalette_Sand[] = INCBIN_U32("graphics/battle_environment/sand/palette.gbapal.lz");
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 u32 gBattleEnvironmentPalette_Underwater[] = INCBIN_U32("graphics/battle_environment/underwater/palette.gbapal.lz");
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 u32 gBattleEnvironmentPalette_Water[] = INCBIN_U32("graphics/battle_environment/water/palette.gbapal.lz");
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 u32 gBattleEnvironmentPalette_PondWater[] = INCBIN_U32("graphics/battle_environment/pond_water/palette.gbapal.lz");
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 u32 gBattleEnvironmentPalette_Rock[] = INCBIN_U32("graphics/battle_environment/rock/palette.gbapal.lz");
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 u32 gBattleEnvironmentPalette_Cave[] = INCBIN_U32("graphics/battle_environment/cave/palette.gbapal.lz");
const u32 gBattleEnvironmentTilemap_Cave[] = INCBIN_U32("graphics/battle_environment/cave/map.bin.lz");
const u32 gBattleEnvironmentPalette_Plain[] = INCBIN_U32("graphics/battle_environment/plain/palette.gbapal.lz");
const u32 gBattleEnvironmentTiles_Building[] = INCBIN_U32("graphics/battle_environment/building/tiles.4bpp.lz");
const u32 gBattleEnvironmentPalette_Frontier[] = INCBIN_U32("graphics/battle_environment/stadium/battle_frontier.gbapal.lz"); // 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 u32 gBattleEnvironmentPalette_Building[] = INCBIN_U32("graphics/battle_environment/building/palette.gbapal.lz");
const u32 gBattleEnvironmentPalette_Kyogre[] = INCBIN_U32("graphics/battle_environment/water/kyogre.gbapal.lz");
const u32 gBattleEnvironmentPalette_Groudon[] = INCBIN_U32("graphics/battle_environment/cave/groudon.gbapal.lz");
const u32 gBattleEnvironmentPalette_BuildingGym[] = INCBIN_U32("graphics/battle_environment/building/palette2.gbapal.lz");
const u32 gBattleEnvironmentPalette_BuildingLeader[] = INCBIN_U32("graphics/battle_environment/building/palette3.gbapal.lz");
const u32 gBattleEnvironmentPalette_StadiumAqua[] = INCBIN_U32("graphics/battle_environment/stadium/palette1.gbapal.lz");
const u32 gBattleEnvironmentPalette_StadiumMagma[] = INCBIN_U32("graphics/battle_environment/stadium/palette2.gbapal.lz");
const u32 gBattleEnvironmentPalette_StadiumSidney[] = INCBIN_U32("graphics/battle_environment/stadium/palette3.gbapal.lz");
const u32 gBattleEnvironmentPalette_StadiumPhoebe[] = INCBIN_U32("graphics/battle_environment/stadium/palette4.gbapal.lz");
const u32 gBattleEnvironmentPalette_StadiumGlacia[] = INCBIN_U32("graphics/battle_environment/stadium/palette5.gbapal.lz");
const u32 gBattleEnvironmentPalette_StadiumDrake[] = INCBIN_U32("graphics/battle_environment/stadium/palette6.gbapal.lz");
const u32 gBattleEnvironmentPalette_StadiumWallace[] = INCBIN_U32("graphics/battle_environment/stadium/palette7.gbapal.lz");
const u32 gBattleEnvironmentPalette_Rayquaza[] = INCBIN_U32("graphics/battle_environment/sky/palette.gbapal.lz");
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");

View File

@ -1,88 +0,0 @@
const u32 gBattleTerrainTiles_TallGrass[] = INCBIN_U32("graphics/battle_terrain/tall_grass/tiles.4bpp.lz");
const u32 gBattleTerrainPalette_TallGrass[] = INCBIN_U32("graphics/battle_terrain/tall_grass/palette.gbapal.lz");
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 u32 gBattleTerrainPalette_LongGrass[] = INCBIN_U32("graphics/battle_terrain/long_grass/palette.gbapal.lz");
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 u32 gBattleTerrainPalette_Sand[] = INCBIN_U32("graphics/battle_terrain/sand/palette.gbapal.lz");
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 u32 gBattleTerrainPalette_Underwater[] = INCBIN_U32("graphics/battle_terrain/underwater/palette.gbapal.lz");
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 u32 gBattleTerrainPalette_Water[] = INCBIN_U32("graphics/battle_terrain/water/palette.gbapal.lz");
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 u32 gBattleTerrainPalette_PondWater[] = INCBIN_U32("graphics/battle_terrain/pond_water/palette.gbapal.lz");
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 u32 gBattleTerrainPalette_Rock[] = INCBIN_U32("graphics/battle_terrain/rock/palette.gbapal.lz");
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 u32 gBattleTerrainPalette_Cave[] = INCBIN_U32("graphics/battle_terrain/cave/palette.gbapal.lz");
const u32 gBattleTerrainTilemap_Cave[] = INCBIN_U32("graphics/battle_terrain/cave/map.bin.lz");
const u32 gBattleTerrainPalette_Plain[] = INCBIN_U32("graphics/battle_terrain/plain/palette.gbapal.lz");
const u32 gBattleTerrainTiles_Building[] = INCBIN_U32("graphics/battle_terrain/building/tiles.4bpp.lz");
const u32 gBattleTerrainPalette_Frontier[] = INCBIN_U32("graphics/battle_terrain/stadium/battle_frontier.gbapal.lz"); // 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 u32 gBattleTerrainPalette_Building[] = INCBIN_U32("graphics/battle_terrain/building/palette.gbapal.lz");
const u32 gBattleTerrainPalette_Kyogre[] = INCBIN_U32("graphics/battle_terrain/water/kyogre.gbapal.lz");
const u32 gBattleTerrainPalette_Groudon[] = INCBIN_U32("graphics/battle_terrain/cave/groudon.gbapal.lz");
const u32 gBattleTerrainPalette_BuildingGym[] = INCBIN_U32("graphics/battle_terrain/building/palette2.gbapal.lz");
const u32 gBattleTerrainPalette_BuildingLeader[] = INCBIN_U32("graphics/battle_terrain/building/palette3.gbapal.lz");
const u32 gBattleTerrainPalette_StadiumAqua[] = INCBIN_U32("graphics/battle_terrain/stadium/palette1.gbapal.lz");
const u32 gBattleTerrainPalette_StadiumMagma[] = INCBIN_U32("graphics/battle_terrain/stadium/palette2.gbapal.lz");
const u32 gBattleTerrainPalette_StadiumSidney[] = INCBIN_U32("graphics/battle_terrain/stadium/palette3.gbapal.lz");
const u32 gBattleTerrainPalette_StadiumPhoebe[] = INCBIN_U32("graphics/battle_terrain/stadium/palette4.gbapal.lz");
const u32 gBattleTerrainPalette_StadiumGlacia[] = INCBIN_U32("graphics/battle_terrain/stadium/palette5.gbapal.lz");
const u32 gBattleTerrainPalette_StadiumDrake[] = INCBIN_U32("graphics/battle_terrain/stadium/palette6.gbapal.lz");
const u32 gBattleTerrainPalette_StadiumWallace[] = INCBIN_U32("graphics/battle_terrain/stadium/palette7.gbapal.lz");
const u32 gBattleTerrainPalette_Rayquaza[] = INCBIN_U32("graphics/battle_terrain/sky/palette.gbapal.lz");
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");

View File

@ -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

View File

@ -1612,7 +1612,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++)

View File

@ -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();

View File

@ -1303,7 +1303,7 @@ const u32 gBattleVSFrame_Pal[] = INCBIN_U32("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");

View File

@ -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)

View File

@ -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;

View File

@ -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:
LoadCompressedPalette(gBattleTerrainPalette_Frontier, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
LoadCompressedPalette(gBattleEnvironmentPalette_Frontier, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
sPokeblockFeed->loadGfxState = 0;
return TRUE;
}

View File

@ -6617,7 +6617,7 @@ u32 GetFormChangeTargetSpeciesBoxMon(struct BoxPokemon *boxMon, u16 method, u32
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:

View File

@ -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] =
{
@ -923,80 +923,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)));
LoadCompressedPalette(sBattleTerrainTable[battleTerrain].palette, 0x20, 0x60);
LZDecompressVram(sBattleEnvironmentTable[battleEnvironment].tileset, (void*)(BG_CHAR_ADDR(2)));
LZDecompressVram(sBattleEnvironmentTable[battleEnvironment].tilemap, (void*)(BG_SCREEN_ADDR(26)));
LoadCompressedPalette(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)));
LoadCompressedPalette(gBattleTerrainPalette_BuildingGym, 0x20, 0x60);
LZDecompressVram(gBattleEnvironmentTiles_Building, (void*)(BG_CHAR_ADDR(2)));
LZDecompressVram(gBattleEnvironmentTilemap_Building, (void*)(BG_SCREEN_ADDR(26)));
LoadCompressedPalette(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)));
LoadCompressedPalette(gBattleTerrainPalette_StadiumMagma, 0x20, 0x60);
LZDecompressVram(gBattleEnvironmentTiles_Stadium, (void*)(BG_CHAR_ADDR(2)));
LZDecompressVram(gBattleEnvironmentTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26)));
LoadCompressedPalette(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)));
LoadCompressedPalette(gBattleTerrainPalette_StadiumAqua, 0x20, 0x60);
LZDecompressVram(gBattleEnvironmentTiles_Stadium, (void*)(BG_CHAR_ADDR(2)));
LZDecompressVram(gBattleEnvironmentTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26)));
LoadCompressedPalette(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)));
LoadCompressedPalette(gBattleTerrainPalette_StadiumSidney, 0x20, 0x60);
LZDecompressVram(gBattleEnvironmentTiles_Stadium, (void*)(BG_CHAR_ADDR(2)));
LZDecompressVram(gBattleEnvironmentTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26)));
LoadCompressedPalette(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)));
LoadCompressedPalette(gBattleTerrainPalette_StadiumPhoebe, 0x20, 0x60);
LZDecompressVram(gBattleEnvironmentTiles_Stadium, (void*)(BG_CHAR_ADDR(2)));
LZDecompressVram(gBattleEnvironmentTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26)));
LoadCompressedPalette(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)));
LoadCompressedPalette(gBattleTerrainPalette_StadiumGlacia, 0x20, 0x60);
LZDecompressVram(gBattleEnvironmentTiles_Stadium, (void*)(BG_CHAR_ADDR(2)));
LZDecompressVram(gBattleEnvironmentTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26)));
LoadCompressedPalette(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)));
LoadCompressedPalette(gBattleTerrainPalette_StadiumDrake, 0x20, 0x60);
LZDecompressVram(gBattleEnvironmentTiles_Stadium, (void*)(BG_CHAR_ADDR(2)));
LZDecompressVram(gBattleEnvironmentTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26)));
LoadCompressedPalette(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)));
LoadCompressedPalette(gBattleTerrainPalette_Frontier, 0x20, 0x60);
LZDecompressVram(gBattleEnvironmentTiles_Building, (void*)(BG_CHAR_ADDR(2)));
LZDecompressVram(gBattleEnvironmentTilemap_Building, (void*)(BG_SCREEN_ADDR(26)));
LoadCompressedPalette(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)));
LoadCompressedPalette(gBattleTerrainPalette_BuildingLeader, 0x20, 0x60);
LZDecompressVram(gBattleEnvironmentTiles_Building, (void*)(BG_CHAR_ADDR(2)));
LZDecompressVram(gBattleEnvironmentTilemap_Building, (void*)(BG_SCREEN_ADDR(26)));
LoadCompressedPalette(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)));
LoadCompressedPalette(gBattleTerrainPalette_StadiumWallace, 0x20, 0x60);
LZDecompressVram(gBattleEnvironmentTiles_Stadium, (void*)(BG_CHAR_ADDR(2)));
LZDecompressVram(gBattleEnvironmentTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26)));
LoadCompressedPalette(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)));
LoadCompressedPalette(gBattleTerrainPalette_Groudon, 0x20, 0x60);
LZDecompressVram(gBattleEnvironmentTiles_Cave, (void*)(BG_CHAR_ADDR(2)));
LZDecompressVram(gBattleEnvironmentTilemap_Cave, (void*)(BG_SCREEN_ADDR(26)));
LoadCompressedPalette(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)));
LoadCompressedPalette(gBattleTerrainPalette_Kyogre, 0x20, 0x60);
LZDecompressVram(gBattleEnvironmentTiles_Water, (void*)(BG_CHAR_ADDR(2)));
LZDecompressVram(gBattleEnvironmentTilemap_Water, (void*)(BG_SCREEN_ADDR(26)));
LoadCompressedPalette(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)));
LoadCompressedPalette(gBattleTerrainPalette_Rayquaza, 0x20, 0x60);
LZDecompressVram(gBattleEnvironmentTiles_Rayquaza, (void*)(BG_CHAR_ADDR(2)));
LZDecompressVram(gBattleEnvironmentTilemap_Rayquaza, (void*)(BG_SCREEN_ADDR(26)));
LoadCompressedPalette(gBattleEnvironmentPalette_Rayquaza, 0x20, 0x60);
break;
}
}
@ -1020,14 +1020,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;
@ -1040,7 +1040,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)
@ -1048,7 +1048,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;
@ -1246,7 +1246,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;