|
Offtopic Just anything. You have time to waste ? Prove it !!!
|
|
Member
Status: Offline
Posts: 512
Join Date: Feb 2004
Location: STL MO USA
|
Re: CZ released!!! -
30-03-2004
i get one of these for every file in the source:
! C:\Documents and Settings\Administrator\Local Settings\Temp\Rar$DI36.100\hlsdk-23: Cannot create hlsdk-2.3\multiplayer\cl_dll\hl\hl_baseentity.cpp
I figure theres something wrong with the bold and underlined parts. I don't think those filenames are allowed in windows... with the $ and the .
am i going to have to view each file in notepad and convert manually? that sounds like a lot of hassle, but if it HAS to be done... so be it.
|
|
|
|
|
aka: memed / Server Admin
Status: Offline
Posts: 705
Join Date: Jan 2004
Location: germany
|
Re: CZ released!!! -
30-03-2004
Quote:
Originally Posted by dead bwoy
i get one of these for every file in the source:
! C:\Documents and Settings\Administrator\Local Settings\Temp\Rar$DI36.100\hlsdk-23: Cannot create hlsdk-2.3\multiplayer\cl_dll\hl\hl_baseentity.cpp
I figure theres something wrong with the bold and underlined parts. I don't think those filenames are allowed in windows... with the $ and the .
am i going to have to view each file in notepad and convert manually? that sounds like a lot of hassle, but if it HAS to be done... so be it.
|
nope the bold no.1 is from winrars temp folder, and is a feature, the second bold misses a drive name, exept that it's ok.
the files themselfes are ok, but i will try them myself on whinedos.
cheers
/edit
verified, they work:
using winrar 3.20 on w2k pro, no special settings i'm aware of
edit/
sunny morning view from my balcony:
see our WIKI!
see our filebase!
Last edited by Onno Kreuzinger; 30-03-2004 at 13:19..
|
|
|
|
|
Member
Status: Offline
Posts: 512
Join Date: Feb 2004
Location: STL MO USA
|
Re: CZ released!!! -
31-03-2004
do i have the wrong file? i dont think so.
i see yours says hl_bot_build.tar.bz2
mine is just hlsdk-2.3.gz
EDIT:
Ok so i finally got it 9_9 whew...
don't exactly know what i did differently, but i finally got the damn sdk unpacked!!!
thanks for all your help
now for the compile...
Last edited by dead bwoy; 31-03-2004 at 00:34..
|
|
|
|
|
aka: memed / Server Admin
Status: Offline
Posts: 705
Join Date: Jan 2004
Location: germany
|
Re: CZ released!!! -
31-03-2004
Hi sorry missed one page of posts,
im taking about the hlsdk i use, so not the one Pierre-Maire inssist to be the accurate one.
@PMB i ran a diff -Nru on your eiface.h and the one from the -tgz file from metamod.org, they are a little bit different :
Code:
--- eiface.h-pmb Tue Mar 30 23:44:43 2004
+++ eiface.h-metamod.org Wed Nov 27 05:32:34 2002
@@ -1,10 +1,10 @@
/***
*
-* Copyright (c) 1999, Valve LLC. All rights reserved.
-*
-* This product contains software technology licensed from Id
-* Software, Inc. ("Id Technology"). Id Technology (c) 1996 Id Software, Inc.
-* All Rights Reserved.
+* Copyright (c) 1996-2002, Valve LLC. All rights reserved.
+*
+* This product contains software technology licensed from Id
+* Software, Inc. ("Id Technology"). Id Technology (c) 1996 Id Software, Inc.
+* All Rights Reserved.
*
* Use, distribution, and modification of this source code and/or resulting
* object code is restricted to non-commercial enhancements to products from
@@ -14,442 +14,479 @@
****/
#ifndef EIFACE_H
#define EIFACE_H
-#include "archtypes.h" // DAL
+
#ifdef HLDEMO_BUILD
#define INTERFACE_VERSION 001
#else // !HLDEMO_BUILD, i.e., regular version of HL
-#define INTERFACE_VERSION 140
+#define INTERFACE_VERSION 140
#endif // !HLDEMO_BUILD
+
#include <stdio.h>
#include "custom.h"
#include "cvardef.h"
-#include "Sequence.h"
//
// Defines entity interface between engine and DLLs.
// This header file included by engine files and DLL files.
//
// Before including this header, DLLs must:
-// include progdefs.h
+// include progdefs.h
// This is conveniently done for them in extdll.h
//
+
#ifdef _WIN32
#define DLLEXPORT __stdcall
#else
#define DLLEXPORT /* */
#endif
+
typedef enum
-{
-at_notice,
-at_console, // same as at_notice, but forces a ConPrintf, not a message box
-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 ).
-} ALERT_TYPE;
+ {
+ at_notice,
+ at_console, // same as at_notice, but forces a ConPrintf, not a message box
+ 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 ).
+ } ALERT_TYPE;
+
// 4-22-98 JOHN: added for use in pfnClientPrintf
typedef enum
-{
-print_console,
-print_center,
-print_chat,
-} PRINT_TYPE;
+ {
+ print_console,
+ print_center,
+ print_chat,
+ } PRINT_TYPE;
+
// For integrity checking of content on clients
typedef enum
{
-force_exactfile, // File on client must exactly match server's file
-force_model_samebounds, // For model files only, the geometry must fit in the same bbox
-force_model_specifybounds, // For model files only, the geometry must fit in the specified bbox
-force_model_specifybounds_if_avail, // For Steam model files only, the geometry must fit in the specified bbox (if the file is available)
+ force_exactfile, // File on client must exactly match server's file
+ force_model_samebounds, // For model files only, the geometry must fit in the same bbox
+ force_model_specifybounds, // For model files only, the geometry must fit in the specified bbox
} FORCE_TYPE;
+
// Returned by TraceLine
typedef struct
-{
-int fAllSolid; // if true, plane is not valid
-int fStartSolid; // if true, the initial point was in a solid area
-int fInOpen;
-int fInWater;
-float flFraction; // time completed, 1.0 = didn't hit anything
-vec3_t vecEndPos; // final position
-float flPlaneDist;
-vec3_t vecPlaneNormal; // surface normal at impact
-edict_t *pHit; // entity the surface is on
-int iHitgroup; // 0 == generic, non zero is specific body part
-} TraceResult;
+ {
+ int fAllSolid; // if true, plane is not valid
+ int fStartSolid; // if true, the initial point was in a solid area
+ int fInOpen;
+ int fInWater;
+ float flFraction; // time completed, 1.0 = didn't hit anything
+ vec3_t vecEndPos; // final position
+ float flPlaneDist;
+ vec3_t vecPlaneNormal; // surface normal at impact
+ edict_t *pHit; // entity the surface is on
+ int iHitgroup; // 0 == generic, non zero is specific body part
+ } TraceResult;
+
// CD audio status
-typedef struct
+typedef struct
{
-int fPlaying;// is sound playing right now?
-int fWasPlaying;// if not, CD is paused if WasPlaying is true.
-int fInitialized;
-int fEnabled;
-int fPlayLooping;
-float cdvolume;
-//BYTE remap[100];
-int fCDRom;
-int fPlayTrack;
+ int fPlaying;// is sound playing right now?
+ int fWasPlaying;// if not, CD is paused if WasPlaying is true.
+ int fInitialized;
+ int fEnabled;
+ int fPlayLooping;
+ float cdvolume;
+ //BYTE remap[100];
+ int fCDRom;
+ int fPlayTrack;
} CDStatus;
+
#include "../common/crc.h"
// Engine hands this to DLLs for functionality callbacks
typedef struct enginefuncs_s
{
-int (*pfnPrecacheModel) (char* s);
-int (*pfnPrecacheSound) (char* s);
-void (*pfnSetModel) (edict_t *e, const char *m);
-int (*pfnModelIndex) (const char *m);
-int (*pfnModelFrames) (int modelIndex);
-void (*pfnSetSize) (edict_t *e, const float *rgflMin, const float *rgflMax);
-void (*pfnChangeLevel) (char* s1, char* s2);
-void (*pfnGetSpawnParms) (edict_t *ent);
-void (*pfnSaveSpawnParms) (edict_t *ent);
-float (*pfnVecToYaw) (const float *rgflVector);
-void (*pfnVecToAngles) (const float *rgflVectorIn, float *rgflVectorOut);
-void (*pfnMoveToOrigin) (edict_t *ent, const float *pflGoal, float dist, int iMoveType);
-void (*pfnChangeYaw) (edict_t* ent);
-void (*pfnChangePitch) (edict_t* ent);
-edict_t* (*pfnFindEntityByString) (edict_t *pEdictStartSearchAfter, const char *pszField, const char *pszValue);
-int (*pfnGetEntityIllum) (edict_t* pEnt);
-edict_t* (*pfnFindEntityInSphere) (edict_t *pEdictStartSearchAfter, const float *org, float rad);
-edict_t* (*pfnFindClientInPVS) (edict_t *pEdict);
-edict_t* (*pfnEntitiesInPVS) (edict_t *pplayer);
-void (*pfnMakeVectors) (const float *rgflVector);
-void (*pfnAngleVectors) (const float *rgflVector, float *forward, float *right, float *up);
-edict_t* (*pfnCreateEntity) (void);
-void (*pfnRemoveEntity) (edict_t* e);
-edict_t* (*pfnCreateNamedEntity) (int className);
-void (*pfnMakeStatic) (edict_t *ent);
-int (*pfnEntIsOnFloor) (edict_t *e);
-int (*pfnDropToFloor) (edict_t* e);
-int (*pfnWalkMove) (edict_t *ent, float yaw, float dist, int iMode);
-void (*pfnSetOrigin) (edict_t *e, const float *rgflOrigin);
-void (*pfnEmitSound) (edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch);
-void (*pfnEmitAmbientSound) (edict_t *entity, float *pos, const char *samp, float vol, float attenuation, int fFlags, int pitch);
-void (*pfnTraceLine) (const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr);
-void (*pfnTraceToss) (edict_t* pent, edict_t* pentToIgnore, TraceResult *ptr);
-int (*pfnTraceMonsterHull) (edict_t *pEdict, const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr);
-void (*pfnTraceHull) (const float *v1, const float *v2, int fNoMonsters, int hullNumber, edict_t *pentToSkip, TraceResult *ptr);
-void (*pfnTraceModel) (const float *v1, const float *v2, int hullNumber, edict_t *pent, TraceResult *ptr);
-const char *(*pfnTraceTexture) (edict_t *pTextureEntity, const float *v1, const float *v2 );
-void (*pfnTraceSphere) (const float *v1, const float *v2, int fNoMonsters, float radius, edict_t *pentToSkip, TraceResult *ptr);
-void (*pfnGetAimVector) (edict_t* ent, float speed, float *rgflReturn);
-void (*pfnServerCommand) (char* str);
-void (*pfnServerExecute) (void);
-void (*pfnClientCommand) (edict_t* pEdict, char* szFmt, ...);
-void (*pfnParticleEffect) (const float *org, const float *dir, float color, float count);
-void (*pfnLightStyle) (int style, char* val);
-int (*pfnDecalIndex) (const char *name);
-int (*pfnPointContents) (const float *rgflVector);
-void (*pfnMessageBegin) (int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
-void (*pfnMessageEnd) (void);
-void (*pfnWriteByte) (int iValue);
-void (*pfnWriteChar) (int iValue);
-void (*pfnWriteShort) (int iValue);
-void (*pfnWriteLong) (int iValue);
-void (*pfnWriteAngle) (float flValue);
-void (*pfnWriteCoord) (float flValue);
-void (*pfnWriteString) (const char *sz);
-void (*pfnWriteEntity) (int iValue);
-void (*pfnCVarRegister) (cvar_t *pCvar);
-float (*pfnCVarGetFloat) (const char *szVarName);
-const char* (*pfnCVarGetString) (const char *szVarName);
-void (*pfnCVarSetFloat) (const char *szVarName, float flValue);
-void (*pfnCVarSetString) (const char *szVarName, const char *szValue);
-void (*pfnAlertMessage) (ALERT_TYPE atype, char *szFmt, ...);
-void (*pfnEngineFprintf) (void *pfile, char *szFmt, ...);
-void* (*pfnPvAllocEntPrivateData) (edict_t *pEdict, int32 cb);
-void* (*pfnPvEntPrivateData) (edict_t *pEdict);
-void (*pfnFreeEntPrivateData) (edict_t *pEdict);
-const char* (*pfnSzFromIndex) (int iString);
-int (*pfnAllocString) (const char *szValue);
-struct entvars_s* (*pfnGetVarsOfEnt) (edict_t *pEdict);
-edict_t* (*pfnPEntityOfEntOffset) (int iEntOffset);
-int (*pfnEntOffsetOfPEntity) (const edict_t *pEdict);
-int (*pfnIndexOfEdict) (const edict_t *pEdict);
-edict_t* (*pfnPEntityOfEntIndex) (int iEntIndex);
-edict_t* (*pfnFindEntityByVars) (struct entvars_s* pvars);
-void* (*pfnGetModelPtr) (edict_t* pEdict);
-int (*pfnRegUserMsg) (const char *pszName, int iSize);
-void (*pfnAnimationAutomove) (const edict_t* pEdict, float flTime);
-void (*pfnGetBonePosition) (const edict_t* pEdict, int iBone, float *rgflOrigin, float *rgflAngles );
-uint32 (*pfnFunctionFromName) ( const char *pName );
-const char *(*pfnNameForFunction) ( uint32 function );
-void (*pfnClientPrintf) ( edict_t* pEdict, PRINT_TYPE ptype, const char *szMsg ); // JOHN: engine callbacks so game DLL can print messages to individual clients
-void (*pfnServerPrint) ( const char *szMsg );
-const char *(*pfnCmd_Args) ( void ); // these 3 added
-const char *(*pfnCmd_Argv) ( int argc ); // so game DLL can easily
-int (*pfnCmd_Argc) ( void ); // access client 'cmd' strings
-void (*pfnGetAttachment) (const edict_t *pEdict, int iAttachment, float *rgflOrigin, float *rgflAngles );
-void (*pfnCRC32_Init) (CRC32_t *pulCRC);
-void (*pfnCRC32_ProcessBuffer) (CRC32_t *pulCRC, void *p, int len);
-void (*pfnCRC32_ProcessByte) (CRC32_t *pulCRC, unsigned char ch);
-CRC32_t (*pfnCRC32_Final) (CRC32_t pulCRC);
-int32 (*pfnRandomLong) (int32 lLow, int32 lHigh);
-float (*pfnRandomFloat) (float flLow, float flHigh);
-void (*pfnSetView) (const edict_t *pClient, const edict_t *pViewent );
-float (*pfnTime) ( void );
-void (*pfnCrosshairAngle) (const edict_t *pClient, float pitch, float yaw);
-byte * (*pfnLoadFileForMe) (char *filename, int *pLength);
-void (*pfnFreeFile) (void *buffer);
-void (*pfnEndSection) (const char *pszSectionName); // trigger_endsection
-int (*pfnCompareFileTime) (char *filename1, char *filename2, int *iCompare);
-void (*pfnGetGameDir) (char *szGetGameDir);
-void (*pfnCvar_RegisterVariable) (cvar_t *variable);
-void (*pfnFadeClientVolume) (const edict_t *pEdict, int fadePercent, int fadeOutSeconds, int holdTime, int fadeInSeconds);
-void (*pfnSetClientMaxspeed) (const edict_t *pEdict, float fNewMaxspeed);
-edict_t * (*pfnCreateFakeClient) (const char *netname); // returns NULL if fake client can't be created
-void (*pfnRunPlayerMove) (edict_t *fakeclient, const float *viewangles, float forwardmove, float sidemove, float upmove, unsigned short buttons, byte impulse, byte msec );
-int (*pfnNumberOfEntities) (void);
-char* (*pfnGetInfoKeyBuffer) (edict_t *e); // passing in NULL gets the serverinfo
-char* (*pfnInfoKeyValue) (char *infobuffer, char *key);
-void (*pfnSetKeyValue) (char *infobuffer, char *key, char *value);
-void (*pfnSetClientKeyValue) (int clientIndex, char *infobuffer, char *key, char *value);
-int (*pfnIsMapValid) (char *filename);
-void (*pfnStaticDecal) ( const float *origin, int decalIndex, int entityIndex, int modelIndex );
-int (*pfnPrecacheGeneric) (char* s);
-int (*pfnGetPlayerUserId) (edict_t *e ); // 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
-void (*pfnBuildSoundMsg) (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);
-int (*pfnIsDedicatedServer) (void);// is this a dedicated server?
-cvar_t *(*pfnCVarGetPointer) (const char *szVarName);
-unsigned int (*pfnGetPlayerWONId) (edict_t *e); // 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
-// YWB 8/1/99 TFF Physics additions
-void (*pfnInfo_RemoveKey) ( char *s, const char *key );
-const char *(*pfnGetPhysicsKeyValue) ( const edict_t *pClient, const char *key );
-void (*pfnSetPhysicsKeyValue) ( const edict_t *pClient, const char *key, const char *value );
-const char *(*pfnGetPhysicsInfoString) ( const edict_t *pClient );
-unsigned short (*pfnPrecacheEvent) ( int type, const char*psz );
-void (*pfnPlaybackEvent) ( 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 );
-unsigned char *(*pfnSetFatPVS) ( float *org );
-unsigned char *(*pfnSetFatPAS) ( float *org );
-int (*pfnCheckVisibility ) ( const edict_t *entity, unsigned char *pset );
-void (*pfnDeltaSetField) ( struct delta_s *pFields, const char *fieldname );
-void (*pfnDeltaUnsetField) ( struct delta_s *pFields, const char *fieldname );
-void (*pfnDeltaAddEncoder) ( char *name, void (*conditionalencode)( struct delta_s *pFields, const unsigned char *from, const unsigned char *to ) );
-int (*pfnGetCurrentPlayer) ( void );
-int (*pfnCanSkipPlayer) ( const edict_t *player );
-int (*pfnDeltaFindField) ( struct delta_s *pFields, const char *fieldname );
-void (*pfnDeltaSetFieldByIndex) ( struct delta_s *pFields, int fieldNumber );
-void (*pfnDeltaUnsetFieldByIndex)( struct delta_s *pFields, int fieldNumber );
-void (*pfnSetGroupMask) ( int mask, int op );
-int (*pfnCreateInstancedBaseline) ( int classname, struct entity_state_s *baseline );
-void (*pfnCvar_DirectSet) ( struct cvar_s *var, char *value );
-// 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
-void (*pfnForceUnmodified) ( FORCE_TYPE type, float *mins, float *maxs, const char *filename );
-void (*pfnGetPlayerStats) ( const edict_t *pClient, int *ping, int *packet_loss );
-void (*pfnAddServerCommand) ( char *cmd_name, void (*function) (void) );
-// For voice communications, set which clients hear eachother.
-// NOTE: these functions take player entity indices (starting at 1).
-qboolean (*pfnVoice_GetClientListening)(int iReceiver, int iSender);
-qboolean (*pfnVoice_SetClientListening)(int iReceiver, int iSender, qboolean bListen);
-const char *(*pfnGetPlayerAuthId) ( edict_t *e );
-// PSV: Added for CZ training map
-// const char *(*pfnKeyNameForBinding) ( const char* pBinding );
-
-void* (*pfnSequenceGet) ( const char* fileName, const char* entryName );
-void* (*pfnSequencePickSentence) ( const char* groupName, int pickMethod, int *picked );
-// LH: Give access to filesize via filesystem
-int (*pfnGetFileSize) ( char *filename );
-unsigned int (*pfnGetApproxWavePlayLen) (const char *filepath);
-// MDC: Added for CZ career-mode
-int (*pfnIsCareerMatch) ( void );
-// BGC: return the number of characters of the localized string referenced by using "label"
-int (*pfnGetLocalizedStringLength)(const char *label);
-// BGC: added to facilitate persistent storage of tutor message decay values for
-// different career game profiles. Also needs to persist regardless of mp.dll being
-// destroyed and recreated.
-void (*pfnRegisterTutorMessageShown)(int mid);
-int (*pfnGetTimesTutorMessageShown)(int mid);
-void (*pfnProcessTutorMessageDecayBuffer)(int *buffer, int bufferLength);
-void (*pfnConstructTutorMessageDecayBuffer)(int *buffer, int bufferLength);
-void (*pfnResetTutorMessageDecayData)( void );
-} enginefuncs_t;
+ int (*pfnPrecacheModel) (char* s);
+ int (*pfnPrecacheSound) (char* s);
+ void (*pfnSetModel) (edict_t *e, const char *m);
+ int (*pfnModelIndex) (const char *m);
+ int (*pfnModelFrames) (int modelIndex);
+ void (*pfnSetSize) (edict_t *e, const float *rgflMin, const float *rgflMax);
+ void (*pfnChangeLevel) (char* s1, char* s2);
+ void (*pfnGetSpawnParms) (edict_t *ent);
+ void (*pfnSaveSpawnParms) (edict_t *ent);
+ float (*pfnVecToYaw) (const float *rgflVector);
+ void (*pfnVecToAngles) (const float *rgflVectorIn, float *rgflVectorOut);
+ void (*pfnMoveToOrigin) (edict_t *ent, const float *pflGoal, float dist, int iMoveType);
+ void (*pfnChangeYaw) (edict_t* ent);
+ void (*pfnChangePitch) (edict_t* ent);
+ edict_t* (*pfnFindEntityByString) (edict_t *pEdictStartSearchAfter, const char *pszField, const char *pszValue);
+ int (*pfnGetEntityIllum) (edict_t* pEnt);
+ edict_t* (*pfnFindEntityInSphere) (edict_t *pEdictStartSearchAfter, const float *org, float rad);
+ edict_t* (*pfnFindClientInPVS) (edict_t *pEdict);
+ edict_t* (*pfnEntitiesInPVS) (edict_t *pplayer);
+ void (*pfnMakeVectors) (const float *rgflVector);
+ void (*pfnAngleVectors) (const float *rgflVector, float *forward, float *right, float *up);
+ edict_t* (*pfnCreateEntity) (void);
+ void (*pfnRemoveEntity) (edict_t* e);
+ edict_t* (*pfnCreateNamedEntity) (int className);
+ void (*pfnMakeStatic) (edict_t *ent);
+ int (*pfnEntIsOnFloor) (edict_t *e);
+ int (*pfnDropToFloor) (edict_t* e);
+ int (*pfnWalkMove) (edict_t *ent, float yaw, float dist, int iMode);
+ void (*pfnSetOrigin) (edict_t *e, const float *rgflOrigin);
+ void (*pfnEmitSound) (edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch);
+ void (*pfnEmitAmbientSound) (edict_t *entity, float *pos, const char *samp, float vol, float attenuation, int fFlags, int pitch);
+ void (*pfnTraceLine) (const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr);
+ void (*pfnTraceToss) (edict_t* pent, edict_t* pentToIgnore, TraceResult *ptr);
+ int (*pfnTraceMonsterHull) (edict_t *pEdict, const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr);
+ void (*pfnTraceHull) (const float *v1, const float *v2, int fNoMonsters, int hullNumber, edict_t *pentToSkip, TraceResult *ptr);
+ void (*pfnTraceModel) (const float *v1, const float *v2, int hullNumber, edict_t *pent, TraceResult *ptr);
+ const char *(*pfnTraceTexture) (edict_t *pTextureEntity, const float *v1, const float *v2 );
+ void (*pfnTraceSphere) (const float *v1, const float *v2, int fNoMonsters, float radius, edict_t *pentToSkip, TraceResult *ptr);
+ void (*pfnGetAimVector) (edict_t* ent, float speed, float *rgflReturn);
+ void (*pfnServerCommand) (char* str);
+ void (*pfnServerExecute) (void);
+ void (*pfnClientCommand) (edict_t* pEdict, char* szFmt, ...);
+ void (*pfnParticleEffect) (const float *org, const float *dir, float color, float count);
+ void (*pfnLightStyle) (int style, char* val);
+ int (*pfnDecalIndex) (const char *name);
+ int (*pfnPointContents) (const float *rgflVector);
+ void (*pfnMessageBegin) (int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
+ void (*pfnMessageEnd) (void);
+ void (*pfnWriteByte) (int iValue);
+ void (*pfnWriteChar) (int iValue);
+ void (*pfnWriteShort) (int iValue);
+ void (*pfnWriteLong) (int iValue);
+ void (*pfnWriteAngle) (float flValue);
+ void (*pfnWriteCoord) (float flValue);
+ void (*pfnWriteString) (const char *sz);
+ void (*pfnWriteEntity) (int iValue);
+ void (*pfnCVarRegister) (cvar_t *pCvar);
+ float (*pfnCVarGetFloat) (const char *szVarName);
+ const char* (*pfnCVarGetString) (const char *szVarName);
+ void (*pfnCVarSetFloat) (const char *szVarName, float flValue);
+ void (*pfnCVarSetString) (const char *szVarName, const char *szValue);
+ void (*pfnAlertMessage) (ALERT_TYPE atype, char *szFmt, ...);
+ void (*pfnEngineFprintf) (FILE *pfile, char *szFmt, ...);
+ void* (*pfnPvAllocEntPrivateData) (edict_t *pEdict, long cb);
+ void* (*pfnPvEntPrivateData) (edict_t *pEdict);
+ void (*pfnFreeEntPrivateData) (edict_t *pEdict);
+ const char* (*pfnSzFromIndex) (int iString);
+ int (*pfnAllocString) (const char *szValue);
+ struct entvars_s* (*pfnGetVarsOfEnt) (edict_t *pEdict);
+ edict_t* (*pfnPEntityOfEntOffset) (int iEntOffset);
+ int (*pfnEntOffsetOfPEntity) (const edict_t *pEdict);
+ int (*pfnIndexOfEdict) (const edict_t *pEdict);
+ edict_t* (*pfnPEntityOfEntIndex) (int iEntIndex);
+ edict_t* (*pfnFindEntityByVars) (struct entvars_s* pvars);
+ void* (*pfnGetModelPtr) (edict_t* pEdict);
+ int (*pfnRegUserMsg) (const char *pszName, int iSize);
+ void (*pfnAnimationAutomove) (const edict_t* pEdict, float flTime);
+ void (*pfnGetBonePosition) (const edict_t* pEdict, int iBone, float *rgflOrigin, float *rgflAngles );
+ unsigned long (*pfnFunctionFromName) ( const char *pName );
+ const char *(*pfnNameForFunction) ( unsigned long function );
+ void (*pfnClientPrintf) ( edict_t* pEdict, PRINT_TYPE ptype, const char *szMsg ); // JOHN: engine callbacks so game DLL can print messages to individual clients
+ void (*pfnServerPrint) ( const char *szMsg );
+ const char *(*pfnCmd_Args) ( void ); // these 3 added
+ const char *(*pfnCmd_Argv) ( int argc ); // so game DLL can easily
+ int (*pfnCmd_Argc) ( void ); // access client 'cmd' strings
+ void (*pfnGetAttachment) (const edict_t *pEdict, int iAttachment, float *rgflOrigin, float *rgflAngles );
+ void (*pfnCRC32_Init) (CRC32_t *pulCRC);
+ void (*pfnCRC32_ProcessBuffer) (CRC32_t *pulCRC, void *p, int len);
+ void (*pfnCRC32_ProcessByte) (CRC32_t *pulCRC, unsigned char ch);
+ CRC32_t (*pfnCRC32_Final) (CRC32_t pulCRC);
+ long (*pfnRandomLong) (long lLow, long lHigh);
+ float (*pfnRandomFloat) (float flLow, float flHigh);
+ void (*pfnSetView) (const edict_t *pClient, const edict_t *pViewent );
+ float (*pfnTime) ( void );
+ void (*pfnCrosshairAngle) (const edict_t *pClient, float pitch, float yaw);
+ byte * (*pfnLoadFileForMe) (char *filename, int *pLength);
+ void (*pfnFreeFile) (void *buffer);
+ void (*pfnEndSection) (const char *pszSectionName); // trigger_endsection
+ int (*pfnCompareFileTime) (char *filename1, char *filename2, int *iCompare);
+ void (*pfnGetGameDir) (char *szGetGameDir);
+ void (*pfnCvar_RegisterVariable) (cvar_t *variable);
+ void (*pfnFadeClientVolume) (const edict_t *pEdict, int fadePercent, int fadeOutSeconds, int holdTime, int fadeInSeconds);
+ void (*pfnSetClientMaxspeed) (const edict_t *pEdict, float fNewMaxspeed);
+ edict_t * (*pfnCreateFakeClient) (const char *netname); // returns NULL if fake client can't be created
+ void (*pfnRunPlayerMove) (edict_t *fakeclient, const float *viewangles, float forwardmove, float sidemove, float upmove, unsigned short buttons, byte impulse, byte msec );
+ int (*pfnNumberOfEntities) (void);
+ char* (*pfnGetInfoKeyBuffer) (edict_t *e); // passing in NULL gets the serverinfo
+ char* (*pfnInfoKeyValue) (char *infobuffer, char *key);
+ void (*pfnSetKeyValue) (char *infobuffer, char *key, char *value);
+ void (*pfnSetClientKeyValue) (int clientIndex, char *infobuffer, char *key, char *value);
+ int (*pfnIsMapValid) (char *filename);
+ void (*pfnStaticDecal) ( const float *origin, int decalIndex, int entityIndex, int modelIndex );
+ int (*pfnPrecacheGeneric) (char* s);
+ int (*pfnGetPlayerUserId) (edict_t *e ); // 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
+ void (*pfnBuildSoundMsg) (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);
+ int (*pfnIsDedicatedServer) (void);// is this a dedicated server?
+ cvar_t *(*pfnCVarGetPointer) (const char *szVarName);
+ unsigned int (*pfnGetPlayerWONId) (edict_t *e); // 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
+
+ // YWB 8/1/99 TFF Physics additions
+ void (*pfnInfo_RemoveKey) ( char *s, const char *key );
+ const char *(*pfnGetPhysicsKeyValue) ( const edict_t *pClient, const char *key );
+ void (*pfnSetPhysicsKeyValue) ( const edict_t *pClient, const char *key, const char *value );
+ const char *(*pfnGetPhysicsInfoString) ( const edict_t *pClient );
+ unsigned short (*pfnPrecacheEvent) ( int type, const char*psz );
+ void (*pfnPlaybackEvent) ( 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 );
+
+ unsigned char *(*pfnSetFatPVS) ( float *org );
+ unsigned char *(*pfnSetFatPAS) ( float *org );
+
+ int (*pfnCheckVisibility ) ( const edict_t *entity, unsigned char *pset );
+ void (*pfnDeltaSetField) ( struct delta_s *pFields, const char *fieldname );
+ void (*pfnDeltaUnsetField) ( struct delta_s *pFields, const char *fieldname );
+ void (*pfnDeltaAddEncoder) ( char *name, void (*conditionalencode)( struct delta_s *pFields, const unsigned char *from, const unsigned char *to ) );
+ int (*pfnGetCurrentPlayer) ( void );
+ int (*pfnCanSkipPlayer) ( const edict_t *player );
+ int (*pfnDeltaFindField) ( struct delta_s *pFields, const char *fieldname );
+ void (*pfnDeltaSetFieldByIndex) ( struct delta_s *pFields, int fieldNumber );
+ void (*pfnDeltaUnsetFieldByIndex)( struct delta_s *pFields, int fieldNumber );
+
+ void (*pfnSetGroupMask) ( int mask, int op );
+
+ int (*pfnCreateInstancedBaseline) ( int classname, struct entity_state_s *baseline );
+ void (*pfnCvar_DirectSet) ( struct cvar_s *var, char *value );
+
+ // 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
+ void (*pfnForceUnmodified) ( FORCE_TYPE type, float *mins, float *maxs, const char *filename );
+
+ void (*pfnGetPlayerStats) ( const edict_t *pClient, int *ping, int *packet_loss );
+
+ void (*pfnAddServerCommand) ( char *cmd_name, void (*function) (void) );
+
+ // For voice communications, set which clients hear eachother.
+ // NOTE: these functions take player entity indices (starting at 1).
+ qboolean (*pfnVoice_GetClientListening)(int iReceiver, int iSender);
+ qboolean (*pfnVoice_SetClientListening)(int iReceiver, int iSender, qboolean bListen);
+
+ const char *(*pfnGetPlayerAuthId) ( edict_t *e );
+} enginefuncs_t;
// ONLY ADD NEW FUNCTIONS TO THE END OF THIS STRUCT. INTERFACE VERSION IS FROZEN AT 138
+
// Passed to pfnKeyValue
typedef struct KeyValueData_s
{
-char *szClassName; // in: entity classname
-char *szKeyName; // in: name of key
-char *szValue; // in: value of key
-int32 fHandled; // out: DLL sets to true if key-value pair was understood
+ char *szClassName; // in: entity classname
+ char *szKeyName; // in: name of key
+ char *szValue; // in: value of key
+ long fHandled; // out: DLL sets to true if key-value pair was understood
} KeyValueData;
+
typedef struct
{
-char mapName[ 32 ];
-char landmarkName[ 32 ];
-edict_t *pentLandmark;
-vec3_t vecLandmarkOrigin;
+ char mapName[ 32 ];
+ char landmarkName[ 32 ];
+ edict_t *pentLandmark;
+ vec3_t vecLandmarkOrigin;
} LEVELLIST;
-#define MAX_LEVEL_CONNECTIONS 16 // These are encoded in the lower 16bits of ENTITYTABLE->flags
-typedef struct
+#define MAX_LEVEL_CONNECTIONS 16 // These are encoded in the lower 16bits of ENTITYTABLE->flags
+
+typedef struct
{
-int id; // Ordinal ID of this entity (used for entity <--> pointer conversions)
-edict_t *pent; // Pointer to the in-game entity
-int location; // Offset from the base data of this entity
-int size; // Byte size of this entity's data
-int flags; // This could be a short -- bit mask of transitions that this entity is in the PVS of
-string_t classname; // entity class name
+ int id; // Ordinal ID of this entity (used for entity <--> pointer conversions)
+ edict_t *pent; // Pointer to the in-game entity
+
+ int location; // Offset from the base data of this entity
+ int size; // Byte size of this entity's data
+ int flags; // This could be a short -- bit mask of transitions that this entity is in the PVS of
+ string_t classname; // entity class name
+
} ENTITYTABLE;
-#define FENTTABLE_PLAYER 0x80000000
-#define FENTTABLE_REMOVED 0x40000000
-#define FENTTABLE_MOVEABLE 0x20000000
-#define FENTTABLE_GLOBAL 0x10000000
+
+#define FENTTABLE_PLAYER 0x80000000
+#define FENTTABLE_REMOVED 0x40000000
+#define FENTTABLE_MOVEABLE 0x20000000
+#define FENTTABLE_GLOBAL 0x10000000
+
typedef struct saverestore_s SAVERESTOREDATA;
+
#ifdef _WIN32
-typedef
+typedef
#endif
struct saverestore_s
{
-char *pBaseData; // Start of all entity save data
-char *pCurrentData; // Current buffer pointer for sequential access
-int size; // Current data size
-int bufferSize; // Total space for data
-int tokenSize; // Size of the linear list of tokens
-int tokenCount; // Number of elements in the pTokens table
-char **pTokens; // Hash table of entity strings (sparse)
-int currentIndex; // Holds a global entity table ID
-int tableCount; // Number of elements in the entity table
-int connectionCount;// Number of elements in the levelList[]
-ENTITYTABLE *pTable; // Array of ENTITYTABLE elements (1 for each entity)
-LEVELLIST levelList[ MAX_LEVEL_CONNECTIONS ]; // List of connections from this level
-// smooth transition
-int fUseLandmark;
-char szLandmarkName[20];// landmark we'll spawn near in next level
-vec3_t vecLandmarkOffset;// for landmark transitions
-float time;
-char szCurrentMapName[32]; // To check global entities
-}
+ char *pBaseData; // Start of all entity save data
+ char *pCurrentData; // Current buffer pointer for sequential access
+ int size; // Current data size
+ int bufferSize; // Total space for data
+ int tokenSize; // Size of the linear list of tokens
+ int tokenCount; // Number of elements in the pTokens table
+ char **pTokens; // Hash table of entity strings (sparse)
+ int currentIndex; // Holds a global entity table ID
+ int tableCount; // Number of elements in the entity table
+ int connectionCount;// Number of elements in the levelList[]
+ ENTITYTABLE *pTable; // Array of ENTITYTABLE elements (1 for each entity)
+ LEVELLIST levelList[ MAX_LEVEL_CONNECTIONS ]; // List of connections from this level
+
+ // smooth transition
+ int fUseLandmark;
+ char szLandmarkName[20];// landmark we'll spawn near in next level
+ vec3_t vecLandmarkOffset;// for landmark transitions
+ float time;
+ char szCurrentMapName[32]; // To check global entities
+
+}
#ifdef _WIN32
-SAVERESTOREDATA
+SAVERESTOREDATA
#endif
;
+
typedef enum _fieldtypes
{
-FIELD_FLOAT = 0, // Any floating point value
-FIELD_STRING, // A string ID (return from ALLOC_STRING)
-FIELD_ENTITY, // An entity offset (EOFFSET)
-FIELD_CLASSPTR, // CBaseEntity *
-FIELD_EHANDLE, // Entity handle
-FIELD_EVARS, // EVARS *
-FIELD_EDICT, // edict_t *, or edict_t * (same thing)
-FIELD_VECTOR, // Any vector
-FIELD_POSITION_VECTOR, // A world coordinate (these are fixed up across level transitions automagically)
-FIELD_POINTER, // Arbitrary data pointer... to be removed, use an array of FIELD_CHARACTER
-FIELD_INTEGER, // Any integer or enum
-FIELD_FUNCTION, // A class function pointer (Think, Use, etc)
-FIELD_BOOLEAN, // boolean, implemented as an int, I may use this as a hint for compression
-FIELD_SHORT, // 2 byte integer
-FIELD_CHARACTER, // a byte
-FIELD_TIME, // a floating point time (these are fixed up automatically too!)
-FIELD_MODELNAME, // Engine string that is a model name (needs precache)
-FIELD_SOUNDNAME, // Engine string that is a sound name (needs precache)
-FIELD_TYPECOUNT, // MUST BE LAST
+ FIELD_FLOAT = 0, // Any floating point value
+ FIELD_STRING, // A string ID (return from ALLOC_STRING)
+ FIELD_ENTITY, // An entity offset (EOFFSET)
+ FIELD_CLASSPTR, // CBaseEntity *
+ FIELD_EHANDLE, // Entity handle
+ FIELD_EVARS, // EVARS *
+ FIELD_EDICT, // edict_t *, or edict_t * (same thing)
+ FIELD_VECTOR, // Any vector
+ FIELD_POSITION_VECTOR, // A world coordinate (these are fixed up across level transitions automagically)
+ FIELD_POINTER, // Arbitrary data pointer... to be removed, use an array of FIELD_CHARACTER
+ FIELD_INTEGER, // Any integer or enum
+ FIELD_FUNCTION, // A class function pointer (Think, Use, etc)
+ FIELD_BOOLEAN, // boolean, implemented as an int, I may use this as a hint for compression
+ FIELD_SHORT, // 2 byte integer
+ FIELD_CHARACTER, // a byte
+ FIELD_TIME, // a floating point time (these are fixed up automatically too!)
+ FIELD_MODELNAME, // Engine string that is a model name (needs precache)
+ FIELD_SOUNDNAME, // Engine string that is a sound name (needs precache)
+
+ FIELD_TYPECOUNT, // MUST BE LAST
} FIELDTYPE;
+
#ifndef offsetof
-#define offsetof(s,m) (size_t)&(((s *)0)->m)
+#define offsetof(s,m) (size_t)&(((s *)0)->m)
#endif
-#define _FIELD(type,name,fieldtype,count,flags) { fieldtype, #name, offsetof(type, name), count, flags }
-#define DEFINE_FIELD(type,name,fieldtype) _FIELD(type, name, fieldtype, 1, 0)
-#define DEFINE_ARRAY(type,name,fieldtype,count) _FIELD(type, name, fieldtype, count, 0)
-#define DEFINE_ENTITY_FIELD(name,fieldtype) _FIELD(entvars_t, name, fieldtype, 1, 0 )
-#define DEFINE_ENTITY_GLOBAL_FIELD(name,fieldtype) _FIELD(entvars_t, name, fieldtype, 1, FTYPEDESC_GLOBAL )
-#define DEFINE_GLOBAL_FIELD(type,name,fieldtype) _FIELD(type, name, fieldtype, 1, FTYPEDESC_GLOBAL )
-#define FTYPEDESC_GLOBAL 0x0001 // This field is masked for global entity save/restore
-typedef struct
+#define _FIELD(type,name,fieldtype,count,flags) { fieldtype, #name, offsetof(type, name), count, flags }
+#define DEFINE_FIELD(type,name,fieldtype) _FIELD(type, name, fieldtype, 1, 0)
+#define DEFINE_ARRAY(type,name,fieldtype,count) _FIELD(type, name, fieldtype, count, 0)
+#define DEFINE_ENTITY_FIELD(name,fieldtype) _FIELD(entvars_t, name, fieldtype, 1, 0 )
+#define DEFINE_ENTITY_GLOBAL_FIELD(name,fieldtype) _FIELD(entvars_t, name, fieldtype, 1, FTYPEDESC_GLOBAL )
+#define DEFINE_GLOBAL_FIELD(type,name,fieldtype) _FIELD(type, name, fieldtype, 1, FTYPEDESC_GLOBAL )
+
+
+#define FTYPEDESC_GLOBAL 0x0001 // This field is masked for global entity save/restore
+
+typedef struct
{
-FIELDTYPE fieldType;
-char *fieldName;
-int fieldOffset;
-short fieldSize;
-short flags;
+ FIELDTYPE fieldType;
+ char *fieldName;
+ int fieldOffset;
+ short fieldSize;
+ short flags;
} TYPEDESCRIPTION;
-#define ARRAYSIZE(p) (sizeof(p)/sizeof(p[0]))
-typedef struct
+
+#define ARRAYSIZE(p) (sizeof(p)/sizeof(p[0]))
+
+typedef struct
{
-// Initialize/shutdown the game (one-time call after loading of game .dll )
-void (*pfnGameInit) ( void );
-int (*pfnSpawn) ( edict_t *pent );
-void (*pfnThink) ( edict_t *pent );
-void (*pfnUse) ( edict_t *pentUsed, edict_t *pentOther );
-void (*pfnTouch) ( edict_t *pentTouched, edict_t *pentOther );
-void (*pfnBlocked) ( edict_t *pentBlocked, edict_t *pentOther );
-void (*pfnKeyValue) ( edict_t *pentKeyvalue, KeyValueData *pkvd );
-void (*pfnSave) ( edict_t *pent, SAVERESTOREDATA *pSaveData );
-int (*pfnRestore) ( edict_t *pent, SAVERESTOREDATA *pSaveData, int globalEntity );
-void (*pfnSetAbsBox) ( edict_t *pent );
-void (*pfnSaveWriteFields) ( SAVERESTOREDATA *, const char *, void *, TYPEDESCRIPTION *, int );
-void (*pfnSaveReadFields) ( SAVERESTOREDATA *, const char *, void *, TYPEDESCRIPTION *, int );
-void (*pfnSaveGlobalState) ( SAVERESTOREDATA * );
-void (*pfnRestoreGlobalState) ( SAVERESTOREDATA * );
-void (*pfnResetGlobalState) ( void );
-qboolean (*pfnClientConnect) ( edict_t *pEntity, const char *pszName, const char *pszAddress, char szRejectReason[ 128 ] );
-
-void (*pfnClientDisconnect) ( edict_t *pEntity );
-void (*pfnClientKill) ( edict_t *pEntity );
-void (*pfnClientPutInServer) ( edict_t *pEntity );
-void (*pfnClientCommand) ( edict_t *pEntity );
-void (*pfnClientUserInfoChanged)( edict_t *pEntity, char *infobuffer );
-void (*pfnServerActivate) ( edict_t *pEdictList, int edictCount, int clientMax );
-void (*pfnServerDeactivate) ( void );
-void (*pfnPlayerPreThink) ( edict_t *pEntity );
-void (*pfnPlayerPostThink) ( edict_t *pEntity );
-void (*pfnStartFrame) ( void );
-void (*pfnParmsNewLevel) ( void );
-void (*pfnParmsChangeLevel) ( void );
- // Returns string describing current .dll. E.g., TeamFotrress 2, Half-Life
-const char *(*pfnGetGameDescription)( void );
-// Notify dll about a player customization.
-void (*pfnPlayerCustomization) ( edict_t *pEntity, customization_t *pCustom );
-// Spectator funcs
-void (*pfnSpectatorConnect) ( edict_t *pEntity );
-void (*pfnSpectatorDisconnect) ( edict_t *pEntity );
-void (*pfnSpectatorThink) ( edict_t *pEntity );
-// Notify game .dll that engine is going to shut down. Allows mod authors to set a breakpoint.
-void (*pfnSys_Error) ( const char *error_string );
-void (*pfnPM_Move) ( struct playermove_s *ppmove, qboolean server );
-void (*pfnPM_Init) ( struct playermove_s *ppmove );
-char (*pfnPM_FindTextureType)( char *name );
-void (*pfnSetupVisibility)( struct edict_s *pViewEntity, struct edict_s *pClient, unsigned char **pvs, unsigned char **pas );
-void (*pfnUpdateClientData) ( const struct edict_s *ent, int sendweapons, struct clientdata_s *cd );
-int (*pfnAddToFullPack)( struct entity_state_s *state, int e, edict_t *ent, edict_t *host, int hostflags, int player, unsigned char *pSet );
-void (*pfnCreateBaseline) ( int player, int eindex, struct entity_state_s *baseline, struct edict_s *entity, int playermodelindex, vec3_t player_mins, vec3_t player_maxs );
-void (*pfnRegisterEncoders) ( void );
-int (*pfnGetWeaponData) ( struct edict_s *player, struct weapon_data_s *info );
-void (*pfnCmdStart) ( const edict_t *player, const struct usercmd_s *cmd, unsigned int random_seed );
-void (*pfnCmdEnd) ( const edict_t *player );
-// Return 1 if the packet is valid. Set response_buffer_size if you want to send a response packet. Incoming, it holds the max
-// size of the response_buffer, so you must zero it out if you choose not to respond.
-int (*pfnConnectionlessPacket ) ( const struct netadr_s *net_from, const char *args, char *response_buffer, int *response_buffer_size );
-// Enumerates player hulls. Returns 0 if the hull number doesn't exist, 1 otherwise
-int (*pfnGetHullBounds) ( int hullnumber, float *mins, float *maxs );
-// Create baselines for certain "unplaced" items.
-void (*pfnCreateInstancedBaselines) ( void );
-// One of the pfnForceUnmodified files failed the consistency check for the specified player
-// Return 0 to allow the client to continue, 1 to force immediate disconnection ( with an optional disconnect message of up to 256 characters )
-int (*pfnInconsistentFile)( const struct edict_s *player, const char *filename, char *disconnect_message );
-// The game .dll should return 1 if lag compensation should be allowed ( could also just set
-// the sv_unlag cvar.
-// Most games right now should return 0, until client-side weapon prediction code is written
-// and tested for them.
-int (*pfnAllowLagCompensation)( void );
+ // Initialize/shutdown the game (one-time call after loading of game .dll )
+ void (*pfnGameInit) ( void );
+ int (*pfnSpawn) ( edict_t *pent );
+ void (*pfnThink) ( edict_t *pent );
+ void (*pfnUse) ( edict_t *pentUsed, edict_t *pentOther );
+ void (*pfnTouch) ( edict_t *pentTouched, edict_t *pentOther );
+ void (*pfnBlocked) ( edict_t *pentBlocked, edict_t *pentOther );
+ void (*pfnKeyValue) ( edict_t *pentKeyvalue, KeyValueData *pkvd );
+ void (*pfnSave) ( edict_t *pent, SAVERESTOREDATA *pSaveData );
+ int (*pfnRestore) ( edict_t *pent, SAVERESTOREDATA *pSaveData, int globalEntity );
+ void (*pfnSetAbsBox) ( edict_t *pent );
+
+ void (*pfnSaveWriteFields) ( SAVERESTOREDATA *, const char *, void *, TYPEDESCRIPTION *, int );
+ void (*pfnSaveReadFields) ( SAVERESTOREDATA *, const char *, void *, TYPEDESCRIPTION *, int );
+
+ void (*pfnSaveGlobalState) ( SAVERESTOREDATA * );
+ void (*pfnRestoreGlobalState) ( SAVERESTOREDATA * );
+ void (*pfnResetGlobalState) ( void );
+
+ qboolean (*pfnClientConnect) ( edict_t *pEntity, const char *pszName, const char *pszAddress, char szRejectReason[ 128 ] );
+
+ void (*pfnClientDisconnect) ( edict_t *pEntity );
+ void (*pfnClientKill) ( edict_t *pEntity );
+ void (*pfnClientPutInServer) ( edict_t *pEntity );
+ void (*pfnClientCommand) ( edict_t *pEntity );
+ void (*pfnClientUserInfoChanged)( edict_t *pEntity, char *infobuffer );
+
+ void (*pfnServerActivate) ( edict_t *pEdictList, int edictCount, int clientMax );
+ void (*pfnServerDeactivate) ( void );
+
+ void (*pfnPlayerPreThink) ( edict_t *pEntity );
+ void (*pfnPlayerPostThink) ( edict_t *pEntity );
+
+ void (*pfnStartFrame) ( void );
+ void (*pfnParmsNewLevel) ( void );
+ void (*pfnParmsChangeLevel) ( void );
+
+ // Returns string describing current .dll. E.g., TeamFotrress 2, Half-Life
+ const char *(*pfnGetGameDescription)( void );
+
+ // Notify dll about a player customization.
+ void (*pfnPlayerCustomization) ( edict_t *pEntity, customization_t *pCustom );
+
+ // Spectator funcs
+ void (*pfnSpectatorConnect) ( edict_t *pEntity );
+ void (*pfnSpectatorDisconnect) ( edict_t *pEntity );
+ void (*pfnSpectatorThink) ( edict_t *pEntity );
+
+ // Notify game .dll that engine is going to shut down. Allows mod authors to set a breakpoint.
+ void (*pfnSys_Error) ( const char *error_string );
+
+ void (*pfnPM_Move) ( struct playermove_s *ppmove, qboolean server );
+ void (*pfnPM_Init) ( struct playermove_s *ppmove );
+ char (*pfnPM_FindTextureType)( char *name );
+ void (*pfnSetupVisibility)( struct edict_s *pViewEntity, struct edict_s *pClient, unsigned char **pvs, unsigned char **pas );
+ void (*pfnUpdateClientData) ( const struct edict_s *ent, int sendweapons, struct clientdata_s *cd );
+ int (*pfnAddToFullPack)( struct entity_state_s *state, int e, edict_t *ent, edict_t *host, int hostflags, int player, unsigned char *pSet );
+ void (*pfnCreateBaseline) ( int player, int eindex, struct entity_state_s *baseline, struct edict_s *entity, int playermodelindex, vec3_t player_mins, vec3_t player_maxs );
+ void (*pfnRegisterEncoders) ( void );
+ int (*pfnGetWeaponData) ( struct edict_s *player, struct weapon_data_s *info );
+
+ void (*pfnCmdStart) ( const edict_t *player, const struct usercmd_s *cmd, unsigned int random_seed );
+ void (*pfnCmdEnd) ( const edict_t *player );
+
+ // Return 1 if the packet is valid. Set response_buffer_size if you want to send a response packet. Incoming, it holds the max
+ // size of the response_buffer, so you must zero it out if you choose not to respond.
+ int (*pfnConnectionlessPacket ) ( const struct netadr_s *net_from, const char *args, char *response_buffer, int *response_buffer_size );
+
+ // Enumerates player hulls. Returns 0 if the hull number doesn't exist, 1 otherwise
+ int (*pfnGetHullBounds) ( int hullnumber, float *mins, float *maxs );
+
+ // Create baselines for certain "unplaced" items.
+ void (*pfnCreateInstancedBaselines) ( void );
+
+ // One of the pfnForceUnmodified files failed the consistency check for the specified player
+ // Return 0 to allow the client to continue, 1 to force immediate disconnection ( with an optional disconnect message of up to 256 characters )
+ int (*pfnInconsistentFile)( const struct edict_s *player, const char *filename, char *disconnect_message );
+
+ // The game .dll should return 1 if lag compensation should be allowed ( could also just set
+ // the sv_unlag cvar.
+ // Most games right now should return 0, until client-side weapon prediction code is written
+ // and tested for them.
+ int (*pfnAllowLagCompensation)( void );
} DLL_FUNCTIONS;
-extern DLL_FUNCTIONS gEntityInterface;
+
+extern DLL_FUNCTIONS gEntityInterface;
+
// Current version.
-#define NEW_DLL_FUNCTIONS_VERSION 1
+#define NEW_DLL_FUNCTIONS_VERSION 1
+
typedef struct
{
-// Called right before the object's memory is freed.
-// Calls its destructor.
-void (*pfnOnFreeEntPrivateData)(edict_t *pEnt);
-void (*pfnGameShutdown)(void);
-int (*pfnShouldCollide)( edict_t *pentTouched, edict_t *pentOther );
+ // Called right before the object's memory is freed.
+ // Calls its destructor.
+ void (*pfnOnFreeEntPrivateData)(edict_t *pEnt);
+ void (*pfnGameShutdown)(void);
+ int (*pfnShouldCollide)( edict_t *pentTouched, edict_t *pentOther );
} NEW_DLL_FUNCTIONS;
-typedef int (*NEW_DLL_FUNCTIONS_FN)( NEW_DLL_FUNCTIONS *pFunctionTable, int *interfaceVersion );
+typedef int (*NEW_DLL_FUNCTIONS_FN)( NEW_DLL_FUNCTIONS *pFunctionTable, int *interfaceVersion );
+
// Pointers will be null if the game DLL doesn't support this API.
-extern NEW_DLL_FUNCTIONS gNewDLLFunctions;
-typedef int (*APIFUNCTION)( DLL_FUNCTIONS *pFunctionTable, int interfaceVersion );
-typedef int (*APIFUNCTION2)( DLL_FUNCTIONS *pFunctionTable, int *interfaceVersion );
-#endif EIFACE_H
+extern NEW_DLL_FUNCTIONS gNewDLLFunctions;
+
+typedef int (*APIFUNCTION)( DLL_FUNCTIONS *pFunctionTable, int interfaceVersion );
+typedef int (*APIFUNCTION2)( DLL_FUNCTIONS *pFunctionTable, int *interfaceVersion );
+
+#endif /* EIFACE_H */
i can see most are only some lines offset, but all in all there is quite some difference (46kb) ...
cheers
sunny morning view from my balcony:
see our WIKI!
see our filebase!
Last edited by Onno Kreuzinger; 31-03-2004 at 01:00..
|
|
|
|
|
<-- He did it.
Status: Offline
Posts: 1,558
Join Date: Jan 2004
Location: Los Angeles, California, USA, North America, Earth, Solar System, Milky Way.
|
Re: CZ released!!! -
31-03-2004
the sdk on metamod.org dates back to 2002...
|
|
|
|
|
Member
Status: Offline
Posts: 512
Join Date: Feb 2004
Location: STL MO USA
|
Re: CZ released!!! -
31-03-2004
ok im stumped pmb
the new eiface.h (from the successfully unpacked gz file) is the same as the old one i have... wtf! >
sorry, im a little mad that it took me days to figure out how to unzip the linux sdk and its not even the right one.(?)
I downloaded:
hlsdk-2.3.tgz (which turned into .gz)
hl_sdk_v23.exe
both from metamod.org
the only difference is that the "multiplayer source" and "singleplayer source" directories have been renamed to "multiplayer" and "singleplayer" respectfully, as in says in http://metamod.org/files/sdk/hlsdk-2.3.txt I saw nothing about the changes that are included in your "current" sdk.
are you sure you got your "current" sdk from metamod.org? Can anyone provide me with a link to the current sdk?
Last edited by dead bwoy; 31-03-2004 at 02:18..
|
|
|
|
|
Roi de France
Status: Offline
Posts: 5,049
Join Date: Nov 2003
Location: 46°43'60N 0°43'0W 0.187A
|
Re: CZ released!!! -
31-03-2004
heck, wtf ? They changed the metamod SDK??? that's the only explanation I see ! Sorry for all that I said then
Memed, our SDK at bots-united is up to date AFAIK ? "We" should (we = the first one to log in at the server) perhaps make a release and publish it...
RACC home - Bots-United: beer, babies & bots (especially the latter)
"Learn to think by yourself, else others will do it for you."
|
|
|
|
|
Member
Status: Offline
Posts: 512
Join Date: Feb 2004
Location: STL MO USA
|
Re: CZ released!!! -
31-03-2004
so where should i check for the download?
lemme know and ill check till its there
|
|
|
|
|
Member
Status: Offline
Posts: 431
Join Date: Jan 2004
|
Re: CZ released!!! -
31-03-2004
If I remember correctly I'm using the original HL-SDK 2.3 with the official patch from VALVe which included the new eiface.h, archtype.h and Sequence.h.
I also tried other variants of the HL-SDK but always failed because of some problems...
|
|
|
|
|
aka: memed / Server Admin
Status: Offline
Posts: 705
Join Date: Jan 2004
Location: germany
|
Re: CZ released!!! -
31-03-2004
A download of the version first used to make the hpb_bot and realbot wip for linux is allready here:
[removed, updated see below]
/edit
i made new releases, there are now two downloads:
one archive containing only the hlsdk-2.3:
BU-hl-sdk-2.3.tar.bz2
and a second archive containing the hlsdk-2.3, metamod sources and hpb_bot sources:
BU-hl-bot-build-example.tar.bz2
The fist pack is the hlsdk used internal by the bots united server, it should work for windows and linux, but i suggest to link only against the multiplayer tree, for me the singleplayer tree does not look fully updated.
The second pack is suitable to compile metamod and hpb_bot on it's own, a perfect startpoint to develop bots in linux and probably also for windows. The hpb_bot code is from march 3., i assume that's the lates version provided by Pierre-Marie.
Small readmes are included in both archives, if any questions arise feel fee to start a FAQ in the wiki
(section server wiki or developer wiki)
edit/
cheers memed
sunny morning view from my balcony:
see our WIKI!
see our filebase!
Last edited by Onno Kreuzinger; 31-03-2004 at 16:27..
|
|
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
|
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
Powered by vBulletin® Version 3.8.2 Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
vBulletin Skin developed by: vBStyles.com
|
|