summary refs log tree commit diff stats
path: root/src/renderer.cpp
diff options
context:
space:
mode:
authorKelly Rauchenberger <fefferburbia@gmail.com>2021-02-05 13:32:04 -0500
committerKelly Rauchenberger <fefferburbia@gmail.com>2021-02-05 13:32:04 -0500
commitf7875a6d2f129af47a203a5a31c2785b6e2fcf58 (patch)
tree815d7fb1c28b5667dcd31d50aa65b18a802a89bc /src/renderer.cpp
parent871943d6a90bdb92b3cc495d4d927199611f8c6b (diff)
downloadtanetane-f7875a6d2f129af47a203a5a31c2785b6e2fcf58.tar.gz
tanetane-f7875a6d2f129af47a203a5a31c2785b6e2fcf58.tar.bz2
tanetane-f7875a6d2f129af47a203a5a31c2785b6e2fcf58.zip
Added speaker header
Diffstat (limited to 'src/renderer.cpp')
-rw-r--r--src/renderer.cpp30
1 files changed, 27 insertions, 3 deletions
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) {
157 157
158 if (game.getSystem<MessageSystem>().getCutsceneBarsProgress() == 1.0 && 158 if (game.getSystem<MessageSystem>().getCutsceneBarsProgress() == 1.0 &&
159 !game.getSystem<MessageSystem>().getLines().empty()) { 159 !game.getSystem<MessageSystem>().getLines().empty()) {
160 if (!game.getSystem<MessageSystem>().getSpeaker().empty()) {
161 if (speakerHeaderTex_ == -1) {
162 speakerHeaderTex_ = loadImageFromFile("../res/speaker_header.png");
163 }
164
165 {
166 SDL_Rect destRect { 0, 111, 57, 13 };
167 SDL_RenderCopy(ren_.get(), textures_.at(speakerHeaderTex_).get(), nullptr, &destRect);
168 }
169
170 if (speakerHeaderLine_.line != game.getSystem<MessageSystem>().getSpeaker()) {
171 renderMessageLine(speakerHeaderLine_, game.getSystem<MessageSystem>().getSpeaker(), game);
172 }
173
174 {
175 SDL_Rect destRect {
176 4,
177 112,
178 MESSAGE_TEXT_WIDTH,
179 game.getFont().getCharacterHeight() };
180
181 SDL_RenderCopy(ren_.get(), speakerHeaderLine_.renderedTex.get(), nullptr, &destRect);
182 }
183 }
184
160 int lineIndex = 0; 185 int lineIndex = 0;
161 for (const MessageSystem::MessageLine& line : game.getSystem<MessageSystem>().getLines()) { 186 for (const MessageSystem::MessageLine& line : game.getSystem<MessageSystem>().getLines()) {
162 if (messageLines_[lineIndex].line != line.text) { 187 if (messageLines_[lineIndex].line != line.text) {
163 renderMessageLine(lineIndex, line.text, game); 188 renderMessageLine(messageLines_[lineIndex], line.text, game);
164 } 189 }
165 190
166 // 18x, 127y1, 143y2 191 // 18x, 127y1, 143y2
@@ -204,8 +229,7 @@ int Renderer::loadImageFromFile(std::string_view filename) {
204 return texId; 229 return texId;
205} 230}
206 231
207void Renderer::renderMessageLine(int lineIndex, const std::string& text, Game& game) { 232void Renderer::renderMessageLine(MessageCache& line, const std::string& text, Game& game) {
208 MessageCache& line = messageLines_[lineIndex];
209 line.line = text; 233 line.line = text;
210 234
211 line.renderedTex.reset( 235 line.renderedTex.reset(