Sync battle anim - normal
This commit is contained in:
+43
-43
@@ -1299,7 +1299,7 @@ Move_REVERSAL::
|
|||||||
createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 3, RGB_WHITE, 8, 0, 0
|
createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 3, RGB_WHITE, 8, 0, 0
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
delay 30
|
delay 30
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 31, 3, 2, 0, 10, RGB_WHITE
|
createvisualtask AnimTask_BlendColorCycle, 2, 31, 3, 2, 0, 10, RGB_WHITE
|
||||||
delay 10
|
delay 10
|
||||||
playsewithpan SE_M_REVERSAL, 192
|
playsewithpan SE_M_REVERSAL, 192
|
||||||
createsprite gReversalOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 0
|
createsprite gReversalOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 0
|
||||||
@@ -1873,7 +1873,7 @@ Move_SAFEGUARD::
|
|||||||
createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2,
|
createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2,
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
playsewithpan SE_SHINY, 192
|
playsewithpan SE_SHINY, 192
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 10, 0, 2, 0, 10, RGB_WHITE
|
createvisualtask AnimTask_BlendColorCycle, 2, 10, 0, 2, 0, 10, RGB_WHITE
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
clearmonbg ANIM_ATK_PARTNER
|
clearmonbg ANIM_ATK_PARTNER
|
||||||
blendoff
|
blendoff
|
||||||
@@ -1965,7 +1965,7 @@ Move_PAY_DAY::
|
|||||||
Move_OUTRAGE::
|
Move_OUTRAGE::
|
||||||
loadspritegfx ANIM_TAG_SMALL_EMBER
|
loadspritegfx ANIM_TAG_SMALL_EMBER
|
||||||
loopsewithpan SE_M_DRAGON_RAGE, 192, 8, 3
|
loopsewithpan SE_M_DRAGON_RAGE, 192, 8, 3
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 7, 2, 5, 3, 8, 430
|
createvisualtask AnimTask_BlendColorCycle, 2, 7, 2, 5, 3, 8, 430
|
||||||
createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 12, 6, 5, 4
|
createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 12, 6, 5, 4
|
||||||
delay 0
|
delay 0
|
||||||
createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 1280, 0, 3
|
createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 1280, 0, 3
|
||||||
@@ -2012,25 +2012,25 @@ Move_SPARK::
|
|||||||
loadspritegfx ANIM_TAG_IMPACT
|
loadspritegfx ANIM_TAG_IMPACT
|
||||||
loadspritegfx ANIM_TAG_SPARK_2
|
loadspritegfx ANIM_TAG_SPARK_2
|
||||||
delay 0
|
delay 0
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 3, -31, 1, 5, 5, 23551
|
createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 5, 5, 23551
|
||||||
playsewithpan SE_M_THUNDERBOLT2, 192
|
playsewithpan SE_M_THUNDERBOLT2, 192
|
||||||
createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 32, 24, 190, 12, 0, 1, 0
|
createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 32, 24, 190, 12, 0, 1, 0
|
||||||
delay 0
|
delay 0
|
||||||
createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 80, 24, 22, 12, 0, 1, 0
|
createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 80, 24, 22, 12, 0, 1, 0
|
||||||
createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 156, 24, 121, 13, 0, 1, 1
|
createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 156, 24, 121, 13, 0, 1, 1
|
||||||
delay 0
|
delay 0
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 3, -31, 1, 0, 0, 23551
|
createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 0, 0, 23551
|
||||||
delay 10
|
delay 10
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 3, -31, 1, 5, 5, 23551
|
createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 5, 5, 23551
|
||||||
playsewithpan SE_M_THUNDERBOLT2, 192
|
playsewithpan SE_M_THUNDERBOLT2, 192
|
||||||
createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 100, 24, 60, 10, 0, 1, 0
|
createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 100, 24, 60, 10, 0, 1, 0
|
||||||
createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 170, 24, 42, 11, 0, 1, 1
|
createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 170, 24, 42, 11, 0, 1, 1
|
||||||
delay 0
|
delay 0
|
||||||
createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 238, 24, 165, 10, 0, 1, 1
|
createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 238, 24, 165, 10, 0, 1, 1
|
||||||
delay 0
|
delay 0
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 3, -31, 1, 0, 0, 23551
|
createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 0, 0, 23551
|
||||||
delay 20
|
delay 20
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 3, -31, 1, 7, 7, 23551
|
createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 7, 7, 23551
|
||||||
playsewithpan SE_M_THUNDERBOLT2, 192
|
playsewithpan SE_M_THUNDERBOLT2, 192
|
||||||
createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 32, 12, 0, 20, 0, 0
|
createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 32, 12, 0, 20, 0, 0
|
||||||
createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 32, 12, 64, 20, 1, 0
|
createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 32, 12, 64, 20, 1, 0
|
||||||
@@ -2042,14 +2042,14 @@ Move_SPARK::
|
|||||||
createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 16, 12, 224, 20, 2, 0
|
createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 16, 12, 224, 20, 2, 0
|
||||||
delay 4
|
delay 4
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 3, -31, 1, 0, 0, 23551
|
createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 0, 0, 23551
|
||||||
createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4
|
createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4
|
||||||
delay 4
|
delay 4
|
||||||
playsewithpan SE_M_HYPER_BEAM, 63
|
playsewithpan SE_M_HYPER_BEAM, 63
|
||||||
createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 2
|
createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 2
|
||||||
createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1
|
createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 4, -31, 2, 0, 6, 23551
|
createvisualtask AnimTask_BlendColorCycle, 2, 4, -31, 2, 0, 6, 23551
|
||||||
call ElectricityEffect
|
call ElectricityEffect
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
end
|
end
|
||||||
@@ -2080,7 +2080,7 @@ Move_ATTRACT::
|
|||||||
createsprite gRedHeartRisingSpriteTemplate, ANIM_ATTACKER, 40, 112, 256, 90
|
createsprite gRedHeartRisingSpriteTemplate, ANIM_ATTACKER, 40, 112, 256, 90
|
||||||
createsprite gRedHeartRisingSpriteTemplate, ANIM_ATTACKER, 40, 200, 272, 90
|
createsprite gRedHeartRisingSpriteTemplate, ANIM_ATTACKER, 40, 200, 272, 90
|
||||||
delay 75
|
delay 75
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 4, 4, 4, 0, 10, 28479
|
createvisualtask AnimTask_BlendColorCycle, 2, 4, 4, 4, 0, 10, 28479
|
||||||
end
|
end
|
||||||
|
|
||||||
Move_GROWTH::
|
Move_GROWTH::
|
||||||
@@ -2091,7 +2091,7 @@ Move_GROWTH::
|
|||||||
end
|
end
|
||||||
|
|
||||||
GrowthEffect::
|
GrowthEffect::
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 2, 0, 2, 0, 8, RGB_WHITE
|
createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 2, 0, 8, RGB_WHITE
|
||||||
playsewithpan SE_M_TAKE_DOWN, 192
|
playsewithpan SE_M_TAKE_DOWN, 192
|
||||||
createvisualtask AnimTask_ScaleMonAndRestore, 5, -3, -3, 16, 0, 0
|
createvisualtask AnimTask_ScaleMonAndRestore, 5, -3, -3, 16, 0, 0
|
||||||
return
|
return
|
||||||
@@ -3193,7 +3193,7 @@ Move_SPITE::
|
|||||||
playsewithpan SE_M_PSYBEAM, 192
|
playsewithpan SE_M_PSYBEAM, 192
|
||||||
waitbgfadein
|
waitbgfadein
|
||||||
monbg ANIM_DEF_PARTNER
|
monbg ANIM_DEF_PARTNER
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 2, 2, 6, 0, 8, RGB_WHITE
|
createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 6, 0, 8, RGB_WHITE
|
||||||
createvisualtask AnimTask_SpiteTargetShadow, 2
|
createvisualtask AnimTask_SpiteTargetShadow, 2
|
||||||
loopsewithpan SE_M_PSYBEAM, 63, 20, 3
|
loopsewithpan SE_M_PSYBEAM, 63, 20, 3
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
@@ -3280,7 +3280,7 @@ Move_ENDURE::
|
|||||||
playsewithpan SE_M_DRAGON_RAGE, 192
|
playsewithpan SE_M_DRAGON_RAGE, 192
|
||||||
call EndureEffect
|
call EndureEffect
|
||||||
delay 8
|
delay 8
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 2, 2, 2, 0, 11, 31
|
createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 11, 31
|
||||||
createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 32, 1
|
createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 32, 1
|
||||||
call EndureEffect
|
call EndureEffect
|
||||||
delay 8
|
delay 8
|
||||||
@@ -4722,7 +4722,7 @@ Move_MIND_READER::
|
|||||||
createsprite gWhiteHaloSpriteTemplate, ANIM_ATTACKER, 5,
|
createsprite gWhiteHaloSpriteTemplate, ANIM_ATTACKER, 5,
|
||||||
delay 40
|
delay 40
|
||||||
playsewithpan SE_M_LEER, 63
|
playsewithpan SE_M_LEER, 63
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 1, 1, 2, 0, 10, 0
|
createvisualtask AnimTask_BlendColorCycle, 2, 1, 1, 2, 0, 10, 0
|
||||||
call MindReaderEyeSpikeEffect
|
call MindReaderEyeSpikeEffect
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
clearmonbg 4
|
clearmonbg 4
|
||||||
@@ -4805,7 +4805,7 @@ Move_CONFUSION::
|
|||||||
call SetPsychicBackground
|
call SetPsychicBackground
|
||||||
setalpha 8, 8
|
setalpha 8, 8
|
||||||
createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 10, 1
|
createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 10, 1
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 2, 0, 2, 0, 8, RGB_WHITE
|
createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 2, 0, 8, RGB_WHITE
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
playsewithpan SE_M_SUPERSONIC, 63
|
playsewithpan SE_M_SUPERSONIC, 63
|
||||||
createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 15, 1
|
createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 15, 1
|
||||||
@@ -4822,7 +4822,7 @@ Move_PSYCHIC::
|
|||||||
call SetPsychicBackground
|
call SetPsychicBackground
|
||||||
setalpha 8, 8
|
setalpha 8, 8
|
||||||
createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 10, 1
|
createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 10, 1
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 2, 0, 2, 0, 8, 767
|
createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 2, 0, 8, 767
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
loopsewithpan SE_M_SUPERSONIC, 63, 10, 3
|
loopsewithpan SE_M_SUPERSONIC, 63, 10, 3
|
||||||
createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 15, 1
|
createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 15, 1
|
||||||
@@ -4848,7 +4848,7 @@ FutureSight::
|
|||||||
call SetPsychicBackground
|
call SetPsychicBackground
|
||||||
setalpha 8, 8
|
setalpha 8, 8
|
||||||
playsewithpan SE_M_SUPERSONIC, 192
|
playsewithpan SE_M_SUPERSONIC, 192
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 2, 0, 2, 0, 8, RGB_WHITE
|
createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 2, 0, 8, RGB_WHITE
|
||||||
createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, 0, 1
|
createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, 0, 1
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
clearmonbg ANIM_ATK_PARTNER
|
clearmonbg ANIM_ATK_PARTNER
|
||||||
@@ -5244,7 +5244,7 @@ Move_SMOG::
|
|||||||
call SmogCloud
|
call SmogCloud
|
||||||
delay 120
|
delay 120
|
||||||
loopsewithpan SE_M_TOXIC, 63, 18, 2
|
loopsewithpan SE_M_TOXIC, 63, 18, 2
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 4, 2, 2, 0, 12, 26650
|
createvisualtask AnimTask_BlendColorCycle, 2, 4, 2, 2, 0, 12, 26650
|
||||||
delay 10
|
delay 10
|
||||||
createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 15, 1
|
createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 15, 1
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
@@ -5552,7 +5552,7 @@ SolarBeamEnd::
|
|||||||
SolarBeamSetUp::
|
SolarBeamSetUp::
|
||||||
monbg ANIM_ATK_PARTNER
|
monbg ANIM_ATK_PARTNER
|
||||||
setalpha 12, 8
|
setalpha 12, 8
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 2, 1, 4, 0, 11, 12287
|
createvisualtask AnimTask_BlendColorCycle, 2, 2, 1, 4, 0, 11, 12287
|
||||||
playsewithpan SE_M_MEGA_KICK, 192
|
playsewithpan SE_M_MEGA_KICK, 192
|
||||||
call SolarBeamAbsorbEffect
|
call SolarBeamAbsorbEffect
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
@@ -6032,7 +6032,7 @@ Move_LEECH_LIFE::
|
|||||||
Move_SYNTHESIS::
|
Move_SYNTHESIS::
|
||||||
loadspritegfx ANIM_TAG_BLUE_STAR
|
loadspritegfx ANIM_TAG_BLUE_STAR
|
||||||
loadspritegfx ANIM_TAG_SPARKLE_2
|
loadspritegfx ANIM_TAG_SPARKLE_2
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 2, 2, 2, 0, 16, 19451
|
createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 16, 19451
|
||||||
playsewithpan SE_M_MEGA_KICK, 192
|
playsewithpan SE_M_MEGA_KICK, 192
|
||||||
call GrantingStarsEffect
|
call GrantingStarsEffect
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
@@ -6072,7 +6072,7 @@ Move_SLUDGE::
|
|||||||
createsprite gSludgeProjectileSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 0
|
createsprite gSludgeProjectileSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 0
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
createvisualtask AnimTask_ShakeMon, 5, 1, 3, 0, 5, 1
|
createvisualtask AnimTask_ShakeMon, 5, 1, 3, 0, 5, 1
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 4, 1, 2, 0, 12, 31774
|
createvisualtask AnimTask_BlendColorCycle, 2, 4, 1, 2, 0, 12, 31774
|
||||||
call PoisonBubblesEffect
|
call PoisonBubblesEffect
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
end
|
end
|
||||||
@@ -6090,7 +6090,7 @@ Move_SLUDGE_BOMB::
|
|||||||
call SludgeBombProjectile
|
call SludgeBombProjectile
|
||||||
call SludgeBombProjectile
|
call SludgeBombProjectile
|
||||||
createvisualtask AnimTask_ShakeMon2, 5, 1, 3, 0, 15, 1
|
createvisualtask AnimTask_ShakeMon2, 5, 1, 3, 0, 15, 1
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 4, 1, 2, 0, 12, 31774
|
createvisualtask AnimTask_BlendColorCycle, 2, 4, 1, 2, 0, 12, 31774
|
||||||
createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 42, 27, 20
|
createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 42, 27, 20
|
||||||
createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -27, 44, 20
|
createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -27, 44, 20
|
||||||
createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 39, -28, 20
|
createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 39, -28, 20
|
||||||
@@ -6135,7 +6135,7 @@ Move_ACID::
|
|||||||
delay 15
|
delay 15
|
||||||
createvisualtask AnimTask_ShakeMon2, 5, 1, 2, 0, 10, 1
|
createvisualtask AnimTask_ShakeMon2, 5, 1, 2, 0, 10, 1
|
||||||
createvisualtask AnimTask_ShakeMon2, 5, 3, 2, 0, 10, 1
|
createvisualtask AnimTask_ShakeMon2, 5, 3, 2, 0, 10, 1
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 20, 2, 2, 0, 12, 31774
|
createvisualtask AnimTask_BlendColorCycle, 2, 20, 2, 2, 0, 12, 31774
|
||||||
createsprite gAcidPoisonDropletSpriteTemplate, ANIM_TARGET, 2, 0, -22, 0, 15, 55
|
createsprite gAcidPoisonDropletSpriteTemplate, ANIM_TARGET, 2, 0, -22, 0, 15, 55
|
||||||
playsewithpan SE_M_BUBBLE, 63
|
playsewithpan SE_M_BUBBLE, 63
|
||||||
delay 10
|
delay 10
|
||||||
@@ -7053,7 +7053,7 @@ Move_MIST::
|
|||||||
call MistCloud
|
call MistCloud
|
||||||
call MistCloud
|
call MistCloud
|
||||||
delay 32
|
delay 32
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 10, 8, 2, 0, 14, RGB_WHITE
|
createvisualtask AnimTask_BlendColorCycle, 2, 10, 8, 2, 0, 14, RGB_WHITE
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
clearmonbg ANIM_ATK_PARTNER
|
clearmonbg ANIM_ATK_PARTNER
|
||||||
blendoff
|
blendoff
|
||||||
@@ -7224,7 +7224,7 @@ Move_POISON_GAS::
|
|||||||
createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0
|
createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0
|
||||||
delay 40
|
delay 40
|
||||||
loopsewithpan SE_M_MIST, 63, 28, 6
|
loopsewithpan SE_M_MIST, 63, 28, 6
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 4, 6, 2, 0, 12, 26650
|
createvisualtask AnimTask_BlendColorCycle, 2, 4, 6, 2, 0, 12, 26650
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
blendoff
|
blendoff
|
||||||
clearmonbg ANIM_DEF_PARTNER
|
clearmonbg ANIM_DEF_PARTNER
|
||||||
@@ -7259,7 +7259,7 @@ Move_PSYBEAM::
|
|||||||
call PsybeamRings
|
call PsybeamRings
|
||||||
call PsybeamRings
|
call PsybeamRings
|
||||||
createvisualtask AnimTask_SwayMon, 5, 0, 6, 2048, 4, 1
|
createvisualtask AnimTask_SwayMon, 5, 0, 6, 2048, 4, 1
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 4, 2, 2, 0, 12, 32351
|
createvisualtask AnimTask_BlendColorCycle, 2, 4, 2, 2, 0, 12, 32351
|
||||||
call PsybeamRings
|
call PsybeamRings
|
||||||
call PsybeamRings
|
call PsybeamRings
|
||||||
call PsybeamRings
|
call PsybeamRings
|
||||||
@@ -7285,7 +7285,7 @@ Move_HYPNOSIS::
|
|||||||
call HypnosisRings
|
call HypnosisRings
|
||||||
call HypnosisRings
|
call HypnosisRings
|
||||||
call HypnosisRings
|
call HypnosisRings
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 4, 2, 2, 0, 12, 32351
|
createvisualtask AnimTask_BlendColorCycle, 2, 4, 2, 2, 0, 12, 32351
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
delay 1
|
delay 1
|
||||||
call UnsetPsychicBg
|
call UnsetPsychicBg
|
||||||
@@ -7306,7 +7306,7 @@ Move_PSYWAVE::
|
|||||||
createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_TELEPORT, -64, 63, 2, 9, 0, 10
|
createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_TELEPORT, -64, 63, 2, 9, 0, 10
|
||||||
call PsywaveRings
|
call PsywaveRings
|
||||||
call PsywaveRings
|
call PsywaveRings
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 4, 1, 4, 0, 12, 32351
|
createvisualtask AnimTask_BlendColorCycle, 2, 4, 1, 4, 0, 12, 32351
|
||||||
call PsywaveRings
|
call PsywaveRings
|
||||||
call PsywaveRings
|
call PsywaveRings
|
||||||
call PsywaveRings
|
call PsywaveRings
|
||||||
@@ -7443,7 +7443,7 @@ Move_NIGHT_SHADE::
|
|||||||
createvisualtask AnimTask_NightShadeClone, 5, 85
|
createvisualtask AnimTask_NightShadeClone, 5, 85
|
||||||
delay 70
|
delay 70
|
||||||
createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 12, 1
|
createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 12, 1
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 4, 0, 2, 0, 13, 0
|
createvisualtask AnimTask_BlendColorCycle, 2, 4, 0, 2, 0, 13, 0
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
clearmonbg ANIM_ATTACKER
|
clearmonbg ANIM_ATTACKER
|
||||||
delay 1
|
delay 1
|
||||||
@@ -7505,7 +7505,7 @@ Move_FOCUS_ENERGY::
|
|||||||
playsewithpan SE_M_DRAGON_RAGE, 192
|
playsewithpan SE_M_DRAGON_RAGE, 192
|
||||||
call EndureEffect
|
call EndureEffect
|
||||||
delay 8
|
delay 8
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 2, 2, 2, 0, 11, RGB_WHITE
|
createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 11, RGB_WHITE
|
||||||
createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 32, 1
|
createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 32, 1
|
||||||
call EndureEffect
|
call EndureEffect
|
||||||
delay 8
|
delay 8
|
||||||
@@ -7519,7 +7519,7 @@ Move_BIDE::
|
|||||||
|
|
||||||
BattleAnimScript_Bide_Setup::
|
BattleAnimScript_Bide_Setup::
|
||||||
loopsewithpan SE_M_TAKE_DOWN, 192, 9, 2
|
loopsewithpan SE_M_TAKE_DOWN, 192, 9, 2
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 2, 2, 2, 0, 11, 31
|
createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 11, 31
|
||||||
createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 32, 1
|
createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 32, 1
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
end
|
end
|
||||||
@@ -7697,7 +7697,7 @@ Move_RECOVER::
|
|||||||
monbg ANIM_ATK_PARTNER
|
monbg ANIM_ATK_PARTNER
|
||||||
setalpha 12, 8
|
setalpha 12, 8
|
||||||
loopsewithpan SE_M_MEGA_KICK, 192, 13, 3
|
loopsewithpan SE_M_MEGA_KICK, 192, 13, 3
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 2, 0, 6, 0, 11, 12287
|
createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 6, 0, 11, 12287
|
||||||
call RecoverAbsorbEffect
|
call RecoverAbsorbEffect
|
||||||
call RecoverAbsorbEffect
|
call RecoverAbsorbEffect
|
||||||
call RecoverAbsorbEffect
|
call RecoverAbsorbEffect
|
||||||
@@ -7738,7 +7738,7 @@ Move_MIMIC::
|
|||||||
setarg 7, 65535
|
setarg 7, 65535
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
playsewithpan SE_M_TAKE_DOWN, 192
|
playsewithpan SE_M_TAKE_DOWN, 192
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 2, 0, 2, 0, 11, RGB_WHITE
|
createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 2, 0, 11, RGB_WHITE
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
clearmonbg_23 3
|
clearmonbg_23 3
|
||||||
blendoff
|
blendoff
|
||||||
@@ -7807,7 +7807,7 @@ CurseStats::
|
|||||||
CurseStats1::
|
CurseStats1::
|
||||||
playsewithpan SE_M_DRAGON_RAGE, 192
|
playsewithpan SE_M_DRAGON_RAGE, 192
|
||||||
createvisualtask AnimTask_SetUpCurseBackground, 5,
|
createvisualtask AnimTask_SetUpCurseBackground, 5,
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 5, 2, 4, 2, 0, 10, 31
|
createvisualtask AnimTask_BlendColorCycle, 5, 2, 4, 2, 0, 10, 31
|
||||||
return
|
return
|
||||||
|
|
||||||
Move_SOFT_BOILED::
|
Move_SOFT_BOILED::
|
||||||
@@ -8055,7 +8055,7 @@ PresentHeal::
|
|||||||
Move_BATON_PASS::
|
Move_BATON_PASS::
|
||||||
loadspritegfx ANIM_TAG_POKEBALL
|
loadspritegfx ANIM_TAG_POKEBALL
|
||||||
playsewithpan SE_M_BATON_PASS, 192
|
playsewithpan SE_M_BATON_PASS, 192
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 31, 1, 2, 0, 11, 31455
|
createvisualtask AnimTask_BlendColorCycle, 2, 31, 1, 2, 0, 11, 31455
|
||||||
createsprite gBatonPassPokeballSpriteTemplate, ANIM_ATTACKER, 2,
|
createsprite gBatonPassPokeballSpriteTemplate, ANIM_ATTACKER, 2,
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -8303,7 +8303,7 @@ Move_WISH::
|
|||||||
Move_STOCKPILE::
|
Move_STOCKPILE::
|
||||||
loadspritegfx ANIM_TAG_GRAY_ORB
|
loadspritegfx ANIM_TAG_GRAY_ORB
|
||||||
playsewithpan SE_M_MEGA_KICK, 192
|
playsewithpan SE_M_MEGA_KICK, 192
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 2, 8, 1, 0, 12, RGB_WHITE
|
createvisualtask AnimTask_BlendColorCycle, 2, 2, 8, 1, 0, 12, RGB_WHITE
|
||||||
createvisualtask AnimTask_StockpileDeformMon, 5,
|
createvisualtask AnimTask_StockpileDeformMon, 5,
|
||||||
call StockpileAbsorb
|
call StockpileAbsorb
|
||||||
call StockpileAbsorb
|
call StockpileAbsorb
|
||||||
@@ -8469,7 +8469,7 @@ Move_SWEET_SCENT::
|
|||||||
call SweetScentEffect
|
call SweetScentEffect
|
||||||
createsprite gSweetScentPetalSpriteTemplate, ANIM_ATTACKER, 2, 55, 0
|
createsprite gSweetScentPetalSpriteTemplate, ANIM_ATTACKER, 2, 55, 0
|
||||||
setpan 63
|
setpan 63
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 20, 1, 5, 5, 13, 22207
|
createvisualtask AnimTask_BlendColorCycle, 2, 20, 1, 5, 5, 13, 22207
|
||||||
call SweetScentEffect
|
call SweetScentEffect
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
end
|
end
|
||||||
@@ -8898,7 +8898,7 @@ Move_REVENGE::
|
|||||||
playsewithpan SE_M_TAKE_DOWN, 192
|
playsewithpan SE_M_TAKE_DOWN, 192
|
||||||
createsprite gRevengeSmallScratchSpriteTemplate, ANIM_ATTACKER, 2, 10, -10
|
createsprite gRevengeSmallScratchSpriteTemplate, ANIM_ATTACKER, 2, 10, -10
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 2, 0, 4, 2, 8, 31
|
createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 4, 2, 8, 31
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
unloadspritegfx ANIM_TAG_PURPLE_SCRATCH
|
unloadspritegfx ANIM_TAG_PURPLE_SCRATCH
|
||||||
loadspritegfx ANIM_TAG_PURPLE_SWIPE
|
loadspritegfx ANIM_TAG_PURPLE_SWIPE
|
||||||
@@ -8928,7 +8928,7 @@ Move_POISON_FANG::
|
|||||||
delay 10
|
delay 10
|
||||||
createvisualtask AnimTask_ShakeMon, 3, 1, 3, 0, 10, 1
|
createvisualtask AnimTask_ShakeMon, 3, 1, 3, 0, 10, 1
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 4, 0, 4, 0, 12, 26650
|
createvisualtask AnimTask_BlendColorCycle, 2, 4, 0, 4, 0, 12, 26650
|
||||||
call PoisonBubblesEffect
|
call PoisonBubblesEffect
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
end
|
end
|
||||||
@@ -9703,7 +9703,7 @@ Move_PSYCHO_BOOST::
|
|||||||
createvisualtask AnimTask_FadeScreenToWhite, 5,
|
createvisualtask AnimTask_FadeScreenToWhite, 5,
|
||||||
waitbgfadein
|
waitbgfadein
|
||||||
delay 6
|
delay 6
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 1, 2, 8, 0, 10, 0
|
createvisualtask AnimTask_BlendColorCycle, 2, 1, 2, 8, 0, 10, 0
|
||||||
delay 0
|
delay 0
|
||||||
monbgprio_28 0
|
monbgprio_28 0
|
||||||
setalpha 8, 8
|
setalpha 8, 8
|
||||||
@@ -10438,7 +10438,7 @@ UnsetSolarBeamBg::
|
|||||||
Status_Poison::
|
Status_Poison::
|
||||||
loopsewithpan SE_M_TOXIC, 63, 13, 6
|
loopsewithpan SE_M_TOXIC, 63, 13, 6
|
||||||
createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 18, 2
|
createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 18, 2
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 2, 2, 2, 0, 12, 31774
|
createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 12, 31774
|
||||||
end
|
end
|
||||||
|
|
||||||
Status_Confusion::
|
Status_Confusion::
|
||||||
@@ -10858,7 +10858,7 @@ General_FocusPunchSetUp::
|
|||||||
playsewithpan SE_M_DRAGON_RAGE, 192
|
playsewithpan SE_M_DRAGON_RAGE, 192
|
||||||
call EndureEffect
|
call EndureEffect
|
||||||
delay 8
|
delay 8
|
||||||
createvisualtask AnimTask_CurseBlendEffect, 2, 2, 2, 2, 0, 11, 31
|
createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 11, 31
|
||||||
createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 32, 1
|
createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 32, 1
|
||||||
call EndureEffect
|
call EndureEffect
|
||||||
delay 8
|
delay 8
|
||||||
|
|||||||
@@ -478,7 +478,7 @@ void AnimTask_ShakeTargetBasedOnMovePowerOrDmg(u8 taskId);
|
|||||||
extern const struct SpriteTemplate gFlashingHitSplatSpriteTemplate;
|
extern const struct SpriteTemplate gFlashingHitSplatSpriteTemplate;
|
||||||
extern const struct SpriteTemplate gBasicHitSplatSpriteTemplate;
|
extern const struct SpriteTemplate gBasicHitSplatSpriteTemplate;
|
||||||
extern const struct SpriteTemplate gWaterHitSplatSpriteTemplate;
|
extern const struct SpriteTemplate gWaterHitSplatSpriteTemplate;
|
||||||
u32 UnpackSelectedBattleAnimPalettes(s16 selector);
|
u32 UnpackSelectedBattlePalettes(s16 selector);
|
||||||
void AnimTask_CurseBlendEffect(u8 taskId);
|
void AnimTask_CurseBlendEffect(u8 taskId);
|
||||||
void AnimTask_BlendColorCycleExclude(u8 taskId);
|
void AnimTask_BlendColorCycleExclude(u8 taskId);
|
||||||
void AnimTask_BlendColorCycleByTag(u8 taskId);
|
void AnimTask_BlendColorCycleByTag(u8 taskId);
|
||||||
|
|||||||
+267
-186
@@ -8,7 +8,7 @@
|
|||||||
static void AnimConfusionDuck(struct Sprite *sprite);
|
static void AnimConfusionDuck(struct Sprite *sprite);
|
||||||
static void AnimSimplePaletteBlend(struct Sprite *sprite);
|
static void AnimSimplePaletteBlend(struct Sprite *sprite);
|
||||||
static void AnimComplexPaletteBlend(struct Sprite *sprite);
|
static void AnimComplexPaletteBlend(struct Sprite *sprite);
|
||||||
static void sub_80B9B8C(struct Sprite *sprite);
|
static void AnimCirclingSparkle(struct Sprite *sprite);
|
||||||
static void AnimShakeMonOrBattleTerrain(struct Sprite *sprite);
|
static void AnimShakeMonOrBattleTerrain(struct Sprite *sprite);
|
||||||
static void AnimHitSplatBasic(struct Sprite *sprite);
|
static void AnimHitSplatBasic(struct Sprite *sprite);
|
||||||
static void AnimHitSplatHandleInvert(struct Sprite *sprite);
|
static void AnimHitSplatHandleInvert(struct Sprite *sprite);
|
||||||
@@ -17,22 +17,22 @@ static void AnimHitSplatOnMonEdge(struct Sprite *sprite);
|
|||||||
static void AnimCrossImpact(struct Sprite *sprite);
|
static void AnimCrossImpact(struct Sprite *sprite);
|
||||||
static void AnimFlashingHitSplat(struct Sprite *sprite);
|
static void AnimFlashingHitSplat(struct Sprite *sprite);
|
||||||
static void AnimHitSplatPersistent(struct Sprite *sprite);
|
static void AnimHitSplatPersistent(struct Sprite *sprite);
|
||||||
static void AnimConfusionDuckStep(struct Sprite *sprite);
|
static void AnimConfusionDuck_Step(struct Sprite *sprite);
|
||||||
static void AnimSimplePaletteBlendStep(struct Sprite *sprite);
|
static void AnimSimplePaletteBlend_Step(struct Sprite *sprite);
|
||||||
static void sub_80B9AD0(struct Sprite *sprite);
|
static void AnimComplexPaletteBlend_Step1(struct Sprite *sprite);
|
||||||
static void sub_80B9B5C(struct Sprite *sprite);
|
static void AnimComplexPaletteBlend_Step2(struct Sprite *sprite);
|
||||||
static void sub_80B9C2C(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount);
|
static void BlendColorCycle(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount);
|
||||||
static void sub_80B9C7C(u8 taskId);
|
static void AnimTask_BlendColorCycleLoop(u8 taskId);
|
||||||
static void sub_80B9DA0(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount);
|
static void BlendColorCycleExclude(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount);
|
||||||
static void sub_80B9DF0(u8 taskId);
|
static void AnimTask_BlendColorCycleExcludeLoop(u8 taskId);
|
||||||
static void sub_80B9EA8(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount);
|
static void BlendColorCycleByTag(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount);
|
||||||
static void sub_80B9F04(u8 taskId);
|
static void AnimTask_BlendColorCycleByTagLoop(u8 taskId);
|
||||||
static void sub_80B9FD8(u8 taskId);
|
static void AnimTask_FlashAnimTagWithColor_Step1(u8 taskId);
|
||||||
static void sub_80BA090(u8 taskId);
|
static void AnimTask_FlashAnimTagWithColor_Step2(u8 taskId);
|
||||||
static void sub_80BA3CC(void);
|
static void AnimShakeMonOrBattleTerrain_UpdateCoordOffsetEnabled(void);
|
||||||
static void sub_80BA320(struct Sprite *sprite);
|
static void AnimShakeMonOrBattleTerrain_Step(struct Sprite *sprite);
|
||||||
static void sub_80BA4D0(u8 taskId);
|
static void AnimTask_ShakeBattleTerrain_Step(u8 taskId);
|
||||||
static void sub_80BA7BC(struct Sprite *sprite);
|
static void AnimFlashingHitSplat_Step(struct Sprite *sprite);
|
||||||
|
|
||||||
|
|
||||||
static const union AnimCmd sAnim_ConfusionDuck_0[] =
|
static const union AnimCmd sAnim_ConfusionDuck_0[] =
|
||||||
@@ -92,7 +92,7 @@ const struct SpriteTemplate gComplexPaletteBlendSpriteTemplate =
|
|||||||
.callback = AnimComplexPaletteBlend,
|
.callback = AnimComplexPaletteBlend,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const union AnimCmd gUnknown_83E7B54[] =
|
static const union AnimCmd sAnim_CirclingSparkle[] =
|
||||||
{
|
{
|
||||||
ANIMCMD_FRAME(0, 3),
|
ANIMCMD_FRAME(0, 3),
|
||||||
ANIMCMD_FRAME(16, 3),
|
ANIMCMD_FRAME(16, 3),
|
||||||
@@ -102,20 +102,21 @@ static const union AnimCmd gUnknown_83E7B54[] =
|
|||||||
ANIMCMD_JUMP(0),
|
ANIMCMD_JUMP(0),
|
||||||
};
|
};
|
||||||
|
|
||||||
static const union AnimCmd *const gUnknown_83E7B6C[] =
|
static const union AnimCmd *const sAnims_CirclingSparkle[] =
|
||||||
{
|
{
|
||||||
gUnknown_83E7B54,
|
sAnim_CirclingSparkle,
|
||||||
};
|
};
|
||||||
|
|
||||||
const struct SpriteTemplate gUnknown_83E7B70 =
|
// Unused
|
||||||
|
static const struct SpriteTemplate sCirclingSparkleSpriteTemplate =
|
||||||
{
|
{
|
||||||
.tileTag = ANIM_TAG_SPARKLE_4,
|
.tileTag = ANIM_TAG_SPARKLE_4,
|
||||||
.paletteTag = ANIM_TAG_SPARKLE_4,
|
.paletteTag = ANIM_TAG_SPARKLE_4,
|
||||||
.oam = &gOamData_AffineOff_ObjNormal_32x32,
|
.oam = &gOamData_AffineOff_ObjNormal_32x32,
|
||||||
.anims = gUnknown_83E7B6C,
|
.anims = sAnims_CirclingSparkle,
|
||||||
.images = NULL,
|
.images = NULL,
|
||||||
.affineAnims = gDummySpriteAffineAnimTable,
|
.affineAnims = gDummySpriteAffineAnimTable,
|
||||||
.callback = sub_80B9B8C,
|
.callback = AnimCirclingSparkle,
|
||||||
};
|
};
|
||||||
|
|
||||||
const struct SpriteTemplate gShakeMonOrTerrainSpriteTemplate =
|
const struct SpriteTemplate gShakeMonOrTerrainSpriteTemplate =
|
||||||
@@ -275,11 +276,11 @@ static void AnimConfusionDuck(struct Sprite *sprite)
|
|||||||
StartSpriteAnim(sprite, 1);
|
StartSpriteAnim(sprite, 1);
|
||||||
}
|
}
|
||||||
sprite->data[3] = gBattleAnimArgs[4];
|
sprite->data[3] = gBattleAnimArgs[4];
|
||||||
sprite->callback = AnimConfusionDuckStep;
|
sprite->callback = AnimConfusionDuck_Step;
|
||||||
sprite->callback(sprite);
|
sprite->callback(sprite);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void AnimConfusionDuckStep(struct Sprite *sprite)
|
static void AnimConfusionDuck_Step(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
sprite->x2 = Cos(sprite->data[0], 30);
|
sprite->x2 = Cos(sprite->data[0], 30);
|
||||||
sprite->y2 = Sin(sprite->data[0], 10);
|
sprite->y2 = Sin(sprite->data[0], 10);
|
||||||
@@ -300,36 +301,36 @@ static void AnimConfusionDuckStep(struct Sprite *sprite)
|
|||||||
// arg 4: blend color
|
// arg 4: blend color
|
||||||
static void AnimSimplePaletteBlend(struct Sprite *sprite)
|
static void AnimSimplePaletteBlend(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gBattleAnimArgs[0]);
|
u32 selectedPalettes = UnpackSelectedBattlePalettes(gBattleAnimArgs[0]);
|
||||||
|
|
||||||
BeginNormalPaletteFade(selectedPalettes, gBattleAnimArgs[1], gBattleAnimArgs[2], gBattleAnimArgs[3], gBattleAnimArgs[4]);
|
BeginNormalPaletteFade(selectedPalettes, gBattleAnimArgs[1], gBattleAnimArgs[2], gBattleAnimArgs[3], gBattleAnimArgs[4]);
|
||||||
sprite->invisible = TRUE;
|
sprite->invisible = TRUE;
|
||||||
sprite->callback = AnimSimplePaletteBlendStep;
|
sprite->callback = AnimSimplePaletteBlend_Step;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unpacks a bitfield and returns a bitmask of its selected palettes.
|
// Unpacks a bitfield and returns a bitmask of its selected palettes.
|
||||||
// Bits 0-6 of the selector parameter result in the following palettes being selected:
|
// Bits 0-6 of the selector parameter result in the following palettes being selected:
|
||||||
// 0: battle background palettes (BG palettes 1, 2, and 3)
|
// 0: F_PAL_BG, battle background palettes (BG palettes 1, 2, and 3)
|
||||||
// 1: gBattleAnimAttacker OBJ palette
|
// 1: F_PAL_ATTACKER, gBattleAnimAttacker OBJ palette
|
||||||
// 2: gBattleAnimTarget OBJ palette
|
// 2: F_PAL_TARGET, gBattleAnimTarget OBJ palette
|
||||||
// 3: gBattleAnimAttacker partner OBJ palette
|
// 3: F_PAL_ATK_PARTNER, gBattleAnimAttacker partner OBJ palette
|
||||||
// 4: gBattleAnimTarget partner OBJ palette
|
// 4: F_PAL_DEF_PARTNER, gBattleAnimTarget partner OBJ palette
|
||||||
// 5: BG palette 4
|
// 5: F_PAL_ANIM_1, BG palette 8
|
||||||
// 6: BG palette 5
|
// 6: F_PAL_ANIM_2, BG palette 9
|
||||||
u32 UnpackSelectedBattleAnimPalettes(s16 selector)
|
u32 UnpackSelectedBattlePalettes(s16 selector)
|
||||||
{
|
{
|
||||||
u8 battleBackground = selector & 1;
|
u8 battleBackground = selector & 1;
|
||||||
u8 attacker = (selector >> 1) & 1;
|
u8 attacker = (selector >> 1) & 1;
|
||||||
u8 target = (selector >> 2) & 1;
|
u8 target = (selector >> 2) & 1;
|
||||||
u8 attackerPartner = (selector >> 3) & 1;
|
u8 attackerPartner = (selector >> 3) & 1;
|
||||||
u8 targetPartner = (selector >> 4) & 1;
|
u8 targetPartner = (selector >> 4) & 1;
|
||||||
u8 arg5 = (selector >> 5) & 1;
|
u8 anim1 = (selector >> 5) & 1;
|
||||||
u8 arg6 = (selector >> 6) & 1;
|
u8 anim2 = (selector >> 6) & 1;
|
||||||
|
|
||||||
return GetBattlePalettesMask(battleBackground, attacker, target, attackerPartner, targetPartner, arg5, arg6);
|
return GetBattlePalettesMask(battleBackground, attacker, target, attackerPartner, targetPartner, anim1, anim2);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void AnimSimplePaletteBlendStep(struct Sprite *sprite)
|
static void AnimSimplePaletteBlend_Step(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
if (!gPaletteFade.active)
|
if (!gPaletteFade.active)
|
||||||
DestroyAnimSprite(sprite);
|
DestroyAnimSprite(sprite);
|
||||||
@@ -347,13 +348,13 @@ static void AnimComplexPaletteBlend(struct Sprite *sprite)
|
|||||||
sprite->data[5] = gBattleAnimArgs[5];
|
sprite->data[5] = gBattleAnimArgs[5];
|
||||||
sprite->data[6] = gBattleAnimArgs[6];
|
sprite->data[6] = gBattleAnimArgs[6];
|
||||||
sprite->data[7] = gBattleAnimArgs[0];
|
sprite->data[7] = gBattleAnimArgs[0];
|
||||||
selectedPalettes = UnpackSelectedBattleAnimPalettes(sprite->data[7]);
|
selectedPalettes = UnpackSelectedBattlePalettes(sprite->data[7]);
|
||||||
BlendPalettes(selectedPalettes, gBattleAnimArgs[4], gBattleAnimArgs[3]);
|
BlendPalettes(selectedPalettes, gBattleAnimArgs[4], gBattleAnimArgs[3]);
|
||||||
sprite->invisible = TRUE;
|
sprite->invisible = TRUE;
|
||||||
sprite->callback = sub_80B9AD0;
|
sprite->callback = AnimComplexPaletteBlend_Step1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_80B9AD0(struct Sprite *sprite)
|
static void AnimComplexPaletteBlend_Step1(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
u32 selectedPalettes;
|
u32 selectedPalettes;
|
||||||
|
|
||||||
@@ -366,10 +367,10 @@ static void sub_80B9AD0(struct Sprite *sprite)
|
|||||||
return;
|
return;
|
||||||
if (sprite->data[2] == 0)
|
if (sprite->data[2] == 0)
|
||||||
{
|
{
|
||||||
sprite->callback = sub_80B9B5C;
|
sprite->callback = AnimComplexPaletteBlend_Step2;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
selectedPalettes = UnpackSelectedBattleAnimPalettes(sprite->data[7]);
|
selectedPalettes = UnpackSelectedBattlePalettes(sprite->data[7]);
|
||||||
if (sprite->data[1] & 0x100)
|
if (sprite->data[1] & 0x100)
|
||||||
BlendPalettes(selectedPalettes, sprite->data[4], sprite->data[3]);
|
BlendPalettes(selectedPalettes, sprite->data[4], sprite->data[3]);
|
||||||
else
|
else
|
||||||
@@ -379,19 +380,19 @@ static void sub_80B9AD0(struct Sprite *sprite)
|
|||||||
--sprite->data[2];
|
--sprite->data[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_80B9B5C(struct Sprite *sprite)
|
static void AnimComplexPaletteBlend_Step2(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
u32 selectedPalettes;
|
u32 selectedPalettes;
|
||||||
|
|
||||||
if (!gPaletteFade.active)
|
if (!gPaletteFade.active)
|
||||||
{
|
{
|
||||||
selectedPalettes = UnpackSelectedBattleAnimPalettes(sprite->data[7]);
|
selectedPalettes = UnpackSelectedBattlePalettes(sprite->data[7]);
|
||||||
BlendPalettes(selectedPalettes, 0, 0);
|
BlendPalettes(selectedPalettes, 0, 0);
|
||||||
DestroyAnimSprite(sprite);
|
DestroyAnimSprite(sprite);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_80B9B8C(struct Sprite *sprite)
|
static void AnimCirclingSparkle(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
sprite->x += gBattleAnimArgs[0];
|
sprite->x += gBattleAnimArgs[0];
|
||||||
sprite->y += gBattleAnimArgs[1];
|
sprite->y += gBattleAnimArgs[1];
|
||||||
@@ -406,53 +407,71 @@ static void sub_80B9B8C(struct Sprite *sprite)
|
|||||||
sprite->callback(sprite);
|
sprite->callback(sprite);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AnimTask_CurseBlendEffect(u8 taskId)
|
// Task data for AnimTask_BlendColorCycle, AnimTask_BlendColorCycleExclude, and AnimTask_BlendColorCycleByTag
|
||||||
|
#define tPalSelector data[0] // AnimTask_BlendColorCycle
|
||||||
|
#define tPalTag data[0] // AnimTask_BlendColorCycleByTag
|
||||||
|
#define tDelay data[1]
|
||||||
|
#define tNumBlends data[2]
|
||||||
|
#define tInitialBlendY data[3]
|
||||||
|
#define tTargetBlendY data[4]
|
||||||
|
#define tBlendColor data[5]
|
||||||
|
#define tRestoreBlend data[8]
|
||||||
|
#define tPalSelectorHi data[9]
|
||||||
|
#define tPalSelectorLo data[10]
|
||||||
|
|
||||||
|
// Blends mon/screen to designated color or back alternately tNumBlends times
|
||||||
|
// Many uses of this task only set a tNumBlends of 2, which has the effect of blending to a color and back once
|
||||||
|
void AnimTask_BlendColorCycle(u8 taskId)
|
||||||
{
|
{
|
||||||
gTasks[taskId].data[0] = gBattleAnimArgs[0];
|
gTasks[taskId].tPalSelector = gBattleAnimArgs[0];
|
||||||
gTasks[taskId].data[1] = gBattleAnimArgs[1];
|
gTasks[taskId].tDelay = gBattleAnimArgs[1];
|
||||||
gTasks[taskId].data[2] = gBattleAnimArgs[2];
|
gTasks[taskId].tNumBlends = gBattleAnimArgs[2];
|
||||||
gTasks[taskId].data[3] = gBattleAnimArgs[3];
|
gTasks[taskId].tInitialBlendY = gBattleAnimArgs[3];
|
||||||
gTasks[taskId].data[4] = gBattleAnimArgs[4];
|
gTasks[taskId].tTargetBlendY = gBattleAnimArgs[4];
|
||||||
gTasks[taskId].data[5] = gBattleAnimArgs[5];
|
gTasks[taskId].tBlendColor = gBattleAnimArgs[5];
|
||||||
gTasks[taskId].data[8] = 0;
|
gTasks[taskId].tRestoreBlend = FALSE;
|
||||||
sub_80B9C2C(taskId, 0, gTasks[taskId].data[4]);
|
BlendColorCycle(taskId, 0, gTasks[taskId].tTargetBlendY);
|
||||||
gTasks[taskId].func = sub_80B9C7C;
|
gTasks[taskId].func = AnimTask_BlendColorCycleLoop;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_80B9C2C(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount)
|
static void BlendColorCycle(u8 taskId, u8 startBlendAmount, u8 targetBlendAmount)
|
||||||
{
|
{
|
||||||
u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gTasks[taskId].data[0]);
|
u32 selectedPalettes = UnpackSelectedBattlePalettes(gTasks[taskId].tPalSelector);
|
||||||
|
BeginNormalPaletteFade(
|
||||||
BeginNormalPaletteFade(selectedPalettes,
|
selectedPalettes,
|
||||||
gTasks[taskId].data[1],
|
gTasks[taskId].tDelay,
|
||||||
initialBlendAmount,
|
startBlendAmount,
|
||||||
targetBlendAmount,
|
targetBlendAmount,
|
||||||
gTasks[taskId].data[5]);
|
gTasks[taskId].tBlendColor);
|
||||||
--gTasks[taskId].data[2];
|
|
||||||
gTasks[taskId].data[8] ^= 1;
|
gTasks[taskId].tNumBlends--;
|
||||||
|
gTasks[taskId].tRestoreBlend ^= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_80B9C7C(u8 taskId)
|
static void AnimTask_BlendColorCycleLoop(u8 taskId)
|
||||||
{
|
{
|
||||||
u8 initialBlendAmount, targetBlendAmount;
|
u8 startBlendAmount, targetBlendAmount;
|
||||||
|
|
||||||
if (!gPaletteFade.active)
|
if (!gPaletteFade.active)
|
||||||
{
|
{
|
||||||
if (gTasks[taskId].data[2] > 0)
|
if (gTasks[taskId].tNumBlends > 0)
|
||||||
{
|
{
|
||||||
if (gTasks[taskId].data[8] == 0)
|
if (!gTasks[taskId].tRestoreBlend)
|
||||||
{
|
{
|
||||||
initialBlendAmount = gTasks[taskId].data[3];
|
// Blend to designated color
|
||||||
targetBlendAmount = gTasks[taskId].data[4];
|
startBlendAmount = gTasks[taskId].tInitialBlendY;
|
||||||
|
targetBlendAmount = gTasks[taskId].tTargetBlendY;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
initialBlendAmount = gTasks[taskId].data[4];
|
// Blend back to original color
|
||||||
targetBlendAmount = gTasks[taskId].data[3];
|
startBlendAmount = gTasks[taskId].tTargetBlendY;
|
||||||
|
targetBlendAmount = gTasks[taskId].tInitialBlendY;
|
||||||
}
|
}
|
||||||
if (gTasks[taskId].data[2] == 1)
|
|
||||||
|
if (gTasks[taskId].tNumBlends == 1)
|
||||||
targetBlendAmount = 0;
|
targetBlendAmount = 0;
|
||||||
sub_80B9C2C(taskId, initialBlendAmount, targetBlendAmount);
|
|
||||||
|
BlendColorCycle(taskId, startBlendAmount, targetBlendAmount);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -461,64 +480,73 @@ static void sub_80B9C7C(u8 taskId)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// See AnimTask_BlendColorCycle. Same, but excludes Attacker and Target
|
||||||
void AnimTask_BlendColorCycleExclude(u8 taskId)
|
void AnimTask_BlendColorCycleExclude(u8 taskId)
|
||||||
{
|
{
|
||||||
s32 battler;
|
int battler;
|
||||||
u32 selectedPalettes = 0;
|
u32 selectedPalettes = 0;
|
||||||
|
|
||||||
gTasks[taskId].data[0] = gBattleAnimArgs[0];
|
gTasks[taskId].data[0] = gBattleAnimArgs[0];
|
||||||
gTasks[taskId].data[1] = gBattleAnimArgs[1];
|
gTasks[taskId].tDelay = gBattleAnimArgs[1];
|
||||||
gTasks[taskId].data[2] = gBattleAnimArgs[2];
|
gTasks[taskId].tNumBlends = gBattleAnimArgs[2];
|
||||||
gTasks[taskId].data[3] = gBattleAnimArgs[3];
|
gTasks[taskId].tInitialBlendY = gBattleAnimArgs[3];
|
||||||
gTasks[taskId].data[4] = gBattleAnimArgs[4];
|
gTasks[taskId].tTargetBlendY = gBattleAnimArgs[4];
|
||||||
gTasks[taskId].data[5] = gBattleAnimArgs[5];
|
gTasks[taskId].tBlendColor = gBattleAnimArgs[5];
|
||||||
gTasks[taskId].data[8] = 0;
|
gTasks[taskId].tRestoreBlend = 0;
|
||||||
for (battler = 0; battler < gBattlersCount; ++battler)
|
|
||||||
|
for (battler = 0; battler < gBattlersCount; battler++)
|
||||||
|
{
|
||||||
if (battler != gBattleAnimAttacker && battler != gBattleAnimTarget)
|
if (battler != gBattleAnimAttacker && battler != gBattleAnimTarget)
|
||||||
selectedPalettes |= 1 << (battler + 16);
|
selectedPalettes |= 1 << (battler + 16);
|
||||||
|
}
|
||||||
|
|
||||||
if (gBattleAnimArgs[0] == 1)
|
if (gBattleAnimArgs[0] == 1)
|
||||||
selectedPalettes |= 0xE;
|
selectedPalettes |= 0xE;
|
||||||
gTasks[taskId].data[9] = selectedPalettes >> 16;
|
|
||||||
gTasks[taskId].data[10] = selectedPalettes & 0xFF;
|
gTasks[taskId].tPalSelectorHi = selectedPalettes >> 16;
|
||||||
sub_80B9DA0(taskId, 0, gTasks[taskId].data[4]);
|
gTasks[taskId].tPalSelectorLo = selectedPalettes & 0xFF;
|
||||||
gTasks[taskId].func = sub_80B9DF0;
|
BlendColorCycleExclude(taskId, 0, gTasks[taskId].tTargetBlendY);
|
||||||
|
gTasks[taskId].func = AnimTask_BlendColorCycleExcludeLoop;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_80B9DA0(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount)
|
static void BlendColorCycleExclude(u8 taskId, u8 startBlendAmount, u8 targetBlendAmount)
|
||||||
{
|
{
|
||||||
u32 selectedPalettes = ((u16)gTasks[taskId].data[9] << 16) | (u16)gTasks[taskId].data[10];
|
u32 selectedPalettes = ((u16)gTasks[taskId].tPalSelectorHi << 16) | (u16)gTasks[taskId].tPalSelectorLo;
|
||||||
|
BeginNormalPaletteFade(
|
||||||
BeginNormalPaletteFade(selectedPalettes,
|
selectedPalettes,
|
||||||
gTasks[taskId].data[1],
|
gTasks[taskId].tDelay,
|
||||||
initialBlendAmount,
|
startBlendAmount,
|
||||||
targetBlendAmount,
|
targetBlendAmount,
|
||||||
gTasks[taskId].data[5]);
|
gTasks[taskId].tBlendColor);
|
||||||
--gTasks[taskId].data[2];
|
|
||||||
gTasks[taskId].data[8] ^= 1;
|
gTasks[taskId].tNumBlends--;
|
||||||
|
gTasks[taskId].tRestoreBlend ^= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_80B9DF0(u8 taskId)
|
static void AnimTask_BlendColorCycleExcludeLoop(u8 taskId)
|
||||||
{
|
{
|
||||||
u8 initialBlendAmount, targetBlendAmount;
|
u8 startBlendAmount, targetBlendAmount;
|
||||||
|
|
||||||
if (!gPaletteFade.active)
|
if (!gPaletteFade.active)
|
||||||
{
|
{
|
||||||
if (gTasks[taskId].data[2] > 0)
|
if (gTasks[taskId].tNumBlends > 0)
|
||||||
{
|
{
|
||||||
if (gTasks[taskId].data[8] == 0)
|
if (!gTasks[taskId].tRestoreBlend)
|
||||||
{
|
{
|
||||||
initialBlendAmount = gTasks[taskId].data[3];
|
// Blend to designated color
|
||||||
targetBlendAmount = gTasks[taskId].data[4];
|
startBlendAmount = gTasks[taskId].tInitialBlendY;
|
||||||
|
targetBlendAmount = gTasks[taskId].tTargetBlendY;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
initialBlendAmount = gTasks[taskId].data[4];
|
// Blend back to original color
|
||||||
targetBlendAmount = gTasks[taskId].data[3];
|
startBlendAmount = gTasks[taskId].tTargetBlendY;
|
||||||
|
targetBlendAmount = gTasks[taskId].tInitialBlendY;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gTasks[taskId].data[2] == 1)
|
if (gTasks[taskId].tNumBlends == 1)
|
||||||
targetBlendAmount = 0;
|
targetBlendAmount = 0;
|
||||||
sub_80B9DA0(taskId, initialBlendAmount, targetBlendAmount);
|
|
||||||
|
BlendColorCycleExclude(taskId, startBlendAmount, targetBlendAmount);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -527,56 +555,59 @@ static void sub_80B9DF0(u8 taskId)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// See AnimTask_BlendColorCycle. Same, but selects palette by ANIM_TAG_*
|
||||||
void AnimTask_BlendColorCycleByTag(u8 taskId)
|
void AnimTask_BlendColorCycleByTag(u8 taskId)
|
||||||
{
|
{
|
||||||
u8 paletteIndex;
|
gTasks[taskId].tPalTag = gBattleAnimArgs[0];
|
||||||
|
gTasks[taskId].tDelay = gBattleAnimArgs[1];
|
||||||
|
gTasks[taskId].tNumBlends = gBattleAnimArgs[2];
|
||||||
|
gTasks[taskId].tInitialBlendY = gBattleAnimArgs[3];
|
||||||
|
gTasks[taskId].tTargetBlendY = gBattleAnimArgs[4];
|
||||||
|
gTasks[taskId].tBlendColor = gBattleAnimArgs[5];
|
||||||
|
gTasks[taskId].tRestoreBlend = FALSE;
|
||||||
|
|
||||||
gTasks[taskId].data[0] = gBattleAnimArgs[0];
|
BlendColorCycleByTag(taskId, 0, gTasks[taskId].tTargetBlendY);
|
||||||
gTasks[taskId].data[1] = gBattleAnimArgs[1];
|
gTasks[taskId].func = AnimTask_BlendColorCycleByTagLoop;
|
||||||
gTasks[taskId].data[2] = gBattleAnimArgs[2];
|
|
||||||
gTasks[taskId].data[3] = gBattleAnimArgs[3];
|
|
||||||
gTasks[taskId].data[4] = gBattleAnimArgs[4];
|
|
||||||
gTasks[taskId].data[5] = gBattleAnimArgs[5];
|
|
||||||
gTasks[taskId].data[8] = 0;
|
|
||||||
sub_80B9EA8(taskId, 0, gTasks[taskId].data[4]);
|
|
||||||
gTasks[taskId].func = sub_80B9F04;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_80B9EA8(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount)
|
static void BlendColorCycleByTag(u8 taskId, u8 startBlendAmount, u8 targetBlendAmount)
|
||||||
{
|
{
|
||||||
u8 paletteIndex = IndexOfSpritePaletteTag(gTasks[taskId].data[0]);
|
u8 paletteIndex = IndexOfSpritePaletteTag(gTasks[taskId].tPalTag);
|
||||||
|
BeginNormalPaletteFade(
|
||||||
BeginNormalPaletteFade(1 << (paletteIndex + 16),
|
1 << (paletteIndex + 16),
|
||||||
gTasks[taskId].data[1],
|
gTasks[taskId].tDelay,
|
||||||
initialBlendAmount,
|
startBlendAmount,
|
||||||
targetBlendAmount,
|
targetBlendAmount,
|
||||||
gTasks[taskId].data[5]);
|
gTasks[taskId].tBlendColor);
|
||||||
--gTasks[taskId].data[2];
|
|
||||||
gTasks[taskId].data[8] ^= 1;
|
gTasks[taskId].tNumBlends--;
|
||||||
|
gTasks[taskId].tRestoreBlend ^= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_80B9F04(u8 taskId)
|
static void AnimTask_BlendColorCycleByTagLoop(u8 taskId)
|
||||||
{
|
{
|
||||||
u8 initialBlendAmount, targetBlendAmount;
|
u8 startBlendAmount, targetBlendAmount;
|
||||||
|
|
||||||
if (!gPaletteFade.active)
|
if (!gPaletteFade.active)
|
||||||
{
|
{
|
||||||
if (gTasks[taskId].data[2] > 0)
|
if (gTasks[taskId].tNumBlends > 0)
|
||||||
{
|
{
|
||||||
if (gTasks[taskId].data[8] == 0)
|
if (!gTasks[taskId].tRestoreBlend)
|
||||||
{
|
{
|
||||||
initialBlendAmount = gTasks[taskId].data[3];
|
// Blend to designated color
|
||||||
targetBlendAmount = gTasks[taskId].data[4];
|
startBlendAmount = gTasks[taskId].tInitialBlendY;
|
||||||
|
targetBlendAmount = gTasks[taskId].tTargetBlendY;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
initialBlendAmount = gTasks[taskId].data[4];
|
// Blend back to original color
|
||||||
targetBlendAmount = gTasks[taskId].data[3];
|
startBlendAmount = gTasks[taskId].tTargetBlendY;
|
||||||
|
targetBlendAmount = gTasks[taskId].tInitialBlendY;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gTasks[taskId].data[2] == 1)
|
if (gTasks[taskId].tNumBlends == 1)
|
||||||
targetBlendAmount = 0;
|
targetBlendAmount = 0;
|
||||||
sub_80B9EA8(taskId, initialBlendAmount, targetBlendAmount);
|
|
||||||
|
BlendColorCycleByTag(taskId, startBlendAmount, targetBlendAmount);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -585,6 +616,18 @@ static void sub_80B9F04(u8 taskId)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#undef tPalSelector
|
||||||
|
#undef tPalTag
|
||||||
|
#undef tDelay
|
||||||
|
#undef tNumBlends
|
||||||
|
#undef tInitialBlendY
|
||||||
|
#undef tTargetBlendY
|
||||||
|
#undef tBlendColor
|
||||||
|
#undef tRestoreBlend
|
||||||
|
#undef tPalSelectorHi
|
||||||
|
#undef tPalSelectorLo
|
||||||
|
|
||||||
|
// Flashes the specified anim tag with given color. Used e.g. to flash the particles red in Hyper Beam
|
||||||
void AnimTask_FlashAnimTagWithColor(u8 taskId)
|
void AnimTask_FlashAnimTagWithColor(u8 taskId)
|
||||||
{
|
{
|
||||||
u8 paletteIndex;
|
u8 paletteIndex;
|
||||||
@@ -603,10 +646,10 @@ void AnimTask_FlashAnimTagWithColor(u8 taskId)
|
|||||||
gBattleAnimArgs[4],
|
gBattleAnimArgs[4],
|
||||||
gBattleAnimArgs[4],
|
gBattleAnimArgs[4],
|
||||||
gBattleAnimArgs[3]);
|
gBattleAnimArgs[3]);
|
||||||
gTasks[taskId].func = sub_80B9FD8;
|
gTasks[taskId].func = AnimTask_FlashAnimTagWithColor_Step1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_80B9FD8(u8 taskId)
|
static void AnimTask_FlashAnimTagWithColor_Step1(u8 taskId)
|
||||||
{
|
{
|
||||||
u32 selectedPalettes;
|
u32 selectedPalettes;
|
||||||
|
|
||||||
@@ -619,7 +662,7 @@ static void sub_80B9FD8(u8 taskId)
|
|||||||
return;
|
return;
|
||||||
if (gTasks[taskId].data[2] == 0)
|
if (gTasks[taskId].data[2] == 0)
|
||||||
{
|
{
|
||||||
gTasks[taskId].func = sub_80BA090;
|
gTasks[taskId].func = AnimTask_FlashAnimTagWithColor_Step2;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
selectedPalettes = 1 << (IndexOfSpritePaletteTag(gTasks[taskId].data[7]) + 16);
|
selectedPalettes = 1 << (IndexOfSpritePaletteTag(gTasks[taskId].data[7]) + 16);
|
||||||
@@ -640,7 +683,7 @@ static void sub_80B9FD8(u8 taskId)
|
|||||||
--gTasks[taskId].data[2];
|
--gTasks[taskId].data[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_80BA090(u8 taskId)
|
static void AnimTask_FlashAnimTagWithColor_Step2(u8 taskId)
|
||||||
{
|
{
|
||||||
u32 selectedPalettes;
|
u32 selectedPalettes;
|
||||||
|
|
||||||
@@ -659,7 +702,7 @@ void AnimTask_InvertScreenColor(u8 taskId)
|
|||||||
u8 targetBattler = gBattleAnimTarget;
|
u8 targetBattler = gBattleAnimTarget;
|
||||||
|
|
||||||
if (gBattleAnimArgs[0] & 0x100)
|
if (gBattleAnimArgs[0] & 0x100)
|
||||||
selectedPalettes = GetBattlePalettesMask(1, 0, 0, 0, 0, 0, 0);
|
selectedPalettes = GetBattlePalettesMask(TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE);
|
||||||
if (gBattleAnimArgs[1] & 0x100)
|
if (gBattleAnimArgs[1] & 0x100)
|
||||||
selectedPalettes |= (0x10000 << attackerBattler);
|
selectedPalettes |= (0x10000 << attackerBattler);
|
||||||
if (gBattleAnimArgs[2] & 0x100)
|
if (gBattleAnimArgs[2] & 0x100)
|
||||||
@@ -668,8 +711,16 @@ void AnimTask_InvertScreenColor(u8 taskId)
|
|||||||
DestroyAnimVisualTask(taskId);
|
DestroyAnimVisualTask(taskId);
|
||||||
}
|
}
|
||||||
|
|
||||||
// not used
|
// Unused
|
||||||
static void sub_80BA16C(u8 taskId)
|
#define tTimer data[0]
|
||||||
|
#define tLength data[1]
|
||||||
|
#define tFlagsScenery data[2]
|
||||||
|
#define tFlagsAttacker data[3]
|
||||||
|
#define tFlagsTarget data[4]
|
||||||
|
#define tColorR data[5]
|
||||||
|
#define tColorG data[6]
|
||||||
|
#define tColorB data[7]
|
||||||
|
static void AnimTask_TintPalettes(u8 taskId)
|
||||||
{
|
{
|
||||||
u8 attackerBattler;
|
u8 attackerBattler;
|
||||||
u8 targetBattler;
|
u8 targetBattler;
|
||||||
@@ -708,6 +759,15 @@ static void sub_80BA16C(u8 taskId)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#undef tTimer
|
||||||
|
#undef tLength
|
||||||
|
#undef tFlagsScenery
|
||||||
|
#undef tFlagsAttacker
|
||||||
|
#undef tFlagsTarget
|
||||||
|
#undef tColorR
|
||||||
|
#undef tColorG
|
||||||
|
#undef tColorB
|
||||||
|
|
||||||
static void AnimShakeMonOrBattleTerrain(struct Sprite *sprite)
|
static void AnimShakeMonOrBattleTerrain(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
u16 var0;
|
u16 var0;
|
||||||
@@ -737,11 +797,11 @@ static void AnimShakeMonOrBattleTerrain(struct Sprite *sprite)
|
|||||||
sprite->data[5] = gBattleAnimArgs[3];
|
sprite->data[5] = gBattleAnimArgs[3];
|
||||||
var0 = sprite->data[5] - 2;
|
var0 = sprite->data[5] - 2;
|
||||||
if (var0 < 2)
|
if (var0 < 2)
|
||||||
sub_80BA3CC();
|
AnimShakeMonOrBattleTerrain_UpdateCoordOffsetEnabled();
|
||||||
sprite->callback = sub_80BA320;
|
sprite->callback = AnimShakeMonOrBattleTerrain_Step;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_80BA320(struct Sprite *sprite)
|
static void AnimShakeMonOrBattleTerrain_Step(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
u16 var0;
|
u16 var0;
|
||||||
@@ -766,58 +826,70 @@ static void sub_80BA320(struct Sprite *sprite)
|
|||||||
var0 = sprite->data[5] - 2;
|
var0 = sprite->data[5] - 2;
|
||||||
if (var0 < 2)
|
if (var0 < 2)
|
||||||
for (i = 0; i < gBattlersCount; ++i)
|
for (i = 0; i < gBattlersCount; ++i)
|
||||||
gSprites[gBattlerSpriteIds[i]].coordOffsetEnabled = 0;
|
gSprites[gBattlerSpriteIds[i]].coordOffsetEnabled = FALSE;
|
||||||
DestroyAnimSprite(sprite);
|
DestroyAnimSprite(sprite);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_80BA3CC(void)
|
static void AnimShakeMonOrBattleTerrain_UpdateCoordOffsetEnabled(void)
|
||||||
{
|
{
|
||||||
gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = 0;
|
gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = FALSE;
|
||||||
gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = 0;
|
gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = FALSE;
|
||||||
if (gBattleAnimArgs[4] == 2)
|
if (gBattleAnimArgs[4] == 2)
|
||||||
{
|
{
|
||||||
gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = 1;
|
gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = TRUE;
|
||||||
gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = 1;
|
gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = TRUE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (gBattleAnimArgs[4] == 0)
|
if (gBattleAnimArgs[4] == 0)
|
||||||
gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = 1;
|
gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = TRUE;
|
||||||
else
|
else
|
||||||
gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = 1;
|
gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Task data for AnimTask_ShakeBattleTerrain
|
||||||
|
#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)
|
||||||
|
// 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_ShakeBattleTerrain(u8 taskId)
|
||||||
{
|
{
|
||||||
gTasks[taskId].data[0] = gBattleAnimArgs[0];
|
gTasks[taskId].tXOffset = gBattleAnimArgs[0];
|
||||||
gTasks[taskId].data[1] = gBattleAnimArgs[1];
|
gTasks[taskId].tYOffset = gBattleAnimArgs[1];
|
||||||
gTasks[taskId].data[2] = gBattleAnimArgs[2];
|
gTasks[taskId].tNumShakes = gBattleAnimArgs[2];
|
||||||
gTasks[taskId].data[3] = gBattleAnimArgs[3];
|
gTasks[taskId].tTimer = gBattleAnimArgs[3];
|
||||||
gTasks[taskId].data[8] = gBattleAnimArgs[3];
|
gTasks[taskId].tShakeDelay = gBattleAnimArgs[3];
|
||||||
gBattle_BG3_X = gBattleAnimArgs[0];
|
gBattle_BG3_X = gBattleAnimArgs[0];
|
||||||
gBattle_BG3_Y = gBattleAnimArgs[1];
|
gBattle_BG3_Y = gBattleAnimArgs[1];
|
||||||
gTasks[taskId].func = sub_80BA4D0;
|
gTasks[taskId].func = AnimTask_ShakeBattleTerrain_Step;
|
||||||
gTasks[taskId].func(taskId);
|
gTasks[taskId].func(taskId);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_80BA4D0(u8 taskId)
|
static void AnimTask_ShakeBattleTerrain_Step(u8 taskId)
|
||||||
{
|
{
|
||||||
if (gTasks[taskId].data[3] == 0)
|
if (gTasks[taskId].tTimer == 0)
|
||||||
{
|
{
|
||||||
if (gBattle_BG3_X == gTasks[taskId].data[0])
|
if (gBattle_BG3_X == gTasks[taskId].tXOffset)
|
||||||
gBattle_BG3_X = -gTasks[taskId].data[0];
|
gBattle_BG3_X = -gTasks[taskId].tXOffset;
|
||||||
else
|
else
|
||||||
gBattle_BG3_X = gTasks[taskId].data[0];
|
gBattle_BG3_X = gTasks[taskId].tXOffset;
|
||||||
|
|
||||||
if (gBattle_BG3_Y == -gTasks[taskId].data[1])
|
if (gBattle_BG3_Y == -gTasks[taskId].tYOffset)
|
||||||
gBattle_BG3_Y = 0;
|
gBattle_BG3_Y = 0;
|
||||||
else
|
else
|
||||||
gBattle_BG3_Y = -gTasks[taskId].data[1];
|
gBattle_BG3_Y = -gTasks[taskId].tYOffset;
|
||||||
|
|
||||||
gTasks[taskId].data[3] = gTasks[taskId].data[8];
|
gTasks[taskId].tTimer = gTasks[taskId].tShakeDelay;
|
||||||
if (--gTasks[taskId].data[2] == 0)
|
if (--gTasks[taskId].tNumShakes == 0)
|
||||||
{
|
{
|
||||||
gBattle_BG3_X = 0;
|
gBattle_BG3_X = 0;
|
||||||
gBattle_BG3_Y = 0;
|
gBattle_BG3_Y = 0;
|
||||||
@@ -826,26 +898,33 @@ static void sub_80BA4D0(u8 taskId)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
--gTasks[taskId].data[3];
|
gTasks[taskId].tTimer--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#undef tXOffset
|
||||||
|
#undef tYOffset
|
||||||
|
#undef tNumShakes
|
||||||
|
#undef tTimer
|
||||||
|
#undef tShakeDelay
|
||||||
|
|
||||||
static void AnimHitSplatBasic(struct Sprite *sprite)
|
static void AnimHitSplatBasic(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]);
|
StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]);
|
||||||
if (gBattleAnimArgs[2] == 0)
|
if (gBattleAnimArgs[2] == 0)
|
||||||
InitSpritePosToAnimAttacker(sprite, 1);
|
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||||
else
|
else
|
||||||
InitSpritePosToAnimTarget(sprite, TRUE);
|
InitSpritePosToAnimTarget(sprite, TRUE);
|
||||||
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
|
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
|
||||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Same as basic hit splat but takes a length of time to persist for (arg4)
|
||||||
static void AnimHitSplatPersistent(struct Sprite *sprite)
|
static void AnimHitSplatPersistent(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]);
|
StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]);
|
||||||
if (gBattleAnimArgs[2] == 0)
|
if (gBattleAnimArgs[2] == 0)
|
||||||
InitSpritePosToAnimAttacker(sprite, 1);
|
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||||
else
|
else
|
||||||
InitSpritePosToAnimTarget(sprite, TRUE);
|
InitSpritePosToAnimTarget(sprite, TRUE);
|
||||||
sprite->data[0] = gBattleAnimArgs[4];
|
sprite->data[0] = gBattleAnimArgs[4];
|
||||||
@@ -853,6 +932,8 @@ static void AnimHitSplatPersistent(struct Sprite *sprite)
|
|||||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSpriteAfterTimer);
|
StoreSpriteCallbackInData6(sprite, DestroyAnimSpriteAfterTimer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// For paired hit splats whose position is inverted when used by the opponent on the player.
|
||||||
|
// Used by Twineedle and Spike Cannon
|
||||||
static void AnimHitSplatHandleInvert(struct Sprite *sprite)
|
static void AnimHitSplatHandleInvert(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER && !IsContest())
|
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER && !IsContest())
|
||||||
@@ -865,8 +946,8 @@ static void AnimHitSplatRandom(struct Sprite *sprite)
|
|||||||
if (gBattleAnimArgs[1] == -1)
|
if (gBattleAnimArgs[1] == -1)
|
||||||
gBattleAnimArgs[1] = Random() & 3;
|
gBattleAnimArgs[1] = Random() & 3;
|
||||||
StartSpriteAffineAnim(sprite, gBattleAnimArgs[1]);
|
StartSpriteAffineAnim(sprite, gBattleAnimArgs[1]);
|
||||||
if (gBattleAnimArgs[0] == 0)
|
if (gBattleAnimArgs[0] == ANIM_ATTACKER)
|
||||||
InitSpritePosToAnimAttacker(sprite, 0);
|
InitSpritePosToAnimAttacker(sprite, FALSE);
|
||||||
else
|
else
|
||||||
InitSpritePosToAnimTarget(sprite, FALSE);
|
InitSpritePosToAnimTarget(sprite, FALSE);
|
||||||
sprite->x2 += (Random() % 48) - 24;
|
sprite->x2 += (Random() % 48) - 24;
|
||||||
@@ -889,8 +970,8 @@ static void AnimHitSplatOnMonEdge(struct Sprite *sprite)
|
|||||||
|
|
||||||
static void AnimCrossImpact(struct Sprite *sprite)
|
static void AnimCrossImpact(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
if (gBattleAnimArgs[2] == 0)
|
if (gBattleAnimArgs[2] == ANIM_ATTACKER)
|
||||||
InitSpritePosToAnimAttacker(sprite, 1);
|
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||||
else
|
else
|
||||||
InitSpritePosToAnimTarget(sprite, TRUE);
|
InitSpritePosToAnimTarget(sprite, TRUE);
|
||||||
sprite->data[0] = gBattleAnimArgs[3];
|
sprite->data[0] = gBattleAnimArgs[3];
|
||||||
@@ -901,14 +982,14 @@ static void AnimCrossImpact(struct Sprite *sprite)
|
|||||||
static void AnimFlashingHitSplat(struct Sprite *sprite)
|
static void AnimFlashingHitSplat(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]);
|
StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]);
|
||||||
if (gBattleAnimArgs[2] == 0)
|
if (gBattleAnimArgs[2] == ANIM_ATTACKER)
|
||||||
InitSpritePosToAnimAttacker(sprite, 1);
|
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||||
else
|
else
|
||||||
InitSpritePosToAnimTarget(sprite, TRUE);
|
InitSpritePosToAnimTarget(sprite, TRUE);
|
||||||
sprite->callback = sub_80BA7BC;
|
sprite->callback = AnimFlashingHitSplat_Step;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_80BA7BC(struct Sprite *sprite)
|
static void AnimFlashingHitSplat_Step(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
sprite->invisible ^= 1;
|
sprite->invisible ^= 1;
|
||||||
if (sprite->data[0]++ > 12)
|
if (sprite->data[0]++ > 12)
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ const u8 gBattleIntroRegOffsBgCnt[] = { REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, RE
|
|||||||
// 10: Enemy battler right
|
// 10: Enemy battler right
|
||||||
void AnimTask_BlendSelected(u8 taskId)
|
void AnimTask_BlendSelected(u8 taskId)
|
||||||
{
|
{
|
||||||
u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gBattleAnimArgs[0]);
|
u32 selectedPalettes = UnpackSelectedBattlePalettes(gBattleAnimArgs[0]);
|
||||||
|
|
||||||
selectedPalettes |= GetBattleMonSpritePalettesMask(
|
selectedPalettes |= GetBattleMonSpritePalettesMask(
|
||||||
(gBattleAnimArgs[0] >> 7) & 1,
|
(gBattleAnimArgs[0] >> 7) & 1,
|
||||||
@@ -79,7 +79,7 @@ void AnimTask_BlendExcept(u8 taskId)
|
|||||||
u8 animBattlers[2];
|
u8 animBattlers[2];
|
||||||
|
|
||||||
animBattlers[1] = 0xFF;
|
animBattlers[1] = 0xFF;
|
||||||
selectedPalettes = UnpackSelectedBattleAnimPalettes(1);
|
selectedPalettes = UnpackSelectedBattlePalettes(1);
|
||||||
switch (gBattleAnimArgs[0])
|
switch (gBattleAnimArgs[0])
|
||||||
{
|
{
|
||||||
case 2:
|
case 2:
|
||||||
@@ -122,7 +122,7 @@ void AnimTask_BlendExcept(u8 taskId)
|
|||||||
|
|
||||||
void AnimTask_SetCamouflageBlend(u8 taskId)
|
void AnimTask_SetCamouflageBlend(u8 taskId)
|
||||||
{
|
{
|
||||||
u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gBattleAnimArgs[0]);
|
u32 selectedPalettes = UnpackSelectedBattlePalettes(gBattleAnimArgs[0]);
|
||||||
|
|
||||||
switch (gBattleTerrain)
|
switch (gBattleTerrain)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user