doom3-gpl
Doom 3 GPL source release
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Game.h
Go to the documentation of this file.
1 /*
2 ===========================================================================
3 
4 Doom 3 GPL Source Code
5 Copyright (C) 1999-2011 id Software LLC, a ZeniMax Media company.
6 
7 This file is part of the Doom 3 GPL Source Code (?Doom 3 Source Code?).
8 
9 Doom 3 Source Code is free software: you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation, either version 3 of the License, or
12 (at your option) any later version.
13 
14 Doom 3 Source Code is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18 
19 You should have received a copy of the GNU General Public License
20 along with Doom 3 Source Code. If not, see <http://www.gnu.org/licenses/>.
21 
22 In addition, the Doom 3 Source Code is also subject to certain additional terms. You should have received a copy of these additional terms immediately following the terms and conditions of the GNU General Public License which accompanied the Doom 3 Source Code. If not, please request a copy in writing from id Software at the address below.
23 
24 If you have questions concerning this license or the applicable additional terms, you may contact in writing id Software LLC, c/o ZeniMax Media Inc., Suite 120, Rockville, Maryland 20850 USA.
25 
26 ===========================================================================
27 */
28 
29 #ifndef __GAME_H__
30 #define __GAME_H__
31 
32 /*
33 ===============================================================================
34 
35  Public game interface with methods to run the game.
36 
37 ===============================================================================
38 */
39 
40 // default scripts
41 #define SCRIPT_DEFAULTDEFS "script/doom_defs.script"
42 #define SCRIPT_DEFAULT "script/doom_main.script"
43 #define SCRIPT_DEFAULTFUNC "doom_main"
44 
45 typedef struct {
46  char sessionCommand[MAX_STRING_CHARS]; // "map", "disconnect", "victory", etc
47  int consistencyHash; // used to check for network game divergence
48  int health;
49  int heartRate;
50  int stamina;
51  int combat;
52  bool syncNextGameFrame; // used when cinematics are skipped to prevent session from simulating several game frames to
53  // keep the game time in sync with real time
54 } gameReturn_t;
55 
56 typedef enum {
57  ALLOW_YES = 0,
58  ALLOW_BADPASS, // core will prompt for password and connect again
59  ALLOW_NOTYET, // core will wait with transmitted message
60  ALLOW_NO // core will abort with transmitted message
61 } allowReply_t;
62 
63 typedef enum {
64  ESC_IGNORE = 0, // do nothing
65  ESC_MAIN, // start main menu GUI
66  ESC_GUI // set an explicit GUI
67 } escReply_t;
68 
69 #ifdef _D3XP
70 #define TIME_GROUP1 0
71 #define TIME_GROUP2 1
72 #endif
73 
74 class idGame {
75 public:
76  virtual ~idGame() {}
77 
78  // Initialize the game for the first time.
79  virtual void Init( void ) = 0;
80 
81  // Shut down the entire game.
82  virtual void Shutdown( void ) = 0;
83 
84  // Set the local client number. Distinguishes listen ( == 0 ) / dedicated ( == -1 )
85  virtual void SetLocalClient( int clientNum ) = 0;
86 
87  // Sets the user info for a client.
88  // if canModify is true, the game can modify the user info in the returned dictionary pointer, server will forward the change back
89  // canModify is never true on network client
90  virtual const idDict * SetUserInfo( int clientNum, const idDict &userInfo, bool isClient, bool canModify ) = 0;
91 
92  // Retrieve the game's userInfo dict for a client.
93  virtual const idDict * GetUserInfo( int clientNum ) = 0;
94 
95  // The game gets a chance to alter userinfo before they are emitted to server.
96  virtual void ThrottleUserInfo( void ) = 0;
97 
98  // Sets the serverinfo at map loads and when it changes.
99  virtual void SetServerInfo( const idDict &serverInfo ) = 0;
100 
101  // The session calls this before moving the single player game to a new level.
102  virtual const idDict & GetPersistentPlayerInfo( int clientNum ) = 0;
103 
104  // The session calls this right before a new level is loaded.
105  virtual void SetPersistentPlayerInfo( int clientNum, const idDict &playerInfo ) = 0;
106 
107  // Loads a map and spawns all the entities.
108  virtual void InitFromNewMap( const char *mapName, idRenderWorld *renderWorld, idSoundWorld *soundWorld, bool isServer, bool isClient, int randseed ) = 0;
109 
110  // Loads a map from a savegame file.
111  virtual bool InitFromSaveGame( const char *mapName, idRenderWorld *renderWorld, idSoundWorld *soundWorld, idFile *saveGameFile ) = 0;
112 
113  // Saves the current game state, the session may have written some data to the file already.
114  virtual void SaveGame( idFile *saveGameFile ) = 0;
115 
116  // Shut down the current map.
117  virtual void MapShutdown( void ) = 0;
118 
119  // Caches media referenced from in key/value pairs in the given dictionary.
120  virtual void CacheDictionaryMedia( const idDict *dict ) = 0;
121 
122  // Spawns the player entity to be used by the client.
123  virtual void SpawnPlayer( int clientNum ) = 0;
124 
125  // Runs a game frame, may return a session command for level changing, etc
126  virtual gameReturn_t RunFrame( const usercmd_t *clientCmds ) = 0;
127 
128  // Makes rendering and sound system calls to display for a given clientNum.
129  virtual bool Draw( int clientNum ) = 0;
130 
131  // Let the game do it's own UI when ESCAPE is used
132  virtual escReply_t HandleESC( idUserInterface **gui ) = 0;
133 
134  // get the games menu if appropriate ( multiplayer )
135  virtual idUserInterface * StartMenu() = 0;
136 
137  // When the game is running it's own UI fullscreen, GUI commands are passed through here
138  // return NULL once the fullscreen UI mode should stop, or "main" to go to main menu
139  virtual const char * HandleGuiCommands( const char *menuCommand ) = 0;
140 
141  // main menu commands not caught in the engine are passed here
142  virtual void HandleMainMenuCommands( const char *menuCommand, idUserInterface *gui ) = 0;
143 
144  // Early check to deny connect.
145  virtual allowReply_t ServerAllowClient( int numClients, const char *IP, const char *guid, const char *password, char reason[MAX_STRING_CHARS] ) = 0;
146 
147  // Connects a client.
148  virtual void ServerClientConnect( int clientNum, const char *guid ) = 0;
149 
150  // Spawns the player entity to be used by the client.
151  virtual void ServerClientBegin( int clientNum ) = 0;
152 
153  // Disconnects a client and removes the player entity from the game.
154  virtual void ServerClientDisconnect( int clientNum ) = 0;
155 
156  // Writes initial reliable messages a client needs to recieve when first joining the game.
157  virtual void ServerWriteInitialReliableMessages( int clientNum ) = 0;
158 
159  // Writes a snapshot of the server game state for the given client.
160  virtual void ServerWriteSnapshot( int clientNum, int sequence, idBitMsg &msg, byte *clientInPVS, int numPVSClients ) = 0;
161 
162  // Patches the network entity states at the server with a snapshot for the given client.
163  virtual bool ServerApplySnapshot( int clientNum, int sequence ) = 0;
164 
165  // Processes a reliable message from a client.
166  virtual void ServerProcessReliableMessage( int clientNum, const idBitMsg &msg ) = 0;
167 
168  // Reads a snapshot and updates the client game state.
169  virtual void ClientReadSnapshot( int clientNum, int sequence, const int gameFrame, const int gameTime, const int dupeUsercmds, const int aheadOfServer, const idBitMsg &msg ) = 0;
170 
171  // Patches the network entity states at the client with a snapshot.
172  virtual bool ClientApplySnapshot( int clientNum, int sequence ) = 0;
173 
174  // Processes a reliable message from the server.
175  virtual void ClientProcessReliableMessage( int clientNum, const idBitMsg &msg ) = 0;
176 
177  // Runs prediction on entities at the client.
178  virtual gameReturn_t ClientPrediction( int clientNum, const usercmd_t *clientCmds, bool lastPredictFrame ) = 0;
179 
180  // Used to manage divergent time-lines
181  virtual void SelectTimeGroup( int timeGroup ) = 0;
182  virtual int GetTimeGroupTime( int timeGroup ) = 0;
183 
184  virtual void GetBestGameType( const char* map, const char* gametype, char buf[ MAX_STRING_CHARS ] ) = 0;
185 
186  // Returns a summary of stats for a given client
187  virtual void GetClientStats( int clientNum, char *data, const int len ) = 0;
188 
189  // Switch a player to a particular team
190  virtual void SwitchTeam( int clientNum, int team ) = 0;
191 
192  virtual bool DownloadRequest( const char *IP, const char *guid, const char *paks, char urls[ MAX_STRING_CHARS ] ) = 0;
193 
194  virtual void GetMapLoadingGUI( char gui[ MAX_STRING_CHARS ] ) = 0;
195 };
196 
197 extern idGame * game;
198 
199 
200 /*
201 ===============================================================================
202 
203  Public game interface with methods for in-game editing.
204 
205 ===============================================================================
206 */
207 
208 typedef struct {
209  idSoundEmitter * referenceSound; // this is the interface to the sound system, created
210  // with idSoundWorld::AllocSoundEmitter() when needed
212  int listenerId; // SSF_PRIVATE_SOUND only plays if == listenerId from PlaceListener
213  // no spatialization will be performed if == listenerID
214  const idSoundShader * shader; // this really shouldn't be here, it is a holdover from single channel behavior
215  float diversity; // 0.0 to 1.0 value used to select which
216  // samples in a multi-sample list from the shader are used
217  bool waitfortrigger; // don't start it at spawn time
218  soundShaderParms_t parms; // override volume, flags, etc
219 } refSound_t;
220 
221 enum {
227 };
228 
229 class idEntity;
230 class idMD5Anim;
231 
232 // FIXME: this interface needs to be reworked but it properly separates code for the time being
233 class idGameEdit {
234 public:
235  virtual ~idGameEdit( void ) {}
236 
237  // These are the canonical idDict to parameter parsing routines used by both the game and tools.
238  virtual void ParseSpawnArgsToRenderLight( const idDict *args, renderLight_t *renderLight );
239  virtual void ParseSpawnArgsToRenderEntity( const idDict *args, renderEntity_t *renderEntity );
240  virtual void ParseSpawnArgsToRefSound( const idDict *args, refSound_t *refSound );
241 
242  // Animation system calls for non-game based skeletal rendering.
243  virtual idRenderModel * ANIM_GetModelFromEntityDef( const char *classname );
244  virtual const idVec3 &ANIM_GetModelOffsetFromEntityDef( const char *classname );
245  virtual idRenderModel * ANIM_GetModelFromEntityDef( const idDict *args );
246  virtual idRenderModel * ANIM_GetModelFromName( const char *modelName );
247  virtual const idMD5Anim * ANIM_GetAnimFromEntityDef( const char *classname, const char *animname );
248  virtual int ANIM_GetNumAnimsFromEntityDef( const idDict *args );
249  virtual const char * ANIM_GetAnimNameFromEntityDef( const idDict *args, int animNum );
250  virtual const idMD5Anim * ANIM_GetAnim( const char *fileName );
251  virtual int ANIM_GetLength( const idMD5Anim *anim );
252  virtual int ANIM_GetNumFrames( const idMD5Anim *anim );
253  virtual void ANIM_CreateAnimFrame( const idRenderModel *model, const idMD5Anim *anim, int numJoints, idJointMat *frame, int time, const idVec3 &offset, bool remove_origin_offset );
254  virtual idRenderModel * ANIM_CreateMeshForAnim( idRenderModel *model, const char *classname, const char *animname, int frame, bool remove_origin_offset );
255 
256  // Articulated Figure calls for AF editor and Radiant.
257  virtual bool AF_SpawnEntity( const char *fileName );
258  virtual void AF_UpdateEntities( const char *fileName );
259  virtual void AF_UndoChanges( void );
260  virtual idRenderModel * AF_CreateMesh( const idDict &args, idVec3 &meshOrigin, idMat3 &meshAxis, bool &poseIsSet );
261 
262 
263  // Entity selection.
264  virtual void ClearEntitySelection( void );
265  virtual int GetSelectedEntities( idEntity *list[], int max );
266  virtual void AddSelectedEntity( idEntity *ent );
267 
268  // Selection methods
269  virtual void TriggerSelected();
270 
271  // Entity defs and spawning.
272  virtual const idDict * FindEntityDefDict( const char *name, bool makeDefault = true ) const;
273  virtual void SpawnEntityDef( const idDict &args, idEntity **ent );
274  virtual idEntity * FindEntity( const char *name ) const;
275  virtual const char * GetUniqueEntityName( const char *classname ) const;
276 
277  // Entity methods.
278  virtual void EntityGetOrigin( idEntity *ent, idVec3 &org ) const;
279  virtual void EntityGetAxis( idEntity *ent, idMat3 &axis ) const;
280  virtual void EntitySetOrigin( idEntity *ent, const idVec3 &org );
281  virtual void EntitySetAxis( idEntity *ent, const idMat3 &axis );
282  virtual void EntityTranslate( idEntity *ent, const idVec3 &org );
283  virtual const idDict * EntityGetSpawnArgs( idEntity *ent ) const;
284  virtual void EntityUpdateChangeableSpawnArgs( idEntity *ent, const idDict *dict );
285  virtual void EntityChangeSpawnArgs( idEntity *ent, const idDict *newArgs );
286  virtual void EntityUpdateVisuals( idEntity *ent );
287  virtual void EntitySetModel( idEntity *ent, const char *val );
288  virtual void EntityStopSound( idEntity *ent );
289  virtual void EntityDelete( idEntity *ent );
290  virtual void EntitySetColor( idEntity *ent, const idVec3 color );
291 
292  // Player methods.
293  virtual bool PlayerIsValid() const;
294  virtual void PlayerGetOrigin( idVec3 &org ) const;
295  virtual void PlayerGetAxis( idMat3 &axis ) const;
296  virtual void PlayerGetViewAngles( idAngles &angles ) const;
297  virtual void PlayerGetEyePosition( idVec3 &org ) const;
298 
299  // In game map editing support.
300  virtual const idDict * MapGetEntityDict( const char *name ) const;
301  virtual void MapSave( const char *path = NULL ) const;
302  virtual void MapSetEntityKeyVal( const char *name, const char *key, const char *val ) const ;
303  virtual void MapCopyDictToEntity( const char *name, const idDict *dict ) const;
304  virtual int MapGetUniqueMatchingKeyVals( const char *key, const char *list[], const int max ) const;
305  virtual void MapAddEntity( const idDict *dict ) const;
306  virtual int MapGetEntitiesMatchingClassWithString( const char *classname, const char *match, const char *list[], const int max ) const;
307  virtual void MapRemoveEntity( const char *name ) const;
308  virtual void MapEntityTranslate( const char *name, const idVec3 &v ) const;
309 
310 };
311 
312 extern idGameEdit * gameEdit;
313 
314 
315 /*
316 ===============================================================================
317 
318  Game API.
319 
320 ===============================================================================
321 */
322 
323 const int GAME_API_VERSION = 8;
324 
325 typedef struct {
326 
327  int version; // API version
328  idSys * sys; // non-portable system services
329  idCommon * common; // common
330  idCmdSystem * cmdSystem; // console command system
331  idCVarSystem * cvarSystem; // console variable system
332  idFileSystem * fileSystem; // file system
333  idNetworkSystem * networkSystem; // network system
334  idRenderSystem * renderSystem; // render system
335  idSoundSystem * soundSystem; // sound system
336  idRenderModelManager * renderModelManager; // render model manager
337  idUserInterfaceManager * uiManager; // user interface manager
338  idDeclManager * declManager; // declaration manager
339  idAASFileManager * AASFileManager; // AAS file manager
340  idCollisionModelManager * collisionModelManager; // collision model manager
341 
342 } gameImport_t;
343 
344 typedef struct {
345 
346  int version; // API version
347  idGame * game; // interface to run the game
348  idGameEdit * gameEdit; // interface for in-game editing
349 
350 } gameExport_t;
351 
352 extern "C" {
353 typedef gameExport_t * (*GetGameAPI_t)( gameImport_t *import );
354 }
355 
356 #endif /* !__GAME_H__ */
virtual void EntityUpdateChangeableSpawnArgs(idEntity *ent, const idDict *dict)
Definition: GameEdit.cpp:864
Definition: Game.h:65
byte color[4]
Definition: MegaTexture.cpp:54
virtual void GetBestGameType(const char *map, const char *gametype, char buf[MAX_STRING_CHARS])=0
idNetworkSystem * networkSystem
Definition: Game.h:333
virtual const idDict * SetUserInfo(int clientNum, const idDict &userInfo, bool isClient, bool canModify)=0
virtual void MapAddEntity(const idDict *dict) const
Definition: GameEdit.cpp:1070
virtual void AF_UpdateEntities(const char *fileName)
Definition: AFEntity.cpp:2856
virtual void EntitySetColor(idEntity *ent, const idVec3 color)
Definition: GameEdit.cpp:830
bool waitfortrigger
Definition: Game.h:217
virtual void ServerClientDisconnect(int clientNum)=0
virtual void ServerWriteInitialReliableMessages(int clientNum)=0
virtual ~idGame()
Definition: Game.h:76
int stamina
Definition: Game.h:50
int health
Definition: Game.h:48
idRenderSystem * renderSystem
Definition: Game.h:334
virtual idRenderModel * ANIM_CreateMeshForAnim(idRenderModel *model, const char *classname, const char *animname, int frame, bool remove_origin_offset)
virtual void MapRemoveEntity(const char *name) const
Definition: GameEdit.cpp:1084
virtual void AF_UndoChanges(void)
Definition: AFEntity.cpp:2881
const GLdouble * v
Definition: glext.h:2936
virtual void EntityTranslate(idEntity *ent, const idVec3 &org)
Definition: GameEdit.cpp:841
virtual int ANIM_GetNumAnimsFromEntityDef(const idDict *args)
virtual void CacheDictionaryMedia(const idDict *dict)=0
virtual void Shutdown(void)=0
idDeclManager * declManager
Definition: Game.h:338
virtual void ServerClientBegin(int clientNum)=0
idCmdSystem * cmdSystem
Definition: Game.h:330
int consistencyHash
Definition: Game.h:47
char * urls[]
Definition: multithread.c:19
virtual void EntitySetAxis(idEntity *ent, const idMat3 &axis)
Definition: GameEdit.cpp:819
virtual void GetMapLoadingGUI(char gui[MAX_STRING_CHARS])=0
virtual const char * GetUniqueEntityName(const char *classname) const
Definition: GameEdit.cpp:764
virtual void SpawnPlayer(int clientNum)=0
virtual idUserInterface * StartMenu()=0
virtual ~idGameEdit(void)
Definition: Game.h:235
virtual void MapShutdown(void)=0
virtual void EntityStopSound(idEntity *ent)
Definition: GameEdit.cpp:917
int version
Definition: Game.h:327
virtual allowReply_t ServerAllowClient(int numClients, const char *IP, const char *guid, const char *password, char reason[MAX_STRING_CHARS])=0
virtual void PlayerGetOrigin(idVec3 &org) const
Definition: GameEdit.cpp:946
virtual void TriggerSelected()
Definition: GameEdit.cpp:696
int combat
Definition: Game.h:51
virtual void SetServerInfo(const idDict &serverInfo)=0
Definition: Vector.h:316
Definition: Game.h:57
idSoundSystem * soundSystem
Definition: Game.h:335
int version
Definition: Game.h:346
virtual escReply_t HandleESC(idUserInterface **gui)=0
virtual const idDict & GetPersistentPlayerInfo(int clientNum)=0
virtual const char * HandleGuiCommands(const char *menuCommand)=0
idSys * sys
Definition: Game.h:328
int listenerId
Definition: Game.h:212
Definition: Game.h:60
virtual void Init(void)=0
GLenum GLsizei len
Definition: glext.h:3472
idFileSystem * fileSystem
Definition: Game.h:332
GLintptr offset
Definition: glext.h:3113
virtual void ClientProcessReliableMessage(int clientNum, const idBitMsg &msg)=0
idAASFileManager * AASFileManager
Definition: Game.h:339
virtual void ANIM_CreateAnimFrame(const idRenderModel *model, const idMD5Anim *anim, int numJoints, idJointMat *frame, int time, const idVec3 &offset, bool remove_origin_offset)
virtual gameReturn_t ClientPrediction(int clientNum, const usercmd_t *clientCmds, bool lastPredictFrame)=0
virtual void SetPersistentPlayerInfo(int clientNum, const idDict &playerInfo)=0
virtual const char * ANIM_GetAnimNameFromEntityDef(const idDict *args, int animNum)
idGameEdit * gameEdit
Definition: GameEdit.cpp:668
virtual const idDict * FindEntityDefDict(const char *name, bool makeDefault=true) const
Definition: GameEdit.cpp:735
idGameEdit * gameEdit
Definition: Game.h:348
virtual void ServerClientConnect(int clientNum, const char *guid)=0
Definition: File.h:50
virtual void MapCopyDictToEntity(const char *name, const idDict *dict) const
Definition: GameEdit.cpp:1026
virtual void MapSetEntityKeyVal(const char *name, const char *key, const char *val) const
Definition: GameEdit.cpp:1011
virtual void EntityGetAxis(idEntity *ent, idMat3 &axis) const
Definition: GameEdit.cpp:797
virtual void PlayerGetEyePosition(idVec3 &org) const
Definition: GameEdit.cpp:973
virtual const idDict * GetUserInfo(int clientNum)=0
#define MAX_STRING_CHARS
Definition: Lib.h:95
idSoundEmitter * referenceSound
Definition: Game.h:209
virtual void SetLocalClient(int clientNum)=0
virtual bool Draw(int clientNum)=0
virtual void MapSave(const char *path=NULL) const
Definition: GameEdit.cpp:999
virtual bool InitFromSaveGame(const char *mapName, idRenderWorld *renderWorld, idSoundWorld *soundWorld, idFile *saveGameFile)=0
virtual void PlayerGetViewAngles(idAngles &angles) const
Definition: GameEdit.cpp:964
Definition: Dict.h:65
idVec3 origin
Definition: Game.h:211
#define NULL
Definition: Lib.h:88
virtual void EntityDelete(idEntity *ent)
Definition: GameEdit.cpp:928
GLsizei GLsizei GLenum GLenum const GLvoid * data
Definition: glext.h:2853
virtual void AddSelectedEntity(idEntity *ent)
Definition: GameEdit.cpp:724
virtual void PlayerGetAxis(idMat3 &axis) const
Definition: GameEdit.cpp:955
virtual gameReturn_t RunFrame(const usercmd_t *clientCmds)=0
const char * path
Definition: sws.c:117
virtual idRenderModel * ANIM_GetModelFromName(const char *modelName)
virtual idRenderModel * AF_CreateMesh(const idDict &args, idVec3 &meshOrigin, idMat3 &meshAxis, bool &poseIsSet)
Definition: AFEntity.cpp:2956
virtual int ANIM_GetNumFrames(const idMD5Anim *anim)
const idSoundShader * shader
Definition: Game.h:214
idUserInterfaceManager * uiManager
Definition: Game.h:337
virtual const idMD5Anim * ANIM_GetAnimFromEntityDef(const char *classname, const char *animname)
virtual int GetSelectedEntities(idEntity *list[], int max)
Definition: GameEdit.cpp:676
virtual void ThrottleUserInfo(void)=0
virtual void EntitySetModel(idEntity *ent, const char *val)
Definition: GameEdit.cpp:905
Definition: Matrix.h:333
idRenderModelManager * renderModelManager
Definition: Game.h:336
Definition: Game.h:66
virtual void EntitySetOrigin(idEntity *ent, const idVec3 &org)
Definition: GameEdit.cpp:808
virtual void InitFromNewMap(const char *mapName, idRenderWorld *renderWorld, idSoundWorld *soundWorld, bool isServer, bool isClient, int randseed)=0
soundShaderParms_t parms
Definition: Game.h:218
unsigned char byte
Definition: Lib.h:75
bool syncNextGameFrame
Definition: Game.h:52
virtual bool AF_SpawnEntity(const char *fileName)
Definition: AFEntity.cpp:2806
virtual int ANIM_GetLength(const idMD5Anim *anim)
const GLcharARB * name
Definition: glext.h:3629
idCommon * common
Definition: Game.h:329
escReply_t
Definition: Game.h:63
virtual int MapGetEntitiesMatchingClassWithString(const char *classname, const char *match, const char *list[], const int max) const
Definition: GameEdit.cpp:1100
virtual void ServerWriteSnapshot(int clientNum, int sequence, idBitMsg &msg, byte *clientInPVS, int numPVSClients)=0
virtual const idVec3 & ANIM_GetModelOffsetFromEntityDef(const char *classname)
virtual bool PlayerIsValid() const
Definition: GameEdit.cpp:937
idGame * game
Definition: Game.h:347
virtual void ParseSpawnArgsToRenderLight(const idDict *args, renderLight_t *renderLight)
Definition: Light.cpp:80
virtual const idDict * MapGetEntityDict(const char *name) const
Definition: GameEdit.cpp:983
virtual void ParseSpawnArgsToRenderEntity(const idDict *args, renderEntity_t *renderEntity)
Definition: Entity.cpp:229
virtual const idMD5Anim * ANIM_GetAnim(const char *fileName)
virtual void ClearEntitySelection(void)
Definition: GameEdit.cpp:710
virtual void EntityGetOrigin(idEntity *ent, idVec3 &org) const
Definition: GameEdit.cpp:786
virtual void SpawnEntityDef(const idDict &args, idEntity **ent)
Definition: GameEdit.cpp:744
virtual void SwitchTeam(int clientNum, int team)=0
virtual void GetClientStats(int clientNum, char *data, const int len)=0
idCVarSystem * cvarSystem
Definition: Game.h:331
idGame * game
Definition: Game_local.cpp:65
virtual const idDict * EntityGetSpawnArgs(idEntity *ent) const
Definition: GameEdit.cpp:852
Definition: Game.h:74
virtual void ParseSpawnArgsToRefSound(const idDict *args, refSound_t *refSound)
Definition: Entity.cpp:324
float diversity
Definition: Game.h:215
virtual int GetTimeGroupTime(int timeGroup)=0
virtual void ServerProcessReliableMessage(int clientNum, const idBitMsg &msg)=0
const int GAME_API_VERSION
Definition: Game.h:323
allowReply_t
Definition: Game.h:56
virtual void ClientReadSnapshot(int clientNum, int sequence, const int gameFrame, const int gameTime, const int dupeUsercmds, const int aheadOfServer, const idBitMsg &msg)=0
#define max(x, y)
Definition: os.h:70
virtual idRenderModel * ANIM_GetModelFromEntityDef(const char *classname)
virtual bool ClientApplySnapshot(int clientNum, int sequence)=0
virtual void EntityChangeSpawnArgs(idEntity *ent, const idDict *newArgs)
Definition: GameEdit.cpp:875
idCVar password("password","", CVAR_GAME|CVAR_NOCHEAT,"client password used when connecting")
virtual bool DownloadRequest(const char *IP, const char *guid, const char *paks, char urls[MAX_STRING_CHARS])=0
virtual void SelectTimeGroup(int timeGroup)=0
virtual bool ServerApplySnapshot(int clientNum, int sequence)=0
virtual void HandleMainMenuCommands(const char *menuCommand, idUserInterface *gui)=0
virtual idEntity * FindEntity(const char *name) const
Definition: GameEdit.cpp:753
virtual void SaveGame(idFile *saveGameFile)=0
virtual void MapEntityTranslate(const char *name, const idVec3 &v) const
Definition: GameEdit.cpp:1131
idCollisionModelManager * collisionModelManager
Definition: Game.h:340
int heartRate
Definition: Game.h:49
virtual int MapGetUniqueMatchingKeyVals(const char *key, const char *list[], const int max) const
Definition: GameEdit.cpp:1048
virtual void EntityUpdateVisuals(idEntity *ent)
Definition: GameEdit.cpp:894