From 6dc177ebc73380d60554cc3463140771bb2c9e47 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Thu, 7 May 2020 22:23:28 -0400 Subject: [PATCH] Fix very curious orbit offset issue (513?) --- code/datums/orbit.dm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/code/datums/orbit.dm b/code/datums/orbit.dm index 5d457ff4ac5..0176d7f23d1 100644 --- a/code/datums/orbit.dm +++ b/code/datums/orbit.dm @@ -4,10 +4,12 @@ var/lock = TRUE var/turf/lastloc var/lastprocess + var/matrix/init_transform -/datum/orbit/New(_orbiter, _orbiting, _lock) +/datum/orbit/New(var/atom/movable/_orbiter, var/atom/_orbiting, _lock) orbiter = _orbiter orbiting = _orbiting + init_transform = _orbiter.transform SSorbit.processing += src if (!orbiting.orbiters) orbiting.orbiters = list() @@ -24,6 +26,7 @@ SSorbit.processing -= src if (orbiter) orbiter.orbiting = null + orbiter.transform = init_transform orbiter = null if (orbiting) if (orbiting.orbiters) @@ -84,7 +87,6 @@ new/datum/orbit(src, A, lockinorbit) if (!orbiting) //something failed, and our orbit datum deleted itself return - var/matrix/initial_transform = matrix(transform) //Head first! if (pre_rotation) @@ -101,9 +103,6 @@ SpinAnimation(rotation_speed, -1, clockwise, rotation_segments) - //we stack the orbits up client side, so we can assign this back to normal server side without it breaking the orbit - transform = initial_transform - /atom/movable/proc/stop_orbit() SpinAnimation(0,0) qdel(orbiting)