diff options
| -rw-r--r-- | editor/camera.cpp | 6 | ||||
| -rw-r--r-- | editor/draw.cpp | 8 | ||||
| -rw-r--r-- | editor/tests/raycast-test.cpp | 4 | ||||
| -rw-r--r-- | src/chunk-collision.cpp | 2 | ||||
| -rw-r--r-- | src/chunk-region.cpp | 4 | ||||
| -rw-r--r-- | src/collision.hpp | 6 | ||||
| -rw-r--r-- | src/object.cpp | 2 | ||||
| -rw-r--r-- | src/raycast.cpp | 6 | ||||
| -rw-r--r-- | src/search.cpp | 2 |
9 files changed, 20 insertions, 20 deletions
diff --git a/editor/camera.cpp b/editor/camera.cpp index 89147946..df5b2cb5 100644 --- a/editor/camera.cpp +++ b/editor/camera.cpp @@ -102,15 +102,15 @@ object_id app::get_object_colliding_with_cursor() object_id ret = 0; rtree->Search(t0.data(), t1.data(), [&](uint64_t data, const rect_type& rect) { [[maybe_unused]] auto x = std::bit_cast<collision_data>(data); - if (x.tag == (uint64_t)collision_type::geometry) + if (x.type == (uint64_t)collision_type::geometry) return true; Vector2 min(rect.m_min[0], rect.m_min[1]), max(rect.m_max[0], rect.m_max[1]); if (t0 >= min && t0 <= max) { - if (auto e_ = world.find_object(x.data); + if (auto e_ = world.find_object(x.id); e_ && Vector2ui(e_->bbox_size).product() != 0) { - ret = x.data; + ret = x.id; return false; } } diff --git a/editor/draw.cpp b/editor/draw.cpp index f5a906d2..c88984af 100644 --- a/editor/draw.cpp +++ b/editor/draw.cpp @@ -139,9 +139,9 @@ void app::draw_collision_boxes() if (x.tag == (uint64_t)collision_type::geometry) return true; #endif - if (x.tag == (uint64_t)collision_type::geometry) + if (x.type == (uint64_t)collision_type::geometry) if (x.pass == (uint64_t)pass_mode::pass) - if (x.data < TILE_COUNT*2+1) + if (x.id < TILE_COUNT*2+1) return true; Vector2 start(rect.m_min[0], rect.m_min[1]), end(rect.m_max[0], rect.m_max[1]); auto size = (end - start); @@ -186,9 +186,9 @@ void app::draw_collision_boxes() if (x.tag == (uint64_t)collision_type::geometry) return true; #endif - if (x.tag == (uint64_t)collision_type::geometry) + if (x.type == (uint64_t)collision_type::geometry) if (x.pass == (uint64_t)pass_mode::pass) - if (x.data < TILE_COUNT*2+1) + if (x.id < TILE_COUNT*2+1) return true; Vector2 start(rect.m_min[0], rect.m_min[1]), end(rect.m_max[0], rect.m_max[1]); auto size = end - start; diff --git a/editor/tests/raycast-test.cpp b/editor/tests/raycast-test.cpp index 07b44eaf..a8902145 100644 --- a/editor/tests/raycast-test.cpp +++ b/editor/tests/raycast-test.cpp @@ -181,7 +181,7 @@ struct raycast_test final : base_test { const char* type; - switch ((collision_type)result.collider.tag) + switch ((collision_type)result.collider.type) { using enum collision_type; default: type = "unknown?!"; break; @@ -199,7 +199,7 @@ struct raycast_test final : base_test do_column("collider"); std::snprintf(buf, array_size(buf), "%s @ %" PRIu64, - type, uint64_t{result.collider.data}); + type, uint64_t{result.collider.id}); { auto b = push_style_color(ImGuiCol_Text, 0xffff00ff_rgbaf); text(buf); } diff --git a/src/chunk-collision.cpp b/src/chunk-collision.cpp index c7f38028..45ae425f 100644 --- a/src/chunk-collision.cpp +++ b/src/chunk-collision.cpp @@ -72,7 +72,7 @@ bool find_hole_in_bbox(CutResult<float>::rect& hole, chunk::RTree& rtree, Vector bool ret = true; rtree.Search(min.data(), max.data(), [&](uint64_t data, const chunk::RTree::Rect& r) { auto x = std::bit_cast<collision_data>(data); - if (x.pass == (uint64_t)pass_mode::pass && x.tag == (uint64_t)collision_type::none) + if (x.pass == (uint64_t)pass_mode::pass && x.type == (uint64_t)collision_type::none) { CutResult<float>::rect holeʹ { .min = { r.m_min[0], r.m_min[1] }, diff --git a/src/chunk-region.cpp b/src/chunk-region.cpp index 3c5a8746..ed978c0f 100644 --- a/src/chunk-region.cpp +++ b/src/chunk-region.cpp @@ -119,10 +119,10 @@ auto default_region_predicate(chunk& c) noexcept return [&c](collision_data data) { auto x = std::bit_cast<collision_data>(data); // XXX 'scenery' is used for all object types - if (x.tag == (uint64_t)collision_type::scenery) + if (x.type == (uint64_t)collision_type::scenery) { auto& w = c.world(); - auto obj = w.find_object(x.data); + auto obj = w.find_object(x.id); if (obj->type() == object_type::critter) return path_search_continue::pass; } diff --git a/src/collision.hpp b/src/collision.hpp index 914d6e1a..eef51d88 100644 --- a/src/collision.hpp +++ b/src/collision.hpp @@ -9,9 +9,9 @@ enum class collision_type : unsigned char { constexpr inline size_t collision_data_BITS = 60; struct collision_data final { - uint64_t tag : 2; - uint64_t pass : 2; - uint64_t data : collision_data_BITS; + uint64_t type : 2; + uint64_t pass : 2; + uint64_t id : collision_data_BITS; bool operator==(const collision_data&) const noexcept; }; diff --git a/src/object.cpp b/src/object.cpp index 449a0fcb..1679f5b7 100644 --- a/src/object.cpp +++ b/src/object.cpp @@ -173,7 +173,7 @@ static bool do_search(class chunk* c, chunk_coords_ coord, bool ret = true; c->rtree()->Search(min.data(), max.data(), [&](object_id data, const auto& r) { auto x = std::bit_cast<collision_data>(data); - if (x.data != id && x.pass != (uint64_t)pass_mode::pass && + if (x.id != id && x.pass != (uint64_t)pass_mode::pass && rect_intersects(min, max, {r.m_min[0], r.m_min[1]}, {r.m_max[0], r.m_max[1]})) return ret = false; else diff --git a/src/raycast.cpp b/src/raycast.cpp index 06cc416e..cb939758 100644 --- a/src/raycast.cpp +++ b/src/raycast.cpp @@ -168,9 +168,9 @@ raycast_result_s do_raycasting(std::conditional_t<EnableDiagnostics, raycast_dia .to = to, .collision = {}, .collider = { - .tag = (uint64_t)collision_type::none, + .type = (uint64_t)collision_type::none, .pass = (uint64_t)pass_mode::pass, - .data = ((uint64_t)1 << collision_data_BITS)-1, + .id = ((uint64_t)1 << collision_data_BITS)-1, }, .has_result = true, .success = false, @@ -234,7 +234,7 @@ raycast_result_s do_raycasting(std::conditional_t<EnableDiagnostics, raycast_dia const auto do_check_collider = [&](uint64_t data, const Rect& r) { auto x = std::bit_cast<collision_data>(data); - if (x.data == self || x.pass == (uint64_t)pass_mode::pass) + if (x.id == self || x.pass == (uint64_t)pass_mode::pass) return; //Debug{} << "item" << x.data << Vector2(r.m_min[0], r.m_min[1]) << Vector2(r.m_max[0], r.m_max[1]); auto ret = ray_aabb_intersection(origin, dir_inv_norm, diff --git a/src/search.cpp b/src/search.cpp index 220e3869..424b1743 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -45,7 +45,7 @@ bool path_search::is_passable_1(chunk& c, Vector2 min, Vector2 max, object_id ow rt.Search(min.data(), max.data(), [&](uint64_t data, const auto& r) { auto x = std::bit_cast<collision_data>(data); - if (x.data != own_id && x.pass != (uint64_t)pass_mode::pass) + if (x.id != own_id && x.pass != (uint64_t)pass_mode::pass) { if (rect_intersects(min, max, {r.m_min[0], r.m_min[1]}, {r.m_max[0], r.m_max[1]})) if (p(x) != path_search_continue::pass) |
