From 2c92802db5ce1a5cfeb6f0dd10c342c9654d78e3 Mon Sep 17 00:00:00 2001 From: Hubblenaut Date: Fri, 12 Aug 2016 20:58:40 +0200 Subject: [PATCH 1/2] Adds a verb for toggling specific pieces of underwear --- code/datums/underwear/underwear.dm | 7 +++++++ .../game/objects/structures/under_wardrobe.dm | 2 ++ code/modules/mob/living/carbon/human/human.dm | 20 +++++++++++++++++++ .../mob/living/carbon/human/human_defines.dm | 1 + .../mob/living/carbon/human/update_icons.dm | 2 ++ 5 files changed, 32 insertions(+) diff --git a/code/datums/underwear/underwear.dm b/code/datums/underwear/underwear.dm index d14ddea1339..22f538a9a1e 100644 --- a/code/datums/underwear/underwear.dm +++ b/code/datums/underwear/underwear.dm @@ -9,27 +9,34 @@ *************/ /datum/category_group/underwear var/sort_order // Lower sort order is applied as icons first + var/display_name // For displaying in text + var/gender = NEUTER datum/category_group/underwear/dd_SortValue() return sort_order /datum/category_group/underwear/top name = "Underwear, top" + display_name = "top piece" sort_order = 1 category_item_type = /datum/category_item/underwear/top /datum/category_group/underwear/bottom name = "Underwear, bottom" + display_name = "bottom piece" sort_order = 2 category_item_type = /datum/category_item/underwear/bottom /datum/category_group/underwear/socks name = "Socks" + display_name = "socks" + gender = PLURAL sort_order = 3 category_item_type = /datum/category_item/underwear/socks /datum/category_group/underwear/undershirt name = "Undershirt" + display_name = "undershirt" sort_order = 4 // Undershirts currently have the highest sort order because they may cover both underwear and socks. category_item_type = /datum/category_item/underwear/undershirt diff --git a/code/game/objects/structures/under_wardrobe.dm b/code/game/objects/structures/under_wardrobe.dm index 6a06ef26fbc..d26b421ab51 100644 --- a/code/game/objects/structures/under_wardrobe.dm +++ b/code/game/objects/structures/under_wardrobe.dm @@ -69,6 +69,7 @@ var/datum/category_item/underwear/selected_underwear = input(H, "Choose underwear:", "Choose underwear", H.all_underwear[UWC.name]) as null|anything in UWC.items if(selected_underwear && CanUseTopic(H, default_state)) H.all_underwear[UWC.name] = selected_underwear + H.hide_underwear[UWC.name] = FALSE . = TRUE else if(href_list["underwear"] && href_list["tweak"]) var/underwear = href_list["underwear"] @@ -80,6 +81,7 @@ var/new_metadata = gt.get_metadata(usr, get_metadata(H, underwear, gt), "Wardrobe Underwear Selection") if(new_metadata) set_metadata(H, underwear, gt, new_metadata) + H.hide_underwear[underwear] = FALSE . = TRUE if(.) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index df1bfc46675..6468f179089 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -41,6 +41,10 @@ human_mob_list |= src ..() + hide_underwear.Cut() + for(var/category in global_underwear.categories_by_name) + hide_underwear[category] = FALSE + if(dna) dna.ready_dna(src) dna.real_name = real_name @@ -1416,6 +1420,22 @@ return 1 return 0 +/mob/living/carbon/human/verb/toggle_underwear() + set name = "Toggle Underwear" + set desc = "Shows/hides selected parts of your underwear." + set category = "Object" + + if(stat) return + var/datum/category_group/underwear/UWC = input(usr, "Choose underwear:", "Show/hide underwear") as null|anything in global_underwear.categories + var/datum/category_item/underwear/UWI = all_underwear[UWC.name] + if(!UWI || UWI.name == "None") + src << "You do not have [UWC.gender==PLURAL ? "[UWC.display_name]" : "\a [UWC.display_name]"]." + return + hide_underwear[UWC.name] = !hide_underwear[UWC.name] + update_underwear(1) + src << "You [hide_underwear[UWC.name] ? "take off" : "put on"] your [UWC.display_name]." + return + /mob/living/carbon/human/verb/pull_punches() set name = "Pull Punches" set desc = "Try not to hurt them." diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 99bbe8ffcf3..fef4752a2a8 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -35,6 +35,7 @@ var/list/all_underwear = list() var/list/all_underwear_metadata = list() + var/list/hide_underwear = list() var/backbag = 2 //Which backpack type the player has chosen. Nothing, Satchel or Backpack. var/pdachoice = 1 //Which PDA type the player has chosen. Default, Slim, or Old. diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 43123eab0a0..6607d166bf7 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -336,6 +336,8 @@ var/global/list/damage_icon_parts = list() if(species.appearance_flags & HAS_UNDERWEAR) overlays_standing[UNDERWEAR_LAYER] = list() for(var/category in all_underwear) + if(hide_underwear[category]) + continue var/datum/category_item/underwear/UWI = all_underwear[category] overlays_standing[UNDERWEAR_LAYER] += UWI.generate_image(all_underwear_metadata[category]) From c6c74c386bc5b1824a299707c85e7098d2d1413e Mon Sep 17 00:00:00 2001 From: Hubblenaut Date: Fri, 12 Aug 2016 21:14:56 +0200 Subject: [PATCH 2/2] Adds changelog --- html/changelogs/Hubblenaut - master.yml | 36 +++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 html/changelogs/Hubblenaut - master.yml diff --git a/html/changelogs/Hubblenaut - master.yml b/html/changelogs/Hubblenaut - master.yml new file mode 100644 index 00000000000..5a0079d66c3 --- /dev/null +++ b/html/changelogs/Hubblenaut - master.yml @@ -0,0 +1,36 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Hubblenaut + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Adds a verb for toggling whether to show specific pieces of underwear."