From 88eef20b6922fe987fd1f9a8cd830a75bf5e9329 Mon Sep 17 00:00:00 2001 From: MrStonedOne Date: Mon, 9 Nov 2015 14:35:16 -0800 Subject: [PATCH] Fixes smartfridges once and for all. --- .../kitchen machinery/smartfridge.dm | 63 +++++++++---------- 1 file changed, 29 insertions(+), 34 deletions(-) diff --git a/code/modules/food&drinks/kitchen machinery/smartfridge.dm b/code/modules/food&drinks/kitchen machinery/smartfridge.dm index 768688b5490..37f51d60d15 100644 --- a/code/modules/food&drinks/kitchen machinery/smartfridge.dm +++ b/code/modules/food&drinks/kitchen machinery/smartfridge.dm @@ -16,7 +16,6 @@ var/max_n_of_items = 1500 var/icon_on = "smartfridge" var/icon_off = "smartfridge-off" - var/list/item_quants = list() /obj/machinery/smartfridge/New() ..() @@ -26,7 +25,6 @@ RefreshParts() /obj/machinery/smartfridge/construction() - item_quants.Cut() for(var/datum/A in contents) qdel(A) @@ -134,13 +132,6 @@ S.remove_from_storage(O,src) O.loc = src - var/n ="\ref[O]" - - if(item_quants[n]) - item_quants[n]++ - else - item_quants[n] = 1 - sortList(item_quants) /obj/machinery/smartfridge/attack_paw(mob/user) return src.attack_hand(user) @@ -165,24 +156,32 @@ if (contents.len == 0) dat += "No product loaded!" else - for (var/O in item_quants) - if(item_quants[O] > 0) - var/N = item_quants[O] - var/obj/item/item = locate(O) - var/obj/item/itemName = sanitize(item.name) - dat += "[capitalize(itemName)]:" - dat += " [N] " - dat += "Vend " - if(N > 5) - dat += "(x5)" - if(N > 10) - dat += "(x10)" - if(N > 25) - dat += "(x25)" - if(N > 1) - dat += "(All)" + var/listofitems = list() + for (var/atom/movable/O in contents) + if (listofitems[O.name]) + listofitems[O.name]++ + else + listofitems[O.name] = 1 + sortList(listofitems) - dat += "
" + for (var/O in listofitems) + if(listofitems[O] <= 0) + continue + var/N = listofitems[O] + var/itemName = url_encode(O) + dat += "[capitalize(O)]:" + dat += " [N] " + dat += "Vend " + if(N > 5) + dat += "(x5)" + if(N > 10) + dat += "(x10)" + if(N > 25) + dat += "(x25)" + if(N > 1) + dat += "(All)" + + dat += "
" dat += "" user << browse("[src] supplies[dat]", "window=smartfridge") @@ -197,18 +196,14 @@ var/N = href_list["vend"] var/amount = text2num(href_list["amount"]) - if(item_quants[N] <= 0) // Sanity check, there are probably ways to press the button when it shouldn't be possible. - return - - item_quants[N] = max(item_quants[N] - amount, 0) - var/i = amount for(var/obj/O in contents) - if(locate(N) == O) + if(i <= 0) + break + if(O.name == N) O.loc = src.loc i-- - if(i <= 0) - break + updateUsrDialog()