Esempio n. 1
0
//==========================================
// AI_InitNavigationData
// Setup nodes & links for this map
//==========================================
void AI_InitNavigationData(void)
{
	int	i;
	int newlinks;
	int newjumplinks;
	int linkscount;
	int	servernodesstart = 0;

	//Init nodes arrays
	nav.num_nodes = 0;
	memset( nodes, 0, sizeof(nav_node_t) * MAX_NODES );
	memset( pLinks, 0, sizeof(nav_plink_t) * MAX_NODES );

	//Load nodes from file
	nav.loaded = AI_LoadPLKFile( level.mapname );
	if( !nav.loaded ) {
		Com_Printf( "AI: FAILED to load nodes file.\n");
		return;
	}

	servernodesstart = nav.num_nodes;

	for( linkscount = 0, i = 0; i< nav.num_nodes; i++ )
		linkscount += pLinks[i].numLinks;
	
	//create nodes for map entities
	AI_CreateNodesForEntities();
	newlinks = AI_LinkServerNodes( servernodesstart );
	newjumplinks = AI_LinkCloseNodes_JumpPass( servernodesstart );
	
	Com_Printf("-------------------------------------\n" );
	Com_Printf("       : AI: Nodes Initialized.\n" );
	Com_Printf("       : loaded nodes:%i.\n", servernodesstart );
	Com_Printf("       : added nodes:%i.\n", nav.num_nodes - servernodesstart );
	Com_Printf("       : total nodes:%i.\n", nav.num_nodes );
	Com_Printf("       : loaded links:%i.\n", linkscount );
	Com_Printf("       : added links:%i.\n", newlinks );
	Com_Printf("       : added jump links:%i.\n", newjumplinks );
}
Esempio n. 2
0
/*
* AI_InitNavigationData
* Setup nodes & links for this map
*/
void AI_InitNavigationData( qboolean silent )
{
	int i;
	int linkscount;

	memset( &nav, 0, sizeof( nav ) );
	memset( nodes, 0, sizeof( nav_node_t ) * MAX_NODES );
	memset( pLinks, 0, sizeof( nav_plink_t ) * MAX_NODES );

	if( developer->integer && !silent )
	{
		G_Printf( "-------------------------------------\n" );
		G_Printf( "       : AI version: %s\n", AI_VERSION_STRING );
	}

	// Load nodes from file
	if( !AI_LoadPLKFile( level.mapname ) )
	{
		if( !silent )
			G_Printf( "       : AI FAILED to load navigation file.\n" );
		return;
	}

	nav.serverNodesStart = nav.num_nodes;

	if( developer->integer && !silent )
	{
		G_Printf( "       : \n" );
		G_Printf( "       : loaded nodes:%i.\n", nav.num_nodes );

		for( linkscount = 0, i = 0; i < nav.num_nodes; i++ )
			linkscount += pLinks[i].numLinks;

		G_Printf( "       : loaded links:%i.\n", linkscount );
	}
}