diff --git a/navMesh/walk/NavMeshWalkParams.h b/navMesh/walk/NavMeshWalkParams.h index b569fbc..4a89d87 100644 --- a/navMesh/walk/NavMeshWalkParams.h +++ b/navMesh/walk/NavMeshWalkParams.h @@ -64,6 +64,10 @@ namespace NM { return _toBeWalkedDistance; } + void check() const { + Assert::isFalse(numSteps == 0, "num Steps = 0 is currently not supported. must be >= 1"); + } + private: // precalc diff --git a/navMesh/walk/NavMeshWalkRandom.h b/navMesh/walk/NavMeshWalkRandom.h index 083db2c..8adff15 100644 --- a/navMesh/walk/NavMeshWalkRandom.h +++ b/navMesh/walk/NavMeshWalkRandom.h @@ -50,6 +50,9 @@ namespace NM { ResultEntry getOne(const NavMeshWalkParams& params) const { + // sanity checks + params.check(); + ResultEntry res; res.probability = 0; @@ -94,6 +97,9 @@ namespace NM { ResultList getMany(const NavMeshWalkParams& params) const { + // sanity checks + params.check(); + ResultList res; // to-be-walked distance; diff --git a/navMesh/walk/NavMeshWalkSemiDirected.h b/navMesh/walk/NavMeshWalkSemiDirected.h index 27c35bd..2eb661e 100644 --- a/navMesh/walk/NavMeshWalkSemiDirected.h +++ b/navMesh/walk/NavMeshWalkSemiDirected.h @@ -50,6 +50,9 @@ namespace NM { ResultEntry getOne(const NavMeshWalkParams& params) { + // sanity checks + params.check(); + ResultEntry re; static Distribution::Uniform dHead(-0.10, +0.10, 1337); @@ -117,7 +120,12 @@ namespace NM { } ResultList getMany(const NavMeshWalkParams& params) { + + // sanity checks + params.check(); + return {getOne(params)}; + } diff --git a/navMesh/walk/NavMeshWalkSemiRandom.h b/navMesh/walk/NavMeshWalkSemiRandom.h index f4b95c6..fff38ec 100644 --- a/navMesh/walk/NavMeshWalkSemiRandom.h +++ b/navMesh/walk/NavMeshWalkSemiRandom.h @@ -53,6 +53,9 @@ namespace NM { ResultEntry getOne(const NavMeshWalkParams& params) const { + // sanity checks + params.check(); + static Distribution::Normal dDist(1.0, 0.4); static Distribution::Normal dHead(0.0, 1.0); @@ -106,6 +109,9 @@ namespace NM { ResultList getMany(const NavMeshWalkParams& params) const { + // sanity checks + params.check(); + static Distribution::Normal dDist(1.0, 0.4); static Distribution::Normal dHead(0.0, 1.0); diff --git a/navMesh/walk/NavMeshWalkSimple.h b/navMesh/walk/NavMeshWalkSimple.h index 4184ba0..7819b41 100644 --- a/navMesh/walk/NavMeshWalkSimple.h +++ b/navMesh/walk/NavMeshWalkSimple.h @@ -52,6 +52,9 @@ namespace NM { ResultEntry getOne(const NavMeshWalkParams& params) { + // sanity checks + params.check(); + ResultEntry re; // to-be-walked distance; @@ -103,7 +106,12 @@ namespace NM { } ResultList getMany(const NavMeshWalkParams& params) { + + // sanity checks + params.check(); + return {getOne(params)}; + }