for (string arg = ""; i < n; i++)
{
if (i >= 0) arg = argv(i);
+ // cond is the condition for showing the mutator enabled in the menu
#define X(name, translated_name, mut, cond) \
if(arg == name || (!n && (cond))) { s2 = cons_mid(s2, ", ", translated_name); mut_set_active(mut); }
X("Dodging" , _("Dodging") , MUT_DODGING , cvar("g_dodging"))
X("Powerups" , _("Powerups") , MUT_POWERUPS , cvar("g_powerups") > 0)
X("Touch explode" , _("Touch explode") , MUT_TOUCHEXPLODE , cvar("g_touchexplode") > 0)
X("Wall jumping" , _("Wall jumping") , MUT_WALLJUMP , cvar("g_walljump"))
- X("No start weapons" , _("No start weapons") , MUT_WEAPONARENA , cvar_string("g_weaponarena") == "0" && cvar("g_balance_blaster_weaponstartoverride") == 0)
+ X("No start weapons" , _("No start weapons") , MUT_NO_START_WEAPONS , cvar_string("g_weaponarena") == "0" && cvar("g_balance_blaster_weaponstartoverride") == 0)
X("Nades" , _("Nades") , MUT_NADES , cvar("g_nades"))
X("Offhand blaster" , _("Offhand blaster") , MUT_OFFHAND_BLASTER , cvar("g_offhand_blaster"))
#undef X
else if(pFlags & SFL_RANK)
valstr = (pValue < 256 ? count_ordinal(pValue) : _("N/A"));
else if(pFlags & SFL_TIME)
- valstr = TIME_ENCODED_TOSTRING(pValue);
+ valstr = TIME_ENCODED_TOSTRING(pValue, true);
else
valstr = ftos(pValue);
.float aiment_deadflag;
void SetMovetypeFollow(entity ent, entity e)
{
- // FIXME this may not be warpzone aware
set_movetype(ent, MOVETYPE_FOLLOW); // make the hole follow
ent.solid = SOLID_NOT; // MOVETYPE_FOLLOW is always non-solid - this means this cannot be teleported by warpzones any more! Instead, we must notice when our owner gets teleported.
ent.aiment = e; // make the hole follow bmodel
ent.punchangle = e.angles; // the original angles of bmodel
ent.view_ofs = ent.origin - e.origin; // relative origin
ent.v_angle = ent.angles - e.angles; // relative angles
- ent.aiment_classname = strzone(e.classname);
+ ent.aiment_classname = e.classname;
ent.aiment_deadflag = e.deadflag;
if(IS_PLAYER(ent.aiment))
{
set_movetype(ent, MOVETYPE_FLY);
PROJECTILE_MAKETRIGGER(ent);
- if (ent.aiment_classname)
- strunzone(ent.classname);
+ ent.aiment_classname = string_null;
// FIXME: engine bug?
// resetting aiment the engine will set orb's origin close to world's origin
//ent.aiment = NULL;