Kills off Object and Fast Object Processes

This commit is contained in:
Fox McCloud
2019-04-23 23:53:40 -04:00
parent 1544756ce6
commit 0034e851a1
126 changed files with 350 additions and 396 deletions

View File

@@ -22,7 +22,7 @@
A.nullifyPipenet(src) A.nullifyPipenet(src)
return ..() return ..()
/datum/pipeline/proc/process()//This use to be called called from the pipe networks /datum/pipeline/process()//This use to be called called from the pipe networks
if(update) if(update)
update = 0 update = 0
reconcile_air() reconcile_air()

View File

@@ -21,7 +21,6 @@
#define START_PROCESSING(Processor, Datum) if (!Datum.isprocessing) {Datum.isprocessing = TRUE;Processor.processing += Datum} #define START_PROCESSING(Processor, Datum) if (!Datum.isprocessing) {Datum.isprocessing = TRUE;Processor.processing += Datum}
#define STOP_PROCESSING(Processor, Datum) Datum.isprocessing = FALSE;Processor.processing -= Datum #define STOP_PROCESSING(Processor, Datum) Datum.isprocessing = FALSE;Processor.processing -= Datum
#define START_DEFERRED_PROCESSING(Processor, Datum) if (!Datum.isprocessing) {Datum.isprocessing = TRUE;Processor.processing.Insert(1,Datum)}
//SubSystem flags (Please design any new flags so that the default is off, to make adding flags to subsystems easier) //SubSystem flags (Please design any new flags so that the default is off, to make adding flags to subsystems easier)

View File

@@ -13,6 +13,8 @@
//Objects //Objects
#define isitem(A) (istype(A, /obj/item)) #define isitem(A) (istype(A, /obj/item))
#define ismachinery(A) (istype(A, /obj/machinery))
#define ismecha(A) (istype(A, /obj/mecha)) #define ismecha(A) (istype(A, /obj/mecha))
#define is_cleanable(A) (istype(A, /obj/effect/decal/cleanable) || istype(A, /obj/effect/rune)) //if something is cleanable #define is_cleanable(A) (istype(A, /obj/effect/decal/cleanable) || istype(A, /obj/effect/rune)) //if something is cleanable

View File

@@ -27,7 +27,5 @@ Due to BYOND features used in this codebase, you must update to version 510 or l
This may require updating to a beta release. This may require updating to a beta release.
#endif #endif
var/global/list/processing_objects = list() //This has to be initialized BEFORE world
// Macros that must exist before world.dm // Macros that must exist before world.dm
#define to_chat to_chat_filename=__FILE__;to_chat_line=__LINE__;to_chat_src=src;__to_chat #define to_chat to_chat_filename=__FILE__;to_chat_line=__LINE__;to_chat_src=src;__to_chat

View File

@@ -19,7 +19,6 @@ GLOBAL_LIST_INIT(navigation_computers, list())
GLOBAL_LIST_INIT(all_areas, list()) GLOBAL_LIST_INIT(all_areas, list())
GLOBAL_LIST_INIT(machines, list()) GLOBAL_LIST_INIT(machines, list())
GLOBAL_LIST_INIT(fast_processing, list())
GLOBAL_LIST_INIT(processing_power_items, list()) //items that ask to be called every cycle GLOBAL_LIST_INIT(processing_power_items, list()) //items that ask to be called every cycle
GLOBAL_LIST_INIT(rcd_list, list()) //list of Rapid Construction Devices. GLOBAL_LIST_INIT(rcd_list, list()) //list of Rapid Construction Devices.

View File

@@ -158,7 +158,7 @@
/datum/controller/process/proc/setup() /datum/controller/process/proc/setup()
/datum/controller/process/proc/process() /datum/controller/process/proc/process_decrepit()
started() started()
doWork() doWork()
finished() finished()

View File

@@ -72,9 +72,9 @@ var/global/datum/controller/processScheduler/processScheduler
scheduler_sleep_interval = world.tick_lag scheduler_sleep_interval = world.tick_lag
updateStartDelays() updateStartDelays()
spawn(0) spawn(0)
process() process_decrepit()
/datum/controller/processScheduler/proc/process() /datum/controller/processScheduler/proc/process_decrepit()
while(isRunning) while(isRunning)
checkRunningProcesses() checkRunningProcesses()
queueProcesses() queueProcesses()
@@ -154,7 +154,7 @@ var/global/datum/controller/processScheduler/processScheduler
/datum/controller/processScheduler/proc/runProcess(var/datum/controller/process/process) /datum/controller/processScheduler/proc/runProcess(var/datum/controller/process/process)
spawn(0) spawn(0)
process.process() process.process_decrepit()
/datum/controller/processScheduler/proc/processStarted(var/datum/controller/process/process) /datum/controller/processScheduler/proc/processStarted(var/datum/controller/process/process)
setRunningProcessState(process) setRunningProcessState(process)

View File

@@ -1,17 +0,0 @@
/datum/controller/process/fast_process/setup()
name = "fast processing"
schedule_interval = 2 //every 0.2 seconds
start_delay = 9
log_startup_progress("Fast Processing starting up.")
/datum/controller/process/fast_process/statProcess()
..()
stat(null, "[GLOB.fast_processing.len] fast processes")
/datum/controller/process/fast_process/doWork()
for(last_object in GLOB.fast_processing)
var/obj/O = last_object
try
O.process()
catch(var/exception/e)
catchException(e, O)

View File

@@ -1,28 +0,0 @@
/datum/controller/process/obj/setup()
name = "obj"
schedule_interval = 20 // every 2 seconds
start_delay = 8
/datum/controller/process/obj/started()
..()
if(!processing_objects)
processing_objects = list()
/datum/controller/process/obj/statProcess()
..()
stat(null, "[processing_objects.len] objects")
/datum/controller/process/obj/doWork()
for(last_object in processing_objects)
var/datum/O = last_object
if(istype(O) && !QDELETED(O))
try
// Reagent datums get shoved in here, but the process proc isn't on the
// base datum type, so we just call it blindly.
O:process()
catch(var/exception/e)
catchException(e, O)
SCHECK
else
catchBadType(O)
processing_objects -= O

View File

@@ -30,7 +30,7 @@ DECLARE_GLOBAL_CONTROLLER(ticker, tickerProcess)
lastTickerTime = currentTime lastTickerTime = currentTime
ticker.process() ticker.process_decrepit()
/datum/controller/process/ticker/proc/getLastTickerTimeDuration() /datum/controller/process/ticker/proc/getLastTickerTimeDuration()
return lastTickerTimeDuration return lastTickerTimeDuration

View File

@@ -0,0 +1,6 @@
//Fires five times every second.
PROCESSING_SUBSYSTEM_DEF(fastprocess)
name = "Fast Processing"
wait = 2
stat_tag = "FP"

View File

@@ -0,0 +1,5 @@
PROCESSING_SUBSYSTEM_DEF(obj)
name = "Objects"
priority = FIRE_PRIORITY_OBJ
flags = SS_NO_INIT
wait = 20

View File

@@ -1,7 +1,5 @@
//Used to process objects. Fires once every second. //Used to process objects. Fires once every second.
//TODO: Implement fully when process scheduler dies
/*
SUBSYSTEM_DEF(processing) SUBSYSTEM_DEF(processing)
name = "Processing" name = "Processing"
priority = FIRE_PRIORITY_PROCESS priority = FIRE_PRIORITY_PROCESS
@@ -24,15 +22,16 @@ SUBSYSTEM_DEF(processing)
while(current_run.len) while(current_run.len)
var/datum/thing = current_run[current_run.len] var/datum/thing = current_run[current_run.len]
current_run.len-- current_run.len--
if(QDELETED(thing) || thing.process(wait) == PROCESS_KILL) if(QDELETED(thing))
processing -= thing processing -= thing
else if(thing.process(wait) == PROCESS_KILL)
// fully stop so that a future START_PROCESSING will work
STOP_PROCESSING(src, thing)
if(MC_TICK_CHECK) if(MC_TICK_CHECK)
return return
*/
/datum/var/isprocessing = FALSE /datum/var/isprocessing = FALSE
/*
/datum/proc/process() /datum/proc/process()
set waitfor = 0 set waitfor = 0
STOP_PROCESSING(SSobj, src) return PROCESS_KILL
return 0
*/

View File

@@ -109,7 +109,7 @@ Data storage vars:
CRASH("The global_iterator loop \ref[src] failed to terminate in designated timeframe. This may be caused by server lagging.") CRASH("The global_iterator loop \ref[src] failed to terminate in designated timeframe. This may be caused by server lagging.")
return 1 return 1
/datum/global_iterator/proc/process() /datum/global_iterator/process()
return return
/datum/global_iterator/proc/active() /datum/global_iterator/proc/active()

View File

@@ -32,11 +32,11 @@
var/obj/screen/alert/status_effect/A = owner.throw_alert(id, alert_type) var/obj/screen/alert/status_effect/A = owner.throw_alert(id, alert_type)
A.attached_effect = src //so the alert can reference us, if it needs to A.attached_effect = src //so the alert can reference us, if it needs to
linked_alert = A //so we can reference the alert, if we need to linked_alert = A //so we can reference the alert, if we need to
GLOB.fast_processing.Add(src) START_PROCESSING(SSfastprocess, src)
return TRUE return TRUE
/datum/status_effect/Destroy() /datum/status_effect/Destroy()
GLOB.fast_processing.Remove(src) STOP_PROCESSING(SSfastprocess, src)
if(owner) if(owner)
owner.clear_alert(id) owner.clear_alert(id)
LAZYREMOVE(owner.status_effects, src) LAZYREMOVE(owner.status_effects, src)
@@ -44,7 +44,7 @@
owner = null owner = null
return ..() return ..()
/datum/status_effect/proc/process() /datum/status_effect/process()
if(!owner) if(!owner)
qdel(src) qdel(src)
return return

View File

@@ -14,7 +14,7 @@
/obj/structure/blob/core/New(loc, var/h = 200, var/client/new_overmind = null, var/new_rate = 2, offspring) /obj/structure/blob/core/New(loc, var/h = 200, var/client/new_overmind = null, var/new_rate = 2, offspring)
blob_cores += src blob_cores += src
processing_objects.Add(src) START_PROCESSING(SSobj, src)
GLOB.poi_list |= src GLOB.poi_list |= src
adjustcolors(color) //so it atleast appears adjustcolors(color) //so it atleast appears
if(!overmind) if(!overmind)
@@ -42,7 +42,7 @@
if(overmind) if(overmind)
overmind.blob_core = null overmind.blob_core = null
overmind = null overmind = null
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
GLOB.poi_list.Remove(src) GLOB.poi_list.Remove(src)
return ..() return ..()

View File

@@ -9,7 +9,7 @@
/obj/structure/blob/node/New(loc, var/h = 100) /obj/structure/blob/node/New(loc, var/h = 100)
blob_nodes += src blob_nodes += src
processing_objects.Add(src) START_PROCESSING(SSobj, src)
..(loc, h) ..(loc, h)
/obj/structure/blob/node/adjustcolors(var/a_color) /obj/structure/blob/node/adjustcolors(var/a_color)
@@ -26,7 +26,7 @@
/obj/structure/blob/node/Destroy() /obj/structure/blob/node/Destroy()
blob_nodes -= src blob_nodes -= src
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/structure/blob/node/Life(seconds, times_fired) /obj/structure/blob/node/Life(seconds, times_fired)

View File

@@ -13,10 +13,10 @@
/obj/effect/proc_holder/changeling/fleshmend/New() /obj/effect/proc_holder/changeling/fleshmend/New()
..() ..()
processing_objects.Add(src) START_PROCESSING(SSobj, src)
/obj/effect/proc_holder/changeling/fleshmend/Destroy() /obj/effect/proc_holder/changeling/fleshmend/Destroy()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/effect/proc_holder/changeling/fleshmend/process() /obj/effect/proc_holder/changeling/fleshmend/process()

