Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Conflicts: src/server/game/Entities/Player/Player.cpp src/server/game/Entities/Player/Player.h src/server/game/Handlers/SkillHandler.cpp
This commit is contained in:
commit
0f5c481cd4
14 files changed
+217
-186
No files matched your search
@@ -479,11 +479,29 @@ void PathGenerator::BuildPointPath(const float *startPoint, const float *endPoin
|
||||
dtStatus dtResult = DT_FAILURE;
|
||||
if (_straightLine)
|
||||
{
|
||||
// if the path is a straight line then start and end position are enough
|
||||
dtResult = DT_SUCCESS;
|
||||
pointCount = 2;
|
||||
memcpy(&pathPoints[0], startPoint, sizeof(float)* 3);
|
||||
memcpy(&pathPoints[3], endPoint, sizeof(float)* 3);
|
||||
pointCount = 1;
|
||||
memcpy(&pathPoints[VERTEX_SIZE * 0], startPoint, sizeof(float)* 3); // first point
|
||||
|
||||
// path has to be split into polygons with dist SMOOTH_PATH_STEP_SIZE between them
|
||||
G3D::Vector3 startVec = G3D::Vector3(startPoint[0], startPoint[1], startPoint[2]);
|
||||
G3D::Vector3 endVec = G3D::Vector3(endPoint[0], endPoint[1], endPoint[2]);
|
||||
G3D::Vector3 diffVec = (endVec - startVec);
|
||||
G3D::Vector3 prevVec = startVec;
|
||||
float len = diffVec.length();
|
||||
diffVec *= SMOOTH_PATH_STEP_SIZE / len;
|
||||
while (len > SMOOTH_PATH_STEP_SIZE)
|
||||
{
|
||||
len -= SMOOTH_PATH_STEP_SIZE;
|
||||
prevVec += diffVec;
|
||||
pathPoints[VERTEX_SIZE * pointCount + 0] = prevVec.x;
|
||||
pathPoints[VERTEX_SIZE * pointCount + 1] = prevVec.y;
|
||||
pathPoints[VERTEX_SIZE * pointCount + 2] = prevVec.z;
|
||||
++pointCount;
|
||||
}
|
||||
|
||||
memcpy(&pathPoints[VERTEX_SIZE * pointCount], endPoint, sizeof(float)* 3); // last point
|
||||
++pointCount;
|
||||
}
|
||||
else if (_useStraightPath)
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user