Our project overrides "Move()" proc on most movable atoms in order to control gliding and make atoms "linked" to one another glide at the same speed.
https://user-images.githubusercontent.com/33260604/ 34704533-711ae136-f4d8-11e7-8eb7-0a723ddfe9aa.gif
This gif shows we are trying to do.
As of the most recent update (1525), this no longer works, and atoms seem to teleport from one tile to the other instead, with no animation displayed.
Code Snippet (if applicable) to Reproduce Problem:
/atom/movable/Move(NewLoc, Dir = 0, step_x = 0, step_y = 0, var/glide_size_override = 0)
if(glide_size_override > 0)
set_glide_size(glide_size_override)
. = ..()
/atom/movable/proc/set_glide_size(glide_size_override = 0, var/min = 0.9, var/max = WORLD_ICON_SIZE/2)
if(!glide_size_override || glide_size_override > max)
glide_size = 0
else
glide_size = max(min, glide_size_override)
You may find a more complete code at https://github.com/vgstation-coders/vgstation13/blob/ db920faa5859d8e55c0087453c79f4312797d137/code/game/ atoms_movable.dm
Do note that we override the Move() procs of our atoms to include this new argument, and that no runtimes are being produced.
Expected Results:
Gliding to be taken into account, and atoms to move smoothly.
Actual Results:
There is no gliding at all. Atoms just jump from one tile to the other without any animation.
Does the problem occur:
Every time? Or how often? Yes.
In other games? Not applicable.
In other user accounts? Yes.
On other computers? Yes.
When does the problem NOT occur? This problem is exclusive to 1525 and if you override Byond's Move() procs, it seems.
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.)
Our code did not have any issues before Byond version 513.1525.
Workarounds:
If you are overriding Move() procs to modify glide_size, you will need to stay on 1523, which is the most recent BYOND version without the bug.
Even after removing most of our code which adds an extra argument to Move() and using a default glide_size of 8, there is no gliding.