diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm
index 6f19d956a4c..84e1a7ba5ba 100644
--- a/code/datums/datumvars.dm
+++ b/code/datums/datumvars.dm
@@ -239,6 +239,7 @@ client
body += ""
body += ""
body += ""
+ body += ""
if(ishuman(D))
body += ""
body += ""
@@ -496,6 +497,20 @@ client
togglebuildmode(MOB)
href_list["datumrefresh"] = href_list["build_mode"]
+ else if (href_list["direct_control"])
+ if(!href_list["direct_control"])
+ return
+ var/mob/MOB = locate(href_list["direct_control"])
+ if(!MOB)
+ return
+ if(!ismob(MOB))
+ return
+ if(!src.holder)
+ return
+
+ if(usr.client)
+ usr.client.cmd_assume_direct_control(MOB)
+
else if (href_list["delall"])
if(!href_list["delall"])
return
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 40ae24e4abd..b02208f467b 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -8,7 +8,7 @@
// verbs += /client/proc/radio_report //for radio debugging dont think its been used in a very long time
// verbs += /client/proc/fix_next_move //has not been an issue in a very very long time
- // Mapping helpers added via enable_mapping_debug verb
+ // Mapping helpers added via enable_debug_verbs verb
// verbs += /client/proc/do_not_use_these
// verbs += /client/proc/camera_view
// verbs += /client/proc/sec_camera_report
@@ -211,7 +211,6 @@
verbs += /client/proc/hide_most_verbs
verbs += /client/proc/jumptocoord
verbs += /client/proc/deadmin_self
- verbs += /client/proc/startSinglo
//verbs += /client/proc/cmd_admin_godmode --Merged with view variables
//verbs += /client/proc/cmd_admin_gib --Merged with view variables
//verbs += /proc/togglebuildmode --Merged with view variables
@@ -235,7 +234,6 @@
verbs += /client/proc/check_words
verbs += /client/proc/drop_bomb
verbs += /client/proc/cmd_admin_grantfullaccess
- verbs += /client/proc/jump_to_dead_group
verbs += /client/proc/kill_airgroup
verbs += /client/proc/cmd_admin_drop_everything
verbs += /client/proc/make_sound
@@ -255,7 +253,6 @@
//verbs += /client/proc/give_spell --Merged with view variables
//verbs += /client/proc/cmd_admin_ninjafy --Merged with view variables
//verbs += /client/proc/cmd_switch_radio --removed as tcommsat is staying
- verbs += /client/proc/cmd_ASSUME_DIRECT_CONTROL
else return
//Game Master
@@ -270,7 +267,7 @@
verbs += /client/proc/cmd_debug_make_powernets
verbs += /client/proc/object_talk
verbs += /client/proc/strike_team
- verbs += /client/proc/enable_mapping_debug
+ verbs += /client/proc/enable_debug_verbs
verbs += /client/proc/everyone_random
verbs += /client/proc/only_one
verbs += /client/proc/deadmin_self
@@ -383,9 +380,8 @@
verbs -= /client/proc/cmd_admin_gib_self
verbs -= /client/proc/restartcontroller
verbs -= /client/proc/play_local_sound
- verbs -= /client/proc/enable_mapping_debug
+ verbs -= /client/proc/enable_debug_verbs
verbs -= /client/proc/toggleprayers
- verbs -= /client/proc/jump_to_dead_group
verbs -= /client/proc/Blobize
verbs -= /client/proc/toggle_clickproc //TODO ERRORAGE (Temporary proc while the enw clickproc is being tested)
verbs -= /client/proc/toggle_hear_deadcast
@@ -396,7 +392,6 @@
verbs -= /client/proc/toggle_gravity_off
verbs -= /client/proc/toggle_random_events
verbs -= /client/proc/deadmin_self
- verbs -= /client/proc/startSinglo
verbs -= /client/proc/jumptocoord
verbs -= /client/proc/everyone_random
verbs -= /client/proc/Set_Holiday
@@ -418,7 +413,6 @@
verbs -= /client/proc/togglebuildmodeself
verbs -= /client/proc/kill_airgroup
verbs -= /client/proc/debug_master_controller
- verbs -= /client/proc/cmd_ASSUME_DIRECT_CONTROL
return
@@ -702,52 +696,6 @@
admins.Remove(src.ckey)
usr << "You are now a normal player."
-/client/proc/startSinglo()
- set name = "Singlo Starter"
- set category = "Debug"
- set desc = "Starts a self-sustaining, stable singlo. This artifical singlo does not have a gravitational pull."
-
- for(var/obj/machinery/emitter/E in world)
- if(E.anchored)
- E.active = 1
-
- for(var/obj/machinery/field_generator/F in world)
- if(F.anchored)
- F.Varedit_start = 1
- spawn(30)
- for(var/obj/machinery/the_singularitygen/G in world)
- if(G.anchored)
- var/obj/machinery/singularity/S = new /obj/machinery/singularity(get_turf(G), 50)
- spawn(0)
- del(G)
- S.energy = 1750
- S.current_size = 7
- S.icon = '224x224.dmi'
- S.icon_state = "singularity_s7"
- S.pixel_x = -96
- S.pixel_y = -96
- S.grav_pull = 0
- //S.consume_range = 3
- S.dissipate = 0
- //S.dissipate_delay = 10
- //S.dissipate_track = 0
- //S.dissipate_strength = 10
-
- for(var/obj/machinery/power/rad_collector/Rad in world)
- if(Rad.anchored)
- if(!Rad.P)
- var/obj/item/weapon/tank/plasma/Plasma = new/obj/item/weapon/tank/plasma(Rad)
- Plasma.air_contents.toxins = 70
- Rad.drainratio = 0
- Rad.P = Plasma
- Plasma.loc = Rad
-
- if(!Rad.active)
- Rad.toggle_power()
-
- for(var/obj/machinery/power/smes/SMES in world)
- if(SMES.anchored)
- SMES.chargemode = 1
/client/proc/hide_most_verbs()//Allows you to keep some functionality while hiding some verbs
set name = "Toggle most admin verb visibility"
diff --git a/code/modules/admin/new/admin_verbs.dm b/code/modules/admin/new/admin_verbs.dm
index 0669c69e1a8..dfa96aa6262 100644
--- a/code/modules/admin/new/admin_verbs.dm
+++ b/code/modules/admin/new/admin_verbs.dm
@@ -8,7 +8,7 @@
// verbs += /client/proc/radio_report //for radio debugging dont think its been used in a very long time
// verbs += /client/proc/fix_next_move //has not been an issue in a very very long time
- // Mapping helpers added via enable_mapping_debug verb
+ // Mapping helpers added via enable_debug_verbs verb
// verbs += /client/proc/do_not_use_these
// verbs += /client/proc/camera_view
// verbs += /client/proc/sec_camera_report
@@ -205,7 +205,6 @@
verbs += /client/proc/check_words
verbs += /client/proc/drop_bomb
verbs += /client/proc/cmd_admin_grantfullaccess
- verbs += /client/proc/jump_to_dead_group
verbs += /client/proc/cmd_admin_drop_everything
verbs += /client/proc/make_sound
verbs += /client/proc/play_local_sound
@@ -235,7 +234,6 @@
verbs += /client/proc/cmd_admin_rejuvenate
verbs += /client/proc/hide_most_verbs
verbs += /client/proc/jumptocoord
- verbs += /client/proc/startSinglo
verbs += /client/proc/cmd_modify_ticker_variables
verbs += /client/proc/deadmin_self
//verbs += /client/proc/cmd_mass_modify_object_variables --Merged with view variables
@@ -271,7 +269,7 @@
verbs += /client/proc/reload_admins
verbs += /client/proc/cmd_debug_make_powernets
verbs += /client/proc/object_talk
- verbs += /client/proc/enable_mapping_debug
+ verbs += /client/proc/enable_debug_verbs
verbs += /client/proc/deadmin_self
else return
return
@@ -382,9 +380,8 @@
verbs -= /client/proc/cmd_admin_gib_self
verbs -= /client/proc/restartcontroller
verbs -= /client/proc/play_local_sound
- verbs -= /client/proc/enable_mapping_debug
+ verbs -= /client/proc/enable_debug_verbs
verbs -= /client/proc/toggleprayers
- verbs -= /client/proc/jump_to_dead_group
verbs -= /client/proc/Blobize
verbs -= /client/proc/toggle_clickproc //TODO ERRORAGE (Temporary proc while the enw clickproc is being tested)
verbs -= /client/proc/toggle_hear_deadcast
@@ -395,7 +392,6 @@
verbs -= /client/proc/toggle_gravity_off
verbs -= /client/proc/toggle_random_events
verbs -= /client/proc/deadmin_self
- verbs -= /client/proc/startSinglo
verbs -= /client/proc/jumptocoord
verbs -= /client/proc/everyone_random
verbs -= /proc/possess
diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm
index 0fc59da74b5..0b273546441 100644
--- a/code/modules/admin/verbs/debug.dm
+++ b/code/modules/admin/verbs/debug.dm
@@ -356,12 +356,21 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
else
alert("Invalid mob")
-/client/proc/cmd_ASSUME_DIRECT_CONTROL(var/mob/M in world)
+/client/proc/cmd_assume_direct_control(var/mob/M in world)
set category = "Admin"
- set name = "ASSUME DIRECT CONTROL"
- set desc = "DIRECT INTERVENTION IS NECESSARY"
+ set name = "Assume direct control"
+ set desc = "Direct intervention"
- M.ckey = usr.ckey
+ if(M.ckey)
+ if(alert("This mob is being controlled by [M.ckey]. Are you sure you wish to assume control of it? [M.ckey] will be made a ghost.",,"Yes","No") != "Yes")
+ return
+ else
+ var/mob/dead/observer/ghost = new/mob/dead/observer()
+ ghost.ckey = M.ckey;
+ var/mob/adminmob = src.mob
+ M.ckey = src.ckey;
+ if( isobserver(adminmob) )
+ del(adminmob)
@@ -721,4 +730,51 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
M.equip_if_possible(W, M.slot_wear_id)
M.update_clothing()
- return
\ No newline at end of file
+ return
+
+/client/proc/startSinglo()
+
+ if(alert("Are you sure? This will start up the engine. Should only be used during debug!",,"Yes","No") != "Yes")
+ return
+
+ for(var/obj/machinery/emitter/E in world)
+ if(E.anchored)
+ E.active = 1
+
+ for(var/obj/machinery/field_generator/F in world)
+ if(F.anchored)
+ F.Varedit_start = 1
+ spawn(30)
+ for(var/obj/machinery/the_singularitygen/G in world)
+ if(G.anchored)
+ var/obj/machinery/singularity/S = new /obj/machinery/singularity(get_turf(G), 50)
+ spawn(0)
+ del(G)
+ S.energy = 1750
+ S.current_size = 7
+ S.icon = '224x224.dmi'
+ S.icon_state = "singularity_s7"
+ S.pixel_x = -96
+ S.pixel_y = -96
+ S.grav_pull = 0
+ //S.consume_range = 3
+ S.dissipate = 0
+ //S.dissipate_delay = 10
+ //S.dissipate_track = 0
+ //S.dissipate_strength = 10
+
+ for(var/obj/machinery/power/rad_collector/Rad in world)
+ if(Rad.anchored)
+ if(!Rad.P)
+ var/obj/item/weapon/tank/plasma/Plasma = new/obj/item/weapon/tank/plasma(Rad)
+ Plasma.air_contents.toxins = 70
+ Rad.drainratio = 0
+ Rad.P = Plasma
+ Plasma.loc = Rad
+
+ if(!Rad.active)
+ Rad.toggle_power()
+
+ for(var/obj/machinery/power/smes/SMES in world)
+ if(SMES.anchored)
+ SMES.chargemode = 1
\ No newline at end of file
diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm
index 5f4fbdac351..8df92c7bab6 100644
--- a/code/modules/admin/verbs/mapping.dm
+++ b/code/modules/admin/verbs/mapping.dm
@@ -120,9 +120,9 @@ var/intercom_range_display_status = 0
if (!(F in view(7,I.loc)))
del(F)
- enable_mapping_debug()
+ enable_debug_verbs()
set category = "Debug"
- set name = "Mapping debug"
+ set name = "Debug verbs"
src.verbs += /client/proc/do_not_use_these //-errorage
src.verbs += /client/proc/camera_view //-errorage
src.verbs += /client/proc/sec_camera_report //-errorage
@@ -132,6 +132,9 @@ var/intercom_range_display_status = 0
src.verbs += /client/proc/atmosscan //check plumbing
src.verbs += /client/proc/count_objects_on_z_level
src.verbs += /client/proc/count_objects_all
+ src.verbs += /client/proc/cmd_assume_direct_control //-errorage
+ src.verbs += /client/proc/jump_to_dead_group
+ src.verbs += /client/proc/startSinglo
count_objects_on_z_level()
set category = "Mapping"
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index 66e56c21e85..280963d2586 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -181,4 +181,24 @@
hand = h
density = 1
else
- density = !lying
\ No newline at end of file
+ density = !lying
+
+
+/mob/living/proc/Examine_OOC()
+ set name = "Examine Meta-Info (OOC)"
+ set category = "OOC"
+ set src in view()
+
+ if(config.allow_Metadata)
+ usr << "[src]'s Metainfo:"
+
+ if(src.storedpreferences)
+ usr << "[src]'s OOC Notes: [src.storedpreferences.metadata]"
+
+ else
+ usr << "[src] does not have any stored infomation!"
+
+ else
+ usr << "OOC Metadata is not supported by this server!"
+
+ return
\ No newline at end of file
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index ecaade290ab..93bcef759c2 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -1155,30 +1155,4 @@ note dizziness decrements automatically in the mob's Life() proc.
for(var/file in args)
src << browse_rsc(file)
return 1
- return 0
-
-
-
-
-
-/mob/living/verb/Examine_OOC()
- set name = "Examine Meta-Info (OOC)"
- set category = "OOC"
- set src in view()
-
-
- if(config.allow_Metadata)
- usr << "[src]'s Metainfo:"
-
- if(src.storedpreferences)
- usr << "[src]'s OOC Notes: [src.storedpreferences.metadata]"
-
-
- else
- usr << "[src] does not have any stored infomation!"
-
-
- else
- usr << "OOC Metadata is not supported by this server!"
-
- return
\ No newline at end of file
+ return 0
\ No newline at end of file