From 0d6bbbb4124fb19ccfdc01b949d5b27e356abb0e Mon Sep 17 00:00:00 2001 From: Kyle Spier-Swenson Date: Mon, 20 Jun 2016 03:07:44 -0700 Subject: [PATCH] stop the pills (#18703) * RedPills Processing Now you have to use START_PROCESSING(SSname, thing) (and STOP_PROCESSING) * Fixes a minor bug. --- code/__DEFINES/MC.dm | 3 + code/controllers/subsystem/machines.dm | 4 +- code/controllers/subsystem/objects.dm | 5 +- code/game/gamemodes/blob/blobs/core.dm | 4 +- code/game/gamemodes/blob/blobs/node.dm | 4 +- .../gamemodes/changeling/powers/fleshmend.dm | 4 +- .../gamemodes/changeling/powers/mutations.dm | 2 +- code/game/gamemodes/clock_cult/clock_items.dm | 14 +- .../gamemodes/clock_cult/clock_machines.dm | 10 +- .../game/gamemodes/clock_cult/clock_ratvar.dm | 8 +- .../gamemodes/clock_cult/clock_structures.dm | 8 +- code/game/gamemodes/cult/cult_structures.dm | 4 +- code/game/gamemodes/gang/dominator.dm | 8 +- code/game/gamemodes/gang/gang.dm | 2 +- code/game/gamemodes/handofgod/structures.dm | 4 +- .../miniantags/abduction/abduction_gear.dm | 8 +- .../gamemodes/miniantags/abduction/gland.dm | 4 +- code/game/gamemodes/nuclear/nuclearbomb.dm | 8 +- code/game/gamemodes/wizard/artefact.dm | 2 +- code/game/machinery/iv_drip.dm | 2 +- code/game/machinery/machinery.dm | 8 +- .../mecha/equipment/tools/medical_tools.dm | 28 +- .../mecha/equipment/tools/mining_tools.dm | 4 +- .../game/mecha/equipment/tools/other_tools.dm | 40 +- code/game/mecha/mecha.dm | 4 +- .../effects/effect_system/effects_foam.dm | 6 +- .../effects/effect_system/effects_smoke.dm | 6 +- code/game/objects/effects/forcefields.dm | 4 +- code/game/objects/effects/spiders.dm | 4 +- code/game/objects/items/body_egg.dm | 4 +- code/game/objects/items/candle.dm | 2 +- code/game/objects/items/devices/camera_bug.dm | 2 +- code/game/objects/items/devices/flashlight.dm | 8 +- .../objects/items/devices/geiger_counter.dm | 4 +- .../objects/items/devices/laserpointer.dm | 2 +- code/game/objects/items/devices/multitool.dm | 4 +- code/game/objects/items/devices/powersink.dm | 8 +- .../objects/items/devices/radio/intercom.dm | 4 +- code/game/objects/items/devices/scanners.dm | 4 +- .../objects/items/devices/traitordevices.dm | 4 +- code/game/objects/items/nuke_tools.dm | 4 +- .../objects/items/robot/robot_upgrades.dm | 6 +- .../objects/items/weapons/chrono_eraser.dm | 2 +- .../objects/items/weapons/cigs_lighters.dm | 18 +- .../objects/items/weapons/flamethrower.dm | 4 +- .../objects/items/weapons/holy_weapons.dm | 4 +- code/game/objects/items/weapons/melee/misc.dm | 2 +- .../items/weapons/singularityhammer.dm | 4 +- .../objects/items/weapons/tanks/jetpack.dm | 8 +- .../game/objects/items/weapons/tanks/tanks.dm | 4 +- .../objects/items/weapons/tanks/watertank.dm | 4 +- code/game/objects/items/weapons/tools.dm | 4 +- code/game/objects/objs.dm | 2 +- .../crates_lockers/closets/statue.dm | 4 +- .../structures/transit_tubes/station.dm | 4 +- code/game/turfs/simulated/floor/misc_floor.dm | 6 +- code/game/turfs/simulated/floor/plating.dm | 4 +- code/modules/assembly/health.dm | 8 +- code/modules/assembly/infrared.dm | 6 +- code/modules/assembly/proximity.dm | 2 +- code/modules/assembly/timer.dm | 6 +- code/modules/awaymissions/capture_the_flag.dm | 6 +- .../awaymissions/mission_code/Academy.dm | 4 +- .../clothing/glasses/engine_goggles.dm | 8 +- code/modules/clothing/head/misc_special.dm | 4 +- .../modules/clothing/spacesuits/chronosuit.dm | 4 +- code/modules/clothing/spacesuits/hardsuit.dm | 6 +- code/modules/countdown/countdown.dm | 6 +- code/modules/events/spacevine.dm | 4 +- code/modules/events/wizard/greentext.dm | 4 +- code/modules/flufftext/Hallucination.dm | 4 +- code/modules/food_and_drinks/pizzabox.dm | 4 +- code/modules/hydroponics/beekeeping/beebox.dm | 4 +- code/modules/hydroponics/grown/chili.dm | 2 +- .../mining/lavaland/necropolis_chests.dm | 4 +- .../simple_animal/friendly/farm_animals.dm | 6 +- code/modules/power/antimatter/shielding.dm | 2 +- code/modules/power/cell.dm | 8 +- code/modules/power/singularity/singularity.dm | 4 +- code/modules/projectiles/guns/energy.dm | 10 +- code/modules/projectiles/guns/magic.dm | 4 +- code/modules/projectiles/guns/medbeam.dm | 4 +- .../guns/projectile/laser_gatling.dm | 4 +- code/modules/reagents/chemistry/holder.dm | 10 +- .../reagents/reagent_containers/borghydro.dm | 4 +- .../research/xenobiology/xenobiology.dm | 2 +- code/modules/shuttle/special.dm | 4 +- code/modules/stock_market/stockmarket.dm | 342 +++++++++--------- code/modules/surgery/organs/organ_internal.dm | 4 +- code/modules/telesci/telepad.dm | 4 +- 90 files changed, 424 insertions(+), 416 deletions(-) diff --git a/code/__DEFINES/MC.dm b/code/__DEFINES/MC.dm index 0ad8559ffb74..c1c62bc2bb3f 100644 --- a/code/__DEFINES/MC.dm +++ b/code/__DEFINES/MC.dm @@ -5,6 +5,9 @@ #define MC_AVERAGE_SLOW(average, current) (0.9 * (average) + 0.1 * (current)) #define NEW_SS_GLOBAL(varname) if(varname != src){if(istype(varname)){Recover();qdel(varname);}varname = src;} +#define START_PROCESSING(Processor, Datum) if (!Datum.isprocessing) Datum.isprocessing = 1;Processor.processing += Datum +#define STOP_PROCESSING(Processor, Datum) if (Datum.isprocessing) Datum.isprocessing = 0;Processor.processing -= Datum + //SubSystem flags (Please design any new flags so that the default is off, to make adding flags to subsystems easier) //subsystem should fire during pre-game lobby. diff --git a/code/controllers/subsystem/machines.dm b/code/controllers/subsystem/machines.dm index 008b6dcfcddc..7369ba6409e9 100644 --- a/code/controllers/subsystem/machines.dm +++ b/code/controllers/subsystem/machines.dm @@ -51,7 +51,9 @@ var/datum/subsystem/machines/SSmachine if(thing:use_power) thing:auto_use_power() //add back the power state else - processing.Remove(thing) + processing -= thing + if (thing) + thing.isprocessing = 0 if (MC_TICK_CHECK) return diff --git a/code/controllers/subsystem/objects.dm b/code/controllers/subsystem/objects.dm index 82bd94bde07a..c3c01ec47e49 100644 --- a/code/controllers/subsystem/objects.dm +++ b/code/controllers/subsystem/objects.dm @@ -1,8 +1,9 @@ var/datum/subsystem/objects/SSobj +/datum/var/isprocessing = 0 /datum/proc/process() set waitfor = 0 - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) return 0 /datum/subsystem/objects @@ -50,7 +51,7 @@ var/datum/subsystem/objects/SSobj if(thing) thing.process(wait) else - SSobj.processing.Remove(thing) + SSobj.processing -= thing if (MC_TICK_CHECK) return diff --git a/code/game/gamemodes/blob/blobs/core.dm b/code/game/gamemodes/blob/blobs/core.dm index 4adfc83d0e70..e97f09e3a106 100644 --- a/code/game/gamemodes/blob/blobs/core.dm +++ b/code/game/gamemodes/blob/blobs/core.dm @@ -17,7 +17,7 @@ /obj/effect/blob/core/New(loc, client/new_overmind = null, new_rate = 2, placed = 0) blob_cores += src - SSobj.processing |= src + START_PROCESSING(SSobj, src) poi_list |= src update_icon() //so it atleast appears if(!placed && !overmind) @@ -45,7 +45,7 @@ if(overmind) overmind.blob_core = null overmind = null - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) poi_list -= src return ..() diff --git a/code/game/gamemodes/blob/blobs/node.dm b/code/game/gamemodes/blob/blobs/node.dm index 90021c64433a..b6e8b24f59d0 100644 --- a/code/game/gamemodes/blob/blobs/node.dm +++ b/code/game/gamemodes/blob/blobs/node.dm @@ -12,7 +12,7 @@ /obj/effect/blob/node/New(loc, var/h = 100) blob_nodes += src - SSobj.processing |= src + START_PROCESSING(SSobj, src) ..(loc, h) /obj/effect/blob/node/scannerreport() @@ -33,7 +33,7 @@ /obj/effect/blob/node/Destroy() blob_nodes -= src - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) return ..() /obj/effect/blob/node/Life() diff --git a/code/game/gamemodes/changeling/powers/fleshmend.dm b/code/game/gamemodes/changeling/powers/fleshmend.dm index 1331788dc4e6..bcb21d976e66 100644 --- a/code/game/gamemodes/changeling/powers/fleshmend.dm +++ b/code/game/gamemodes/changeling/powers/fleshmend.dm @@ -16,10 +16,10 @@ /obj/effect/proc_holder/changeling/fleshmend/New() ..() - SSobj.processing.Add(src) + START_PROCESSING(SSobj, src) /obj/effect/proc_holder/changeling/fleshmend/Destroy() - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) ..() /obj/effect/proc_holder/changeling/fleshmend/process() diff --git a/code/game/gamemodes/changeling/powers/mutations.dm b/code/game/gamemodes/changeling/powers/mutations.dm index 54177c07e8a1..b9023bbb4eef 100644 --- a/code/game/gamemodes/changeling/powers/mutations.dm +++ b/code/game/gamemodes/changeling/powers/mutations.dm @@ -284,7 +284,7 @@ ..() if(ismob(loc)) loc.visible_message("[loc.name]\'s flesh rapidly inflates, forming a bloated mass around their body!", "We inflate our flesh, creating a spaceproof suit!", "You hear organic matter ripping and tearing!") - SSobj.processing += src + START_PROCESSING(SSobj, src) /obj/item/clothing/suit/space/changeling/process() if(ishuman(loc)) diff --git a/code/game/gamemodes/clock_cult/clock_items.dm b/code/game/gamemodes/clock_cult/clock_items.dm index 9ae0d362abf9..0296d899c3f4 100644 --- a/code/game/gamemodes/clock_cult/clock_items.dm +++ b/code/game/gamemodes/clock_cult/clock_items.dm @@ -55,16 +55,16 @@ /obj/item/clockwork/slab/New() ..() - SSobj.processing += src + START_PROCESSING(SSobj, src) production_time = world.time + SLAB_PRODUCTION_TIME /obj/item/clockwork/slab/Destroy() - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) return ..() /obj/item/clockwork/slab/process() if(!produces_components) - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) return if(production_time > world.time) return @@ -396,10 +396,10 @@ /obj/item/clothing/glasses/wraith_spectacles/New() ..() - SSobj.processing += src + START_PROCESSING(SSobj, src) /obj/item/clothing/glasses/wraith_spectacles/Destroy() - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) return ..() /obj/item/clothing/glasses/wraith_spectacles/process() @@ -770,11 +770,11 @@ /obj/item/clockwork/tinkerers_daemon/New() ..() - SSobj.processing += src + START_PROCESSING(SSobj, src) clockwork_daemons++ /obj/item/clockwork/tinkerers_daemon/Destroy() - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) clockwork_daemons-- return ..() diff --git a/code/game/gamemodes/clock_cult/clock_machines.dm b/code/game/gamemodes/clock_cult/clock_machines.dm index db3c46f7e13f..522262c590ee 100644 --- a/code/game/gamemodes/clock_cult/clock_machines.dm +++ b/code/game/gamemodes/clock_cult/clock_machines.dm @@ -34,13 +34,15 @@ if(active) icon_state = active_icon if(fast_process) - SSfastprocess.processing |= src + START_PROCESSING(SSfastprocess, src) else - SSobj.processing |= src + START_PROCESSING(SSobj, src) else icon_state = inactive_icon - SSfastprocess.processing -= src - SSobj.processing -= src + if(fast_process) + STOP_PROCESSING(SSfastprocess, src) + else + STOP_PROCESSING(SSobj, src) /obj/structure/clockwork/powered/proc/total_accessable_power() //how much power we have and can use diff --git a/code/game/gamemodes/clock_cult/clock_ratvar.dm b/code/game/gamemodes/clock_cult/clock_ratvar.dm index 5c906e99f2b4..e00a69efbeea 100644 --- a/code/game/gamemodes/clock_cult/clock_ratvar.dm +++ b/code/game/gamemodes/clock_cult/clock_ratvar.dm @@ -37,7 +37,7 @@ countdown = new(src) countdown.start() SSshuttle.emergencyNoEscape = TRUE - SSobj.processing += src + START_PROCESSING(SSobj, src) var/area/gate_area = get_area(src) for(var/M in mob_list) if(is_servant_of_ratvar(M) || isobserver(M)) @@ -50,7 +50,7 @@ SSshuttle.emergency.timer = world.time if(!purpose_fulfilled) priority_announce("Hostile enviroment resolved. You have 3 minutes to board the Emergency Shuttle.", null, 'sound/AI/shuttledock.ogg', "Priority") - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) if(!purpose_fulfilled) var/area/gate_area = get_area(src) for(var/M in mob_list) @@ -190,7 +190,7 @@ ratvar_awakens = TRUE for(var/obj/item/clockwork/ratvarian_spear/R in all_clockwork_objects) R.update_force() - SSobj.processing += src + START_PROCESSING(SSobj, src) world << "\"BAPR NTNVA ZL YVTUG FUNYY FUVAR NPEBFF GUVF CNGURGVP ERNYZ!!\"" world << 'sound/effects/ratvar_reveal.ogg' var/image/alert_overlay = image('icons/effects/clockwork_effects.dmi', "ratvar_alert") @@ -204,7 +204,7 @@ ratvar_awakens = FALSE for(var/obj/item/clockwork/ratvarian_spear/R in all_clockwork_objects) R.update_force() - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) world << "\"NO! I will not... be... banished... again...\"" return ..() diff --git a/code/game/gamemodes/clock_cult/clock_structures.dm b/code/game/gamemodes/clock_cult/clock_structures.dm index df58c8fbe47b..e3d84ba71181 100644 --- a/code/game/gamemodes/clock_cult/clock_structures.dm +++ b/code/game/gamemodes/clock_cult/clock_structures.dm @@ -147,12 +147,12 @@ /obj/structure/clockwork/cache/New() ..() - SSobj.processing += src + START_PROCESSING(SSobj, src) clockwork_caches++ /obj/structure/clockwork/cache/Destroy() clockwork_caches-- - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) return ..() /obj/structure/clockwork/cache/destroyed() @@ -324,10 +324,10 @@ /obj/structure/clockwork/ocular_warden/New() ..() - SSfastprocess.processing += src + START_PROCESSING(SSfastprocess, src) /obj/structure/clockwork/ocular_warden/Destroy() - SSfastprocess.processing -= src + STOP_PROCESSING(SSfastprocess, src) return ..() /obj/structure/clockwork/ocular_warden/examine(mob/user) diff --git a/code/game/gamemodes/cult/cult_structures.dm b/code/game/gamemodes/cult/cult_structures.dm index bf9033396ccd..81cdbfd1499e 100644 --- a/code/game/gamemodes/cult/cult_structures.dm +++ b/code/game/gamemodes/cult/cult_structures.dm @@ -110,11 +110,11 @@ var/list/blacklisted_pylon_turfs = typecacheof(list( var/last_corrupt = 0 /obj/structure/cult/pylon/New() - SSfastprocess.processing |= src + START_PROCESSING(SSfastprocess, src) ..() /obj/structure/cult/pylon/Destroy() - SSfastprocess.processing.Remove(src) + STOP_PROCESSING(SSfastprocess, src) return ..() /obj/structure/cult/pylon/process() diff --git a/code/game/gamemodes/gang/dominator.dm b/code/game/gamemodes/gang/dominator.dm index 5ec48f6d3bc7..535bb46b2dc1 100644 --- a/code/game/gamemodes/gang/dominator.dm +++ b/code/game/gamemodes/gang/dominator.dm @@ -55,7 +55,7 @@ if(G != gang) G.message_gangtools("WARNING: [gang.name] Gang takeover imminent. Their dominator at [domloc.map_name] must be destroyed!",1,1) else - SSmachine.processing -= src + STOP_PROCESSING(SSmachine, src) /obj/machinery/dominator/take_damage(damage, damage_type = BRUTE, sound_effect = 1) switch(damage_type) @@ -115,7 +115,7 @@ cut_overlays() operating = 0 stat |= BROKEN - SSmachine.processing -= src + STOP_PROCESSING(SSmachine, src) /obj/machinery/dominator/Destroy() if(!(stat & BROKEN)) @@ -125,7 +125,7 @@ qdel(spark_system) qdel(countdown) countdown = null - SSmachine.processing -= src + STOP_PROCESSING(SSmachine, src) return ..() /obj/machinery/dominator/emp_act(severity) @@ -199,7 +199,7 @@ countdown.start() SetLuminosity(3) - SSmachine.processing += src + START_PROCESSING(SSmachine, src) gang.message_gangtools("Hostile takeover in progress: Estimated [time] minutes until victory.[gang.dom_attempts ? "" : " This is your final attempt."]") for(var/datum/gang/G in ticker.mode.gangs) diff --git a/code/game/gamemodes/gang/gang.dm b/code/game/gamemodes/gang/gang.dm index 1037af6b6423..67af9e6e6963 100644 --- a/code/game/gamemodes/gang/gang.dm +++ b/code/game/gamemodes/gang/gang.dm @@ -289,7 +289,7 @@ var/list/gang_colors_pool = list("red","orange","yellow","green","blue","purple" /datum/gang_points/New() next_point_time = world.time + next_point_interval - SSobj.processing += src + START_PROCESSING(SSobj, src) /datum/gang_points/process(seconds) var/list/winners = list() //stores the winners if there are any diff --git a/code/game/gamemodes/handofgod/structures.dm b/code/game/gamemodes/handofgod/structures.dm index f86f46306836..c33975c336ae 100644 --- a/code/game/gamemodes/handofgod/structures.dm +++ b/code/game/gamemodes/handofgod/structures.dm @@ -275,7 +275,7 @@ /obj/structure/divine/nexus/New() - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/structure/divine/nexus/process() @@ -287,7 +287,7 @@ /obj/structure/divine/nexus/Destroy() - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) return ..() diff --git a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm index 46eaa891a329..e8e99a3e01f2 100644 --- a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm +++ b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm @@ -105,12 +105,12 @@ M.SetStunned(0) M.SetWeakened(0) combat_cooldown = 0 - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/item/clothing/suit/armor/abductor/vest/process() combat_cooldown++ if(combat_cooldown==initial(combat_cooldown)) - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) /obj/item/device/abductor/proc/AbductorCheck(user) if(isabductor(user)) @@ -262,7 +262,7 @@ if(cooldown == initial(cooldown)) home.Retrieve(imp_in,1) cooldown = 0 - SSobj.processing |= src + START_PROCESSING(SSobj, src) else imp_in << "You must wait [30 - cooldown] seconds to use [src] again!" return @@ -271,7 +271,7 @@ if(cooldown < initial(cooldown)) cooldown++ if(cooldown == initial(cooldown)) - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) /obj/item/weapon/implant/abductor/implant(var/mob/source, var/mob/user) if(..()) diff --git a/code/game/gamemodes/miniantags/abduction/gland.dm b/code/game/gamemodes/miniantags/abduction/gland.dm index 9e91618c284d..670de74bc0bc 100644 --- a/code/game/gamemodes/miniantags/abduction/gland.dm +++ b/code/game/gamemodes/miniantags/abduction/gland.dm @@ -230,11 +230,11 @@ /obj/effect/cocoon/abductor/proc/Start() hatch_time = world.time + 600 - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/effect/cocoon/abductor/process() if(world.time > hatch_time) - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) for(var/mob/M in contents) src.visible_message("[src] hatches!") M.loc = src.loc diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index a1eda87c2f9e..4fc059c01b35 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -40,7 +40,7 @@ var/bomb_set countdown = new(src) nuke_list += src core = new /obj/item/nuke_core(src) - SSobj.processing -= core + STOP_PROCESSING(SSobj, core) update_icon() poi_list |= src previous_level = get_security_level() @@ -118,7 +118,7 @@ var/bomb_set user << "You pry off [src]'s inner plate. You can see the core's green glow!" deconstruction_state = NUKESTATE_CORE_EXPOSED update_icon() - SSobj.processing += core + START_PROCESSING(SSobj, core) return if(NUKESTATE_CORE_EXPOSED) if(istype(I, /obj/item/nuke_core_container)) @@ -141,7 +141,7 @@ var/bomb_set if(M.use(20)) user << "You repair [src]'s inner metal plate. The radiation is contained." deconstruction_state = NUKESTATE_PANEL_REMOVED - SSobj.processing -= core + STOP_PROCESSING(SSobj, core) update_icon() else user << "You need more metal to do that!" @@ -434,7 +434,7 @@ This is here to make the tiles around the station mininuke change when it's arme /obj/item/weapon/disk/nuclear/New() ..() poi_list |= src - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/item/weapon/disk/nuclear/process() var/turf/disk_loc = get_turf(src) diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm index 3f8d58b73772..63fb6b0ae1b4 100644 --- a/code/game/gamemodes/wizard/artefact.dm +++ b/code/game/gamemodes/wizard/artefact.dm @@ -45,7 +45,7 @@ src.spawn_amt_left = spawn_amt src.desc = desc src.spawn_fast = spawn_fast - SSobj.processing |= src + START_PROCESSING(SSobj, src) return /obj/effect/rend/process() diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm index bb7b8d48d8d1..f9f3439b6acb 100644 --- a/code/game/machinery/iv_drip.dm +++ b/code/game/machinery/iv_drip.dm @@ -73,7 +73,7 @@ if(beaker) usr.visible_message("[usr] attaches \the [src] to \the [target].", "You attach \the [src] to \the [target].") attached = target - SSmachine.processing.Add(src) + START_PROCESSING(SSmachine, src) update_icon() else usr << "There's nothing attached to the IV drip!" diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index 3fd4d343ac59..ae8e248240f9 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -124,17 +124,17 @@ Class Procs: ..() machines += src if(!speed_process) - SSmachine.processing += src + START_PROCESSING(SSmachine, src) else - SSfastprocess.processing += src + START_PROCESSING(SSfastprocess, src) power_change() /obj/machinery/Destroy() machines.Remove(src) if(!speed_process) - SSmachine.processing -= src + STOP_PROCESSING(SSmachine, src) else - SSfastprocess.processing -= src + STOP_PROCESSING(SSfastprocess, src) dropContents() return ..() diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm index 4da9c5feb8e1..36239710c46e 100644 --- a/code/game/mecha/equipment/tools/medical_tools.dm +++ b/code/game/mecha/equipment/tools/medical_tools.dm @@ -4,7 +4,7 @@ /obj/item/mecha_parts/mecha_equipment/medical/New() ..() - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/item/mecha_parts/mecha_equipment/medical/can_attach(obj/mecha/medical/M) @@ -14,19 +14,19 @@ /obj/item/mecha_parts/mecha_equipment/medical/attach(obj/mecha/M) ..() - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/item/mecha_parts/mecha_equipment/medical/Destroy() - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) return ..() /obj/item/mecha_parts/mecha_equipment/medical/process() if(!chassis) - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) return 1 /obj/item/mecha_parts/mecha_equipment/medical/mechmedbeam/detach() - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) return ..() /obj/item/mecha_parts/mecha_equipment/medical/sleeper @@ -67,7 +67,7 @@ return target.forceMove(src) patient = target - SSobj.processing |= src + START_PROCESSING(SSobj, src) update_equip_info() occupant_message("[target] successfully loaded into [src]. Life support functions engaged.") chassis.visible_message("[chassis] loads [target] into [src].") @@ -91,7 +91,7 @@ patient.forceMove(get_turf(src)) occupant_message("[patient] ejected. Life support functions disabled.") log_message("[patient] ejected. Life support functions disabled.") - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) patient = null update_equip_info() @@ -99,7 +99,7 @@ if(patient) occupant_message("Unable to detach [src] - equipment occupied!") return - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) return ..() /obj/item/mecha_parts/mecha_equipment/medical/sleeper/get_equip_info() @@ -222,7 +222,7 @@ set_ready_state(1) log_message("Deactivated.") occupant_message("[src] deactivated - no power.") - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) return var/mob/living/carbon/M = patient if(!M) @@ -270,11 +270,11 @@ processed_reagents = new /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/detach() - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) return ..() /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/Destroy() - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) return ..() /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/critfail() @@ -381,7 +381,7 @@ m++ if(processed_reagents.len) message += " added to production" - SSobj.processing |= src + START_PROCESSING(SSobj, src) occupant_message(message) occupant_message("Reagent processing started.") log_message("Reagent processing started.") @@ -520,7 +520,7 @@ if(!processed_reagents.len || reagents.total_volume >= reagents.maximum_volume || !chassis.has_charge(energy_drain)) occupant_message("Reagent processing stopped.") log_message("Reagent processing stopped.") - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) return var/amount = synth_speed / processed_reagents.len for(var/reagent in processed_reagents) @@ -559,6 +559,6 @@ /obj/item/mecha_parts/mecha_equipment/medical/mechmedbeam/detach() - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) medigun.LoseTarget() return ..() diff --git a/code/game/mecha/equipment/tools/mining_tools.dm b/code/game/mecha/equipment/tools/mining_tools.dm index 468483fac8d4..6ec06406b811 100644 --- a/code/game/mecha/equipment/tools/mining_tools.dm +++ b/code/game/mecha/equipment/tools/mining_tools.dm @@ -114,7 +114,7 @@ var/scanning = 0 /obj/item/mecha_parts/mecha_equipment/mining_scanner/New() - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/item/mecha_parts/mecha_equipment/mining_scanner/attach(obj/mecha/M) ..() @@ -130,7 +130,7 @@ /obj/item/mecha_parts/mecha_equipment/mining_scanner/process() if(!loc) - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) qdel(src) if(scanning) return diff --git a/code/game/mecha/equipment/tools/other_tools.dm b/code/game/mecha/equipment/tools/other_tools.dm index 4510e3f3632c..f45653a68cfe 100644 --- a/code/game/mecha/equipment/tools/other_tools.dm +++ b/code/game/mecha/equipment/tools/other_tools.dm @@ -195,7 +195,7 @@ selectable = 0 /obj/item/mecha_parts/mecha_equipment/repair_droid/Destroy() - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) if(chassis) chassis.overlays -= droid_overlay return ..() @@ -207,7 +207,7 @@ /obj/item/mecha_parts/mecha_equipment/repair_droid/detach() chassis.overlays -= droid_overlay - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) ..() /obj/item/mecha_parts/mecha_equipment/repair_droid/get_equip_info() @@ -220,12 +220,12 @@ if(href_list["toggle_repairs"]) chassis.overlays -= droid_overlay if(equip_ready) - SSobj.processing |= src + START_PROCESSING(SSobj, src) droid_overlay = new(src.icon, icon_state = "repair_droid_a") log_message("Activated.") set_ready_state(0) else - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) droid_overlay = new(src.icon, icon_state = "repair_droid") log_message("Deactivated.") set_ready_state(1) @@ -235,7 +235,7 @@ /obj/item/mecha_parts/mecha_equipment/repair_droid/process() if(!chassis) - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) set_ready_state(1) return var/h_boost = health_boost @@ -253,10 +253,10 @@ repaired = 1 if(repaired) if(!chassis.use_power(energy_drain)) - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) set_ready_state(1) else //no repair needed, we turn off - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) set_ready_state(1) chassis.overlays -= droid_overlay droid_overlay = new(src.icon, icon_state = "repair_droid") @@ -279,11 +279,11 @@ selectable = 0 /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay/Destroy() - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) return ..() /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay/detach() - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) ..() return @@ -309,11 +309,11 @@ ..() if(href_list["toggle_relay"]) if(equip_ready) //inactive - SSobj.processing |= src + START_PROCESSING(SSobj, src) set_ready_state(0) log_message("Activated.") else - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) set_ready_state(1) log_message("Deactivated.") @@ -324,12 +324,12 @@ /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay/process() if(!chassis || chassis.internal_damage & MECHA_INT_SHORT_CIRCUIT) - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) set_ready_state(1) return var/cur_charge = chassis.get_charge() if(isnull(cur_charge) || !chassis.cell) - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) set_ready_state(1) occupant_message("No powercell detected.") return @@ -370,7 +370,7 @@ generator_init() /obj/item/mecha_parts/mecha_equipment/generator/Destroy() - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) return ..() /obj/item/mecha_parts/mecha_equipment/generator/proc/generator_init() @@ -378,7 +378,7 @@ fuel.amount = 0 /obj/item/mecha_parts/mecha_equipment/generator/detach() - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) ..() /obj/item/mecha_parts/mecha_equipment/generator/Topic(href, href_list) @@ -386,11 +386,11 @@ if(href_list["toggle"]) if(equip_ready) //inactive set_ready_state(0) - SSobj.processing |= src + START_PROCESSING(SSobj, src) log_message("Activated.") else set_ready_state(1) - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) log_message("Deactivated.") /obj/item/mecha_parts/mecha_equipment/generator/get_equip_info() @@ -444,11 +444,11 @@ /obj/item/mecha_parts/mecha_equipment/generator/process() if(!chassis) - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) set_ready_state(1) return if(fuel.amount<=0) - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) log_message("Deactivated - no fuel.") set_ready_state(1) return @@ -457,7 +457,7 @@ set_ready_state(1) occupant_message("No powercell detected.") log_message("Deactivated.") - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) return var/use_fuel = fuel_per_cycle_idle if(cur_charge < chassis.cell.maxcharge) diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index d266bc878a26..ba4836318822 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -127,7 +127,7 @@ smoke_system.set_up(3, src) smoke_system.attach(src) add_cell() - SSobj.processing |= src + START_PROCESSING(SSobj, src) poi_list |= src log_message("[src.name] created.") mechas_list += src //global mech list @@ -176,7 +176,7 @@ qdel(cell) if(internal_tank) qdel(internal_tank) - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) poi_list.Remove(src) equipment.Cut() cell = null diff --git a/code/game/objects/effects/effect_system/effects_foam.dm b/code/game/objects/effects/effect_system/effects_foam.dm index 6dbf2b473e9b..dc51de0ad581 100644 --- a/code/game/objects/effects/effect_system/effects_foam.dm +++ b/code/game/objects/effects/effect_system/effects_foam.dm @@ -29,16 +29,16 @@ /obj/effect/particle_effect/foam/New(loc) ..(loc) create_reagents(1000) //limited by the size of the reagent holder anyway. - SSfastprocess.processing |= src + START_PROCESSING(SSfastprocess, src) playsound(src, 'sound/effects/bubbles2.ogg', 80, 1, -3) /obj/effect/particle_effect/foam/Destroy() - SSfastprocess.processing.Remove(src) + STOP_PROCESSING(SSfastprocess, src) return ..() /obj/effect/particle_effect/foam/proc/kill_foam() - SSfastprocess.processing.Remove(src) + STOP_PROCESSING(SSfastprocess, src) if(metal) var/obj/structure/foamedmetal/M = new(src.loc) M.metal = metal diff --git a/code/game/objects/effects/effect_system/effects_smoke.dm b/code/game/objects/effects/effect_system/effects_smoke.dm index 3a1fdd2d9915..c772aa1246ae 100644 --- a/code/game/objects/effects/effect_system/effects_smoke.dm +++ b/code/game/objects/effects/effect_system/effects_smoke.dm @@ -30,15 +30,15 @@ /obj/effect/particle_effect/smoke/New() ..() create_reagents(500) - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/effect/particle_effect/smoke/Destroy() - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) return ..() /obj/effect/particle_effect/smoke/proc/kill_smoke() - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) spawn(0) fade_out() spawn(10) diff --git a/code/game/objects/effects/forcefields.dm b/code/game/objects/effects/forcefields.dm index d3b65442e827..b9615f3153e4 100644 --- a/code/game/objects/effects/forcefields.dm +++ b/code/game/objects/effects/forcefields.dm @@ -27,10 +27,10 @@ /obj/effect/forcefield/mime/New() ..() last_process = world.time - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/effect/forcefield/mime/process() timeleft -= (world.time - last_process) if(timeleft <= 0) - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) qdel(src) \ No newline at end of file diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index 7c93ec3c5b98..b942d1b5323e 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -78,7 +78,7 @@ /obj/effect/spider/eggcluster/New() pixel_x = rand(3,-3) pixel_y = rand(3,-3) - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/effect/spider/eggcluster/process() amount_grown += rand(0,2) @@ -112,7 +112,7 @@ /obj/effect/spider/spiderling/New() pixel_x = rand(6,-6) pixel_y = rand(6,-6) - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/effect/spider/spiderling/Bump(atom/user) if(istype(user, /obj/structure/table)) diff --git a/code/game/objects/items/body_egg.dm b/code/game/objects/items/body_egg.dm index fb786dcf52a2..a1d2c50ffcb5 100644 --- a/code/game/objects/items/body_egg.dm +++ b/code/game/objects/items/body_egg.dm @@ -18,13 +18,13 @@ /obj/item/organ/body_egg/Insert(var/mob/living/carbon/M, special = 0) ..() owner.status_flags |= XENO_HOST - SSobj.processing |= src + START_PROCESSING(SSobj, src) owner.med_hud_set_status() spawn(0) AddInfectionImages(owner) /obj/item/organ/body_egg/Remove(var/mob/living/carbon/M, special = 0) - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) if(owner) owner.status_flags &= ~(XENO_HOST) owner.med_hud_set_status() diff --git a/code/game/objects/items/candle.dm b/code/game/objects/items/candle.dm index eced5d1af075..f6605a6fef07 100644 --- a/code/game/objects/items/candle.dm +++ b/code/game/objects/items/candle.dm @@ -65,7 +65,7 @@ usr.visible_message( "[usr] lights the [name].") SetLuminosity(CANDLE_LUMINOSITY) - SSobj.processing |= src + START_PROCESSING(SSobj, src) update_icon() diff --git a/code/game/objects/items/devices/camera_bug.dm b/code/game/objects/items/devices/camera_bug.dm index a49af05f8197..e33fc26df019 100644 --- a/code/game/objects/items/devices/camera_bug.dm +++ b/code/game/objects/items/devices/camera_bug.dm @@ -34,7 +34,7 @@ /obj/item/device/camera_bug/New() ..() - SSobj.processing += src + START_PROCESSING(SSobj, src) /obj/item/device/camera_bug/Destroy() get_cameras() diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index 6686f2985cbb..8b42c3cf52f1 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -207,7 +207,7 @@ obj/item/device/flashlight/lamp/bananalamp turn_off() if(!fuel) icon_state = "[initial(icon_state)]-empty" - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) /obj/item/device/flashlight/flare/proc/turn_off() on = 0 @@ -241,7 +241,7 @@ obj/item/device/flashlight/lamp/bananalamp user.visible_message("[user] lights \the [src].", "You light \the [src]!") force = on_damage damtype = "fire" - SSobj.processing += src + START_PROCESSING(SSobj, src) /obj/item/device/flashlight/flare/is_hot() return on * heat @@ -285,10 +285,10 @@ obj/item/device/flashlight/lamp/bananalamp /obj/item/device/flashlight/emp/New() ..() - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/item/device/flashlight/emp/Destroy() - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) return ..() /obj/item/device/flashlight/emp/process() diff --git a/code/game/objects/items/devices/geiger_counter.dm b/code/game/objects/items/devices/geiger_counter.dm index 8529311217cb..c35b04a34b02 100644 --- a/code/game/objects/items/devices/geiger_counter.dm +++ b/code/game/objects/items/devices/geiger_counter.dm @@ -18,10 +18,10 @@ /obj/item/device/geiger_counter/New() ..() - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/item/device/geiger_counter/Destroy() - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) ..() /obj/item/device/geiger_counter/process() diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm index 8390649eaa28..65a73271e416 100644 --- a/code/game/objects/items/devices/laserpointer.dm +++ b/code/game/objects/items/devices/laserpointer.dm @@ -154,7 +154,7 @@ if(energy <= max_energy) if(!recharging) recharging = 1 - SSobj.processing |= src + START_PROCESSING(SSobj, src) if(energy <= 0) user << "[src]'s battery is overused, it needs time to recharge!" recharge_locked = 1 diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm index b0db05d64d7f..43e4880506e0 100644 --- a/code/game/objects/items/devices/multitool.dm +++ b/code/game/objects/items/devices/multitool.dm @@ -37,10 +37,10 @@ /obj/item/device/multitool/ai_detect/New() ..() - SSobj.processing += src + START_PROCESSING(SSobj, src) /obj/item/device/multitool/ai_detect/Destroy() - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) return ..() /obj/item/device/multitool/ai_detect/process() diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm index c948d0c000c0..7fa3131da97a 100644 --- a/code/game/objects/items/devices/powersink.dm +++ b/code/game/objects/items/devices/powersink.dm @@ -34,20 +34,20 @@ if(DISCONNECTED) attached = null if(mode == OPERATING) - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) anchored = 0 if(CLAMPED_OFF) if(!attached) return if(mode == OPERATING) - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) anchored = 1 if(OPERATING) if(!attached) return - SSobj.processing |= src + START_PROCESSING(SSobj, src) anchored = 1 mode = value @@ -140,6 +140,6 @@ playsound(src, 'sound/effects/screech.ogg', 100, 1, 1) if(power_drained >= max_power) - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) explosion(src.loc, 4,8,16,32) qdel(src) diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index be9ca721a233..5395fca4206d 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -13,10 +13,10 @@ /obj/item/device/radio/intercom/New() ..() - SSobj.processing += src + START_PROCESSING(SSobj, src) /obj/item/device/radio/intercom/Destroy() - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) return ..() /obj/item/device/radio/intercom/attack_ai(mob/user) diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index a8e79888ed95..ad33ec4eea02 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -25,7 +25,7 @@ MASS SPECTROMETER icon_state = copytext(icon_state, 1, length(icon_state))+"[on]" if(on) - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/item/device/t_scanner/proc/flick_sonar(obj/pipe) var/image/I = image('icons/effects/effects.dmi', pipe, "blip", pipe.layer+1) @@ -38,7 +38,7 @@ MASS SPECTROMETER /obj/item/device/t_scanner/process() if(!on) - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) return null scan() diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index 0ae1d7a5a103..82d07c4f4c27 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -194,13 +194,13 @@ effective or pretty fucking useless. return user << "You activate [src]." src.user = user - SSobj.processing |= src + START_PROCESSING(SSobj, src) old_alpha = user.alpha on = 1 /obj/item/device/shadowcloak/proc/Deactivate() user << "You deactivate [src]." - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) if(user) user.alpha = old_alpha on = 0 diff --git a/code/game/objects/items/nuke_tools.dm b/code/game/objects/items/nuke_tools.dm index b88d4f6a07c3..ccdb5178325a 100644 --- a/code/game/objects/items/nuke_tools.dm +++ b/code/game/objects/items/nuke_tools.dm @@ -12,7 +12,7 @@ /obj/item/nuke_core/New() ..() - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/item/nuke_core/attackby(obj/item/nuke_core_container/container, mob/user) if(istype(container)) @@ -47,7 +47,7 @@ /obj/item/nuke_core_container/proc/seal() if(istype(core)) - SSobj.processing -= core + STOP_PROCESSING(SSobj, core) icon_state = "core_container_sealed" playsound(loc, 'sound/items/Deconstruct.ogg', 60, 1) if(ismob(loc)) diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 704e2212244d..5fe3fe5d4905 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -280,10 +280,10 @@ on = !on if(on) cyborg << "You activate the self-repair module." - SSobj.processing |= src + START_PROCESSING(SSobj, src) else cyborg << "You deactivate the self-repair module." - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) update_icon() /obj/item/borg/upgrade/selfrepair/update_icon() @@ -296,7 +296,7 @@ icon_state = "cyborg_upgrade5" /obj/item/borg/upgrade/selfrepair/proc/deactivate() - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) on = FALSE update_icon() diff --git a/code/game/objects/items/weapons/chrono_eraser.dm b/code/game/objects/items/weapons/chrono_eraser.dm index 49ce1244925f..fa1e6f266319 100644 --- a/code/game/objects/items/weapons/chrono_eraser.dm +++ b/code/game/objects/items/weapons/chrono_eraser.dm @@ -178,7 +178,7 @@ update_icon() desc = initial(desc) + "
It appears to contain [target.name]." - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/effect/chrono_field/Destroy() if(gun && gun.field_check(src)) diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm index c90ec1ae6775..cce7af5ab063 100644 --- a/code/game/objects/items/weapons/cigs_lighters.dm +++ b/code/game/objects/items/weapons/cigs_lighters.dm @@ -50,7 +50,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM name = "lit match" desc = "A match. This one is lit." attack_verb = list("burnt","singed") - SSobj.processing |= src + START_PROCESSING(SSobj, src) update_icon() return @@ -64,7 +64,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM name = "burnt match" desc = "A match. This one has seen better days." attack_verb = null - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) /obj/item/weapon/match/dropped(mob/user) matchburnout() @@ -130,7 +130,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM /obj/item/clothing/mask/cigarette/Destroy() if(reagents) qdel(reagents) - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) . = ..() /obj/item/clothing/mask/cigarette/attackby(obj/item/weapon/W, mob/user, params) @@ -214,7 +214,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM if(flavor_text) var/turf/T = get_turf(src) T.visible_message(flavor_text) - SSobj.processing |= src + START_PROCESSING(SSobj, src) //can't think of any other way to update the overlays :< if(ismob(loc)) @@ -385,7 +385,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM /obj/item/clothing/mask/cigarette/pipe/Destroy() if(reagents) qdel(reagents) - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) . = ..() /obj/item/clothing/mask/cigarette/pipe/process() @@ -402,7 +402,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM M.update_inv_wear_mask() packeditem = 0 name = "empty [initial(name)]" - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) return open_flame() if(reagents && reagents.total_volume) // check if it has any reagents at all @@ -443,7 +443,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM lit = 0 icon_state = icon_off item_state = icon_off - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) return if(!lit && smoketime > 0) user << "You empty [src] onto [location]." @@ -512,7 +512,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM user.visible_message("After a few attempts, [user] manages to light [src] - they however burn their finger in the process.", "You burn yourself while lighting the lighter!") user.AddLuminosity(1) - SSobj.processing |= src + START_PROCESSING(SSobj, src) else lit = 0 update_icon() @@ -524,7 +524,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM else user.visible_message("[user] quietly shuts off [src].", "You quietly shut off [src].") user.AddLuminosity(-1) - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) else return ..() return diff --git a/code/game/objects/items/weapons/flamethrower.dm b/code/game/objects/items/weapons/flamethrower.dm index 9ac39f92e455..5c2f11354f87 100644 --- a/code/game/objects/items/weapons/flamethrower.dm +++ b/code/game/objects/items/weapons/flamethrower.dm @@ -34,7 +34,7 @@ /obj/item/weapon/flamethrower/process() if(!lit) - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) return null var/turf/location = loc if(istype(location, /mob/)) @@ -149,7 +149,7 @@ return lit = !lit if(lit) - SSobj.processing |= src + START_PROCESSING(SSobj, src) if(!warned_admins) message_admins("[key_name_admin(usr)]? (FLW) has lit a flamethrower.") warned_admins = 1 diff --git a/code/game/objects/items/weapons/holy_weapons.dm b/code/game/objects/items/weapons/holy_weapons.dm index e9988d96b11b..138cb9c4dc41 100644 --- a/code/game/objects/items/weapons/holy_weapons.dm +++ b/code/game/objects/items/weapons/holy_weapons.dm @@ -351,10 +351,10 @@ /obj/item/weapon/nullrod/tribal_knife/New() ..() - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/item/weapon/nullrod/tribal_knife/Destroy() - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) return ..() /obj/item/weapon/nullrod/tribal_knife/process() diff --git a/code/game/objects/items/weapons/melee/misc.dm b/code/game/objects/items/weapons/melee/misc.dm index 950668780c30..f7582cadc632 100644 --- a/code/game/objects/items/weapons/melee/misc.dm +++ b/code/game/objects/items/weapons/melee/misc.dm @@ -148,7 +148,7 @@ /obj/item/weapon/melee/supermatter_sword/New() ..() shard = new /obj/machinery/power/supermatter_shard(src) - SSobj.processing += src + START_PROCESSING(SSobj, src) visible_message("\The [src] appears, balanced ever so perfectly on its hilt. This isn't ominous at all.") /obj/item/weapon/melee/supermatter_sword/process() diff --git a/code/game/objects/items/weapons/singularityhammer.dm b/code/game/objects/items/weapons/singularityhammer.dm index fa540fc869b8..07802d94a9a4 100644 --- a/code/game/objects/items/weapons/singularityhammer.dm +++ b/code/game/objects/items/weapons/singularityhammer.dm @@ -15,10 +15,10 @@ /obj/item/weapon/twohanded/singularityhammer/New() ..() - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/item/weapon/twohanded/singularityhammer/Destroy() - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) return ..() /obj/item/weapon/twohanded/singularityhammer/process() diff --git a/code/game/objects/items/weapons/tanks/jetpack.dm b/code/game/objects/items/weapons/tanks/jetpack.dm index 85add856f666..39222a1e0eaf 100644 --- a/code/game/objects/items/weapons/tanks/jetpack.dm +++ b/code/game/objects/items/weapons/tanks/jetpack.dm @@ -120,7 +120,7 @@ /obj/item/weapon/tank/jetpack/suit/New() ..() - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) air_contents = null /obj/item/weapon/tank/jetpack/suit/cycle(mob/user) @@ -136,13 +136,13 @@ var/mob/living/carbon/human/H = loc.loc tank = H.s_store air_contents = tank.air_contents - SSobj.processing |= src + START_PROCESSING(SSobj, src) ..() /obj/item/weapon/tank/jetpack/suit/turn_off() tank = null air_contents = null - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) ..() /obj/item/weapon/tank/jetpack/suit/process() @@ -173,4 +173,4 @@ if(!istype(J) && istype(wear_suit, /obj/item/clothing/suit/space/hardsuit)) var/obj/item/clothing/suit/space/hardsuit/C = wear_suit J = C.jetpack - return J + return J diff --git a/code/game/objects/items/weapons/tanks/tanks.dm b/code/game/objects/items/weapons/tanks/tanks.dm index 431996019f44..843d87533791 100644 --- a/code/game/objects/items/weapons/tanks/tanks.dm +++ b/code/game/objects/items/weapons/tanks/tanks.dm @@ -53,13 +53,13 @@ air_contents = new(volume) //liters air_contents.temperature = T20C - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/item/weapon/tank/Destroy() if(air_contents) qdel(air_contents) - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) return ..() /obj/item/weapon/tank/examine(mob/user) diff --git a/code/game/objects/items/weapons/tanks/watertank.dm b/code/game/objects/items/weapons/tanks/watertank.dm index d5d029cbddae..49cb244c1503 100644 --- a/code/game/objects/items/weapons/tanks/watertank.dm +++ b/code/game/objects/items/weapons/tanks/watertank.dm @@ -413,13 +413,13 @@ /obj/item/weapon/reagent_containers/chemtank/proc/turn_on() on = 1 - SSobj.processing |= src + START_PROCESSING(SSobj, src) if(ismob(loc)) loc << "[src] turns on." /obj/item/weapon/reagent_containers/chemtank/proc/turn_off() on = 0 - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) if(ismob(loc)) loc << "[src] turns off." diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index eeff417cf264..e831ed3fd989 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -295,7 +295,7 @@ damtype = "brute" update_icon() if(!can_off_process) - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) return //Welders left on now use up fuel, but lets not have them run out quite that fast if(1) @@ -382,7 +382,7 @@ damtype = "fire" hitsound = 'sound/items/welder.ogg' update_icon() - SSobj.processing |= src + START_PROCESSING(SSobj, src) else user << "You need more fuel!" welding = 0 diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 03e450e8a400..99d92289cbfa 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -30,7 +30,7 @@ /obj/Destroy() if(!istype(src, /obj/machinery)) - SSobj.processing.Remove(src) // TODO: Have a processing bitflag to reduce on unnecessary loops through the processing lists + STOP_PROCESSING(SSobj, src) // TODO: Have a processing bitflag to reduce on unnecessary loops through the processing lists SStgui.close_uis(src) return ..() diff --git a/code/game/objects/structures/crates_lockers/closets/statue.dm b/code/game/objects/structures/crates_lockers/closets/statue.dm index 4c053c6caa6d..529443ad5687 100644 --- a/code/game/objects/structures/crates_lockers/closets/statue.dm +++ b/code/game/objects/structures/crates_lockers/closets/statue.dm @@ -46,7 +46,7 @@ qdel(src) return - SSobj.processing |= src + START_PROCESSING(SSobj, src) ..() icon = L.icon icon_state = L.icon_state @@ -63,7 +63,7 @@ M.Stun(1) //So they can't do anything while petrified if(timer <= 0) dump_contents() - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) qdel(src) /obj/structure/closet/statue/dump_contents() diff --git a/code/game/objects/structures/transit_tubes/station.dm b/code/game/objects/structures/transit_tubes/station.dm index 04a22a88457c..3155c49b9be3 100644 --- a/code/game/objects/structures/transit_tubes/station.dm +++ b/code/game/objects/structures/transit_tubes/station.dm @@ -19,10 +19,10 @@ /obj/structure/transit_tube/station/New() ..() - SSobj.processing += src + START_PROCESSING(SSobj, src) /obj/structure/transit_tube/station/Destroy() - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) return ..() // Stations which will send the tube in the opposite direction after their stop. diff --git a/code/game/turfs/simulated/floor/misc_floor.dm b/code/game/turfs/simulated/floor/misc_floor.dm index c2a80cfc0dc2..997071c8487a 100644 --- a/code/game/turfs/simulated/floor/misc_floor.dm +++ b/code/game/turfs/simulated/floor/misc_floor.dm @@ -126,17 +126,17 @@ clockwork_construction_value++ /turf/open/floor/clockwork/Destroy() - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) clockwork_construction_value-- return ..() /turf/open/floor/clockwork/Entered(atom/movable/AM) ..() - SSobj.processing |= src + START_PROCESSING(SSobj, src) /turf/open/floor/clockwork/process() if(!healservants()) - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) /turf/open/floor/clockwork/proc/healservants() for(var/mob/living/L in src) diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm index 86da30c4d9cf..f177df2d679b 100644 --- a/code/game/turfs/simulated/floor/plating.dm +++ b/code/game/turfs/simulated/floor/plating.dm @@ -224,12 +224,12 @@ burn_stuff() if(!processing) processing = 1 - SSobj.processing |= src + START_PROCESSING(SSobj, src) /turf/open/floor/plating/lava/process() if(!burn_stuff()) processing = 0 - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) /turf/open/floor/plating/lava/make_plating() return diff --git a/code/modules/assembly/health.dm b/code/modules/assembly/health.dm index 6f88e889ca28..07b05ef565bb 100644 --- a/code/modules/assembly/health.dm +++ b/code/modules/assembly/health.dm @@ -22,10 +22,10 @@ /obj/item/device/assembly/health/toggle_secure() secured = !secured if(secured && scanning) - SSobj.processing |= src + START_PROCESSING(SSobj, src) else scanning = 0 - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) update_icon() return secured @@ -67,9 +67,9 @@ return 0 scanning = !scanning if(scanning) - SSobj.processing |= src + START_PROCESSING(SSobj, src) else - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) return /obj/item/device/assembly/health/interact(mob/user as mob)//TODO: Change this to the wires thingy diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index 3f14da3cd6c5..72b3591f8311 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -13,7 +13,7 @@ /obj/item/device/assembly/infra/New() ..() - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/item/device/assembly/infra/Destroy() if(first) @@ -33,12 +33,12 @@ /obj/item/device/assembly/infra/toggle_secure() secured = !secured if(secured) - SSobj.processing |= src + START_PROCESSING(SSobj, src) else on = 0 if(first) qdel(first) - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) update_icon() return secured diff --git a/code/modules/assembly/proximity.dm b/code/modules/assembly/proximity.dm index f896e2f08aba..a80429b54168 100644 --- a/code/modules/assembly/proximity.dm +++ b/code/modules/assembly/proximity.dm @@ -21,7 +21,7 @@ /obj/item/device/assembly/prox_sensor/New() ..() - SSobj.processing |= src + START_PROCESSING(SSobj, src) oldloc = loc /obj/item/device/assembly/prox_sensor/describe() diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm index aa1d99296725..80735e864671 100644 --- a/code/modules/assembly/timer.dm +++ b/code/modules/assembly/timer.dm @@ -14,7 +14,7 @@ /obj/item/device/assembly/timer/New() ..() - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/item/device/assembly/timer/describe() if(timing) @@ -33,10 +33,10 @@ /obj/item/device/assembly/timer/toggle_secure() secured = !secured if(secured) - SSobj.processing |= src + START_PROCESSING(SSobj, src) else timing = 0 - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) update_icon() return secured diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm index 9176470653bf..c49caf7c78b9 100644 --- a/code/modules/awaymissions/capture_the_flag.dm +++ b/code/modules/awaymissions/capture_the_flag.dm @@ -39,7 +39,7 @@ var/area/mob_area = get_area(M) if(istype(mob_area, /area/ctf)) M << "\The [src] has been returned to base!" - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) /obj/item/weapon/twohanded/required/ctf/attack_hand(mob/living/user) if (!user) @@ -59,12 +59,12 @@ var/area/mob_area = get_area(M) if(istype(mob_area, /area/ctf)) M << "\The [src] has been taken!" - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) /obj/item/weapon/twohanded/required/ctf/dropped(mob/user) ..() reset_cooldown = world.time + 200 //20 seconds - SSobj.processing |= src + START_PROCESSING(SSobj, src) for(var/mob/M in player_list) var/area/mob_area = get_area(M) if(istype(mob_area, /area/ctf)) diff --git a/code/modules/awaymissions/mission_code/Academy.dm b/code/modules/awaymissions/mission_code/Academy.dm index 5955709c1de0..0c4ab1dd76ab 100644 --- a/code/modules/awaymissions/mission_code/Academy.dm +++ b/code/modules/awaymissions/mission_code/Academy.dm @@ -66,7 +66,7 @@ var/braindead_check = 0 /obj/structure/academy_wizard_spawner/New() - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/structure/academy_wizard_spawner/process() if(next_check < world.time) @@ -131,7 +131,7 @@ if(health<0) visible_message("[src] breaks down!") icon_state = "forge_off" - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) broken = 1 /obj/structure/academy_wizard_spawner/attackby(obj/item/weapon/W, mob/living/user, params) diff --git a/code/modules/clothing/glasses/engine_goggles.dm b/code/modules/clothing/glasses/engine_goggles.dm index ad792ed9170b..6db052067b33 100644 --- a/code/modules/clothing/glasses/engine_goggles.dm +++ b/code/modules/clothing/glasses/engine_goggles.dm @@ -15,13 +15,13 @@ mode = !mode if(mode) - SSobj.processing |= src + START_PROCESSING(SSobj, src) vision_flags = 0 darkness_view = 2 invis_view = SEE_INVISIBLE_LIVING user << "You toggle the goggles' scanning mode to \[T-Ray]." else - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) vision_flags = SEE_TURFS darkness_view = 1 invis_view = SEE_INVISIBLE_MINIMUM @@ -121,10 +121,10 @@ on = !on if(on) - SSobj.processing |= src + START_PROCESSING(SSobj, src) user << "You turn the goggles on." else - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) user << "You turn the goggles off." invis_update() diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 93b1f039b7e7..340a2e174e9a 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -72,7 +72,7 @@ throwforce = 15 damtype = BURN hitsound = 'sound/items/Welder.ogg' - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/item/clothing/head/hardhat/cakehat/turn_off() ..() @@ -80,7 +80,7 @@ throwforce = 0 damtype = BRUTE hitsound = 'sound/weapons/tap.ogg' - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) /obj/item/clothing/head/hardhat/cakehat/is_hot() return on * heat diff --git a/code/modules/clothing/spacesuits/chronosuit.dm b/code/modules/clothing/spacesuits/chronosuit.dm index b08a0da45183..3e6a828065bb 100644 --- a/code/modules/clothing/spacesuits/chronosuit.dm +++ b/code/modules/clothing/spacesuits/chronosuit.dm @@ -185,7 +185,7 @@ else new_camera(user) else - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) /obj/item/clothing/suit/space/chronos/proc/activate() if(!activating && !activated && !teleporting) @@ -206,7 +206,7 @@ user << "\[ ok \] Starting ui display driver" user << "\[ ok \] Initializing chronowalk4-view" new_camera(user) - SSobj.processing |= src + START_PROCESSING(SSobj, src) activated = 1 else user << "\[ fail \] Mounting /dev/helmet" diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 5f7e531b419d..bd5d41f7b741 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -492,7 +492,7 @@ owner.visible_message("[owner]'s shields deflect [attack_text] in a shower of sparks!") current_charges-- recharge_cooldown = world.time + recharge_delay - SSobj.processing |= src + START_PROCESSING(SSobj, src) if(current_charges <= 0) owner.visible_message("[owner]'s shield overloads!") shield_state = "broken" @@ -502,7 +502,7 @@ /obj/item/clothing/suit/space/hardsuit/shielded/Destroy() - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) return ..() /obj/item/clothing/suit/space/hardsuit/shielded/process() @@ -511,7 +511,7 @@ playsound(loc, 'sound/magic/Charge.ogg', 50, 1) if(current_charges == max_charges) playsound(loc, 'sound/machines/ding.ogg', 50, 1) - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) shield_state = "[shield_on]" if(istype(loc, /mob/living/carbon/human)) var/mob/living/carbon/human/C = loc diff --git a/code/modules/countdown/countdown.dm b/code/modules/countdown/countdown.dm index 8e669b595d4c..e6b53aacdad8 100644 --- a/code/modules/countdown/countdown.dm +++ b/code/modules/countdown/countdown.dm @@ -24,13 +24,13 @@ /obj/effect/countdown/proc/start() if(!started) - SSfastprocess.processing |= src + START_PROCESSING(SSfastprocess, src) started = TRUE /obj/effect/countdown/proc/stop() if(started) overlays.Cut() - SSfastprocess.processing -= src + STOP_PROCESSING(SSfastprocess, src) started = FALSE /obj/effect/countdown/proc/get_value() @@ -59,7 +59,7 @@ /obj/effect/countdown/Destroy() attached_to = null - SSfastprocess.processing -= src + STOP_PROCESSING(SSfastprocess, src) . = ..() /obj/effect/countdown/syndicatebomb diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index 68b18d0f6078..33f19a97371f 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -437,7 +437,7 @@ /obj/effect/spacevine_controller/New(loc, list/muts, mttv, spreading) spawn_spacevine_piece(loc, , muts) - SSobj.processing |= src + START_PROCESSING(SSobj, src) init_subtypes(/datum/spacevine_mutation/, mutations_list) if(mttv != null) mutativness = mttv / 10 @@ -455,7 +455,7 @@ return /obj/effect/spacevine_controller/Destroy() - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) return ..() /obj/effect/spacevine_controller/proc/spawn_spacevine_piece(turf/location, obj/effect/spacevine/parent, list/muts) diff --git a/code/modules/events/wizard/greentext.dm b/code/modules/events/wizard/greentext.dm index f472cfe6796f..a35e1d6c2ddc 100644 --- a/code/modules/events/wizard/greentext.dm +++ b/code/modules/events/wizard/greentext.dm @@ -45,7 +45,7 @@ if(!(user in color_altered_mobs)) color_altered_mobs += user user.color = "#00FF00" - SSobj.processing |= src + START_PROCESSING(SSobj, src) ..() /obj/item/weapon/greentext/dropped(mob/living/user as mob) @@ -54,7 +54,7 @@ user.color = "#FF0000" //ya blew it last_holder = null new_holder = null - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) ..() /obj/item/weapon/greentext/process() diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index abb4ef31ce3a..35631605ded5 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -132,7 +132,7 @@ Gunshots/explosions/opening doors/less rare audio (done) flood_turfs += get_turf(src.loc) if(target.client) target.client.images |= flood_images next_expand = world.time + FAKE_FLOOD_EXPAND_TIME - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/effect/hallucination/fake_flood/process() if(next_expand <= world.time) @@ -153,7 +153,7 @@ Gunshots/explosions/opening doors/less rare audio (done) target.client.images |= flood_images /obj/effect/hallucination/fake_flood/Destroy() - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) qdel(flood_turfs) flood_turfs = list() if(target.client) diff --git a/code/modules/food_and_drinks/pizzabox.dm b/code/modules/food_and_drinks/pizzabox.dm index 363d193d2d06..47583de1bf68 100644 --- a/code/modules/food_and_drinks/pizzabox.dm +++ b/code/modules/food_and_drinks/pizzabox.dm @@ -80,7 +80,7 @@ if(open && !bomb_defused) audible_message("\icon[src] *beep*") bomb_active = TRUE - SSobj.processing |= src + START_PROCESSING(SSobj, src) update_icon() /obj/item/pizzabox/attack_hand(mob/user) @@ -196,7 +196,7 @@ return /obj/item/pizzabox/proc/unprocess() - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) qdel(wires) wires = null update_icon() diff --git a/code/modules/hydroponics/beekeeping/beebox.dm b/code/modules/hydroponics/beekeeping/beebox.dm index dfefa1a10a9e..fec53b66fa3a 100644 --- a/code/modules/hydroponics/beekeeping/beebox.dm +++ b/code/modules/hydroponics/beekeeping/beebox.dm @@ -39,11 +39,11 @@ /obj/structure/beebox/New() ..() - SSobj.processing += src + START_PROCESSING(SSobj, src) /obj/structure/beebox/Destroy() - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) bees.Cut() bees = null honeycombs.Cut() diff --git a/code/modules/hydroponics/grown/chili.dm b/code/modules/hydroponics/grown/chili.dm index 28959c70aa90..4e641c4e8cde 100644 --- a/code/modules/hydroponics/grown/chili.dm +++ b/code/modules/hydroponics/grown/chili.dm @@ -79,7 +79,7 @@ ..() if( istype(src.loc, /mob) ) held_mob = src.loc - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/item/weapon/reagent_containers/food/snacks/grown/ghost_chili/process() if(held_mob && src.loc == held_mob) diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index d21f805b8540..272171489720 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -488,14 +488,14 @@ /obj/item/weapon/melee/ghost_sword/New() ..() spirits = list() - SSobj.processing += src + START_PROCESSING(SSobj, src) poi_list |= src /obj/item/weapon/melee/ghost_sword/Destroy() for(var/mob/dead/observer/G in spirits) G.invisibility = initial(G.invisibility) spirits.Cut() - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) poi_list -= src . = ..() diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index 67a0d63fdacb..c97af3021b5c 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -276,7 +276,7 @@ var/global/chicken_count = 0 E.pixel_y = rand(-6,6) if(eggsFertile) if(chicken_count < MAX_CHICKENS && prob(25)) - SSobj.processing |= E + START_PROCESSING(SSobj, E) /obj/item/weapon/reagent_containers/food/snacks/egg/var/amount_grown = 0 /obj/item/weapon/reagent_containers/food/snacks/egg/process() @@ -285,10 +285,10 @@ var/global/chicken_count = 0 if(amount_grown >= 100) visible_message("[src] hatches with a quiet cracking sound.") new /mob/living/simple_animal/chick(get_turf(src)) - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) qdel(src) else - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) /obj/item/udder diff --git a/code/modules/power/antimatter/shielding.dm b/code/modules/power/antimatter/shielding.dm index 87b15cb1d3d3..21191f9fb0f8 100644 --- a/code/modules/power/antimatter/shielding.dm +++ b/code/modules/power/antimatter/shielding.dm @@ -176,7 +176,7 @@ /obj/machinery/am_shielding/proc/setup_core() processing = 1 machines |= src - SSmachine.processing |= src + START_PROCESSING(SSmachine, src) if(!control_unit) return control_unit.linked_cores.Add(src) diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index acc21442715f..90bc111ecc9a 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -20,22 +20,22 @@ /obj/item/weapon/stock_parts/cell/New() ..() - SSobj.processing |= src + START_PROCESSING(SSobj, src) charge = maxcharge ratingdesc = " This one has a power rating of [maxcharge], and you should not swallow it." desc = desc + ratingdesc updateicon() /obj/item/weapon/stock_parts/cell/Destroy() - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) return ..() /obj/item/weapon/stock_parts/cell/on_varedit(modified_var) if(modified_var == "self_recharge") if(self_recharge) - SSobj.processing |= src + START_PROCESSING(SSobj, src) else - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) ..() /obj/item/weapon/stock_parts/cell/process() diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index f31c2850b4d4..f89e265699f5 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -34,7 +34,7 @@ src.energy = starting_energy ..() - SSobj.processing |= src + START_PROCESSING(SSobj, src) poi_list |= src for(var/obj/machinery/power/singularity_beacon/singubeacon in machines) if(singubeacon.active) @@ -43,7 +43,7 @@ return /obj/singularity/Destroy() - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) poi_list.Remove(src) return ..() diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index 360ba644e917..f1887a4f5b43 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -38,12 +38,12 @@ fire_sound = shot.fire_sound fire_delay = shot.delay if(selfcharge) - SSobj.processing |= src + START_PROCESSING(SSobj, src) update_icon() return /obj/item/weapon/gun/energy/Destroy() - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) return ..() /obj/item/weapon/gun/energy/process() @@ -161,12 +161,12 @@ /obj/item/weapon/gun/energy/on_varedit(modified_var) if(modified_var == "selfcharge") if(selfcharge) - SSobj.processing |= src + START_PROCESSING(SSobj, src) else - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) ..() /obj/item/weapon/gun/energy/burn() if(power_supply) qdel(power_supply) - .=..() + .=..() diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm index 1600fc210963..60a2cd21e2f4 100644 --- a/code/modules/projectiles/guns/magic.dm +++ b/code/modules/projectiles/guns/magic.dm @@ -51,12 +51,12 @@ charges = max_charges chambered = new ammo_type(src) if(can_charge) - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/item/weapon/gun/magic/Destroy() if(can_charge) - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) return ..() diff --git a/code/modules/projectiles/guns/medbeam.dm b/code/modules/projectiles/guns/medbeam.dm index 78bf6f22642a..bb43bbc019b7 100644 --- a/code/modules/projectiles/guns/medbeam.dm +++ b/code/modules/projectiles/guns/medbeam.dm @@ -18,7 +18,7 @@ /obj/item/weapon/gun/medbeam/New() ..() - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/item/weapon/gun/medbeam/dropped(mob/user) ..() @@ -125,4 +125,4 @@ /obj/item/weapon/gun/medbeam/mech/New() ..() - SSobj.processing -= src //Mech mediguns do not process until installed, and are controlled by the holder obj + STOP_PROCESSING(SSobj, src) //Mech mediguns do not process until installed, and are controlled by the holder obj diff --git a/code/modules/projectiles/guns/projectile/laser_gatling.dm b/code/modules/projectiles/guns/projectile/laser_gatling.dm index d8ec700580cf..ea1922060034 100644 --- a/code/modules/projectiles/guns/projectile/laser_gatling.dm +++ b/code/modules/projectiles/guns/projectile/laser_gatling.dm @@ -17,11 +17,11 @@ /obj/item/weapon/minigunpack/New() gun = new(src) - SSobj.processing += src + START_PROCESSING(SSobj, src) ..() /obj/item/weapon/minigunpack/Destroy() - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) ..() /obj/item/weapon/minigunpack/process() diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index 398399f6b7ae..9a129aaf6746 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -23,7 +23,7 @@ var/const/INJECT = 5 //injection maximum_volume = maximum if(!(flags & REAGENT_NOREACT)) - SSobj.processing |= src + START_PROCESSING(SSobj, src) //I dislike having these here but map-objects are initialised before world/New() is called. >_> if(!chemical_reagents_list) @@ -60,7 +60,7 @@ var/const/INJECT = 5 //injection /datum/reagents/Destroy() . = ..() - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) for(var/reagent in reagent_list) var/datum/reagent/R = reagent qdel(R) @@ -293,7 +293,7 @@ var/const/INJECT = 5 //injection /datum/reagents/process() if(flags & REAGENT_NOREACT) - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) return for(var/reagent in reagent_list) @@ -305,9 +305,9 @@ var/const/INJECT = 5 //injection // Order is important, process() can remove from processing if // the flag is present flags &= ~(REAGENT_NOREACT) - SSobj.processing |= src + START_PROCESSING(SSobj, src) else - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) flags |= REAGENT_NOREACT /datum/reagents/proc/conditional_update_move(atom/A, Running = 0) diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm index 43454906259b..735d0e13cca8 100644 --- a/code/modules/reagents/reagent_containers/borghydro.dm +++ b/code/modules/reagents/reagent_containers/borghydro.dm @@ -38,11 +38,11 @@ Borg Hypospray modes[R] = iteration iteration++ - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/item/weapon/reagent_containers/borghypo/Destroy() - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) return ..() diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index 0cedcaaadf54..b61b7951a7ec 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -455,7 +455,7 @@ /obj/effect/golemrune/New() ..() - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/effect/golemrune/process() var/mob/dead/observer/ghost diff --git a/code/modules/shuttle/special.dm b/code/modules/shuttle/special.dm index a9389b267a26..9a7ddfed202e 100644 --- a/code/modules/shuttle/special.dm +++ b/code/modules/shuttle/special.dm @@ -66,10 +66,10 @@ /obj/structure/table/abductor/wabbajack/New() . = ..() - SSobj.processing += src + START_PROCESSING(SSobj, src) /obj/structure/table/abductor/wabbajack/Destroy() - SSobj.processing -= src + STOP_PROCESSING(SSobj, src) . = ..() /obj/structure/table/abductor/wabbajack/process() diff --git a/code/modules/stock_market/stockmarket.dm b/code/modules/stock_market/stockmarket.dm index aef4c36b5a66..9bb1828f8a6c 100644 --- a/code/modules/stock_market/stockmarket.dm +++ b/code/modules/stock_market/stockmarket.dm @@ -1,171 +1,171 @@ - - -/datum/stockMarket - var/list/stocks = list() - var/list/balances = list() - var/list/last_read = list() - var/list/stockBrokers = list() - var/list/logs = list() - -/datum/stockMarket/New() - ..() - generateBrokers() - generateStocks() - SSobj.processing.Add(src) - -/datum/stockMarket/proc/balanceLog(var/whose, var/net) - if (!(whose in balances)) - balances[whose] = net - else - balances[whose] += net -/datum/stockMarket/proc/generateBrokers() - stockBrokers = list() - var/list/fnames = list("Goldman", "Edward", "James", "Luis", "Alexander", "Walter", "Eugene", "Mary", "Morgan", "Jane", "Elizabeth", "Xavier", "Hayden", "Samuel", "Lee") - var/list/names = list("Johnson", "Rothschild", "Sachs", "Stanley", "Hepburn", "Brown", "McColl", "Fischer", "Edwards", "Becker", "Witter", "Walker", "Lambert", "Smith", "Montgomery", "Lynch", "Roosevelt", "Lehman") - var/list/locations = list("Earth", "Luna", "Mars", "Saturn", "Jupiter", "Uranus", "Pluto", "Europa", "Io", "Phobos", "Deimos", "Space", "Venus", "Neptune", "Mercury", "Kalliope", "Ganymede", "Callisto", "Amalthea", "Himalia", "Sybil", "Basil", "Badger", "Terry", "Artyom") - var/list/first = list("The", "First", "Premier", "Finest", "Prime") - var/list/company = list("Investments", "Securities", "Corporation", "Bank", "Brokerage", "& Co.", "Brothers", "& Sons", "Investement Firm", "Union", "Partners", "Capital", "Trade", "Holdings") - for(var/i in 1 to 5) - var/pname = "" - switch (rand(1,5)) - if (1) - pname = "[prob(10) ? pick(first) + " " : null][pick(names)] [pick(company)]" - if (2) - pname = "[pick(names)] & [pick(names)][prob(25) ? " " + pick(company) : null]" - if (3) - pname = "[prob(45) ? pick(first) + " " : null][pick(locations)] [pick(company)]" - if (4) - pname = "[prob(10) ? "The " : null][pick(names)] [pick(locations)] [pick(company)]" - if (5) - pname = "[prob(10) ? "The " : null][pick(fnames)] [pick(names)][prob(10) ? " " + pick(company) : null]" - if (pname in stockBrokers) - i-- - continue - stockBrokers += pname - -/datum/stockMarket/proc/generateDesignation(var/name) - if (length(name) <= 4) - return uppertext(name) - var/list/w = splittext(name, " ") - if (w.len >= 2) - var/d = "" - for(var/i in 1 to min(5, w.len)) - d += uppertext(ascii2text(text2ascii(w[i], 1))) - return d - else - var/d = uppertext(ascii2text(text2ascii(name, 1))) - for(var/i in 2 to length(name)) - if (prob(100 / i)) - d += uppertext(ascii2text(text2ascii(name, i))) - return d - -/datum/stockMarket/proc/generateStocks(var/amt = 15) - var/list/fruits = list("Banana", "Mimana", "Watermelon", "Ambrosia", "Pomegranate", "Reishi", "Papaya", "Mango", "Tomato", "Conkerberry", "Wood", "Lychee", "Mandarin", "Harebell", "Pumpkin", "Rhubarb", "Tamarillo", "Yantok", "Ziziphus", "Oranges", "Gatfruit", "Daisy", "Kudzu") - var/list/tech_prefix = list("Nano", "Cyber", "Funk", "Astro", "Fusion", "Tera", "Exo", "Star", "Virtual", "Plasma", "Robust", "Bit", "Future", "Hugbox", "Carbon", "Nerf", "Buff", "Nova", "Space", "Meta", "Cyber") - var/list/tech_short = list("soft", "tech", "prog", "tec", "tek", "ware", "", "gadgets", "nics", "tric", "trasen", "tronic", "coin") - var/list/random_nouns = list("Johnson", "Cluwne", "General", "Specific", "Master", "King", "Queen", "Table", "Rupture", "Dynamic", "Massive", "Mega", "Giga", "Certain", "Singulo", "State", "National", "International", "Interplanetary", "Sector", "Planet", "Burn", "Robust", "Exotic", "Solar", "Lunar", "Chelp", "Corgi", "Lag", "Lizard") - var/list/company = list("Company", "Factory", "Incorporated", "Industries", "Group", "Consolidated", "GmbH", "LLC", "Ltd", "Inc.", "Association", "Limited", "Software", "Technology", "Programming", "IT Group", "Electronics", "Nanotechnology", "Farms", "Stores", "Mobile", "Motors", "Electric", "Designs", "Energy", "Pharmaceuticals", "Communications", "Wholesale", "Holding", "Health", "Machines", "Astrotech", "Gadgets", "Kinetics") - for (var/i = 1, i <= amt, i++) - var/datum/stock/S = new - var/sname = "" - switch (rand(1,6)) - if(1) - while (sname == "" || sname == "FAG") // honestly it's a 0.6% chance per round this happens - or once in 166 rounds - so i'm accounting for it before someone yells at me - sname = "[consonant()][vowel()][consonant()]" - if (2) - sname = "[pick(tech_prefix)][pick(tech_short)][prob(20) ? " " + pick(company) : null]" - if (3 to 4) - var/fruit = pick(fruits) - fruits -= fruit - sname = "[prob(10) ? "The " : null][fruit][prob(40) ? " " + pick(company): null]" - if (5 to 6) - var/pname = pick(random_nouns) - random_nouns -= pname - switch (rand(1,3)) - if (1) - sname = "[pname] & [pname]" - if (2) - sname = "[pname] [pick(company)]" - if (3) - sname = "[pname]" - S.name = sname - S.short_name = generateDesignation(S.name) - S.current_value = rand(10, 125) - var/dv = rand(10, 40) / 10 - S.fluctuational_coefficient = prob(50) ? (1 / dv) : dv - S.average_optimism = rand(-10, 10) / 100 - S.optimism = S.average_optimism + (rand(-40, 40) / 100) - S.current_trend = rand(-200, 200) / 10 - S.last_trend = S.current_trend - S.disp_value_change = rand(-1, 1) - S.speculation = rand(-20, 20) - S.average_shares = round(rand(500, 10000) / 10) - S.outside_shareholders = rand(1000, 30000) - S.available_shares = rand(200000, 800000) - S.fluctuation_rate = rand(6, 20) - S.generateIndustry() - S.generateEvents() - stocks += S - last_read[S] = list() - -/datum/stockMarket/process() - for (var/stock in stocks) - var/datum/stock/S = stock - S.process() - -/datum/stockMarket/proc/add_log(var/log_type, var/user, var/company_name, var/stocks, var/shareprice, var/money) - var/datum/stock_log/L = new log_type - L.user_name = user - L.company_name = company_name - L.stocks = stocks - L.shareprice = shareprice - L.money = money - L.time = time2text(world.timeofday, "hh:mm") - logs += L - -var/global/datum/stockMarket/stockExchange = new - -/proc/plotBarGraph(var/list/points, var/base_text, var/width=400, var/height=400) - var/output = "" - if (points.len && height > 20 && width > 20) - var/min = points[1] - var/max = points[1] - for (var/v in points) - if (v < min) - min = v - if (v > max) - max = v - var/cells = (height - 20) / 20 - if (cells > round(cells)) - cells = round(cells) + 1 - var/diff = max - min - var/ost = diff / cells - if (min > 0) - min = max(min - ost, 0) - diff = max - min - ost = diff / cells - var/cval = max - var/cwid = width / (points.len + 1) - for (var/y = cells, y > 0, y--) - if (y == cells) - output += "" - else - output += "" - for (var/x = 0, x <= points.len, x++) - if (x == 0) - output += "" - else - var/v = points[x] - if (v >= cval) - output += "" - else - output += "" - output += "" - cval -= ost - output += "" - else - output += "" - output += "" - - return "[output]
[round(cval - ost)]  
[base_text]
[base_text]
" - + + +/datum/stockMarket + var/list/stocks = list() + var/list/balances = list() + var/list/last_read = list() + var/list/stockBrokers = list() + var/list/logs = list() + +/datum/stockMarket/New() + ..() + generateBrokers() + generateStocks() + START_PROCESSING(SSobj, src) + +/datum/stockMarket/proc/balanceLog(var/whose, var/net) + if (!(whose in balances)) + balances[whose] = net + else + balances[whose] += net +/datum/stockMarket/proc/generateBrokers() + stockBrokers = list() + var/list/fnames = list("Goldman", "Edward", "James", "Luis", "Alexander", "Walter", "Eugene", "Mary", "Morgan", "Jane", "Elizabeth", "Xavier", "Hayden", "Samuel", "Lee") + var/list/names = list("Johnson", "Rothschild", "Sachs", "Stanley", "Hepburn", "Brown", "McColl", "Fischer", "Edwards", "Becker", "Witter", "Walker", "Lambert", "Smith", "Montgomery", "Lynch", "Roosevelt", "Lehman") + var/list/locations = list("Earth", "Luna", "Mars", "Saturn", "Jupiter", "Uranus", "Pluto", "Europa", "Io", "Phobos", "Deimos", "Space", "Venus", "Neptune", "Mercury", "Kalliope", "Ganymede", "Callisto", "Amalthea", "Himalia", "Sybil", "Basil", "Badger", "Terry", "Artyom") + var/list/first = list("The", "First", "Premier", "Finest", "Prime") + var/list/company = list("Investments", "Securities", "Corporation", "Bank", "Brokerage", "& Co.", "Brothers", "& Sons", "Investement Firm", "Union", "Partners", "Capital", "Trade", "Holdings") + for(var/i in 1 to 5) + var/pname = "" + switch (rand(1,5)) + if (1) + pname = "[prob(10) ? pick(first) + " " : null][pick(names)] [pick(company)]" + if (2) + pname = "[pick(names)] & [pick(names)][prob(25) ? " " + pick(company) : null]" + if (3) + pname = "[prob(45) ? pick(first) + " " : null][pick(locations)] [pick(company)]" + if (4) + pname = "[prob(10) ? "The " : null][pick(names)] [pick(locations)] [pick(company)]" + if (5) + pname = "[prob(10) ? "The " : null][pick(fnames)] [pick(names)][prob(10) ? " " + pick(company) : null]" + if (pname in stockBrokers) + i-- + continue + stockBrokers += pname + +/datum/stockMarket/proc/generateDesignation(var/name) + if (length(name) <= 4) + return uppertext(name) + var/list/w = splittext(name, " ") + if (w.len >= 2) + var/d = "" + for(var/i in 1 to min(5, w.len)) + d += uppertext(ascii2text(text2ascii(w[i], 1))) + return d + else + var/d = uppertext(ascii2text(text2ascii(name, 1))) + for(var/i in 2 to length(name)) + if (prob(100 / i)) + d += uppertext(ascii2text(text2ascii(name, i))) + return d + +/datum/stockMarket/proc/generateStocks(var/amt = 15) + var/list/fruits = list("Banana", "Mimana", "Watermelon", "Ambrosia", "Pomegranate", "Reishi", "Papaya", "Mango", "Tomato", "Conkerberry", "Wood", "Lychee", "Mandarin", "Harebell", "Pumpkin", "Rhubarb", "Tamarillo", "Yantok", "Ziziphus", "Oranges", "Gatfruit", "Daisy", "Kudzu") + var/list/tech_prefix = list("Nano", "Cyber", "Funk", "Astro", "Fusion", "Tera", "Exo", "Star", "Virtual", "Plasma", "Robust", "Bit", "Future", "Hugbox", "Carbon", "Nerf", "Buff", "Nova", "Space", "Meta", "Cyber") + var/list/tech_short = list("soft", "tech", "prog", "tec", "tek", "ware", "", "gadgets", "nics", "tric", "trasen", "tronic", "coin") + var/list/random_nouns = list("Johnson", "Cluwne", "General", "Specific", "Master", "King", "Queen", "Table", "Rupture", "Dynamic", "Massive", "Mega", "Giga", "Certain", "Singulo", "State", "National", "International", "Interplanetary", "Sector", "Planet", "Burn", "Robust", "Exotic", "Solar", "Lunar", "Chelp", "Corgi", "Lag", "Lizard") + var/list/company = list("Company", "Factory", "Incorporated", "Industries", "Group", "Consolidated", "GmbH", "LLC", "Ltd", "Inc.", "Association", "Limited", "Software", "Technology", "Programming", "IT Group", "Electronics", "Nanotechnology", "Farms", "Stores", "Mobile", "Motors", "Electric", "Designs", "Energy", "Pharmaceuticals", "Communications", "Wholesale", "Holding", "Health", "Machines", "Astrotech", "Gadgets", "Kinetics") + for (var/i = 1, i <= amt, i++) + var/datum/stock/S = new + var/sname = "" + switch (rand(1,6)) + if(1) + while (sname == "" || sname == "FAG") // honestly it's a 0.6% chance per round this happens - or once in 166 rounds - so i'm accounting for it before someone yells at me + sname = "[consonant()][vowel()][consonant()]" + if (2) + sname = "[pick(tech_prefix)][pick(tech_short)][prob(20) ? " " + pick(company) : null]" + if (3 to 4) + var/fruit = pick(fruits) + fruits -= fruit + sname = "[prob(10) ? "The " : null][fruit][prob(40) ? " " + pick(company): null]" + if (5 to 6) + var/pname = pick(random_nouns) + random_nouns -= pname + switch (rand(1,3)) + if (1) + sname = "[pname] & [pname]" + if (2) + sname = "[pname] [pick(company)]" + if (3) + sname = "[pname]" + S.name = sname + S.short_name = generateDesignation(S.name) + S.current_value = rand(10, 125) + var/dv = rand(10, 40) / 10 + S.fluctuational_coefficient = prob(50) ? (1 / dv) : dv + S.average_optimism = rand(-10, 10) / 100 + S.optimism = S.average_optimism + (rand(-40, 40) / 100) + S.current_trend = rand(-200, 200) / 10 + S.last_trend = S.current_trend + S.disp_value_change = rand(-1, 1) + S.speculation = rand(-20, 20) + S.average_shares = round(rand(500, 10000) / 10) + S.outside_shareholders = rand(1000, 30000) + S.available_shares = rand(200000, 800000) + S.fluctuation_rate = rand(6, 20) + S.generateIndustry() + S.generateEvents() + stocks += S + last_read[S] = list() + +/datum/stockMarket/process() + for (var/stock in stocks) + var/datum/stock/S = stock + S.process() + +/datum/stockMarket/proc/add_log(var/log_type, var/user, var/company_name, var/stocks, var/shareprice, var/money) + var/datum/stock_log/L = new log_type + L.user_name = user + L.company_name = company_name + L.stocks = stocks + L.shareprice = shareprice + L.money = money + L.time = time2text(world.timeofday, "hh:mm") + logs += L + +var/global/datum/stockMarket/stockExchange = new + +/proc/plotBarGraph(var/list/points, var/base_text, var/width=400, var/height=400) + var/output = "" + if (points.len && height > 20 && width > 20) + var/min = points[1] + var/max = points[1] + for (var/v in points) + if (v < min) + min = v + if (v > max) + max = v + var/cells = (height - 20) / 20 + if (cells > round(cells)) + cells = round(cells) + 1 + var/diff = max - min + var/ost = diff / cells + if (min > 0) + min = max(min - ost, 0) + diff = max - min + ost = diff / cells + var/cval = max + var/cwid = width / (points.len + 1) + for (var/y = cells, y > 0, y--) + if (y == cells) + output += "" + else + output += "" + for (var/x = 0, x <= points.len, x++) + if (x == 0) + output += "" + else + var/v = points[x] + if (v >= cval) + output += "" + else + output += "" + output += "" + cval -= ost + output += "" + else + output += "" + output += "" + + return "[output]
[round(cval - ost)]  
[base_text]
[base_text]
" + diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index 346b6179dbb7..c5a1ab6269f5 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -446,10 +446,10 @@ /obj/item/organ/shadowtumor/New() ..() - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/item/organ/shadowtumor/Destroy() - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) ..() /obj/item/organ/shadowtumor/process() diff --git a/code/modules/telesci/telepad.dm b/code/modules/telesci/telepad.dm index 1a247d5e9c63..998500e73510 100644 --- a/code/modules/telesci/telepad.dm +++ b/code/modules/telesci/telepad.dm @@ -136,14 +136,14 @@ /obj/item/weapon/rcs/New() ..() - SSobj.processing |= src + START_PROCESSING(SSobj, src) /obj/item/weapon/rcs/examine(mob/user) ..() user << "There are [rcharges] charge\s left." /obj/item/weapon/rcs/Destroy() - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) return ..() /obj/item/weapon/rcs/process() if(rcharges > 10)