2013-04-19 02:52:48 +00:00
# ifndef __G_NAV_H__
# define __G_NAV_H__
//This file is shared by the exe nav code.
//If you modify it without recompiling the exe with new code, there could be issues.
# define WAYPOINT_NONE -1
# define MAX_STORED_WAYPOINTS 512 //???
# define MAX_WAYPOINT_REACHED_DIST_SQUARED 1024 //32 squared
# define MAX_COLL_AVOID_DIST 128
# define NAVGOAL_USE_RADIUS 16384 //Used to force the waypoint_navgoals with a manually set radius to actually do a DistanceSquared check, not just bounds overlap
# define MIN_STOP_DIST 64
# define MIN_BLOCKED_SPEECH_TIME 4000
# define MIN_DOOR_BLOCK_DIST 16
# define MIN_DOOR_BLOCK_DIST_SQR ( MIN_DOOR_BLOCK_DIST * MIN_DOOR_BLOCK_DIST )
# define SHOVE_SPEED 200
# define SHOVE_LIFT 10
# define MAX_RADIUS_CHECK 1024
# define YAW_ITERATIONS 16
// This is probably wrong - VVFIXME
// Some kind of wacky code sharing going on here, but we need these things
// in g_navnew.c -- which is now C++ code in the GAME on Xbox, so the
// original test fails.
# if !defined(__cplusplus) || (defined(_XBOX) && defined(QAGAME)) || (defined(__linux__) && defined(QAGAME))
//rww - Rest of defines here are also shared in exe, do not modify.
# define __NEWCOLLECT 1
# define _HARD_CONNECT 1
//Node flags
# define NF_ANY 0
//#define NF_CLEAR_LOS 0x00000001
# define NF_CLEAR_PATH 0x00000002
# define NF_RECALC 0x00000004
//Edge flags
# define EFLAG_NONE 0
# define EFLAG_BLOCKED 0x00000001
# define EFLAG_FAILED 0x00000002
//Miscellaneous defines
# define NODE_NONE -1
# define NAV_HEADER_ID 'JNV5'
# define NODE_HEADER_ID 'NODE'
//this stuff is local and can be modified, don't even show it to the engine.
extern qboolean navCalculatePaths ;
extern qboolean NAVDEBUG_showNodes ;
extern qboolean NAVDEBUG_showRadius ;
extern qboolean NAVDEBUG_showEdges ;
extern qboolean NAVDEBUG_showTestPath ;
extern qboolean NAVDEBUG_showEnemyPath ;
extern qboolean NAVDEBUG_showCombatPoints ;
extern qboolean NAVDEBUG_showNavGoals ;
extern qboolean NAVDEBUG_showCollision ;
extern int NAVDEBUG_curGoal ;
void NAV_Shutdown ( void ) ;
void NAV_CalculatePaths ( const char * filename , int checksum ) ;
void NAV_CalculateSquadPaths ( const char * filename , int checksum ) ;
void NAV_ShowDebugInfo ( void ) ;
int NAV_GetNearestNode ( gentity_t * self , int lastNode ) ;
extern int NAV_TestBestNode ( gentity_t * self , int startID , int endID , qboolean failEdge ) ;
qboolean NPC_GetMoveDirection ( vec3_t out , float * distance ) ;
void NPC_MoveToGoalExt ( vec3_t point ) ;
void NAV_FindPlayerWaypoint ( int clNum ) ;
qboolean NAV_CheckAhead ( gentity_t * self , vec3_t end , trace_t * trace , int clipmask ) ;
# endif
# endif //#ifndef __G_NAV_H__