void CVarSliderWidget_UpdateCVar(Widget &wi, Widget::Action action) { if(action != Widget::Modified) return; CVarSliderWidget &sldr = wi.as<CVarSliderWidget>(); cvartype_t varType = Con_GetVariableType(sldr.cvarPath()); if(CVT_NULL == varType) return; float value = sldr.value(); switch(varType) { case CVT_FLOAT: if(sldr.step() >= .01f) { Con_SetFloat2(sldr.cvarPath(), (int) (100 * value) / 100.0f, SVF_WRITE_OVERRIDE); } else { Con_SetFloat2(sldr.cvarPath(), value, SVF_WRITE_OVERRIDE); } break; case CVT_INT: Con_SetInteger2(sldr.cvarPath(), (int) value, SVF_WRITE_OVERRIDE); break; case CVT_BYTE: Con_SetInteger2(sldr.cvarPath(), (byte) value, SVF_WRITE_OVERRIDE); break; default: break; } }
void CVarColorEditWidget_UpdateCVar(Widget &wi, Widget::Action action) { CVarColorEditWidget *cbox = &wi.as<CVarColorEditWidget>(); if(action != Widget::Modified) return; Con_SetFloat2(cbox->redCVarPath(), cbox->red(), SVF_WRITE_OVERRIDE); Con_SetFloat2(cbox->greenCVarPath(), cbox->green(), SVF_WRITE_OVERRIDE); Con_SetFloat2(cbox->blueCVarPath(), cbox->blue(), SVF_WRITE_OVERRIDE); if(cbox->rgbaMode()) { Con_SetFloat2(cbox->alphaCVarPath(), cbox->alpha(), SVF_WRITE_OVERRIDE); } }