Mercurial > hg > openttd
changeset 14089:511acd6d8554 draft
(svn r18636) -Codechange: make TextEffect::duration a value in ticks instead of ticks * 8
author | smatz <smatz@openttd.org> |
---|---|
date | Fri, 25 Dec 2009 23:22:41 +0000 |
parents | cc9b4f428e10 |
children | ad7b9541cf58 |
files | src/misc_gui.cpp src/texteff.cpp src/texteff.hpp |
diffstat | 3 files changed, 18 insertions(+), 22 deletions(-) [+] |
line wrap: on
line diff
--- a/src/misc_gui.cpp +++ b/src/misc_gui.cpp @@ -722,7 +722,7 @@ msg = STR_INCOME_FLOAT_INCOME; } SetDParam(0, cost); - AddTextEffect(msg, pt.x, pt.y, 0x250, TE_RISING); + AddTextEffect(msg, pt.x, pt.y, DAY_TICKS, TE_RISING); } void ShowFeederIncomeAnimation(int x, int y, int z, Money cost) @@ -730,7 +730,7 @@ Point pt = RemapCoords(x, y, z); SetDParam(0, cost); - AddTextEffect(STR_FEEDER, pt.x, pt.y, 0x250, TE_RISING); + AddTextEffect(STR_FEEDER, pt.x, pt.y, DAY_TICKS, TE_RISING); } TextEffectID ShowFillingPercent(int x, int y, int z, uint8 percent, StringID string) @@ -740,7 +740,7 @@ assert(string != STR_NULL); SetDParam(0, percent); - return AddTextEffect(string, pt.x, pt.y, 0xFFFF, TE_STATIC); + return AddTextEffect(string, pt.x, pt.y, 0, TE_STATIC); } void UpdateFillingPercent(TextEffectID te_id, uint8 percent, StringID string)
--- a/src/texteff.cpp +++ b/src/texteff.cpp @@ -23,9 +23,9 @@ /** Container for all information about a text effect */ struct TextEffect : public ViewportSign{ + uint64 params_1; ///< DParam parameter StringID string_id; ///< String to draw for the text effect, if INVALID_STRING_ID then it's not valid - uint16 duration; ///< How long the text effect should stay - uint64 params_1; ///< DParam parameter + uint8 duration; ///< How long the text effect should stay, in ticks (applies only when mode == TE_RISING) TextEffectMode mode; ///< Type of text effect /** Reset the text effect */ @@ -40,7 +40,7 @@ static SmallVector<struct TextEffect, 32> _text_effects; ///< Text effects are stored there /* Text Effects */ -TextEffectID AddTextEffect(StringID msg, int center, int y, uint16 duration, TextEffectMode mode) +TextEffectID AddTextEffect(StringID msg, int center, int y, uint8 duration, TextEffectMode mode) { if (_game_mode == GM_MENU) return INVALID_TE_ID; @@ -80,25 +80,21 @@ _text_effects[te_id].Reset(); } -static void MoveTextEffect(TextEffect *te) -{ - /* Never expire for duration of 0xFFFF */ - if (te->duration == 0xFFFF) return; - if (te->duration < 8) { - te->Reset(); - } else { - te->duration -= 8; - te->MarkDirty(); - te->top--; - te->MarkDirty(); - } -} - void MoveAllTextEffects() { const TextEffect *end = _text_effects.End(); for (TextEffect *te = _text_effects.Begin(); te != end; te++) { - if (te->string_id != INVALID_STRING_ID && te->mode == TE_RISING) MoveTextEffect(te); + if (te->string_id == INVALID_STRING_ID) continue; + if (te->mode != TE_RISING) continue; + + if (te->duration-- == 0) { + te->Reset(); + continue; + } + + te->MarkDirty(); + te->top--; + te->MarkDirty(); } }
--- a/src/texteff.hpp +++ b/src/texteff.hpp @@ -27,7 +27,7 @@ typedef uint16 TextEffectID; void MoveAllTextEffects(); -TextEffectID AddTextEffect(StringID msg, int x, int y, uint16 duration, TextEffectMode mode); +TextEffectID AddTextEffect(StringID msg, int x, int y, uint8 duration, TextEffectMode mode); void InitTextEffects(); void DrawTextEffects(DrawPixelInfo *dpi); void UpdateTextEffect(TextEffectID effect_id, StringID msg);