[docs] Replace cyrillic 'с' with latin 'c' in register names
[kolibrios.git] / contrib / other / sdldoom-1.10 / doomdef.h
blob55171000a85f62e4cf88b6902fc62041c0d11d17
1 // Emacs style mode select -*- C++ -*-
2 //-----------------------------------------------------------------------------
3 //
4 // $Id:$
5 //
6 // Copyright (C) 1993-1996 by id Software, Inc.
7 //
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
15 // for more details.
17 // DESCRIPTION:
18 // Internally used data structures for virtually everything,
19 // key definitions, lots of other stuff.
21 //-----------------------------------------------------------------------------
23 #ifndef __DOOMDEF__
24 #define __DOOMDEF__
26 #include <stdio.h>
27 #include <string.h>
30 // Global parameters/defines.
32 // DOOM version
33 enum { VERSION_NUM = 110 };
36 // Game mode handling - identify IWAD version
37 // to handle IWAD dependend animations etc.
38 typedef enum
40 shareware, // DOOM 1 shareware, E1, M9
41 registered, // DOOM 1 registered, E3, M27
42 commercial, // DOOM 2 retail, E1 M34
43 // DOOM 2 german edition not handled
44 retail, // DOOM 1 retail, E4, M36
45 indetermined // Well, no IWAD found.
47 } GameMode_t;
50 // Mission packs - might be useful for TC stuff?
51 typedef enum
53 doom, // DOOM 1
54 doom2, // DOOM 2
55 pack_tnt, // TNT mission pack
56 pack_plut, // Plutonia pack
57 none
59 } GameMission_t;
62 // Identify language to use, software localization.
63 typedef enum
65 english,
66 french,
67 german,
68 unknown
70 } Language_t;
73 // If rangecheck is undefined,
74 // most parameter validation debugging code will not be compiled
75 #define RANGECHECK
77 // Do or do not use external soundserver.
78 // The sndserver binary to be run separately
79 // has been introduced by Dave Taylor.
80 // The integrated sound support is experimental,
81 // and unfinished. Default is synchronous.
82 // Experimental asynchronous timer based is
83 // handled by SNDINTR.
84 #define SNDSERV 1
85 //#define SNDINTR 1
88 // This one switches between MIT SHM (no proper mouse)
89 // and XFree86 DGA (mickey sampling). The original
90 // linuxdoom used SHM, which is default.
91 //#define X11_DGA 1
95 // For resize of screen, at start of game.
96 // It will not work dynamically, see visplanes.
98 #define BASE_WIDTH 320
100 // It is educational but futile to change this
101 // scaling e.g. to 2. Drawing of status bar,
102 // menues etc. is tied to the scale implied
103 // by the graphics.
104 #define SCREEN_MUL 1
105 #define INV_ASPECT_RATIO 0.625 // 0.75, ideally
107 // Defines suck. C sucks.
108 // C++ might sucks for OOP, but it sure is a better C.
109 // So there.
110 #define SCREENWIDTH 320
111 //SCREEN_MUL*BASE_WIDTH //320
112 #define SCREENHEIGHT 200
113 //(int)(SCREEN_MUL*BASE_WIDTH*INV_ASPECT_RATIO) //200
118 // The maximum number of players, multiplayer/networking.
119 #define MAXPLAYERS 4
121 // State updates, number of tics / second.
122 #define TICRATE 35
124 // The current state of the game: whether we are
125 // playing, gazing at the intermission screen,
126 // the game final animation, or a demo.
127 typedef enum
129 GS_LEVEL,
130 GS_INTERMISSION,
131 GS_FINALE,
132 GS_DEMOSCREEN
133 } gamestate_t;
136 // Difficulty/skill settings/filters.
139 // Skill flags.
140 #define MTF_EASY 1
141 #define MTF_NORMAL 2
142 #define MTF_HARD 4
144 // Deaf monsters/do not react to sound.
145 #define MTF_AMBUSH 8
147 typedef enum
149 sk_baby,
150 sk_easy,
151 sk_medium,
152 sk_hard,
153 sk_nightmare
154 } skill_t;
160 // Key cards.
162 typedef enum
164 it_bluecard,
165 it_yellowcard,
166 it_redcard,
167 it_blueskull,
168 it_yellowskull,
169 it_redskull,
171 NUMCARDS
173 } card_t;
177 // The defined weapons,
178 // including a marker indicating
179 // user has not changed weapon.
180 typedef enum
182 wp_fist,
183 wp_pistol,
184 wp_shotgun,
185 wp_chaingun,
186 wp_missile,
187 wp_plasma,
188 wp_bfg,
189 wp_chainsaw,
190 wp_supershotgun,
192 NUMWEAPONS,
194 // No pending weapon change.
195 wp_nochange
197 } weapontype_t;
200 // Ammunition types defined.
201 typedef enum
203 am_clip, // Pistol / chaingun ammo.
204 am_shell, // Shotgun / double barreled shotgun.
205 am_cell, // Plasma rifle, BFG.
206 am_misl, // Missile launcher.
207 NUMAMMO,
208 am_noammo // Unlimited for chainsaw / fist.
210 } ammotype_t;
213 // Power up artifacts.
214 typedef enum
216 pw_invulnerability,
217 pw_strength,
218 pw_invisibility,
219 pw_ironfeet,
220 pw_allmap,
221 pw_infrared,
222 NUMPOWERS
224 } powertype_t;
229 // Power up durations,
230 // how many seconds till expiration,
231 // assuming TICRATE is 35 ticks/second.
233 typedef enum
235 INVULNTICS = (30*TICRATE),
236 INVISTICS = (60*TICRATE),
237 INFRATICS = (120*TICRATE),
238 IRONTICS = (60*TICRATE)
240 } powerduration_t;
246 // DOOM keyboard definition.
247 // This is the stuff configured by Setup.Exe.
248 // Most key data are simple ascii (uppercased).
250 #define KEY_RIGHTARROW 0xae
251 #define KEY_LEFTARROW 0xac
252 #define KEY_UPARROW 0xad
253 #define KEY_DOWNARROW 0xaf
254 #define KEY_ESCAPE 27
255 #define KEY_ENTER 13
256 #define KEY_TAB 9
257 #define KEY_F1 (0x80+0x3b)
258 #define KEY_F2 (0x80+0x3c)
259 #define KEY_F3 (0x80+0x3d)
260 #define KEY_F4 (0x80+0x3e)
261 #define KEY_F5 (0x80+0x3f)
262 #define KEY_F6 (0x80+0x40)
263 #define KEY_F7 (0x80+0x41)
264 #define KEY_F8 (0x80+0x42)
265 #define KEY_F9 (0x80+0x43)
266 #define KEY_F10 (0x80+0x44)
267 #define KEY_F11 (0x80+0x57)
268 #define KEY_F12 (0x80+0x58)
270 #define KEY_BACKSPACE 127
271 #define KEY_PAUSE 0xff
273 #define KEY_EQUALS 0x3d
274 #define KEY_MINUS 0x2d
276 #define KEY_RSHIFT (0x80+0x36)
277 #define KEY_RCTRL (0x80+0x1d)
278 #define KEY_RALT (0x80+0x38)
280 #define KEY_LALT KEY_RALT
284 // DOOM basic types (boolean),
285 // and max/min values.
286 //#include "doomtype.h"
288 // Fixed point.
289 //#include "m_fixed.h"
291 // Endianess handling.
292 //#include "m_swap.h"
295 // Binary Angles, sine/cosine/atan lookups.
296 //#include "tables.h"
298 // Event type.
299 //#include "d_event.h"
301 // Game function, skills.
302 //#include "g_game.h"
304 // All external data is defined here.
305 //#include "doomdata.h"
307 // All important printed strings.
308 // Language selection (message strings).
309 //#include "dstrings.h"
311 // Player is a special actor.
312 //struct player_s;
315 //#include "d_items.h"
316 //#include "d_player.h"
317 //#include "p_mobj.h"
318 //#include "d_net.h"
320 // PLAY
321 //#include "p_tick.h"
326 // Header, generated by sound utility.
327 // The utility was written by Dave Taylor.
328 //#include "sounds.h"
333 #endif // __DOOMDEF__
334 //-----------------------------------------------------------------------------
336 // $Log:$
338 //-----------------------------------------------------------------------------