X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Futil.qc;h=8ef6b2019f07c4a08d5467897214d5717ce03c56;hb=fbd3279e575e41377901f1536e14fe45e540405b;hp=1b3dce4b88f4c5835a313af830bbe6a15a554340;hpb=4f39b6ecc7c52c325a1bb020344b706628e14631;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/util.qc b/qcsrc/common/util.qc index 1b3dce4b8..8ef6b2019 100644 --- a/qcsrc/common/util.qc +++ b/qcsrc/common/util.qc @@ -242,6 +242,7 @@ string build_mutator_list(string s) 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")) @@ -266,7 +267,7 @@ string build_mutator_list(string s) 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 @@ -383,7 +384,7 @@ string ScoreString(int pFlags, float pValue) 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); @@ -1959,14 +1960,13 @@ void unfollow_sameorigin(entity e) .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)) @@ -1982,8 +1982,7 @@ void UnsetMovetypeFollow(entity ent) { 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;