diff --git a/code/__DEFINES/clothing.dm b/code/__DEFINES/clothing.dm index c11a9acb068..6e9734c1fa5 100644 --- a/code/__DEFINES/clothing.dm +++ b/code/__DEFINES/clothing.dm @@ -80,3 +80,9 @@ #define THERMAL_PROTECTION_ARM_RIGHT 0.075 #define THERMAL_PROTECTION_HAND_LEFT 0.025 #define THERMAL_PROTECTION_HAND_RIGHT 0.025 + +//flags for female outfits: How much the game can safely "take off" the uniform without it looking weird + +#define NO_FEMALE_UNIFORM 0 +#define FEMALE_UNIFORM_FULL 1 +#define FEMALE_UNIFORM_TOP 2 \ No newline at end of file diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 7ae4d730d3c..6c831dadf68 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -200,7 +200,7 @@ BLIND // can't see anything permeability_coefficient = 0.90 slot_flags = SLOT_ICLOTHING armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) - var/fitted = 1// For use in alternate clothing styles for women, if clothes vary from a jumpsuit in shape, set this to 0 + var/fitted = FEMALE_UNIFORM_FULL // For use in alternate clothing styles for women var/has_sensor = 1//For the crew computer 2 = unable to change mode var/sensor_mode = 0 var/can_adjust = 1 @@ -259,9 +259,9 @@ BLIND // can't see anything if(hastie) user << "\A [hastie] is attached to it." -atom/proc/generate_female_clothing(index,t_color,icon) +atom/proc/generate_female_clothing(index,t_color,icon,type) var/icon/female_clothing_icon = icon("icon"=icon, "icon_state"="[t_color]_s") - var/icon/female_s = icon("icon"='icons/mob/uniform.dmi', "icon_state"="female_s") + var/icon/female_s = icon("icon"='icons/mob/uniform.dmi', "icon_state"="[(type == FEMALE_UNIFORM_FULL) ? "female_full" : "female_top"]") female_clothing_icon.Blend(female_s, ICON_MULTIPLY) female_clothing_icon = fcopy_rsc(female_clothing_icon) female_clothing_icons[index] = female_clothing_icon @@ -317,11 +317,13 @@ atom/proc/generate_female_clothing(index,t_color,icon) usr << "You cannot wear this suit any differently." return if(src.adjusted == 1) + src.fitted = initial(fitted) src.item_color = initial(item_color) src.item_color = src.suit_color //colored jumpsuits are shit and break without this usr << "You adjust the suit back to normal." src.adjusted = 0 else + src.fitted = NO_FEMALE_UNIFORM src.item_color += "_d" usr << "You adjust the suit to wear it more casually." src.adjusted = 1 diff --git a/code/modules/clothing/under/jobs/civilian.dm b/code/modules/clothing/under/jobs/civilian.dm index b889b5b7329..9237f31d8f2 100644 --- a/code/modules/clothing/under/jobs/civilian.dm +++ b/code/modules/clothing/under/jobs/civilian.dm @@ -54,7 +54,7 @@ icon_state = "clown" item_state = "clown" item_color = "clown" - fitted = 0 + fitted = FEMALE_UNIFORM_TOP can_adjust = 0 @@ -128,7 +128,7 @@ icon_state = "lawyer_purp" item_state = "lawyer_purp" item_color = "lawyer_purp" - fitted = 0 + fitted = NO_FEMALE_UNIFORM can_adjust = 1 diff --git a/code/modules/clothing/under/jobs/medsci.dm b/code/modules/clothing/under/jobs/medsci.dm index 2b28a80e6f0..1536852a593 100644 --- a/code/modules/clothing/under/jobs/medsci.dm +++ b/code/modules/clothing/under/jobs/medsci.dm @@ -85,7 +85,7 @@ item_color = "nursesuit" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) - fitted = 0 + fitted = NO_FEMALE_UNIFORM can_adjust = 0 /obj/item/clothing/under/rank/medical diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index c40c2da16c8..049fab17adc 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -67,7 +67,7 @@ icon_state = "sexyclown" item_state = "sexyclown" item_color = "sexyclown" - fitted = 0 + fitted = FEMALE_UNIFORM_TOP can_adjust = 0 /obj/item/clothing/under/rank/vice @@ -131,7 +131,6 @@ desc = "A jumpsuit with owl wings. Photorealistic owl feathers! Twooooo!" icon_state = "owl" item_color = "owl" - fitted = 0 can_adjust = 0 /obj/item/clothing/under/rainbow @@ -242,7 +241,7 @@ icon_state = "blackskirt" item_color = "blackskirt" body_parts_covered = CHEST|GROIN|ARMS - fitted = 0 + fitted = FEMALE_UNIFORM_TOP can_adjust = 0 /obj/item/clothing/under/schoolgirl @@ -252,7 +251,7 @@ item_state = "schoolgirl" item_color = "schoolgirl" body_parts_covered = CHEST|GROIN|ARMS - fitted = 0 + fitted = FEMALE_UNIFORM_TOP can_adjust = 0 /obj/item/clothing/under/schoolgirl/red @@ -312,7 +311,7 @@ item_state = "kilt" item_color = "kilt" body_parts_covered = CHEST|GROIN|FEET - fitted = 0 + fitted = FEMALE_UNIFORM_TOP can_adjust = 0 /obj/item/clothing/under/sexymime @@ -322,7 +321,7 @@ item_state = "sexymime" item_color = "sexymime" body_parts_covered = CHEST|GROIN|LEGS - fitted = 0 + fitted = FEMALE_UNIFORM_TOP can_adjust = 0 /obj/item/clothing/under/gladiator @@ -332,7 +331,7 @@ item_state = "gladiator" item_color = "gladiator" body_parts_covered = CHEST|GROIN|ARMS - fitted = 0 + fitted = NO_FEMALE_UNIFORM can_adjust = 0 /obj/item/clothing/under/sundress @@ -342,7 +341,7 @@ item_state = "sundress" item_color = "sundress" body_parts_covered = CHEST|GROIN - fitted = 0 + fitted = FEMALE_UNIFORM_TOP can_adjust = 0 /obj/item/clothing/under/captainparade @@ -367,7 +366,7 @@ icon_state = "hos_parade_fem" item_state = "r_suit" item_color = "hos_parade_fem" - fitted = 0 + fitted = FEMALE_UNIFORM_TOP can_adjust = 0 /obj/item/clothing/under/assistantformal @@ -384,7 +383,7 @@ icon_state = "black_tango" item_state = "wcoat" item_color = "black_tango" - fitted = 0 + fitted = FEMALE_UNIFORM_TOP can_adjust = 0 /obj/item/clothing/under/stripeddress @@ -393,7 +392,7 @@ icon_state = "striped_dress" item_state = "stripeddress" item_color = "striped_dress" - fitted = 0 + fitted = FEMALE_UNIFORM_FULL can_adjust = 0 /obj/item/clothing/under/sailordress @@ -402,7 +401,7 @@ icon_state = "sailor_dress" item_state = "sailordress" item_color = "sailor_dress" - fitted = 0 + fitted = FEMALE_UNIFORM_TOP can_adjust = 0 /obj/item/clothing/under/redeveninggown @@ -411,7 +410,7 @@ icon_state = "red_evening_gown" item_state = "redeveninggown" item_color = "red_evening_gown" - fitted = 0 + fitted = FEMALE_UNIFORM_TOP can_adjust = 0 /obj/item/clothing/under/maid @@ -421,7 +420,7 @@ item_state = "maid" item_color = "maid" body_parts_covered = CHEST|GROIN - fitted = 0 + fitted = FEMALE_UNIFORM_TOP can_adjust = 0 /obj/item/clothing/under/janimaid @@ -431,7 +430,7 @@ item_state = "janimaid" item_color = "janimaid" body_parts_covered = CHEST|GROIN - fitted = 0 + fitted = FEMALE_UNIFORM_TOP can_adjust = 0 /obj/item/clothing/under/plaid_skirt @@ -440,7 +439,7 @@ icon_state = "plaid_red" item_state = "plaid_red" item_color = "plaid_red" - fitted = 0 + fitted = FEMALE_UNIFORM_TOP can_adjust = 0 /obj/item/clothing/under/plaid_skirt/blue @@ -455,4 +454,4 @@ desc = "A preppy purple skirt with a white blouse." icon_state = "plaid_purple" item_state = "plaid_purple" - item_color = "plaid_purple" \ No newline at end of file + item_color = "plaid_purple" diff --git a/code/modules/clothing/under/pants.dm b/code/modules/clothing/under/pants.dm index 15e4aa194a5..71634632206 100644 --- a/code/modules/clothing/under/pants.dm +++ b/code/modules/clothing/under/pants.dm @@ -1,7 +1,7 @@ /obj/item/clothing/under/pants gender = PLURAL body_parts_covered = GROIN|LEGS - fitted = 0 + fitted = NO_FEMALE_UNIFORM can_adjust = 0 /obj/item/clothing/under/pants/classicjeans diff --git a/code/modules/clothing/under/shorts.dm b/code/modules/clothing/under/shorts.dm index 1fb22fcd9a8..23e98a040c6 100644 --- a/code/modules/clothing/under/shorts.dm +++ b/code/modules/clothing/under/shorts.dm @@ -3,7 +3,7 @@ desc = "95% Polyester, 5% Spandex!" gender = PLURAL body_parts_covered = GROIN - fitted = 0 + fitted = NO_FEMALE_UNIFORM can_adjust = 0 /obj/item/clothing/under/shorts/red diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 4894572e2fc..664ae97b833 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -262,8 +262,8 @@ Please contact me on #coderbus IRC. ~Carnie x if(dna && dna.species.sexes) var/G = (gender == FEMALE) ? "f" : "m" - if(G == "f" && U.fitted == 1) - standing = wear_female_version(t_color, 'icons/mob/uniform.dmi', UNIFORM_LAYER) + if(G == "f" && U.fitted != NO_FEMALE_UNIFORM) + standing = wear_female_version(t_color, 'icons/mob/uniform.dmi', UNIFORM_LAYER, U.fitted) overlays_standing[UNIFORM_LAYER] = standing if(w_uniform.blood_DNA) @@ -562,11 +562,11 @@ Please contact me on #coderbus IRC. ~Carnie x apply_overlay(L_HAND_LAYER) -/mob/living/carbon/human/proc/wear_female_version(t_color, icon, layer) +/mob/living/carbon/human/proc/wear_female_version(t_color, icon, layer, type) var/index = "[t_color]_s" var/icon/female_clothing_icon = female_clothing_icons[index] if(!female_clothing_icon) //Create standing/laying icons if they don't exist - generate_female_clothing(index,t_color,icon) + generate_female_clothing(index,t_color,icon,type) var/standing = image("icon"=female_clothing_icons["[t_color]_s"], "layer"=-layer) return(standing) diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index 871cda93fdc..efcb1eb63f0 100644 Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