From 4860518c1a0d2f6b5d2c326b82f908ced74a7107 Mon Sep 17 00:00:00 2001
From: Seris02
Body Markings +
"
. += ""
for(var/M in pref.body_markings)
- . += "
"
. += " "
+ . += "[M] [pref.body_markings.len > 1 ? "˄ ˅ mv " : ""]- Color[color_square(hex = pref.body_markings[M])] "
. += "[M] [pref.body_markings.len > 1 ? "˄ ˅ mv " : ""]- Color[color_square(hex = pref.body_markings[M]["color"] ? pref.body_markings[M]["color"] : "#000000")] - Customize
"
@@ -850,7 +865,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
*/ //VOREStation Removal End
var/new_marking = tgui_input_list(user, "Choose a body marking:", "Character Preference", usable_markings)
if(new_marking && CanUseTopic(user))
- pref.body_markings[new_marking] = "#000000" //New markings start black
+ pref.body_markings[new_marking] = pref.mass_edit_marking_list(new_marking) //New markings start black
return TOPIC_REFRESH_UPDATE_PREVIEW
else if(href_list["marking_up"])
@@ -886,16 +901,69 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
else if(href_list["marking_remove"])
var/M = href_list["marking_remove"]
+ winshow(user, "prefs_markings_subwindow", FALSE)
pref.body_markings -= M
return TOPIC_REFRESH_UPDATE_PREVIEW
else if(href_list["marking_color"])
var/M = href_list["marking_color"]
- var/mark_color = input(user, "Choose the [M] color: ", "Character Preference", pref.body_markings[M]) as color|null
+ if (isnull(pref.body_markings[M]["color"]))
+ if (tgui_alert(user, "You currently have customized marking colors. This will reset each bodypart's color. Are you sure you want to continue?","Reset Bodypart Colors",list("Yes","No")) == "No")
+ return TOPIC_NOACTION
+ var/mark_color = input(user, "Choose the [M] color: ", "Character Preference", pref.body_markings[M]["color"]) as color|null
if(mark_color && CanUseTopic(user))
- pref.body_markings[M] = "[mark_color]"
+ pref.body_markings[M] = pref.mass_edit_marking_list(M,FALSE,TRUE,pref.body_markings[M],color="[mark_color]")
return TOPIC_REFRESH_UPDATE_PREVIEW
+ else if (href_list["marking_submenu"])
+ var/M = href_list["marking_submenu"]
+ markings_subwindow(user, M)
+ return TOPIC_NOACTION
+
+ else if (href_list["toggle_all_marking_selection"])
+ var/toggle = text2num(href_list["toggle"])
+ var/marking = href_list["toggle_all_marking_selection"]
+ if (pref.body_markings.Find(marking) == 0)
+ winshow(user, "prefs_markings_subwindow", FALSE)
+ return TOPIC_NOACTION
+ pref.body_markings[marking] = pref.mass_edit_marking_list(marking,TRUE,FALSE,pref.body_markings[marking],on=toggle)
+ markings_subwindow(user, marking)
+ return TOPIC_REFRESH_UPDATE_PREVIEW
+
+ else if (href_list["color_all_marking_selection"])
+ var/marking = href_list["color_all_marking_selection"]
+ if (pref.body_markings.Find(marking) == 0)
+ winshow(user, "prefs_markings_subwindow", FALSE)
+ return TOPIC_NOACTION
+ var/mark_color = input(user, "Choose the [marking] color: ", "Character Preference", pref.body_markings[marking]["color"]) as color|null
+ if(mark_color && CanUseTopic(user))
+ pref.body_markings[marking] = pref.mass_edit_marking_list(marking,FALSE,TRUE,pref.body_markings[marking],color="[mark_color]")
+ markings_subwindow(user, marking)
+ return TOPIC_REFRESH_UPDATE_PREVIEW
+
+ else if (href_list["zone_marking_color"])
+ var/marking = href_list["zone_marking_color"]
+ if (pref.body_markings.Find(marking) == 0)
+ winshow(user, "prefs_markings_subwindow", FALSE)
+ return TOPIC_NOACTION
+ var/zone = href_list["zone"]
+ pref.body_markings[marking]["color"] = null //turn off the color button outside the submenu
+ var/mark_color = input(user, "Choose the [marking] color: ", "Character Preference", pref.body_markings[marking]["color"]) as color|null
+ if(mark_color && CanUseTopic(user))
+ pref.body_markings[marking][zone]["color"] = "[mark_color]"
+ markings_subwindow(user, marking)
+ return TOPIC_REFRESH_UPDATE_PREVIEW
+
+ else if (href_list["zone_marking_toggle"])
+ var/marking = href_list["zone_marking_toggle"]
+ if (pref.body_markings.Find(marking) == 0)
+ winshow(user, "prefs_markings_subwindow", FALSE)
+ return TOPIC_NOACTION
+ var/zone = href_list["zone"]
+ pref.body_markings[marking][zone]["on"] = text2num(href_list["toggle"])
+ markings_subwindow(user, marking)
+ return TOPIC_REFRESH_UPDATE_PREVIEW
+
else if(href_list["reset_limbs"])
reset_limbs()
return TOPIC_REFRESH_UPDATE_PREVIEW
@@ -1319,3 +1387,23 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
dat += "