]> de.git.xonotic.org Git - voretournament/voretournament.git/blob - data/qcsrc/menu/voret/dialog_multiplayer_playersetup.c
Though honestly, 0.65 seems like a better default
[voretournament/voretournament.git] / data / qcsrc / menu / voret / dialog_multiplayer_playersetup.c
1 #ifdef INTERFACE\r
2 CLASS(VoretPlayerSettingsTab) EXTENDS(VoretTab)\r
3         METHOD(VoretPlayerSettingsTab, fill, void(entity))\r
4         METHOD(VoretPlayerSettingsTab, draw, void(entity))\r
5         ATTRIB(VoretPlayerSettingsTab, title, string, "Player Setup")\r
6         ATTRIB(VoretPlayerSettingsTab, intendedWidth, float, 0.9)\r
7         ATTRIB(VoretPlayerSettingsTab, rows, float, 22)\r
8         ATTRIB(VoretPlayerSettingsTab, columns, float, 6.5)\r
9         ATTRIB(VoretPlayerSettingsTab, playerNameLabel, entity, NULL)\r
10         ATTRIB(VoretPlayerSettingsTab, playerNameLabelAlpha, float, 0)\r
11 ENDCLASS(VoretPlayerSettingsTab)\r
12 entity makeVoretPlayerSettingsTab();\r
13 #endif\r
14 \r
15 #ifdef IMPLEMENTATION\r
16 entity makeVoretPlayerSettingsTab()\r
17 {\r
18         entity me;\r
19         me = spawnVoretPlayerSettingsTab();\r
20         me.configureDialog(me);\r
21         return me;\r
22 }\r
23 void drawVoretPlayerSettingsTab(entity me)\r
24 {\r
25         if(cvar_string("_cl_name") == "Player")\r
26                 me.playerNameLabel.alpha = ((mod(time * 2, 2) < 1) ? 1 : 0);\r
27         else\r
28                 me.playerNameLabel.alpha = me.playerNameLabelAlpha;\r
29         drawContainer(me);\r
30 }\r
31 void fillVoretPlayerSettingsTab(entity me)\r
32 {\r
33         entity e, pms, sl, label, box;\r
34         float i, r, m, n;\r
35 \r
36         me.TR(me);\r
37                 me.TD(me, 1, 0.5, me.playerNameLabel = makeVoretTextLabel(0, "Name:"));\r
38                         me.playerNameLabelAlpha = me.playerNameLabel.alpha;\r
39                 me.TD(me, 1, 2.5, label = makeVoretTextLabel(0, string_null));\r
40                         label.allowCut = 1;\r
41                         label.allowColors = 1;\r
42                         label.alpha = 1;\r
43         me.TR(me);\r
44                 me.TD(me, 1, 3.0, box = makeVoretInputBox(1, "_cl_name"));\r
45                         box.forbiddenCharacters = "\r\n\\\"$"; // don't care, isn't getting saved\r
46                         box.maxLength = 63;\r
47                         label.textEntity = box;\r
48         me.TR(me);\r
49                 me.TD(me, 5, 1, e = makeVoretColorpicker(box));\r
50                 me.TD(me, 5, 2, e = makeVoretCharmap(box));\r
51         me.TR(me);\r
52         me.TR(me);\r
53         me.TR(me);\r
54         me.TR(me);\r
55         me.TR(me);\r
56         me.TR(me);\r
57         me.gotoRC(me, 8, 0.0);\r
58                 r = me.currentRow;\r
59                 m = me.rows - r - 2;\r
60                 n = 16 - !cvar("developer");\r
61                 m = m / (n - 1);\r
62                 for(i = 0; i < n; ++i)\r
63                 {\r
64                         me.gotoRC(me, r + i * m, 0.1);\r
65                         me.TDNoMargin(me, m, 0.2, e = makeVoretColorButton(1, 0, i), '0 1 0');\r
66                 }\r
67                 for(i = 0; i < n; ++i)\r
68                 {\r
69                         me.gotoRC(me, r + i * m, 0.4);\r
70                         me.TDNoMargin(me, m, 0.2, e = makeVoretColorButton(2, 1, i), '0 1 0');\r
71                 }\r
72         me.gotoRC(me, 8, 0.6);\r
73                 pms = makeVoretPlayerModelSelector();\r
74                 me.TD(me, 1, 0.3, e = makeVoretButton("<<", '0 0 0'));\r
75                         e.onClick = PlayerModelSelector_Prev_Click;\r
76                         e.onClickEntity = pms;\r
77                 me.TD(me, me.rows - me.currentRow - 1, 1.8, pms);\r
78                 me.TD(me, 1, 0.3, e = makeVoretButton(">>", '0 0 0'));\r
79                         e.onClick = PlayerModelSelector_Next_Click;\r
80                         e.onClickEntity = pms;\r
81         me.gotoRC(me, 0, 3.5); me.setFirstColumn(me, me.currentColumn);\r
82                 me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Camera type:"));\r
83                 me.TD(me, 1, 1, e = makeVoretRadioButton(1, "chase_active", "0", "1st person"));\r
84                 me.TD(me, 1, 1, e = makeVoretRadioButton(1, "chase_active", "1", "3rd person"));\r
85         me.TR(me);\r
86                 me.TD(me, 1, 2, e = makeVoretCheckBoxEx(1, -1, "cl_vore_stomachmodel", "Stomach model"));\r
87                 setDependent(e, "chase_active", 0, 0);\r
88         me.TR(me);\r
89                 me.TD(me, 1, 2, e = makeVoretCheckBoxEx(0.65, 0, "hud_damage", "Screen splashes")); // must match defaults\r
90                 makeMulti(e, "hud_stomach");\r
91         me.TR(me);\r
92         me.TR(me);\r
93                 me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Field of View:"));\r
94                 me.TD(me, 1, 2, e = makeVoretSlider(60, 130, 1, "fov"));\r
95         me.TR(me);\r
96                 me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Damage kick:"));\r
97                 me.TD(me, 1, 2, e = makeVoretSlider(0, 0.5, 0.05, "v_kicktime"));\r
98         me.TR(me);\r
99                 sl = makeVoretSlider(0.45, 0.75, 0.01, "cl_bobcycle");\r
100                 me.TD(me, 1, 1, e = makeVoretSliderCheckBox(0, 1, sl, "View bobbing:"));\r
101                 me.TD(me, 1, 2, sl);\r
102         \r
103         me.TR(me);\r
104         me.TR(me);\r
105                 me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Zoom Factor:"));\r
106                 me.TD(me, 1, 2, e = makeVoretSlider(2, 16, 0.5, "cl_zoomfactor"));\r
107         me.TR(me);\r
108                 sl = makeVoretSlider(1, 8, 0.5, "cl_zoomspeed");\r
109                 me.TD(me, 1, 1, e = makeVoretSliderCheckBox(-1, 1, sl, "Zoom speed:"));\r
110                 me.TD(me, 1, 2, sl);\r
111         me.TR(me);\r
112         me.TR(me);\r
113                 me.TD(me, 1, 2.8, e = makeVoretCheckBox(0, "cl_artwork", "Intermission art & music"));\r
114                 makeMulti(e, "cl_intermission");\r
115         me.TR(me);\r
116         me.TR(me);\r
117                 me.TDempty(me, 0.4);\r
118                 me.TD(me, 1, 2.2, e = makeVoretButton("Weapon & Crosshair settings...", '0 0 0'));\r
119                         e.onClick = DialogOpenButton_Click;\r
120                         e.onClickEntity = main.weaponsDialog;\r
121         me.TR(me);\r
122         me.TR(me);\r
123                 me.TDempty(me, 0.4);\r
124                 me.TD(me, 1, 2.2, e = makeVoretButton("Radar, HUD & Waypoints...", '0 0 0'));\r
125                         e.onClick = DialogOpenButton_Click;\r
126                         e.onClickEntity = main.hudDialog;\r
127                 me.TDempty(me, 0.5);\r
128         me.TR(me);\r
129         #ifdef ALLOW_FORCEMODELS\r
130                 me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Force Models:"));\r
131                 me.TD(me, 1, 2/3, e = makeVoretRadioButton(2, string_null, string_null, "None"));\r
132                 me.TD(me, 1, 2/3, e = makeVoretRadioButton(2, "cl_forceplayermodelsfromvoret", string_null, "Custom"));\r
133                 me.TD(me, 1, 2/3, e = makeVoretRadioButton(2, "cl_forceplayermodels", string_null, "All"));\r
134         #endif\r
135         me.TR(me);\r
136                 me.TD(me, 1, 3, e = makeVoretCheckBox(0, "cl_gentle", "Disable gore effects"));\r
137         me.TR(me);\r
138                 me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Gibs:"));\r
139                 me.TD(me, 1, 2, e = makeVoretTextSlider("cl_nogibs"));\r
140                         e.addValue(e, "None", "1");\r
141                         e.addValue(e, "Few", "0.75");\r
142                         e.addValue(e, "Many", "0.5");\r
143                         e.addValue(e, "Lots", "0");\r
144                         e.configureVoretTextSliderValues(e);\r
145                         setDependent(e, "cl_gentle", 0, 0);\r
146         me.TR(me);\r
147 \r
148         me.gotoRC(me, me.rows - 1, 0);\r
149                 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));\r
150 }\r
151 #endif\r