Applies to:DM Language
Status: Open

Issue hasn't been assigned a status value.
Currently calling animate with no Object argument adds an animation frame to the last animate call. However, an object can have multiple parallel animations running at the same time and being able to manipulate them separately would be very helpful. My proposal is to give animation IDs for this purpose.

animate(Object, ..., id="foo") would create a new animation with the id foo
(Alternative approach: animat(Object, ...) returns a unique animation id generated by BYOND.)

Then animate(..., id="foo") would add an animation frame to the animation with id foo. But, this creates a bit of an issue as it is now less clear which object we are working with. It might be better to be able to pass an object to the "continuation" animate call afterall but then distinguishes the start and the continuation calls might need some additional considerations. Perhaps argument name could be the deciding factor - i.e. animate(..., id="foo", ContinueObject=Obj) or something similar.

Though honestly I'm including the previous point mostly for consistency of the feature request. What I'm really looking for is:
animate(Object, id="foo") which would stop just the animation with id foo and leave the rest running if there are multiple parallel animations on Object.

If only the cancellation part is feasible I'll be more than happy. And if this ID based approach doesn't work for some reason maybe some other thing that would let us cancel just select animations could be considered instead. Thanks.