mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-01-01 05:02:33 +00:00
Adds colourblind mode and a colour matrix editor (#17933)
* Colourblind mode + Matrix editor * increase that * Protanopia filter * Tritanopia filter * The SQL part * Refactor * you saw nothing
This commit is contained in:
@@ -24,6 +24,7 @@
|
||||
screentip_mode = query.item[18]
|
||||
screentip_color = query.item[19]
|
||||
ghost_darkness_level = query.item[20]
|
||||
colourblind_mode = query.item[21]
|
||||
|
||||
//Sanitize
|
||||
ooccolor = sanitize_hexcolor(ooccolor, initial(ooccolor))
|
||||
@@ -43,10 +44,10 @@
|
||||
screentip_mode = sanitize_integer(screentip_mode, 0, 20, initial(screentip_mode))
|
||||
screentip_color = sanitize_hexcolor(screentip_color, initial(screentip_color))
|
||||
ghost_darkness_level = sanitize_integer(ghost_darkness_level, 0, 255, initial(ghost_darkness_level))
|
||||
colourblind_mode = sanitize_inlist(colourblind_mode, list(COLOURBLIND_MODE_NONE, COLOURBLIND_MODE_DEUTER, COLOURBLIND_MODE_PROT, COLOURBLIND_MODE_TRIT), COLOURBLIND_MODE_NONE)
|
||||
return TRUE
|
||||
|
||||
/datum/preferences/proc/save_preferences(client/C)
|
||||
|
||||
// Might as well scrub out any malformed be_special list entries while we're here
|
||||
for(var/role in be_special)
|
||||
if(!(role in GLOB.special_roles))
|
||||
@@ -58,57 +59,57 @@
|
||||
deltimer(volume_mixer_saving)
|
||||
volume_mixer_saving = null
|
||||
|
||||
var/datum/db_query/query = SSdbcore.NewQuery({"UPDATE player
|
||||
SET
|
||||
ooccolor=:ooccolour,
|
||||
UI_style=:ui_style,
|
||||
UI_style_color=:ui_colour,
|
||||
UI_style_alpha=:ui_alpha,
|
||||
be_role=:berole,
|
||||
default_slot=:defaultslot,
|
||||
toggles=:toggles,
|
||||
toggles_2=:toggles2,
|
||||
atklog=:atklog,
|
||||
sound=:sound,
|
||||
volume_mixer=:volume_mixer,
|
||||
lastchangelog=:lastchangelog,
|
||||
clientfps=:clientfps,
|
||||
parallax=:parallax,
|
||||
2fa_status=:_2fa_status,
|
||||
screentip_mode=:screentip_mode,
|
||||
screentip_color=:screentip_color,
|
||||
ghost_darkness_level=:ghost_darkness_level
|
||||
WHERE ckey=:ckey"}, list(
|
||||
// OH GOD THE PARAMETERS
|
||||
"ooccolour" = ooccolor,
|
||||
"ui_style" = UI_style,
|
||||
"ui_colour" = UI_style_color,
|
||||
"ui_alpha" = UI_style_alpha,
|
||||
"berole" = list2params(be_special),
|
||||
"defaultslot" = default_slot,
|
||||
// Even though its a number in the DB, you have to use num2text here, otherwise byond adds scientific notation to the number
|
||||
"toggles" = num2text(toggles, CEILING(log(10, (TOGGLES_TOTAL)), 1)),
|
||||
"toggles2" = num2text(toggles2, CEILING(log(10, (TOGGLES_2_TOTAL)), 1)),
|
||||
"atklog" = atklog,
|
||||
"sound" = sound,
|
||||
"volume_mixer" = serialize_volume_mixer(volume_mixer),
|
||||
"lastchangelog" = lastchangelog,
|
||||
"clientfps" = clientfps,
|
||||
"parallax" = parallax,
|
||||
"_2fa_status" = _2fa_status,
|
||||
"screentip_mode" = screentip_mode,
|
||||
"screentip_color" = screentip_color,
|
||||
"ghost_darkness_level" = ghost_darkness_level,
|
||||
"ckey" = C.ckey,
|
||||
)
|
||||
)
|
||||
var/datum/db_query/query = SSdbcore.NewQuery({"UPDATE player SET
|
||||
ooccolor=:ooccolour,
|
||||
UI_style=:ui_style,
|
||||
UI_style_color=:ui_colour,
|
||||
UI_style_alpha=:ui_alpha,
|
||||
be_role=:berole,
|
||||
default_slot=:defaultslot,
|
||||
toggles=:toggles,
|
||||
toggles_2=:toggles2,
|
||||
atklog=:atklog,
|
||||
sound=:sound,
|
||||
volume_mixer=:volume_mixer,
|
||||
lastchangelog=:lastchangelog,
|
||||
clientfps=:clientfps,
|
||||
parallax=:parallax,
|
||||
2fa_status=:_2fa_status,
|
||||
screentip_mode=:screentip_mode,
|
||||
screentip_color=:screentip_color,
|
||||
ghost_darkness_level=:ghost_darkness_level,
|
||||
colourblind_mode=:colourblind_mode
|
||||
WHERE ckey=:ckey"}, list(
|
||||
// OH GOD THE PARAMETERS
|
||||
"ooccolour" = ooccolor,
|
||||
"ui_style" = UI_style,
|
||||
"ui_colour" = UI_style_color,
|
||||
"ui_alpha" = UI_style_alpha,
|
||||
"berole" = list2params(be_special),
|
||||
"defaultslot" = default_slot,
|
||||
// Even though its a number in the DB, you have to use num2text here, otherwise byond adds scientific notation to the number
|
||||
"toggles" = num2text(toggles, CEILING(log(10, (TOGGLES_TOTAL)), 1)),
|
||||
"toggles2" = num2text(toggles2, CEILING(log(10, (TOGGLES_2_TOTAL)), 1)),
|
||||
"atklog" = atklog,
|
||||
"sound" = sound,
|
||||
"volume_mixer" = serialize_volume_mixer(volume_mixer),
|
||||
"lastchangelog" = lastchangelog,
|
||||
"clientfps" = clientfps,
|
||||
"parallax" = parallax,
|
||||
"_2fa_status" = _2fa_status,
|
||||
"screentip_mode" = screentip_mode,
|
||||
"screentip_color" = screentip_color,
|
||||
"ghost_darkness_level" = ghost_darkness_level,
|
||||
"colourblind_mode" = colourblind_mode,
|
||||
"ckey" = C.ckey,
|
||||
))
|
||||
|
||||
if(!query.warn_execute())
|
||||
qdel(query)
|
||||
return
|
||||
|
||||
qdel(query)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/datum/preferences/proc/load_random_character_slot(client/C)
|
||||
var/list/datum/character_save/valid_slots = list()
|
||||
|
||||
Reference in New Issue
Block a user