From a9df0e64bf2c43d005bbe989119137f84494525b Mon Sep 17 00:00:00 2001 From: CaelAislinn Date: Wed, 8 Feb 2012 02:07:10 +1000 Subject: [PATCH] fixed autolathe perma-freeze bug, also fixed some icon states. Signed-off-by: CaelAislinn --- code/game/machinery/autolathe.dm | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index 7c42b3e24f4..45fd5e8d9d7 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -81,13 +81,13 @@ stack.use(amount) else usr.before_take_item(O) + flick("autolathe_o",src)//plays metal insertion animation O.loc = src icon_state = "autolathe" busy = 1 use_power(max(1000, (m_amt+g_amt)*amount/10)) spawn(16) icon_state = "autolathe" - flick("autolathe_o",src) src.m_amount += m_amt * amount src.g_amount += g_amt * amount if (O && O.loc == src) @@ -185,12 +185,13 @@ usr << "\red The autolathe is busy. Please wait for completion of previous operation." if (!busy) if(href_list["make"]) - while(outputAmount > 0) - var/turf/T = src.loc - var/obj/template = locate(href_list["make"]) - var/multiplier = text2num(href_list["multiplier"]) - if (!multiplier) multiplier = 1 - var/power = max(2000, (template.m_amt+template.g_amt)*multiplier/5) + var/turf/T = src.loc + var/obj/template = locate(href_list["make"]) + var/multiplier = text2num(href_list["multiplier"]) + if (!multiplier) multiplier = 1 + var/power = max(2000, (template.m_amt+template.g_amt)*multiplier/5) + restart: + if(outputAmount > 0) if( (src.m_amount >= template.m_amt*multiplier) && (src.g_amount >= template.g_amt*multiplier) ) use_power(power) icon_state = "autolathe" @@ -224,9 +225,12 @@ src.updateUsrDialog() outputAmount -= 1 busy = 0 + goto restart else - outputAmount = 1 - break + for(var/mob/M in view(3,src)) + M << "\red\icon[src] has run out of materials." + else + outputAmount = 1 if(href_list["act"]) var/temp_wire = href_list["wire"] if(href_list["act"] == "pulse")