diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 2dfcde2949..b53a2f3c30 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -580,7 +580,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
secondary_feature = tertiary_feature //swap secondary for tertiary, as second option is blue, which is linked to the tertiary
dat += "Primary Color
"
dat += " Change
"
- if((accessory.color_src == MATRIXED && (matrixed_sections == MATRIX_RED_BLUE || matrixed_sections == MATRIX_GREEN_BLUE || matrixed_sections == MATRIX_ALL)) || (accessory.extra && (accessory.extra_color_src == MUTCOLORS || accessory.extra_color_src == MUTCOLORS2 || accessory.extra_color_src == MUTCOLORS3)))
+ if((accessory.color_src == MATRIXED && (matrixed_sections == MATRIX_RED_BLUE || matrixed_sections == MATRIX_GREEN_BLUE || matrixed_sections == MATRIX_RED_GREEN || matrixed_sections == MATRIX_ALL)) || (accessory.extra && (accessory.extra_color_src == MUTCOLORS || accessory.extra_color_src == MUTCOLORS2 || accessory.extra_color_src == MUTCOLORS3)))
dat += "Secondary Color
"
dat += " Change
"
if((accessory.color_src == MATRIXED && matrixed_sections == MATRIX_ALL) || (accessory.extra2 && (accessory.extra2_color_src == MUTCOLORS || accessory.extra2_color_src == MUTCOLORS2 || accessory.extra2_color_src == MUTCOLORS3)))
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index 4097bad5eb..edb98a7e64 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -5,7 +5,7 @@
// You do not need to raise this if you are adding new values that have sane defaults.
// Only raise this value when changing the meaning/format/name/layout of an existing value
// where you would want the updater procs below to run
-#define SAVEFILE_VERSION_MAX 39
+#define SAVEFILE_VERSION_MAX 45
/*
SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn
@@ -226,42 +226,43 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
left_eye_color = "#BAB99E"
right_eye_color = "#BAB99E"
- if(current_version < 39) //extreme changes to how things are coloured
+ if(current_version < 390) //extreme changes to how things are coloured
for(var/feature in features)
message_admins("[feature]")
var/feature_type = features[feature]
- var/ref_list = GLOB.mutant_reference_list[feature_type]
- if(ref_list)
- message_admins("ref list found")
- var/datum/sprite_accessory/accessory = ref_list[feature]
- if(accessory)
- var/primary_string = "[feature_type]_primary"
- var/secondary_string = "[feature_type]_secondary]"
- var/tertiary_string = "[feature_type]_tertiary]"
- if(accessory.matrixed_sections)
- switch(accessory.matrixed_sections)
- if(MATRIX_GREEN) //only composed of a green section
- primary_string = secondary_string //swap primary for secondary, so it properly assigns the second colour, reserved for the green section
- if(MATRIX_BLUE)
- primary_string = tertiary_string //same as above, but the tertiary feature is for the blue section
- if(MATRIX_RED_BLUE) //composed of a red and blue section
- secondary_string = tertiary_string //swap secondary for tertiary, as blue should always be tertiary
- if(MATRIX_GREEN_BLUE) //composed of a green and blue section
- primary_string = secondary_string //swap primary for secondary, as first option is green, which is linked to the secondary
- secondary_string = tertiary_string //swap secondary for tertiary, as second option is blue, which is linked to the tertiary
- else if(accessory.color_src != MATRIXED)
- message_admins("Sprite Accessory Failure (migration from [current_version] to 39): Accessory [accessory.type] is a matrixed item without any matrixed sections set!")
- continue
- if(accessory.color_src == MATRIXED)
- features[primary_string] = features["mcolor"]
- features[secondary_string] = features["mcolor2"]
- features[tertiary_string] = features["mcolor3"]
- else if(accessory.color_src == MUTCOLORS)
- features[primary_string] = features["mcolor"]
- else if(accessory.color_src == MUTCOLORS2)
- features[secondary_string] = features["mcolor2"]
- else if(accessory.color_src == MUTCOLORS3)
- features[tertiary_string] = features["mcolor3"]
+ if(feature_type)
+ var/ref_list = GLOB.mutant_reference_list[feature_type]
+ if(ref_list)
+ message_admins("ref list found [ref_list]")
+ var/datum/sprite_accessory/accessory = ref_list[feature]
+ if(accessory)
+ var/primary_string = "[feature_type]_primary"
+ var/secondary_string = "[feature_type]_secondary]"
+ var/tertiary_string = "[feature_type]_tertiary]"
+ if(accessory.matrixed_sections)
+ switch(accessory.matrixed_sections)
+ if(MATRIX_GREEN) //only composed of a green section
+ primary_string = secondary_string //swap primary for secondary, so it properly assigns the second colour, reserved for the green section
+ if(MATRIX_BLUE)
+ primary_string = tertiary_string //same as above, but the tertiary feature is for the blue section
+ if(MATRIX_RED_BLUE) //composed of a red and blue section
+ secondary_string = tertiary_string //swap secondary for tertiary, as blue should always be tertiary
+ if(MATRIX_GREEN_BLUE) //composed of a green and blue section
+ primary_string = secondary_string //swap primary for secondary, as first option is green, which is linked to the secondary
+ secondary_string = tertiary_string //swap secondary for tertiary, as second option is blue, which is linked to the tertiary
+ else if(accessory.color_src != MATRIXED)
+ message_admins("Sprite Accessory Failure (migration from [current_version] to 39): Accessory [accessory.type] is a matrixed item without any matrixed sections set!")
+ continue
+ if(accessory.color_src == MATRIXED)
+ features[primary_string] = features["mcolor"]
+ features[secondary_string] = features["mcolor2"]
+ features[tertiary_string] = features["mcolor3"]
+ else if(accessory.color_src == MUTCOLORS)
+ features[primary_string] = features["mcolor"]
+ else if(accessory.color_src == MUTCOLORS2)
+ features[secondary_string] = features["mcolor2"]
+ else if(accessory.color_src == MUTCOLORS3)
+ features[tertiary_string] = features["mcolor3"]
/datum/preferences/proc/load_path(ckey,filename="preferences.sav")
if(!ckey)