diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 1e3de8f2674a1..d96ba21a61679 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -735,6 +735,8 @@ GLOBAL_LIST_INIT(human_heights_to_offsets, list( #define ID_CARD_LAYER 25 /// Layer for bodyparts that should appear above every other bodypart - Currently only used for hands #define BODYPARTS_HIGH_LAYER 24 +// For hand markings :3c - DOPPLER ADDITION +#define BODY_HAND_LAYER 23.99 /// Gloves layer #define GLOVES_LAYER 23 /// Shoes layer @@ -854,6 +856,8 @@ GLOBAL_LIST_INIT(layers_to_offset, list( #define EXTERNAL_BEHIND (1 << 6) #define EXTERNAL_BEHIND_2 (1 << 7) #define EXTERNAL_BEHIND_3 (1 << 8) +//Hand markings +#define EXTERNAL_HAND (1 << 9) /// DOPPLER SHIFT ADDITION END /// Draws organ on all EXTERNAL layers #define ALL_EXTERNAL_OVERLAYS EXTERNAL_FRONT | EXTERNAL_ADJACENT | EXTERNAL_BEHIND diff --git a/code/datums/bodypart_overlays/bodypart_overlay.dm b/code/datums/bodypart_overlays/bodypart_overlay.dm index 16178e3c2782a..bc3f034355686 100644 --- a/code/datums/bodypart_overlays/bodypart_overlay.dm +++ b/code/datums/bodypart_overlays/bodypart_overlay.dm @@ -8,7 +8,7 @@ /// DOPPLER SHIFT ADDITION BEGIN var/static/list/all_layers = list(EXTERNAL_FRONT,EXTERNAL_FRONT_2,EXTERNAL_FRONT_3, EXTERNAL_ADJACENT,EXTERNAL_ADJACENT_2,EXTERNAL_ADJACENT_3, - EXTERNAL_BEHIND,EXTERNAL_BEHIND_2,EXTERNAL_BEHIND_3) + EXTERNAL_BEHIND,EXTERNAL_BEHIND_2,EXTERNAL_BEHIND_3, EXTERNAL_HAND) /// DOPPLER SHIFT ADDITION END ///Key of the icon states of all the sprite_datums for easy caching @@ -75,6 +75,8 @@ return "FRONT_2" if(-BODY_FRONT_LAYER_3) return "FRONT_3" + if(-BODY_HAND_LAYER) + return "HAND" /// DOPPLER SHIFT ADDITION END ///Converts a bitflag to the right layer. I'd love to make this a static index list, but byond made an attempt on my life when i did @@ -99,6 +101,8 @@ return -BODY_FRONT_LAYER_2 if(EXTERNAL_FRONT_3) return -BODY_FRONT_LAYER_3 + if(EXTERNAL_HAND) + return -BODY_HAND_LAYER /// DOPPLER SHIFT ADDITION END ///Check whether we can draw the overlays. You generally don't want lizard snouts to draw over an EVA suit diff --git a/modular_doppler/modular_customization/markings/body_markings/other.dm b/modular_doppler/modular_customization/markings/body_markings/other.dm index 95eb75dd5b74d..edb153485a38a 100644 --- a/modular_doppler/modular_customization/markings/body_markings/other.dm +++ b/modular_doppler/modular_customization/markings/body_markings/other.dm @@ -101,12 +101,7 @@ /datum/sprite_accessory/body_marking/other/pilot name = "Pilot" icon_state = "pilot" - body_zones = HEAD | ARM_LEFT | ARM_RIGHT - -/datum/sprite_accessory/body_marking/other/pilot_hand - name = "Pilot Hand" - icon_state = "pilot_hand" - body_zones = HAND_LEFT | HAND_RIGHT + body_zones = HEAD | ARM_LEFT | ARM_RIGHT | HAND_LEFT | HAND_RIGHT /datum/sprite_accessory/body_marking/other/big_ol_eyes name = "Large Eyes" @@ -132,19 +127,14 @@ /datum/sprite_accessory/body_marking/other/bands name = "Color Bands" icon_state = "bands" - body_zones = CHEST | ARM_LEFT | ARM_RIGHT | LEG_RIGHT | LEG_LEFT + body_zones = CHEST | ARM_LEFT | ARM_RIGHT | LEG_RIGHT | LEG_LEFT | HAND_LEFT | HAND_RIGHT + /datum/sprite_accessory/body_marking/other/bands_foot name = "Color Bands (Foot)" icon_state = "bands_foot" body_zones = LEG_RIGHT | LEG_LEFT - -/datum/sprite_accessory/body_marking/other/bands_hand - name = "Color Bands (Hand)" - icon_state = "bands_hand" - body_zones = HAND_RIGHT | HAND_LEFT - /datum/sprite_accessory/body_marking/other/anklet name = "Anklet" icon_state = "anklet" diff --git a/modular_doppler/modular_customization/markings/body_markings/secondary.dm b/modular_doppler/modular_customization/markings/body_markings/secondary.dm index bef4d918bff27..719f654e2d73c 100644 --- a/modular_doppler/modular_customization/markings/body_markings/secondary.dm +++ b/modular_doppler/modular_customization/markings/body_markings/secondary.dm @@ -15,37 +15,32 @@ /datum/sprite_accessory/body_marking/secondary/husky name = "Husky" icon_state = "husky" - body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | LEG_RIGHT | LEG_LEFT + body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT /datum/sprite_accessory/body_marking/secondary/husky_hand name = "Husky Hand" - icon_state = "husky_hand" - body_zones = HAND_LEFT | HAND_RIGHT + icon_state = "husky" + body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT /datum/sprite_accessory/body_marking/secondary/fennec name = "Fennec" icon_state = "fennec" - body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | LEG_RIGHT | LEG_LEFT - -/datum/sprite_accessory/body_marking/secondary/fennechand - name = "Fennec (Hand)" - icon_state = "fennec_hand" - body_zones = HAND_LEFT | HAND_RIGHT + body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT /datum/sprite_accessory/body_marking/secondary/redpanda name = "Red Panda" icon_state = "redpanda" - body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT| LEG_RIGHT | LEG_LEFT // | HAND_LEFT | HAND_RIGHT + body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT /datum/sprite_accessory/body_marking/secondary/dalmatian name = "Dalmatian" icon_state = "dalmation" - body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | LEG_RIGHT | LEG_LEFT // | HAND_LEFT | HAND_RIGHT + body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT /datum/sprite_accessory/body_marking/secondary/shepherd name = "Shepherd" icon_state = "shepherd" - body_zones = CHEST | ARM_LEFT | ARM_RIGHT | LEG_RIGHT | LEG_LEFT // | HAND_LEFT | HAND_RIGHT + body_zones = CHEST | ARM_LEFT | ARM_RIGHT | HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT /datum/sprite_accessory/body_marking/secondary/wolf name = "Wolf" @@ -60,12 +55,12 @@ /datum/sprite_accessory/body_marking/secondary/raccoon name = "Raccoon" icon_state = "raccoon" - body_zones = HEAD | CHEST | LEG_RIGHT | LEG_LEFT // | HAND_LEFT | HAND_RIGHT + body_zones = HEAD | CHEST | HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT /datum/sprite_accessory/body_marking/secondary/bovine name = "Bovine" icon_state = "bovine" - body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | LEG_RIGHT | LEG_LEFT // | HAND_LEFT | HAND_RIGHT + body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT /datum/sprite_accessory/body_marking/secondary/possum name = "Possum" @@ -75,12 +70,12 @@ /datum/sprite_accessory/body_marking/secondary/corgi name = "Corgi" icon_state = "corgi" - body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | LEG_RIGHT | LEG_LEFT // | HAND_LEFT | HAND_RIGHT + body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT /datum/sprite_accessory/body_marking/secondary/leopard1 name = "Leopard" icon_state = "leopard1" - body_zones = CHEST | ARM_LEFT | ARM_RIGHT | LEG_RIGHT | LEG_LEFT // | HAND_LEFT | HAND_RIGHT + body_zones = CHEST | ARM_LEFT | ARM_RIGHT | HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT /datum/sprite_accessory/body_marking/secondary/leopard2 name = "Leopard (alt)" @@ -95,7 +90,7 @@ /datum/sprite_accessory/body_marking/secondary/panther name = "Panther" icon_state = "panther" - body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | LEG_RIGHT | LEG_LEFT // | HAND_LEFT | HAND_RIGHT + body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT /datum/sprite_accessory/body_marking/secondary/tiger name = "Tiger Spot" @@ -110,12 +105,12 @@ /datum/sprite_accessory/body_marking/secondary/otie name = "Otie" icon_state = "otie" - body_zones = HEAD | CHEST | LEG_RIGHT | LEG_LEFT // | HAND_LEFT | HAND_RIGHT + body_zones = HEAD | CHEST | HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT /datum/sprite_accessory/body_marking/secondary/sabresune name = "Sabresune" icon_state = "sabresune" - body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | LEG_RIGHT | LEG_LEFT // | HAND_LEFT | HAND_RIGHT + body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT /datum/sprite_accessory/body_marking/secondary/orca name = "Orca" @@ -145,17 +140,17 @@ /datum/sprite_accessory/body_marking/secondary/deer name = "Deer" icon_state = "deer" - body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | LEG_RIGHT | LEG_LEFT // | HAND_LEFT | HAND_RIGHT + body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT /datum/sprite_accessory/body_marking/secondary/hyena name = "Hyena" icon_state = "hyena" - body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | LEG_RIGHT | LEG_LEFT // | HAND_LEFT | HAND_RIGHT + body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT /datum/sprite_accessory/body_marking/secondary/dog name = "Dog" icon_state = "dog" - body_zones = CHEST | ARM_LEFT | ARM_RIGHT | LEG_RIGHT | LEG_LEFT // | HAND_LEFT | HAND_RIGHT + body_zones = CHEST | ARM_LEFT | ARM_RIGHT | HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT /datum/sprite_accessory/body_marking/secondary/bat name = "Bat" @@ -170,17 +165,17 @@ /datum/sprite_accessory/body_marking/secondary/rat name = "Rat Paw" icon_state = "rat" - body_zones = ARM_LEFT | ARM_RIGHT | LEG_RIGHT | LEG_LEFT // | HAND_LEFT | HAND_RIGHT + body_zones = ARM_LEFT | ARM_RIGHT | HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT /datum/sprite_accessory/body_marking/secondary/scolipede name = "Scolipede" icon_state = "scolipede" - body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | LEG_RIGHT | LEG_LEFT // | HAND_LEFT | HAND_RIGHT + body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT /datum/sprite_accessory/body_marking/secondary/guilmon name = "Guilmon" icon_state = "guilmon" - body_zones = CHEST | ARM_LEFT | ARM_RIGHT | LEG_RIGHT | LEG_LEFT // | HAND_LEFT | HAND_RIGHT + body_zones = CHEST | ARM_LEFT | ARM_RIGHT | HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT /datum/sprite_accessory/body_marking/secondary/xeno name = "Xeno" @@ -220,22 +215,22 @@ /datum/sprite_accessory/body_marking/secondary/handsfeet name = "Hands Feet" icon_state = "handsfeet" - body_zones = LEG_RIGHT | LEG_LEFT // | HAND_LEFT | HAND_RIGHT + body_zones = HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT /datum/sprite_accessory/body_marking/secondary/frog name = "Frog" icon_state = "frog" - body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | LEG_RIGHT | LEG_LEFT // | HAND_LEFT | HAND_RIGHT + body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT /datum/sprite_accessory/body_marking/secondary/bee name = "Bee" icon_state = "bee" - body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | LEG_RIGHT | LEG_LEFT // | HAND_LEFT | HAND_RIGHT + body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT /datum/sprite_accessory/body_marking/secondary/gradient name = "Gradient" icon_state = "gradient" - body_zones = ARM_LEFT | ARM_RIGHT | LEG_RIGHT | LEG_LEFT // | HAND_LEFT | HAND_RIGHT + body_zones = ARM_LEFT | ARM_RIGHT | HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT /datum/sprite_accessory/body_marking/secondary/harlequin name = "Harlequin" @@ -245,9 +240,9 @@ /datum/sprite_accessory/body_marking/secondary/harlequin_reversed name = "Harlequin Reversed" icon_state = "harlequin_reversed" - body_zones = HEAD | CHEST | ARM_RIGHT | LEG_RIGHT // HAND_RIGHT + body_zones = HEAD | CHEST | ARM_RIGHT | HAND_RIGHT | LEG_RIGHT /datum/sprite_accessory/body_marking/secondary/plain name = "Plain" icon_state = "plain" - body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | LEG_RIGHT | LEG_LEFT // | HAND_LEFT | HAND_RIGHT + body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT diff --git a/modular_doppler/modular_customization/markings/body_markings/tertiary.dm b/modular_doppler/modular_customization/markings/body_markings/tertiary.dm index 70bc98f0d7aea..d57ce8c5e2a93 100644 --- a/modular_doppler/modular_customization/markings/body_markings/tertiary.dm +++ b/modular_doppler/modular_customization/markings/body_markings/tertiary.dm @@ -21,12 +21,12 @@ /datum/sprite_accessory/body_marking/tertiary/fox name = "Fox Sock" icon_state = "fox" - body_zones = ARM_LEFT | ARM_RIGHT | LEG_RIGHT | LEG_LEFT // | HAND_LEFT | HAND_RIGHT + body_zones = ARM_LEFT | ARM_RIGHT | HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT /datum/sprite_accessory/body_marking/tertiary/goat name = "Goat Hoof" icon_state = "goat" - body_zones = LEG_RIGHT | LEG_LEFT // | HAND_LEFT | HAND_RIGHT + body_zones = HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT /datum/sprite_accessory/body_marking/tertiary/raccoon name = "Raccoon Spot" @@ -41,12 +41,12 @@ /datum/sprite_accessory/body_marking/tertiary/possum name = "Possum Sock" icon_state = "possum" - body_zones = LEG_RIGHT | LEG_LEFT // | HAND_LEFT | HAND_RIGHT + body_zones = HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT /datum/sprite_accessory/body_marking/tertiary/tiger name = "Tiger Stripe" icon_state = "tiger" - body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | LEG_RIGHT | LEG_LEFT // | HAND_LEFT | HAND_RIGHT + body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT /datum/sprite_accessory/body_marking/tertiary/otter name = "Otter Head" @@ -56,7 +56,7 @@ /datum/sprite_accessory/body_marking/tertiary/otie name = "Otie Spot" icon_state = "otie" - body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | LEG_RIGHT | LEG_LEFT // | HAND_LEFT | HAND_RIGHT + body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT /datum/sprite_accessory/body_marking/tertiary/hawk name = "Hawk Talon" @@ -71,7 +71,7 @@ /datum/sprite_accessory/body_marking/tertiary/deer name = "Deer Hoof" icon_state = "deer" - body_zones = LEG_RIGHT | LEG_LEFT // | HAND_LEFT | HAND_RIGHT + body_zones = HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT /datum/sprite_accessory/body_marking/tertiary/hyena name = "Hyena Side" @@ -91,7 +91,7 @@ /datum/sprite_accessory/body_marking/tertiary/floofer name = "Floofer Sock" icon_state = "floofer" - body_zones = ARM_LEFT | ARM_RIGHT | LEG_RIGHT | LEG_LEFT // | HAND_LEFT | HAND_RIGHT + body_zones = ARM_LEFT | ARM_RIGHT | LEG_RIGHT | LEG_LEFT | HAND_LEFT | HAND_RIGHT /datum/sprite_accessory/body_marking/tertiary/rat name = "Rat Spot" @@ -111,7 +111,7 @@ /datum/sprite_accessory/body_marking/tertiary/guilmon name = "Guilmon Mark" icon_state = "guilmon" - body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | LEG_RIGHT | LEG_LEFT // | HAND_LEFT | HAND_RIGHT + body_zones = HEAD | CHEST | ARM_LEFT | ARM_RIGHT | HAND_LEFT | HAND_RIGHT | LEG_RIGHT | LEG_LEFT /datum/sprite_accessory/body_marking/tertiary/xeno name = "Xeno Head" @@ -132,3 +132,4 @@ name = "Light Belly" icon_state = "lbelly" body_zones = CHEST + diff --git a/modular_doppler/modular_customization/markings/icons/markings/other_markings.dmi b/modular_doppler/modular_customization/markings/icons/markings/other_markings.dmi index 9e948196c4709..c50eeeac36fec 100644 Binary files a/modular_doppler/modular_customization/markings/icons/markings/other_markings.dmi and b/modular_doppler/modular_customization/markings/icons/markings/other_markings.dmi differ diff --git a/modular_doppler/modular_customization/markings/icons/markings/secondary_markings.dmi b/modular_doppler/modular_customization/markings/icons/markings/secondary_markings.dmi index 77a254921f719..4e0a665d39e7c 100644 Binary files a/modular_doppler/modular_customization/markings/icons/markings/secondary_markings.dmi and b/modular_doppler/modular_customization/markings/icons/markings/secondary_markings.dmi differ diff --git a/modular_doppler/modular_customization/markings/markings_preferences.dm b/modular_doppler/modular_customization/markings/markings_preferences.dm index 579f22590fac3..2efdd77665ec3 100644 --- a/modular_doppler/modular_customization/markings/markings_preferences.dm +++ b/modular_doppler/modular_customization/markings/markings_preferences.dm @@ -62,21 +62,37 @@ /// /datum/species/proc/add_doppler_markings(mob/living/carbon/human/target, value, colorvalue, bodypart) + var/handlayer = FALSE bodypart = marking_zones(bodypart) - bodypart = bodypart + if(bodypart == BODY_ZONE_PRECISE_L_HAND) + testing("[value] is left hand") + handlayer = EXTERNAL_HAND + bodypart = BODY_ZONE_L_ARM + else if(bodypart == BODY_ZONE_PRECISE_R_HAND) + testing("[value] is right hand") + handlayer = EXTERNAL_HAND + bodypart = BODY_ZONE_R_ARM + testing("handlayer is [handlayer]") var/obj/item/bodypart/people_part = target.get_bodypart(bodypart) if(people_part) - var/datum/bodypart_overlay/simple/body_marking/body_markings/markings = new /datum/bodypart_overlay/simple/body_marking/body_markings() - var/accessory_name = value - var/datum/sprite_accessory/accessory = markings.get_accessory(accessory_name) - var/datum/bodypart_overlay/simple/body_marking/overlay = new /datum/bodypart_overlay/simple/body_marking() + var/datum/bodypart_overlay/simple/body_marking/body_markings/overlay = new /datum/bodypart_overlay/simple/body_marking/body_markings() + var/datum/sprite_accessory/accessory = overlay.get_accessory(value) if(isnull(accessory)) - CRASH("Value: [accessory_name] did not have a corresponding sprite accessory!") + CRASH("Value: [value] did not have a corresponding sprite accessory!") overlay.icon = accessory.icon overlay.icon_state = accessory.icon_state - overlay.use_gender = accessory.gender_specific + if(handlayer) + overlay.ishand = TRUE + overlay.layers = handlayer + var/testvalue = overlay.bitflag_to_layer(overlay.layers) + testing("[value]'s layer is [testvalue]") + if(bodypart == BODY_ZONE_HEAD) + overlay.use_gender = FALSE + else + overlay.use_gender = accessory.gender_specific + overlay.draw_color = colorvalue || accessory.color_src people_part.add_bodypart_overlay(overlay) @@ -89,9 +105,19 @@ if(markingslist[i] && markingslist[i] != SPRITE_ACCESSORY_NONE) add_doppler_markings(target, target.dna.features["markings_list"][i], target.dna.features["markings_list_colors"][i], target.dna.features["markings_list_zones"][i]) +/datum/bodypart_overlay/simple/body_marking/body_markings + var/ishand = FALSE + /datum/bodypart_overlay/simple/body_marking/body_markings/get_accessory(name) return SSaccessories.body_markings[name] +/datum/bodypart_overlay/simple/body_marking/body_markings/get_image(layer, obj/item/bodypart/limb) + var/gender_string = (use_gender && limb.is_dimorphic) ? (limb.gender == MALE ? MALE : FEMALE + "_") : "" //we only got male and female sprites + var/zonestring = limb.body_zone + if(ishand) + zonestring = limb.aux_zone + return image(icon, gender_string + icon_state + "_" + zonestring, layer = layer) + /datum/preference/color/markings/markings_r_leg3/is_accessible(datum/preferences/preferences) if (!..(preferences)) return FALSE @@ -101,26 +127,22 @@ //cover_flags2body_zones is funky with hand bitflags for some reason. this is more efficient for what we want to do anyway /datum/species/proc/marking_zones(zone) - var/returnval - if(!zone) return switch(zone) if(HEAD) - returnval = BODY_ZONE_HEAD + return BODY_ZONE_HEAD if(CHEST) - returnval = BODY_ZONE_CHEST + return BODY_ZONE_CHEST if(ARM_LEFT) - returnval = BODY_ZONE_L_ARM + return BODY_ZONE_L_ARM if(ARM_RIGHT) - returnval = BODY_ZONE_R_ARM + return BODY_ZONE_R_ARM if(HAND_LEFT) - returnval = BODY_ZONE_L_ARM + return BODY_ZONE_PRECISE_L_HAND if(HAND_RIGHT) - returnval = BODY_ZONE_R_ARM + return BODY_ZONE_PRECISE_R_HAND if(LEG_LEFT) - returnval = BODY_ZONE_L_LEG + return BODY_ZONE_L_LEG if(LEG_RIGHT) - returnval = BODY_ZONE_R_LEG - - return returnval + return BODY_ZONE_R_LEG