More intermission music client side, and fix an issue I introduced
[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.TR(me);\r
90                 me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Field of View:"));\r
91                 me.TD(me, 1, 2, e = makeVoretSlider(60, 130, 1, "fov"));\r
92         me.TR(me);\r
93                 me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Damage kick:"));\r
94                 me.TD(me, 1, 2, e = makeVoretSlider(0, 0.5, 0.05, "v_kicktime"));\r
95         me.TR(me);\r
96                 sl = makeVoretSlider(0.45, 0.75, 0.01, "cl_bobcycle");\r
97                 me.TD(me, 1, 1, e = makeVoretSliderCheckBox(0, 1, sl, "View bobbing:"));\r
98                 me.TD(me, 1, 2, sl);\r
99         \r
100         me.TR(me);\r
101         me.TR(me);\r
102                 me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Zoom Factor:"));\r
103                 me.TD(me, 1, 2, e = makeVoretSlider(2, 16, 0.5, "cl_zoomfactor"));\r
104         me.TR(me);\r
105                 sl = makeVoretSlider(1, 8, 0.5, "cl_zoomspeed");\r
106                 me.TD(me, 1, 1, e = makeVoretSliderCheckBox(-1, 1, sl, "Zoom speed:"));\r
107                 me.TD(me, 1, 2, sl);\r
108         me.TR(me);\r
109         me.TR(me);\r
110                 me.TD(me, 1, 2.8, e = makeVoretCheckBox(0, "cl_artwork", "Intermission art & music"));\r
111                 makeMulti(e, "cl_intermission");\r
112         me.TR(me);\r
113         me.TR(me);\r
114                 me.TDempty(me, 0.4);\r
115                 me.TD(me, 1, 2.2, e = makeVoretButton("Weapon & Crosshair settings...", '0 0 0'));\r
116                         e.onClick = DialogOpenButton_Click;\r
117                         e.onClickEntity = main.weaponsDialog;\r
118         me.TR(me);\r
119         me.TR(me);\r
120                 me.TDempty(me, 0.4);\r
121                 me.TD(me, 1, 2.2, e = makeVoretButton("Radar, HUD & Waypoints...", '0 0 0'));\r
122                         e.onClick = DialogOpenButton_Click;\r
123                         e.onClickEntity = main.hudDialog;\r
124                 me.TDempty(me, 0.5);\r
125         me.TR(me);\r
126         #ifdef ALLOW_FORCEMODELS\r
127                 me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Force Models:"));\r
128                 me.TD(me, 1, 2/3, e = makeVoretRadioButton(2, string_null, string_null, "None"));\r
129                 me.TD(me, 1, 2/3, e = makeVoretRadioButton(2, "cl_forceplayermodelsfromvoret", string_null, "Custom"));\r
130                 me.TD(me, 1, 2/3, e = makeVoretRadioButton(2, "cl_forceplayermodels", string_null, "All"));\r
131         #endif\r
132         me.TR(me);\r
133                 me.TD(me, 1, 3, e = makeVoretCheckBox(0, "cl_gentle", "Disable gore effects"));\r
134         me.TR(me);\r
135                 me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Gibs:"));\r
136                 me.TD(me, 1, 2, e = makeVoretTextSlider("cl_nogibs"));\r
137                         e.addValue(e, "None", "1");\r
138                         e.addValue(e, "Few", "0.75");\r
139                         e.addValue(e, "Many", "0.5");\r
140                         e.addValue(e, "Lots", "0");\r
141                         e.configureVoretTextSliderValues(e);\r
142                         setDependent(e, "cl_gentle", 0, 0);\r
143         me.TR(me);\r
144 \r
145         me.gotoRC(me, me.rows - 1, 0);\r
146                 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
147 }\r
148 #endif\r