Menu-FN: Store top and bottomcolor in a global and recalculate the RGB values only
when the sliders are used.
This commit is contained in:
parent
f4f033ca3d
commit
c821112d05
1 changed files with 13 additions and 8 deletions
|
@ -23,6 +23,9 @@ CPictureSwitch cz_psModel;
|
||||||
CSlider cz_sldTopcolor;
|
CSlider cz_sldTopcolor;
|
||||||
CSlider cz_sldBottomcolor;
|
CSlider cz_sldBottomcolor;
|
||||||
|
|
||||||
|
vector g_vecTopcolor;
|
||||||
|
vector g_vecBottomcolor;
|
||||||
|
|
||||||
string *g_models;
|
string *g_models;
|
||||||
int g_modelcount;
|
int g_modelcount;
|
||||||
string *g_sprays;
|
string *g_sprays;
|
||||||
|
@ -129,7 +132,7 @@ vector hsv2rgb(float h, float s, float v)
|
||||||
col[1] = rint(255*p);
|
col[1] = rint(255*p);
|
||||||
col[2] = rint(255*v);
|
col[2] = rint(255*v);
|
||||||
break;
|
break;
|
||||||
default: // case 5:
|
default:
|
||||||
col[0] = rint(255*v);
|
col[0] = rint(255*v);
|
||||||
col[1] = rint(255*p);
|
col[1] = rint(255*p);
|
||||||
col[2] = rint(255*q);
|
col[2] = rint(255*q);
|
||||||
|
@ -144,6 +147,7 @@ cz_sldTopcolorChanged(float val)
|
||||||
float id = x[2] + (x[1] << 8) + (x[0] << 16);
|
float id = x[2] + (x[1] << 8) + (x[0] << 16);
|
||||||
cvar_set("topcolor", sprintf("0x%x", id));
|
cvar_set("topcolor", sprintf("0x%x", id));
|
||||||
localcmd(sprintf("seta _cl_topcolor %f\n", val));
|
localcmd(sprintf("seta _cl_topcolor %f\n", val));
|
||||||
|
g_vecTopcolor = x / 255;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -153,6 +157,7 @@ cz_sldBottomcolorChanged(float val)
|
||||||
float id = x[2] + (x[1] << 8) + (x[0] << 16);
|
float id = x[2] + (x[1] << 8) + (x[0] << 16);
|
||||||
cvar_set("bottomcolor", sprintf("0x%x", id));
|
cvar_set("bottomcolor", sprintf("0x%x", id));
|
||||||
localcmd(sprintf("seta _cl_bottomcolor %f\n", val));
|
localcmd(sprintf("seta _cl_bottomcolor %f\n", val));
|
||||||
|
g_vecBottomcolor = x / 255;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -250,7 +255,10 @@ menu_customize_init(void)
|
||||||
cz_psModel.SetMax(g_modelcount);
|
cz_psModel.SetMax(g_modelcount);
|
||||||
cz_psModel.SetCallback(cz_cbModelChanged);
|
cz_psModel.SetCallback(cz_cbModelChanged);
|
||||||
cz_psModel.SetValueS(sprintf("models/player/%s/%s", cvar_string("_cl_playermodel"), cvar_string("_cl_playermodel")));
|
cz_psModel.SetValueS(sprintf("models/player/%s/%s", cvar_string("_cl_playermodel"), cvar_string("_cl_playermodel")));
|
||||||
Widget_Add(fn_customize, cz_psModel);
|
Widget_Add(fn_customize, cz_psModel);
|
||||||
|
|
||||||
|
g_vecTopcolor = hsv2rgb(cvar("_cl_topcolor") * 360, 100, 100) / 255;
|
||||||
|
g_vecBottomcolor = hsv2rgb(cvar("_cl_bottomcolor") * 360, 100, 100) / 255;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -265,12 +273,9 @@ menu_customize_draw(void)
|
||||||
if (games[gameinfo_current].nomodels == 0) {
|
if (games[gameinfo_current].nomodels == 0) {
|
||||||
WLabel_Static(410, 140, sprintf(m_reslbl[IDS_MODEL_NAME], cvar_string("_cl_playermodel")), 14, 14, [1,1,1],
|
WLabel_Static(410, 140, sprintf(m_reslbl[IDS_MODEL_NAME], cvar_string("_cl_playermodel")), 14, 14, [1,1,1],
|
||||||
1.0f, 0, font_arial);
|
1.0f, 0, font_arial);
|
||||||
|
|
||||||
vector t, b;
|
drawfill([g_menuofs[0] + 414,g_menuofs[1] + 346], [64,12], g_vecTopcolor, 0.75f);
|
||||||
t = hsv2rgb(cvar("_cl_topcolor") * 360, 100, 100) / 255;
|
drawfill([g_menuofs[0] + 510,g_menuofs[1] + 346], [64,12], g_vecBottomcolor, 0.75f);
|
||||||
b = hsv2rgb(cvar("_cl_bottomcolor") * 360, 100, 100) / 255;
|
|
||||||
drawfill([g_menuofs[0] + 414,g_menuofs[1] + 346], [64,12], t, 0.75f);
|
|
||||||
drawfill([g_menuofs[0] + 510,g_menuofs[1] + 346], [64,12], b, 0.75f);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (games[gameinfo_current].nosprays == 0)
|
if (games[gameinfo_current].nosprays == 0)
|
||||||
|
|
Loading…
Reference in a new issue