From 6245d00a4d1432b936f1d3d33c63e9038a858ef7 Mon Sep 17 00:00:00 2001 From: Tkdrg Date: Sat, 8 Feb 2014 18:22:56 -0300 Subject: [PATCH] Now with 100% more procs! --- code/game/objects/items/weapons/storage/bags.dm | 4 +--- code/game/objects/items/weapons/storage/boxes.dm | 9 ++------- code/game/objects/items/weapons/storage/storage.dm | 12 +++++++++--- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm index 74e64e98eaa..5bf51c920a0 100644 --- a/code/game/objects/items/weapons/storage/bags.dm +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -102,9 +102,7 @@ set desc = "Activate to convert your plants into plantable seeds." for(var/obj/item/O in contents) seedify(O, 1) - for(var/mob/M in range(1)) - if (M.s_active == src) - src.close(M) + close_all() // ----------------------------- diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 0a837ca54ff..4c16588bf55 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -38,13 +38,8 @@ return //Close any open UI windows first - var/found = 0 - for(var/mob/M in range(1)) - if(M.s_active == src) - close(M) - if(M == user) - found = 1 - if(!found) //User is too far away + var/found = close_all() + if(!found) //No user had any windows closed return user << "You fold [src] flat." diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index 69c037c876f..ea748b6e929 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -95,6 +95,14 @@ user.s_active = null +/obj/item/weapon/storage/proc/close_all() //returns 1 if any mobs actually got a close(M) call + var/actually_closed = 0 + for(var/mob/M in range(1)) + if(M.s_active == src) + close(M) + actually_closed = 1 + return actually_closed + //This proc draws out the inventory and places the items on it. tx and ty are the upper left tile and mx, my are the bottm right. //The numbers are calculated from the bottom-left The bottom-left slot being 1,1. /obj/item/weapon/storage/proc/orient_objs(tx, ty, mx, my) @@ -400,9 +408,7 @@ /obj/item/weapon/storage/Del() - for(var/mob/M in range(1)) - if(M.s_active == src) - close(M) + close_all() ..()