HLSDK Engine Notes



PrecacheModel

from engine/eiface.h:
int PrecacheModel(char *s);
PRECACHE_MODEL()

comments:

.

PrecacheSound

from engine/eiface.h:
int PrecacheSound(char *s);
PRECACHE_SOUND()

comments:

.

SetModel

from engine/eiface.h:
void SetModel(edict_t *e, const char *m);
SET_MODEL()

comments:

.

ModelIndex

from engine/eiface.h:
int ModelIndex(const char *m);
MODEL_INDEX()

comments:

.

ModelFrames

from engine/eiface.h:
int ModelFrames(int modelIndex);
MODEL_FRAMES()

comments:

.

SetSize

from engine/eiface.h:
void SetSize(edict_t *e, const float *rgflMin, const float *rgflMax);
SET_SIZE()

comments:

.

ChangeLevel

from engine/eiface.h:
void ChangeLevel(char *s1, char *s2);
CHANGE_LEVEL()

comments:

.

GetSpawnParms

from engine/eiface.h:
void GetSpawnParms(edict_t *ent);
GET_SPAWN_PARMS()

comments:

.

SaveSpawnParms

from engine/eiface.h:
void SaveSpawnParms(edict_t *ent);
SAVE_SPAWN_PARMS()

comments:

.

VecToYaw

from engine/eiface.h:
float VecToYaw(const float *rgflVector);
VEC_TO_YAW()

comments:

.

VecToAngles

from engine/eiface.h:
void VecToAngles(const float *rgflVectorIn, float *rgflVectorOut);
VEC_TO_ANGLES()

comments:

.

MoveToOrigin

from engine/eiface.h:
void MoveToOrigin(edict_t *ent, const float *pflGoal, float dist, int iMoveType);
MOVE_TO_ORIGIN()

comments:

.

ChangeYaw

from engine/eiface.h:
void ChangeYaw(edict_t *ent);
oldCHANGE_YAW()

comments:

.

ChangePitch

from engine/eiface.h:
void ChangePitch(edict_t *ent);
CHANGE_PITCH()

comments:

.

FindEntityByString

from engine/eiface.h:
edict_t *FindEntityByString(edict_t *pEdictStartSearchAfter, const char *pszField, const char *pszValue);
FIND_ENTITY_BY_STRING()

comments:

.

GetEntityIllum

from engine/eiface.h:
int GetEntityIllum(edict_t *pEnt);
GETENTITYILLUM()

comments:

.

FindEntityInSphere

from engine/eiface.h:
edict_t *FindEntityInSphere(edict_t *pEdictStartSearchAfter, const float *org, float rad);
FIND_ENTITY_IN_SPHERE()

comments:

.

FindClientInPVS

from engine/eiface.h:
edict_t *FindClientInPVS(edict_t *pEdict);
FIND_ENTITY_IN_PVS()

comments:

.

EntitiesInPVS

from engine/eiface.h:
edict_t *EntitiesInPVS(edict_t *pplayer);

comments:

.

MakeVectors

from engine/eiface.h:
void MakeVectors(const float *rgflVector);
MAKE_VECTORS()

comments:

.

AngleVectors

from engine/eiface.h:
void AngleVectors(const float *rgflVector, float *forward, float *right, float *up);

comments:

.

CreateEntity

from engine/eiface.h:
edict_t *CreateEntity(void);
CREATE_ENTITY()

comments:

.

RemoveEntity

from engine/eiface.h:
void RemoveEntity(edict_t *e);
REMOVE_ENTITY()

comments:

.

CreateNamedEntity

from engine/eiface.h:
edict_t *CreateNamedEntity(int className);
CREATE_NAMED_ENTITY()

comments:

.

MakeStatic

from engine/eiface.h:
void MakeStatic(edict_t *ent);
MAKE_STATIC()

comments:

.

EntIsOnFloor

from engine/eiface.h:
int EntIsOnFloor(edict_t *e);
ENT_IS_ON_FLOOR()

comments:

.

DropToFloor

