I don't think there's any sort of "IsRenderingWithID" function... But what exactly are you trying to do? Don't forget that the modifyscene00EX you used above resets the pause time to keep the animation going. Also the ModifyScene functions don't do anything if that scene isn't rendering.
So, you can always call modifyscene without worry, it's just a matter of whether or not to call DisplayScene. Do you want these bumper hits to interrupt every other animation? Maybe you could implement some sort of priority system and make the bumper hits a special number. In my AMH table, I have a priority system with 255 possibilities (although, that's only because that's what the original code used). If a scene is called with a lower priority, it won't interrupt or get queued; if you start an animation with the same or higher priority, it stops the current animation and plays that one instead. So let's say you advance a mode and the animation for that starts, and while that animation is going you roll over an ORB; you'll never see the ORB animation since it's got a lower priority.
Then, you could make the bumper animations have a specific priority number that isn't used anywhere else. That way, you could have an if statement check to see if the current priority is the number that indicates it's a bumper animation. So you'd have something like this:
Sub bumper1_hit()
video "BumperAnimation.gif", "", BumperModeCount, 500, 163
End Sub
Sub LeftSling_SlingShot()
video "SlingAnimation.gif", "", "", 200, 100
End Sub
Sub LeftOrbitTarget_Hit()
video "ModeAdvance" & ModeProgress & ".gif", "", "" , 1000, 255
End If
Dim OldVidPrio
OldVidPrio = 0
Sub Video(whichAnim, topText, bottomText, pauseTime, priority)
if OldVidPrio = 163 AND priority = 163 Then
UltraDMD.ModifyScene00Ex 1, "", " " & BumperModeCount, pauseTime
ElseIf priority >= OldVidPrio then
UltraDMD.CancelRendering
UltraDMD.DisplayScene00 whichAnim, topText, 14, bottomText, 14, UltraDMD_Animation_None, pauseTime, UltraDMD_Animation_None
End If
OldVidPrio = priority
End Sub
Then of course when you pull up your score board, or whatever you do when your animation pause time is over, you'll reset the priority. You could make the 163 any number, so if you wanted the bumper animation to always interrupt, then you could make it 300 or something. So, if the previous animation is 300 (which is still running since OldVidPrio is still 300, not 0) and the current animation is 300, then it modifies the bumper animation; but if the previous animation was not 300, then the bumper animation will cancel the current animation (since nothing is higher than 300) and start the bumper animation.
Edited by Shoopity, 27 August 2015 - 04:37 AM.