diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index c3afb5a23..cddf07fc6 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -308,7 +308,7 @@ gBattleAnimMove_NaturalGift:: createvisualtask AnimTask_DragonDanceWaver, 5 playsewithpan SE_M_TELEPORT, -64 delay 8 - createvisualtask AnimTask_BlendPalInAndOutByTag, 5, 10249, 19456, 14, 0, 3 + createvisualtask AnimTask_BlendPalInAndOutByTag, 5, ANIM_TAG_HOLLOW_ORB, 19456, 14, 0, 3 createsprite gDragonDanceOrbSpriteTemplate, ANIM_ATTACKER, 2, 0 createsprite gDragonDanceOrbSpriteTemplate, ANIM_ATTACKER, 2, 43 createsprite gDragonDanceOrbSpriteTemplate, ANIM_ATTACKER, 2, 85 @@ -932,7 +932,7 @@ gBattleAnimMove_Punishment:: monbg ANIM_TARGET setalpha 12, 8 playsewithpan 155, SOUND_PAN_TARGET - createsprite gPunishmentSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 0 + createsprite gPunishmentSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 0 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish clearmonbg ANIM_TARGET @@ -952,7 +952,7 @@ gBattleAnimMove_Punishment:: gBattleAnimMove_LastResort:: fadetobg BG_COSMIC waitbgfadeout - createvisualtask AnimTask_StartSlidingBg, 2, 4, 0, 128, 0, -1 + createvisualtask AnimTask_StartSlidingBg, 2, 0, 128, 0, -1 waitbgfadein loadspritegfx ANIM_TAG_IMPACT playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER @@ -963,19 +963,19 @@ gBattleAnimMove_LastResort:: waitplaysewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER, 8 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 18, 6, 2, 4 waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_TARGET, 2, 1, 0, 16, 16, RGB_WHITE - createsprite gSlideMonToOffsetSpriteTemplate, ANIM_TARGET, 2, 0, 20, 0, 0, 4 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 16, 16, RGB_WHITE + createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, 0, 0, 4 delay 3 waitforvisualfinish playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 132, -10, 0, 1, 0 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_TARGET, 2, 1, -32, 0, 0, 3 waitforvisualfinish - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_ATTACKER, 0 - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_TARGET, 0 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_ATTACKER, 1 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 4, 0, 12, 1 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 4, 0, 12, 1 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_TARGET, 2, 1, 2, 16, 0, RGB_WHITE + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 16, 0, RGB_WHITE waitforvisualfinish createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_ATTACKER, 1 createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_TARGET, 1 @@ -1005,9 +1005,9 @@ gBattleAnimMove_SuckerPunch:: loadspritegfx ANIM_TAG_POISON_JAB loadspritegfx ANIM_TAG_IMPACT createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, 0, 0, 4 - createsprite gSuckerPunchSpriteTemplate, ANIM_TARGET, 130, -18, 5, 40, 8, 160, 0 + createsprite gSuckerPunchSpriteTemplate, ANIM_TARGET, 2, -18, 5, 40, 8, 160, 0 delay 4 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 130, -8, 8, 1, 2 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -8, 8, 1, 2 createvisualtask AnimTask_RotateMonSpriteToSide, 2, 6, 384, ANIM_TARGET, 2 playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish @@ -1111,11 +1111,11 @@ gBattleAnimGeneral_AquaRingHeal:: createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 12, 0, 25, 0 setalpha 8, 8 playsewithpan SE_M_MILK_DRINK, SOUND_PAN_ATTACKER - createsprite gGuardRingSpriteTemplate, 2, 0 + createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 0 delay 4 - createsprite gGuardRingSpriteTemplate, 2, 0 + createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 0 delay 4 - createsprite gGuardRingSpriteTemplate, 2, 0 + createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 0 waitforvisualfinish playsewithpan SE_SHINY, SOUND_PAN_ATTACKER createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATK_SIDE, 0, 2, 0, 10, RGB_WHITE @@ -1198,33 +1198,33 @@ gBattleAnimMove_FlareBlitz:: createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 22, 1 createvisualtask AnimTask_BlendMonInAndOut, 3, ANIM_TARGET, RGB_RED, 12, 1, 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 0 - createsprite gFireSpreadSpriteTemplate, ANIM_TARGET, 129, 0, 10, 192, 176, 40 + createsprite gFireSpreadSpriteTemplate, ANIM_TARGET, 1, 0, 10, 192, 176, 40 playsewithpan SE_M_COMET_PUNCH, +63 delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 24, 8, 1, 0 createvisualtask AnimTask_BlendMonInAndOut, 3, ANIM_TARGET, RGB_RED, 12, 1, 1 - createsprite gFireSpreadSpriteTemplate, ANIM_TARGET, 129, 0, 10, -192, 240, 40 + createsprite gFireSpreadSpriteTemplate, ANIM_TARGET, 1, 0, 10, -192, 240, 40 playsewithpan SE_M_COMET_PUNCH, +63 delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -24, -16, 1, 0 createvisualtask AnimTask_BlendMonInAndOut, 3, ANIM_TARGET, RGB_RED, 12, 1, 1 - createsprite gFireSpreadSpriteTemplate, ANIM_TARGET, 129, 0, 10, 192, -160, 40 + createsprite gFireSpreadSpriteTemplate, ANIM_TARGET, 1, 0, 10, 192, -160, 40 playsewithpan SE_M_COMET_PUNCH, +63 delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 8, 4, 1, 0 createvisualtask AnimTask_BlendMonInAndOut, 3, ANIM_TARGET, RGB_RED, 12, 1, 1 - createsprite gFireSpreadSpriteTemplate, ANIM_TARGET, 129, 0, 10, -192, -112, 40 + createsprite gFireSpreadSpriteTemplate, ANIM_TARGET, 1, 0, 10, -192, -112, 40 playsewithpan SE_M_COMET_PUNCH, +63 delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -16, 19, 1, 0 createvisualtask AnimTask_BlendMonInAndOut, 3, ANIM_TARGET, RGB_RED, 12, 1, 1 - createsprite gFireSpreadSpriteTemplate, ANIM_TARGET, 129, 0, 10, 160, 48, 40 + createsprite gFireSpreadSpriteTemplate, ANIM_TARGET, 1, 0, 10, 160, 48, 40 playsewithpan SE_M_COMET_PUNCH, +63 delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 18, -18, 1, 0 createvisualtask AnimTask_BlendMonInAndOut, 3, ANIM_TARGET, RGB_RED, 12, 1, 1 - createsprite gFireSpreadSpriteTemplate, ANIM_TARGET, 129, 0, 10, -224, -32, 40 - createsprite gFireSpreadSpriteTemplate, ANIM_TARGET, 129, 0, 10, 112, -128, 40 + createsprite gFireSpreadSpriteTemplate, ANIM_TARGET, 1, 0, 10, -224, -32, 40 + createsprite gFireSpreadSpriteTemplate, ANIM_TARGET, 1, 0, 10, 112, -128, 40 playsewithpan SE_M_COMET_PUNCH, +63 createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 2, 0, 0, RGB_BLACK playsewithpan SE_M_COMET_PUNCH, +63 @@ -1246,10 +1246,10 @@ gBattleAnimMove_ForcePalm:: splitbgprio ANIM_TARGET setalpha 12, 8 playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET - createsprite gKarateChopSpriteTemplate, ANIM_TARGET, 2, -16, 0, 0, 0, 10, 1, 3, 0 + createsprite gKarateChopSpriteTemplate, ANIM_ATTACKER, 2, -16, 0, 0, 0, 10, 1, 3, 0 waitforvisualfinish playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET - createsprite gForcePalmSpriteTemplate, ANIM_TARGET 3, 0, 0, 1, 2 + createsprite gForcePalmSpriteTemplate, ANIM_ATTACKER 3, 0, 0, 1, 2 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 4, 0, 6, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -1487,17 +1487,17 @@ gBattleAnimMove_AquaTail:: createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 6 delay 4 playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET - createsprite gAquaTailKnockOffSpriteTemplate, ANIM_ATTACKER, 130, -16, -16 + createsprite gAquaTailKnockOffSpriteTemplate, ANIM_ATTACKER, 2, -16, -16 delay 8 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_TARGET, 2, 31, 5, 1, RGB_WHITE, 10, 0, 0 - createsprite gAquaTailHitSpriteTemplate, ANIM_TARGET, 131, 0, 0, 1, 2 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 5, 1, RGB_WHITE, 10, 0, 0 + createsprite gAquaTailHitSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 2 playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET - createsprite gSlideMonToOffsetSpriteTemplate, ANIM_TARGET, 2, ANIM_TARGET, -12, 10, 0, 3 + createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, -12, 10, 0, 3 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, ANIM_ATTACKER, 0, 5 delay 3 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 0, 3, 6, 1 delay 5 - createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_TARGET, 2, ANIM_TARGET, 0, 6 + createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 0, 6 delay 10 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -1640,7 +1640,7 @@ gBattleAnimMove_DragonPulse:: clearmonbg ANIM_TARGET end DragonPulseParticle: - createsprite gDragonPulseSpriteTemplate, ANIM_ATTACKER, 130, 16, 0, 0, 0, 13, 0 + createsprite gDragonPulseSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 13, 0 delay 4 return @@ -1652,21 +1652,21 @@ gBattleAnimMove_DragonRush:: createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 6 delay 4 playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET - createsprite gDragonRushSpriteTemplate, ANIM_ATTACKER, 131, -16, -16 + createsprite gDragonRushSpriteTemplate, ANIM_ATTACKER, 3, -16, -16 delay 8 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_TARGET, 2, 31, 5, 1, RGB_WHITE, 10, 0, 0 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 5, 1, RGB_WHITE, 10, 0, 0 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 5, 1 waitforvisualfinish playsewithpan 131, SOUND_PAN_TARGET - createsprite gRockFragmentSpriteTemplate, ANIM_TARGET, 2, 0, 0, 20, 24, 14, 2 - createsprite gRockFragmentSpriteTemplate, ANIM_TARGET, 2, 5, 0, -20, 24, 14, 1 - createsprite gRockFragmentSpriteTemplate, ANIM_TARGET, 2, 0, 5, 20, -24, 14, 2 - createsprite gRockFragmentSpriteTemplate, ANIM_TARGET, 2, -5, 0, 20, 24, 14, 2 - createsprite gRockFragmentSpriteTemplate, ANIM_TARGET, 2, 0, -5, 30, 18, 8, 2 - createsprite gRockFragmentSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, -18, 8, 2 - createsprite gRockFragmentSpriteTemplate, ANIM_TARGET, 2, 0, 0, -30, 18, 8, 2 - createsprite gRockFragmentSpriteTemplate, ANIM_TARGET, 2, 0, 0, -30, -18, 8, 2 + createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 20, 24, 14, 2 + createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 5, 0, -20, 24, 14, 1 + createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 0, 5, 20, -24, 14, 2 + createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, -5, 0, 20, 24, 14, 2 + createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 0, -5, 30, 18, 8, 2 + createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 30, -18, 8, 2 + createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, -30, 18, 8, 2 + createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, -30, -18, 8, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 7, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -1812,29 +1812,28 @@ gBattleAnimMove_BraveBird:: gBattleAnimMove_EarthPower:: loadspritegfx ANIM_TAG_SMALL_EMBER loadspritegfx ANIM_TAG_FIRE_PLUME - createvisualtask AnimTask_HorizontalShake, 3, ANIM_DEF_PARTNER, 10, 50 createvisualtask AnimTask_HorizontalShake, 3, ANIM_TARGET, 10, 50 playsewithpan SE_M_EARTHQUAKE, SOUND_PAN_TARGET delay 40 loopsewithpan 145, SOUND_PAN_TARGET 11, 3 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 3, 25, 1 - createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_TARGET, 194, 1, 5, 0 + createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_TARGET, 66, 1, 5, 0 delay 1 - createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_TARGET, 194, 1, -10, -15 + createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_TARGET, 66, 1, -10, -15 delay 1 - createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_TARGET, 130, 1, 0, 25 + createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_TARGET, 2, 1, 0, 25 delay 1 - createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_TARGET, 194, 1, 15, 5 + createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_TARGET, 66, 1, 15, 5 delay 1 - createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_TARGET, 194, 1, -25, 0 + createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_TARGET, 66, 1, -25, 0 delay 1 - createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_TARGET, 130, 1, 30, 30 + createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_TARGET, 2, 1, 30, 30 delay 1 - createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_TARGET, 130, 1, -27, 25 + createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_TARGET, 2, 1, -27, 25 delay 1 - createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_TARGET, 194, 1, 0, 8 + createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_TARGET, 66, 1, 0, 8 waitforvisualfinish - createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_TARGET, 194, 0, 0, 4 + createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_TARGET, 66, 0, 0, 4 waitforvisualfinish end @@ -1898,7 +1897,7 @@ GigaImpactContinuity: createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -10, 0, 1, 0 playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET delay 1 - createsprite gSlideMonToOffsetSpriteTemplate, ANIM_TARGET, 2, 1, -16, 0, 0, 4 + createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -16, 0, 0, 4 waitforvisualfinish createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 4, 0, 12, 1 waitforvisualfinish @@ -1987,17 +1986,17 @@ gBattleAnimMove_Avalanche:: loadspritegfx ANIM_TAG_ROCKS loadspritegfx ANIM_TAG_ICE_CHUNK monbg ANIM_DEF_PARTNER - createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_TARGET, 2, 7, 1, 11, 1 - createsprite gAvalancheSpriteTemplate, ANIM_TARGET, 130, -5, 1, -5, 1 + createsprite gShakeMonOrPlatformSpriteTemplate, ANIM_ATTACKER, 2, 7, 1, 11, 1 + createsprite gAvalancheSpriteTemplate, ANIM_TARGET, 2, -5, 1, -5, 1 playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 - createsprite gAvalancheSpriteTemplate, ANIM_TARGET, 130, 5, 0, 6, 1 + createsprite gAvalancheSpriteTemplate, ANIM_TARGET, 2, 5, 0, 6, 1 playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 - createsprite gAvalancheSpriteTemplate, ANIM_TARGET, 130, 19, 1, 10, 1 + createsprite gAvalancheSpriteTemplate, ANIM_TARGET, 2, 19, 1, 10, 1 playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 - createsprite gAvalancheSpriteTemplate ANIM_TARGET, 130, -17, 2, -20, 1 + createsprite gAvalancheSpriteTemplate ANIM_TARGET, 2, -17, 2, -20, 1 playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 5, 50, 1 createvisualtask AnimTask_ShakeMon, 2, ANIM_DEF_PARTNER, 0, 5, 50, 1 @@ -2320,7 +2319,7 @@ gBattleAnimMove_ZenHeadbutt:: setalpha 12, 8 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 4, 0 waitforvisualfinish - createsprite gZenHeadbuttSpriteTemplate, ANIM_ATTACKER, 66, 0 + createsprite gZenHeadbuttSpriteTemplate, ANIM_ATTACKER, 2, 0 delay 18 playsewithpan SE_M_MORNING_SUN, SOUND_PAN_ATTACKER waitforvisualfinish @@ -2336,7 +2335,7 @@ gBattleAnimMove_ZenHeadbutt:: createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 2, 0, 4, 1 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 1, 2 - createsprite gAquaTailHitSpriteTemplate, ANIM_TARGER, 131, 0, 0, 1, 1 + createsprite gAquaTailHitSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 4, 4, 0, 0 @@ -2354,22 +2353,22 @@ gBattleAnimMove_MirrorShot:: createvisualtask AnimTask_BlendBattleAnimPalExclude, 5, 5, 2, 0, 10, RGB_WHITEALPHA createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_IMPACT, 0, 12, 12, RGB(21, 21, 21) waitforvisualfinish - createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGER, 131, 1, 2 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 3 - createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGER, 131, 1, 2 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 3 - createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGER, 131, 1, 2 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 3 - createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGER, 131, 1, 2 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 3 - createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGER, 131, 1, 2 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 3 - createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGER, 131, 1, 2 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_BlendBattleAnimPalExclude, 5, 5, 2, 10, 0, RGB_WHITEALPHA @@ -2426,27 +2425,27 @@ gBattleAnimMove_RockClimb:: monbg ANIM_DEF_PARTNER splitbgprio ANIM_TARGET setalpha 12, 8 - createvisualtask AnimTask_Rollout, 2, 0 + createvisualtask AnimTask_Rollout, 2, 1 waitforvisualfinish - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 0, 1, 30, 1, RGB(0, 16, 1) - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 131, -15, 8, 1, 1 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 0, 1, 30, 1, 0 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -15, 8, 1, 1 playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 1 playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 131, -5, -12, 1, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -5, -12, 1, 1 delay 1 playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 131, 0, -32, 1, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, -32, 1, 1 delay 1 playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 131, 5, -52, 1, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 5, -52, 1, 1 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_TARGET, 2, 1, -25, 16, 1, 4 delay 4 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 0, 3, 6, 1 delay 30 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 6 delay 4 - createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_TARGET, 2, 1, 0, 6 + createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 6 clearmonbg ANIM_DEF_PARTNER blendoff end @@ -2543,32 +2542,32 @@ gBattleAnimMove_DracoMeteor:: blendoff end DracoMeteor1: - createsprite gDracoMeteorRocksSpriteTemplate, ANIM_ATTACKER, 131, -48, -64, 40, 32, 25 + createsprite gDracoMeteorRocksSpriteTemplate, ANIM_ATTACKER, 3, -48, -64, 40, 32, 25 delay 2 - createsprite gDracoMeteorTailSpriteTemplate, ANIM_ATTACKER, 131, -48, -64, 40, 32, 25 + createsprite gDracoMeteorTailSpriteTemplate, ANIM_ATTACKER, 3, -48, -64, 40, 32, 25 delay 2 - createsprite gDracoMeteorTailSpriteTemplate, ANIM_ATTACKER, 131, -48, -64, 40, 32, 25 + createsprite gDracoMeteorTailSpriteTemplate, ANIM_ATTACKER, 3, -48, -64, 40, 32, 25 return DracoMeteor2: - createsprite gDracoMeteorRocksSpriteTemplate, ANIM_ATTACKER, 131, -112, -64, -8, 32, 25 + createsprite gDracoMeteorRocksSpriteTemplate, ANIM_ATTACKER, 3, -112, -64, -8, 32, 25 delay 2 - createsprite gDracoMeteorTailSpriteTemplate, ANIM_ATTACKER, 131, -112, -64, -8, 32, 25 + createsprite gDracoMeteorTailSpriteTemplate, ANIM_ATTACKER, 3, -112, -64, -8, 32, 25 delay 2 - createsprite gDracoMeteorTailSpriteTemplate, ANIM_ATTACKER, 131, -112, -64, -8, 32, 25 + createsprite gDracoMeteorTailSpriteTemplate, ANIM_ATTACKER, 3, -112, -64, -8, 32, 25 return DracoMeteor3: - createsprite gDracoMeteorRocksSpriteTemplate, ANIM_ATTACKER, 131, -80, -64, 24, 32, 25 + createsprite gDracoMeteorRocksSpriteTemplate, ANIM_ATTACKER, 3, -80, -64, 24, 32, 25 delay 2 - createsprite gDracoMeteorTailSpriteTemplate, ANIM_ATTACKER, 131, -80, -64, 24, 32, 25 + createsprite gDracoMeteorTailSpriteTemplate, ANIM_ATTACKER, 3, -80, -64, 24, 32, 25 delay 2 - createsprite gDracoMeteorTailSpriteTemplate, ANIM_ATTACKER, 131, -80, -64, 24, 32, 25 + createsprite gDracoMeteorTailSpriteTemplate, ANIM_ATTACKER, 3, -80, -64, 24, 32, 25 return DracoMeteor4: - createsprite gDracoMeteorRocksSpriteTemplate, ANIM_ATTACKER, 131, -80, -64, -8, 32, 25 + createsprite gDracoMeteorRocksSpriteTemplate, ANIM_ATTACKER, 3, -80, -64, -8, 32, 25 delay 2 - createsprite gDracoMeteorTailSpriteTemplate, ANIM_ATTACKER, 131, -80, -64, -8, 32, 25 + createsprite gDracoMeteorTailSpriteTemplate, ANIM_ATTACKER, 3, -80, -64, -8, 32, 25 delay 2 - createsprite gDracoMeteorTailSpriteTemplate, ANIM_ATTACKER, 131, -80, -64, -8, 32, 25 + createsprite gDracoMeteorTailSpriteTemplate, ANIM_ATTACKER, 3, -80, -64, -8, 32, 25 return gBattleAnimMove_Discharge:: @@ -2684,14 +2683,14 @@ gBattleAnimMove_LavaPlume:: createvisualtask AnimTask_ShakeMon2, 2, ANIM_DEF_PARTNER, 1, 0, 32, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATK_PARTNER, 1, 0, 32, 1 waitforvisualfinish - createsprite gLavaPlumeSpriteTemplate, ANIM_ATTACKER, 130, 0 - createsprite gLavaPlumeSpriteTemplate, ANIM_ATTACKER, 130, 32 - createsprite gLavaPlumeSpriteTemplate, ANIM_ATTACKER, 130, 64 - createsprite gLavaPlumeSpriteTemplate, ANIM_ATTACKER, 130, 96 - createsprite gLavaPlumeSpriteTemplate, ANIM_ATTACKER, 130, 128 - createsprite gLavaPlumeSpriteTemplate, ANIM_ATTACKER, 130, 160 - createsprite gLavaPlumeSpriteTemplate, ANIM_ATTACKER, 130, 192 - createsprite gLavaPlumeSpriteTemplate, ANIM_ATTACKER, 130, 224 + createsprite gLavaPlumeSpriteTemplate, ANIM_ATTACKER, 2, 0 + createsprite gLavaPlumeSpriteTemplate, ANIM_ATTACKER, 2, 32 + createsprite gLavaPlumeSpriteTemplate, ANIM_ATTACKER, 2, 64 + createsprite gLavaPlumeSpriteTemplate, ANIM_ATTACKER, 2, 96 + createsprite gLavaPlumeSpriteTemplate, ANIM_ATTACKER, 2, 128 + createsprite gLavaPlumeSpriteTemplate, ANIM_ATTACKER, 2, 160 + createsprite gLavaPlumeSpriteTemplate, ANIM_ATTACKER, 2, 192 + createsprite gLavaPlumeSpriteTemplate, ANIM_ATTACKER, 2, 224 playsewithpan SE_M_SACRED_FIRE, SOUND_PAN_ATTACKER waitforvisualfinish end @@ -2837,7 +2836,7 @@ RockWrecker_1: createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 6 delay 3 playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER - createsprite gRockBlastRockSpriteTemplate, ANIM_ATTACKER, 130, 16, 0, 0, 0, 25, 257 + createsprite gRockBlastRockSpriteTemplate, ANIM_ATTACKER, 130, 16, 0, 0, 0, 25, (1 << 8) | 1 waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 131, 0, 0, 1, 1 playsewithpan SE_M_ROCK_THROW SOUND_PAN_TARGET @@ -2855,15 +2854,15 @@ RockWrecker_2: createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 6 delay 3 playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER - createsprite gRockBlastRockSpriteTemplate, ANIM_ATTACKER, 130, 16, 0, 0, 0, 25, 257 + createsprite gRockBlastRockSpriteTemplate, ANIM_ATTACKER, 2, 16, 0, 0, 0, 25, 257 waitforvisualfinish - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 131, 0, 0, 1, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 playsewithpan SE_M_ROCK_THROW SOUND_PAN_TARGET - createsprite gRockFragmentSpriteTemplate ANIM_TARGET, 130, 0, 0, 20, 24, 14, 2 + createsprite gRockFragmentSpriteTemplate ANIM_TARGET, 2, 0, 0, 20, 24, 14, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 5, 1 - createsprite gRockFragmentSpriteTemplate ANIM_ATTACKER, 130, 5, 0, -20, 24, 14, 1 - createsprite gRockFragmentSpriteTemplate ANIM_ATTACKER, 130, 0, 5, 20, -18, 14, 2 - createsprite gRockFragmentSpriteTemplate ANIM_ATTACKER, 130, -5, 0, -20, -18, 14, 2 + createsprite gRockFragmentSpriteTemplate ANIM_ATTACKER, 2, 5, 0, -20, 24, 14, 1 + createsprite gRockFragmentSpriteTemplate ANIM_ATTACKER, 2, 0, 5, 20, -18, 14, 2 + createsprite gRockFragmentSpriteTemplate ANIM_ATTACKER, 2, -5, 0, -20, -18, 14, 2 waitforvisualfinish call UnsetPsychicBg end @@ -2896,7 +2895,7 @@ gBattleAnimMove_GunkShot:: createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 40, 1 delay 6 panse SE_M_HYDRO_PUMP, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 2, 0 - createvisualtask AnimTask_StartSinAnimTimer, 5, 1, 100 + createvisualtask AnimTask_StartSinAnimTimer, 5, 100 call GunkShotParticles call GunkShotParticles call GunkShotParticles @@ -2968,7 +2967,7 @@ gBattleAnimMove_MagnetBomb:: loadspritegfx ANIM_TAG_SPARK_2 delay 0 playsewithpan 119, 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 createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 80, 24, 22, 12, 0, 1, 0 createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 156, 24, 121, 13, 0, 1, 1 @@ -3009,22 +3008,22 @@ gBattleAnimMove_MagnetBomb:: loadspritegfx ANIM_TAG_GRAY_SMOKE loadspritegfx ANIM_TAG_BLACK_BALL playsewithpan 177, 63 - createsprite gOctazookaSmokeSpriteTemplate, ANIM_TARGET, 130, 8, 8, 1, 0 + createsprite gOctazookaSmokeSpriteTemplate, ANIM_TARGET, 2, 8, 8, 1, 0 delay 2 - createsprite gOctazookaSmokeSpriteTemplate, ANIM_TARGET, 130, -8, -8, 1, 0 + createsprite gOctazookaSmokeSpriteTemplate, ANIM_TARGET, 2, -8, -8, 1, 0 delay 2 - createsprite gOctazookaSmokeSpriteTemplate, ANIM_TARGET, 130, 8, -8, 1, 0 + createsprite gOctazookaSmokeSpriteTemplate, ANIM_TARGET, 2, 8, -8, 1, 0 delay 2 - createsprite gOctazookaSmokeSpriteTemplate, ANIM_TARGET, 130, -8, 8, 1, 0 + createsprite gOctazookaSmokeSpriteTemplate, ANIM_TARGET, 2, -8, 8, 1, 0 waitforvisualfinish playsewithpan 177, 63 - createsprite gOctazookaSmokeSpriteTemplate, ANIM_TARGET, 130, 8, 8, 1, 0 + createsprite gOctazookaSmokeSpriteTemplate, ANIM_TARGET, 2, 8, 8, 1, 0 delay 2 - createsprite gOctazookaSmokeSpriteTemplate, ANIM_TARGET, 130, -8, -8, 1, 0 + createsprite gOctazookaSmokeSpriteTemplate, ANIM_TARGET, 2, -8, -8, 1, 0 delay 2 - createsprite gOctazookaSmokeSpriteTemplate, ANIM_TARGET, 130, 8, -8, 1, 0 + createsprite gOctazookaSmokeSpriteTemplate, ANIM_TARGET, 2, 8, -8, 1, 0 delay 2 - createsprite gOctazookaSmokeSpriteTemplate, ANIM_TARGET, 130, -8, 8, 1, 0 + createsprite gOctazookaSmokeSpriteTemplate, ANIM_TARGET, 2, -8, 8, 1, 0 waitforvisualfinish end @@ -3032,55 +3031,54 @@ gBattleAnimMove_StoneEdge:: loadspritegfx ANIM_TAG_STONE_EDGE loadspritegfx ANIM_TAG_IMPACT playsewithpan SE_M_ROCK_THROW SOUND_PAN_TARGET - createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 130, 0, 28, 528, 30, 13, 50, 1 + createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 2, 0, 28, 528, 30, 13, 50, 1 delay 2 - createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 130, 0, 32, 480, 20, 16, -46, 1 + createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 2, 0, 32, 480, 20, 16, -46, 1 delay 2 loopsewithpan 131, SOUND_PAN_TARGET 24, 3 - createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 130, 0, 33, 576, 20, 8, 42, 1 + createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 2, 0, 33, 576, 20, 8, 42, 1 delay 2 - createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 130, 0, 31, 400, 25, 11, -42, 1 + createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 2, 0, 31, 400, 25, 11, -42, 1 delay 2 - createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 130, 0, 28, 512, 25, 16, 46, 1 + createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 2, 0, 28, 512, 25, 16, 46, 1 delay 2 - createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 130, 0, 33, 464, 30, 15, 49, 1 + createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 2, 0, 33, 464, 30, 15, 49, 1 delay 2 - createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 130, 0, 28, 528, 30, 13, 50, 1 + createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 2, 0, 28, 528, 30, 13, 50, 1 delay 2 - createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 130, 0, 32, 480, 20, 16, -46, 1 + createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 2, 0, 32, 480, 20, 16, -46, 1 delay 2 - createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 130, 0, 33, 576, 20, 8, 42, 1 + createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 2, 0, 33, 576, 20, 8, 42, 1 delay 2 - createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 130, 0, 31, 400, 25, 11, -42, 1 + createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 2, 0, 31, 400, 25, 11, -42, 1 delay 2 - createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 130, 0, 28, 512, 25, 16, 46, 1 + createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 2, 0, 28, 512, 25, 16, 46, 1 delay 2 - createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 130, 0, 33, 464, 30, 15, 49, 1 + createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 2, 0, 33, 464, 30, 15, 49, 1 delay 2 - createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 130, 0, 28, 528, 30, 13, 50, 1 + createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 2, 0, 28, 528, 30, 13, 50, 1 delay 2 - createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 130, 0, 32, 480, 20, 16, -46, 1 + createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 2, 0, 32, 480, 20, 16, -46, 1 delay 2 - createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 130, 0, 33, 576, 20, 8, 42, 1 + createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 2, 0, 33, 576, 20, 8, 42, 1 delay 2 - createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 130, 0, 31, 400, 25, 11, -42, 1 + createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 2, 0, 31, 400, 25, 11, -42, 1 delay 2 - createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 130, 0, 28, 512, 25, 16, 46, 1 + createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 2, 0, 28, 512, 25, 16, 46, 1 delay 2 - createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 130, 0, 33, 464, 30, 15, 49, 1 + createsprite gStoneEdgeSpriteTemplate, ANIM_TARGET, 2, 0, 33, 464, 30, 15, 49, 1 delay 2 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 131, -32, -16, 1, 3 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -32, -16, 1, 3 playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 3, 0, 12, 1 - createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_DEF_PARTNER, 3, 0, 12, 1 delay 4 - createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 131, 1, 3 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 3 playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 4 - createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 131, 1, 3 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 3 playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 4 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 131, 32, 20, 1, 3 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 32, 20, 1, 3 playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -3124,9 +3122,9 @@ gBattleAnimMove_GrassKnot:: loadspritegfx ANIM_TAG_RAZOR_LEAF loadspritegfx ANIM_TAG_IMPACT createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, 0, 0, 4 - createsprite gGrassKnotSpriteTemplate, ANIM_TARGET, 130, -18, 19, 40, 8, 160, 0 + createsprite gGrassKnotSpriteTemplate, ANIM_TARGET, 2, -18, 19, 40, 8, 160, 0 delay 4 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 130, -8, 8, 1, 2 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -8, 8, 1, 2 createvisualtask AnimTask_RotateMonSpriteToSide, 2, 6, 384, ANIM_TARGET, 2 playsewithpan SE_M_VITAL_THROW2 SOUND_PAN_TARGET waitforvisualfinish @@ -3395,6 +3393,7 @@ gBattleAnimMove_AquaJet:: loadspritegfx ANIM_TAG_SPARKLE_6 loadspritegfx ANIM_TAG_ROUND_SHADOW loadspritegfx ANIM_TAG_SPLASH + loadspritegfx ANIM_TAG_SWEAT_BEAD playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER createsprite gDiveBallSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 13, 336 waitforvisualfinish @@ -3410,7 +3409,7 @@ gBattleAnimMove_AquaJet:: monbg ANIM_DEF_PARTNER setalpha 12, 8 playsewithpan SE_M_EXPLOSION, SOUND_PAN_TARGET - createsprite gDiveWaterSplashSpriteTemplate, ANIM_TARGET, 131, 1 + createsprite gDiveWaterSplashSpriteTemplate, ANIM_TARGET, 3, 1 call DiveAttackWaterDroplets call DiveAttackWaterDroplets call DiveAttackWaterDroplets @@ -3431,39 +3430,39 @@ gBattleAnimMove_AttackOrder:: monbg ANIM_DEF_PARTNER splitbgprio ANIM_TARGET playsewithpan SE_M_SWEET_SCENT, SOUND_PAN_TARGET - createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 120, 70, 5, 70, 30 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 2, 120, 70, 5, 70, 30 delay 1 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 120, 55, 6, 60, 25 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 2, 120, 55, 6, 60, 25 delay 1 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 120, 60, 7, 60, 30 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 120, 55, 10, 60, 30 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 2, 120, 60, 7, 60, 30 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 2, 120, 55, 10, 60, 30 delay 3 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 100, 50, 4, 50, 26 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 2, 100, 50, 4, 50, 26 delay 1 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 105, 25, 8, 60, 20 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 2, 105, 25, 8, 60, 20 delay 1 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 120, 40, 10, 48, 30 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 2, 120, 40, 10, 48, 30 delay 3 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 120, 30, 6, 45, 25 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 120, 35, 10, 60, 30 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 2, 120, 30, 6, 45, 25 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 2, 120, 35, 10, 60, 30 delay 3 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 105, 20, 8, 40, 0 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 2, 105, 20, 8, 40, 0 delay 3 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 20, 255, 15, 32, 0 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 110, 10, 8, 32, 20 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 2, 20, 255, 15, 32, 0 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 2, 110, 10, 8, 32, 20 waitforvisualfinish - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 131, -32, -16, 1, 3 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -32, -16, 1, 3 playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 3, 0, 12, 1 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 3, 0, 12, 1 delay 4 - createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 131, 1, 3 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 3 playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 4 - createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 131, 1, 3 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 3 playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 4 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 131, 32, 20, 1, 3 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 32, 20, 1, 3 playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -3477,30 +3476,30 @@ gBattleAnimMove_DefendOrder:: monbg ANIM_DEF_PARTNER splitbgprio ANIM_TARGET playsewithpan SE_M_SWEET_SCENT, SOUND_PAN_TARGET - createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 130, 120, 70, 5, 70, 30 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 2, 120, 70, 5, 70, 30 delay 1 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 130, 115, 55, 6, 60, 25 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 2, 115, 55, 6, 60, 25 delay 1 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 130, 115, 60, 7, 60, 30 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 130, 115, 55, 10, 60, 30 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 2, 115, 60, 7, 60, 30 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 2, 115, 55, 10, 60, 30 delay 3 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 130, 100, 50, 4, 50, 26 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 2, 100, 50, 4, 50, 26 delay 1 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 130, 105, 25, 8, 60, 20 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 2, 105, 25, 8, 60, 20 delay 1 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 130, 115, 40, 10, 48, 30 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 2, 115, 40, 10, 48, 30 delay 3 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 130, 120, 30, 6, 45, 25 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 130, 115, 35, 10, 60, 30 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 2, 120, 30, 6, 45, 25 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 2, 115, 35, 10, 60, 30 delay 3 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 130, 105, 20, 8, 40, 0 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 2, 105, 20, 8, 40, 0 delay 3 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 130, 20, 255, 15, 32, 0 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 130, 110, 10, 8, 32, 20 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 2, 20, 255, 15, 32, 0 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 2, 110, 10, 8, 32, 20 waitforvisualfinish loadspritegfx ANIM_TAG_BLUE_STAR waitforvisualfinish - clearmonbg ANIM_ATK_PARTNER + clearmonbg ANIM_DEF_PARTNER blendoff delay 1 call BideSetUp @@ -3514,30 +3513,30 @@ gBattleAnimMove_HealOrder:: monbg ANIM_DEF_PARTNER splitbgprio ANIM_TARGET playsewithpan SE_M_SWEET_SCENT, SOUND_PAN_TARGET - createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 130, 120, 70, 5, 70, 30 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 2, 120, 70, 5, 70, 30 delay 1 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 130, 115, 55, 6, 60, 25 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 2, 115, 55, 6, 60, 25 delay 1 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 130, 115, 60, 7, 60, 30 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 130, 115, 55, 10, 60, 30 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 2, 115, 60, 7, 60, 30 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 2, 115, 55, 10, 60, 30 delay 3 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 130, 100, 50, 4, 50, 26 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 2, 100, 50, 4, 50, 26 delay 1 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 130, 105, 25, 8, 60, 20 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 2, 105, 25, 8, 60, 20 delay 1 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 130, 115, 40, 10, 48, 30 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 2, 115, 40, 10, 48, 30 delay 3 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 130, 120, 30, 6, 45, 25 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 130, 115, 35, 10, 60, 30 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 2, 120, 30, 6, 45, 25 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 2, 115, 35, 10, 60, 30 delay 3 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 130, 105, 20, 8, 40, 0 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 2, 105, 20, 8, 40, 0 delay 3 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 130, 20, 255, 15, 32, 0 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 130, 110, 10, 8, 32, 20 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 2, 20, 255, 15, 32, 0 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_ATTACKER, 2, 110, 10, 8, 32, 20 waitforvisualfinish loadspritegfx ANIM_TAG_BLUE_STAR waitforvisualfinish - clearmonbg ANIM_ATK_PARTNER + clearmonbg ANIM_DEF_PARTNER blendoff delay 1 call HealingEffect @@ -3577,6 +3576,10 @@ gBattleAnimMove_DoubleHit:: playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 8 waitforvisualfinish + @ why does the anim hit twice? + @ that just means the anim plays 4 times + @ which doesn't make sense + @ I don't know, but I'm not gonna argue with it createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4 delay 6 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 2 @@ -3668,7 +3671,7 @@ gBattleAnimMove_LunarDance:: loadspritegfx ANIM_TAG_GREEN_SPARKLE loadspritegfx ANIM_TAG_HOLLOW_ORB setalpha 0, 16 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 16, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 16, RGB_BLACK waitforvisualfinish createsprite gMoonSpriteTemplate, ANIM_ATTACKER, 2, 120, 56 createvisualtask AnimTask_AlphaFadeIn, 3, 0, 16, 16, 0, 1 @@ -3684,8 +3687,8 @@ gBattleAnimMove_LunarDance:: delay 30 createsprite gMoonlightSparkleSpriteTemplate, ANIM_ATTACKER, 40, 10, 0 delay 20 - createvisualtask AnimTask_MoonlightEndFade, 2, 0 - createvisualtask AnimTask_DragonDanceWaver, 5, 0 + createvisualtask AnimTask_MoonlightEndFade, 2 + createvisualtask AnimTask_DragonDanceWaver, 5 playsewithpan 203, SOUND_PAN_ATTACKER delay 8 createvisualtask AnimTask_BlendPalInAndOutByTag, 5, ANIM_TAG_HOLLOW_ORB, RGB(0, 0, 19), 14, 0, 3 @@ -3700,7 +3703,6 @@ gBattleAnimMove_LunarDance:: delay 30 playsewithpan 203, SOUND_PAN_ATTACKER waitforvisualfinish - clearmonbg ANIM_ATTACKER delay 1 end @@ -3877,7 +3879,7 @@ gBattleAnimMove_OminousWind:: delay 0 createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, 1, 0, 0, 0, 0 delay 0 - createvisualtask AnimTask_GetAttackerSide, 2, 0 + createvisualtask AnimTask_GetAttackerSide, 2 jumpargeq 7, 1, OminousWindFadeToBg fadetobg BG_GHOST waitbgfadeout @@ -5731,7 +5733,6 @@ gBattleAnimMove_Bulldoze:: gBattleAnimMove_FrostBreath:: loadspritegfx ANIM_TAG_ICE_CHUNK loadspritegfx ANIM_TAG_SMALL_EMBER - loadspritegfx ANIM_TAG_FIRE_PLUME fadetobg BG_ICE waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 0x5, 0x300, 0x0, 0x0, 0xffff @@ -5743,6 +5744,8 @@ gBattleAnimMove_FrostBreath:: waitforvisualfinish createsprite gFrostBreathBlueBreathTemplate, ANIM_TARGET, 2, 0x1e, 0xf, 0x0, 0xa, 0xa waitforvisualfinish + unloadspritegfx ANIM_TAG_SMALL_EMBER + loadspritegfx ANIM_TAG_FIRE_PLUME loopsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET, 0xb, 0x3 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 3, 25, 1 createsprite gFrostBreathBlueRageTemplate, ANIM_TARGET, 66, 0x1, 0x5, 0x0 @@ -7826,7 +7829,6 @@ gBattleAnimMove_ParabolicCharge:: loadspritegfx ANIM_TAG_SPARK loadspritegfx ANIM_TAG_LIGHTNING loadspritegfx ANIM_TAG_ORBS - loadspritegfx ANIM_TAG_BLUE_STAR monbg ANIM_ATTACKER setalpha 12, 8 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 6, RGB(18, 16, 3) @@ -7849,6 +7851,11 @@ gBattleAnimMove_ParabolicCharge:: createvisualtask AnimTask_BlendBattleAnimPal, 5, 4, 0, 0, 0, RGB_BLACK ParabolicChargeHeal: waitforvisualfinish + unloadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT + unloadspritegfx ANIM_TAG_ELECTRIC_ORBS + unloadspritegfx ANIM_TAG_SPARK + unloadspritegfx ANIM_TAG_LIGHTNING + loadspritegfx ANIM_TAG_BLUE_STAR clearmonbg ANIM_ATTACKER waitforvisualfinish call HealingEffect @@ -12078,7 +12085,7 @@ PrismaticLaserRain: return gBattleAnimMove_SpectralThief:: - choosetwoturnanim SpectralThiefSteal SpectralThiefUnleash + choosetwoturnanim SpectralThiefUnleash SpectralThiefSteal SpectralThiefUnleash: loadspritegfx ANIM_TAG_HANDS_AND_FEET @Black Colour loadspritegfx ANIM_TAG_QUICK_GUARD_HAND @Black Colour @@ -12422,14 +12429,11 @@ ZingZapSparks2: return gBattleAnimMove_NaturesMadness:: - loadspritegfx ANIM_TAG_ICE_CRYSTALS @small circles - loadspritegfx ANIM_TAG_THIN_RING @ring - loadspritegfx ANIM_TAG_SPARKLE_2 @stars - loadspritegfx ANIM_TAG_PINK_PETAL @pink - loadspritegfx ANIM_TAG_ICE_CHUNK @blue green - loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT @charge - loadspritegfx ANIM_TAG_TEAL_ALERT @charge particles - loadspritegfx ANIM_TAG_ECLIPSING_ORB @blue green + loadspritegfx ANIM_TAG_ICE_CRYSTALS @small circles CrystalsTemplate + loadspritegfx ANIM_TAG_THIN_RING @ring PinkRingTemplate, GrayRingTemplate + loadspritegfx ANIM_TAG_SPARKLE_2 @stars PinkStarsTemplate + loadspritegfx ANIM_TAG_PINK_PETAL @pink PinkRingTemplate, PinkStarsTemplate + loadspritegfx ANIM_TAG_ICE_CHUNK @blue green CrystalsTemplate monbg ANIM_ATTACKER setalpha 14, 8 delay 0x1 @@ -12465,6 +12469,8 @@ gBattleAnimMove_NaturesMadness:: delay 0x1 monbg ANIM_TARGET waitforvisualfinish + unloadspritegfx ANIM_TAG_SPARKLE_2 + loadspritegfx ANIM_TAG_ECLIPSING_ORB @blue green grayRing createsprite gNaturesMadnessGrayRingTemplate, ANIM_ATTACKER, 40, 0x0, 0x0, 0x1, 0x0 playsewithpan SE_M_HEAL_BELL, SOUND_PAN_ATTACKER delay 0xe @@ -12474,6 +12480,8 @@ gBattleAnimMove_NaturesMadness:: createsprite gNaturesMadnessGrayRingTemplate, ANIM_ATTACKER, 40, 0x0, 0x0, 0x1, 0x0 playsewithpan SE_M_HEAL_BELL, SOUND_PAN_ATTACKER waitforvisualfinish + unloadspritegfx ANIM_TAG_ECLIPSING_ORB + loadspritegfx ANIM_TAG_SPARKLE_2 playsewithpan SE_M_EXPLOSION, SOUND_PAN_ATTACKER createsprite gNaturesMadnessPinkRingTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x1, 0x0, 0x1F, 0x8 createsprite gNaturesMadnessPinkStarsTemplate, ANIM_ATTACKER, 2, 0xa, 0xa, 0x19, 0x1 @@ -12978,7 +12986,7 @@ gBattleAnimMove_GlitzyGlow:: createsprite gSynchronoiseYellowRingTemplate, ANIM_ATTACKER, 0, 25, 0, 0, 0, 0, 0, 1 delay 36 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 6, 1 - createvisualtask AnimTask_ShakeBattleTerrain, 2, 1, 0, 6, 1 + createvisualtask AnimTask_ShakeBattlePlatforms, 2, 1, 0, 6, 1 waitforvisualfinish createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 1, 12, 0, 0 @Darken waitforvisualfinish @@ -13248,7 +13256,6 @@ gBattleAnimMove_StuffCheeks:: loadspritegfx ANIM_TAG_BERRY_NORMAL loadspritegfx ANIM_TAG_SHARP_TEETH loadspritegfx ANIM_TAG_THIN_RING - loadspritegfx ANIM_TAG_SPARKLE_2 playsewithpan SE_M_METRONOME, 0xc0 createsprite gFloatingBerryTemplate, ANIM_ATTACKER, 1, 0x0 delay 0x45 @@ -13346,7 +13353,7 @@ gBattleAnimMove_MagicPowder:: gBattleAnimMove_DragonDarts:: loadspritegfx ANIM_TAG_DREEPY_SHINY loadspritegfx ANIM_TAG_DREEPY - loadspritegfx ANIM_TAG_AIR_WAVE + loadspritegfx ANIM_TAG_AIR_WAVE loadspritegfx ANIM_TAG_EXPLOSION playsewithpan SE_FALL, SOUND_PAN_ATTACKER createdragondartsprite ANIM_TARGET, 2, 0x0, 0x0, 0x19 @@ -13792,7 +13799,7 @@ OverdriveRings: createsprite gHyperVoiceRingSpriteTemplate, ANIM_ATTACKER, 0, 0x2d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 6, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_DEF_PARTNER, 1, 0, 6, 1 - createvisualtask AnimTask_ShakeBattleTerrain, 0x2, 0x1, 0x0, 0x6, 0x1 + createvisualtask AnimTask_ShakeBattlePlatforms, 0x2, 0x1, 0x0, 0x6, 0x1 createvisualtask SoundTask_WaitForCry, 0x5 return @@ -14142,9 +14149,9 @@ gBattleAnimMove_ExpandingForce:: createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, F_PAL_ATTACKER, 2, 0, 8, RGB(31, 23, 0) waitforvisualfinish playsewithpan SE_M_MEGA_KICK, SOUND_PAN_TARGET - choosetwoturnanim EXPANDING_FORCE_SINGLE_TARGET EXPANDING_FORCE_BOTH_TARGETS + choosetwoturnanim ExpandingForceSingleTarget ExpandingForceBothTargets -EXPANDING_FORCE_SINGLE_TARGET: +ExpandingForceSingleTarget: createsprite gSpriteTemplate_SpiritBreakChargeBall, ANIM_TARGET, 1, ANIM_TARGET waitforvisualfinish createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 0x2, 0x0, 0x1, 0x18, 0x1, 0x0 @@ -14154,7 +14161,7 @@ EXPANDING_FORCE_SINGLE_TARGET: clearmonbg ANIM_DEF_PARTNER end -EXPANDING_FORCE_BOTH_TARGETS: +ExpandingForceBothTargets: createsprite gSpriteTemplate_SpiritBreakChargeBall, ANIM_TARGET, 1, ANIM_TARGET createsprite gSpriteTemplate_SpiritBreakChargeBall, ANIM_TARGET, 1, ANIM_DEF_PARTNER waitforvisualfinish @@ -14286,9 +14293,9 @@ gBattleAnimMove_MeteorBeam:: loadspritegfx ANIM_TAG_ROCKS fadetobg BG_COSMIC waitbgfadeout - choosetwoturnanim METEOR_BEAM_CHARGE METEOR_BEAM_BLAST + choosetwoturnanim MeteorBeamCharge MeteorBeamBlast -METEOR_BEAM_CHARGE: +MeteorBeamCharge: createvisualtask AnimTask_StartSlidingBg, 0x5, 0x0, 0xFC00, FALSE, 0xffff waitbgfadein monbg ANIM_ATK_PARTNER @@ -14301,7 +14308,7 @@ METEOR_BEAM_CHARGE: call UnsetPsychicBg end -METEOR_BEAM_BLAST: +MeteorBeamBlast: createvisualtask AnimTask_StartSlidingBg, 0x5, 0xf700, 0x0, TRUE, 0xffff @;Scroll right/left waitbgfadein monbg ANIM_TARGET @@ -14428,7 +14435,7 @@ gBattleAnimMove_RisingVoltage:: loadspritegfx ANIM_TAG_LIGHTNING monbg ANIM_ATTACKER setalpha 12, 8 - createvisualtask AnimTask_GetBattleTerrain, 0x5, + createvisualtask AnimTask_GetBattleEnvironment, 0x5, jumpargeq 0x0, BG_ELECTRIC_TERRAIN, ANIM_RISING_VOLTAGE_STRONGER ANIM_RISING_VOLTAGE_NORMAL: createvisualtask AnimTask_BlendBattleAnimPal, 0x2, F_PAL_BG, 0x1, 0x0, 0x4, 0x0 @;To black @@ -15397,7 +15404,7 @@ gBattleAnimMove_AstralBarrage:: setalpha 12, 8 fadetobg BG_GHOST waitbgfadein - createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 4, 1, 180, 1 + createsprite gShakeMonOrPlatformSpriteTemplate, ANIM_ATTACKER, 2, 4, 1, 180, 1 createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_FAINT_ATTACK, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 5, 20, 0, 5 createsprite gSuperpowerRockSpriteTemplate, ANIM_ATTACKER, 41, 200, 96, 1, 120 delay 8 @@ -16269,7 +16276,6 @@ SandsearStormFireSpin: gBattleAnimMove_LunarBlessing:: loadspritegfx ANIM_TAG_BLUE_STAR loadspritegfx ANIM_TAG_MOON - loadspritegfx ANIM_TAG_SPARKLE_2 loadspritegfx ANIM_TAG_GUARD_RING loadspritegfx ANIM_TAG_SMALL_EMBER @Yellow colour for ring monbg ANIM_ATK_PARTNER @@ -16610,7 +16616,7 @@ gBattleAnimMove_AlluringVoice:: createsprite gHyperVoiceRingSpriteTemplate, ANIM_ATTACKER, 0, 45, 0, 0, 0, 0, 0, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 6, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_DEF_PARTNER, 1, 0, 6, 1 - createvisualtask AnimTask_ShakeBattleTerrain, 2, 1, 0, 6, 1 + createvisualtask AnimTask_ShakeBattlePlatforms, 2, 1, 0, 6, 1 createvisualtask SoundTask_WaitForCry, 5 delay 0xA createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 26, 1 @@ -16865,6 +16871,7 @@ gBattleAnimMove_JetPunch:: createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 0, 9, RGB_BLUE delay 8 createvisualtask AnimTask_ExtremeSpeedMonReappear, 2 + setarg 0x7, 0x1000 createsprite gSmallBubblePairSpriteTemplate, ANIM_TARGET, 2, 0x14, 0xffec, 0x14, ANIM_TARGET createsprite gSmallBubblePairSpriteTemplate, ANIM_TARGET, 2, 0xa, 0xa, 0x14, ANIM_TARGET createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, 0, 0, 8, 1, 0 @@ -17219,7 +17226,7 @@ TorchSongEffect: createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 5, ANIM_ATTACKER, 0 createsprite gHyperVoiceRingSpriteTemplate, ANIM_ATTACKER, 0, 45, 0, 0, 0, 0, 0, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 6, 1 - createvisualtask AnimTask_ShakeBattleTerrain, 2, 1, 0, 6, 1 + createvisualtask AnimTask_ShakeBattlePlatforms, 2, 1, 0, 6, 1 createvisualtask SoundTask_WaitForCry, 5 return @@ -17700,7 +17707,7 @@ gBattleAnimMove_MakeItRain:: jumprettrue MakingItRainOnPlayer MakingItRainContinue: waitbgfadeout - createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 7, 1, 11, 1 + createsprite gShakeMonOrPlatformSpriteTemplate, ANIM_ATTACKER, 2, 7, 1, 11, 1 loopsewithpan SE_M_PAY_DAY, SOUND_PAN_TARGET, 8, 15 createsprite gMakingItRainTemplate, ANIM_TARGET, 2, -5, 0, -5, 1 delay 2 @@ -20066,7 +20073,7 @@ gBattleAnimMove_MeanLook:: gBattleAnimMove_RockThrow:: loadspritegfx ANIM_TAG_ROCKS - createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_TARGET, 2, 6, 1, 15, 1 + createsprite gShakeMonOrPlatformSpriteTemplate, ANIM_TARGET, 2, 6, 1, 15, 1 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 0, 1, 0, 0 playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 6 @@ -20088,7 +20095,7 @@ gBattleAnimMove_RockThrow:: gBattleAnimMove_RockSlide:: loadspritegfx ANIM_TAG_ROCKS monbg ANIM_DEF_PARTNER - createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 7, 1, 11, 1 + createsprite gShakeMonOrPlatformSpriteTemplate, ANIM_ATTACKER, 2, 7, 1, 11, 1 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -5, 1, -5, 1 playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 @@ -20882,7 +20889,7 @@ gBattleAnimMove_Barrage:: createvisualtask AnimTask_BarrageBall, 3 playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER delay 24 - createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 8, 1, 40, 1 + createsprite gShakeMonOrPlatformSpriteTemplate, ANIM_ATTACKER, 2, 8, 1, 40, 1 createvisualtask AnimTask_ShakeMon, 3, ANIM_TARGET, 0, 4, 20, 1 createvisualtask AnimTask_ShakeMon, 3, ANIM_DEF_PARTNER, 0, 4, 20, 1 loopsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET, 8, 2 @@ -21220,7 +21227,7 @@ gBattleAnimMove_Rollout:: monbg ANIM_DEF_PARTNER splitbgprio ANIM_TARGET setalpha 12, 8 - createvisualtask AnimTask_Rollout, 2 + createvisualtask AnimTask_Rollout, 2, 0 waitforvisualfinish createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 30, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, ANIM_TARGET, 2 @@ -21629,7 +21636,7 @@ gBattleAnimMove_Superpower:: createsprite gSuperpowerOrbSpriteTemplate, ANIM_TARGET, 2, ANIM_ATTACKER playsewithpan SE_M_MEGA_KICK, SOUND_PAN_ATTACKER delay 20 - createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 4, 1, 180, 1 + createsprite gShakeMonOrPlatformSpriteTemplate, ANIM_ATTACKER, 2, 4, 1, 180, 1 createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_EARTHQUAKE, 0 delay 40 createsprite gSuperpowerRockSpriteTemplate, ANIM_ATTACKER, 41, 200, 96, 1, 120 @@ -22980,7 +22987,7 @@ SnoreEffect: playsewithpan SE_M_SNORE, SOUND_PAN_ATTACKER createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 7, ANIM_ATTACKER, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 7, 1 - createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, 14, 0, 0 + createsprite gShakeMonOrPlatformSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, 14, 0, 0 createsprite gSnoreZSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, -42, -38, 24, 0, 0 createsprite gSnoreZSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0, -42, 24, 0, 0 createsprite gSnoreZSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 42, -38, 24, 0, 0 @@ -24828,7 +24835,7 @@ gBattleAnimMove_AncientPower:: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 4, 1, 10, 1 + createsprite gShakeMonOrPlatformSpriteTemplate, ANIM_ATTACKER, 2, 4, 1, 10, 1 createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, 20, 32, -48, 50, 2 createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, -38, 25, 5 createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, 32, 32, -28, 40, 3 @@ -25253,14 +25260,14 @@ gBattleAnimMove_MetalClaw:: playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, -10, 0 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, 10, 0 - createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 + createsprite gShakeMonOrPlatformSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 delay 8 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 2 playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, -10, 1 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, 10, 1 - createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 + createsprite gShakeMonOrPlatformSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 waitforvisualfinish end @@ -26476,7 +26483,7 @@ HyperVoiceEffect: createsprite gHyperVoiceRingSpriteTemplate, ANIM_ATTACKER, 0, 45, 0, 0, 0, 0, 0, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 6, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_DEF_PARTNER, 1, 0, 6, 1 - createvisualtask AnimTask_ShakeBattleTerrain, 2, 1, 0, 6, 1 + createvisualtask AnimTask_ShakeBattlePlatforms, 2, 1, 0, 6, 1 createvisualtask SoundTask_WaitForCry, 5 return @@ -26598,7 +26605,7 @@ gBattleAnimMove_DragonClaw:: createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_RAZOR_WIND, SOUND_PAN_TARGET createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, -10, 0 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, 10, 0 - createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 + createsprite gShakeMonOrPlatformSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 480, 20, 16, -46, ANIM_ATTACKER delay 2 createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 576, 20, 8, 42, ANIM_ATTACKER @@ -26611,7 +26618,7 @@ gBattleAnimMove_DragonClaw:: createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_RAZOR_WIND, SOUND_PAN_TARGET createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, -10, 1 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, 10, 1 - createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 + createsprite gShakeMonOrPlatformSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 464, 30, 15, -50, ANIM_ATTACKER delay 2 createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 528, 30, 13, 50, ANIM_ATTACKER @@ -27072,7 +27079,7 @@ gBattleAnimMove_BlastBurn:: createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 70, 60, -30, 24, 0, 0, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -4, 3, ANIM_TARGET, 0 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 12, 0, 20, 1 - createvisualtask AnimTask_ShakeBattleTerrain, 2, 2, 0, 10, 1 + createvisualtask AnimTask_ShakeBattlePlatforms, 2, 2, 0, 10, 1 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, 96, 0, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, 60, 30, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, 0, 48, 24, 0, 0, 0 @@ -27086,32 +27093,32 @@ gBattleAnimMove_BlastBurn:: gBattleAnimMove_RockTomb:: loadspritegfx ANIM_TAG_X_SIGN loadspritegfx ANIM_TAG_ROCKS - createvisualtask AnimTask_ShakeBattleTerrain, 2, 2, 0, 10, 1 + createvisualtask AnimTask_ShakeBattlePlatforms, 2, 2, 0, 10, 1 waitforvisualfinish createsprite gRockTombRockSpriteTemplate, ANIM_TARGET, 2, 20, 12, 64, 114, 0 delay 8 - createvisualtask AnimTask_ShakeBattleTerrain, 2, 0, 2, 3, 1 + createvisualtask AnimTask_ShakeBattlePlatforms, 2, 0, 2, 3, 1 playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET delay 8 createsprite gRockTombRockSpriteTemplate, ANIM_TARGET, 2, -20, 12, 64, 98, 0 delay 8 - createvisualtask AnimTask_ShakeBattleTerrain, 2, 0, 2, 3, 1 + createvisualtask AnimTask_ShakeBattlePlatforms, 2, 0, 2, 3, 1 playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET delay 8 createsprite gRockTombRockSpriteTemplate, ANIM_TARGET, 66, 3, 6, 64, 82, 0 delay 8 - createvisualtask AnimTask_ShakeBattleTerrain, 2, 0, 2, 3, 1 + createvisualtask AnimTask_ShakeBattlePlatforms, 2, 0, 2, 3, 1 playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET delay 8 createsprite gRockTombRockSpriteTemplate, ANIM_TARGET, 2, -3, 13, 64, 66, 0 delay 8 - createvisualtask AnimTask_ShakeBattleTerrain, 2, 0, 2, 3, 1 + createvisualtask AnimTask_ShakeBattlePlatforms, 2, 0, 2, 3, 1 playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET delay 24 playsewithpan SE_M_HYPER_BEAM, SOUND_PAN_TARGET createsprite gRedXSpriteTemplate, ANIM_TARGET, 5, ANIM_TARGET, 50 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 20, 1 - createvisualtask AnimTask_ShakeBattleTerrain, 2, 2, 0, 10, 1 + createvisualtask AnimTask_ShakeBattlePlatforms, 2, 2, 0, 10, 1 waitforvisualfinish end @@ -27609,42 +27616,42 @@ gBattleAnimMove_SecretPower:: jumpargeq 0, STATUS_FIELD_GRASSY_TERRAIN, gBattleAnimMove_NeedleArm jumpargeq 0, STATUS_FIELD_ELECTRIC_TERRAIN, gBattleAnimMove_ThunderShock jumpargeq 0, STATUS_FIELD_PSYCHIC_TERRAIN, gBattleAnimMove_Confusion - createvisualtask AnimTask_GetBattleTerrain, 5 - jumpargeq 0, BATTLE_TERRAIN_GRASS, gBattleAnimMove_NeedleArm - jumpargeq 0, BATTLE_TERRAIN_LONG_GRASS, gBattleAnimMove_MagicalLeaf - jumpargeq 0, BATTLE_TERRAIN_SAND, gBattleAnimMove_MudShot - jumpargeq 0, BATTLE_TERRAIN_UNDERWATER, gBattleAnimMove_Waterfall - jumpargeq 0, BATTLE_TERRAIN_WATER, gBattleAnimMove_Surf - jumpargeq 0, BATTLE_TERRAIN_POND, gBattleAnimMove_BubbleBeam - jumpargeq 0, BATTLE_TERRAIN_MOUNTAIN, gBattleAnimMove_RockThrow - jumpargeq 0, BATTLE_TERRAIN_CAVE, gBattleAnimMove_Bite - jumpargeq 0, BATTLE_TERRAIN_BUILDING, gBattleAnimMove_Strength - jumpargeq 0, BATTLE_TERRAIN_SOARING, gBattleAnimMove_Gust - jumpargeq 0, BATTLE_TERRAIN_SKY_PILLAR, gBattleAnimMove_Gust - jumpargeq 0, BATTLE_TERRAIN_BURIAL_GROUND, gBattleAnimMove_ShadowSneak - jumpargeq 0, BATTLE_TERRAIN_PUDDLE, gBattleAnimMove_MudShot - jumpargeq 0, BATTLE_TERRAIN_MARSH, gBattleAnimMove_MudShot - jumpargeq 0, BATTLE_TERRAIN_SWAMP, gBattleAnimMove_MudShot - jumpargeq 0, BATTLE_TERRAIN_ICE, gBattleAnimMove_IceShard - jumpargeq 0, BATTLE_TERRAIN_VOLCANO, gBattleAnimMove_Incinerate - jumpargeq 0, BATTLE_TERRAIN_DISTORTION_WORLD, gBattleAnimMove_Pound - jumpargeq 0, BATTLE_TERRAIN_SPACE, gBattleAnimMove_Swift - jumpargeq 0, BATTLE_TERRAIN_ULTRA_SPACE, gBattleAnimMove_Psywave + createvisualtask AnimTask_GetBattleEnvironment, 5 + jumpargeq 0, BATTLE_ENVIRONMENT_GRASS, gBattleAnimMove_NeedleArm + jumpargeq 0, BATTLE_ENVIRONMENT_LONG_GRASS, gBattleAnimMove_MagicalLeaf + jumpargeq 0, BATTLE_ENVIRONMENT_SAND, gBattleAnimMove_MudShot + jumpargeq 0, BATTLE_ENVIRONMENT_UNDERWATER, gBattleAnimMove_Waterfall + jumpargeq 0, BATTLE_ENVIRONMENT_WATER, gBattleAnimMove_Surf + jumpargeq 0, BATTLE_ENVIRONMENT_POND, gBattleAnimMove_BubbleBeam + jumpargeq 0, BATTLE_ENVIRONMENT_MOUNTAIN, gBattleAnimMove_RockThrow + jumpargeq 0, BATTLE_ENVIRONMENT_CAVE, gBattleAnimMove_Bite + jumpargeq 0, BATTLE_ENVIRONMENT_BUILDING, gBattleAnimMove_Strength + jumpargeq 0, BATTLE_ENVIRONMENT_SOARING, gBattleAnimMove_Gust + jumpargeq 0, BATTLE_ENVIRONMENT_SKY_PILLAR, gBattleAnimMove_Gust + jumpargeq 0, BATTLE_ENVIRONMENT_BURIAL_GROUND, gBattleAnimMove_ShadowSneak + jumpargeq 0, BATTLE_ENVIRONMENT_PUDDLE, gBattleAnimMove_MudShot + jumpargeq 0, BATTLE_ENVIRONMENT_MARSH, gBattleAnimMove_MudShot + jumpargeq 0, BATTLE_ENVIRONMENT_SWAMP, gBattleAnimMove_MudShot + jumpargeq 0, BATTLE_ENVIRONMENT_ICE, gBattleAnimMove_IceShard + jumpargeq 0, BATTLE_ENVIRONMENT_VOLCANO, gBattleAnimMove_Incinerate + jumpargeq 0, BATTLE_ENVIRONMENT_DISTORTION_WORLD, gBattleAnimMove_Pound + jumpargeq 0, BATTLE_ENVIRONMENT_SPACE, gBattleAnimMove_Swift + jumpargeq 0, BATTLE_ENVIRONMENT_ULTRA_SPACE, gBattleAnimMove_Psywave .if B_SECRET_POWER_ANIMATION >= GEN_7 - jumpargeq 0, BATTLE_TERRAIN_SNOW, gBattleAnimMove_IceShard - jumpargeq 0, BATTLE_TERRAIN_BUILDING, gBattleAnimMove_SpitUp + jumpargeq 0, BATTLE_ENVIRONMENT_SNOW, gBattleAnimMove_IceShard + jumpargeq 0, BATTLE_ENVIRONMENT_BUILDING, gBattleAnimMove_SpitUp goto gBattleAnimMove_SpitUp .elseif B_SECRET_POWER_ANIMATION >= GEN_6 - jumpargeq 0, BATTLE_TERRAIN_SNOW, gBattleAnimMove_Avalanche - jumpargeq 0, BATTLE_TERRAIN_BUILDING, gBattleAnimMove_BodySlam + jumpargeq 0, BATTLE_ENVIRONMENT_SNOW, gBattleAnimMove_Avalanche + jumpargeq 0, BATTLE_ENVIRONMENT_BUILDING, gBattleAnimMove_BodySlam goto gBattleAnimMove_BodySlam .elseif B_SECRET_POWER_ANIMATION >= GEN_4 - jumpargeq 0, BATTLE_TERRAIN_SNOW, gBattleAnimMove_Avalanche - jumpargeq 0, BATTLE_TERRAIN_BUILDING, gBattleAnimMove_BodySlam + jumpargeq 0, BATTLE_ENVIRONMENT_SNOW, gBattleAnimMove_Avalanche + jumpargeq 0, BATTLE_ENVIRONMENT_BUILDING, gBattleAnimMove_BodySlam goto gBattleAnimMove_MudSlap .else - jumpargeq 0, BATTLE_TERRAIN_SNOW, gBattleAnimMove_Avalanche - jumpargeq 0, BATTLE_TERRAIN_BUILDING, gBattleAnimMove_Strength + jumpargeq 0, BATTLE_ENVIRONMENT_SNOW, gBattleAnimMove_Avalanche + jumpargeq 0, BATTLE_ENVIRONMENT_BUILDING, gBattleAnimMove_Strength goto gBattleAnimMove_Slam .endif @@ -29802,13 +29809,13 @@ gBattleAnimMove_ContinentalCrush:: jumpargeq 0x0 0x0 ContinentalCrushDay jumpargeq 0x0 0x2 ContinentalCrushAfternoon ContinentalCrushNight: - fadetobg BG_BLUE_SKY_NIGHT + fadetobg BG_ROCK_FIELD_NIGHT goto FinishContinentalCrush ContinentalCrushDay: - fadetobg BG_BLUE_SKY_DAY + fadetobg BG_ROCK_FIELD_DAY goto FinishContinentalCrush ContinentalCrushAfternoon: - fadetobg BG_BLUE_SKY_AFTERNOON + fadetobg BG_ROCK_FIELD_AFTERNOON FinishContinentalCrush: delay 0x18 invisible ANIM_TARGET @@ -31596,13 +31603,15 @@ gBattleAnimMove_BlackHoleEclipse:: delay 0x8 createsprite gBlackHoleEclipseHoleShrinkSpriteTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, ANIM_TARGET, 0x0 waitforvisualfinish + unloadspritegfx ANIM_TAG_THIN_RING + unloadspritegfx ANIM_TAG_ICE_CHUNK loadspritegfx ANIM_TAG_SPARKLE_4 @detect createsprite gTargetTwinkleSpriteTemplate, ANIM_ATTACKER, 13, 0x0, 0x0, ANIM_TARGET @detect star delay 0x2 + unloadspritegfx ANIM_TAG_VERTICAL_HEX @red unloadspritegfx ANIM_TAG_SHADOW_BALL - unloadspritegfx ANIM_TAG_THIN_RING - unloadspritegfx ANIM_TAG_ICE_CHUNK unloadspritegfx ANIM_TAG_BLACK_BALL_2 + unloadspritegfx ANIM_TAG_FOCUS_ENERGY loadspritegfx ANIM_TAG_EXPLOSION_2 call BlackHoleEclipseExplosion createvisualtask AnimTask_BlendBattleAnimPal, 0xa, (F_PAL_BG | F_PAL_BATTLERS_2), 0x1, 0x0, 0x10, 0x7fff @ bg to white pal @@ -31831,13 +31840,13 @@ gBattleAnimMove_Catastropika:: jumpargeq 0x0 0x0 CatastropikaDaytime jumpargeq 0x0 0x2 CatastropikaAfternoon CatastropikaNight: - fadetobg BG_BLUE_SKY_NIGHT + fadetobg BG_MAX_LIGHTNING goto CatastropikaFinish CatastropikaDaytime: - fadetobg BG_BLUE_SKY_DAY + fadetobg BG_MAX_LIGHTNING goto CatastropikaFinish CatastropikaAfternoon: - fadetobg BG_BLUE_SKY_AFTERNOON + fadetobg BG_MAX_LIGHTNING CatastropikaFinish: waitbgfadeout visible ANIM_ATTACKER @@ -32273,12 +32282,12 @@ gBattleAnimMove_StokedSparksurfer:: jumpargeq 0x0 0x0 StokedSparksurferDay jumpargeq 0x0 0x2 StokedSparksurferAfternoon StokedSparksurferNight: - fadetobg BG_BLUE_SKY_NIGHT + fadetobg BG_MAX_LIGHTNING goto StokedSparksurferFinish StokedSparksurferAfternoon: - fadetobg BG_BLUE_SKY_AFTERNOON + fadetobg BG_MAX_LIGHTNING StokedSparksurferDay: - fadetobg BG_BLUE_SKY_DAY + fadetobg BG_MAX_LIGHTNING StokedSparksurferFinish: waitbgfadeout visible ANIM_ATTACKER @@ -33434,20 +33443,24 @@ OceanicOperettaExplosion: gBattleAnimMove_SplinteredStormshards:: + createvisualtask AnimTask_GetLycanrocForm, 0x2 + jumpargeq 0x0 0x0 SplinteredStormshardsDayForme + jumpargeq 0x0 0x2 SplinteredStormshardsDuskForme +SplinteredStormshardsNightForme: + fadetobg BG_ROCK_FIELD_NIGHT + goto SplinteredStormshardsFinishFade +SplinteredStormshardsDayForme: + fadetobg BG_ROCK_FIELD_DAY + goto SplinteredStormshardsFinishFade +SplinteredStormshardsDuskForme: + fadetobg BG_ROCK_FIELD_AFTERNOON +SplinteredStormshardsFinishFade: + waitbgfadeout + waitforvisualfinish loadspritegfx ANIM_TAG_ROCKS @rock loadspritegfx ANIM_TAG_ICICLE_SPEAR @spear createvisualtask AnimTask_AllBattlersInvisibleExceptAttackerAndTarget, 0xA waitforvisualfinish - createvisualtask AnimTask_GetLycanrocForm, 0x2 - jumpargeq 0x0 0x1 SplinteredStormshardsNightForme -SplinteredStormshardsDayForme: - createvisualtask AnimTask_BlendBattleAnimPal, 0xa, F_PAL_BG, 0x1, 0x0, 0xc, 0x5bff - goto SplinteredStormshardsFinishFade -SplinteredStormshardsNightForme: - createvisualtask AnimTask_BlendBattleAnimPal, 0xa, F_PAL_BG, 0x1, 0x0, 0xc, 0x0000 -SplinteredStormshardsFinishFade: - waitforvisualfinish - setalpha 12, 8 playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER createvisualtask AnimTask_IsTargetPlayerSide, 0x2 jumpargeq 0x7 ANIM_TARGET SplinteredStormshardsByOpponent @@ -33456,7 +33469,6 @@ SplinteredStormshardsByPlayer: call SplinteredStormshardsPlayer_Rising1 delay 0x2 loadspritegfx ANIM_TAG_ROUND_SHADOW @fly - invisible ANIM_TARGET playsewithpan SE_M_FLY, SOUND_PAN_ATTACKER createsprite gSplinteredShardsFlySpriteTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0xd, 0x150 call SplinteredStormshardsPlayer_Rising1 @@ -33471,8 +33483,6 @@ SplinteredStormshardsByPlayer: call SplinteredStormshardsPlayer_Rising1 delay 16 waitforvisualfinish - visible ANIM_TARGET - call SplinteredStormshardsFixBackgroundFade waitforvisualfinish loadspritegfx ANIM_TAG_METEOR @superpower loadspritegfx ANIM_TAG_EXPLOSION @explosion @@ -33500,6 +33510,8 @@ SplinteredStormshardsEnd: waitforvisualfinish createvisualtask AnimTask_AllBattlersVisible, 0xA waitforvisualfinish + restorebg + waitbgfadein waitforvisualfinish end SplinteredStormshardsExplosionOpponent: @@ -33539,7 +33551,6 @@ SplinteredStormshardsByOpponent: call SplinteredStormshardsOpponent_Rising1 delay 0x2 loadspritegfx ANIM_TAG_ROUND_SHADOW @fly - invisible ANIM_TARGET createsprite gSplinteredShardsFlySpriteTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0xd, 0x150 call SplinteredStormshardsOpponent_Rising1 call SplinteredStormshardsOpponent_Rising2 @@ -33553,10 +33564,6 @@ SplinteredStormshardsByOpponent: call SplinteredStormshardsOpponent_Rising1 delay 16 waitforvisualfinish - visible ANIM_TARGET - call SplinteredStormshardsFixBackgroundFade - waitforvisualfinish - visible ANIM_TARGET loadspritegfx ANIM_TAG_METEOR @superpower loadspritegfx ANIM_TAG_EXPLOSION @explosion playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER @@ -33680,16 +33687,6 @@ SplinteredStormshardsOpponent_Rising2: createsprite gSplinteredShardsRisingSpearSpriteTemplate, ANIM_ATTACKER, 50, 0xdc, 0x40, 0xdc, 0x0, 0x30 delay 0x2 return -SplinteredStormshardsFixBackgroundFade: - createvisualtask AnimTask_GetLycanrocForm, 0x2 - jumpargeq 0x0 0x1 SplinteredStormshardsNightFormeReturn -SplinteredStormshardsDayFormeReturn: - createvisualtask AnimTask_BlendBattleAnimPal, 0xa, F_PAL_BG, 0x1, 0xc, 0x0, 0x5bff - goto SplinteredStormshardsFinishFadeReturn -SplinteredStormshardsNightFormeReturn: - createvisualtask AnimTask_BlendBattleAnimPal, 0xa, F_PAL_BG, 0x1, 0xc, 0x0, 0x0000 -SplinteredStormshardsFinishFadeReturn: - return gBattleAnimMove_LetsSnuggleForever:: diff --git a/graphics/battle_anims/backgrounds/rock_afternoon.pal b/graphics/battle_anims/backgrounds/rock_afternoon.pal new file mode 100644 index 000000000..eb8aaa190 --- /dev/null +++ b/graphics/battle_anims/backgrounds/rock_afternoon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +246 189 49 +246 172 41 +238 156 32 +222 131 24 +205 115 8 +246 172 41 +246 172 41 +246 172 41 +246 172 41 +167 81 31 +139 74 49 +123 65 32 +98 49 32 +82 32 16 +74 24 8 diff --git a/graphics/battle_anims/backgrounds/rock_day.pal b/graphics/battle_anims/backgrounds/rock_day.pal new file mode 100644 index 000000000..a67974fd0 --- /dev/null +++ b/graphics/battle_anims/backgrounds/rock_day.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +129 196 237 +152 208 243 +174 221 250 +240 186 88 +232 144 39 +152 208 243 +152 208 243 +255 255 255 +255 241 188 +212 111 53 +227 148 56 +197 101 18 +163 70 36 +128 57 35 +113 41 18 diff --git a/graphics/battle_anims/backgrounds/rock_field.bin b/graphics/battle_anims/backgrounds/rock_field.bin new file mode 100644 index 000000000..3395d4c51 Binary files /dev/null and b/graphics/battle_anims/backgrounds/rock_field.bin differ diff --git a/graphics/battle_anims/backgrounds/rock_field.png b/graphics/battle_anims/backgrounds/rock_field.png new file mode 100644 index 000000000..c3545338e Binary files /dev/null and b/graphics/battle_anims/backgrounds/rock_field.png differ diff --git a/graphics/battle_anims/backgrounds/rock_night.pal b/graphics/battle_anims/backgrounds/rock_night.pal new file mode 100644 index 000000000..4f3c3154d --- /dev/null +++ b/graphics/battle_anims/backgrounds/rock_night.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +38 17 60 +22 29 82 +20 43 90 +91 97 155 +47 50 120 +255 255 255 +243 237 195 +22 29 82 +22 29 82 +43 29 98 +49 25 82 +40 5 57 +53 41 103 +58 65 118 +27 16 70 diff --git a/graphics/battle_anims/backgrounds/sky_afternoon.pal b/graphics/battle_anims/backgrounds/sky_afternoon.pal deleted file mode 100644 index c7c5805fa..000000000 --- a/graphics/battle_anims/backgrounds/sky_afternoon.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -246 230 180 -255 222 139 -255 230 123 -255 222 106 -255 213 98 -255 197 57 -255 180 32 -255 172 8 -255 156 8 -230 131 8 -222 123 8 -205 106 8 -205 90 8 -197 74 8 -189 57 8 diff --git a/graphics/battle_anims/backgrounds/sky_day.bin b/graphics/battle_anims/backgrounds/sky_day.bin deleted file mode 100644 index a09c865f0..000000000 Binary files a/graphics/battle_anims/backgrounds/sky_day.bin and /dev/null differ diff --git a/graphics/battle_anims/backgrounds/sky_day.pal b/graphics/battle_anims/backgrounds/sky_day.pal deleted file mode 100644 index c0ea00a0a..000000000 --- a/graphics/battle_anims/backgrounds/sky_day.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -211 216 222 -198 208 221 -184 199 218 -170 191 215 -156 181 212 -142 172 207 -128 162 203 -117 154 198 -104 147 199 -101 141 189 -89 137 194 -82 127 179 -77 128 190 -63 117 184 -52 106 169 diff --git a/graphics/battle_anims/backgrounds/sky_day.png b/graphics/battle_anims/backgrounds/sky_day.png deleted file mode 100644 index c03ce283b..000000000 Binary files a/graphics/battle_anims/backgrounds/sky_day.png and /dev/null differ diff --git a/graphics/battle_anims/backgrounds/sky_night.pal b/graphics/battle_anims/backgrounds/sky_night.pal deleted file mode 100644 index 4c0622ac5..000000000 --- a/graphics/battle_anims/backgrounds/sky_night.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -139 90 222 -131 65 230 -106 41 230 -98 32 230 -98 16 255 -65 8 255 -49 8 205 -41 8 180 -24 0 172 -24 0 156 -32 0 148 -32 0 131 -32 0 115 -24 0 106 -24 0 98 diff --git a/include/battle.h b/include/battle.h index e1667a078..72f97564f 100644 --- a/include/battle.h +++ b/include/battle.h @@ -1078,7 +1078,7 @@ extern u8 gBattleTextBuff1[TEXT_BUFF_ARRAY_COUNT]; extern u8 gBattleTextBuff2[TEXT_BUFF_ARRAY_COUNT]; extern u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT + 13]; //to handle stupidly large z move names extern u32 gBattleTypeFlags; -extern u8 gBattleTerrain; +extern u8 gBattleEnvironment; extern u8 *gBattleAnimBgTileBuffer; extern u8 *gBattleAnimBgTilemapBuffer; extern u32 gBattleControllerExecFlags; diff --git a/include/battle_terrain.h b/include/battle_terrain.h index 975aea46c..7b2220c95 100644 --- a/include/battle_terrain.h +++ b/include/battle_terrain.h @@ -12,6 +12,6 @@ struct BattleTerrain { struct BattleBackground background; }; -extern const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT]; +extern const struct BattleTerrain gBattleTerrainInfo[BATTLE_ENVIRONMENT_COUNT]; #endif // GUARD_BATTLE_TERRAIN_H diff --git a/include/config/dexnav.h b/include/config/dexnav.h index 7b4e3ba28..7ef65ae9b 100644 --- a/include/config/dexnav.h +++ b/include/config/dexnav.h @@ -19,7 +19,7 @@ #define DEXNAV_CHAIN_MAX 100 // maximum chain value -// hidden pokemon options - an approximation of values to due to lack of available data +// hidden pokemon options - an approximation of values due to lack of available data #define HIDDEN_MON_STEP_COUNT 100 // Look for hidden pokemon every x steps #define HIDDEN_MON_SEARCH_RATE 25 // x% chance of finding hidden pokemon every x steps #define HIDDEN_MON_PROBABILTY 15 // x% chance of finding hidden mon compared to regular encounter data diff --git a/include/config/follower_npc.h b/include/config/follower_npc.h index 013b28e7e..222248ae8 100644 --- a/include/config/follower_npc.h +++ b/include/config/follower_npc.h @@ -1,13 +1,13 @@ -// #ifndef GUARD_FOLLOWER_NPC_OVERWORLD_H -// #define GUARD_FOLLOWER_NPC_OVERWORLD_H +#ifndef GUARD_FOLLOWER_NPC_OVERWORLD_H +#define GUARD_FOLLOWER_NPC_OVERWORLD_H -// // NPC Followers -// #define FNPC_ENABLE_NPC_FOLLOWERS FALSE // Enables the use of script macros to designate NPCs to follow behind the player, DPP style. Slightly increases the size of the saveblock (SaveBlock3). -// #define FNPC_FLAG_HEAL_AFTER_FOLLOWER_BATTLE 0 // Replace the 0 with a flag in order to use that flag to toggle whether the Player's party will be automatically healed after every follower partner battle. If you want this to always be active without using a flag, replace 0 with FNPC_ALWAYS. -// #define FNPC_FLAG_PARTNER_WILD_BATTLES 0 // Replace the 0 with a flag in order to use that flag to toggle whether the follower partner will join you for wild battles. If you want this to always be active without using a flag, replace 0 with FNPC_ALWAYS. -// #define FNPC_NPC_FOLLOWER_WILD_BATTLE_VS_2 TRUE // If set to TRUE, two wild Pokemon will show up to the partner battle instead of just one. -// #define FNPC_NPC_FOLLOWER_PARTY_PREVIEW TRUE // If set to TRUE, a preview of the player's and partner's teams will be shown before every trainer battle. -// #define FNPC_FACE_NPC_FOLLOWER_ON_DOOR_EXIT TRUE // If set to TRUE, the player will turn to face the follower when they exit a doorway. -// #define FNPC_NPC_FOLLOWER_SHOW_AFTER_LEAVE_ROUTE TRUE // If set to TRUE, the follower will reappear and walk out of the player after using Fly, Escape Rope, or Teleport. +// NPC Followers +#define FNPC_ENABLE_NPC_FOLLOWERS FALSE // Enables the use of script macros to designate NPCs to follow behind the player, DPP style. Slightly increases the size of the saveblock (SaveBlock3). +#define FNPC_FLAG_HEAL_AFTER_FOLLOWER_BATTLE 0 // Replace the 0 with a flag in order to use that flag to toggle whether the Player's party will be automatically healed after every follower partner battle. If you want this to always be active without using a flag, replace 0 with FNPC_ALWAYS. +#define FNPC_FLAG_PARTNER_WILD_BATTLES 0 // Replace the 0 with a flag in order to use that flag to toggle whether the follower partner will join you for wild battles. If you want this to always be active without using a flag, replace 0 with FNPC_ALWAYS. +#define FNPC_NPC_FOLLOWER_WILD_BATTLE_VS_2 TRUE // If set to TRUE, two wild Pokemon will show up to the partner battle instead of just one. +#define FNPC_NPC_FOLLOWER_PARTY_PREVIEW TRUE // If set to TRUE, a preview of the player's and partner's teams will be shown before every trainer battle. +#define FNPC_FACE_NPC_FOLLOWER_ON_DOOR_EXIT TRUE // If set to TRUE, the player will turn to face the follower when they exit a doorway. +#define FNPC_NPC_FOLLOWER_SHOW_AFTER_LEAVE_ROUTE TRUE // If set to TRUE, the follower will reappear and walk out of the player after using Fly, Escape Rope, or Teleport. -// #endif // GUARD_FOLLOWER_NPC_OVERWORLD_H +#endif // GUARD_FOLLOWER_NPC_OVERWORLD_H diff --git a/include/config/general.h b/include/config/general.h index 288844002..9687a66f0 100644 --- a/include/config/general.h +++ b/include/config/general.h @@ -8,8 +8,9 @@ // Ruby's actual debug build does not use the AGBPrint features. // #define NDEBUG -// Fire Red likely forgot to define NDEBUG/NOAGBPRN before release, leading -// to the inclusion of asserts in the retail ROM. +// To enable printf debugging, comment out "#define NDEBUG". This allows +// the various AGBPrint functions to be used. (See include/gba/isagbprint.h). +// See below for enabling different pretty printing versions. #ifndef NDEBUG #define PRETTY_PRINT_OFF (0) @@ -31,7 +32,7 @@ // AGB_PRINT is supported on respective debug units. #define LOG_HANDLER (LOG_HANDLER_MGBA_PRINT) -#endif // NDEBUG +#endif // Uncomment to fix some identified minor bugs #define BUGFIX @@ -70,7 +71,6 @@ // General settings #define EXPANSION_INTRO TRUE // If TRUE, a custom RHH intro will play after the vanilla copyright screen. -#define POKEDEX_PLUS_HGSS FALSE // If TRUE, enables the custom HGSS style Pokedex. #define SUMMARY_SCREEN_NATURE_COLORS TRUE // If TRUE, nature-based stat boosts and reductions will be red and blue in the summary screen. #define HQ_RANDOM TRUE // If TRUE, replaces the default RNG with an implementation of SFC32 RNG. May break code that relies on RNG. #define COMPETITIVE_PARTY_SYNTAX TRUE // If TRUE, parties are defined in "competitive syntax". @@ -87,4 +87,5 @@ // Naming Screen #define AUTO_LOWERCASE_KEYBOARD GEN_LATEST // Starting in GEN_6, after entering the first uppercase character, the keyboard switches to lowercase letters. +#define SAVE_TYPE_ERROR_SCREEN FALSE // When enabled, this shows an error message when the game is loaded on a cart without a flash chip or on an emulator with the wrong save type setting instead of crashing. #endif // GUARD_CONFIG_GENERAL_H diff --git a/include/config/item.h b/include/config/item.h index 06e6dc7cb..96156b0db 100644 --- a/include/config/item.h +++ b/include/config/item.h @@ -22,7 +22,7 @@ #define I_REPEL_INCLUDE_FAINTED GEN_LATEST // In Gen1 and Gen6+, Repels always use the level of the first member of the party to check which wild Pokémon to prevent encounters with, even if that member is fainted. In Gen2-5, it only uses the level of the first non-fainted Pokémon. // TM config -#define I_REUSABLE_TMS TRUE // In Gen5-8, TMs are reusable. Setting this to TRUE will make all vanilla TMs reusable, though they can also be cherry-picked by setting their importance to 1. +#define I_REUSABLE_TMS FALSE // In Gen5-8, TMs are reusable. Setting this to TRUE will make all vanilla TMs reusable, though they can also be cherry-picked by setting their importance to 1. // Exp. Share config // To use this feature, replace the 0 with the flag ID you're assigning it to. @@ -38,9 +38,10 @@ // Vs. Seeker #define I_VS_SEEKER_CHARGING 0 // If this flag is assigned, the Vs Seeker functionality will be enabled. When the player has the Vs. Seeker, Match Call rematch functions will stop working. -//Fishing -#define I_FISHING_CHAIN FALSE // Introduced in XY, hooking the same Pokémon repeatedly will increase the odds of that mon being shiny. NOTE: This implementation is an approximation of the actual feature, as XY have not been throughoutly documented or datamined. -#define I_FISHING_MINIGAME GEN_1 // Each generation uses a variation of reeling in Pokémon once they have been hooked. +// Fishing +#define I_FISHING_BITE_ODDS GEN_LATEST // In Gen 1 and Gen 2, the Old Rod has a 100% chance for a bite, Good Rod has a 66% chance for a bite, and Super Rod has a 50% chance for a bite. In Gen 3, all rods have a base 50% chance for a bite. In Gen 4 onwards, the Old Rod has a base 25% chance for a bite, Good Rod has a 50% chance for a bite, and Super Rod has a 75% chance for a bite. +#define I_FISHING_MINIGAME GEN_3 // Each generation uses a variation of reeling in Pokémon once they have been hooked. NOTE: Only the Gen 1/2 and Gen 3 minigames are implemented right now! +#define I_FISHING_ENVIRONMENT GEN_LATEST // In Gen 3, the battle environment when fighting a hooked Pokémon is based on the tile the player is standing on. In Gen 4 onwards, the environment is based on tile that is being fished in, resulting in it usually being a water environment. #define I_FISHING_STICKY_BOOST GEN_LATEST // In Gen 3, a Pokemon with Suction Cups or Sticky Hold in the first slot of the party causes the chance for a bite to increase by about 35%. In Gen 4 onwards, it doubles the base bite chance. #define I_FISHING_FOLLOWER_BOOST FALSE // In HGSS, fishing bite odds are increased depending on the friendship of the current following Pokémon. #define I_FISHING_CHAIN FALSE // Introduced in XY, hooking the same Pokémon repeatedly will increase the odds of that mon being shiny. NOTE: This implementation is an approximation of the actual feature, as XY have not been throughoutly documented or datamined. diff --git a/include/config/overworld.h b/include/config/overworld.h index bce02be53..c8510583c 100644 --- a/include/config/overworld.h +++ b/include/config/overworld.h @@ -3,13 +3,14 @@ // Movement config #define OW_RUNNING_INDOORS GEN_LATEST // In Gen4+, players are allowed to run indoors. -#define OW_AUTO_SIGNPOST FALSE // When enabled, if the tile that the player is facing has MB_SIGNPOST, MB_POKEMART_SIGN, or MB_POKEMON_CENTER_SIGN, the player will automatically read the signpost, as seen in FRLG. -#define SLOW_MOVEMENT_ON_STAIRS TRUE // If enabled, the player will move slower up/down stairs like in FR +#define SLOW_MOVEMENT_ON_STAIRS FALSE // If enabled, the player will move slower up/down stairs like in FR // Other settings #define OW_POISON_DAMAGE GEN_LATEST // In Gen4, Pokémon no longer faint from Poison in the overworld. In Gen5+, they no longer take damage at all. #define OW_DOUBLE_APPROACH_WITH_ONE_MON FALSE // If enabled, you can be spotted by two trainers at the same time even if you only have one eligible Pokémon in your party. #define OW_HIDE_REPEAT_MAP_POPUP FALSE // If enabled, map popups will not appear if entering a map with the same Map Section Id as the last. +#define OW_FRLG_WHITEOUT FALSE // If enabled, shows an additional whiteout message and post whiteout event script with healing NPC. +#define OW_DEFOG_FIELD_MOVE FALSE // If enabled, Defog can be used as a Field Move as seen in DPPt. // Item Obtain Description Box #define OW_ITEM_DESCRIPTIONS_OFF 0 // never show descriptions @@ -57,11 +58,17 @@ #define OW_FOLLOWERS_ENABLED TRUE // Enables follower Pokémon, HGSS style. Requires OW_POKEMON_OBJECT_EVENTS. Note that additional scripting may be required for them to be fully supported! #define OW_FOLLOWERS_BOBBING TRUE // If TRUE, follower Pokémon will bob up and down during their idle & walking animations #define OW_FOLLOWERS_POKEBALLS TRUE // If TRUE, follower Pokémon will emerge from the Poké Ball they are stored in, instead of a normal Poké Ball -#define OW_FOLLOWERS_WEATHER_FORMS TRUE // If TRUE, Castform and Cherrim gain FORM_CHANGE_OVERWORLD_WEATHER, which will make them transform in the overworld based on the weather. -#define OW_FOLLOWERS_COPY_WILD_PKMN TRUE // If TRUE, follower Pokémon that know Transform or have Illusion/Imposter will copy wild Pokémon at random. +#define OW_FOLLOWERS_WEATHER_FORMS FALSE // If TRUE, Castform and Cherrim gain FORM_CHANGE_OVERWORLD_WEATHER, which will make them transform in the overworld based on the weather. +#define OW_FOLLOWERS_COPY_WILD_PKMN FALSE // If TRUE, follower Pokémon that know Transform or have Illusion/Imposter will copy wild Pokémon at random. #define OW_BATTLE_ONLY_FORMS TRUE // If TRUE, loads overworld sprites for battle-only forms like Mega Evos. Requires OW_POKEMON_OBJECT_EVENTS. #define B_FLAG_FOLLOWERS_DISABLED 0 // Enables / Disables followers by using a flag. Helpful to disable followers for a period of time. - +#define OW_FOLLOWERS_SCRIPT_MOVEMENT TRUE // If TRUE, follower Pokémon only go back to their Poké Ball if a non-player collides with them by setting the FLAG_SAFE_FOLLOWER_MOVEMENT flag by default. +// Follower Pokémon Restrictions +// If set, the only pokemon allowed to follow you will be those matching species, met location, and/or met level; These accept vars, too: VAR_TEMP_1, etc +// For examples, see "docs/tutorials/how_to_new_pokemon.md" +#define OW_FOLLOWERS_ALLOWED_SPECIES (0) +#define OW_FOLLOWERS_ALLOWED_MET_LVL (0) +#define OW_FOLLOWERS_ALLOWED_MET_LOC (0) // Out-of-battle Ability effects #define OW_SYNCHRONIZE_NATURE GEN_LATEST // In Gen8+, if a Pokémon with Synchronize leads the party, wild Pokémon will always have their same Nature as opposed to the 50% chance in previous games. Gift Pokémon excluded. @@ -74,15 +81,26 @@ #define OW_STORM_DRAIN GEN_LATEST // In Gen8+, if a Pokémon with Storm Drain is leading the party, there is a 50% chance to encounter a Water-type Pokémon. #define OW_FLASH_FIRE GEN_LATEST // In Gen8+, if a Pokémon with Flash Fire is leading the party, there is a 50% chance to encounter a Fire-type Pokémon. -// These generational defines only make a distinction for OW_ALTERED_TIME_RATIO +// These defines only make a distinction for OW_ALTERED_TIME_RATIO #define GEN_8_PLA GEN_LATEST + 2 +#define TIME_DEBUG GEN_LATEST + 3 //Time -#define OW_TIMES_OF_DAY GEN_5 // Different generations have the times of day change at different times. -#define OW_USE_FAKE_RTC FALSE // When TRUE, seconds on the in-game clock will only advance once every 60 playTimeVBlanks (every 60 frames). -#define OW_ALTERED_TIME_RATIO GEN_LATEST // In GEN_8_PLA, the time in game moves forward 60 seconds for every second in the RTC. In GEN_9, it is 20 seconds. This has no effect if OW_USE_FAKE_RTC is FALSE. +#define OW_TIMES_OF_DAY GEN_LATEST // Different generations have the times of day change at different times. +#define OW_USE_FAKE_RTC FALSE // When TRUE, seconds on the in-game clock will only advance once every 60 playTimeVBlanks (every 60 frames). +#define OW_ALTERED_TIME_RATIO GEN_LATEST // In GEN_8_PLA, the time in game moves forward 60 seconds for every second in the RTC. In GEN_9, it is 20 seconds. TIME_DEBUG is 1:1, and meant for debugging purposes. This has no effect if OW_USE_FAKE_RTC is FALSE. +#define OW_TIME_OF_DAY_ENCOUNTERS FALSE // If TRUE, will allow the user to define and use different encounter tables based on the time of day. +#define OW_TIME_OF_DAY_DISABLE_FALLBACK FALSE // If TRUE, if the encounter table for a specific map and time is empty, the area will have no encounters instead of falling back to the vanilla map and time. +#define OW_TIME_OF_DAY_FALLBACK TIME_MORNING // The time of day that encounter tables fall back to. #define OW_SEASONS TRUE // Enables seasonal tilesets -#define OW_DAY_AND_NIGHT TRUE // Enables day and night system + +// Lighting +#define OW_SHADOW_INTENSITY 4 // Ranges from 0 to 16, where 0 is fully transparent and 16 is black. +#define OW_OBJECT_SUBPRIORITY 148 // The higher the value, the farther back compared to other sprites. Shadows should be behind object events. +#define OW_ENABLE_DNS TRUE // If set to TRUE, the overworld will be tinted depending on time of day. + +// Object Event Shadows +#define OW_OBJECT_VANILLA_SHADOWS FALSE // In vanilla shadows in the overworld are only shown when jumping. // Overworld flags // To use the following features in scripting, replace the 0s with the flag ID you're assigning it to. @@ -91,14 +109,13 @@ #define OW_FLAG_NO_ENCOUNTER 0 // If this flag is set, wild encounters will be disabled. #define OW_FLAG_NO_TRAINER_SEE 0 // If this flag is set, trainers will not battle the player unless they're talked to. #define OW_FLAG_NO_COLLISION 0 // If this flag is set, the player will be able to walk over tiles with collision. Mainly intended for debugging purposes. +#define OW_FLAG_POKE_RIDER 0 // If this flag is set, the player will be able to use fly from the Pokenav Region Map and the Town Map key item by pressing 'R' on a city/location they are able to fly to. #define BATTLE_PYRAMID_RANDOM_ENCOUNTERS FALSE // If set to TRUE, battle pyramid Pokemon will be generated randomly based on the round's challenge instead of hardcoded in src/data/battle_frontier/battle_pyramid_level_50_wild_mons.h (or open_level_wild_mons.h) // Map pop-up config #define OW_POPUP_GENERATION GEN_3 // Different generations display location names in overworld pop-ups differently. - // <= Gen3: Firered/Leafgreen pop-up - // == Gen5: Black/White pop-up - // other: Emerald pop-up + // Only choices are currently GEN_3 and GEN_5, all others will default to Gen3 pop-ups. // Gen5 map pop-up config // Constants @@ -115,10 +132,13 @@ #define OW_POPUP_BW_ALPHA_BLEND FALSE // Enables alpha blending/transparency for the pop-ups. Mainly intended to be used with the black color option. // Pokémon Center -#define OW_IGNORE_EGGS_ON_HEAL GEN_LATEST // In Gen 4+, the nurse in the Pokémon Center does not heal Eggs on healing machine. +#define OW_IGNORE_EGGS_ON_HEAL GEN_LATEST // In Gen 4+, the nurse in the Pokémon Center does not heal Eggs on healing machine. #define OW_UNION_DISABLE_CHECK FALSE // When TRUE, the nurse does not inform the player if there is a trainer waiting in the Union Room. This speeds up the loading of the Pokémon Center. #define OW_FLAG_MOVE_UNION_ROOM_CHECK 0 // If this flag is set, the game will only check if players are in the Union Room while healing Pokémon, and not when players enter the Pokémon Center. This speeds up the loading of the Pokémon Center. This is ignored if OW_UNION_DISABLE_CHECK is TRUE. +// Berry Blender +#define BERRY_BLENDER_THROW_ALL_BERRIES_AT_ONCE TRUE // This is a small little addition, that basically speeds up the animation where all players' berries are thrown into the blender. Self-explanatory I hope! + #define OW_FIELD_MOVES_WITHOUT_HMS TRUE #endif // GUARD_CONFIG_OVERWORLD_H diff --git a/include/config/pokedex_plus_hgss.h b/include/config/pokedex_plus_hgss.h new file mode 100644 index 000000000..667a4bad5 --- /dev/null +++ b/include/config/pokedex_plus_hgss.h @@ -0,0 +1,11 @@ +#ifndef GUARD_CONFIG_POKEDEX_PLUS_HGSS_H +#define GUARD_CONFIG_POKEDEX_PLUS_HGSS_H + +#define POKEDEX_PLUS_HGSS FALSE // If TRUE, enables the custom HGSS style Pokedex. +#define HGSS_DECAPPED FALSE // If TRUE, uses decapped gfx and strings. +#define HGSS_DARK_MODE FALSE // If TRUE, enables dark mode. +#define HGSS_HIDE_UNSEEN_EVOLUTION_NAMES FALSE // If TRUE, hides evolution mon names. +#define HGSS_SORT_TMS_BY_NUM FALSE // If TRUE, sorts the TMS in HGSS Dex by TM number, rather than alphabetically. +#define HGSS_SHOW_EGG_MOVES_FOR_EVOS FALSE // If TRUE, shows Egg Moves for evolved Pokémon too. + +#endif // GUARD_CONFIG_POKEDEX_PLUS_HGSS_H diff --git a/include/config/pokemon.h b/include/config/pokemon.h index 3288065f7..2345cc3f3 100644 --- a/include/config/pokemon.h +++ b/include/config/pokemon.h @@ -62,7 +62,8 @@ #define P_SHOW_DYNAMIC_TYPES FALSE // If TRUE, all moves with dynamic type changes will be reflected as their current type in battle/summary screens instead of just select ones like in vanilla. // Learnset helper toggles -#define P_LEARNSET_HELPER_TEACHABLE TRUE // If TRUE, teachable_learnsets.h will be populated by tools/learnset_helpers/teachable.py using the included JSON files based on available TMs and tutors. +#define P_LEARNSET_HELPER_TEACHABLE TRUE // If TRUE, teachable_learnsets.h will be populated by tools/learnset_helpers/make_teachables.py using the included JSON files based on available TMs and tutors. +#define P_TUTOR_MOVES_ARRAY FALSE // If TRUE, generates a gTutorMoves array automatically using make_teachables.py. (generally not needed, but the HGSS Pokedex has an optional use for it) // Flag settings // To use the following features in scripting, replace the 0s with the flag ID you're assigning it to. diff --git a/include/config/save.h b/include/config/save.h index 4f9800757..11836396a 100644 --- a/include/config/save.h +++ b/include/config/save.h @@ -3,7 +3,7 @@ // SaveBlock1 configs #define FREE_EXTRA_SEEN_FLAGS_SAVEBLOCK1 FALSE // Free up unused Pokédex seen flags (52 bytes). -#define FREE_TRAINER_HILL FALSE // Frees up Trainer Tower data (28 bytes). +#define FREE_TRAINER_HILL FALSE // Frees up Trainer Hill data (28 bytes). #define FREE_MYSTERY_EVENT_BUFFERS FALSE // Frees up ramScript (1104 bytes). #define FREE_MATCH_CALL FALSE // Frees up match call and rematch / VS Seeker data. (104 bytes). #define FREE_UNION_ROOM_CHAT FALSE // Frees up union room chat (212 bytes). diff --git a/include/config/summary_screen.h b/include/config/summary_screen.h new file mode 100644 index 000000000..9407d93c7 --- /dev/null +++ b/include/config/summary_screen.h @@ -0,0 +1,30 @@ +#ifndef GUARD_CONFIG_SUMMARY_SCREEN_H +#define GUARD_CONFIG_SUMMARY_SCREEN_H + +// Settings +#define P_SUMMARY_SCREEN_MOVE_RELEARNER TRUE // If TRUE, shows an option for Pokémon to relearn moves on the summary screen moves page. +#define P_SUMMARY_MOVE_RELEARNER_FULL_PP TRUE // If TRUE, the move relearner in the summary screen restores relearned moves' PP to full. +#define P_SUMMARY_SCREEN_RENAME TRUE // If TRUE, an option to change Pokémon nicknames replaces the cancel prompt on the summary screen info page. +#define P_SUMMARY_SCREEN_IV_EV_INFO FALSE // If TRUE, will allow player to cycle through the Stats, IVs, and EVs in the summary screen skills page. +#define P_SUMMARY_SCREEN_IV_EV_BOX_ONLY FALSE // If TRUE, will allow player to cycle through the Stats, IVs, and EVs in the summary screen skills page, but only in the PC storage box. +#define P_SUMMARY_SCREEN_IV_EV_TILESET FALSE // If TRUE, loads an alternate tileset to allow changing the "STATS" label in the summary screen skills page. Note: if it's still loading the alternate tileset after changing this and recompiling, you may need a `make clean` before compilation. +#define P_SUMMARY_SCREEN_IV_EV_VALUES FALSE // If TRUE, will show the actual IV value instead of the letter grade. +/* +LETTER GRADE GUIDE: + + F = 0 + D = 1 - 15 + C = 16 - 25 + B = 26 - 29 + A = 30 + S = 31 + +Info taken from https://bulbapedia.bulbagarden.net/wiki/Stats_judge. +*/ +#define P_SUMMARY_SCREEN_IV_ONLY FALSE // If TRUE, will only show IV info in the summary screen. +#define P_SUMMARY_SCREEN_EV_ONLY FALSE // If TRUE, will only show EV info in the summary screen. + +// Flags +#define P_FLAG_SUMMARY_SCREEN_IV_EV_INFO 0 // If this flag is set, will allow player to cycle through the Stats, IVs, and EVs in the summary screen skills page. Note: if P_SUMMARY_SCREEN_IV_EV_INFO is TRUE, this flag does nothing. + +#endif // GUARD_CONFIG_SUMMARY_SCREEN_H diff --git a/include/constants/battle.h b/include/constants/battle.h index c06af9188..6dd3804b3 100644 --- a/include/constants/battle.h +++ b/include/constants/battle.h @@ -473,42 +473,42 @@ enum MoveEffects #define MOVE_EFFECT_CERTAIN 0x4000 #define MOVE_EFFECT_CONTINUE 0x8000 -// Battle terrain defines for gBattleTerrain. -#define BATTLE_TERRAIN_GRASS 0 -#define BATTLE_TERRAIN_LONG_GRASS 1 -#define BATTLE_TERRAIN_SAND 2 -#define BATTLE_TERRAIN_UNDERWATER 3 -#define BATTLE_TERRAIN_WATER 4 -#define BATTLE_TERRAIN_POND 5 -#define BATTLE_TERRAIN_MOUNTAIN 6 -#define BATTLE_TERRAIN_CAVE 7 -#define BATTLE_TERRAIN_BUILDING 8 -#define BATTLE_TERRAIN_PLAIN 9 +// Battle terrain defines for gBattleEnvironment. +#define BATTLE_ENVIRONMENT_GRASS 0 +#define BATTLE_ENVIRONMENT_LONG_GRASS 1 +#define BATTLE_ENVIRONMENT_SAND 2 +#define BATTLE_ENVIRONMENT_UNDERWATER 3 +#define BATTLE_ENVIRONMENT_WATER 4 +#define BATTLE_ENVIRONMENT_POND 5 +#define BATTLE_ENVIRONMENT_MOUNTAIN 6 +#define BATTLE_ENVIRONMENT_CAVE 7 +#define BATTLE_ENVIRONMENT_BUILDING 8 +#define BATTLE_ENVIRONMENT_PLAIN 9 // New battle terrains are used for Secret Power but not fully implemented. -#define BATTLE_TERRAIN_SOARING 10 -#define BATTLE_TERRAIN_SKY_PILLAR 11 -#define BATTLE_TERRAIN_BURIAL_GROUND 12 -#define BATTLE_TERRAIN_PUDDLE 13 -#define BATTLE_TERRAIN_MARSH 14 -#define BATTLE_TERRAIN_SWAMP 15 -#define BATTLE_TERRAIN_SNOW 16 -#define BATTLE_TERRAIN_ICE 17 -#define BATTLE_TERRAIN_VOLCANO 18 -#define BATTLE_TERRAIN_DISTORTION_WORLD 19 -#define BATTLE_TERRAIN_SPACE 20 -#define BATTLE_TERRAIN_ULTRA_SPACE 21 -#define BATTLE_TERRAIN_LINK 22 -#define BATTLE_TERRAIN_GYM 23 -#define BATTLE_TERRAIN_LEADER 24 -#define BATTLE_TERRAIN_INDOOR_2 25 -#define BATTLE_TERRAIN_INDOOR_1 26 -#define BATTLE_TERRAIN_LORELEI 27 -#define BATTLE_TERRAIN_BRUNO 28 -#define BATTLE_TERRAIN_AGATHA 29 -#define BATTLE_TERRAIN_LANCE 30 -#define BATTLE_TERRAIN_CHAMPION 31 +#define BATTLE_ENVIRONMENT_SOARING 10 +#define BATTLE_ENVIRONMENT_SKY_PILLAR 11 +#define BATTLE_ENVIRONMENT_BURIAL_GROUND 12 +#define BATTLE_ENVIRONMENT_PUDDLE 13 +#define BATTLE_ENVIRONMENT_MARSH 14 +#define BATTLE_ENVIRONMENT_SWAMP 15 +#define BATTLE_ENVIRONMENT_SNOW 16 +#define BATTLE_ENVIRONMENT_ICE 17 +#define BATTLE_ENVIRONMENT_VOLCANO 18 +#define BATTLE_ENVIRONMENT_DISTORTION_WORLD 19 +#define BATTLE_ENVIRONMENT_SPACE 20 +#define BATTLE_ENVIRONMENT_ULTRA_SPACE 21 +#define BATTLE_ENVIRONMENT_LINK 22 +#define BATTLE_ENVIRONMENT_GYM 23 +#define BATTLE_ENVIRONMENT_LEADER 24 +#define BATTLE_ENVIRONMENT_INDOOR_2 25 +#define BATTLE_ENVIRONMENT_INDOOR_1 26 +#define BATTLE_ENVIRONMENT_LORELEI 27 +#define BATTLE_ENVIRONMENT_BRUNO 28 +#define BATTLE_ENVIRONMENT_AGATHA 29 +#define BATTLE_ENVIRONMENT_LANCE 30 +#define BATTLE_ENVIRONMENT_CHAMPION 31 -#define BATTLE_TERRAIN_COUNT 32 +#define BATTLE_ENVIRONMENT_COUNT 32 #define B_WAIT_TIME_LONG (B_WAIT_TIME_MULTIPLIER * 4) #define B_WAIT_TIME_MED (B_WAIT_TIME_MULTIPLIER * 3) diff --git a/include/constants/battle_ai.h b/include/constants/battle_ai.h index 8ba2c7209..dfc023676 100644 --- a/include/constants/battle_ai.h +++ b/include/constants/battle_ai.h @@ -1,19 +1,6 @@ #ifndef GUARD_CONSTANTS_BATTLE_AI_H #define GUARD_CONSTANTS_BATTLE_AI_H -// battlers -#define AI_TARGET 0 -#define AI_USER 1 -#define AI_TARGET_PARTNER 2 -#define AI_USER_PARTNER 3 - -// get_type command -#define AI_TYPE1_TARGET 0 -#define AI_TYPE1_USER 1 -#define AI_TYPE2_TARGET 2 -#define AI_TYPE2_USER 3 -#define AI_TYPE_MOVE 4 - // AI Flags. Most run specific functions to update score, new flags are used for internal logic in other scripts // See docs/ai_flags.md for more details. #define AI_FLAG_CHECK_BAD_MOVE (1 << 0) // AI will avoid using moves that are likely to fail or be ineffective in the current situation. diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index fdfd9b327..e3c660613 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -298,7 +298,7 @@ #define ANIM_TAG_SLASH_2 (ANIM_SPRITES_START + 286) #define ANIM_TAG_WHIP_HIT (ANIM_SPRITES_START + 287) #define ANIM_TAG_BLUE_RING_2 (ANIM_SPRITES_START + 288) -// new particles +//new particles #define ANIM_TAG_WHITE_STREAK (ANIM_SPRITES_START + 289) #define ANIM_TAG_PURPLE_JAB (ANIM_SPRITES_START + 290) #define ANIM_TAG_TOXIC_SPIKES (ANIM_SPRITES_START + 291) @@ -421,10 +421,10 @@ #define ANIM_TAG_SALT_PARTICLE (ANIM_SPRITES_START + 407) // battlers -#define ANIM_ATTACKER 0 -#define ANIM_TARGET 1 -#define ANIM_ATK_PARTNER 2 -#define ANIM_DEF_PARTNER 3 +#define ANIM_ATTACKER 0 +#define ANIM_TARGET 1 +#define ANIM_ATK_PARTNER 2 +#define ANIM_DEF_PARTNER 3 // Below are used by AnimTask_ShakeMon2 and AnimTask_SetGrayscaleOrOriginalPal #define ANIM_PLAYER_LEFT (MAX_BATTLERS_COUNT + 0) @@ -448,7 +448,7 @@ #define SOUND_PAN_TARGET 63 // move background ids -#define BG_NONE 0 // the same as BG_DARK +#define BG_NONE 0 // the same as BG_DARK but is unused #define BG_DARK 1 #define BG_GHOST 2 #define BG_PSYCHIC 3 @@ -506,9 +506,9 @@ #define BG_BOLT_STRIKE 55 #define BG_ZMOVE_ACTIVATE 56 #define BG_TECTONIC_RAGE 57 -#define BG_BLUE_SKY_DAY 58 -#define BG_BLUE_SKY_AFTERNOON 59 -#define BG_BLUE_SKY_NIGHT 60 +#define BG_ROCK_FIELD_DAY 58 +#define BG_ROCK_FIELD_AFTERNOON 59 +#define BG_ROCK_FIELD_NIGHT 60 #define BG_ZMOVE_MOUNTAIN 61 #define BG_NEVERENDING_NIGHTMARE 62 #define BG_WATER_PULSE 63 @@ -532,7 +532,7 @@ #define BG_RAINBOW 81 #define BG_SWAMP 82 -// table ids for general animations (gBattleAnims_General) +// table ids for general animations (sBattleAnims_General) #define B_ANIM_STATS_CHANGE 0 #define B_ANIM_SUBSTITUTE_FADE 1 #define B_ANIM_SUBSTITUTE_APPEAR 2 @@ -620,7 +620,7 @@ #define NUM_B_ANIMS_STATUS 9 -// Most tasks return a value to gBattleAnimArgs[7]. +// Tasks with return values often assign them to gBattleAnimArgs[7]. #define ARG_RET_ID 7 // For createsprite macro to use internally @@ -664,16 +664,16 @@ // Flags given to various functions to indicate which palettes to consider. // Handled by UnpackSelectedBattlePalettes -#define F_PAL_BG (1 << 0) -#define F_PAL_ATTACKER (1 << 1) -#define F_PAL_TARGET (1 << 2) -#define F_PAL_ATK_PARTNER (1 << 3) -#define F_PAL_DEF_PARTNER (1 << 4) -#define F_PAL_ANIM_1 (1 << 5) // Palette set for GetBattleAnimBg1Data/GetBgDataForTransform. Only used (ineffectually?) by Aromatherapy. -#define F_PAL_ANIM_2 (1 << 6) // Palette set for GetBattleAnimBgData/GetBgDataForTransform. Unused. -#define F_PAL_ATK_SIDE (F_PAL_ATTACKER | F_PAL_ATK_PARTNER) -#define F_PAL_DEF_SIDE (F_PAL_TARGET | F_PAL_DEF_PARTNER) -#define F_PAL_BATTLERS (F_PAL_ATK_SIDE | F_PAL_DEF_SIDE) +#define F_PAL_BG (1 << 0) +#define F_PAL_ATTACKER (1 << 1) +#define F_PAL_TARGET (1 << 2) +#define F_PAL_ATK_PARTNER (1 << 3) +#define F_PAL_DEF_PARTNER (1 << 4) +#define F_PAL_ANIM_1 (1 << 5) // Palette set for GetBattleAnimBg1Data/GetBgDataForTransform. Only used (ineffectually?) by Aromatherapy. +#define F_PAL_ANIM_2 (1 << 6) // Palette set for GetBattleAnimBgData/GetBgDataForTransform. Unused. +#define F_PAL_ATK_SIDE (F_PAL_ATTACKER | F_PAL_ATK_PARTNER) +#define F_PAL_DEF_SIDE (F_PAL_TARGET | F_PAL_DEF_PARTNER) +#define F_PAL_BATTLERS (F_PAL_ATK_SIDE | F_PAL_DEF_SIDE) #define F_PAL_ADJACENT (F_PAL_DEF_SIDE | F_PAL_ATK_PARTNER) #define F_PAL_ALL_BUT_DEF (F_PAL_ATK_SIDE | F_PAL_DEF_PARTNER) #define F_PAL_ALL_BUT_ATK_PARTNER (F_PAL_ATTACKER | F_PAL_DEF_SIDE) @@ -681,33 +681,4 @@ // It's redundant with F_PAL_BATTLERS, because they're only ever used together to refer to all the battlers at once. #define F_PAL_BATTLERS_2 (1 << 7 | 1 << 8 | 1 << 9 | 1 << 10) -// Battle mon back animations. -// #define BACK_ANIM_NONE 0x00 -// #define BACK_ANIM_H_SLIDE_QUICK 0x01 -// #define BACK_ANIM_H_SLIDE 0x02 -// #define BACK_ANIM_H_SLIDE_WITH_V_COMPRESS_1 0x03 -// #define BACK_ANIM_H_SLIDE_WITH_V_COMPRESS_2 0x04 -// #define BACK_ANIM_SHRINK_GROW_1 0x05 -// #define BACK_ANIM_GROW_1 0x06 -// #define BACK_ANIM_CIRCLE_MOVE_COUNTERCLOCKWISE 0x07 -// #define BACK_ANIM_HORIZONTAL_SHAKE 0x08 -// #define BACK_ANIM_VERTICAL_SHAKE 0x09 -// #define BACK_ANIM_V_SHAKE_WITH_H_SLIDE 0x0a -// #define BACK_ANIM_VERTICAL_STRETCH 0x0b -// #define BACK_ANIM_HORIZONTAL_STRETCH 0x0c -// #define BACK_ANIM_GROW_2 0x0d -// #define BACK_ANIM_V_SHAKE_WITH_PAUSE 0x0e -// #define BACK_ANIM_CIRCLE_MOVE_CLOCKWISE 0x0f -// #define BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL 0x10 -// #define BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE 0x11 -// #define BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE 0x12 -// #define BACK_ANIM_DIP_RIGHT_SIDE 0x13 -// #define BACK_ANIM_SHRINK_GROW_2 0x14 -// #define BACK_ANIM_JOLT_RIGHT 0x15 -// #define BACK_ANIM_FLASH_YELLOW_WITH_SHAKE 0x16 -// #define BACK_ANIM_FADE_RED_WITH_SHAKE 0x17 -// #define BACK_ANIM_FADE_GREEN_WITH_SHAKE 0x18 -// #define BACK_ANIM_FADE_BLUE_WITH_SHAKE 0x19 - - #endif // GUARD_CONSTANTS_BATTLE_ANIM_H diff --git a/include/graphics.h b/include/graphics.h index 793c436d3..c5dbc05c1 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -6482,11 +6482,11 @@ extern const u32 gBattleAnimBgTilemap_PsychicTerrain[]; extern const u32 gBattleAnimBgImage_ShatteredPsyche[]; extern const u16 gBattleAnimBgPalette_ShatteredPsyche[]; extern const u32 gBattleAnimBgTilemap_ShatteredPsyche[]; -extern const u32 gBattleAnimBgImage_SkyDay[]; -extern const u16 gBattleAnimBgPalette_SkyDay[]; -extern const u32 gBattleAnimBgTilemap_SkyDay[]; -extern const u16 gBattleAnimBgPalette_SkyAfternoon[]; -extern const u16 gBattleAnimBgPalette_SkyNight[]; +extern const u32 gBattleAnimBgImage_RockField[]; +extern const u16 gBattleAnimBgPalette_RockDay[]; +extern const u32 gBattleAnimBgTilemap_RockField[]; +extern const u16 gBattleAnimBgPalette_RockAfternoon[]; +extern const u16 gBattleAnimBgPalette_RockNight[]; extern const u32 gBattleAnimBgImage_SnuggleForever[]; extern const u16 gBattleAnimBgPalette_SnuggleForever[]; extern const u32 gBattleAnimBgTilemap_SnuggleForever[]; diff --git a/src/battle_anim_normal.c b/src/battle_anim_normal.c index d9fc8aa41..f825c717a 100644 --- a/src/battle_anim_normal.c +++ b/src/battle_anim_normal.c @@ -13,9 +13,9 @@ static void AnimComplexPaletteBlend(struct Sprite *); static void AnimComplexPaletteBlend_Step1(struct Sprite *); static void AnimComplexPaletteBlend_Step2(struct Sprite *); static void AnimCirclingSparkle(struct Sprite *); -static void AnimShakeMonOrBattleTerrain(struct Sprite *); -static void AnimShakeMonOrBattleTerrain_Step(struct Sprite *); -static void AnimShakeMonOrBattleTerrain_UpdateCoordOffsetEnabled(void); +static void AnimShakeMonOrBattlePlatforms(struct Sprite *); +static void AnimShakeMonOrBattlePlatforms_Step(struct Sprite *); +static void AnimShakeMonOrBattlePlatforms_UpdateCoordOffsetEnabled(void); static void AnimHitSplatPersistent(struct Sprite *); static void AnimHitSplatHandleInvert(struct Sprite *); static void AnimConfusionDuck_Step(struct Sprite *); @@ -27,7 +27,7 @@ static void BlendColorCycleByTag(u8, u8, u8); static void AnimTask_BlendColorCycleByTagLoop(u8); static void AnimTask_FlashAnimTagWithColor_Step1(u8); static void AnimTask_FlashAnimTagWithColor_Step2(u8); -static void AnimTask_ShakeBattleTerrain_Step(u8); +static void AnimTask_ShakeBattlePlatforms_Step(u8); static void AnimMovePowerSwapGuardSwap(struct Sprite *); static const union AnimCmd sAnim_ConfusionDuck_0[] = @@ -171,7 +171,7 @@ static const struct SpriteTemplate sCirclingSparkleSpriteTemplate = .callback = AnimCirclingSparkle, }; -const struct SpriteTemplate gShakeMonOrTerrainSpriteTemplate = +const struct SpriteTemplate gShakeMonOrPlatformSpriteTemplate = { .tileTag = 0, .paletteTag = 0, @@ -179,7 +179,7 @@ const struct SpriteTemplate gShakeMonOrTerrainSpriteTemplate = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimShakeMonOrBattleTerrain, + .callback = AnimShakeMonOrBattlePlatforms, }; static const union AffineAnimCmd sAffineAnim_HitSplat_0[] = @@ -899,7 +899,7 @@ void AnimTask_TintPalettes(u8 taskId) #undef tColorG #undef tColorB -static void AnimShakeMonOrBattleTerrain(struct Sprite *sprite) +static void AnimShakeMonOrBattlePlatforms(struct Sprite *sprite) { u16 var0; @@ -929,12 +929,12 @@ static void AnimShakeMonOrBattleTerrain(struct Sprite *sprite) sprite->data[5] = gBattleAnimArgs[3]; var0 = sprite->data[5] - 2; if (var0 < 2) - AnimShakeMonOrBattleTerrain_UpdateCoordOffsetEnabled(); + AnimShakeMonOrBattlePlatforms_UpdateCoordOffsetEnabled(); - sprite->callback = AnimShakeMonOrBattleTerrain_Step; + sprite->callback = AnimShakeMonOrBattlePlatforms_Step; } -static void AnimShakeMonOrBattleTerrain_Step(struct Sprite *sprite) +static void AnimShakeMonOrBattlePlatforms_Step(struct Sprite *sprite) { u8 i; u16 var0; @@ -967,7 +967,7 @@ static void AnimShakeMonOrBattleTerrain_Step(struct Sprite *sprite) } } -static void AnimShakeMonOrBattleTerrain_UpdateCoordOffsetEnabled(void) +static void AnimShakeMonOrBattlePlatforms_UpdateCoordOffsetEnabled(void) { gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = FALSE; gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = FALSE; @@ -986,19 +986,19 @@ static void AnimShakeMonOrBattleTerrain_UpdateCoordOffsetEnabled(void) } } -// Task data for AnimTask_ShakeBattleTerrain +// Task data for AnimTask_ShakeBattlePlatforms #define tXOffset data[0] #define tYOffset data[1] #define tNumShakes data[2] #define tTimer data[3] #define tShakeDelay data[8] -// Can shake battle terrain back and forth on the X or down and back to original pos on Y (cant shake up from orig pos) +// Can shake battle platforms back and forth on the X or down and back to original pos on Y (cant shake up from orig pos) // arg0: x offset of shake // arg1: y offset of shake // arg2: number of shakes // arg3: time between shakes -void AnimTask_ShakeBattleTerrain(u8 taskId) +void AnimTask_ShakeBattlePlatforms(u8 taskId) { gTasks[taskId].tXOffset = gBattleAnimArgs[0]; gTasks[taskId].tYOffset = gBattleAnimArgs[1]; @@ -1007,11 +1007,11 @@ void AnimTask_ShakeBattleTerrain(u8 taskId) gTasks[taskId].tShakeDelay = gBattleAnimArgs[3]; gBattle_BG3_X = gBattleAnimArgs[0]; gBattle_BG3_Y = gBattleAnimArgs[1]; - gTasks[taskId].func = AnimTask_ShakeBattleTerrain_Step; + gTasks[taskId].func = AnimTask_ShakeBattlePlatforms_Step; gTasks[taskId].func(taskId); } -static void AnimTask_ShakeBattleTerrain_Step(u8 taskId) +static void AnimTask_ShakeBattlePlatforms_Step(u8 taskId) { if (gTasks[taskId].tTimer == 0) { @@ -1045,6 +1045,10 @@ static void AnimTask_ShakeBattleTerrain_Step(u8 taskId) #undef tTimer #undef tShakeDelay +// args[0] - initial pos x +// args[1] - initial pos y +// args[2] - which battler +// args[3] - affine anim number void AnimHitSplatBasic(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); diff --git a/src/battle_anim_utility_funcs.c b/src/battle_anim_utility_funcs.c index 731ca8ce1..3dd6b3197 100644 --- a/src/battle_anim_utility_funcs.c +++ b/src/battle_anim_utility_funcs.c @@ -104,36 +104,36 @@ void AnimTask_BlendBattleAnimPalExclude(u8 taskId) void AnimTask_SetCamouflageBlend(u8 taskId) { u32 selectedPalettes = UnpackSelectedBattlePalettes(gBattleAnimArgs[0]); - switch (gBattleTerrain) + switch (gBattleEnvironment) { - case BATTLE_TERRAIN_GRASS: + case BATTLE_ENVIRONMENT_GRASS: gBattleAnimArgs[4] = RGB(12, 24, 2); break; - case BATTLE_TERRAIN_LONG_GRASS: + case BATTLE_ENVIRONMENT_LONG_GRASS: gBattleAnimArgs[4] = RGB(0, 15, 2); break; - case BATTLE_TERRAIN_SAND: + case BATTLE_ENVIRONMENT_SAND: gBattleAnimArgs[4] = RGB(30, 24, 11); break; - case BATTLE_TERRAIN_UNDERWATER: + case BATTLE_ENVIRONMENT_UNDERWATER: gBattleAnimArgs[4] = RGB(0, 0, 18); break; - case BATTLE_TERRAIN_WATER: + case BATTLE_ENVIRONMENT_WATER: gBattleAnimArgs[4] = RGB(11, 22, 31); break; - case BATTLE_TERRAIN_POND: + case BATTLE_ENVIRONMENT_POND: gBattleAnimArgs[4] = RGB(11, 22, 31); break; - case BATTLE_TERRAIN_MOUNTAIN: + case BATTLE_ENVIRONMENT_MOUNTAIN: gBattleAnimArgs[4] = RGB(22, 16, 10); break; - case BATTLE_TERRAIN_CAVE: + case BATTLE_ENVIRONMENT_CAVE: gBattleAnimArgs[4] = RGB(14, 9, 3); break; - case BATTLE_TERRAIN_BUILDING: + case BATTLE_ENVIRONMENT_BUILDING: gBattleAnimArgs[4] = RGB_WHITE; break; - case BATTLE_TERRAIN_PLAIN: + case BATTLE_ENVIRONMENT_PLAIN: default: gBattleAnimArgs[4] = RGB_WHITE; break; @@ -316,9 +316,7 @@ void AnimTask_DrawFallingWhiteLinesOnAttacker(u8 taskId) } if (IsContest()) - { - species = SPECIES_NONE; // species = gContestResources->moveAnim->species; - } + species = 0; //gContestResources->moveAnim->species; else species = GetMonData(GetPartyBattlerData(gBattleAnimAttacker), MON_DATA_SPECIES); @@ -453,9 +451,7 @@ static void StatsChangeAnimation_Step1(u8 taskId) } if (IsContest()) - { - sAnimStatsChangeData->species = SPECIES_NONE; // sAnimStatsChangeData->species = gContestResources->moveAnim->species; - } + sAnimStatsChangeData->species = 0; // gContestResources->moveAnim->species; else sAnimStatsChangeData->species = GetMonData(GetPartyBattlerData(sAnimStatsChangeData->battler1), MON_DATA_SPECIES); @@ -726,6 +722,10 @@ void AnimTask_BlendNonAttackerPalettes(u8 taskId) StartBlendAnimSpriteColor(taskId, selectedPalettes); } +// gBattleAnimArgs[0] - initial x +// gBattleAnimArgs[1] - initial y +// gBattleAnimArgs[2] - negative? +// gBattleAnimArgs[3] - sentinel value to compare to void AnimTask_StartSlidingBg(u8 taskId) { u8 newTaskId; @@ -830,9 +830,7 @@ void StartMonScrollingBgMask(u8 taskId, int UNUSED unused, u16 scrollSpeed, u8 b SetGpuReg(REG_OFFSET_BG1CNT, bg1Cnt); if (IsContest()) - { - species = SPECIES_NONE; // species = gContestResources->moveAnim->species; - } + species = 0; // gContestResources->moveAnim->species; else species = GetMonData(GetPartyBattlerData(battler), MON_DATA_SPECIES); @@ -918,9 +916,9 @@ static void UpdateMonScrollingBgMask(u8 taskId) } } -void AnimTask_GetBattleTerrain(u8 taskId) +void AnimTask_GetBattleEnvironment(u8 taskId) { - gBattleAnimArgs[0] = gBattleTerrain; + gBattleAnimArgs[0] = gBattleEnvironment; DestroyAnimVisualTask(taskId); } @@ -1042,7 +1040,7 @@ void AnimTask_SetAnimAttackerAndTargetForEffectTgt(u8 taskId) void AnimTask_IsTargetSameSide(u8 taskId) { - if (GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget)) + if (IsBattlerAlly(gBattleAnimAttacker, gBattleAnimTarget)) gBattleAnimArgs[ARG_RET_ID] = TRUE; else gBattleAnimArgs[ARG_RET_ID] = FALSE; diff --git a/src/battle_bg.c b/src/battle_bg.c index 6062eeddb..be6d4269b 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -376,14 +376,14 @@ static const struct { u8 mapScene; u8 battleTerrain; } sMapBattleSceneMapping[] = { - {MAP_BATTLE_SCENE_GYM, BATTLE_TERRAIN_GYM}, - {MAP_BATTLE_SCENE_INDOOR_1, BATTLE_TERRAIN_INDOOR_1}, - {MAP_BATTLE_SCENE_INDOOR_2, BATTLE_TERRAIN_INDOOR_2}, - {MAP_BATTLE_SCENE_LORELEI, BATTLE_TERRAIN_LORELEI}, - {MAP_BATTLE_SCENE_BRUNO, BATTLE_TERRAIN_BRUNO}, - {MAP_BATTLE_SCENE_AGATHA, BATTLE_TERRAIN_AGATHA}, - {MAP_BATTLE_SCENE_LANCE, BATTLE_TERRAIN_LANCE}, - {MAP_BATTLE_SCENE_LINK, BATTLE_TERRAIN_LINK} + {MAP_BATTLE_SCENE_GYM, BATTLE_ENVIRONMENT_GYM}, + {MAP_BATTLE_SCENE_INDOOR_1, BATTLE_ENVIRONMENT_INDOOR_1}, + {MAP_BATTLE_SCENE_INDOOR_2, BATTLE_ENVIRONMENT_INDOOR_2}, + {MAP_BATTLE_SCENE_LORELEI, BATTLE_ENVIRONMENT_LORELEI}, + {MAP_BATTLE_SCENE_BRUNO, BATTLE_ENVIRONMENT_BRUNO}, + {MAP_BATTLE_SCENE_AGATHA, BATTLE_ENVIRONMENT_AGATHA}, + {MAP_BATTLE_SCENE_LANCE, BATTLE_ENVIRONMENT_LANCE}, + {MAP_BATTLE_SCENE_LINK, BATTLE_ENVIRONMENT_LINK} }; static u8 GetBattleTerrainByMapScene(u8 mapBattleScene) @@ -394,12 +394,12 @@ static u8 GetBattleTerrainByMapScene(u8 mapBattleScene) if (mapBattleScene == sMapBattleSceneMapping[i].mapScene) return sMapBattleSceneMapping[i].battleTerrain; } - return BATTLE_TERRAIN_PLAIN; + return BATTLE_ENVIRONMENT_PLAIN; } -static const void* const sSeasonBattleBackgrounds[BATTLE_TERRAIN_COUNT][SEASON_WINTER + 1] = +static const void* const sSeasonBattleBackgrounds[BATTLE_ENVIRONMENT_COUNT][SEASON_WINTER + 1] = { - [BATTLE_TERRAIN_GRASS] = + [BATTLE_ENVIRONMENT_GRASS] = { [SEASON_SPRING] = &gBattleTerrainPalette_Grass, [SEASON_SUMMER] = &gBattleTerrainPalette_GrassSummer, @@ -421,7 +421,7 @@ const void* GetBattleBackgroundPalette(u16 terrain) static void LoadBattleTerrainGfx(u16 terrain) { if (terrain >= NELEMS(gBattleTerrainInfo)) - terrain = BATTLE_TERRAIN_PLAIN; + terrain = BATTLE_ENVIRONMENT_PLAIN; // Copy to bg3 LZDecompressVram(gBattleTerrainInfo[terrain].background.tileset, (void *)BG_CHAR_ADDR(2)); LZDecompressVram(gBattleTerrainInfo[terrain].background.tilemap, (void *)BG_SCREEN_ADDR(26)); @@ -431,7 +431,7 @@ static void LoadBattleTerrainGfx(u16 terrain) static void LoadBattleTerrainEntryGfx(u16 terrain) { if (terrain >= NELEMS(gBattleTerrainInfo)) - terrain = BATTLE_TERRAIN_PLAIN; + terrain = BATTLE_ENVIRONMENT_PLAIN; // Copy to bg1 LZDecompressVram(gBattleTerrainInfo[terrain].background.entryTileset, (void *)BG_CHAR_ADDR(1)); LZDecompressVram(gBattleTerrainInfo[terrain].background.entryTilemap, (void *)BG_SCREEN_ADDR(28)); @@ -440,8 +440,8 @@ static void LoadBattleTerrainEntryGfx(u16 terrain) // Unused void GetBattleTerrainGfxPtrs(u8 terrain, const u32 **tilesPtr, const u32 **mapPtr, const u32 **palPtr) { - if (terrain > BATTLE_TERRAIN_PLAIN) - terrain = BATTLE_TERRAIN_PLAIN; + if (terrain > BATTLE_ENVIRONMENT_PLAIN) + terrain = BATTLE_ENVIRONMENT_PLAIN; *tilesPtr = gBattleTerrainInfo[terrain].background.tileset; *mapPtr = gBattleTerrainInfo[terrain].background.tilemap; *palPtr = gBattleTerrainInfo[terrain].background.palette; @@ -780,27 +780,27 @@ void DrawBattleEntryBackground(void) } else if (gBattleTypeFlags & BATTLE_TYPE_POKEDUDE) { - LoadBattleTerrainEntryGfx(BATTLE_TERRAIN_GRASS); + LoadBattleTerrainEntryGfx(BATTLE_ENVIRONMENT_GRASS); } else if (gBattleTypeFlags & (BATTLE_TYPE_TRAINER_TOWER | BATTLE_TYPE_LINK | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_RECORDED_LINK)) { - LoadBattleTerrainEntryGfx(BATTLE_TERRAIN_BUILDING); + LoadBattleTerrainEntryGfx(BATTLE_ENVIRONMENT_BUILDING); } else if (gBattleTypeFlags & BATTLE_TYPE_LEGENDARY) { switch (GetMonData(&gEnemyParty[0], MON_DATA_SPECIES)) { case SPECIES_GROUDON: - LoadBattleTerrainEntryGfx(BATTLE_TERRAIN_CAVE); + LoadBattleTerrainEntryGfx(BATTLE_ENVIRONMENT_CAVE); break; case SPECIES_KYOGRE: - LoadBattleTerrainEntryGfx(BATTLE_TERRAIN_WATER); + LoadBattleTerrainEntryGfx(BATTLE_ENVIRONMENT_WATER); break; default: if (GetCurrentMapBattleScene() == MAP_BATTLE_SCENE_NORMAL) - LoadBattleTerrainEntryGfx(gBattleTerrain); + LoadBattleTerrainEntryGfx(gBattleEnvironment); else - LoadBattleTerrainEntryGfx(BATTLE_TERRAIN_BUILDING); + LoadBattleTerrainEntryGfx(BATTLE_ENVIRONMENT_BUILDING); break; } } @@ -811,23 +811,23 @@ void DrawBattleEntryBackground(void) u32 trainerClass = GetTrainerClassFromId(TRAINER_BATTLE_PARAM.opponentA); if (trainerClass == TRAINER_CLASS_LEADER) { - LoadBattleTerrainEntryGfx(BATTLE_TERRAIN_BUILDING); + LoadBattleTerrainEntryGfx(BATTLE_ENVIRONMENT_BUILDING); return; } else if (trainerClass == TRAINER_CLASS_CHAMPION) { - LoadBattleTerrainEntryGfx(BATTLE_TERRAIN_BUILDING); + LoadBattleTerrainEntryGfx(BATTLE_ENVIRONMENT_BUILDING); return; } } if (GetCurrentMapBattleScene() == MAP_BATTLE_SCENE_NORMAL) { - LoadBattleTerrainEntryGfx(gBattleTerrain); + LoadBattleTerrainEntryGfx(gBattleEnvironment); } else { - LoadBattleTerrainEntryGfx(BATTLE_TERRAIN_BUILDING); + LoadBattleTerrainEntryGfx(BATTLE_ENVIRONMENT_BUILDING); } } } @@ -837,25 +837,25 @@ static u8 GetBattleTerrainOverride(void) u8 battleScene; if (gBattleTypeFlags & (BATTLE_TYPE_TRAINER_TOWER | BATTLE_TYPE_LINK | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_RECORDED_LINK)) { - return BATTLE_TERRAIN_LINK; + return BATTLE_ENVIRONMENT_LINK; } else if (gBattleTypeFlags & BATTLE_TYPE_POKEDUDE) { - gBattleTerrain = BATTLE_TERRAIN_GRASS; - return BATTLE_TERRAIN_GRASS; + gBattleEnvironment = BATTLE_ENVIRONMENT_GRASS; + return BATTLE_ENVIRONMENT_GRASS; } else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { u32 trainerClass = GetTrainerClassFromId(TRAINER_BATTLE_PARAM.opponentA); if (trainerClass == TRAINER_CLASS_LEADER) - return BATTLE_TERRAIN_LEADER; + return BATTLE_ENVIRONMENT_LEADER; else if (trainerClass == TRAINER_CLASS_CHAMPION) - return BATTLE_TERRAIN_CHAMPION; + return BATTLE_ENVIRONMENT_CHAMPION; } battleScene = GetCurrentMapBattleScene(); if (battleScene == MAP_BATTLE_SCENE_NORMAL) { - return gBattleTerrain; + return gBattleEnvironment; } return GetBattleTerrainByMapScene(battleScene); } diff --git a/src/battle_intro.c b/src/battle_intro.c index e20ef6d91..a6b46eb7b 100644 --- a/src/battle_intro.c +++ b/src/battle_intro.c @@ -17,16 +17,16 @@ static const u8 sBattleAnimBgCnts[] = {REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, REG static const TaskFunc sBattleIntroSlideFuncs[] = { - BattleIntroSlide1, // BATTLE_TERRAIN_GRASS - BattleIntroSlide1, // BATTLE_TERRAIN_LONG_GRASS - BattleIntroSlide2, // BATTLE_TERRAIN_SAND - BattleIntroSlide2, // BATTLE_TERRAIN_UNDERWATER - BattleIntroSlide2, // BATTLE_TERRAIN_WATER - BattleIntroSlide1, // BATTLE_TERRAIN_POND - BattleIntroSlide1, // BATTLE_TERRAIN_MOUNTAIN - BattleIntroSlide1, // BATTLE_TERRAIN_CAVE - BattleIntroSlide3, // BATTLE_TERRAIN_BUILDING - BattleIntroSlide3, // BATTLE_TERRAIN_PLAIN + BattleIntroSlide1, // BATTLE_ENVIRONMENT_GRASS + BattleIntroSlide1, // BATTLE_ENVIRONMENT_LONG_GRASS + BattleIntroSlide2, // BATTLE_ENVIRONMENT_SAND + BattleIntroSlide2, // BATTLE_ENVIRONMENT_UNDERWATER + BattleIntroSlide2, // BATTLE_ENVIRONMENT_WATER + BattleIntroSlide1, // BATTLE_ENVIRONMENT_POND + BattleIntroSlide1, // BATTLE_ENVIRONMENT_MOUNTAIN + BattleIntroSlide1, // BATTLE_ENVIRONMENT_CAVE + BattleIntroSlide3, // BATTLE_ENVIRONMENT_BUILDING + BattleIntroSlide3, // BATTLE_ENVIRONMENT_PLAIN }; void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value) @@ -103,7 +103,7 @@ void HandleIntroSlide(u8 terrain) } else if ((gBattleTypeFlags & BATTLE_TYPE_LEGENDARY) && GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, NULL) == SPECIES_KYOGRE) { - terrain = BATTLE_TERRAIN_UNDERWATER; + terrain = BATTLE_ENVIRONMENT_UNDERWATER; taskId = CreateTask(BattleIntroSlide2, 0); } else diff --git a/src/battle_main.c b/src/battle_main.c index bcfd8c297..d9800b226 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -146,7 +146,7 @@ EWRAM_DATA u8 gBattleTextBuff1[TEXT_BUFF_ARRAY_COUNT] = {0}; EWRAM_DATA u8 gBattleTextBuff2[TEXT_BUFF_ARRAY_COUNT] = {0}; EWRAM_DATA u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT + 13] = {0}; // expanded for stupidly long z move names EWRAM_DATA u32 gBattleTypeFlags = 0; -EWRAM_DATA u8 gBattleTerrain = 0; +EWRAM_DATA u8 gBattleEnvironment = 0; EWRAM_DATA struct MultiPartnerMenuPokemon gMultiPartnerParty[MULTI_PARTY_SIZE] = {0}; EWRAM_DATA static struct MultiPartnerMenuPokemon* sMultiPartnerPartyBuffer = NULL; EWRAM_DATA u8 *gBattleAnimBgTileBuffer = NULL; @@ -566,10 +566,10 @@ static void CB2_InitBattleInternal(void) if (!DEBUG_OVERWORLD_MENU || (DEBUG_OVERWORLD_MENU && !gIsDebugBattle)) { - gBattleTerrain = BattleSetup_GetTerrainId(); + gBattleEnvironment = BattleSetup_GetTerrainId(); } if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) - gBattleTerrain = BATTLE_TERRAIN_BUILDING; + gBattleEnvironment = BATTLE_ENVIRONMENT_BUILDING; if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && !(gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_EREADER_TRAINER @@ -3182,7 +3182,7 @@ static void DoBattleIntro(void) if (!gBattleControllerExecFlags) { battler = GetBattlerAtPosition(0); - BtlController_EmitIntroSlide(battler, BUFFER_A, gBattleTerrain); + BtlController_EmitIntroSlide(battler, BUFFER_A, gBattleEnvironment); MarkBattlerForControllerExec(battler); gBattleCommunication[0] = 0; gBattleCommunication[1] = 0; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 3716d71c9..225e66a26 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -4047,7 +4047,7 @@ void SetMoveEffect(bool32 primary, bool32 certain) } } else - gBattleScripting.moveEffect = gBattleTerrainInfo[gBattleTerrain].secretPowerEffect; + gBattleScripting.moveEffect = gBattleTerrainInfo[gBattleEnvironment].secretPowerEffect; SetMoveEffect(primary, certain); break; case MOVE_EFFECT_PSYCHIC_NOISE: @@ -14812,7 +14812,7 @@ static void Cmd_callterrainattack(void) u32 GetNaturePowerMove(u32 battler) { - u32 move = gBattleTerrainInfo[gBattleTerrain].naturePower; + u32 move = gBattleTerrainInfo[gBattleEnvironment].naturePower; if (gFieldStatuses & STATUS_FIELD_MISTY_TERRAIN) move = MOVE_MOONBLAST; else if (gFieldStatuses & STATUS_FIELD_ELECTRIC_TERRAIN) @@ -14821,7 +14821,7 @@ u32 GetNaturePowerMove(u32 battler) move = MOVE_ENERGY_BALL; else if (gFieldStatuses & STATUS_FIELD_PSYCHIC_TERRAIN) move = MOVE_PSYCHIC; - else if (gBattleTerrainInfo[gBattleTerrain].naturePower == MOVE_NONE) + else if (gBattleTerrainInfo[gBattleEnvironment].naturePower == MOVE_NONE) move = MOVE_TRI_ATTACK; if (GetActiveGimmick(battler) == GIMMICK_Z_MOVE) @@ -15673,7 +15673,7 @@ static void Cmd_tryrecycleitem(void) bool32 CanCamouflage(u8 battler) { - if (IS_BATTLER_OF_TYPE(battler, gBattleTerrainInfo[gBattleTerrain].camouflageType)) + if (IS_BATTLER_OF_TYPE(battler, gBattleTerrainInfo[gBattleEnvironment].camouflageType)) return FALSE; return TRUE; } @@ -15698,7 +15698,7 @@ static void Cmd_settypetoterrain(void) terrainType = TYPE_PSYCHIC; break; default: - terrainType = gBattleTerrainInfo[gBattleTerrain].camouflageType; + terrainType = gBattleTerrainInfo[gBattleEnvironment].camouflageType; break; } diff --git a/src/battle_setup.c b/src/battle_setup.c index c7ee19120..1bb60ef9a 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -423,11 +423,11 @@ u8 BattleSetup_GetTerrainId(void) PlayerGetDestCoords(&x, &y); tileBehavior = MapGridGetMetatileBehaviorAt(x, y); if (MetatileBehavior_IsTallGrass(tileBehavior)) - return BATTLE_TERRAIN_GRASS; + return BATTLE_ENVIRONMENT_GRASS; if (MetatileBehavior_IsLongGrass(tileBehavior)) - return BATTLE_TERRAIN_LONG_GRASS; + return BATTLE_ENVIRONMENT_LONG_GRASS; if (MetatileBehavior_IsSandOrShallowFlowingWater(tileBehavior)) - return BATTLE_TERRAIN_SAND; + return BATTLE_ENVIRONMENT_SAND; switch (gMapHeader.mapType) { case MAP_TYPE_TOWN: @@ -436,34 +436,34 @@ u8 BattleSetup_GetTerrainId(void) break; case MAP_TYPE_UNDERGROUND: if (MetatileBehavior_IsIndoorEncounter(tileBehavior)) - return BATTLE_TERRAIN_BUILDING; + return BATTLE_ENVIRONMENT_BUILDING; if (MetatileBehavior_IsSurfable(tileBehavior)) - return BATTLE_TERRAIN_POND; - return BATTLE_TERRAIN_CAVE; + return BATTLE_ENVIRONMENT_POND; + return BATTLE_ENVIRONMENT_CAVE; case MAP_TYPE_INDOOR: case MAP_TYPE_SECRET_BASE: - return BATTLE_TERRAIN_BUILDING; + return BATTLE_ENVIRONMENT_BUILDING; case MAP_TYPE_UNDERWATER: - return BATTLE_TERRAIN_UNDERWATER; + return BATTLE_ENVIRONMENT_UNDERWATER; case MAP_TYPE_OCEAN_ROUTE: if (MetatileBehavior_IsSurfable(tileBehavior)) - return BATTLE_TERRAIN_WATER; - return BATTLE_TERRAIN_PLAIN; + return BATTLE_ENVIRONMENT_WATER; + return BATTLE_ENVIRONMENT_PLAIN; } if (MetatileBehavior_IsDeepWaterTerrain(tileBehavior)) - return BATTLE_TERRAIN_WATER; + return BATTLE_ENVIRONMENT_WATER; if (MetatileBehavior_IsSurfable(tileBehavior)) - return BATTLE_TERRAIN_POND; + return BATTLE_ENVIRONMENT_POND; if (MetatileBehavior_IsMountain(tileBehavior)) - return BATTLE_TERRAIN_MOUNTAIN; + return BATTLE_ENVIRONMENT_MOUNTAIN; if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING)) { if (MetatileBehavior_GetBridgeType(tileBehavior)) - return BATTLE_TERRAIN_POND; + return BATTLE_ENVIRONMENT_POND; if (MetatileBehavior_IsBridge(tileBehavior) == TRUE) - return BATTLE_TERRAIN_WATER; + return BATTLE_ENVIRONMENT_WATER; } - return BATTLE_TERRAIN_PLAIN; + return BATTLE_ENVIRONMENT_PLAIN; } static u8 GetBattleTransitionTypeByMap(void) diff --git a/src/data/battle_anim.h b/src/data/battle_anim.h index 394ee3ad0..2de851fbf 100644 --- a/src/data/battle_anim.h +++ b/src/data/battle_anim.h @@ -2000,9 +2000,9 @@ const struct BattleAnimBackground gBattleAnimBackgroundTable[] = [BG_BOLT_STRIKE] = {gBattleAnimBgImage_BoltStrike, gBattleAnimBgPalette_BoltStrike, gBattleAnimBgTilemap_BoltStrike}, [BG_ZMOVE_ACTIVATE] = {gBattleAnimBgImage_ZMoveActivate, gBattleAnimBgPalette_ZMoveActivate, gBattleAnimBgTilemap_ZMoveActivate}, [BG_TECTONIC_RAGE] = {gBattleAnimBgImage_InAir, gBattleAnimBgPalette_TectonicRage, gBattleAnimBgTilemap_InAir}, - [BG_BLUE_SKY_DAY] = {gBattleAnimBgImage_SkyDay, gBattleAnimBgPalette_SkyDay, gBattleAnimBgTilemap_SkyDay}, - [BG_BLUE_SKY_AFTERNOON] = {gBattleAnimBgImage_SkyDay, gBattleAnimBgPalette_SkyAfternoon, gBattleAnimBgTilemap_SkyDay}, - [BG_BLUE_SKY_NIGHT] = {gBattleAnimBgImage_SkyDay, gBattleAnimBgPalette_SkyNight, gBattleAnimBgTilemap_SkyDay}, + [BG_ROCK_FIELD_DAY] = {gBattleAnimBgImage_RockField, gBattleAnimBgPalette_RockDay, gBattleAnimBgTilemap_RockField}, + [BG_ROCK_FIELD_AFTERNOON] = {gBattleAnimBgImage_RockField, gBattleAnimBgPalette_RockAfternoon, gBattleAnimBgTilemap_RockField}, + [BG_ROCK_FIELD_NIGHT] = {gBattleAnimBgImage_RockField, gBattleAnimBgPalette_RockNight, gBattleAnimBgTilemap_RockField}, [BG_ZMOVE_MOUNTAIN] = {gBattleAnimBgImage_ZMoveMountain, gBattleAnimBgPalette_ZMoveMountain, gBattleAnimBgTilemap_ZMoveMountain}, [BG_NEVERENDING_NIGHTMARE] = {gBattleAnimBgImage_NeverendingNightmare, gBattleAnimBgPalette_NeverendingNightmare, gBattleAnimBgTilemap_NeverendingNightmare}, [BG_WATER_PULSE] = {gBattleAnimBgImage_WaterPulse, gBattleAnimBgPalette_WaterPulse, gBattleAnimBgTilemap_WaterPulse}, diff --git a/src/data/battle_terrain.h b/src/data/battle_terrain.h index 1b8cd06bb..be7e49e38 100644 --- a/src/data/battle_terrain.h +++ b/src/data/battle_terrain.h @@ -1,8 +1,8 @@ #include "graphics/battle_terrain.h" -const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] = +const struct BattleTerrain gBattleTerrainInfo[BATTLE_ENVIRONMENT_COUNT] = { - [BATTLE_TERRAIN_GRASS] = + [BATTLE_ENVIRONMENT_GRASS] = { .name = _("NORMAL - GRASS"), #if B_NATURE_POWER_MOVES >= GEN_6 @@ -23,7 +23,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] = .palette = gBattleTerrainPalette_Grass, }, }, - [BATTLE_TERRAIN_LONG_GRASS] = + [BATTLE_ENVIRONMENT_LONG_GRASS] = { .name = _("NORMAL - LONG GRASS "), #if B_NATURE_POWER_MOVES >= GEN_6 @@ -44,7 +44,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] = .palette = gBattleTerrainPalette_LongGrass, }, }, - [BATTLE_TERRAIN_SAND] = + [BATTLE_ENVIRONMENT_SAND] = { .name = _("NORMAL - SAND "), .naturePower = B_NATURE_POWER_MOVES >= GEN_6 ? MOVE_EARTH_POWER : MOVE_EARTHQUAKE, @@ -59,7 +59,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] = .palette = gBattleTerrainPalette_Sand, }, }, - [BATTLE_TERRAIN_UNDERWATER] = + [BATTLE_ENVIRONMENT_UNDERWATER] = { .name = _("NORMAL - UNDERWATER "), .naturePower = MOVE_HYDRO_PUMP, @@ -74,7 +74,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] = .palette = gBattleTerrainPalette_Underwater, }, }, - [BATTLE_TERRAIN_WATER] = + [BATTLE_ENVIRONMENT_WATER] = { .name = _("NORMAL - WATER "), .naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_HYDRO_PUMP : MOVE_SURF, @@ -89,7 +89,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] = .palette = gBattleTerrainPalette_Water, }, }, - [BATTLE_TERRAIN_POND] = + [BATTLE_ENVIRONMENT_POND] = { .name = _("NORMAL - POND "), .naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_HYDRO_PUMP : MOVE_BUBBLE_BEAM, @@ -104,7 +104,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] = .palette = gBattleTerrainPalette_Pond, }, }, - [BATTLE_TERRAIN_MOUNTAIN] = + [BATTLE_ENVIRONMENT_MOUNTAIN] = { .name = _("NORMAL - MOUNTAIN "), #if B_NATURE_POWER_MOVES >= GEN_6 @@ -131,7 +131,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] = .palette = gBattleTerrainPalette_Mountain, }, }, - [BATTLE_TERRAIN_CAVE] = + [BATTLE_ENVIRONMENT_CAVE] = { .name = _("NORMAL - CAVE "), #if B_NATURE_POWER_MOVES >= GEN_6 @@ -154,7 +154,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] = .palette = gBattleTerrainPalette_Cave, }, }, - [BATTLE_TERRAIN_BUILDING] = + [BATTLE_ENVIRONMENT_BUILDING] = { .name = _("NORMAL - BUILDING "), .naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_TRI_ATTACK : MOVE_SWIFT, @@ -169,7 +169,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] = .palette = gBattleTerrainPalette_Building, }, }, - [BATTLE_TERRAIN_PLAIN] = + [BATTLE_ENVIRONMENT_PLAIN] = { .name = _("NORMAL - PLAIN "), #if B_NATURE_POWER_MOVES >= GEN_6 @@ -190,49 +190,49 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] = .palette = gBattleTerrainPalette_Plain, }, }, - [BATTLE_TERRAIN_SOARING] = + [BATTLE_ENVIRONMENT_SOARING] = { .name = _("NORMAL - SOARING "), .naturePower = MOVE_AIR_SLASH, .secretPowerEffect = MOVE_EFFECT_SPD_MINUS_1, .camouflageType = TYPE_FLYING, }, - [BATTLE_TERRAIN_SKY_PILLAR] = + [BATTLE_ENVIRONMENT_SKY_PILLAR] = { .name = _("NORMAL - SKY PILLAR "), .naturePower = MOVE_AIR_SLASH, .secretPowerEffect = MOVE_EFFECT_SPD_MINUS_1, .camouflageType = TYPE_FLYING, }, - [BATTLE_TERRAIN_BURIAL_GROUND] = + [BATTLE_ENVIRONMENT_BURIAL_GROUND] = { .name = _("NORMAL - BURIAL GROUND "), .naturePower = MOVE_SHADOW_BALL, .secretPowerEffect = MOVE_EFFECT_FLINCH, .camouflageType = TYPE_GHOST, }, - [BATTLE_TERRAIN_PUDDLE] = + [BATTLE_ENVIRONMENT_PUDDLE] = { .name = _("NORMAL - PUDDLE "), .naturePower = MOVE_MUD_BOMB, .secretPowerEffect = B_SECRET_POWER_EFFECT >= GEN_5 ? MOVE_EFFECT_SPD_MINUS_1 : MOVE_EFFECT_ACC_MINUS_1, .camouflageType = TYPE_GROUND, }, - [BATTLE_TERRAIN_MARSH] = + [BATTLE_ENVIRONMENT_MARSH] = { .name = _("NORMAL - MARSH "), .naturePower = MOVE_MUD_BOMB, .secretPowerEffect = MOVE_EFFECT_SPD_MINUS_1, .camouflageType = TYPE_GROUND, }, - [BATTLE_TERRAIN_SWAMP] = + [BATTLE_ENVIRONMENT_SWAMP] = { .name = _("NORMAL - SWAMP "), .naturePower = MOVE_MUD_BOMB, .secretPowerEffect = MOVE_EFFECT_SPD_MINUS_1, .camouflageType = TYPE_GROUND, }, - [BATTLE_TERRAIN_SNOW] = + [BATTLE_ENVIRONMENT_SNOW] = { .name = _("NORMAL - SNOW "), #if B_NATURE_POWER_MOVES >= GEN_7 @@ -245,42 +245,42 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] = .secretPowerEffect = MOVE_EFFECT_FREEZE_OR_FROSTBITE, .camouflageType = TYPE_ICE, }, - [BATTLE_TERRAIN_ICE] = + [BATTLE_ENVIRONMENT_ICE] = { .name = _("NORMAL - ICE "), .naturePower = MOVE_ICE_BEAM, .secretPowerEffect = MOVE_EFFECT_FREEZE_OR_FROSTBITE, .camouflageType = TYPE_ICE, }, - [BATTLE_TERRAIN_VOLCANO] = + [BATTLE_ENVIRONMENT_VOLCANO] = { .name = _("NORMAL - VOLCANO "), .naturePower = MOVE_LAVA_PLUME, .secretPowerEffect = MOVE_EFFECT_BURN, .camouflageType = TYPE_FIRE, }, - [BATTLE_TERRAIN_DISTORTION_WORLD] = + [BATTLE_ENVIRONMENT_DISTORTION_WORLD] = { .name = _("NORMAL - DISTORTION WORLD"), .naturePower = MOVE_TRI_ATTACK, .secretPowerEffect = MOVE_EFFECT_PARALYSIS, .camouflageType = TYPE_NORMAL, }, - [BATTLE_TERRAIN_SPACE] = + [BATTLE_ENVIRONMENT_SPACE] = { .name = _("NORMAL - SPACE "), .naturePower = MOVE_DRACO_METEOR, .secretPowerEffect = MOVE_EFFECT_FLINCH, .camouflageType = TYPE_DRAGON, }, - [BATTLE_TERRAIN_ULTRA_SPACE] = + [BATTLE_ENVIRONMENT_ULTRA_SPACE] = { .name = _("NORMAL - ULTRA SPACE "), .naturePower = MOVE_PSYSHOCK, .secretPowerEffect = MOVE_EFFECT_DEF_MINUS_1, .camouflageType = TYPE_PSYCHIC, }, - [BATTLE_TERRAIN_LINK] = + [BATTLE_ENVIRONMENT_LINK] = { .name = _("NORMAL - LINK "), .naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_TRI_ATTACK : MOVE_SWIFT, @@ -294,7 +294,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] = .palette = gBattleTerrainPalette_Link } }, - [BATTLE_TERRAIN_GYM] = + [BATTLE_ENVIRONMENT_GYM] = { .name = _("NORMAL - GYM "), .naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_TRI_ATTACK : MOVE_SWIFT, @@ -308,7 +308,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] = .palette = gBattleTerrainPalette_Gym } }, - [BATTLE_TERRAIN_LEADER] = + [BATTLE_ENVIRONMENT_LEADER] = { .name = _("NORMAL - LEADER "), .naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_TRI_ATTACK : MOVE_SWIFT, @@ -322,7 +322,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] = .palette = gBattleTerrainPalette_Leader } }, - [BATTLE_TERRAIN_INDOOR_2] = + [BATTLE_ENVIRONMENT_INDOOR_2] = { .name = _("NORMAL - INDOOR_2 "), .naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_TRI_ATTACK : MOVE_SWIFT, @@ -336,7 +336,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] = .palette = gBattleTerrainPalette_Indoor2 } }, - [BATTLE_TERRAIN_INDOOR_1] = + [BATTLE_ENVIRONMENT_INDOOR_1] = { .name = _("NORMAL - INDOOR_1 "), .naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_TRI_ATTACK : MOVE_SWIFT, @@ -350,7 +350,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] = .palette = gBattleTerrainPalette_Indoor1 } }, - [BATTLE_TERRAIN_LORELEI] = + [BATTLE_ENVIRONMENT_LORELEI] = { .name = _("NORMAL - LORELEI "), .naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_TRI_ATTACK : MOVE_SWIFT, @@ -364,7 +364,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] = .palette = gBattleTerrainPalette_Lorelei } }, - [BATTLE_TERRAIN_BRUNO] = + [BATTLE_ENVIRONMENT_BRUNO] = { .name = _("NORMAL - BRUNO "), .naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_TRI_ATTACK : MOVE_SWIFT, @@ -378,7 +378,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] = .palette = gBattleTerrainPalette_Bruno } }, - [BATTLE_TERRAIN_AGATHA] = + [BATTLE_ENVIRONMENT_AGATHA] = { .name = _("NORMAL - AGATHA "), .naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_TRI_ATTACK : MOVE_SWIFT, @@ -392,7 +392,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] = .palette = gBattleTerrainPalette_Agatha } }, - [BATTLE_TERRAIN_LANCE] = + [BATTLE_ENVIRONMENT_LANCE] = { .name = _("NORMAL - LANCE "), .naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_TRI_ATTACK : MOVE_SWIFT, @@ -406,7 +406,7 @@ const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT] = .palette = gBattleTerrainPalette_Lance } }, - [BATTLE_TERRAIN_CHAMPION] = + [BATTLE_ENVIRONMENT_CHAMPION] = { .name = _("NORMAL - CHAMPION "), .naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_TRI_ATTACK : MOVE_SWIFT, diff --git a/src/data/pokemon/form_change_tables.h b/src/data/pokemon/form_change_tables.h index 1cab4fc83..b15ad80b7 100644 --- a/src/data/pokemon/form_change_tables.h +++ b/src/data/pokemon/form_change_tables.h @@ -528,14 +528,14 @@ static const struct FormChange sDeoxysSpeedFormChangeTable[] = { #if P_FAMILY_BURMY static const struct FormChange sBurmyFormChangeTable[] = { - {FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT, BATTLE_TERRAIN_GRASS}, - {FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT, BATTLE_TERRAIN_LONG_GRASS}, - {FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT, BATTLE_TERRAIN_POND}, - {FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT, BATTLE_TERRAIN_MOUNTAIN}, - {FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT, BATTLE_TERRAIN_PLAIN}, - {FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_SANDY, BATTLE_TERRAIN_CAVE}, - {FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_SANDY, BATTLE_TERRAIN_SAND}, - {FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_TRASH, BATTLE_TERRAIN_BUILDING}, + {FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT, BATTLE_ENVIRONMENT_GRASS}, + {FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT, BATTLE_ENVIRONMENT_LONG_GRASS}, + {FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT, BATTLE_ENVIRONMENT_POND}, + {FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT, BATTLE_ENVIRONMENT_MOUNTAIN}, + {FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT, BATTLE_ENVIRONMENT_PLAIN}, + {FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_SANDY, BATTLE_ENVIRONMENT_CAVE}, + {FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_SANDY, BATTLE_ENVIRONMENT_SAND}, + {FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_TRASH, BATTLE_ENVIRONMENT_BUILDING}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_BURMY diff --git a/src/debug.c b/src/debug.c index 7ea86b287..c7e23b8ef 100644 --- a/src/debug.c +++ b/src/debug.c @@ -1751,7 +1751,7 @@ static void Debug_InitializeBattle(u8 taskId) } // Set terrain - gBattleTerrain = sDebugBattleData->battleTerrain; + gBattleEnvironment = sDebugBattleData->battleTerrain; // Populate enemy party for (i = 0; i < PARTY_SIZE; i++) diff --git a/src/evolution_scene.c b/src/evolution_scene.c index c0c81ce65..d871c9e92 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -238,7 +238,7 @@ void EvolutionScene(struct Pokemon* mon, u16 postEvoSpecies, bool8 canStopEvo, u gBattle_BG3_X = 256; gBattle_BG3_Y = 0; - gBattleTerrain = BATTLE_TERRAIN_PLAIN; + gBattleEnvironment = BATTLE_ENVIRONMENT_PLAIN; InitBattleBgsVideo(); LoadBattleTextboxAndBackground(); @@ -345,7 +345,7 @@ static void CB2_EvolutionSceneLoadGraphics(void) gBattle_BG3_X = 256; gBattle_BG3_Y = 0; - gBattleTerrain = BATTLE_TERRAIN_PLAIN; + gBattleEnvironment = BATTLE_ENVIRONMENT_PLAIN; InitBattleBgsVideo(); LoadBattleTextboxAndBackground(); diff --git a/src/graphics.c b/src/graphics.c index bd78ca8ed..f3947219b 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -1895,13 +1895,13 @@ const u32 gBattleAnimBgImage_ShatteredPsyche[] = INCBIN_U32("graphics/battle_ani const u16 gBattleAnimBgPalette_ShatteredPsyche[] = INCBIN_U16("graphics/battle_anims/backgrounds/shattered_psyche.gbapal"); const u32 gBattleAnimBgTilemap_ShatteredPsyche[] = INCBIN_U32("graphics/battle_anims/backgrounds/shattered_psyche.bin.lz"); -const u32 gBattleAnimBgImage_SkyDay[] = INCBIN_U32("graphics/battle_anims/backgrounds/sky_day.4bpp.lz"); -const u16 gBattleAnimBgPalette_SkyDay[] = INCBIN_U16("graphics/battle_anims/backgrounds/sky_day.gbapal"); -const u32 gBattleAnimBgTilemap_SkyDay[] = INCBIN_U32("graphics/battle_anims/backgrounds/sky_day.bin.lz"); +const u32 gBattleAnimBgImage_RockField[] = INCBIN_U32("graphics/battle_anims/backgrounds/rock_field.4bpp.lz"); +const u16 gBattleAnimBgPalette_RockDay[] = INCBIN_U16("graphics/battle_anims/backgrounds/rock_day.gbapal"); +const u32 gBattleAnimBgTilemap_RockField[] = INCBIN_U32("graphics/battle_anims/backgrounds/rock_field.bin.lz"); -const u16 gBattleAnimBgPalette_SkyAfternoon[] = INCBIN_U16("graphics/battle_anims/backgrounds/sky_afternoon.gbapal"); +const u16 gBattleAnimBgPalette_RockAfternoon[] = INCBIN_U16("graphics/battle_anims/backgrounds/rock_afternoon.gbapal"); -const u16 gBattleAnimBgPalette_SkyNight[] = INCBIN_U16("graphics/battle_anims/backgrounds/sky_night.gbapal"); +const u16 gBattleAnimBgPalette_RockNight[] = INCBIN_U16("graphics/battle_anims/backgrounds/rock_night.gbapal"); const u32 gBattleAnimBgImage_SnuggleForever[] = INCBIN_U32("graphics/battle_anims/backgrounds/snuggle_forever.4bpp.lz"); const u16 gBattleAnimBgPalette_SnuggleForever[] = INCBIN_U16("graphics/battle_anims/backgrounds/snuggle_forever.gbapal"); diff --git a/src/overworld.c b/src/overworld.c index 3818d5f7c..27a7d5361 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -1550,7 +1550,7 @@ void UpdateTimeOfDay(void) // Whether a map type is naturally lit/outside bool8 MapHasNaturalLight(u8 mapType) { - if (!OW_DAY_AND_NIGHT) + if (!OW_ENABLE_DNS) return FALSE; return (mapType == MAP_TYPE_TOWN || mapType == MAP_TYPE_CITY diff --git a/src/pokemon.c b/src/pokemon.c index d0141540b..1cfde0bb7 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -6834,7 +6834,7 @@ u32 GetFormChangeTargetSpeciesBoxMon(struct BoxPokemon *boxMon, enum FormChanges targetSpecies = formChanges[i].targetSpecies; break; case FORM_CHANGE_END_BATTLE_TERRAIN: - if (gBattleTerrain == formChanges[i].param1) + if (gBattleEnvironment == formChanges[i].param1) targetSpecies = formChanges[i].targetSpecies; break; case FORM_CHANGE_WITHDRAW: diff --git a/src/pokemon_sprite_visualizer.c b/src/pokemon_sprite_visualizer.c index 69963978a..e180cf896 100644 --- a/src/pokemon_sprite_visualizer.c +++ b/src/pokemon_sprite_visualizer.c @@ -41,7 +41,7 @@ #include "constants/items.h" #include "constants/event_objects.h" -extern const struct BattleTerrain gBattleTerrainInfo[BATTLE_TERRAIN_COUNT]; +extern const struct BattleTerrain gBattleTerrainInfo[BATTLE_ENVIRONMENT_COUNT]; extern const struct CompressedSpriteSheet gSpriteSheet_EnemyShadow; extern const struct CompressedSpriteSheet gSpriteSheet_EnemyShadowsSized; extern const struct SpriteTemplate gSpriteTemplate_EnemyShadow; @@ -917,7 +917,7 @@ static void LoadBattleBg(u8 battleBgType, u8 battleTerrain) case MAP_BATTLE_SCENE_NORMAL: break; case MAP_BATTLE_SCENE_GYM: - battleTerrain = BATTLE_TERRAIN_GYM; + battleTerrain = BATTLE_ENVIRONMENT_GYM; break; case MAP_BATTLE_SCENE_MAGMA: // todo @@ -926,31 +926,31 @@ static void LoadBattleBg(u8 battleBgType, u8 battleTerrain) // todo break; case MAP_BATTLE_SCENE_LORELEI: - battleTerrain = BATTLE_TERRAIN_LORELEI; + battleTerrain = BATTLE_ENVIRONMENT_LORELEI; break; case MAP_BATTLE_SCENE_BRUNO: - battleTerrain = BATTLE_TERRAIN_BRUNO; + battleTerrain = BATTLE_ENVIRONMENT_BRUNO; break; case MAP_BATTLE_SCENE_AGATHA: - battleTerrain = BATTLE_TERRAIN_AGATHA; + battleTerrain = BATTLE_ENVIRONMENT_AGATHA; break; case MAP_BATTLE_SCENE_LANCE: - battleTerrain = BATTLE_TERRAIN_LANCE; + battleTerrain = BATTLE_ENVIRONMENT_LANCE; break; case MAP_BATTLE_SCENE_FRONTIER: // todo break; case MAP_BATTLE_SCENE_LEADER: - battleTerrain = BATTLE_TERRAIN_LEADER; + battleTerrain = BATTLE_ENVIRONMENT_LEADER; break; case MAP_BATTLE_SCENE_CHAMPION: - battleTerrain = BATTLE_TERRAIN_CHAMPION; + battleTerrain = BATTLE_ENVIRONMENT_CHAMPION; break; case MAP_BATTLE_SCENE_GROUDON: - battleTerrain = BATTLE_TERRAIN_CAVE; + battleTerrain = BATTLE_ENVIRONMENT_CAVE; break; case MAP_BATTLE_SCENE_KYOGRE: - battleTerrain = BATTLE_TERRAIN_WATER; + battleTerrain = BATTLE_ENVIRONMENT_WATER; break; case MAP_BATTLE_SCENE_RAYQUAZA: // todo @@ -981,14 +981,14 @@ static void UpdateBattleBg(u8 taskId, bool8 increment) { if (increment) { - if (data->battleTerrain == BATTLE_TERRAIN_PLAIN) + if (data->battleTerrain == BATTLE_ENVIRONMENT_PLAIN) data->battleBgType += 1; else data->battleTerrain += 1; } else { - if (data->battleTerrain == BATTLE_TERRAIN_GRASS) + if (data->battleTerrain == BATTLE_ENVIRONMENT_GRASS) data->battleBgType = MAP_BATTLE_SCENE_RAYQUAZA; else data->battleTerrain -= 1; @@ -1001,7 +1001,7 @@ static void UpdateBattleBg(u8 taskId, bool8 increment) else { data->battleBgType = MAP_BATTLE_SCENE_NORMAL; - data->battleTerrain = BATTLE_TERRAIN_PLAIN; + data->battleTerrain = BATTLE_ENVIRONMENT_PLAIN; } } else if (data->battleBgType == MAP_BATTLE_SCENE_RAYQUAZA) @@ -1009,7 +1009,7 @@ static void UpdateBattleBg(u8 taskId, bool8 increment) if (increment) { data->battleBgType = MAP_BATTLE_SCENE_NORMAL; - data->battleTerrain = BATTLE_TERRAIN_GRASS; + data->battleTerrain = BATTLE_ENVIRONMENT_GRASS; } else data->battleBgType -= 1; @@ -1207,7 +1207,7 @@ void CB2_Pokemon_Sprite_Visualizer(void) FillBgTilemapBufferRect(0, 0, 0, 0, 32, 20, 15); InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); - LoadBattleBg(0, BATTLE_TERRAIN_GRASS); + LoadBattleBg(0, BATTLE_ENVIRONMENT_GRASS); gMain.state++; break; diff --git a/test/battle/move_animations/all_anims.c b/test/battle/move_animations/all_anims.c index 778b40793..e4144ebb9 100644 --- a/test/battle/move_animations/all_anims.c +++ b/test/battle/move_animations/all_anims.c @@ -222,7 +222,7 @@ static void SceneSingles(u32 move, struct BattlePokemon *mon) { ANIMATION(ANIM_TYPE_MOVE, MOVE_POUND, mon); } - else if (gMovesInfo[move].effect == EFFECT_NATURE_POWER) // Recorded battles always use BATTLE_TERRAIN_BUILDING + else if (gMovesInfo[move].effect == EFFECT_NATURE_POWER) // Recorded battles always use BATTLE_ENVIRONMENT_BUILDING { ANIMATION(ANIM_TYPE_MOVE, B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_TRI_ATTACK : MOVE_SWIFT, mon); } @@ -354,7 +354,7 @@ static void DoublesScene(u32 move, struct BattlePokemon *attacker) ANIMATION(ANIM_TYPE_MOVE, MOVE_POUND, attacker); } else if (gMovesInfo[move].effect == EFFECT_NATURE_POWER) - { // Recorded battles always use BATTLE_TERRAIN_BUILDING + { // Recorded battles always use BATTLE_ENVIRONMENT_BUILDING ANIMATION(ANIM_TYPE_MOVE, B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_TRI_ATTACK : MOVE_SWIFT, attacker); } else