from engine/eiface.h:
int DropToFloor(edict_t *e);
DROP_TO_FLOOR()

comments:

.

WalkMove

from engine/eiface.h:
int WalkMove(edict_t *ent, float yaw, float dist, int iMode);
WALK_MOVE()

comments:

.

SetOrigin

from engine/eiface.h:
void SetOrigin(edict_t *e, const float *rgflOrigin);
SET_ORIGIN()

comments:

.

EmitSound

from engine/eiface.h:
void EmitSound(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch);
EMIT_SOUND_DYN2()

comments:

.

EmitAmbientSound

from engine/eiface.h:
void EmitAmbientSound(edict_t *entity, float *pos, const char *samp, float vol, float attenuation, int fFlags, int pitch);
EMIT_AMBIENT_SOUND()

comments:

.

TraceLine

from engine/eiface.h:
void TraceLine(const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr);
TRACE_LINE()

comments:

.

TraceToss

from engine/eiface.h:
void TraceToss(edict_t *pent, edict_t *pentToIgnore, TraceResult *ptr);
TRACE_TOSS()

comments:

.

TraceMonsterHull

from engine/eiface.h:
int TraceMonsterHull(edict_t *pEdict, const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr);
TRACE_MONSTER_HULL()

comments:

.

TraceHull

from engine/eiface.h:
void TraceHull(const float *v1, const float *v2, int fNoMonsters, int hullNumber, edict_t *pentToSkip, TraceResult *ptr);
TRACE_HULL()

comments:

.

TraceModel

from engine/eiface.h:
void TraceModel(const float *v1, const float *v2, int hullNumber, edict_t *pent, TraceResult *ptr);

comments:

.

TraceTexture

from engine/eiface.h:
const char *TraceTexture(edict_t *pTextureEntity, const float *v1, const float *v2);
TRACE_TEXTURE()

comments:

.

TraceSphere

from engine/eiface.h:
void TraceSphere(const float *v1, const float *v2, int fNoMonsters, float radius, edict_t *pentToSkip, TraceResult *ptr);

comments:

.

GetAimVector

from engine/eiface.h:
void GetAimVector(edict_t *ent, float speed, float *rgflReturn);
GET_AIM_VECTOR()

comments:

.

ServerCommand

from engine/eiface.h:
void ServerCommand(char *str);
SERVER_COMMAND()

comments:

Executes a server command, as if typed at the console (ie "exec myconfig.cfg", or "quit"). Note that it appears no commands are executed until after GameDLLInit is called. If ServerCommand is called earlier than that, the command is delayed until then.

ServerExecute

from engine/eiface.h:
void ServerExecute(void);
SERVER_EXECUTE()

comments:

.

ClientCommand

from engine/eiface.h:
void ClientCommand(edict_t *pEdict, char *szFmt, ...);
CLIENT_COMMAND()

comments:

.

ParticleEffect

from engine/eiface.h:
void ParticleEffect(const float *org, const float *dir, float color, float count);
PARTICLE_EFFECT()

comments:

.

LightStyle

from engine/eiface.h:
void LightStyle(int style, char *val);
LIGHT_STYLE()

comments:

.

DecalIndex

from engine/eiface.h:
int DecalIndex(const char *name);
DECAL_INDEX()

comments:

.

PointContents

from engine/eiface.h:
int PointContents(const float *rgflVector);
POINT_CONTENTS()

comments:

.

MessageBegin

