]> de.git.xonotic.org Git - voretournament/voretournament.git/blob - data/qcsrc/menu/voret/dialog_multiplayer_create_mutators.c
2fd8856dde67f7e03a32d0a4d1935f5a44b2bf7b
[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, 20)\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_vore_reversescoring"))\r
43                 s = strcat(s, ", Reverse scoring");\r
44         if(!cvar("g_vore_digestion"))\r
45                 s = strcat(s, ", Gentle vore");\r
46         if(cvar("g_balance_vore_digestion_damage") >= 1000)\r
47                 s = strcat(s, ", Instant digestion");\r
48         if(cvar("g_balance_vore_weight_gravity") < 0)\r
49                 s = strcat(s, ", Lighten");\r
50         if(s == "")\r
51                 return "None";\r
52         else\r
53                 return substring(s, 2, strlen(s) - 2);\r
54 }\r
55 \r
56 void fillVoretMutatorsDialog(entity me)\r
57 {\r
58         entity e, s;\r
59         me.TR(me);\r
60                 me.TD(me, 1, 2, makeVoretTextLabel(0, "Gameplay mutators:"));\r
61         me.TR(me);\r
62                 me.TDempty(me, 0.2);\r
63                 me.TD(me, 1, 2, e = makeVoretCheckBox(0, "g_cloaked", "Cloaked"));\r
64         me.TR(me);\r
65                 me.TDempty(me, 0.2);\r
66                 me.TD(me, 1, 2, e = makeVoretCheckBox(0, "g_midair", "Midair"));\r
67         me.TR(me);\r
68                 me.TDempty(me, 0.2);\r
69                 me.TD(me, 1, 2, e = makeVoretCheckBox(0, "g_vampire", "Vampire"));\r
70         me.TR(me);\r
71                 me.TDempty(me, 0.2);\r
72                 s = makeVoretSlider(10, 50, 1, "g_bloodloss");\r
73                 me.TD(me, 1, 2, e = makeVoretSliderCheckBox(0, 1, s, "Blood loss"));\r
74         me.TR(me);\r
75                 me.TDempty(me, 0.4);\r
76                 me.TD(me, 1, 1.8, s);\r
77         me.TR(me);\r
78                 me.TDempty(me, 0.2);\r
79                 s = makeVoretSlider(80, 400, 8, "sv_gravity");\r
80                         s.valueDigits = 0;\r
81                         s.valueDisplayMultiplier = 0.125; // show gravity in percent\r
82                 me.TD(me, 1, 2, e = makeVoretSliderCheckBox(800, 1, s, "Low gravity"));\r
83                         e.savedValue = 200; // good on silvercity\r
84         me.TR(me);\r
85                 me.TDempty(me, 0.4);\r
86                 me.TD(me, 1, 1.8, s);\r
87         me.TR(me);\r
88         me.TR(me);\r
89                 me.TD(me, 1, 2, makeVoretTextLabel(0, "Weapon & Item mutators:"));\r
90         me.TR(me);\r
91                 me.TDempty(me, 0.2);\r
92                 me.TD(me, 1, 2, e = makeVoretCheckBox(0, "g_jetpack", "Jet pack"));\r
93         me.TR(me);\r
94                 me.TDempty(me, 0.2);\r
95                 me.TD(me, 1, 2, e = makeVoretCheckBoxEx(2, 0, "g_weapon_stay", "Weapons stay"));\r
96         me.TR(me);\r
97                 me.TDempty(me, 0.2);\r
98                 me.TD(me, 1, 2, e = makeVoretCheckBoxEx(0, -1, "g_start_weapon_grabber", "No start weapon"));\r
99         me.TR(me);\r
100         me.TR(me);\r
101                 me.TD(me, 1, 2, makeVoretTextLabel(0, "Vore mutators:"));\r
102         me.TR(me);\r
103                 me.TDempty(me, 0.2);\r
104                 me.TD(me, 1, 2, e = makeVoretCheckBox(1, "g_vore_digestion", "Gentle vore"));\r
105                 makeMulti(e, "g_vore_kick");\r
106         me.TR(me);\r
107                 me.TDempty(me, 0.2);\r
108                 me.TD(me, 1, 2, e = makeVoretCheckBox(0, "g_vore_reversescoring", "Reverse scoring"));\r
109                 setDependent(e, "g_vore_digestion", 1, 1);\r
110         me.TR(me);\r
111                 me.TDempty(me, 0.2);\r
112                 me.TD(me, 1, 2, e = makeVoretCheckBoxEx(1000, 5, "g_balance_vore_digestion_damage", "Instant digestion")); // must contain default cvar value for off position\r
113                 setDependent(e, "g_vore_digestion", 1, 1);\r
114         me.TR(me);\r
115                 me.TDempty(me, 0.2);\r
116                 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
117 \r
118         me.gotoRC(me, me.rows - 1, 0);\r
119                 me.TD(me, 1, me.columns, e = makeVoretButton("OK", '0 0 0'));\r
120                         e.onClick = Dialog_Close;\r
121                         e.onClickEntity = me;\r
122 }\r
123 \r
124 void closeVoretMutatorsDialog(entity me)\r
125 {\r
126         if(me.refilterEntity)\r
127                 me.refilterEntity.refilter(me.refilterEntity);\r
128         closeDialog(me);\r
129 }\r
130 #endif\r