From 0b694f21edc97bd95faa65197bdda6b440479df3 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sat, 25 Feb 2023 21:11:18 +0100 Subject: a --- main/draw.cpp | 11 ++++++++--- main/main-impl.hpp | 1 + 2 files changed, 9 insertions(+), 3 deletions(-) (limited to 'main') diff --git a/main/draw.cpp b/main/draw.cpp index 1a9dae26..2a3b3f7b 100644 --- a/main/draw.cpp +++ b/main/draw.cpp @@ -38,13 +38,18 @@ 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> clickable_scenery() const noexcept override; ArrayView> clickable_scenery() noexcept override; -- cgit v1.2.3