diff options
Diffstat (limited to 'src/strife/doomdef.h')
-rw-r--r-- | src/strife/doomdef.h | 197 |
1 files changed, 197 insertions, 0 deletions
diff --git a/src/strife/doomdef.h b/src/strife/doomdef.h new file mode 100644 index 00000000..c73a0b78 --- /dev/null +++ b/src/strife/doomdef.h @@ -0,0 +1,197 @@ +// Emacs style mode select -*- C++ -*- +//----------------------------------------------------------------------------- +// +// Copyright(C) 1993-1996 Id Software, Inc. +// Copyright(C) 2005 Simon Howard +// +// 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: +// Internally used data structures for virtually everything, +// lots of other stuff. +// +//----------------------------------------------------------------------------- + +#ifndef __DOOMDEF__ +#define __DOOMDEF__ + +#include <stdio.h> +#include <string.h> + +#include "doomtype.h" +#include "i_timer.h" +#include "d_mode.h" + +// +// Global parameters/defines. +// +// DOOM version +#define DOOM_VERSION 109 + +// Version code for cph's longtics hack ("v1.91") +#define DOOM_191_VERSION 111 + + +// If rangecheck is undefined, +// most parameter validation debugging code will not be compiled +#define RANGECHECK + +// The current state of the game: whether we are +// playing, gazing at the intermission screen, +// the game final animation, or a demo. +typedef enum +{ + GS_LEVEL, + GS_INTERMISSION, + GS_FINALE, + GS_DEMOSCREEN, +} gamestate_t; + +typedef enum +{ + ga_nothing, + ga_loadlevel, + ga_newgame, + ga_loadgame, + ga_savegame, + ga_playdemo, + ga_completed, + ga_victory, + ga_worlddone, + ga_screenshot +} gameaction_t; + +// +// Difficulty/skill settings/filters. +// + +// Skill flags. +#define MTF_EASY 1 +#define MTF_NORMAL 2 +#define MTF_HARD 4 +// villsa [STRIFE] standing monsters +#define MTF_STAND 8 +// villsa [STRIFE] don't spawn in single player +#define MTF_NOTSINGLE 16 +// Deaf monsters/do not react to sound. +#define MTF_AMBUSH 32 +// villsa [STRIFE] friendly to players +#define MTF_FRIEND 64 +// villsa [STRIFE] TODO - identify +#define MTF_UNKNOWN1 128 +// villsa [STRIFE] thing is translucent - STRIFE-TODO: But how much? +#define MTF_TRANSLUCENT 256 +// villsa [STRIFE] thing is more - or less? - translucent - STRIFE-TODO +#define MTF_MVIS 512 +// villsa [STRIFE] TODO - identify +#define MTF_UNKNOWN2 1024 + + + +// +// Key cards. +// +// STRIFE-TODO: A hell of a bunch of keys. +typedef enum +{ + it_bluecard, + it_yellowcard, + it_redcard, + it_blueskull, + it_yellowskull, + it_redskull, + + NUMCARDS + +} card_t; + + + +// The defined weapons, +// including a marker indicating +// user has not changed weapon. +// villsa [STRIFE] +typedef enum +{ + wp_fist, + wp_elecbow, + wp_rifle, + wp_missile, + wp_hegrenade, + wp_flame, + wp_mauler, + wp_sigil, + wp_poisonbow, + wp_wpgrenade, + wp_torpedo, + + NUMWEAPONS, + + // No pending weapon change. + wp_nochange + +} weapontype_t; + + +// Ammunition types defined. +typedef enum +{ + am_bullets, + am_elecbolts, + am_poisonbolts, + am_cell, + am_missiles, + am_hegrenades, + am_wpgrenades, + + NUMAMMO, + + am_noammo // unlimited ammo + +} ammotype_t; + + +// Power up artifacts. +typedef enum +{ + pw_invulnerability, + pw_strength, + pw_invisibility, + pw_ironfeet, + pw_allmap, + pw_infrared, + NUMPOWERS + +} powertype_t; + + + +// +// Power up durations, +// how many seconds till expiration, +// assuming TICRATE is 35 ticks/second. +// +typedef enum +{ + INVULNTICS = (30*TICRATE), + INVISTICS = (60*TICRATE), + INFRATICS = (120*TICRATE), + IRONTICS = (60*TICRATE) + +} powerduration_t; + +#endif // __DOOMDEF__ + |