]> 4ch.mooo.com Git - 16.git/blob - 16/cawat/ID_HEADS.H
88f86d35e89e330aee02835537ac73d35e25a479
[16.git] / 16 / cawat / ID_HEADS.H
1 /* Catacomb Armageddon Source Code\r
2  * Copyright (C) 1993-2014 Flat Rock Software\r
3  *\r
4  * This program is free software; you can redistribute it and/or modify\r
5  * it under the terms of the GNU General Public License as published by\r
6  * the Free Software Foundation; either version 2 of the License, or\r
7  * (at your option) any later version.\r
8  *\r
9  * This program is distributed in the hope that it will be useful,\r
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
12  * GNU General Public License for more details.\r
13  *\r
14  * You should have received a copy of the GNU General Public License along\r
15  * with this program; if not, write to the Free Software Foundation, Inc.,\r
16  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\r
17  */\r
18 \r
19 // ID_GLOB.H\r
20 \r
21 \r
22 #include <ALLOC.H>\r
23 #include <CTYPE.H>\r
24 #include <DOS.H>\r
25 #include <ERRNO.H>\r
26 #include <FCNTL.H>\r
27 #include <IO.H>\r
28 #include <MEM.H>\r
29 #include <PROCESS.H>\r
30 #include <STDIO.H>\r
31 #include <STDLIB.H>\r
32 #include <STRING.H>\r
33 #include <SYS\STAT.H>\r
34 \r
35 #define __ID_GLOB__\r
36 \r
37 //--------------------------------------------------------------------------\r
38 \r
39 #define EXT     "ARM"\r
40 \r
41 extern  char far introscn;\r
42 \r
43 #include "GFXE_ARM.H"\r
44 #include "AUDIOARM.H"\r
45 #include "MAPSARM.H"\r
46 \r
47 //--------------------------------------------------------------------------\r
48 \r
49 //\r
50 // DEFINES THE TILE ATTRIBUTE CHECKING CONVENTION (macros).\r
51 //\r
52 // DEFINE CUSTOM BIT-FLAG NAMES...\r
53 //\r
54 \r
55 \r
56 #define tf_SOLID                                                        0x01\r
57 #define tf_SPECIAL                                              0x02\r
58 #define tf_EMBEDDED_KEY_COLOR                   0x04\r
59 #define tf_INVISIBLE_WALL                       0x09\r
60 #define tf_MARKED                       0x80\r
61 \r
62 #define ANIM_FLAGS(tile)        (tinf[ANIM+(tile)])\r
63 #define TILE_FLAGS(tile)   (tinf[FLAGS+(tile)])\r
64 \r
65 #define GATE_KEY_COLOR(tile)            ((unsigned char)(TILE_FLAGS(tile)>>4))\r
66 \r
67 #define CAT3D\r
68 \r
69 #define TEXTGR  0\r
70 #define CGAGR   1\r
71 #define EGAGR   2\r
72 #define VGAGR   3\r
73 \r
74 #define  EGA320GR       10                                      // MDM (GAMERS EDGE)\r
75 #define  EGA640GR       11                                      // MDM (GAMERS EDGE)\r
76 \r
77 #define GRMODE  EGAGR\r
78 \r
79 #if GRMODE == EGAGR\r
80 #define GREXT   "EGA"\r
81 #endif\r
82 #if GRMODE == CGAGR\r
83 #define GREXT   "CGA"\r
84 #endif\r
85 \r
86 //#define PROFILE\r
87 \r
88 //\r
89 //      ID Engine\r
90 //      Types.h - Generic types, #defines, etc.\r
91 //      v1.0d1\r
92 //\r
93 \r
94 #ifndef __TYPES__\r
95 #define __TYPES__\r
96 \r
97 typedef enum    {false,true}    boolean;\r
98 typedef unsigned        char            byte;\r
99 typedef unsigned        int                     word;\r
100 typedef unsigned        long            longword;\r
101 typedef byte *                                  Ptr;\r
102 \r
103 typedef struct\r
104                 {\r
105                         int     x,y;\r
106                 } Point;\r
107 typedef struct\r
108                 {\r
109                         Point   ul,lr;\r
110                 } Rect;\r
111 \r
112 #define nil     ((void *)0)\r
113 \r
114 #endif\r
115 \r
116 #include "ID_MM.H"\r
117 #include "ID_CA.H"\r
118 #include "ID_VW.H"\r
119 #include "ID_IN.H"\r
120 #include "ID_SD.H"\r
121 #include "ID_US.H"\r
122 \r
123 \r
124 void    Quit (char *error, ...);                // defined in user program\r
125 \r
126 //\r
127 // replacing refresh manager with custom routines\r
128 //\r
129 \r
130 #define PORTTILESWIDE           21      // all drawing takes place inside a\r
131 #define PORTTILESHIGH           14              // non displayed port of this size\r
132 \r
133 #define UPDATEWIDE                      (PORTTILESWIDE+1)\r
134 #define UPDATEHIGH                      PORTTILESHIGH\r
135 \r
136 #define MAXTICS                         6\r
137 #define DEMOTICS                        3\r
138 \r
139 #define UPDATETERMINATE 0x0301\r
140 \r
141 extern  unsigned        mapwidth,mapheight,tics,realtics;\r
142 extern  boolean         compatability;\r
143 \r
144 extern  byte            *updateptr;\r
145 extern  unsigned        uwidthtable[UPDATEHIGH];\r
146 extern  unsigned        blockstarts[UPDATEWIDE*UPDATEHIGH];\r