1 // Emacs style mode select -*- C++ -*-
2 //-----------------------------------------------------------------------------
6 // Copyright (C) 1993-1996 by id Software, Inc.
8 // This source is available for distribution and/or modification
9 // only under the terms of the DOOM Source Code License as
10 // published by id Software. All rights reserved.
12 // The source is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
18 // Internally used data structures for virtually everything,
19 // key definitions, lots of other stuff.
21 //-----------------------------------------------------------------------------
32 // Global parameters/defines.
35 enum { VERSION = 110 };
38 // Game mode handling - identify IWAD version
39 // to handle IWAD dependend animations etc.
42 shareware, // DOOM 1 shareware, E1, M9
43 registered, // DOOM 1 registered, E3, M27
44 commercial, // DOOM 2 retail, E1 M34
45 // DOOM 2 german edition not handled
46 retail, // DOOM 1 retail, E4, M36
47 indetermined // Well, no IWAD found.
52 // Mission packs - might be useful for TC stuff?
57 pack_tnt, // TNT mission pack
58 pack_plut, // Plutonia pack
64 // Identify language to use, software localization.
75 // If rangecheck is undefined,
76 // most parameter validation debugging code will not be compiled
79 // Do or do not use external soundserver.
80 // The sndserver binary to be run separately
81 // has been introduced by Dave Taylor.
82 // The integrated sound support is experimental,
83 // and unfinished. Default is synchronous.
84 // Experimental asynchronous timer based is
85 // handled by SNDINTR.
90 // This one switches between MIT SHM (no proper mouse)
91 // and XFree86 DGA (mickey sampling). The original
92 // linuxdoom used SHM, which is default.
97 // For resize of screen, at start of game.
98 // It will not work dynamically, see visplanes.
100 #define BASE_WIDTH 320
102 // It is educational but futile to change this
103 // scaling e.g. to 2. Drawing of status bar,
104 // menues etc. is tied to the scale implied
107 #define INV_ASPECT_RATIO 0.625 // 0.75, ideally
109 // Defines suck. C sucks.
110 // C++ might sucks for OOP, but it sure is a better C.
112 #define SCREENWIDTH 320
113 //SCREEN_MUL*BASE_WIDTH //320
114 #define SCREENHEIGHT 200
115 //(int)(SCREEN_MUL*BASE_WIDTH*INV_ASPECT_RATIO) //200
120 // The maximum number of players, multiplayer/networking.
123 // State updates, number of tics / second.
126 // The current state of the game: whether we are
127 // playing, gazing at the intermission screen,
128 // the game final animation, or a demo.
138 // Difficulty/skill settings/filters.
146 // Deaf monsters/do not react to sound.
179 // The defined weapons,
180 // including a marker indicating
181 // user has not changed weapon.
196 // No pending weapon change.
202 // Ammunition types defined.
205 am_clip, // Pistol / chaingun ammo.
206 am_shell, // Shotgun / double barreled shotgun.
207 am_cell, // Plasma rifle, BFG.
208 am_misl, // Missile launcher.
210 am_noammo // Unlimited for chainsaw / fist.
215 // Power up artifacts.
231 // Power up durations,
232 // how many seconds till expiration,
233 // assuming TICRATE is 35 ticks/second.
237 INVULNTICS = (30*TICRATE),
238 INVISTICS = (60*TICRATE),
239 INFRATICS = (120*TICRATE),
240 IRONTICS = (60*TICRATE)
248 // DOOM keyboard definition.
249 // This is the stuff configured by Setup.Exe.
250 // Most key data are simple ascii (uppercased).
252 #define KEY_RIGHTARROW 0xae
253 #define KEY_LEFTARROW 0xac
254 #define KEY_UPARROW 0xad
255 #define KEY_DOWNARROW 0xaf
256 #define KEY_ESCAPE 27
259 #define KEY_F1 (0x80+0x3b)
260 #define KEY_F2 (0x80+0x3c)
261 #define KEY_F3 (0x80+0x3d)
262 #define KEY_F4 (0x80+0x3e)
263 #define KEY_F5 (0x80+0x3f)
264 #define KEY_F6 (0x80+0x40)
265 #define KEY_F7 (0x80+0x41)
266 #define KEY_F8 (0x80+0x42)
267 #define KEY_F9 (0x80+0x43)
268 #define KEY_F10 (0x80+0x44)
269 #define KEY_F11 (0x80+0x57)
270 #define KEY_F12 (0x80+0x58)
272 #define KEY_BACKSPACE 127
273 #define KEY_PAUSE 0xff
275 #define KEY_EQUALS 0x3d
276 #define KEY_MINUS 0x2d
278 #define KEY_RSHIFT (0x80+0x36)
279 #define KEY_RCTRL (0x80+0x1d)
280 #define KEY_RALT (0x80+0x38)
282 #define KEY_LALT KEY_RALT
286 // DOOM basic types (boolean),
287 // and max/min values.
288 //#include "doomtype.h"
291 //#include "m_fixed.h"
293 // Endianess handling.
294 //#include "m_swap.h"
297 // Binary Angles, sine/cosine/atan lookups.
298 //#include "tables.h"
301 //#include "d_event.h"
303 // Game function, skills.
304 //#include "g_game.h"
306 // All external data is defined here.
307 //#include "doomdata.h"
309 // All important printed strings.
310 // Language selection (message strings).
311 //#include "dstrings.h"
313 // Player is a special actor.
317 //#include "d_items.h"
318 //#include "d_player.h"
319 //#include "p_mobj.h"
323 //#include "p_tick.h"
328 // Header, generated by sound utility.
329 // The utility was written by Dave Taylor.
330 //#include "sounds.h"
335 #endif // __DOOMDEF__
336 //-----------------------------------------------------------------------------
340 //-----------------------------------------------------------------------------