aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjackpoz <giacomopoz@gmail.com>2015-07-03 23:21:09 +0200
committerjackpoz <giacomopoz@gmail.com>2015-07-03 23:21:09 +0200
commit37b157746e075294fd14abef5cc8e611b7bf2c76 (patch)
treefb1608e048d72c032d26f7a02c6fe84bbe5b97e8
parenta328a119784252c6d514436f4ceffa693ac65453 (diff)
Scripts/Commands: ".mmap path line" now uses raycast pathfinding
Add "line" optional parameter to ".mmap path" command to use raycast implementation of recast, useful to simulate charge paths.
-rw-r--r--src/server/scripts/Commands/cs_mmaps.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/server/scripts/Commands/cs_mmaps.cpp b/src/server/scripts/Commands/cs_mmaps.cpp
index 14623e591c1..e06159a6748 100644
--- a/src/server/scripts/Commands/cs_mmaps.cpp
+++ b/src/server/scripts/Commands/cs_mmaps.cpp
@@ -87,6 +87,10 @@ public:
if (para && strcmp(para, "true") == 0)
useStraightPath = true;
+ bool useStraightLine = false;
+ if (para && strcmp(para, "line") == 0)
+ useStraightLine = true;
+
// unit locations
float x, y, z;
player->GetPosition(x, y, z);
@@ -94,11 +98,11 @@ public:
// path
PathGenerator path(target);
path.SetUseStraightPath(useStraightPath);
- bool result = path.CalculatePath(x, y, z);
+ bool result = path.CalculatePath(x, y, z, false, useStraightLine);
Movement::PointsArray const& pointPath = path.GetPath();
handler->PSendSysMessage("%s's path to %s:", target->GetName().c_str(), player->GetName().c_str());
- handler->PSendSysMessage("Building: %s", useStraightPath ? "StraightPath" : "SmoothPath");
+ handler->PSendSysMessage("Building: %s", useStraightPath ? "StraightPath" : useStraightLine ? "Raycast" : "SmoothPath");
handler->PSendSysMessage("Result: %s - Length: %zu - Type: %u", (result ? "true" : "false"), pointPath.size(), path.GetPathType());
G3D::Vector3 const &start = path.GetStartPosition();