View File

@@ -433,7 +433,7 @@
..() ..()
if(ismob(loc)) if(ismob(loc))
loc.visible_message("<span class='warning'>[loc.name]\'s flesh rapidly inflates, forming a bloated mass around [loc.p_their()] body!</span>", "<span class='warning'>We inflate our flesh, creating a spaceproof suit!</span>", "<span class='warning'>You hear organic matter ripping and tearing!</span>") loc.visible_message("<span class='warning'>[loc.name]\'s flesh rapidly inflates, forming a bloated mass around [loc.p_their()] body!</span>", "<span class='warning'>We inflate our flesh, creating a spaceproof suit!</span>", "<span class='warning'>You hear organic matter ripping and tearing!</span>")
processing_objects += src START_PROCESSING(SSobj, src)
/obj/item/clothing/suit/space/changeling/process() /obj/item/clothing/suit/space/changeling/process()
if(ishuman(loc)) if(ishuman(loc))

View File

@@ -193,11 +193,11 @@ var/list/blacklisted_pylon_turfs = typecacheof(list(
return return
/obj/structure/cult/functional/pylon/New() /obj/structure/cult/functional/pylon/New()
processing_objects |= src START_PROCESSING(SSobj, src)
..() ..()
/obj/structure/cult/functional/pylon/Destroy() /obj/structure/cult/functional/pylon/Destroy()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/structure/cult/functional/pylon/process() /obj/structure/cult/functional/pylon/process()

View File

@@ -88,7 +88,7 @@
///process() ///process()
///Called by the gameticker ///Called by the gameticker
/datum/game_mode/proc/process() /datum/game_mode/process()
return 0 return 0
//Called by the gameticker //Called by the gameticker

View File

@@ -400,7 +400,7 @@ var/round_start_time = 0
if(m) if(m)
to_chat(world, "<span class='purple'><b>Tip of the round: </b>[html_encode(m)]</span>") to_chat(world, "<span class='purple'><b>Tip of the round: </b>[html_encode(m)]</span>")
/datum/controller/gameticker/proc/process() /datum/controller/gameticker/proc/process_decrepit()
if(current_state != GAME_STATE_PLAYING) if(current_state != GAME_STATE_PLAYING)
return 0 return 0

View File

@@ -56,7 +56,7 @@
var/announced = 0 var/announced = 0
/obj/machinery/doomsday_device/Destroy() /obj/machinery/doomsday_device/Destroy()
GLOB.fast_processing -= src STOP_PROCESSING(SSfastprocess, src)
SSshuttle.emergencyNoEscape = 0 SSshuttle.emergencyNoEscape = 0
if(SSshuttle.emergency.mode == SHUTTLE_STRANDED) if(SSshuttle.emergency.mode == SHUTTLE_STRANDED)
SSshuttle.emergency.mode = SHUTTLE_DOCKED SSshuttle.emergency.mode = SHUTTLE_DOCKED
@@ -67,7 +67,7 @@
/obj/machinery/doomsday_device/proc/start() /obj/machinery/doomsday_device/proc/start()
detonation_timer = world.time + default_timer detonation_timer = world.time + default_timer
timing = 1 timing = 1
GLOB.fast_processing += src START_PROCESSING(SSfastprocess, src)
SSshuttle.emergencyNoEscape = 1 SSshuttle.emergencyNoEscape = 1
/obj/machinery/doomsday_device/proc/seconds_remaining() /obj/machinery/doomsday_device/proc/seconds_remaining()
@@ -84,7 +84,7 @@
priority_announcement.Announce("Hostile environment resolved. You have 3 minutes to board the Emergency Shuttle.", "Priority Announcement", 'sound/AI/shuttledock.ogg') priority_announcement.Announce("Hostile environment resolved. You have 3 minutes to board the Emergency Shuttle.", "Priority Announcement", 'sound/AI/shuttledock.ogg')
qdel(src) qdel(src)
if(!timing) if(!timing)
GLOB.fast_processing -= src STOP_PROCESSING(SSfastprocess, src)
return return
var/sec_left = seconds_remaining() var/sec_left = seconds_remaining()
if(sec_left <= 0) if(sec_left <= 0)

View File

@@ -110,15 +110,15 @@
M.SetStunned(0) M.SetStunned(0)
M.SetWeakened(0) M.SetWeakened(0)
combat_cooldown = 0 combat_cooldown = 0
processing_objects.Add(src) START_PROCESSING(SSobj, src)
/obj/item/clothing/suit/armor/abductor/vest/process() /obj/item/clothing/suit/armor/abductor/vest/process()
combat_cooldown++ combat_cooldown++
if(combat_cooldown==initial(combat_cooldown)) if(combat_cooldown==initial(combat_cooldown))
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
/obj/item/clothing/suit/armor/abductor/Destroy() /obj/item/clothing/suit/armor/abductor/Destroy()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
for(var/obj/machinery/abductor/console/C in GLOB.machines) for(var/obj/machinery/abductor/console/C in GLOB.machines)
if(C.vest == src) if(C.vest == src)
C.vest = null C.vest = null

View File

@@ -373,11 +373,11 @@
/obj/effect/cocoon/abductor/proc/Start() /obj/effect/cocoon/abductor/proc/Start()
hatch_time = world.time + 600 hatch_time = world.time + 600
processing_objects.Add(src) START_PROCESSING(SSobj, src)
/obj/effect/cocoon/abductor/process() /obj/effect/cocoon/abductor/process()
if(world.time > hatch_time) if(world.time > hatch_time)
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
for(var/mob/M in contents) for(var/mob/M in contents)
src.visible_message("<span class='warning'>[src] hatches!</span>") src.visible_message("<span class='warning'>[src] hatches!</span>")
M.forceMove(get_turf(src)) M.forceMove(get_turf(src))

View File

@@ -407,7 +407,7 @@ var/bomb_set
/obj/item/disk/nuclear/New() /obj/item/disk/nuclear/New()
..() ..()
processing_objects.Add(src) START_PROCESSING(SSobj, src)
GLOB.poi_list |= src GLOB.poi_list |= src
/obj/item/disk/nuclear/process() /obj/item/disk/nuclear/process()
@@ -437,7 +437,7 @@ var/bomb_set
message_admins("[src] has been !!force deleted!! in ([diskturf ? "[diskturf.x], [diskturf.y] ,[diskturf.z] - <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[diskturf.x];Y=[diskturf.y];Z=[diskturf.z]'>JMP</a>":"nonexistent location"]).") message_admins("[src] has been !!force deleted!! in ([diskturf ? "[diskturf.x], [diskturf.y] ,[diskturf.z] - <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[diskturf.x];Y=[diskturf.y];Z=[diskturf.z]'>JMP</a>":"nonexistent location"]).")
log_game("[src] has been !!force deleted!! in ([diskturf ? "[diskturf.x], [diskturf.y] ,[diskturf.z]":"nonexistent location"]).") log_game("[src] has been !!force deleted!! in ([diskturf ? "[diskturf.x], [diskturf.y] ,[diskturf.z]":"nonexistent location"]).")
GLOB.poi_list.Remove(src) GLOB.poi_list.Remove(src)
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()
if(blobstart.len > 0) if(blobstart.len > 0)

View File

@@ -153,7 +153,7 @@
src.spawn_amt_left = spawn_amt src.spawn_amt_left = spawn_amt
src.desc = desc src.desc = desc
processing_objects.Add(src) START_PROCESSING(SSobj, src)
//return //return
/obj/effect/rend/process() /obj/effect/rend/process()

View File

@@ -54,6 +54,7 @@
/obj/machinery/disco/Destroy() /obj/machinery/disco/Destroy()
dance_over() dance_over()
selection = null selection = null
STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/machinery/disco/attackby(obj/item/O, mob/user, params) /obj/machinery/disco/attackby(obj/item/O, mob/user, params)
@@ -128,7 +129,7 @@
active = TRUE active = TRUE
update_icon() update_icon()
dance_setup() dance_setup()
processing_objects.Add(src) START_PROCESSING(SSobj, src)
lights_spin() lights_spin()
updateUsrDialog() updateUsrDialog()
else if(active) else if(active)
@@ -472,7 +473,7 @@
L.stop_sound_channel(CHANNEL_JUKEBOX) L.stop_sound_channel(CHANNEL_JUKEBOX)
else if(active) else if(active)
active = FALSE active = FALSE
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
dance_over() dance_over()
playsound(src,'sound/machines/terminal_off.ogg',50,1) playsound(src,'sound/machines/terminal_off.ogg',50,1)
icon_state = "disco0" icon_state = "disco0"

View File

@@ -39,7 +39,6 @@
if(command_completed(cur_command)) if(command_completed(cur_command))
cur_command = null cur_command = null
else else
if(!isprocessing)
START_PROCESSING(SSmachines, src) START_PROCESSING(SSmachines, src)
/obj/machinery/door/airlock/proc/do_command(command) /obj/machinery/door/airlock/proc/do_command(command)

View File

@@ -17,8 +17,8 @@
/datum/computer/file/embedded_program/proc/receive_signal(datum/signal/signal, receive_method, receive_param) /datum/computer/file/embedded_program/proc/receive_signal(datum/signal/signal, receive_method, receive_param)
return return
/datum/computer/file/embedded_program/proc/process() /datum/computer/file/embedded_program/process()
return return FALSE
/datum/computer/file/embedded_program/proc/post_signal(datum/signal/signal, comm_line) /datum/computer/file/embedded_program/proc/post_signal(datum/signal/signal, comm_line)
if(master) if(master)

View File

@@ -143,7 +143,7 @@ FIRE ALARM
alarm() alarm()
time = 0 time = 0
timing = 0 timing = 0
processing_objects -= src STOP_PROCESSING(SSobj, src)
updateDialog() updateDialog()
last_process = world.timeofday last_process = world.timeofday
@@ -206,9 +206,9 @@ FIRE ALARM
last_process = world.timeofday last_process = world.timeofday
if(oldTiming != timing) if(oldTiming != timing)
if(timing) if(timing)
processing_objects += src START_PROCESSING(SSobj, src)
else else
processing_objects -= src STOP_PROCESSING(SSobj, src)
else if(href_list["tp"]) else if(href_list["tp"])
var/tp = text2num(href_list["tp"]) var/tp = text2num(href_list["tp"])
time += tp time += tp

View File

@@ -118,25 +118,24 @@ Class Procs:
var/use_log = list() var/use_log = list()
var/list/settagwhitelist = list()//WHITELIST OF VARIABLES THAT THE set_tag HREF CAN MODIFY, DON'T PUT SHIT YOU DON'T NEED ON HERE, AND IF YOU'RE GONNA USE set_tag (format_tag() proc), ADD TO THIS LIST. var/list/settagwhitelist = list()//WHITELIST OF VARIABLES THAT THE set_tag HREF CAN MODIFY, DON'T PUT SHIT YOU DON'T NEED ON HERE, AND IF YOU'RE GONNA USE set_tag (format_tag() proc), ADD TO THIS LIST.
atom_say_verb = "beeps" atom_say_verb = "beeps"
var/defer_process = 0
var/siemens_strength = 0.7 // how badly will it shock you? var/siemens_strength = 0.7 // how badly will it shock you?
/obj/machinery/Initialize() /obj/machinery/Initialize(mapload)
addAtProcessing() if(!armor)
armor = list(melee = 25, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
. = ..() . = ..()
GLOB.machines += src
addAtProcessing()
power_change() power_change()
/obj/machinery/proc/addAtProcessing() /obj/machinery/proc/addAtProcessing()
if(use_power) if(use_power)
myArea = get_area(src) myArea = get_area(src)
if(!speed_process) if(!speed_process)
if(!defer_process)
START_PROCESSING(SSmachines, src) START_PROCESSING(SSmachines, src)
else else
START_DEFERRED_PROCESSING(SSmachines, src) START_PROCESSING(SSfastprocess, src)
else
GLOB.fast_processing += src
isprocessing = TRUE // all of these isprocessing = TRUE can be removed when the PS is dead
// gotta go fast // gotta go fast
/obj/machinery/makeSpeedProcess() /obj/machinery/makeSpeedProcess()
@@ -144,7 +143,7 @@ Class Procs:
return return
speed_process = TRUE speed_process = TRUE
STOP_PROCESSING(SSmachines, src) STOP_PROCESSING(SSmachines, src)
GLOB.fast_processing += src START_PROCESSING(SSfastprocess, src)
// gotta go slow // gotta go slow
/obj/machinery/makeNormalProcess() /obj/machinery/makeNormalProcess()
@@ -152,20 +151,16 @@ Class Procs:
return return
speed_process = FALSE speed_process = FALSE
START_PROCESSING(SSmachines, src) START_PROCESSING(SSmachines, src)
GLOB.fast_processing -= src STOP_PROCESSING(SSfastprocess, src)
/obj/machinery/New() //new
if(!armor)
armor = list(melee = 25, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
GLOB.machines += src
..()
/obj/machinery/Destroy() /obj/machinery/Destroy()
if(myArea) if(myArea)
myArea = null myArea = null
GLOB.fast_processing -= src GLOB.machines.Remove(src)
if(!speed_process)
STOP_PROCESSING(SSmachines, src) STOP_PROCESSING(SSmachines, src)
GLOB.machines -= src else
STOP_PROCESSING(SSfastprocess, src)
return ..() return ..()
/obj/machinery/proc/locate_machinery() /obj/machinery/proc/locate_machinery()

View File

@@ -39,7 +39,7 @@
/obj/machinery/syndicatebomb/process() /obj/machinery/syndicatebomb/process()
if(!active) if(!active)
GLOB.fast_processing -= src STOP_PROCESSING(SSfastprocess, src)
detonation_timer = null detonation_timer = null
next_beep = null next_beep = null
countdown.stop() countdown.stop()
@@ -73,7 +73,7 @@
if(defused && payload in src) if(defused && payload in src)
payload.defuse() payload.defuse()
countdown.stop() countdown.stop()
GLOB.fast_processing -= src STOP_PROCESSING(SSfastprocess, src)
/obj/machinery/syndicatebomb/New() /obj/machinery/syndicatebomb/New()
wires = new(src) wires = new(src)
@@ -86,7 +86,7 @@
/obj/machinery/syndicatebomb/Destroy() /obj/machinery/syndicatebomb/Destroy()
QDEL_NULL(wires) QDEL_NULL(wires)
QDEL_NULL(countdown) QDEL_NULL(countdown)
GLOB.fast_processing -= src STOP_PROCESSING(SSfastprocess, src)
return ..() return ..()
/obj/machinery/syndicatebomb/examine(mob/user) /obj/machinery/syndicatebomb/examine(mob/user)
@@ -205,7 +205,7 @@
/obj/machinery/syndicatebomb/proc/activate() /obj/machinery/syndicatebomb/proc/activate()
active = TRUE active = TRUE
GLOB.fast_processing += src START_PROCESSING(SSfastprocess, src)
countdown.start() countdown.start()
next_beep = world.time + 10 next_beep = world.time + 10
detonation_timer = world.time + (timer_set * 10) detonation_timer = world.time + (timer_set * 10)

View File

@@ -4,7 +4,7 @@
/obj/item/mecha_parts/mecha_equipment/medical/New() /obj/item/mecha_parts/mecha_equipment/medical/New()
..() ..()
processing_objects.Add(src) START_PROCESSING(SSobj, src)
/obj/item/mecha_parts/mecha_equipment/medical/can_attach(obj/mecha/medical/M) /obj/item/mecha_parts/mecha_equipment/medical/can_attach(obj/mecha/medical/M)
@@ -13,19 +13,19 @@
/obj/item/mecha_parts/mecha_equipment/medical/attach(obj/mecha/M) /obj/item/mecha_parts/mecha_equipment/medical/attach(obj/mecha/M)
..() ..()
processing_objects.Add(src) START_PROCESSING(SSobj, src)
/obj/item/mecha_parts/mecha_equipment/medical/Destroy() /obj/item/mecha_parts/mecha_equipment/medical/Destroy()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/item/mecha_parts/mecha_equipment/medical/process() /obj/item/mecha_parts/mecha_equipment/medical/process()
if(!chassis) if(!chassis)
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return 1 return 1
/obj/item/mecha_parts/mecha_equipment/medical/detach() /obj/item/mecha_parts/mecha_equipment/medical/detach()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/item/mecha_parts/mecha_equipment/medical/sleeper /obj/item/mecha_parts/mecha_equipment/medical/sleeper
@@ -66,7 +66,7 @@
return return
target.forceMove(src) target.forceMove(src)
patient = target patient = target
processing_objects.Add(src) START_PROCESSING(SSobj, src)
update_equip_info() update_equip_info()
occupant_message("<span class='notice'>[target] successfully loaded into [src]. Life support functions engaged.</span>") occupant_message("<span class='notice'>[target] successfully loaded into [src]. Life support functions engaged.</span>")
chassis.visible_message("<span class='warning'>[chassis] loads [target] into [src].</span>") chassis.visible_message("<span class='warning'>[chassis] loads [target] into [src].</span>")
@@ -90,7 +90,7 @@
patient.forceMove(get_turf(src)) patient.forceMove(get_turf(src))
occupant_message("[patient] ejected. Life support functions disabled.") occupant_message("[patient] ejected. Life support functions disabled.")
log_message("[patient] ejected. Life support functions disabled.") log_message("[patient] ejected. Life support functions disabled.")
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
patient = null patient = null
update_equip_info() update_equip_info()
@@ -98,7 +98,7 @@
if(patient) if(patient)
occupant_message("<span class='warning'>Unable to detach [src] - equipment occupied!</span>") occupant_message("<span class='warning'>Unable to detach [src] - equipment occupied!</span>")
return return
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/item/mecha_parts/mecha_equipment/medical/sleeper/get_equip_info() /obj/item/mecha_parts/mecha_equipment/medical/sleeper/get_equip_info()
@@ -221,7 +221,7 @@
set_ready_state(1) set_ready_state(1)
log_message("Deactivated.") log_message("Deactivated.")
occupant_message("[src] deactivated - no power.") occupant_message("[src] deactivated - no power.")
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return return
var/mob/living/carbon/M = patient var/mob/living/carbon/M = patient
if(!M) if(!M)
@@ -263,11 +263,11 @@
processed_reagents = new processed_reagents = new
/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/detach() /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/detach()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/Destroy() /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/Destroy()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/critfail() /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/critfail()
@@ -374,7 +374,7 @@
m++ m++
if(processed_reagents.len) if(processed_reagents.len)
message += " added to production" message += " added to production"
processing_objects.Add(src) START_PROCESSING(SSobj, src)
occupant_message(message) occupant_message(message)
occupant_message("Reagent processing started.") occupant_message("Reagent processing started.")
log_message("Reagent processing started.") log_message("Reagent processing started.")
@@ -513,7 +513,7 @@
if(!processed_reagents.len || reagents.total_volume >= reagents.maximum_volume || !chassis.has_charge(energy_drain)) if(!processed_reagents.len || reagents.total_volume >= reagents.maximum_volume || !chassis.has_charge(energy_drain))
occupant_message("<span class=\"alert\">Reagent processing stopped.</a>") occupant_message("<span class=\"alert\">Reagent processing stopped.</a>")
log_message("Reagent processing stopped.") log_message("Reagent processing stopped.")
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return return
var/amount = synth_speed / processed_reagents.len var/amount = synth_speed / processed_reagents.len
for(var/reagent in processed_reagents) for(var/reagent in processed_reagents)

View File

@@ -116,14 +116,14 @@
/obj/item/mecha_parts/mecha_equipment/mining_scanner/attach(obj/mecha/M) /obj/item/mecha_parts/mecha_equipment/mining_scanner/attach(obj/mecha/M)
. = ..() . = ..()
processing_objects.Add(src) START_PROCESSING(SSobj, src)
M.occupant_sight_flags |= SEE_TURFS M.occupant_sight_flags |= SEE_TURFS
if(M.occupant) if(M.occupant)
M.occupant.update_sight() M.occupant.update_sight()
/obj/item/mecha_parts/mecha_equipment/mining_scanner/detach() /obj/item/mecha_parts/mecha_equipment/mining_scanner/detach()
chassis.occupant_sight_flags &= ~SEE_TURFS chassis.occupant_sight_flags &= ~SEE_TURFS
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
if(chassis.occupant) if(chassis.occupant)
chassis.occupant.update_sight() chassis.occupant.update_sight()
return ..() return ..()

View File

@@ -193,7 +193,7 @@
selectable = 0 selectable = 0
/obj/item/mecha_parts/mecha_equipment/repair_droid/Destroy() /obj/item/mecha_parts/mecha_equipment/repair_droid/Destroy()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
if(chassis) if(chassis)
chassis.overlays -= droid_overlay chassis.overlays -= droid_overlay
return ..() return ..()
@@ -205,7 +205,7 @@
/obj/item/mecha_parts/mecha_equipment/repair_droid/detach() /obj/item/mecha_parts/mecha_equipment/repair_droid/detach()
chassis.overlays -= droid_overlay chassis.overlays -= droid_overlay
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
/obj/item/mecha_parts/mecha_equipment/repair_droid/get_equip_info() /obj/item/mecha_parts/mecha_equipment/repair_droid/get_equip_info()
if(!chassis) return if(!chassis) return
@@ -217,12 +217,12 @@
if(href_list["toggle_repairs"]) if(href_list["toggle_repairs"])
chassis.overlays -= droid_overlay chassis.overlays -= droid_overlay
if(equip_ready) if(equip_ready)
processing_objects.Add(src) START_PROCESSING(SSobj, src)
droid_overlay = new(icon, icon_state = "repair_droid_a") droid_overlay = new(icon, icon_state = "repair_droid_a")
log_message("Activated.") log_message("Activated.")
set_ready_state(0) set_ready_state(0)
else else
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
droid_overlay = new(icon, icon_state = "repair_droid") droid_overlay = new(icon, icon_state = "repair_droid")
log_message("Deactivated.") log_message("Deactivated.")
set_ready_state(1) set_ready_state(1)
@@ -232,7 +232,7 @@
/obj/item/mecha_parts/mecha_equipment/repair_droid/process() /obj/item/mecha_parts/mecha_equipment/repair_droid/process()
if(!chassis) if(!chassis)
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
set_ready_state(1) set_ready_state(1)
return return
var/h_boost = health_boost var/h_boost = health_boost
@@ -250,10 +250,10 @@
repaired = 1 repaired = 1
if(repaired) if(repaired)
if(!chassis.use_power(energy_drain)) if(!chassis.use_power(energy_drain))
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
set_ready_state(1) set_ready_state(1)
else //no repair needed, we turn off else //no repair needed, we turn off
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
set_ready_state(1) set_ready_state(1)
chassis.overlays -= droid_overlay chassis.overlays -= droid_overlay
droid_overlay = new(icon, icon_state = "repair_droid") droid_overlay = new(icon, icon_state = "repair_droid")
@@ -273,11 +273,11 @@
selectable = 0 selectable = 0
/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay/Destroy() /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay/Destroy()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay/detach() /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay/detach()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
..() ..()
/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay/proc/get_charge() /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay/proc/get_charge()
@@ -302,11 +302,11 @@
..() ..()
if(href_list["toggle_relay"]) if(href_list["toggle_relay"])
if(equip_ready) //inactive if(equip_ready) //inactive
processing_objects.Add(src) START_PROCESSING(SSobj, src)
set_ready_state(0) set_ready_state(0)
log_message("Activated.") log_message("Activated.")
else else
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
set_ready_state(1) set_ready_state(1)
log_message("Deactivated.") log_message("Deactivated.")
@@ -317,12 +317,12 @@
/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay/process() /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay/process()
if(!chassis || chassis.internal_damage & MECHA_INT_SHORT_CIRCUIT) if(!chassis || chassis.internal_damage & MECHA_INT_SHORT_CIRCUIT)
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
set_ready_state(1) set_ready_state(1)
return return
var/cur_charge = chassis.get_charge() var/cur_charge = chassis.get_charge()
if(isnull(cur_charge) || !chassis.cell) if(isnull(cur_charge) || !chassis.cell)
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
set_ready_state(1) set_ready_state(1)
occupant_message("No powercell detected.") occupant_message("No powercell detected.")
return return
@@ -358,11 +358,11 @@
/obj/item/mecha_parts/mecha_equipment/generator/Destroy() /obj/item/mecha_parts/mecha_equipment/generator/Destroy()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/item/mecha_parts/mecha_equipment/generator/detach() /obj/item/mecha_parts/mecha_equipment/generator/detach()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
..() ..()
/obj/item/mecha_parts/mecha_equipment/generator/Topic(href, href_list) /obj/item/mecha_parts/mecha_equipment/generator/Topic(href, href_list)
@@ -370,11 +370,11 @@
if(href_list["toggle"]) if(href_list["toggle"])
if(equip_ready) //inactive if(equip_ready) //inactive
set_ready_state(0) set_ready_state(0)
processing_objects.Add(src) START_PROCESSING(SSobj, src)
log_message("Activated.") log_message("Activated.")
else else
set_ready_state(1) set_ready_state(1)
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
log_message("Deactivated.") log_message("Deactivated.")
/obj/item/mecha_parts/mecha_equipment/generator/get_equip_info() /obj/item/mecha_parts/mecha_equipment/generator/get_equip_info()
@@ -447,11 +447,11 @@
/obj/item/mecha_parts/mecha_equipment/generator/process() /obj/item/mecha_parts/mecha_equipment/generator/process()
if(!chassis) if(!chassis)
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
set_ready_state(1) set_ready_state(1)
return return
if(fuel_amount<=0) if(fuel_amount<=0)
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
log_message("Deactivated - no fuel.") log_message("Deactivated - no fuel.")
set_ready_state(1) set_ready_state(1)
return return
@@ -460,7 +460,7 @@
set_ready_state(1) set_ready_state(1)
occupant_message("No powercell detected.") occupant_message("No powercell detected.")
log_message("Deactivated.") log_message("Deactivated.")
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return return
var/use_fuel = fuel_per_cycle_idle var/use_fuel = fuel_per_cycle_idle
if(cur_charge < chassis.cell.maxcharge) if(cur_charge < chassis.cell.maxcharge)

View File

@@ -118,7 +118,7 @@
smoke_system.attach(src) smoke_system.attach(src)
add_cell() add_cell()
processing_objects.Add(src) START_PROCESSING(SSobj, src)
GLOB.poi_list |= src GLOB.poi_list |= src
log_message("[src] created.") log_message("[src] created.")
GLOB.mechas_list += src //global mech list GLOB.mechas_list += src //global mech list
@@ -670,7 +670,7 @@
QDEL_NULL(cell) QDEL_NULL(cell)
QDEL_NULL(internal_tank) QDEL_NULL(internal_tank)
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
GLOB.poi_list.Remove(src) GLOB.poi_list.Remove(src)
equipment.Cut() equipment.Cut()
cell = null cell = null

View File

@@ -24,7 +24,7 @@
spawn(3 + metal*3) spawn(3 + metal*3)
process() process()
spawn(120) spawn(120)
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
sleep(30) sleep(30)
if(metal) if(metal)

View File

@@ -30,15 +30,15 @@
/obj/effect/particle_effect/smoke/New() /obj/effect/particle_effect/smoke/New()
..() ..()
processing_objects |= src START_PROCESSING(SSobj, src)
lifetime += rand(-1,1) lifetime += rand(-1,1)
/obj/effect/particle_effect/smoke/Destroy() /obj/effect/particle_effect/smoke/Destroy()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/effect/particle_effect/smoke/proc/kill_smoke() /obj/effect/particle_effect/smoke/proc/kill_smoke()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
INVOKE_ASYNC(src, .proc/fade_out) INVOKE_ASYNC(src, .proc/fade_out)
QDEL_IN(src, 10) QDEL_IN(src, 10)

View File

@@ -9,12 +9,12 @@
/obj/effect/snowcloud/New(turf, obj/machinery/snow_machine/SM) /obj/effect/snowcloud/New(turf, obj/machinery/snow_machine/SM)
..() ..()
processing_objects.Add(src) START_PROCESSING(SSobj, src)
if(SM && istype(SM)) if(SM && istype(SM))
parent_machine = SM parent_machine = SM
/obj/effect/snowcloud/Destroy() /obj/effect/snowcloud/Destroy()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/effect/snowcloud/process() /obj/effect/snowcloud/process()
@@ -73,12 +73,12 @@
anchored = TRUE anchored = TRUE
/obj/effect/snow/New() /obj/effect/snow/New()
processing_objects.Add(src) START_PROCESSING(SSobj, src)
icon_state = "snow[rand(1,6)]" icon_state = "snow[rand(1,6)]"
..() ..()
/obj/effect/snow/Destroy() /obj/effect/snow/Destroy()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/effect/snow/process() /obj/effect/snow/process()

View File

@@ -107,7 +107,7 @@
..() ..()
pixel_x = rand(3,-3) pixel_x = rand(3,-3)
pixel_y = rand(3,-3) pixel_y = rand(3,-3)
processing_objects.Add(src) START_PROCESSING(SSobj, src)
/obj/structure/spider/eggcluster/process() /obj/structure/spider/eggcluster/process()
amount_grown += rand(0,2) amount_grown += rand(0,2)
@@ -140,10 +140,10 @@
..() ..()
pixel_x = rand(6,-6) pixel_x = rand(6,-6)
pixel_y = rand(6,-6) pixel_y = rand(6,-6)
processing_objects.Add(src) START_PROCESSING(SSobj, src)
/obj/structure/spider/spiderling/Destroy() /obj/structure/spider/spiderling/Destroy()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
entry_vent = null entry_vent = null
return ..() return ..()

View File

@@ -28,7 +28,7 @@
var/obj/item/clothing/mask/cigarette/cig = W var/obj/item/clothing/mask/cigarette/cig = W
if(cig.lit == 1) if(cig.lit == 1)
src.visible_message("[user] crushes [cig] in [src], putting it out.") src.visible_message("[user] crushes [cig] in [src], putting it out.")
processing_objects.Remove(cig) STOP_PROCESSING(SSobj, cig)
var/obj/item/butt = new cig.type_butt(src) var/obj/item/butt = new cig.type_butt(src)
cig.transfer_fingerprints_to(butt) cig.transfer_fingerprints_to(butt)
qdel(cig) qdel(cig)

View File

@@ -18,7 +18,7 @@
light(show_message = 0) light(show_message = 0)
/obj/item/candle/Destroy() /obj/item/candle/Destroy()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/item/candle/update_icon() /obj/item/candle/update_icon()
@@ -62,7 +62,7 @@
if(show_message) if(show_message)
usr.visible_message(show_message) usr.visible_message(show_message)
set_light(CANDLE_LUM) set_light(CANDLE_LUM)
processing_objects.Add(src) START_PROCESSING(SSobj, src)
update_icon() update_icon()

View File

@@ -32,7 +32,7 @@
/obj/item/camera_bug/New() /obj/item/camera_bug/New()
..() ..()
processing_objects += src START_PROCESSING(SSobj, src)
/obj/item/camera_bug/Destroy() /obj/item/camera_bug/Destroy()
get_cameras() get_cameras()

View File

@@ -227,7 +227,7 @@
return PROCESS_KILL return PROCESS_KILL
/obj/item/borg_chameleon/proc/activate(mob/living/silicon/robot/syndicate/saboteur/user) /obj/item/borg_chameleon/proc/activate(mob/living/silicon/robot/syndicate/saboteur/user)
processing_objects.Add(src) START_PROCESSING(SSobj, src)
S = user S = user
user.base_icon = disguise user.base_icon = disguise
user.icon_state = disguise user.icon_state = disguise
@@ -236,7 +236,7 @@
user.update_icons() user.update_icons()
/obj/item/borg_chameleon/proc/deactivate(mob/living/silicon/robot/syndicate/saboteur/user) /obj/item/borg_chameleon/proc/deactivate(mob/living/silicon/robot/syndicate/saboteur/user)
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
S = user S = user
user.base_icon = initial(user.base_icon) user.base_icon = initial(user.base_icon)
user.icon_state = initial(user.icon_state) user.icon_state = initial(user.icon_state)

View File

@@ -207,10 +207,10 @@
/obj/item/flash/cameraflash/New() /obj/item/flash/cameraflash/New()
..() ..()
processing_objects.Add(src) START_PROCESSING(SSobj, src)
/obj/item/flash/cameraflash/Destroy() /obj/item/flash/cameraflash/Destroy()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/item/flash/cameraflash/process() //this and the two parts above are part of the charge system. /obj/item/flash/cameraflash/process() //this and the two parts above are part of the charge system.

View File

@@ -183,10 +183,10 @@
turn_off() turn_off()
if(!fuel) if(!fuel)
src.icon_state = "[initial(icon_state)]-empty" src.icon_state = "[initial(icon_state)]-empty"
processing_objects -= src STOP_PROCESSING(SSobj, src)
/obj/item/flashlight/flare/Destroy() /obj/item/flashlight/flare/Destroy()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/item/flashlight/flare/proc/turn_off() /obj/item/flashlight/flare/proc/turn_off()
@@ -222,7 +222,7 @@
user.visible_message("<span class='notice'>[user] activates [src].</span>", "<span class='notice'>You activate [src].</span>") user.visible_message("<span class='notice'>[user] activates [src].</span>", "<span class='notice'>You activate [src].</span>")
src.force = on_damage src.force = on_damage
src.damtype = "fire" src.damtype = "fire"
processing_objects += src START_PROCESSING(SSobj, src)
// GLOWSTICKS // GLOWSTICKS
@@ -344,10 +344,10 @@
/obj/item/flashlight/emp/New() /obj/item/flashlight/emp/New()
..() ..()
processing_objects.Add(src) START_PROCESSING(SSobj, src)
/obj/item/flashlight/emp/Destroy() /obj/item/flashlight/emp/Destroy()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/item/flashlight/emp/process() /obj/item/flashlight/emp/process()

View File

@@ -167,7 +167,7 @@
if(energy <= max_energy) if(energy <= max_energy)
if(!recharging) if(!recharging)
recharging = 1 recharging = 1
processing_objects.Add(src) START_PROCESSING(SSobj, src)
if(energy <= 0) if(energy <= 0)
to_chat(user, "<span class='warning'>You've overused the battery of [src], now it needs time to recharge!</span>") to_chat(user, "<span class='warning'>You've overused the battery of [src], now it needs time to recharge!</span>")
recharge_locked = 1 recharge_locked = 1

View File

@@ -47,10 +47,10 @@
/obj/item/multitool/ai_detect/New() /obj/item/multitool/ai_detect/New()
..() ..()
processing_objects += src START_PROCESSING(SSobj, src)
/obj/item/multitool/ai_detect/Destroy() /obj/item/multitool/ai_detect/Destroy()
processing_objects -= src STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/item/multitool/ai_detect/process() /obj/item/multitool/ai_detect/process()

View File

@@ -26,7 +26,7 @@
var/obj/structure/cable/attached // the attached cable var/obj/structure/cable/attached // the attached cable
/obj/item/powersink/Destroy() /obj/item/powersink/Destroy()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
GLOB.processing_power_items.Remove(src) GLOB.processing_power_items.Remove(src)
PN = null PN = null
attached = null attached = null
@@ -53,7 +53,7 @@
return return
else else
if(mode == 2) if(mode == 2)
processing_objects.Remove(src) // Now the power sink actually stops draining the station's power if you unhook it. --NeoFite STOP_PROCESSING(SSobj, src) // Now the power sink actually stops draining the station's power if you unhook it. --NeoFite
GLOB.processing_power_items.Remove(src) GLOB.processing_power_items.Remove(src)
anchored = 0 anchored = 0
mode = 0 mode = 0
@@ -76,14 +76,14 @@
src.visible_message("<span class='notice'>[user] activates [src]!</span>") src.visible_message("<span class='notice'>[user] activates [src]!</span>")
mode = 2 mode = 2
icon_state = "powersink1" icon_state = "powersink1"
processing_objects.Add(src) START_PROCESSING(SSobj, src)
GLOB.processing_power_items.Add(src) GLOB.processing_power_items.Add(src)
if(2) //This switch option wasn't originally included. It exists now. --NeoFite if(2) //This switch option wasn't originally included. It exists now. --NeoFite
src.visible_message("<span class='notice'>[user] deactivates [src]!</span>") src.visible_message("<span class='notice'>[user] deactivates [src]!</span>")
mode = 1 mode = 1
set_light(0) set_light(0)
icon_state = "powersink0" icon_state = "powersink0"
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
GLOB.processing_power_items.Remove(src) GLOB.processing_power_items.Remove(src)
/obj/item/powersink/pwr_drain() /obj/item/powersink/pwr_drain()

View File

@@ -49,7 +49,7 @@
..() ..()
buildstage = building buildstage = building
if(buildstage) if(buildstage)
processing_objects.Add(src) START_PROCESSING(SSobj, src)
else else
if(ndir) if(ndir)
pixel_x = (ndir & EAST|WEST) ? (ndir == EAST ? 28 : -28) : 0 pixel_x = (ndir & EAST|WEST) ? (ndir == EAST ? 28 : -28) : 0
@@ -105,7 +105,7 @@
) )
/obj/item/radio/intercom/Destroy() /obj/item/radio/intercom/Destroy()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
GLOB.global_intercoms.Remove(src) GLOB.global_intercoms.Remove(src)
return ..() return ..()
@@ -150,7 +150,7 @@
b_stat = 1 b_stat = 1
buildstage = 1 buildstage = 1
update_icon() update_icon()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return 1 return 1
else return ..() else return ..()
if(2) if(2)
@@ -163,7 +163,7 @@
buildstage = 3 buildstage = 3
to_chat(user, "<span class='notice'>You secure the electronics!</span>") to_chat(user, "<span class='notice'>You secure the electronics!</span>")
update_icon() update_icon()
processing_objects.Add(src) START_PROCESSING(SSobj, src)
for(var/i, i<= 5, i++) for(var/i, i<= 5, i++)
wires.UpdateCut(i,1) wires.UpdateCut(i,1)
return 1 return 1

View File

@@ -34,7 +34,7 @@ REAGENT SCANNER
/obj/item/t_scanner/Destroy() /obj/item/t_scanner/Destroy()
if(on) if(on)
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/item/t_scanner/attack_self(mob/user) /obj/item/t_scanner/attack_self(mob/user)
@@ -43,12 +43,12 @@ REAGENT SCANNER
icon_state = copytext(icon_state, 1, length(icon_state))+"[on]" icon_state = copytext(icon_state, 1, length(icon_state))+"[on]"
if(on) if(on)
processing_objects.Add(src) START_PROCESSING(SSobj, src)
/obj/item/t_scanner/process() /obj/item/t_scanner/process()
if(!on) if(!on)
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return null return null
scan() scan()

View File

@@ -256,7 +256,7 @@
/obj/item/borg/upgrade/selfrepair/Destroy() /obj/item/borg/upgrade/selfrepair/Destroy()
cyborg = null cyborg = null
processing_objects -= src STOP_PROCESSING(SSobj, src)
on = 0 on = 0
return ..() return ..()
@@ -264,10 +264,10 @@
on = !on on = !on
if(on) if(on)
to_chat(cyborg, "<span class='notice'>You activate the self-repair module.</span>") to_chat(cyborg, "<span class='notice'>You activate the self-repair module.</span>")
processing_objects |= src START_PROCESSING(SSobj, src)
else else
to_chat(cyborg, "<span class='notice'>You deactivate the self-repair module.</span>") to_chat(cyborg, "<span class='notice'>You deactivate the self-repair module.</span>")
processing_objects -= src STOP_PROCESSING(SSobj, src)
update_icon() update_icon()
/obj/item/borg/upgrade/selfrepair/update_icon() /obj/item/borg/upgrade/selfrepair/update_icon()
@@ -280,7 +280,7 @@
icon_state = "cyborg_upgrade5" icon_state = "cyborg_upgrade5"
/obj/item/borg/upgrade/selfrepair/proc/deactivate() /obj/item/borg/upgrade/selfrepair/proc/deactivate()
processing_objects -= src STOP_PROCESSING(SSobj, src)
on = 0 on = 0
update_icon() update_icon()

View File

@@ -26,7 +26,7 @@
return return
timing = !timing timing = !timing
if(timing) if(timing)
processing_objects.Add(src) START_PROCESSING(SSobj, src)
else else
armed = 0 armed = 0
timepassed = 0 timepassed = 0
@@ -34,7 +34,7 @@
/obj/item/caution/proximity_sign/process() /obj/item/caution/proximity_sign/process()
if(!timing) if(!timing)
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
timepassed++ timepassed++
if(timepassed >= 15 && !armed) if(timepassed >= 15 && !armed)
armed = 1 armed = 1

View File

@@ -177,7 +177,7 @@
update_icon() update_icon()
desc = initial(desc) + "<br><span class='info'>It appears to contain [target.name].</span>" desc = initial(desc) + "<br><span class='info'>It appears to contain [target.name].</span>"
processing_objects.Add(src) START_PROCESSING(SSobj, src)
/obj/effect/chrono_field/Destroy() /obj/effect/chrono_field/Destroy()
if(gun && gun.field_check(src)) if(gun && gun.field_check(src))

View File

@@ -48,7 +48,7 @@ LIGHTERS ARE IN LIGHTERS.DM
/obj/item/clothing/mask/cigarette/Destroy() /obj/item/clothing/mask/cigarette/Destroy()
QDEL_NULL(reagents) QDEL_NULL(reagents)
processing_objects -= src STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/item/clothing/mask/cigarette/attack(mob/living/M, mob/living/user, def_zone) /obj/item/clothing/mask/cigarette/attack(mob/living/M, mob/living/user, def_zone)
@@ -161,7 +161,7 @@ LIGHTERS ARE IN LIGHTERS.DM
var/turf/T = get_turf(src) var/turf/T = get_turf(src)
T.visible_message(flavor_text) T.visible_message(flavor_text)
set_light(2, 0.25, "#E38F46") set_light(2, 0.25, "#E38F46")
processing_objects.Add(src) START_PROCESSING(SSobj, src)
/obj/item/clothing/mask/cigarette/process() /obj/item/clothing/mask/cigarette/process()
@@ -213,7 +213,7 @@ LIGHTERS ARE IN LIGHTERS.DM
var/mob/living/M = loc var/mob/living/M = loc
to_chat(M, "<span class='notice'>Your [name] goes out.</span>") to_chat(M, "<span class='notice'>Your [name] goes out.</span>")
M.unEquip(src, 1) //Force the un-equip so the overlays update M.unEquip(src, 1) //Force the un-equip so the overlays update
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
qdel(src) qdel(src)
@@ -341,7 +341,7 @@ LIGHTERS ARE IN LIGHTERS.DM
if(flavor_text) if(flavor_text)
var/turf/T = get_turf(src) var/turf/T = get_turf(src)
T.visible_message(flavor_text) T.visible_message(flavor_text)
processing_objects.Add(src) START_PROCESSING(SSobj, src)
/obj/item/clothing/mask/cigarette/pipe/process() /obj/item/clothing/mask/cigarette/pipe/process()
var/turf/location = get_turf(src) var/turf/location = get_turf(src)
@@ -355,7 +355,7 @@ LIGHTERS ARE IN LIGHTERS.DM
icon_state = icon_off icon_state = icon_off
item_state = icon_off item_state = icon_off
M.update_inv_wear_mask(0) M.update_inv_wear_mask(0)
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return return
smoke() smoke()
return return
@@ -366,7 +366,7 @@ LIGHTERS ARE IN LIGHTERS.DM
lit = 0 lit = 0
icon_state = icon_off icon_state = icon_off
item_state = icon_off item_state = icon_off
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return return
if(smoketime <= 0) if(smoketime <= 0)
to_chat(user, "<span class='notice'>You refill the pipe with tobacco.</span>") to_chat(user, "<span class='notice'>You refill the pipe with tobacco.</span>")

View File

@@ -33,7 +33,7 @@
/obj/item/flamethrower/process() /obj/item/flamethrower/process()
if(!lit) if(!lit)
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return null return null
var/turf/location = loc var/turf/location = loc
if(istype(location, /mob/)) if(istype(location, /mob/))
@@ -141,7 +141,7 @@
if(!status) return if(!status) return
lit = !lit lit = !lit
if(lit) if(lit)
processing_objects.Add(src) START_PROCESSING(SSobj, src)
if(href_list["remove"]) if(href_list["remove"])
if(!ptank) return if(!ptank) return
usr.put_in_hands(ptank) usr.put_in_hands(ptank)

View File

@@ -44,7 +44,7 @@
strangling = null strangling = null
update_icon() update_icon()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
else else
..() ..()
@@ -97,7 +97,7 @@
M.AdjustSilence(1) M.AdjustSilence(1)
garrote_time = world.time + 10 garrote_time = world.time + 10
processing_objects.Add(src) START_PROCESSING(SSobj, src)
strangling = M strangling = M
update_icon() update_icon()
@@ -113,14 +113,14 @@
if(!strangling) if(!strangling)
// Our mark got gibbed or similar // Our mark got gibbed or similar
update_icon() update_icon()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return return
if(!istype(loc, /mob/living/carbon/human)) if(!istype(loc, /mob/living/carbon/human))
strangling = null strangling = null
update_icon() update_icon()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return return
var/mob/living/carbon/human/user = loc var/mob/living/carbon/human/user = loc
@@ -138,7 +138,7 @@
strangling = null strangling = null
update_icon() update_icon()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return return
@@ -148,7 +148,7 @@
strangling = null strangling = null
update_icon() update_icon()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return return

View File

@@ -402,10 +402,10 @@
/obj/item/nullrod/tribal_knife/New() /obj/item/nullrod/tribal_knife/New()
..() ..()
processing_objects.Add(src) START_PROCESSING(SSobj, src)
/obj/item/nullrod/tribal_knife/Destroy() /obj/item/nullrod/tribal_knife/Destroy()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/item/nullrod/tribal_knife/process() /obj/item/nullrod/tribal_knife/process()
@@ -432,10 +432,10 @@
/obj/item/nullrod/rosary/New() /obj/item/nullrod/rosary/New()
..() ..()
processing_objects.Add(src) START_PROCESSING(SSobj, src)
/obj/item/nullrod/rosary/Destroy() /obj/item/nullrod/rosary/Destroy()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/item/nullrod/rosary/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) /obj/item/nullrod/rosary/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)

