From a0f4a18a9c5338666cf98a00bbd8aaa691644222 Mon Sep 17 00:00:00 2001 From: terencehill Date: Fri, 11 Nov 2016 18:19:43 +0100 Subject: [PATCH] Damagetext: add {health(ph)}: shows potential_health too if different from health and {total(p)}: shows potential too if different from total --- defaultXonotic.cfg | 2 +- .../mutators/mutator/damagetext/damagetext.qc | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/defaultXonotic.cfg b/defaultXonotic.cfg index bc346e94a..ada324c78 100644 --- a/defaultXonotic.cfg +++ b/defaultXonotic.cfg @@ -782,7 +782,7 @@ seta g_waypointsprite_turrets_maxdist 5000 "max distace for turret sprites" seta g_waypointsprite_tactical 1 "tactical overlay on turrets when in a vehicle" seta cl_damagetext "1" "Draw damage dealt where you hit the enemy" -seta cl_damagetext_format "-{total}" "How to format the damage text. {health}, {armor}, {total}, {potential}, {potential_health}" +seta cl_damagetext_format "-{total}" "How to format the damage text. {health}, {armor}, {total}, {potential}: full damage not capped to target's health, {potential_health}: health damage not capped to target's health, {health(ph)}: shows potential_health too if different from health, {total(p)}: shows potential too if different from total" seta cl_damagetext_color "1 1 0" "Damage text color" seta cl_damagetext_color_per_weapon "0" "Damage text uses weapon color" seta cl_damagetext_size "8" "Damage text font size" diff --git a/qcsrc/common/mutators/mutator/damagetext/damagetext.qc b/qcsrc/common/mutators/mutator/damagetext/damagetext.qc index 538c817fa..b9e1280be 100644 --- a/qcsrc/common/mutators/mutator/damagetext/damagetext.qc +++ b/qcsrc/common/mutators/mutator/damagetext/damagetext.qc @@ -15,7 +15,7 @@ REGISTER_MUTATOR(damagetext, true); #if defined(CSQC) || defined(MENUQC) // no translatable cvar description please AUTOCVAR_SAVE(cl_damagetext, bool, true, "Draw damage dealt where you hit the enemy"); -AUTOCVAR_SAVE(cl_damagetext_format, string, "-{total}", "How to format the damage text. {health}, {armor}, {total}, {potential}, {potential_health}"); +AUTOCVAR_SAVE(cl_damagetext_format, string, "-{total}", "How to format the damage text. {health}, {armor}, {total}, {potential}: full damage not capped to target's health, {potential_health}: health damage not capped to target's health, {health(ph)}: shows potential_health too if different from health, {total(p)}: shows potential too if different from total"); STATIC_INIT(DamageText_LegacyFormat) { if (strstrofs(autocvar_cl_damagetext_format, "{", 0) < 0) autocvar_cl_damagetext_format = "-{total}"; } @@ -74,6 +74,17 @@ CLASS(DamageText, Object) s = strreplace("{total}", sprintf("%d", rint((this.m_damage + this.m_armordamage) / DAMAGETEXT_PRECISION_MULTIPLIER)), s); s = strreplace("{potential}", sprintf("%d", rint(this.m_potential_damage/DAMAGETEXT_PRECISION_MULTIPLIER)), s); s = strreplace("{potential_health}", sprintf("%d", rint((this.m_potential_damage - this.m_armordamage)/DAMAGETEXT_PRECISION_MULTIPLIER)), s); + + s = strreplace("{health(ph)}", ( + (rint(this.m_damage / DAMAGETEXT_PRECISION_MULTIPLIER) == rint((this.m_potential_damage - this.m_armordamage) / DAMAGETEXT_PRECISION_MULTIPLIER)) + ? sprintf("%d", rint(this.m_damage / DAMAGETEXT_PRECISION_MULTIPLIER)) + : sprintf("%d (%d)", rint(this.m_damage / DAMAGETEXT_PRECISION_MULTIPLIER), rint((this.m_potential_damage - this.m_armordamage) / DAMAGETEXT_PRECISION_MULTIPLIER)) + ), s); + s = strreplace("{total(p)}", ( + (rint((this.m_damage + this.m_armordamage) / DAMAGETEXT_PRECISION_MULTIPLIER) == rint(this.m_potential_damage / DAMAGETEXT_PRECISION_MULTIPLIER)) + ? sprintf("%d", rint((this.m_damage + this.m_armordamage) / DAMAGETEXT_PRECISION_MULTIPLIER)) + : sprintf("%d (%d)", rint((this.m_damage + this.m_armordamage) / DAMAGETEXT_PRECISION_MULTIPLIER), rint(this.m_potential_damage/DAMAGETEXT_PRECISION_MULTIPLIER)) + ), s); drawcolorcodedstring2_builtin(pos, s, this.m_size * '1 1 0', rgb, this.alpha, DRAWFLAG_NORMAL); } } -- 2.39.2