From e045c84f97d1dc9c62d9cfc51249123b3abf2d03 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Sat, 6 Sep 2014 01:30:44 -0400 Subject: [PATCH] Fixes APC load totals periodically doubling Also fixes areas updating excessively when update_use_power() was called. --- code/controllers/master_controller.dm | 1 + code/game/machinery/machinery.dm | 10 +++------- code/modules/power/apc.dm | 8 ++++---- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/code/controllers/master_controller.dm b/code/controllers/master_controller.dm index 0777c6aa41..e980c77657 100644 --- a/code/controllers/master_controller.dm +++ b/code/controllers/master_controller.dm @@ -299,6 +299,7 @@ datum/controller/game_controller/proc/process_machines_power() var/area/A = active_areas[i] if(A.powerupdate && A.master == A) A.powerupdate -= 1 + A.clear_usage() for(var/j = 1; j <= A.related.len; j++) var/area/SubArea = A.related[j] for(var/obj/machinery/M in SubArea) diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index c1438b236d..10ec4f8fad 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -165,13 +165,9 @@ Class Procs: use_power = new_use_power //force area power update - //use_power() forces an area power update on the next tick so have to pass the correct power amount for this tick - if (use_power >= 2) - use_power(active_power_usage) - else if (use_power == 1) - use_power(idle_power_usage) - else - use_power(0) + var/area/A = get_area(src) + if(A && A.master) + A.master.powerupdate = 1 /obj/machinery/proc/auto_use_power() if(!powered(power_channel)) diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 3fa162557b..b80807ef86 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -1174,10 +1174,7 @@ lastused_light = area.usage(LIGHT) lastused_equip = area.usage(EQUIP) lastused_environ = area.usage(ENVIRON) - if(area.powerupdate) - if(debug) log_debug("power update in [area.name] / [name]") - area.clear_usage() - + lastused_total = lastused_light + lastused_equip + lastused_environ //store states to update icon if any change @@ -1195,6 +1192,9 @@ if(debug) log_debug( "Status: [main_status] - Excess: [excess] - Last Equip: [lastused_equip] - Last Light: [lastused_light]") + + if(area.powerupdate) + log_debug("power update in [area.name] / [name]") if(cell && !shorted) //var/cell_charge = cell.charge