from engine/eiface.h:
void MessageBegin(int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
MESSAGE_BEGIN()

comments:

Begin a network message to send to the client.
msg_type should be a number returned by RegUserMsg.
msg_dest is one of:

MessageEnd

from engine/eiface.h:
void MessageEnd(void);
MESSAGE_END()

comments:

.

WriteByte

from engine/eiface.h:
void WriteByte(int iValue);
WRITE_BYTE()

comments:

.

WriteChar

from engine/eiface.h:
void WriteChar(int iValue);
WRITE_CHAR()

comments:

.

WriteShort

from engine/eiface.h:
void WriteShort(int iValue);
WRITE_SHORT()

comments:

.

WriteLong

from engine/eiface.h:
void WriteLong(int iValue);
WRITE_LONG()

comments:

.

WriteAngle

from engine/eiface.h:
void WriteAngle(float flValue);
WRITE_ANGLE()

comments:

.

WriteCoord

from engine/eiface.h:
void WriteCoord(float flValue);
WRITE_COORD()

comments:

.

WriteString

from engine/eiface.h:
void WriteString(const char *sz);
WRITE_STRING()

comments:

.

WriteEntity

from engine/eiface.h:
void WriteEntity(int iValue);
WRITE_ENTITY()

comments:

.

CVarRegister

from engine/eiface.h:
void CVarRegister(cvar_t *pCvar);
CVAR_REGISTER()

comments:

Register a new cvar (server variable).

CVarGetFloat

from engine/eiface.h:
float CVarGetFloat(const char *szVarName);
CVAR_GET_FLOAT()

comments:

Return the float value of a cvar.

CVarGetString

from engine/eiface.h:
const char *CVarGetString(const char *szVarName);
CVAR_GET_STRING()

comments:

Return the string value of a cvar.

CVarSetFloat

from engine/eiface.h:
void CVarSetFloat(const char *szVarName, float flValue);
CVAR_SET_FLOAT()

comments:

Set the float value of a cvar.

CVarSetString

from engine/eiface.h:
void CVarSetString(const char *szVarName, const char *szValue);
CVAR_SET_STRING()

comments:

Set the string value of a cvar.

AlertMessage

from engine/eiface.h:
void AlertMessage(ALERT_TYPE atype, char *szFmt, ...);
ALERT()

comments:

Print an alert message.
atype is one of:

EngineFprintf

from engine/eiface.h:
void EngineFprintf(FILE *pfile, char *szFmt, ...);
ENGINE_FPRINTF()

comments:

.

PvAllocEntPrivateData

from engine/eiface.h:
void *PvAllocEntPrivateData(edict_t *pEdict, long cb);
ALLOC_PRIVATE()

comments:

.

PvEntPrivateData

from engine/eiface.h:
void *PvEntPrivateData(edict_t *pEdict);
GET_PRIVATE()

comments:

Returns a pointer to the base class type of the given edict. For instance:
    CBaseEntity *pPlayer=(CBaseEntity *)GET_PRIVATE(pEntity);
	

FreeEntPrivateData

from engine/eiface.h:
void FreeEntPrivateData(edict_t *pEdict);
FREE_PRIVATE()

comments:

.

SzFromIndex

from engine/eiface.h:
const char *SzFromIndex(int iString);

comments:

.

AllocString

from engine/eiface.h:
int AllocString(const char *szValue);
ALLOC_STRING()

comments:

.

GetVarsOfEnt

from engine/eiface.h:
struct entvars_s *GetVarsOfEnt(edict_t *pEdict);

comments:

.

PEntityOfEntOffset

from engine/eiface.h:
edict_t *PEntityOfEntOffset(int iEntOffset);
ENT()

comments:

.

EntOffsetOfPEntity

from engine/eiface.h:
int EntOffsetOfPEntity(const edict_t *pEdict);

comments:

.

IndexOfEdict

from engine/eiface.h:
int IndexOfEdict(const edict_t *pEdict);
ENTINDEX()

comments:

Returns the server slot (ie 1 to maxplayers) of the given player edict.

PEntityOfEntIndex

from engine/eiface.h:
edict_t *PEntityOfEntIndex(int iEntIndex);
INDEXENT()

comments:

Returns the edict for the player in the given server slot (ie 1 to maxplayers).

FindEntityByVars

from engine/eiface.h:
edict_t *FindEntityByVars(struct entvars_s *pvars);

comments:

.

GetModelPtr

from engine/eiface.h:
void *GetModelPtr(edict_t *pEdict);
GET_MODEL_PTR()

comments:

.

RegUserMsg

from engine/eiface.h:
int RegUserMsg(const char *pszName, int iSize);
REG_USER_MSG()

comments:

Register a network message type with the given name, and size if known. Returns the number assigned for the network message, to be used with MessageBegin. It appears that message ID's 1-63 are reserved for the Engine, and that GameDLL messages are allocated IDs starting at 64. The SDK dlls/util.h appears to define six Engine messages:

AnimationAutomove

from engine/eiface.h:
void AnimationAutomove(const edict_t *pEdict, float flTime);

comments:

.

GetBonePosition

from engine/eiface.h:
void GetBonePosition(const edict_t *pEdict, int iBone, float *rgflOrigin, float *rgflAngles);
GET_BONE_POSITION()

comments:

.

FunctionFromName

from engine/eiface.h:
unsigned long FunctionFromName(const char *pName);
FUNCTION_FROM_NAME()

comments:

Apparently, this finds the given exported function name string in the GameDLL, and returns a pointer to said function (much like unix dlsym or win32 GetProcAddress?). This appears to be used in GameDLL code for loading savegames, as the savegames contain names of exported functions in the GameDLL. Basically, this is the opposite of NameForFunction.

NameForFunction

from engine/eiface.h:
const char *NameForFunction(unsigned long function);
NAME_FOR_FUNCTION()

comments:

Basically, the opposite of FunctionFromName. Finds the given function pointer address in the GameDLL, and returns the string name for the corresponding function. This appears to be used in GameDLL code for saving games, taking known function pointers and converting them to function name strings to be stored in the savegames, so that they can be converted back to function pointers upon game load.

ClientPrintf

from engine/eiface.h:
void ClientPrintf(edict_t *pEdict, PRINT_TYPE ptype, const char *szMsg);
CLIENT_PRINTF()
JOHN: engine callbacks so game DLL can print messages to individual clients

comments:

.

ServerPrint

from engine/eiface.h:
void ServerPrint(const char *szMsg);

comments:

Prints output to the server console.

Cmd_Args

from engine/eiface.h:
const char *Cmd_Args(void);
CMD_ARGS()
these 3 added so game DLL can easily access client 'cmd' strings

comments:

Returns the arguments for a command, as a single string. The command string itself is not included, and must be queried with CMD_ARGV(0). For use in DLLAPI ClientCommand, or in the function provided to AddServerCommand.

Cmd_Argv

from engine/eiface.h:
const char *Cmd_Argv(int argc);
CMD_ARGV()

comments:

Returns the nth argument to the command. CMD_ARGV(0) returns the command name itself.

Cmd_Argc

from engine/eiface.h:
int Cmd_Argc(void);
CMD_ARGC()

comments:

Returns the number of arguments given to the command.

GetAttachment

from engine/eiface.h:
void GetAttachment(const edict_t *pEdict, int iAttachment, float *rgflOrigin, float *rgflAngles);
GET_ATTACHMENT()

comments:

.

CRC32_Init

from engine/eiface.h:
void CRC32_Init(CRC32_t *pulCRC);
CRC32_INIT()

comments:

.

CRC32_ProcessBuffer

from engine/eiface.h:
void CRC32_ProcessBuffer(CRC32_t *pulCRC, void *p, int len);
CRC32_PROCESS_BUFFER()

comments:

.

CRC32_ProcessByte

from engine/eiface.h:
void CRC32_ProcessByte(CRC32_t *pulCRC, unsigned char ch);
CRC32_PROCESS_BYTE()

comments:

.

CRC32_Final

from engine/eiface.h:
CRC32_t CRC32_Final(CRC32_t pulCRC);
CRC32_FINAL()

comments:

.

RandomLong

from engine/eiface.h:
long RandomLong(long lLow, long lHigh);
RANDOM_LONG()

comments:

.

RandomFloat

from engine/eiface.h:
float RandomFloat(float flLow, float flHigh);
RANDOM_FLOAT()

comments:

.

SetView

from engine/eiface.h:
void SetView(const edict_t *pClient, const edict_t *pViewent);
SET_VIEW()

comments:

.

Time

from engine/eiface.h:
float Time(void);

comments:

.

CrosshairAngle

from engine/eiface.h:
void CrosshairAngle(const edict_t *pClient, float pitch, float yaw);
SET_CROSSHAIRANGLE()

comments:

.

LoadFileForMe

from engine/eiface.h:
byte * LoadFileForMe(char *filename, int *pLength);
LOAD_FILE_FOR_ME()

comments:

Opens the given filename (relative to the gamedir, or relative to the hlds directory, in that order), and returns a pointer to a byte array (character string) with the contents of the file. NULL-termination of the array indicates end of file. Length of the file in bytes is returned in the given int pointer.

FreeFile

from engine/eiface.h:
void FreeFile(void *buffer);
FREE_FILE()

comments:

Free the byte array of the given buffer which was returned by LoadFileForMe.

EndSection

from engine/eiface.h:
void EndSection(const char *pszSectionName);
trigger_endsection

comments:

.

CompareFileTime

from engine/eiface.h:
int CompareFileTime(char *filename1, char *filename2, int *iCompare);
COMPARE_FILE_TIME()

comments:

.

GetGameDir

from engine/eiface.h:
void GetGameDir(char *szGetGameDir);
GET_GAME_DIR()

comments:

Copies the pathname of the game directory into the given buffer. Note that there's no way to inform the engine how big the buffer is, so be forewarned.

Prior to HL 1.1.1.1 (CS 1.6), this gave the full pathname of the game directory, ie "/usr/local/half-life/cstrike" or "C:\Games\Half-Life\cstrike". Now, it is only the string passed to hlds as the argument to "-game", ie "cstrike".


Cvar_RegisterVariable

from engine/eiface.h:
void Cvar_RegisterVariable(cvar_t *variable);
CVAR_CREATE()

comments:

.

FadeClientVolume

from engine/eiface.h:
void FadeClientVolume(const edict_t *pEdict, int fadePercent, int fadeOutSeconds, int holdTime, int fadeInSeconds);

comments:

.

SetClientMaxspeed

from engine/eiface.h:
void SetClientMaxspeed(const edict_t *pEdict, float fNewMaxspeed);

comments:

.

CreateFakeClient

from engine/eiface.h:
edict_t * CreateFakeClient(const char *netname);
returns NULL if fake client can't be created

comments:

Creates "bots" (?).

RunPlayerMove

from engine/eiface.h:
void RunPlayerMove(edict_t *fakeclient, const float *viewangles, float forwardmove, float sidemove, float upmove, unsigned short buttons, byte impulse, byte msec);

comments:

.

NumberOfEntities

from engine/eiface.h:
int NumberOfEntities(void);
NUMBER_OF_ENTITIES()

comments:

.

GetInfoKeyBuffer

from engine/eiface.h:
char *GetInfoKeyBuffer(edict_t *e);
passing in NULL gets the serverinfo

comments:

Returns the InfoKeyBuffer for the given edict. This is basically the fields from "setinfo" at the client console, and includes things like the player name.

The sourcecode comment ("passing in NULL gets the serverinfo") isn't entirely accurate. There appear to be two server-side info buffers available, "serverinfo" and "localinfo", both accessible from the console by those two commands, respectively.

Calling GetInfoKeyBuffer(NULL) will return the localinfo buffer. Calling GetInfoKeyBuffer(PEntityOfEntIndex(0)), ie passing the entity of slot 0, will return the serverinfo buffer.


InfoKeyValue

from engine/eiface.h:
char *InfoKeyValue(char *infobuffer, char *key);

comments:

Returns the value for the given key in the given InfoKeyBuffer.

SetKeyValue

from engine/eiface.h:
void SetKeyValue(char *infobuffer, char *key, char *value);

comments:

Adds or sets a key/value pair in the given InfoKeyBuffer. Appears to work for only server info, and not client info. For clients, use SetClientKeyValue.

SetClientKeyValue

from engine/eiface.h:
void SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value);

