ID:2648900
 
Resolved
An atom that was animating a color matrix could sometimes have incorrect interpolation between colors when other parts of its appearance (like dir) changed after the call to animate().
BYOND Version:513
Operating System:Windows 10 Home 64-bit
Web Browser:Firefox 84.0
Applies to:Dream Seeker
Status: Resolved (513.1541)

This issue has been resolved.
Descriptive Problem Summary:
When you use animate() to animate an atom's color to a color matrix and then the atom moves it tends to skip to the end state of the color animation (other animations included in the animate() call are unaffected). Strangely enough this doesn't happen always but only for 3 of the 4 cardinal directions. Moving in the 4th direction tends to make the animation continue as usual. Which direction this is seems to be random.

Numbered Steps to Reproduce Problem:
1.) animate an atom's color to a color matrix
2.) move the atom before the animation finishes
3.) observe that the animation jumped to the end state

Code Snippet (if applicable) to Reproduce Problem:
/mob/verb/animate_white()
animate(src, color=list(1,0,0, 0,1,0, 0,0,1, 1,1,1), time=100)


Expected Results:
The animation doesn't get interrupted and continues smoothly no matter how you move.

Actual Results:
In the snippet above you get turned pure white as soon as you move.

Does the problem occur:
Every time? Or how often?Based on direction as outlined above.
In other games?N/A
In other user accounts?Yes
On other computers?Yes

When does the problem NOT occur?
When animating other attributes than color. When animating color to a fixed color and not a color matrix.

Did the problem NOT occur in any earlier versions? If so, what was the last version that worked? (Visit http://www.byond.com/download/build to download old versions for testing.)
Not sure.

Workarounds:
Probably animate a filter instead, idk.
Can you build this into a test case so I can make sure we're on the same page?
Sure, this should work: https://www.dropbox.com/s/nmwv4q8ao87al21/test-env.zip?dl=0
Just use the verb and move to reproduce the bug. Use the verb and don't move to see the animation happen correctly.
Lummox JR resolved issue with message:
An atom that was animating a color matrix could sometimes have incorrect interpolation between colors when other parts of its appearance (like dir) changed after the call to animate().