View File

@@ -13,7 +13,7 @@
if(cooldown == total_cooldown) if(cooldown == total_cooldown)
home.Retrieve(imp_in,1) home.Retrieve(imp_in,1)
cooldown = 0 cooldown = 0
processing_objects.Add(src) START_PROCESSING(SSobj, src)
else else
to_chat(imp_in, "<span class='warning'>You must wait [(total_cooldown - cooldown)*2] seconds to use [src] again!</span>") to_chat(imp_in, "<span class='warning'>You must wait [(total_cooldown - cooldown)*2] seconds to use [src] again!</span>")
@@ -21,7 +21,7 @@
if(cooldown < total_cooldown) if(cooldown < total_cooldown)
cooldown++ cooldown++
if(cooldown == total_cooldown) if(cooldown == total_cooldown)
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
/obj/item/implant/abductor/implant(mob/source, mob/user) /obj/item/implant/abductor/implant(mob/source, mob/user)
if(..()) if(..())

View File

@@ -18,7 +18,7 @@
return dat return dat
/obj/item/implant/death_alarm/Destroy() /obj/item/implant/death_alarm/Destroy()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/item/implant/death_alarm/process() /obj/item/implant/death_alarm/process()
@@ -61,12 +61,12 @@
/obj/item/implant/death_alarm/implant(mob/target) /obj/item/implant/death_alarm/implant(mob/target)
if(..()) if(..())
mobname = target.real_name mobname = target.real_name
processing_objects.Add(src) START_PROCESSING(SSobj, src)
return 1 return 1
return 0 return 0
/obj/item/implant/death_alarm/removed(mob/target) /obj/item/implant/death_alarm/removed(mob/target)
if(..()) if(..())
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return 1 return 1
return 0 return 0