comments:

Adds or sets a key/value pair in a client's InfoKeyBuffer, by server slot (ie 1 to maxplayers).

IsMapValid

from engine/eiface.h:
int IsMapValid(char *filename);
IS_MAP_VALID()

comments:

.

StaticDecal

from engine/eiface.h:
void StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex);

comments:

.

PrecacheGeneric

from engine/eiface.h:
int PrecacheGeneric(char *s);
PRECACHE_GENERIC()

comments:

.

GetPlayerUserId

from engine/eiface.h:
int GetPlayerUserId(edict_t *e);
GETPLAYERUSERID()
returns the server assigned userid for this player. useful for logging frags, etc. returns -1 if the edict couldn't be found in the list of clients

comments:

Returns the session userid for the given player edict. As of server x106, this is constant for the life of the player connection, and unique for the life of the server process. Each time a client connects, they are given a userid of 1 plus the userid of the previous connecting client. When the server starts/restarts, the server starts again at userid 1.

BuildSoundMsg

from engine/eiface.h:
void BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
BUILD_SOUND_MSG()

comments:

.

IsDedicatedServer

from engine/eiface.h:
int IsDedicatedServer(void);
IS_DEDICATED_SERVER()
is this a dedicated server?

comments:

.

CVarGetPointer

from engine/eiface.h:
cvar_t *CVarGetPointer(const char *szVarName);
CVAR_GET_POINTER()

