]> de.git.xonotic.org Git - voretournament/voretournament.git/blob - data/qcsrc/menu/voret/dialog_multiplayer_create_mutators.c
"No start weapon" mutator
[voretournament/voretournament.git] / data / qcsrc / menu / voret / dialog_multiplayer_create_mutators.c
1 #ifdef INTERFACE\r
2 CLASS(VoretMutatorsDialog) EXTENDS(VoretDialog)\r
3         METHOD(VoretMutatorsDialog, toString, string(entity))\r
4         METHOD(VoretMutatorsDialog, fill, void(entity))\r
5         METHOD(VoretMutatorsDialog, showNotify, void(entity))\r
6         METHOD(VoretMutatorsDialog, close, void(entity))\r
7         ATTRIB(VoretMutatorsDialog, title, string, "Mutators")\r
8         ATTRIB(VoretMutatorsDialog, color, vector, SKINCOLOR_DIALOG_MUTATORS)\r
9         ATTRIB(VoretMutatorsDialog, intendedWidth, float, 0.3)\r
10         ATTRIB(VoretMutatorsDialog, rows, float, 18)\r
11         ATTRIB(VoretMutatorsDialog, columns, float, 2)\r
12         ATTRIB(VoretMutatorsDialog, refilterEntity, entity, NULL)\r
13 ENDCLASS(VoretMutatorsDialog)\r
14 #endif\r
15 \r
16 #ifdef IMPLEMENTATION\r
17 void showNotifyVoretMutatorsDialog(entity me)\r
18 {\r
19         loadAllCvars(me);\r
20 }\r
21 \r
22 string toStringVoretMutatorsDialog(entity me)\r
23 {\r
24         string s;\r
25         s = "";\r
26         if(cvar("sv_gravity") < 800)\r
27                 s = strcat(s, ", Low gravity");\r
28         if(cvar("g_cloaked"))\r
29                 s = strcat(s, ", Cloaked");\r
30         if(cvar("g_midair"))\r
31                 s = strcat(s, ", Midair");\r
32         if(cvar("g_vampire"))\r
33                 s = strcat(s, ", Vampire");\r
34         if(cvar("g_weapon_stay"))\r
35                 s = strcat(s, ", Weapons stay");\r
36         if(cvar("g_bloodloss") > 0)\r
37                 s = strcat(s, ", Bloodloss");\r
38         if(cvar("g_jetpack"))\r
39                 s = strcat(s, ", Jet pack");\r
40         if(!cvar("g_start_weapon_grabber"))\r
41                 s = strcat(s, ", No start weapon");\r
42         if(cvar("g_balance_vore_weight_gravity") < 0)\r
43                 s = strcat(s, ", Lighten");\r
44         if(cvar("g_balance_vore_digestion_damage") >= 1000)\r
45                 s = strcat(s, ", InstaDigestion");\r
46         if(s == "")\r
47                 return "None";\r
48         else\r
49                 return substring(s, 2, strlen(s) - 2);\r
50 }\r
51 \r
52 void fillVoretMutatorsDialog(entity me)\r
53 {\r
54         entity e, s;\r
55         me.TR(me);\r
56                 me.TD(me, 1, 2, makeVoretTextLabel(0, "Gameplay mutators:"));\r
57         me.TR(me);\r
58                 me.TDempty(me, 0.2);\r
59                 me.TD(me, 1, 2, e = makeVoretCheckBox(0, "g_cloaked", "Cloaked"));\r
60         me.TR(me);\r
61                 me.TDempty(me, 0.2);\r
62                 me.TD(me, 1, 2, e = makeVoretCheckBox(0, "g_midair", "Midair"));\r
63         me.TR(me);\r
64                 me.TDempty(me, 0.2);\r
65                 me.TD(me, 1, 2, e = makeVoretCheckBox(0, "g_vampire", "Vampire"));\r
66         me.TR(me);\r
67                 me.TDempty(me, 0.2);\r
68                 s = makeVoretSlider(10, 50, 1, "g_bloodloss");\r
69                 me.TD(me, 1, 2, e = makeVoretSliderCheckBox(0, 1, s, "Blood loss"));\r
70         me.TR(me);\r
71                 me.TDempty(me, 0.4);\r
72                 me.TD(me, 1, 1.8, s);\r
73         me.TR(me);\r
74                 me.TDempty(me, 0.2);\r
75                 s = makeVoretSlider(80, 400, 8, "sv_gravity");\r
76                         s.valueDigits = 0;\r
77                         s.valueDisplayMultiplier = 0.125; // show gravity in percent\r
78                 me.TD(me, 1, 2, e = makeVoretSliderCheckBox(800, 1, s, "Low gravity"));\r
79                         e.savedValue = 200; // good on silvercity\r
80         me.TR(me);\r
81                 me.TDempty(me, 0.4);\r
82                 me.TD(me, 1, 1.8, s);\r
83         me.TR(me);\r
84         me.TR(me);\r
85                 me.TD(me, 1, 2, makeVoretTextLabel(0, "Weapon & Item mutators:"));\r
86         me.TR(me);\r
87                 me.TDempty(me, 0.2);\r
88                 me.TD(me, 1, 2, e = makeVoretCheckBox(0, "g_jetpack", "Jet pack"));\r
89         me.TR(me);\r
90                 me.TDempty(me, 0.2);\r
91                 me.TD(me, 1, 2, e = makeVoretCheckBoxEx(2, 0, "g_weapon_stay", "Weapons stay"));\r
92         me.TR(me);\r
93                 me.TDempty(me, 0.2);\r
94                 me.TD(me, 1, 2, e = makeVoretCheckBoxEx(0, -1, "g_start_weapon_grabber", "No start weapon"));\r
95         me.TR(me);\r
96         me.TR(me);\r
97                 me.TD(me, 1, 2, makeVoretTextLabel(0, "Vore mutators:"));\r
98         me.TR(me);\r
99                 me.TDempty(me, 0.2);\r
100                 me.TD(me, 1, 2, e = makeVoretCheckBoxEx(-0.25, 1, "g_balance_vore_weight_gravity", "Lighten")); // must contain default cvar value for off position!\r
101         me.TR(me);\r
102                 me.TDempty(me, 0.2);\r
103                 me.TD(me, 1, 2, e = makeVoretCheckBoxEx(1000, 5, "g_balance_vore_digestion_damage", "InstaDigestion")); // must contain default cvar value for off position!\r
104 \r
105         me.gotoRC(me, me.rows - 1, 0);\r
106                 me.TD(me, 1, me.columns, e = makeVoretButton("OK", '0 0 0'));\r
107                         e.onClick = Dialog_Close;\r
108                         e.onClickEntity = me;\r
109 }\r
110 \r
111 void closeVoretMutatorsDialog(entity me)\r
112 {\r
113         if(me.refilterEntity)\r
114                 me.refilterEntity.refilter(me.refilterEntity);\r
115         closeDialog(me);\r
116 }\r
117 #endif\r