From 257feb1be79ad2c9b37a80ca5807426446fc77a2 Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Sun, 27 Nov 2022 23:46:36 +0100 Subject: [PATCH] [MIRROR] More horrible 515 proc compatibility. [MDB IGNORE] (#17671) * More horrible 515 proc compatibility. * Feex * Hopefully we're done now Co-authored-by: AnturK Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com> --- 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 8f3166cf5aa..ff92af88fbd 100644 --- a/code/controllers/subsystem/explosions.dm +++ b/code/controllers/subsystem/explosions.dm @@ -578,7 +578,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 08edac0381b..b1c54ae0b26 100644 --- a/code/controllers/subsystem/statpanel.dm +++ b/code/controllers/subsystem/statpanel.dm @@ -246,7 +246,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 a6c2350bf36..8f8ade1ac31 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -279,7 +279,7 @@ SUBSYSTEM_DEF(ticker) real_round_start_time = world.timeofday //SKYRAT EDIT ADDITION 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!")) alert_sound_to_playing(sound(SSstation.announcer.get_rand_welcome_sound())) //SKYRAT EDIT CHANGE 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 d78efbf2983..b810aa8fd63 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 5c21f5ae851..2cd41276507 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm @@ -791,7 +791,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 4842ac73ca9..12a17399580 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -584,7 +584,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) . = ..() @@ -757,7 +757,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 0c5f5dc7c99..3d63481a9ac 100644 --- a/code/game/objects/items/devices/scanners/gas_analyzer.dm +++ b/code/game/objects/items/devices/scanners/gas_analyzer.dm @@ -87,7 +87,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 bf9740c4c9d..b06395c6ba7 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 f415e251440..4b321e76654 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 aae51cbefe1..557d121c075 100644 --- a/code/game/objects/structures/displaycase.dm +++ b/code/game/objects/structures/displaycase.dm @@ -103,7 +103,7 @@ //alarmed.burglaralert(src) SKYRAT EDIT REMOVAL 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 25fc09c7612..9de69cc4476 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -48,7 +48,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 3056e340b0e..35b88d6976e 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 5f33ba452bf..2a42f9fd5ae 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -131,7 +131,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 @@ -376,7 +376,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) @@ -519,7 +519,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 052b5f91c28..40f1dd64d03 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 1b72c9848f8..83516be5f36 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclear_bomb/_nuclear_bomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclear_bomb/_nuclear_bomb.dm @@ -568,7 +568,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 64d7f5e3763..a16590c2c49 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 74b54ef7df1..bc776962f9e 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -986,7 +986,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 ef187e4699d..a622f27986a 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -151,7 +151,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 7c26a57015f..41d3df5642a 100644 --- a/code/modules/clothing/shoes/_shoes.dm +++ b/code/modules/clothing/shoes/_shoes.dm @@ -252,7 +252,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 8aae3dc7bbb..6bcd35fdeac 100644 --- a/code/modules/jobs/job_types/_job.dm +++ b/code/modules/jobs/job_types/_job.dm @@ -217,7 +217,7 @@ /datum/job/proc/announce_head(mob/living/carbon/human/H, channels, job_title) // SKYRAT EDIT CHANGE - ALTERNATIVE_JOB_TITLES - Original: /datum/job/proc/announce_head(mob/living/carbon/human/H, 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, job_title, channels), 1)) // SKYRAT EDIT CHANGE - ALTERNATIVE_JOB_TITLES - Original: SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, 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, job_title, channels), 1)) // SKYRAT EDIT CHANGE - ALTERNATIVE_JOB_TITLES - Original: 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 556581bfd99..13b2f110361 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -159,7 +159,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 b2df748810e..b689eaa4790 100644 --- a/code/modules/mob/living/basic/vermin/mouse.dm +++ b/code/modules/mob/living/basic/vermin/mouse.dm @@ -177,7 +177,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 07f45bc6f0b..fe93c74eaa5 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -332,7 +332,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 @@ -379,7 +379,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 546546da64b..294a6d31f1e 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -475,7 +475,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 8d1ee00a3ed..ee4e51bf2f2 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -626,7 +626,7 @@ /mob/living/proc/get_up(instant = FALSE) set waitfor = FALSE - var/get_up_speed = GET_UP_FAST //SKYRAT EDIT CHANGE : 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)) + var/get_up_speed = GET_UP_FAST //SKYRAT EDIT CHANGE : 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) var/stam = getStaminaLoss() switch(FLOOR(stam,1)) if(STAMINA_THRESHOLD_MEDIUM_GET_UP to STAMINA_THRESHOLD_SLOW_GET_UP) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 13a0c08514d..7fd5a47574b 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -82,8 +82,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 f0d22690c67..30c2ce36d03 100644 --- a/code/modules/mob/living/silicon/robot/robot_model.dm +++ b/code/modules/mob/living/silicon/robot/robot_model.dm @@ -529,7 +529,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 21bc7853930..e1a83da81b2 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 5ef7d4d5da4..67972869a42 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -631,7 +631,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 66c9f0d6610..d12d820b504 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 28e0f16902a..6f6fdc35611 100644 --- a/code/modules/modular_computers/computers/item/computer.dm +++ b/code/modules/modular_computers/computers/item/computer.dm @@ -586,7 +586,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 fa9df27bef2..fb90be19ddf 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 207e65c4802..c635be0e4ed 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 50ec97946d7..1816bef5197 100644 --- a/code/modules/power/singularity/boh_tear.dm +++ b/code/modules/power/singularity/boh_tear.dm @@ -44,7 +44,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 fb5bf4c1215..d43f8810ea9 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -447,7 +447,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 25cb931ab9f..03433ed4ca3 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 e3f972fa3d4..ed544c9ea3d 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -203,7 +203,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 610cf16664b..0fe9d0cc5f4 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -1125,7 +1125,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 fe7f2083369..2bb6005dab2 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 e8b43488dff..dde0c15bd00 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -158,6 +158,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"