comments:

Returns a pointer to a cvar_t struct for the given cvar (server variable) name.

GetPlayerWONId

from engine/eiface.h:
unsigned int GetPlayerWONId(edict_t *e);
GETPLAYERWONID()
returns the server assigned WONid for this player. useful for logging frags, etc. returns -1 if the edict couldn't be found in the list of clients

comments:

Returns the WON id for the given player edict. As of server x106, this should be unique per client CD KEY, and should be consistent across all WON auth servers.

Info_RemoveKey

from engine/eiface.h:
void Info_RemoveKey(char *s, const char *key);
YWB 8/1/99 TFF Physics additions

comments:

.

GetPhysicsKeyValue

from engine/eiface.h:
const char *GetPhysicsKeyValue(const edict_t *pClient, const char *key);

comments:

.

SetPhysicsKeyValue

from engine/eiface.h:
void SetPhysicsKeyValue(const edict_t *pClient, const char *key, const char *value);

comments:

.

GetPhysicsInfoString

from engine/eiface.h:
const char *GetPhysicsInfoString(const edict_t *pClient);
ENGINE_GETPHYSINFO()

comments:

.

PrecacheEvent

from engine/eiface.h:
unsigned short PrecacheEvent(int type, const char *psz);
PRECACHE_EVENT()