View File

@@ -58,7 +58,7 @@
user.visible_message("<span class='notice'>After a few attempts, [user] manages to light the [src], [user.p_they()] however burn[user.p_s()] [user.p_their()] finger in the process.</span>") user.visible_message("<span class='notice'>After a few attempts, [user] manages to light the [src], [user.p_they()] however burn[user.p_s()] [user.p_their()] finger in the process.</span>")
set_light(2) set_light(2)
processing_objects.Add(src) START_PROCESSING(SSobj, src)
else else
lit = 0 lit = 0
w_class = WEIGHT_CLASS_TINY w_class = WEIGHT_CLASS_TINY
@@ -74,7 +74,7 @@
user.visible_message("<span class='notice'>[user] quietly shuts off the [src].") user.visible_message("<span class='notice'>[user] quietly shuts off the [src].")
set_light(0) set_light(0)
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
else else
return ..() return ..()
return return
@@ -181,7 +181,7 @@
name = "lit match" name = "lit match"
desc = "A match. This one is lit." desc = "A match. This one is lit."
attack_verb = list("burnt","singed") attack_verb = list("burnt","singed")
processing_objects.Add(src) START_PROCESSING(SSobj, src)
update_icon() update_icon()
return TRUE return TRUE
@@ -196,7 +196,7 @@
name = "burnt match" name = "burnt match"
desc = "A match. This one has seen better days." desc = "A match. This one has seen better days."
attack_verb = list("flicked") attack_verb = list("flicked")
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return TRUE return TRUE
/obj/item/match/dropped(mob/user) /obj/item/match/dropped(mob/user)

