2009-11-04 21:16:50 +00:00
/*supported halflife API versions:
138
140
*/
# if HLSERVER >= 1
# define HALFLIFE_API_VERSION HLSERVER
# else
# define HALFLIFE_API_VERSION 140
# endif
# ifndef QDECL
# ifdef _MSC_VER
# define QDECL _cdecl
# else
# define QDECL
# endif
# endif
2009-04-01 22:03:56 +00:00
typedef long hllong ; //long is 64bit on amd64+linux, not sure that's what valve meant, but lets keep it for compatibility.
typedef struct hledict_s hledict_t ;
typedef unsigned long hlintptr_t ; //this may be problematic. CRestore::ReadField needs a fix. Or 20.
typedef unsigned long hlcrc_t ; //supposed to be 32bit... *sigh*
typedef struct
{
int allsolid ;
int startsolid ;
int inopen ;
int inwater ;
float fraction ;
vec3_t endpos ;
float planedist ;
vec3_t planenormal ;
hledict_t * touched ;
int hitgroup ;
} hltraceresult_t ;
# if HALFLIFE_API_VERSION <= 138
typedef struct
{
int etype ;
int number ;
int flags ;
vec3_t origin ;
vec3_t angles ;
int modelindex ;
int sequence1 ;
float frame ;
int colourmap ;
short skin ;
short solid ;
int effects ;
float scale ;
int rendermode ;
int renderamt ;
int rendercolour ;
int renderfx ;
int movetype ;
float frametime ;
float framerate ;
int body ;
qbyte controller [ 4 ] ;
qbyte blending [ 2 ] ;
short padding ;
vec3_t velocity ;
vec3_t mins ;
vec3_t maxs ;
int aiment ;
} hlbaseline_t ;
# endif
typedef struct
{
string_t classname ;
string_t globalname ;
vec3_t origin ;
vec3_t oldorigin ;
vec3_t velocity ;
vec3_t basevelocity ;
vec3_t clbasevelocity ;
vec3_t movedir ;
vec3_t angles ;
vec3_t avelocity ;
vec3_t punchangles ;
vec3_t v_angle ;
# if HALFLIFE_API_VERSION > 138
vec3_t endpos ;
vec3_t startpos ;
float impacttime ;
float starttime ;
# endif
int fixangle ;
float ideal_pitch ;
float pitch_speed ;
float ideal_yaw ;
float yaw_speed ;
int modelindex ;
string_t model ;
int vmodelindex ;
int vwmodelindex ;
vec3_t absmin ;
vec3_t absmax ;
vec3_t mins ;
vec3_t maxs ;
vec3_t size ;
float ltime ;
float nextthink ;
int movetype ;
int solid ;
int skin ;
int body ;
int effects ;
float gravity ;
float friction ;
int light_level ;
int sequence1 ;
int sequence2 ;
float frame ;
float framestarttime ;
float framerate ;
qbyte controller [ 4 ] ;
qbyte blending [ 2 ] ;
float scale ;
int rendermode ;
float renderamt ;
vec3_t rendercolour ;
int renderfx ;
float health ;
float frags ;
int weapons ;
float takedamage ;
int deadflag ;
vec3_t view_ofs ;
int buttons ;
int impulse ;
hledict_t * chain ;
hledict_t * dmg_inflictor ;
hledict_t * enemy ;
hledict_t * aiment ;
hledict_t * owner ;
hledict_t * groundentity ;
int spawnflags ;
int flags ;
int colormap ;
int team ;
float max_health ;
float teleport_time ;
float armortype ;
float armorvalue ;
int waterlevel ;
int watertype ;
string_t target ;
string_t targetname ;
string_t netname ;
string_t message ; //WARNING: hexen2 uses a float and not a string
float dmg_take ;
float dmg_save ;
float dmg ;
float dmg_time ;
string_t noise ;
string_t noise1 ;
string_t noise2 ;
string_t noise3 ;
float speed ;
float air_finished ;
float pain_finished ;
float radsuit_finished ;
hledict_t * edict ;
# if HALFLIFE_API_VERSION > 138
int playerclass ;
float maxspeed ;
float fov ;
int weaponanim ;
int msec ;
int ducking ;
int timestepsound ;
int swimtime ;
int ducktime ;
int stepleft ;
float fallvelocity ;
int gamestate ;
int oldbuttons ;
int groupinfo ;
int customi0 ;
int customi1 ;
int customi2 ;
int customi3 ;
float customf0 ;
float customf1 ;
float customf2 ;
float customf3 ;
vec3_t customv0 ;
vec3_t customv1 ;
vec3_t customv2 ;
vec3_t customv3 ;
hledict_t * custome0 ;
hledict_t * custome1 ;
hledict_t * custome2 ;
hledict_t * custome3 ;
# endif
} hlentvars_t ;
struct hledict_s
{
qboolean isfree ;
int spawnnumber ;
link_t area ; // linked to a division node or leaf
# if HALFLIFE_API_VERSION > 138
int headnode ;
int num_leafs ;
# define HLMAX_ENT_LEAFS 48
short leafnums [ HLMAX_ENT_LEAFS ] ;
# else
int num_leafs ;
# define HLMAX_ENT_LEAFS 24
short leafnums [ HLMAX_ENT_LEAFS ] ;
hlbaseline_t baseline ;
# endif
float freetime ; // sv.time when the object was freed
void * moddata ;
hlentvars_t v ;
} ;
# define unk void
/*
# define FCVAR_ARCHIVE 1 // set to cause it to be saved to vars.rc
# define FCVAR_USERINFO 2 // changes the client's info string
# define FCVAR_SERVERINFO 4 // notifies players when changed
# define FCVAR_SERVERDLL 8 // defined by external DLL
# define FCVAR_CLIENTDLL 16 // defined by the client dll
# define HLCVAR_PROTECTED 32 // It's a server cvar, but we don't send the data since it's a password, etc. Sends 1 if it's not bland/zero, 0 otherwise as value
# define HLCVAR_SPONLY 64 // This cvar cannot be changed by clients connected to a multiplayer server.
*/
typedef struct hlcvar_s
{
char * name ;
char * string ;
int flags ;
float value ;
struct hlcvar_s * next ;
} hlcvar_t ;
typedef struct
{
char * classname ;
char * key ;
char * value ;
hllong handled ;
} hlfielddef_t ;
typedef struct
{
// int self;
// int other;
// int world;
float time ;
float frametime ;
float force_retouch ;
string_t mapname ;
string_t startspot ;
float deathmatch ;
float coop ;
float teamplay ;
float serverflags ;
// float total_secrets;
// float total_monsters;
float found_secrets ;
// float killed_monsters;
// float parms1, parm2, parm3, parm4, parm;
vec3_t v_forward ;
vec3_t v_up ;
vec3_t v_right ;
float trace_allsolid ;
float trace_startsolid ;
float trace_fraction ;
vec3_t trace_endpos ;
vec3_t trace_plane_normal ;
float trace_plane_dist ;
int trace_ent ;
float trace_inopen ;
float trace_inwater ;
int trace_hitgroup ;
int trace_flags ;
int msg_entity ;
int audiotrack ;
int maxclients ;
int maxentities ;
char * stringbase ;
void * savedata ;
vec3_t landmark ;
//43...
} SVHL_Globals_t ;
//http://metamod.org/dllapi_notes.html
typedef struct
{
2009-11-04 21:16:50 +00:00
void ( QDECL * GameDLLInit ) ( void ) ;
int ( QDECL * DispatchSpawn ) ( hledict_t * ed ) ;
void ( QDECL * DispatchThink ) ( hledict_t * ed ) ;
unk ( QDECL * DispatchUse ) ( unk ) ;
void ( QDECL * DispatchTouch ) ( hledict_t * e1 , hledict_t * e2 ) ;
void ( QDECL * DispatchBlocked ) ( hledict_t * self , hledict_t * other ) ;
void ( QDECL * DispatchKeyValue ) ( hledict_t * ed , hlfielddef_t * fdef ) ;
unk ( QDECL * DispatchSave ) ( unk ) ;
unk ( QDECL * DispatchRestore ) ( unk ) ;
unk ( QDECL * DispatchObjectCollsionBox ) ( unk ) ;
unk ( QDECL * SaveWriteFields ) ( unk ) ;
unk ( QDECL * SaveReadFields ) ( unk ) ;
unk ( QDECL * SaveGlobalState ) ( unk ) ;
unk ( QDECL * RestoreGlobalState ) ( unk ) ;
unk ( QDECL * ResetGlobalState ) ( unk ) ;
qboolean ( QDECL * ClientConnect ) ( hledict_t * ed , char * name , char * ip , char reject [ 128 ] ) ;
void ( QDECL * ClientDisconnect ) ( hledict_t * ed ) ;
void ( QDECL * ClientKill ) ( hledict_t * ed ) ;
void ( QDECL * ClientPutInServer ) ( hledict_t * ed ) ;
void ( QDECL * ClientCommand ) ( hledict_t * ed ) ;
unk ( QDECL * ClientUserInfoChanged ) ( unk ) ;
void ( QDECL * ServerActivate ) ( hledict_t * edictlist , int numedicts , int numplayers ) ;
2009-04-01 22:03:56 +00:00
# if HALFLIFE_API_VERSION > 138
2009-11-04 21:16:50 +00:00
unk ( QDECL * ServerDeactivate ) ( unk ) ;
2009-04-01 22:03:56 +00:00
# endif
2009-11-04 21:16:50 +00:00
void ( QDECL * PlayerPreThink ) ( hledict_t * ed ) ;
void ( QDECL * PlayerPostThink ) ( hledict_t * ed ) ;
unk ( QDECL * StartFrame ) ( unk ) ;
unk ( QDECL * ParmsNewLevel ) ( unk ) ;
unk ( QDECL * ParmsChangeLevel ) ( unk ) ;
unk ( QDECL * GetGameDescription ) ( unk ) ;
unk ( QDECL * PlayerCustomization ) ( unk ) ;
unk ( QDECL * SpectatorConnect ) ( unk ) ;
unk ( QDECL * SpectatorDisconnect ) ( unk ) ;
unk ( QDECL * SpectatorThink ) ( unk ) ;
2009-04-01 22:03:56 +00:00
//138
# if HALFLIFE_API_VERSION > 138
2009-11-04 21:16:50 +00:00
unk ( QDECL * Sys_Error ) ( unk ) ;
unk ( QDECL * PM_Move ) ( unk ) ;
unk ( QDECL * PM_Init ) ( unk ) ;
unk ( QDECL * PM_FindTextureType ) ( unk ) ;
unk ( QDECL * SetupVisibility ) ( unk ) ;
unk ( QDECL * UpdateClientData ) ( unk ) ;
unk ( QDECL * AddToFullPack ) ( unk ) ;
unk ( QDECL * CreateBaseline ) ( unk ) ;
unk ( QDECL * RegisterEncoders ) ( unk ) ;
unk ( QDECL * GetWeaponData ) ( unk ) ;
unk ( QDECL * CmdStart ) ( unk ) ;
unk ( QDECL * CmdEnd ) ( unk ) ;
unk ( QDECL * ConnectionlessPacket ) ( unk ) ;
unk ( QDECL * GetHullBounds ) ( unk ) ;
unk ( QDECL * CreateInstancedBaselines ) ( unk ) ;
unk ( QDECL * InconsistentFile ) ( unk ) ;
unk ( QDECL * AllowLagCompensation ) ( unk ) ;
2009-04-01 22:03:56 +00:00
# endif
} SVHL_GameFuncs_t ;
//http://metamod.org/newapi_notes.html
struct
{
2009-11-04 21:16:50 +00:00
unk ( QDECL * OnFreeEntPrivateData ) ( unk ) ;
unk ( QDECL * GameShutdown ) ( unk ) ;
unk ( QDECL * ShouldCollide ) ( unk ) ;
unk ( QDECL * CvarValue ) ( unk ) ;
unk ( QDECL * CvarValue2 ) ( unk ) ;
2009-04-01 22:03:56 +00:00
} * SVHL_GameFuncsEx ;
// http://metamod.org/engine_notes.html
typedef struct
{
2009-11-04 21:16:50 +00:00
int ( QDECL * PrecacheModel ) ( char * name ) ;
int ( QDECL * PrecacheSound ) ( char * name ) ;
void ( QDECL * SetModel ) ( hledict_t * ed , char * modelname ) ;
unk ( QDECL * ModelIndex ) ( unk ) ;
int ( QDECL * ModelFrames ) ( int midx ) ;
void ( QDECL * SetSize ) ( hledict_t * ed , float * mins , float * maxs ) ;
void ( QDECL * ChangeLevel ) ( char * nextmap , char * startspot ) ;
unk ( QDECL * GetSpawnParms ) ( unk ) ;
unk ( QDECL * SaveSpawnParms ) ( unk ) ;
float ( QDECL * VecToYaw ) ( float * inv ) ;
void ( QDECL * VecToAngles ) ( float * inv , float * outa ) ;
2013-12-29 22:48:28 +00:00
void ( QDECL * MoveToOrigin ) ( hledict_t * ent , vec3_t dest , float dist , int moveflags ) ;
2009-11-04 21:16:50 +00:00
unk ( QDECL * ChangeYaw ) ( unk ) ;
unk ( QDECL * ChangePitch ) ( unk ) ;
hledict_t * ( QDECL * FindEntityByString ) ( hledict_t * last , char * field , char * value ) ;
2015-10-11 11:34:58 +00:00
int ( QDECL * GetEntityIllum ) ( hledict_t * ent ) ;
2009-11-04 21:16:50 +00:00
hledict_t * ( QDECL * FindEntityInSphere ) ( hledict_t * last , float * org , float radius ) ;
hledict_t * ( QDECL * FindClientInPVS ) ( hledict_t * ed ) ;
unk ( QDECL * EntitiesInPVS ) ( unk ) ;
void ( QDECL * MakeVectors ) ( float * angles ) ;
void ( QDECL * AngleVectors ) ( float * angles , float * forward , float * right , float * up ) ;
hledict_t * ( QDECL * CreateEntity ) ( void ) ;
void ( QDECL * RemoveEntity ) ( hledict_t * ed ) ;
hledict_t * ( QDECL * CreateNamedEntity ) ( string_t name ) ;
unk ( QDECL * MakeStatic ) ( unk ) ;
unk ( QDECL * EntIsOnFloor ) ( unk ) ;
int ( QDECL * DropToFloor ) ( hledict_t * ed ) ;
int ( QDECL * WalkMove ) ( hledict_t * ed , float yaw , float dist , int mode ) ;
void ( QDECL * SetOrigin ) ( hledict_t * ed , float * neworg ) ;
void ( QDECL * EmitSound ) ( hledict_t * ed , int chan , char * soundname , float vol , float atten , int flags , int pitch ) ;
void ( QDECL * EmitAmbientSound ) ( hledict_t * ed , float * org , char * samp , float vol , float attenuation , unsigned int flags , int pitch ) ;
void ( QDECL * TraceLine ) ( float * start , float * end , int flags , hledict_t * ignore , hltraceresult_t * result ) ;
unk ( QDECL * TraceToss ) ( unk ) ;
unk ( QDECL * TraceMonsterHull ) ( unk ) ;
void ( QDECL * TraceHull ) ( float * start , float * end , int flags , int hullnum , hledict_t * ignore , hltraceresult_t * result ) ;
unk ( QDECL * TraceModel ) ( unk ) ;
char * ( QDECL * TraceTexture ) ( hledict_t * againstent , vec3_t start , vec3_t end ) ;
unk ( QDECL * TraceSphere ) ( unk ) ;
unk ( QDECL * GetAimVector ) ( unk ) ;
void ( QDECL * ServerCommand ) ( char * cmd ) ;
void ( QDECL * ServerExecute ) ( void ) ;
unk ( QDECL * ClientCommand ) ( unk ) ;
unk ( QDECL * ParticleEffect ) ( unk ) ;
void ( QDECL * LightStyle ) ( int stylenum , char * stylestr ) ;
int ( QDECL * DecalIndex ) ( char * decalname ) ;
int ( QDECL * PointContents ) ( float * org ) ;
void ( QDECL * MessageBegin ) ( int dest , int svc , float * org , hledict_t * ent ) ;
void ( QDECL * MessageEnd ) ( void ) ;
void ( QDECL * WriteByte ) ( int value ) ;
void ( QDECL * WriteChar ) ( int value ) ;
void ( QDECL * WriteShort ) ( int value ) ;
void ( QDECL * WriteLong ) ( int value ) ;
void ( QDECL * WriteAngle ) ( float value ) ;
void ( QDECL * WriteCoord ) ( float value ) ;
void ( QDECL * WriteString ) ( char * string ) ;
void ( QDECL * WriteEntity ) ( int entnum ) ;
void ( QDECL * CVarRegister ) ( hlcvar_t * hlvar ) ;
float ( QDECL * CVarGetFloat ) ( char * vname ) ;
char * ( QDECL * CVarGetString ) ( char * vname ) ;
void ( QDECL * CVarSetFloat ) ( char * vname , float v ) ;
void ( QDECL * CVarSetString ) ( char * vname , char * v ) ;
void ( QDECL * AlertMessage ) ( int level , char * fmt , . . . ) ;
void ( QDECL * EngineFprintf ) ( FILE * f , char * fmt , . . . ) ;
void * ( QDECL * PvAllocEntPrivateData ) ( hledict_t * ed , long quant ) ;
unk ( QDECL * PvEntPrivateData ) ( unk ) ;
unk ( QDECL * FreeEntPrivateData ) ( unk ) ;
unk ( QDECL * SzFromIndex ) ( unk ) ;
string_t ( QDECL * AllocString ) ( char * string ) ;
unk ( QDECL * GetVarsOfEnt ) ( unk ) ;
hledict_t * ( QDECL * PEntityOfEntOffset ) ( int ednum ) ;
int ( QDECL * EntOffsetOfPEntity ) ( hledict_t * ed ) ;
int ( QDECL * IndexOfEdict ) ( hledict_t * ed ) ;
hledict_t * ( QDECL * PEntityOfEntIndex ) ( int idx ) ;
unk ( QDECL * FindEntityByVars ) ( unk ) ;
void * ( QDECL * GetModelPtr ) ( hledict_t * ed ) ;
int ( QDECL * RegUserMsg ) ( char * msgname , int msgsize ) ;
unk ( QDECL * AnimationAutomove ) ( unk ) ;
2015-10-11 11:34:58 +00:00
void ( QDECL * GetBonePosition ) ( hledict_t * ed , int bone , vec3_t org , vec3_t ang ) ;
2009-11-04 21:16:50 +00:00
hlintptr_t ( QDECL * FunctionFromName ) ( char * name ) ;
char * ( QDECL * NameForFunction ) ( hlintptr_t ) ;
unk ( QDECL * ClientPrintf ) ( unk ) ;
void ( QDECL * ServerPrint ) ( char * msg ) ;
char * ( QDECL * Cmd_Args ) ( void ) ;
char * ( QDECL * Cmd_Argv ) ( int argno ) ;
int ( QDECL * Cmd_Argc ) ( void ) ;
unk ( QDECL * GetAttachment ) ( unk ) ;
void ( QDECL * CRC32_Init ) ( hlcrc_t * crc ) ;
void ( QDECL * CRC32_ProcessBuffer ) ( hlcrc_t * crc , qbyte * p , int len ) ;
void ( QDECL * CRC32_ProcessByte ) ( hlcrc_t * crc , qbyte b ) ;
hlcrc_t ( QDECL * CRC32_Final ) ( hlcrc_t crc ) ;
long ( QDECL * RandomLong ) ( long minv , long maxv ) ;
float ( QDECL * RandomFloat ) ( float minv , float maxv ) ;
unk ( QDECL * SetView ) ( unk ) ;
unk ( QDECL * Time ) ( unk ) ;
unk ( QDECL * CrosshairAngle ) ( unk ) ;
void * ( QDECL * LoadFileForMe ) ( char * name , int * size_out ) ;
void ( QDECL * FreeFile ) ( void * fptr ) ;
unk ( QDECL * EndSection ) ( unk ) ;
int ( QDECL * CompareFileTime ) ( char * fname1 , char * fname2 , int * result ) ;
void ( QDECL * GetGameDir ) ( char * gamedir ) ;
unk ( QDECL * Cvar_RegisterVariable ) ( unk ) ;
unk ( QDECL * FadeClientVolume ) ( unk ) ;
unk ( QDECL * SetClientMaxspeed ) ( unk ) ;
unk ( QDECL * CreateFakeClient ) ( unk ) ;
unk ( QDECL * RunPlayerMove ) ( unk ) ;
unk ( QDECL * NumberOfEntities ) ( unk ) ;
char * ( QDECL * GHL_GetInfoKeyBuffer ) ( hledict_t * ed ) ;
char * ( QDECL * GHL_InfoKeyValue ) ( char * infostr , char * key ) ;
unk ( QDECL * SetKeyValue ) ( unk ) ;
unk ( QDECL * SetClientKeyValue ) ( unk ) ;
unk ( QDECL * IsMapValid ) ( unk ) ;
unk ( QDECL * StaticDecal ) ( unk ) ;
unk ( QDECL * PrecacheGeneric ) ( unk ) ;
int ( QDECL * GetPlayerUserId ) ( hledict_t * ed ) ;
unk ( QDECL * BuildSoundMsg ) ( unk ) ;
unk ( QDECL * IsDedicatedServer ) ( unk ) ;
2009-04-01 22:03:56 +00:00
//138
# if HALFLIFE_API_VERSION > 138
2009-11-04 21:16:50 +00:00
hlcvar_t * ( QDECL * CVarGetPointer ) ( char * varname ) ;
unk ( QDECL * GetPlayerWONId ) ( unk ) ;
unk ( QDECL * Info_RemoveKey ) ( unk ) ;
unk ( QDECL * GetPhysicsKeyValue ) ( unk ) ;
2013-12-29 22:48:28 +00:00
void ( QDECL * SetPhysicsKeyValue ) ( hledict_t * ent , char * key , char * value ) ;
2009-11-04 21:16:50 +00:00
unk ( QDECL * GetPhysicsInfoString ) ( unk ) ;
unsigned short ( QDECL * PrecacheEvent ) ( int eventtype , char * eventname ) ;
void ( QDECL * PlaybackEvent ) ( int flags , hledict_t * ent , unsigned short eventidx , float delay , float * origin , float * angles , float f1 , float f2 , int i1 , int i2 , int b1 , int b2 ) ;
unk ( QDECL * SetFatPVS ) ( unk ) ;
unk ( QDECL * SetFatPAS ) ( unk ) ;
unk ( QDECL * CheckVisibility ) ( unk ) ;
unk ( QDECL * DeltaSetField ) ( unk ) ;
unk ( QDECL * DeltaUnsetField ) ( unk ) ;
unk ( QDECL * DeltaAddEncoder ) ( unk ) ;
unk ( QDECL * GetCurrentPlayer ) ( unk ) ;
2012-07-05 19:42:36 +00:00
int ( QDECL * CanSkipPlayer ) ( hledict_t * playerent ) ;
2009-11-04 21:16:50 +00:00
unk ( QDECL * DeltaFindField ) ( unk ) ;
unk ( QDECL * DeltaSetFieldByIndex ) ( unk ) ;
unk ( QDECL * DeltaUnsetFieldByIndex ) ( unk ) ;
unk ( QDECL * SetGroupMask ) ( unk ) ;
unk ( QDECL * CreateInstancedBaseline ) ( unk ) ;
unk ( QDECL * Cvar_DirectSet ) ( unk ) ;
unk ( QDECL * ForceUnmodified ) ( unk ) ;
unk ( QDECL * GetPlayerStats ) ( unk ) ;
unk ( QDECL * AddServerCommand ) ( unk ) ;
2009-04-01 22:03:56 +00:00
//
2009-11-04 21:16:50 +00:00
unk ( QDECL * Voice_GetClientListening ) ( unk ) ;
qboolean ( QDECL * Voice_SetClientListening ) ( int listener , int sender , int shouldlisten ) ;
2009-04-01 22:03:56 +00:00
//140
2013-12-29 22:48:28 +00:00
char * ( QDECL * GetPlayerAuthId ) ( hledict_t * playerent ) ;
2009-11-04 21:16:50 +00:00
unk ( QDECL * SequenceGet ) ( unk ) ;
unk ( QDECL * SequencePickSentence ) ( unk ) ;
unk ( QDECL * GetFileSize ) ( unk ) ;
unk ( QDECL * GetApproxWavePlayLen ) ( unk ) ;
unk ( QDECL * IsCareerMatch ) ( unk ) ;
unk ( QDECL * GetLocalizedStringLength ) ( unk ) ;
unk ( QDECL * RegisterTutorMessageShown ) ( unk ) ;
unk ( QDECL * GetTimesTutorMessageShown ) ( unk ) ;
unk ( QDECL * ProcessTutorMessageDecayBuffer ) ( unk ) ;
unk ( QDECL * ConstructTutorMessageDecayBuffer ) ( unk ) ;
unk ( QDECL * ResetTutorMessageDecayData ) ( unk ) ;
unk ( QDECL * QueryClientCvarValue ) ( unk ) ;
unk ( QDECL * QueryClientCvarValue2 ) ( unk ) ;
2009-04-01 22:03:56 +00:00
# endif
int check ; //added so I can be sure parameters match this list, etc
} SVHL_Builtins_t ;
extern SVHL_Globals_t SVHL_Globals ;
extern SVHL_GameFuncs_t SVHL_GameFuncs ;
extern hledict_t * SVHL_Edict ;
extern int SVHL_NumActiveEnts ;
2009-11-04 21:16:50 +00:00
void QDECL GHL_RemoveEntity ( hledict_t * ed ) ;
2009-04-01 22:03:56 +00:00
void SVHL_LinkEdict ( hledict_t * ent , qboolean touch_triggers ) ;
void SVHL_UnlinkEdict ( hledict_t * ent ) ;
hledict_t * SVHL_TestEntityPosition ( hledict_t * ent ) ;
void SVHL_TouchLinks ( hledict_t * ent , areanode_t * node ) ;
trace_t SVHL_Move ( vec3_t start , vec3_t mins , vec3_t maxs , vec3_t end , int type , int forcehull , hledict_t * passedict ) ;
int SVHL_PointContents ( vec3_t p ) ;
int SVHL_AreaEdicts ( vec3_t mins , vec3_t maxs , hledict_t * * list , int maxcount ) ;