Пример #1
0
/*
* AI_InitEntitiesData
*/
void AI_InitEntitiesData( void )
{
	int newlinks, newjumplinks;
	edict_t *ent;

	if( !nav.num_nodes )
	{
		if( g_numbots->integer ) trap_Cvar_Set( "g_numbots", "0" );
		return;
	}

	// create nodes for navigable map entities ( must happen after finding teams )
	for( ent = game.edicts + 1 + gs.maxclients; ENTNUM( ent ) < game.numentities; ent++ )
		AI_AddNavigableEntity( ent );

	// add all clients to goalEntities so they can be tracked as enemies
	for( ent = game.edicts + 1; PLAYERNUM( ent ) < gs.maxclients; ent++ )
		AI_AddGoalEntity( ent );

	// link all newly added nodes
	newlinks = AI_LinkServerNodes( nav.serverNodesStart );
	newjumplinks = AI_LinkCloseNodes_JumpPass( nav.serverNodesStart );

	if( developer->integer )
	{
		G_Printf( "       : added nodes:%i.\n", nav.num_nodes - nav.serverNodesStart );
		G_Printf( "       : total nodes:%i.\n", nav.num_nodes );
		G_Printf( "       : added links:%i.\n", newlinks );
		G_Printf( "       : added jump links:%i.\n", newjumplinks );
	}

	G_Printf( "       : AI Navigation Initialized.\n" );

	nav.loaded = qtrue;
}
Пример #2
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 );
}