From 72709189edf800d52fe29eea59880bce28becc82 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Sat, 13 Mar 2021 08:42:18 -0500 Subject: Rendered some menu options #7 --- src/renderer.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/renderer.cpp') 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) { SDL_SetRenderDrawBlendMode(ren_.get(), SDL_BLENDMODE_NONE); SDL_SetRenderDrawColor(ren_.get(), 0, 0, 0, 255); SDL_RenderFillRect(ren_.get(), nullptr); + + const int lineHeight = 16; + int totalHeight = menus.getMenu().size() * lineHeight; + + int index = 0; + for (const MenuItem& menuItem : menus.getMenu()) { + switch (menuItem.type) { + case MenuType::Command: { + MessageCache output; + renderMessageLine(output, menuItem.text, game); + + SDL_Rect dest { + (CANVAS_WIDTH - output.charIndexToWidth.back()) / 2, + (CANVAS_HEIGHT - totalHeight) / 2 + lineHeight * index, + MESSAGE_TEXT_WIDTH, + game.getFont().getCharacterHeight() + }; + + SDL_SetRenderTarget(ren_.get(), cameraTex.get()); + SDL_RenderCopy(ren_.get(), output.renderedTex.get(), nullptr, &dest); + + break; + } + } + index++; + } } else if (menus.getPauseAnimationProgress() > 0.0) { SDL_SetRenderTarget(ren_.get(), cameraTex.get()); SDL_SetRenderDrawBlendMode(ren_.get(), SDL_BLENDMODE_NONE); -- cgit 1.4.1