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.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/renderer.cpp b/src/renderer.cpp index ea8a2ac..314dd4f 100644 --- a/src/renderer.cpp +++ b/src/renderer.cpp
@@ -8,6 +8,7 @@
8#include "message_system.h" 8#include "message_system.h"
9#include "effect_system.h" 9#include "effect_system.h"
10#include "input_system.h" 10#include "input_system.h"
11#include "menu_system.h"
11 12
12Renderer::Renderer() { 13Renderer::Renderer() {
13 win_ = window_ptr( 14 win_ = window_ptr(
@@ -124,6 +125,7 @@ void Renderer::renderSprite(const Sprite& sprite) {
124 125
125void Renderer::render(Game& game) { 126void Renderer::render(Game& game) {
126 auto& effects = game.getSystem<EffectSystem>(); 127 auto& effects = game.getSystem<EffectSystem>();
128 auto& menus = game.getSystem<MenuSystem>();
127 129
128 if (cachedMapName_ != game.getMap().getName()) { 130 if (cachedMapName_ != game.getMap().getName()) {
129 cachedMapName_ = game.getMap().getName(); 131 cachedMapName_ = game.getMap().getName();
@@ -493,6 +495,24 @@ void Renderer::render(Game& game) {
493 } 495 }
494 } 496 }
495 497
498 if (menus.isMenuOpen()) {
499 SDL_SetRenderTarget(ren_.get(), cameraTex.get());
500 SDL_SetRenderDrawBlendMode(ren_.get(), SDL_BLENDMODE_NONE);
501 SDL_SetRenderDrawColor(ren_.get(), 0, 0, 0, 255);
502 SDL_RenderFillRect(ren_.get(), nullptr);
503 } else if (menus.getPauseAnimationProgress() > 0.0) {
504 SDL_SetRenderTarget(ren_.get(), cameraTex.get());
505 SDL_SetRenderDrawBlendMode(ren_.get(), SDL_BLENDMODE_NONE);
506 SDL_SetRenderDrawColor(ren_.get(), 0, 0, 0, 255);
507
508 int barHeight = CANVAS_HEIGHT / 2 * menus.getPauseAnimationProgress();
509 SDL_Rect topHalf { 0, 0, CANVAS_WIDTH, barHeight };
510 SDL_Rect bottomHalf { 0, CANVAS_HEIGHT - barHeight, CANVAS_WIDTH, barHeight };
511
512 SDL_RenderFillRect(ren_.get(), &topHalf);
513 SDL_RenderFillRect(ren_.get(), &bottomHalf);
514 }
515
496 SDL_SetRenderTarget(ren_.get(), nullptr); 516 SDL_SetRenderTarget(ren_.get(), nullptr);
497 SDL_RenderCopy(ren_.get(), cameraTex.get(), nullptr, nullptr); 517 SDL_RenderCopy(ren_.get(), cameraTex.get(), nullptr, nullptr);
498 SDL_RenderPresent(ren_.get()); 518 SDL_RenderPresent(ren_.get());