comments:

.

PlaybackEvent

from engine/eiface.h:
void PlaybackEvent(int flags, const edict_t *pInvoker, unsigned short eventindex, float delay, float *origin, float *angles, float fparam1, float fparam2, int iparam1, int iparam2, int bparam1, int bparam2);
PLAYBACK_EVENT_FULL()

comments:

.

SetFatPVS

from engine/eiface.h:
unsigned char *SetFatPVS(float *org);
ENGINE_SET_PVS()

comments:

.

SetFatPAS

from engine/eiface.h:
unsigned char *SetFatPAS(float *org);
ENGINE_SET_PAS()

comments:

.

CheckVisibility

from engine/eiface.h:
int CheckVisibility(const edict_t *entity, unsigned char *pset);
ENGINE_CHECK_VISIBILITY()

comments:

.

DeltaSetField

from engine/eiface.h:
void DeltaSetField(struct delta_s *pFields, const char *fieldname);
DELTA_SET()

comments:

.

DeltaUnsetField

from engine/eiface.h:
void DeltaUnsetField(struct delta_s *pFields, const char *fieldname);
DELTA_UNSET()

comments:

.

DeltaAddEncoder

from engine/eiface.h:
void DeltaAddEncoder(char *name, void (*conditionalencode)( struct delta_s *pFields, const unsigned char *from, const unsigned char *to) );
DELTA_ADDENCODER()

