Pret merge 2025-04-29 (#6722)
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
Before Width: | Height: | Size: 308 B After Width: | Height: | Size: 308 B |
|
Before Width: | Height: | Size: 709 B After Width: | Height: | Size: 709 B |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 864 B After Width: | Height: | Size: 864 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 900 B After Width: | Height: | Size: 900 B |
|
Before Width: | Height: | Size: 592 B After Width: | Height: | Size: 592 B |
|
Before Width: | Height: | Size: 732 B After Width: | Height: | Size: 732 B |
|
Before Width: | Height: | Size: 760 B After Width: | Height: | Size: 760 B |
|
Before Width: | Height: | Size: 725 B After Width: | Height: | Size: 725 B |
|
Before Width: | Height: | Size: 644 B After Width: | Height: | Size: 644 B |
|
Before Width: | Height: | Size: 805 B After Width: | Height: | Size: 805 B |
|
Before Width: | Height: | Size: 961 B After Width: | Height: | Size: 961 B |
|
Before Width: | Height: | Size: 820 B After Width: | Height: | Size: 820 B |
|
Before Width: | Height: | Size: 712 B After Width: | Height: | Size: 712 B |
|
Before Width: | Height: | Size: 793 B After Width: | Height: | Size: 793 B |
|
Before Width: | Height: | Size: 739 B After Width: | Height: | Size: 739 B |
|
Before Width: | Height: | Size: 506 B After Width: | Height: | Size: 506 B |
|
Before Width: | Height: | Size: 773 B After Width: | Height: | Size: 773 B |
|
Before Width: | Height: | Size: 887 B After Width: | Height: | Size: 887 B |
|
Before Width: | Height: | Size: 766 B After Width: | Height: | Size: 766 B |
|
Before Width: | Height: | Size: 904 B After Width: | Height: | Size: 935 B |
@ -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 $^ >$@
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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[];
|
||||
|
||||
@ -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];
|
||||
|
||||
|
||||
@ -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)
|
||||
{
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
338
src/battle_bg.c
@ -610,96 +610,96 @@ const struct WindowTemplate * const gBattleWindowTemplates[] =
|
||||
[B_WIN_TYPE_ARENA] = sBattleArenaWindowTemplates,
|
||||
};
|
||||
|
||||
const struct BattleBackground sBattleTerrainTable[] =
|
||||
const struct BattleBackground sBattleEnvironmentTable[] =
|
||||
{
|
||||
[BATTLE_TERRAIN_GRASS] =
|
||||
[BATTLE_ENVIRONMENT_GRASS] =
|
||||
{
|
||||
.tileset = gBattleTerrainTiles_TallGrass,
|
||||
.tilemap = gBattleTerrainTilemap_TallGrass,
|
||||
.entryTileset = gBattleTerrainAnimTiles_TallGrass,
|
||||
.entryTilemap = gBattleTerrainAnimTilemap_TallGrass,
|
||||
.palette = gBattleTerrainPalette_TallGrass,
|
||||
.tileset = gBattleEnvironmentTiles_TallGrass,
|
||||
.tilemap = gBattleEnvironmentTilemap_TallGrass,
|
||||
.entryTileset = gBattleEnvironmentAnimTiles_TallGrass,
|
||||
.entryTilemap = gBattleEnvironmentAnimTilemap_TallGrass,
|
||||
.palette = gBattleEnvironmentPalette_TallGrass,
|
||||
},
|
||||
|
||||
[BATTLE_TERRAIN_LONG_GRASS] =
|
||||
[BATTLE_ENVIRONMENT_LONG_GRASS] =
|
||||
{
|
||||
.tileset = gBattleTerrainTiles_LongGrass,
|
||||
.tilemap = gBattleTerrainTilemap_LongGrass,
|
||||
.entryTileset = gBattleTerrainAnimTiles_LongGrass,
|
||||
.entryTilemap = gBattleTerrainAnimTilemap_LongGrass,
|
||||
.palette = gBattleTerrainPalette_LongGrass,
|
||||
.tileset = gBattleEnvironmentTiles_LongGrass,
|
||||
.tilemap = gBattleEnvironmentTilemap_LongGrass,
|
||||
.entryTileset = gBattleEnvironmentAnimTiles_LongGrass,
|
||||
.entryTilemap = gBattleEnvironmentAnimTilemap_LongGrass,
|
||||
.palette = gBattleEnvironmentPalette_LongGrass,
|
||||
},
|
||||
|
||||
[BATTLE_TERRAIN_SAND] =
|
||||
[BATTLE_ENVIRONMENT_SAND] =
|
||||
{
|
||||
.tileset = gBattleTerrainTiles_Sand,
|
||||
.tilemap = gBattleTerrainTilemap_Sand,
|
||||
.entryTileset = gBattleTerrainAnimTiles_Sand,
|
||||
.entryTilemap = gBattleTerrainAnimTilemap_Sand,
|
||||
.palette = gBattleTerrainPalette_Sand,
|
||||
.tileset = gBattleEnvironmentTiles_Sand,
|
||||
.tilemap = gBattleEnvironmentTilemap_Sand,
|
||||
.entryTileset = gBattleEnvironmentAnimTiles_Sand,
|
||||
.entryTilemap = gBattleEnvironmentAnimTilemap_Sand,
|
||||
.palette = gBattleEnvironmentPalette_Sand,
|
||||
},
|
||||
|
||||
[BATTLE_TERRAIN_UNDERWATER] =
|
||||
[BATTLE_ENVIRONMENT_UNDERWATER] =
|
||||
{
|
||||
.tileset = gBattleTerrainTiles_Underwater,
|
||||
.tilemap = gBattleTerrainTilemap_Underwater,
|
||||
.entryTileset = gBattleTerrainAnimTiles_Underwater,
|
||||
.entryTilemap = gBattleTerrainAnimTilemap_Underwater,
|
||||
.palette = gBattleTerrainPalette_Underwater,
|
||||
.tileset = gBattleEnvironmentTiles_Underwater,
|
||||
.tilemap = gBattleEnvironmentTilemap_Underwater,
|
||||
.entryTileset = gBattleEnvironmentAnimTiles_Underwater,
|
||||
.entryTilemap = gBattleEnvironmentAnimTilemap_Underwater,
|
||||
.palette = gBattleEnvironmentPalette_Underwater,
|
||||
},
|
||||
|
||||
[BATTLE_TERRAIN_WATER] =
|
||||
[BATTLE_ENVIRONMENT_WATER] =
|
||||
{
|
||||
.tileset = gBattleTerrainTiles_Water,
|
||||
.tilemap = gBattleTerrainTilemap_Water,
|
||||
.entryTileset = gBattleTerrainAnimTiles_Water,
|
||||
.entryTilemap = gBattleTerrainAnimTilemap_Water,
|
||||
.palette = gBattleTerrainPalette_Water,
|
||||
.tileset = gBattleEnvironmentTiles_Water,
|
||||
.tilemap = gBattleEnvironmentTilemap_Water,
|
||||
.entryTileset = gBattleEnvironmentAnimTiles_Water,
|
||||
.entryTilemap = gBattleEnvironmentAnimTilemap_Water,
|
||||
.palette = gBattleEnvironmentPalette_Water,
|
||||
},
|
||||
|
||||
[BATTLE_TERRAIN_POND] =
|
||||
[BATTLE_ENVIRONMENT_POND] =
|
||||
{
|
||||
.tileset = gBattleTerrainTiles_PondWater,
|
||||
.tilemap = gBattleTerrainTilemap_PondWater,
|
||||
.entryTileset = gBattleTerrainAnimTiles_PondWater,
|
||||
.entryTilemap = gBattleTerrainAnimTilemap_PondWater,
|
||||
.palette = gBattleTerrainPalette_PondWater,
|
||||
.tileset = gBattleEnvironmentTiles_PondWater,
|
||||
.tilemap = gBattleEnvironmentTilemap_PondWater,
|
||||
.entryTileset = gBattleEnvironmentAnimTiles_PondWater,
|
||||
.entryTilemap = gBattleEnvironmentAnimTilemap_PondWater,
|
||||
.palette = gBattleEnvironmentPalette_PondWater,
|
||||
},
|
||||
|
||||
[BATTLE_TERRAIN_MOUNTAIN] =
|
||||
[BATTLE_ENVIRONMENT_MOUNTAIN] =
|
||||
{
|
||||
.tileset = gBattleTerrainTiles_Rock,
|
||||
.tilemap = gBattleTerrainTilemap_Rock,
|
||||
.entryTileset = gBattleTerrainAnimTiles_Rock,
|
||||
.entryTilemap = gBattleTerrainAnimTilemap_Rock,
|
||||
.palette = gBattleTerrainPalette_Rock,
|
||||
.tileset = gBattleEnvironmentTiles_Rock,
|
||||
.tilemap = gBattleEnvironmentTilemap_Rock,
|
||||
.entryTileset = gBattleEnvironmentAnimTiles_Rock,
|
||||
.entryTilemap = gBattleEnvironmentAnimTilemap_Rock,
|
||||
.palette = gBattleEnvironmentPalette_Rock,
|
||||
},
|
||||
|
||||
[BATTLE_TERRAIN_CAVE] =
|
||||
[BATTLE_ENVIRONMENT_CAVE] =
|
||||
{
|
||||
.tileset = gBattleTerrainTiles_Cave,
|
||||
.tilemap = gBattleTerrainTilemap_Cave,
|
||||
.entryTileset = gBattleTerrainAnimTiles_Cave,
|
||||
.entryTilemap = gBattleTerrainAnimTilemap_Cave,
|
||||
.palette = gBattleTerrainPalette_Cave,
|
||||
.tileset = gBattleEnvironmentTiles_Cave,
|
||||
.tilemap = gBattleEnvironmentTilemap_Cave,
|
||||
.entryTileset = gBattleEnvironmentAnimTiles_Cave,
|
||||
.entryTilemap = gBattleEnvironmentAnimTilemap_Cave,
|
||||
.palette = gBattleEnvironmentPalette_Cave,
|
||||
},
|
||||
|
||||
[BATTLE_TERRAIN_BUILDING] =
|
||||
[BATTLE_ENVIRONMENT_BUILDING] =
|
||||
{
|
||||
.tileset = gBattleTerrainTiles_Building,
|
||||
.tilemap = gBattleTerrainTilemap_Building,
|
||||
.entryTileset = gBattleTerrainAnimTiles_Building,
|
||||
.entryTilemap = gBattleTerrainAnimTilemap_Building,
|
||||
.palette = gBattleTerrainPalette_Building,
|
||||
.tileset = gBattleEnvironmentTiles_Building,
|
||||
.tilemap = gBattleEnvironmentTilemap_Building,
|
||||
.entryTileset = gBattleEnvironmentAnimTiles_Building,
|
||||
.entryTilemap = gBattleEnvironmentAnimTilemap_Building,
|
||||
.palette = gBattleEnvironmentPalette_Building,
|
||||
},
|
||||
|
||||
[BATTLE_TERRAIN_PLAIN] =
|
||||
[BATTLE_ENVIRONMENT_PLAIN] =
|
||||
{
|
||||
.tileset = gBattleTerrainTiles_Building,
|
||||
.tilemap = gBattleTerrainTilemap_Building,
|
||||
.entryTileset = gBattleTerrainAnimTiles_Building,
|
||||
.entryTilemap = gBattleTerrainAnimTilemap_Building,
|
||||
.palette = gBattleTerrainPalette_Plain,
|
||||
.tileset = gBattleEnvironmentTiles_Building,
|
||||
.tilemap = gBattleEnvironmentTilemap_Building,
|
||||
.entryTileset = gBattleEnvironmentAnimTiles_Building,
|
||||
.entryTilemap = gBattleEnvironmentAnimTilemap_Building,
|
||||
.palette = gBattleEnvironmentPalette_Plain,
|
||||
},
|
||||
};
|
||||
|
||||
@ -754,33 +754,33 @@ void DrawMainBattleBackground(void)
|
||||
{
|
||||
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_RECORDED_LINK))
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainTiles_Building, (void *)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(BG_SCREEN_ADDR(26)));
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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)
|
||||
|
||||
88
src/data/graphics/battle_environment.h
Normal 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");
|
||||
@ -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");
|
||||
@ -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
|
||||
|
||||
@ -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++)
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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");
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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;
|
||||
|
||||