When I updated to 1218, I ran into strange behavior in my game. After about 20 seconds, things would start acquiring weird pixel offsets, either permanently or as part of an animation. For example, it happened to two turfs, a door and a switch that opens it, like so:
The other things that happened were:
- Projectiles that bounce off walls would expand a bit upon bounce, then animate back to normal...this animation started to include a wacky pixel offset, sometimes a full tile away
- A turf that went into a loop containing several consecutive animate()s would start "floating" around.
The pixel offsets seem random to me, although once they start happening they would stay consistent. So if a projectile started jumping northeast every time it bounced, it would jump that way every time from then on (but restarting the game would yield a slightly different result).
The funny thing is, in the lever/door example above, there are no calls to animate() or changes to transform vars...
Code Snippet (if applicable) to Reproduce Problem:
icon_state = "doorclosed"
density = 1
var/index = 1
var/prefix = "door"
icon_state = "[prefix]open"
density = 0
icon_state = "[prefix]closed"
density = 1
//switch does basically the same thing, except for telling the door to Toggle()
//below is the proc called when a projectile hits a wall
color = rgb(0,0,255,50)
transform *= 1.5
animate(src, color = null, transform = null, alpha = 255, time = 2)
//and a turf that changes color
spawn while(activelevel == z)
animate(src, color = rgb(255,0,0), time = 20)
animate(src, color = rgb(0,255,0), time = 20)
animate(src, color = rgb(0,0,255), time = 20)
animate(src, color = rgb(255,255,0), time = 20)
animate(src, color = rgb(0,255,255), time = 20)
animate(src, color = rgb(255,0,255), time = 20)
The only objects with changing pixel_x/pixel_y values are particles, and those did not exhibit the behavior, I think because their values are constantly being reset?
Does the problem occur:
Every time? Or how often?
Happens every time, after a delay of about 15 seconds or so. It doesn't seem to always be the exact same amount of time, nor are the unwanted offsets the same each time. But it does always happen.
Did the problem NOT occur in any earlier versions? If so, what was the last version that worked?
Yes, running the game in 1217 cleared up the problem completely.