HLSDK Engine Notes

=-=-=-=-=-=-=-=-=-=



--------------------------------------------------------------------------



  - PrecacheModel

  - PrecacheSound

  - SetModel

  - ModelIndex

  - ModelFrames

  - SetSize

  - ChangeLevel

  - GetSpawnParms

  - SaveSpawnParms

  - VecToYaw

  - VecToAngles

  - MoveToOrigin

  - ChangeYaw

  - ChangePitch

  - FindEntityByString

  - GetEntityIllum

  - FindEntityInSphere

  - FindClientInPVS

  - EntitiesInPVS

  - MakeVectors

  - AngleVectors

  - CreateEntity

  - RemoveEntity

  - CreateNamedEntity

  - MakeStatic

  - EntIsOnFloor

  - DropToFloor

  - WalkMove

  - SetOrigin

  - EmitSound

  - EmitAmbientSound

  - TraceLine

  - TraceToss

  - TraceMonsterHull

  - TraceHull

  - TraceModel

  - TraceTexture

  - TraceSphere

  - GetAimVector

  - ServerCommand

  - ServerExecute

  - ClientCommand

  - ParticleEffect

  - LightStyle

  - DecalIndex

  - PointContents

  - MessageBegin

  - MessageEnd

  - WriteByte

  - WriteChar

  - WriteShort

  - WriteLong

  - WriteAngle

  - WriteCoord

  - WriteString

  - WriteEntity

  - CVarRegister

  - CVarGetFloat

  - CVarGetString

  - CVarSetFloat

  - CVarSetString

  - AlertMessage

  - EngineFprintf

  - PvAllocEntPrivateData

  - PvEntPrivateData

  - FreeEntPrivateData

  - SzFromIndex

  - AllocString

  - GetVarsOfEnt

  - PEntityOfEntOffset

  - EntOffsetOfPEntity

  - IndexOfEdict

  - PEntityOfEntIndex

  - FindEntityByVars

  - GetModelPtr

  - RegUserMsg

  - AnimationAutomove

  - GetBonePosition

  - FunctionFromName

  - NameForFunction

  - ClientPrintf

  - ServerPrint

  - Cmd_Args

  - Cmd_Argv

  - Cmd_Argc

  - GetAttachment

  - CRC32_Init

  - CRC32_ProcessBuffer

  - CRC32_ProcessByte

  - CRC32_Final

  - RandomLong

  - RandomFloat

  - SetView

  - Time

  - CrosshairAngle

  - LoadFileForMe

  - FreeFile

  - EndSection

  - CompareFileTime

  - GetGameDir

  - Cvar_RegisterVariable

  - FadeClientVolume

  - SetClientMaxspeed

  - CreateFakeClient

  - RunPlayerMove

  - NumberOfEntities

  - GetInfoKeyBuffer

  - InfoKeyValue

  - SetKeyValue

  - SetClientKeyValue

  - IsMapValid

  - StaticDecal

  - PrecacheGeneric

  - GetPlayerUserId

  - BuildSoundMsg

  - IsDedicatedServer

  - CVarGetPointer

  - GetPlayerWONId

  - Info_RemoveKey

  - GetPhysicsKeyValue

  - SetPhysicsKeyValue

  - GetPhysicsInfoString

  - PrecacheEvent

  - PlaybackEvent

  - SetFatPVS

  - SetFatPAS

  - CheckVisibility

  - DeltaSetField

  - DeltaUnsetField

  - DeltaAddEncoder

  - GetCurrentPlayer

  - CanSkipPlayer

  - DeltaFindField

  - DeltaSetFieldByIndex

  - DeltaUnsetFieldByIndex

  - SetGroupMask

  - CreateInstancedBaseline

  - Cvar_DirectSet

  - ForceUnmodified

  - GetPlayerStats

  - AddServerCommand

  - Voice_GetClientListening

  - Voice_SetClientListening

  - GetPlayerAuthId

  - SequenceGet

  - SequencePickSentence

  - GetFileSize

  - GetApproxWavePlayLen

  - IsCareerMatch

  - GetLocalizedStringLength

  - RegisterTutorMessageShown

  - GetTimesTutorMessageShown

  - ProcessTutorMessageDecayBuffer

  - ConstructTutorMessageDecayBuffer

  - ResetTutorMessageDecayData

  - QueryClientCvarValue

  - QueryClientCvarValue2



--------------------------------------------------------------------------



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:

      - MSG_BROADCAST - "unreliable to all"

      - MSG_ONE - "reliable to one (msg_entity)"

      - MSG_ALL - "reliable to all"

      - MSG_INIT - "write to the init string"

      - MSG_PVS - "Ents in PVS of org" (PVS=potentially visible set)

      - MSG_PAS - "Ents in PAS of org" (PAS=potentially audible set)

      - MSG_PVS_R - "Reliable to PVS"

      - MSG_PAS_R - "Reliable to PAS"

      - MSG_ONE_UNRELIABLE - "Send to one client, but don't put in

        reliable stream, put in unreliable datagram (could be dropped)"



--------------------------------------------------------------------------



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:

      - at_notice

      - at_console - "same as at_notice, but forces a ConPrintf, not a

        message box". Prints output to server console, but only shown if

        'developer' is set.

      - at_aiconsole - "same as at_console, but only shown if developer

        level is 2!"

      - at_warning

      - at_error

      - at_logged - "Server print to console (only in multiplayer games)."

        Prints output to server logs and console.



--------------------------------------------------------------------------



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:

      - SVC_TEMPENTITY = 23

      - SVC_INTERMISSION = 30

      - SVC_CDTRACK = 32

      - SVC_WEAPONANIM = 35

      - SVC_ROOMTYPE = 37

      - SVC_HLTV = 50



--------------------------------------------------------------------------



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

(list.valvesoftware.com/pipermail/hlcoders/2002-April/002865.html):



    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:

(list.valvesoftware.com/pipermail/servertest/2002-April/000567.html)



    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:

(list.valvesoftware.com/pipermail/hlcoders/2002-April/002925.html)



    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.)



--------------------------------------------------------------------------

