- if(cvar_string(theCvar) != "")
- me.prevcoords = color_hslimage(stov(cvar_string(theCvar)), me.imagemargin);
- else // use default
- me.prevcoords = color_hslimage(stov(cvar_string(theDefaultCvar)), me.imagemargin);
+ if(theCvar)
+ {
+ me.cvarName = theCvar;
+ me.tooltip = getZonedTooltipForIdentifier(theCvar);
+ me.loadCvars(me);
+ }
+}
+
+void XonoticColorPickerString_loadCvars(entity me)
+{
+ if not(me.cvarName)
+ return;
+
+ if(substring(me.cvarName, -1, 1) == "_")
+ {
+ me.prevcoords = color_hslimage(
+ eX * cvar(strcat(me.cvarName, "red")) +
+ eY * cvar(strcat(me.cvarName, "green")) +
+ eZ * cvar(strcat(me.cvarName, "blue")),
+ me.imagemargin);
+ }
+ else
+ me.prevcoords = color_hslimage(stov(cvar_string(me.cvarName)), me.imagemargin);
+}
+
+void XonoticColorPickerString_saveCvars(entity me)
+{
+ if not(me.cvarName)
+ return;
+
+ if(substring(me.cvarName, -1, 1) == "_")
+ {
+ vector v = hslimage_color(me.prevcoords, me.imagemargin);
+ cvar_set(strcat(me.cvarName, "red"), ftos(v_x));
+ cvar_set(strcat(me.cvarName, "green"), ftos(v_y));
+ cvar_set(strcat(me.cvarName, "blue"), ftos(v_z));
+ }
+ else
+ cvar_set(me.cvarName, sprintf("%v", hslimage_color(me.prevcoords, me.imagemargin)));