Fix crash if Num_walls=0
[btb/d2x.git] / main / inferno.h
1 /* $Id: inferno.h,v 1.3 2003-10-10 09:36:35 btb Exp $ */
2 /*
3 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
4 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
5 END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
6 ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
7 IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
8 SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
9 FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
10 CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
11 AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.
12 COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
13 */
14
15 /*
16  *
17  * Header file for Inferno.  Should be included in all source files.
18  *
19  */
20
21 #ifndef _INFERNO_H
22 #define _INFERNO_H
23
24 #include "pstypes.h"
25
26
27 // MACRO for single line #ifdef WINDOWS #else DOS
28 #ifdef WINDOWS
29 #define WINDOS(x,y) x
30 #define WIN(x) x
31 #else
32 #define WINDOS(x,y) y
33 #define WIN(x)
34 #endif
35
36 #ifdef MACINTOSH
37 #define MAC(x) x
38 #else
39 #define MAC(x)
40 #endif
41
42
43 /**
44  **     Constants
45  **/
46
47 // How close two points must be in all dimensions to be considered the
48 // same point.
49 #define FIX_EPSILON     10
50
51 // the maximum length of a filename
52 #define FILENAME_LEN 13
53
54 //for Function_mode variable
55 #define FMODE_EXIT              0               // leaving the program
56 #define FMODE_MENU              1               // Using the menu
57 #define FMODE_GAME              2               // running the game
58 #define FMODE_EDITOR    3               // running the editor
59
60 // This constant doesn't really belong here, but it is because of
61 // horrible circular dependencies involving object.h, aistruct.h,
62 // polyobj.h, & robot.h
63 #define MAX_SUBMODELS   10              // how many animating sub-objects per model
64
65 /**
66  **     Global variables
67  **/
68
69 extern int Function_mode;               // in game or editor?
70 extern int Screen_mode;                 // editor screen or game screen?
71
72 // The version number of the game
73 extern ubyte Version_major, Version_minor;
74
75 #ifdef MACINTOSH
76 extern ubyte Version_fix;
77 #endif
78
79 #endif
80
81