diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm
index 3dfc9e4a502..16a492ef5ab 100644
--- a/code/game/objects/items/weapons/storage/boxes.dm
+++ b/code/game/objects/items/weapons/storage/boxes.dm
@@ -595,14 +595,20 @@
new /obj/item/ammo_casing/shotgun/beanbag(src)
new /obj/item/ammo_casing/shotgun/beanbag(src)
+#define NODESIGN "None"
+#define NANOTRASEN "NanotrasenStandard"
+#define SYNDI "SyndiSnacks"
+#define HEART "Heart"
+#define SMILE "SmileyFace"
+
/obj/item/weapon/storage/box/papersack
name = "paper sack"
desc = "A sack neatly crafted out of paper."
- icon_state = "paperbag"
- item_state = "paperbag"
+ icon_state = "paperbag_None"
+ item_state = "paperbag_None"
burn_state = FLAMMABLE
foldable = null
- var/design = 0 /* 0 = No design, 1 = Nanotrasen Standard, 2 = Syndisnacks, 3 = Heart, 4 = Smiley Face */
+ var/design = NODESIGN
/obj/item/weapon/storage/box/papersack/update_icon()
if(contents.len == 0)
@@ -615,46 +621,46 @@
if(contents.len)
user << "You can't modify this [src] with items still inside!"
return
- var/list/designs = list("None", "Nanotrasen Standard", "SyndiSnacks", "Heart", "Smiley Face", "Cancel")
- var/switchDesign = input("Select a Design:", "Paper Sack Design", designs[design + 1]) in designs
+ var/list/designs = list(NODESIGN, NANOTRASEN, SYNDI, HEART, SMILE, "Cancel")
+ var/switchDesign = input("Select a Design:", "Paper Sack Design", designs[1]) in designs
if(get_dist(usr, src) > 1)
usr << "You have moved too far away!"
return
- design = designs.Find(switchDesign) - 1
- if(design < 5)
- usr << "You make some modifications to the [src] using your pen."
- switch(design)
- if(0)
- icon_state = "paperbag"
- item_state = "paperbag"
+ var/choice = designs.Find(switchDesign)
+ if(design == designs[choice] || designs[choice] == "Cancel")
+ return 0
+ usr << "You make some modifications to the [src] using your pen."
+ design = designs[choice]
+ icon_state = "paperbag_[design]"
+ item_state = "paperbag_[design]"
+ switch(designs[choice])
+ if(NODESIGN)
desc = "A sack neatly crafted out of paper."
- if(1)
- icon_state = "paperbag_nt"
- item_state = "paperbag_nt"
- desc = "A Nanotrasen standard paper lunch sack for loyal employees on the go."
- if(2)
- icon_state = "paperbag_syndi"
- item_state = "paperbag_syndi"
- desc = "The design on this paper sack is a remnant of the secrative 'SydiSnacks' program."
- if(3)
- icon_state = "paperbag_heart"
- item_state = "paperbag_heart"
+ if(NANOTRASEN)
+ desc = "A standard Nanotrasen paper lunch sack for loyal employees on the go."
+ if(SYNDI)
+ desc = "The design on this paper sack is a remnant of the secrative 'SyndieSnacks' program."
+ if(HEART)
desc = "A paper sack with a heart etched onto the side."
- if(4)
- icon_state = "paperbag_smile"
- item_state = "paperbag_smile"
+ if(SMILE)
desc = "A paper sack with a crude smile etched onto the side."
return 0
else if(W.is_sharp())
if(!contents.len)
- if(item_state == "paperbag")
+ if(item_state == "paperbag_None")
user.show_message("You cut eyeholes into the [src].", 1)
new /obj/item/clothing/head/papersack(user.loc)
qdel(src)
return 0
- else if(item_state == "paperbag_smile")
+ else if(item_state == "paperbag_SmileyFace")
user.show_message("You cut eyeholes into the [src] and modify the design.", 1)
new /obj/item/clothing/head/papersack/smiley(user.loc)
qdel(src)
return 0
return ..()
+
+#undef NODESIGN
+#undef NANOTRASEN
+#undef SYNDI
+#undef HEART
+#undef SMILE
diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi
index 63ebd420114..c41513cc686 100644
Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