diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 451c3c73dc..6eef427b27 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -529,7 +529,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/list/markings = features[marking_type]
for(var/list/marking_list in markings)
var/actual_name = GLOB.bodypart_names[num2text(marking_list[1])] // get the actual name from the bitflag representing the part the marking is applied to
- dat += "
| [marking_list[2]] - [actual_name] | ˄ ˅ X |
"
+ dat += "| [marking_list[2]] - [actual_name] | ˄ ˅ X |
"
dat += ""
for(var/mutant_part in GLOB.all_mutant_parts)
@@ -2417,26 +2417,34 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if("marking_down")
// move the specified marking down
- var/index = href_list["marking_index"]
+ var/index = text2num(href_list["marking_index"])
var/marking_type = href_list["marking_type"]
- if(index && marking_type && features[marking_type])
- // placeholder
- var/a
+ if(index && marking_type && features[marking_type] && index != length(features[marking_type]))
+ var/index_down = index + 1
+ var/markings = features[marking_type]
+ var/first_marking = markings[index]
+ var/second_marking = markings[index_down]
+ markings[index] = second_marking
+ markings[index_down] = first_marking
if("marking_up")
// move the specified marking up
- var/index = href_list["marking_index"]
+ var/index = text2num(href_list["marking_index"])
var/marking_type = href_list["marking_type"]
- if(index && marking_type && features[marking_type])
- // placeholder
- var/a
+ if(index && marking_type && features[marking_type] && index != 1)
+ var/index_up = index - 1
+ var/markings = features[marking_type]
+ var/first_marking = markings[index]
+ var/second_marking = markings[index_up]
+ markings[index] = second_marking
+ markings[index_up] = first_marking
if("marking_remove")
- // remove the specified marking
- var/marking_list = href_list["marking_list"]
+ // move the specified marking up
+ var/index = text2num(href_list["marking_index"])
var/marking_type = href_list["marking_type"]
- if(marking_list && marking_type && features[marking_type])
- features[marking_type] -= marking_list
+ if(index && marking_type && features[marking_type])
+ features[marking_type].Cut(index, index + 1)
else
switch(href_list["preference"])
//CITADEL PREFERENCES EDIT - I can't figure out how to modularize these, so they have to go here. :c -Pooj