// Emacs style mode select -*- C++ -*- //----------------------------------------------------------------------------- // // $Id$ // // Copyright (C) 1993-1996 by id Software, Inc. // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation; either version 2 // of the License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public 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 enum { am_active = 1, // currently shown am_overlay= 2, // covers the screen, i.e. not overlay mode am_rotate = 4, // rotates to the player facing direction am_follow = 8, // keep the player centred am_grid =16, // show grid }; typedef unsigned automapmode_e; extern automapmode_e automapmode; // Mode that the automap is in // ----------------------------------------------------- // 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; // CPhipps - new compatibility handling extern complevel_t compatibility_level, default_compatibility_level; // CPhipps - old compatibility testing flags aliased to new handling #define compatibility (compatibility_level<=boom_compatibility_compatibility) #define demo_compatibility (compatibility_level <= doom_demo_compatibility) #define mbf_features (compatibility_level>=mbf_compatibility) extern int default_translucency; extern boolean general_translucency; // true if translucency is ok // phares extern int demo_insurance, default_demo_insurance; // killough 4/5/98 // ------------------------------------------- // killough 10/98: compatibility vector enum { comp_telefrag, comp_dropoff, comp_vile, comp_pain, comp_skull, comp_blazing, comp_doorlight, comp_model, comp_god, comp_falloff, comp_floors, comp_skymap, comp_pursuit, comp_doorstuck, comp_staylift, comp_zombie, comp_stairs, comp_infcheat, comp_zerotags, comp_moveblock, comp_respawn, /* cph - this is the inverse of comp_respawnfix from eternity */ comp_sound, COMP_NUM, /* cph - should be last in sequence */ COMP_TOTAL=32 // Some extra room for additional variables }; extern int comp[COMP_TOTAL], default_comp[COMP_TOTAL]; extern boolean enable_sound; extern boolean rockblock; // ------------------------------------------- // 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 #endif