diff options
| author | Stanislaw Halik <sthalik@misaki.pl> | 2023-02-25 00:08:57 +0100 |
|---|---|---|
| committer | Stanislaw Halik <sthalik@misaki.pl> | 2023-02-25 00:08:57 +0100 |
| commit | da0e08d717d774c9f1b5fc3509e2f837d3b4701f (patch) | |
| tree | 815c97f7d1ff1345f0acd39d3929a68f1fefbd3c /src | |
| parent | aba8a1a31d912d1a77b827fbd1c55dc3134f6327 (diff) | |
wip still broken
Diffstat (limited to 'src')
| -rw-r--r-- | src/chunk-bbox.cpp | 6 | ||||
| -rw-r--r-- | src/chunk.hpp | 4 | ||||
| -rw-r--r-- | src/collision.hpp | 3 |
3 files changed, 6 insertions, 7 deletions
diff --git a/src/chunk-bbox.cpp b/src/chunk-bbox.cpp index 382e4abb..52be8635 100644 --- a/src/chunk-bbox.cpp +++ b/src/chunk-bbox.cpp @@ -117,7 +117,7 @@ void chunk::ensure_passability() noexcept auto chunk::query_collisions(Vector4s vec, collision type) const -> Query { const_cast<chunk&>(*this).ensure_passability(); - loose_quadtree::BoundingBox<std::int16_t> bbox { vec[0], vec[1], vec[2], vec[3] }; + loose_quadtree::BoundingBox<float> bbox ( vec[0], vec[1], vec[2], vec[3] ); return { lqt_from_collision_type(type)->QueryIntersectsRegion(bbox) }; } @@ -126,7 +126,7 @@ auto chunk::query_collisions(Vector2s position, Vector2us size, collision type) const_cast<chunk&>(*this).ensure_passability(); constexpr auto half = sTILE_SIZE2/2; const auto start = position - half; - loose_quadtree::BoundingBox<std::int16_t> bbox {start[0], start[1], (Short)size[0], (Short)size[1] }; + loose_quadtree::BoundingBox<float> bbox ( start[0], start[1], (Short)size[0], (Short)size[1] ); return { lqt_from_collision_type(type)->QueryIntersectsRegion(bbox) }; } @@ -135,7 +135,7 @@ auto chunk::query_collisions(local_coords p, Vector2us size, Vector2s offset, co const_cast<chunk&>(*this).ensure_passability(); const auto pos = Vector2s(p.x, p.y) * sTILE_SIZE2 + offset; const auto start = pos - Vector2s(size/2); - loose_quadtree::BoundingBox<std::int16_t> bbox { start[0], start[1], (Short)size[0], (Short)size[1] }; + loose_quadtree::BoundingBox<float> bbox ( start[0], start[1], (Short)size[0], (Short)size[1] ); return { lqt_from_collision_type(type)->QueryIntersectsRegion(bbox) }; } diff --git a/src/chunk.hpp b/src/chunk.hpp index 09af9bdb..2f257c38 100644 --- a/src/chunk.hpp +++ b/src/chunk.hpp @@ -90,8 +90,8 @@ struct chunk final using BB = loose_quadtree::BoundingBox<std::int16_t>; using BBE = loose_quadtree::TrivialBBExtractor<std::int16_t>; - using lqt = loose_quadtree::LooseQuadtree<std::int16_t, BB, BBE>; - using Query = collision_query<std::int16_t, BB, BBE>; + using lqt = loose_quadtree::LooseQuadtree<float, BB, BBE>; + using Query = collision_query<float, BB, BBE>; Query query_collisions(Vector2s position, Vector2us size, collision type) const; Query query_collisions(local_coords p, Vector2us size, Vector2s offset, collision type) const; diff --git a/src/collision.hpp b/src/collision.hpp index 086369fb..0568cc39 100644 --- a/src/collision.hpp +++ b/src/collision.hpp @@ -1,14 +1,13 @@ #pragma once #include "compat/LooseQuadtree-impl.h" #include "src/pass-mode.hpp" -#include <cinttypes> namespace floormat { template<typename Num, typename BB, typename BBE> struct collision_iterator final { - using Query = typename loose_quadtree::LooseQuadtree<std::int16_t, BB, BBE>::Query; + using Query = typename loose_quadtree::LooseQuadtree<Num, BB, BBE>::Query; explicit collision_iterator() noexcept : q{nullptr} {} explicit collision_iterator(Query* q) noexcept : q{q} {} |
