diff options
Diffstat (limited to 'main')
-rw-r--r-- | main/draw.cpp | 20 | ||||
-rw-r--r-- | main/main-impl.hpp | 2 |
2 files changed, 14 insertions, 8 deletions
diff --git a/main/draw.cpp b/main/draw.cpp index 2b17ce9b..86d93582 100644 --- a/main/draw.cpp +++ b/main/draw.cpp @@ -86,12 +86,12 @@ void main_impl::draw_world() noexcept for (std::int16_t y = miny; y <= maxy; y++) for (std::int16_t x = minx; x <= maxx; x++) { - if (const chunk_coords c = {x, y}; !_world.contains(c)) - app.maybe_initialize_chunk(c, _world[c]); - const chunk_coords c{x, y}; - const with_shifted_camera_offset o{_shader, c}; + const chunk_coords pos{x, y}; + if (!_world.contains(pos)) + app.maybe_initialize_chunk(pos, _world[pos]); + const with_shifted_camera_offset o{_shader, pos}; if (check_chunk_visible(_shader.camera_offset(), sz)) - _floor_mesh.draw(_shader, _world[c]); + _floor_mesh.draw(_shader, _world[pos]); } GL::Renderer::enable(GL::Renderer::Feature::DepthTest); @@ -104,10 +104,14 @@ void main_impl::draw_world() noexcept for (std::int16_t y = miny; y <= maxy; y++) for (std::int16_t x = minx; x <= maxx; x++) { - const chunk_coords c{x, y}; - const with_shifted_camera_offset o{_shader, c}; + const chunk_coords pos{x, y}; + auto& c = _world[pos]; + const with_shifted_camera_offset o{_shader, pos}; if (check_chunk_visible(_shader.camera_offset(), sz)) - _wall_mesh.draw(_shader, _world[c]); + { + _wall_mesh.draw(_shader, c); + _anim_mesh.draw(_shader, c); + } } GL::Renderer::disable(GL::Renderer::Feature::DepthTest); } diff --git a/main/main-impl.hpp b/main/main-impl.hpp index e62ce261..9efdd2ae 100644 --- a/main/main-impl.hpp +++ b/main/main-impl.hpp @@ -4,6 +4,7 @@ #include "src/world.hpp" #include "draw/floor.hpp" #include "draw/wall.hpp" +#include "draw/anim.hpp" #include "shaders/tile.hpp" #include <Corrade/Containers/String.h> @@ -67,6 +68,7 @@ private: struct world _world{}; floor_mesh _floor_mesh; wall_mesh _wall_mesh; + anim_mesh _anim_mesh; Magnum::Timeline timeline; struct { float value = 0; |