summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2023-09-27 11:00:35 +0200
committerStanislaw Halik <sthalik@misaki.pl>2023-09-27 11:00:57 +0200
commit8c1bcac82411e8f5d513c13a48df3926a7b76842 (patch)
tree0bbe31ad9861ed7f4bbf4fb692bec5a68f51ab95 /src
parent9c54e30caf785643c18aa254c56d90c6dafe2db7 (diff)
add path_search::always_continue()
Diffstat (limited to 'src')
-rw-r--r--src/path-search.cpp3
-rw-r--r--src/path-search.hpp1
2 files changed, 4 insertions, 0 deletions
diff --git a/src/path-search.cpp b/src/path-search.cpp
index 5ed7ed1f..00be53cd 100644
--- a/src/path-search.cpp
+++ b/src/path-search.cpp
@@ -15,10 +15,13 @@ namespace floormat {
namespace {
constexpr auto never_continue_1 = [](collision_data) constexpr { return path_search_continue::blocked; };
constexpr auto never_continue_ = path_search::pred{never_continue_1};
+constexpr auto always_continue_1 = [](collision_data) constexpr { return path_search_continue::pass; };
+constexpr auto always_continue_ = path_search::pred{always_continue_1};
} // namespace
path_search_result::path_search_result() = default;
auto path_search::never_continue() noexcept -> const pred& { return never_continue_; }
+auto path_search::always_continue() noexcept -> const pred& { return always_continue_; }
void path_search::ensure_allocated(chunk_coords a, chunk_coords b)
{
diff --git a/src/path-search.hpp b/src/path-search.hpp
index 6004e700..bb72d87e 100644
--- a/src/path-search.hpp
+++ b/src/path-search.hpp
@@ -85,6 +85,7 @@ public:
using pred = fu2::function_view<path_search_continue(collision_data) const>;
static const pred& never_continue() noexcept;
+ static const pred& always_continue() noexcept;
void ensure_allocated(chunk_coords a, chunk_coords b);
void fill_cache(world& w, Vector2i cmin, Vector2i cmax, int8_t z, Vector2ub own_size, object_id own_id, const pred& p = never_continue());