.:: Bots United ::.  
filebase forums discord server github wiki web
cubebot epodbot fritzbot gravebot grogbot hpbbot ivpbot jkbotti joebot
meanmod podbotmm racc rcbot realbot sandbot shrikebot soulfathermaps yapb

Go Back   .:: Bots United ::. > YappA > Offtopic
Offtopic Just anything. You have time to waste ? Prove it !!!

Reply
 
Thread Tools
Re: CZ released!!!
Old
  (#41)
dead bwoy
Member
 
dead bwoy's Avatar
 
Status: Offline
Posts: 512
Join Date: Feb 2004
Location: STL MO USA
Default 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.
  
Reply With Quote
Re: CZ released!!!
Old
  (#42)
Onno Kreuzinger
aka: memed / Server Admin
 
Onno Kreuzinger's Avatar
 
Status: Offline
Posts: 705
Join Date: Jan 2004
Location: germany
Default 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..
  
Reply With Quote
Re: CZ released!!!
Old
  (#43)
dead bwoy
Member
 
dead bwoy's Avatar
 
Status: Offline
Posts: 512
Join Date: Feb 2004
Location: STL MO USA
Default 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..
  
Reply With Quote
Re: CZ released!!!
Old
  (#44)
Onno Kreuzinger
aka: memed / Server Admin
 
Onno Kreuzinger's Avatar
 
Status: Offline
Posts: 705
Join Date: Jan 2004
Location: germany
Default 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..
  
Reply With Quote
Re: CZ released!!!
Old
  (#45)
sPlOrYgOn
<-- He did it.
 
sPlOrYgOn's Avatar
 
Status: Offline
Posts: 1,558
Join Date: Jan 2004
Location: Los Angeles, California, USA, North America, Earth, Solar System, Milky Way.
Default Re: CZ released!!! - 31-03-2004

the sdk on metamod.org dates back to 2002...
  
Reply With Quote
Re: CZ released!!!
Old
  (#46)
dead bwoy
Member
 
dead bwoy's Avatar
 
Status: Offline
Posts: 512
Join Date: Feb 2004
Location: STL MO USA
Default 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..
  
Reply With Quote
Re: CZ released!!!
Old
  (#47)
Pierre-Marie Baty
Roi de France
 
Pierre-Marie Baty's Avatar
 
Status: Offline
Posts: 5,049
Join Date: Nov 2003
Location: 46°43'60N 0°43'0W 0.187A
Default 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."
  
Reply With Quote
Re: CZ released!!!
Old
  (#48)
dead bwoy
Member
 
dead bwoy's Avatar
 
Status: Offline
Posts: 512
Join Date: Feb 2004
Location: STL MO USA
Default Re: CZ released!!! - 31-03-2004

so where should i check for the download?
lemme know and ill check till its there
  
Reply With Quote
Re: CZ released!!!
Old
  (#49)
Terran
Member
 
Terran's Avatar
 
Status: Offline
Posts: 431
Join Date: Jan 2004
Default 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...
  
Reply With Quote
Re: CZ released!!!
Old
  (#50)
Onno Kreuzinger
aka: memed / Server Admin
 
Onno Kreuzinger's Avatar
 
Status: Offline
Posts: 705
Join Date: Jan 2004
Location: germany
Default 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..
  
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump



Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
vBulletin Skin developed by: vBStyles.com