123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297 |
- // 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
- // -----------------------------------------------------
- // 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:$
- //
- //-----------------------------------------------------------------------------
|