26 #include "common/scummsys.h" 27 #include "common/list.h" 31 #define SUPPORT_FILENAME "lure.dat" 32 #define LURE_DAT_MAJOR 1 33 #define LURE_DAT_MINOR 31 34 #define LURE_MIN_SAVEGAME_MINOR 25 35 #define LURE_SAVEGAME_MINOR 33 40 kLureDebugScripts = 1,
49 #define ERROR_INTERMEDIATE 2 50 #define ERROR_DETAILED 3 83 NPC_SET_ROOM_AND_OFFSET = 28,
84 NPC_TALK_TO_PLAYER = 29,
86 NPC_RESET_PAUSED_LIST = 31,
87 NPC_SET_RAND_DEST = 32,
88 NPC_WALKING_CHECK = 33,
89 NPC_SET_SUPPORT_OFFSET = 34,
90 NPC_SUPPORT_OFFSET_COND = 35,
91 NPC_DISPATCH_ACTION = 36,
92 NPC_TALK_NPC_TO_NPC = 37,
94 NPC_START_TALKING = 39,
99 #define FULL_SCREEN_WIDTH 320 100 #define FULL_SCREEN_HEIGHT 200 101 #define GAME_COLORS 256 102 #define SCREEN_SIZE (FULL_SCREEN_HEIGHT * FULL_SCREEN_WIDTH) 105 #define SUB_PALETTE_SIZE 64 107 #define RES_PALETTE_ENTRIES 220 109 #define MAIN_PALETTE_SIZE 228 111 #define PALETTE_FADE_INC_SIZE 4 114 #define EGA_PALETTE_SIZE 16 115 #define EGA_NUM_LAYERS 4 116 #define EGA_PIXELS_PER_BYTE 8 119 #define SKORL_CATCH_PALETTE_ID 0x4060 120 #define SKORL_CATCH_ANIM_ID 0x4061 122 #define CHUTE_PALETTE_ID 0x404C 123 #define CHUTE_ANIM_ID 0x404D 124 #define CHUTE2_ANIM_ID 0x404f 125 #define CHUTE3_ANIM_ID 0x4051 127 #define BARREL_PALETTE_ID 0xE9F0 128 #define BARREL_ANIM_ID 0xE9F1 130 #define ENDGAME_PALETTE_ID 0xFF00 131 #define ENDGAME_ANIM_ID 0xFF01 133 #define COPY_PROTECTION_RESOURCE_ID 0x4139 134 #define CREDITS_RESOURCE_ID 0x7800 135 #define RESTART_RESOURCE_ID 0x7900 138 #define MAX_ANIM_DECODER_BUFFER_SIZE 300000 140 #define MAX_DESC_SIZE 1024 141 #define MAX_HOTSPOT_NAME_SIZE 80 142 #define MAX_ACTION_NAME_SIZE 15 145 #define MENUBAR_Y_SIZE 8 148 #define CURSOR_WIDTH 16 149 #define CURSOR_HEIGHT 16 150 #define CURSOR_SIZE 256 151 #define CURSOR_RESOURCE_ID 1 153 enum CursorType {CURSOR_ARROW = 0, CURSOR_DISK = 1, CURSOR_TIME_START = 2,
154 CURSOR_TIME_END = 9, CURSOR_CROSS = 10, CURSOR_UP_ARROW = 11, CURSOR_DOWN_ARROW = 12,
155 CURSOR_LEFT_ARROW = 13, CURSOR_RIGHT_ARROW = 14, CURSOR_CAMERA = 15, CURSOR_TALK = 16,
156 CURSOR_MENUBAR = 17, CURSOR_FIGHT_UPPER = 23, CURSOR_FIGHT_MIDDLE = 24,
157 CURSOR_FIGHT_LOWER = 25};
160 #define FONT_RESOURCE_ID 4 162 #define FONT_HEIGHT 8 165 #define MENU_RESOURCE_ID 5 166 #define MENUITEM_NONE 0 167 #define MENUITEM_CREDITS 1 168 #define MENUITEM_RESTART_GAME 2 169 #define MENUITEM_SAVE_GAME 3 170 #define MENUITEM_RESTORE_GAME 4 171 #define MENUITEM_QUIT 5 172 #define MENUITEM_TEXT_SPEED 6 173 #define MENUITEM_SOUND 7 176 #define POPMENU_CHANGE_SENSITIVITY 5 179 #define EGA_DIALOG_TEXT_COLOR 6 180 #define EGA_DIALOG_WHITE_COLOR 2 181 #define VGA_DIALOG_TEXT_COLOR 0xe2 182 #define VGA_DIALOG_WHITE_COLOR 0xe3 183 #define EGA_DIALOG_BG_COLOR 13 184 #define INFO_DIALOG_X 69 185 #define INFO_DIALOG_Y 61 186 #define INFO_DIALOG_WIDTH 191 187 #define TALK_DIALOG_WIDTH 130 188 #define TALK_DIALOG_EDGE_SIZE 3 189 #define TALK_DIALOG_Y 33 190 #define SAVE_DIALOG_X 69 191 #define SAVE_DIALOG_Y 28 194 #define STRINGS_RESOURCE_ID 0x10 195 #define STRINGS_2_RESOURCE_ID 0x11 196 #define STRINGS_3_RESOURCE_ID 0x12 197 #define STRING_ID_RANGE 0x7d0 198 #define STRING_ID_UPPER 0xfa0 201 #define GAME_PALETTE_RESOURCE_ID 0x3f01 202 #define ALT_PALETTE_RESOURCE_ID 0x3f02 203 #define DIALOG_RESOURCE_ID 0x3f03 204 #define TALK_DIALOG_RESOURCE_ID 0x3f04 205 #define ROOM_DATA_RESOURCE_ID 0x3f05 206 #define NPC_SCHEDULES_RESOURCE_ID 0x3f06 207 #define HOTSPOT_DATA_RESOURCE_ID 0x3f07 208 #define HOTSPOT_OVERRIDE_DATA_RESOURCE_ID 0x3f08 209 #define ROOM_EXITS_RESOURCE_ID 0x3f09 210 #define ROOM_EXIT_JOINS_RESOURCE_ID 0x3f0a 211 #define ANIM_DATA_RESOURCE_ID 0x3f0b 212 #define SCRIPT_DATA_RESOURCE_ID 0x3f0c 213 #define SCRIPT2_DATA_RESOURCE_ID 0x3f0d 214 #define HOTSPOT_SCRIPT_LIST_RESOURCE_ID 0x3f0e 215 #define MESSAGES_LIST_RESOURCE_ID 0x3f0f 216 #define ACTION_LIST_RESOURCE_ID 0x3f10 217 #define TALK_HEADER_RESOURCE_ID 0x3f11 218 #define TALK_DATA_RESOURCE_ID 0x3f12 219 #define ROOM_PATHS_RESOURCE_ID 0x3f13 220 #define EXIT_COORDINATES_RESOURCE_ID 0x3f14 221 #define EXIT_HOTSPOT_ID_LIST 0x3f15 222 #define FIGHT_DATA_RESOURCE_ID 0x3f16 223 #define STRING_LIST_RESOURCE_ID 0x3f17 224 #define SOUND_DESC_RESOURCE_ID 0x3f18 225 #define STRING_DECODER_RESOURCE_ID 0x3f19 226 #define AUDIO_INIT_ICON_RESOURCE_ID 0x3F1A 229 #define STARTUP_SCRIPT 0x23FC 232 #define NAMES_RESOURCE_ID 9 233 #define ROLAND_MAIN_SYSEX_RESOURCE_ID 0xB 234 #define ROLAND_MAIN_SOUND_RESOURCE_ID 0xC 235 #define ADLIB_MAIN_SOUND_RESOURCE_ID 0xD 236 #define ROLAND_INTRO_SOUND_RESOURCE_ID 0x30 237 #define ADLIB_INTRO_SOUND_RESOURCE_ID 0x31 238 #define ROLAND_ENDGAME_SOUND_RESOURCE_ID 0xff10 239 #define ADLIB_ENDGAME_SOUND_RESOURCE_ID 0xff11 241 #define NOONE_ID 0x3E7 242 #define PLAYER_ID 0x3E8 243 #define RATPOUCH_ID 0x3E9 244 #define SKORL_ID 0x3EA 245 #define BLACKSMITH_ID 0x3EB 246 #define GWEN_ID 0x3EC 247 #define MALLIN_ID 0x3ED 248 #define MONK1_ID 0x3EE 249 #define GOEWIN_ID 0x3EF 250 #define MONK2_ID 0x3F0 251 #define WAYNE_ID 0x3f1 252 #define CASTLE_SKORL_ID 0x3F3 253 #define FIRST_NONCHARACTER_ID 0x408 254 #define SACK_ID 0x40D 255 #define RACK_SERF_ID 0x411 256 #define PRISONER_ID 0x412 258 #define OIL_BURNER_ID 0x424 259 #define TRANSFORM_ID 0x425 260 #define NELLIE_ID 0x429 261 #define EWAN_ID 0x436 263 #define SKORL_FIGHTER_ID 0x444 264 #define START_EXIT_ID 0x2710 265 #define BOTTLE_HOTSPOT_ID 0x2710 266 #define CELL_DOOR_HOTSPOT_ID 0x2712 267 #define BRICKS_ID 0x2714 268 #define BOOK_ID 0x2723 269 #define START_NONVISUAL_HOTSPOT_ID 0x7530 272 #define GAME_FRAME_DELAY 80 275 #define GAME_TICK_DELAY 1000 278 #define NULL_TICK_PROC_ID 1 279 #define STANDARD_CHARACTER_TICK_PROC 2 280 #define PLAYER_TICK_PROC_ID 3 281 #define VOICE_TICK_PROC_ID 4 282 #define PUZZLED_TICK_PROC_ID 5 283 #define FOLLOWER_TICK_PROC_2 8 284 #define JAILOR_TICK_PROC_ID 9 285 #define STANDARD_ANIM_2_TICK_PROC 11 286 #define STANDARD_ANIM_TICK_PROC 12 287 #define GOEWIN_SHOP_TICK_PROC 27 288 #define TALK_TICK_PROC_ID 37 289 #define PLAYER_FIGHT_TICK_PROC_ID 39 292 #define TALK_MAGIC_ID 0x424 293 #define TALK_RESPONSE_MAGIC_ID 0x1092 296 #define GENERAL_MAGIC_ID 42 297 #define VOICE_ANIM_IDX 1 298 #define PUZZLED_ANIM_IDX 2 299 #define EXCLAMATION_ANIM_IDX 3 300 #define DEFAULT_VOLUME 192 303 #define PLAYER_FIGHT_ANIM_INDEX 10 304 #define VOICE_ANIM_INDEX 21 305 #define BLACKSMITH_HAMMERING_ANIM_INDEX 22 306 #define EWAN_ANIM_INDEX 23 307 #define EWAN_ALT_ANIM_INDEX 24 308 #define PLAYER_ANIM_INDEX 32 309 #define SELENA_ANIM_INDEX 34 310 #define BLACKSMITH_DEFAULT_ANIM_INDEX 35 312 #define CONVERSE_COUNTDOWN_SIZE 40 313 #define IDLE_COUNTDOWN_SIZE 15 314 #define MAX_TELL_COMMANDS 8 315 #define MAX_SAVEGAME_SLOTS 10 317 #define ROOMNUM_VILLAGE_SHOP 35 318 #define ROOMNUM_CAVE 38 319 #define ROOMNUM_CELLAR 42 320 #define ROOMNUM_DINING_HALL 45 325 #define PATHFIND_COUNTDOWN 0 328 #define PIXELFLAG_HAS_TABLE 4 331 #define HOTSPOTFLAG_FOUND 0x80 332 #define HOTSPOTFLAG_SKIP 0x40 333 #define HOTSPOTFLAG_MENU_EXCLUSION 0x20 334 #define HOTSPOTFLAG_ROOM_SPECIFIC 0x10 337 #define RETURN_SUPPORT_ID 0x400 338 #define EXIT_BLOCKED_SUPPORT_ID 0x800 339 #define JUMP_ADDR_2_SUPPORT_ID 0x1403 340 #define GOEWIN_CAVE_SUPPORT_ID 0x1800 341 #define GOEWIN_STANDARD_SUPPORT_ID 0x1C00 344 #define RACK_SERF_SCRIPT_ID_1 0x35C 345 #define RACK_SERF_SCRIPT_ID_2 0x384