comments:

.

GetCurrentPlayer

from engine/eiface.h:
int GetCurrentPlayer(void);
ENGINE_CURRENT_PLAYER()

comments:

.

CanSkipPlayer

from engine/eiface.h:
int CanSkipPlayer(const edict_t *player);
ENGINE_CANSKIP()

comments:

.

DeltaFindField

from engine/eiface.h:
int DeltaFindField(struct delta_s *pFields, const char *fieldname);
DELTA_FINDFIELD()

comments:

.

DeltaSetFieldByIndex

from engine/eiface.h:
void DeltaSetFieldByIndex(struct delta_s *pFields, int fieldNumber);
DELTA_SETBYINDEX()

comments:

.

DeltaUnsetFieldByIndex

from engine/eiface.h:
void DeltaUnsetFieldByIndex(struct delta_s *pFields, int fieldNumber);
DELTA_UNSETBYINDEX()

comments:

.

SetGroupMask

from engine/eiface.h:
void SetGroupMask(int mask, int op);
ENGINE_SETGROUPMASK()

comments:

.

CreateInstancedBaseline

from engine/eiface.h:
int CreateInstancedBaseline(int classname, struct entity_state_s *baseline);
ENGINE_INSTANCE_BASELINE()

comments:

.

Cvar_DirectSet

from engine/eiface.h:
void Cvar_DirectSet(struct cvar_s *var, char *value);

comments:

.

ForceUnmodified

from engine/eiface.h:
void ForceUnmodified(FORCE_TYPE type, float *mins, float *maxs, const char *filename);
ENGINE_FORCE_UNMODIFIED()
Forces the client and server to be running with the same version of the specified file ( e.g., a player model ). Calling this has no effect in single player.

comments:

.

GetPlayerStats

from engine/eiface.h:
void GetPlayerStats(const edict_t *pClient, int *ping, int *packet_loss);
PLAYER_CNX_STATS()

comments:

.

AddServerCommand

from engine/eiface.h:
void AddServerCommand(char *cmd_name, void (*function) (void));

comments:

Registers a new server console command. When the given command string is typed at the console, the given function will be called. Arguments for the command can be retrieved in the function with Cmd_Args, Cmd_Argv, and Cmd_Argc.

Voice_GetClientListening

from engine/eiface.h:
qboolean Voice_GetClientListening)(int iReceiver, int iSender);
For voice communications, set which clients hear each other. NOTE: these functions take player entity indices (starting at 1).

comments:

Added in SDK 2.2.

Voice_SetClientListening

from engine/eiface.h:
qboolean Voice_SetClientListening)(int iReceiver, int iSender, qboolean bListen);
For voice communications, set which clients hear each other. NOTE: these functions take player entity indices (starting at 1).

comments:

Added in SDK 2.2.

GetPlayerAuthId

from engine/eiface.h:
const char *GetPlayerAuthId(edict_t *e);

From Eric Smith <EricS@valvesoftware.com> on hlcoders:

The AuthID is a way for applications/mods to get the Authentication ID (uniqueID) for a player. The AuthID can be a WonID or a SteamID. The function I've written returns the AuthID as a string. Calling GetPlayerWONId will still work for Non-Steam players just like it always has. If applications/mods want to get a jump start on getting ready to support Steam players, then they can start using GetPlayerAuthId, which will still work for Non-Steam players, but it will give the WonID as a string instead of an unsigned int.

From Eric Smith <EricS@valvesoftware.com> on servertest:

Only clients playing via Steam will have SteamIDs. Clients who are not using Steam will still have WonIDs (just like they always have). The server now supports WonIDs\SteamIDs and banning using either of them. WonIDs have not changed. SteamIDs use the format: STEAM_<#>:<#> where <#> is replaced by numbers. An example SteamID would be "STEAM_0:94534".

From Eric Smith <EricS@valvesoftware.com> on hlcoders:

