#ifdef INTERFACE CLASS(VoretPlayerSettingsTab) EXTENDS(VoretTab) METHOD(VoretPlayerSettingsTab, fill, void(entity)) METHOD(VoretPlayerSettingsTab, draw, void(entity)) ATTRIB(VoretPlayerSettingsTab, title, string, "Player Setup") ATTRIB(VoretPlayerSettingsTab, intendedWidth, float, 0.9) ATTRIB(VoretPlayerSettingsTab, rows, float, 22) ATTRIB(VoretPlayerSettingsTab, columns, float, 6.5) ATTRIB(VoretPlayerSettingsTab, playerNameLabel, entity, NULL) ATTRIB(VoretPlayerSettingsTab, playerNameLabelAlpha, float, 0) ENDCLASS(VoretPlayerSettingsTab) entity makeVoretPlayerSettingsTab(); #endif #ifdef IMPLEMENTATION entity makeVoretPlayerSettingsTab() { entity me; me = spawnVoretPlayerSettingsTab(); me.configureDialog(me); return me; } void drawVoretPlayerSettingsTab(entity me) { if(cvar_string("_cl_name") == "Player") me.playerNameLabel.alpha = ((mod(time * 2, 2) < 1) ? 1 : 0); else me.playerNameLabel.alpha = me.playerNameLabelAlpha; drawContainer(me); } void fillVoretPlayerSettingsTab(entity me) { entity e, pms, sl, label, box; float i, r, m, n; me.TR(me); me.TD(me, 1, 0.5, me.playerNameLabel = makeVoretTextLabel(0, "Name:")); me.playerNameLabelAlpha = me.playerNameLabel.alpha; me.TD(me, 1, 2.5, label = makeVoretTextLabel(0, string_null)); label.allowCut = 1; label.allowColors = 1; label.alpha = 1; me.TR(me); me.TD(me, 1, 3.0, box = makeVoretInputBox(1, "_cl_name")); box.forbiddenCharacters = "\r\n\\\"$"; // don't care, isn't getting saved box.maxLength = 63; label.textEntity = box; me.TR(me); me.TD(me, 5, 1, e = makeVoretColorpicker(box)); me.TD(me, 5, 2, e = makeVoretCharmap(box)); me.TR(me); me.TR(me); me.TR(me); me.TR(me); me.TR(me); me.TR(me); me.gotoRC(me, 8, 0.0); r = me.currentRow; m = me.rows - r - 2; n = 16 - !cvar("developer"); m = m / (n - 1); for(i = 0; i < n; ++i) { me.gotoRC(me, r + i * m, 0.1); me.TDNoMargin(me, m, 0.2, e = makeVoretColorButton(1, 0, i), '0 1 0'); } for(i = 0; i < n; ++i) { me.gotoRC(me, r + i * m, 0.4); me.TDNoMargin(me, m, 0.2, e = makeVoretColorButton(2, 1, i), '0 1 0'); } me.gotoRC(me, 8, 0.6); pms = makeVoretPlayerModelSelector(); me.TD(me, 1, 0.3, e = makeVoretButton("<<", '0 0 0')); e.onClick = PlayerModelSelector_Prev_Click; e.onClickEntity = pms; me.TD(me, me.rows - me.currentRow - 1, 1.8, pms); me.TD(me, 1, 0.3, e = makeVoretButton(">>", '0 0 0')); e.onClick = PlayerModelSelector_Next_Click; e.onClickEntity = pms; me.gotoRC(me, 0, 3.5); me.setFirstColumn(me, me.currentColumn); me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Camera type:")); me.TD(me, 1, 1, e = makeVoretRadioButton(1, "chase_active", "0", "1st person")); me.TD(me, 1, 1, e = makeVoretRadioButton(1, "chase_active", "1", "3rd person")); me.TR(me); me.TD(me, 1, 2, e = makeVoretCheckBoxEx(1, -1, "cl_vore_stomachmodel", "Stomach model")); setDependent(e, "chase_active", 0, 0); me.TR(me); me.TR(me); me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Field of View:")); me.TD(me, 1, 2, e = makeVoretSlider(60, 130, 1, "fov")); me.TR(me); me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Damage kick:")); me.TD(me, 1, 2, e = makeVoretSlider(0, 0.5, 0.05, "v_kicktime")); me.TR(me); sl = makeVoretSlider(0.45, 0.75, 0.01, "cl_bobcycle"); me.TD(me, 1, 1, e = makeVoretSliderCheckBox(0, 1, sl, "View bobbing:")); me.TD(me, 1, 2, sl); me.TR(me); me.TR(me); me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Zoom Factor:")); me.TD(me, 1, 2, e = makeVoretSlider(2, 16, 0.5, "cl_zoomfactor")); me.TR(me); sl = makeVoretSlider(1, 8, 0.5, "cl_zoomspeed"); me.TD(me, 1, 1, e = makeVoretSliderCheckBox(-1, 1, sl, "Zoom speed:")); me.TD(me, 1, 2, sl); me.TR(me); me.TR(me); me.TD(me, 1, 2.8, e = makeVoretCheckBox(0, "cl_artwork", "Intermission art & music")); makeMulti(e, "sv_intermission"); me.TR(me); me.TR(me); me.TDempty(me, 0.4); me.TD(me, 1, 2.2, e = makeVoretButton("Weapon & Crosshair settings...", '0 0 0')); e.onClick = DialogOpenButton_Click; e.onClickEntity = main.weaponsDialog; me.TR(me); me.TR(me); me.TDempty(me, 0.4); me.TD(me, 1, 2.2, e = makeVoretButton("Radar, HUD & Waypoints...", '0 0 0')); e.onClick = DialogOpenButton_Click; e.onClickEntity = main.hudDialog; me.TDempty(me, 0.5); me.TR(me); #ifdef ALLOW_FORCEMODELS me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Force Models:")); me.TD(me, 1, 2/3, e = makeVoretRadioButton(2, string_null, string_null, "None")); me.TD(me, 1, 2/3, e = makeVoretRadioButton(2, "cl_forceplayermodelsfromvoret", string_null, "Custom")); me.TD(me, 1, 2/3, e = makeVoretRadioButton(2, "cl_forceplayermodels", string_null, "All")); #endif me.TR(me); me.TD(me, 1, 3, e = makeVoretCheckBox(0, "cl_gentle", "Disable gore effects")); me.TR(me); me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Gibs:")); me.TD(me, 1, 2, e = makeVoretTextSlider("cl_nogibs")); e.addValue(e, "None", "1"); e.addValue(e, "Few", "0.75"); e.addValue(e, "Many", "0.5"); e.addValue(e, "Lots", "0"); e.configureVoretTextSliderValues(e); setDependent(e, "cl_gentle", 0, 0); me.TR(me); me.gotoRC(me, me.rows - 1, 0); me.TD(me, 1, me.columns, makeVoretCommandButton("Apply immediately", '0 0 0', "color -1 -1;name \"$_cl_name\";cl_cmd sendcvar cl_weaponpriority;sendcvar cl_zoomfactor;sendcvar cl_zoomspeed;sendcvar cl_autoswitch;sendcvar cl_shownames;sendcvar cl_forceplayermodelsfromvoret;sendcvar cl_forceplayermodels", COMMANDBUTTON_APPLY)); } #endif