diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm
index d17513ddf9..d4e92ac43a 100644
--- a/code/modules/power/apc.dm
+++ b/code/modules/power/apc.dm
@@ -34,6 +34,10 @@
#define APC_COVER_OPENED 1
#define APC_COVER_REMOVED 2
+#define APC_NOT_CHARGING 0
+#define APC_CHARGING 1
+#define APC_FULLY_CHARGED 2
+
// the Area Power Controller (APC), formerly Power Distribution Unit (PDU)
// one per area, needs wire connection to power network through a terminal
@@ -66,7 +70,7 @@
var/equipment = 3
var/environ = 3
var/operating = TRUE
- var/charging = 0
+ var/charging = APC_NOT_CHARGING
var/chargemode = 1
var/chargecount = 0
var/locked = TRUE
@@ -291,11 +295,11 @@
// And now, separately for cleanness, the lighting changing
if(update_state & UPSTATE_ALLGOOD)
switch(charging)
- if(0)
+ if(APC_NOT_CHARGING)
light_color = LIGHT_COLOR_RED
- if(1)
+ if(APC_CHARGING)
light_color = LIGHT_COLOR_BLUE
- if(2)
+ if(APC_FULLY_CHARGED)
light_color = LIGHT_COLOR_GREEN
set_light(lon_range)
else if(update_state & UPSTATE_BLUESCREEN)
@@ -339,9 +343,9 @@
if(!charging)
update_overlay |= APC_UPOVERLAY_CHARGEING0
- else if(charging == 1)
+ else if(charging == APC_CHARGING)
update_overlay |= APC_UPOVERLAY_CHARGEING1
- else if(charging == 2)
+ else if(charging == APC_FULLY_CHARGED)
update_overlay |= APC_UPOVERLAY_CHARGEING2
if (!equipment)
@@ -384,15 +388,6 @@
/obj/machinery/power/apc/crowbar_act(mob/user, obj/item/W)
. = TRUE
if (opened)
- if(cell)
- user.visible_message("[user] removes \the [cell] from [src]!","You remove \the [cell].")
- var/turf/T = get_turf(user)
- cell.forceMove(T)
- cell.update_icon()
- cell = null
- charging = 0
- update_icon()
- return
if (has_electronics == APC_ELECTRONICS_INSTALLED)
if (terminal)
to_chat(user, "Disconnect the wires first!")
@@ -457,8 +452,14 @@
/obj/machinery/power/apc/screwdriver_act(mob/living/user, obj/item/W)
. = TRUE
if(opened)
- if (cell)
- to_chat(user, "Close the APC first!")
+ if(cell)
+ user.visible_message("[user] removes \the [cell] from [src]!","You remove \the [cell].")
+ var/turf/T = get_turf(user)
+ cell.forceMove(T)
+ cell.update_icon()
+ cell = null
+ charging = APC_NOT_CHARGING
+ update_icon()
return
else
switch (has_electronics)
@@ -745,7 +746,7 @@
user.put_in_hands(cell)
cell.update_icon()
src.cell = null
- charging = 0
+ charging = APC_NOT_CHARGING
src.update_icon()
return
if((stat & MAINT) && !opened) //no board; no interface
@@ -888,7 +889,7 @@
if("charge")
chargemode = !chargemode
if(!chargemode)
- charging = 0
+ charging = APC_NOT_CHARGING
update_icon()
. = TRUE
if("channel")
@@ -1125,10 +1126,10 @@
if((cell.charge/GLOB.CELLRATE + excess) >= lastused_total) // can we draw enough from cell+grid to cover last usage?
cell.charge = min(cell.maxcharge, cell.charge + GLOB.CELLRATE * excess) //recharge with what we can
add_load(excess) // so draw what we can from the grid
- charging = 0
+ charging = APC_NOT_CHARGING
else // not enough power available to run the last tick!
- charging = 0
+ charging = APC_NOT_CHARGING
chargecount = 0
// This turns everything off in the case that there is still a charge left on the battery, just not enough to run the room.
equipment = autoset(equipment, 0)
@@ -1168,7 +1169,7 @@
area.poweralert(1, src)
// now trickle-charge the cell
- if(chargemode && charging == 1 && operating)
+ if(chargemode && charging == APC_CHARGING && operating)
if(excess > 0) // check to make sure we have enough to charge
// Max charge is capped to % per second constant
var/ch = min(excess*GLOB.CELLRATE, cell.maxcharge*GLOB.CHARGELEVEL)
@@ -1176,13 +1177,13 @@
cell.give(ch) // actually recharge the cell
else
- charging = 0 // stop charging
+ charging = APC_NOT_CHARGING // stop charging
chargecount = 0
// show cell as fully charged if so
if(cell.charge >= cell.maxcharge)
cell.charge = cell.maxcharge
- charging = 2
+ charging = APC_FULLY_CHARGED
if(chargemode)
if(!charging)
@@ -1194,7 +1195,7 @@
if(chargecount == 10)
chargecount = 0
- charging = 1
+ charging = APC_CHARGING
else // chargemode off
charging = 0
@@ -1202,7 +1203,7 @@
else // no cell, switch everything off
- charging = 0
+ charging = APC_NOT_CHARGING
chargecount = 0
equipment = autoset(equipment, 0)
lighting = autoset(lighting, 0)
@@ -1358,6 +1359,10 @@
#undef APC_COVER_OPENED
#undef APC_COVER_REMOVED
+#undef APC_NOT_CHARGING
+#undef APC_CHARGING
+#undef APC_FULLY_CHARGED
+
//update_overlay
#undef APC_UPOVERLAY_CHARGEING0
#undef APC_UPOVERLAY_CHARGEING1