diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2023-02-25 21:11:18 +0100 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2023-02-25 21:11:18 +0100 |
commit | 0b694f21edc97bd95faa65197bdda6b440479df3 (patch) | |
tree | 6ea5311aeb8c0b9613db429b1ffbe670924ea6b7 /main | |
parent | a823c20d5d789a680a83a5edc5794abf943da378 (diff) |
a
Diffstat (limited to 'main')
-rw-r--r-- | main/draw.cpp | 11 | ||||
-rw-r--r-- | main/main-impl.hpp | 1 |
2 files changed, 9 insertions, 3 deletions
diff --git a/main/draw.cpp b/main/draw.cpp index 1a9dae26..2a3b3f7b 100644 --- a/main/draw.cpp +++ b/main/draw.cpp @@ -39,12 +39,17 @@ void main_impl::recalc_viewport(Vector2i fb_size, Vector2i win_size) noexcept global_coords main_impl::pixel_to_tile(Vector2d position) const noexcept { + auto vec = pixel_to_tile_(position); + const auto x = (std::int32_t)std::floor(vec[0]), y = (std::int32_t)std::floor(vec[1]); + return { x, y }; +} + +Vector2d main_impl::pixel_to_tile_(Vector2d position) const noexcept +{ constexpr Vector2d pixel_size(TILE_SIZE2); constexpr Vector2d half{.5, .5}; const Vector2d px = position - Vector2d{framebufferSize()}*.5 - _shader.camera_offset(); - const Vector2d vec = tile_shader::unproject(px*.5) / pixel_size + half; - const auto x = (std::int32_t)std::floor(vec[0]), y = (std::int32_t)std::floor(vec[1]); - return { x, y }; + return tile_shader::unproject(px*.5) / pixel_size + half; } auto main_impl::get_draw_bounds() const noexcept -> draw_bounds diff --git a/main/main-impl.hpp b/main/main-impl.hpp index 43add3bf..c078cb87 100644 --- a/main/main-impl.hpp +++ b/main/main-impl.hpp @@ -40,6 +40,7 @@ struct main_impl final : Platform::Sdl2Application, floormat_main const fm_settings& settings() const noexcept override; global_coords pixel_to_tile(Vector2d position) const noexcept override; + Vector2d pixel_to_tile_(Vector2d position) const noexcept override; ArrayView<const clickable<anim_atlas, scenery>> clickable_scenery() const noexcept override; ArrayView<clickable<anim_atlas, scenery>> clickable_scenery() noexcept override; |