]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c
Merge remote-tracking branch 'origin/master' into samual/respawn_improvements
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / dialog_multiplayer_create_advanced.c
1 #ifdef INTERFACE
2 CLASS(XonoticAdvancedDialog) EXTENDS(XonoticDialog)
3         METHOD(XonoticAdvancedDialog, fill, void(entity))
4         METHOD(XonoticAdvancedDialog, showNotify, void(entity))
5         METHOD(XonoticAdvancedDialog, close, void(entity))
6         ATTRIB(XonoticAdvancedDialog, title, string, _("Advanced server settings"))
7         ATTRIB(XonoticAdvancedDialog, color, vector, SKINCOLOR_DIALOG_ADVANCED)
8         ATTRIB(XonoticAdvancedDialog, intendedWidth, float, 0.5)
9         ATTRIB(XonoticAdvancedDialog, rows, float, 17)
10         ATTRIB(XonoticAdvancedDialog, columns, float, 3)
11         ATTRIB(XonoticAdvancedDialog, refilterEntity, entity, NULL)
12 ENDCLASS(XonoticAdvancedDialog)
13 #endif
14
15 #ifdef IMPLEMENTATION
16 void XonoticAdvancedDialog_showNotify(entity me)
17 {
18         loadAllCvars(me);
19 }
20
21 void XonoticAdvancedDialog_fill(entity me)
22 {
23         entity e;
24         me.TR(me);
25                 me.TD(me, 1, 3, makeXonoticTextLabel(0, _("Game settings:")));
26         me.TR(me);
27                 me.TDempty(me, 0.2);
28                 me.TD(me, 1, 2.8, makeXonoticCheckBox(0, "sv_spectate", _("Allow spectating")));
29         me.TR(me);
30                 me.TDempty(me, 0.2);
31                 me.TD(me, 1, 1.2, makeXonoticTextLabel(0, _("Spawn shield:")));
32                 me.TD(me, 1, 1.6, makeXonoticSlider(0, 15, 0.5, "g_spawnshieldtime"));
33         me.TR(me);
34         me.TR(me);
35                 me.TDempty(me, 0.2);
36                 me.TD(me, 1, 1.2, makeXonoticTextLabel(0, _("Game speed:")));
37                 me.TD(me, 1, 1.6, makeXonoticSlider(0.5, 2.0, 0.1, "slowmo"));
38         me.TR(me);
39         me.TR(me);
40                 me.TD(me, 1, 3, makeXonoticTextLabel(0, _("Teamplay settings:")));
41         me.TR(me);
42                 me.TDempty(me, 0.2);
43                 me.TD(me, 1, 1.2, makeXonoticTextLabel(0, _("Friendly fire scale:")));
44                 me.TD(me, 1, 1.6, makeXonoticSlider(0, 1.0, 0.05, "g_friendlyfire"));
45         me.TR(me);
46                 me.TDempty(me, 0.4);
47                 me.TD(me, 1, 2.6, makeXonoticCheckBox(0, "g_friendlyfire_virtual", _("Virtual friendly fire (effect only)")));
48         me.TR(me);
49                 me.TDempty(me, 0.2);
50                 me.TD(me, 1, 1.2, makeXonoticTextLabel(0, _("Friendly fire penalty:")));
51                 me.TD(me, 1, 1.6, makeXonoticSlider(0, 1.0, 0.05, "g_mirrordamage"));
52         me.TR(me);
53                 me.TDempty(me, 0.4);
54                 me.TD(me, 1, 2.6, makeXonoticCheckBox(0, "g_mirrordamage_virtual", _("Virtual penalty (effect only)")));
55         me.TR(me);
56                 me.TDempty(me, 0.2);
57                 me.TD(me, 1, 1.2, makeXonoticTextLabel(0, _("Teams:")));
58                 me.TD(me, 1, 1.6, e = makeXonoticTextSlider("g_tdm_teams_override g_domination_teams_override g_ca_teams_override g_freezetag_teams_override g_keyhunt_teams_override"));
59                         e.addValue(e, "Default", "0");
60                         e.addValue(e, "2 teams", "2");
61                         e.addValue(e, "3 teams", "3");
62                         e.addValue(e, "4 teams", "4");
63                         e.configureXonoticTextSliderValues(e);
64         me.TR(me);
65         me.TR(me);
66                 me.TD(me, 1, 1, makeXonoticTextLabel(0, _("Map voting:")));
67                 me.TD(me, 1, 2, e = makeXonoticTextSlider("g_maplist_votable"));
68                         e.addValue(e, _("No voting"), "0");
69                         e.addValue(e, _("2 choices"), "2");
70                         e.addValue(e, _("3 choices"), "3");
71                         e.addValue(e, _("4 choices"), "4");
72                         e.addValue(e, _("5 choices"), "5");
73                         e.addValue(e, _("6 choices"), "6");
74                         e.addValue(e, _("7 choices"), "7");
75                         e.addValue(e, _("8 choices"), "8");
76                         e.addValue(e, _("9 choices"), "9");
77                         e.configureXonoticTextSliderValues(e);
78         me.TR(me);
79                 me.TD(me, 1, 3, makeXonoticCheckBoxEx(0.5, 0, "sv_vote_simple_majority_factor", _("Simple majority wins vcall")));
80
81         me.gotoRC(me, me.rows - 1, 0);
82                 me.TD(me, 1, me.columns, e = makeXonoticButton(_("OK"), '0 0 0'));
83                         e.onClick = Dialog_Close;
84                         e.onClickEntity = me;
85 }
86
87 void XonoticAdvancedDialog_close(entity me)
88 {
89         if(me.refilterEntity)
90                 me.refilterEntity.refilter(me.refilterEntity);
91         SUPER(XonoticAdvancedDialog).close(me);
92 }
93 #endif