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