home *** CD-ROM | disk | FTP | other *** search
- /* Emacs style mode select -*- C++ -*- */
- /* ----------------------------------------------------------------------------- */
- /* */
- /* $Id:$ */
- /* */
- /* Copyright (C) 1993-1996 by id Software, Inc. */
- /* */
- /* This source is available for distribution and/or modification */
- /* only under the terms of the DOOM Source Code License as */
- /* published by id Software. All rights reserved. */
- /* */
- /* The source is distributed in the hope that it will be useful, */
- /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
- /* FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License */
- /* for more details. */
- /* */
- /* DESCRIPTION: */
- /* All the global variables that store the internal state. */
- /* Theoretically speaking, the internal state of the engine */
- /* should be found by looking at the variables collected */
- /* here, and every relevant module will have to include */
- /* this header file. */
- /* In practice, things are a bit messy. */
- /* */
- /* ----------------------------------------------------------------------------- */
-
-
- #ifndef __D_STATE__
- #define __D_STATE__
-
- /* We need globally shared data structures, */
- /* for defining the global state variables. */
- #include "doomdata.h"
- #include "d_net.h"
-
- /* We need the playr data structure as well. */
- #include "d_player.h"
-
-
- #ifdef __GNUG__
- #pragma interface
- #endif
-
-
-
- /* ------------------------ */
- /* Command line parameters. */
- /* */
- extern boolean nomonsters; /* checkparm of -nomonsters */
- extern boolean respawnparm; /* checkparm of -respawn */
- extern boolean fastparm; /* checkparm of -fast */
-
- extern boolean devparm; /* DEBUG: launched with -devparm */
-
- /* Video options */
-
- /*extern boolean dblbuffer;*/ /* double buffered screen ? */
- /*extern boolean video8,video15,video16,video24;*/ /* force bpp */
- /*extern boolean pixelinv;*/ /* byte swapped true colour pixels ? */
- /*extern boolean zoomscreen;*/ /* Zoom to fill screen */
-
- /* ----------------------------------------------------- */
- /* Game Mode - identify IWAD as shareware, retail etc. */
- /* */
- extern GameMode_t gamemode;
- extern GameMission_t gamemission;
-
- /* Set if homebrew PWAD stuff has been added. */
- extern boolean modifiedgame;
-
-
- /* ------------------------------------------- */
- /* Language. */
- extern Language_t language;
-
-
- /* ------------------------------------------- */
- /* Selected skill type, map etc. */
- /* */
-
- /* Defaults for menu, methinks. */
- extern skill_t startskill;
- extern int startepisode;
- extern int startmap;
-
- extern boolean autostart;
-
- /* Selected by user. */
- extern skill_t gameskill;
- extern int gameepisode;
- extern int gamemap;
-
- /* Nightmare mode flag, single player. */
- extern boolean respawnmonsters;
-
- /* Netgame? Only true if >1 player. */
- extern boolean netgame;
-
- /* Flag: true only if started as net deathmatch. */
- /* An enum might handle altdeath/cooperative better. */
- extern boolean deathmatch;
-
- /* ------------------------- */
- /* Internal parameters for sound rendering. */
- /* These have been taken from the DOS version, */
- /* but are not (yet) supported with Linux */
- /* (e.g. no sound volume adjustment with menu. */
-
- /* These are not used, but should be (menu). */
- /* From m_menu.c: */
- /* Sound FX volume has default, 0 - 15 */
- /* Music volume has default, 0 - 15 */
- /* These are multiplied by 8. */
- extern int snd_SfxVolume; /* maximum volume for sound */
- extern int snd_MusicVolume; /* maximum volume for music */
-
- /* Current music/sfx card - index useless */
- /* w/o a reference LUT in a sound module. */
- /* Ideally, this would use indices found */
- /* in: /usr/include/linux/soundcard.h */
- extern int snd_MusicDevice;
- extern int snd_SfxDevice;
- /* Config file? Same disclaimer as above. */
- extern int snd_DesiredMusicDevice;
- extern int snd_DesiredSfxDevice;
-
-
- /* ------------------------- */
- /* Status flags for refresh. */
- /* */
-
- /* Depending on view size - no status bar? */
- /* Note that there is no way to disable the */
- /* status bar explicitely. */
- extern boolean statusbaractive;
-
- extern boolean automapactive; /* In AutoMap mode? */
- extern boolean menuactive; /* Menu overlayed? */
- extern boolean paused; /* Game Pause? */
-
-
- extern boolean viewactive;
-
- extern boolean nodrawers;
- extern boolean noblit;
-
- extern int viewwindowx;
- extern int viewwindowy;
- extern int viewheight;
- extern int viewwidth;
- extern int scaledviewwidth;
-
-
-
-
-
-
- /* This one is related to the 3-screen display mode. */
- /* ANG90 = left side, ANG270 = right */
- extern int viewangleoffset;
-
- /* Player taking events, and displaying. */
- extern int consoleplayer;
- extern int displayplayer;
-
-
- /* ------------------------------------- */
- /* Scores, rating. */
- /* Statistics on a given map, for intermission. */
- /* */
- extern int totalkills;
- extern int totalitems;
- extern int totalsecret;
-
- /* Timer, for scores. */
- extern int levelstarttic; /* gametic at level start */
- extern int leveltime; /* tics in game play for par */
-
-
-
- /* -------------------------------------- */
- /* DEMO playback/recording related stuff. */
- /* No demo, there is a human player in charge? */
- /* Disable save/end game? */
- extern boolean usergame;
-
- /* ? */
- extern boolean demoplayback;
- extern boolean demorecording;
-
- /* Quit after playing a demo from cmdline. */
- extern boolean singledemo;
-
-
-
-
- /* ? */
- extern gamestate_t gamestate;
-
-
-
-
-
-
- /* ----------------------------- */
- /* Internal parameters, fixed. */
- /* These are set by the engine, and not changed */
- /* according to user inputs. Partly load from */
- /* WAD, partly set at startup time. */
-
-
-
- extern int gametic;
-
-
- /* Bookkeeping on players - state. */
- extern player_t players[MAXPLAYERS];
-
- /* Alive? Disconnected? */
- extern boolean playeringame[MAXPLAYERS];
-
-
- /* Player spawn spots for deathmatch. */
- #define MAX_DM_STARTS 10
- extern mapthing_t deathmatchstarts[MAX_DM_STARTS];
- extern mapthing_t* deathmatch_p;
-
- /* Player spawn spots. */
- extern mapthing_t playerstarts[MAXPLAYERS];
-
- /* Intermission stats. */
- /* Parameters for world map / intermission. */
- extern wbstartstruct_t wminfo;
-
-
- /* LUT of ammunition limits for each kind. */
- /* This doubles with BackPack powerup item. */
- extern int maxammo[NUMAMMO];
-
-
-
-
-
- /* ----------------------------------------- */
- /* Internal parameters, used for engine. */
- /* */
-
- /* File handling stuff. */
- extern char basedefault[1024];
- extern FILE* debugfile;
-
- /* if true, load all graphics at level load */
- extern boolean precache;
-
-
- /* wipegamestate can be set to -1 */
- /* to force a wipe on the next draw */
- extern gamestate_t wipegamestate;
-
- extern int mouseSensitivity;
- /* ? */
- /* debug flag to cancel adaptiveness */
- extern boolean singletics;
-
- extern int bodyqueslot;
-
-
-
- /* Needed to store the number of the dummy sky flat. */
- /* Used for rendering, */
- /* as well as tracking projectiles etc. */
- extern int skyflatnum;
-
-
-
- /* Netgame stuff (buffers and pointers, i.e. indices). */
-
- /* This is ??? */
- extern doomcom_t* doomcom;
-
- /* This points inside doomcom. */
- extern doomdata_t* netbuffer;
-
-
- extern ticcmd_t localcmds[BACKUPTICS];
- extern int rndindex;
-
- extern int maketic;
- extern int nettics[MAXNETNODES];
-
- extern ticcmd_t netcmds[MAXPLAYERS][BACKUPTICS];
- extern int ticdup;
-
-
-
- #endif
- /* ----------------------------------------------------------------------------- */
- /* */
- /* $Log:$ */
- /* */
- /* ----------------------------------------------------------------------------- */
-