Return color from redraw_messagestream

This avoids requiring it to be in memory.
This commit is contained in:
Kp 2022-12-10 18:09:54 +00:00
parent afb7406127
commit 57a9c384e8

View file

@ -1076,14 +1076,13 @@ static void set_briefing_fontcolor(briefing &br)
namespace { namespace {
static void redraw_messagestream(grs_canvas &canvas, const grs_font &cv_font, const msgstream &stream, unsigned &lastcolor) static int redraw_messagestream(grs_canvas &canvas, const grs_font &cv_font, const msgstream &stream, const int lastcolor)
{ {
if (lastcolor != stream.color) const auto nextcolor = stream.color;
{ if (lastcolor != nextcolor)
lastcolor = stream.color; gr_set_fontcolor(canvas, nextcolor, -1);
gr_set_fontcolor(canvas, stream.color, -1);
}
gr_string(canvas, cv_font, stream.x + 1, stream.y, stream.ch.data()); gr_string(canvas, cv_font, stream.x + 1, stream.y, stream.ch.data());
return nextcolor;
} }
} }
@ -1683,12 +1682,10 @@ window_event_result briefing::event_handler(const d_event &event)
auto &game_font = *GAME_FONT; auto &game_font = *GAME_FONT;
gr_set_fontcolor(canvas, *Current_color, -1); auto lastcolor = *Current_color;
{ gr_set_fontcolor(canvas, lastcolor, -1);
unsigned lastcolor = ~0u; for (const auto b : partial_const_range(this->messagestream, this->streamcount))
range_for (const auto b, partial_const_range(this->messagestream, this->streamcount)) lastcolor = redraw_messagestream(canvas, game_font, b, lastcolor);
redraw_messagestream(canvas, game_font, b, lastcolor);
}
if (this->new_page || this->new_screen) if (this->new_page || this->new_screen)
flash_cursor(canvas, game_font, this, this->flashing_cursor); flash_cursor(canvas, game_font, this, this->flashing_cursor);