1 /*
2 Copyright (C) 1994-1995 Apogee Software, Ltd.
3 
4 This program is free software; you can redistribute it and/or
5 modify it under the terms of the GNU General Public License
6 as published by the Free Software Foundation; either version 2
7 of the License, or (at your option) any later version.
8 
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12 
13 See the GNU General Public License for more details.
14 
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
18 
19 */
20 //***************************************************************************
21 //
22 //                  RT_MAIN.H
23 //
24 //***************************************************************************
25 
26 #ifndef _rt_main_public
27 #define _rt_main_public
28 
29 #include "develop.h"
30 #include "rt_def.h"
31 #include "rottnet.h"
32 #include "rt_battl.h"
33 
34 enum
35 {vl_low,
36  vl_medium,
37  vl_high,
38  vl_excessive
39 };
40 
41 // Enum for each version of the game
42 typedef enum
43    {
44    ROTT_SHAREWARE,
45    ROTT_REGISTERED,
46    ROTT_SUPERCD,
47    ROTT_SITELICENSE
48    } version_type;
49 
50 typedef struct
51    {
52    int GodModeTime;
53    int DogModeTime;
54    int ShroomsModeTime;
55    int ElastoModeTime;
56    int AsbestosVestTime;
57    int BulletProofVestTime;
58    int GasMaskTime;
59    int MercuryModeTime;
60 
61    int GodModeRespawnTime;
62    int DogModeRespawnTime;
63    int ShroomsModeRespawnTime;
64    int ElastoModeRespawnTime;
65    int AsbestosVestRespawnTime;
66    int BulletProofVestRespawnTime;
67    int GasMaskRespawnTime;
68    int MercuryModeRespawnTime;
69 
70    }specials;
71 
72 
73 typedef struct
74    {
75    unsigned Version;
76    // Variable for which version of the game can be played
77    version_type Product;
78 
79    long    TimeCount;
80    long    frame;
81    int     secrettotal,treasuretotal,killtotal;
82    int     secretcount,treasurecount,killcount;
83    int     supertotal,healthtotal,missiletotal;
84    int     supercount,healthcount,missilecount;
85    int     democratictotal,planttotal;
86    int     democraticcount,plantcount;
87    int     dipballs;
88    int     difficulty;
89    int     violence;
90 	int     mapon;
91 	long    score;
92 	int     episode;
93 	int     battlemode;
94 	int     battleoption;
95 	int     randomseed;
96    boolean teamplay;
97 	boolean DODEMOCRATICBONUS1;
98 	boolean DOGROUNDZEROBONUS;
99 	int     autorun;
100 
101 	// Battle Options
102    battle_type BattleOptions;
103 
104    boolean SpawnCollectItems;
105 	boolean SpawnEluder;
106 	boolean SpawnDeluder;
107    boolean ShowScores;
108 	boolean PlayerHasGun[ MAXPLAYERS ];
109    specials SpecialsTimes;
110    } gametype;
111 
112 
113 extern  int      doublestep;
114 extern  boolean  tedlevel;
115 extern  int      tedlevelnum;
116 extern  int      tedx;
117 extern  int      tedy;
118 extern  boolean  fizzlein;
119 extern  int      pheight;
120 extern  int      NoSound;
121 extern  int      timelimit;
122 extern  boolean  timelimitenabled;
123 extern  boolean  noecho;
124 extern  boolean  demoexit;
125 extern  boolean  quiet;
126 
127 extern gametype  gamestate;
128 extern boolean DebugOk;
129 extern  boolean newlevel;
130 
131 void QuitGame( void );
132 void PlayCinematic (void);
133 void InitCharacter(void);
134 void ShutDown ( void );
135 void UpdateGameObjects ( void );
136 
137 #if (WHEREAMI==1)
138 extern int programlocation;
139 #endif
140 
141 extern  int polltime;
142 extern  int oldpolltime;
143 extern  volatile int oldtime;
144 void PauseLoop ( void );
145 #if SAVE_SCREEN
146 extern boolean inhmenu;
147 void SaveScreen (boolean saveLBM);
148 #endif
149 void SetupWads( void );
150 
151 extern boolean SCREENSHOTS;
152 extern boolean MEMORYTEST;
153 extern boolean MODEMTEST;
154 extern boolean STATICMEMORYTEST;
155 extern boolean STATICMEMORYPREVIEWTEST;
156 extern boolean COMPUTELEVELSIZE;
157 extern boolean MONOPRESENT;
158 extern boolean MAPSTATS;
159 extern boolean TILESTATS;
160 extern boolean HUD;
161 extern boolean SOUNDSETUP;
162 
163 extern char CWD[40];
164 
165 #endif
166