View File

@@ -89,14 +89,14 @@
/obj/item/mop/advanced/New() /obj/item/mop/advanced/New()
..() ..()
processing_objects.Add(src) START_PROCESSING(SSobj, src)
/obj/item/mop/advanced/attack_self(mob/user) /obj/item/mop/advanced/attack_self(mob/user)
refill_enabled = !refill_enabled refill_enabled = !refill_enabled
if(refill_enabled) if(refill_enabled)
processing_objects.Add(src) START_PROCESSING(SSobj, src)
else else
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
to_chat(user, "<span class='notice'>You set the condenser switch to the '[refill_enabled ? "ON" : "OFF"]' position.</span>") to_chat(user, "<span class='notice'>You set the condenser switch to the '[refill_enabled ? "ON" : "OFF"]' position.</span>")
playsound(user, 'sound/machines/click.ogg', 30, 1) playsound(user, 'sound/machines/click.ogg', 30, 1)
@@ -111,7 +111,7 @@
/obj/item/mop/advanced/Destroy() /obj/item/mop/advanced/Destroy()
if(refill_enabled) if(refill_enabled)
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()

View File

@@ -107,7 +107,7 @@
/obj/item/storage/bag/plasticbag/equipped(var/mob/user, var/slot) /obj/item/storage/bag/plasticbag/equipped(var/mob/user, var/slot)
if(slot==slot_head) if(slot==slot_head)
storage_slots = 0 storage_slots = 0
processing_objects.Add(src) START_PROCESSING(SSobj, src)
return return
/obj/item/storage/bag/plasticbag/process() /obj/item/storage/bag/plasticbag/process()
@@ -120,7 +120,7 @@
H.AdjustLoseBreath(1) H.AdjustLoseBreath(1)
else else
storage_slots = 7 storage_slots = 7
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return return
// ----------------------------- // -----------------------------

