Administrator Cherrypick (#27405)

* Admin Verb Datums MkIII | Now with functional command bar (#82511)

* Modular stuffs

* Put some admin jump verbs back into the context menu | sorts area jump list again (#82647)

## About The Pull Request

See title.

## Why It's Good For The Game

Some admins wanted all the jump verbs back, aswell as making them not
AGhost you.
Also make the Jump To Area verb use a sorted list again

* Hey what if admins were allowed to use the player panel (#82682)

Re-adds the player panel verb to the verb panel.

* Controller Overview UI (#82739)

* Fixes a minor spelling mistake on the admin panel/verb list (#82747)

## About The Pull Request

Corrects `inisimin` to `invisimin`. This addresses #82728, but only
fixes one of the two issues mentioned

## Why It's Good For The Game

-1 spelling mistake

## Changelog
🆑
spellcheck: 'inisimin' verb corrected to 'invisimin'
/🆑

* Player Panel-age (#82757)

* Admin Forced Mob Rename and Preference Update (#82715)

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
Co-authored-by: chel <64568243+iliyaxox@users.noreply.github.com>
This commit is contained in:
SpaceLoveSs13
2024-04-23 20:43:45 +02:00
committed by GitHub
co-authored by Zephyr Useroth chel
parent 8ecd4bf5b1
commit a9ff046352
131 changed files with 2336 additions and 3587 deletions
+67 -207
View File
@@ -1,69 +1,5 @@
//- Are all the floors with or without air, as they should be? (regular or airless)
//- Does the area have an APC?
//- Does the area have an Air Alarm?
//- Does the area have a Request Console?
//- Does the area have lights?
//- Does the area have a light switch?
//- Does the area have enough intercoms?
//- Does the area have enough security cameras? (Use the 'Camera Range Display' verb under Debug)
//- Is the area connected to the scrubbers air loop?
//- Is the area connected to the vent air loop? (vent pumps)
//- Is everything wired properly?
//- Does the area have a fire alarm and firedoors?
//- Do all pod doors work properly?
//- Are accesses set properly on doors, pod buttons, etc.
//- Are all items placed properly? (not below vents, scrubbers, tables)
//- Does the disposal system work properly from all the disposal units in this room and all the units, the pipes of which pass through this room?
//- Check for any misplaced or stacked piece of pipe (air and disposal)
//- Check for any misplaced or stacked piece of wire
//- Identify how hard it is to break into the area and where the weak points are
//- Check if the area has too much empty space. If so, make it smaller and replace the rest with maintenance tunnels.
GLOBAL_LIST_INIT(admin_verbs_debug_mapping, list(
/client/proc/camera_view, //-errorage
/client/proc/sec_camera_report, //-errorage
/client/proc/intercom_view, //-errorage
/client/proc/air_status, //Air things
/client/proc/Cell, //More air things
/client/proc/atmosscan, //check plumbing
/client/proc/powerdebug, //check power
/client/proc/count_objects_on_z_level,
/client/proc/count_objects_all,
/client/proc/cmd_assume_direct_control, //-errorage
/client/proc/cmd_give_direct_control,
/client/proc/set_server_fps, //allows you to set the ticklag.
/client/proc/cmd_admin_grantfullaccess,
/client/proc/cmd_admin_areatest_all,
/client/proc/cmd_admin_areatest_station,
/client/proc/cmd_admin_areatest_station_no_maintenance,
#ifdef TESTING
/client/proc/see_dirty_varedits,
#endif
/client/proc/cmd_admin_rejuvenate,
/datum/admins/proc/show_traitor_panel,
/client/proc/disable_communication,
/client/proc/show_map_reports,
/client/proc/cmd_show_at_list,
/client/proc/cmd_show_at_markers,
/client/proc/manipulate_organs,
/client/proc/start_line_profiling,
/client/proc/stop_line_profiling,
/client/proc/show_line_profiling,
/client/proc/create_mapping_job_icons,
/client/proc/debug_z_levels,
/client/proc/place_ruin,
/client/proc/station_food_debug,
/client/proc/station_stack_debug,
/client/proc/check_for_obstructed_atmospherics,
/client/proc/modify_lights,
/client/proc/visualize_lights,
))
GLOBAL_PROTECT(admin_verbs_debug_mapping)
/client/proc/camera_view()
set category = "Mapping"
set name = "Camera Range Display"
ADMIN_VERB_VISIBILITY(camera_view, ADMIN_VERB_VISIBLITY_FLAG_MAPPING_DEBUG)
ADMIN_VERB(camera_view, R_DEBUG, "Camera Range Display", "Shows the range of cameras on the station.", ADMIN_CATEGORY_MAPPING)
var/on = FALSE
for(var/turf/T in world)
if(T.maptext)
@@ -82,28 +18,20 @@ GLOBAL_PROTECT(admin_verbs_debug_mapping)
#ifdef TESTING
GLOBAL_LIST_EMPTY(dirty_vars)
/client/proc/see_dirty_varedits()
set category = "Mapping"
set name = "Dirty Varedits"
ADMIN_VERB_VISIBILITY(see_dirty_varedits, ADMIN_VERB_VISIBLITY_FLAG_MAPPING_DEBUG)
ADMIN_VERB(see_dirty_varedits, R_DEBUG, "Dirty Varedits", "Shows all dirty varedits.", ADMIN_CATEGORY_MAPPING)
var/list/dat = list()
dat += "<h3>Abandon all hope ye who enter here</h3><br><br>"
for(var/thing in GLOB.dirty_vars)
dat += "[thing]<br>"
CHECK_TICK
var/datum/browser/popup = new(usr, "dirty_vars", "Dirty Varedits", 900, 750)
var/datum/browser/popup = new(user, "dirty_vars", "Dirty Varedits", 900, 750)
popup.set_content(dat.Join())
popup.open()
#endif
/client/proc/sec_camera_report()
set category = "Mapping"
set name = "Camera Report"
if(!Master)
tgui_alert(usr,"Master_controller not found.","Sec Camera Report")
return FALSE
ADMIN_VERB_VISIBILITY(sec_camera_report, ADMIN_VERB_VISIBLITY_FLAG_MAPPING_DEBUG)
ADMIN_VERB(sec_camera_report, R_DEBUG, "Camera Report", "Get a printout of all camera issues.", ADMIN_CATEGORY_MAPPING)
var/list/obj/machinery/camera/CL = list()
for(var/obj/machinery/camera/C as anything in GLOB.cameranet.cameras)
@@ -133,15 +61,13 @@ GLOBAL_LIST_EMPTY(dirty_vars)
output += "<li><font color='red'>Camera not connected to wall at [ADMIN_VERBOSEJMP(C1)] Network: [json_encode(C1.network)]</font></li>"
output += "</ul>"
usr << browse(output,"window=airreport;size=1000x500")
user << browse(output,"window=airreport;size=1000x500")
BLACKBOX_LOG_ADMIN_VERB("Show Camera Report")
/client/proc/intercom_view()
set category = "Mapping"
set name = "Intercom Range Display"
ADMIN_VERB_VISIBILITY(intercom_view, ADMIN_VERB_VISIBLITY_FLAG_MAPPING_DEBUG)
ADMIN_VERB(intercom_view, R_DEBUG, "Intercom Range Display", "Shows the range of intercoms on the station.", ADMIN_CATEGORY_MAPPING)
var/static/intercom_range_display_status = FALSE
intercom_range_display_status = !intercom_range_display_status //blame cyberboss if this breaks something //blamed
intercom_range_display_status = !intercom_range_display_status
for(var/obj/effect/abstract/marker/intercom/marker in GLOB.all_abstract_markers)
qdel(marker)
@@ -153,23 +79,17 @@ GLOBAL_LIST_EMPTY(dirty_vars)
new /obj/effect/abstract/marker/intercom(turf)
BLACKBOX_LOG_ADMIN_VERB("Show Intercom Range")
/client/proc/show_map_reports()
set category = "Mapping"
set name = "Show map report list"
set desc = "Displays a list of map reports"
ADMIN_VERB_VISIBILITY(show_map_reports, ADMIN_VERB_VISIBLITY_FLAG_MAPPING_DEBUG)
ADMIN_VERB(show_map_reports, R_DEBUG, "Show Map Reports", "Displays a list of map reports.", ADMIN_CATEGORY_MAPPING)
var/dat = {"<b>List of all map reports:</b><br>"}
for(var/datum/map_report/report as anything in GLOB.map_reports)
dat += "[report.tag] ([report.original_path]) - <a href='?src=[REF(report)];[HrefToken()];show=1'>View</a><br>"
usr << browse(dat, "window=map_reports")
/client/proc/cmd_show_at_list()
set category = "Mapping"
set name = "Show roundstart AT list"
set desc = "Displays a list of active turfs coordinates at roundstart"
user << browse(dat, "window=map_reports")
ADMIN_VERB_VISIBILITY(cmd_show_at_list, ADMIN_VERB_VISIBLITY_FLAG_MAPPING_DEBUG)
ADMIN_VERB(cmd_show_at_list, R_DEBUG, "Show roundstart AT list", "Displays a list of active turfs coordinates at roundstart.", ADMIN_CATEGORY_MAPPING)
var/dat = {"<b>Coordinate list of Active Turfs at Roundstart</b>
<br>Real-time Active Turfs list you can see in Air Subsystem at active_turfs var<br>"}
@@ -178,50 +98,39 @@ GLOBAL_LIST_EMPTY(dirty_vars)
dat += "[ADMIN_VERBOSEJMP(T)]\n"
dat += "<br>"
usr << browse(dat, "window=at_list")
user << browse(dat, "window=at_list")
BLACKBOX_LOG_ADMIN_VERB("Show Roundstart Active Turfs")
/client/proc/cmd_show_at_markers()
set category = "Mapping"
set name = "Show roundstart AT markers"
set desc = "Places a marker on all active-at-roundstart turfs"
ADMIN_VERB_VISIBILITY(cmd_show_at_markers, ADMIN_VERB_VISIBLITY_FLAG_MAPPING_DEBUG)
ADMIN_VERB(cmd_show_at_markers, R_DEBUG, "Show roundstart AT markers", "Places a marker on all active-at-roundstart turfs.", ADMIN_CATEGORY_MAPPING)
var/count = 0
for(var/obj/effect/abstract/marker/at/AT in GLOB.all_abstract_markers)
qdel(AT)
count++
if(count)
to_chat(usr, "[count] AT markers removed.", confidential = TRUE)
to_chat(user, "[count] AT markers removed.", confidential = TRUE)
else
for(var/t in GLOB.active_turfs_startlist)
new /obj/effect/abstract/marker/at(t)
count++
to_chat(usr, "[count] AT markers placed.", confidential = TRUE)
to_chat(user, "[count] AT markers placed.", confidential = TRUE)
BLACKBOX_LOG_ADMIN_VERB("Show Roundstart Active Turf Markers")
/client/proc/enable_mapping_verbs()
set category = "Debug"
set name = "Mapping verbs - Enable"
if(!check_rights(R_DEBUG))
return
remove_verb(src, /client/proc/enable_mapping_verbs)
add_verb(src, list(/client/proc/disable_mapping_verbs, GLOB.admin_verbs_debug_mapping))
ADMIN_VERB(enable_mapping_verbs, R_DEBUG, "Enable Mapping Verbs", "Enable all mapping verbs.", ADMIN_CATEGORY_MAPPING)
SSadmin_verbs.update_visibility_flag(user, ADMIN_VERB_VISIBLITY_FLAG_MAPPING_DEBUG, TRUE)
BLACKBOX_LOG_ADMIN_VERB("Enable Debug Verbs")
/client/proc/disable_mapping_verbs()
set category = "Debug"
set name = "Mapping verbs - Disable"
remove_verb(src, list(/client/proc/disable_mapping_verbs, GLOB.admin_verbs_debug_mapping))
add_verb(src, /client/proc/enable_mapping_verbs)
ADMIN_VERB_VISIBILITY(disable_mapping_verbs, ADMIN_VERB_VISIBLITY_FLAG_MAPPING_DEBUG)
ADMIN_VERB(disable_mapping_verbs, R_DEBUG, "Disable Mapping Verbs", "Disable all mapping verbs.", ADMIN_CATEGORY_MAPPING)
SSadmin_verbs.update_visibility_flag(user, ADMIN_VERB_VISIBLITY_FLAG_MAPPING_DEBUG, FALSE)
BLACKBOX_LOG_ADMIN_VERB("Disable Debug Verbs")
/client/proc/count_objects_on_z_level()
set category = "Mapping"
set name = "Count Objects On Level"
var/level = input("Which z-level?","Level?") as text|null
ADMIN_VERB_VISIBILITY(count_objects_on_z_level, ADMIN_VERB_VISIBLITY_FLAG_MAPPING_DEBUG)
ADMIN_VERB(count_objects_on_z_level, R_DEBUG, "Count Objects On Z-Level", "Counts the number of objects of a certain type on a specific z-level.", ADMIN_CATEGORY_MAPPING)
var/level = input(user, "Which z-level?","Level?") as text|null
if(!level)
return
var/num_level = text2num(level)
@@ -230,7 +139,7 @@ GLOBAL_LIST_EMPTY(dirty_vars)
if(!isnum(num_level))
return
var/type_text = input("Which type path?","Path?") as text|null
var/type_text = input(user, "Which type path?","Path?") as text|null
if(!type_text)
return
var/type_path = text2path(type_text)
@@ -257,11 +166,9 @@ GLOBAL_LIST_EMPTY(dirty_vars)
to_chat(world, "There are [count] objects of type [type_path] on z-level [num_level]", confidential = TRUE)
BLACKBOX_LOG_ADMIN_VERB("Count Objects Zlevel")
/client/proc/count_objects_all()
set category = "Mapping"
set name = "Count Objects All"
var/type_text = input("Which type path?","") as text|null
ADMIN_VERB_VISIBILITY(count_objects_all, ADMIN_VERB_VISIBLITY_FLAG_MAPPING_DEBUG)
ADMIN_VERB(count_objects_all, R_DEBUG, "Count Objects All", "Counts the number of objects of a certain type in the game world.", ADMIN_CATEGORY_MAPPING)
var/type_text = input(user, "Which type path?","") as text|null
if(!type_text)
return
var/type_path = text2path(type_text)
@@ -277,84 +184,51 @@ GLOBAL_LIST_EMPTY(dirty_vars)
to_chat(world, "There are [count] objects of type [type_path] in the game world", confidential = TRUE)
BLACKBOX_LOG_ADMIN_VERB("Count Objects All")
//This proc is intended to detect lag problems relating to communication procs
GLOBAL_VAR_INIT(say_disabled, FALSE)
/client/proc/disable_communication()
set category = "Mapping"
set name = "Disable all communication verbs"
ADMIN_VERB_VISIBILITY(disable_communication, ADMIN_VERB_VISIBLITY_FLAG_MAPPING_DEBUG)
ADMIN_VERB(disable_communication, R_DEBUG, "Disable all communication verbs", "Disables all communication verbs.", ADMIN_CATEGORY_MAPPING)
GLOB.say_disabled = !GLOB.say_disabled
if(GLOB.say_disabled)
message_admins("[key] used 'Disable all communication verbs', killing all communication methods.")
message_admins("[key_name_admin(user)] used 'Disable all communication verbs', killing all communication methods.")
else
message_admins("[key] used 'Disable all communication verbs', restoring all communication methods.")
/* SKYRAT EDIT: lol, lmao, fuck icon bugs from byond
//This generates the icon states for job starting location landmarks.
/client/proc/create_mapping_job_icons()
set name = "Generate job landmarks icons"
set category = "Mapping"
message_admins("[key_name_admin(user)] used 'Disable all communication verbs', restoring all communication methods.")
ADMIN_VERB_VISIBILITY(create_mapping_job_icons, ADMIN_VERB_VISIBLITY_FLAG_MAPPING_DEBUG)
ADMIN_VERB(create_mapping_job_icons, R_DEBUG, "Generate job landmarks icons", "Generates job starting location landmarks.", ADMIN_CATEGORY_MAPPING)
var/icon/final = icon()
var/list/job_key_to_icon = list() // SKYRAT EDIT ADDITION
var/mob/living/carbon/human/dummy/D = new(locate(1,1,1)) //spawn on 1,1,1 so we don't have runtimes when items are deleted
D.setDir(SOUTH)
for(var/job in subtypesof(/datum/job))
var/datum/job/JB = new job
switch(JB.title)
if(JOB_AI)
final.Insert(icon('icons/mob/silicon/ai.dmi', "ai", SOUTH, 1), "AI")
job_key_to_icon["AI"] = icon('icons/mob/silicon/ai.dmi', "ai", SOUTH, 1) // SKYRAT EDIT CHANGE - ORIGINAL: final.Insert(icon('icons/mob/silicon/ai.dmi', "ai", SOUTH, 1), "AI")
if(JOB_CYBORG)
final.Insert(icon('icons/mob/silicon/robots.dmi', "robot", SOUTH, 1), "Cyborg")
job_key_to_icon["Cyborg"] = icon('icons/mob/silicon/robots.dmi', "robot", SOUTH, 1) // SKYRAT EDIT CHANGE - ORIGINAL: final.Insert(icon('icons/mob/silicon/robots.dmi', "robot", SOUTH, 1), "Cyborg")
else
for(var/obj/item/I in D)
qdel(I)
randomize_human(D)
D.dress_up_as_job(JB, TRUE)
var/icon/I = icon(getFlatIcon(D), frame = 1)
final.Insert(I, JB.title)
qdel(D)
//Also add the x
for(var/x_number in 1 to 4)
final.Insert(icon('icons/hud/screen_gen.dmi', "x[x_number == 1 ? "" : x_number]"), "x[x_number == 1 ? "" : x_number]")
fcopy(final, "icons/mob/landmarks.dmi")
*/
// SKYRAT EDIT BEGIN: THIS SHIT WAS BROKEN due to an issue with byond and how icons cache
//This generates the icon states for job starting location landmarks.
/client/proc/create_mapping_job_icons()
set name = "Generate job landmarks icons"
set category = "Mapping"
var/list/job_key_to_icon = list()
for(var/job in subtypesof(/datum/job))
var/mob/living/carbon/human/dummy/D = new(locate(1,1,1)) //spawn on 1,1,1 so we don't have runtimes when items are deleted
D.setDir(SOUTH)
var/datum/job/JB = new job
to_chat(world, "Generating icon for job [JB.title]")
switch(JB.title)
if("AI")
job_key_to_icon["AI"] = icon('icons/mob/silicon/ai.dmi', "ai", SOUTH, 1)
if("Cyborg")
job_key_to_icon["Cyborg"] = icon('icons/mob/silicon/robots.dmi', "robot", SOUTH, 1)
else
randomize_human(D)
// SKYRAT EDIT CHANGE START - ORIGINAL: D.dress_up_as_job(JB, TRUE)
if(JB.outfit)
D.equipOutfit(JB.outfit, TRUE)
// SKYRAT EDIT CHANGE END
var/icon/I = icon(getFlatIcon(D), frame = 1)
job_key_to_icon[JB.title] = I
qdel(D)
to_chat(world, "Done generating icons.")
var/icon/final = icon()
job_key_to_icon[JB.title] = I // SKYRAT EDIT CHANGE - ORIGINAL: final.Insert(I, JB.title)
qdel(D)
// SKYRAT EDIT ADDITION START
for(var/job_key in job_key_to_icon)
final.Insert(job_key_to_icon[job_key], job_key)
// SKYRAT EDIT ADDITION END
//Also add the x
for(var/x_number in 1 to 4)
final.Insert(icon('icons/hud/screen_gen.dmi', "x[x_number == 1 ? "" : x_number]"), "x[x_number == 1 ? "" : x_number]")
fcopy(final, "icons/mob/landmarks.dmi")
to_chat(world, "Done generating landmarks.dmi.")
// SKYRAT EDIT END
/client/proc/debug_z_levels()
set name = "Debug Z-Levels"
set category = "Mapping"
to_chat(src, examine_block(gather_z_level_information(append_grid = TRUE)), confidential = TRUE)
ADMIN_VERB_VISIBILITY(debug_z_levels, ADMIN_VERB_VISIBLITY_FLAG_MAPPING_DEBUG)
ADMIN_VERB(debug_z_levels, R_DEBUG, "Debug Z-Levels", "Displays a list of all z-levels and their linkages.", ADMIN_CATEGORY_MAPPING)
to_chat(user, examine_block(gather_z_level_information(append_grid = TRUE)), confidential = TRUE)
/// Returns all necessary z-level information. Argument `append_grid` allows the user to see a table showing all of the z-level linkages, which is only visible and useful in-game.
/proc/gather_z_level_information(append_grid = FALSE)
@@ -416,9 +290,8 @@ GLOBAL_VAR_INIT(say_disabled, FALSE)
return messages.Join("\n")
/client/proc/station_food_debug()
set name = "Count Station Food"
set category = "Mapping"
ADMIN_VERB_VISIBILITY(station_food_debug, ADMIN_VERB_VISIBLITY_FLAG_MAPPING_DEBUG)
ADMIN_VERB(station_food_debug, R_DEBUG, "Count Station Food", "Counts the number of food items on the station.", ADMIN_CATEGORY_MAPPING)
var/list/foodcount = list()
for(var/obj/item/food/fuck_me in world)
var/turf/location = get_turf(fuck_me)
@@ -435,13 +308,12 @@ GLOBAL_VAR_INIT(say_disabled, FALSE)
var/page_style = "<style>table, th, td {border: 1px solid black;border-collapse: collapse;}</style>"
var/page_contents = "[page_style]<table style=\"width:100%\">[table_header][jointext(table_contents, "")]</table>"
var/datum/browser/popup = new(mob, "fooddebug", "Station Food Count", 600, 400)
var/datum/browser/popup = new(user.mob, "fooddebug", "Station Food Count", 600, 400)
popup.set_content(page_contents)
popup.open()
/client/proc/station_stack_debug()
set name = "Count Station Stacks"
set category = "Mapping"
ADMIN_VERB_VISIBILITY(station_stack_debug, ADMIN_VERB_VISIBLITY_FLAG_MAPPING_DEBUG)
ADMIN_VERB(station_stack_debug, R_DEBUG, "Count Station Stacks", "Count the stacks of materials on station.", ADMIN_CATEGORY_MAPPING)
var/list/stackcount = list()
for(var/obj/item/stack/fuck_me in world)
var/turf/location = get_turf(fuck_me)
@@ -458,18 +330,13 @@ GLOBAL_VAR_INIT(say_disabled, FALSE)
var/page_style = "<style>table, th, td {border: 1px solid black;border-collapse: collapse;}</style>"
var/page_contents = "[page_style]<table style=\"width:100%\">[table_header][jointext(table_contents, "")]</table>"
var/datum/browser/popup = new(mob, "stackdebug", "Station Stack Count", 600, 400)
var/datum/browser/popup = new(user.mob, "stackdebug", "Station Stack Count", 600, 400)
popup.set_content(page_contents)
popup.open()
/// Check all tiles with a vent or scrubber on it and ensure that nothing is covering it up.
/client/proc/check_for_obstructed_atmospherics()
set name = "Check For Obstructed Atmospherics"
set category = "Mapping"
if(!holder)
to_chat(src, "Only administrators may use this command.", confidential = TRUE)
return
message_admins(span_adminnotice("[key_name_admin(usr)] is checking for obstructed atmospherics through the debug command."))
ADMIN_VERB_VISIBILITY(check_for_obstructed_atmospherics, ADMIN_VERB_VISIBLITY_FLAG_MAPPING_DEBUG)
ADMIN_VERB(check_for_obstructed_atmospherics, R_DEBUG, "Check For Obstructed Atmospherics", "Checks for obstructions on atmospherics machines.", ADMIN_CATEGORY_MAPPING)
message_admins(span_adminnotice("[key_name_admin(user)] is checking for obstructed atmospherics through the debug command."))
BLACKBOX_LOG_ADMIN_VERB("Check For Obstructed Atmospherics")
var/list/results = list()
@@ -518,17 +385,14 @@ GLOBAL_VAR_INIT(say_disabled, FALSE)
results += "There is an obstruction on top of an atmospherics machine at: [ADMIN_VERBOSEJMP(iterated_turf)].<br>"
if(results.len == 1) // only the header is in the list, we're good
to_chat(src, "No obstructions detected.", confidential = TRUE)
to_chat(user, "No obstructions detected.", confidential = TRUE)
else
var/datum/browser/popup = new(usr, "atmospherics_obstructions", "Atmospherics Obstructions", 900, 750)
var/datum/browser/popup = new(user.mob, "atmospherics_obstructions", "Atmospherics Obstructions", 900, 750)
popup.set_content(results.Join())
popup.open()
/client/proc/modify_lights()
set name = "Toggle Light Debug"
set category = "Mapping"
if(!check_rights(R_DEBUG))
return
ADMIN_VERB_VISIBILITY(modify_lights, ADMIN_VERB_VISIBLITY_FLAG_MAPPING_DEBUG)
ADMIN_VERB(modify_lights, R_DEBUG, "Toggle Light Debug", "Toggles light debug mode.", ADMIN_CATEGORY_MAPPING)
if(GLOB.light_debug_enabled)
undebug_sources()
return
@@ -540,10 +404,6 @@ GLOBAL_VAR_INIT(say_disabled, FALSE)
CHECK_TICK
debug_sources()
/client/proc/visualize_lights()
set name = "Visualize Lighting Corners"
set category = "Mapping"
if(!check_rights(R_DEBUG))
return
ADMIN_VERB_VISIBILITY(visualize_lights, ADMIN_VERB_VISIBLITY_FLAG_MAPPING_DEBUG)
ADMIN_VERB(visualize_lights, R_DEBUG, "Visualize Lighting Corners", "Visualizes the corners of all lights on the station.", ADMIN_CATEGORY_MAPPING)
display_corners()