From f7875a6d2f129af47a203a5a31c2785b6e2fcf58 Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Fri, 5 Feb 2021 13:32:04 -0500 Subject: Added speaker header --- src/renderer.cpp | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) (limited to 'src/renderer.cpp') diff --git a/src/renderer.cpp b/src/renderer.cpp index b22c316..ae18851 100644 --- a/src/renderer.cpp +++ b/src/renderer.cpp @@ -157,10 +157,35 @@ void Renderer::render(Game& game) { if (game.getSystem().getCutsceneBarsProgress() == 1.0 && !game.getSystem().getLines().empty()) { + if (!game.getSystem().getSpeaker().empty()) { + if (speakerHeaderTex_ == -1) { + speakerHeaderTex_ = loadImageFromFile("../res/speaker_header.png"); + } + + { + SDL_Rect destRect { 0, 111, 57, 13 }; + SDL_RenderCopy(ren_.get(), textures_.at(speakerHeaderTex_).get(), nullptr, &destRect); + } + + if (speakerHeaderLine_.line != game.getSystem().getSpeaker()) { + renderMessageLine(speakerHeaderLine_, game.getSystem().getSpeaker(), game); + } + + { + SDL_Rect destRect { + 4, + 112, + MESSAGE_TEXT_WIDTH, + game.getFont().getCharacterHeight() }; + + SDL_RenderCopy(ren_.get(), speakerHeaderLine_.renderedTex.get(), nullptr, &destRect); + } + } + int lineIndex = 0; for (const MessageSystem::MessageLine& line : game.getSystem().getLines()) { if (messageLines_[lineIndex].line != line.text) { - renderMessageLine(lineIndex, line.text, game); + renderMessageLine(messageLines_[lineIndex], line.text, game); } // 18x, 127y1, 143y2 @@ -204,8 +229,7 @@ int Renderer::loadImageFromFile(std::string_view filename) { return texId; } -void Renderer::renderMessageLine(int lineIndex, const std::string& text, Game& game) { - MessageCache& line = messageLines_[lineIndex]; +void Renderer::renderMessageLine(MessageCache& line, const std::string& text, Game& game) { line.line = text; line.renderedTex.reset( -- cgit 1.4.1