summaryrefslogtreecommitdiffhomepage
path: root/main
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2023-02-25 21:11:18 +0100
committerStanislaw Halik <sthalik@misaki.pl>2023-02-25 21:11:18 +0100
commit0b694f21edc97bd95faa65197bdda6b440479df3 (patch)
tree6ea5311aeb8c0b9613db429b1ffbe670924ea6b7 /main
parenta823c20d5d789a680a83a5edc5794abf943da378 (diff)
a
Diffstat (limited to 'main')
-rw-r--r--main/draw.cpp11
-rw-r--r--main/main-impl.hpp1
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;