From e105a047e1b06b6ea467dac6d0c0632e45ac7277 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 20 Jan 2019 20:35:14 -0800 Subject: [PATCH] Adds a better debug controller verb that can target all controllers/processes/mc/failsafe/config/etc --- code/_helpers/type2type.dm | 11 ++++++++ code/controllers/verbs.dm | 51 ++++++++++++++++++++++++++++++++++++-- 2 files changed, 60 insertions(+), 2 deletions(-) diff --git a/code/_helpers/type2type.dm b/code/_helpers/type2type.dm index 55dad2242f3..dc52d7c1cee 100644 --- a/code/_helpers/type2type.dm +++ b/code/_helpers/type2type.dm @@ -242,6 +242,8 @@ /proc/isLeap(y) return ((y) % 4 == 0 && ((y) % 100 != 0 || (y) % 400 == 0)) +<<<<<<< HEAD +======= //Takes a string and a datum //The string is well, obviously the string being checked @@ -273,3 +275,12 @@ for(var/A in value) if(var_source.vars.Find(A)) . += A + +/proc/get_end_section_of_type(type) + var/strtype = "[type]" + var/delim_pos = findlasttext(strtype, "/") + if(delim_pos == 0) + return strtype + return copytext(strtype, delim_pos) + +>>>>>>> bfaaffb... Adds a better debug controller verb that can target all controllers/processes/mc/failsafe/config/etc (#5852) diff --git a/code/controllers/verbs.dm b/code/controllers/verbs.dm index 6d01f6ee599..c0bda0657e0 100644 --- a/code/controllers/verbs.dm +++ b/code/controllers/verbs.dm @@ -63,11 +63,12 @@ usr.client.debug_variables(antag) message_admins("Admin [key_name_admin(usr)] is debugging the [antag.role_text] template.") -/client/proc/debug_controller(controller in list("Master","Ticker","Ticker Process","Air","Jobs","Radio","Supply","Emergency Shuttle","Configuration","pAI", "Cameras", "Transfer Controller", "Gas Data","Plants","Alarm","Xenobio")) +/client/proc/debug_controller() set category = "Debug" set name = "Debug Controller" - set desc = "Debug the various periodic loop controllers for the game (be careful!)" + set desc = "Debug the various subsystems/controllers for the game (be careful!)" +<<<<<<< HEAD if(!holder) return switch(controller) if("Master") @@ -140,3 +141,49 @@ debug_variables(P) feedback_add_details("admin_verb", "DProcCtrl") message_admins("Admin [key_name_admin(usr)] is debugging the [controller] controller.") +======= + if(!holder) + return + var/list/options = list() + options["MC"] = Master + options["Failsafe"] = Failsafe + options["Configuration"] = config + for(var/i in Master.subsystems) + var/datum/controller/subsystem/S = i + if(!istype(S)) //Eh, we're a debug verb, let's have typechecking. + continue + var/strtype = "SS[get_end_section_of_type(S.type)]" + if(options[strtype]) + var/offset = 2 + while(istype(options["[strtype]_[offset] - DUPE ERROR"], /datum/controller/subsystem)) + offset++ + options["[strtype]_[offset] - DUPE ERROR"] = S //Something is very, very wrong. + else + options[strtype] = S + + //Goon PS stuff, and other yet-to-be-subsystem things. + options["LEGACY: master_controller"] = master_controller + options["LEGACY: ticker"] = ticker + options["LEGACY: tickerProcess"] = tickerProcess + options["LEGACY: air_master"] = air_master + options["LEGACY: job_master"] = job_master + options["LEGACY: radio_controller"] = radio_controller + options["LEGACY: supply_controller"] = supply_controller + options["LEGACY: emergency_shuttle"] = emergency_shuttle + options["LEGACY: paiController"] = paiController + options["LEGACY: cameranet"] = cameranet + options["LEGACY: transfer_controller"] = transfer_controller + options["LEGACY: gas_data"] = gas_data + options["LEGACY: plant_controller"] = plant_controller + options["LEGACY: alarm_manager"] = alarm_manager + + var/pick = input(mob, "Choose a controller to debug/view variables of.", "VV controller:") as null|anything in options + if(!pick) + return + var/datum/D = options[pick] + if(!istype(D)) + return + feedback_add_details("admin_verb", "DebugController") + message_admins("Admin [key_name_admin(mob)] is debugging the [pick] controller.") + debug_variables(D) +>>>>>>> bfaaffb... Adds a better debug controller verb that can target all controllers/processes/mc/failsafe/config/etc (#5852)