summary refs log tree commit diff stats
path: root/src/renderer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/renderer.cpp')
-rw-r--r--src/renderer.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/renderer.cpp b/src/renderer.cpp index 314dd4f..81e6b9c 100644 --- a/src/renderer.cpp +++ b/src/renderer.cpp
@@ -500,6 +500,32 @@ void Renderer::render(Game& game) {
500 SDL_SetRenderDrawBlendMode(ren_.get(), SDL_BLENDMODE_NONE); 500 SDL_SetRenderDrawBlendMode(ren_.get(), SDL_BLENDMODE_NONE);
501 SDL_SetRenderDrawColor(ren_.get(), 0, 0, 0, 255); 501 SDL_SetRenderDrawColor(ren_.get(), 0, 0, 0, 255);
502 SDL_RenderFillRect(ren_.get(), nullptr); 502 SDL_RenderFillRect(ren_.get(), nullptr);
503
504 const int lineHeight = 16;
505 int totalHeight = menus.getMenu().size() * lineHeight;
506
507 int index = 0;
508 for (const MenuItem& menuItem : menus.getMenu()) {
509 switch (menuItem.type) {
510 case MenuType::Command: {
511 MessageCache output;
512 renderMessageLine(output, menuItem.text, game);
513
514 SDL_Rect dest {
515 (CANVAS_WIDTH - output.charIndexToWidth.back()) / 2,
516 (CANVAS_HEIGHT - totalHeight) / 2 + lineHeight * index,
517 MESSAGE_TEXT_WIDTH,
518 game.getFont().getCharacterHeight()
519 };
520
521 SDL_SetRenderTarget(ren_.get(), cameraTex.get());
522 SDL_RenderCopy(ren_.get(), output.renderedTex.get(), nullptr, &dest);
523
524 break;
525 }
526 }
527 index++;
528 }
503 } else if (menus.getPauseAnimationProgress() > 0.0) { 529 } else if (menus.getPauseAnimationProgress() > 0.0) {
504 SDL_SetRenderTarget(ren_.get(), cameraTex.get()); 530 SDL_SetRenderTarget(ren_.get(), cameraTex.get());
505 SDL_SetRenderDrawBlendMode(ren_.get(), SDL_BLENDMODE_NONE); 531 SDL_SetRenderDrawBlendMode(ren_.get(), SDL_BLENDMODE_NONE);