WIP CZERO: Reversed Nav Area

This commit is contained in:
s1lentq 2015-12-07 20:18:21 +06:00
parent 03bc9da727
commit bd08ec6939
7 changed files with 3756 additions and 1899 deletions

View File

@ -36,6 +36,7 @@
#ifndef HOOK_GAMEDLL #ifndef HOOK_GAMEDLL
#define IMPL IMPLEMENT_ARRAY
#define IMPLEMENT_ARRAY(var)\ #define IMPLEMENT_ARRAY(var)\
var var
@ -44,6 +45,7 @@
#else // HOOK_GAMEDLL #else // HOOK_GAMEDLL
#define IMPL IMPLEMENT_ARRAY
#define IMPLEMENT_ARRAY(var)\ #define IMPLEMENT_ARRAY(var)\
(*p##var) (*p##var)

View File

@ -32,7 +32,13 @@
#pragma once #pragma once
#endif #endif
#define COS_TABLE_SIZE 256 #define COS_TABLE_SIZE 256
#define RAD_TO_DEG(deg) ((deg) * 180.0 / M_PI)
#define DEG_TO_RAD(rad) ((rad) * M_PI / 180.0)
#define SIGN(num) (((num) < 0) ? -1 : 1)
#define ABS(num) (SIGN(num) * (num))
class CBasePlayer; class CBasePlayer;
class BotProfile; class BotProfile;

File diff suppressed because it is too large Load Diff

View File

@ -36,10 +36,31 @@
class CNavArea; class CNavArea;
enum enum { MAX_BLOCKED_AREAS = 256 };
{
MAX_BLOCKED_AREAS = 256 #ifdef HOOK_GAMEDLL
};
#define TheNavLadderList (*pTheNavLadderList)
#define TheHidingSpotList (*pTheHidingSpotList)
#define TheNavAreaList (*pTheNavAreaList)
#define TheNavAreaGrid (*pTheNavAreaGrid)
#define lastDrawTimestamp (*plastDrawTimestamp)
#define goodSizedAreaList (*pgoodSizedAreaList)
#define markedArea (*pmarkedArea)
#define lastSelectedArea (*plastSelectedArea)
#define markedCorner (*pmarkedCorner)
#define isCreatingNavArea (*pisCreatingNavArea)
#define isAnchored (*pisAnchored)
#define anchor (*panchor)
#define isPlaceMode (*pisPlaceMode)
#define isPlacePainting (*pisPlacePainting)
#define editTimestamp (*peditTimestamp)
#define BlockedID (*pBlockedID)
#define BlockedIDCount (*pBlockedIDCount)
#endif // HOOK_GAMEDLL
void DestroyHidingSpots(void); void DestroyHidingSpots(void);
NOBODY void StripNavigationAreas(void); NOBODY void StripNavigationAreas(void);
@ -207,15 +228,15 @@ public:
} }
void Mark(void) void Mark(void)
{ {
m_marker = IMPLEMENT_ARRAY(m_masterMarker); m_marker = IMPL(m_masterMarker);
} }
bool IsMarked(void) const bool IsMarked(void) const
{ {
return (m_marker == IMPLEMENT_ARRAY(m_masterMarker)) ? true : false; return (m_marker == IMPL(m_masterMarker)) ? true : false;
} }
static void ChangeMasterMarker(void) static void ChangeMasterMarker(void)
{ {
IMPLEMENT_ARRAY(m_masterMarker)++; IMPL(m_masterMarker)++;
} }
private: private:
@ -229,8 +250,8 @@ private:
#ifdef HOOK_GAMEDLL #ifdef HOOK_GAMEDLL
public: public:
#endif // HOOK_GAMEDLL #endif // HOOK_GAMEDLL
static unsigned int IMPLEMENT_ARRAY(m_nextID); static unsigned int IMPL(m_nextID);
static unsigned int IMPLEMENT_ARRAY(m_masterMarker); static unsigned int IMPL(m_masterMarker);
};/* size: 24, cachelines: 1, members: 6 */ };/* size: 24, cachelines: 1, members: 6 */
@ -401,17 +422,17 @@ public:
void ComputeApproachAreas(void); void ComputeApproachAreas(void);
static void MakeNewMarker(void) static void MakeNewMarker(void)
{ {
IMPLEMENT_ARRAY(m_masterMarker)++; IMPL(m_masterMarker)++;
if (IMPLEMENT_ARRAY(m_masterMarker) == 0) if (IMPL(m_masterMarker) == 0)
IMPLEMENT_ARRAY(m_masterMarker) = 1; IMPL(m_masterMarker) = 1;
} }
void Mark(void) void Mark(void)
{ {
m_marker = IMPLEMENT_ARRAY(m_masterMarker); m_marker = IMPL(m_masterMarker);
} }
BOOL IsMarked(void) const BOOL IsMarked(void) const
{ {
return (m_marker == IMPLEMENT_ARRAY(m_masterMarker)) ? true : false; return (m_marker == IMPL(m_masterMarker)) ? true : false;
} }
void SetParent(CNavArea *parent, NavTraverseType how = NUM_TRAVERSE_TYPES) void SetParent(CNavArea *parent, NavTraverseType how = NUM_TRAVERSE_TYPES)
{ {
@ -505,8 +526,8 @@ private:
#ifdef HOOK_GAMEDLL #ifdef HOOK_GAMEDLL
public: public:
#endif // HOOK_GAMEDLL #endif // HOOK_GAMEDLL
static bool IMPLEMENT_ARRAY(m_isReset); static bool IMPL(m_isReset);
static unsigned int IMPLEMENT_ARRAY(m_nextID); static unsigned int IMPL(m_nextID);
#ifdef HOOK_GAMEDLL #ifdef HOOK_GAMEDLL
private: private:
@ -542,7 +563,7 @@ public:
#ifdef HOOK_GAMEDLL #ifdef HOOK_GAMEDLL
public: public:
#endif // HOOK_GAMEDLL #endif // HOOK_GAMEDLL
static unsigned int IMPLEMENT_ARRAY(m_masterMarker); static unsigned int IMPL(m_masterMarker);
#ifdef HOOK_GAMEDLL #ifdef HOOK_GAMEDLL
private: private:
@ -557,7 +578,7 @@ private:
#ifdef HOOK_GAMEDLL #ifdef HOOK_GAMEDLL
public: public:
#endif // HOOK_GAMEDLL #endif // HOOK_GAMEDLL
static CNavArea *IMPLEMENT_ARRAY(m_openList); static CNavArea *IMPL(m_openList);
#ifdef HOOK_GAMEDLL #ifdef HOOK_GAMEDLL
private: private:
@ -602,13 +623,13 @@ inline CNavArea *CNavArea::GetAdjacentArea(NavDirType dir, int i) const
/* <5a01dc> ../game_shared/bot/nav_area.h:435 */ /* <5a01dc> ../game_shared/bot/nav_area.h:435 */
inline bool CNavArea::IsOpen(void) const inline bool CNavArea::IsOpen(void) const
{ {
return (m_openMarker == IMPLEMENT_ARRAY(m_masterMarker)) ? true : false; return (m_openMarker == IMPL(m_masterMarker)) ? true : false;
} }
/* <5a0a62> ../game_shared/bot/nav_area.h:440 */ /* <5a0a62> ../game_shared/bot/nav_area.h:440 */
inline bool CNavArea::IsOpenListEmpty(void) inline bool CNavArea::IsOpenListEmpty(void)
{ {
return (IMPLEMENT_ARRAY(m_openList) != NULL) ? false : true; return (IMPL(m_openList) != NULL) ? false : true;
} }
/* <5a1483> ../game_shared/bot/nav_area.h:445 */ /* <5a1483> ../game_shared/bot/nav_area.h:445 */
@ -622,9 +643,9 @@ inline CNavArea *CNavArea::PopOpenList(void)
return area; return area;
} }
#else #else
if (IMPLEMENT_ARRAY(m_openList)) if (IMPL(m_openList))
{ {
CNavArea *area = IMPLEMENT_ARRAY(m_openList); CNavArea *area = IMPL(m_openList);
area->RemoveFromOpenList(); area->RemoveFromOpenList();
return area; return area;
} }
@ -1216,30 +1237,6 @@ typedef void (HidingSpot::*CNAV_AREA_NAVNODE)(CNavNode *nwNode, class CNavNode *
#endif // HOOK_GAMEDLL #endif // HOOK_GAMEDLL
#ifdef HOOK_GAMEDLL
#define TheNavLadderList (*pTheNavLadderList)
#define TheHidingSpotList (*pTheHidingSpotList)
#define TheNavAreaList (*pTheNavAreaList)
#define TheNavAreaGrid (*pTheNavAreaGrid)
#define lastDrawTimestamp (*plastDrawTimestamp)
#define goodSizedAreaList (*pgoodSizedAreaList)
#define markedArea (*pmarkedArea)
#define lastSelectedArea (*plastSelectedArea)
#define markedCorner (*pmarkedCorner)
#define isCreatingNavArea (*pisCreatingNavArea)
//#define isAnchored (*pisAnchored)
//#define anchor (*panchor)
//#define isPlaceMode (*pisPlaceMode)
#define isPlacePainting (*pisPlacePainting)
#define editTimestamp (*peditTimestamp)
#define BlockedID (*pBlockedID)
#define BlockedIDCount (*pBlockedIDCount)
#endif // HOOK_GAMEDLL
extern NavLadderList TheNavLadderList; extern NavLadderList TheNavLadderList;
extern HidingSpotList TheHidingSpotList; extern HidingSpotList TheHidingSpotList;
extern NavAreaList TheNavAreaList; extern NavAreaList TheNavAreaList;
@ -1250,9 +1247,9 @@ extern CNavArea *markedArea;
extern CNavArea *lastSelectedArea; extern CNavArea *lastSelectedArea;
extern NavCornerType markedCorner; extern NavCornerType markedCorner;
extern bool isCreatingNavArea; extern bool isCreatingNavArea;
//extern bool isAnchored; extern bool isAnchored;
//extern Vector anchor; extern Vector anchor;
//extern bool isPlaceMode; extern bool isPlaceMode;
extern bool isPlacePainting; extern bool isPlacePainting;
extern float editTimestamp; extern float editTimestamp;
@ -1301,6 +1298,5 @@ NOBODY void GenerateNavigationAreaMesh(void);
extern float (*pGetZ__Vector)(const Vector *pos); extern float (*pGetZ__Vector)(const Vector *pos);
extern CNavArea *(*pGetNearestNavArea)(const Vector *pos, bool anyZ); extern CNavArea *(*pGetNearestNavArea)(const Vector *pos, bool anyZ);
extern CNavArea *(*pGetNavArea)(const Vector *pos, float beneathLimit); extern CNavArea *(*pGetNavArea)(const Vector *pos, float beneathLimit);
extern void (*pDestroyNavigationMap)(void);
#endif // NAV_AREA_H #endif // NAV_AREA_H

View File

@ -8,7 +8,7 @@
//NavDirType Opposite[ NUM_DIRECTIONS ] = { SOUTH, WEST, NORTH, EAST }; //NavDirType Opposite[ NUM_DIRECTIONS ] = { SOUTH, WEST, NORTH, EAST };
CNavNode *CNavNode::m_list = NULL; CNavNode *CNavNode::m_list = NULL;
//unsigned int CNavNode::m_listLength = 0; unsigned int CNavNode::m_listLength = 0;
//Extent NodeMapExtent; //Extent NodeMapExtent;
@ -17,7 +17,7 @@ CNavNode *CNavNode::m_list = NULL;
//NavDirType Opposite[ NUM_DIRECTIONS ]; //NavDirType Opposite[ NUM_DIRECTIONS ];
CNavNode *IMPLEMENT_ARRAY_CLASS(CNavNode, m_list); CNavNode *IMPLEMENT_ARRAY_CLASS(CNavNode, m_list);
//unsigned int CNavNode::m_listLength; unsigned int IMPLEMENT_ARRAY_CLASS(CNavNode, m_listLength);
//Extent NodeMapExtent; //Extent NodeMapExtent;

View File

@ -32,6 +32,17 @@
#pragma once #pragma once
#endif #endif
#ifdef HOOK_GAMEDLL
//#define Opposite (*pOpposite)
//#define m_list (*pm_list)
//#define NodeMapExtent (*pNodeMapExtent)
#endif // HOOK_GAMEDLL
//extern NavDirType Opposite[ NUM_DIRECTIONS ];
//extern Extent NodeMapExtent;
class CNavNode class CNavNode
{ {
public: public:
@ -54,11 +65,11 @@ public:
static CNavNode *GetFirst(void) static CNavNode *GetFirst(void)
{ {
return IMPLEMENT_ARRAY(m_list); return IMPL(m_list);
} }
static unsigned int GetListLength(void) static unsigned int GetListLength(void)
{ {
return m_listLength; return IMPL(m_listLength);
} }
CNavNode *GetNext(void) CNavNode *GetNext(void)
{ {
@ -112,8 +123,8 @@ private:
#ifdef HOOK_GAMEDLL #ifdef HOOK_GAMEDLL
public: public:
#endif // HOOK_GAMEDLL #endif // HOOK_GAMEDLL
static CNavNode *IMPLEMENT_ARRAY(m_list); // the master list of all nodes for this map static CNavNode *IMPL(m_list); // the master list of all nodes for this map
static unsigned int m_listLength; static unsigned int IMPL(m_listLength);
#ifdef HOOK_GAMEDLL #ifdef HOOK_GAMEDLL
private: private:
#endif // HOOK_GAMEDLL #endif // HOOK_GAMEDLL
@ -173,18 +184,4 @@ inline CNavArea *CNavNode::GetArea(void) const
return m_area; return m_area;
} }
#ifdef HOOK_GAMEDLL
//#define Opposite (*pOpposite)
//#define m_list (*pm_list)
//#define m_listLength (*pm_listLength)
//#define NodeMapExtent (*pNodeMapExtent)
#endif // HOOK_GAMEDLL
//extern NavDirType Opposite[ NUM_DIRECTIONS ];
//extern CNavNode *CNavNode::m_list;
//extern unsigned int CNavNode::m_listLength;
//extern Extent NodeMapExtent;
#endif // NAV_NODE_H #endif // NAV_NODE_H

View File

@ -4923,117 +4923,119 @@ FunctionHook g_FunctionHooks[] =
//{ 0x0, "_ZNK16CNavPathFollower21FindOurPositionOnPathEP6Vectorb", mfunc_ptr_cast(&CNavPathFollower::FindOurPositionOnPath) }, //{ 0x0, "_ZNK16CNavPathFollower21FindOurPositionOnPathEP6Vectorb", mfunc_ptr_cast(&CNavPathFollower::FindOurPositionOnPath) },
//{ 0x0, "_ZN16CNavPathFollower13FindPathPointEfP6VectorPi", mfunc_ptr_cast(&CNavPathFollower::FindPathPoint) }, //{ 0x0, "_ZN16CNavPathFollower13FindPathPointEfP6VectorPi", mfunc_ptr_cast(&CNavPathFollower::FindPathPoint) },
//HidingSpot //HidingSpot
//{ 0x0, "", mfunc_ptr_cast<HIDING_SPOT_VOID>(&HidingSpot::HidingSpot) }, //{ 0x01D37DB0, "", mfunc_ptr_cast<HIDING_SPOT_VOID>(&HidingSpot::HidingSpot) },
//{ 0x0, "", mfunc_ptr_cast<HIDING_SPOT_VECTOR>(&HidingSpot::HidingSpot) }, //{ 0x01D37E40, "", mfunc_ptr_cast<HIDING_SPOT_VECTOR>(&HidingSpot::HidingSpot) },
//{ 0x0, "_ZNK10HidingSpot4SaveEij", mfunc_ptr_cast(&HidingSpot::Save) }, { 0x01D37EC0, "_ZNK10HidingSpot4SaveEij", mfunc_ptr_cast(&HidingSpot::Save) },
//{ 0x0, "_ZN10HidingSpot4LoadEP9SteamFilej", mfunc_ptr_cast(&HidingSpot::Load) }, { 0x01D37F00, "_ZN10HidingSpot4LoadEP9SteamFilej", mfunc_ptr_cast(&HidingSpot::Load) },
//CNavArea //CNavArea
//{ 0x01D44F80, "_ZN8CNavArea4SaveEij", mfunc_ptr_cast<SAVE_FD>(&CNavArea::Save) }, //{ 0x01D44F80, "_ZN8CNavArea4SaveEij", mfunc_ptr_cast<SAVE_FD>(&CNavArea::Save) },
//{ 0x0, "_ZNK8CNavArea4SaveEP8_IO_FILE", mfunc_ptr_cast<SAVE_FILE>(&CNavArea::Save) }, //{ 0x0, "_ZNK8CNavArea4SaveEP8_IO_FILE", mfunc_ptr_cast<SAVE_FILE>(&CNavArea::Save) },
//{ 0x0, "", mfunc_ptr_cast<CNAV_AREA_VOID>(&CNavArea::CNavArea) }, //{ 0x01D38040, "", mfunc_ptr_cast<CNAV_AREA_VOID>(&CNavArea::CNavArea) },
//{ 0x0, "", mfunc_ptr_cast<CNAV_AREA_TWO_VECTOR>(&CNavArea::CNavArea) }, //{ 0x0, "", mfunc_ptr_cast<CNAV_AREA_TWO_VECTOR>(&CNavArea::CNavArea) },
//{ 0x0, "", mfunc_ptr_cast<CNAV_AREA_VECTOR>(&CNavArea::CNavArea) }, //{ 0x0, "", mfunc_ptr_cast<CNAV_AREA_VECTOR>(&CNavArea::CNavArea) },
//{ 0x0, "", mfunc_ptr_cast<CNAV_AREA_NAVNODE>(&CNavArea::CNavArea) }, //{ 0x0, "", mfunc_ptr_cast<CNAV_AREA_NAVNODE>(&CNavArea::CNavArea) },
//{ 0x01D386A0, "", mfunc_ptr_cast(&CNavArea::~CNavArea) }, //{ 0x01D386A0, "", mfunc_ptr_cast(&CNavArea::~CNavArea) },
//{ 0x0, "_ZN8CNavArea10InitializeEv", mfunc_ptr_cast(&CNavArea::Initialize) }, //{ 0x01D37FE0, "_ZN8CNavArea10InitializeEv", mfunc_ptr_cast(&CNavArea::Initialize) }, // PRIVATE
//{ 0x01D388A0, "_ZN8CNavArea15OnDestroyNotifyEPS_", mfunc_ptr_cast(&CNavArea::OnDestroyNotify) }, // NOXREF //{ 0x01D388A0, "_ZN8CNavArea15OnDestroyNotifyEPS_", mfunc_ptr_cast(&CNavArea::OnDestroyNotify) }, // NOXREF
//{ 0x0, "_ZN8CNavArea9ConnectToEPS_10NavDirType", mfunc_ptr_cast(&CNavArea::ConnectTo) }, //{ 0x01D38960, "_ZN8CNavArea9ConnectToEPS_10NavDirType", mfunc_ptr_cast(&CNavArea::ConnectTo) },
//{ 0x01D389D0, "_ZN8CNavArea10DisconnectEPS_", mfunc_ptr_cast(&CNavArea::Disconnect) }, // NOXREF //{ 0x01D389D0, "_ZN8CNavArea10DisconnectEPS_", mfunc_ptr_cast(&CNavArea::Disconnect) }, // NOXREF
//{ 0x0, "_ZN8CNavArea11FinishMergeEPS_", mfunc_ptr_cast(&CNavArea::FinishMerge) }, { 0x01D38A40, "_ZN8CNavArea11FinishMergeEPS_", mfunc_ptr_cast(&CNavArea::FinishMerge) },
//{ 0x0, "_ZN8CNavArea24MergeAdjacentConnectionsEPS_", mfunc_ptr_cast(&CNavArea::MergeAdjacentConnections) }, { 0x01D38B60, "_ZN8CNavArea24MergeAdjacentConnectionsEPS_", mfunc_ptr_cast(&CNavArea::MergeAdjacentConnections) },
//{ 0x01D38D70, "_ZN8CNavArea11AssignNodesEPS_", mfunc_ptr_cast(&CNavArea::AssignNodes) }, //{ 0x01D38D70, "_ZN8CNavArea11AssignNodesEPS_", mfunc_ptr_cast(&CNavArea::AssignNodes) }, // NOXREF
//{ 0x0, "_ZN8CNavArea9SplitEditEbfPPS_S1_", mfunc_ptr_cast(&CNavArea::SplitEdit) }, { 0x01D38DC0, "_ZN8CNavArea9SplitEditEbfPPS_S1_", mfunc_ptr_cast(&CNavArea::SplitEdit) },
//{ 0x01D390F0, "_ZNK8CNavArea11IsConnectedEPKS_10NavDirType", mfunc_ptr_cast(&CNavArea::IsConnected) }, { 0x01D390F0, "_ZNK8CNavArea11IsConnectedEPKS_10NavDirType", mfunc_ptr_cast(&CNavArea::IsConnected) },
//{ 0x0, "_ZN8CNavArea19ComputeHeightChangeEPKS_", mfunc_ptr_cast(&CNavArea::ComputeHeightChange) }, { 0x01D391B0, "_ZN8CNavArea19ComputeHeightChangeEPKS_", mfunc_ptr_cast(&CNavArea::ComputeHeightChange) },
//{ 0x0, "_ZN8CNavArea15FinishSplitEditEPS_10NavDirType", mfunc_ptr_cast(&CNavArea::FinishSplitEdit) }, { 0x01D391E0, "_ZN8CNavArea15FinishSplitEditEPS_10NavDirType", mfunc_ptr_cast(&CNavArea::FinishSplitEdit) },
//{ 0x0, "_ZN8CNavArea10SpliceEditEPS_", mfunc_ptr_cast(&CNavArea::SpliceEdit) }, { 0x01D39500, "_ZN8CNavArea10SpliceEditEPS_", mfunc_ptr_cast(&CNavArea::SpliceEdit) },
//{ 0x0, "_ZN8CNavArea9MergeEditEPS_", mfunc_ptr_cast(&CNavArea::MergeEdit) }, { 0x01D39CA0, "_ZN8CNavArea9MergeEditEPS_", mfunc_ptr_cast(&CNavArea::MergeEdit) },
//{ 0x0, "_ZN8CNavArea5StripEv", mfunc_ptr_cast(&CNavArea::Strip) }, //{ 0x01D3A290, "_ZN8CNavArea5StripEv", mfunc_ptr_cast(&CNavArea::Strip) }, // NOXREF
{ 0x01D3C6C0, "_ZNK8CNavArea13IsOverlappingEPK6Vector", mfunc_ptr_cast<OVERLAP_VECTOR>(&CNavArea::IsOverlapping) }, { 0x01D3C6C0, "_ZNK8CNavArea13IsOverlappingEPK6Vector", mfunc_ptr_cast<OVERLAP_VECTOR>(&CNavArea::IsOverlapping) },
//{ 0x0, "_ZNK8CNavArea13IsOverlappingEPKS_", mfunc_ptr_cast<OVERLAP_CNAV>(&CNavArea::IsOverlapping) }, { 0x01D3C710, "_ZNK8CNavArea13IsOverlappingEPKS_", mfunc_ptr_cast<OVERLAP_CNAV>(&CNavArea::IsOverlapping) },
//{ 0x0, "_ZNK8CNavArea14IsOverlappingXEPKS_", mfunc_ptr_cast(&CNavArea::IsOverlappingX) }, //{ 0x01D3C760, "_ZNK8CNavArea14IsOverlappingXEPKS_", mfunc_ptr_cast(&CNavArea::IsOverlappingX) }, // NOXREF
//{ 0x0, "_ZNK8CNavArea14IsOverlappingYEPKS_", mfunc_ptr_cast(&CNavArea::IsOverlappingY) }, //{ 0x01D3C790, "_ZNK8CNavArea14IsOverlappingYEPKS_", mfunc_ptr_cast(&CNavArea::IsOverlappingY) }, // NOXREF
//{ 0x01D3C7C0, "_ZNK8CNavArea8ContainsEPK6Vector", mfunc_ptr_cast(&CNavArea::Contains) }, { 0x01D3C7C0, "_ZNK8CNavArea8ContainsEPK6Vector", mfunc_ptr_cast(&CNavArea::Contains) },
//{ 0x0, "_ZNK8CNavArea10IsCoplanarEPKS_", mfunc_ptr_cast(&CNavArea::IsCoplanar) }, { 0x01D3C8B0, "_ZNK8CNavArea10IsCoplanarEPKS_", mfunc_ptr_cast(&CNavArea::IsCoplanar) },
//!@{ 0x01D3CA60, "_ZNK8CNavArea4GetZEPK6Vector", mfunc_ptr_cast<GETZ_VECTOR>(&CNavArea::GetZ) }, // Used refs //!@{ 0x01D3CA60, "_ZNK8CNavArea4GetZEPK6Vector", mfunc_ptr_cast<GETZ_VECTOR>(&CNavArea::GetZ) }, // Used refs
//{ 0x0, "_ZNK8CNavArea4GetZEff", mfunc_ptr_cast<GETZ_TWO_FLOAT>(&CNavArea::GetZ) }, //{ 0x01D3CB50, "_ZNK8CNavArea4GetZEff", mfunc_ptr_cast<GETZ_TWO_FLOAT>(&CNavArea::GetZ) }, // NOXREF
{ 0x01D3CB80, "_ZNK8CNavArea21GetClosestPointOnAreaEPK6VectorPS0_", mfunc_ptr_cast(&CNavArea::GetClosestPointOnArea) }, { 0x01D3CB80, "_ZNK8CNavArea21GetClosestPointOnAreaEPK6VectorPS0_", mfunc_ptr_cast(&CNavArea::GetClosestPointOnArea) },
//{ 0x0, "_ZNK8CNavArea25GetDistanceSquaredToPointEPK6Vector", mfunc_ptr_cast(&CNavArea::GetDistanceSquaredToPoint) }, //{ 0x01D3CCD0, "_ZNK8CNavArea25GetDistanceSquaredToPointEPK6Vector", mfunc_ptr_cast(&CNavArea::GetDistanceSquaredToPoint) }, // NOXREF
//{ 0x0, "_ZNK8CNavArea21GetRandomAdjacentAreaE10NavDirType", mfunc_ptr_cast(&CNavArea::GetRandomAdjacentArea) }, //{ 0x01D3CDF0, "_ZNK8CNavArea21GetRandomAdjacentAreaE10NavDirType", mfunc_ptr_cast(&CNavArea::GetRandomAdjacentArea) }, // NOXREF
//{ 0x0, "_ZNK8CNavArea13ComputePortalEPKS_10NavDirTypeP6VectorPf", mfunc_ptr_cast(&CNavArea::ComputePortal) }, { 0x01D3CE40, "_ZNK8CNavArea13ComputePortalEPKS_10NavDirTypeP6VectorPf", mfunc_ptr_cast(&CNavArea::ComputePortal) },
//{ 0x0, "_ZNK8CNavArea27ComputeClosestPointInPortalEPKS_10NavDirTypePK6VectorPS3_", mfunc_ptr_cast(&CNavArea::ComputeClosestPointInPortal) }, { 0x01D3CFD0, "_ZNK8CNavArea27ComputeClosestPointInPortalEPKS_10NavDirTypePK6VectorPS3_", mfunc_ptr_cast(&CNavArea::ComputeClosestPointInPortal) },
//{ 0x0, "_ZNK8CNavArea6IsEdgeE10NavDirType", mfunc_ptr_cast(&CNavArea::IsEdge) }, //{ 0x01D3D280, "_ZNK8CNavArea6IsEdgeE10NavDirType", mfunc_ptr_cast(&CNavArea::IsEdge) }, // NOXREF
//{ 0x0, "_ZNK8CNavArea16ComputeDirectionEP6Vector", mfunc_ptr_cast(&CNavArea::ComputeDirection) }, { 0x01D3D310, "_ZNK8CNavArea16ComputeDirectionEP6Vector", mfunc_ptr_cast(&CNavArea::ComputeDirection) },
//{ 0x0, "_ZN8CNavArea4DrawEhhhi", mfunc_ptr_cast(&CNavArea::Draw) }, { 0x01D3D420, "_ZN8CNavArea4DrawEhhhi", mfunc_ptr_cast(&CNavArea::Draw) },
//{ 0x0, "_ZN8CNavArea16DrawMarkedCornerE13NavCornerTypehhhi", mfunc_ptr_cast(&CNavArea::DrawMarkedCorner) }, { 0x01D3D860, "_ZN8CNavArea16DrawMarkedCornerE13NavCornerTypehhhi", mfunc_ptr_cast(&CNavArea::DrawMarkedCorner) },
//{ 0x0, "_ZN8CNavArea13AddToOpenListEv", mfunc_ptr_cast(&CNavArea::AddToOpenList) }, { 0x01D3DAB0, "_ZN8CNavArea13AddToOpenListEv", mfunc_ptr_cast(&CNavArea::AddToOpenList) },
//{ 0x0, "_ZN8CNavArea16UpdateOnOpenListEv", mfunc_ptr_cast(&CNavArea::UpdateOnOpenList) }, { 0x01D3DB50, "_ZN8CNavArea16UpdateOnOpenListEv", mfunc_ptr_cast(&CNavArea::UpdateOnOpenList) },
//{ 0x01D3DBC0, "_ZN8CNavArea18RemoveFromOpenListEv", mfunc_ptr_cast(&CNavArea::RemoveFromOpenList) }, { 0x01D3DBC0, "_ZN8CNavArea18RemoveFromOpenListEv", mfunc_ptr_cast(&CNavArea::RemoveFromOpenList) },
//{ 0x01D3DC10, "_ZN8CNavArea16ClearSearchListsEv", mfunc_ptr_cast(&CNavArea::ClearSearchLists) }, { 0x01D3DC10, "_ZN8CNavArea16ClearSearchListsEv", mfunc_ptr_cast(&CNavArea::ClearSearchLists) },
//{ 0x0, "_ZNK8CNavArea9GetCornerE13NavCornerType", mfunc_ptr_cast(&CNavArea::GetCorner) }, { 0x01D3DC40, "_ZNK8CNavArea9GetCornerE13NavCornerType", mfunc_ptr_cast(&CNavArea::GetCorner) },
//{ 0x0, "_ZNK8CNavArea21IsHidingSpotCollisionEPK6Vector", mfunc_ptr_cast(&CNavArea::IsHidingSpotCollision) }, { 0x01D3DCF0, "_ZNK8CNavArea21IsHidingSpotCollisionEPK6Vector", mfunc_ptr_cast(&CNavArea::IsHidingSpotCollision) },
//{ 0x0, "_ZN8CNavArea18ComputeHidingSpotsEv", mfunc_ptr_cast(&CNavArea::ComputeHidingSpots) }, { 0x01D3DD50, "_Z19IsHidingSpotInCoverPK6Vector", (size_t)&IsHidingSpotInCover },
//{ 0x0, "_ZN8CNavArea18ComputeSniperSpotsEv", mfunc_ptr_cast(&CNavArea::ComputeSniperSpots) }, { 0x01D3DEA0, "_ZN8CNavArea18ComputeHidingSpotsEv", mfunc_ptr_cast(&CNavArea::ComputeHidingSpots) },
//{ 0x0, "_ZN8CNavArea16GetSpotEncounterEPKS_S1_", mfunc_ptr_cast(&CNavArea::GetSpotEncounter) }, { 0x01D3E790, "_ZN8CNavArea18ComputeSniperSpotsEv", mfunc_ptr_cast(&CNavArea::ComputeSniperSpots) },
//{ 0x0, "_ZN8CNavArea17AddSpotEncountersEPKS_10NavDirTypeS1_S2_", mfunc_ptr_cast(&CNavArea::AddSpotEncounters) }, { 0x01D3E7D0, "_ZN8CNavArea16GetSpotEncounterEPKS_S1_", mfunc_ptr_cast(&CNavArea::GetSpotEncounter) },
//{ 0x0, "_ZN8CNavArea21ComputeSpotEncountersEv", mfunc_ptr_cast(&CNavArea::ComputeSpotEncounters) }, { 0x01D3E810, "_ZN8CNavArea17AddSpotEncountersEPKS_10NavDirTypeS1_S2_", mfunc_ptr_cast(&CNavArea::AddSpotEncounters) },
//{ 0x01D3ED20, "_ZN8CNavArea11DecayDangerEv", mfunc_ptr_cast(&CNavArea::DecayDanger) }, { 0x01D3EC50, "_ZN8CNavArea21ComputeSpotEncountersEv", mfunc_ptr_cast(&CNavArea::ComputeSpotEncounters) },
//{ 0x0, "_ZN8CNavArea14IncreaseDangerEif", mfunc_ptr_cast(&CNavArea::IncreaseDanger) }, { 0x01D3ED20, "_ZN8CNavArea11DecayDangerEv", mfunc_ptr_cast(&CNavArea::DecayDanger) },
//{ 0x0, "_ZN8CNavArea9GetDangerEi", mfunc_ptr_cast(&CNavArea::GetDanger) }, { 0x01D3ED60, "_ZN8CNavArea14IncreaseDangerEif", mfunc_ptr_cast(&CNavArea::IncreaseDanger) },
//{ 0x0, "_ZNK8CNavArea14GetPlayerCountEiP11CBasePlayer", mfunc_ptr_cast(&CNavArea::GetPlayerCount) }, { 0x01D3EDC0, "_ZN8CNavArea9GetDangerEi", mfunc_ptr_cast(&CNavArea::GetDanger) },
//{ 0x01D40340, "_ZN8CNavArea18DrawConnectedAreasEv", mfunc_ptr_cast(&CNavArea::DrawConnectedAreas) }, { 0x01D40110, "_ZNK8CNavArea14GetPlayerCountEiP11CBasePlayer", mfunc_ptr_cast(&CNavArea::GetPlayerCount) },
//{ 0x0, "_ZN8CNavArea11RaiseCornerE13NavCornerTypei", mfunc_ptr_cast(&CNavArea::RaiseCorner) }, { 0x01D40340, "_ZN8CNavArea18DrawConnectedAreasEv", mfunc_ptr_cast(&CNavArea::DrawConnectedAreas) },
//{ 0x0, "_ZN8CNavArea20ComputeApproachAreasEv", mfunc_ptr_cast(&CNavArea::ComputeApproachAreas) }, { 0x01D40870, "_ZN8CNavArea11RaiseCornerE13NavCornerTypei", mfunc_ptr_cast(&CNavArea::RaiseCorner) },
{ 0x01D427C0, "_ZN8CNavArea20ComputeApproachAreasEv", mfunc_ptr_cast(&CNavArea::ComputeApproachAreas) },
//{ 0x0, "", mfunc_ptr_cast(&CollectHidingSpotsFunctor::CollectHidingSpotsFunctor) }, //{ 0x0, "", mfunc_ptr_cast(&CollectHidingSpotsFunctor::CollectHidingSpotsFunctor) },
//{ 0x0, "_ZN25CollectHidingSpotsFunctor10RemoveSpotEi", mfunc_ptr_cast(&CollectHidingSpotsFunctor::RemoveSpot) }, //{ 0x0, "_ZN25CollectHidingSpotsFunctor10RemoveSpotEi", mfunc_ptr_cast(&CollectHidingSpotsFunctor::RemoveSpot) },
//{ 0x0, "", mfunc_ptr_cast(&CNavAreaGrid::CNavAreaGrid) }, //{ 0x01D43000, "", mfunc_ptr_cast(&CNavAreaGrid::CNavAreaGrid) }, // NOXREF
//{ 0x0, "", mfunc_ptr_cast(&CNavAreaGrid::~CNavAreaGrid) }, //{ 0x01D43090, "", mfunc_ptr_cast(&CNavAreaGrid::~CNavAreaGrid) }, // NOXREF
//{ 0x01D43180, "_ZN12CNavAreaGrid5ResetEv", mfunc_ptr_cast(&CNavAreaGrid::Reset) }, // NOXREF //{ 0x01D43180, "_ZN12CNavAreaGrid5ResetEv", mfunc_ptr_cast(&CNavAreaGrid::Reset) }, // NOXREF
//{ 0x0, "_ZN12CNavAreaGrid10InitializeEffff", mfunc_ptr_cast(&CNavAreaGrid::Initialize) }, { 0x01D43360, "_ZN12CNavAreaGrid10InitializeEffff", mfunc_ptr_cast(&CNavAreaGrid::Initialize) },
//{ 0x0, "_ZN12CNavAreaGrid10AddNavAreaEP8CNavArea", mfunc_ptr_cast(&CNavAreaGrid::AddNavArea) }, { 0x01D43390, "_ZN12CNavAreaGrid10AddNavAreaEP8CNavArea", mfunc_ptr_cast(&CNavAreaGrid::AddNavArea) },
//{ 0x01D43560, "_ZN12CNavAreaGrid13RemoveNavAreaEP8CNavArea", mfunc_ptr_cast(&CNavAreaGrid::RemoveNavArea) }, { 0x01D43560, "_ZN12CNavAreaGrid13RemoveNavAreaEP8CNavArea", mfunc_ptr_cast(&CNavAreaGrid::RemoveNavArea) },
//!@{ 0x01D43710, "_ZNK12CNavAreaGrid10GetNavAreaEPK6Vectorf", mfunc_ptr_cast(&CNavAreaGrid::GetNavArea) }, // Used refs //!@{ 0x01D43710, "_ZNK12CNavAreaGrid10GetNavAreaEPK6Vectorf", mfunc_ptr_cast(&CNavAreaGrid::GetNavArea) }, // Used refs
//!@{ 0x01D43860, "_ZNK12CNavAreaGrid17GetNearestNavAreaEPK6Vectorb", mfunc_ptr_cast(&CNavAreaGrid::GetNearestNavArea) }, // Used refs //!@{ 0x01D43860, "_ZNK12CNavAreaGrid17GetNearestNavAreaEPK6Vectorb", mfunc_ptr_cast(&CNavAreaGrid::GetNearestNavArea) }, // Used refs
//{ 0x0, "_ZNK12CNavAreaGrid14GetNavAreaByIDEj", mfunc_ptr_cast(&CNavAreaGrid::GetNavAreaByID) }, //{ 0x0, "_ZNK12CNavAreaGrid14GetNavAreaByIDEj", mfunc_ptr_cast(&CNavAreaGrid::GetNavAreaByID) },
{ 0x01D439F0, "_ZNK12CNavAreaGrid8GetPlaceEPK6Vector", mfunc_ptr_cast(&CNavAreaGrid::GetPlace) }, { 0x01D439F0, "_ZNK12CNavAreaGrid8GetPlaceEPK6Vector", mfunc_ptr_cast(&CNavAreaGrid::GetPlace) },
//{ 0x0, "_Z19IsHidingSpotInCoverPK6Vector", (size_t)&IsHidingSpotInCover }, { 0x01D3E4F0, "_Z18ClassifySniperSpotP10HidingSpot", (size_t)&ClassifySniperSpot },
//{ 0x0, "_Z18ClassifySniperSpotP10HidingSpot", (size_t)&ClassifySniperSpot },
//{ 0x0, "", (size_t)&buildGoodSizedList }, // NOXREF //{ 0x0, "", (size_t)&buildGoodSizedList }, // NOXREF
{ 0x01D37CF0, "_Z18DestroyHidingSpotsv", (size_t)&DestroyHidingSpots }, { 0x01D37CF0, "_Z18DestroyHidingSpotsv", (size_t)&DestroyHidingSpots },
//{ 0x01D40920, "_Z12EditNavAreas14NavEditCmdType", (size_t)&EditNavAreas }, { 0x01D40920, "_Z12EditNavAreas14NavEditCmdType", (size_t)&EditNavAreas },
{ 0x01D42540, "_Z15GetGroundHeightPK6VectorPfPS_", (size_t)&GetGroundHeight }, { 0x01D42540, "_Z15GetGroundHeightPK6VectorPfPS_", (size_t)&GetGroundHeight },
{ 0x01D42740, "_Z21GetSimpleGroundHeightPK6VectorPfPS_", (size_t)&GetSimpleGroundHeight }, { 0x01D42740, "_Z21GetSimpleGroundHeightPK6VectorPfPS_", (size_t)&GetSimpleGroundHeight },
//{ 0x0, "", (size_t)&IsAreaVisible }, // NOXREF //{ 0x0, "", (size_t)&IsAreaVisible }, // NOXREF
//{ 0x01D40250, "_Z13GetMarkedAreav", (size_t)&GetMarkedArea }, { 0x01D40250, "_Z13GetMarkedAreav", (size_t)&GetMarkedArea },
//{ 0x01D40260, "_Z17EditNavAreasResetv", (size_t)&EditNavAreasReset }, // NOXREF //{ 0x01D40260, "_Z17EditNavAreasResetv", (size_t)&EditNavAreasReset }, // NOXREF
//{ 0x0, "_Z15DrawHidingSpotsPK8CNavArea", (size_t)&DrawHidingSpots }, { 0x01D40290, "_Z15DrawHidingSpotsPK8CNavArea", (size_t)&DrawHidingSpots },
//{ 0x01D3EE10, "_Z20IncreaseDangerNearbyifP8CNavAreaPK6Vectorf", (size_t)&IncreaseDangerNearby }, { 0x01D3EE10, "_Z20IncreaseDangerNearbyifP8CNavAreaPK6Vectorf", (size_t)&IncreaseDangerNearby },
//{ 0x01D3F020, "_Z10DrawDangerv", (size_t)&DrawDanger }, { 0x01D3F020, "_Z10DrawDangerv", (size_t)&DrawDanger },
{ 0x01D3F1C0, "_Z14IsSpotOccupiedP11CBaseEntityPK6Vector", (size_t)&IsSpotOccupied }, { 0x01D3F1C0, "_Z14IsSpotOccupiedP11CBaseEntityPK6Vector", (size_t)&IsSpotOccupied },
//{ 0x0, "_Z20FindNearbyHidingSpotP11CBaseEntityPK6VectorP8CNavAreafbb", (size_t)&FindNearbyHidingSpot }, { 0x01D3F2A0, "_Z20FindNearbyHidingSpotP11CBaseEntityPK6VectorP8CNavAreafbb", (size_t)&FindNearbyHidingSpot },
//{ 0x01D3FDE0, "_Z21FindNearbyRetreatSpotP11CBaseEntityPK6VectorP8CNavAreafib", mfunc_ptr_cast<FIND_SPOT_CBASE>(&FindNearbyRetreatSpot) }, { 0x01D3FDE0, "_Z21FindNearbyRetreatSpotP11CBaseEntityPK6VectorP8CNavAreafib", mfunc_ptr_cast<FIND_SPOT_CBASE>(&FindNearbyRetreatSpot) },
//{ 0x0, "_Z20IsCrossingLineOfFireRK6VectorS1_P11CBaseEntityi", (size_t)&IsCrossingLineOfFire }, //{ 0x0, "_Z20IsCrossingLineOfFireRK6VectorS1_P11CBaseEntityi", (size_t)&IsCrossingLineOfFire },
//{ 0x0, "_Z20FindRandomHidingSpotP11CBaseEntityjb", (size_t)&FindRandomHidingSpot }, { 0x01D3F850, "_Z20FindRandomHidingSpotP11CBaseEntityjb", (size_t)&FindRandomHidingSpot },
//{ 0x01D37FB0, "_Z17GetHidingSpotByIDj", (size_t)&GetHidingSpotByID }, { 0x01D37FB0, "_Z17GetHidingSpotByIDj", (size_t)&GetHidingSpotByID },
{ 0x01D39F30, "_Z24ApproachAreaAnalysisPrepv", (size_t)&ApproachAreaAnalysisPrep }, { 0x01D39F30, "_Z24ApproachAreaAnalysisPrepv", (size_t)&ApproachAreaAnalysisPrep },
{ 0x01D39FD0, "_Z31CleanupApproachAreaAnalysisPrepv", (size_t)&CleanupApproachAreaAnalysisPrep }, { 0x01D39FD0, "_Z31CleanupApproachAreaAnalysisPrepv", (size_t)&CleanupApproachAreaAnalysisPrep },
//{ 0x01D3A010, "_Z14DestroyLaddersv", (size_t)&DestroyLadders }, // NOXREF //{ 0x01D3A010, "_Z14DestroyLaddersv", (size_t)&DestroyLadders }, // NOXREF
//{ 0x01D3A060, "_Z20DestroyNavigationMapv", (size_t)&DestroyNavigationMap }, { 0x01D3A060, "_Z20DestroyNavigationMapv", (size_t)&DestroyNavigationMap },
//!@{ 0x01D3A210, "_Z20StripNavigationAreasv", (size_t)&StripNavigationAreas }, { 0x01D3A210, "_Z20StripNavigationAreasv", (size_t)&StripNavigationAreas },
//{ 0x0, "", (size_t)&FindFirstAreaInDirection }, // NOXREF #ifdef _WIN32
//{ 0x0, "", (size_t)&testJumpDown }, // NOXREF { 0x01D3A870, "", (size_t)&FindFirstAreaInDirection },
{ 0x01D3A9E0, "", (size_t)&testJumpDown }, // NOXREF
{ 0x01D3AD20, "", (size_t)&IsAreaRoughlySquare }, // NOXREF
#endif // _WIN32
//{ 0x0, "", (size_t)&findJumpDownArea }, // NOXREF //{ 0x0, "", (size_t)&findJumpDownArea }, // NOXREF
//{ 0x0, "_Z21ConnectGeneratedAreasv", (size_t)&ConnectGeneratedAreas }, { 0x01D3A330, "_Z21ConnectGeneratedAreasv", (size_t)&ConnectGeneratedAreas },
//{ 0x0, "_Z19MergeGeneratedAreasv", (size_t)&MergeGeneratedAreas }, { 0x01D3AAF0, "_Z19MergeGeneratedAreasv", (size_t)&MergeGeneratedAreas },
//{ 0x0, "", (size_t)&IsAreaRoughlySquare }, // NOXREF
//{ 0x0, "_Z6SplitXP8CNavArea", (size_t)&SplitX }, //{ 0x0, "_Z6SplitXP8CNavArea", (size_t)&SplitX },
//{ 0x0, "_Z6SplitYP8CNavArea", (size_t)&SplitY }, //{ 0x0, "_Z6SplitYP8CNavArea", (size_t)&SplitY },
//{ 0x0, "_Z13SquareUpAreasv", (size_t)&SquareUpAreas }, //{ 0x0, "_Z13SquareUpAreasv", (size_t)&SquareUpAreas },
//{ 0x0, "_Z8TestAreaP8CNavNodeii", (size_t)&TestArea }, { 0x01D3B100, "_Z8TestAreaP8CNavNodeii", (size_t)&TestArea },
//{ 0x0, "_Z9BuildAreaP8CNavNodeii", (size_t)&BuildArea }, { 0x01D3B2E0, "_Z9BuildAreaP8CNavNodeii", (size_t)&BuildArea },
//!@{ 0x01D3B3F0, "_Z12BuildLaddersv", (size_t)&BuildLadders }, { 0x01D3B3F0, "_Z12BuildLaddersv", (size_t)&BuildLadders },
//{ 0x0, "_Z13MarkJumpAreasv", (size_t)&MarkJumpAreas }, { 0x01D3C1B0, "_Z13MarkJumpAreasv", (size_t)&MarkJumpAreas },
//{ 0x0, "_Z26GenerateNavigationAreaMeshv", (size_t)&GenerateNavigationAreaMesh }, { 0x01D3C280, "_Z26GenerateNavigationAreaMeshv", (size_t)&GenerateNavigationAreaMesh },
#endif // Nav_Region #endif // Nav_Region
@ -5578,7 +5580,6 @@ AddressRef g_FunctionRefs[] =
{ 0x01D19C70, "_ZN9BotPhrase9RandomizeEv", (size_t)&pBotPhrase__Randomize }, { 0x01D19C70, "_ZN9BotPhrase9RandomizeEv", (size_t)&pBotPhrase__Randomize },
{ 0x01D25270, "_ZN13CCSBotManager6AddBotEPK10BotProfile18BotProfileTeamType", (size_t)&pCCSBotManager__AddBot }, { 0x01D25270, "_ZN13CCSBotManager6AddBotEPK10BotProfile18BotProfileTeamType", (size_t)&pCCSBotManager__AddBot },
{ 0x01D3A060, "_Z20DestroyNavigationMapv", (size_t)&pDestroyNavigationMap },
{ 0x01D80C90, "_Z16InstallGameRulesv", (size_t)&pInstallGameRules }, { 0x01D80C90, "_Z16InstallGameRulesv", (size_t)&pInstallGameRules },
{ 0x01D4C450, "_ZN8CHostage9IdleThinkEv", (size_t)&pCHostage__IdleThink }, { 0x01D4C450, "_ZN8CHostage9IdleThinkEv", (size_t)&pCHostage__IdleThink },
{ 0x01D517A0, "_ZN14CHostageImprov11FaceTowardsERK6Vectorf", (size_t)&pCHostageImprov__FaceTowards }, { 0x01D517A0, "_ZN14CHostageImprov11FaceTowardsERK6Vectorf", (size_t)&pCHostageImprov__FaceTowards },
@ -6023,10 +6024,9 @@ AddressRef g_DataRefs[] =
{ 0x01E23470, "cv_tutor_hint_interval_time", (size_t)&pcv_tutor_hint_interval_time }, { 0x01E23470, "cv_tutor_hint_interval_time", (size_t)&pcv_tutor_hint_interval_time },
{ 0x01E11EE4, "cv_hostage_debug", (size_t)&pcv_hostage_debug }, { 0x01E11EE4, "cv_hostage_debug", (size_t)&pcv_hostage_debug },
{ 0x01E11EF8, "cv_hostage_stop", (size_t)&pcv_hostage_stop }, { 0x01E11EF8, "cv_hostage_stop", (size_t)&pcv_hostage_stop },
//{ 0x0, "_ZL14placeDirectory", (size_t)&pplaceDirectory }, //{ 0x0, "_ZL14placeDirectory", (size_t)&pplaceDirectory },
{ 0x01E2A0E4, "TheNavLadderList", (size_t)&pTheNavLadderList }, { 0x01E2A0E4, "TheNavLadderList", (size_t)&pTheNavLadderList },
{ 0x01E2A0F4, "TheHidingSpotList", (size_t)&pTheHidingSpotList }, { 0x01E2A0F0, "TheHidingSpotList", (size_t)&pTheHidingSpotList },
{ 0x01E14C5C, "sPlayerModelFiles", (size_t)&psPlayerModelFiles }, { 0x01E14C5C, "sPlayerModelFiles", (size_t)&psPlayerModelFiles },
{ 0x01E5D6F0, "g_flTimeLimit", (size_t)&pg_flTimeLimit }, { 0x01E5D6F0, "g_flTimeLimit", (size_t)&pg_flTimeLimit },
{ 0x01E5D6F4, "g_flResetTime", (size_t)&pg_flResetTime }, { 0x01E5D6F4, "g_flResetTime", (size_t)&pg_flResetTime },
@ -6045,9 +6045,12 @@ AddressRef g_DataRefs[] =
{ 0x01E2A0D8, "TheNavAreaList", (size_t)&pTheNavAreaList }, { 0x01E2A0D8, "TheNavAreaList", (size_t)&pTheNavAreaList },
{ 0x01E29888, "TheNavAreaGrid", (size_t)&pTheNavAreaGrid }, { 0x01E29888, "TheNavAreaGrid", (size_t)&pTheNavAreaGrid },
{ 0x01E2A250, "_ZN8CNavNode6m_listE", mfunc_ptr_cast(&CNavNode::pm_list) }, { 0x01E2A250, "_ZN8CNavNode6m_listE", mfunc_ptr_cast(&CNavNode::pm_list) },
{ 0x01E2A254, "_ZN8CNavNode12m_listLengthE", mfunc_ptr_cast(&CNavNode::pm_listLength) },
//{ 0x0, "_ZN8CNavArea8m_nextIDE", mfunc_ptr_cast(&CNavArea::m_nextID) }, //{ 0x0, "_ZN8CNavArea8m_nextIDE", mfunc_ptr_cast(&CNavArea::m_nextID) },
{ 0x01E11584, "_ZN8CNavArea14m_masterMarkerE", mfunc_ptr_cast(&CNavArea::pm_masterMarker) }, { 0x01E11584, "_ZN8CNavArea14m_masterMarkerE", mfunc_ptr_cast(&CNavArea::pm_masterMarker) },
{ 0x01E11588, "_ZN10HidingSpot8m_nextIDE", mfunc_ptr_cast(&HidingSpot::pm_nextID) }, { 0x01E11588, "_ZN10HidingSpot8m_nextIDE", mfunc_ptr_cast(&HidingSpot::pm_nextID) },
{ 0x01E2A108, "_ZN10HidingSpot14m_masterMarkerE", mfunc_ptr_cast(&HidingSpot::pm_masterMarker) },
{ 0x01E11580, "_ZN8CNavArea8m_nextIDE", mfunc_ptr_cast(&CNavArea::pm_nextID) },
//{ 0x0, "_ZN10HidingSpot14m_masterMarkerE", mfunc_ptr_cast(&HidingSpot::m_masterMarker) }, //{ 0x0, "_ZN10HidingSpot14m_masterMarkerE", mfunc_ptr_cast(&HidingSpot::m_masterMarker) },
{ 0x01E2A100, "_ZN8CNavArea9m_isResetE", mfunc_ptr_cast(&CNavArea::pm_isReset) }, { 0x01E2A100, "_ZN8CNavArea9m_isResetE", mfunc_ptr_cast(&CNavArea::pm_isReset) },
@ -6060,48 +6063,38 @@ AddressRef g_DataRefs[] =
{ 0x01E2A110, "_ZL16lastSelectedArea", (size_t)&plastSelectedArea }, { 0x01E2A110, "_ZL16lastSelectedArea", (size_t)&plastSelectedArea },
{ 0x01E1158C, "_ZL12markedCorner", (size_t)&pmarkedCorner }, { 0x01E1158C, "_ZL12markedCorner", (size_t)&pmarkedCorner },
{ 0x01E2A114, "_ZL17isCreatingNavArea", (size_t)&pisCreatingNavArea }, { 0x01E2A114, "_ZL17isCreatingNavArea", (size_t)&pisCreatingNavArea },
//{ 0x0, "isAnchored", (size_t)&pisAnchored }, { 0x01E2A115, "_ZL10isAnchored", (size_t)&pisAnchored },
//{ 0x0, "anchor", (size_t)&panchor }, { 0x01E2A0C8, "_ZL6anchor", (size_t)&panchor },
//{ 0x0, "isPlaceMode", (size_t)&pisPlaceMode }, { 0x01E2A116, "_ZL11isPlaceMode", (size_t)&pisPlaceMode },
{ 0x01E2A117, "_ZL15isPlacePainting", (size_t)&pisPlacePainting }, { 0x01E2A117, "_ZL15isPlacePainting", (size_t)&pisPlacePainting },
{ 0x01E29CA4, "_ZL9BlockedID", (size_t)&pBlockedID }, { 0x01E29CA4, "_ZL9BlockedID", (size_t)&pBlockedID },
{ 0x01E2A120, "_ZL14BlockedIDCount", (size_t)&pBlockedIDCount }, { 0x01E2A120, "_ZL14BlockedIDCount", (size_t)&pBlockedIDCount },
{ 0x01E14988, "_ZL14gFunctionTable", (size_t)&pgFunctionTable }, { 0x01E14988, "_ZL14gFunctionTable", (size_t)&pgFunctionTable },
{ 0x01E14A50, "gNewDLLFunctions", (size_t)&pgNewDLLFunctions }, { 0x01E14A50, "gNewDLLFunctions", (size_t)&pgNewDLLFunctions },
{ 0x01E28810, "TheBots", (size_t)&pTheBots }, { 0x01E28810, "TheBots", (size_t)&pTheBots },
{ 0x01E24950, "_ZL8taskInfo", (size_t)&ptaskInfo }, { 0x01E24950, "_ZL8taskInfo", (size_t)&ptaskInfo },
{ 0x01E76594, "TheCareerTasks", (size_t)&pTheCareerTasks }, { 0x01E76594, "TheCareerTasks", (size_t)&pTheCareerTasks },
{ 0x01E28C7C, "TheBotProfiles", (size_t)&pTheBotProfiles }, { 0x01E28C7C, "TheBotProfiles", (size_t)&pTheBotProfiles },
{ 0x01E287CC, "g_pSelectedZombieSpawn", (size_t)&pg_pSelectedZombieSpawn }, { 0x01E287CC, "g_pSelectedZombieSpawn", (size_t)&pg_pSelectedZombieSpawn },
{ 0x01E287F0, "TheBotPhrases", (size_t)&pTheBotPhrases }, { 0x01E287F0, "TheBotPhrases", (size_t)&pTheBotPhrases },
{ 0x01E7657C, "TheTutor", (size_t)&pTheTutor }, { 0x01E7657C, "TheTutor", (size_t)&pTheTutor },
{ 0x01E2A25C, "g_pHostages", (size_t)&pg_pHostages }, { 0x01E2A25C, "g_pHostages", (size_t)&pg_pHostages },
{ 0x01E2A258, "g_iHostageNumber", (size_t)&pg_iHostageNumber }, { 0x01E2A258, "g_iHostageNumber", (size_t)&pg_iHostageNumber },
{ 0x01E16EE0, "_ZL11outputLevel", (size_t)&poutputLevel }, { 0x01E16EE0, "_ZL11outputLevel", (size_t)&poutputLevel },
{ 0x01E61B40, "_ZL19theDebugOutputTypes", (size_t)&ptheDebugOutputTypes }, { 0x01E61B40, "_ZL19theDebugOutputTypes", (size_t)&ptheDebugOutputTypes },
{ 0x01E61740, "_ZL14theDebugBuffer", (size_t)&ptheDebugBuffer }, { 0x01E61740, "_ZL14theDebugBuffer", (size_t)&ptheDebugBuffer },
{ 0x01E75D04, "_ZL9g_LessCtx", (size_t)&pg_LessCtx }, { 0x01E75D04, "_ZL9g_LessCtx", (size_t)&pg_LessCtx },
{ 0x01E62670, "g_pevLastInflictor", (size_t)&pg_pevLastInflictor }, { 0x01E62670, "g_pevLastInflictor", (size_t)&pg_pevLastInflictor },
{ 0x01E62788, "g_pLastSpawn", (size_t)&pg_pLastSpawn }, { 0x01E62788, "g_pLastSpawn", (size_t)&pg_pLastSpawn },
{ 0x01E63590, "g_pLastCTSpawn", (size_t)&pg_pLastCTSpawn }, { 0x01E63590, "g_pLastCTSpawn", (size_t)&pg_pLastCTSpawn },
{ 0x01E63594, "g_pLastTerroristSpawn", (size_t)&pg_pLastTerroristSpawn }, { 0x01E63594, "g_pLastTerroristSpawn", (size_t)&pg_pLastTerroristSpawn },
{ 0x01E62990, "_ZL11zombieSpawn", (size_t)&pzombieSpawn }, { 0x01E62990, "_ZL11zombieSpawn", (size_t)&pzombieSpawn },
{ 0x01E636E8, "_ZL16zombieSpawnCount", (size_t)&pzombieSpawnCount }, { 0x01E636E8, "_ZL16zombieSpawnCount", (size_t)&pzombieSpawnCount },
{ 0x01E13838, "svBlending", (size_t)&psvBlending }, { 0x01E13838, "svBlending", (size_t)&psvBlending },
{ 0x01E312D0, "IEngineStudio", (size_t)&pIEngineStudio }, { 0x01E312D0, "IEngineStudio", (size_t)&pIEngineStudio },
{ 0x01E2DAA8, "g_pstudiohdr", (size_t)&pg_pstudiohdr }, { 0x01E2DAA8, "g_pstudiohdr", (size_t)&pg_pstudiohdr },
{ 0x01E2F8C0, "g_pRotationMatrix", (size_t)&pg_pRotationMatrix }, { 0x01E2F8C0, "g_pRotationMatrix", (size_t)&pg_pRotationMatrix },
{ 0x01E2F8B0, "g_pBoneTransform", (size_t)&pg_pBoneTransform }, { 0x01E2F8B0, "g_pBoneTransform", (size_t)&pg_pBoneTransform },
{ 0x01E2F8BC, "omega", (size_t)&pomega }, { 0x01E2F8BC, "omega", (size_t)&pomega },
{ 0x01E312E0, "cosom", (size_t)&pcosom }, { 0x01E312E0, "cosom", (size_t)&pcosom },
{ 0x01E306C8, "sinom", (size_t)&psinom }, { 0x01E306C8, "sinom", (size_t)&psinom },