diff options
author | Star Rauchenberger <fefferburbia@gmail.com> | 2021-03-13 07:45:55 -0500 |
---|---|---|
committer | Star Rauchenberger <fefferburbia@gmail.com> | 2021-03-13 15:34:50 -0500 |
commit | 764efea5a38b970fa57d8c0197673276023b58aa (patch) | |
tree | 25aebaa5e62147aaabdfcec6c44d36164d9e6fd7 /src/renderer.cpp | |
parent | 142e00794097dfb78c4b758a2d39d26fae070092 (diff) | |
download | tanetane-764efea5a38b970fa57d8c0197673276023b58aa.tar.gz tanetane-764efea5a38b970fa57d8c0197673276023b58aa.tar.bz2 tanetane-764efea5a38b970fa57d8c0197673276023b58aa.zip |
Added pause menu opening and closing animation
#7
Diffstat (limited to 'src/renderer.cpp')
-rw-r--r-- | src/renderer.cpp | 20 |
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 | ||
12 | Renderer::Renderer() { | 13 | Renderer::Renderer() { |
13 | win_ = window_ptr( | 14 | win_ = window_ptr( |
@@ -124,6 +125,7 @@ void Renderer::renderSprite(const Sprite& sprite) { | |||
124 | 125 | ||
125 | void Renderer::render(Game& game) { | 126 | void 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()); |