This function will now return the string "BOT" as the AuthID for fake clients.

comments:

Added for HL 1109; no SDK update. (Available in patched SDK as of hlsdk-2.3-p1.)

SequenceGet

from engine/eiface.h:
void *SequenceGet(const char *fileName, const char *entryName);

comments:

Added for HL 1xxx; no SDK update. (Available in patched SDK as of hlsdk-2.3-p1.)

SequencePickSentence

from engine/eiface.h:
void *SequencePickSentence(const char *groupName, int pickMethod, int *picked);

comments:

Added for HL 1xxx; no SDK update. (Available in patched SDK as of hlsdk-2.3-p1.)

GetFileSize

from engine/eiface.h:
int GetFileSize(char *filename);

comments:

Added for HL 1xxx; no SDK update. (Available in patched SDK as of hlsdk-2.3-p1.)

GetApproxWavePlayLen

from engine/eiface.h:
unsigned int GetApproxWavePlayLen(const char *filepath);

comments:

Added for HL 1xxx; no SDK update. (Available in patched SDK as of hlsdk-2.3-p1.)

IsCareerMatch

from engine/eiface.h:
int IsCareerMatch(void);

comments:

Added for HL 1xxx; no SDK update. (Available in patched SDK as of hlsdk-2.3-p1.)

GetLocalizedStringLength

from engine/eiface.h:
int GetLocalizedStringLength(const char *label);

comments:

Added for HL 1xxx; no SDK update. (Available in patched SDK as of hlsdk-2.3-p1.)

RegisterTutorMessageShown

from engine/eiface.h:
void RegisterTutorMessageShown(int mid);

comments:

Added for HL 1xxx; no SDK update. (Available in patched SDK as of hlsdk-2.3-p1.)

GetTimesTutorMessageShown

from engine/eiface.h:
int GetTimesTutorMessageShown(int mid);

comments:

Added for HL 1xxx; no SDK update. (Available in patched SDK as of hlsdk-2.3-p1.)

ProcessTutorMessageDecayBuffer

from engine/eiface.h:
void ProcessTutorMessageDecayBuffer(int *buffer, int bufferLength);

comments:

Added for HL 1xxx; no SDK update. (Available in patched SDK as of hlsdk-2.3-p1.)

ConstructTutorMessageDecayBuffer

from engine/eiface.h:
void ConstructTutorMessageDecayBuffer(int *buffer, int bufferLength);

comments:

Added for HL 1xxx; no SDK update. (Available in patched SDK as of hlsdk-2.3-p1.)

ResetTutorMessageDecayData

from engine/eiface.h:
void ResetTutorMessageDecayData(void);

comments:

Added for HL 1xxx; no SDK update. (Available in patched SDK as of hlsdk-2.3-p1.)

QueryClientCvarValue

void (*pfnQueryClientCvarValue)( const edict_t *player, const char *cvarName );

from alfred@valvesoftware.com, via HLCoders

Calling this function requests the value of cvarName from player. The result is returned via a callback from NEW_DLL_FUNCTIONS.

comments:

Added 2005-08-11, no SDK update. (Available in patched SDK as of hlsdk-2.3-p2.)
Use of this function is DEPRECATED. It has been obsoleted by the pfnQueryClientCvarValue2() function. See below.
This API can lead to conflicts when you query more than one cvar from a player at a time. When using this function, use IS_QUERYING_CLIENT_CVAR to check if another plugin is querying before you do so. Use of this function is strongly advised against. Instead use the pfnQueryClientCvarValue2() function.

QueryClientCvarValue2

void (*pfnQueryClientCvarValue2)( const edict_t *player, const char *cvarName, int requestID );

from alfred@valvesoftware.com, via hlds_apps

Calling this function requests the value of cvarName from player and returns to you the supplied requestID on success (or failure). The response is sent to a pfnCvarValue2 callback in the NEW_DLL_FUNCTIONS structure.

comments:

Added 2005-11-23, no SDK update. (Available in patched SDK as of hlsdk-2.3-p3.)