From 4b21f5f8ad57ef3d77252239e6306817a3edfae5 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Sat, 15 Aug 2015 15:46:52 -0400 Subject: [PATCH 1/3] Fixes pipes disappearing when wrenching fails --- code/controllers/Processes/garbage.dm | 4 ++++ code/game/machinery/pipe/construction.dm | 18 +++++++++--------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/code/controllers/Processes/garbage.dm b/code/controllers/Processes/garbage.dm index 31a28a91a581a..b3f1917f6b2bd 100644 --- a/code/controllers/Processes/garbage.dm +++ b/code/controllers/Processes/garbage.dm @@ -80,6 +80,10 @@ var/list/delayed_garbage = list() /datum/controller/process/garbage_collector/getStatName() return ..()+"([garbage_collector.destroyed.len]/[garbage_collector.dels]/[garbage_collector.hard_dels])" +// Tests if an atom has been deleted. +/proc/deleted(atom/A) + return !A || !isnull(A.gcDestroyed) + // Should be treated as a replacement for the 'del' keyword. // Datums passed to this will be given a chance to clean up references to allow the GC to collect them. /proc/qdel(var/datum/A) diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm index 9bee0af72f46d..c6d257c5cb12f 100644 --- a/code/game/machinery/pipe/construction.dm +++ b/code/game/machinery/pipe/construction.dm @@ -463,7 +463,7 @@ Buildable meters var/turf/T = P.loc P.level = T.intact ? 2 : 1 P.initialize() - if (!P) + if (deleted(P)) usr << pipefailtext return 1 P.build_network() @@ -482,7 +482,7 @@ Buildable meters var/turf/T = P.loc P.level = T.intact ? 2 : 1 P.initialize() - if (!P) + if (deleted(P)) usr << pipefailtext return 1 P.build_network() @@ -501,7 +501,7 @@ Buildable meters var/turf/T = P.loc P.level = T.intact ? 2 : 1 P.initialize() - if (!P) + if (deleted(P)) usr << pipefailtext return 1 P.build_network() @@ -520,7 +520,7 @@ Buildable meters var/turf/T = P.loc P.level = T.intact ? 2 : 1 P.initialize() - if (!P) + if (deleted(P)) usr << pipefailtext return 1 P.build_network() @@ -539,7 +539,7 @@ Buildable meters //var/turf/T = P.loc //P.level = T.intact ? 2 : 1 P.initialize() - if (!P) + if (deleted(P)) usr << pipefailtext return 1 P.build_network() @@ -574,7 +574,7 @@ Buildable meters var/turf/T = M.loc M.level = T.intact ? 2 : 1 M.initialize() - if (!M) + if (deleted(M)) usr << pipefailtext return 1 M.build_network() @@ -643,7 +643,7 @@ Buildable meters var/turf/T = M.loc M.level = T.intact ? 2 : 1 M.initialize() - if (!M) + if (deleted(M)) usr << pipefailtext return 1 M.build_network() @@ -722,7 +722,7 @@ Buildable meters //var/turf/T = P.loc //P.level = T.intact ? 2 : 1 P.initialize() - if (!P) + if (deleted(P)) usr << pipefailtext //"There's nothing to connect this pipe to! (with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)" return 1 P.build_network() @@ -905,7 +905,7 @@ Buildable meters var/turf/T = P.loc P.level = T.intact ? 2 : 1 P.initialize() - if (!P) + if (deleted(P)) usr << pipefailtext return 1 P.build_network() From 2ab1f00a5f5744b7625b3a6e23244f3b3a36ac70 Mon Sep 17 00:00:00 2001 From: DJPantheris Date: Sat, 15 Aug 2015 20:35:59 -0400 Subject: [PATCH 2/3] Fix for unfreeze mode. Going to try this. --- code/modules/admin/verbs/freeze.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/admin/verbs/freeze.dm b/code/modules/admin/verbs/freeze.dm index 1c497bf113c4f..89a8f91e2e2d9 100644 --- a/code/modules/admin/verbs/freeze.dm +++ b/code/modules/admin/verbs/freeze.dm @@ -16,7 +16,7 @@ return if (!M.paralysis) alert("\red You have frozen [key_name(M)] for suspicious activity.") - M << "\red FREEZE! DON'T MOVE! You have been frozen." + M << "\red You have been frozen by [key_name(usr)]." M.Paralyse(5000000000) log_admin("\red [key_name_admin(usr)] has frozen [key_name(M)] for suspicious activity!", 1) message_admins("\blue [key_name_admin(usr)] froze [key_name_admin(M)] on suspicious conduct.", 1) @@ -27,6 +27,7 @@ log_admin("\blue [key_name(usr)] has unfrozen [key_name(M)] and returned them to play.") message_admins("\blue [key_name_admin(usr)] has unfrozen [key_name_admin(M)] and returned them to play.") M.Paralyse(0) + M.AdjustParalysis(-5000000000) M.blinded = 0 M.lying = 0 M.stat = 0 From 55eec5090d4594439cf39258fa88f1cbcdbaa9ff Mon Sep 17 00:00:00 2001 From: DJPantheris Date: Sat, 15 Aug 2015 20:44:13 -0400 Subject: [PATCH 3/3] Changing Freeze name "FREEZE!" now is "Freeze Mob" --- code/modules/admin/verbs/freeze.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/admin/verbs/freeze.dm b/code/modules/admin/verbs/freeze.dm index 89a8f91e2e2d9..8aff6f0901782 100644 --- a/code/modules/admin/verbs/freeze.dm +++ b/code/modules/admin/verbs/freeze.dm @@ -1,6 +1,6 @@ /client/proc/freeze(mob/M as mob in mob_list) set category = "Admin" - set name = "FREEZE!" + set name = "Freeze Mob" if(!holder) src << "Only mentors and above may use this command." return