mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-23 12:32:34 +00:00
- Fixed: DHUDMessageTypeOnFadeOut::Tick() did not skip over color escapes.
SVN r3566 (trunk)
This commit is contained in:
parent
5bf3b7113e
commit
aa227b1df4
1 changed files with 33 additions and 9 deletions
|
@ -658,21 +658,45 @@ bool DHUDMessageTypeOnFadeOut::Tick ()
|
|||
{
|
||||
if (State == 3)
|
||||
{
|
||||
LineVisible = (int)(Tics / TypeOnTime);
|
||||
while (LineVisible > LineLen && State == 3)
|
||||
int step = Tics == 0 ? 0 : int(Tics / TypeOnTime) - int((Tics - 1) / TypeOnTime);
|
||||
int linevis = LineVisible;
|
||||
int linedrawcount = linevis;
|
||||
FString text = Lines[CurrLine].Text;
|
||||
// Advance LineVisible by 'step' *visible* characters
|
||||
while (step > 0 && State == 3)
|
||||
{
|
||||
LineVisible -= LineLen;
|
||||
Tics = (int)(LineVisible * TypeOnTime);
|
||||
CurrLine++;
|
||||
if (CurrLine >= NumLines)
|
||||
if (linevis > LineLen)
|
||||
{
|
||||
State = 1;
|
||||
linevis = 0;
|
||||
linedrawcount = 0;
|
||||
CurrLine++;
|
||||
if (CurrLine >= NumLines)
|
||||
{
|
||||
State = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
text = Lines[CurrLine].Text;
|
||||
LineLen = (int)text.Len();
|
||||
}
|
||||
}
|
||||
else
|
||||
if (State == 3 && --step >= 0)
|
||||
{
|
||||
LineLen = (int)Lines[CurrLine].Text.Len();
|
||||
linedrawcount++;
|
||||
if (text[linevis++] == TEXTCOLOR_ESCAPE)
|
||||
{
|
||||
if (text[linevis] == '[')
|
||||
{ // named color
|
||||
while (text[linevis] != ']' && text[linevis] != '\0')
|
||||
{
|
||||
linevis++;
|
||||
}
|
||||
}
|
||||
linevis += 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
LineVisible = linevis;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue