From 4a5fb011e6dc5a2ff7f896719bac3ad44bd22897 Mon Sep 17 00:00:00 2001
From: S34N <12197162+S34NW@users.noreply.github.com>
Date: Sat, 22 Apr 2023 08:28:54 +0100
Subject: [PATCH] 515 Compliance part 2 (#20809)
* more illegal procpaths
* Update code/modules/ruins/lavalandruin_code/puzzle.dm
* REGEX_REPLACE_HANDLER
* shuttle fix
---
code/__HELPERS/global_lists.dm | 2 +-
code/__HELPERS/icons.dm | 2 --
code/__HELPERS/path.dm | 4 ++--
code/__HELPERS/qdel.dm | 2 +-
code/__HELPERS/unique_ids.dm | 2 +-
code/__byond_version_compat.dm | 3 +++
code/controllers/failsafe.dm | 2 +-
code/controllers/master.dm | 12 +++++-----
code/controllers/subsystem/garbage.dm | 2 +-
code/controllers/subsystem/tickets/tickets.dm | 2 +-
code/controllers/subsystem/timer.dm | 6 ++---
code/datums/log_viewer.dm | 2 +-
code/game/dna/dna2_helpers.dm | 2 +-
code/game/dna/mutations/disabilities.dm | 1 +
code/modules/admin/verbs/debug.dm | 6 ++---
code/modules/admin/verbs/randomverbs.dm | 4 ++--
.../client/preference/link_processing.dm | 24 +++++++++----------
code/modules/clothing/chameleon.dm | 2 +-
.../mob/living/carbon/human/appearance.dm | 14 +++++------
.../mob/living/carbon/human/human_say.dm | 1 +
.../modules/ruins/lavalandruin_code/puzzle.dm | 2 +-
code/modules/shuttle/navigation_computer.dm | 9 +------
22 files changed, 51 insertions(+), 55 deletions(-)
diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm
index 9e6a0052c96..82bac6d4557 100644
--- a/code/__HELPERS/global_lists.dm
+++ b/code/__HELPERS/global_lists.dm
@@ -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()
diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm
index 6c9a611861e..46049e777c6 100644
--- a/code/__HELPERS/icons.dm
+++ b/code/__HELPERS/icons.dm
@@ -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
diff --git a/code/__HELPERS/path.dm b/code/__HELPERS/path.dm
index c3ba6fac0a4..10daae7ee77 100644
--- a/code/__HELPERS/path.dm
+++ b/code/__HELPERS/path.dm
@@ -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
diff --git a/code/__HELPERS/qdel.dm b/code/__HELPERS/qdel.dm
index cdd8a0ee6aa..794524d215e 100644
--- a/code/__HELPERS/qdel.dm
+++ b/code/__HELPERS/qdel.dm
@@ -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
diff --git a/code/__HELPERS/unique_ids.dm b/code/__HELPERS/unique_ids.dm
index cc98e1e6764..f0ef03d554f 100644
--- a/code/__HELPERS/unique_ids.dm
+++ b/code/__HELPERS/unique_ids.dm
@@ -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("
UID Log
", "Current UID: [GLOB.next_unique_datum_id]
", "")
for(var/key in sorted)
text += "- [key] - [sorted[key]]
"
diff --git a/code/__byond_version_compat.dm b/code/__byond_version_compat.dm
index 6ef493ab7ce..adbd750816e 100644
--- a/code/__byond_version_compat.dm
+++ b/code/__byond_version_compat.dm
@@ -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)
diff --git a/code/controllers/failsafe.dm b/code/controllers/failsafe.dm
index 270e8dbf398..4278dd46650 100644
--- a/code/controllers/failsafe.dm
+++ b/code/controllers/failsafe.dm
@@ -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()
diff --git a/code/controllers/master.dm b/code/controllers/master.dm
index 8b4b0f37cc9..6e14516cb3b 100644
--- a/code/controllers/master.dm
+++ b/code/controllers/master.dm
@@ -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
diff --git a/code/controllers/subsystem/garbage.dm b/code/controllers/subsystem/garbage.dm
index 2d971c4c2f5..bf9a8166256 100644
--- a/code/controllers/subsystem/garbage.dm
+++ b/code/controllers/subsystem/garbage.dm
@@ -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]"
diff --git a/code/controllers/subsystem/tickets/tickets.dm b/code/controllers/subsystem/tickets/tickets.dm
index 550e76dcbbb..094d2260b22 100644
--- a/code/controllers/subsystem/tickets/tickets.dm
+++ b/code/controllers/subsystem/tickets/tickets.dm
@@ -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
diff --git a/code/controllers/subsystem/timer.dm b/code/controllers/subsystem/timer.dm
index 30fbd33b45d..90846f74c1b 100644
--- a/code/controllers/subsystem/timer.dm
+++ b/code/controllers/subsystem/timer.dm
@@ -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("Timer Log
", "")
for(var/key in sorted)
text += "- [key] - [sorted[key]]
"
@@ -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("All active timers sorted by callback
", "")
for(var/key in sorted)
text += "- [key] - [sorted[key]]
"
@@ -612,7 +612,7 @@ GLOBAL_LIST_EMPTY(timers_by_type)
timers2[cbtxt] = 1
text += "All buckets, sorted by callback
"
- 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 += "- [key] - [sorted2[key]]
"
diff --git a/code/datums/log_viewer.dm b/code/datums/log_viewer.dm
index a0022d72527..9433683a5ec 100644
--- a/code/datums/log_viewer.dm
+++ b/code/datums/log_viewer.dm
@@ -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.
diff --git a/code/game/dna/dna2_helpers.dm b/code/game/dna/dna2_helpers.dm
index 4a43b421b2f..4ec6644753d 100644
--- a/code/game/dna/dna2_helpers.dm
+++ b/code/game/dna/dna2_helpers.dm
@@ -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))
diff --git a/code/game/dna/mutations/disabilities.dm b/code/game/dna/mutations/disabilities.dm
index ede8ae2d8ae..b64c7207951 100644
--- a/code/game/dna/mutations/disabilities.dm
+++ b/code/game/dna/mutations/disabilities.dm
@@ -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
diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm
index 52d568d83bf..de53b873395 100644
--- a/code/modules/admin/verbs/debug.dm
+++ b/code/modules/admin/verbs/debug.dm
@@ -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("List of things that have gone through qdel this round
")
- 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 += "- [path]
"
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index ae54ae0f51c..6610e732a4d 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -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("[key_name_admin(usr)] has respawned [key_name_admin(G_found)] as [new_character.real_name].", 1)
diff --git a/code/modules/client/preference/link_processing.dm b/code/modules/client/preference/link_processing.dm
index 163a96021a8..2326416ad12 100644
--- a/code/modules/client/preference/link_processing.dm
+++ b/code/modules/client/preference/link_processing.dm
@@ -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)
diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm
index e17fae4fa34..6aa45edaae6 100644
--- a/code/modules/clothing/chameleon.dm
+++ b/code/modules/clothing/chameleon.dm
@@ -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()
diff --git a/code/modules/mob/living/carbon/human/appearance.dm b/code/modules/mob/living/carbon/human/appearance.dm
index 2130fed8a18..33896b03324 100644
--- a/code/modules/mob/living/carbon/human/appearance.dm
+++ b/code/modules/mob/living/carbon/human/appearance.dm
@@ -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))
diff --git a/code/modules/mob/living/carbon/human/human_say.dm b/code/modules/mob/living/carbon/human/human_say.dm
index c465861677a..8e0b8acfb02 100644
--- a/code/modules/mob/living/carbon/human/human_say.dm
+++ b/code/modules/mob/living/carbon/human/human_say.dm
@@ -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)
diff --git a/code/modules/ruins/lavalandruin_code/puzzle.dm b/code/modules/ruins/lavalandruin_code/puzzle.dm
index 9caca1959d2..b9ebf8adb68 100644
--- a/code/modules/ruins/lavalandruin_code/puzzle.dm
+++ b/code/modules/ruins/lavalandruin_code/puzzle.dm
@@ -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')
diff --git a/code/modules/shuttle/navigation_computer.dm b/code/modules/shuttle/navigation_computer.dm
index c0c5f89fc74..963c0a75641 100644
--- a/code/modules/shuttle/navigation_computer.dm
+++ b/code/modules/shuttle/navigation_computer.dm
@@ -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)