From c67cf3328ac04073ede85f8c2079ac22c6bdf565 Mon Sep 17 00:00:00 2001
From: Mario <mario@smbclan.net>
Date: Thu, 8 Mar 2018 09:56:49 +1000
Subject: [PATCH] Some minor fixes to the mutators dialog

---
 .../dialog_multiplayer_create_mutators.qc     | 60 +++++++++++--------
 1 file changed, 34 insertions(+), 26 deletions(-)

diff --git a/qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc b/qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc
index f8bf895c2..63b55a19b 100644
--- a/qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc
+++ b/qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc
@@ -55,56 +55,59 @@ string WeaponArenaString()
 
 string XonoticMutatorsDialog_toString(entity me)
 {
-	string s;
-	s = "";
+	string s = "";
 	if(cvar("g_dodging"))
-		s = strcat(s, ", ", _("Dodging"));
+		s = cons_mid(s, ", ", _("Dodging"));
 	if(cvar("g_instagib"))
-		s = strcat(s, ", ", _("InstaGib"));
+		s = cons_mid(s, ", ", _("InstaGib"));
 	if(cvar("g_new_toys"))
-		s = strcat(s, ", ", _("New Toys"));
+		s = cons_mid(s, ", ", _("New Toys"));
 	if(cvar("g_nix"))
-		s = strcat(s, ", ", _("NIX"));
+		s = cons_mid(s, ", ", _("NIX"));
 	if(cvar("g_rocket_flying"))
-		s = strcat(s, ", ", _("Rocket Flying"));
+		s = cons_mid(s, ", ", _("Rocket Flying"));
 	if(cvar("g_invincible_projectiles"))
-		s = strcat(s, ", ", _("Invincible Projectiles"));
+		s = cons_mid(s, ", ", _("Invincible Projectiles"));
 	if(cvar_string("g_weaponarena") != "0")
-		s = strcat(s, ", ", WeaponArenaString());
+		s = cons_mid(s, ", ", WeaponArenaString());
 	else if(cvar("g_balance_blaster_weaponstartoverride") == 0)
-		s = strcat(s, ", ", _("No start weapons"));
+		s = cons_mid(s, ", ", _("No start weapons"));
 	if(cvar("sv_gravity") < stof(cvar_defstring("sv_gravity")))
-		s = strcat(s, ", ", _("Low gravity"));
+		s = cons_mid(s, ", ", _("Low gravity"));
 	if(cvar("g_cloaked"))
-		s = strcat(s, ", ", _("Cloaked"));
+		s = cons_mid(s, ", ", _("Cloaked"));
 	if(cvar("g_grappling_hook"))
-		s = strcat(s, ", ", _("Hook"));
+		s = cons_mid(s, ", ", _("Hook"));
 	if(cvar("g_midair"))
-		s = strcat(s, ", ", _("Midair"));
+		s = cons_mid(s, ", ", _("Midair"));
+	if(cvar("g_melee_only"))
+		s = cons_mid(s, ", ", _("Melee only"));
 	if(cvar("g_vampire"))
-		s = strcat(s, ", ", _("Vampire"));
+		s = cons_mid(s, ", ", _("Vampire"));
 	if(cvar("g_pinata"))
-		s = strcat(s, ", ", _("Piñata"));
+		s = cons_mid(s, ", ", _("Piñata"));
 	if(cvar("g_weapon_stay"))
-		s = strcat(s, ", ", _("Weapons stay"));
+		s = cons_mid(s, ", ", _("Weapons stay"));
 	if(cvar("g_bloodloss") > 0)
-		s = strcat(s, ", ", _("Blood loss"));
+		s = cons_mid(s, ", ", _("Blood loss"));
 	if(cvar("g_jetpack"))
-		s = strcat(s, ", ", _("Jet pack"));
+		s = cons_mid(s, ", ", _("Jet pack"));
 	if(cvar("g_buffs") > 0)
-		s = strcat(s, ", ", _("Buffs"));
+		s = cons_mid(s, ", ", _("Buffs"));
 	if(cvar("g_overkill"))
-		s = strcat(s, ", ", _("Overkill"));
+		s = cons_mid(s, ", ", _("Overkill"));
 	if(cvar("g_powerups") == 0)
-		s = strcat(s, ", ", _("No powerups"));
+		s = cons_mid(s, ", ", _("No powerups"));
 	if(cvar("g_powerups") > 0)
-		s = strcat(s, ", ", _("Powerups"));
+		s = cons_mid(s, ", ", _("Powerups"));
 	if(cvar("g_touchexplode") > 0)
-		s = strcat(s, ", ", _("Touch explode"));
+		s = cons_mid(s, ", ", _("Touch explode"));
+	if(cvar("g_walljump"))
+		s = cons_mid(s, ", ", _("Wall jumping"));
 	if(s == "")
 		return ZCTX(_("MUT^None"));
 	else
-		return substring(s, 2, strlen(s) - 2);
+		return s;
 }
 
 float checkCompatibility_pinata(entity me)
@@ -113,6 +116,10 @@ float checkCompatibility_pinata(entity me)
 		return 0;
 	if(cvar("g_nix"))
 		return 0;
+	if(cvar("g_overkill"))
+		return 0;
+	if(cvar("g_melee_only"))
+		return 0;
 	if(cvar_string("g_weaponarena") != "0")
 		return 0;
 	return 1;
@@ -168,10 +175,11 @@ void XonoticMutatorsDialog_fill(entity me)
 	me.TR(me);
 		me.TDempty(me, 0.2);
 		me.TD(me, 1, 1.8, e = makeXonoticCheckBox(0, "g_buffs", _("Buffs")));
+			e.cvarOffValue = "-1"; // TODO: make this a radio button?
 	me.TR(me);
 		me.TDempty(me, 0.2);
 		me.TD(me, 1, 1.8, e = makeXonoticCheckBox_T(0, "g_midair", _("Midair"),
-			_("Only possible to inflict damage on your enemy while he's airborne")));
+			_("Only possible to inflict damage on your enemy while they're airborne")));
 	me.TR(me);
 		me.TDempty(me, 0.2);
 		me.TD(me, 1, 1.8, e = makeXonoticCheckBox_T(0, "g_vampire", _("Vampire"),
-- 
2.39.5