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