diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm index 7ad5041344..d33d9fe4f5 100644 --- a/code/__DEFINES/inventory.dm +++ b/code/__DEFINES/inventory.dm @@ -126,7 +126,9 @@ //flags for alternate styles: These are hard sprited so don't set this if you didn't put the effort in #define NORMAL_STYLE 0 #define ALT_STYLE 1 -#define DIGITIGRADE_STYLE 2 + +#define NORMAL_SUIT_STYLE 0 +#define DIGITIGRADE_SUIT_STYLE 1 //flags for outfits that have mutantrace variants (try not to use this): Currently only needed if you're trying to add tight fitting bootyshorts #define NO_MUTANTRACE_VARIATION 0 diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 54aea7f641..296abf8024 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -51,6 +51,8 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) var/interaction_flags_item = INTERACT_ITEM_ATTACK_HAND_PICKUP + var/mutantrace_variation = NO_MUTANTRACE_VARIATION //Are there special sprites for specific situations? Don't use this unless you need to. + var/item_color = null //this needs deprecating, soonish var/body_parts_covered = 0 //see setup.dm for appropriate bit flags diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index b9ce170dc5..1e65c6ca3f 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -248,9 +248,8 @@ BLIND // can't see anything H.update_body() /obj/item/clothing/under/proc/toggle_jumpsuit_adjust() - if(adjusted == DIGITIGRADE_STYLE) - return adjusted = !adjusted + if(adjusted) if(fitted != FEMALE_UNIFORM_TOP) fitted = NO_FEMALE_UNIFORM @@ -260,6 +259,7 @@ BLIND // can't see anything fitted = initial(fitted) if(!alt_covers_chest) body_parts_covered |= CHEST + return adjusted /obj/item/clothing/proc/weldingvisortoggle(mob/user) //proc to toggle welding visors on helmets, masks, goggles, etc. diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm index 4d037d652b..8883919e38 100644 --- a/code/modules/clothing/under/_under.dm +++ b/code/modules/clothing/under/_under.dm @@ -11,10 +11,11 @@ var/sensor_mode = NO_SENSORS var/can_adjust = TRUE var/adjusted = NORMAL_STYLE + var/suit_style = NORMAL_SUIT_STYLE var/alt_covers_chest = FALSE // for adjusted/rolled-down jumpsuits, FALSE = exposes chest and arms, TRUE = exposes arms only var/obj/item/clothing/accessory/attached_accessory var/mutable_appearance/accessory_overlay - var/mutantrace_variation = NO_MUTANTRACE_VARIATION //Are there special sprites for specific situations? Don't use this unless you need to. + mutantrace_variation = MUTANTRACE_VARIATION //Are there special sprites for specific situations? Don't use this unless you need to. /obj/item/clothing/under/worn_overlays(isinhands = FALSE) . = list() @@ -49,6 +50,7 @@ //make the sensor mode favor higher levels, except coords. sensor_mode = pick(SENSOR_OFF, SENSOR_LIVING, SENSOR_LIVING, SENSOR_VITALS, SENSOR_VITALS, SENSOR_VITALS, SENSOR_COORDS, SENSOR_COORDS) adjusted = NORMAL_STYLE + suit_style = NORMAL_SUIT_STYLE ..() /obj/item/clothing/under/equipped(mob/user, slot) @@ -62,7 +64,7 @@ if(mutantrace_variation && ishuman(user)) var/mob/living/carbon/human/H = user if(DIGITIGRADE in H.dna.species.species_traits) - adjusted = DIGITIGRADE_STYLE + suit_style = DIGITIGRADE_SUIT_STYLE H.update_inv_w_uniform() if(attached_accessory && slot != SLOT_HANDS && ishuman(user)) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 5a37007271..d6999ff5a4 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -628,8 +628,12 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(!(DIGITIGRADE in species_traits)) //Someone cut off a digitigrade leg and tacked it on species_traits += DIGITIGRADE var/should_be_squished = FALSE - if(H.wear_suit && ((H.wear_suit.flags_inv & HIDEJUMPSUIT) || (H.wear_suit.body_parts_covered & LEGS)) || (H.w_uniform && (H.w_uniform.body_parts_covered & LEGS))) - should_be_squished = TRUE + if(H.wear_suit) + if((H.wear_suit.flags_inv & HIDEJUMPSUIT) || ((H.wear_suit.body_parts_covered & LEGS) && (H.wear_suit.body_parts_covered & FEET))) + should_be_squished = TRUE + if(H.w_uniform && !H.wear_suit) + if(H.w_uniform.mutantrace_variation == NO_MUTANTRACE_VARIATION) + should_be_squished = TRUE if(O.use_digitigrade == FULL_DIGITIGRADE && should_be_squished) O.use_digitigrade = SQUISHED_DIGITIGRADE update_needed = TRUE diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 9388a5d5f3..cdc5259849 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -119,10 +119,17 @@ There are several things that need to be remembered: var/t_color = U.item_color if(!t_color) t_color = U.icon_state - if(U.adjusted == ALT_STYLE) - t_color = "[t_color]_d" - else if(U.adjusted == DIGITIGRADE_STYLE) - t_color = "[t_color]_l" + if(U.suit_style == NORMAL_SUIT_STYLE) + if(U.adjusted == ALT_STYLE) + t_color = "[t_color]_d" + + if(U.mutantrace_variation) + if(U.suit_style == DIGITIGRADE_SUIT_STYLE) + U.alternate_worn_icon = 'icons/mob/uniform_digi.dmi' + if(U.adjusted == ALT_STYLE) + t_color = "[t_color]_d_l" + else if(U.adjusted == NORMAL_STYLE) + t_color = "[t_color]_l" var/mutable_appearance/uniform_overlay diff --git a/code/modules/surgery/bodyparts/helpers.dm b/code/modules/surgery/bodyparts/helpers.dm index 1921f68165..f7d4d063bc 100644 --- a/code/modules/surgery/bodyparts/helpers.dm +++ b/code/modules/surgery/bodyparts/helpers.dm @@ -294,9 +294,9 @@ var/obj/item/clothing/under/U = H.w_uniform if(U.mutantrace_variation) if(swap_back) - U.adjusted = NORMAL_STYLE + U.suit_style = NORMAL_SUIT_STYLE else - U.adjusted = DIGITIGRADE_STYLE + U.suit_style = DIGITIGRADE_SUIT_STYLE H.update_inv_w_uniform() if(H.shoes && !swap_back) H.dropItemToGround(H.shoes) diff --git a/icons/mob/uniform_digi.dmi b/icons/mob/uniform_digi.dmi new file mode 100644 index 0000000000..8d0fd2e62b Binary files /dev/null and b/icons/mob/uniform_digi.dmi differ diff --git a/modular_citadel/code/modules/clothing/under/polychromic_clothes.dm b/modular_citadel/code/modules/clothing/under/polychromic_clothes.dm index abf8793f79..c0f7a5d639 100644 --- a/modular_citadel/code/modules/clothing/under/polychromic_clothes.dm +++ b/modular_citadel/code/modules/clothing/under/polychromic_clothes.dm @@ -27,6 +27,8 @@ secondary_color = "#FFFFFF" tertiary_color = "#808080" can_adjust = FALSE + mutantrace_variation = NO_MUTANTRACE_VARIATION // because I'm too lazy to port these to digi-compatible and to prove a point from /tg/ whining - Pooj + suit_style = NORMAL_SUIT_STYLE /obj/item/clothing/under/polychromic/worn_overlays(isinhands, icon_file) //this is where the main magic happens. Also mandates that ALL polychromic stuff MUST USE alternate_worn_icon . = ..() @@ -63,7 +65,8 @@ item_state = "kilt" primary_color = "#FFFFFF" //RGB in hexcode secondary_color = "#F08080" - tertiary_color = "#808080" + hastertiary = FALSE // so it doesn't futz with digilegs + body_parts_covered = CHEST|GROIN|ARMS /obj/item/clothing/under/polychromic/skirt name = "polychromic skirt" @@ -74,6 +77,7 @@ primary_color = "#FFFFFF" //RGB in hexcode secondary_color = "#F08080" tertiary_color = "#808080" + body_parts_covered = CHEST|GROIN|ARMS /obj/item/clothing/under/polychromic/shorts name = "polychromic shorts" @@ -84,6 +88,7 @@ primary_color = "#353535" //RGB in hexcode secondary_color = "#808080" tertiary_color = "#808080" + body_parts_covered = CHEST|GROIN|ARMS /obj/item/clothing/under/polychromic/jumpsuit name = "polychromic tri-tone jumpsuit" @@ -116,6 +121,7 @@ primary_color = "#8CC6FF" //RGB in hexcode secondary_color = "#808080" tertiary_color = "#FF3535" + body_parts_covered = CHEST|GROIN|ARMS /obj/item/clothing/under/polychromic/femtank name = "polychromic feminine tank top" @@ -126,6 +132,7 @@ hastertiary = FALSE primary_color = "#808080" //RGB in hexcode secondary_color = "#FF3535" + body_parts_covered = CHEST|GROIN|ARMS /obj/item/clothing/under/polychromic/shortpants/pantsu name = "polychromic panties" @@ -136,6 +143,7 @@ hastertiary = FALSE primary_color = "#FFFFFF" //RGB in hexcode secondary_color = "#8CC6FF" + body_parts_covered = GROIN /obj/item/clothing/under/polychromic/bottomless name = "polychromic bottomless shirt" @@ -146,7 +154,7 @@ hastertiary = FALSE primary_color = "#808080" //RGB in hexcode secondary_color = "#FF3535" - body_parts_covered = CHEST //Because there's no bottom included + body_parts_covered = CHEST|ARMS //Because there's no bottom included /obj/item/clothing/under/polychromic/shimatank name = "polychromic tank top" @@ -156,4 +164,5 @@ item_state = "rainbow" primary_color = "#808080" //RGB in hexcode secondary_color = "#FFFFFF" - tertiary_color = "#8CC6FF" \ No newline at end of file + tertiary_color = "#8CC6FF" + body_parts_covered = CHEST|GROIN \ No newline at end of file diff --git a/modular_citadel/code/modules/clothing/under/trek_under.dm b/modular_citadel/code/modules/clothing/under/trek_under.dm index fb5adf3b59..8abe564176 100644 --- a/modular_citadel/code/modules/clothing/under/trek_under.dm +++ b/modular_citadel/code/modules/clothing/under/trek_under.dm @@ -15,6 +15,7 @@ alternate_worn_icon = 'modular_citadel/icons/mob/clothing/trek_mob_icon.dmi' item_state = "" can_adjust = FALSE //to prevent you from "wearing it casually" + mutantrace_variation = NO_MUTANTRACE_VARIATION //TOS /obj/item/clothing/under/rank/trek/command diff --git a/modular_citadel/code/modules/clothing/under/turtlenecks.dm b/modular_citadel/code/modules/clothing/under/turtlenecks.dm index 2d5efcb2b1..f4e1ba8bd9 100644 --- a/modular_citadel/code/modules/clothing/under/turtlenecks.dm +++ b/modular_citadel/code/modules/clothing/under/turtlenecks.dm @@ -16,11 +16,12 @@ armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0) can_adjust = TRUE alt_covers_chest = TRUE + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/structure/closet/secure_closet/CMO/PopulateContents() //This is placed here because it's a very specific addition for a very specific niche ..() new /obj/item/clothing/under/rank/chief_medical_officer/turtleneck(src) - + /obj/item/clothing/under/syndicate/cosmetic name = "tactitool turtleneck" desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-." @@ -28,11 +29,12 @@ item_state = "bl_suit" item_color = "tactifool" has_sensor = TRUE + mutantrace_variation = NO_MUTANTRACE_VARIATION armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) - + /obj/item/clothing/under/syndicate/tacticool has_sensor = TRUE - + // Sweaters are good enough for this category too. /obj/item/clothing/under/bb_sweater @@ -45,6 +47,7 @@ can_adjust = 1 icon = 'modular_citadel/icons/obj/clothing/turtlenecks.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/bb_sweater/black name = "black sweater" diff --git a/modular_citadel/code/modules/clothing/under/under.dm b/modular_citadel/code/modules/clothing/under/under.dm index e4d521771a..1796df01be 100644 --- a/modular_citadel/code/modules/clothing/under/under.dm +++ b/modular_citadel/code/modules/clothing/under/under.dm @@ -13,6 +13,7 @@ alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' item_state = "r_suit" item_color = "secskirt" + body_parts_covered = CHEST|GROIN|ARMS /obj/item/clothing/under/rank/head_of_security/skirt name = "head of security's skirt" @@ -22,6 +23,7 @@ alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' item_state = "gy_suit" item_color = "hosskirt" + body_parts_covered = CHEST|GROIN|ARMS /obj/item/clothing/under/corporateuniform name = "corporate uniform" @@ -31,7 +33,8 @@ alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' item_state = "r_suit" can_adjust = FALSE - + mutantrace_variation = NO_MUTANTRACE_VARIATION + /obj/item/clothing/under/rank/captain/femformal name ="captain's female formal outfit" desc = "" @@ -43,3 +46,4 @@ can_adjust = FALSE sensor_mode = SENSOR_COORDS //it's still a captain's suit nerd random_sensor = FALSE + mutantrace_variation = NO_MUTANTRACE_VARIATION diff --git a/modular_citadel/icons/polyclothes/item/uniform.dmi b/modular_citadel/icons/polyclothes/item/uniform.dmi index a0b6031a5d..87c3479a6a 100644 Binary files a/modular_citadel/icons/polyclothes/item/uniform.dmi and b/modular_citadel/icons/polyclothes/item/uniform.dmi differ diff --git a/modular_citadel/icons/polyclothes/mob/uniform.dmi b/modular_citadel/icons/polyclothes/mob/uniform.dmi index bf53ea7a3c..15b5262bab 100644 Binary files a/modular_citadel/icons/polyclothes/mob/uniform.dmi and b/modular_citadel/icons/polyclothes/mob/uniform.dmi differ