From 6fee9fe4cc581731fdc4f27aa5cec5688d02386a Mon Sep 17 00:00:00 2001 From: "johnsonmt88@gmail.com" Date: Thu, 24 May 2012 13:22:56 +0000 Subject: [PATCH] Added an emergency shutdown proc to the holodeck control computer. - Destroying, damaging or emping the computer will now cause the holodeck to revert to its original state. Meaning this should help stop people taking eswords out of the holodeck. The detective's gun renaming verb moved from the BYOND default 'you did not set a category' tab into the 'objects' tab Mob.dm's stripping proc was a single very looooooooooooong line of code. It is now multiple lines of code. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3649 316c924e-a436-60f5-8080-3fe189b3f50e --- .../machinery/computer/HolodeckControl.dm | 37 +++++++++++++++++++ code/modules/mob/mob.dm | 14 ++++++- .../projectiles/guns/projectile/revolver.dm | 1 + 3 files changed, 51 insertions(+), 1 deletion(-) diff --git a/code/game/machinery/computer/HolodeckControl.dm b/code/game/machinery/computer/HolodeckControl.dm index cd6657d2a44..9769dfff0ce 100644 --- a/code/game/machinery/computer/HolodeckControl.dm +++ b/code/game/machinery/computer/HolodeckControl.dm @@ -110,6 +110,8 @@ /obj/machinery/computer/HolodeckControl/attackby(var/obj/item/weapon/D as obj, var/mob/user as mob) +//Warning, uncommenting this can have concequences. For example, deconstructing the computer may cause holographic eswords to never derez + /* if(istype(D, /obj/item/weapon/screwdriver)) playsound(src.loc, 'Screwdriver.ogg', 50, 1) if(do_after(user, 20)) @@ -154,6 +156,30 @@ // if(target) // loadProgram(target) +//This could all be done better, but it works for now. +/obj/machinery/computer/HolodeckControl/Del() + emergencyShutdown() + ..() + +/obj/machinery/computer/HolodeckControl/meteorhit(var/obj/O as obj) + emergencyShutdown() + ..() + + +/obj/machinery/computer/HolodeckControl/emp_act(severity) + emergencyShutdown() + ..() + + +/obj/machinery/computer/HolodeckControl/ex_act(severity) + emergencyShutdown() + ..() + + +/obj/machinery/computer/HolodeckControl/blob_act() + emergencyShutdown() + ..() + /obj/machinery/computer/HolodeckControl/process() @@ -270,7 +296,18 @@ T.hotspot_expose(50000,50000,1) +/obj/machinery/computer/HolodeckControl/proc/emergencyShutdown() + //Get rid of any items + for(var/item in holographic_items) + derez(item) + //Turn it back to the regular non-holographic room + target = locate(/area/holodeck/source_plating) + if(target) + loadProgram(target) + var/area/targetsource = locate(/area/holodeck/source_plating) + targetsource.copy_contents_to(linkedholodeck , 1) + active = 0 diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 26fe4ae05d7..5702791ded8 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -242,7 +242,19 @@ /mob/proc/show_inv(mob/user as mob) user.machine = src - var/dat = text("\n[]
\n\tHead(Mask): []
\n\tLeft Hand: []
\n\tRight Hand: []
\n\tBack: []
\n\t[]
\n\t[]
\n\t[]
\n\tEmpty Pockets
\nClose
\n
", name, src, (wear_mask ? text("[]", wear_mask) : "Nothing"), src, (l_hand ? text("[]", l_hand) : "Nothing"), src, (r_hand ? text("[]", r_hand) : "Nothing"), src, (back ? text("[]", back) : "Nothing"), ((istype(wear_mask, /obj/item/clothing/mask) && istype(back, /obj/item/weapon/tank) && !( internal )) ? text(" Set Internal", src) : ""), (internal ? text("Remove Internal", src) : ""), (handcuffed ? text("Handcuffed", src) : text("Not Handcuffed", src)), src, user, name) + var/dat = {" +
[name]
+

+
Head(Mask): [(wear_mask ? wear_mask : "Nothing")] +
Left Hand: [(l_hand ? l_hand : "Nothing")] +
Right Hand: [(r_hand ? r_hand : "Nothing")] +
Back: [(back ? back : "Nothing")] [((istype(wear_mask, /obj/item/clothing/mask) && istype(back, /obj/item/weapon/tank) && !( internal )) ? text(" Set Internal", src) : "")] +
[(handcuffed ? text("Handcuffed") : text("Not Handcuffed"))] +
[(internal ? text("Remove Internal") : "")] +
Empty Pockets +
Refresh +
Close +
"} user << browse(dat, text("window=mob[];size=325x500", name)) onclose(user, "mob[name]") return diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm index b0793442b5b..83513caf51d 100644 --- a/code/modules/projectiles/guns/projectile/revolver.dm +++ b/code/modules/projectiles/guns/projectile/revolver.dm @@ -17,6 +17,7 @@ verb/rename_gun() set name = "Name Gun" + set category = "Object" set desc = "Click to rename your gun. If you're the detective." var/mob/M = usr