CPedPath improvements
This commit is contained in:
parent
bf040c7cd1
commit
6d5464b6bb
@ -15,6 +15,7 @@ bool gbShowCarPathsLinks;
|
|||||||
CPathFind &ThePaths = *(CPathFind*)0x8F6754;
|
CPathFind &ThePaths = *(CPathFind*)0x8F6754;
|
||||||
|
|
||||||
#define MAX_DIST INT16_MAX-1
|
#define MAX_DIST INT16_MAX-1
|
||||||
|
#define MIN_PED_ROUTE_DISTANCE 23.8f
|
||||||
|
|
||||||
// object flags:
|
// object flags:
|
||||||
// 1 UseInRoadBlock
|
// 1 UseInRoadBlock
|
||||||
@ -31,7 +32,7 @@ CPedPath::CalcPedRoute(int8 pathType, CVector position, CVector destination, CVe
|
|||||||
{
|
{
|
||||||
*pointsFound = 0;
|
*pointsFound = 0;
|
||||||
CVector vecDistance = destination - position;
|
CVector vecDistance = destination - position;
|
||||||
if (Abs(vecDistance.x) > 23.8f || Abs(vecDistance.y) > 23.8f || Abs(vecDistance.z) > 23.8f)
|
if (Abs(vecDistance.x) > MIN_PED_ROUTE_DISTANCE || Abs(vecDistance.y) > MIN_PED_ROUTE_DISTANCE || Abs(vecDistance.z) > MIN_PED_ROUTE_DISTANCE)
|
||||||
return false;
|
return false;
|
||||||
CVector vecPos = (position + destination) * 0.5f;
|
CVector vecPos = (position + destination) * 0.5f;
|
||||||
CVector vecSectorStartPos (vecPos.x - 14.0f, vecPos.y - 14.0f, vecPos.z);
|
CVector vecSectorStartPos (vecPos.x - 14.0f, vecPos.y - 14.0f, vecPos.z);
|
||||||
@ -47,7 +48,7 @@ CPedPath::CalcPedRoute(int8 pathType, CVector position, CVector destination, CVe
|
|||||||
for (int32 x = 0; x < 40; x++) {
|
for (int32 x = 0; x < 40; x++) {
|
||||||
for (int32 y = 0; y < 40; y++) {
|
for (int32 y = 0; y < 40; y++) {
|
||||||
pathNodes[x][y].bBlockade = false;
|
pathNodes[x][y].bBlockade = false;
|
||||||
pathNodes[x][y].id = 0x7FFF;
|
pathNodes[x][y].id = INT16_MAX;
|
||||||
pathNodes[x][y].nodeIdX = x;
|
pathNodes[x][y].nodeIdX = x;
|
||||||
pathNodes[x][y].nodeIdY = y;
|
pathNodes[x][y].nodeIdY = y;
|
||||||
}
|
}
|
||||||
@ -147,7 +148,7 @@ void
|
|||||||
CPedPath::AddNodeToPathList(CPedPathNode *pNodeToAdd, int16 id, CPedPathNode *pNodeList)
|
CPedPath::AddNodeToPathList(CPedPathNode *pNodeToAdd, int16 id, CPedPathNode *pNodeList)
|
||||||
{
|
{
|
||||||
if (!pNodeToAdd->bBlockade && id < pNodeToAdd->id) {
|
if (!pNodeToAdd->bBlockade && id < pNodeToAdd->id) {
|
||||||
if (pNodeToAdd->id != 0x7FFF)
|
if (pNodeToAdd->id != INT16_MAX)
|
||||||
RemoveNodeFromList(pNodeToAdd);
|
RemoveNodeFromList(pNodeToAdd);
|
||||||
AddNodeToList(pNodeToAdd, id, pNodeList);
|
AddNodeToList(pNodeToAdd, id, pNodeList);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user