aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/crepe/api/AI.cpp10
-rw-r--r--src/crepe/api/AI.h2
2 files changed, 8 insertions, 4 deletions
diff --git a/src/crepe/api/AI.cpp b/src/crepe/api/AI.cpp
index a4d3e98..2195249 100644
--- a/src/crepe/api/AI.cpp
+++ b/src/crepe/api/AI.cpp
@@ -1,6 +1,8 @@
#include <stdexcept>
+#include <type_traits>
#include "AI.h"
+#include "types.h"
namespace crepe {
@@ -19,7 +21,7 @@ void AI::make_circle_path(float radius, const vec2 & center, float start_angle,
step = 2 * M_PI / MIN_STEP;
}
// The path node distance is determined by the step size and the radius
- path_node_distance = radius * step * 0.75f;
+ this->path_node_distance = radius * step * PATH_NODE_DISTANCE_FACTOR;
if (clockwise) {
for (float i = start_angle; i < 2 * M_PI + start_angle; i += step) {
@@ -47,10 +49,10 @@ void AI::make_oval_path(float radius_x, float radius_y, const vec2 & center, flo
if (step > 2 * M_PI / MIN_STEP) {
step = 2 * M_PI / MIN_STEP;
}
- // The path node distance is determined by the step size times the radius times 75%
- this->path_node_distance = max_radius * step * 0.75f;
+ // The path node distance is determined by the step size and the radius
+ this->path_node_distance = max_radius * step * PATH_NODE_DISTANCE_FACTOR;
- auto rotate_point = [rotation](vec2 point, vec2 center) {
+ std::function<vec2(vec2, vec2)> rotate_point = [rotation](vec2 point, vec2 center) {
float s = sin(rotation);
float c = cos(rotation);
diff --git a/src/crepe/api/AI.h b/src/crepe/api/AI.h
index 4f7692b..c780a91 100644
--- a/src/crepe/api/AI.h
+++ b/src/crepe/api/AI.h
@@ -121,6 +121,8 @@ private:
static constexpr int MIN_STEP = 16;
//! The radius to step size ratio for the path following behavior
static constexpr float RADIUS_TO_STEP = 400.0f;
+ //! The path node distance factor for the path following behavior
+ static constexpr float PATH_NODE_DISTANCE_FACTOR = 0.75f;
};
} // namespace crepe