515 Compliance part 2 (#20809)

* more illegal procpaths

* Update code/modules/ruins/lavalandruin_code/puzzle.dm

* REGEX_REPLACE_HANDLER

* shuttle fix
This commit is contained in:
S34N
2023-04-22 09:28:54 +02:00
committed by GitHub
parent e3f8223971
commit 4a5fb011e6
22 changed files with 51 additions and 55 deletions
+1 -1
View File
@@ -133,7 +133,7 @@
var/datum/client_login_processor/CLP = new processor_type
GLOB.client_login_processors += CLP
// Sort them by priority, lowest first
sortTim(GLOB.client_login_processors, /proc/cmp_login_processor_priority)
sortTim(GLOB.client_login_processors, GLOBAL_PROC_REF(cmp_login_processor_priority))
GLOB.emote_list = init_emote_list()
-2
View File
@@ -755,8 +755,6 @@ The _flatIcons list is a cache for generated icon files.
break
layers[current] = current_layer
//sortTim(layers, /proc/cmp_image_layer_asc)
var/icon/add // Icon of overlay being added
// Current dimensions of flattened icon
+2 -2
View File
@@ -127,7 +127,7 @@
/datum/pathfind/New(atom/movable/caller, atom/goal, id, max_distance, mintargetdist, simulated_only, avoid, diagonal_safety)
src.caller = caller
end = get_turf(goal)
open = new /datum/heap(/proc/HeapPathWeightCompare)
open = new /datum/heap(GLOBAL_PROC_REF(HeapPathWeightCompare))
sources = new()
src.id = id
src.max_distance = max_distance
@@ -428,7 +428,7 @@
for(var/obj/iter_object in destination_turf)
if(!iter_object.CanPathfindPass(ID, reverse_dir, caller, no_id = no_id))
return TRUE
for(var/mob/living/iter_mob in destination_turf)
if(!iter_mob.CanPathfindPass(ID, reverse_dir, caller, no_id = no_id))
return TRUE
+1 -1
View File
@@ -15,7 +15,7 @@
* Proc intended to be used when someone wants the src datum to be qdeled when a certain signal is sent to them.
*
* Example usage:
* RegisterSignal(item, COMSIG_PARENT_QDELETING, /datum/proc/signal_qdel)
* RegisterSignal(item, COMSIG_PARENT_QDELETING, TYPE_PROC_REF(/datum, signal_qdel))
*/
/datum/proc/signal_qdel()
SIGNAL_HANDLER
+1 -1
View File
@@ -81,7 +81,7 @@ GLOBAL_LIST_EMPTY(uid_log)
if(!check_rights(R_DEBUG))
return
var/list/sorted = sortTim(GLOB.uid_log, cmp=/proc/cmp_numeric_dsc, associative = TRUE)
var/list/sorted = sortTim(GLOB.uid_log, GLOBAL_PROC_REF(cmp_numeric_dsc), TRUE)
var/list/text = list("<h1>UID Log</h1>", "<p>Current UID: [GLOB.next_unique_datum_id]</p>", "<ul>")
for(var/key in sorted)
text += "<li>[key] - [sorted[key]]</li>"
+3
View File
@@ -15,3 +15,6 @@
#define NAMEOF_STATIC(datum, X) (#X || type::##X)
#define CALL_EXT call_ext
#endif
/// Use this for every proc passed in as second argument in regex.Replace. regex.Replace does not allow calling procs by name but as of 515 using proc refs will always call the top level proc instead of overrides
#define REGEX_REPLACE_HANDLER SHOULD_NOT_OVERRIDE(TRUE)
+1 -1
View File
@@ -140,7 +140,7 @@ GLOBAL_REAL(Failsafe, /datum/controller/failsafe)
return
del(Master)
var/list/subsytem_types = subtypesof(/datum/controller/subsystem)
sortTim(subsytem_types, /proc/cmp_subsystem_init)
sortTim(subsytem_types, GLOBAL_PROC_REF(cmp_subsystem_init))
for(var/I in subsytem_types)
new I
. = Recreate_MC()
+6 -6
View File
@@ -99,7 +99,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
//Code used for first master on game boot or if existing master got deleted
Master = src
var/list/subsystem_types = subtypesof(/datum/controller/subsystem)
sortTim(subsystem_types, /proc/cmp_subsystem_init)
sortTim(subsystem_types, GLOBAL_PROC_REF(cmp_subsystem_init))
//Find any abandoned subsystem from the previous master (if there was any)
var/list/existing_subsystems = list()
@@ -125,7 +125,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
/datum/controller/master/Shutdown()
processing = FALSE
sortTim(subsystems, /proc/cmp_subsystem_init)
sortTim(subsystems, GLOBAL_PROC_REF(cmp_subsystem_init))
reverseRange(subsystems)
for(var/datum/controller/subsystem/ss in subsystems)
log_world("Shutting down [ss.name] subsystem...")
@@ -213,7 +213,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
log_startup_progress("Initializing subsystems...")
// Sort subsystems by init_order, so they initialize in the correct order.
sortTim(subsystems, /proc/cmp_subsystem_init)
sortTim(subsystems, GLOBAL_PROC_REF(cmp_subsystem_init))
var/start_timeofday = REALTIMEOFDAY
// Initialize subsystems.
@@ -238,7 +238,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
SetRunLevel(RUNLEVEL_LOBBY)
// Sort subsystems by display setting for easy access.
sortTim(subsystems, /proc/cmp_subsystem_display)
sortTim(subsystems, GLOBAL_PROC_REF(cmp_subsystem_display))
// Set world options.
world.tick_lag = GLOB.configuration.mc.ticklag
var/initialized_tod = REALTIMEOFDAY
@@ -318,9 +318,9 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
queue_tail = null
//these sort by lower priorities first to reduce the number of loops needed to add subsequent SS's to the queue
//(higher subsystems will be sooner in the queue, adding them later in the loop means we don't have to loop thru them next queue add)
sortTim(tickersubsystems, /proc/cmp_subsystem_priority)
sortTim(tickersubsystems, GLOBAL_PROC_REF(cmp_subsystem_priority))
for(var/I in runlevel_sorted_subsystems)
sortTim(I, /proc/cmp_subsystem_priority)
sortTim(I, GLOBAL_PROC_REF(cmp_subsystem_priority))
I += tickersubsystems
var/cached_runlevel = current_runlevel
+1 -1
View File
@@ -84,7 +84,7 @@ SUBSYSTEM_DEF(garbage)
var/list/dellog = list()
//sort by how long it's wasted hard deleting
sortTim(items, cmp=/proc/cmp_qdel_item_time, associative = TRUE)
sortTim(items, GLOBAL_PROC_REF(cmp_qdel_item_time), TRUE)
for(var/path in items)
var/datum/qdel_item/I = items[path]
dellog += "Path: [path]"
@@ -236,7 +236,7 @@ SUBSYSTEM_DEF(tickets)
for(var/key in response_phrases) //build a new list based on the short descriptive keys of the master list so we can send this as the input instead of the full paragraphs to the admin choosing which autoresponse
sorted_responses += key
var/message_key = input("Select an autoresponse. This will mark the ticket as resolved.", "Autoresponse") as null|anything in sortTim(sorted_responses, /proc/cmp_text_asc) //use sortTim and cmp_text_asc to sort alphabetically
var/message_key = input("Select an autoresponse. This will mark the ticket as resolved.", "Autoresponse") as null|anything in sortTim(sorted_responses, GLOBAL_PROC_REF(cmp_text_asc)) //use sortTim and cmp_text_asc to sort alphabetically
var/client/ticket_owner = get_client_by_ckey(T.client_ckey)
switch(message_key)
if(null) //they cancelled
+3 -3
View File
@@ -572,7 +572,7 @@ GLOBAL_LIST_EMPTY(timers_by_type)
if(!check_rights(R_DEBUG))
return
var/list/sorted = sortTim(GLOB.timers_by_type, cmp=/proc/cmp_numeric_dsc, associative = TRUE)
var/list/sorted = sortTim(GLOB.timers_by_type, GLOBAL_PROC_REF(cmp_numeric_dsc), TRUE)
var/list/text = list("<h1>Timer Log</h1>", "<ul>")
for(var/key in sorted)
text += "<li>[key] - [sorted[key]]</li>"
@@ -595,7 +595,7 @@ GLOBAL_LIST_EMPTY(timers_by_type)
timers[cbtxt] = 1
var/list/sorted = sortTim(timers, cmp=/proc/cmp_numeric_dsc, associative = TRUE)
var/list/sorted = sortTim(timers, GLOBAL_PROC_REF(cmp_numeric_dsc), TRUE)
var/list/text = list("<h1>All active timers sorted by callback</h1>", "<ul>")
for(var/key in sorted)
text += "<li>[key] - [sorted[key]]</li>"
@@ -612,7 +612,7 @@ GLOBAL_LIST_EMPTY(timers_by_type)
timers2[cbtxt] = 1
text += "<h1>All buckets, sorted by callback</h1><ul>"
var/list/sorted2 = sortTim(timers2, cmp=/proc/cmp_numeric_dsc, associative = TRUE)
var/list/sorted2 = sortTim(timers2, GLOBAL_PROC_REF(cmp_numeric_dsc), TRUE)
for(var/key in sorted2)
text += "<li>[key] - [sorted2[key]]</li>"
+1 -1
View File
@@ -55,7 +55,7 @@ if(!result || result.ckey != __ckey){\
for(var/i in invalid_mobs)
selected_mobs -= i // Cleanup
log_records = sortTim(log_records, /proc/compare_log_record)
log_records = sortTim(log_records, GLOBAL_PROC_REF(compare_log_record))
/** Binary search like implementation to find the earliest log
* Returns the index of the earliest log using the time_from value for the given list of logs.
+1 -1
View File
@@ -215,7 +215,7 @@
if(!(head_organ.dna.species.name in S.species_allowed)) //If the user's head is not of a species the head accessory style allows, skip it. Otherwise, add it to the list.
continue
available += head_accessory
var/list/sorted = sortTim(available, /proc/cmp_text_asc)
var/list/sorted = sortTim(available, GLOBAL_PROC_REF(cmp_text_asc))
var/headacc = GetUIValueRange(DNA_UI_HACC_STYLE, length(sorted))
if(headacc > 0 && headacc <= length(sorted))
+1
View File
@@ -380,6 +380,7 @@
return message
/datum/mutation/disability/speech/chav/proc/replace_speech(matched)
REGEX_REPLACE_HANDLER
return chavlinks[matched]
// WAS: /datum/bioEffect/swedish
+3 -3
View File
@@ -665,7 +665,7 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention)
var/datum/outfit/O = path //not much to initalize here but whatever
if(initial(O.can_be_admin_equipped))
outfits[initial(O.name)] = path
outfits = special_outfits + sortTim(outfits, /proc/cmp_text_asc)
outfits = special_outfits + sortTim(outfits, GLOBAL_PROC_REF(cmp_text_asc))
var/dresscode = input("Select outfit", "Robust quick dress shop") as null|anything in outfits
if(isnull(dresscode))
@@ -681,7 +681,7 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention)
var/datum/outfit/O = path
if(initial(O.can_be_admin_equipped))
job_outfits[initial(O.name)] = path
job_outfits = sortTim(job_outfits, /proc/cmp_text_asc)
job_outfits = sortTim(job_outfits, GLOBAL_PROC_REF(cmp_text_asc))
dresscode = input("Select job equipment", "Robust quick dress shop") as null|anything in job_outfits
dresscode = job_outfits[dresscode]
@@ -784,7 +784,7 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention)
return
var/list/dellog = list("<B>List of things that have gone through qdel this round</B><BR><BR><ol>")
sortTim(SSgarbage.items, cmp=/proc/cmp_qdel_item_time, associative = TRUE)
sortTim(SSgarbage.items, GLOBAL_PROC_REF(cmp_qdel_item_time), TRUE)
for(var/path in SSgarbage.items)
var/datum/qdel_item/I = SSgarbage.items[path]
dellog += "<li><u>[path]</u><ul>"
+2 -2
View File
@@ -466,7 +466,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
var/obj/effect/landmark/synd_spawn = locate("landmark*Syndicate-Spawn")
if(synd_spawn)
new_character.loc = get_turf(synd_spawn)
call(/datum/game_mode/proc/equip_syndicate)(new_character)
call(TYPE_PROC_REF(/datum/game_mode, equip_syndicate))(new_character)
if("Deathsquad Commando")//Leaves them at late-join spawn.
new_character.equip_deathsquad_commando()
@@ -496,7 +496,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
GLOB.data_core.manifest_inject(new_character)
if(alert(new_character,"Would you like an active AI to announce this character?",,"No","Yes")=="Yes")
call(/mob/new_player/proc/AnnounceArrival)(new_character, new_character.mind.assigned_role)
call(TYPE_PROC_REF(/mob/new_player, AnnounceArrival))(new_character, new_character.mind.assigned_role)
message_admins("<span class='notice'>[key_name_admin(usr)] has respawned [key_name_admin(G_found)] as [new_character.real_name].</span>", 1)
@@ -223,7 +223,7 @@
if(can_use_species(user, _species))
new_species += _species
active_character.species = input("Please select a species", "Character Generation", null) in sortTim(new_species, /proc/cmp_text_asc)
active_character.species = input("Please select a species", "Character Generation", null) in sortTim(new_species, GLOBAL_PROC_REF(cmp_text_asc))
var/datum/species/NS = GLOB.all_species[active_character.species]
if(!istype(NS)) //The species was invalid. Notify the user and fail out.
active_character.species = prev_species
@@ -308,7 +308,7 @@
if(!(lang.flags & RESTRICTED))
new_languages += lang.name
active_character.language = input("Please select a secondary language", "Character Generation", null) in sortTim(new_languages, /proc/cmp_text_asc)
active_character.language = input("Please select a secondary language", "Character Generation", null) in sortTim(new_languages, GLOBAL_PROC_REF(cmp_text_asc))
if("autohiss_mode")
if(S.autohiss_basic_map)
@@ -367,7 +367,7 @@
if(active_character.species in SA.species_allowed) //If the user's head is of a species the hairstyle allows, add it to the list.
valid_hairstyles += hairstyle
sortTim(valid_hairstyles, /proc/cmp_text_asc) //this alphabetizes the list
sortTim(valid_hairstyles, GLOBAL_PROC_REF(cmp_text_asc)) //this alphabetizes the list
var/new_h_style = input(user, "Choose your character's hair style:", "Character Preference") as null|anything in valid_hairstyles
if(new_h_style)
active_character.h_style = new_h_style
@@ -412,7 +412,7 @@
valid_head_accessory_styles += head_accessory_style
sortTim(valid_head_accessory_styles, /proc/cmp_text_asc)
sortTim(valid_head_accessory_styles, GLOBAL_PROC_REF(cmp_text_asc))
var/new_head_accessory_style = input(user, "Choose the style of your character's head accessory:", "Character Preference") as null|anything in valid_head_accessory_styles
if(new_head_accessory_style)
active_character.ha_style = new_head_accessory_style
@@ -470,7 +470,7 @@
continue
valid_markings += markingstyle
sortTim(valid_markings, /proc/cmp_text_asc)
sortTim(valid_markings, GLOBAL_PROC_REF(cmp_text_asc))
var/new_marking_style = input(user, "Choose the style of your character's head markings:", "Character Preference", active_character.m_styles["head"]) as null|anything in valid_markings
if(new_marking_style)
active_character.m_styles["head"] = new_marking_style
@@ -494,7 +494,7 @@
continue
valid_markings += markingstyle
sortTim(valid_markings, /proc/cmp_text_asc)
sortTim(valid_markings, GLOBAL_PROC_REF(cmp_text_asc))
var/new_marking_style = input(user, "Choose the style of your character's body markings:", "Character Preference", active_character.m_styles["body"]) as null|anything in valid_markings
if(new_marking_style)
active_character.m_styles["body"] = new_marking_style
@@ -524,7 +524,7 @@
continue
valid_markings += markingstyle
sortTim(valid_markings, /proc/cmp_text_asc)
sortTim(valid_markings, GLOBAL_PROC_REF(cmp_text_asc))
var/new_marking_style = input(user, "Choose the style of your character's tail markings:", "Character Preference", active_character.m_styles["tail"]) as null|anything in valid_markings
if(new_marking_style)
active_character.m_styles["tail"] = new_marking_style
@@ -551,7 +551,7 @@
possible_body_accessories += "None" //the only null entry should be the "None" option
else
possible_body_accessories -= "None" // in case an admin is viewing it
sortTim(possible_body_accessories, /proc/cmp_text_asc)
sortTim(possible_body_accessories, GLOBAL_PROC_REF(cmp_text_asc))
var/new_body_accessory = input(user, "Choose your body accessory:", "Character Preference") as null|anything in possible_body_accessories
if(new_body_accessory)
active_character.m_styles["tail"] = "None"
@@ -599,7 +599,7 @@
else //If the user is not a species who can have robotic heads, use the default handling.
if(active_character.species in SA.species_allowed) //If the user's head is of a species the facial hair style allows, add it to the list.
valid_facial_hairstyles += facialhairstyle
sortTim(valid_facial_hairstyles, /proc/cmp_text_asc)
sortTim(valid_facial_hairstyles, GLOBAL_PROC_REF(cmp_text_asc))
var/new_f_style = input(user, "Choose your character's facial-hair style:", "Character Preference") as null|anything in valid_facial_hairstyles
if(new_f_style)
active_character.f_style = new_f_style
@@ -615,7 +615,7 @@
if(!(active_character.species in SA.species_allowed))
continue
valid_underwear[underwear] = GLOB.underwear_list[underwear]
sortTim(valid_underwear, /proc/cmp_text_asc)
sortTim(valid_underwear, GLOBAL_PROC_REF(cmp_text_asc))
var/new_underwear = input(user, "Choose your character's underwear:", "Character Preference") as null|anything in valid_underwear
ShowChoices(user)
if(new_underwear)
@@ -631,7 +631,7 @@
if(!(active_character.species in SA.species_allowed))
continue
valid_undershirts[undershirt] = GLOB.undershirt_list[undershirt]
sortTim(valid_undershirts, /proc/cmp_text_asc)
sortTim(valid_undershirts, GLOBAL_PROC_REF(cmp_text_asc))
var/new_undershirt = input(user, "Choose your character's undershirt:", "Character Preference") as null|anything in valid_undershirts
ShowChoices(user)
if(new_undershirt)
@@ -648,7 +648,7 @@
if(!(active_character.species in SA.species_allowed))
continue
valid_sockstyles[sockstyle] = GLOB.socks_list[sockstyle]
sortTim(valid_sockstyles, /proc/cmp_text_asc)
sortTim(valid_sockstyles, GLOBAL_PROC_REF(cmp_text_asc))
var/new_socks = input(user, "Choose your character's socks:", "Character Preference") as null|anything in valid_sockstyles
ShowChoices(user)
if(new_socks)
+1 -1
View File
@@ -21,7 +21,7 @@
var/datum/outfit/O = path
if(initial(O.can_be_admin_equipped))
standard_outfit_options[initial(O.name)] = path
sortTim(standard_outfit_options, /proc/cmp_text_asc)
sortTim(standard_outfit_options, GLOBAL_PROC_REF(cmp_text_asc))
outfit_options = standard_outfit_options
/datum/action/chameleon_outfit/Trigger()
@@ -357,7 +357,7 @@
valid_species += current_species_name
return sortTim(valid_species, /proc/cmp_text_asc)
return sortTim(valid_species, GLOBAL_PROC_REF(cmp_text_asc))
/mob/living/carbon/human/proc/generate_valid_hairstyles()
var/list/valid_hairstyles = new()
@@ -385,7 +385,7 @@
if(H.dna.species.name in S.species_allowed) //If the user's head is of a species the hairstyle allows, add it to the list.
valid_hairstyles += hairstyle
return sortTim(valid_hairstyles, /proc/cmp_text_asc)
return sortTim(valid_hairstyles, GLOBAL_PROC_REF(cmp_text_asc))
/mob/living/carbon/human/proc/generate_valid_facial_hairstyles()
var/list/valid_facial_hairstyles = new()
@@ -414,7 +414,7 @@
if(H.dna.species.name in S.species_allowed) //If the user's head is of a species the facial hair style allows, add it to the list.
valid_facial_hairstyles += facialhairstyle
return sortTim(valid_facial_hairstyles, /proc/cmp_text_asc)
return sortTim(valid_facial_hairstyles, GLOBAL_PROC_REF(cmp_text_asc))
/mob/living/carbon/human/proc/generate_valid_head_accessories()
var/list/valid_head_accessories = new()
@@ -429,7 +429,7 @@
continue
valid_head_accessories += head_accessory
return sortTim(valid_head_accessories, /proc/cmp_text_asc)
return sortTim(valid_head_accessories, GLOBAL_PROC_REF(cmp_text_asc))
/mob/living/carbon/human/proc/generate_valid_markings(location = "body")
var/list/valid_markings = new()
@@ -467,7 +467,7 @@
continue
valid_markings += marking
return sortTim(valid_markings, /proc/cmp_text_asc)
return sortTim(valid_markings, GLOBAL_PROC_REF(cmp_text_asc))
/mob/living/carbon/human/proc/generate_valid_body_accessories()
var/list/valid_body_accessories = list()
@@ -483,7 +483,7 @@
if(dna.species.optional_body_accessory)
valid_body_accessories += "None"
return sortTim(valid_body_accessories, /proc/cmp_text_asc)
return sortTim(valid_body_accessories, GLOBAL_PROC_REF(cmp_text_asc))
/mob/living/carbon/human/proc/generate_valid_alt_heads()
var/list/valid_alt_heads = list()
@@ -498,4 +498,4 @@
valid_alt_heads += alternate_head
return sortTim(valid_alt_heads, /proc/cmp_text_asc)
return sortTim(valid_alt_heads, GLOBAL_PROC_REF(cmp_text_asc))
@@ -172,6 +172,7 @@ GLOBAL_LIST_INIT(soapy_words, list(
return list("verb" = verb)
/mob/living/carbon/human/proc/replace_speech(matched)
REGEX_REPLACE_HANDLER
return GLOB.soapy_words[lowertext(matched)]
/mob/living/carbon/human/handle_message_mode(message_mode, list/message_pieces, verb, used_radios)
@@ -135,7 +135,7 @@
return 0
/obj/effect/sliding_puzzle/proc/elements_in_order()
return sortTim(elements,cmp=/proc/cmp_xy_desc)
return sortTim(elements, GLOBAL_PROC_REF(cmp_xy_desc))
/obj/effect/sliding_puzzle/proc/get_base_icon()
var/icon/I = new('icons/obj/puzzle.dmi')
+1 -8
View File
@@ -44,13 +44,6 @@
if(jumpto_ports.len)
jump_action = new /datum/action/innate/camera_jump/shuttle_docker
..()
/* //technically working but some icons are buggy as shit and either don't rotate or rotate wrong :
//namely shuttle walls, shuttle windows, shuttle engines and buckled mobs
if(rotate_action)
rotate_action.target = user
rotate_action.Grant(user)
actions += rotate_action
*/
if(place_action)
place_action.target = user
place_action.Grant(user)
@@ -62,7 +55,7 @@
shuttle_port = null
return
eyeobj = new /mob/camera/aiEye/remote/shuttle_docker(null, src)
eyeobj = new /mob/camera/aiEye/remote/shuttle_docker(get_turf(locate("landmark*Observer-Start")), src) // There should always be an observer start landmark
var/mob/camera/aiEye/remote/shuttle_docker/the_eye = eyeobj
the_eye.setDir(shuttle_port.dir)
var/turf/origin = locate(shuttle_port.x + x_offset, shuttle_port.y + y_offset, shuttle_port.z)