]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/menu/xonotic/dialog_settings_game_view.qc
Merge branch 'terencehill/menu_fixes' into 'master'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / dialog_settings_game_view.qc
1 #ifndef DIALOG_SETTINGS_GAME_VIEW_H
2 #define DIALOG_SETTINGS_GAME_VIEW_H
3 #include "tab.qc"
4 CLASS(XonoticGameViewSettingsTab, XonoticTab)
5         METHOD(XonoticGameViewSettingsTab, fill, void(entity));
6         METHOD(XonoticGameViewSettingsTab, showNotify, void(entity));
7         ATTRIB(XonoticGameViewSettingsTab, title, string, _("View"))
8         ATTRIB(XonoticGameViewSettingsTab, intendedWidth, float, 0.9)
9         ATTRIB(XonoticGameViewSettingsTab, rows, float, 15.5)
10         ATTRIB(XonoticGameViewSettingsTab, columns, float, 6.2)
11 ENDCLASS(XonoticGameViewSettingsTab)
12 entity makeXonoticGameViewSettingsTab();
13 #include "../gamesettings.qh"
14 REGISTER_SETTINGS(View, makeXonoticGameViewSettingsTab());
15 #endif
16
17 #ifdef IMPLEMENTATION
18 void XonoticGameViewSettingsTab_showNotify(entity me)
19 {
20         loadAllCvars(me);
21 }
22 entity makeXonoticGameViewSettingsTab()
23 {
24         entity me;
25         me = NEW(XonoticGameViewSettingsTab);
26         me.configureDialog(me);
27         return me;
28 }
29
30 void XonoticGameViewSettingsTab_fill(entity me)
31 {
32         entity e;
33
34         me.TR(me);
35                 me.TD(me, 1, 3, e = makeXonoticRadioButton(1, "chase_active", "0", _("1st person perspective")));
36                 makeMulti(e, "crosshair_hittest_showimpact");
37         me.TR(me);
38                 me.TDempty(me, 0.2);
39                 me.TD(me, 1, 2.8, e = makeXonoticCheckBox(0, "cl_eventchase_death", _("Slide to third person upon death")));
40                 setDependent(e, "chase_active", -1, 0);
41         me.TR(me);
42                 me.TDempty(me, 0.2);
43                 me.TD(me, 1, 2.8, e = makeXonoticCheckBoxEx(0.05, 0, "cl_bobfall", _("Smooth the view when landing from a jump")));
44                 setDependent(e, "chase_active", -1, 0);
45         me.TR(me);
46                 me.TDempty(me, 0.2);
47                 me.TD(me, 1, 2.8, e = makeXonoticCheckBoxEx(0.05, 0, "cl_smoothviewheight", _("Smooth the view while crouching")));
48                 setDependent(e, "chase_active", -1, 0);
49         me.TR(me);
50                 me.TDempty(me, 0.2);
51                 me.TD(me, 1, 2.8, e = makeXonoticCheckBoxEx(1, 0, "v_idlescale", _("View waving while idle")));
52                 setDependent(e, "chase_active", -1, 0);
53         me.TR(me);
54                 me.TDempty(me, 0.2);
55                 me.TD(me, 1, 2.8, e = makeXonoticCheckBoxEx_T(0.01, 0, "cl_bob", _("View bobbing while walking around"), "-"));
56                 makeMulti(e, "cl_bob2");
57                 setDependent(e, "chase_active", -1, 0);
58         me.TR(me);
59         me.TR(me);
60                 me.TD(me, 1, 3, e = makeXonoticRadioButton(1, "chase_active", "1", _("3rd person perspective")));
61                 makeMulti(e, "crosshair_hittest_showimpact");
62         me.TR(me);
63                 me.TDempty(me, 0.2);
64                 me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Back distance")));
65                 setDependent(e, "chase_active", 1, 1);
66                 me.TD(me, 1, 2, e = makeXonoticSlider(10, 100, 1, "chase_back"));
67                 setDependent(e, "chase_active", 1, 1);
68         me.TR(me);
69                 me.TDempty(me, 0.2);
70                 me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Up distance")));
71                 setDependent(e, "chase_active", 1, 1);
72                 me.TD(me, 1, 2, e = makeXonoticSlider(10, 50, 1, "chase_up"));
73                 setDependent(e, "chase_active", 1, 1);
74         me.TR(me);
75         me.TR(me);
76                 me.TD(me, 1, 3, e = makeXonoticCheckBox(1, "cl_clippedspectating", _("Allow passing through walls while spectating")));
77
78         me.gotoRC(me, 0, 3.2); me.setFirstColumn(me, me.currentColumn);
79                 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Field of view:")));
80                 me.TD(me, 1, 2, e = makeXonoticSlider_T(60, 130, 5, "fov",
81                         _("Field of vision in degrees (default: 100)")));
82         me.TR(me);
83         me.TR(me);
84                 //me.TDempty(me, 0.2);
85                 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, ZCTX(_("ZOOM^Zoom factor:"))));
86                 me.TD(me, 1, 2, e = makeXonoticSlider_T(2, 30, 0.5, "cl_zoomfactor",
87                         _("How big the zoom factor is when the zoom button is pressed")));
88         me.TR(me);
89                 //me.TDempty(me, 0.2);
90                 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, ZCTX(_("ZOOM^Zoom speed:"))));
91                 me.TD(me, 1, 2, e = makeXonoticTextSlider_T("cl_zoomspeed",
92                         _("How fast the view will be zoomed, disable to zoom instantly")));
93                         e.addValue(e, "1", "1"); // Samual: for() loop doesn't work here, even though it would make sense.
94                         e.addValue(e, "2", "2");
95                         e.addValue(e, "3", "3");
96                         e.addValue(e, "4", "4");
97                         e.addValue(e, "5", "5");
98                         e.addValue(e, "6", "6");
99                         e.addValue(e, "7", "7");
100                         e.addValue(e, "8", "8");
101                         e.addValue(e, ZCTX(_("ZOOM^Instant")), "-1");
102                         e.configureXonoticTextSliderValues(e);
103         me.TR(me);
104                 //me.TDempty(me, 0.2);
105                 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, ZCTX(_("ZOOM^Zoom sensitivity:"))));
106                 me.TD(me, 1, 2, e = makeXonoticSlider_T(0, 1, 0.1, "cl_zoomsensitivity",
107                         _("How zoom changes sensitivity, from 0 (lower sensitivity) to 1 (no sensitivity change)")));
108         me.TR(me);
109         me.TR(me);
110                 me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "cl_velocityzoom_enabled", _("Velocity zoom")));
111                 me.TD(me, 1, 2, e = makeXonoticCheckBoxEx(3, 1, "cl_velocityzoom_type", _("Forward movement only")));
112                         setDependent(e, "cl_velocityzoom_enabled", 1, 1);
113         me.TR(me);
114                 me.TDempty(me, 0.2);
115                 me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, ZCTX(_("VZOOM^Factor"))));
116                         setDependentAND(e, "cl_velocityzoom_enabled", 1, 1, "cl_velocityzoom_type", 1, 3);
117                 me.TD(me, 1, 2, e = makeXonoticSlider(-1, 1, 0.1, "cl_velocityzoom_factor"));
118                         setDependentAND(e, "cl_velocityzoom_enabled", 1, 1, "cl_velocityzoom_type", 1, 3);
119         me.TR(me);
120         me.TR(me);
121                 //me.TDempty(me, 0.2);
122                 me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_reticle", _("Display reticle 2D overlay while zooming")));
123         me.TR(me);
124                 //me.TDempty(me, 0.2);
125                 me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "cl_unpress_zoom_on_death", _("Release zoom when you die or respawn"), "-"));
126                         makeMulti(e, "cl_unpress_zoom_on_spawn");
127         me.TR(me);
128                 //me.TDempty(me, 0.2);
129                 me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_unpress_zoom_on_weapon_switch", _("Release zoom when you switch weapons")));
130 }
131 #endif