diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index a111d52b3..936e58a35 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -1001,9 +1001,9 @@ Move_MEGA_PUNCH:: SetImpactBackground:: delay 2 - createvisualtask AnimTask_IsContest, 2, + createvisualtask AnimTask_IsContest, 2, jumpargeq 7, 1, SetImpactContestsBG - createvisualtask AnimTask_IsTargetPlayerSide, 2, + createvisualtask AnimTask_IsTargetPlayerSide, 2, jumpargeq 7, 0, SetImpactOpponentBG jumpargeq 7, 1, SetImpactPlayerBG SetImpactBackgroundRet:: @@ -1474,12 +1474,12 @@ Move_FURY_CUTTER:: monbg 1 setalpha 12, 8 playsewithpan SE_M_RAZOR_WIND, 63 - createvisualtask AnimTask_IsFuryCutterHitRight, 2, + createvisualtask AnimTask_IsFuryCutterHitRight, 2, jumpargeq 7, 0, FuryCutterLeft goto FuryCutterRight FuryCutterContinue:: - createvisualtask AnimTask_GetFuryCutterHitCount, 2, + createvisualtask AnimTask_GetFuryCutterHitCount, 2, jumpargeq 7, 1, FuryCutterContinue2 jumpargeq 7, 2, FuryCutterMedium jumpargeq 7, 3, FuryCutterStrong @@ -1719,7 +1719,7 @@ Move_DEFENSE_CURL:: loadspritegfx ANIM_TAG_ECLIPSING_ORB loopsewithpan SE_M_TRI_ATTACK, 192, 18, 3 createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 0, 0 - createvisualtask AnimTask_DefenseCurlDeformMon, 5, + createvisualtask AnimTask_DefenseCurlDeformMon, 5, waitforvisualfinish createsprite gEclipsingOrbSpriteTemplate, ANIM_ATTACKER, 2, 0, 6, 0, 1 waitforvisualfinish @@ -1757,7 +1757,7 @@ Move_FRUSTRATION:: loadspritegfx ANIM_TAG_ANGER monbg ANIM_DEF_PARTNER setalpha 12, 8 - createvisualtask AnimTask_GetFrustrationPowerLevel, 1, + createvisualtask AnimTask_GetFrustrationPowerLevel, 1, jumpargeq 7, 0, Frustration_Strongest jumpargeq 7, 1, Frustration_Strong jumpargeq 7, 2, Frustration_Medium @@ -1815,7 +1815,7 @@ Frustration_Strong:: createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, -28 waitforvisualfinish delay 5 - createvisualtask AnimTask_StrongFrustrationGrowAndShrink, 5, + createvisualtask AnimTask_StrongFrustrationGrowAndShrink, 5, delay 7 playsewithpan SE_M_COMET_PUNCH, 63 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 8, 1, 1 @@ -1866,11 +1866,11 @@ Move_SAFEGUARD:: monbg ANIM_ATK_PARTNER setalpha 8, 8 playsewithpan SE_M_MILK_DRINK, 192 - createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2, + createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2, delay 4 - createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2, + createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2, delay 4 - createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2, + createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2, waitforvisualfinish playsewithpan SE_SHINY, 192 createvisualtask AnimTask_CurseBlendEffect, 2, 10, 0, 2, 0, 10, RGB_WHITE @@ -1955,7 +1955,7 @@ Move_PAY_DAY:: waitforvisualfinish playsewithpan SE_M_PAY_DAY, 63 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, 0, 0, 1, 2 - createsprite gFallingCoinSpriteTemplate, ANIM_ATTACKER, 2, + createsprite gFallingCoinSpriteTemplate, ANIM_ATTACKER, 2, createvisualtask AnimTask_ShakeMon2, 2, 1, 1, 0, 6, 1 waitforvisualfinish clearmonbg 1 @@ -2070,7 +2070,7 @@ Move_ATTRACT:: createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, -384, -31 waitforvisualfinish waitplaysewithpan SE_M_ATTRACT2, 0, 15 - createvisualtask AnimTask_HeartsBackground, 5, + createvisualtask AnimTask_HeartsBackground, 5, createsprite gRedHeartRisingSpriteTemplate, ANIM_ATTACKER, 40, 16, 256, 0 createsprite gRedHeartRisingSpriteTemplate, ANIM_ATTACKER, 40, 224, 240, 15 createsprite gRedHeartRisingSpriteTemplate, ANIM_ATTACKER, 40, 126, 272, 30 @@ -2137,7 +2137,7 @@ Move_CONFUSE_RAY:: Move_LOCK_ON:: loadspritegfx ANIM_TAG_LOCK_ON - createsprite gLockOnTargetSpriteTemplate, ANIM_ATTACKER, 40, + createsprite gLockOnTargetSpriteTemplate, ANIM_ATTACKER, 40, createsprite gLockOnMoveTargetSpriteTemplate, ANIM_ATTACKER, 40, 1 createsprite gLockOnMoveTargetSpriteTemplate, ANIM_ATTACKER, 40, 2 createsprite gLockOnMoveTargetSpriteTemplate, ANIM_ATTACKER, 40, 3 @@ -2154,7 +2154,7 @@ Move_MEAN_LOOK:: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 16, 0 loopsewithpan SE_M_CONFUSE_RAY, 63, 15, 4 waitplaysewithpan SE_M_LEER, 63, 85 - createsprite gMeanLookEyeSpriteTemplate, ANIM_ATTACKER, 2, + createsprite gMeanLookEyeSpriteTemplate, ANIM_ATTACKER, 2, delay 120 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 16, 0, 0 delay 30 @@ -2336,7 +2336,7 @@ Move_SMOKESCREEN:: playsewithpan SE_M_DOUBLE_TEAM, 192 createsprite gBlackBallSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 0, 35, -25 waitforvisualfinish - createvisualtask AnimTask_SmokescreenImpact, 2, + createvisualtask AnimTask_SmokescreenImpact, 2, delay 2 playsewithpan SE_M_SAND_ATTACK, 63 createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, -12, 104, 0, 75 @@ -2399,7 +2399,7 @@ Move_CONVERSION:: playsewithpan SE_M_BARRIER, 192 createvisualtask AnimTask_FlashAnimTagWithColor, 2, 10018, 1, 1, 14335, 12, 0, 0 delay 6 - createvisualtask AnimTask_ConversionAlphaBlend, 5, + createvisualtask AnimTask_ConversionAlphaBlend, 5, waitforvisualfinish delay 1 clearmonbg ANIM_ATK_PARTNER @@ -2429,7 +2429,7 @@ Move_CONVERSION_2:: createsprite gConversion2SpriteTemplate, ANIM_ATTACKER, 2, -8, 24, 125 createsprite gConversion2SpriteTemplate, ANIM_ATTACKER, 2, 8, 24, 130 createsprite gConversion2SpriteTemplate, ANIM_ATTACKER, 2, 24, 24, 135 - createvisualtask AnimTask_Conversion2AlphaBlend, 5, + createvisualtask AnimTask_Conversion2AlphaBlend, 5, delay 60 playsewithpan SE_M_SWIFT, 63 delay 10 @@ -2601,8 +2601,8 @@ HornDrillInContest:: Move_THRASH:: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET - createvisualtask AnimTask_ThrashMoveMonHorizontal, 2, - createvisualtask AnimTask_ThrashMoveMonVertical, 2, + createvisualtask AnimTask_ThrashMoveMonHorizontal, 2, + createvisualtask AnimTask_ThrashMoveMonVertical, 2, createsprite gFistFootRandomPosSpriteTemplate, ANIM_TARGET, 3, 1, 10, 0 createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 4, 0, 7, 1 playsewithpan SE_M_COMET_PUNCH, 63 @@ -2619,7 +2619,7 @@ Move_THRASH:: Move_SING:: loadspritegfx ANIM_TAG_MUSIC_NOTES monbg ANIM_DEF_PARTNER - createvisualtask AnimTask_MusicNotesRainbowBlend, 2, + createvisualtask AnimTask_MusicNotesRainbowBlend, 2, waitforvisualfinish panse_1B SE_M_SING, 192, 63, 2, 0 createsprite gWavyMusicNotesSpriteTemplate, ANIM_TARGET, 2, 7, 0, 12 @@ -2648,7 +2648,7 @@ Move_SING:: delay 4 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER - createvisualtask AnimTask_MusicNotesClearRainbowBlend, 2, + createvisualtask AnimTask_MusicNotesClearRainbowBlend, 2, waitforvisualfinish end @@ -2840,7 +2840,7 @@ Move_RAGE:: Move_TELEPORT:: call SetPsychicBackground - createvisualtask AnimTask_Teleport, 2 + createvisualtask AnimTask_Teleport, 2 playsewithpan SE_M_TELEPORT, 192 delay 15 call UnsetPsychicBg @@ -2850,7 +2850,7 @@ Move_TELEPORT:: Move_DOUBLE_TEAM:: monbg ANIM_ATK_PARTNER setalpha 12, 8 - createvisualtask AnimTask_DoubleTeam, 2, + createvisualtask AnimTask_DoubleTeam, 2, playsewithpan SE_M_DOUBLE_TEAM, 192 delay 32 playsewithpan SE_M_DOUBLE_TEAM, 192 @@ -2876,7 +2876,7 @@ Move_DOUBLE_TEAM:: Move_MINIMIZE:: setalpha 10, 8 - createvisualtask AnimTask_Minimize, 2, + createvisualtask AnimTask_Minimize, 2, loopsewithpan SE_M_MINIMIZE, 192, 34, 3 waitforvisualfinish blendoff @@ -2934,7 +2934,7 @@ Move_AMNESIA:: loadspritegfx ANIM_TAG_AMNESIA call SetPsychicBackground delay 8 - createsprite gQuestionMarkSpriteTemplate, ANIM_ATTACKER, 20 + createsprite gQuestionMarkSpriteTemplate, ANIM_ATTACKER, 20 playsewithpan SE_M_METRONOME, 192 delay 54 loopsewithpan SE_M_METRONOME, 192, 16, 3 @@ -2971,7 +2971,7 @@ Move_GLARE:: waitforvisualfinish createsprite gEyeSparkleSpriteTemplate, ANIM_ATTACKER, 0, -16, -8 createsprite gEyeSparkleSpriteTemplate, ANIM_ATTACKER, 0, 16, -8 - createvisualtask AnimTask_ScaryFace, 5, + createvisualtask AnimTask_ScaryFace, 5, playsewithpan SE_M_LEER, 192 delay 2 createvisualtask AnimTask_ShakeTargetInPattern, 3, 20, 1, 0 @@ -2981,7 +2981,7 @@ Move_GLARE:: Move_BARRAGE:: loadspritegfx ANIM_TAG_RED_BALL - createvisualtask AnimTask_BarrageBall, 3, + createvisualtask AnimTask_BarrageBall, 3, playsewithpan SE_M_SWAGGER, 192 delay 24 createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 8, 1, 40, 1 @@ -3086,7 +3086,7 @@ Move_ACID_ARMOR:: Move_SHARPEN:: loadspritegfx ANIM_TAG_SPHERE_TO_CUBE - createsprite gSharpenSphereSpriteTemplate, ANIM_ATTACKER, 2, + createsprite gSharpenSphereSpriteTemplate, ANIM_ATTACKER, 2, waitforvisualfinish end @@ -3101,7 +3101,7 @@ Move_SUPER_FANG:: delay 20 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4 delay 4 - createsprite gSuperFangSpriteTemplate, ANIM_TARGET, 2, + createsprite gSuperFangSpriteTemplate, ANIM_TARGET, 2, playsewithpan SE_M_BITE, 63 delay 8 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, 2143, 14, RGB_WHITE, 14 @@ -3143,7 +3143,7 @@ Move_SKETCH:: loadspritegfx ANIM_TAG_PENCIL monbg 1 createvisualtask AnimTask_SketchDrawMon, 2 - createsprite gPencilSpriteTemplate, ANIM_TARGET, 2, + createsprite gPencilSpriteTemplate, ANIM_TARGET, 2, waitforvisualfinish clearmonbg 1 createvisualtask AnimTask_Splash, 2, 0, 2 @@ -3206,7 +3206,7 @@ Move_MACH_PUNCH:: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET monbg ANIM_ATK_PARTNER - createvisualtask AnimTask_GetAttackerSide, 2, + createvisualtask AnimTask_GetAttackerSide, 2, jumpargeq 7, 1, MachPunchOnPlayer fadetobg BG_HIGHSPEED_OPPONENT @@ -3334,7 +3334,7 @@ Move_ROLLOUT:: Move_FALSE_SWIPE:: loadspritegfx ANIM_TAG_SLASH_2 loadspritegfx ANIM_TAG_IMPACT - createsprite gFalseSwipeSliceSpriteTemplate, ANIM_TARGET, 2, + createsprite gFalseSwipeSliceSpriteTemplate, ANIM_TARGET, 2, playsewithpan SE_M_VITAL_THROW, 63 delay 16 createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 0 @@ -3361,10 +3361,10 @@ Move_FALSE_SWIPE:: Move_SWAGGER:: loadspritegfx ANIM_TAG_BREATH loadspritegfx ANIM_TAG_ANGER - createvisualtask AnimTask_GrowAndShrink, 2, + createvisualtask AnimTask_GrowAndShrink, 2, playsewithpan SE_M_SWAGGER, 192 waitforvisualfinish - createsprite gBreathPuffSpriteTemplate, ANIM_ATTACKER, 2, + createsprite gBreathPuffSpriteTemplate, ANIM_ATTACKER, 2, loopsewithpan SE_M_SWAGGER, 192, 4, 2 waitforvisualfinish delay 24 @@ -3381,7 +3381,7 @@ Move_MILK_DRINK:: loadspritegfx ANIM_TAG_THIN_RING loadspritegfx ANIM_TAG_BLUE_STAR monbg 1 - createsprite gMilkBottleSpriteTemplate, ANIM_ATTACKER, 2, + createsprite gMilkBottleSpriteTemplate, ANIM_ATTACKER, 2, delay 40 playsewithpan SE_M_CRABHAMMER, 192 delay 12 @@ -3398,7 +3398,7 @@ Move_MILK_DRINK:: end Move_MAGNITUDE:: - createvisualtask AnimTask_IsPowerOver99, 2, + createvisualtask AnimTask_IsPowerOver99, 2, waitforvisualfinish jumpargeq 15, 0, MagnitudeRegular jumpargeq 15, 1, MagnitudeIntense @@ -3461,7 +3461,7 @@ Move_MOONLIGHT:: delay 30 createsprite gMoonlightSparkleSpriteTemplate, ANIM_ATTACKER, 40, 10, 0 delay 20 - createvisualtask AnimTask_FadeScreenBlue, 2, + createvisualtask AnimTask_FadeScreenBlue, 2, waitforvisualfinish call HealingEffect waitforvisualfinish @@ -3470,7 +3470,7 @@ Move_MOONLIGHT:: Move_EXTREME_SPEED:: loadspritegfx ANIM_TAG_SPEED_DUST loadspritegfx ANIM_TAG_IMPACT - createvisualtask AnimTask_GetAttackerSide, 2, + createvisualtask AnimTask_GetAttackerSide, 2, jumpargeq 7, 1, ExtremeSpeedOnPlayer fadetobg BG_HIGHSPEED_OPPONENT @@ -3486,7 +3486,7 @@ ExtremeSpeedContinue:: monbg ANIM_TARGET setalpha 12, 8 delay 18 - createvisualtask AnimTask_ExtremeSpeedImpact, 2, + createvisualtask AnimTask_ExtremeSpeedImpact, 2, delay 2 playsewithpan SE_M_COMET_PUNCH, 63 createsprite gMonEdgeHitSplatSpriteTemplate, ANIM_TARGET, 2, 1, 0, -12, 3 @@ -3497,9 +3497,9 @@ ExtremeSpeedContinue:: playsewithpan SE_M_VITAL_THROW2, 63 createsprite gMonEdgeHitSplatSpriteTemplate, ANIM_TARGET, 2, 1, 0, 0, 3 waitforvisualfinish - createvisualtask AnimTask_SpeedDust, 2, + createvisualtask AnimTask_SpeedDust, 2, delay 10 - createvisualtask AnimTask_ExtremeSpeedMonReappear, 2, + createvisualtask AnimTask_ExtremeSpeedMonReappear, 2, loopsewithpan SE_M_DOUBLE_TEAM, 192, 8, 4 waitforvisualfinish restorebg @@ -3571,7 +3571,7 @@ Move_HAIL:: loadspritegfx ANIM_TAG_ICE_CRYSTALS createvisualtask AnimTask_BlendSelected, 10, 1, 3, 0, 6, RGB_BLACK waitforvisualfinish - createvisualtask AnimTask_Hail1, 5, + createvisualtask AnimTask_Hail1, 5, loopsewithpan SE_M_HAIL, 0, 8, 10 waitforvisualfinish createvisualtask AnimTask_BlendSelected, 10, 1, 3, 6, 0, RGB_BLACK @@ -3580,7 +3580,7 @@ Move_HAIL:: Move_TORMENT:: loadspritegfx ANIM_TAG_ANGER loadspritegfx ANIM_TAG_THOUGHT_BUBBLE - createvisualtask AnimTask_TormentAttacker, 2, + createvisualtask AnimTask_TormentAttacker, 2, waitforvisualfinish createvisualtask AnimTask_BlendMonInAndOut, 2, 1, 31, 10, 1, 1 createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, -20, -28 @@ -3600,7 +3600,7 @@ Move_MEMENTO:: delay 48 playsewithpan SE_M_PSYBEAM2, 192 waitforvisualfinish - createvisualtask sub_80B8664, 2, + createvisualtask sub_80B8664, 2, delay 12 setalpha 0, 16 delay 1 @@ -3703,7 +3703,7 @@ Move_TAUNT:: Move_HELPING_HAND:: loadspritegfx ANIM_TAG_TAG_HAND - createvisualtask AnimTask_HelpingHandAttackerMovement, 5, + createvisualtask AnimTask_HelpingHandAttackerMovement, 5, createsprite gHelpingHandClapSpriteTemplate, ANIM_ATTACKER, 40, 0 createsprite gHelpingHandClapSpriteTemplate, ANIM_ATTACKER, 40, 1 delay 19 @@ -3758,7 +3758,7 @@ Move_SUPERPOWER:: delay 8 createsprite gSuperpowerRockSpriteTemplate, ANIM_ATTACKER, 41, 60, 288, 3, 88 delay 74 - createsprite gSuperpowerFireballSpriteTemplate, ANIM_TARGET, 3, 0 + createsprite gSuperpowerFireballSpriteTemplate, ANIM_TARGET, 3, 0 playsewithpan SE_M_SWAGGER, 192 delay 16 createvisualtask AnimTask_ShakeMon2, 2, 1, 8, 0, 16, 1 @@ -3774,7 +3774,7 @@ Move_RECYCLE:: monbg ANIM_ATTACKER setalpha 0, 16 delay 1 - createsprite gRecycleSpriteTemplate, ANIM_ATTACKER, 2, + createsprite gRecycleSpriteTemplate, ANIM_ATTACKER, 2, loopsewithpan SE_M_TAKE_DOWN, 192, 24, 3 waitforvisualfinish createvisualtask AnimTask_BlendMonInAndOut, 5, 0, RGB_WHITE, 12, 2, 1 @@ -3999,7 +3999,7 @@ Move_LUSTER_PURGE:: loadspritegfx ANIM_TAG_IMPACT fadetobg 3 waitbgfadeout - createvisualtask AnimTask_FadeScreenToWhite, 5, + createvisualtask AnimTask_FadeScreenToWhite, 5, waitbgfadein monbg ANIM_ATTACKER setalpha 12, 8 @@ -4049,7 +4049,7 @@ Move_MIST_BALL:: createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 1, 1, 1, 32279, 16, RGB_WHITE, 16 delay 0 playsewithpan SE_M_HAZE, 0 - createvisualtask AnimTask_LoadMistTiles, 5, + createvisualtask AnimTask_LoadMistTiles, 5, createvisualtask AnimTask_BlendSelected, 10, 4, 3, 0, 16, RGB_WHITE delay 8 createvisualtask AnimTask_ShakeMon, 2, 1, 4, 0, 70, 0 @@ -4082,7 +4082,7 @@ Move_FEATHER_DANCE:: Move_TEETER_DANCE:: loadspritegfx ANIM_TAG_MUSIC_NOTES loadspritegfx ANIM_TAG_DUCK - createvisualtask AnimTask_TeeterDanceMovement, 5, + createvisualtask AnimTask_TeeterDanceMovement, 5, createsprite gFastFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, -2 playsewithpan SE_M_TEETER_DANCE, 192 delay 24 @@ -4305,7 +4305,7 @@ Move_AIR_CUTTER:: Move_ODOR_SLEUTH:: monbg 1 - createvisualtask AnimTask_OdorSleuthMovement, 5, + createvisualtask AnimTask_OdorSleuthMovement, 5, delay 24 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 4 playsewithpan SE_M_SWAGGER, 192 @@ -4323,7 +4323,7 @@ Move_GRASS_WHISTLE:: loadspritegfx ANIM_TAG_MUSIC_NOTES createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 4, 13298 waitforvisualfinish - createvisualtask AnimTask_MusicNotesRainbowBlend, 2, + createvisualtask AnimTask_MusicNotesRainbowBlend, 2, waitforvisualfinish panse_1B SE_M_GRASSWHISTLE, 192, 63, 2, 0 createsprite gWavyMusicNotesSpriteTemplate, ANIM_TARGET, 2, 7, 1, 0 @@ -4351,7 +4351,7 @@ Move_GRASS_WHISTLE:: createsprite gWavyMusicNotesSpriteTemplate, ANIM_TARGET, 2, 5, 1, 0 delay 4 waitforvisualfinish - createvisualtask AnimTask_MusicNotesClearRainbowBlend, 2, + createvisualtask AnimTask_MusicNotesClearRainbowBlend, 2, createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 4, 4, 0, 13298 waitforvisualfinish end @@ -4379,13 +4379,13 @@ Move_WATER_SPOUT:: loadspritegfx ANIM_TAG_WATER_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - createvisualtask AnimTask_WaterSpoutLaunch, 5, + createvisualtask AnimTask_WaterSpoutLaunch, 5, playsewithpan SE_M_HEADBUTT, 192 delay 44 playsewithpan SE_M_DIVE, 192 waitforvisualfinish delay 16 - createvisualtask AnimTask_WaterSpoutRain, 5, + createvisualtask AnimTask_WaterSpoutRain, 5, playsewithpan SE_M_SURF, 63 clearmonbg ANIM_DEF_PARTNER blendoff @@ -4459,7 +4459,7 @@ Move_IRON_DEFENSE:: Move_BLOCK:: loadspritegfx ANIM_TAG_X_SIGN - createsprite gBlockXSpriteTemplate, ANIM_TARGET, 66, + createsprite gBlockXSpriteTemplate, ANIM_TARGET, 66, playsewithpan SE_M_SWAGGER, 63 end @@ -4475,10 +4475,10 @@ Move_HOWL:: Move_BULK_UP:: loadspritegfx ANIM_TAG_BREATH - createvisualtask AnimTask_GrowAndShrink, 2, + createvisualtask AnimTask_GrowAndShrink, 2, playsewithpan SE_M_SWAGGER, 192 waitforvisualfinish - createsprite gBreathPuffSpriteTemplate, ANIM_ATTACKER, 2, + createsprite gBreathPuffSpriteTemplate, ANIM_ATTACKER, 2, loopsewithpan SE_M_SWAGGER, 192, 4, 2 waitforvisualfinish end @@ -4549,7 +4549,7 @@ Move_VOLT_TACKLE:: Move_WATER_SPORT:: loadspritegfx ANIM_TAG_GLOWY_BLUE_ORB - createvisualtask AnimTask_WaterSport, 5, + createvisualtask AnimTask_WaterSport, 5, delay 8 playsewithpan SE_M_SURF, 192 delay 44 @@ -4587,7 +4587,7 @@ Move_CALM_MIND:: Move_LEAF_BLADE:: loadspritegfx ANIM_TAG_LEAF loadspritegfx ANIM_TAG_CROSS_IMPACT - createvisualtask AnimTask_LeafBlade, 5, + createvisualtask AnimTask_LeafBlade, 5, delay 2 createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 8, 1 playsewithpan SE_M_CUT, 63 @@ -4672,7 +4672,7 @@ Move_HARDEN:: Move_BELLY_DRUM:: loadspritegfx ANIM_TAG_MUSIC_NOTES loadspritegfx ANIM_TAG_PURPLE_HAND_OUTLINE - createvisualtask AnimTask_MusicNotesRainbowBlend, 2, + createvisualtask AnimTask_MusicNotesRainbowBlend, 2, waitforvisualfinish call BellyDrumRight createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0, 0 @@ -4698,7 +4698,7 @@ Move_BELLY_DRUM:: createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 3, 0 playsewithpan SE_M_BELLY_DRUM, 192 waitforvisualfinish - createvisualtask AnimTask_MusicNotesClearRainbowBlend, 2, + createvisualtask AnimTask_MusicNotesClearRainbowBlend, 2, waitforvisualfinish end @@ -4719,7 +4719,7 @@ Move_MIND_READER:: monbg 4 playsewithpan SE_M_CONFUSE_RAY, 63 createsprite gOpeningEyeSpriteTemplate, ANIM_ATTACKER, 5, 0, 0, 1, 0 - createsprite gWhiteHaloSpriteTemplate, ANIM_ATTACKER, 5, + createsprite gWhiteHaloSpriteTemplate, ANIM_ATTACKER, 5, delay 40 playsewithpan SE_M_LEER, 63 createvisualtask AnimTask_CurseBlendEffect, 2, 1, 1, 2, 0, 10, 0 @@ -5078,7 +5078,7 @@ Move_ROAR:: clearmonbg ANIM_ATTACKER blendoff waitforvisualfinish - createvisualtask SoundTask_WaitForCry, 5, + createvisualtask SoundTask_WaitForCry, 5, waitforvisualfinish end @@ -5100,7 +5100,7 @@ Move_GROWL:: createvisualtask AnimTask_ShakeMon2, 2, 1, 1, 0, 9, 1 createvisualtask AnimTask_ShakeMon2, 2, 3, 1, 0, 9, 1 waitforvisualfinish - createvisualtask SoundTask_WaitForCry, 5, + createvisualtask SoundTask_WaitForCry, 5, waitforvisualfinish end @@ -5270,7 +5270,7 @@ Move_FAINT_ATTACK:: clearmonbg ANIM_ATTACKER invisible 0 delay 1 - createvisualtask AnimTask_SetAttackerInvisibleWaitForSignal, 2, + createvisualtask AnimTask_SetAttackerInvisibleWaitForSignal, 2, monbg 1 setalpha 12, 8 delay 1 @@ -5501,7 +5501,7 @@ IceBeamCreateCrystals:: Move_WITHDRAW:: playsewithpan SE_M_HEADBUTT, 192 - createvisualtask AnimTask_Withdraw, 5, + createvisualtask AnimTask_Withdraw, 5, waitforvisualfinish end @@ -5594,7 +5594,7 @@ SolarBeamAbsorbEffect:: SolarBeamUnleash:: call SetSolarBeamBg panse_1B SE_M_SOLAR_BEAM, 192, 63, 2, 0 - createvisualtask AnimTask_CreateSmallSolarBeamOrbs, 5, + createvisualtask AnimTask_CreateSmallSolarBeamOrbs, 5, createsprite gSolarBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 0 delay 4 createsprite gSolarBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 1 @@ -5638,7 +5638,7 @@ SolarBeamUnleash1:: Move_BLIZZARD:: loadspritegfx ANIM_TAG_ICE_CRYSTALS monbg ANIM_DEF_PARTNER - createvisualtask AnimTask_GetAttackerSide, 2, + createvisualtask AnimTask_GetAttackerSide, 2, jumpargeq 7, 1, BlizzardOnPlayer fadetobg BG_HIGHSPEED_OPPONENT @@ -6892,7 +6892,7 @@ Move_SPORE:: loadspritegfx ANIM_TAG_SPORE monbg ANIM_DEF_PARTNER setalpha 12, 8 - createvisualtask AnimTask_SporeDoubleBattle, 2, + createvisualtask AnimTask_SporeDoubleBattle, 2, loopsewithpan SE_M_POISON_POWDER, 63, 16, 11 call CreateSpore call CreateSpore @@ -7067,7 +7067,7 @@ MistCloud:: Move_HAZE:: waitforvisualfinish playsewithpan SE_M_HAZE, 0 - createvisualtask AnimTask_Haze1, 5, + createvisualtask AnimTask_Haze1, 5, delay 30 createvisualtask AnimTask_BlendSelected, 10, 0 | (0xF << 7), 2, 0, 16, RGB_BLACK delay 90 @@ -7624,7 +7624,7 @@ Move_SPIDER_WEB:: call SpiderWebThread waitforvisualfinish playsewithpan SE_M_STRING_SHOT2, 63 - createsprite gSpiderWebSpriteTemplate, ANIM_ATTACKER, 2, + createsprite gSpiderWebSpriteTemplate, ANIM_ATTACKER, 2, waitforvisualfinish clearmonbg ANIM_DEF_PARTNER delay 1 @@ -7683,7 +7683,7 @@ Move_DISABLE:: playsewithpan SE_M_DETECT, 192 createsprite gSpriteTemplate_83BF480, ANIM_ATTACKER, 13, 24, -16 waitforvisualfinish - createvisualtask AnimTask_GrowAndGreyscale, 5, + createvisualtask AnimTask_GrowAndGreyscale, 5, loopsewithpan SE_M_BIND, 63, 15, 4 waitforvisualfinish delay 1 @@ -7806,7 +7806,7 @@ CurseStats:: CurseStats1:: playsewithpan SE_M_DRAGON_RAGE, 192 - createvisualtask AnimTask_SetUpCurseBackground, 5, + createvisualtask AnimTask_SetUpCurseBackground, 5, createvisualtask AnimTask_CurseBlendEffect, 5, 2, 4, 2, 0, 10, 31 return @@ -7888,7 +7888,7 @@ HealBellRing:: Move_FAKE_OUT:: playsewithpan SE_M_FLATTER, 0 - createvisualtask AnimTask_FakeOut, 5, + createvisualtask AnimTask_FakeOut, 5, waitforvisualfinish playsewithpan SE_M_SKETCH, 63 createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 5, 1 @@ -7904,7 +7904,7 @@ Move_SCARY_FACE:: waitforvisualfinish delay 10 playsewithpan SE_M_LEER, 192 - createvisualtask AnimTask_ScaryFace, 5, + createvisualtask AnimTask_ScaryFace, 5, delay 13 createsprite gEyeSparkleSpriteTemplate, ANIM_ATTACKER, 0, -16, -8 createsprite gEyeSparkleSpriteTemplate, ANIM_ATTACKER, 0, 16, -8 @@ -7994,7 +7994,7 @@ Move_INGRAIN:: Move_PRESENT:: loadspritegfx ANIM_TAG_ITEM_BAG - createvisualtask AnimTask_IsHealingMove, 2, + createvisualtask AnimTask_IsHealingMove, 2, createsprite gPresentSpriteTemplate, ANIM_TARGET, 2, 0, -5, 10, 2, -1 playsewithpan SE_M_TAIL_WHIP, 192 delay 14 @@ -8056,7 +8056,7 @@ Move_BATON_PASS:: loadspritegfx ANIM_TAG_POKEBALL playsewithpan SE_M_BATON_PASS, 192 createvisualtask AnimTask_CurseBlendEffect, 2, 31, 1, 2, 0, 11, 31455 - createsprite gBatonPassPokeballSpriteTemplate, ANIM_ATTACKER, 2, + createsprite gBatonPassPokeballSpriteTemplate, ANIM_ATTACKER, 2, end Move_PERISH_SONG:: @@ -8127,14 +8127,14 @@ Move_HYPER_FANG:: playsewithpan SE_M_BITE, 63 delay 1 delay 2 - createvisualtask AnimTask_IsContest, 2, + createvisualtask AnimTask_IsContest, 2, jumpargeq 7, 1, HyperFangInContest - createvisualtask AnimTask_IsTargetPlayerSide, 2, + createvisualtask AnimTask_IsTargetPlayerSide, 2, jumpargeq 7, 0, HyperFangOnOpponent goto HyperFangOnPlayer HyperFangContinue:: waitbgfadeout - createsprite gFangSpriteTemplate, ANIM_TARGET, 2, + createsprite gFangSpriteTemplate, ANIM_TARGET, 2, waitbgfadein createvisualtask AnimTask_ShakeMon, 3, 1, 0, 10, 10, 1 playsewithpan SE_M_LEER, 63 @@ -8239,7 +8239,7 @@ Move_WILL_O_WISP:: Move_ENCORE:: loadspritegfx ANIM_TAG_SPOTLIGHT loadspritegfx ANIM_TAG_TAG_HAND - createvisualtask AnimTask_CreateSpotlight, 2, + createvisualtask AnimTask_CreateSpotlight, 2, createvisualtask AnimTask_HardwarePaletteFade, 2, BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN, 3, 0, 10, FALSE waitforvisualfinish createsprite gSpotlightSpriteTemplate, ANIM_TARGET, 2, 0, -8 @@ -8253,7 +8253,7 @@ Move_ENCORE:: waitforvisualfinish createvisualtask AnimTask_HardwarePaletteFade, 2, BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN, 3, 10, 0, TRUE waitforvisualfinish - createvisualtask AnimTask_RemoveSpotlight, 2, + createvisualtask AnimTask_RemoveSpotlight, 2, end Move_TRICK:: @@ -8263,7 +8263,7 @@ Move_TRICK:: createsprite gTrickBagSpriteTemplate, ANIM_ATTACKER, 2, -40, 208 delay 16 playsewithpan SE_M_SKETCH, 0 - createvisualtask AnimTask_StretchTargetUp, 3, + createvisualtask AnimTask_StretchTargetUp, 3, createvisualtask AnimTask_StretchAttackerUp, 3 delay 30 playsewithpan SE_M_DOUBLE_TEAM, 0 @@ -8290,7 +8290,7 @@ Move_WISH:: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 10, 0 waitforvisualfinish panse_27 SE_M_REFLECT, 63, 192, 253, 0 - createsprite gWishStarSpriteTemplate, ANIM_ATTACKER, 40, + createsprite gWishStarSpriteTemplate, ANIM_ATTACKER, 40, waitforvisualfinish delay 60 loopsewithpan SE_M_HEAL_BELL, 192, 16, 3 @@ -8304,7 +8304,7 @@ Move_STOCKPILE:: loadspritegfx ANIM_TAG_GRAY_ORB playsewithpan SE_M_MEGA_KICK, 192 createvisualtask AnimTask_CurseBlendEffect, 2, 2, 8, 1, 0, 12, RGB_WHITE - createvisualtask AnimTask_StockpileDeformMon, 5, + createvisualtask AnimTask_StockpileDeformMon, 5, call StockpileAbsorb call StockpileAbsorb waitforvisualfinish @@ -8334,7 +8334,7 @@ Move_SPIT_UP:: loadspritegfx ANIM_TAG_RED_ORB_2 loadspritegfx ANIM_TAG_IMPACT playsewithpan SE_M_TAKE_DOWN, 192 - createvisualtask AnimTask_SpitUpDeformMon, 5, + createvisualtask AnimTask_SpitUpDeformMon, 5, createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 8, 2 delay 45 playsewithpan SE_M_SPIT_UP, 192 @@ -8383,7 +8383,7 @@ Move_SWALLOW:: loadspritegfx ANIM_TAG_BLUE_ORB loadspritegfx ANIM_TAG_BLUE_STAR playsewithpan SE_M_TAKE_DOWN, 192 - createvisualtask AnimTask_SwallowDeformMon, 5, + createvisualtask AnimTask_SwallowDeformMon, 5, createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 8, 2 delay 38 playsewithpan SE_M_SPIT_UP, 192 @@ -8430,7 +8430,7 @@ Move_TRANSFORM:: Move_MORNING_SUN:: loadspritegfx ANIM_TAG_GREEN_STAR loadspritegfx ANIM_TAG_BLUE_STAR - createvisualtask AnimTask_MorningSunLightBeam, 5, + createvisualtask AnimTask_MorningSunLightBeam, 5, delay 8 createvisualtask AnimTask_BlendSelected, 10, 1 | (0xF << 7), 8, 0, 12, RGB_WHITE delay 14 @@ -8545,8 +8545,8 @@ Move_HYPER_BEAM:: end HyperBeamOrbs:: - createsprite gHyperBeamOrbSpriteTemplate, ANIM_TARGET, 2, - createsprite gHyperBeamOrbSpriteTemplate, ANIM_TARGET, 2, + createsprite gHyperBeamOrbSpriteTemplate, ANIM_TARGET, 2, + createsprite gHyperBeamOrbSpriteTemplate, ANIM_TARGET, 2, delay 1 return @@ -8554,7 +8554,7 @@ Move_FLATTER:: loadspritegfx ANIM_TAG_SPOTLIGHT loadspritegfx ANIM_TAG_CONFETTI createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_ENCORE2, 63 - createvisualtask AnimTask_CreateSpotlight, 2, + createvisualtask AnimTask_CreateSpotlight, 2, createvisualtask AnimTask_HardwarePaletteFade, 2, BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN, 3, 0, 10, FALSE waitforvisualfinish createsprite gFlatterSpotlightSpriteTemplate, ANIM_TARGET, 2, 0, -8, 80 @@ -8588,7 +8588,7 @@ Move_FLATTER:: waitforvisualfinish createvisualtask AnimTask_HardwarePaletteFade, 2, BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN, 3, 10, 0, TRUE waitforvisualfinish - createvisualtask AnimTask_RemoveSpotlight, 2, + createvisualtask AnimTask_RemoveSpotlight, 2, end CreateFlatterConfetti:: @@ -8603,7 +8603,7 @@ Move_ROLE_PLAY:: waitforvisualfinish playsewithpan SE_M_TRI_ATTACK, 192 waitplaysewithpan SE_M_DETECT, 192, 30 - createvisualtask AnimTask_RolePlaySilhouette, 2, + createvisualtask AnimTask_RolePlaySilhouette, 2, waitforvisualfinish clearmonbg ANIM_ATK_PARTNER createvisualtask AnimTask_BlendSelected, 10, 4, 2, 16, 0, RGB_WHITE @@ -8663,7 +8663,7 @@ HyperVoiceEffect:: createvisualtask AnimTask_ShakeMon2, 2, 1, 1, 0, 6, 1 createvisualtask AnimTask_ShakeMon2, 2, 3, 1, 0, 6, 1 createvisualtask AnimTask_ShakeBattleTerrain, 2, 1, 0, 6, 1 - createvisualtask SoundTask_WaitForCry, 5, + createvisualtask SoundTask_WaitForCry, 5, return Move_SAND_TOMB:: @@ -8924,7 +8924,7 @@ Move_POISON_FANG:: loadspritegfx ANIM_TAG_FANG_ATTACK loadspritegfx ANIM_TAG_POISON_BUBBLE playsewithpan SE_M_BITE, 63 - createsprite gFangSpriteTemplate, ANIM_TARGET, 2, + createsprite gFangSpriteTemplate, ANIM_TARGET, 2, delay 10 createvisualtask AnimTask_ShakeMon, 3, 1, 3, 0, 10, 1 waitforvisualfinish @@ -8935,7 +8935,7 @@ Move_POISON_FANG:: Move_SUBSTITUTE:: playsewithpan SE_M_ATTRACT, 192 - createvisualtask AnimTask_MonToSubstitute, 2, + createvisualtask AnimTask_MonToSubstitute, 2, end Move_FRENZY_PLANT:: @@ -9029,9 +9029,9 @@ FocusPunch:: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET delay 1 - createvisualtask AnimTask_IsContest, 2, + createvisualtask AnimTask_IsContest, 2, jumpargeq 7, 1, FocusPunchInContest - createvisualtask AnimTask_IsTargetPlayerSide, 2, + createvisualtask AnimTask_IsTargetPlayerSide, 2, jumpargeq 7, 0, FocusPunchOnOpponent jumpargeq 7, 1, FocusPunchOnPlayer FocusPunchContinue:: @@ -9075,7 +9075,7 @@ Move_RETURN:: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - createvisualtask AnimTask_GetReturnPowerLevel, 2, + createvisualtask AnimTask_GetReturnPowerLevel, 2, delay 2 jumpargeq 7, 0, ReturnWeak jumpargeq 7, 1, ReturnMedium @@ -9324,7 +9324,7 @@ Move_SILVER_WIND:: monbgprio_29 delay 0 createvisualtask AnimTask_BlendExcept, 10, 1, 0, 0, 4, 0 - createvisualtask AnimTask_GetTargetSide, 2, + createvisualtask AnimTask_GetTargetSide, 2, jumpargeq 7, 1, SilverWindOnPlayer fadetobg BG_BUG_OPPONENT waitbgfadeout @@ -9532,7 +9532,7 @@ Move_HYDRO_CANNON:: monbg ANIM_DEF_PARTNER setalpha 12, 8 playsewithpan SE_M_SURF, 192 - createsprite gHydroCannonChargeSpriteTemplate, ANIM_TARGET, 2, + createsprite gHydroCannonChargeSpriteTemplate, ANIM_TARGET, 2, delay 10 createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 30 @@ -9578,7 +9578,7 @@ Move_ASTONISH:: playsewithpan SE_M_SKETCH, 63 createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 1, 1 createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 5, 1 - createvisualtask AnimTask_StretchTargetUp, 3, + createvisualtask AnimTask_StretchTargetUp, 3, waitforvisualfinish end @@ -9589,7 +9589,7 @@ Move_SEISMIC_TOSS:: monbg ANIM_DEF_PARTNER setalpha 12, 8 waitforvisualfinish - createvisualtask AnimTask_GetSeismicTossDamageLevel, 3, + createvisualtask AnimTask_GetSeismicTossDamageLevel, 3, delay 1 fadetobg 17 waitbgfadeout @@ -9700,7 +9700,7 @@ Move_PSYCHO_BOOST:: monbg ANIM_ATK_PARTNER fadetobg 3 waitbgfadeout - createvisualtask AnimTask_FadeScreenToWhite, 5, + createvisualtask AnimTask_FadeScreenToWhite, 5, waitbgfadein delay 6 createvisualtask AnimTask_CurseBlendEffect, 2, 1, 2, 8, 0, 10, 0 @@ -9765,7 +9765,7 @@ Move_DOOM_DESIRE:: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 16, RGB_WHITE waitforvisualfinish delay 10 - createvisualtask AnimTask_DoomDesireLightBeam, 5, + createvisualtask AnimTask_DoomDesireLightBeam, 5, delay 5 playsewithpan SE_M_CONFUSE_RAY, 192 delay 10 @@ -9838,7 +9838,7 @@ Move_SKY_UPPERCUT:: end Move_SECRET_POWER:: - createvisualtask AnimTask_GetBattleTerrain, 5, + createvisualtask AnimTask_GetBattleTerrain, 5, jumpargeq 0, 0, Move_NEEDLE_ARM jumpargeq 0, 1, Move_MAGICAL_LEAF jumpargeq 0, 2, Move_MUD_SHOT @@ -10049,7 +10049,7 @@ Move_WEATHER_BALL:: playsewithpan SE_M_DETECT, 0 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 5, 1, RGB_WHITE, 10, 0, 0 waitforvisualfinish - createvisualtask AnimTask_GetWeather, 2, + createvisualtask AnimTask_GetWeather, 2, delay 1 jumpargeq 7, 0, WeatherBallNormal jumpargeq 7, 1, WeatherBallFire @@ -10375,7 +10375,7 @@ ConfusionEffect:: SetPsychicBackground:: fadetobg 3 waitbgfadeout - createvisualtask AnimTask_SetPsychicBackground, 5, + createvisualtask AnimTask_SetPsychicBackground, 5, waitbgfadein return @@ -10409,9 +10409,9 @@ UnsetSkyBg:: return SetSolarBeamBg:: - createvisualtask AnimTask_IsContest, 2, + createvisualtask AnimTask_IsContest, 2, jumpargeq 7, 1, SetSolarBeamBgContest - createvisualtask AnimTask_IsTargetPlayerSide, 2, + createvisualtask AnimTask_IsTargetPlayerSide, 2, jumpargeq 7, 0, SetSolarBeamBgOpponent goto SetSolarBeamBgPlayer SetSolarBeamBgContinue:: @@ -10492,7 +10492,7 @@ Status_Freeze:: monbg ANIM_DEF_PARTNER monbgprio_28 1 waitplaysewithpan SE_M_HAIL, 63, 17 - createvisualtask AnimTask_FrozenIceCube, 2, + createvisualtask AnimTask_FrozenIceCube, 2, waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end @@ -10501,7 +10501,7 @@ Status_Curse:: loadspritegfx ANIM_TAG_GHOSTLY_SPIRIT monbg ANIM_DEF_PARTNER playsewithpan SE_M_NIGHTMARE, 63 - createsprite gCurseGhostSpriteTemplate, ANIM_TARGET, 2, + createsprite gCurseGhostSpriteTemplate, ANIM_TARGET, 2, createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 14, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -10518,7 +10518,7 @@ Status_Nightmare:: end General_CastformChange:: - createvisualtask AnimTask_IsMonInvisible, 2, + createvisualtask AnimTask_IsMonInvisible, 2, jumpargeq 7, 1, CastformChangeSkipAnim goto CastformChangeContinue @@ -10536,7 +10536,7 @@ CastformChangeSkipAnim:: end General_StatsChange:: - createvisualtask AnimTask_StatsChange, 5, + createvisualtask AnimTask_StatsChange, 5, waitforvisualfinish end @@ -10554,12 +10554,12 @@ General_SubstituteFade:: end General_SubstituteAppear:: - createvisualtask AnimTask_MonToSubstitute, 2, + createvisualtask AnimTask_MonToSubstitute, 2, end General_BaitThrow:: createvisualtask AnimTask_SafariOrGhost_DecideAnimSides, 2, 0 - createvisualtask AnimTask_LoadBaitGfx, 2, + createvisualtask AnimTask_LoadBaitGfx, 2, delay 0 waitplaysewithpan SE_M_JUMP_KICK, 192, 22 createsprite gSafariBaitSpriteTemplate, ANIM_TARGET, 3, -18, 12, 0, 32 @@ -10567,16 +10567,16 @@ General_BaitThrow:: loopsewithpan SE_M_TAIL_WHIP, 63, 19, 2 createvisualtask AnimTask_SwayMon, 5, 1, 8, 1536, 2, 1 waitforvisualfinish - createvisualtask AnimTask_FreeBaitGfx, 2, + createvisualtask AnimTask_FreeBaitGfx, 2, end General_ItemKnockoff:: loadspritegfx ANIM_TAG_ITEM_BAG - createsprite gKnockOffItemSpriteTemplate, ANIM_TARGET, 2, + createsprite gKnockOffItemSpriteTemplate, ANIM_TARGET, 2, end General_TurnTrap:: - createvisualtask AnimTask_GetTrappedMoveAnimId, 5, + createvisualtask AnimTask_GetTrappedMoveAnimId, 5, jumpargeq 0, 1, Status_FireSpin jumpargeq 0, 2, Status_Whirlpool jumpargeq 0, 3, Status_Clamp @@ -10749,7 +10749,7 @@ General_Hail:: goto Move_HAIL General_LeechSeedDrain:: - createvisualtask AnimTask_GetBattlersFromArg, 5, + createvisualtask AnimTask_GetBattlersFromArg, 5, delay 0 goto Move_ABSORB @@ -10768,7 +10768,7 @@ General_MonHit:: General_ItemSteal:: loadspritegfx ANIM_TAG_ITEM_BAG createvisualtask AnimTask_SetAnimAttackerAndTargetForEffectAtk, 2 - createvisualtask AnimTask_TargetToEffectBattler, 2, + createvisualtask AnimTask_TargetToEffectBattler, 2, delay 1 createsprite gItemStealSpriteTemplate, ANIM_ATTACKER, 2, 0, -5, 10, 2, -1 end @@ -10780,7 +10780,7 @@ General_SnatchMove:: delay 1 createvisualtask AnimTask_SwayMon, 2, 0, 5, 5120, 4, 1 waitforvisualfinish - createvisualtask AnimTask_IsTargetSameSide, 2, + createvisualtask AnimTask_IsTargetSameSide, 2, jumpargeq 7, 0, SnatchOpposingMonMove goto SnatchPartnerMonMove @@ -10791,12 +10791,12 @@ SnatchMoveContinue:: SnatchOpposingMonMove:: playsewithpan SE_M_DOUBLE_TEAM, 192 - createvisualtask AnimTask_SnatchOpposingMonMove, 2, + createvisualtask AnimTask_SnatchOpposingMonMove, 2, goto SnatchMoveContinue SnatchPartnerMonMove:: playsewithpan SE_M_DOUBLE_TEAM, 192 - createvisualtask AnimTask_SnatchPartnerMove, 2, + createvisualtask AnimTask_SnatchPartnerMove, 2, goto SnatchMoveContinue General_FutureSightHit:: @@ -10820,12 +10820,12 @@ General_FutureSightHit:: end General_DoomDesireHit:: - createvisualtask AnimTask_SetAnimTargetToBattlerTarget, 2, + createvisualtask AnimTask_SetAnimTargetToBattlerTarget, 2, loadspritegfx ANIM_TAG_EXPLOSION createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 16, RGB_WHITE waitforvisualfinish delay 10 - createvisualtask AnimTask_DoomDesireLightBeam, 5, + createvisualtask AnimTask_DoomDesireLightBeam, 5, delay 9 playsewithpan SE_M_CONFUSE_RAY, 192 delay 9 @@ -10909,7 +10909,7 @@ General_MonScared:: playsewithpan SE_M_SKETCH, 63 createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 1, 1 createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 5, 1 - createvisualtask AnimTask_StretchTargetUp, 3, + createvisualtask AnimTask_StretchTargetUp, 3, waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 10, 0, 26336 waitforvisualfinish @@ -10921,7 +10921,7 @@ General_GhostGetOut:: fadetobg 2 waitbgfadeout monbg_22 0 - createvisualtask sub_80B6BBC, 2, + createvisualtask sub_80B6BBC, 2, waitbgfadein loopsewithpan SE_M_PSYBEAM, 63, 20, 3 waitforvisualfinish @@ -10932,7 +10932,7 @@ General_GhostGetOut:: createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 0, 1 createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 1, 1 createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 5, 1 - createvisualtask AnimTask_StretchTargetUp, 3, + createvisualtask AnimTask_StretchTargetUp, 3, waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, -1, 6, 0, 27349 waitforvisualfinish @@ -10971,7 +10971,7 @@ General_SafariRockThrow:: end General_SafariReaction:: - createvisualtask AnimTask_SafariGetReaction, 2, + createvisualtask AnimTask_SafariGetReaction, 2, waitforvisualfinish jumpargeq 7, 0, SafariReaction_WatchingCarefully jumpargeq 7, 1, SafariReaction_Angry @@ -11005,7 +11005,7 @@ SafariReaction_Eating:: end SnatchMoveTrySwapFromSubstitute:: - createvisualtask AnimTask_IsAttackerBehindSubstitute, 2, + createvisualtask AnimTask_IsAttackerBehindSubstitute, 2, jumpargeq 7, 1, SnatchMoveSwapSubstituteForMon SnatchMoveTrySwapFromSubstituteEnd:: @@ -11018,7 +11018,7 @@ SnatchMoveSwapSubstituteForMon:: goto SnatchMoveTrySwapFromSubstituteEnd SnatchMoveTrySwapToSubstitute:: - createvisualtask AnimTask_IsAttackerBehindSubstitute, 2, + createvisualtask AnimTask_IsAttackerBehindSubstitute, 2, jumpargeq 7, 1, SnatchMoveSwapMonForSubstitute SnatchMoveTrySwapToSubstituteEnd:: @@ -11046,9 +11046,9 @@ Special_SwitchOutPlayerMon:: end Special_SwitchOutOpponentMon:: - createvisualtask AnimTask_SwitchOutBallEffect, 2, + createvisualtask AnimTask_SwitchOutBallEffect, 2, delay 10 - createvisualtask AnimTask_SwitchOutShrinkMon, 2, + createvisualtask AnimTask_SwitchOutShrinkMon, 2, end Special_BallThrow:: @@ -11056,8 +11056,8 @@ Special_BallThrow:: delay 0 playsewithpan SE_BALL_THROW, 0 createvisualtask AnimTask_ThrowBall, 2 - createvisualtask AnimTask_IsBallBlockedByTrainerOrDodged, 2, - jumpargeq 7, -1, BallThrowTrainerBlock + createvisualtask AnimTask_IsBallBlockedByTrainerOrDodged, 2, + jumpargeq 7, -1, BallThrowTrainerBlock jumpargeq 7, -2, BallThrowGhostDodged BallThrowEnd:: waitforvisualfinish @@ -11086,11 +11086,11 @@ BallThrowGhostDodged:: goto BallThrowEnd Special_SafariBallThrow:: - createvisualtask AnimTask_LoadBallGfx, 2, + createvisualtask AnimTask_LoadBallGfx, 2, delay 0 createvisualtask AnimTask_ThrowBallSpecial, 2 waitforvisualfinish - createvisualtask AnimTask_FreeBallGfx, 2, + createvisualtask AnimTask_FreeBallGfx, 2, end Special_SubstituteToMon:: diff --git a/include/battle.h b/include/battle.h index ce764923f..b581190d6 100644 --- a/include/battle.h +++ b/include/battle.h @@ -55,6 +55,12 @@ #define MAX_TRAINER_ITEMS 4 +enum { + BATTLER_AFFINE_NORMAL, + BATTLER_AFFINE_EMERGE, + BATTLER_AFFINE_RETURN, +}; + #define MOVE_TARGET_SELECTED 0 #define MOVE_TARGET_DEPENDS (1 << 0) #define MOVE_TARGET_USER_OR_SELECTED (1 << 1) @@ -545,15 +551,15 @@ struct BattleAnimationInfo u8 field_6; u8 field_7; u8 ballThrowCaseId; - u8 healthboxSlideInStarted : 1; - u8 field_9_x2 : 1; - u8 field_9_x1C : 3; - u8 field_9_x20 : 1; - u8 field_9_x40 : 1; - u8 field_9_x80 : 1; - u8 field_A; + u8 introAnimActive:1; + u8 wildMonInvisible:1; + u8 field_9_x1C:3; + u8 field_9_x20:1; + u8 field_9_x40:1; + u8 field_9_x80:1; + u8 numBallParticles; u8 field_B; - s16 field_C; + s16 ballSubpx; u8 field_E; u8 field_F; }; diff --git a/include/battle_anim.h b/include/battle_anim.h index 1919ba7d0..fc40e1373 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -317,7 +317,7 @@ void AnimRecycle(struct Sprite *); // battle_anim_special.c void TryShinyAnimation(u8 battler, struct Pokemon *mon); u8 ItemIdToBallId(u16 itemId); -u8 LaunchBallStarsTask(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId); +u8 AnimateBallOpenParticles(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId); u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 arg2, u8 ballId); void DoLoadHealthboxPalsForLevelUp(u8 *, u8 *, u8 battlerId); void DoFreeHealthboxPalsForLevelUp(u8 batterId); diff --git a/include/battle_gfx_sfx_util.h b/include/battle_gfx_sfx_util.h index c77686e17..9d4f9c549 100644 --- a/include/battle_gfx_sfx_util.h +++ b/include/battle_gfx_sfx_util.h @@ -40,6 +40,6 @@ void BattleInterfaceSetWindowPals(void); void ClearTemporarySpeciesSpriteData(u8 battlerId, bool8 dontClearSubstitute); void AllocateMonSpritesGfx(void); void FreeMonSpritesGfx(void); -bool32 ShouldPlayNormalPokeCry(struct Pokemon *mon); +bool32 ShouldPlayNormalMonCry(struct Pokemon *mon); #endif // GUARD_BATTLE_GFX_SFX_UTIL_H diff --git a/include/constants/battle.h b/include/constants/battle.h index c318f3cde..822675837 100644 --- a/include/constants/battle.h +++ b/include/constants/battle.h @@ -312,7 +312,7 @@ #define NUM_CASTFORM_FORMS 4 #define CASTFORM_SUBSTITUTE (1 << 7) -// Return value for IsRunningFromBattleImpossible. +// Return value for IsRunningFromBattleImpossible. #define BATTLE_RUN_SUCCESS 0 #define BATTLE_RUN_FORBIDDEN 1 #define BATTLE_RUN_FAILURE 2 diff --git a/include/graphics.h b/include/graphics.h index 4ddc0deea..dc72466c8 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -3,30 +3,30 @@ #include "global.h" -extern const u32 gInterfaceGfx_PokeBall[]; -extern const u32 gInterfacePal_PokeBall[]; -extern const u32 gInterfaceGfx_GreatBall[]; -extern const u32 gInterfacePal_GreatBall[]; -extern const u32 gInterfaceGfx_SafariBall[]; -extern const u32 gInterfacePal_SafariBall[]; -extern const u32 gInterfaceGfx_UltraBall[]; -extern const u32 gInterfacePal_UltraBall[]; -extern const u32 gInterfaceGfx_MasterBall[]; -extern const u32 gInterfacePal_MasterBall[]; -extern const u32 gInterfaceGfx_NetBall[]; -extern const u32 gInterfacePal_NetBall[]; -extern const u32 gInterfaceGfx_DiveBall[]; -extern const u32 gInterfacePal_DiveBall[]; -extern const u32 gInterfaceGfx_NestBall[]; -extern const u32 gInterfacePal_NestBall[]; -extern const u32 gInterfaceGfx_RepeatBall[]; -extern const u32 gInterfacePal_RepeatBall[]; -extern const u32 gInterfaceGfx_TimerBall[]; -extern const u32 gInterfacePal_TimerBall[]; -extern const u32 gInterfaceGfx_LuxuryBall[]; -extern const u32 gInterfacePal_LuxuryBall[]; -extern const u32 gInterfaceGfx_PremierBall[]; -extern const u32 gInterfacePal_PremierBall[]; +extern const u32 gBallGfx_Poke[]; +extern const u32 gBallPal_Poke[]; +extern const u32 gBallGfx_Great[]; +extern const u32 gBallPal_Great[]; +extern const u32 gBallGfx_Safari[]; +extern const u32 gBallPal_Safari[]; +extern const u32 gBallGfx_Ultra[]; +extern const u32 gBallPal_Ultra[]; +extern const u32 gBallGfx_Master[]; +extern const u32 gBallPal_Master[]; +extern const u32 gBallGfx_Net[]; +extern const u32 gBallPal_Net[]; +extern const u32 gBallGfx_Dive[]; +extern const u32 gBallPal_Dive[]; +extern const u32 gBallGfx_Nest[]; +extern const u32 gBallPal_Nest[]; +extern const u32 gBallGfx_Repeat[]; +extern const u32 gBallPal_Repeat[]; +extern const u32 gBallGfx_Timer[]; +extern const u32 gBallPal_Timer[]; +extern const u32 gBallGfx_Luxury[]; +extern const u32 gBallPal_Luxury[]; +extern const u32 gBallGfx_Premier[]; +extern const u32 gBallPal_Premier[]; extern const u32 gOpenPokeballGfx[]; // pokemon gfx diff --git a/include/librfu.h b/include/librfu.h index 88e77acbd..886db0561 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -324,7 +324,7 @@ struct STWIStatus vu8 sending; }; -// This struct is used as u8 array in SDK. +// This struct is used as u8 array in SDK. struct RfuIntrStruct { union RfuPacket rxPacketAlloc; diff --git a/include/pokeball.h b/include/pokeball.h index 19467e7a7..0ef6d4357 100644 --- a/include/pokeball.h +++ b/include/pokeball.h @@ -20,6 +20,14 @@ enum POKEBALL_COUNT }; +enum { + BALL_AFFINE_ANIM_0, + BALL_ROTATE_RIGHT, + BALL_ROTATE_LEFT, + BALL_AFFINE_ANIM_3, + BALL_AFFINE_ANIM_4 +}; + extern const struct CompressedSpriteSheet gBallSpriteSheets[POKEBALL_COUNT]; extern const struct CompressedSpritePalette gBallSpritePalettes[POKEBALL_COUNT]; extern const struct SpriteTemplate gBallSpriteTemplates[]; @@ -34,6 +42,6 @@ void DoHitAnimHealthboxEffect(u8 bank); void LoadBallGfx(u8 ballId); void FreeBallGfx(u8 ballId); void StartHealthboxSlideIn(u8 battler); -void DestroySpriteAndFreeResources2(struct Sprite *sprite); +void DestroySpriteAndFreeResources_Ball(struct Sprite *sprite); #endif // GUARD_POKEBALL_H diff --git a/src/battle_anim_special.c b/src/battle_anim_special.c index 28ed918f2..238e0b3bd 100644 --- a/src/battle_anim_special.c +++ b/src/battle_anim_special.c @@ -659,7 +659,7 @@ void AnimTask_SwitchOutBallEffect(u8 taskId) y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y); priority = gSprites[spriteId].oam.priority; subpriority = gSprites[spriteId].subpriority; - gTasks[taskId].data[10] = LaunchBallStarsTask(x, y + 32, priority, subpriority, ballId); + gTasks[taskId].data[10] = AnimateBallOpenParticles(x, y + 32, priority, subpriority, ballId); selectedPalettes = SelectBattleAnimSpriteAndBgPalettes(1, 0, 0, 0, 0, 0, 0); gTasks[taskId].data[11] = LaunchBallFadeMonTask(0, gBattleAnimAttacker, selectedPalettes, ballId); gTasks[taskId].data[0]++; @@ -748,7 +748,7 @@ void AnimTask_ThrowBall(u8 taskId) gSprites[spriteId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); gSprites[spriteId].data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) - 16; gSprites[spriteId].callback = SpriteCB_ThrowBall_Init; - gBattleSpritesDataPtr->animationData->field_9_x2 = gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible; + gBattleSpritesDataPtr->animationData->wildMonInvisible = gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible; gTasks[taskId].data[0] = spriteId; gTasks[taskId].func = AnimTask_ThrowBall_WaitAnimObjComplete; } @@ -860,7 +860,7 @@ static void SpriteCB_ThrowBall_ArcFlight(struct Sprite *sprite) switch (ballId) { case 0 ... POKEBALL_COUNT - 1: - LaunchBallStarsTask(sprite->x, sprite->y - 5, 1, 28, ballId); + AnimateBallOpenParticles(sprite->x, sprite->y - 5, 1, 28, ballId); LaunchBallFadeMonTask(0, gBattleAnimTarget, 14, ballId); break; } @@ -1015,7 +1015,7 @@ static void SpriteCB_ThrowBall_InitShake(struct Sprite *sprite) sprite->data[3] = 0; sprite->affineAnimPaused = TRUE; StartSpriteAffineAnim(sprite, 1); - gBattleSpritesDataPtr->animationData->field_C = 0; + gBattleSpritesDataPtr->animationData->ballSubpx = 0; sprite->callback = SpriteCB_ThrowBall_DoShake; PlaySE(SE_BALL); } @@ -1029,14 +1029,14 @@ static void SpriteCB_ThrowBall_DoShake(struct Sprite *sprite) switch (sprite->data[3] & 0xFF) { case 0: - if (gBattleSpritesDataPtr->animationData->field_C > 0xFF) + if (gBattleSpritesDataPtr->animationData->ballSubpx > 0xFF) { sprite->x2 += sprite->data[4]; - gBattleSpritesDataPtr->animationData->field_C &= 0xFF; + gBattleSpritesDataPtr->animationData->ballSubpx &= 0xFF; } else { - gBattleSpritesDataPtr->animationData->field_C += 0xB0; + gBattleSpritesDataPtr->animationData->ballSubpx += 0xB0; } sprite->data[5]++; @@ -1044,7 +1044,7 @@ static void SpriteCB_ThrowBall_DoShake(struct Sprite *sprite) var0 = sprite->data[5] + 7; if (var0 > 14) { - gBattleSpritesDataPtr->animationData->field_C = 0; + gBattleSpritesDataPtr->animationData->ballSubpx = 0; sprite->data[3]++; sprite->data[5] = 0; } @@ -1067,14 +1067,14 @@ static void SpriteCB_ThrowBall_DoShake(struct Sprite *sprite) } break; case 2: - if (gBattleSpritesDataPtr->animationData->field_C > 0xFF) + if (gBattleSpritesDataPtr->animationData->ballSubpx > 0xFF) { sprite->x2 += sprite->data[4]; - gBattleSpritesDataPtr->animationData->field_C &= 0xFF; + gBattleSpritesDataPtr->animationData->ballSubpx &= 0xFF; } else { - gBattleSpritesDataPtr->animationData->field_C += 0xB0; + gBattleSpritesDataPtr->animationData->ballSubpx += 0xB0; } sprite->data[5]++; @@ -1082,7 +1082,7 @@ static void SpriteCB_ThrowBall_DoShake(struct Sprite *sprite) var0 = sprite->data[5] + 12; if (var0 > 24) { - gBattleSpritesDataPtr->animationData->field_C = 0; + gBattleSpritesDataPtr->animationData->ballSubpx = 0; sprite->data[3]++; sprite->data[5] = 0; } @@ -1104,14 +1104,14 @@ static void SpriteCB_ThrowBall_DoShake(struct Sprite *sprite) ChangeSpriteAffineAnim(sprite, 1); // fall through case 4: - if (gBattleSpritesDataPtr->animationData->field_C > 0xFF) + if (gBattleSpritesDataPtr->animationData->ballSubpx > 0xFF) { sprite->x2 += sprite->data[4]; - gBattleSpritesDataPtr->animationData->field_C &= 0xFF; + gBattleSpritesDataPtr->animationData->ballSubpx &= 0xFF; } else { - gBattleSpritesDataPtr->animationData->field_C += 0xB0; + gBattleSpritesDataPtr->animationData->ballSubpx += 0xB0; } sprite->data[5]++; @@ -1119,7 +1119,7 @@ static void SpriteCB_ThrowBall_DoShake(struct Sprite *sprite) var0 = sprite->data[5] + 4; if (var0 > 8) { - gBattleSpritesDataPtr->animationData->field_C = 0; + gBattleSpritesDataPtr->animationData->ballSubpx = 0; sprite->data[3]++; sprite->data[5] = 0; sprite->data[4] = -sprite->data[4]; @@ -1319,7 +1319,7 @@ static void SpriteCB_ThrowBall_BeginBreakOut(struct Sprite *sprite) switch (ballId) { case 0 ... POKEBALL_COUNT - 1: - LaunchBallStarsTask(sprite->x, sprite->y - 5, 1, 28, ballId); + AnimateBallOpenParticles(sprite->x, sprite->y - 5, 1, 28, ballId); LaunchBallFadeMonTask(1, gBattleAnimTarget, 14, ballId); break; } @@ -1351,7 +1351,7 @@ static void SpriteCB_ThrowBall_RunBreakOut(struct Sprite *sprite) if (sprite->animEnded && next) { gSprites[gBattlerSpriteIds[gBattleAnimTarget]].y2 = 0; - gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible = gBattleSpritesDataPtr->animationData->field_9_x2; + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible = gBattleSpritesDataPtr->animationData->wildMonInvisible; sprite->data[0] = 0; sprite->callback = BattleAnimObj_SignalEnd; gDoingBattleAnim = FALSE; @@ -1430,7 +1430,7 @@ static void LoadBallParticleGfx(u8 ballId) } } -u8 LaunchBallStarsTask(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId) +u8 AnimateBallOpenParticles(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId) { u8 taskId; @@ -1448,7 +1448,7 @@ u8 LaunchBallStarsTask(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId) static void IncrementBattleParticleCounter(void) { if (gMain.inBattle) - gBattleSpritesDataPtr->animationData->field_A++; + gBattleSpritesDataPtr->animationData->numBallParticles++; } static void PokeBallOpenParticleAnimation(u8 taskId) @@ -1850,8 +1850,8 @@ static void DestroyBallOpenAnimationParticle(struct Sprite *sprite) } else { - gBattleSpritesDataPtr->animationData->field_A--; - if (gBattleSpritesDataPtr->animationData->field_A == 0) + gBattleSpritesDataPtr->animationData->numBallParticles--; + if (gBattleSpritesDataPtr->animationData->numBallParticles == 0) { for (j = 0; j < POKEBALL_COUNT; j++) { @@ -2097,7 +2097,7 @@ static void AnimTask_ShinySparkles(u8 taskId) return; } - if (gBattleSpritesDataPtr->animationData->field_A) + if (gBattleSpritesDataPtr->animationData->numBallParticles) return; counter = gTasks[taskId].data[10]++; diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index 8901cb219..839a230ad 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -271,7 +271,7 @@ static void Intro_TryShinyAnimShowHealthbox(void) StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); - gBattleSpritesDataPtr->animationData->healthboxSlideInStarted = 0; + gBattleSpritesDataPtr->animationData->introAnimActive = FALSE; gBattlerControllerFuncs[gActiveBattler] = Intro_WaitForShinyAnimAndHealthbox; } } @@ -1538,7 +1538,7 @@ static void LinkOpponentHandleIntroTrainerBallThrow(void) gTasks[taskId].data[0] = gActiveBattler; if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown) gTasks[gBattlerStatusSummaryTaskId[gActiveBattler]].func = Task_HidePartyStatusSummary; - gBattleSpritesDataPtr->animationData->healthboxSlideInStarted = 1; + gBattleSpritesDataPtr->animationData->introAnimActive = TRUE; gBattlerControllerFuncs[gActiveBattler] = LinkOpponentDummy; } diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index 6fa7282e0..7dbfbde65 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -236,7 +236,7 @@ static void Intro_ShowHealthbox(void) HEALTHBOX_ALL); StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); - gBattleSpritesDataPtr->animationData->healthboxSlideInStarted = 0; + gBattleSpritesDataPtr->animationData->introAnimActive = FALSE; gBattlerControllerFuncs[gActiveBattler] = Intro_WaitForHealthbox; } } @@ -1464,7 +1464,7 @@ static void LinkPartnerHandleIntroTrainerBallThrow(void) gTasks[taskId].data[0] = gActiveBattler; if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown) gTasks[gBattlerStatusSummaryTaskId[gActiveBattler]].func = Task_HidePartyStatusSummary; - gBattleSpritesDataPtr->animationData->healthboxSlideInStarted = 1; + gBattleSpritesDataPtr->animationData->introAnimActive = TRUE; gBattlerControllerFuncs[gActiveBattler] = LinkPartnerDummy; } diff --git a/src/battle_controller_oak_old_man.c b/src/battle_controller_oak_old_man.c index 16083b6c3..b2c8341ef 100644 --- a/src/battle_controller_oak_old_man.c +++ b/src/battle_controller_oak_old_man.c @@ -427,7 +427,7 @@ static void Intro_TryShinyAnimShowHealthbox(void) HEALTHBOX_ALL); StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); - gBattleSpritesDataPtr->animationData->healthboxSlideInStarted = 0; + gBattleSpritesDataPtr->animationData->introAnimActive = FALSE; gBattlerControllerFuncs[gActiveBattler] = Intro_WaitForShinyAnimAndHealthbox; } } @@ -2093,7 +2093,7 @@ static void OakOldManHandleIntroTrainerBallThrow(void) gTasks[taskId].data[0] = gActiveBattler; if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown) gTasks[gBattlerStatusSummaryTaskId[gActiveBattler]].func = Task_HidePartyStatusSummary; - gBattleSpritesDataPtr->animationData->healthboxSlideInStarted = 1; + gBattleSpritesDataPtr->animationData->introAnimActive = TRUE; gBattlerControllerFuncs[gActiveBattler] = PlayerDummy; } else diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 3fa84eee8..3aa20e0f3 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -265,7 +265,7 @@ static void Intro_TryShinyAnimShowHealthbox(void) StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); - gBattleSpritesDataPtr->animationData->healthboxSlideInStarted = FALSE; + gBattleSpritesDataPtr->animationData->introAnimActive = FALSE; gBattlerControllerFuncs[gActiveBattler] = Intro_WaitForShinyAnimAndHealthbox; } } @@ -1638,7 +1638,7 @@ static void OpponentHandleIntroTrainerBallThrow(void) gTasks[taskId].data[0] = gActiveBattler; if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown) gTasks[gBattlerStatusSummaryTaskId[gActiveBattler]].func = Task_HidePartyStatusSummary; - gBattleSpritesDataPtr->animationData->healthboxSlideInStarted = TRUE; + gBattleSpritesDataPtr->animationData->introAnimActive = TRUE; gBattlerControllerFuncs[gActiveBattler] = OpponentDummy; } diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 0d54be29e..16c812fb0 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -931,7 +931,7 @@ static void Intro_TryShinyAnimShowHealthbox(void) HEALTHBOX_ALL); StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); - gBattleSpritesDataPtr->animationData->healthboxSlideInStarted = 0; + gBattleSpritesDataPtr->animationData->introAnimActive = FALSE; gBattlerControllerFuncs[gActiveBattler] = Intro_WaitForShinyAnimAndHealthbox; } } @@ -2719,7 +2719,7 @@ static void PlayerHandleIntroTrainerBallThrow(void) gTasks[taskId].data[0] = gActiveBattler; if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown) gTasks[gBattlerStatusSummaryTaskId[gActiveBattler]].func = Task_HidePartyStatusSummary; - gBattleSpritesDataPtr->animationData->healthboxSlideInStarted = 1; + gBattleSpritesDataPtr->animationData->introAnimActive = TRUE; gBattlerControllerFuncs[gActiveBattler] = PlayerDummy; } @@ -2912,8 +2912,8 @@ static void PreviewDeterminativeMoveTargets(void) break; case MOVE_TARGET_BOTH: case MOVE_TARGET_OPPONENTS_FIELD: - bitMask = (gBitTable[GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)] - | gBitTable[GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT)]) << 16; + bitMask = (gBitTable[GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)] + | gBitTable[GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT)]) << 16; startY = 8; break; case MOVE_TARGET_USER: @@ -2935,8 +2935,8 @@ static void PreviewDeterminativeMoveTargets(void) case MOVE_MIST: case MOVE_HEAL_BELL: case MOVE_AROMATHERAPY: - bitMask = (gBitTable[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)] - | gBitTable[GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT)]) << 16; + bitMask = (gBitTable[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)] + | gBitTable[GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT)]) << 16; break; case MOVE_HELPING_HAND: bitMask = (gBitTable[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)]) << 16; @@ -2948,8 +2948,8 @@ static void PreviewDeterminativeMoveTargets(void) startY = 8; break; case MOVE_TARGET_FOES_AND_ALLY: - bitMask = (gBitTable[GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)] - | gBitTable[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)] + bitMask = (gBitTable[GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)] + | gBitTable[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)] | gBitTable[GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT)]) << 16; startY = 8; break; diff --git a/src/battle_controller_pokedude.c b/src/battle_controller_pokedude.c index 68c1642eb..9f27cd1c3 100644 --- a/src/battle_controller_pokedude.c +++ b/src/battle_controller_pokedude.c @@ -408,7 +408,7 @@ static void Intro_TryShinyAnimShowHealthbox(void) HEALTHBOX_ALL); StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); - gBattleSpritesDataPtr->animationData->healthboxSlideInStarted = 0; + gBattleSpritesDataPtr->animationData->introAnimActive = FALSE; gBattlerControllerFuncs[gActiveBattler] = Intro_WaitForShinyAnimAndHealthbox; } } @@ -1865,7 +1865,7 @@ static void PokedudeHandleIntroTrainerBallThrow(void) gTasks[taskId].data[0] = gActiveBattler; if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown) gTasks[gBattlerStatusSummaryTaskId[gActiveBattler]].func = Task_HidePartyStatusSummary; - gBattleSpritesDataPtr->animationData->healthboxSlideInStarted = 1; + gBattleSpritesDataPtr->animationData->introAnimActive = TRUE; gBattlerControllerFuncs[gActiveBattler] = PokedudeDummy; } diff --git a/src/battle_controllers.c b/src/battle_controllers.c index 89975500b..f259903e7 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -800,7 +800,7 @@ void BtlController_EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2) } // not used -static void BtlController_EmitUnknownYesNoBox(u8 bufferId, u32 arg1) // TODO: Does the function name make sense for pokefirered? +static void BtlController_EmitUnknownYesNoBox(u8 bufferId, u32 arg1) // TODO: Does the function name make sense for pokefirered? { sBattleBuffersTransferData[0] = CONTROLLER_UNKNOWNYESNOBOX; sBattleBuffersTransferData[1] = arg1; diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 5c6be1bbe..88334ba9c 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -663,7 +663,7 @@ void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, u8 transformType) { const void *src; void *dst; - + position = GetBattlerPosition(battlerAtk); targetSpecies = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerAtk]], MON_DATA_SPECIES); personalityValue = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerAtk]], MON_DATA_PERSONALITY); @@ -1042,17 +1042,20 @@ void FreeMonSpritesGfx(void) FREE_AND_SET_NULL(gMonSpritesGfxPtr); } -bool32 ShouldPlayNormalPokeCry(struct Pokemon *mon) +bool32 ShouldPlayNormalMonCry(struct Pokemon *mon) { s16 hp, maxHP; s32 barLevel; if (GetMonData(mon, MON_DATA_STATUS) & (STATUS1_ANY | STATUS1_TOXIC_COUNTER)) return FALSE; + hp = GetMonData(mon, MON_DATA_HP); maxHP = GetMonData(mon, MON_DATA_MAX_HP); + barLevel = GetHPBarLevel(hp, maxHP); if (barLevel <= HP_BAR_YELLOW) return FALSE; + return TRUE; } diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index ee69a4785..b42a51dea 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -676,7 +676,7 @@ static const struct OamData sOamData_MonIconOnLvlUpBanner = .y = 0, .affineMode = 0, .objMode = 0, - .mosaic = 0, + .mosaic = FALSE, .bpp = 0, .shape = SPRITE_SHAPE(32x32), .x = 0, diff --git a/src/battle_setup.c b/src/battle_setup.c index 6b87edd69..31d0f068a 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -181,7 +181,7 @@ static void Task_BattleStart(u8 taskId) case 0: if (!FldEffPoison_IsActive()) { - HelpSystem_Disable(); + HelpSystem_Disable(); BT_StartOnField(tTransition); ++tState; } @@ -189,7 +189,7 @@ static void Task_BattleStart(u8 taskId) case 1: if (BT_IsDone() == TRUE) { - HelpSystem_Enable(); + HelpSystem_Enable(); CleanupOverworldWindowsAndTilemaps(); SetMainCallback2(CB2_InitBattle); RestartWildEncounterImmunitySteps(); diff --git a/src/battle_transition.c b/src/battle_transition.c index 0682cfaaa..21d732aa5 100644 --- a/src/battle_transition.c +++ b/src/battle_transition.c @@ -394,7 +394,7 @@ static const TransitionStateFunc sBT_Phase2WhiteFadeInStripesFuncs[] = }; static const u16 sWhiteStripeDelay[] = { 0, 9, 15, 6, 12, 3 }; - + static const TransitionStateFunc sBT_Phase2GridSquaresFuncs[] = { BT_Phase2GridSquares_LoadGfx, @@ -480,7 +480,7 @@ static const struct OamData sOamData_Unused = .y = 0, .affineMode = 0, .objMode = 0, - .mosaic = 0, + .mosaic = FALSE, .bpp = 0, .shape = SPRITE_SHAPE(64x64), .x = 0, @@ -1022,7 +1022,7 @@ static void VBCB_BT_Phase2BigPokeball2(void) #undef tTheta #undef tAmplitude -// TODO: Document this effect after knowing more about field effects. +// TODO: Document this effect after knowing more about field effects. static void BT_Phase2SlidingPokeballs(u8 taskId) { while (sBT_Phase2SlidingPokeballsFuncs[gTasks[taskId].tState](&gTasks[taskId])); diff --git a/src/data/graphics/interface_pokeballs.h b/src/data/graphics/interface_pokeballs.h index fe9a4e5be..69d09d51f 100644 --- a/src/data/graphics/interface_pokeballs.h +++ b/src/data/graphics/interface_pokeballs.h @@ -1,37 +1,37 @@ -const u32 gInterfaceGfx_PokeBall[] = INCBIN_U32("graphics/interface/ball/poke.4bpp.lz"); -const u32 gInterfacePal_PokeBall[] = INCBIN_U32("graphics/interface/ball/poke.gbapal.lz"); +const u32 gBallGfx_Poke[] = INCBIN_U32("graphics/interface/ball/poke.4bpp.lz"); +const u32 gBallPal_Poke[] = INCBIN_U32("graphics/interface/ball/poke.gbapal.lz"); -const u32 gInterfaceGfx_GreatBall[] = INCBIN_U32("graphics/interface/ball/great.4bpp.lz"); -const u32 gInterfacePal_GreatBall[] = INCBIN_U32("graphics/interface/ball/great.gbapal.lz"); +const u32 gBallGfx_Great[] = INCBIN_U32("graphics/interface/ball/great.4bpp.lz"); +const u32 gBallPal_Great[] = INCBIN_U32("graphics/interface/ball/great.gbapal.lz"); -const u32 gInterfaceGfx_SafariBall[] = INCBIN_U32("graphics/interface/ball/safari.4bpp.lz"); -const u32 gInterfacePal_SafariBall[] = INCBIN_U32("graphics/interface/ball/safari.gbapal.lz"); +const u32 gBallGfx_Safari[] = INCBIN_U32("graphics/interface/ball/safari.4bpp.lz"); +const u32 gBallPal_Safari[] = INCBIN_U32("graphics/interface/ball/safari.gbapal.lz"); -const u32 gInterfaceGfx_UltraBall[] = INCBIN_U32("graphics/interface/ball/ultra.4bpp.lz"); -const u32 gInterfacePal_UltraBall[] = INCBIN_U32("graphics/interface/ball/ultra.gbapal.lz"); +const u32 gBallGfx_Ultra[] = INCBIN_U32("graphics/interface/ball/ultra.4bpp.lz"); +const u32 gBallPal_Ultra[] = INCBIN_U32("graphics/interface/ball/ultra.gbapal.lz"); -const u32 gInterfaceGfx_MasterBall[] = INCBIN_U32("graphics/interface/ball/master.4bpp.lz"); -const u32 gInterfacePal_MasterBall[] = INCBIN_U32("graphics/interface/ball/master.gbapal.lz"); +const u32 gBallGfx_Master[] = INCBIN_U32("graphics/interface/ball/master.4bpp.lz"); +const u32 gBallPal_Master[] = INCBIN_U32("graphics/interface/ball/master.gbapal.lz"); -const u32 gInterfaceGfx_NetBall[] = INCBIN_U32("graphics/interface/ball/net.4bpp.lz"); -const u32 gInterfacePal_NetBall[] = INCBIN_U32("graphics/interface/ball/net.gbapal.lz"); +const u32 gBallGfx_Net[] = INCBIN_U32("graphics/interface/ball/net.4bpp.lz"); +const u32 gBallPal_Net[] = INCBIN_U32("graphics/interface/ball/net.gbapal.lz"); -const u32 gInterfaceGfx_DiveBall[] = INCBIN_U32("graphics/interface/ball/dive.4bpp.lz"); -const u32 gInterfacePal_DiveBall[] = INCBIN_U32("graphics/interface/ball/dive.gbapal.lz"); +const u32 gBallGfx_Dive[] = INCBIN_U32("graphics/interface/ball/dive.4bpp.lz"); +const u32 gBallPal_Dive[] = INCBIN_U32("graphics/interface/ball/dive.gbapal.lz"); -const u32 gInterfaceGfx_NestBall[] = INCBIN_U32("graphics/interface/ball/nest.4bpp.lz"); -const u32 gInterfacePal_NestBall[] = INCBIN_U32("graphics/interface/ball/nest.gbapal.lz"); +const u32 gBallGfx_Nest[] = INCBIN_U32("graphics/interface/ball/nest.4bpp.lz"); +const u32 gBallPal_Nest[] = INCBIN_U32("graphics/interface/ball/nest.gbapal.lz"); -const u32 gInterfaceGfx_RepeatBall[] = INCBIN_U32("graphics/interface/ball/repeat.4bpp.lz"); -const u32 gInterfacePal_RepeatBall[] = INCBIN_U32("graphics/interface/ball/repeat.gbapal.lz"); +const u32 gBallGfx_Repeat[] = INCBIN_U32("graphics/interface/ball/repeat.4bpp.lz"); +const u32 gBallPal_Repeat[] = INCBIN_U32("graphics/interface/ball/repeat.gbapal.lz"); -const u32 gInterfaceGfx_TimerBall[] = INCBIN_U32("graphics/interface/ball/timer.4bpp.lz"); -const u32 gInterfacePal_TimerBall[] = INCBIN_U32("graphics/interface/ball/timer.gbapal.lz"); +const u32 gBallGfx_Timer[] = INCBIN_U32("graphics/interface/ball/timer.4bpp.lz"); +const u32 gBallPal_Timer[] = INCBIN_U32("graphics/interface/ball/timer.gbapal.lz"); -const u32 gInterfaceGfx_LuxuryBall[] = INCBIN_U32("graphics/interface/ball/luxury.4bpp.lz"); -const u32 gInterfacePal_LuxuryBall[] = INCBIN_U32("graphics/interface/ball/luxury.gbapal.lz"); +const u32 gBallGfx_Luxury[] = INCBIN_U32("graphics/interface/ball/luxury.4bpp.lz"); +const u32 gBallPal_Luxury[] = INCBIN_U32("graphics/interface/ball/luxury.gbapal.lz"); -const u32 gInterfaceGfx_PremierBall[] = INCBIN_U32("graphics/interface/ball/premier.4bpp.lz"); -const u32 gInterfacePal_PremierBall[] = INCBIN_U32("graphics/interface/ball/premier.gbapal.lz"); +const u32 gBallGfx_Premier[] = INCBIN_U32("graphics/interface/ball/premier.4bpp.lz"); +const u32 gBallPal_Premier[] = INCBIN_U32("graphics/interface/ball/premier.gbapal.lz"); const u32 gOpenPokeballGfx[] = INCBIN_U32("graphics/interface/ball_open.4bpp.lz"); diff --git a/src/data/party_menu.h b/src/data/party_menu.h index 084062b50..689ee6da5 100644 --- a/src/data/party_menu.h +++ b/src/data/party_menu.h @@ -711,7 +711,7 @@ static const struct OamData sOamData_HeldItem = .y = 0, .affineMode = 0, .objMode = 0, - .mosaic = 0, + .mosaic = FALSE, .bpp = 0, .shape = SPRITE_SHAPE(8x8), .x = 0, @@ -767,7 +767,7 @@ static const struct OamData sOamData_MenuPokeball = .y = 0, .affineMode = 0, .objMode = 0, - .mosaic = 0, + .mosaic = FALSE, .bpp = 0, .shape = SPRITE_SHAPE(32x32), .x = 0, @@ -824,7 +824,7 @@ static const struct OamData sOamData_MenuPokeballSmall = .y = 0, .affineMode = 0, .objMode = 0, - .mosaic = 0, + .mosaic = FALSE, .bpp = 0, .shape = SPRITE_SHAPE(16x16), .x = 0, @@ -905,7 +905,7 @@ static const struct OamData sOamData_StatusCondition = .y = 0, .affineMode = 0, .objMode = 0, - .mosaic = 0, + .mosaic = FALSE, .bpp = 0, .shape = SPRITE_SHAPE(32x8), .x = 0, diff --git a/src/daycare.c b/src/daycare.c index 54b06751d..a7bd7f7ac 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -143,7 +143,7 @@ static const struct OamData sOamData_EggHatch = .y = 0, .affineMode = 0, .objMode = 0, - .mosaic = 0, + .mosaic = FALSE, .bpp = 0, .shape = SPRITE_SHAPE(32x32), .x = 0, @@ -223,7 +223,7 @@ static const struct OamData sOamData_EggShard = .y = 0, .affineMode = 0, .objMode = 0, - .mosaic = 0, + .mosaic = FALSE, .bpp = 0, .shape = SPRITE_SHAPE(8x8), .x = 0, diff --git a/src/fldeff_strength.c b/src/fldeff_strength.c index c9a0fd1d5..c5dbfa6cd 100644 --- a/src/fldeff_strength.c +++ b/src/fldeff_strength.c @@ -15,7 +15,7 @@ bool8 SetUpFieldMove_Strength(void) { if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING) || CheckObjectGraphicsInFrontOfPlayer(OBJ_EVENT_GFX_PUSHABLE_BOULDER) != TRUE) { - return FALSE; + return FALSE; } else { diff --git a/src/librfu_stwi.c b/src/librfu_stwi.c index 43f291826..fb90cb452 100644 --- a/src/librfu_stwi.c +++ b/src/librfu_stwi.c @@ -118,7 +118,7 @@ void STWI_init_Callback_S(void) STWI_set_Callback_S(NULL); } -// The callback can take 2 or 3 arguments. +// The callback can take 2 or 3 arguments. void STWI_set_Callback_M(void *callbackM) { gSTWIStatus->callbackM = callbackM; diff --git a/src/mail_data.c b/src/mail_data.c index 3dd75f8c0..bb5fa6581 100644 --- a/src/mail_data.c +++ b/src/mail_data.c @@ -54,7 +54,7 @@ u8 GiveMailToMon(struct Pokemon *mon, u16 itemId) for (i = 0; i < PLAYER_NAME_LENGTH && gSaveBlock2Ptr->playerName[i] != EOS; i++) gSaveBlock1Ptr->mail[id].playerName[i] = gSaveBlock2Ptr->playerName[i]; for (; i <= 5; i++) - gSaveBlock1Ptr->mail[id].playerName[i] = CHAR_SPACE; + gSaveBlock1Ptr->mail[id].playerName[i] = CHAR_SPACE; gSaveBlock1Ptr->mail[id].playerName[i] = EOS; for (i = 0; i < 4; i++) gSaveBlock1Ptr->mail[id].trainerId[i] = gSaveBlock2Ptr->playerTrainerId[i]; diff --git a/src/menu_indicators.c b/src/menu_indicators.c index b7027a8d5..33f95705d 100644 --- a/src/menu_indicators.c +++ b/src/menu_indicators.c @@ -84,7 +84,7 @@ static const struct OamData sOamData_ScrollArrowIndicator = .y = 0, .affineMode = 0, .objMode = 0, - .mosaic = 0, + .mosaic = FALSE, .bpp = 0, .shape = SPRITE_SHAPE(16x16), .x = 0, @@ -224,7 +224,7 @@ static const struct OamData sOamData_RedArrowCursor = .y = 0, .affineMode = 0, .objMode = 0, - .mosaic = 0, + .mosaic = FALSE, .bpp = 0, .shape = SPRITE_SHAPE(16x16), .x = 0, diff --git a/src/pokeball.c b/src/pokeball.c index 9dbdfd0d1..a77401d44 100644 --- a/src/pokeball.c +++ b/src/pokeball.c @@ -14,13 +14,34 @@ #include "constants/songs.h" #include "constants/sound.h" -#define tFrames data[0] -#define tPan data[1] -#define tThrowId data[2] -#define tBattler data[3] -#define tOpponentBattler data[4] +static void Task_DoPokeballSendOutAnim(u8 taskId); +static void SpriteCB_PlayerMonSendOut_1(struct Sprite *sprite); +static void SpriteCB_PlayerMonSendOut_2(struct Sprite *sprite); +static void SpriteCB_OpponentMonSendOut(struct Sprite *sprite); +static void SpriteCB_BallThrow(struct Sprite *sprite); +static void SpriteCB_BallThrow_ReachMon(struct Sprite *sprite); +static void SpriteCB_BallThrow_StartShrinkMon(struct Sprite *sprite); +static void SpriteCB_BallThrow_ShrinkMon(struct Sprite *sprite); +static void SpriteCB_BallThrow_Close(struct Sprite *sprite); +static void SpriteCB_BallThrow_FallToGround(struct Sprite *sprite); +static void SpriteCB_BallThrow_StartShakes(struct Sprite *sprite); +static void SpriteCB_BallThrow_Shake(struct Sprite *sprite); +static void SpriteCB_BallThrow_StartCaptureMon(struct Sprite *sprite); +static void SpriteCB_BallThrow_CaptureMon(struct Sprite *sprite); +static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite); +static void SpriteCB_ReleaseMon2FromBall(struct Sprite *sprite); +static void HandleBallAnimEnd(struct Sprite *sprite); +static void SpriteCB_PokeballReleaseMon(struct Sprite *sprite); +static void SpriteCB_ReleasedMonFlyOut(struct Sprite *sprite); +static void SpriteCB_TradePokeball(struct Sprite *sprite); +static void SpriteCB_TradePokeballSendOff(struct Sprite *sprite); +static void SpriteCB_TradePokeballEnd(struct Sprite *sprite); +static void SpriteCB_HealthboxSlideInDelayed(struct Sprite *sprite); +static void SpriteCB_HealthboxSlideIn(struct Sprite *sprite); +static void SpriteCB_HitAnimHealthoxEffect(struct Sprite *sprite); +static u16 GetBattlerPokeballItemId(u8 battlerId); -#define sBattler data[6] +// rom const data #define GFX_TAG_POKE_BALL 55000 #define GFX_TAG_GREAT_BALL 55001 @@ -35,68 +56,36 @@ #define GFX_TAG_LUXURY_BALL 55010 #define GFX_TAG_PREMIER_BALL 55011 -// Function Declarations -static void Task_DoPokeballSendOutAnim(u8 taskId); -static void SpriteCB_TestBallThrow(struct Sprite *sprite); -static void SpriteCB_BallThrow_ReachMon(struct Sprite *sprite); -static void SpriteCB_BallThrow_StartShrinkMon(struct Sprite *sprite); -static void SpriteCB_BallThrow_ShrinkMon(struct Sprite *sprite); -static void SpriteCB_BallThrow_Close(struct Sprite *sprite); -static void SpriteCB_BallThrow_FallToGround(struct Sprite *sprite); -static void SpriteCB_BallThrow_StartShakes(struct Sprite *sprite); -static void SpriteCB_BallThrow_Shake(struct Sprite *sprite); -static void Task_PlayCryWhenReleasedFromBall(u8 taskId); -static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite); -static void SpriteCB_BallThrow_StartCaptureMon(struct Sprite *sprite); -static void HandleBallAnimEnd(struct Sprite *sprite); -static void SpriteCB_BallThrow_CaptureMon(struct Sprite *sprite); -static void SpriteCB_PlayerMonSendOut_1(struct Sprite *sprite); -static void SpriteCB_PlayerMonSendOut_2(struct Sprite *sprite); -static void SpriteCB_ReleaseMon2FromBall(struct Sprite *sprite); -static void SpriteCB_OpponentMonSendOut(struct Sprite *sprite); -static u8 LaunchBallStarsTaskForPokeball(u8 x, u8 y, u8 kindOfStars, u8 d); -static u8 LaunchBallFadeMonTaskForPokeball(bool8 unFadeLater, u8 battlerId, u32 arg2); -static void SpriteCB_PokeballReleaseMon(struct Sprite *sprite); -static void SpriteCB_ReleasedMonFlyOut(struct Sprite *sprite); -static void SpriteCB_TradePokeball(struct Sprite *sprite); -static void SpriteCB_TradePokeballSendOff(struct Sprite *sprite); -static void SpriteCB_TradePokeballEnd(struct Sprite *sprite); -static void SpriteCB_HealthboxSlideInDelayed(struct Sprite *sprite); -static void SpriteCB_HealthboxSlideIn(struct Sprite *sprite); -static void SpriteCB_HitAnimHealthoxEffect(struct Sprite *sprite); -static u16 GetBattlerPokeballItemId(u8 battlerId); - -// Data const struct CompressedSpriteSheet gBallSpriteSheets[POKEBALL_COUNT] = { - {gInterfaceGfx_PokeBall, 384, GFX_TAG_POKE_BALL}, - {gInterfaceGfx_GreatBall, 384, GFX_TAG_GREAT_BALL}, - {gInterfaceGfx_SafariBall, 384, GFX_TAG_SAFARI_BALL}, - {gInterfaceGfx_UltraBall, 384, GFX_TAG_ULTRA_BALL}, - {gInterfaceGfx_MasterBall, 384, GFX_TAG_MASTER_BALL}, - {gInterfaceGfx_NetBall, 384, GFX_TAG_NET_BALL}, - {gInterfaceGfx_DiveBall, 384, GFX_TAG_DIVE_BALL}, - {gInterfaceGfx_NestBall, 384, GFX_TAG_NEST_BALL}, - {gInterfaceGfx_RepeatBall, 384, GFX_TAG_REPEAT_BALL}, - {gInterfaceGfx_TimerBall, 384, GFX_TAG_TIMER_BALL}, - {gInterfaceGfx_LuxuryBall, 384, GFX_TAG_LUXURY_BALL}, - {gInterfaceGfx_PremierBall, 384, GFX_TAG_PREMIER_BALL}, + [BALL_POKE] = {gBallGfx_Poke, 384, GFX_TAG_POKE_BALL}, + [BALL_GREAT] = {gBallGfx_Great, 384, GFX_TAG_GREAT_BALL}, + [BALL_SAFARI] = {gBallGfx_Safari, 384, GFX_TAG_SAFARI_BALL}, + [BALL_ULTRA] = {gBallGfx_Ultra, 384, GFX_TAG_ULTRA_BALL}, + [BALL_MASTER] = {gBallGfx_Master, 384, GFX_TAG_MASTER_BALL}, + [BALL_NET] = {gBallGfx_Net, 384, GFX_TAG_NET_BALL}, + [BALL_DIVE] = {gBallGfx_Dive, 384, GFX_TAG_DIVE_BALL}, + [BALL_NEST] = {gBallGfx_Nest, 384, GFX_TAG_NEST_BALL}, + [BALL_REPEAT] = {gBallGfx_Repeat, 384, GFX_TAG_REPEAT_BALL}, + [BALL_TIMER] = {gBallGfx_Timer, 384, GFX_TAG_TIMER_BALL}, + [BALL_LUXURY] = {gBallGfx_Luxury, 384, GFX_TAG_LUXURY_BALL}, + [BALL_PREMIER] = {gBallGfx_Premier, 384, GFX_TAG_PREMIER_BALL}, }; const struct CompressedSpritePalette gBallSpritePalettes[POKEBALL_COUNT] = { - {gInterfacePal_PokeBall, GFX_TAG_POKE_BALL}, - {gInterfacePal_GreatBall, GFX_TAG_GREAT_BALL}, - {gInterfacePal_SafariBall, GFX_TAG_SAFARI_BALL}, - {gInterfacePal_UltraBall, GFX_TAG_ULTRA_BALL}, - {gInterfacePal_MasterBall, GFX_TAG_MASTER_BALL}, - {gInterfacePal_NetBall, GFX_TAG_NET_BALL}, - {gInterfacePal_DiveBall, GFX_TAG_DIVE_BALL}, - {gInterfacePal_NestBall, GFX_TAG_NEST_BALL}, - {gInterfacePal_RepeatBall, GFX_TAG_REPEAT_BALL}, - {gInterfacePal_TimerBall, GFX_TAG_TIMER_BALL}, - {gInterfacePal_LuxuryBall, GFX_TAG_LUXURY_BALL}, - {gInterfacePal_PremierBall, GFX_TAG_PREMIER_BALL}, + [BALL_POKE] = {gBallPal_Poke, GFX_TAG_POKE_BALL}, + [BALL_GREAT] = {gBallPal_Great, GFX_TAG_GREAT_BALL}, + [BALL_SAFARI] = {gBallPal_Safari, GFX_TAG_SAFARI_BALL}, + [BALL_ULTRA] = {gBallPal_Ultra, GFX_TAG_ULTRA_BALL}, + [BALL_MASTER] = {gBallPal_Master, GFX_TAG_MASTER_BALL}, + [BALL_NET] = {gBallPal_Net, GFX_TAG_NET_BALL}, + [BALL_DIVE] = {gBallPal_Dive, GFX_TAG_DIVE_BALL}, + [BALL_NEST] = {gBallPal_Nest, GFX_TAG_NEST_BALL}, + [BALL_REPEAT] = {gBallPal_Repeat, GFX_TAG_REPEAT_BALL}, + [BALL_TIMER] = {gBallPal_Timer, GFX_TAG_TIMER_BALL}, + [BALL_LUXURY] = {gBallPal_Luxury, GFX_TAG_LUXURY_BALL}, + [BALL_PREMIER] = {gBallPal_Premier, GFX_TAG_PREMIER_BALL}, }; static const struct OamData sBallOamData = @@ -171,171 +160,192 @@ static const union AnimCmd *const sBallAnimSequences[] = sBallAnimSeq6, }; -static const union AffineAnimCmd sBallAffineAnimSeq0[] = +static const union AffineAnimCmd sAffineAnim_BallRotate_0[] = { AFFINEANIMCMD_FRAME(0, 0, 0, 1), AFFINEANIMCMD_JUMP(0), }; -static const union AffineAnimCmd sBallAffineAnimSeq1[] = +static const union AffineAnimCmd sAffineAnim_BallRotate_Right[] = { AFFINEANIMCMD_FRAME(0, 0, -3, 1), AFFINEANIMCMD_JUMP(0), }; -static const union AffineAnimCmd sBallAffineAnimSeq2[] = +static const union AffineAnimCmd sAffineAnim_BallRotate_Left[] = { AFFINEANIMCMD_FRAME(0, 0, 3, 1), AFFINEANIMCMD_JUMP(0), }; -static const union AffineAnimCmd sBallAffineAnimSeq3[] = +static const union AffineAnimCmd sAffineAnim_BallRotate_3[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd sBallAffineAnimSeq4[] = +static const union AffineAnimCmd sAffineAnim_BallRotate_4[] = { AFFINEANIMCMD_FRAME(0, 0, 25, 1), AFFINEANIMCMD_JUMP(0), }; -static const union AffineAnimCmd *const sBallAffineAnimSequences[] = +static const union AffineAnimCmd *const sAffineAnim_BallRotate[] = { - sBallAffineAnimSeq0, - sBallAffineAnimSeq1, - sBallAffineAnimSeq2, - sBallAffineAnimSeq3, - sBallAffineAnimSeq4, + [BALL_AFFINE_ANIM_0] = sAffineAnim_BallRotate_0, + [BALL_ROTATE_RIGHT] = sAffineAnim_BallRotate_Right, + [BALL_ROTATE_LEFT] = sAffineAnim_BallRotate_Left, + [BALL_AFFINE_ANIM_3] = sAffineAnim_BallRotate_3, + [BALL_AFFINE_ANIM_4] = sAffineAnim_BallRotate_4, }; const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] = { + [BALL_POKE] = { .tileTag = GFX_TAG_POKE_BALL, .paletteTag = GFX_TAG_POKE_BALL, .oam = &sBallOamData, .anims = sBallAnimSequences, .images = NULL, - .affineAnims = sBallAffineAnimSequences, - .callback = SpriteCB_TestBallThrow, + .affineAnims = sAffineAnim_BallRotate, + .callback = SpriteCB_BallThrow, }, + [BALL_GREAT] = { .tileTag = GFX_TAG_GREAT_BALL, .paletteTag = GFX_TAG_GREAT_BALL, .oam = &sBallOamData, .anims = sBallAnimSequences, .images = NULL, - .affineAnims = sBallAffineAnimSequences, - .callback = SpriteCB_TestBallThrow, + .affineAnims = sAffineAnim_BallRotate, + .callback = SpriteCB_BallThrow, }, + [BALL_SAFARI] = { .tileTag = GFX_TAG_SAFARI_BALL, .paletteTag = GFX_TAG_SAFARI_BALL, .oam = &sBallOamData, .anims = sBallAnimSequences, .images = NULL, - .affineAnims = sBallAffineAnimSequences, - .callback = SpriteCB_TestBallThrow, + .affineAnims = sAffineAnim_BallRotate, + .callback = SpriteCB_BallThrow, }, + [BALL_ULTRA] = { .tileTag = GFX_TAG_ULTRA_BALL, .paletteTag = GFX_TAG_ULTRA_BALL, .oam = &sBallOamData, .anims = sBallAnimSequences, .images = NULL, - .affineAnims = sBallAffineAnimSequences, - .callback = SpriteCB_TestBallThrow, + .affineAnims = sAffineAnim_BallRotate, + .callback = SpriteCB_BallThrow, }, + [BALL_MASTER] = { .tileTag = GFX_TAG_MASTER_BALL, .paletteTag = GFX_TAG_MASTER_BALL, .oam = &sBallOamData, .anims = sBallAnimSequences, .images = NULL, - .affineAnims = sBallAffineAnimSequences, - .callback = SpriteCB_TestBallThrow, + .affineAnims = sAffineAnim_BallRotate, + .callback = SpriteCB_BallThrow, }, + [BALL_NET] = { .tileTag = GFX_TAG_NET_BALL, .paletteTag = GFX_TAG_NET_BALL, .oam = &sBallOamData, .anims = sBallAnimSequences, .images = NULL, - .affineAnims = sBallAffineAnimSequences, - .callback = SpriteCB_TestBallThrow, + .affineAnims = sAffineAnim_BallRotate, + .callback = SpriteCB_BallThrow, }, + [BALL_DIVE] = { .tileTag = GFX_TAG_DIVE_BALL, .paletteTag = GFX_TAG_DIVE_BALL, .oam = &sBallOamData, .anims = sBallAnimSequences, .images = NULL, - .affineAnims = sBallAffineAnimSequences, - .callback = SpriteCB_TestBallThrow, + .affineAnims = sAffineAnim_BallRotate, + .callback = SpriteCB_BallThrow, }, + [BALL_NEST] = { .tileTag = GFX_TAG_NEST_BALL, .paletteTag = GFX_TAG_NEST_BALL, .oam = &sBallOamData, .anims = sBallAnimSequences, .images = NULL, - .affineAnims = sBallAffineAnimSequences, - .callback = SpriteCB_TestBallThrow, + .affineAnims = sAffineAnim_BallRotate, + .callback = SpriteCB_BallThrow, }, + [BALL_REPEAT] = { .tileTag = GFX_TAG_REPEAT_BALL, .paletteTag = GFX_TAG_REPEAT_BALL, .oam = &sBallOamData, .anims = sBallAnimSequences, .images = NULL, - .affineAnims = sBallAffineAnimSequences, - .callback = SpriteCB_TestBallThrow, + .affineAnims = sAffineAnim_BallRotate, + .callback = SpriteCB_BallThrow, }, + [BALL_TIMER] = { .tileTag = GFX_TAG_TIMER_BALL, .paletteTag = GFX_TAG_TIMER_BALL, .oam = &sBallOamData, .anims = sBallAnimSequences, .images = NULL, - .affineAnims = sBallAffineAnimSequences, - .callback = SpriteCB_TestBallThrow, + .affineAnims = sAffineAnim_BallRotate, + .callback = SpriteCB_BallThrow, }, + [BALL_LUXURY] = { .tileTag = GFX_TAG_LUXURY_BALL, .paletteTag = GFX_TAG_LUXURY_BALL, .oam = &sBallOamData, .anims = sBallAnimSequences, .images = NULL, - .affineAnims = sBallAffineAnimSequences, - .callback = SpriteCB_TestBallThrow, + .affineAnims = sAffineAnim_BallRotate, + .callback = SpriteCB_BallThrow, }, + [BALL_PREMIER] = { .tileTag = GFX_TAG_PREMIER_BALL, .paletteTag = GFX_TAG_PREMIER_BALL, .oam = &sBallOamData, .anims = sBallAnimSequences, .images = NULL, - .affineAnims = sBallAffineAnimSequences, - .callback = SpriteCB_TestBallThrow, + .affineAnims = sAffineAnim_BallRotate, + .callback = SpriteCB_BallThrow, }, }; -// Functions +#define tFrames data[0] +#define tPan data[1] +#define tThrowId data[2] +#define tBattler data[3] +#define tOpponentBattler data[4] + u8 DoPokeballSendOutAnimation(s16 pan, u8 kindOfThrow) { u8 taskId; - + gDoingBattleAnim = TRUE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive = TRUE; + taskId = CreateTask(Task_DoPokeballSendOutAnim, 5); gTasks[taskId].tPan = pan; gTasks[taskId].tThrowId = kindOfThrow; gTasks[taskId].tBattler = gActiveBattler; + return 0; } +#define sBattler data[6] + static void Task_DoPokeballSendOutAnim(u8 taskId) { u16 throwCaseId; @@ -362,12 +372,12 @@ static void Task_DoPokeballSendOutAnim(u8 taskId) ballId = ItemIdToBallId(itemId); LoadBallGfx(ballId); - + if (gBattleTypeFlags & BATTLE_TYPE_LINK) gender = gLinkPlayers[GetBattlerMultiplayerId(battlerId)].gender; else gender = gSaveBlock2Ptr->playerGender; - + ballSpriteId = CreateSprite(&gBallSpriteTemplates[ballId], 32, 80, 29); gSprites[ballSpriteId].data[0] = 0x80; gSprites[ballSpriteId].data[1] = 0; @@ -387,7 +397,7 @@ static void Task_DoPokeballSendOutAnim(u8 taskId) x = 48; y = 70; } - + gBattlerTarget = battlerId; gSprites[ballSpriteId].x = x; gSprites[ballSpriteId].y = y; @@ -425,7 +435,10 @@ static void Task_DoPokeballSendOutAnim(u8 taskId) PlaySE(SE_BALL_THROW); } -static void SpriteCB_TestBallThrow(struct Sprite *sprite) +// This sequence of functions is very similar to those that get run when +// a Pokéball gets thrown at a wild Pokémon, starting at SpriteCB_Ball_Arc. +// These do not seem to get run. +static void SpriteCB_BallThrow(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) { @@ -442,7 +455,7 @@ static void SpriteCB_TestBallThrow(struct Sprite *sprite) sprite->y2 = 0; sprite->data[5] = 0; ballId = ItemIdToBallId(GetBattlerPokeballItemId(opponentBattler)); - LaunchBallStarsTask(sprite->x, sprite->y - 5, 1, 0x1C, ballId); + AnimateBallOpenParticles(sprite->x, sprite->y - 5, 1, 28, ballId); sprite->data[0] = LaunchBallFadeMonTask(FALSE, opponentBattler, 14, ballId); sprite->sBattler = opponentBattler; sprite->data[7] = noOfShakes; @@ -468,7 +481,7 @@ static void SpriteCB_BallThrow_StartShrinkMon(struct Sprite *sprite) { sprite->data[5] = 0; sprite->callback = SpriteCB_BallThrow_ShrinkMon; - StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[sprite->sBattler]], 2); + StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[sprite->sBattler]], BATTLER_AFFINE_RETURN); AnimateSprite(&gSprites[gBattlerSpriteIds[sprite->sBattler]]); gSprites[gBattlerSpriteIds[sprite->sBattler]].data[1] = 0; } @@ -479,7 +492,7 @@ static void SpriteCB_BallThrow_ShrinkMon(struct Sprite *sprite) sprite->data[5]++; if (sprite->data[5] == 11) PlaySE(SE_BALL_TRADE); - + if (gSprites[gBattlerSpriteIds[sprite->sBattler]].affineAnimEnded) { StartSpriteAnim(sprite, 2); @@ -649,7 +662,7 @@ static void SpriteCB_BallThrow_Shake(struct Sprite *sprite) StartSpriteAffineAnim(sprite, 2); else StartSpriteAffineAnim(sprite, 1); - + PlaySE(SE_BALL); } break; @@ -666,10 +679,10 @@ static void SpriteCB_BallThrow_Shake(struct Sprite *sprite) static void Task_PlayCryWhenReleasedFromBall(u8 taskId) { - u8 state2 = gTasks[taskId].data[2]; + u8 wantedCry = gTasks[taskId].tCryTaskWantedCry; s8 pan = gTasks[taskId].tCryTaskPan; u16 species = gTasks[taskId].tCryTaskSpecies; - struct Pokemon *mon = (void *)(u32)((u32)(gTasks[taskId].tCryTaskMonPtr1 << 0x10) | ((u16)gTasks[taskId].tCryTaskMonPtr2)); + struct Pokemon *mon = (void *)(u32)((gTasks[taskId].tCryTaskMonPtr1 << 16) | (u16)(gTasks[taskId].tCryTaskMonPtr2)); switch (gTasks[taskId].tCryTaskState) { @@ -678,14 +691,15 @@ static void Task_PlayCryWhenReleasedFromBall(u8 taskId) if (gTasks[taskId].data[8] < 3) gTasks[taskId].data[8]++; else - gTasks[taskId].tCryTaskState = state2 + 1; + gTasks[taskId].tCryTaskState = wantedCry + 1; break; case 1: - if (ShouldPlayNormalPokeCry(mon) == TRUE) + // Play single cry + if (ShouldPlayNormalMonCry(mon) == TRUE) PlayCry_ByMode(species, pan, CRY_MODE_NORMAL); else PlayCry_ByMode(species, pan, CRY_MODE_WEAK); - + DestroyTask(taskId); break; case 2: @@ -696,10 +710,11 @@ static void Task_PlayCryWhenReleasedFromBall(u8 taskId) case 20: if (gTasks[taskId].tCryTaskFrames == 0) { - if (ShouldPlayNormalPokeCry(mon) == TRUE) - PlayCry_ReleaseDouble(species, pan, 1); + // Play first doubles cry + if (ShouldPlayNormalMonCry(mon) == TRUE) + PlayCry_ReleaseDouble(species, pan, CRY_MODE_DOUBLES); else - PlayCry_ReleaseDouble(species, pan, 12); + PlayCry_ReleaseDouble(species, pan, CRY_MODE_WEAK_DOUBLES); DestroyTask(taskId); } @@ -719,6 +734,7 @@ static void Task_PlayCryWhenReleasedFromBall(u8 taskId) break; } gTasks[taskId].tCryTaskState++; + // fall through case 31: if (!IsCryPlayingOrClearCrySongs()) { @@ -733,11 +749,11 @@ static void Task_PlayCryWhenReleasedFromBall(u8 taskId) gTasks[taskId].tCryTaskFrames--; break; } - - if (ShouldPlayNormalPokeCry(mon) == TRUE) - PlayCry_ReleaseDouble(species, pan, 0); + // Play second doubles cry + if (ShouldPlayNormalMonCry(mon) == TRUE) + PlayCry_ReleaseDouble(species, pan, CRY_MODE_NORMAL); else - PlayCry_ReleaseDouble(species, pan, 11); + PlayCry_ReleaseDouble(species, pan, CRY_MODE_WEAK); DestroyTask(taskId); break; @@ -751,8 +767,8 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite) StartSpriteAnim(sprite, 1); ballId = ItemIdToBallId(GetBattlerPokeballItemId(battlerId)); - LaunchBallStarsTask(sprite->x, sprite->y - 5, 1, 0x1C, ballId); - sprite->data[0] = LaunchBallFadeMonTask(1, sprite->sBattler, 14, ballId); + AnimateBallOpenParticles(sprite->x, sprite->y - 5, 1, 28, ballId); + sprite->data[0] = LaunchBallFadeMonTask(TRUE, sprite->sBattler, 14, ballId); sprite->callback = HandleBallAnimEnd; if (gMain.inBattle) @@ -776,7 +792,7 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite) species = GetMonData(mon, MON_DATA_SPECIES); if ((battlerId == GetBattlerAtPosition(B_POSITION_PLAYER_LEFT) || battlerId == GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)) - && IsDoubleBattle() && gBattleSpritesDataPtr->animationData->healthboxSlideInStarted) + && IsDoubleBattle() && gBattleSpritesDataPtr->animationData->introAnimActive) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { @@ -789,23 +805,23 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite) } } - if (!IsDoubleBattle() || !gBattleSpritesDataPtr->animationData->healthboxSlideInStarted) + if (!IsDoubleBattle() || !gBattleSpritesDataPtr->animationData->introAnimActive) wantedCryCase = 0; else if (battlerId == GetBattlerAtPosition(B_POSITION_PLAYER_LEFT) || battlerId == GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)) wantedCryCase = 1; else wantedCryCase = 2; - + taskId = CreateTask(Task_PlayCryWhenReleasedFromBall, 3); gTasks[taskId].tCryTaskSpecies = species; gTasks[taskId].tCryTaskPan = pan; gTasks[taskId].tCryTaskWantedCry = wantedCryCase; - gTasks[taskId].tCryTaskMonPtr1 = (u32)(mon) >> 0x10; + gTasks[taskId].tCryTaskMonPtr1 = (u32)(mon) >> 16; gTasks[taskId].tCryTaskMonPtr2 = (u32)(mon); gTasks[taskId].tCryTaskState = 0; } - StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[sprite->sBattler]], 1); + StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[sprite->sBattler]], BATTLER_AFFINE_EMERGE); AnimateSprite(&gSprites[gBattlerSpriteIds[sprite->sBattler]]); gSprites[gBattlerSpriteIds[sprite->sBattler]].data[1] = 0x1000; } @@ -837,7 +853,7 @@ static void HandleBallAnimEnd(struct Sprite *sprite) sprite->invisible = TRUE; if (gSprites[gBattlerSpriteIds[battlerId]].affineAnimEnded) { - StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[battlerId]], 0); + StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[battlerId]], BATTLER_AFFINE_NORMAL); affineAnimEnded = TRUE; } else @@ -857,7 +873,7 @@ static void HandleBallAnimEnd(struct Sprite *sprite) for (doneBattlers = 0, i = 0; i < MAX_BATTLERS_COUNT; i++) { - if (!gBattleSpritesDataPtr->healthBoxesData[i].ballAnimActive) + if (gBattleSpritesDataPtr->healthBoxesData[i].ballAnimActive == FALSE) doneBattlers++; } if (doneBattlers == MAX_BATTLERS_COUNT) @@ -896,8 +912,8 @@ static void SpriteCB_BallThrow_CaptureMon(struct Sprite *sprite) static void SpriteCB_PlayerMonSendOut_1(struct Sprite *sprite) { sprite->data[0] = 25; - sprite->data[2] = GetBattlerSpriteCoord(sprite->sBattler, 2); - sprite->data[4] = GetBattlerSpriteCoord(sprite->sBattler, 3) + 24; + sprite->data[2] = GetBattlerSpriteCoord(sprite->sBattler, BATTLER_COORD_X_2); + sprite->data[4] = GetBattlerSpriteCoord(sprite->sBattler, BATTLER_COORD_Y_PIC_OFFSET) + 24; sprite->data[5] = -30; sprite->oam.affineParam = sprite->sBattler; InitAnimArcTranslation(sprite); @@ -946,11 +962,12 @@ static void SpriteCB_PlayerMonSendOut_2(struct Sprite *sprite) { sprite->x += sprite->x2; sprite->y += sprite->y2; - sprite->x2 = sprite->y2 = 0; + sprite->y2 = 0; + sprite->x2 = 0; sprite->sBattler = sprite->oam.affineParam & 0xFF; sprite->data[0] = 0; - if (IsDoubleBattle() && gBattleSpritesDataPtr->animationData->healthboxSlideInStarted + if (IsDoubleBattle() && gBattleSpritesDataPtr->animationData->introAnimActive && sprite->sBattler == GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT)) sprite->callback = SpriteCB_ReleaseMon2FromBall; else @@ -976,7 +993,7 @@ static void SpriteCB_OpponentMonSendOut(struct Sprite *sprite) if (sprite->data[0] > 15) { sprite->data[0] = 0; - if (IsDoubleBattle() && gBattleSpritesDataPtr->animationData->healthboxSlideInStarted + if (IsDoubleBattle() && gBattleSpritesDataPtr->animationData->introAnimActive && sprite->sBattler == GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT)) sprite->callback = SpriteCB_ReleaseMon2FromBall; else @@ -986,121 +1003,144 @@ static void SpriteCB_OpponentMonSendOut(struct Sprite *sprite) #undef sBattler -static u8 LaunchBallStarsTaskForPokeball(u8 x, u8 y, u8 kindOfStars, u8 d) +static u8 AnimateBallOpenParticlesForPokeball(u8 x, u8 y, u8 kindOfStars, u8 subpriority) { - return LaunchBallStarsTask(x, y, kindOfStars, d, BALL_POKE); + return AnimateBallOpenParticles(x, y, kindOfStars, subpriority, BALL_POKE); } -static u8 LaunchBallFadeMonTaskForPokeball(bool8 unFadeLater, u8 battlerId, u32 arg2) +static u8 LaunchBallFadeMonTaskForPokeball(bool8 unFadeLater, u8 spritePalNum, u32 selectedPalettes) { - return LaunchBallFadeMonTask(unFadeLater, battlerId, arg2, BALL_POKE); + return LaunchBallFadeMonTask(unFadeLater, spritePalNum, selectedPalettes, BALL_POKE); } -void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 battlerId, u8 x, u8 y, u8 oamPriority, u8 subpriortiy, u8 g, u32 h) +// Sprite data for the pokeball +#define sMonSpriteId data[0] +#define sDelay data[1] +#define sMonPalNum data[2] +#define sFadePalsLo data[3] +#define sFadePalsHi data[4] +#define sFinalMonX data[5] +#define sFinalMonY data[6] +#define sTrigIdx data[7] + +// Pokeball in Oak intro, and when receiving via trade +void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 monPalNum, u8 x, u8 y, u8 oamPriority, u8 subpriortiy, u8 delay, u32 fadePalettes) { u8 spriteId; - LoadCompressedSpriteSheetUsingHeap(&gBallSpriteSheets[0]); - LoadCompressedSpritePaletteUsingHeap(&gBallSpritePalettes[0]); - spriteId = CreateSprite(&gBallSpriteTemplates[0], x, y, subpriortiy); - gSprites[spriteId].data[0] = monSpriteId; - gSprites[spriteId].data[5] = gSprites[monSpriteId].x; - gSprites[spriteId].data[6] = gSprites[monSpriteId].y; + LoadCompressedSpriteSheetUsingHeap(&gBallSpriteSheets[BALL_POKE]); + LoadCompressedSpritePaletteUsingHeap(&gBallSpritePalettes[BALL_POKE]); + spriteId = CreateSprite(&gBallSpriteTemplates[BALL_POKE], x, y, subpriortiy); + + gSprites[spriteId].sMonSpriteId = monSpriteId; + gSprites[spriteId].sFinalMonX = gSprites[monSpriteId].x; + gSprites[spriteId].sFinalMonY = gSprites[monSpriteId].y; + gSprites[monSpriteId].x = x; gSprites[monSpriteId].y = y; - gSprites[spriteId].data[1] = g; - gSprites[spriteId].data[2] = battlerId; - gSprites[spriteId].data[3] = h; - gSprites[spriteId].data[4] = h >> 0x10; + + gSprites[spriteId].sDelay = delay; + gSprites[spriteId].sMonPalNum = monPalNum; + gSprites[spriteId].sFadePalsLo = fadePalettes; + gSprites[spriteId].sFadePalsHi = fadePalettes >> 16; gSprites[spriteId].oam.priority = oamPriority; gSprites[spriteId].callback = SpriteCB_PokeballReleaseMon; + gSprites[monSpriteId].invisible = TRUE; } static void SpriteCB_PokeballReleaseMon(struct Sprite *sprite) { - if (sprite->data[1] == 0) + if (sprite->sDelay == 0) { - u8 r5; - u8 r7 = sprite->data[0]; - u8 battlerId = sprite->data[2]; - u32 r4 = (u16)sprite->data[3] | ((u16)sprite->data[4] << 16); + u8 subpriority; + u8 spriteId = sprite->sMonSpriteId; + u8 monPalNum = sprite->sMonPalNum; + u32 selectedPalettes = (u16)sprite->sFadePalsLo | ((u16)sprite->sFadePalsHi << 16); if (sprite->subpriority != 0) - r5 = sprite->subpriority - 1; + subpriority = sprite->subpriority - 1; else - r5 = 0; + subpriority = 0; StartSpriteAnim(sprite, 1); - LaunchBallStarsTaskForPokeball(sprite->x, sprite->y - 5, sprite->oam.priority, r5); - sprite->data[1] = LaunchBallFadeMonTaskForPokeball(1, battlerId, r4); + AnimateBallOpenParticlesForPokeball(sprite->x, sprite->y - 5, sprite->oam.priority, subpriority); + // sDelay re-used to store task id but never read + sprite->sDelay = LaunchBallFadeMonTaskForPokeball(TRUE, monPalNum, selectedPalettes); sprite->callback = SpriteCB_ReleasedMonFlyOut; - gSprites[r7].invisible = FALSE; - StartSpriteAffineAnim(&gSprites[r7], 1); - AnimateSprite(&gSprites[r7]); - gSprites[r7].data[1] = 0x1000; - sprite->data[7] = 0; + gSprites[spriteId].invisible = FALSE; + StartSpriteAffineAnim(&gSprites[spriteId], BATTLER_AFFINE_EMERGE); + AnimateSprite(&gSprites[spriteId]); + gSprites[spriteId].data[1] = 0x1000; + sprite->sTrigIdx = 0; } else { - sprite->data[1]--; + sprite->sDelay--; } } static void SpriteCB_ReleasedMonFlyOut(struct Sprite *sprite) { - bool8 r12 = FALSE; - bool8 r6 = FALSE; - u8 monSpriteId = sprite->data[0]; - u16 var1; - u16 var2; + bool8 emergeAnimFinished = FALSE; + bool8 atFinalPosition = FALSE; + u8 monSpriteId = sprite->sMonSpriteId; + u16 x, y; if (sprite->animEnded) sprite->invisible = TRUE; - + if (gSprites[monSpriteId].affineAnimEnded) { - StartSpriteAffineAnim(&gSprites[monSpriteId], 0); - r12 = TRUE; + StartSpriteAffineAnim(&gSprites[monSpriteId], BATTLER_AFFINE_NORMAL); + emergeAnimFinished = TRUE; } - - var1 = (sprite->data[5] - sprite->x) * sprite->data[7] / 128 + sprite->x; - var2 = (sprite->data[6] - sprite->y) * sprite->data[7] / 128 + sprite->y; - gSprites[monSpriteId].x = var1; - gSprites[monSpriteId].y = var2; - if (sprite->data[7] < 128) - { - s16 sine = -(gSineTable[(u8)sprite->data[7]] / 8); - sprite->data[7] += 4; + x = (sprite->sFinalMonX - sprite->x) * sprite->sTrigIdx / 128 + sprite->x; + y = (sprite->sFinalMonY - sprite->y) * sprite->sTrigIdx / 128 + sprite->y; + gSprites[monSpriteId].x = x; + gSprites[monSpriteId].y = y; + + if (sprite->sTrigIdx < 128) + { + s16 sine = -(gSineTable[(u8)sprite->sTrigIdx] / 8); + + sprite->sTrigIdx += 4; gSprites[monSpriteId].x2 = sine; gSprites[monSpriteId].y2 = sine; } else { - gSprites[monSpriteId].x = sprite->data[5]; - gSprites[monSpriteId].y = sprite->data[6]; + gSprites[monSpriteId].x = sprite->sFinalMonX; + gSprites[monSpriteId].y = sprite->sFinalMonY; gSprites[monSpriteId].x2 = 0; gSprites[monSpriteId].y2 = 0; - r6 = TRUE; + atFinalPosition = TRUE; } - - if (sprite->animEnded && r12 && r6) + if (sprite->animEnded && emergeAnimFinished && atFinalPosition) + { DestroySpriteAndFreeResources(sprite); + } } -u8 CreateTradePokeballSprite(u8 a, u8 b, u8 x, u8 y, u8 oamPriority, u8 subPriority, u8 g, u32 h) +#undef sFinalMonX +#undef sFinalMonY +#undef sTrigIdx + +#define sTimer data[5] + +u8 CreateTradePokeballSprite(u8 monSpriteId, u8 monPalNum, u8 x, u8 y, u8 oamPriority, u8 subPriority, u8 delay, u32 fadePalettes) { u8 spriteId; - LoadCompressedSpriteSheetUsingHeap(&gBallSpriteSheets[0]); - LoadCompressedSpritePaletteUsingHeap(&gBallSpritePalettes[0]); - spriteId = CreateSprite(&gBallSpriteTemplates[0], x, y, subPriority); - gSprites[spriteId].data[0] = a; - gSprites[spriteId].data[1] = g; - gSprites[spriteId].data[2] = b; - gSprites[spriteId].data[3] = h; - gSprites[spriteId].data[4] = h >> 16; + LoadCompressedSpriteSheetUsingHeap(&gBallSpriteSheets[BALL_POKE]); + LoadCompressedSpritePaletteUsingHeap(&gBallSpritePalettes[BALL_POKE]); + spriteId = CreateSprite(&gBallSpriteTemplates[BALL_POKE], x, y, subPriority); + gSprites[spriteId].sMonSpriteId = monSpriteId; + gSprites[spriteId].sDelay = delay; + gSprites[spriteId].sMonPalNum = monPalNum; + gSprites[spriteId].sFadePalsLo = fadePalettes; + gSprites[spriteId].sFadePalsHi = fadePalettes >> 16; gSprites[spriteId].oam.priority = oamPriority; gSprites[spriteId].callback = SpriteCB_TradePokeball; return spriteId; @@ -1108,29 +1148,35 @@ u8 CreateTradePokeballSprite(u8 a, u8 b, u8 x, u8 y, u8 oamPriority, u8 subPrior static void SpriteCB_TradePokeball(struct Sprite *sprite) { - if (sprite->data[1] == 0) + if (sprite->sDelay == 0) { - u8 r6; - u8 r7 = sprite->data[0]; - u8 r8 = sprite->data[2]; - u32 r5 = (u16)sprite->data[3] | ((u16)sprite->data[4] << 16); + u8 subpriority; + u8 monSpriteId = sprite->sMonSpriteId; + u8 monPalNum = sprite->sMonPalNum; + u32 selectedPalettes = (u16)sprite->sFadePalsLo | ((u16)sprite->sFadePalsHi << 16); if (sprite->subpriority != 0) - r6 = sprite->subpriority - 1; + subpriority = sprite->subpriority - 1; else - r6 = 0; + subpriority = 0; StartSpriteAnim(sprite, 1); - LaunchBallStarsTaskForPokeball(sprite->x, sprite->y - 5, sprite->oam.priority, r6); - sprite->data[1] = LaunchBallFadeMonTaskForPokeball(1, r8, r5); + AnimateBallOpenParticlesForPokeball(sprite->x, sprite->y - 5, sprite->oam.priority, subpriority); + // sDelay re-used to store task id but never read + sprite->sDelay = LaunchBallFadeMonTaskForPokeball(TRUE, monPalNum, selectedPalettes); sprite->callback = SpriteCB_TradePokeballSendOff; - StartSpriteAffineAnim(&gSprites[r7], 2); - AnimateSprite(&gSprites[r7]); - gSprites[r7].data[1] = 0; +#ifdef BUGFIX + // FIX: If this is used on a sprite that has previously had an affine animation, it will not + // play the shrink anim properly due to being paused. + gSprites[monSpriteId].affineAnimPaused = FALSE; +#endif // BUGFIX + StartSpriteAffineAnim(&gSprites[monSpriteId], BATTLER_AFFINE_RETURN); + AnimateSprite(&gSprites[monSpriteId]); + gSprites[monSpriteId].data[1] = 0; } else { - sprite->data[1]--; + sprite->sDelay--; } } @@ -1138,16 +1184,16 @@ static void SpriteCB_TradePokeballSendOff(struct Sprite *sprite) { u8 monSpriteId; - sprite->data[5]++; - if (sprite->data[5] == 11) + sprite->sTimer++; + if (sprite->sTimer == 11) PlaySE(SE_BALL_TRADE); - - monSpriteId = sprite->data[0]; + + monSpriteId = sprite->sMonSpriteId; if (gSprites[monSpriteId].affineAnimEnded) { StartSpriteAnim(sprite, 2); gSprites[monSpriteId].invisible = TRUE; - sprite->data[5] = 0; + sprite->sTimer = 0; sprite->callback = SpriteCB_TradePokeballEnd; } else @@ -1163,28 +1209,40 @@ static void SpriteCB_TradePokeballEnd(struct Sprite *sprite) sprite->callback = SpriteCallbackDummy; } -void DestroySpriteAndFreeResources2(struct Sprite *sprite) +#undef sMonSpriteId +#undef sDelay +#undef sMonPalNum +#undef sFadePalsLo +#undef sFadePalsHi +#undef sTimer + +// Unreferenced in RSE, but used here, possibly by mistake. +void DestroySpriteAndFreeResources_Ball(struct Sprite *sprite) { DestroySpriteAndFreeResources(sprite); } +#define sSpeedX data[0] +#define sSpeedY data[1] + +#define sDelayTimer data[1] + void StartHealthboxSlideIn(u8 battlerId) { struct Sprite *healthboxSprite = &gSprites[gHealthboxSpriteIds[battlerId]]; - healthboxSprite->data[0] = 5; - healthboxSprite->data[1] = 0; + healthboxSprite->sSpeedX = 5; + healthboxSprite->sSpeedY = 0; healthboxSprite->x2 = 0x73; healthboxSprite->y2 = 0; healthboxSprite->callback = SpriteCB_HealthboxSlideIn; if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) { - healthboxSprite->data[0] = -healthboxSprite->data[0]; - healthboxSprite->data[1] = -healthboxSprite->data[1]; + healthboxSprite->sSpeedX = -healthboxSprite->sSpeedX; + healthboxSprite->sSpeedY = -healthboxSprite->sSpeedY; healthboxSprite->x2 = -healthboxSprite->x2; healthboxSprite->y2 = -healthboxSprite->y2; } - gSprites[healthboxSprite->data[5]].callback(&gSprites[healthboxSprite->data[5]]); if (GetBattlerPosition(battlerId) == B_POSITION_PLAYER_RIGHT) healthboxSprite->callback = SpriteCB_HealthboxSlideInDelayed; @@ -1192,22 +1250,26 @@ void StartHealthboxSlideIn(u8 battlerId) static void SpriteCB_HealthboxSlideInDelayed(struct Sprite *sprite) { - sprite->data[1]++; - if (sprite->data[1] == 20) + sprite->sDelayTimer++; + if (sprite->sDelayTimer == 20) { - sprite->data[1] = 0; + sprite->sDelayTimer = 0; sprite->callback = SpriteCB_HealthboxSlideIn; } } static void SpriteCB_HealthboxSlideIn(struct Sprite *sprite) { - sprite->x2 -= sprite->data[0]; - sprite->y2 -= sprite->data[1]; + sprite->x2 -= sprite->sSpeedX; + sprite->y2 -= sprite->sSpeedY; if (sprite->x2 == 0 && sprite->y2 == 0) sprite->callback = SpriteCallbackDummy; } +#undef sSpeedX +#undef sSpeedY +#undef sDelayTimer + void DoHitAnimHealthboxEffect(u8 battlerId) { u8 spriteId; @@ -1242,7 +1304,7 @@ void LoadBallGfx(u8 ballId) LoadCompressedSpriteSheetUsingHeap(&gBallSpriteSheets[ballId]); LoadCompressedSpritePaletteUsingHeap(&gBallSpritePalettes[ballId]); } - + switch (ballId) { case BALL_DIVE: @@ -1251,7 +1313,7 @@ void LoadBallGfx(u8 ballId) break; default: var = GetSpriteTileStartByTag(gBallSpriteSheets[ballId].tag); - LZDecompressVram(gOpenPokeballGfx, (void *)(VRAM + 0x10100 + var * 32)); + LZDecompressVram(gOpenPokeballGfx, (void *)(OBJ_VRAM0 + 0x100 + var * 32)); break; } } diff --git a/src/pokemon.c b/src/pokemon.c index fcfd678f4..e2bfb20cf 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -1667,7 +1667,7 @@ static const struct OamData sOakSpeechNidoranFDummyOamData = .y = 0, .affineMode = 0, .objMode = 0, - .mosaic = 0, + .mosaic = FALSE, .bpp = 0, .shape = 0, .x = 0, diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c index 1287bbab5..b345de9bf 100644 --- a/src/pokemon_jump.c +++ b/src/pokemon_jump.c @@ -3859,7 +3859,7 @@ static const struct OamData sOamData_JumpMon = .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = 0, + .mosaic = FALSE, .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(64x64), .x = 0, @@ -3876,7 +3876,7 @@ static const struct OamData sOamData_Vine16x32 = .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = 0, + .mosaic = FALSE, .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(16x32), .x = 0, @@ -3893,7 +3893,7 @@ static const struct OamData sOamData_Vine32x32 = .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = 0, + .mosaic = FALSE, .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(32x32), .x = 0, @@ -3910,7 +3910,7 @@ static const struct OamData sOamData_Vine32x16 = .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = 0, + .mosaic = FALSE, .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(32x16), .x = 0, @@ -4064,7 +4064,7 @@ static const struct OamData sOamData_Star = .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = 0, + .mosaic = FALSE, .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(16x16), .x = 0, diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 61dffc7c4..da4df9eff 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -4133,7 +4133,8 @@ static void ShowOrHideBallIconObj(u8 invisible) static void DestroyBallIconObj(void) { - DestroySpriteAndFreeResources2(&gSprites[sMonSummaryScreen->ballIconSpriteId]); + // Redundant, as DestroySpriteAndFreeResources could've been used. + DestroySpriteAndFreeResources_Ball(&gSprites[sMonSummaryScreen->ballIconSpriteId]); } static void PokeSum_CreateMonIconSprite(void) @@ -5181,7 +5182,7 @@ static void PokeSum_TryPlayMonCry(void) { if (!GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_IS_EGG)) { - if (ShouldPlayNormalPokeCry(&sMonSummaryScreen->currentMon) == TRUE) + if (ShouldPlayNormalMonCry(&sMonSummaryScreen->currentMon) == TRUE) PlayCry_ByMode(GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES2), 0, CRY_MODE_NORMAL); else PlayCry_ByMode(GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES2), 0, CRY_MODE_WEAK); diff --git a/src/trainer_see.c b/src/trainer_see.c index d1c97e9af..e884d6104 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -566,7 +566,7 @@ static const struct OamData sOamData_Emoticons = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = 0, + .mosaic = FALSE, .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(16x16), .x = 0,