[MIRROR] Signal Handler Preperation (#10917)

Co-authored-by: Will <7099514+Willburd@users.noreply.github.com>
Co-authored-by: Cameron Lennox <killer65311@gmail.com>
This commit is contained in:
CHOMPStation2StaffMirrorBot
2025-05-18 22:38:29 -07:00
committed by GitHub
parent b92212f9ee
commit 68e70a00ad
24 changed files with 23 additions and 26 deletions

View File

@@ -8,8 +8,7 @@
/// Signifies that this proc is used to handle signals. /// Signifies that this proc is used to handle signals.
/// Every proc you pass to RegisterSignal must have this. /// Every proc you pass to RegisterSignal must have this.
// #define SIGNAL_HANDLER SHOULD_NOT_SLEEP(TRUE) FIXME: FIXME: Causing some big issues still #define SIGNAL_HANDLER SHOULD_NOT_SLEEP(TRUE)
#define SIGNAL_HANDLER
/// A wrapper for _AddElement that allows us to pretend we're using normal named arguments /// A wrapper for _AddElement that allows us to pretend we're using normal named arguments
#define AddElement(arguments...) _AddElement(list(##arguments)) #define AddElement(arguments...) _AddElement(list(##arguments))

View File

@@ -454,9 +454,9 @@ SUBSYSTEM_DEF(statpanels)
on_mob_move(parent.mob) on_mob_move(parent.mob)
/datum/object_window_info/proc/turflist_changed(mob/source) /datum/object_window_info/proc/turflist_changed(mob/source)
SIGNAL_HANDLER
if(!parent)//statbrowser hasnt fired yet and we still have a pending action if(!parent)//statbrowser hasnt fired yet and we still have a pending action
return return
SIGNAL_HANDLER
if(!(flags & TURFLIST_UPDATED)) //Limit updates to 1 per tick if(!(flags & TURFLIST_UPDATED)) //Limit updates to 1 per tick
SSstatpanels.immediate_send_stat_data(parent) SSstatpanels.immediate_send_stat_data(parent)
flags |= TURFLIST_UPDATED flags |= TURFLIST_UPDATED

View File

@@ -135,7 +135,7 @@
if(QDELETED(thing) || thing.loc == newturf) if(QDELETED(thing) || thing.loc == newturf)
continue continue
thing.forceMove(newturf, movetime = MOVE_GLIDE_CALC(glide_size,0)) thing.forceMove(newturf, movetime = MOVE_GLIDE_CALC(glide_size,0))
if(CHECK_TICK && master.loc != curloc) if(TICK_CHECK && master.loc != curloc)
// We moved again during the checktick, cancel current operation // We moved again during the checktick, cancel current operation
break break

View File

@@ -53,6 +53,7 @@
. = ..() . = ..()
/datum/component/gargoyle/proc/unpause() /datum/component/gargoyle/proc/unpause()
SIGNAL_HANDLER
if (!paused || transformed) if (!paused || transformed)
paused = FALSE paused = FALSE
paused_loc = null paused_loc = null

View File

@@ -86,12 +86,10 @@
/datum/proximity_monitor/mobspawner /datum/proximity_monitor/mobspawner
/datum/proximity_monitor/mobspawner/on_uncrossed(atom/source, atom/movable/AM, atom/new_loc) /datum/proximity_monitor/mobspawner/on_uncrossed(atom/source, atom/movable/AM, atom/new_loc)
SIGNAL_HANDLER
var/obj/structure/mob_spawner/scanner/scanner = host var/obj/structure/mob_spawner/scanner/scanner = host
scanner.CheckProximity(AM,new_loc) scanner.CheckProximity(AM,new_loc)
/datum/proximity_monitor/mobspawner/on_entered(atom/source, atom/movable/arrived) /datum/proximity_monitor/mobspawner/on_entered(atom/source, atom/movable/arrived)
SIGNAL_HANDLER
var/obj/structure/mob_spawner/scanner/scanner = host var/obj/structure/mob_spawner/scanner/scanner = host
if(source != host) if(source != host)
scanner.NewProximity(arrived) scanner.NewProximity(arrived)

View File

@@ -55,7 +55,6 @@
return 1 return 1
/obj/machinery/camera/HasProximity(turf/T, datum/weakref/WF, old_loc) /obj/machinery/camera/HasProximity(turf/T, datum/weakref/WF, old_loc)
SIGNAL_HANDLER
if(isnull(WF)) if(isnull(WF))
return return
var/atom/movable/AM = WF.resolve() var/atom/movable/AM = WF.resolve()

View File

@@ -119,8 +119,11 @@
operating = 1 operating = 1
flick(text("[src.base_state]opening"), src) flick(text("[src.base_state]opening"), src)
playsound(src, 'sound/machines/door/windowdoor.ogg', 100, 1) playsound(src, 'sound/machines/door/windowdoor.ogg', 100, 1)
sleep(10) addtimer(CALLBACK(src, PROC_REF(finish_open)), 1 SECONDS, TIMER_DELETE_ME)
/obj/machinery/door/window/proc/finish_open()
PRIVATE_PROC(TRUE)
SHOULD_NOT_OVERRIDE(TRUE)
explosion_resistance = 0 explosion_resistance = 0
density = FALSE density = FALSE
update_icon() update_icon()
@@ -141,8 +144,11 @@
update_icon() update_icon()
explosion_resistance = initial(explosion_resistance) explosion_resistance = initial(explosion_resistance)
update_nearby_tiles() update_nearby_tiles()
addtimer(CALLBACK(src, PROC_REF(finish_close)), 1 SECONDS, TIMER_DELETE_ME)
sleep(10) /obj/machinery/door/window/proc/finish_close()
PRIVATE_PROC(TRUE)
SHOULD_NOT_OVERRIDE(TRUE)
operating = FALSE operating = FALSE
return TRUE return TRUE

View File

@@ -98,7 +98,6 @@
..(severity) ..(severity)
/obj/machinery/flasher/portable/HasProximity(turf/T, datum/weakref/WF, oldloc) /obj/machinery/flasher/portable/HasProximity(turf/T, datum/weakref/WF, oldloc)
SIGNAL_HANDLER
if(isnull(WF)) if(isnull(WF))
return return

View File

@@ -21,7 +21,11 @@
. = ..() . = ..()
var/area/A = get_area(src) var/area/A = get_area(src)
if(A) if(A)
RegisterSignal(A, COMSIG_OBSERVER_APC, /atom/proc/update_icon) RegisterSignal(A, COMSIG_OBSERVER_APC, PROC_REF(on_observer_apc))
update_icon()
/obj/item/radio/intercom/proc/on_observer_apc()
SIGNAL_HANDLER
update_icon() update_icon()
/obj/item/radio/intercom/Destroy() /obj/item/radio/intercom/Destroy()

View File

@@ -56,7 +56,6 @@
return return
/obj/item/transfer_valve/HasProximity(turf/T, datum/weakref/WF, old_loc) /obj/item/transfer_valve/HasProximity(turf/T, datum/weakref/WF, old_loc)
SIGNAL_HANDLER
if(isnull(WF)) if(isnull(WF))
return return
var/atom/movable/AM = WF.resolve() var/atom/movable/AM = WF.resolve()

View File

@@ -215,6 +215,7 @@
UnregisterSignal(user, COMSIG_OBSERVER_MOVED) UnregisterSignal(user, COMSIG_OBSERVER_MOVED)
/obj/item/storage/bag/ore/proc/autoload(mob/user) /obj/item/storage/bag/ore/proc/autoload(mob/user)
SIGNAL_HANDLER
var/obj/item/ore/O = locate() in get_turf(src) var/obj/item/ore/O = locate() in get_turf(src)
if(O) if(O)
gather_all(get_turf(src), user) gather_all(get_turf(src), user)

View File

@@ -658,7 +658,6 @@ var/list/global/tank_gauge_cache = list()
tank.cut_overlay("bomb_assembly") tank.cut_overlay("bomb_assembly")
/obj/item/tankassemblyproxy/HasProximity(turf/T, datum/weakref/WF, old_loc) /obj/item/tankassemblyproxy/HasProximity(turf/T, datum/weakref/WF, old_loc)
SIGNAL_HANDLER
if(isnull(WF)) if(isnull(WF))
return return
var/atom/movable/AM = WF.resolve() var/atom/movable/AM = WF.resolve()

View File

@@ -71,7 +71,6 @@
sense_proximity(callback = TYPE_PROC_REF(/atom,HasProximity)) sense_proximity(callback = TYPE_PROC_REF(/atom,HasProximity))
/obj/item/assembly_holder/HasProximity(turf/T, datum/weakref/WF, old_loc) /obj/item/assembly_holder/HasProximity(turf/T, datum/weakref/WF, old_loc)
SIGNAL_HANDLER
if(isnull(WF)) if(isnull(WF))
return return
var/atom/movable/AM = WF.resolve() var/atom/movable/AM = WF.resolve()

View File

@@ -33,7 +33,6 @@
return secured return secured
/obj/item/assembly/prox_sensor/HasProximity(turf/T, datum/weakref/WF, old_loc) /obj/item/assembly/prox_sensor/HasProximity(turf/T, datum/weakref/WF, old_loc)
SIGNAL_HANDLER
if(isnull(WF)) if(isnull(WF))
return return
var/atom/movable/AM = WF.resolve() var/atom/movable/AM = WF.resolve()

View File

@@ -62,6 +62,7 @@
START_PROCESSING(SSobj, src) START_PROCESSING(SSobj, src)
/obj/item/blobcore_chunk/proc/call_chunk_unique() /obj/item/blobcore_chunk/proc/call_chunk_unique()
SIGNAL_HANDLER
if(blob_type) if(blob_type)
blob_type.chunk_unique(src, args) blob_type.chunk_unique(src, args)
return return

View File

@@ -50,6 +50,7 @@
UnregisterSignal(H, COMSIG_OBSERVER_MOVED) UnregisterSignal(H, COMSIG_OBSERVER_MOVED)
/obj/item/rig_module/pat_module/proc/boop(var/mob/living/carbon/human/user,var/turf/To,var/turf/Tn) /obj/item/rig_module/pat_module/proc/boop(var/mob/living/carbon/human/user,var/turf/To,var/turf/Tn)
SIGNAL_HANDLER
if(!istype(user) || !istype(To) || !istype(Tn)) if(!istype(user) || !istype(To) || !istype(Tn))
deactivate() //They were picked up or something, or put themselves in a locker, who knows. Just turn off. deactivate() //They were picked up or something, or put themselves in a locker, who knows. Just turn off.
return return

View File

@@ -162,8 +162,7 @@
M.Stun(8) M.Stun(8)
M.Weaken(5) M.Weaken(5)
seed.thrown_at(src,M) seed.thrown_at(src,M)
sleep(-1) qdel(src)
if(src) qdel(src)
return return
/obj/item/reagent_containers/food/snacks/grown/throw_impact(atom/hit_atom) /obj/item/reagent_containers/food/snacks/grown/throw_impact(atom/hit_atom)

View File

@@ -1,5 +1,4 @@
/obj/effect/plant/HasProximity(turf/T, datum/weakref/WF, old_loc) /obj/effect/plant/HasProximity(turf/T, datum/weakref/WF, old_loc)
SIGNAL_HANDLER
if(isnull(WF)) if(isnull(WF))
return return
var/atom/movable/AM = WF.resolve() var/atom/movable/AM = WF.resolve()

View File

@@ -53,7 +53,6 @@
shock(L) shock(L)
/obj/machinery/containment_field/HasProximity(turf/T, datum/weakref/WF, old_loc) /obj/machinery/containment_field/HasProximity(turf/T, datum/weakref/WF, old_loc)
SIGNAL_HANDLER
if(isnull(WF)) if(isnull(WF))
return return
var/atom/movable/AM = WF.resolve() var/atom/movable/AM = WF.resolve()
@@ -83,9 +82,7 @@
var/atom/target = get_edge_target_turf(user, get_dir(src, get_step_away(user, src))) var/atom/target = get_edge_target_turf(user, get_dir(src, get_step_away(user, src)))
user.throw_at(target, 200, 4) user.throw_at(target, 200, 4)
sleep(20) VARSET_IN(src, hasShocked, FALSE, 2 SECONDS)
hasShocked = 0
/obj/machinery/containment_field/proc/set_master(var/master1,var/master2) /obj/machinery/containment_field/proc/set_master(var/master1,var/master2)
if(!master1 || !master2) if(!master1 || !master2)

View File

@@ -1000,7 +1000,6 @@
return ..() return ..()
/datum/tgui_module/appearance_changer/vore/update_active_camera_screen() /datum/tgui_module/appearance_changer/vore/update_active_camera_screen()
SIGNAL_HANDLER
cam_screen.vis_contents = list(owner) cam_screen.vis_contents = list(owner)
cam_background.icon_state = "clear" cam_background.icon_state = "clear"
cam_background.fill_rect(1, 1, 1, 1) cam_background.fill_rect(1, 1, 1, 1)

View File

@@ -149,7 +149,6 @@
return failed return failed
/datum/unit_test/all_clothing_shall_be_valid/get_signal_data(atom/source, list/data = list()) /datum/unit_test/all_clothing_shall_be_valid/get_signal_data(atom/source, list/data = list())
SIGNAL_HANDLER
switch(data[1]) switch(data[1])
if("set_slot") if("set_slot")
var/slot_name = data[2] var/slot_name = data[2]

View File

@@ -280,7 +280,6 @@
return TRUE return TRUE
/datum/unit_test/chemical_reactions_shall_not_conflict/get_signal_data(atom/source, list/data = list()) /datum/unit_test/chemical_reactions_shall_not_conflict/get_signal_data(atom/source, list/data = list())
SIGNAL_HANDLER
result_reactions.Add(data[1]) // Append the reactions that happened, then use that to check their inhibitors result_reactions.Add(data[1]) // Append the reactions that happened, then use that to check their inhibitors

View File

@@ -111,3 +111,4 @@ var/total_unit_tests = 0
// This signal should never be possible to call if the game is not compiled for unit tests // This signal should never be possible to call if the game is not compiled for unit tests
/datum/unit_test/proc/get_signal_data(atom/source, list/data = list()) /datum/unit_test/proc/get_signal_data(atom/source, list/data = list())
SIGNAL_HANDLER SIGNAL_HANDLER
return

View File

@@ -74,7 +74,6 @@
..(severity) ..(severity)
/obj/machinery/bluespace_denier/HasProximity(turf/T, datum/weakref/WF, oldloc) /obj/machinery/bluespace_denier/HasProximity(turf/T, datum/weakref/WF, oldloc)
SIGNAL_HANDLER
if(isnull(WF)) if(isnull(WF))
return return