X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;ds=sidebyside;f=qcsrc%2Fcommon%2Futil.qc;h=3fb2d7e1af3e712a27788d00004b11b5057ae9bb;hb=7813b4aefcef935a31a09287fc4618234b154dc6;hp=1dc444b3ec3181e8012bfcb9182416d996cd7512;hpb=9e29823671fec43093a57d7fb427190d4738ffd8;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/util.qc b/qcsrc/common/util.qc index 1dc444b3e..3fb2d7e1a 100644 --- a/qcsrc/common/util.qc +++ b/qcsrc/common/util.qc @@ -384,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); @@ -870,14 +870,14 @@ float textLengthUpToWidth(string theText, float maxWidth, vector theSize, textLe return left; } -float textLengthUpToLength(string theText, float maxWidth, textLengthUpToLength_lenFunction_t w) +float textLengthUpToLength(string theText, int maxLength, textLengthUpToLength_lenFunction_t w) { // STOP. // The following function is SLOW. // For your safety and for the protection of those around you... // DO NOT CALL THIS AT HOME. // No really, don't. - if(w(theText) <= maxWidth) + if(w(theText) <= maxLength) return strlen(theText); // yeah! bool colors = (w("^7") == 0); @@ -896,7 +896,7 @@ float textLengthUpToLength(string theText, float maxWidth, textLengthUpToLength_ ofs = (!res.x) ? 0 : res.x - res.y; } - if(w(substring(theText, 0, middle + ofs)) <= maxWidth) + if(w(substring(theText, 0, middle + ofs)) <= maxLength) left = middle + ofs; else right = middle; @@ -941,17 +941,17 @@ string find_last_color_code(string s) return ""; } -string getWrappedLine(float w, vector theFontSize, textLengthUpToWidth_widthFunction_t tw) +string getWrappedLine(float maxWidth, vector theFontSize, textLengthUpToWidth_widthFunction_t tw) { string s = getWrappedLine_remaining; - if(w <= 0) + if(maxWidth <= 0) { getWrappedLine_remaining = string_null; return s; // the line has no size ANYWAY, nothing would be displayed. } - int take_until = textLengthUpToWidth(s, w, theFontSize, tw); + int take_until = textLengthUpToWidth(s, maxWidth, theFontSize, tw); if(take_until > 0 && take_until < strlen(s)) { int last_word = take_until - 1; @@ -979,17 +979,17 @@ string getWrappedLine(float w, vector theFontSize, textLengthUpToWidth_widthFunc } } -string getWrappedLineLen(float w, textLengthUpToLength_lenFunction_t tw) +string getWrappedLineLen(int maxLength, textLengthUpToLength_lenFunction_t tw) { string s = getWrappedLine_remaining; - if(w <= 0) + if(maxLength <= 0) { getWrappedLine_remaining = string_null; return s; // the line has no size ANYWAY, nothing would be displayed. } - int take_until = textLengthUpToLength(s, w, tw); + int take_until = textLengthUpToLength(s, maxLength, tw); if(take_until > 0 && take_until < strlen(s)) { int last_word = take_until - 1; @@ -1960,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)) @@ -1983,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;