View File

@@ -642,7 +642,7 @@
new /obj/item/grenade/smokebomb(src) new /obj/item/grenade/smokebomb(src)
new /obj/item/restraints/legcuffs/bola(src) new /obj/item/restraints/legcuffs/bola(src)
new /obj/item/restraints/legcuffs/bola(src) new /obj/item/restraints/legcuffs/bola(src)
processing_objects.Add(src) START_PROCESSING(SSobj, src)
cooldown = world.time cooldown = world.time
/obj/item/storage/belt/bluespace/owlman/process() /obj/item/storage/belt/bluespace/owlman/process()

View File

@@ -27,13 +27,13 @@
air_contents.volume = volume //liters air_contents.volume = volume //liters
air_contents.temperature = T20C air_contents.temperature = T20C
processing_objects.Add(src) START_PROCESSING(SSobj, src)
return return
/obj/item/tank/Destroy() /obj/item/tank/Destroy()
QDEL_NULL(air_contents) QDEL_NULL(air_contents)
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()

View File

@@ -377,7 +377,7 @@
damtype = "brute" damtype = "brute"
update_icon() update_icon()
if(!can_off_process) if(!can_off_process)
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return return
//Welders left on now use up fuel, but lets not have them run out quite that fast //Welders left on now use up fuel, but lets not have them run out quite that fast
if(1) if(1)
@@ -539,7 +539,7 @@
damtype = "fire" damtype = "fire"
hitsound = 'sound/items/welder.ogg' hitsound = 'sound/items/welder.ogg'
update_icon() update_icon()
processing_objects.Add(src) START_PROCESSING(SSobj, src)
else else
to_chat(user, "<span class='warning'>You need more fuel!</span>") to_chat(user, "<span class='warning'>You need more fuel!</span>")
switched_off(user) switched_off(user)

View File

@@ -557,10 +557,10 @@
/obj/item/twohanded/singularityhammer/New() /obj/item/twohanded/singularityhammer/New()
..() ..()
processing_objects.Add(src) START_PROCESSING(SSobj, src)
/obj/item/twohanded/singularityhammer/Destroy() /obj/item/twohanded/singularityhammer/Destroy()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/item/twohanded/singularityhammer/process() /obj/item/twohanded/singularityhammer/process()
@@ -664,10 +664,10 @@
/obj/item/twohanded/knighthammer/New() /obj/item/twohanded/knighthammer/New()
..() ..()
processing_objects.Add(src) START_PROCESSING(SSobj, src)
/obj/item/twohanded/knighthammer/Destroy() /obj/item/twohanded/knighthammer/Destroy()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/item/twohanded/knighthammer/process() /obj/item/twohanded/knighthammer/process()

View File

