Bitflag returns from component signals (#33186)

* For more useful returns from sendsignal

* removes a needless else/indentation

* cleanup
This commit is contained in:
Emmett Gaines
2017-12-01 13:09:22 -06:00
committed by CitadelStationBot
parent a3a87bdb3f
commit b8e754500c
10 changed files with 45 additions and 36 deletions
+8 -7
View File
@@ -164,24 +164,24 @@
/datum/proc/SendSignal(sigtype, ...)
var/list/comps = datum_components
if(!comps)
return FALSE
return NONE
var/list/arguments = args.Copy()
arguments.Cut(1, 2)
var/target = comps[/datum/component]
if(!length(target))
var/datum/component/C = target
if(!C.enabled)
return FALSE
return NONE
var/list/sps = C.signal_procs
var/datum/callback/CB = LAZYACCESS(sps, sigtype)
if(!CB)
return FALSE
return NONE
. = CB.InvokeAsync(arglist(arguments))
if(.)
if(. & COMPONENT_ACTIVATED)
ComponentActivated(C)
C.AfterComponentActivated()
else
. = FALSE
. = NONE
for(var/I in target)
var/datum/component/C = I
if(!C.enabled)
@@ -190,10 +190,11 @@
var/datum/callback/CB = LAZYACCESS(sps, sigtype)
if(!CB)
continue
if(CB.InvokeAsync(arglist(arguments)))
var/retval = CB.InvokeAsync(arglist(arguments))
. |= retval
if(retval & COMPONENT_ACTIVATED)
ComponentActivated(C)
C.AfterComponentActivated()
. = TRUE
/datum/proc/ComponentActivated(datum/component/C)
set waitfor = FALSE