From 2bd96ab29e83d276e91f1c8508f6963dded8f02e Mon Sep 17 00:00:00 2001 From: mwerezak Date: Sat, 16 Aug 2014 20:50:34 -0400 Subject: [PATCH 1/3] Fixes multi docking port undocking conditions The undocking conditions for multidocking ports (used by the escape shuttle) were overly strict, failing if any door was open/unlocked. Changed to allow undocking if at least one of the inner or outer doors can close and lock. --- .../machinery/embedded_controller/docking_program_multi.dm | 4 +++- code/modules/shuttles/escape_pods.dm | 7 ------- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/code/game/machinery/embedded_controller/docking_program_multi.dm b/code/game/machinery/embedded_controller/docking_program_multi.dm index 43906f9d5f..13b542ff05 100644 --- a/code/game/machinery/embedded_controller/docking_program_multi.dm +++ b/code/game/machinery/embedded_controller/docking_program_multi.dm @@ -197,7 +197,9 @@ //checks if we are ready for undocking /datum/computer/file/embedded_program/airlock/multi_docking/proc/ready_for_undocking() - return check_doors_secured() + var/ext_closed = check_exterior_door_secured() + var/int_closed = check_interior_door_secured() + return (ext_closed || int_closed) /datum/computer/file/embedded_program/airlock/multi_docking/proc/open_doors() toggleDoor(memory["interior_status"], tag_interior_door, memory["secure"], "open") diff --git a/code/modules/shuttles/escape_pods.dm b/code/modules/shuttles/escape_pods.dm index 7fe1d1c36c..dd7aafc67d 100644 --- a/code/modules/shuttles/escape_pods.dm +++ b/code/modules/shuttles/escape_pods.dm @@ -137,10 +137,3 @@ /datum/computer/file/embedded_program/docking/simple/escape_pod/prepare_for_undocking() eject_time = world.time + eject_delay*10 - -/* -/datum/computer/file/embedded_program/docking/simple/escape_pod/ready_for_undocking() - if (world.time < eject_time) - return 0 - return ..() -*/ \ No newline at end of file From d8b6aecc32dc2cc4f38f2ddffaf29fd6eda4e611 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Sat, 16 Aug 2014 21:02:05 -0400 Subject: [PATCH 2/3] Fixes escape shuttle announcing a negative ETA Fixes the escape shuttle announcing a negative ETA when it leaves late. --- code/modules/shuttles/shuttle.dm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/code/modules/shuttles/shuttle.dm b/code/modules/shuttles/shuttle.dm index 34a5d1e138..c931e9fc29 100644 --- a/code/modules/shuttles/shuttle.dm +++ b/code/modules/shuttles/shuttle.dm @@ -34,15 +34,14 @@ if (moving_status == SHUTTLE_IDLE) return //someone cancelled the launch - move(departing, interim, direction) - moving_status = SHUTTLE_INTRANSIT + move(departing, interim, direction) + arrive_time = world.time + travel_time*10 while (world.time < arrive_time) sleep(5) move(interim, destination, direction) - moving_status = SHUTTLE_IDLE /datum/shuttle/proc/dock() @@ -69,6 +68,8 @@ return 0 //just moves the shuttle from A to B, if it can be moved +//A note to anyone overriding move in a subtype. move() must absolutely not, under any circumstances, fail to move the shuttle. +//If you want to conditionally cancel shuttle launches, that logic must go in short_jump() or long_jump() /datum/shuttle/proc/move(var/area/origin, var/area/destination, var/direction=null) //world << "move_shuttle() called for [shuttle_tag] leaving [origin] en route to [destination]." From e1fb63f6e7c17c46174b6da02d9159222856c531 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Sat, 16 Aug 2014 21:04:06 -0400 Subject: [PATCH 3/3] Fixes airlock icon state/animation weirdness door_spark and door_deny icon states are usually of a closed door, so it looks glitchy if they are used when the door is open (such as by pulsing the ID scan wire). --- code/game/machinery/doors/airlock.dm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index ae15da537a..270833f5ed 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -648,9 +648,11 @@ About the new airlock wires panel: else flick("door_closing", src) if("spark") - flick("door_spark", src) + if(density) + flick("door_spark", src) if("deny") - flick("door_deny", src) + if(density) + flick("door_deny", src) return /obj/machinery/door/airlock/attack_ai(mob/user as mob)