123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334 |
- /* Emacs style mode select -*- C++ -*-
- *-----------------------------------------------------------------------------
- *
- *
- * PrBoom: a Doom port merged with LxDoom and LSDLDoom
- * based on BOOM, a modified and improved DOOM engine
- * Copyright (C) 1999 by
- * id Software, Chi Hoang, Lee Killough, Jim Flynn, Rand Phares, Ty Halderman
- * Copyright (C) 1999-2006 by
- * Jess Haas, Nicolas Kalkhof, Colin Phipps, Florian Schulze
- * Copyright 2005, 2006 by
- * Florian Schulze, Colin Phipps, Neil Stevens, Andrey Budko
- *
- * 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.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * 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 the playr data structure as well.
- #include "d_player.h"
- // ------------------------
- // 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;
- // 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 < boom_compatibility_compatibility)
- #define mbf_features (compatibility_level>=mbf_compatibility)
- // v1.1-like pitched sounds
- extern int pitched_sounds; // killough
- extern int default_translucency; // config file says // phares
- 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_666,
- comp_soul,
- comp_maskedanim,
- 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];
- // -------------------------------------------
- // 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
- // CPhipps - screen parameters
- extern int desired_screenwidth, desired_screenheight;
- // -------------------------
- // Status flags for refresh.
- //
- enum automapmode_e {
- am_none = 0,
- 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
- };
- extern enum automapmode_e automapmode; // Mode that the automap is in
- extern boolean menuactive; // Menu overlayed?
- extern boolean paused; // Game Pause?
- extern boolean nodrawers;
- extern boolean noblit;
- // 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, totallive;
- extern int totalitems;
- extern int totalsecret;
- // Timer, for scores.
- extern int basetic; /* killough 9/29/98: levelstarttic, adjusted */
- extern int leveltime; // tics in game play for par
- // --------------------------------------
- // DEMO playback/recording related stuff.
- extern boolean usergame;
- extern boolean demoplayback;
- extern boolean demorecording;
- extern int demover;
- // Quit after playing a demo from cmdline.
- extern boolean singledemo;
- // Print timing information after quitting. killough
- extern boolean timingdemo;
- // Run tick clock at fastest speed possible while playing demo. killough
- extern boolean fastdemo;
- 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];
- extern boolean realplayeringame[MAXPLAYERS];
- extern mapthing_t *deathmatchstarts; // killough
- extern size_t num_deathmatchstarts; // killough
- extern mapthing_t *deathmatch_p;
- // Player spawn spots.
- extern mapthing_t playerstarts[];
- // Intermission stats.
- // Parameters for world map / intermission.
- extern wbstartstruct_t wminfo;
- //-----------------------------------------
- // Internal parameters, used for engine.
- //
- // File handling stuff.
- 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_horiz; // killough
- extern int mouseSensitivity_vert;
- // 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;
- extern int maketic;
- // Networking and tick handling related.
- #ifdef IPHONE
- #define BACKUPTICS 32 // JDC: changed from 12 to 16 to allow and masking instead of mod
- #define BACKUPTICMASK (BACKUPTICS-1) // JDC
- #else
- #define BACKUPTICS 12
- #endif
- extern ticcmd_t netcmds[MAXPLAYERS][BACKUPTICS]; // JDC: added MAXPLAYERS
- extern int ticdup;
- //-----------------------------------------------------------------------------
- extern int allow_pushers; // MT_PUSH Things // phares 3/10/98
- extern int default_allow_pushers;
- extern int variable_friction; // ice & mud // phares 3/10/98
- extern int default_variable_friction;
- extern int monsters_remember; // killough 3/1/98
- extern int default_monsters_remember;
- extern int weapon_recoil; // weapon recoil // phares
- extern int default_weapon_recoil;
- extern int player_bobbing; // whether player bobs or not // phares 2/25/98
- extern int default_player_bobbing; // killough 3/1/98: make local to each game
- #ifdef DOGS
- extern int dogs, default_dogs; // killough 7/19/98: Marine's best friend :)
- extern int dog_jumping, default_dog_jumping; // killough 10/98
- #endif
- /* killough 8/8/98: distance friendly monsters tend to stay from player */
- extern int distfriend, default_distfriend;
- /* killough 9/8/98: whether monsters are allowed to strafe or retreat */
- extern int monster_backing, default_monster_backing;
- /* killough 9/9/98: whether monsters intelligently avoid hazards */
- extern int monster_avoid_hazards, default_monster_avoid_hazards;
- /* killough 10/98: whether monsters are affected by friction */
- extern int monster_friction, default_monster_friction;
- /* killough 9/9/98: whether monsters help friends */
- extern int help_friends, default_help_friends;
- extern int flashing_hom; // killough 10/98
- extern int doom_weapon_toggles; // killough 10/98
- /* killough 7/19/98: whether monsters should fight against each other */
- extern int monster_infighting, default_monster_infighting;
- extern int monkeys, default_monkeys;
- extern int HelperThing; // type of thing to use for helper
- #endif
|