@@ -66,17 +66,14 @@
// Nada // Nada
/obj/Destroy() /obj/Destroy()
GLOB.machines -= src if(!ismachinery(src))
processing_objects -= src if(!speed_process)
GLOB.fast_processing -= src STOP_PROCESSING(SSobj, src) // TODO: Have a processing bitflag to reduce on unnecessary loops through the processing lists
else
STOP_PROCESSING(SSfastprocess, src)
SSnanoui.close_uis(src) SSnanoui.close_uis(src)
return ..() return ..()
/obj/proc/process()
set waitfor = 0
processing_objects.Remove(src)
return 0
//user: The mob that is suiciding //user: The mob that is suiciding
//damagetype: The type of damage the item will inflict on the user //damagetype: The type of damage the item will inflict on the user
//BRUTELOSS = 1 //BRUTELOSS = 1
@@ -300,15 +297,15 @@ a {
if(speed_process) if(speed_process)
return return
speed_process = TRUE speed_process = TRUE
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
GLOB.fast_processing.Add(src) START_PROCESSING(SSfastprocess, src)
/obj/proc/makeNormalProcess() /obj/proc/makeNormalProcess()
if(!speed_process) if(!speed_process)
return return
speed_process = FALSE speed_process = FALSE
processing_objects.Add(src) START_PROCESSING(SSobj, src)
GLOB.fast_processing.Remove(src) STOP_PROCESSING(SSfastprocess, src)
/obj/vv_get_dropdown() /obj/vv_get_dropdown()
. = ..() . = ..()

View File

@@ -41,7 +41,7 @@
qdel(src) qdel(src)
return return
processing_objects.Add(src) START_PROCESSING(SSobj, src)
..() ..()
/obj/structure/closet/statue/process() /obj/structure/closet/statue/process()
@@ -53,7 +53,7 @@
M.setOxyLoss(intialOxy) M.setOxyLoss(intialOxy)
if(timer <= 0) if(timer <= 0)
dump_contents() dump_contents()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
qdel(src) qdel(src)
/obj/structure/closet/statue/dump_contents() /obj/structure/closet/statue/dump_contents()

View File

@@ -87,7 +87,7 @@
/obj/effect/overload/New() /obj/effect/overload/New()
. = ..() . = ..()
// Do not attempt to put the code below into Initialize() or even LateInitialize() with a "return INITIALIZE_HINT_LATELOAD". It won't work! // Do not attempt to put the code below into Initialize() or even LateInitialize() with a "return INITIALIZE_HINT_LATELOAD". It won't work!
processing_objects.Add(src) START_PROCESSING(SSobj, src)
depotarea = areaMaster depotarea = areaMaster
if(istype(depotarea)) if(istype(depotarea))
if(!depotarea.used_self_destruct) if(!depotarea.used_self_destruct)
@@ -122,6 +122,6 @@
for(var/obj/mecha/E in range(30, T)) for(var/obj/mecha/E in range(30, T))
E.Destroy() E.Destroy()
explosion(get_turf(src), 25, 35, 45, 55, 1, 1, 60, 0, 0) explosion(get_turf(src), 25, 35, 45, 55, 1, 1, 60, 0, 0)
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
qdel(src) qdel(src)

View File

@@ -92,11 +92,11 @@
last_ghost_alert = world.time last_ghost_alert = world.time
attack_atom = src attack_atom = src
if(active) if(active)
processing_objects.Add(src) START_PROCESSING(SSobj, src)
/obj/structure/ghost_beacon/Destroy() /obj/structure/ghost_beacon/Destroy()
if(active) if(active)
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
attack_atom = null attack_atom = null
return ..() return ..()
@@ -111,9 +111,9 @@
return return
to_chat(user, "<span class='notice'>You [active ? "disable" : "enable"] \the [src].</span>") to_chat(user, "<span class='notice'>You [active ? "disable" : "enable"] \the [src].</span>")
if(active) if(active)
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
else else
processing_objects.Add(src) START_PROCESSING(SSobj, src)
active = !active active = !active
/obj/structure/ghost_beacon/process() /obj/structure/ghost_beacon/process()

View File

@@ -159,14 +159,14 @@ GLOBAL_LIST_EMPTY(safes)
drill_start_time = world.time drill_start_time = world.time
drill.soundloop.start() drill.soundloop.start()
update_icon() update_icon()
processing_objects.Add(src) START_PROCESSING(SSobj, src)
if("Turn Off") if("Turn Off")
if(do_after(user, 2 SECONDS, target = src)) if(do_after(user, 2 SECONDS, target = src))
deltimer(drill_timer) deltimer(drill_timer)
drill_timer = null drill_timer = null
drill.soundloop.stop() drill.soundloop.stop()
update_icon() update_icon()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
if("Remove Drill") if("Remove Drill")
if(drill_timer) if(drill_timer)
to_chat(user, "<span class='warning'>You cant remove the drill while it's running!</span>") to_chat(user, "<span class='warning'>You cant remove the drill while it's running!</span>")
@@ -308,7 +308,7 @@ GLOBAL_LIST_EMPTY(safes)
drill_timer = null drill_timer = null
drill.soundloop.stop() drill.soundloop.stop()
update_icon() update_icon()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
/obj/structure/safe/attackby(obj/item/I, mob/user, params) /obj/structure/safe/attackby(obj/item/I, mob/user, params)
if(open) if(open)

View File

@@ -19,10 +19,10 @@
/obj/structure/transit_tube/station/New() /obj/structure/transit_tube/station/New()
..() ..()
processing_objects += src START_PROCESSING(SSobj, src)
/obj/structure/transit_tube/station/Destroy() /obj/structure/transit_tube/station/Destroy()
processing_objects -= src STOP_PROCESSING(SSobj, src)
return ..() return ..()
// Stations which will send the tube in the opposite direction after their stop. // Stations which will send the tube in the opposite direction after their stop.

View File

@@ -29,7 +29,7 @@
cameras() // Sets up both cameras and last alarm area. cameras() // Sets up both cameras and last alarm area.
set_source_data(source, duration, severity) set_source_data(source, duration, severity)
/datum/alarm/proc/process() /datum/alarm/process()
// Has origin gone missing? // Has origin gone missing?
if(!origin && !end_time) if(!origin && !end_time)
end_time = world.time + ALARM_RESET_DELAY end_time = world.time + ALARM_RESET_DELAY

View File

@@ -7,7 +7,7 @@
var/list/datum/alarm/alarms_assoc = new // Associative list of alarms, to efficiently acquire them based on origin. var/list/datum/alarm/alarms_assoc = new // Associative list of alarms, to efficiently acquire them based on origin.
var/list/listeners = new // A list of all objects interested in alarm changes. var/list/listeners = new // A list of all objects interested in alarm changes.
/datum/alarm_handler/proc/process() /datum/alarm_handler/process()
for(var/datum/alarm/A in alarms) for(var/datum/alarm/A in alarms)
A.process() A.process()
check_alarm_cleared(A) check_alarm_cleared(A)

View File

@@ -125,7 +125,7 @@
..() ..()
/obj/item/assembly/process() /obj/item/assembly/process()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
/obj/item/assembly/examine(mob/user) /obj/item/assembly/examine(mob/user)
..() ..()

View File

@@ -21,10 +21,10 @@
/obj/item/assembly/health/toggle_secure() /obj/item/assembly/health/toggle_secure()
secured = !secured secured = !secured
if(secured && scanning) if(secured && scanning)
processing_objects.Add(src) START_PROCESSING(SSobj, src)
else else
scanning = FALSE scanning = FALSE
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
update_icon() update_icon()
return secured return secured
@@ -66,9 +66,9 @@
return FALSE return FALSE
scanning = !scanning scanning = !scanning
if(scanning) if(scanning)
processing_objects.Add(src) START_PROCESSING(SSobj, src)
else else
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return return
/obj/item/assembly/health/interact(mob/user)//TODO: Change this to the wires thingy /obj/item/assembly/health/interact(mob/user)//TODO: Change this to the wires thingy

View File

@@ -42,12 +42,12 @@
/obj/item/assembly/infra/toggle_secure() /obj/item/assembly/infra/toggle_secure()
secured = !secured secured = !secured
if(secured) if(secured)
processing_objects.Add(src) START_PROCESSING(SSobj, src)
else else
on = FALSE on = FALSE
if(first) if(first)
qdel(first) qdel(first)
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
update_icon() update_icon()
return secured return secured

View File

@@ -28,11 +28,11 @@
/obj/item/assembly/prox_sensor/toggle_secure() /obj/item/assembly/prox_sensor/toggle_secure()
secured = !secured secured = !secured
if(secured) if(secured)
processing_objects.Add(src) START_PROCESSING(SSobj, src)
else else
scanning = 0 scanning = 0
timing = 0 timing = 0
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
update_icon() update_icon()
return secured return secured

View File

@@ -29,10 +29,10 @@
/obj/item/assembly/timer/toggle_secure() /obj/item/assembly/timer/toggle_secure()
secured = !secured secured = !secured
if(secured) if(secured)
processing_objects.Add(src) START_PROCESSING(SSobj, src)
else else
timing = FALSE timing = FALSE
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
update_icon() update_icon()
return secured return secured

View File

@@ -29,7 +29,7 @@ var/global/automation_types = subtypesof(/datum/automation)
/datum/automation/proc/OnRemove() /datum/automation/proc/OnRemove()
return return
/datum/automation/proc/process() /datum/automation/process()
return return
/datum/automation/proc/Evaluate() /datum/automation/proc/Evaluate()

View File

@@ -47,7 +47,7 @@
var/list/squad var/list/squad
/obj/effect/spawner/snpc_squad/New() /obj/effect/spawner/snpc_squad/New()
processing_objects += src START_PROCESSING(SSobj, src)
squad = squads[squad_type] squad = squads[squad_type]
if(!squad) if(!squad)
@@ -57,7 +57,7 @@
/obj/effect/spawner/snpc_squad/Destroy() /obj/effect/spawner/snpc_squad/Destroy()
squad = null squad = null
processing_objects -= src STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/effect/spawner/snpc_squad/process() /obj/effect/spawner/snpc_squad/process()

View File

@@ -58,11 +58,11 @@
owner = o owner = o
if(args.len >= 3) if(args.len >= 3)
params = args.Copy(3) params = args.Copy(3)
processing_objects += src START_PROCESSING(SSobj, src)
trigger() trigger()
/obj/effect/portal_sensor/Destroy() /obj/effect/portal_sensor/Destroy()
processing_objects -= src STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/effect/portal_sensor/Crossed(A) /obj/effect/portal_sensor/Crossed(A)

View File

@@ -17,7 +17,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller
next_message = world.time + rand(delay_min, delay_max) next_message = world.time + rand(delay_min, delay_max)
process() process()
/datum/lore/atc_controller/proc/process() /datum/lore/atc_controller/process()
if(world.time >= next_message) if(world.time >= next_message)
if(squelched) if(squelched)
next_message = world.time + backoff_delay next_message = world.time + backoff_delay

View File

@@ -94,7 +94,7 @@
/obj/item/clothing/head/cakehat/process() /obj/item/clothing/head/cakehat/process()
if(!onfire) if(!onfire)
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return return
var/turf/location = src.loc var/turf/location = src.loc
@@ -113,7 +113,7 @@
src.force = 3 src.force = 3
src.damtype = "fire" src.damtype = "fire"
src.icon_state = "cake1" src.icon_state = "cake1"
processing_objects.Add(src) START_PROCESSING(SSobj, src)
else else
src.force = null src.force = null
src.damtype = "brute" src.damtype = "brute"

View File

@@ -122,7 +122,7 @@
else else
new_camera(user) new_camera(user)
else else
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
/obj/item/clothing/suit/space/chronos/proc/activate() /obj/item/clothing/suit/space/chronos/proc/activate()
if(!activating && !activated && !teleporting) if(!activating && !activated && !teleporting)
@@ -143,7 +143,7 @@
to_chat(user, "\[ <span style='color: #00ff00;'>ok</span> \] Starting ui display driver") to_chat(user, "\[ <span style='color: #00ff00;'>ok</span> \] Starting ui display driver")
to_chat(user, "\[ <span style='color: #00ff00;'>ok</span> \] Initializing chronowalk4-view") to_chat(user, "\[ <span style='color: #00ff00;'>ok</span> \] Initializing chronowalk4-view")
new_camera(user) new_camera(user)
processing_objects.Add(src) START_PROCESSING(SSobj, src)
activated = 1 activated = 1
else else
to_chat(user, "\[ <span style='color: #ff0000;'>fail</span> \] Mounting /dev/helmet") to_chat(user, "\[ <span style='color: #ff0000;'>fail</span> \] Mounting /dev/helmet")

View File

@@ -633,7 +633,7 @@
owner.visible_message("<span class='danger'>[owner]'s shields deflect [attack_text] in a shower of sparks!</span>") owner.visible_message("<span class='danger'>[owner]'s shields deflect [attack_text] in a shower of sparks!</span>")
current_charges-- current_charges--
recharge_cooldown = world.time + recharge_delay recharge_cooldown = world.time + recharge_delay
processing_objects |= src START_PROCESSING(SSobj, src)
if(current_charges <= 0) if(current_charges <= 0)
owner.visible_message("[owner]'s shield overloads!") owner.visible_message("[owner]'s shield overloads!")
shield_state = "broken" shield_state = "broken"
@@ -643,7 +643,7 @@
/obj/item/clothing/suit/space/hardsuit/shielded/Destroy() /obj/item/clothing/suit/space/hardsuit/shielded/Destroy()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/item/clothing/suit/space/hardsuit/shielded/process() /obj/item/clothing/suit/space/hardsuit/shielded/process()
@@ -652,7 +652,7 @@
playsound(loc, 'sound/magic/charge.ogg', 50, 1) playsound(loc, 'sound/magic/charge.ogg', 50, 1)
if(current_charges == max_charges) if(current_charges == max_charges)
playsound(loc, 'sound/machines/ding.ogg', 50, 1) playsound(loc, 'sound/machines/ding.ogg', 50, 1)
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
shield_state = "[shield_on]" shield_state = "[shield_on]"
if(istype(loc, /mob/living/carbon/human)) if(istype(loc, /mob/living/carbon/human))
var/mob/living/carbon/human/C = loc var/mob/living/carbon/human/C = loc

View File

@@ -110,7 +110,7 @@
spark_system.set_up(5, 0, src) spark_system.set_up(5, 0, src)
spark_system.attach(src) spark_system.attach(src)
processing_objects.Add(src) START_PROCESSING(SSobj, src)
if(initial_modules && initial_modules.len) if(initial_modules && initial_modules.len)
for(var/path in initial_modules) for(var/path in initial_modules)
@@ -166,7 +166,7 @@
if(istype(M)) if(istype(M))
M.unEquip(piece) M.unEquip(piece)
qdel(piece) qdel(piece)
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
QDEL_NULL(wires) QDEL_NULL(wires)
QDEL_NULL(spark_system) QDEL_NULL(spark_system)
return ..() return ..()

View File

@@ -186,10 +186,10 @@
/obj/item/clothing/suit/corgisuit/super_hero/en/New() /obj/item/clothing/suit/corgisuit/super_hero/en/New()
..() ..()
processing_objects.Add(src) START_PROCESSING(SSobj, src)
/obj/item/clothing/suit/corgisuit/super_hero/en/Destroy() /obj/item/clothing/suit/corgisuit/super_hero/en/Destroy()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/item/clothing/suit/corgisuit/super_hero/en/process() /obj/item/clothing/suit/corgisuit/super_hero/en/process()
@@ -883,7 +883,7 @@
/obj/item/clothing/suit/advanced_protective_suit/Destroy() /obj/item/clothing/suit/advanced_protective_suit/Destroy()
if(on) if(on)
on = 0 on = 0
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/item/clothing/suit/advanced_protective_suit/ui_action_click() /obj/item/clothing/suit/advanced_protective_suit/ui_action_click()
@@ -893,7 +893,7 @@
else else
on = 1 on = 1
to_chat(usr, "You turn the suit's special processes on.") to_chat(usr, "You turn the suit's special processes on.")
processing_objects.Add(src) START_PROCESSING(SSobj, src)
/obj/item/clothing/suit/advanced_protective_suit/IsReflect() /obj/item/clothing/suit/advanced_protective_suit/IsReflect()
@@ -912,7 +912,7 @@
if(user.reagents.get_reagent_amount("syndicate_nanites") < 15) if(user.reagents.get_reagent_amount("syndicate_nanites") < 15)
user.reagents.add_reagent("syndicate_nanites", 15) user.reagents.add_reagent("syndicate_nanites", 15)
else else
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
//Syndicate Chaplain Robe (WOLOLO!) //Syndicate Chaplain Robe (WOLOLO!)
/obj/item/clothing/suit/hooded/chaplain_hoodie/missionary_robe /obj/item/clothing/suit/hooded/chaplain_hoodie/missionary_robe
@@ -924,22 +924,22 @@
if(linked_staff) //delink on destruction if(linked_staff) //delink on destruction
linked_staff.robes = null linked_staff.robes = null
linked_staff = null linked_staff = null
processing_objects -= src //probably is cleared in a parent call already, but just in case we're gonna do it here STOP_PROCESSING(SSobj, src) //probably is cleared in a parent call already, but just in case we're gonna do it here
return ..() return ..()
/obj/item/clothing/suit/hooded/chaplain_hoodie/missionary_robe/equipped(mob/living/carbon/human/H, slot) /obj/item/clothing/suit/hooded/chaplain_hoodie/missionary_robe/equipped(mob/living/carbon/human/H, slot)
if(!istype(H) || slot != slot_wear_suit) if(!istype(H) || slot != slot_wear_suit)
processing_objects -= src STOP_PROCESSING(SSobj, src)
return return
else else
processing_objects |= src START_PROCESSING(SSobj, src)
/obj/item/clothing/suit/hooded/chaplain_hoodie/missionary_robe/process() /obj/item/clothing/suit/hooded/chaplain_hoodie/missionary_robe/process()
if(!linked_staff) //if we don't have a linked staff, the rest of this is useless if(!linked_staff) //if we don't have a linked staff, the rest of this is useless
return return
if(!ishuman(loc)) //if we somehow try to process while not on a human, remove ourselves from processing and return if(!ishuman(loc)) //if we somehow try to process while not on a human, remove ourselves from processing and return
processing_objects -= src STOP_PROCESSING(SSobj, src)
return return
var/mob/living/carbon/human/H = loc var/mob/living/carbon/human/H = loc

View File

@@ -574,7 +574,7 @@
/obj/item/clothing/accessory/petcollar/Destroy() /obj/item/clothing/accessory/petcollar/Destroy()
QDEL_NULL(access_id) QDEL_NULL(access_id)
processing_objects -= src STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/item/clothing/accessory/petcollar/attack_self(mob/user as mob) /obj/item/clothing/accessory/petcollar/attack_self(mob/user as mob)
@@ -617,10 +617,10 @@
/obj/item/clothing/accessory/petcollar/equipped(mob/living/simple_animal/user) /obj/item/clothing/accessory/petcollar/equipped(mob/living/simple_animal/user)
if(istype(user)) if(istype(user))
processing_objects |= src START_PROCESSING(SSobj, src)
/obj/item/clothing/accessory/petcollar/dropped(mob/living/simple_animal/user) /obj/item/clothing/accessory/petcollar/dropped(mob/living/simple_animal/user)
processing_objects -= src STOP_PROCESSING(SSobj, src)
/obj/item/clothing/accessory/petcollar/process() /obj/item/clothing/accessory/petcollar/process()
var/mob/living/simple_animal/M = loc var/mob/living/simple_animal/M = loc
@@ -636,7 +636,7 @@
else else
a.autosay("[M] has been vandalized in [t.name]!", "[M]'s Death Alarm") a.autosay("[M] has been vandalized in [t.name]!", "[M]'s Death Alarm")
qdel(a) qdel(a)
processing_objects -= src STOP_PROCESSING(SSobj, src)
/proc/english_accessory_list(obj/item/clothing/under/U) /proc/english_accessory_list(obj/item/clothing/under/U)
if(!istype(U) || !U.accessories.len) if(!istype(U) || !U.accessories.len)

View File

@@ -28,13 +28,13 @@
/obj/effect/countdown/proc/start() /obj/effect/countdown/proc/start()
if(!started) if(!started)
GLOB.fast_processing += src START_PROCESSING(SSfastprocess, src)
started = TRUE started = TRUE
/obj/effect/countdown/proc/stop() /obj/effect/countdown/proc/stop()
if(started) if(started)
maptext = null maptext = null
GLOB.fast_processing -= src STOP_PROCESSING(SSfastprocess, src)
started = FALSE started = FALSE
/obj/effect/countdown/proc/get_value() /obj/effect/countdown/proc/get_value()
@@ -57,7 +57,7 @@
/obj/effect/countdown/Destroy() /obj/effect/countdown/Destroy()
attached_to = null attached_to = null
GLOB.fast_processing -= src STOP_PROCESSING(SSfastprocess, src)
return ..() return ..()
/obj/effect/countdown/ex_act(severity) //immune to explosions /obj/effect/countdown/ex_act(severity) //immune to explosions

View File

@@ -760,10 +760,10 @@
/obj/item/clothing/head/pirate/fluff/stumpy/New() /obj/item/clothing/head/pirate/fluff/stumpy/New()
..() ..()
processing_objects.Add(src) START_PROCESSING(SSobj, src)
/obj/item/clothing/head/pirate/fluff/stumpy/Destroy() /obj/item/clothing/head/pirate/fluff/stumpy/Destroy()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/item/clothing/head/pirate/fluff/stumpy/process() /obj/item/clothing/head/pirate/fluff/stumpy/process()

View File

@@ -105,7 +105,7 @@
//Do not override this proc, instead use the appropiate procs. //Do not override this proc, instead use the appropiate procs.
//This proc will handle the calls to the appropiate procs. //This proc will handle the calls to the appropiate procs.
/datum/event/proc/process() /datum/event/process()
if(!processing) if(!processing)
return return

View File

@@ -22,7 +22,7 @@ var/list/event_last_fired = list()
var/last_world_time = 0 var/last_world_time = 0
/datum/event_container/proc/process() /datum/event_container/process()
if(!next_event_time) if(!next_event_time)
set_event_delay() set_event_delay()

View File

@@ -539,7 +539,7 @@
/obj/structure/spacevine_controller/New(loc, list/muts, potency, production) /obj/structure/spacevine_controller/New(loc, list/muts, potency, production)
color = "#ffffff" color = "#ffffff"
spawn_spacevine_piece(loc, , muts) spawn_spacevine_piece(loc, , muts)
processing_objects.Add(src) START_PROCESSING(SSobj, src)
init_subtypes(/datum/spacevine_mutation/, mutations_list) init_subtypes(/datum/spacevine_mutation/, mutations_list)
if(potency != null && potency > 0) if(potency != null && potency > 0)
// 1 mutativeness at 10 potency // 1 mutativeness at 10 potency
@@ -567,7 +567,7 @@
return return
/obj/structure/spacevine_controller/Destroy() /obj/structure/spacevine_controller/Destroy()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
return ..() return ..()
/obj/structure/spacevine_controller/proc/spawn_spacevine_piece(turf/location, obj/structure/spacevine/parent, list/muts) /obj/structure/spacevine_controller/proc/spawn_spacevine_piece(turf/location, obj/structure/spacevine/parent, list/muts)

View File

@@ -138,7 +138,7 @@ Gunshots/explosions/opening doors/less rare audio (done)
if(target.client) if(target.client)
target.client.images |= flood_images target.client.images |= flood_images
next_expand = world.time + FAKE_FLOOD_EXPAND_TIME next_expand = world.time + FAKE_FLOOD_EXPAND_TIME
processing_objects += src START_PROCESSING(SSobj, src)
/obj/effect/hallucination/fake_flood/process() /obj/effect/hallucination/fake_flood/process()
if(next_expand <= world.time) if(next_expand <= world.time)
@@ -162,7 +162,7 @@ Gunshots/explosions/opening doors/less rare audio (done)
target.client.images |= flood_images target.client.images |= flood_images
/obj/effect/hallucination/fake_flood/Destroy() /obj/effect/hallucination/fake_flood/Destroy()
processing_objects -= src STOP_PROCESSING(SSobj, src)
flood_turfs.Cut() flood_turfs.Cut()
if(target.client) if(target.client)
target.client.images.Remove(flood_images) target.client.images.Remove(flood_images)

View File

@@ -47,11 +47,11 @@
/obj/structure/beebox/Initialize(mapload) /obj/structure/beebox/Initialize(mapload)
. = ..() . = ..()
processing_objects.Add(src) START_PROCESSING(SSobj, src)
/obj/structure/beebox/Destroy() /obj/structure/beebox/Destroy()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
for(var/mob/living/simple_animal/hostile/poison/bees/B in bees) for(var/mob/living/simple_animal/hostile/poison/bees/B in bees)
B.beehome = null B.beehome = null
bees.Cut() bees.Cut()

View File

@@ -151,7 +151,7 @@
burning = 1 burning = 1
set_light(6, l_color = "#ED9200") set_light(6, l_color = "#ED9200")
Burn() Burn()
processing_objects.Add(src) START_PROCESSING(SSobj, src)
/obj/structure/bonfire/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE) /obj/structure/bonfire/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE)
..() ..()
@@ -186,7 +186,7 @@
icon_state = "bonfire" icon_state = "bonfire"
burning = 0 burning = 0
set_light(0) set_light(0)
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
/obj/structure/bonfire/buckle_mob(mob/living/M, force = 0) /obj/structure/bonfire/buckle_mob(mob/living/M, force = 0)
if(..()) if(..())

View File

@@ -35,14 +35,14 @@
/obj/item/melee/ghost_sword/New() /obj/item/melee/ghost_sword/New()
..() ..()
spirits = list() spirits = list()
processing_objects.Add(src) START_PROCESSING(SSobj, src)
GLOB.poi_list |= src GLOB.poi_list |= src
/obj/item/melee/ghost_sword/Destroy() /obj/item/melee/ghost_sword/Destroy()
for(var/mob/dead/observer/G in spirits) for(var/mob/dead/observer/G in spirits)
G.invisibility = initial(G.invisibility) G.invisibility = initial(G.invisibility)
spirits.Cut() spirits.Cut()
processing_objects.Remove(src) STOP_PROCESSING(SSobj, src)
GLOB.poi_list -= src GLOB.poi_list -= src
. = ..() . = ..()

Some files were not shown because too many files have changed in this diff Show More