22 #ifndef MADS_CORE_GAME_H 23 #define MADS_CORE_GAME_H 25 #include "common/serializer.h" 26 #include "mads/core/general.h" 27 #include "mads/core/global.h" 28 #include "mads/core/kernel.h" 29 #include "mads/core/object.h" 30 #include "mads/core/player.h" 31 #include "mads/core/quote.h" 32 #include "mads/core/mads.h" 33 #include "mads/core/heap.h" 34 #include "mads/core/popup.h" 35 #include "mads/core/text.h" 39 #define game_version "1.22" 40 #define game_date "27-Jul-92" 45 #define TENTH_SECOND 6 46 #define QUARTER_SECOND 15 47 #define THIRD_SECOND 20 48 #define HALF_SECOND 30 51 #define TWO_SECONDS 120 52 #define THREE_SECONDS 180 53 #define FOUR_SECONDS 240 54 #define FIVE_SECONDS 300 55 #define SIX_SECONDS 360 56 #define SEVEN_SECONDS 420 57 #define EIGHT_SECONDS 480 58 #define NINE_SECONDS 540 59 #define TEN_SECONDS 600 60 #define FIFTEEN_SECONDS 900 61 #define THIRTY_SECONDS 1800 62 #define ONE_MINUTE 3600 63 #define TWO_MINUTES 7200 64 #define THREE_MINUTES 10800 65 #define UNTIL_THE_COW_EXPLODES 9999999 67 #define CURSOR_NORMAL 1 72 #define CURSOR_RIGHT 6 74 #define FACING_NORTH 8 75 #define FACING_SOUTH 2 78 #define FACING_NORTHEAST 9 79 #define FACING_SOUTHEAST 3 80 #define FACING_SOUTHWEST 1 81 #define FACING_NORTHWEST 7 85 #define DEBUGGER_NONE -1 86 #define DEBUGGER_MAIN 0 87 #define DEBUGGER_HELP 1 88 #define DEBUGGER_PALETTE 2 89 #define DEBUGGER_SCRATCH 3 90 #define DEBUGGER_GLOBAL 4 91 #define DEBUGGER_CONVERSATION 5 92 #define DEBUGGER_MATTE 6 93 #define DEBUGGER_MEMORY 7 94 #define DEBUGGER_STATE 8 95 #define DEBUGGER_PAL_LIST_1 9 96 #define DEBUGGER_PAL_LIST_2 10 98 #define DEBUGGER_MAX_WATCH 12 107 extern int selected_intro;
109 #define EXTRA_MAX_INV_OBJECTS 18 114 extern Player journal_player;
115 extern int journal_room;
124 GAME_RESTORE_MENU = 3,
125 GAME_OPTIONS_MENU = 4,
126 GAME_DIFFICULTY_MENU = 5,
132 #define GAME_MENU_MAX_ITEMS 20 133 #define GAME_MAX_SAVE_SLOTS 99 134 #define GAME_MAX_SAVE_LENGTH 63 135 #define GAME_MAX_SAVE_WIDTH 255 136 #define GAME_MAX_SAVES_ON_SCREEN 7 138 #define GAME_SAVE_SLOT_MEMORY (long)(GAME_MAX_SAVE_SLOTS * (GAME_MAX_SAVE_LENGTH + 1)) 139 #define GAME_DIALOG_HEAP (long)(4096 + sizeof(PopupItem) * GAME_MENU_MAX_ITEMS) 140 #define GAME_FUDGE_FACTOR 256 141 #define GAME_MENU_HEAP (long)(GAME_SAVE_SLOT_MEMORY + GAME_DIALOG_HEAP + GAME_FUDGE_FACTOR) 144 #define GAME_MENU_SCROLL_FIRST 20 145 #define GAME_MENU_SCROLL_SECOND 8 147 #define GAME_MENU_CENTER -1 148 #define GAME_MENU_SPECIAL -2 149 #define GAME_MENU_RIGHT -3 151 #define WIN_NOTHING 0 152 #define WIN_QUICK_DEATH 1 153 #define WIN_SLOW_DEATH 2 154 #define WIN_ALL_THE_MONEY 3 155 #define WIN_A_HEAD_POW 4 157 extern byte game_restore_flag;
158 extern byte game_autosaved;
159 extern int savegame_slot;
161 extern byte game_mouse_cursor_fix;
163 extern word abort_value;
164 extern long abort_clock;
166 extern int logfile_enabled;
169 extern int sound_board_address;
170 extern int sound_board_type;
171 extern int sound_board_irq;
173 extern char chain_line[80];
174 extern int chain_flag;
175 extern int force_chain;
176 extern int key_abort_level;
178 extern int game_keystroke;
179 extern int game_any_keystroke;
180 extern int game_any_emergency;
182 extern int win_status;
184 extern long correction_clock;
187 extern char config_file_name[20];
188 extern char save_game_key[8];
189 extern char restart_game_key[40];
190 extern char save_game_buf[20];
191 extern int last_keypressed;
193 extern void (*game_menu_routine)();
194 extern void (*game_menu_init)();
195 extern void (*game_menu_exit)();
196 extern void (*game_emergency_save)();
200 extern int debugger_state;
201 extern bool debugger_matte_before;
202 extern int debugger_memory_skip;
203 extern bool debugger_memory_all;
204 extern bool debugger_memory_keywait;
205 extern void (*debugger_reset)();
206 extern void (*debugger_update)();
209 extern void (*section_preload_code_pointer)();
210 extern void (*section_init_code_pointer)();
211 extern void (*section_room_constructor)();
212 extern void (*section_daemon_code_pointer)();
213 extern void (*section_pre_parser_code_pointer)();
214 extern void (*section_parser_code_pointer)();
215 extern void (*section_error_code_pointer)();
216 extern void (*section_music_reset_pointer)();
219 extern void (*room_preload_code_pointer)();
220 extern void (*room_init_code_pointer)();
221 extern void (*room_daemon_code_pointer)();
222 extern void (*room_pre_parser_code_pointer)();
223 extern void (*room_parser_code_pointer)();
224 extern void (*room_error_code_pointer)();
225 extern void (*room_shutdown_code_pointer)();
227 extern char game_save_file[13];
228 extern char *game_save_directory;
230 extern int game_preserve_handle;
232 extern Heap game_menu_heap;
233 extern Popup *game_menu_popup;
234 extern int report_version;
235 extern int art_hags_are_on_hd;
237 extern void game_save_name(
int id);
238 extern void game_set_camera_speed();
243 extern void game_exec_function(
void (*(target))());
245 extern void game_debugger_reset();
246 extern void game_debugger();
253 extern void game_menu_setup();
258 extern void game_menu_shutdown();
260 extern int main_cheating_key(
int mykey);
261 extern int main_normal_key(
int mykey);
262 extern int main_copy_verify();
263 extern void game_cold_data_init();
270 extern void game_control();
275 extern void flag_parse(
const char **myscan);
277 extern void show_logo();
278 extern void show_version();
280 extern void init_game();
285 extern char *game_menu_save_string(
int id);
Definition: anim_timer.h:27