mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
Fixed writing of: - Path nodes - Node links - Path clusters - Cluster links The previous globals 'g_pppAiNodeClusters' and 'g_pppAiNodeClusterLinks' were of type CUtlVector. These have been retyped and renamed accordingly. Also mapped the CAI_Cluster class out slightly more. Rebuild of path clusters and cluster links are still not correct; parsing a file in from r2, results in a different file on the disk, at the very offset the clusters are being written in (one field is off, this will be investigated soon).
158 lines
4.9 KiB
C++
158 lines
4.9 KiB
C++
//=============================================================================//
|
|
//
|
|
// Purpose:
|
|
//
|
|
//=============================================================================//
|
|
#include "core/stdafx.h"
|
|
#include "tier1/cvar.h"
|
|
#include "game/server/ai_network.h"
|
|
|
|
int g_DebugConnectNode1 = -1;
|
|
int g_DebugConnectNode2 = -1;
|
|
#define DebuggingConnect( node1, node2 ) ( ( node1 == g_DebugConnectNode1 && node2 == g_DebugConnectNode2 ) || ( node1 == g_DebugConnectNode2 && node2 == g_DebugConnectNode1 ) )
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: debug logs node connections
|
|
// Input : node1 -
|
|
// node2 -
|
|
// *pszFormat -
|
|
// ... -
|
|
//-----------------------------------------------------------------------------
|
|
void CAI_Network::DebugConnectMsg(int node1, int node2, const char* pszFormat, ...)
|
|
{
|
|
if (ai_ainDebugConnect->GetBool())
|
|
{
|
|
if (DebuggingConnect(node1, node2))
|
|
{
|
|
static char buf[1024] = {};
|
|
{/////////////////////////////
|
|
va_list args{};
|
|
va_start(args, pszFormat);
|
|
|
|
vsnprintf(buf, sizeof(buf), pszFormat, args);
|
|
|
|
buf[sizeof(buf) - 1] = '\0';
|
|
va_end(args);
|
|
}/////////////////////////////
|
|
|
|
|
|
Msg(eDLL_T::SERVER, "%s", buf);
|
|
}
|
|
}
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: gets the AI Network VTable
|
|
// Output : void*
|
|
//-----------------------------------------------------------------------------
|
|
void* CAI_Network::GetVTable(void) const
|
|
{
|
|
return m_pVTable;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: gets the number of node links
|
|
// Output : int
|
|
//-----------------------------------------------------------------------------
|
|
int CAI_Network::GetNumLinks(void) const
|
|
{
|
|
return m_iNumLinks;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: gets the number of zones
|
|
// Output : int
|
|
//-----------------------------------------------------------------------------
|
|
int CAI_Network::GetNumZones(void) const
|
|
{
|
|
return m_iNumZones;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: gets the number of hints
|
|
// Output : int
|
|
//-----------------------------------------------------------------------------
|
|
int CAI_Network::GetNumHints(void) const
|
|
{
|
|
return m_iNumHints;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: gets the number of script nodes
|
|
// Output : int
|
|
//-----------------------------------------------------------------------------
|
|
int CAI_Network::GetNumScriptNodes(void) const
|
|
{
|
|
return m_iNumScriptNodes;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: gets the path nodes
|
|
// Output : int64_t
|
|
//-----------------------------------------------------------------------------
|
|
int64_t CAI_Network::GetNumPathNodes(void) const
|
|
{
|
|
return m_iNumNodes;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: gets the specified hint from static array
|
|
// Input : nIndex -
|
|
// Output : int
|
|
//-----------------------------------------------------------------------------
|
|
short CAI_Network::GetHint(int nIndex) const
|
|
{
|
|
return m_Hints[nIndex];
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: gets the pointer to script node array
|
|
// Output : CAI_ScriptNode*
|
|
//-----------------------------------------------------------------------------
|
|
CAI_ScriptNode* CAI_Network::GetScriptNodes(void) const
|
|
{
|
|
return m_ScriptNode;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: gets the pointer to path nodes
|
|
// Output : CAI_Node**
|
|
//-----------------------------------------------------------------------------
|
|
CAI_Node** CAI_Network::GetPathNodes(void) const
|
|
{
|
|
return m_pAInode;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: adds a path node
|
|
// Input : *origin -
|
|
// jaw -
|
|
// Output : CAI_Node*
|
|
//-----------------------------------------------------------------------------
|
|
CAI_Node* CAI_Network::AddPathNode(const Vector3D* origin, const float jaw)
|
|
{
|
|
return v_CAI_Network__AddPathNode(this, origin, jaw);
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: creates a node link
|
|
// Input : srcID -
|
|
// destID -
|
|
// Output : CAI_NodeLink*
|
|
//-----------------------------------------------------------------------------
|
|
CAI_NodeLink* CAI_Network::CreateNodeLink(int srcID, int destID)
|
|
{
|
|
return v_CAI_Network__CreateNodeLink(this, srcID, destID);
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
void VAI_Network::Attach() const
|
|
{
|
|
DetourAttach(&v_CAI_Network__DebugConnectMsg, &CAI_Network::DebugConnectMsg);
|
|
}
|
|
|
|
void VAI_Network::Detach() const
|
|
{
|
|
DetourDetach(&v_CAI_Network__DebugConnectMsg, &CAI_Network::DebugConnectMsg);
|
|
}
|