string s;
float n;
s = cvar_string("g_weaponarena");
- if(s == "0")
- return "";
- if(s == "all" || s == "1")
- return _("All Weapons Arena");
- if(s == "most")
- return _("Most Weapons Arena");
+ if(s == "0" || s == "") return "";
+ if(s == "all" || s == "1") return _("All Weapons Arena");
+ if(s == "all_available") return _("All Available Weapons Arena");
+ if(s == "most") return _("Most Weapons Arena");
+ if(s == "most_available") return _("Most Available Weapons Arena");
+ if(s == "devall") return "Dev All Weapons Arena"; // development option, do not translate
+ if(s == "devall_available") return "Dev All Available Weapons Arena"; // development option, do not translate
if(s == weaponarenastring_cvar)
return weaponarenastring;
s = "";
for(int j = 0; j < n; ++j)
{
- Weapon wep = Weapons_fromstr(argv(j));
+ Weapon wep = Weapon_from_name(argv(j));
if(wep != WEP_Null)
{
s = cons_mid(s, " & ", wep.m_name);
}
}
- s = sprintf(_("%s Arena"), s);
+ if (s != "")
+ s = sprintf(_("%s Arena"), s);
+ else
+ s = _("No Weapons Arena");
strcpy(weaponarenastring, s);
string XonoticMutatorsDialog_toString(entity me)
{
- string s = "";
- if(cvar("g_dodging"))
- s = cons_mid(s, ", ", _("Dodging"));
- if(cvar("g_instagib"))
- s = cons_mid(s, ", ", _("InstaGib"));
- if(cvar("g_new_toys"))
- s = cons_mid(s, ", ", _("New Toys"));
- if(cvar("g_nix"))
- s = cons_mid(s, ", ", _("NIX"));
- if(cvar("g_rocket_flying"))
- s = cons_mid(s, ", ", _("Rocket Flying"));
- if(cvar("g_invincible_projectiles"))
- s = cons_mid(s, ", ", _("Invincible Projectiles"));
+ string s = build_mutator_list("");
if(cvar_string("g_weaponarena") != "0")
s = cons_mid(s, ", ", WeaponArenaString());
- else if(cvar("g_balance_blaster_weaponstartoverride") == 0)
- s = cons_mid(s, ", ", _("No start weapons"));
- if(cvar("sv_gravity") < stof(cvar_defstring("sv_gravity")))
- s = cons_mid(s, ", ", _("Low gravity"));
- if(cvar("g_cloaked"))
- s = cons_mid(s, ", ", _("Cloaked"));
- if(cvar("g_grappling_hook"))
- s = cons_mid(s, ", ", _("Hook"));
- if(cvar("g_midair"))
- s = cons_mid(s, ", ", _("Midair"));
- if(cvar("g_melee_only"))
- s = cons_mid(s, ", ", _("Melee only"));
- if(cvar("g_vampire"))
- s = cons_mid(s, ", ", _("Vampire"));
- if(cvar("g_pinata"))
- s = cons_mid(s, ", ", _("PiƱata"));
- if(cvar("g_weapon_stay"))
- s = cons_mid(s, ", ", _("Weapons stay"));
- if(cvar("g_bloodloss") > 0)
- s = cons_mid(s, ", ", _("Blood loss"));
- if(cvar("g_jetpack"))
- s = cons_mid(s, ", ", _("Jetpack"));
- if(cvar("g_buffs") > 0)
- s = cons_mid(s, ", ", _("Buffs"));
- if(cvar("g_overkill"))
- s = cons_mid(s, ", ", _("Overkill"));
- if(cvar("g_powerups") == 0)
- s = cons_mid(s, ", ", _("No powerups"));
- if(cvar("g_powerups") > 0)
- s = cons_mid(s, ", ", _("Powerups"));
- if(cvar("g_touchexplode") > 0)
- s = cons_mid(s, ", ", _("Touch explode"));
- if(cvar("g_walljump"))
- s = cons_mid(s, ", ", _("Wall jumping"));
if(s == "")
return ZCTX(_("MUT^None"));
else
me.TR(me);
me.TDempty(me, 0.2);
me.TD(me, 1, 1.8, e = makeXonoticCheckBox_T(0, "g_touchexplode", _("Touch explode"),
- _("An explosion occurs when two players collide")));
+ _("An explosion occurs when two players collide")));
me.TR(me);
me.TDempty(me, 0.2);
me.TD(me, 1, 1.8, e = makeXonoticCheckBox_T(0, "g_cloaked", _("Cloaked"),
me.TR(me);
me.TDempty(me, 0.2);
me.TD(me, 1, 1.8, e = makeXonoticCheckBox_T(0, "g_buffs", _("Buffs"),
- _("Enable buff pickups (random bonuses like Medic, Invisible, etc.) on the maps that support it")));
+ _("Enable buff pickups (random bonuses like Medic, Invisible, etc.) on the maps that support it")));
e.cvarOffValue = "-1"; // TODO: make this a radio button?
me.TR(me);
me.TDempty(me, 0.2);
me.TD(me, 1, 2, makeXonoticTextLabel(0, _("Weapon & item mutators:")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1.8, e = makeXonoticCheckBox_T(0, "g_grappling_hook", _("Grappling hook"),
+ me.TD(me, 1, 1.8, e = makeXonoticCheckBox_T(0, "g_grappling_hook", _("Grappling Hook"),
_("Players spawn with the grappling hook. Press the 'hook' key to use it")));
me.TR(me);
me.TDempty(me, 0.2);
me.TR(me);
me.TDempty(me, 0.2);
me.TD(me, 1, 1.8, e = makeXonoticCheckBox_T(0, "g_invincible_projectiles", _("Invincible Projectiles"),
- _("Projectiles can't be destroyed. However, Electro combos still work")));
+ _("Projectiles can't be destroyed. However, you can still explode Electro orbs with the Electro primary fire")));
setDependent(e, "g_instagib", 0, 0);
me.TR(me);
me.TDempty(me, 0.2);
me.TD(me, 1, 1.8, e = makeXonoticCheckBox_T(0, "g_new_toys", _("New Toys"),
- _("Some weapon spawns will be randomly replaced with new weapons: Heavy Laser Assault Cannon, Mine Layer, Rifle, T.A.G. Seeker")));
+ _("Some weapon spawns will be randomly replaced with new weapons: Heavy Laser Assault Cannon, Mine Layer, Rifle, T.A.G. Seeker")));
setDependentWeird(e, checkCompatibility_newtoys);
me.TR(me);
me.TDempty(me, 0.2);
me.TD(me, 1, 1.8, e = makeXonoticCheckBox_T(0, "g_rocket_flying", _("Rocket Flying"),
- _("Devastator rockets can be detonated instantly (otherwise, there's a short delay). This allows players to fire and detonate a Devastator rocket while in the air for a strong mid-air boost even while moving fast")));
+ _("Devastator rockets can be detonated instantly (otherwise, there's a short delay). This allows players to fire and detonate a Devastator rocket while in the air for a strong mid-air boost even while moving fast")));
setDependent(e, "g_instagib", 0, 0);
me.TR(me);
me.TDempty(me, 0.2);
me.TDempty(me, 0.1); // fix initial position
for(i = WEP_FIRST, j = 0; i <= WEP_LAST; ++i)
{
- w = Weapons_from(i);
+ w = REGISTRY_GET(Weapons, i);
if (w.spawnflags & (WEP_FLAG_HIDDEN | WEP_FLAG_SPECIALATTACK))
continue;
if ((j % 3) == 0)
me.TR(me);
me.TDempty(me, 0.2);
me.TD(me, 1, 1.8, e = makeXonoticRadioButton_T(1, "g_instagib", "1", _("InstaGib"),
- _("Players will be given only one weapon, which can instantly kill the opponent with a single shot. If the player runs out of ammo, he will have 10 seconds to find some or if he fails to do so, face death. The secondary fire mode does not inflict any damage but is good for doing trickjumps.")));
+ _("Players will be given only one weapon, which can instantly kill the opponent with a single shot. If the player runs out of ammo, they will have 10 seconds to find some or if they fail to do so, face death. The secondary fire mode does not inflict any damage but is good for doing trickjumps.")));
e.cvarOffValue = "0";
me.TR(me);
me.TDempty(me, 0.2);