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/player.h" 29 #include "mads/core/mads.h" 30 #include "mads/core/heap.h" 31 #include "mads/core/popup.h" 35 #define game_version "1.22" 36 #define game_date "27-Jul-92" 41 #define TENTH_SECOND 6 42 #define QUARTER_SECOND 15 43 #define THIRD_SECOND 20 44 #define HALF_SECOND 30 47 #define TWO_SECONDS 120 48 #define THREE_SECONDS 180 49 #define FOUR_SECONDS 240 50 #define FIVE_SECONDS 300 51 #define SIX_SECONDS 360 52 #define SEVEN_SECONDS 420 53 #define EIGHT_SECONDS 480 54 #define NINE_SECONDS 540 55 #define TEN_SECONDS 600 56 #define FIFTEEN_SECONDS 900 57 #define THIRTY_SECONDS 1800 58 #define ONE_MINUTE 3600 59 #define TWO_MINUTES 7200 60 #define THREE_MINUTES 10800 61 #define UNTIL_THE_COW_EXPLODES 9999999 63 #define CURSOR_NORMAL 1 68 #define CURSOR_RIGHT 6 70 #define FACING_NORTH 8 71 #define FACING_SOUTH 2 74 #define FACING_NORTHEAST 9 75 #define FACING_SOUTHEAST 3 76 #define FACING_SOUTHWEST 1 77 #define FACING_NORTHWEST 7 81 #define DEBUGGER_NONE -1 82 #define DEBUGGER_MAIN 0 83 #define DEBUGGER_HELP 1 84 #define DEBUGGER_PALETTE 2 85 #define DEBUGGER_SCRATCH 3 86 #define DEBUGGER_GLOBAL 4 87 #define DEBUGGER_CONVERSATION 5 88 #define DEBUGGER_MATTE 6 89 #define DEBUGGER_MEMORY 7 90 #define DEBUGGER_STATE 8 91 #define DEBUGGER_PAL_LIST_1 9 92 #define DEBUGGER_PAL_LIST_2 10 94 #define DEBUGGER_MAX_WATCH 12 103 extern int selected_intro;
105 #define EXTRA_MAX_INV_OBJECTS 18 112 extern Player journal_player;
113 extern int journal_room;
122 GAME_RESTORE_MENU = 3,
123 GAME_OPTIONS_MENU = 4,
124 GAME_DIFFICULTY_MENU = 5,
130 #define GAME_MENU_MAX_ITEMS 20 131 #define GAME_MAX_SAVE_SLOTS 99 132 #define GAME_MAX_SAVE_LENGTH 63 133 #define GAME_MAX_SAVE_WIDTH 255 134 #define GAME_MAX_SAVES_ON_SCREEN 7 136 #define GAME_SAVE_SLOT_MEMORY (long)(GAME_MAX_SAVE_SLOTS * (GAME_MAX_SAVE_LENGTH + 1)) 137 #define GAME_DIALOG_HEAP (long)(4096 + sizeof(PopupItem) * GAME_MENU_MAX_ITEMS) 138 #define GAME_FUDGE_FACTOR 256 139 #define GAME_MENU_HEAP (long)(GAME_SAVE_SLOT_MEMORY + GAME_DIALOG_HEAP + GAME_FUDGE_FACTOR) 142 #define GAME_MENU_SCROLL_FIRST 20 143 #define GAME_MENU_SCROLL_SECOND 8 145 #define GAME_MENU_CENTER -1 146 #define GAME_MENU_SPECIAL -2 147 #define GAME_MENU_RIGHT -3 149 #define WIN_NOTHING 0 150 #define WIN_QUICK_DEATH 1 151 #define WIN_SLOW_DEATH 2 152 #define WIN_ALL_THE_MONEY 3 153 #define WIN_A_HEAD_POW 4 155 extern byte game_restore_flag;
156 extern byte game_autosaved;
157 extern int savegame_slot;
159 extern byte game_mouse_cursor_fix;
161 extern word abort_value;
162 extern long abort_clock;
164 extern int logfile_enabled;
167 extern int sound_board_address;
168 extern int sound_board_type;
169 extern int sound_board_irq;
171 extern char chain_line[80];
172 extern int chain_flag;
173 extern int force_chain;
174 extern int key_abort_level;
176 extern int game_keystroke;
177 extern int game_any_keystroke;
178 extern int game_any_emergency;
180 extern int win_status;
182 extern long correction_clock;
185 extern char config_file_name[20];
186 extern char save_game_key[8];
187 extern char restart_game_key[40];
188 extern char save_game_buf[20];
189 extern int last_keypressed;
191 extern void (*game_menu_routine)();
192 extern void (*game_menu_init)();
193 extern void (*game_menu_exit)();
194 extern void (*game_emergency_save)();
198 extern int debugger_state;
199 extern bool debugger_matte_before;
200 extern int debugger_memory_skip;
201 extern bool debugger_memory_all;
202 extern bool debugger_memory_keywait;
203 extern void (*debugger_reset)();
204 extern void (*debugger_update)();
207 extern void (*section_preload_code_pointer)();
208 extern void (*section_init_code_pointer)();
209 extern void (*section_room_constructor)();
210 extern void (*section_daemon_code_pointer)();
211 extern void (*section_pre_parser_code_pointer)();
212 extern void (*section_parser_code_pointer)();
213 extern void (*section_error_code_pointer)();
214 extern void (*section_music_reset_pointer)();
217 extern void (*room_preload_code_pointer)();
218 extern void (*room_init_code_pointer)();
219 extern void (*room_daemon_code_pointer)();
220 extern void (*room_pre_parser_code_pointer)();
221 extern void (*room_parser_code_pointer)();
222 extern void (*room_error_code_pointer)();
223 extern void (*room_shutdown_code_pointer)();
225 extern char game_save_file[13];
226 extern char *game_save_directory;
228 extern int game_preserve_handle;
230 extern Heap game_menu_heap;
231 extern Popup *game_menu_popup;
232 extern int report_version;
233 extern int art_hags_are_on_hd;
235 extern void game_save_name(
int id);
236 extern void game_set_camera_speed();
241 extern void game_exec_function(
void (*(target))());
243 extern void game_debugger_reset();
244 extern void game_debugger();
251 extern void game_menu_setup();
256 extern void game_menu_shutdown();
258 extern int main_cheating_key(
int mykey);
259 extern int main_normal_key(
int mykey);
260 extern int main_copy_verify();
261 extern void game_cold_data_init();
268 extern void game_control();
273 extern void flag_parse(
const char **myscan);
275 extern void show_logo();
276 extern void show_version();
278 extern void init_game();
Definition: anim_timer.h:27