diff --git a/code/game/gamemodes/technomancer/devices/gloves_of_regen.dm b/code/game/gamemodes/technomancer/devices/gloves_of_regen.dm index fa036b1fcaa..da6746cc96f 100644 --- a/code/game/gamemodes/technomancer/devices/gloves_of_regen.dm +++ b/code/game/gamemodes/technomancer/devices/gloves_of_regen.dm @@ -26,6 +26,7 @@ if(wearer.can_feel_pain()) to_chat(H, SPAN_DANGER("You feel a stabbing sensation in your hands as you slide \the [src] on!")) wearer.custom_pain("You feel a sharp pain in your hands!",1) + START_PROCESSING(SSprocessing, src) ..() /obj/item/clothing/gloves/regen/dropped(mob/user) @@ -37,7 +38,6 @@ wearer = null /obj/item/clothing/gloves/regen/New() - START_PROCESSING(SSprocessing, src) ..() /obj/item/clothing/gloves/regen/Destroy() @@ -47,7 +47,7 @@ /obj/item/clothing/gloves/regen/process() if(!wearer || wearer.isSynthetic() || wearer.stat == DEAD || wearer.nutrition <= 10) - return // Robots and dead people don't have a metabolism. + return PROCESS_KILL // Robots and dead people don't have a metabolism. if(wearer.getBruteLoss()) wearer.adjustBruteLoss(-0.1) diff --git a/code/game/objects/items/tools/mop.dm b/code/game/objects/items/tools/mop.dm index c5c22eb0f25..f0a96ab6de1 100644 --- a/code/game/objects/items/tools/mop.dm +++ b/code/game/objects/items/tools/mop.dm @@ -99,15 +99,9 @@ . += ..() . += SPAN_NOTICE("\The condenser switch is set to [refill_enabled ? "ON" : "OFF"].") -/obj/item/mop/advanced/Initialize() - . = ..() - - START_PROCESSING(SSprocessing, src) - /obj/item/mop/advanced/Destroy() STOP_PROCESSING(SSprocessing, src) - - . = ..() + return ..() /obj/item/mop/advanced/attack_self(mob/user) refill_enabled = !refill_enabled @@ -121,3 +115,9 @@ /obj/item/mop/advanced/process() if(reagents.total_volume < 30) reagents.add_reagent(refill_reagent, refill_rate) + else STOP_PROCESSING(SSprocessing, src) + +/obj/item/mop/advanced/afterattack(atom/A, mob/user, proximity) + . = ..() + if (reagents.total_volume < 30) + START_PROCESSING(SSprocessing, src) diff --git a/code/modules/modular_computers/computers/modular_computer/core.dm b/code/modules/modular_computers/computers/modular_computer/core.dm index 77c8a4bad2e..32e0adc407b 100644 --- a/code/modules/modular_computers/computers/modular_computer/core.dm +++ b/code/modules/modular_computers/computers/modular_computer/core.dm @@ -3,7 +3,7 @@ if(!enabled) // The computer is turned off last_power_usage = 0 - return FALSE + return PROCESS_KILL // Unpowered computers don't need to process. if(health <= broken_damage) shutdown_computer() @@ -85,7 +85,6 @@ /obj/item/modular_computer/Initialize() . = ..() - START_PROCESSING(SSprocessing, src) install_default_hardware() if(hard_drive) install_default_programs() @@ -319,6 +318,7 @@ return GLOB.ntnet_global.add_log(text, network_card) /obj/item/modular_computer/proc/shutdown_computer(var/loud = TRUE) + STOP_PROCESSING(SSprocessing, src) SStgui.close_uis(active_program) kill_program_shutdown(TRUE) for(var/datum/computer_file/program/P in idle_threads) @@ -340,6 +340,7 @@ update_icon() /obj/item/modular_computer/proc/enable_computer(var/mob/user, var/ar_forced=FALSE) + START_PROCESSING(SSprocessing, src) enabled = TRUE if(looping_sound) soundloop.start(src) diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index 07d87844f1d..b03b8fae665 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -21,14 +21,13 @@ charge = maxcharge - if(self_charge_percentage) + if(self_charge_percentage && charge < maxcharge) START_PROCESSING(SSprocessing, src) update_icon() /obj/item/cell/Destroy() - if(self_charge_percentage) - STOP_PROCESSING(SSprocessing, src) + STOP_PROCESSING(SSprocessing, src) return ..() /obj/item/cell/process(seconds_per_tick) @@ -41,6 +40,8 @@ var/recharge_for_this_process = round(recharge_amount_per_second * (seconds_per_tick / 10)) // divides seconds_per_tick by 10 to turn deciseconds into seconds // finally, charge the cell give(recharge_for_this_process) + if (charge >= maxcharge) + return PROCESS_KILL // No need to constantly process self-charging cells that are full. /obj/item/cell/Created() //Newly built cells spawn with no charge to prevent power exploits @@ -51,13 +52,12 @@ return src /obj/item/cell/drain_power(var/drain_check, var/surge, var/power = 0) - if(drain_check) return 1 if(charge <= 0) return 0 - + START_PROCESSING(SSprocessing, src) // Always attempt at least one process if the battery level is ever reduced. var/cell_amt = power * CELLRATE return use(cell_amt) / CELLRATE diff --git a/code/modules/projectiles/guns/energy/cult.dm b/code/modules/projectiles/guns/energy/cult.dm index dba592d05fd..87f3c801306 100644 --- a/code/modules/projectiles/guns/energy/cult.dm +++ b/code/modules/projectiles/guns/energy/cult.dm @@ -29,8 +29,6 @@ firemodes = list() modifystate = null - var/does_process = TRUE - matter = null origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 2, TECH_MAGNET = 3, TECH_ARCANE = 2, TECH_ILLEGAL = 3) @@ -40,15 +38,6 @@ . += ..() . += "This weapon can be recharged by clicking on blood or remains with it. Remains recharge more than simple blood." -/obj/item/gun/energy/rifle/cult/Initialize() - . = ..() - if(does_process) - START_PROCESSING(SSprocessing, src) - -/obj/item/gun/energy/rifle/cult/Destroy() - STOP_PROCESSING(SSprocessing, src) - return ..() - /obj/item/gun/energy/rifle/cult/afterattack(atom/A, mob/living/user, adjacent, params) if(adjacent && iscultist(user)) if(istype(A, /obj/effect/decal/remains) || istype(A, /obj/effect/decal/cleanable/blood)) @@ -76,5 +65,4 @@ use_external_power = TRUE self_recharge = TRUE has_safety = FALSE - does_process = FALSE projectile_type = /obj/projectile/bullet/shard/heavy diff --git a/code/modules/psionics/abilities/nlom_eyes.dm b/code/modules/psionics/abilities/nlom_eyes.dm index 69d2213864c..4429e341497 100644 --- a/code/modules/psionics/abilities/nlom_eyes.dm +++ b/code/modules/psionics/abilities/nlom_eyes.dm @@ -55,7 +55,7 @@ /obj/item/spell/track/process() if(!tracking) icon_state = "track" - return + return PROCESS_KILL if(!tracked) icon_state = "track_unknown" diff --git a/html/changelogs/hellfirejag-processing-audit-part1.yml b/html/changelogs/hellfirejag-processing-audit-part1.yml new file mode 100644 index 00000000000..9b36fc12dff --- /dev/null +++ b/html/changelogs/hellfirejag-processing-audit-part1.yml @@ -0,0 +1,4 @@ +author: Hellfirejag +delete-after: True +changes: + - bugfix: "Fixed some items always wasting process() time unnecessarily."