ReGameDLL_CS/regamedll/game_shared/bot/nav_path.cpp

639 lines
22 KiB
C++
Raw Normal View History

2015-06-30 12:46:07 +03:00
#include "precompiled.h"
/* <505025> ../game_shared/bot/nav_path.cpp:24 */
NOBODY bool CNavPath::ComputePathPositions(void)
2015-06-30 12:46:07 +03:00
{
// {
// int i; // 34
// {
// const class PathSegment *from; // 36
// class PathSegment *to; // 37
// {
// const NavLadderList *list; // 118
// const_iterator iter; // 119
// {
// class CNavLadder *ladder; // 122
// AddDirectionVector(Vector *v,
// enum NavDirType dir,
// float amount); // 128
// }
// end(const class list<CNavLadder*, std::allocator<CNavLadder*>> *const this); // 120
// operator++(_List_const_iterator<CNavLadder*> *const this); // 120
// }
// {
// const NavLadderList *list; // 91
// const_iterator iter; // 92
// end(const class list<CNavLadder*, std::allocator<CNavLadder*>> *const this); // 93
// {
// class CNavLadder *ladder; // 95
// AddDirectionVector(Vector *v,
// enum NavDirType dir,
// float amount); // 104
// }
// operator++(_List_const_iterator<CNavLadder*> *const this); // 93
// }
// {
// float const stepInDist; // 47
// AddDirectionVector(Vector *v,
// enum NavDirType dir,
// float amount); // 48
// {
// class Vector2D dir; // 59
// float const pushDist; // 63
// DirectionToVector2D(NavDirType dir,
// class Vector2D *v); // 60
// {
// int j; // 71
// }
// }
// }
// }
// }
}
/* <50525f> ../game_shared/bot/nav_path.cpp:148 */
NOBODY bool CNavPath::IsAtEnd(const Vector &pos) const
2015-06-30 12:46:07 +03:00
{
// {
// float const epsilon; // 153
// operator-(const Vector *const this,
// const Vector &v); // 154
// IsLengthLessThan(const Vector *const this,
// float length); // 154
// }
}
/* <5052f6> ../game_shared/bot/nav_path.cpp:161 */
NOBODY float CNavPath::GetLength(void) const
2015-06-30 12:46:07 +03:00
{
// {
// float length; // 163
// {
// int i; // 164
// operator-(const Vector *const this,
// const Vector &v); // 166
// Length(const Vector *const this); // 166
// }
// }
}
/* <50537f> ../game_shared/bot/nav_path.cpp:177 */
NOBODY bool CNavPath::GetPointAlongPath(float distAlong, Vector *pointOnPath) const
2015-06-30 12:46:07 +03:00
{
// {
// float lengthSoFar; // 188
// float segmentLength; // 189
// Vector dir; // 190
// {
// int i; // 191
// operator-(const Vector *const this,
// const Vector &v); // 193
// Length(const Vector *const this); // 194
// {
// float delta; // 199
// float t; // 200
// operator*(float fl,
// const Vector &v); // 202
// operator+(const Vector *const this,
// const Vector &v); // 202
// }
// }
// }
}
/* <5054da> ../game_shared/bot/nav_path.cpp:218 */
NOBODY int CNavPath::GetSegmentIndexAlongPath(float distAlong) const
2015-06-30 12:46:07 +03:00
{
// {
// float lengthSoFar; // 228
// Vector dir; // 229
// {
// int i; // 230
// operator-(const Vector *const this,
// const Vector &v); // 232
// Length(const Vector *const this); // 232
// }
// }
}
/* <50557e> ../game_shared/bot/nav_path.cpp:250 */
NOBODY bool CNavPath::FindClosestPointOnPath(const Vector *worldPos, int startIndex, int endIndex, Vector *close) const
2015-06-30 12:46:07 +03:00
{
// {
// Vector along; // 255
// Vector toWorldPos; // 255
// Vector pos; // 256
// const Vector *from; // 257
// const Vector *to; // 257
// float length; // 258
// float closeLength; // 259
// float closeDistSq; // 260
// float distSq; // 261
// {
// int i; // 263
// NormalizeInPlace(Vector *const this); // 272
// operator-(const Vector *const this,
// const Vector &v); // 275
// DotProduct(Vector &a,
// const Vector &b); // 278
// operator-(const Vector *const this,
// const Vector &v); // 288
// LengthSquared(const Vector *const this); // 288
// operator-(const Vector *const this,
// const Vector &v); // 269
// operator*(float fl,
// const Vector &v); // 286
// operator+(const Vector *const this,
// const Vector &v); // 286
// }
// }
}
// Build trivial path when start and goal are in the same nav area
2015-06-30 12:46:07 +03:00
/* <5057df> ../game_shared/bot/nav_path.cpp:305 */
bool CNavPath::BuildTrivialPath(const Vector *start, const Vector *goal)
{
m_segmentCount = 0;
CNavArea *startArea = TheNavAreaGrid.GetNearestNavArea(start);
if (startArea == NULL)
return false;
CNavArea *goalArea = TheNavAreaGrid.GetNearestNavArea(goal);
if (goalArea == NULL)
return false;
m_segmentCount = 2;
m_path[0].area = startArea;
m_path[0].pos.x = start->x;
m_path[0].pos.y = start->y;
m_path[0].pos.z = startArea->GetZ(start);
m_path[0].ladder = NULL;
m_path[0].how = NUM_TRAVERSE_TYPES;
m_path[1].area = goalArea;
m_path[1].pos.x = goal->x;
m_path[1].pos.y = goal->y;
m_path[1].pos.z = goalArea->GetZ(goal);
m_path[1].ladder = NULL;
m_path[1].how = NUM_TRAVERSE_TYPES;
return true;
2015-06-30 12:46:07 +03:00
}
/* <505853> ../game_shared/bot/nav_path.cpp:340 */
NOBODY void CNavPath::Draw(void)
2015-06-30 12:46:07 +03:00
{
// {
// int i; // 345
// operator+(const Vector *const this,
// const Vector &v); // 347
// operator+(const Vector *const this,
// const Vector &v); // 347
// }
}
/* <505931> ../game_shared/bot/nav_path.cpp:357 */
NOBODY int CNavPath::FindNextOccludedNode(int anchor)
2015-06-30 12:46:07 +03:00
{
// {
// int lastVisible; // 359
// {
// int i; // 360
// {
// Vector anchorPlusHalf; // 372
// Vector iPlusHalf; // 373
// Vector anchorPlusFull; // 380
// Vector iPlusFull; // 381
// IsWalkableTraceLineClear(Vector &from,
// Vector &to,
// unsigned int flags); // 366
// operator+(const Vector *const this,
// const Vector &v); // 372
// IsWalkableTraceLineClear(Vector &from,
// Vector &to,
// unsigned int flags); // 374
// operator+(const Vector *const this,
// const Vector &v); // 373
// operator+(const Vector *const this,
// const Vector &v); // 380
// IsWalkableTraceLineClear(Vector &from,
// Vector &to,
// unsigned int flags); // 382
// operator+(const Vector *const this,
// const Vector &v); // 381
// }
// }
// }
}
/* <505c26> ../game_shared/bot/nav_path.cpp:396 */
NOBODY void CNavPath::Optimize(void)
2015-06-30 12:46:07 +03:00
{
}
/* <505c6d> ../game_shared/bot/nav_path.cpp:436 */
NOBODY CNavPathFollower::CNavPathFollower(void)
2015-06-30 12:46:07 +03:00
{
// CStuckMonitor(CStuckMonitor *const this); // 436
}
/* <505cce> ../game_shared/bot/nav_path.cpp:447 */
NOBODY void CNavPathFollower::Reset(void)
2015-06-30 12:46:07 +03:00
{
// Reset(CStuckMonitor *const this); // 452
}
/* <507c31> ../game_shared/bot/nav_path.cpp:459 */
NOBODY void CNavPathFollower::Update(float deltaT, bool avoidObstacles)
2015-06-30 12:46:07 +03:00
{
// {
// const class PathSegment *node; // 464
// float const closeRange; // 507
// float const aheadRange; // 523
// bool isApproachingJumpArea; // 529
// float const giveUpTime; // 596
// operator[](CNavPath *const this,
// int i); // 464
// Invalidate(CNavPath *const this); // 600
// {
// const Vector *approachPos; // 476
// const Vector *departPos; // 477
// operator[](CNavPath *const this,
// int i); // 480
// operator[](CNavPath *const this,
// int i); // 483
// }
// operator-(const Vector *const this,
// const Vector &v); // 508
// IsLengthLessThan(const Vector *const this,
// float length); // 508
// FindPathPoint(CNavPathFollower *const this,
// float aheadRange,
// Vector *point,
// int *prevIndex); // 524
// {
// float const crouchRange; // 547
// bool didCrouch; // 548
// {
// int i; // 549
// {
// const class CNavArea *to; // 551
// Vector close; // 560
// operator-(const Vector *const this,
// const Vector &v); // 563
// IsLengthGreaterThan(const class Vector2D *const this,
// float length); // 563
// operator[](CNavPath *const this,
// int i); // 551
// }
// }
// }
// GetDuration(const class CStuckMonitor *const this); // 597
// GetEndpoint(const class CNavPath *const this); // 599
// {
// float const closeRange; // 608
// class Vector2D to; // 609
// IsLengthLessThan(const class Vector2D *const this,
// float length); // 610
// {
// const class PathSegment *nextNode; // 614
// operator[](CNavPath *const this,
// int i); // 614
// GetEndpoint(const class CNavPath *const this); // 620
// Invalidate(CNavPath *const this); // 621
// Invalidate(CNavPath *const this); // 629
// }
// }
// operator+(const Vector *const this,
// const Vector &v); // 587
// Vector(Vector *const this,
// const Vector &v); // 587
// operator+(const Vector *const this,
// const Vector &v); // 588
// Vector(Vector *const this,
// const Vector &v); // 588
// Invalidate(CNavPath *const this); // 515
// }
}
/* <505d18> ../game_shared/bot/nav_path.cpp:662 */
NOBODY int CNavPathFollower::FindOurPositionOnPath(Vector *close, bool local) const
2015-06-30 12:46:07 +03:00
{
// {
// Vector along; // 667
// Vector toFeet; // 667
// Vector feet; // 668
// Vector eyes; // 669
// Vector pos; // 670
// const Vector *from; // 671
// const Vector *to; // 671
// float length; // 672
// float closeLength; // 673
// float closeDistSq; // 674
// int closeIndex; // 675
// float distSq; // 676
// int start; // 678
// int end; // 678
// Vector(Vector *const this,
// const Vector &v); // 668
// Vector(Vector *const this,
// const Vector &v); // 669
// {
// int i; // 696
// NormalizeInPlace(Vector *const this); // 705
// operator-(const Vector *const this,
// const Vector &v); // 708
// DotProduct(Vector &a,
// const Vector &b); // 711
// operator-(const Vector *const this,
// const Vector &v); // 721
// LengthSquared(const Vector *const this); // 721
// {
// Vector probe; // 727
// operator+(const Vector *const this,
// const Vector &v); // 727
// IsWalkableTraceLineClear(Vector &from,
// Vector &to,
// unsigned int flags); // 728
// }
// operator[](CNavPath *const this,
// int i); // 698
// operator[](CNavPath *const this,
// int i); // 699
// operator-(const Vector *const this,
// const Vector &v); // 702
// operator*(float fl,
// const Vector &v); // 719
// operator+(const Vector *const this,
// const Vector &v); // 719
// }
// }
}
/* <506248> ../game_shared/bot/nav_path.cpp:750 */
NOBODY int CNavPathFollower::FindPathPoint(float aheadRange, Vector *point, int *prevIndex)
2015-06-30 12:46:07 +03:00
{
// {
// int afterIndex; // 753
// Vector close; // 756
// int startIndex; // 757
// Vector initDir; // 838
// Vector feet; // 841
// Vector eyes; // 842
// float rangeSoFar; // 843
// bool visible; // 846
// Vector prevDir; // 848
// bool isCorner; // 851
// int i; // 852
// {
// int index; // 774
// float const closeEpsilon; // 782
// operator[](CNavPath *const this,
// int i); // 778
// operator-(const Vector *const this,
// const Vector &v); // 783
// IsLengthLessThan(const class Vector2D *const this,
// float length); // 783
// operator[](CNavPath *const this,
// int i); // 793
// }
// {
// Vector pos; // 802
// float const closeEpsilon; // 805
// operator-(const Vector *const this,
// const Vector &v); // 806
// operator[](CNavPath *const this,
// int i); // 802
// IsLengthLessThan(const class Vector2D *const this,
// float length); // 806
// }
// operator[](CNavPath *const this,
// int i); // 818
// operator[](CNavPath *const this,
// int i); // 820
// operator[](CNavPath *const this,
// int i); // 818
// operator[](CNavPath *const this,
// int i); // 831
// operator[](CNavPath *const this,
// int i); // 833
// operator[](CNavPath *const this,
// int i); // 831
// operator[](CNavPath *const this,
// int i); // 838
// operator[](CNavPath *const this,
// int i); // 838
// operator-(const Vector *const this,
// const Vector &v); // 838
// NormalizeInPlace(Vector *const this); // 839
// Vector(Vector *const this,
// const Vector &v); // 841
// {
// Vector pos; // 855
// Vector to; // 856
// Vector dir; // 857
// Vector probe; // 876
// Vector along; // 897
// operator[](CNavPath *const this,
// int i); // 855
// Vector(Vector *const this,
// const Vector &v); // 855
// operator[](CNavPath *const this,
// int i); // 856
// operator-(const Vector *const this,
// const Vector &v); // 856
// Normalize(const Vector *const this); // 857
// DotProduct(Vector &a,
// const Vector &b); // 860
// DotProduct(Vector &a,
// const Vector &b); // 867
// operator+(const Vector *const this,
// const Vector &v); // 876
// IsWalkableTraceLineClear(Vector &from,
// Vector &to,
// unsigned int flags); // 877
// operator[](CNavPath *const this,
// int i); // 886
// operator[](CNavPath *const this,
// int i); // 886
// operator[](CNavPath *const this,
// int i); // 897
// operator-(const Vector *const this,
// const Vector &v); // 897
// Length2D(const Vector *const this); // 898
// operator-(const Vector *const this,
// const Vector &v); // 897
// }
// Vector(Vector *const this,
// const Vector &v); // 842
// operator[](CNavPath *const this,
// int i); // 916
// {
// const Vector *afterPoint; // 921
// const Vector *beforePoint; // 922
// Vector to; // 924
// float length; // 925
// float t; // 927
// operator[](CNavPath *const this,
// int i); // 921
// operator[](CNavPath *const this,
// int i); // 922
// operator-(const Vector *const this,
// const Vector &v); // 924
// Length2D(const Vector *const this); // 925
// operator*(float fl,
// const Vector &v); // 934
// {
// float const sightStepSize; // 939
// float dt; // 940
// Vector probe; // 942
// operator+(const Vector *const this,
// const Vector &v); // 942
// IsWalkableTraceLineClear(Vector &from,
// Vector &to,
// unsigned int flags); // 943
// operator+(const Vector *const this,
// const Vector &v); // 946
// operator*(float fl,
// const Vector &v); // 946
// }
// operator+(const Vector *const this,
// const Vector &v); // 934
// }
// {
// float const epsilon; // 957
// class Vector2D toPoint; // 958
// class Vector2D centroid; // 959
// DotProduct(const class Vector2D &a,
// const class Vector2D &b); // 964
// IsLengthLessThan(const class Vector2D *const this,
// float length); // 964
// {
// int i; // 966
// operator[](CNavPath *const this,
// int i); // 969
// operator[](CNavPath *const this,
// int i); // 973
// operator[](CNavPath *const this,
// int i); // 971
// IsLengthGreaterThan(const class Vector2D *const this,
// float length); // 971
// }
// }
// }
}
/* <507004> ../game_shared/bot/nav_path.cpp:1000 */
NOBODY void CNavPathFollower::FeelerReflexAdjustment(Vector *goalPosition, float height)
2015-06-30 12:46:07 +03:00
{
// {
// Vector dir; // 1006
// Vector lat; // 1010
// float const feelerOffset; // 1012
// float const feelerLengthRun; // 1013
// float const feelerLengthWalk; // 1014
// float const feelerHeight; // 1016
// float feelerLength; // 1018
// float ground; // 1025
// Vector normal; // 1026
// Vector feet; // 1037
// Vector from; // 1040
// Vector to; // 1041
// bool leftClear; // 1043
// bool rightClear; // 1057
// float const avoidRange; // 1070
// NormalizeInPlace(Vector *const this); // 1008
// CrossProduct(Vector &a,
// const Vector &b); // 1031
// IsWalkableTraceLineClear(Vector &from,
// Vector &to,
// unsigned int flags); // 1043
// CrossProduct(Vector &a,
// const Vector &b); // 1034
// Vector(Vector *const this,
// const Vector &v); // 1037
// operator*(float fl,
// const Vector &v); // 1040
// operator+(const Vector *const this,
// const Vector &v); // 1040
// operator*(float fl,
// const Vector &v); // 1041
// operator+(const Vector *const this,
// const Vector &v); // 1041
// Vector(Vector *const this,
// const Vector &v); // 1049
// Vector(Vector *const this,
// const Vector &v); // 1049
// operator-(const Vector *const this,
// const Vector &v); // 1054
// IsWalkableTraceLineClear(Vector &from,
// Vector &to,
// unsigned int flags); // 1057
// operator+(const Vector *const this,
// const Vector &v); // 1055
// Vector(Vector *const this,
// const Vector &v); // 1063
// Vector(Vector *const this,
// const Vector &v); // 1063
// operator*(float fl,
// const Vector &v); // 1077
// operator+(const Vector *const this,
// const Vector &v); // 1077
// operator*(float fl,
// const Vector &v); // 1086
// operator-(const Vector *const this,
// const Vector &v); // 1086
// Vector(Vector *const this,
// const Vector &v); // 1065
// Vector(Vector *const this,
// const Vector &v); // 1065
// Vector(Vector *const this,
// const Vector &v); // 1051
// Vector(Vector *const this,
// const Vector &v); // 1051
// }
}
/* <507a31> ../game_shared/bot/nav_path.cpp:1098 */
NOBODY CStuckMonitor::CStuckMonitor(void)
2015-06-30 12:46:07 +03:00
{
// IntervalTimer(IntervalTimer *const this); // 1098
}
/* <507a73> ../game_shared/bot/nav_path.cpp:1108 */
NOBODY void CStuckMonitor::Reset(void)
2015-06-30 12:46:07 +03:00
{
}
/* <507a96> ../game_shared/bot/nav_path.cpp:1119 */
NOBODY void CStuckMonitor::Update(CImprov *improv)
2015-06-30 12:46:07 +03:00
{
// {
// float const unstuckRange; // 1124
// operator-(const Vector *const this,
// const Vector &v); // 1125
// IsLengthGreaterThan(const Vector *const this,
// float length); // 1125
// Reset(CStuckMonitor *const this); // 1128
// }
// {
// Vector vel; // 1137
// float moveDist; // 1148
// float deltaT; // 1150
// operator-(const Vector *const this,
// const Vector &v); // 1137
// Length(const Vector *const this); // 1148
// {
// float avgVel; // 1170
// float stuckVel; // 1177
// {
// int t; // 1171
// }
// Start(IntervalTimer *const this); // 1182
// }
// }
}