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
|
||||
waitforvisualfinish
|
||||
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
|
||||
playsewithpan SE_M_REVERSAL, 192
|
||||
createsprite gReversalOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 0
|
||||
@@ -1873,7 +1873,7 @@ Move_SAFEGUARD::
|
||||
createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2,
|
||||
waitforvisualfinish
|
||||
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
|
||||
clearmonbg ANIM_ATK_PARTNER
|
||||
blendoff
|
||||
@@ -1965,7 +1965,7 @@ Move_PAY_DAY::
|
||||
Move_OUTRAGE::
|
||||
loadspritegfx ANIM_TAG_SMALL_EMBER
|
||||
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
|
||||
delay 0
|
||||
createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 1280, 0, 3
|
||||
@@ -2012,25 +2012,25 @@ Move_SPARK::
|
||||
loadspritegfx ANIM_TAG_IMPACT
|
||||
loadspritegfx ANIM_TAG_SPARK_2
|
||||
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
|
||||
createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 32, 24, 190, 12, 0, 1, 0
|
||||
delay 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
|
||||
delay 0
|
||||
createvisualtask AnimTask_CurseBlendEffect, 2, 3, -31, 1, 0, 0, 23551
|
||||
createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 0, 0, 23551
|
||||
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
|
||||
createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 100, 24, 60, 10, 0, 1, 0
|
||||
createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 170, 24, 42, 11, 0, 1, 1
|
||||
delay 0
|
||||
createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 238, 24, 165, 10, 0, 1, 1
|
||||
delay 0
|
||||
createvisualtask AnimTask_CurseBlendEffect, 2, 3, -31, 1, 0, 0, 23551
|
||||
createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 0, 0, 23551
|
||||
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
|
||||
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
|
||||
@@ -2042,14 +2042,14 @@ Move_SPARK::
|
||||
createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 16, 12, 224, 20, 2, 0
|
||||
delay 4
|
||||
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
|
||||
delay 4
|
||||
playsewithpan SE_M_HYPER_BEAM, 63
|
||||
createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 2
|
||||
createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1
|
||||
waitforvisualfinish
|
||||
createvisualtask AnimTask_CurseBlendEffect, 2, 4, -31, 2, 0, 6, 23551
|
||||
createvisualtask AnimTask_BlendColorCycle, 2, 4, -31, 2, 0, 6, 23551
|
||||
call ElectricityEffect
|
||||
waitforvisualfinish
|
||||
end
|
||||
@@ -2080,7 +2080,7 @@ Move_ATTRACT::
|
||||
createsprite gRedHeartRisingSpriteTemplate, ANIM_ATTACKER, 40, 112, 256, 90
|
||||
createsprite gRedHeartRisingSpriteTemplate, ANIM_ATTACKER, 40, 200, 272, 90
|
||||
delay 75
|
||||
createvisualtask AnimTask_CurseBlendEffect, 2, 4, 4, 4, 0, 10, 28479
|
||||
createvisualtask AnimTask_BlendColorCycle, 2, 4, 4, 4, 0, 10, 28479
|
||||
end
|
||||
|
||||
Move_GROWTH::
|
||||
@@ -2091,7 +2091,7 @@ Move_GROWTH::
|
||||
end
|
||||
|
||||
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
|
||||
createvisualtask AnimTask_ScaleMonAndRestore, 5, -3, -3, 16, 0, 0
|
||||
return
|
||||
@@ -3193,7 +3193,7 @@ Move_SPITE::
|
||||
playsewithpan SE_M_PSYBEAM, 192
|
||||
waitbgfadein
|
||||
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
|
||||
loopsewithpan SE_M_PSYBEAM, 63, 20, 3
|
||||
waitforvisualfinish
|
||||
@@ -3280,7 +3280,7 @@ Move_ENDURE::
|
||||
playsewithpan SE_M_DRAGON_RAGE, 192
|
||||
call EndureEffect
|
||||
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
|
||||
call EndureEffect
|
||||
delay 8
|
||||
@@ -4722,7 +4722,7 @@ Move_MIND_READER::
|
||||
createsprite gWhiteHaloSpriteTemplate, ANIM_ATTACKER, 5,
|
||||
delay 40
|
||||
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
|
||||
waitforvisualfinish
|
||||
clearmonbg 4
|
||||
@@ -4805,7 +4805,7 @@ Move_CONFUSION::
|
||||
call SetPsychicBackground
|
||||
setalpha 8, 8
|
||||
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
|
||||
playsewithpan SE_M_SUPERSONIC, 63
|
||||
createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 15, 1
|
||||
@@ -4822,7 +4822,7 @@ Move_PSYCHIC::
|
||||
call SetPsychicBackground
|
||||
setalpha 8, 8
|
||||
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
|
||||
loopsewithpan SE_M_SUPERSONIC, 63, 10, 3
|
||||
createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 15, 1
|
||||
@@ -4848,7 +4848,7 @@ FutureSight::
|
||||
call SetPsychicBackground
|
||||
setalpha 8, 8
|
||||
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
|
||||
waitforvisualfinish
|
||||
clearmonbg ANIM_ATK_PARTNER
|
||||
@@ -5244,7 +5244,7 @@ Move_SMOG::
|
||||
call SmogCloud
|
||||
delay 120
|
||||
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
|
||||
createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 15, 1
|
||||
waitforvisualfinish
|
||||
@@ -5552,7 +5552,7 @@ SolarBeamEnd::
|
||||
SolarBeamSetUp::
|
||||
monbg ANIM_ATK_PARTNER
|
||||
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
|
||||
call SolarBeamAbsorbEffect
|
||||
waitforvisualfinish
|
||||
@@ -6032,7 +6032,7 @@ Move_LEECH_LIFE::
|
||||
Move_SYNTHESIS::
|
||||
loadspritegfx ANIM_TAG_BLUE_STAR
|
||||
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
|
||||
call GrantingStarsEffect
|
||||
waitforvisualfinish
|
||||
@@ -6072,7 +6072,7 @@ Move_SLUDGE::
|
||||
createsprite gSludgeProjectileSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 0
|
||||
waitforvisualfinish
|
||||
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
|
||||
waitforvisualfinish
|
||||
end
|
||||
@@ -6090,7 +6090,7 @@ Move_SLUDGE_BOMB::
|
||||
call SludgeBombProjectile
|
||||
call SludgeBombProjectile
|
||||
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, -27, 44, 20
|
||||
createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 39, -28, 20
|
||||
@@ -6135,7 +6135,7 @@ Move_ACID::
|
||||
delay 15
|
||||
createvisualtask AnimTask_ShakeMon2, 5, 1, 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
|
||||
playsewithpan SE_M_BUBBLE, 63
|
||||
delay 10
|
||||
@@ -7053,7 +7053,7 @@ Move_MIST::
|
||||
call MistCloud
|
||||
call MistCloud
|
||||
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
|
||||
clearmonbg ANIM_ATK_PARTNER
|
||||
blendoff
|
||||
@@ -7224,7 +7224,7 @@ Move_POISON_GAS::
|
||||
createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0
|
||||
delay 40
|
||||
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
|
||||
blendoff
|
||||
clearmonbg ANIM_DEF_PARTNER
|
||||
@@ -7259,7 +7259,7 @@ Move_PSYBEAM::
|
||||
call PsybeamRings
|
||||
call PsybeamRings
|
||||
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
|
||||
@@ -7285,7 +7285,7 @@ Move_HYPNOSIS::
|
||||
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
|
||||
delay 1
|
||||
call UnsetPsychicBg
|
||||
@@ -7306,7 +7306,7 @@ Move_PSYWAVE::
|
||||
createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_TELEPORT, -64, 63, 2, 9, 0, 10
|
||||
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
|
||||
@@ -7443,7 +7443,7 @@ Move_NIGHT_SHADE::
|
||||
createvisualtask AnimTask_NightShadeClone, 5, 85
|
||||
delay 70
|
||||
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
|
||||
clearmonbg ANIM_ATTACKER
|
||||
delay 1
|
||||
@@ -7505,7 +7505,7 @@ Move_FOCUS_ENERGY::
|
||||
playsewithpan SE_M_DRAGON_RAGE, 192
|
||||
call EndureEffect
|
||||
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
|
||||
call EndureEffect
|
||||
delay 8
|
||||
@@ -7519,7 +7519,7 @@ Move_BIDE::
|
||||
|
||||
BattleAnimScript_Bide_Setup::
|
||||
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
|
||||
waitforvisualfinish
|
||||
end
|
||||
@@ -7697,7 +7697,7 @@ Move_RECOVER::
|
||||
monbg ANIM_ATK_PARTNER
|
||||
setalpha 12, 8
|
||||
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
|
||||
@@ -7738,7 +7738,7 @@ Move_MIMIC::
|
||||
setarg 7, 65535
|
||||
waitforvisualfinish
|
||||
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
|
||||
clearmonbg_23 3
|
||||
blendoff
|
||||
@@ -7807,7 +7807,7 @@ CurseStats::
|
||||
CurseStats1::
|
||||
playsewithpan SE_M_DRAGON_RAGE, 192
|
||||
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
|
||||
|
||||
Move_SOFT_BOILED::
|
||||
@@ -8055,7 +8055,7 @@ PresentHeal::
|
||||
Move_BATON_PASS::
|
||||
loadspritegfx ANIM_TAG_POKEBALL
|
||||
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,
|
||||
end
|
||||
|
||||
@@ -8303,7 +8303,7 @@ Move_WISH::
|
||||
Move_STOCKPILE::
|
||||
loadspritegfx ANIM_TAG_GRAY_ORB
|
||||
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,
|
||||
call StockpileAbsorb
|
||||
call StockpileAbsorb
|
||||
@@ -8469,7 +8469,7 @@ Move_SWEET_SCENT::
|
||||
call SweetScentEffect
|
||||
createsprite gSweetScentPetalSpriteTemplate, ANIM_ATTACKER, 2, 55, 0
|
||||
setpan 63
|
||||
createvisualtask AnimTask_CurseBlendEffect, 2, 20, 1, 5, 5, 13, 22207
|
||||
createvisualtask AnimTask_BlendColorCycle, 2, 20, 1, 5, 5, 13, 22207
|
||||
call SweetScentEffect
|
||||
waitforvisualfinish
|
||||
end
|
||||
@@ -8898,7 +8898,7 @@ Move_REVENGE::
|
||||
playsewithpan SE_M_TAKE_DOWN, 192
|
||||
createsprite gRevengeSmallScratchSpriteTemplate, ANIM_ATTACKER, 2, 10, -10
|
||||
waitforvisualfinish
|
||||
createvisualtask AnimTask_CurseBlendEffect, 2, 2, 0, 4, 2, 8, 31
|
||||
createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 4, 2, 8, 31
|
||||
waitforvisualfinish
|
||||
unloadspritegfx ANIM_TAG_PURPLE_SCRATCH
|
||||
loadspritegfx ANIM_TAG_PURPLE_SWIPE
|
||||
@@ -8928,7 +8928,7 @@ Move_POISON_FANG::
|
||||
delay 10
|
||||
createvisualtask AnimTask_ShakeMon, 3, 1, 3, 0, 10, 1
|
||||
waitforvisualfinish
|
||||
createvisualtask AnimTask_CurseBlendEffect, 2, 4, 0, 4, 0, 12, 26650
|
||||
createvisualtask AnimTask_BlendColorCycle, 2, 4, 0, 4, 0, 12, 26650
|
||||
call PoisonBubblesEffect
|
||||
waitforvisualfinish
|
||||
end
|
||||
@@ -9703,7 +9703,7 @@ Move_PSYCHO_BOOST::
|
||||
createvisualtask AnimTask_FadeScreenToWhite, 5,
|
||||
waitbgfadein
|
||||
delay 6
|
||||
createvisualtask AnimTask_CurseBlendEffect, 2, 1, 2, 8, 0, 10, 0
|
||||
createvisualtask AnimTask_BlendColorCycle, 2, 1, 2, 8, 0, 10, 0
|
||||
delay 0
|
||||
monbgprio_28 0
|
||||
setalpha 8, 8
|
||||
@@ -10438,7 +10438,7 @@ UnsetSolarBeamBg::
|
||||
Status_Poison::
|
||||
loopsewithpan SE_M_TOXIC, 63, 13, 6
|
||||
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
|
||||
|
||||
Status_Confusion::
|
||||
@@ -10858,7 +10858,7 @@ General_FocusPunchSetUp::
|
||||
playsewithpan SE_M_DRAGON_RAGE, 192
|
||||
call EndureEffect
|
||||
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
|
||||
call EndureEffect
|
||||
delay 8
|
||||
|
||||
@@ -478,7 +478,7 @@ void AnimTask_ShakeTargetBasedOnMovePowerOrDmg(u8 taskId);
|
||||
extern const struct SpriteTemplate gFlashingHitSplatSpriteTemplate;
|
||||
extern const struct SpriteTemplate gBasicHitSplatSpriteTemplate;
|
||||
extern const struct SpriteTemplate gWaterHitSplatSpriteTemplate;
|
||||
u32 UnpackSelectedBattleAnimPalettes(s16 selector);
|
||||
u32 UnpackSelectedBattlePalettes(s16 selector);
|
||||
void AnimTask_CurseBlendEffect(u8 taskId);
|
||||
void AnimTask_BlendColorCycleExclude(u8 taskId);
|
||||
void AnimTask_BlendColorCycleByTag(u8 taskId);
|
||||
|
||||
+267
-186
@@ -8,7 +8,7 @@
|
||||
static void AnimConfusionDuck(struct Sprite *sprite);
|
||||
static void AnimSimplePaletteBlend(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 AnimHitSplatBasic(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 AnimFlashingHitSplat(struct Sprite *sprite);
|
||||
static void AnimHitSplatPersistent(struct Sprite *sprite);
|
||||
static void AnimConfusionDuckStep(struct Sprite *sprite);
|
||||
static void AnimSimplePaletteBlendStep(struct Sprite *sprite);
|
||||
static void sub_80B9AD0(struct Sprite *sprite);
|
||||
static void sub_80B9B5C(struct Sprite *sprite);
|
||||
static void sub_80B9C2C(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount);
|
||||
static void sub_80B9C7C(u8 taskId);
|
||||
static void sub_80B9DA0(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount);
|
||||
static void sub_80B9DF0(u8 taskId);
|
||||
static void sub_80B9EA8(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount);
|
||||
static void sub_80B9F04(u8 taskId);
|
||||
static void sub_80B9FD8(u8 taskId);
|
||||
static void sub_80BA090(u8 taskId);
|
||||
static void sub_80BA3CC(void);
|
||||
static void sub_80BA320(struct Sprite *sprite);
|
||||
static void sub_80BA4D0(u8 taskId);
|
||||
static void sub_80BA7BC(struct Sprite *sprite);
|
||||
static void AnimConfusionDuck_Step(struct Sprite *sprite);
|
||||
static void AnimSimplePaletteBlend_Step(struct Sprite *sprite);
|
||||
static void AnimComplexPaletteBlend_Step1(struct Sprite *sprite);
|
||||
static void AnimComplexPaletteBlend_Step2(struct Sprite *sprite);
|
||||
static void BlendColorCycle(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount);
|
||||
static void AnimTask_BlendColorCycleLoop(u8 taskId);
|
||||
static void BlendColorCycleExclude(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount);
|
||||
static void AnimTask_BlendColorCycleExcludeLoop(u8 taskId);
|
||||
static void BlendColorCycleByTag(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount);
|
||||
static void AnimTask_BlendColorCycleByTagLoop(u8 taskId);
|
||||
static void AnimTask_FlashAnimTagWithColor_Step1(u8 taskId);
|
||||
static void AnimTask_FlashAnimTagWithColor_Step2(u8 taskId);
|
||||
static void AnimShakeMonOrBattleTerrain_UpdateCoordOffsetEnabled(void);
|
||||
static void AnimShakeMonOrBattleTerrain_Step(struct Sprite *sprite);
|
||||
static void AnimTask_ShakeBattleTerrain_Step(u8 taskId);
|
||||
static void AnimFlashingHitSplat_Step(struct Sprite *sprite);
|
||||
|
||||
|
||||
static const union AnimCmd sAnim_ConfusionDuck_0[] =
|
||||
@@ -92,7 +92,7 @@ const struct SpriteTemplate gComplexPaletteBlendSpriteTemplate =
|
||||
.callback = AnimComplexPaletteBlend,
|
||||
};
|
||||
|
||||
static const union AnimCmd gUnknown_83E7B54[] =
|
||||
static const union AnimCmd sAnim_CirclingSparkle[] =
|
||||
{
|
||||
ANIMCMD_FRAME(0, 3),
|
||||
ANIMCMD_FRAME(16, 3),
|
||||
@@ -102,20 +102,21 @@ static const union AnimCmd gUnknown_83E7B54[] =
|
||||
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,
|
||||
.paletteTag = ANIM_TAG_SPARKLE_4,
|
||||
.oam = &gOamData_AffineOff_ObjNormal_32x32,
|
||||
.anims = gUnknown_83E7B6C,
|
||||
.anims = sAnims_CirclingSparkle,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = sub_80B9B8C,
|
||||
.callback = AnimCirclingSparkle,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gShakeMonOrTerrainSpriteTemplate =
|
||||
@@ -275,11 +276,11 @@ static void AnimConfusionDuck(struct Sprite *sprite)
|
||||
StartSpriteAnim(sprite, 1);
|
||||
}
|
||||
sprite->data[3] = gBattleAnimArgs[4];
|
||||
sprite->callback = AnimConfusionDuckStep;
|
||||
sprite->callback = AnimConfusionDuck_Step;
|
||||
sprite->callback(sprite);
|
||||
}
|
||||
|
||||
static void AnimConfusionDuckStep(struct Sprite *sprite)
|
||||
static void AnimConfusionDuck_Step(struct Sprite *sprite)
|
||||
{
|
||||
sprite->x2 = Cos(sprite->data[0], 30);
|
||||
sprite->y2 = Sin(sprite->data[0], 10);
|
||||
@@ -300,36 +301,36 @@ static void AnimConfusionDuckStep(struct Sprite *sprite)
|
||||
// arg 4: blend color
|
||||
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]);
|
||||
sprite->invisible = TRUE;
|
||||
sprite->callback = AnimSimplePaletteBlendStep;
|
||||
sprite->callback = AnimSimplePaletteBlend_Step;
|
||||
}
|
||||
|
||||
// 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:
|
||||
// 0: battle background palettes (BG palettes 1, 2, and 3)
|
||||
// 1: gBattleAnimAttacker OBJ palette
|
||||
// 2: gBattleAnimTarget OBJ palette
|
||||
// 3: gBattleAnimAttacker partner OBJ palette
|
||||
// 4: gBattleAnimTarget partner OBJ palette
|
||||
// 5: BG palette 4
|
||||
// 6: BG palette 5
|
||||
u32 UnpackSelectedBattleAnimPalettes(s16 selector)
|
||||
// 0: F_PAL_BG, battle background palettes (BG palettes 1, 2, and 3)
|
||||
// 1: F_PAL_ATTACKER, gBattleAnimAttacker OBJ palette
|
||||
// 2: F_PAL_TARGET, gBattleAnimTarget OBJ palette
|
||||
// 3: F_PAL_ATK_PARTNER, gBattleAnimAttacker partner OBJ palette
|
||||
// 4: F_PAL_DEF_PARTNER, gBattleAnimTarget partner OBJ palette
|
||||
// 5: F_PAL_ANIM_1, BG palette 8
|
||||
// 6: F_PAL_ANIM_2, BG palette 9
|
||||
u32 UnpackSelectedBattlePalettes(s16 selector)
|
||||
{
|
||||
u8 battleBackground = selector & 1;
|
||||
u8 attacker = (selector >> 1) & 1;
|
||||
u8 target = (selector >> 2) & 1;
|
||||
u8 attackerPartner = (selector >> 3) & 1;
|
||||
u8 targetPartner = (selector >> 4) & 1;
|
||||
u8 arg5 = (selector >> 5) & 1;
|
||||
u8 arg6 = (selector >> 6) & 1;
|
||||
u8 anim1 = (selector >> 5) & 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)
|
||||
DestroyAnimSprite(sprite);
|
||||
@@ -347,13 +348,13 @@ static void AnimComplexPaletteBlend(struct Sprite *sprite)
|
||||
sprite->data[5] = gBattleAnimArgs[5];
|
||||
sprite->data[6] = gBattleAnimArgs[6];
|
||||
sprite->data[7] = gBattleAnimArgs[0];
|
||||
selectedPalettes = UnpackSelectedBattleAnimPalettes(sprite->data[7]);
|
||||
selectedPalettes = UnpackSelectedBattlePalettes(sprite->data[7]);
|
||||
BlendPalettes(selectedPalettes, gBattleAnimArgs[4], gBattleAnimArgs[3]);
|
||||
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;
|
||||
|
||||
@@ -366,10 +367,10 @@ static void sub_80B9AD0(struct Sprite *sprite)
|
||||
return;
|
||||
if (sprite->data[2] == 0)
|
||||
{
|
||||
sprite->callback = sub_80B9B5C;
|
||||
sprite->callback = AnimComplexPaletteBlend_Step2;
|
||||
return;
|
||||
}
|
||||
selectedPalettes = UnpackSelectedBattleAnimPalettes(sprite->data[7]);
|
||||
selectedPalettes = UnpackSelectedBattlePalettes(sprite->data[7]);
|
||||
if (sprite->data[1] & 0x100)
|
||||
BlendPalettes(selectedPalettes, sprite->data[4], sprite->data[3]);
|
||||
else
|
||||
@@ -379,19 +380,19 @@ static void sub_80B9AD0(struct Sprite *sprite)
|
||||
--sprite->data[2];
|
||||
}
|
||||
|
||||
static void sub_80B9B5C(struct Sprite *sprite)
|
||||
static void AnimComplexPaletteBlend_Step2(struct Sprite *sprite)
|
||||
{
|
||||
u32 selectedPalettes;
|
||||
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
selectedPalettes = UnpackSelectedBattleAnimPalettes(sprite->data[7]);
|
||||
selectedPalettes = UnpackSelectedBattlePalettes(sprite->data[7]);
|
||||
BlendPalettes(selectedPalettes, 0, 0);
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_80B9B8C(struct Sprite *sprite)
|
||||
static void AnimCirclingSparkle(struct Sprite *sprite)
|
||||
{
|
||||
sprite->x += gBattleAnimArgs[0];
|
||||
sprite->y += gBattleAnimArgs[1];
|
||||
@@ -406,53 +407,71 @@ static void sub_80B9B8C(struct Sprite *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].data[1] = gBattleAnimArgs[1];
|
||||
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_80B9C2C(taskId, 0, gTasks[taskId].data[4]);
|
||||
gTasks[taskId].func = sub_80B9C7C;
|
||||
gTasks[taskId].tPalSelector = 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;
|
||||
BlendColorCycle(taskId, 0, gTasks[taskId].tTargetBlendY);
|
||||
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]);
|
||||
|
||||
BeginNormalPaletteFade(selectedPalettes,
|
||||
gTasks[taskId].data[1],
|
||||
initialBlendAmount,
|
||||
targetBlendAmount,
|
||||
gTasks[taskId].data[5]);
|
||||
--gTasks[taskId].data[2];
|
||||
gTasks[taskId].data[8] ^= 1;
|
||||
u32 selectedPalettes = UnpackSelectedBattlePalettes(gTasks[taskId].tPalSelector);
|
||||
BeginNormalPaletteFade(
|
||||
selectedPalettes,
|
||||
gTasks[taskId].tDelay,
|
||||
startBlendAmount,
|
||||
targetBlendAmount,
|
||||
gTasks[taskId].tBlendColor);
|
||||
|
||||
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 (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];
|
||||
targetBlendAmount = gTasks[taskId].data[4];
|
||||
// Blend to designated color
|
||||
startBlendAmount = gTasks[taskId].tInitialBlendY;
|
||||
targetBlendAmount = gTasks[taskId].tTargetBlendY;
|
||||
}
|
||||
else
|
||||
{
|
||||
initialBlendAmount = gTasks[taskId].data[4];
|
||||
targetBlendAmount = gTasks[taskId].data[3];
|
||||
// Blend back to original color
|
||||
startBlendAmount = gTasks[taskId].tTargetBlendY;
|
||||
targetBlendAmount = gTasks[taskId].tInitialBlendY;
|
||||
}
|
||||
if (gTasks[taskId].data[2] == 1)
|
||||
|
||||
if (gTasks[taskId].tNumBlends == 1)
|
||||
targetBlendAmount = 0;
|
||||
sub_80B9C2C(taskId, initialBlendAmount, targetBlendAmount);
|
||||
|
||||
BlendColorCycle(taskId, startBlendAmount, targetBlendAmount);
|
||||
}
|
||||
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)
|
||||
{
|
||||
s32 battler;
|
||||
int battler;
|
||||
u32 selectedPalettes = 0;
|
||||
|
||||
gTasks[taskId].data[0] = gBattleAnimArgs[0];
|
||||
gTasks[taskId].data[1] = gBattleAnimArgs[1];
|
||||
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;
|
||||
for (battler = 0; battler < gBattlersCount; ++battler)
|
||||
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 = 0;
|
||||
|
||||
for (battler = 0; battler < gBattlersCount; battler++)
|
||||
{
|
||||
if (battler != gBattleAnimAttacker && battler != gBattleAnimTarget)
|
||||
selectedPalettes |= 1 << (battler + 16);
|
||||
}
|
||||
|
||||
if (gBattleAnimArgs[0] == 1)
|
||||
selectedPalettes |= 0xE;
|
||||
gTasks[taskId].data[9] = selectedPalettes >> 16;
|
||||
gTasks[taskId].data[10] = selectedPalettes & 0xFF;
|
||||
sub_80B9DA0(taskId, 0, gTasks[taskId].data[4]);
|
||||
gTasks[taskId].func = sub_80B9DF0;
|
||||
|
||||
gTasks[taskId].tPalSelectorHi = selectedPalettes >> 16;
|
||||
gTasks[taskId].tPalSelectorLo = selectedPalettes & 0xFF;
|
||||
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];
|
||||
|
||||
BeginNormalPaletteFade(selectedPalettes,
|
||||
gTasks[taskId].data[1],
|
||||
initialBlendAmount,
|
||||
targetBlendAmount,
|
||||
gTasks[taskId].data[5]);
|
||||
--gTasks[taskId].data[2];
|
||||
gTasks[taskId].data[8] ^= 1;
|
||||
u32 selectedPalettes = ((u16)gTasks[taskId].tPalSelectorHi << 16) | (u16)gTasks[taskId].tPalSelectorLo;
|
||||
BeginNormalPaletteFade(
|
||||
selectedPalettes,
|
||||
gTasks[taskId].tDelay,
|
||||
startBlendAmount,
|
||||
targetBlendAmount,
|
||||
gTasks[taskId].tBlendColor);
|
||||
|
||||
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 (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];
|
||||
targetBlendAmount = gTasks[taskId].data[4];
|
||||
// Blend to designated color
|
||||
startBlendAmount = gTasks[taskId].tInitialBlendY;
|
||||
targetBlendAmount = gTasks[taskId].tTargetBlendY;
|
||||
}
|
||||
else
|
||||
{
|
||||
initialBlendAmount = gTasks[taskId].data[4];
|
||||
targetBlendAmount = gTasks[taskId].data[3];
|
||||
// Blend back to original color
|
||||
startBlendAmount = gTasks[taskId].tTargetBlendY;
|
||||
targetBlendAmount = gTasks[taskId].tInitialBlendY;
|
||||
}
|
||||
|
||||
if (gTasks[taskId].data[2] == 1)
|
||||
if (gTasks[taskId].tNumBlends == 1)
|
||||
targetBlendAmount = 0;
|
||||
sub_80B9DA0(taskId, initialBlendAmount, targetBlendAmount);
|
||||
|
||||
BlendColorCycleExclude(taskId, startBlendAmount, targetBlendAmount);
|
||||
}
|
||||
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)
|
||||
{
|
||||
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];
|
||||
gTasks[taskId].data[1] = gBattleAnimArgs[1];
|
||||
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;
|
||||
BlendColorCycleByTag(taskId, 0, gTasks[taskId].tTargetBlendY);
|
||||
gTasks[taskId].func = AnimTask_BlendColorCycleByTagLoop;
|
||||
}
|
||||
|
||||
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]);
|
||||
|
||||
BeginNormalPaletteFade(1 << (paletteIndex + 16),
|
||||
gTasks[taskId].data[1],
|
||||
initialBlendAmount,
|
||||
targetBlendAmount,
|
||||
gTasks[taskId].data[5]);
|
||||
--gTasks[taskId].data[2];
|
||||
gTasks[taskId].data[8] ^= 1;
|
||||
u8 paletteIndex = IndexOfSpritePaletteTag(gTasks[taskId].tPalTag);
|
||||
BeginNormalPaletteFade(
|
||||
1 << (paletteIndex + 16),
|
||||
gTasks[taskId].tDelay,
|
||||
startBlendAmount,
|
||||
targetBlendAmount,
|
||||
gTasks[taskId].tBlendColor);
|
||||
|
||||
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 (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];
|
||||
targetBlendAmount = gTasks[taskId].data[4];
|
||||
// Blend to designated color
|
||||
startBlendAmount = gTasks[taskId].tInitialBlendY;
|
||||
targetBlendAmount = gTasks[taskId].tTargetBlendY;
|
||||
}
|
||||
else
|
||||
{
|
||||
initialBlendAmount = gTasks[taskId].data[4];
|
||||
targetBlendAmount = gTasks[taskId].data[3];
|
||||
// Blend back to original color
|
||||
startBlendAmount = gTasks[taskId].tTargetBlendY;
|
||||
targetBlendAmount = gTasks[taskId].tInitialBlendY;
|
||||
}
|
||||
|
||||
if (gTasks[taskId].data[2] == 1)
|
||||
if (gTasks[taskId].tNumBlends == 1)
|
||||
targetBlendAmount = 0;
|
||||
sub_80B9EA8(taskId, initialBlendAmount, targetBlendAmount);
|
||||
|
||||
BlendColorCycleByTag(taskId, startBlendAmount, targetBlendAmount);
|
||||
}
|
||||
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)
|
||||
{
|
||||
u8 paletteIndex;
|
||||
@@ -603,10 +646,10 @@ void AnimTask_FlashAnimTagWithColor(u8 taskId)
|
||||
gBattleAnimArgs[4],
|
||||
gBattleAnimArgs[4],
|
||||
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;
|
||||
|
||||
@@ -619,7 +662,7 @@ static void sub_80B9FD8(u8 taskId)
|
||||
return;
|
||||
if (gTasks[taskId].data[2] == 0)
|
||||
{
|
||||
gTasks[taskId].func = sub_80BA090;
|
||||
gTasks[taskId].func = AnimTask_FlashAnimTagWithColor_Step2;
|
||||
return;
|
||||
}
|
||||
selectedPalettes = 1 << (IndexOfSpritePaletteTag(gTasks[taskId].data[7]) + 16);
|
||||
@@ -640,7 +683,7 @@ static void sub_80B9FD8(u8 taskId)
|
||||
--gTasks[taskId].data[2];
|
||||
}
|
||||
|
||||
static void sub_80BA090(u8 taskId)
|
||||
static void AnimTask_FlashAnimTagWithColor_Step2(u8 taskId)
|
||||
{
|
||||
u32 selectedPalettes;
|
||||
|
||||
@@ -659,7 +702,7 @@ void AnimTask_InvertScreenColor(u8 taskId)
|
||||
u8 targetBattler = gBattleAnimTarget;
|
||||
|
||||
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)
|
||||
selectedPalettes |= (0x10000 << attackerBattler);
|
||||
if (gBattleAnimArgs[2] & 0x100)
|
||||
@@ -668,8 +711,16 @@ void AnimTask_InvertScreenColor(u8 taskId)
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
|
||||
// not used
|
||||
static void sub_80BA16C(u8 taskId)
|
||||
// Unused
|
||||
#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 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)
|
||||
{
|
||||
u16 var0;
|
||||
@@ -737,11 +797,11 @@ static void AnimShakeMonOrBattleTerrain(struct Sprite *sprite)
|
||||
sprite->data[5] = gBattleAnimArgs[3];
|
||||
var0 = sprite->data[5] - 2;
|
||||
if (var0 < 2)
|
||||
sub_80BA3CC();
|
||||
sprite->callback = sub_80BA320;
|
||||
AnimShakeMonOrBattleTerrain_UpdateCoordOffsetEnabled();
|
||||
sprite->callback = AnimShakeMonOrBattleTerrain_Step;
|
||||
}
|
||||
|
||||
static void sub_80BA320(struct Sprite *sprite)
|
||||
static void AnimShakeMonOrBattleTerrain_Step(struct Sprite *sprite)
|
||||
{
|
||||
u8 i;
|
||||
u16 var0;
|
||||
@@ -766,58 +826,70 @@ static void sub_80BA320(struct Sprite *sprite)
|
||||
var0 = sprite->data[5] - 2;
|
||||
if (var0 < 2)
|
||||
for (i = 0; i < gBattlersCount; ++i)
|
||||
gSprites[gBattlerSpriteIds[i]].coordOffsetEnabled = 0;
|
||||
gSprites[gBattlerSpriteIds[i]].coordOffsetEnabled = FALSE;
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_80BA3CC(void)
|
||||
static void AnimShakeMonOrBattleTerrain_UpdateCoordOffsetEnabled(void)
|
||||
{
|
||||
gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = 0;
|
||||
gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = 0;
|
||||
gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = FALSE;
|
||||
gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = FALSE;
|
||||
if (gBattleAnimArgs[4] == 2)
|
||||
{
|
||||
gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = 1;
|
||||
gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = 1;
|
||||
gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = TRUE;
|
||||
gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gBattleAnimArgs[4] == 0)
|
||||
gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = 1;
|
||||
gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = TRUE;
|
||||
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)
|
||||
{
|
||||
gTasks[taskId].data[0] = gBattleAnimArgs[0];
|
||||
gTasks[taskId].data[1] = gBattleAnimArgs[1];
|
||||
gTasks[taskId].data[2] = gBattleAnimArgs[2];
|
||||
gTasks[taskId].data[3] = gBattleAnimArgs[3];
|
||||
gTasks[taskId].data[8] = gBattleAnimArgs[3];
|
||||
gTasks[taskId].tXOffset = gBattleAnimArgs[0];
|
||||
gTasks[taskId].tYOffset = gBattleAnimArgs[1];
|
||||
gTasks[taskId].tNumShakes = gBattleAnimArgs[2];
|
||||
gTasks[taskId].tTimer = gBattleAnimArgs[3];
|
||||
gTasks[taskId].tShakeDelay = gBattleAnimArgs[3];
|
||||
gBattle_BG3_X = gBattleAnimArgs[0];
|
||||
gBattle_BG3_Y = gBattleAnimArgs[1];
|
||||
gTasks[taskId].func = sub_80BA4D0;
|
||||
gTasks[taskId].func = AnimTask_ShakeBattleTerrain_Step;
|
||||
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])
|
||||
gBattle_BG3_X = -gTasks[taskId].data[0];
|
||||
if (gBattle_BG3_X == gTasks[taskId].tXOffset)
|
||||
gBattle_BG3_X = -gTasks[taskId].tXOffset;
|
||||
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;
|
||||
else
|
||||
gBattle_BG3_Y = -gTasks[taskId].data[1];
|
||||
gBattle_BG3_Y = -gTasks[taskId].tYOffset;
|
||||
|
||||
gTasks[taskId].data[3] = gTasks[taskId].data[8];
|
||||
if (--gTasks[taskId].data[2] == 0)
|
||||
gTasks[taskId].tTimer = gTasks[taskId].tShakeDelay;
|
||||
if (--gTasks[taskId].tNumShakes == 0)
|
||||
{
|
||||
gBattle_BG3_X = 0;
|
||||
gBattle_BG3_Y = 0;
|
||||
@@ -826,26 +898,33 @@ static void sub_80BA4D0(u8 taskId)
|
||||
}
|
||||
else
|
||||
{
|
||||
--gTasks[taskId].data[3];
|
||||
gTasks[taskId].tTimer--;
|
||||
}
|
||||
}
|
||||
|
||||
#undef tXOffset
|
||||
#undef tYOffset
|
||||
#undef tNumShakes
|
||||
#undef tTimer
|
||||
#undef tShakeDelay
|
||||
|
||||
static void AnimHitSplatBasic(struct Sprite *sprite)
|
||||
{
|
||||
StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]);
|
||||
if (gBattleAnimArgs[2] == 0)
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
else
|
||||
InitSpritePosToAnimTarget(sprite, TRUE);
|
||||
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
}
|
||||
|
||||
// Same as basic hit splat but takes a length of time to persist for (arg4)
|
||||
static void AnimHitSplatPersistent(struct Sprite *sprite)
|
||||
{
|
||||
StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]);
|
||||
if (gBattleAnimArgs[2] == 0)
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
else
|
||||
InitSpritePosToAnimTarget(sprite, TRUE);
|
||||
sprite->data[0] = gBattleAnimArgs[4];
|
||||
@@ -853,6 +932,8 @@ static void AnimHitSplatPersistent(struct Sprite *sprite)
|
||||
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)
|
||||
{
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER && !IsContest())
|
||||
@@ -865,8 +946,8 @@ static void AnimHitSplatRandom(struct Sprite *sprite)
|
||||
if (gBattleAnimArgs[1] == -1)
|
||||
gBattleAnimArgs[1] = Random() & 3;
|
||||
StartSpriteAffineAnim(sprite, gBattleAnimArgs[1]);
|
||||
if (gBattleAnimArgs[0] == 0)
|
||||
InitSpritePosToAnimAttacker(sprite, 0);
|
||||
if (gBattleAnimArgs[0] == ANIM_ATTACKER)
|
||||
InitSpritePosToAnimAttacker(sprite, FALSE);
|
||||
else
|
||||
InitSpritePosToAnimTarget(sprite, FALSE);
|
||||
sprite->x2 += (Random() % 48) - 24;
|
||||
@@ -889,8 +970,8 @@ static void AnimHitSplatOnMonEdge(struct Sprite *sprite)
|
||||
|
||||
static void AnimCrossImpact(struct Sprite *sprite)
|
||||
{
|
||||
if (gBattleAnimArgs[2] == 0)
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
if (gBattleAnimArgs[2] == ANIM_ATTACKER)
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
else
|
||||
InitSpritePosToAnimTarget(sprite, TRUE);
|
||||
sprite->data[0] = gBattleAnimArgs[3];
|
||||
@@ -901,14 +982,14 @@ static void AnimCrossImpact(struct Sprite *sprite)
|
||||
static void AnimFlashingHitSplat(struct Sprite *sprite)
|
||||
{
|
||||
StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]);
|
||||
if (gBattleAnimArgs[2] == 0)
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
if (gBattleAnimArgs[2] == ANIM_ATTACKER)
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
else
|
||||
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;
|
||||
if (sprite->data[0]++ > 12)
|
||||
|
||||
@@ -52,7 +52,7 @@ const u8 gBattleIntroRegOffsBgCnt[] = { REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, RE
|
||||
// 10: Enemy battler right
|
||||
void AnimTask_BlendSelected(u8 taskId)
|
||||
{
|
||||
u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gBattleAnimArgs[0]);
|
||||
u32 selectedPalettes = UnpackSelectedBattlePalettes(gBattleAnimArgs[0]);
|
||||
|
||||
selectedPalettes |= GetBattleMonSpritePalettesMask(
|
||||
(gBattleAnimArgs[0] >> 7) & 1,
|
||||
@@ -79,7 +79,7 @@ void AnimTask_BlendExcept(u8 taskId)
|
||||
u8 animBattlers[2];
|
||||
|
||||
animBattlers[1] = 0xFF;
|
||||
selectedPalettes = UnpackSelectedBattleAnimPalettes(1);
|
||||
selectedPalettes = UnpackSelectedBattlePalettes(1);
|
||||
switch (gBattleAnimArgs[0])
|
||||
{
|
||||
case 2:
|
||||
@@ -122,7 +122,7 @@ void AnimTask_BlendExcept(u8 taskId)
|
||||
|
||||
void AnimTask_SetCamouflageBlend(u8 taskId)
|
||||
{
|
||||
u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gBattleAnimArgs[0]);
|
||||
u32 selectedPalettes = UnpackSelectedBattlePalettes(gBattleAnimArgs[0]);
|
||||
|
||||
switch (gBattleTerrain)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user