From ed23ce28ee32c35bd0f08b935fc2e20df3257add Mon Sep 17 00:00:00 2001 From: deathride58 Date: Sat, 23 Feb 2019 02:43:18 -0500 Subject: [PATCH] Opts for the realistic route of making non-border transit turfs simply use normal space turf physics --- code/game/turfs/space/transit.dm | 18 ++++-------------- .../space_management/space_reservation.dm | 6 ++++++ 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/code/game/turfs/space/transit.dm b/code/game/turfs/space/transit.dm index ad207bb5e5..7dcf27ce4b 100644 --- a/code/game/turfs/space/transit.dm +++ b/code/game/turfs/space/transit.dm @@ -41,22 +41,12 @@ /turf/open/space/transit/border/east dir = EAST -/turf/open/space/transit/Entered(atom/movable/AM, atom/OldLoc) +/turf/open/space/transit/border/Entered(atom/movable/AM, atom/OldLoc) ..() - if(!locate(/obj/structure/lattice) in src && !SSshuttle.is_in_shuttle_bounds(src)) + if(!locate(/obj/structure/lattice) in src) throw_atom(AM) /turf/open/space/transit/proc/throw_atom(atom/movable/AM) - if(!AM || istype(AM, /obj/docking_port)) - return - if(AM.loc != src) - return - if(AM.throwing) - return - var/turf/T = get_ranged_target_turf(src, turn(dir, 180), 10) - AM.safe_throw_at(T, 10, 1, null, FALSE) - -/turf/open/space/transit/border/throw_atom(atom/movable/AM) set waitfor = FALSE if(!AM || istype(AM, /obj/docking_port)) return @@ -91,8 +81,8 @@ var/turf/T = locate(_x, _y, _z) AM.forceMove(T) - var/turf/throwturf = get_ranged_target_turf(T, dir, 10) - AM.safe_throw_at(throwturf, 10, 4, null, FALSE) + var/turf/throwturf = get_ranged_target_turf(T, dir, 1) + AM.safe_throw_at(throwturf, 1, 4, null, FALSE) /turf/open/space/transit/CanBuildHere() diff --git a/code/modules/mapping/space_management/space_reservation.dm b/code/modules/mapping/space_management/space_reservation.dm index eee6a7e1cd..43fe69d633 100644 --- a/code/modules/mapping/space_management/space_reservation.dm +++ b/code/modules/mapping/space_management/space_reservation.dm @@ -22,6 +22,12 @@ SSmapping.used_turfs -= i SSmapping.reserve_turfs(v) +/datum/turf_reservation/transit/Release() + for(var/turf/open/space/transit/T in reserved_turfs) + for(var/atom/movable/AM in T) + T.throw_atom(AM) + . = ..() + /datum/turf_reservation/proc/Reserve(width, height, zlevel) if(width > world.maxx || height > world.maxy || width < 1 || height < 1) return FALSE