From 84f69359a0787adaa4047d42614858097e448692 Mon Sep 17 00:00:00 2001 From: AnturK Date: Tue, 22 Nov 2022 08:55:43 +0100 Subject: [PATCH] More horrible 515 proc compatibility. (#71333) So i left over some basic `/whatever/proc/format` uses in the original PR this fixes it. Notable exceptions to the rule: - Paths in add_verb/remove_verb, we need full path instead of a name there to access verb metadata so we can't use proc ref macros there. - regex.Replace, found out that it does not accept call by name. Instead i added new REGEX_REPLACE_HANDLER so we can at least try to mark these. There's still leftover global procs that do not use GLOBAL_PROC_REF but they functionally equivalent so that's for later. I don't see any reasonable way to grep for this. But if you got any ideas please share. --- code/__DEFINES/regex.dm | 2 ++ code/controllers/subsystem/blackmarket.dm | 2 +- code/controllers/subsystem/eigenstate.dm | 2 +- code/controllers/subsystem/explosions.dm | 2 +- code/controllers/subsystem/garbage.dm | 4 ++-- code/controllers/subsystem/statpanel.dm | 2 +- code/controllers/subsystem/ticker.dm | 2 +- code/controllers/subsystem/wardrobe.dm | 6 +++--- code/datums/ai/monkey/monkey_behaviors.dm | 2 +- code/datums/components/COMPONENT_TEMPLATE.md | 4 ++-- code/datums/components/anti_magic.dm | 2 +- code/datums/components/geiger_sound.dm | 2 +- code/datums/components/seethrough.dm | 4 ++-- code/datums/components/soul_stealer.dm | 2 +- code/datums/components/tackle.dm | 2 +- code/datums/ductnet.dm | 2 +- code/datums/elements/decals/_decal.dm | 2 +- code/datums/elements/nerfed_pulling.dm | 2 +- code/datums/voice_of_god_command.dm | 10 +++++----- .../gamemodes/dynamic/dynamic_rulesets_midround.dm | 2 +- code/game/machinery/computer/arcade/orion_event.dm | 2 +- code/game/machinery/doors/airlock.dm | 4 ++-- .../objects/items/devices/scanners/gas_analyzer.dm | 2 +- code/game/objects/items/extinguisher.dm | 2 +- code/game/objects/items/food/pastries.dm | 2 +- code/game/objects/items/grenades/clusterbuster.dm | 4 ++-- code/game/objects/items/stacks/medical.dm | 4 ++-- code/game/objects/items/virgin_mary.dm | 2 +- code/game/objects/structures/displaycase.dm | 2 +- code/game/objects/structures/false_walls.dm | 2 +- code/game/objects/structures/kitchen_spike.dm | 2 +- code/game/objects/structures/training_machine.dm | 2 +- code/modules/admin/verbs/adminhelp.dm | 6 +++--- code/modules/admin/verbs/anonymousnames.dm | 2 +- code/modules/admin/view_variables/mark_datum.dm | 2 +- code/modules/antagonists/cult/cult_bastard_sword.dm | 2 +- code/modules/antagonists/cult/runes.dm | 4 ++-- .../antagonists/heretic/knowledge/starting_lore.dm | 2 +- code/modules/antagonists/heretic/magic/shadow_cloak.dm | 2 +- .../nukeop/equipment/nuclear_authentication_disk.dm | 2 +- .../nukeop/equipment/nuclear_bomb/_nuclear_bomb.dm | 2 +- code/modules/antagonists/wizard/equipment/soulstone.dm | 2 +- code/modules/asset_cache/transports/asset_transport.dm | 2 +- code/modules/client/client_procs.dm | 2 +- code/modules/client/preferences.dm | 2 +- code/modules/clothing/masks/hailer.dm | 2 +- code/modules/clothing/shoes/_shoes.dm | 2 +- code/modules/events/fake_virus.dm | 2 +- code/modules/events/ghost_role/sentient_disease.dm | 2 +- .../experiment/handlers/experiment_handler.dm | 2 +- code/modules/explorer_drone/exodrone.dm | 3 ++- code/modules/hallucination/fake_sound.dm | 2 +- code/modules/holodeck/computer.dm | 2 +- code/modules/jobs/job_exp.dm | 2 +- code/modules/jobs/job_types/_job.dm | 2 +- code/modules/lighting/lighting_object.dm | 2 +- .../mapping/space_management/space_reservation.dm | 2 +- code/modules/mining/equipment/resonator.dm | 2 +- code/modules/mob/dead/observer/observer.dm | 2 +- code/modules/mob/living/basic/vermin/mouse.dm | 2 +- code/modules/mob/living/carbon/carbon_defense.dm | 4 ++-- code/modules/mob/living/carbon/human/species.dm | 2 +- code/modules/mob/living/living.dm | 2 +- code/modules/mob/living/silicon/robot/robot.dm | 4 ++-- code/modules/mob/living/silicon/robot/robot_model.dm | 2 +- .../mob/living/simple_animal/friendly/drone/_drone.dm | 4 ++-- .../hostile/megafauna/blood_drunk_miner.dm | 2 +- .../simple_animal/hostile/megafauna/hierophant.dm | 6 +++--- .../mob/living/simple_animal/hostile/wumborian_fugu.dm | 2 +- code/modules/mob/mob.dm | 2 +- code/modules/mob/mob_say.dm | 6 +++--- .../modular_computers/computers/item/computer.dm | 2 +- .../modular_computers/computers/item/processor.dm | 2 +- code/modules/power/apc/apc_malf.dm | 2 +- code/modules/power/gravitygenerator.dm | 2 +- code/modules/power/singularity/boh_tear.dm | 2 +- code/modules/power/supermatter/supermatter.dm | 2 +- .../reagents/chemistry/machinery/reagentgrinder.dm | 2 +- .../reagents/chemistry/reagents/food_reagents.dm | 2 +- .../reagents/chemistry/reagents/other_reagents.dm | 2 +- .../reagents/reagent_containers/cups/glassbottle.dm | 4 ++-- code/modules/reagents/reagent_containers/spray.dm | 4 ++-- code/modules/reagents/reagent_containers/syringes.dm | 4 ++-- code/modules/research/rdmachines.dm | 2 +- code/modules/shuttle/navigation_computer.dm | 2 +- code/modules/unit_tests/surgeries.dm | 4 ++-- code/modules/vehicles/mecha/mech_fabricator.dm | 2 +- code/modules/vehicles/mecha/mecha_ai_interaction.dm | 2 +- code/modules/vehicles/mecha/mecha_control_console.dm | 2 +- code/modules/vehicles/mecha/working/clarke.dm | 2 +- code/modules/vehicles/vehicle_actions.dm | 2 +- code/modules/vehicles/vehicle_key.dm | 4 ++-- code/modules/wiremod/components/action/laserpointer.dm | 2 +- code/modules/wiremod/components/list/format.dm | 1 + tgstation.dme | 1 + 95 files changed, 124 insertions(+), 119 deletions(-) create mode 100644 code/__DEFINES/regex.dm diff --git a/code/__DEFINES/regex.dm b/code/__DEFINES/regex.dm new file mode 100644 index 00000000000..ea1aece0627 --- /dev/null +++ b/code/__DEFINES/regex.dm @@ -0,0 +1,2 @@ +/// 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/subsystem/blackmarket.dm b/code/controllers/subsystem/blackmarket.dm index 764b3a65409..357fa0df291 100644 --- a/code/controllers/subsystem/blackmarket.dm +++ b/code/controllers/subsystem/blackmarket.dm @@ -79,7 +79,7 @@ SUBSYSTEM_DEF(blackmarket) to_chat(recursive_loc_check(purchase.uplink.loc, /mob), span_notice("[purchase.uplink] flashes a message noting that the order is being teleported to [get_area(targetturf)] in 60 seconds.")) // do_teleport does not want to teleport items from nullspace, so it just forceMoves and does sparks. - addtimer(CALLBACK(src, /datum/controller/subsystem/blackmarket/proc/fake_teleport, purchase.entry.spawn_item(), targetturf), 60 SECONDS) + addtimer(CALLBACK(src, TYPE_PROC_REF(/datum/controller/subsystem/blackmarket,fake_teleport), purchase.entry.spawn_item(), targetturf), 60 SECONDS) queued_purchases -= purchase qdel(purchase) // Get the current location of the uplink if it exists, then throws the item from space at the station from a random direction. diff --git a/code/controllers/subsystem/eigenstate.dm b/code/controllers/subsystem/eigenstate.dm index d95f0b6b5ee..85c067f389e 100644 --- a/code/controllers/subsystem/eigenstate.dm +++ b/code/controllers/subsystem/eigenstate.dm @@ -40,7 +40,7 @@ SUBSYSTEM_DEF(eigenstates) RegisterSignal(target, COMSIG_CLOSET_INSERT, PROC_REF(use_eigenlinked_atom)) RegisterSignal(target, COMSIG_PARENT_QDELETING, PROC_REF(remove_eigen_entry)) RegisterSignal(target, COMSIG_ATOM_TOOL_ACT(TOOL_WELDER), PROC_REF(tool_interact)) - target.RegisterSignal(target, COMSIG_EIGENSTATE_ACTIVATE, /obj/structure/closet/proc/bust_open) + target.RegisterSignal(target, COMSIG_EIGENSTATE_ACTIVATE, TYPE_PROC_REF(/obj/structure/closet,bust_open)) ADD_TRAIT(target, TRAIT_BANNED_FROM_CARGO_SHUTTLE, REF(src)) var/obj/item = target if(item) diff --git a/code/controllers/subsystem/explosions.dm b/code/controllers/subsystem/explosions.dm index f290fb496a4..177beb45cae 100644 --- a/code/controllers/subsystem/explosions.dm +++ b/code/controllers/subsystem/explosions.dm @@ -557,7 +557,7 @@ SUBSYSTEM_DEF(explosions) listener.playsound_local(epicenter, null, echo_volume, TRUE, frequency, sound_to_use = echo_sound, distance_multiplier = 0) if(creaking) // 5 seconds after the bang, the station begins to creak - addtimer(CALLBACK(listener, /mob/proc/playsound_local, epicenter, null, rand(FREQ_LOWER, FREQ_UPPER), TRUE, frequency, null, null, FALSE, hull_creaking_sound, 0), CREAK_DELAY) + addtimer(CALLBACK(listener, TYPE_PROC_REF(/mob, playsound_local), epicenter, null, rand(FREQ_LOWER, FREQ_UPPER), TRUE, frequency, null, null, FALSE, hull_creaking_sound, 0), CREAK_DELAY) #undef CREAK_DELAY #undef QUAKE_CREAK_PROB diff --git a/code/controllers/subsystem/garbage.dm b/code/controllers/subsystem/garbage.dm index 65c1f5d083d..ad7e07c8290 100644 --- a/code/controllers/subsystem/garbage.dm +++ b/code/controllers/subsystem/garbage.dm @@ -195,11 +195,11 @@ SUBSYSTEM_DEF(garbage) if (GC_QUEUE_CHECK) #ifdef REFERENCE_TRACKING if(reference_find_on_fail[refID]) - INVOKE_ASYNC(D, /datum/proc/find_references) + INVOKE_ASYNC(D, TYPE_PROC_REF(/datum,find_references)) ref_searching = TRUE #ifdef GC_FAILURE_HARD_LOOKUP else - INVOKE_ASYNC(D, /datum/proc/find_references) + INVOKE_ASYNC(D, TYPE_PROC_REF(/datum,find_references)) ref_searching = TRUE #endif reference_find_on_fail -= refID diff --git a/code/controllers/subsystem/statpanel.dm b/code/controllers/subsystem/statpanel.dm index 0557fe4de39..29e088394a1 100644 --- a/code/controllers/subsystem/statpanel.dm +++ b/code/controllers/subsystem/statpanel.dm @@ -227,7 +227,7 @@ SUBSYSTEM_DEF(statpanels) // Now, we're gonna queue image generation out of those refs to_make += turf_item already_seen[turf_item] = OBJ_IMAGE_LOADING - obj_window.RegisterSignal(turf_item, COMSIG_PARENT_QDELETING, /datum/object_window_info/proc/viewing_atom_deleted) // we reset cache if anything in it gets deleted + obj_window.RegisterSignal(turf_item, COMSIG_PARENT_QDELETING, TYPE_PROC_REF(/datum/object_window_info,viewing_atom_deleted)) // we reset cache if anything in it gets deleted return turf_items #undef OBJ_IMAGE_LOADING diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 492aabc58cd..a44c7f89bdc 100755 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -268,7 +268,7 @@ SUBSYSTEM_DEF(ticker) SEND_SIGNAL(src, COMSIG_TICKER_ROUND_STARTING, world.time) log_world("Game start took [(world.timeofday - init_start)/10]s") - INVOKE_ASYNC(SSdbcore, /datum/controller/subsystem/dbcore/proc/SetRoundStart) + INVOKE_ASYNC(SSdbcore, TYPE_PROC_REF(/datum/controller/subsystem/dbcore,SetRoundStart)) to_chat(world, span_notice("Welcome to [station_name()], enjoy your stay!")) SEND_SOUND(world, sound(SSstation.announcer.get_rand_welcome_sound())) diff --git a/code/controllers/subsystem/wardrobe.dm b/code/controllers/subsystem/wardrobe.dm index 06f0d948f79..58f81f86ad4 100644 --- a/code/controllers/subsystem/wardrobe.dm +++ b/code/controllers/subsystem/wardrobe.dm @@ -305,12 +305,12 @@ SUBSYSTEM_DEF(wardrobe) var/list/play_with = new /list(WARDROBE_CALLBACK_REMOVE) // Turns out there's a global list of pdas. Let's work around that yeah? play_with = new /list(WARDROBE_CALLBACK_REMOVE) // Don't want organs rotting on the job - play_with[WARDROBE_CALLBACK_INSERT] = CALLBACK(null, /obj/item/organ/proc/enter_wardrobe) - play_with[WARDROBE_CALLBACK_REMOVE] = CALLBACK(null, /obj/item/organ/proc/exit_wardrobe) + play_with[WARDROBE_CALLBACK_INSERT] = CALLBACK(null, TYPE_PROC_REF(/obj/item/organ,enter_wardrobe)) + play_with[WARDROBE_CALLBACK_REMOVE] = CALLBACK(null, TYPE_PROC_REF(/obj/item/organ,exit_wardrobe)) initial_callbacks[/obj/item/organ] = play_with play_with = new /list(WARDROBE_CALLBACK_REMOVE) - play_with[WARDROBE_CALLBACK_REMOVE] = CALLBACK(null, /obj/item/storage/box/survival/proc/wardrobe_removal) + play_with[WARDROBE_CALLBACK_REMOVE] = CALLBACK(null, TYPE_PROC_REF(/obj/item/storage/box/survival,wardrobe_removal)) initial_callbacks[/obj/item/storage/box/survival] = play_with /datum/controller/subsystem/wardrobe/proc/load_outfits() diff --git a/code/datums/ai/monkey/monkey_behaviors.dm b/code/datums/ai/monkey/monkey_behaviors.dm index ec478c2e798..15ffcc28d06 100644 --- a/code/datums/ai/monkey/monkey_behaviors.dm +++ b/code/datums/ai/monkey/monkey_behaviors.dm @@ -13,7 +13,7 @@ item_blacklist[target] = TRUE if(istype(controller, /datum/ai_controller/monkey)) //What the fuck - controller.RegisterSignal(target, COMSIG_PARENT_QDELETING, /datum/ai_controller/monkey/proc/target_del) + controller.RegisterSignal(target, COMSIG_PARENT_QDELETING, TYPE_PROC_REF(/datum/ai_controller/monkey,target_del)) controller.blackboard[BB_MONKEY_PICKUPTARGET] = null diff --git a/code/datums/components/COMPONENT_TEMPLATE.md b/code/datums/components/COMPONENT_TEMPLATE.md index 223347578e2..7b082058885 100644 --- a/code/datums/components/COMPONENT_TEMPLATE.md +++ b/code/datums/components/COMPONENT_TEMPLATE.md @@ -16,8 +16,8 @@ See _component.dm for detailed explanations send_to_playing_players(myargtwo) /datum/component/mycomponent/RegisterWithParent() - RegisterSignal(parent, COMSIG_NOT_REAL, ./proc/signalproc) // RegisterSignal can take a signal name by itself, - RegisterSignal(parent, list(COMSIG_NOT_REAL_EITHER, COMSIG_ALMOST_REAL), ./proc/otherproc) // or a list of them to assign to the same proc + RegisterSignal(parent, COMSIG_NOT_REAL, PROC_REF(signalproc)) // RegisterSignal can take a signal name by itself, + RegisterSignal(parent, list(COMSIG_NOT_REAL_EITHER, COMSIG_ALMOST_REAL), PROC_REF(otherproc)) // or a list of them to assign to the same proc /datum/component/mycomponent/UnregisterFromParent() UnregisterSignal(parent, COMSIG_NOT_REAL) // UnregisterSignal has similar behavior diff --git a/code/datums/components/anti_magic.dm b/code/datums/components/anti_magic.dm index 3668b7f905a..91cfe5c9b4a 100644 --- a/code/datums/components/anti_magic.dm +++ b/code/datums/components/anti_magic.dm @@ -133,7 +133,7 @@ user.mob_light(_range = 2, _color = antimagic_color, _duration = 5 SECONDS) user.add_overlay(antimagic_effect) - addtimer(CALLBACK(user, /atom/proc/cut_overlay, antimagic_effect), 50) + addtimer(CALLBACK(user, TYPE_PROC_REF(/atom, cut_overlay), antimagic_effect), 50) if(ismob(parent)) return COMPONENT_MAGIC_BLOCKED diff --git a/code/datums/components/geiger_sound.dm b/code/datums/components/geiger_sound.dm index b2f8baa76eb..76ac0c62507 100644 --- a/code/datums/components/geiger_sound.dm +++ b/code/datums/components/geiger_sound.dm @@ -45,7 +45,7 @@ sound.last_radiation_pulse = pulse_information sound.start() - addtimer(CALLBACK(sound, /datum/looping_sound/proc/stop), TIME_WITHOUT_RADIATION_BEFORE_RESET, TIMER_UNIQUE | TIMER_OVERRIDE) + addtimer(CALLBACK(sound, TYPE_PROC_REF(/datum/looping_sound,stop)), TIME_WITHOUT_RADIATION_BEFORE_RESET, TIMER_UNIQUE | TIMER_OVERRIDE) /datum/component/geiger_sound/proc/on_moved(atom/source) SIGNAL_HANDLER diff --git a/code/datums/components/seethrough.dm b/code/datums/components/seethrough.dm index 450b3a6c421..963415b3762 100644 --- a/code/datums/components/seethrough.dm +++ b/code/datums/components/seethrough.dm @@ -91,7 +91,7 @@ UnregisterSignal(mob, COMSIG_MOB_LOGOUT) //after playing the fade-in animation, remove the screen obj - addtimer(CALLBACK(src, /datum/component/seethrough/proc/clear_image, trickery_image, mob.client), animation_time) + addtimer(CALLBACK(src, TYPE_PROC_REF(/datum/component/seethrough,clear_image), trickery_image, mob.client), animation_time) ///Apply the trickery image and animation /datum/component/seethrough/proc/trick_mob(mob/fool) @@ -128,7 +128,7 @@ clear_all_images() //Timer override, so if our atom keeps moving the timer is reset until they stop for X time - addtimer(CALLBACK(src, /datum/component/seethrough/proc/setup_perimeter, parent), perimeter_reset_timer, TIMER_OVERRIDE | TIMER_UNIQUE) + addtimer(CALLBACK(src, TYPE_PROC_REF(/datum/component/seethrough,setup_perimeter), parent), perimeter_reset_timer, TIMER_OVERRIDE | TIMER_UNIQUE) ///Remove a screen image from a client /datum/component/seethrough/proc/clear_image(image/removee, client/remove_from) diff --git a/code/datums/components/soul_stealer.dm b/code/datums/components/soul_stealer.dm index 5e45de97419..ed2ca0567f6 100644 --- a/code/datums/components/soul_stealer.dm +++ b/code/datums/components/soul_stealer.dm @@ -49,7 +49,7 @@ if(istype(target, /obj/structure/constructshell) && souls.len) var/obj/item/soulstone/soulstone = souls[1] - INVOKE_ASYNC(soulstone, /obj/item/soulstone/proc/transfer_to_construct, target, user) + INVOKE_ASYNC(soulstone, TYPE_PROC_REF(/obj/item/soulstone, transfer_to_construct), target, user) ///soulstone will be deleted from souls if successful /datum/component/soul_stealer/proc/try_capture(mob/living/carbon/human/victim, mob/living/captor) diff --git a/code/datums/components/tackle.dm b/code/datums/components/tackle.dm index 5ffc5d5ef0c..1a606e7399d 100644 --- a/code/datums/components/tackle.dm +++ b/code/datums/components/tackle.dm @@ -181,7 +181,7 @@ user.Knockdown(30) if(ishuman(target) && !T.has_movespeed_modifier(/datum/movespeed_modifier/shove)) T.add_movespeed_modifier(/datum/movespeed_modifier/shove) // maybe define a slightly more severe/longer slowdown for this - addtimer(CALLBACK(T, /mob/living/carbon/proc/clear_shove_slowdown), SHOVE_SLOWDOWN_LENGTH * 2) + addtimer(CALLBACK(T, TYPE_PROC_REF(/mob/living/carbon, clear_shove_slowdown)), SHOVE_SLOWDOWN_LENGTH * 2) if(-1 to 0) // decent hit, both parties are about equally inconvenienced user.visible_message(span_warning("[user] lands a passable [tackle_word] on [target], sending them both tumbling!"), span_userdanger("You land a passable [tackle_word] on [target], sending you both tumbling!"), ignored_mobs = target) diff --git a/code/datums/ductnet.dm b/code/datums/ductnet.dm index 5d1b230a181..e4dd3959c22 100644 --- a/code/datums/ductnet.dm +++ b/code/datums/ductnet.dm @@ -21,7 +21,7 @@ /datum/ductnet/proc/remove_duct(obj/machinery/duct/ducting) destroy_network(FALSE) for(var/obj/machinery/duct/D in ducting.neighbours) - addtimer(CALLBACK(D, /obj/machinery/duct/proc/attempt_connect)) //needs to happen after qdel + addtimer(CALLBACK(D, TYPE_PROC_REF(/obj/machinery/duct,attempt_connect))) //needs to happen after qdel qdel(src) ///add a plumbing object to either demanders or suppliers diff --git a/code/datums/elements/decals/_decal.dm b/code/datums/elements/decals/_decal.dm index fefbd7b5170..f5fd4a02ead 100644 --- a/code/datums/elements/decals/_decal.dm +++ b/code/datums/elements/decals/_decal.dm @@ -88,7 +88,7 @@ if(isitem(target)) INVOKE_ASYNC(target, TYPE_PROC_REF(/obj/item/, update_slot_icon), TRUE) if(_dir) - SSdcs.RegisterSignal(target,COMSIG_ATOM_DIR_CHANGE, /datum/controller/subsystem/processing/dcs/proc/rotate_decals, TRUE) + SSdcs.RegisterSignal(target,COMSIG_ATOM_DIR_CHANGE, TYPE_PROC_REF(/datum/controller/subsystem/processing/dcs, rotate_decals), TRUE) if(!isnull(_smoothing)) RegisterSignal(target, COMSIG_ATOM_SMOOTHED_ICON, PROC_REF(smooth_react), TRUE) if(_cleanable) diff --git a/code/datums/elements/nerfed_pulling.dm b/code/datums/elements/nerfed_pulling.dm index e4643551a8d..735d4b30f9d 100644 --- a/code/datums/elements/nerfed_pulling.dm +++ b/code/datums/elements/nerfed_pulling.dm @@ -32,7 +32,7 @@ return source.add_movespeed_modifier(/datum/movespeed_modifier/nerfed_bump) - addtimer(CALLBACK(source, /mob/proc/remove_movespeed_modifier, /datum/movespeed_modifier/nerfed_bump), 1 SECONDS, TIMER_OVERRIDE | TIMER_UNIQUE) + addtimer(CALLBACK(source, TYPE_PROC_REF(/mob, remove_movespeed_modifier), /datum/movespeed_modifier/nerfed_bump), 1 SECONDS, TIMER_OVERRIDE | TIMER_UNIQUE) /datum/element/nerfed_pulling/proc/on_updating_pull_movespeed(mob/living/source) SIGNAL_HANDLER diff --git a/code/datums/voice_of_god_command.dm b/code/datums/voice_of_god_command.dm index 9159042adfa..4c2526f6cac 100644 --- a/code/datums/voice_of_god_command.dm +++ b/code/datums/voice_of_god_command.dm @@ -296,7 +296,7 @@ GLOBAL_LIST_INIT(voice_of_god_commands, init_voice_of_god_commands()) /datum/voice_of_god_command/say_my_name/execute(list/listeners, mob/living/user, power_multiplier = 1, message) var/iteration = 1 for(var/mob/living/target as anything in listeners) - addtimer(CALLBACK(target, /atom/movable/proc/say, user.name), 0.5 SECONDS * iteration) + addtimer(CALLBACK(target, TYPE_PROC_REF(/atom/movable, say), user.name), 0.5 SECONDS * iteration) iteration++ /// This command forces the listeners to say "Who's there?". @@ -306,7 +306,7 @@ GLOBAL_LIST_INIT(voice_of_god_commands, init_voice_of_god_commands()) /datum/voice_of_god_command/knock_knock/execute(list/listeners, mob/living/user, power_multiplier = 1, message) var/iteration = 1 for(var/mob/living/target as anything in listeners) - addtimer(CALLBACK(target, /atom/movable/proc/say, "Who's there?"), 0.5 SECONDS * iteration) + addtimer(CALLBACK(target, TYPE_PROC_REF(/atom/movable, say), "Who's there?"), 0.5 SECONDS * iteration) iteration++ /// This command forces silicon listeners to state all their laws. @@ -316,7 +316,7 @@ GLOBAL_LIST_INIT(voice_of_god_commands, init_voice_of_god_commands()) /datum/voice_of_god_command/state_laws/execute(list/listeners, mob/living/user, power_multiplier = 1, message) var/iteration = 0 for(var/mob/living/silicon/target in listeners) - addtimer(CALLBACK(target, /mob/living/silicon/proc/statelaws, TRUE), (3 SECONDS * iteration) + 0.5 SECONDS) + addtimer(CALLBACK(target, TYPE_PROC_REF(/mob/living/silicon, statelaws), TRUE), (3 SECONDS * iteration) + 0.5 SECONDS) iteration++ /// This command forces the listeners to take step in a direction chosen by the user, otherwise a random cardinal one. @@ -376,7 +376,7 @@ GLOBAL_LIST_INIT(voice_of_god_commands, init_voice_of_god_commands()) /datum/voice_of_god_command/speak/execute(list/listeners, mob/living/user, power_multiplier = 1, message) var/iteration = 1 for(var/mob/living/target in listeners) - addtimer(CALLBACK(target, /atom/movable/proc/say, pick_list_replacements(BRAIN_DAMAGE_FILE, "brain_damage")), 0.5 SECONDS * iteration) + addtimer(CALLBACK(target, TYPE_PROC_REF(/atom/movable, say), pick_list_replacements(BRAIN_DAMAGE_FILE, "brain_damage")), 0.5 SECONDS * iteration) iteration++ /// This command forces the listeners to get the fuck up, resetting all stuns. @@ -417,7 +417,7 @@ GLOBAL_LIST_INIT(voice_of_god_commands, init_voice_of_god_commands()) var/iteration = 1 for(var/mob/living/target as anything in listeners) if(prob(25)) - addtimer(CALLBACK(target, /atom/movable/proc/say, "HOW HIGH?!!"), 0.5 SECONDS * iteration) + addtimer(CALLBACK(target, TYPE_PROC_REF(/atom/movable, say), "HOW HIGH?!!"), 0.5 SECONDS * iteration) else addtimer(CALLBACK(target, TYPE_PROC_REF(/mob/living/, emote), "jump"), 0.5 SECONDS * iteration) iteration++ diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm index 45c6bbb6c43..85ee9a7e454 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm @@ -780,7 +780,7 @@ /datum/dynamic_ruleset/midround/from_ghosts/sentient_disease/generate_ruleset_body(mob/applicant) var/mob/camera/disease/virus = new /mob/camera/disease(SSmapping.get_station_center()) virus.key = applicant.key - INVOKE_ASYNC(virus, /mob/camera/disease/proc/pick_name) + INVOKE_ASYNC(virus, TYPE_PROC_REF(/mob/camera/disease, pick_name)) message_admins("[ADMIN_LOOKUPFLW(virus)] has been made into a sentient disease by the midround ruleset.") log_game("[key_name(virus)] was spawned as a sentient disease by the midround ruleset.") return virus diff --git a/code/game/machinery/computer/arcade/orion_event.dm b/code/game/machinery/computer/arcade/orion_event.dm index 129bc6c83eb..0e812492577 100644 --- a/code/game/machinery/computer/arcade/orion_event.dm +++ b/code/game/machinery/computer/arcade/orion_event.dm @@ -438,7 +438,7 @@ game.say("A miniature black hole suddenly appears in front of [game], devouring [gamer] alive!") gamer.Stun(200, ignore_canstun = TRUE) //you can't run :^) var/black_hole = new /obj/singularity/orion(gamer.loc) - addtimer(CALLBACK(game, /atom/movable/proc/say, "[black_hole] winks out, just as suddenly as it appeared."), 50) + addtimer(CALLBACK(game, TYPE_PROC_REF(/atom/movable, say), "[black_hole] winks out, just as suddenly as it appeared."), 50) QDEL_IN(black_hole, 5 SECONDS) #define BUTTON_DOCK "Dock" diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 87101b2f6bb..3e9dbe736ca 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -568,7 +568,7 @@ if(!machine_stat) update_icon(ALL, AIRLOCK_DENY) playsound(src,doorDeni,50,FALSE,3) - addtimer(CALLBACK(src, /atom/proc/update_icon, ALL, AIRLOCK_CLOSED), AIRLOCK_DENY_ANIMATION_TIME) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_icon), ALL, AIRLOCK_CLOSED), AIRLOCK_DENY_ANIMATION_TIME) /obj/machinery/door/airlock/examine(mob/user) . = ..() @@ -741,7 +741,7 @@ /obj/machinery/door/airlock/proc/on_attack_hand(atom/source, mob/user, list/modifiers) SIGNAL_HANDLER - INVOKE_ASYNC(src, /atom/proc/attack_hand, user, modifiers) + INVOKE_ASYNC(src, TYPE_PROC_REF(/atom, attack_hand), user, modifiers) return COMPONENT_CANCEL_ATTACK_CHAIN /obj/machinery/door/airlock/attack_hand(mob/user, list/modifiers) diff --git a/code/game/objects/items/devices/scanners/gas_analyzer.dm b/code/game/objects/items/devices/scanners/gas_analyzer.dm index 004fcb5a25c..b08f315a10a 100644 --- a/code/game/objects/items/devices/scanners/gas_analyzer.dm +++ b/code/game/objects/items/devices/scanners/gas_analyzer.dm @@ -79,7 +79,7 @@ else to_chat(user, span_warning("[src]'s barometer function says a storm will land in approximately [butchertime(fixed)].")) cooldown = TRUE - addtimer(CALLBACK(src,/obj/item/analyzer/proc/ping), cooldown_time) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/analyzer, ping)), cooldown_time) /obj/item/analyzer/proc/ping() if(isliving(loc)) diff --git a/code/game/objects/items/extinguisher.dm b/code/game/objects/items/extinguisher.dm index c2b47e4b14f..0da0505f354 100644 --- a/code/game/objects/items/extinguisher.dm +++ b/code/game/objects/items/extinguisher.dm @@ -181,7 +181,7 @@ if(user.buckled && isobj(user.buckled) && !user.buckled.anchored) var/obj/B = user.buckled var/movementdirection = turn(direction,180) - addtimer(CALLBACK(src, /obj/item/extinguisher/proc/move_chair, B, movementdirection), 1) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/extinguisher, move_chair), B, movementdirection), 1) else user.newtonian_move(turn(direction, 180)) diff --git a/code/game/objects/items/food/pastries.dm b/code/game/objects/items/food/pastries.dm index 71cd1e59b33..44f5ded7abc 100644 --- a/code/game/objects/items/food/pastries.dm +++ b/code/game/objects/items/food/pastries.dm @@ -142,7 +142,7 @@ /obj/item/food/fortunecookie/MakeLeaveTrash() if(trash_type) - AddElement(/datum/element/food_trash, trash_type, food_flags, /obj/item/food/fortunecookie/proc/get_fortune) + AddElement(/datum/element/food_trash, trash_type, food_flags, TYPE_PROC_REF(/obj/item/food/fortunecookie, get_fortune)) /obj/item/food/poppypretzel name = "poppy pretzel" diff --git a/code/game/objects/items/grenades/clusterbuster.dm b/code/game/objects/items/grenades/clusterbuster.dm index b770bfa5d9b..a12c302c188 100644 --- a/code/game/objects/items/grenades/clusterbuster.dm +++ b/code/game/objects/items/grenades/clusterbuster.dm @@ -87,7 +87,7 @@ var/obj/item/grenade/grenade = new type(loc) if(istype(grenade)) grenade.active = TRUE - addtimer(CALLBACK(grenade, /obj/item/grenade/proc/detonate), rand(RANDOM_DETONATE_MIN_TIME, RANDOM_DETONATE_MAX_TIME)) + addtimer(CALLBACK(grenade, TYPE_PROC_REF(/obj/item/grenade, detonate)), rand(RANDOM_DETONATE_MIN_TIME, RANDOM_DETONATE_MAX_TIME)) var/steps = rand(1, 4) for(var/step in 1 to steps) step_away(src, loc) @@ -116,7 +116,7 @@ var/chosen = pick(subtypesof(/obj/item/slime_extract)) var/obj/item/slime_extract/slime_extract = new chosen(loc) if(volatile) - addtimer(CALLBACK(slime_extract, /obj/item/slime_extract/proc/activate_slime), rand(RANDOM_DETONATE_MIN_TIME, RANDOM_DETONATE_MAX_TIME)) + addtimer(CALLBACK(slime_extract, TYPE_PROC_REF(/obj/item/slime_extract, activate_slime)), rand(RANDOM_DETONATE_MIN_TIME, RANDOM_DETONATE_MAX_TIME)) var/steps = rand(1, 4) for(var/step in 1 to steps) step_away(src, loc) diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 5ce3d16ac68..1104f4a1e80 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -43,12 +43,12 @@ if(patient == user) if(!silent) user.visible_message(span_notice("[user] starts to apply [src] on [user.p_them()]self..."), span_notice("You begin applying [src] on yourself...")) - if(!do_mob(user, patient, self_delay, extra_checks=CALLBACK(patient, /mob/living/proc/try_inject, user, null, INJECT_TRY_SHOW_ERROR_MESSAGE))) + if(!do_mob(user, patient, self_delay, extra_checks=CALLBACK(patient, TYPE_PROC_REF(/mob/living, try_inject), user, null, INJECT_TRY_SHOW_ERROR_MESSAGE))) return else if(other_delay) if(!silent) user.visible_message(span_notice("[user] starts to apply [src] on [patient]."), span_notice("You begin applying [src] on [patient]...")) - if(!do_mob(user, patient, other_delay, extra_checks=CALLBACK(patient, /mob/living/proc/try_inject, user, null, INJECT_TRY_SHOW_ERROR_MESSAGE))) + if(!do_mob(user, patient, other_delay, extra_checks=CALLBACK(patient, TYPE_PROC_REF(/mob/living, try_inject), user, null, INJECT_TRY_SHOW_ERROR_MESSAGE))) return if(heal(patient, user)) diff --git a/code/game/objects/items/virgin_mary.dm b/code/game/objects/items/virgin_mary.dm index 291ddbb2207..a8447e07811 100644 --- a/code/game/objects/items/virgin_mary.dm +++ b/code/game/objects/items/virgin_mary.dm @@ -49,7 +49,7 @@ user.visible_message(span_suicide("[user] starts saying their Hail Mary's at a terrifying pace! It looks like [user.p_theyre()] trying to enter the afterlife!")) user.say("Hail Mary, full of grace, the Lord is with thee. Blessed are thou amongst women, and blessed is the fruit of thy womb, Jesus. Holy Mary, mother of God, pray for us sinners, now and at the hour of our death. Amen. ", forced = /obj/item/virgin_mary) addtimer(CALLBACK(src, PROC_REF(manual_suicide), user), 75) - addtimer(CALLBACK(user, /atom/movable/proc/say, "O my Mother, preserve me this day from mortal sin..."), 50) + addtimer(CALLBACK(user, TYPE_PROC_REF(/atom/movable, say), "O my Mother, preserve me this day from mortal sin..."), 50) return MANUAL_SUICIDE /obj/item/virgin_mary/proc/manual_suicide(mob/living/user) diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm index a46d74e5426..fb8393ccbae 100644 --- a/code/game/objects/structures/displaycase.dm +++ b/code/game/objects/structures/displaycase.dm @@ -103,7 +103,7 @@ alarmed.burglaralert(src) alarm_manager.send_alarm(ALARM_BURGLAR) - addtimer(CALLBACK(alarm_manager, /datum/alarm_handler/proc/clear_alarm, ALARM_BURGLAR), 1 MINUTES) + addtimer(CALLBACK(alarm_manager, TYPE_PROC_REF(/datum/alarm_handler, clear_alarm), ALARM_BURGLAR), 1 MINUTES) playsound(src, 'sound/effects/alert.ogg', 50, TRUE) diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index df7f3c8cdae..067f6c203e5 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -47,7 +47,7 @@ for(var/mob/living/obstacle in srcturf) //Stop people from using this as a shield opening = FALSE return - addtimer(CALLBACK(src, /obj/structure/falsewall/proc/toggle_open), 5) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/structure/falsewall, toggle_open)), 5) /obj/structure/falsewall/proc/toggle_open() if(!QDELETED(src)) diff --git a/code/game/objects/structures/kitchen_spike.dm b/code/game/objects/structures/kitchen_spike.dm index 4fdaea63eb9..297173a5f64 100644 --- a/code/game/objects/structures/kitchen_spike.dm +++ b/code/game/objects/structures/kitchen_spike.dm @@ -105,7 +105,7 @@ /obj/structure/kitchenspike/post_unbuckle_mob(mob/living/buckled_mob) buckled_mob.adjustBruteLoss(30) - INVOKE_ASYNC(buckled_mob, /mob/proc/emote, "scream") + INVOKE_ASYNC(buckled_mob, TYPE_PROC_REF(/mob, emote), "scream") buckled_mob.AdjustParalyzed(20) var/matrix/m180 = matrix(buckled_mob.transform) m180.Turn(180) diff --git a/code/game/objects/structures/training_machine.dm b/code/game/objects/structures/training_machine.dm index d04b27b360f..0b050a477c0 100644 --- a/code/game/objects/structures/training_machine.dm +++ b/code/game/objects/structures/training_machine.dm @@ -165,7 +165,7 @@ UnregisterSignal(attached_item, COMSIG_PARENT_QDELETING) qdel(attached_item) else if (user) - INVOKE_ASYNC(user, /mob/proc/put_in_hands, attached_item) + INVOKE_ASYNC(user, TYPE_PROC_REF(/mob, put_in_hands), attached_item) else attached_item.forceMove(drop_location()) if (throwing && !QDELETED(attached_item)) //Fun little thing where we throw out the old attached item when emagged diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index ddb8bbe1098..1ca578bf9ca 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -126,7 +126,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) var/datum/admin_help/T = C.current_ticket T.AddInteraction("Client disconnected.") //Gotta async this cause clients only logout on destroy, and sleeping in destroy is disgusting - INVOKE_ASYNC(SSblackbox, /datum/controller/subsystem/blackbox/proc/LogAhelp, T.id, "Disconnected", "Client disconnected", C.ckey) + INVOKE_ASYNC(SSblackbox, TYPE_PROC_REF(/datum/controller/subsystem/blackbox, LogAhelp), T.id, "Disconnected", "Client disconnected", C.ckey) T.initiator = null //Get a ticket given a ckey @@ -356,7 +356,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) //Removes the ahelp verb and returns it after 2 minutes /datum/admin_help/proc/TimeoutVerb() remove_verb(initiator, /client/verb/adminhelp) - initiator.adminhelptimerid = addtimer(CALLBACK(initiator, /client/proc/giveadminhelpverb), 1200, TIMER_STOPPABLE) //2 minute cooldown of admin helps + initiator.adminhelptimerid = addtimer(CALLBACK(initiator, TYPE_PROC_REF(/client, giveadminhelpverb)), 1200, TIMER_STOPPABLE) //2 minute cooldown of admin helps //private /datum/admin_help/proc/FullMonty(ref_src) @@ -485,7 +485,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) state = AHELP_RESOLVED GLOB.ahelp_tickets.ListInsert(src) - addtimer(CALLBACK(initiator, /client/proc/giveadminhelpverb), 50) + addtimer(CALLBACK(initiator, TYPE_PROC_REF(/client, giveadminhelpverb)), 50) AddInteraction("Resolved by [key_name].", player_message = "Ticket resolved!") to_chat(initiator, span_adminhelp("Your ticket has been resolved by an admin. The Adminhelp verb will be returned to you shortly."), confidential = TRUE) diff --git a/code/modules/admin/verbs/anonymousnames.dm b/code/modules/admin/verbs/anonymousnames.dm index c6d8a8fc094..6f01b88f113 100644 --- a/code/modules/admin/verbs/anonymousnames.dm +++ b/code/modules/admin/verbs/anonymousnames.dm @@ -112,7 +112,7 @@ GLOBAL_DATUM(current_anonymous_theme, /datum/anonymous_theme) continue var/old_name = player.real_name //before restoration if(issilicon(player)) - INVOKE_ASYNC(player, /mob/proc/apply_pref_name, "[isAI(player) ? /datum/preference/name/ai : /datum/preference/name/cyborg]", player.client) + INVOKE_ASYNC(player, TYPE_PROC_REF(/mob, apply_pref_name), "[isAI(player) ? /datum/preference/name/ai : /datum/preference/name/cyborg]", player.client) else player.client.prefs.apply_prefs_to(player) // This is not sound logic, as the prefs may have changed since then. player.fully_replace_character_name(old_name, player.real_name) //this changes IDs and PDAs and whatnot diff --git a/code/modules/admin/view_variables/mark_datum.dm b/code/modules/admin/view_variables/mark_datum.dm index 11dba5b8b8c..b7296f2553a 100644 --- a/code/modules/admin/view_variables/mark_datum.dm +++ b/code/modules/admin/view_variables/mark_datum.dm @@ -5,7 +5,7 @@ holder.UnregisterSignal(holder.marked_datum, COMSIG_PARENT_QDELETING) vv_update_display(holder.marked_datum, "marked", "") holder.marked_datum = D - holder.RegisterSignal(holder.marked_datum, COMSIG_PARENT_QDELETING, /datum/admins/proc/handle_marked_del) + holder.RegisterSignal(holder.marked_datum, COMSIG_PARENT_QDELETING, TYPE_PROC_REF(/datum/admins, handle_marked_del)) vv_update_display(D, "marked", VV_MSG_MARKED) /client/proc/mark_datum_mapview(datum/D as mob|obj|turf|area in view(view)) diff --git a/code/modules/antagonists/cult/cult_bastard_sword.dm b/code/modules/antagonists/cult/cult_bastard_sword.dm index edbdd84f065..30fe655f69b 100644 --- a/code/modules/antagonists/cult/cult_bastard_sword.dm +++ b/code/modules/antagonists/cult/cult_bastard_sword.dm @@ -48,7 +48,7 @@ user.add_stun_absorption("bloody bastard sword", duration, 2, "doesn't even flinch as the sword's power courses through them!", "You shrug off the stun!", " glowing with a blazing red aura!") user.spin(duration, 1) animate(user, color = oldcolor, time = duration, easing = EASE_IN) - addtimer(CALLBACK(user, /atom/proc/update_atom_colour), duration) + addtimer(CALLBACK(user, TYPE_PROC_REF(/atom, update_atom_colour)), duration) block_chance = 100 slowdown += 1.5 spinning = TRUE diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index c576b39ba06..2866ff443f7 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -179,7 +179,7 @@ structure_check() searches for nearby cultist structures required for the invoca var/oldcolor = color color = rgb(255, 0, 0) animate(src, color = oldcolor, time = 5) - addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 5) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 5) //Malformed Rune: This forms if a rune is not drawn correctly. Invoking it does nothing but hurt the user. /obj/effect/rune/malformed @@ -244,7 +244,7 @@ structure_check() searches for nearby cultist structures required for the invoca ..() do_sacrifice(L, invokers) animate(src, color = oldcolor, time = 5) - addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 5) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 5) Cult_team.check_size() // Triggers the eye glow or aura effects if the cult has grown large enough relative to the crew rune_in_use = FALSE diff --git a/code/modules/antagonists/heretic/knowledge/starting_lore.dm b/code/modules/antagonists/heretic/knowledge/starting_lore.dm index 756d00f2eee..65f5bc8201d 100644 --- a/code/modules/antagonists/heretic/knowledge/starting_lore.dm +++ b/code/modules/antagonists/heretic/knowledge/starting_lore.dm @@ -151,7 +151,7 @@ GLOBAL_LIST_INIT(heretic_start_knowledge, initialize_starting_knowledge()) if(our_replacement_heart) // Throw our current heart out of our chest, violently user.visible_message(span_boldwarning("[user]'s [our_new_heart.name] bursts suddenly out of [user.p_their()] chest!")) - INVOKE_ASYNC(user, /mob/proc/emote, "scream") + INVOKE_ASYNC(user, TYPE_PROC_REF(/mob, emote), "scream") user.apply_damage(20, BRUTE, BODY_ZONE_CHEST) // And put our organic heart in its place our_replacement_heart.Insert(user, TRUE, TRUE) diff --git a/code/modules/antagonists/heretic/magic/shadow_cloak.dm b/code/modules/antagonists/heretic/magic/shadow_cloak.dm index 8044532668f..b295d52a3aa 100644 --- a/code/modules/antagonists/heretic/magic/shadow_cloak.dm +++ b/code/modules/antagonists/heretic/magic/shadow_cloak.dm @@ -102,7 +102,7 @@ removed.Knockdown(0.5 SECONDS) removed.add_movespeed_modifier(/datum/movespeed_modifier/shadow_cloak/early_remove) - addtimer(CALLBACK(removed, /mob/proc/remove_movespeed_modifier, /datum/movespeed_modifier/shadow_cloak/early_remove), 2 MINUTES, TIMER_UNIQUE|TIMER_OVERRIDE) + addtimer(CALLBACK(removed, TYPE_PROC_REF(/mob, remove_movespeed_modifier), /datum/movespeed_modifier/shadow_cloak/early_remove), 2 MINUTES, TIMER_UNIQUE|TIMER_OVERRIDE) StartCooldown(uncloak_time * 2/3) /// Signal proc for [SIGNAL_REMOVETRAIT] via [TRAIT_ALLOW_HERETIC_CASTING], losing our focus midcast will throw us out. diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_authentication_disk.dm b/code/modules/antagonists/nukeop/equipment/nuclear_authentication_disk.dm index 7fb00029d10..6bf058f5c78 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclear_authentication_disk.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclear_authentication_disk.dm @@ -118,7 +118,7 @@ user.visible_message(span_suicide("[user] is going delta! It looks like [user.p_theyre()] trying to commit suicide!")) playsound(src, 'sound/machines/alarm.ogg', 50, -1, TRUE) for(var/i in 1 to 100) - addtimer(CALLBACK(user, /atom/proc/add_atom_colour, (i % 2)? "#00FF00" : "#FF0000", ADMIN_COLOUR_PRIORITY), i) + addtimer(CALLBACK(user, TYPE_PROC_REF(/atom, add_atom_colour), (i % 2)? "#00FF00" : "#FF0000", ADMIN_COLOUR_PRIORITY), i) addtimer(CALLBACK(src, PROC_REF(manual_suicide), user), 101) return MANUAL_SUICIDE diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_bomb/_nuclear_bomb.dm b/code/modules/antagonists/nukeop/equipment/nuclear_bomb/_nuclear_bomb.dm index e70c7a8b615..354559388c9 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclear_bomb/_nuclear_bomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclear_bomb/_nuclear_bomb.dm @@ -567,7 +567,7 @@ GLOBAL_VAR(station_nuke_source) return detonation_status /obj/machinery/nuclearbomb/proc/really_actually_explode(detonation_status) - play_cinematic(get_cinematic_type(detonation_status), world, CALLBACK(SSticker, /datum/controller/subsystem/ticker/proc/station_explosion_detonation, src)) + play_cinematic(get_cinematic_type(detonation_status), world, CALLBACK(SSticker, TYPE_PROC_REF(/datum/controller/subsystem/ticker, station_explosion_detonation), src)) var/turf/bomb_location = get_turf(src) var/list/z_levels_to_blow = list() diff --git a/code/modules/antagonists/wizard/equipment/soulstone.dm b/code/modules/antagonists/wizard/equipment/soulstone.dm index e8fe844fdac..eefce5650b0 100644 --- a/code/modules/antagonists/wizard/equipment/soulstone.dm +++ b/code/modules/antagonists/wizard/equipment/soulstone.dm @@ -159,7 +159,7 @@ /obj/item/soulstone/Destroy() //Stops the shade from being qdel'd immediately and their ghost being sent back to the arrival shuttle. for(var/mob/living/simple_animal/shade/shade in src) - INVOKE_ASYNC(shade, /mob/living/proc/death) + INVOKE_ASYNC(shade, TYPE_PROC_REF(/mob/living, death)) return ..() /obj/item/soulstone/proc/hot_potato(mob/living/user) diff --git a/code/modules/asset_cache/transports/asset_transport.dm b/code/modules/asset_cache/transports/asset_transport.dm index 138024c76f9..c33a019d464 100644 --- a/code/modules/asset_cache/transports/asset_transport.dm +++ b/code/modules/asset_cache/transports/asset_transport.dm @@ -137,7 +137,7 @@ client.sent_assets[new_asset_name] = ACI.hash - addtimer(CALLBACK(client, /client/proc/asset_cache_update_json), 1 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) + addtimer(CALLBACK(client, TYPE_PROC_REF(/client, asset_cache_update_json)), 1 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) return TRUE return FALSE diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 9a84de8b73f..4e5033a3703 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -954,7 +954,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( //check if the server is overloaded and if it is then queue up the click for next tick //yes having it call a wrapping proc on the subsystem is fucking stupid glad we agree unfortunately byond insists its reasonable - if(!QDELETED(object) && TRY_QUEUE_VERB(VERB_CALLBACK(object, /atom/proc/_Click, location, control, params), VERB_HIGH_PRIORITY_QUEUE_THRESHOLD, SSinput, control)) + if(!QDELETED(object) && TRY_QUEUE_VERB(VERB_CALLBACK(object, TYPE_PROC_REF(/atom, _Click), location, control, params), VERB_HIGH_PRIORITY_QUEUE_THRESHOLD, SSinput, control)) return if (hotkeys) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 3391ca7f5fb..4cbbae57504 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -143,7 +143,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) // Lemon from the future: this issue appears to replicate if the byond map (what we're relaying here) // Is shown while the client's mouse is on the screen. As soon as their mouse enters the main map, it's properly scaled // I hate this place - addtimer(CALLBACK(character_preview_view, /atom/movable/screen/map_view/char_preview/proc/update_body), 1 SECONDS) + addtimer(CALLBACK(character_preview_view, TYPE_PROC_REF(/atom/movable/screen/map_view/char_preview, update_body)), 1 SECONDS) /datum/preferences/ui_state(mob/user) return GLOB.always_state diff --git a/code/modules/clothing/masks/hailer.dm b/code/modules/clothing/masks/hailer.dm index 4648fbd0677..8166e0650e5 100644 --- a/code/modules/clothing/masks/hailer.dm +++ b/code/modules/clothing/masks/hailer.dm @@ -141,7 +141,7 @@ GLOBAL_LIST_INIT(hailer_phrases, list( if(!overuse_cooldown) // check if we can reset recent uses recent_uses = 0 overuse_cooldown = TRUE - addtimer(CALLBACK(src, /obj/item/clothing/mask/gas/sechailer/proc/reset_overuse_cooldown), OVERUSE_COOLDOWN) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/clothing/mask/gas/sechailer, reset_overuse_cooldown)), OVERUSE_COOLDOWN) switch(recent_uses) if(3) diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm index fe488ade7b4..fbd940749a6 100644 --- a/code/modules/clothing/shoes/_shoes.dm +++ b/code/modules/clothing/shoes/_shoes.dm @@ -242,7 +242,7 @@ to_chat(our_guy, span_danger("You stumble a bit on your untied shoelaces!")) if(!our_guy.has_movespeed_modifier(/datum/movespeed_modifier/shove)) our_guy.add_movespeed_modifier(/datum/movespeed_modifier/shove) - addtimer(CALLBACK(our_guy, /mob/living/carbon/proc/clear_shove_slowdown), SHOVE_SLOWDOWN_LENGTH) + addtimer(CALLBACK(our_guy, TYPE_PROC_REF(/mob/living/carbon, clear_shove_slowdown)), SHOVE_SLOWDOWN_LENGTH) if(26 to 1000) wiser = FALSE diff --git a/code/modules/events/fake_virus.dm b/code/modules/events/fake_virus.dm index a0dbfe1aef6..fb6bfd5be97 100644 --- a/code/modules/events/fake_virus.dm +++ b/code/modules/events/fake_virus.dm @@ -29,5 +29,5 @@ if(prob(25))//1/4 odds to get a spooky message instead of coughing out loud addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), onecoughman, span_warning("[pick("Your head hurts.", "Your head pounds.")]")), rand(30,150)) else - addtimer(CALLBACK(onecoughman, .mob/proc/emote, pick("cough", "sniff", "sneeze")), rand(30,150))//deliver the message with a slightly randomized time interval so there arent multiple people coughing at the exact same time + addtimer(CALLBACK(onecoughman, TYPE_PROC_REF(/mob, emote), pick("cough", "sniff", "sneeze")), rand(30,150))//deliver the message with a slightly randomized time interval so there arent multiple people coughing at the exact same time fake_virus_victims -= onecoughman diff --git a/code/modules/events/ghost_role/sentient_disease.dm b/code/modules/events/ghost_role/sentient_disease.dm index 73bfb9921a9..a4bf9bd4f5a 100644 --- a/code/modules/events/ghost_role/sentient_disease.dm +++ b/code/modules/events/ghost_role/sentient_disease.dm @@ -19,7 +19,7 @@ var/mob/camera/disease/virus = new /mob/camera/disease(SSmapping.get_station_center()) virus.key = selected.key - INVOKE_ASYNC(virus, /mob/camera/disease/proc/pick_name) + INVOKE_ASYNC(virus, TYPE_PROC_REF(/mob/camera/disease, pick_name)) message_admins("[ADMIN_LOOKUPFLW(virus)] has been made into a sentient disease by an event.") virus.log_message("was spawned as a sentient disease by an event.", LOG_GAME) spawned_mobs += virus diff --git a/code/modules/experisci/experiment/handlers/experiment_handler.dm b/code/modules/experisci/experiment/handlers/experiment_handler.dm index a8370b1ebdf..ceeb9f4cb3b 100644 --- a/code/modules/experisci/experiment/handlers/experiment_handler.dm +++ b/code/modules/experisci/experiment/handlers/experiment_handler.dm @@ -248,7 +248,7 @@ */ /datum/component/experiment_handler/proc/configure_experiment_click(datum/source, mob/user) SIGNAL_HANDLER - INVOKE_ASYNC(src, /datum/proc/ui_interact, user) + INVOKE_ASYNC(src, TYPE_PROC_REF(/datum, ui_interact), user) /** * Attempts to link this experiment_handler to a provided techweb diff --git a/code/modules/explorer_drone/exodrone.dm b/code/modules/explorer_drone/exodrone.dm index 77ae8b53479..0f3d03f4baa 100644 --- a/code/modules/explorer_drone/exodrone.dm +++ b/code/modules/explorer_drone/exodrone.dm @@ -214,11 +214,12 @@ GLOBAL_LIST_EMPTY(exodrone_launchers) /obj/item/exodrone/proc/updateKeywords(text) _regex_context = src var/static/regex/keywordRegex = regex(@"\$\$(\S*)","g") - . = keywordRegex.Replace(text,/obj/item/exodrone/proc/replace_keyword) + . = keywordRegex.Replace(text, /obj/item/exodrone/proc/replace_keyword) _regex_context = null /// This is called with src = regex datum, so don't try to access any instance variables directly here. /obj/item/exodrone/proc/replace_keyword(match,g1) + REGEX_REPLACE_HANDLER switch(g1) if("SITE_NAME") return _regex_context.location.display_name() diff --git a/code/modules/hallucination/fake_sound.dm b/code/modules/hallucination/fake_sound.dm index 1ec6da8fcae..afcd01cb71f 100644 --- a/code/modules/hallucination/fake_sound.dm +++ b/code/modules/hallucination/fake_sound.dm @@ -26,7 +26,7 @@ CRASH("[type] queued a fake sound without a timer.") // Queue the sound to be played with a timer on the mob, not the datum, because we'll probably get qdel'd - addtimer(CALLBACK(hallucinator, /mob/proc/playsound_local, source, sound_to_play, volume_override || volume, vary_override || sound_vary), delay) + addtimer(CALLBACK(hallucinator, TYPE_PROC_REF(/mob, playsound_local), source, sound_to_play, volume_override || volume, vary_override || sound_vary), delay) /datum/hallucination/fake_sound/normal abstract_hallucination_parent = /datum/hallucination/fake_sound/normal diff --git a/code/modules/holodeck/computer.dm b/code/modules/holodeck/computer.dm index 8ec695e1de6..a006c9dba52 100644 --- a/code/modules/holodeck/computer.dm +++ b/code/modules/holodeck/computer.dm @@ -247,7 +247,7 @@ GLOBAL_LIST_INIT(typecache_holodeck_linked_floorcheck_ok, typecacheof(list(/turf clear_projection() template = SSmapping.holodeck_templates[offline_program] - INVOKE_ASYNC(template, /datum/map_template/proc/load, bottom_left) //this is what actually loads the holodeck simulation into the map + INVOKE_ASYNC(template, TYPE_PROC_REF(/datum/map_template, load), bottom_left) //this is what actually loads the holodeck simulation into the map /obj/machinery/computer/holodeck/proc/clear_projection() //clear the items from the previous program diff --git a/code/modules/jobs/job_exp.dm b/code/modules/jobs/job_exp.dm index 46392c4a997..b2c051a4e1c 100644 --- a/code/modules/jobs/job_exp.dm +++ b/code/modules/jobs/job_exp.dm @@ -183,7 +183,7 @@ GLOBAL_PROTECT(exp_to_update) "ckey" = ckey, "minutes" = jvalue))) prefs.exp[jtype] += jvalue - addtimer(CALLBACK(SSblackbox,/datum/controller/subsystem/blackbox/proc/update_exp_db),20,TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(SSblackbox, TYPE_PROC_REF(/datum/controller/subsystem/blackbox, update_exp_db)),20,TIMER_OVERRIDE|TIMER_UNIQUE) //ALWAYS call this at beginning to any proc touching player flags, or your database admin will probably be mad diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm index 513d78f5f58..c92fe6d297c 100644 --- a/code/modules/jobs/job_types/_job.dm +++ b/code/modules/jobs/job_types/_job.dm @@ -209,7 +209,7 @@ /datum/job/proc/announce_head(mob/living/carbon/human/H, channels) //tells the given channel that the given mob is the new department head. See communications.dm for valid channels. if(H && GLOB.announcement_systems.len) //timer because these should come after the captain announcement - SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_addtimer), CALLBACK(pick(GLOB.announcement_systems), /obj/machinery/announcement_system/proc/announce, "NEWHEAD", H.real_name, H.job, channels), 1)) + SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_addtimer), CALLBACK(pick(GLOB.announcement_systems), TYPE_PROC_REF(/obj/machinery/announcement_system, announce), "NEWHEAD", H.real_name, H.job, channels), 1)) //If the configuration option is set to require players to be logged as old enough to play certain jobs, then this proc checks that they are, otherwise it just returns 1 /datum/job/proc/player_old_enough(client/player) diff --git a/code/modules/lighting/lighting_object.dm b/code/modules/lighting/lighting_object.dm index a776f6ee000..cd590008720 100644 --- a/code/modules/lighting/lighting_object.dm +++ b/code/modules/lighting/lighting_object.dm @@ -65,7 +65,7 @@ GLOBAL_LIST_EMPTY(default_lighting_underlays_by_z) #ifdef VISUALIZE_LIGHT_UPDATES affected_turf.add_atom_colour(COLOR_BLUE_LIGHT, ADMIN_COLOUR_PRIORITY) animate(affected_turf, 10, color = null) - addtimer(CALLBACK(affected_turf, /atom/proc/remove_atom_colour, ADMIN_COLOUR_PRIORITY, COLOR_BLUE_LIGHT), 10, TIMER_UNIQUE|TIMER_OVERRIDE) + addtimer(CALLBACK(affected_turf, TYPE_PROC_REF(/atom, remove_atom_colour), ADMIN_COLOUR_PRIORITY, COLOR_BLUE_LIGHT), 10, TIMER_UNIQUE|TIMER_OVERRIDE) #endif var/datum/lighting_corner/red_corner = affected_turf.lighting_corner_SW || dummy_lighting_corner diff --git a/code/modules/mapping/space_management/space_reservation.dm b/code/modules/mapping/space_management/space_reservation.dm index e85d09aa800..48811b63b6a 100644 --- a/code/modules/mapping/space_management/space_reservation.dm +++ b/code/modules/mapping/space_management/space_reservation.dm @@ -18,7 +18,7 @@ SSmapping.used_turfs -= reserved_turfs reserved_turfs = list() // Makes the linter happy, even tho we don't await this - INVOKE_ASYNC(SSmapping, /datum/controller/subsystem/mapping/proc/reserve_turfs, reserved_copy) + INVOKE_ASYNC(SSmapping, TYPE_PROC_REF(/datum/controller/subsystem/mapping, reserve_turfs), reserved_copy) /datum/turf_reservation/proc/Reserve(width, height, zlevel) if(width > world.maxx || height > world.maxy || width < 1 || height < 1) diff --git a/code/modules/mining/equipment/resonator.dm b/code/modules/mining/equipment/resonator.dm index 2ce50dcd7b2..ead9207f28f 100644 --- a/code/modules/mining/equipment/resonator.dm +++ b/code/modules/mining/equipment/resonator.dm @@ -130,7 +130,7 @@ to_chat(attacked_living, span_userdanger("[src] ruptured with you in it!")) attacked_living.apply_damage(resonance_damage, BRUTE) attacked_living.add_movespeed_modifier(/datum/movespeed_modifier/resonance) - addtimer(CALLBACK(attacked_living, /mob/proc/remove_movespeed_modifier, /datum/movespeed_modifier/resonance), 10 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) + addtimer(CALLBACK(attacked_living, TYPE_PROC_REF(/mob, remove_movespeed_modifier), /datum/movespeed_modifier/resonance), 10 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) for(var/obj/effect/temp_visual/resonance/field in orange(1, src)) if(field.rupturing) continue diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 0e795d7ba15..7d5dae4b361 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -160,7 +160,7 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) var/old_color = color color = "#960000" animate(src, color = old_color, time = 10, flags = ANIMATION_PARALLEL) - addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 10) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 10) /mob/dead/observer/Destroy() if(data_huds_on) diff --git a/code/modules/mob/living/basic/vermin/mouse.dm b/code/modules/mob/living/basic/vermin/mouse.dm index 22e808aa6f2..6a7c6531a7f 100644 --- a/code/modules/mob/living/basic/vermin/mouse.dm +++ b/code/modules/mob/living/basic/vermin/mouse.dm @@ -178,7 +178,7 @@ /mob/living/basic/mouse/proc/evolve_into_regal_rat() var/mob/living/simple_animal/hostile/regalrat/controlled/regalrat = new(loc) mind?.transfer_to(regalrat) - INVOKE_ASYNC(regalrat, /atom/movable/proc/say, "RISE, MY SUBJECTS! SCREEEEEEE!") + INVOKE_ASYNC(regalrat, TYPE_PROC_REF(/atom/movable, say), "RISE, MY SUBJECTS! SCREEEEEEE!") qdel(src) /// Creates a new mouse based on this mouse's subtype. diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 24e72142d6c..8f01a66d077 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -280,7 +280,7 @@ target.visible_message(span_danger("[name] kicks [target.name] onto [target.p_their()] side!"), span_userdanger("You're kicked onto your side by [name]!"), span_hear("You hear aggressive shuffling followed by a loud thud!"), COMBAT_MESSAGE_RANGE, src) to_chat(src, span_danger("You kick [target.name] onto [target.p_their()] side!")) - addtimer(CALLBACK(target, /mob/living/proc/SetKnockdown, 0), SHOVE_CHAIN_PARALYZE) + addtimer(CALLBACK(target, TYPE_PROC_REF(/mob/living, SetKnockdown), 0), SHOVE_CHAIN_PARALYZE) log_combat(src, target, "kicks", "onto their side (paralyzing)") var/directional_blocked = FALSE @@ -327,7 +327,7 @@ append_message = "loosening [target.p_their()] grip on [target_held_item]" target.visible_message(span_danger("[target.name]'s grip on \the [target_held_item] loosens!"), //He's already out what are you doing span_warning("Your grip on \the [target_held_item] loosens!"), null, COMBAT_MESSAGE_RANGE) - addtimer(CALLBACK(target, /mob/living/carbon/proc/clear_shove_slowdown), SHOVE_SLOWDOWN_LENGTH) + addtimer(CALLBACK(target, TYPE_PROC_REF(/mob/living/carbon, clear_shove_slowdown)), SHOVE_SLOWDOWN_LENGTH) else if(target_held_item) target.dropItemToGround(target_held_item) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index b488fed1091..df929ebfac0 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -476,7 +476,7 @@ GLOBAL_LIST_EMPTY(features_by_species) if(istype(I)) C.dropItemToGround(I) else //Entries in the list should only ever be items or null, so if it's not an item, we can assume it's an empty hand - INVOKE_ASYNC(C, /mob/proc/put_in_hands, new mutanthands) + INVOKE_ASYNC(C, TYPE_PROC_REF(/mob, put_in_hands), new mutanthands) if(ishuman(C)) var/mob/living/carbon/human/human = C diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index ff02720b67c..fd9f4b56fca 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -598,7 +598,7 @@ /mob/living/proc/get_up(instant = FALSE) set waitfor = FALSE - if(!instant && !do_mob(src, src, 1 SECONDS, timed_action_flags = (IGNORE_USER_LOC_CHANGE|IGNORE_TARGET_LOC_CHANGE|IGNORE_HELD_ITEM), extra_checks = CALLBACK(src, /mob/living/proc/rest_checks_callback), interaction_key = DOAFTER_SOURCE_GETTING_UP)) + if(!instant && !do_mob(src, src, 1 SECONDS, timed_action_flags = (IGNORE_USER_LOC_CHANGE|IGNORE_TARGET_LOC_CHANGE|IGNORE_HELD_ITEM), extra_checks = CALLBACK(src, TYPE_PROC_REF(/mob/living, rest_checks_callback)), interaction_key = DOAFTER_SOURCE_GETTING_UP)) return if(resting || body_position == STANDING_UP || HAS_TRAIT(src, TRAIT_FLOORED)) return diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index e7989ad8292..565ca6a592b 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -83,8 +83,8 @@ alert_control = new(src, list(ALARM_ATMOS, ALARM_FIRE, ALARM_POWER, ALARM_CAMERA, ALARM_BURGLAR, ALARM_MOTION), list(z)) RegisterSignal(alert_control.listener, COMSIG_ALARM_LISTENER_TRIGGERED, PROC_REF(alarm_triggered)) RegisterSignal(alert_control.listener, COMSIG_ALARM_LISTENER_CLEARED, PROC_REF(alarm_cleared)) - alert_control.listener.RegisterSignal(src, COMSIG_LIVING_DEATH, /datum/alarm_listener/proc/prevent_alarm_changes) - alert_control.listener.RegisterSignal(src, COMSIG_LIVING_REVIVE, /datum/alarm_listener/proc/allow_alarm_changes) + alert_control.listener.RegisterSignal(src, COMSIG_LIVING_DEATH, TYPE_PROC_REF(/datum/alarm_listener, prevent_alarm_changes)) + alert_control.listener.RegisterSignal(src, COMSIG_LIVING_REVIVE, TYPE_PROC_REF(/datum/alarm_listener, allow_alarm_changes)) /mob/living/silicon/robot/model/syndicate/Initialize(mapload) . = ..() diff --git a/code/modules/mob/living/silicon/robot/robot_model.dm b/code/modules/mob/living/silicon/robot/robot_model.dm index 4e1e69e6161..f0fd1acc4a8 100644 --- a/code/modules/mob/living/silicon/robot/robot_model.dm +++ b/code/modules/mob/living/silicon/robot/robot_model.dm @@ -508,7 +508,7 @@ animate(pixel_x = x_offset, pixel_y = y_offset, time = 1) // Reset our animations animate(pixel_x = base_x, pixel_y = base_y, time = 2) - addtimer(CALLBACK(wash_audio, /datum/looping_sound/proc/stop), time_left) + addtimer(CALLBACK(wash_audio, TYPE_PROC_REF(/datum/looping_sound, stop)), time_left) addtimer(CALLBACK(src, PROC_REF(turn_off_wash)), finished_by) /// Called by [deactivate_wash] on a timer to allow noises and animation to play out. diff --git a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm index 26e1688f770..fba03107bfc 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm @@ -195,8 +195,8 @@ listener = new(list(ALARM_ATMOS, ALARM_FIRE, ALARM_POWER), list(z)) RegisterSignal(listener, COMSIG_ALARM_LISTENER_TRIGGERED, PROC_REF(alarm_triggered)) RegisterSignal(listener, COMSIG_ALARM_LISTENER_CLEARED, PROC_REF(alarm_cleared)) - listener.RegisterSignal(src, COMSIG_LIVING_DEATH, /datum/alarm_listener/proc/prevent_alarm_changes) - listener.RegisterSignal(src, COMSIG_LIVING_REVIVE, /datum/alarm_listener/proc/allow_alarm_changes) + listener.RegisterSignal(src, COMSIG_LIVING_DEATH, TYPE_PROC_REF(/datum/alarm_listener, prevent_alarm_changes)) + listener.RegisterSignal(src, COMSIG_LIVING_REVIVE, TYPE_PROC_REF(/datum/alarm_listener, allow_alarm_changes)) /mob/living/simple_animal/drone/med_hud_set_health() var/image/holder = hud_list[DIAG_HUD] diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm index 1982a94de8a..c401c51ae8b 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm @@ -189,7 +189,7 @@ Difficulty: Medium /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/hunter/AttackingTarget() . = ..() if(. && prob(12)) - INVOKE_ASYNC(dash, /datum/action/proc/Trigger, target) + INVOKE_ASYNC(dash, TYPE_PROC_REF(/datum/action, Trigger), target) /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/doom name = "hostile-environment miner" diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index c7a9b0dbbef..5e61fc7ad26 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -230,7 +230,7 @@ Difficulty: Hard blinking = TRUE SLEEP_CHECK_DEATH(4 + target_slowness, src) animate(src, color = oldcolor, time = 8) - addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 8) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 8) SLEEP_CHECK_DEATH(8, src) blinking = FALSE else @@ -251,7 +251,7 @@ Difficulty: Hard INVOKE_ASYNC(src, PROC_REF(blasts), target, GLOB.diagonals) SLEEP_CHECK_DEATH(6 + target_slowness, src) animate(src, color = oldcolor, time = 8) - addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 8) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 8) SLEEP_CHECK_DEATH(8, src) blinking = FALSE @@ -279,7 +279,7 @@ Difficulty: Hard SLEEP_CHECK_DEATH(8 + target_slowness, src) update_cooldowns(list(COOLDOWN_UPDATE_SET_CHASER = chaser_cooldown_time)) animate(src, color = oldcolor, time = 8) - addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 8) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 8) SLEEP_CHECK_DEATH(8, src) blinking = FALSE diff --git a/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm index e0ee6efe904..e017b2b359c 100644 --- a/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm +++ b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm @@ -107,7 +107,7 @@ F.environment_smash = ENVIRONMENT_SMASH_WALLS F.mob_size = MOB_SIZE_LARGE F.speed = 1 - addtimer(CALLBACK(F, /mob/living/simple_animal/hostile/asteroid/fugu/proc/Deflate), 100) + addtimer(CALLBACK(F, TYPE_PROC_REF(/mob/living/simple_animal/hostile/asteroid/fugu, Deflate)), 100) /mob/living/simple_animal/hostile/asteroid/fugu/proc/Deflate() if(wumbo) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index e2901456b46..e0a4ba6ffe4 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -615,7 +615,7 @@ /// our current intent, so we can go back to it after touching var/previous_combat_mode = combat_mode set_combat_mode(FALSE) - INVOKE_ASYNC(examined_thing, /atom/proc/attack_hand, src) + INVOKE_ASYNC(examined_thing, TYPE_PROC_REF(/atom, attack_hand), src) set_combat_mode(previous_combat_mode) return TRUE diff --git a/code/modules/mob/mob_say.dm b/code/modules/mob/mob_say.dm index 4486db1cc57..74e04c52bfd 100644 --- a/code/modules/mob/mob_say.dm +++ b/code/modules/mob/mob_say.dm @@ -13,7 +13,7 @@ //queue this message because verbs are scheduled to process after SendMaps in the tick and speech is pretty expensive when it happens. //by queuing this for next tick the mc can compensate for its cost instead of having speech delay the start of the next tick if(message) - QUEUE_OR_CALL_VERB_FOR(VERB_CALLBACK(src, /atom/movable/proc/say, message), SSspeech_controller) + QUEUE_OR_CALL_VERB_FOR(VERB_CALLBACK(src, TYPE_PROC_REF(/atom/movable, say), message), SSspeech_controller) ///Whisper verb /mob/verb/whisper_verb(message as text) @@ -26,7 +26,7 @@ return if(message) - QUEUE_OR_CALL_VERB_FOR(VERB_CALLBACK(src, /mob/proc/whisper, message), SSspeech_controller) + QUEUE_OR_CALL_VERB_FOR(VERB_CALLBACK(src, TYPE_PROC_REF(/mob, whisper), message), SSspeech_controller) /** * Whisper a message. @@ -49,7 +49,7 @@ message = trim(copytext_char(sanitize(message), 1, MAX_MESSAGE_LEN)) - QUEUE_OR_CALL_VERB_FOR(VERB_CALLBACK(src, /mob/proc/emote, "me", 1, message, TRUE), SSspeech_controller) + QUEUE_OR_CALL_VERB_FOR(VERB_CALLBACK(src, TYPE_PROC_REF(/mob, emote), "me", 1, message, TRUE), SSspeech_controller) /mob/try_speak(message, ignore_spam = FALSE, forced = null, filterproof = FALSE) SHOULD_CALL_PARENT(TRUE) diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm index b0c474f3e0d..dd4e9d757d5 100644 --- a/code/modules/modular_computers/computers/item/computer.dm +++ b/code/modules/modular_computers/computers/item/computer.dm @@ -579,7 +579,7 @@ GLOBAL_LIST_EMPTY(TabletMessengers) // a list of all active messengers, similar var/mob/user = usr if(user && istype(user)) //Here to prevent programs sleeping in destroy - INVOKE_ASYNC(src, /datum/proc/ui_interact, user) // Re-open the UI on this computer. It should show the main screen now. + INVOKE_ASYNC(src, TYPE_PROC_REF(/datum, ui_interact), user) // Re-open the UI on this computer. It should show the main screen now. update_appearance() /obj/item/modular_computer/proc/open_program(mob/user, datum/computer_file/program/program) diff --git a/code/modules/modular_computers/computers/item/processor.dm b/code/modules/modular_computers/computers/item/processor.dm index f8acdeb57c7..3bd32518c65 100644 --- a/code/modules/modular_computers/computers/item/processor.dm +++ b/code/modules/modular_computers/computers/item/processor.dm @@ -33,7 +33,7 @@ integrity_failure = machinery_computer.integrity_failure base_active_power_usage = machinery_computer.base_active_power_usage base_idle_power_usage = machinery_computer.base_idle_power_usage - machinery_computer.RegisterSignal(src, COMSIG_ATOM_UPDATED_ICON, /obj/machinery/modular_computer/proc/relay_icon_update) //when we update_icon, also update the computer + machinery_computer.RegisterSignal(src, COMSIG_ATOM_UPDATED_ICON, TYPE_PROC_REF(/obj/machinery/modular_computer, relay_icon_update)) //when we update_icon, also update the computer return ..() /obj/item/modular_computer/processor/Destroy(force) diff --git a/code/modules/power/apc/apc_malf.dm b/code/modules/power/apc/apc_malf.dm index 2f738bbede5..77dfc3f5a0e 100644 --- a/code/modules/power/apc/apc_malf.dm +++ b/code/modules/power/apc/apc_malf.dm @@ -68,7 +68,7 @@ to_chat(occupier, span_danger("Primary core damaged, unable to return core processes.")) if(forced) occupier.forceMove(drop_location()) - INVOKE_ASYNC(occupier, /mob/living/proc/death) + INVOKE_ASYNC(occupier, TYPE_PROC_REF(/mob/living, death)) occupier.gib() if(!occupier.nuking) //Pinpointers go back to tracking the nuke disk, as long as the AI (somehow) isn't mid-nuking. diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm index c1d043c6051..ab23526dba3 100644 --- a/code/modules/power/gravitygenerator.dm +++ b/code/modules/power/gravitygenerator.dm @@ -187,7 +187,7 @@ GLOBAL_LIST_EMPTY(gravity_generators) part.main_part = src generator_parts += part part.update_appearance() - part.RegisterSignal(src, COMSIG_ATOM_UPDATED_ICON, /obj/machinery/gravity_generator/part/proc/on_update_icon) + part.RegisterSignal(src, COMSIG_ATOM_UPDATED_ICON, TYPE_PROC_REF(/obj/machinery/gravity_generator/part, on_update_icon)) /obj/machinery/gravity_generator/main/set_broken() . = ..() diff --git a/code/modules/power/singularity/boh_tear.dm b/code/modules/power/singularity/boh_tear.dm index 651579515d3..4397e31ff76 100644 --- a/code/modules/power/singularity/boh_tear.dm +++ b/code/modules/power/singularity/boh_tear.dm @@ -41,7 +41,7 @@ to_chat(jedi, span_userdanger("You don't feel like you are real anymore.")) jedi.dust_animation() jedi.spawn_dust() - addtimer(CALLBACK(src, /atom/proc/attack_hand, jedi), 0.5 SECONDS) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, attack_hand), jedi), 0.5 SECONDS) return COMPONENT_CANCEL_ATTACK_CHAIN #undef BOH_TEAR_CONSUME_RANGE diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index e7e357deed8..13a35b8e2ec 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -445,7 +445,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) /obj/machinery/power/supermatter_crystal/proc/force_delam() SIGNAL_HANDLER investigate_log("was forcefully delaminated", INVESTIGATE_ENGINE) - INVOKE_ASYNC(delamination_strategy, /datum/sm_delam/proc/delaminate, src) + INVOKE_ASYNC(delamination_strategy, TYPE_PROC_REF(/datum/sm_delam, delaminate), src) /** * Count down, spout some messages, and then execute the delam itself. diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index 04280d91bff..f10e3c8118b 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -342,7 +342,7 @@ if(!beaker || machine_stat & (NOPOWER|BROKEN)) return operate_for(50, juicing = TRUE) - addtimer(CALLBACK(src, /obj/machinery/reagentgrinder/proc/mix_complete), 50) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/machinery/reagentgrinder, mix_complete)), 50) /obj/machinery/reagentgrinder/proc/mix_complete() if(beaker?.reagents.total_volume) diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 55debefa52a..9e35a0ae677 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -199,7 +199,7 @@ exposed_mob.emote("scream") playsound(exposed_mob, 'sound/machines/fryer/deep_fryer_emerge.ogg', 25, TRUE) ADD_TRAIT(exposed_mob, TRAIT_OIL_FRIED, "cooking_oil_react") - addtimer(CALLBACK(exposed_mob, /mob/living/proc/unfry_mob), 3) + addtimer(CALLBACK(exposed_mob, TYPE_PROC_REF(/mob/living, unfry_mob)), 3) if(FryLoss) exposed_mob.adjustFireLoss(FryLoss) diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index e2f6e8c1018..292434ff175 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -1114,7 +1114,7 @@ to_chat(M, span_warning("You feel unstable...")) M.set_jitter_if_lower(2 SECONDS) current_cycle = 1 - addtimer(CALLBACK(M, /mob/living/proc/bluespace_shuffle), 30) + addtimer(CALLBACK(M, TYPE_PROC_REF(/mob/living, bluespace_shuffle)), 30) ..() /mob/living/proc/bluespace_shuffle() diff --git a/code/modules/reagents/reagent_containers/cups/glassbottle.dm b/code/modules/reagents/reagent_containers/cups/glassbottle.dm index 2cb059defc8..a2bda6713c2 100644 --- a/code/modules/reagents/reagent_containers/cups/glassbottle.dm +++ b/code/modules/reagents/reagent_containers/cups/glassbottle.dm @@ -137,7 +137,7 @@ froth.pixel_x = offset_x froth.pixel_y = offset_y add_overlay(froth) - addtimer(CALLBACK(src, /atom/proc/cut_overlay, froth), 2 SECONDS) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, cut_overlay), froth), 2 SECONDS) //Keeping this here for now, I'll ask if I should keep it here. /obj/item/broken_bottle @@ -574,7 +574,7 @@ else //you dun goofed user.visible_message( span_danger("[user] fumbles the sabrage and cuts [src] in half, spilling it over themselves!"), - span_danger("You fail your stunt and cut [src] in half, spilling it over you!"), + span_danger("You fail your stunt and cut [src] in half, spilling it over you!"), ) user.add_mood_event("sabrage_fail", /datum/mood_event/sabrage_fail) return smash(target = user, ranged = FALSE, break_top = TRUE) diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index b8286116e0a..f823aa406de 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -86,8 +86,8 @@ reagent_puff.sprayer = src reagent_puff.lifetime = puff_reagent_left reagent_puff.stream = stream_mode - reagent_puff.RegisterSignal(our_loop, COMSIG_PARENT_QDELETING, /obj/effect/decal/chempuff/proc/loop_ended) - reagent_puff.RegisterSignal(our_loop, COMSIG_MOVELOOP_POSTPROCESS, /obj/effect/decal/chempuff/proc/check_move) + reagent_puff.RegisterSignal(our_loop, COMSIG_PARENT_QDELETING, TYPE_PROC_REF(/obj/effect/decal/chempuff, loop_ended)) + reagent_puff.RegisterSignal(our_loop, COMSIG_MOVELOOP_POSTPROCESS, TYPE_PROC_REF(/obj/effect/decal/chempuff, check_move)) /obj/item/reagent_containers/spray/attack_self(mob/user) . = ..() diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index a6ef7c810e2..b6c89e066f3 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -68,7 +68,7 @@ if(living_target != user) living_target.visible_message(span_danger("[user] is trying to inject [living_target]!"), \ span_userdanger("[user] is trying to inject you!")) - if(!do_mob(user, living_target, CHEM_INTERACT_DELAY(3 SECONDS, user), extra_checks = CALLBACK(living_target, /mob/living/proc/try_inject, user, null, INJECT_TRY_SHOW_ERROR_MESSAGE|inject_flags))) + if(!do_mob(user, living_target, CHEM_INTERACT_DELAY(3 SECONDS, user), extra_checks = CALLBACK(living_target, TYPE_PROC_REF(/mob/living, try_inject), user, null, INJECT_TRY_SHOW_ERROR_MESSAGE|inject_flags))) return if(!reagents.total_volume) return @@ -99,7 +99,7 @@ if(target != user) target.visible_message(span_danger("[user] is trying to take a blood sample from [target]!"), \ span_userdanger("[user] is trying to take a blood sample from you!")) - if(!do_mob(user, target, CHEM_INTERACT_DELAY(3 SECONDS, user), extra_checks = CALLBACK(living_target, /mob/living/proc/try_inject, user, null, INJECT_TRY_SHOW_ERROR_MESSAGE|inject_flags))) + if(!do_mob(user, target, CHEM_INTERACT_DELAY(3 SECONDS, user), extra_checks = CALLBACK(living_target, TYPE_PROC_REF(/mob/living, try_inject), user, null, INJECT_TRY_SHOW_ERROR_MESSAGE|inject_flags))) return SECONDARY_ATTACK_CONTINUE_CHAIN if(reagents.total_volume >= reagents.maximum_volume) return SECONDARY_ATTACK_CONTINUE_CHAIN diff --git a/code/modules/research/rdmachines.dm b/code/modules/research/rdmachines.dm index 2e4ef83b2f4..c70d41edf6b 100644 --- a/code/modules/research/rdmachines.dm +++ b/code/modules/research/rdmachines.dm @@ -129,4 +129,4 @@ stack_name = S.name use_power(min(active_power_usage, (amount_inserted / 100))) add_overlay("protolathe_[stack_name]") - addtimer(CALLBACK(src, /atom/proc/cut_overlay, "protolathe_[stack_name]"), 10) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, cut_overlay), "protolathe_[stack_name]"), 10) diff --git a/code/modules/shuttle/navigation_computer.dm b/code/modules/shuttle/navigation_computer.dm index 066fc3cdcc6..20cfadabfa0 100644 --- a/code/modules/shuttle/navigation_computer.dm +++ b/code/modules/shuttle/navigation_computer.dm @@ -147,7 +147,7 @@ if(designate_time && (landing_clear != SHUTTLE_DOCKER_BLOCKED)) to_chat(current_user, span_warning("Targeting transit location, please wait [DisplayTimeText(designate_time)]...")) designating_target_loc = the_eye.loc - var/wait_completed = do_after(current_user, designate_time, designating_target_loc, timed_action_flags = IGNORE_HELD_ITEM, extra_checks = CALLBACK(src, /obj/machinery/computer/camera_advanced/shuttle_docker/proc/canDesignateTarget)) + var/wait_completed = do_after(current_user, designate_time, designating_target_loc, timed_action_flags = IGNORE_HELD_ITEM, extra_checks = CALLBACK(src, TYPE_PROC_REF(/obj/machinery/computer/camera_advanced/shuttle_docker, canDesignateTarget))) designating_target_loc = null if(!current_user) return diff --git a/code/modules/unit_tests/surgeries.dm b/code/modules/unit_tests/surgeries.dm index 01cdb6ea2e9..5863c740385 100644 --- a/code/modules/unit_tests/surgeries.dm +++ b/code/modules/unit_tests/surgeries.dm @@ -64,7 +64,7 @@ var/datum/surgery_step/incise/surgery_step = new var/datum/surgery/organ_manipulation/surgery_for_zero = new - INVOKE_ASYNC(surgery_step, /datum/surgery_step/proc/initiate, user, patient_zero, BODY_ZONE_CHEST, scalpel, surgery_for_zero) + INVOKE_ASYNC(surgery_step, TYPE_PROC_REF(/datum/surgery_step, initiate), user, patient_zero, BODY_ZONE_CHEST, scalpel, surgery_for_zero) TEST_ASSERT(surgery_for_zero.step_in_progress, "Surgery on patient zero was not initiated") var/datum/surgery/organ_manipulation/surgery_for_one = new @@ -74,7 +74,7 @@ TEST_ASSERT(!surgery_for_one.step_in_progress, "Surgery for patient one is somehow in progress, despite not initiating") user.apply_status_effect(/datum/status_effect/hippocratic_oath) - INVOKE_ASYNC(surgery_step, /datum/surgery_step/proc/initiate, user, patient_one, BODY_ZONE_CHEST, scalpel, surgery_for_one) + INVOKE_ASYNC(surgery_step, TYPE_PROC_REF(/datum/surgery_step, initiate), user, patient_one, BODY_ZONE_CHEST, scalpel, surgery_for_one) TEST_ASSERT(surgery_for_one.step_in_progress, "Surgery on patient one was not initiated, despite having rod of asclepius") /// Ensures that the tend wounds surgery can be started diff --git a/code/modules/vehicles/mecha/mech_fabricator.dm b/code/modules/vehicles/mecha/mech_fabricator.dm index dd5dab67739..529a0cb07d4 100644 --- a/code/modules/vehicles/mecha/mech_fabricator.dm +++ b/code/modules/vehicles/mecha/mech_fabricator.dm @@ -520,7 +520,7 @@ /obj/machinery/mecha_part_fabricator/proc/AfterMaterialInsert(item_inserted, id_inserted, amount_inserted) var/datum/material/M = id_inserted add_overlay("fab-load-[M.name]") - addtimer(CALLBACK(src, /atom/proc/cut_overlay, "fab-load-[M.name]"), 10) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, cut_overlay), "fab-load-[M.name]"), 10) /obj/machinery/mecha_part_fabricator/screwdriver_act(mob/living/user, obj/item/I) if(..()) diff --git a/code/modules/vehicles/mecha/mecha_ai_interaction.dm b/code/modules/vehicles/mecha/mecha_ai_interaction.dm index a2c5b2e88fd..3ad393e3757 100644 --- a/code/modules/vehicles/mecha/mecha_ai_interaction.dm +++ b/code/modules/vehicles/mecha/mecha_ai_interaction.dm @@ -99,7 +99,7 @@ mecha_flags |= SILICON_PILOT moved_inside(AI) AI.eyeobj?.forceMove(src) - AI.eyeobj?.RegisterSignal(src, COMSIG_MOVABLE_MOVED, /mob/camera/ai_eye/proc/update_visibility) + AI.eyeobj?.RegisterSignal(src, COMSIG_MOVABLE_MOVED, TYPE_PROC_REF(/mob/camera/ai_eye, update_visibility)) AI.controlled_equipment = src AI.remote_control = src to_chat(AI, AI.can_dominate_mechs ? span_greenannounce("Takeover of [name] complete! You are now loaded onto the onboard computer. Do not attempt to leave the station sector!") :\ diff --git a/code/modules/vehicles/mecha/mecha_control_console.dm b/code/modules/vehicles/mecha/mecha_control_console.dm index d38cdab4857..c5b60dddb71 100644 --- a/code/modules/vehicles/mecha/mecha_control_console.dm +++ b/code/modules/vehicles/mecha/mecha_control_console.dm @@ -133,7 +133,7 @@ return if(chassis) chassis.emp_act(EMP_HEAVY) - addtimer(CALLBACK(src, /obj/item/mecha_parts/mecha_tracking/proc/recharge), 5 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/mecha_parts/mecha_tracking, recharge)), 5 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) recharging = TRUE /** diff --git a/code/modules/vehicles/mecha/working/clarke.dm b/code/modules/vehicles/mecha/working/clarke.dm index 6e99c53238c..abf5db7b286 100644 --- a/code/modules/vehicles/mecha/working/clarke.dm +++ b/code/modules/vehicles/mecha/working/clarke.dm @@ -34,7 +34,7 @@ box = new(src) /obj/vehicle/sealed/mecha/working/clarke/Destroy() - INVOKE_ASYNC(box, /obj/structure/ore_box/proc/dump_box_contents) + INVOKE_ASYNC(box, TYPE_PROC_REF(/obj/structure/ore_box, dump_box_contents)) return ..() /obj/vehicle/sealed/mecha/working/clarke/generate_actions() diff --git a/code/modules/vehicles/vehicle_actions.dm b/code/modules/vehicles/vehicle_actions.dm index 08be04ff8a5..3b4224b3eed 100644 --- a/code/modules/vehicles/vehicle_actions.dm +++ b/code/modules/vehicles/vehicle_actions.dm @@ -402,7 +402,7 @@ animate(rider, pixel_y = -6, time = 0.4 SECONDS) animate(board, pixel_y = -6, time = 0.3 SECONDS) board.unbuckle_mob(rider) - addtimer(CALLBACK(board, /obj/vehicle/ridden/scooter/skateboard/proc/pick_up_board, rider), 1 SECONDS) // so the board can still handle "picking it up" + addtimer(CALLBACK(board, TYPE_PROC_REF(/obj/vehicle/ridden/scooter/skateboard, pick_up_board), rider), 1 SECONDS) // so the board can still handle "picking it up" diff --git a/code/modules/vehicles/vehicle_key.dm b/code/modules/vehicles/vehicle_key.dm index 68066dac97f..3ac7f4fbb90 100644 --- a/code/modules/vehicles/vehicle_key.dm +++ b/code/modules/vehicles/vehicle_key.dm @@ -42,7 +42,7 @@ user.visible_message(span_suicide("[user] is putting \the [src] in [user.p_their()] mouth and has skillfully become one with the janicart! It looks like [user.p_theyre()] trying to commit suicide!")) user.AddElement(/datum/element/cleaning) for(var/i in 1 to 100) - addtimer(CALLBACK(user, /atom/proc/add_atom_colour, (i % 2)? "#a245bb" : "#7a7d82", ADMIN_COLOUR_PRIORITY), i) + addtimer(CALLBACK(user, TYPE_PROC_REF(/atom, add_atom_colour), (i % 2)? "#a245bb" : "#7a7d82", ADMIN_COLOUR_PRIORITY), i) addtimer(CALLBACK(src, PROC_REF(manual_suicide), user), 101) return MANUAL_SUICIDE if(SKILL_LEVEL_LEGENDARY to INFINITY) //Holy shit, look at that janny go! @@ -51,7 +51,7 @@ playsound(src, 'sound//magic/lightning_chargeup.ogg', 50, TRUE, -1) user.reagents.add_reagent(/datum/reagent/drug/methamphetamine, 10) //Gotta go fast! for(var/i in 1 to 150) - addtimer(CALLBACK(user, /atom/proc/add_atom_colour, (i % 2)? "#a245bb" : "#7a7d82", ADMIN_COLOUR_PRIORITY), i) + addtimer(CALLBACK(user, TYPE_PROC_REF(/atom, add_atom_colour), (i % 2)? "#a245bb" : "#7a7d82", ADMIN_COLOUR_PRIORITY), i) addtimer(CALLBACK(src, PROC_REF(manual_suicide), user), 151) return MANUAL_SUICIDE diff --git a/code/modules/wiremod/components/action/laserpointer.dm b/code/modules/wiremod/components/action/laserpointer.dm index 8bb249faf0d..eb1324280cf 100644 --- a/code/modules/wiremod/components/action/laserpointer.dm +++ b/code/modules/wiremod/components/action/laserpointer.dm @@ -65,4 +65,4 @@ laser_location.pixel_y = clamp(target.pixel_y + image_pixel_y.value,-15,15) target_location.add_overlay(laser_location) - addtimer(CALLBACK(target_location, /atom/proc/cut_overlay, laser_location), 1 SECONDS) + addtimer(CALLBACK(target_location, TYPE_PROC_REF(/atom, cut_overlay), laser_location), 1 SECONDS) diff --git a/code/modules/wiremod/components/list/format.dm b/code/modules/wiremod/components/list/format.dm index 2ff98535588..96cc2024ff0 100644 --- a/code/modules/wiremod/components/list/format.dm +++ b/code/modules/wiremod/components/list/format.dm @@ -94,6 +94,7 @@ * * index_string - Just the "1" of the %1 format, actually used. */ /regex/format_component/proc/process_format_component_param(match, index_string) + REGEX_REPLACE_HANDLER // The static regex_context var is what you'd expect src to be, but src is actually the regex instance. var/list/param_list = context.param_list_port.value if(!islist(param_list)) diff --git a/tgstation.dme b/tgstation.dme index c75ae2bce4a..90081865be8 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -157,6 +157,7 @@ #include "code\__DEFINES\reactions.dm" #include "code\__DEFINES\reagents.dm" #include "code\__DEFINES\reagents_specific_heat.dm" +#include "code\__DEFINES\regex.dm" #include "code\__DEFINES\religion.dm" #include "code\__DEFINES\research.dm" #include "code\__DEFINES\resonator.dm"