X-Git-Url: http://git.localhorst.tv/?p=blobs.git;a=blobdiff_plain;f=src%2Fcreature%2Fcreature.cpp;h=d7a9724fbe62474884cf9538165efbac1df73b81;hp=911d9d024f4ce7c58d4b69e4960ec42575e67ba4;hb=215c77b9d61ed635176edb86e54c6e87a1315dcf;hpb=9bc766beab23c8c5f507ca3c7abce24049e6229e diff --git a/src/creature/creature.cpp b/src/creature/creature.cpp index 911d9d0..d7a9724 100644 --- a/src/creature/creature.cpp +++ b/src/creature/creature.cpp @@ -950,10 +950,8 @@ glm::dvec3 Steering::Force(const Situation::State &s) const noexcept { glm::dvec3 diff = s.Position() - other->GetSituation().Position(); if (length2(diff) > max_look * max_look) continue; if (!c.PerceptionTest(other->GetSituation().Position())) continue; - double sep = length(diff) - other->Size() * 0.707 - c.Size() * 0.707; - if (sep < min_dist) { - repulse += normalize(diff) * (1.0 - sep / min_dist); - } + double sep = glm::clamp(length(diff) - other->Size() * 0.707 - c.Size() * 0.707, 0.0, min_dist); + repulse += normalize(diff) * (1.0 - sep / min_dist) * force; } result += repulse; }