2 CLASS(XonoticGameViewSettingsTab) EXTENDS(XonoticTab)
3 //METHOD(XonoticGameCrosshairSettingsTab, toString, string(entity))
4 METHOD(XonoticGameViewSettingsTab, fill, void(entity))
5 METHOD(XonoticGameViewSettingsTab, showNotify, void(entity))
6 ATTRIB(XonoticGameViewSettingsTab, title, string, _("View"))
7 ATTRIB(XonoticGameViewSettingsTab, intendedWidth, float, 0.9)
8 ATTRIB(XonoticGameViewSettingsTab, rows, float, 13)
9 ATTRIB(XonoticGameViewSettingsTab, columns, float, 6.2)
10 ENDCLASS(XonoticGameViewSettingsTab)
11 entity makeXonoticGameViewSettingsTab();
15 void XonoticGameViewSettingsTab_showNotify(entity me)
19 entity makeXonoticGameViewSettingsTab()
22 me = spawnXonoticGameViewSettingsTab();
23 me.configureDialog(me);
27 void clippedspectatingclick(entity me, entity checkbox)
29 if(gamestatus & (GAME_CONNECTED | GAME_ISSERVER))
30 localcmd("sendcvar cl_clippedspectating\n");
32 CheckBox_Click(me, checkbox);
35 void XonoticGameViewSettingsTab_fill(entity me)
40 me.TD(me, 1, 3, e = makeXonoticRadioButton(1, "chase_active", "0", _("1st person perspective")));
41 makeMulti(e, "crosshair_hittest_showimpact");
44 me.TD(me, 1, 2.8, e = makeXonoticCheckBox(0, "cl_eventchase_death", _("Slide to third person upon death")));
45 setDependent(e, "chase_active", -1, 0);
48 me.TD(me, 1, 2.8, e = makeXonoticCheckBoxEx(0.05, 0, "cl_bobfall", _("Smooth the view when landing from a jump")));
49 setDependent(e, "chase_active", -1, 0);
52 me.TD(me, 1, 2.8, e = makeXonoticCheckBoxEx(0.05, 0, "cl_smoothviewheight", _("Smooth the view while crouching")));
53 setDependent(e, "chase_active", -1, 0);
56 me.TD(me, 1, 2.8, e = makeXonoticCheckBoxEx(1, 0, "v_idlescale", _("View waving while idle")));
57 setDependent(e, "chase_active", -1, 0);
60 me.TD(me, 1, 2.8, e = makeXonoticCheckBoxEx(0.01, 0, "cl_bob", _("View bobbing while walking around")));
61 makeMulti(e, "cl_bob2");
62 setDependent(e, "chase_active", -1, 0);
65 me.TD(me, 1, 3, e = makeXonoticRadioButton(1, "chase_active", "1", _("3rd person perspective")));
66 makeMulti(e, "crosshair_hittest_showimpact");
69 me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Back distance")));
70 setDependent(e, "chase_active", 1, 1);
71 me.TD(me, 1, 2, e = makeXonoticSlider(10, 100, 1, "chase_back"));
72 setDependent(e, "chase_active", 1, 1);
75 me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Up distance")));
76 setDependent(e, "chase_active", 1, 1);
77 me.TD(me, 1, 2, e = makeXonoticSlider(10, 50, 1, "chase_up"));
78 setDependent(e, "chase_active", 1, 1);
81 me.TD(me, 1, 3, e = makeXonoticCheckBox(1, "cl_clippedspectating", _("Allow passing through walls while spectating")));
82 e.onClick = clippedspectatingclick;
84 // todo: onclick, do sendcvar if connected
86 me.gotoRC(me, 0, 3.2); me.setFirstColumn(me, me.currentColumn);
87 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Field of view:")));
88 me.TD(me, 1, 2, e = makeXonoticSlider(60, 130, 5, "fov"));
91 //me.TDempty(me, 0.2);
92 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, ZCTX(_("ZOOM^Zoom factor:"))));
93 me.TD(me, 1, 2, e = makeXonoticSlider(2, 16, 0.5, "cl_zoomfactor"));
95 //me.TDempty(me, 0.2);
96 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, ZCTX(_("ZOOM^Zoom speed:"))));
97 me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_zoomspeed"));
98 e.addValue(e, "1", "1"); // Samual: for() loop doesn't work here, even though it would make sense.
99 e.addValue(e, "2", "2");
100 e.addValue(e, "3", "3");
101 e.addValue(e, "4", "4");
102 e.addValue(e, "5", "5");
103 e.addValue(e, "6", "6");
104 e.addValue(e, "7", "7");
105 e.addValue(e, "8", "8");
106 e.addValue(e, ZCTX(_("ZOOM^Instant")), "-1");
107 e.configureXonoticTextSliderValues(e);
109 //me.TDempty(me, 0.2);
110 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, ZCTX(_("ZOOM^Zoom sensitivity:"))));
111 me.TD(me, 1, 2, e = makeXonoticSlider(0, 1, 0.1, "cl_zoomsensitivity"));
114 me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "cl_velocityzoom_enabled", _("Velocity zoom")));
115 me.TD(me, 1, 2, e = makeXonoticCheckBoxEx(3, 1, "cl_velocityzoom_type", _("Forward movement only")));
116 setDependent(e, "cl_velocityzoom_enabled", 1, 1);
119 me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, ZCTX(_("VZOOM^Factor"))));
120 setDependentAND(e, "cl_velocityzoom_enabled", 1, 1, "cl_velocityzoom_type", 1, 3);
121 me.TD(me, 1, 2, e = makeXonoticSlider(-1, 1, 0.1, "cl_velocityzoom_factor"));
122 setDependentAND(e, "cl_velocityzoom_enabled", 1, 1, "cl_velocityzoom_type", 1, 3);
125 //me.TDempty(me, 0.2);
126 me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_reticle", _("Display reticle 2D overlay while zooming")));
128 //me.TDempty(me, 0.2);
129 me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_unpress_zoom_on_death", _("Release zoom when you die or respawn")));
130 makeMulti(e, "cl_unpress_zoom_on_spawn");
132 //me.TDempty(me, 0.2);
133 me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_unpress_zoom_on_weapon_switch", _("Release zoom when you switch weapons")));