diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index 3783a5c208..4b178cc738 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -493,6 +493,9 @@
valid_accessory_slots = list("over", "armband")
restricted_accessory_slots = list("armband")
+ var/icon/rolled_down_icon = 'icons/mob/uniform_rolled_down.dmi'
+ var/icon_roll_down_sleeves_icon = 'icons/mob/uniform_sleeves_rolled.dmi'
+
/obj/item/clothing/suit/update_clothing_icon()
if (ismob(src.loc))
var/mob/M = src.loc
@@ -535,6 +538,9 @@
valid_accessory_slots = list("utility","armband","decor","over")
restricted_accessory_slots = list("utility", "armband")
+ var/icon/rolled_down_icon = 'icons/mob/uniform_rolled_down.dmi'
+ var/rolled_down_sleeves_icon = 'icons/mob/uniform_sleeves_rolled.dmi'
+
/obj/item/clothing/under/attack_hand(var/mob/user)
if(accessories && accessories.len)
@@ -554,7 +560,7 @@
//autodetect rollability
if(rolled_down < 0)
- if((worn_state + "_d_s") in icon_states('icons/mob/uniform.dmi'))
+ if((worn_state) in icon_states(rolled_down_icon))
rolled_down = 0
/obj/item/clothing/under/proc/update_rolldown_status()
@@ -570,10 +576,10 @@
else if(item_icons && item_icons[slot_w_uniform_str])
under_icon = item_icons[slot_w_uniform_str]
else
- under_icon = INV_W_UNIFORM_DEF_ICON
+ under_icon = rolled_down_icon
// The _s is because the icon update procs append it.
- if(("[worn_state]_d_s") in icon_states(under_icon))
+ if((under_icon == rolled_down_icon && "[worn_state]_s" in icon_states(under_icon)) || ("[worn_state]_d_s" in icon_states(under_icon)))
if(rolled_down != 1)
rolled_down = 0
else
@@ -593,10 +599,10 @@
else if(item_icons && item_icons[slot_w_uniform_str])
under_icon = item_icons[slot_w_uniform_str]
else
- under_icon = INV_W_UNIFORM_DEF_ICON
+ under_icon = rolled_down_sleeves_icon
// The _s is because the icon update procs append it.
- if(("[worn_state]_r_s") in icon_states(under_icon))
+ if((under_icon == rolled_down_sleeves_icon && "[worn_state]_s" in icon_states(under_icon)) || ("[worn_state]_r_s" in icon_states(under_icon)))
if(rolled_sleeves != 1)
rolled_sleeves = 0
else
@@ -678,10 +684,12 @@
if(rolled_down)
body_parts_covered = initial(body_parts_covered)
body_parts_covered &= ~(UPPER_TORSO|ARMS)
- item_state_slots[slot_w_uniform_str] = "[worn_state]_d"
+ icon_override = rolled_down_icon
+ item_state_slots[slot_w_uniform_str] = "[worn_state]"
usr << "You roll down your [src]."
else
body_parts_covered = initial(body_parts_covered)
+ icon_override = initial(icon_override)
item_state_slots[slot_w_uniform_str] = "[worn_state]"
usr << "You roll up your [src]."
update_clothing_icon()
@@ -704,10 +712,12 @@
rolled_sleeves = !rolled_sleeves
if(rolled_sleeves)
body_parts_covered &= ~(ARMS)
- item_state_slots[slot_w_uniform_str] = "[worn_state]_r"
+ icon_override = rolled_down_sleeves_icon
+ item_state_slots[slot_w_uniform_str] = "[worn_state]"
usr << "You roll up your [src]'s sleeves."
else
body_parts_covered = initial(body_parts_covered)
+ icon_override = initial(icon_override)
item_state_slots[slot_w_uniform_str] = "[worn_state]"
usr << "You roll down your [src]'s sleeves."
update_clothing_icon()
diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi
index 3bac93b933..4e364fdb48 100644
Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ
diff --git a/icons/mob/uniform_huge_old.dmi b/icons/mob/uniform_huge_old.dmi
new file mode 100644
index 0000000000..3bac93b933
Binary files /dev/null and b/icons/mob/uniform_huge_old.dmi differ
diff --git a/icons/mob/uniform_rolled_down.dmi b/icons/mob/uniform_rolled_down.dmi
new file mode 100644
index 0000000000..5c279a84fd
Binary files /dev/null and b/icons/mob/uniform_rolled_down.dmi differ
diff --git a/icons/mob/uniform_sleeves_rolled.dmi b/icons/mob/uniform_sleeves_rolled.dmi
new file mode 100644
index 0000000000..6411e430c8
Binary files /dev/null and b/icons/mob/uniform_sleeves_rolled.dmi differ
diff --git a/tools/IconSplitter/DmiToSplit.dmi b/tools/IconSplitter/DmiToSplit.dmi
index c2258efcc4..cf74d73796 100644
Binary files a/tools/IconSplitter/DmiToSplit.dmi and b/tools/IconSplitter/DmiToSplit.dmi differ