ID:2523058
 
Resolved
Using a plane master with a transform did not play nicely with a map control whose zoom setting was high enough to cause pixels to get trimmed. This resulted in an incorrect visual offset to the items on the plane, although mouse tracking still used the correct positions.
BYOND Version:513.1497
Operating System:Windows 7 Pro 64-bit
Web Browser:Chrome 78.0.3904.97
Applies to:Dream Seeker
Status: Resolved (513.1498)

This issue has been resolved.
Descriptive Problem Summary:
When trying to multiply a planemaster's matrix to zoom, the zoom isn't centered, also affecting mouse operations.

Even with odd values for both axis of the view var.

https://i.imgur.com/E4xLCs3.gifv

Even added one non-plane-master obj with "CENTER,CENTER" on the screen_loc to see if the center was wrong, but it shows it locked on the mob aswell:
https://cdn.discordapp.com/attachments/323648342099886090/ 645115365038358559/unknown.png

Here are two gifs of how it screws up mouse operations: (Namely hover, but it also affects click)
https://gyazo.com/b10d48677f9deabb1a03d644ee8ccdaf
(it should be showing the name only when the mouse hovered the npc, but when it hits where it should be if the center was right, it shows)

https://gyazo.com/c6145e5f8cb0a146ce45f8fe9486c733
(when I put the mouse where it actually is with the decentralized zoom, it doesn't show)

Numbered Steps to Reproduce Problem:
If you want a demo, kidpaddle's does the same and has the bug aswell: http://www.byond.com/developer/Kidpaddle45/MouseWheelZoom

Code Snippet (if applicable) to Reproduce Problem:
client/var/tmp/obj/map_zoom/ZoomMap=new//is added to client.screen
obj/map_zoom
appearance_flags = PLANE_MASTER | PIXEL_SCALE
screen_loc = "CENTER,CENTER"
plane = 0
client/MouseWheel(src,delta_x,delta_y,location,control,params)
if(control =="win_main.map" && ! blockzoom)
var/mob/player/P= usr
if(ZoomMap)
if(delta_y>=1)
if(P.iconsize>5.9) return
P.iconsize+=0.1
if(delta_y<=-1)
if(P.iconsize<1.1) return
P.iconsize-=0.1
P.iconsize = round(P.iconsize,0.1)
animate(ZoomMap, transform = matrix()*(P.iconsize), time = 2)


Expected Results:
Zoom in straight to the center of the screen.

Actual Results:
Zoom gets decentralized, mouse operations happening like it is centralized.

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

When does the problem NOT occur?
Never

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 tat I know of.

Workarounds:
None that I know of
I can confirm this issue. It looks like the plane is indeed drawing in the wrong place. I'll look into this issue further.
Lummox JR resolved issue with message:
Using a plane master with a transform did not play nicely with a map control whose zoom setting was high enough to cause pixels to get trimmed. This resulted in an incorrect visual offset to the items on the plane, although mouse tracking still used the correct positions.