ID:2209334
 
Resolved
Animations improperly reset (temporarily) the timestamp for when an atom last had an icon or icon_state change, causing loop-once icons to play again. Now this reset will only happen if the animate() call updates the icon or icon_state.
BYOND Version:511.1370
Operating System:Windows 7 Pro 64-bit
Web Browser:Chrome 55.0.2883.87
Applies to:DM Language
Status: Resolved (511.1373)

This issue has been resolved.
Descriptive Problem Summary:

animate() causes non-repeat icon_state animations to replay.

Numbered Steps to Reproduce Problem:
1. Create an icon with some animation set to only play 1 time(s).
2. Set an object's icon to the icon created in step 1.
3. Set the object's icon_state to the non-repeat icon_state. The animation plays once as expected.
4. Call animate() on the object with a time value greater than 0. What the proc does is irrelevant.
5. Observe the object.

Code Snippet (if applicable) to Reproduce Problem:

Here is a test project. Run the environment, use the "test" verb, and observe.

Expected Results:

For animate() to do the specified actions without replaying animations that normally only play once.

Actual Results:

animate() causes animations that normally only play once to play again when triggered.

Does the problem occur:
Every time? Or how often? Every time
In other games? Yes
In other user accounts? N/A
On other computers? N/A

When does the problem NOT occur? N/A

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.)

N/A

Workarounds:

N/A
Although this seems simple enough to set up, a test project would be a huge help.
I included it (third item), but here.
Oh, sheesh. My eye skipped right past the link. Sorry about that. I'll run tests on this and see what I find.
Lummox JR resolved issue with message:
Animations improperly reset (temporarily) the timestamp for when an atom last had an icon or icon_state change, causing loop-once icons to play again. Now this reset will only happen if the animate() call updates the icon or icon_state.
Nice! Appreciate it.