ID:2304064
 
Resolved
Some situations involving changes to client.screen and/or client.view could cause objects to appear to shift.
BYOND Version:512.1389
Operating System:Windows 7 Ultimate 64-bit
Web Browser:Chrome 62.0.3202.45
Applies to:Dream Seeker
Status: Resolved (512.1390)

This issue has been resolved.
Descriptive Problem Summary:

Removing an object from your client.screen list, changing it's loc from your mob to your loc, and then changing your client.view, in that order, after recently moving while having the obj in your screen list and mob contents, breaks a bunch of things visually for the client.



Numbered Steps to Reproduce Problem:
Download test project (or adapt provided script)
Move around while pressing toggle screen object verb.

Code Snippet (if applicable) to Reproduce Problem:
    verb/toggle_screen_obj()
if (!screenobj)
screenobj = new(loc)
sleep(world.tick_lag)
screenobj.loc = src
screenobj.screen_loc = "1,1"
if (client)
client.screen += screenobj
client.view = world.view

else
if (client)
client.screen -= screenobj
screenobj.loc = loc
if (client)
client.view = world.view
screenobj = null


https://tgstation13.org/msoshit/Client%20Shift.zip

Expected Results:
screen object is added to the lower left corner
followed it being placed on the floor
Actual Results:
the above PLUS: your mob will randomly be pixel shifted. Sometimes overlays may show the same shift but this project doesn't attempt to demonstrate that
Does the problem occur:
Every time? Or how often?
Most of the time. depends on recent moves
In other games?
Yes
In other user accounts?
Yes
On other computers?
Yes
When does the problem NOT occur?
undefined

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.)
511
Workarounds:
Moving the mob resets the view.


From /tg/:

Inb4 "You need to make a simple test case showing the bug"
No i already included one.
Well that's bizarre. I'll have a look.
This is truly baffling. I'm wondering if some new behavior for the client-side map is interfering with the way special tiles (containing big objects) are being handled, and if that's actually causing a much older bug to appear that otherwise would have stayed dormant.

The results I'm getting during testing don't make a lot of sense yet, but I'm working on it.
Lummox JR resolved issue with message:
Some situations involving changes to client.screen and/or client.view could cause objects to appear to shift.