//This is from the library Screen Arrows by Kaiochao, but I have modified it
proc/PointArrow(obj/Arrow, atom/Target, MinDistance, ArrowDistance)
if(!MinDistance) MinDistance = client.bound_height * 0.4
if(!ArrowDistance) ArrowDistance = client.bound_height * 0.24
var dx = Target.Cx() - Cx()
var dy = Target.Cy() - Cy()
var dot = dx*dx + dy*dy
if(dot < MinDistance * MinDistance)
Arrow.screen_loc = null
Arrow.screen_loc = "CENTER"
var matrix/m = new
m.Turn(dx > 0 ? arccos(dy / sqrt(dot)) : -arccos(dy / sqrt(dot)))
Arrow.transform = initial(Arrow.transform) * m
But the problem is, I can't click the arrow. If I leave it with its default transform I can click it just fine. Soon as this proc modifies the transform to make it point at something, clicking the arrow's icon doesn't result in a Click() anymore.
I want to be able to click the icon after it is transformed because that is how players open a window containing detailed information about whatever object the arrow is pointing at. How can I?