diff options
author | Oliver Kiehl | 2003-04-25 15:17:53 +0000 |
---|---|---|
committer | Oliver Kiehl | 2003-04-25 15:17:53 +0000 |
commit | c36bdb3e118670cafdde92659db0719438dc8487 (patch) | |
tree | fdc98c37f55c5bf02b39ae05e2506468ea734fab | |
parent | da4a76ed04bd197a9527802d4b72556786226f37 (diff) | |
download | scummvm-rg350-c36bdb3e118670cafdde92659db0719438dc8487.tar.gz scummvm-rg350-c36bdb3e118670cafdde92659db0719438dc8487.tar.bz2 scummvm-rg350-c36bdb3e118670cafdde92659db0719438dc8487.zip |
Committing my stuff under pressure from Endy ;)
please note that there are still many bugs in here. several stuff
isn't endian safe either. SkyLogic needs to get split up as well.
svn-id: r7106
-rw-r--r-- | sky/compact.cpp | 257 | ||||
-rw-r--r-- | sky/compact.h | 3238 | ||||
-rw-r--r-- | sky/debug.cpp | 418 | ||||
-rw-r--r-- | sky/debug.h | 31 | ||||
-rw-r--r-- | sky/logic.cpp | 1099 | ||||
-rw-r--r-- | sky/logic.h | 181 | ||||
-rw-r--r-- | sky/module.mk | 3 | ||||
-rw-r--r-- | sky/sky.cpp | 44 | ||||
-rw-r--r-- | sky/sky.h | 13 | ||||
-rw-r--r-- | sky/skydefs.h | 4200 | ||||
-rw-r--r-- | sky/struc.h | 121 | ||||
-rw-r--r-- | sky/text.cpp | 8 | ||||
-rw-r--r-- | sky/text.h | 2 |
13 files changed, 9557 insertions, 58 deletions
diff --git a/sky/compact.cpp b/sky/compact.cpp new file mode 100644 index 0000000000..4707332f05 --- /dev/null +++ b/sky/compact.cpp @@ -0,0 +1,257 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * $Header$ + * + */ + +#include "sky/compact.h" + +#include "sky/compacts/0compact.h" +#include "sky/compacts/1compact.h" +#include "sky/compacts/29comp.h" +#include "sky/compacts/2compact.h" +#include "sky/compacts/30comp.h" +#include "sky/compacts/3compact.h" +#include "sky/compacts/4compact.h" +#include "sky/compacts/5compact.h" +#include "sky/compacts/66comp.h" +#include "sky/compacts/90comp.h" +#include "sky/compacts/9compact.h" +#include "sky/compacts/linc_gen.h" +#include "sky/compacts/lincmenu.h" +#include "sky/compacts/z_compac.h" + +#define COMPACT_SIZE (sizeof(compactOffsets)/sizeof(uint32)) +#define EXTCOMPACT_SIZE (sizeof(extCompactOffsets)/sizeof(uint32)) +#define UNKNOWNSTUFF_SIZE (sizeof(unknownStuffOffsets)/sizeof(uint32)) + +#define OFFS(type,item) (((uint32)(&((type*)0)->item))) +#define MK32(type,item) OFFS(type, item),0,0,0 +#define MK16(type,item) OFFS(type, item),0 + +namespace SkyCompact { + +static const uint32 compactOffsets[] = { + MK16(Compact, logic), + MK16(Compact, status), + MK16(Compact, sync), + MK16(Compact, screen), + MK16(Compact, place), + MK32(Compact, getToTable), + MK16(Compact, xcood), + MK16(Compact, ycood), + MK16(Compact, frame), + MK16(Compact, cursorText), + MK16(Compact, mouseOn), + MK16(Compact, mouseOff), + MK16(Compact, mouseClick), + MK16(Compact, mouseRelX), + MK16(Compact, mouseRelY), + MK16(Compact, mouseSizeX), + MK16(Compact, mouseSizeY), + MK16(Compact, actionScript), + MK16(Compact, upFlag), + MK16(Compact, downFlag), + MK16(Compact, getToFlag), + MK16(Compact, flag), + MK16(Compact, mood), + MK32(Compact, grafixProg), + MK16(Compact, offset), + MK16(Compact, mode), + MK16(Compact, baseSub), + MK16(Compact, baseSub_off), +}; + +static const uint32 extCompactOffsets[] = { + MK16(ExtCompact, actionSub), + MK16(ExtCompact, actionSub_off), + MK16(ExtCompact, getToSub), + MK16(ExtCompact, getToSub_off), + MK16(ExtCompact, extraSub), + MK16(ExtCompact, extraSub_off), + MK16(ExtCompact, dir), + MK16(ExtCompact, stopScript), + MK16(ExtCompact, miniBump), + MK16(ExtCompact, leaving), + MK16(ExtCompact, atWatch), + MK16(ExtCompact, atWas), + MK16(ExtCompact, alt), + MK16(ExtCompact, request), + MK16(ExtCompact, spWidth_xx), + MK16(ExtCompact, spColour), + MK16(ExtCompact, spTextId), + MK16(ExtCompact, spTime), + MK16(ExtCompact, arAnimIndex), + MK32(ExtCompact, turnProg), + MK16(ExtCompact, waitingFor), + MK16(ExtCompact, arTargetX), + MK16(ExtCompact, arTargetY), + MK32(ExtCompact, animScratch), + MK16(ExtCompact, megaSet), + MK16(ExtCompact, gridWidth), + MK16(ExtCompact, colOffset), + MK16(ExtCompact, colWidth), + MK16(ExtCompact, lastChr), + MK32(ExtCompact, animUp), + MK32(ExtCompact, animDown), + MK32(ExtCompact, animLeft), + MK32(ExtCompact, animRight), + MK32(ExtCompact, standUp), + MK32(ExtCompact, standDown), + MK32(ExtCompact, standLeft), + MK32(ExtCompact, standRight), + MK32(ExtCompact, standTalk), +}; + +static const uint32 unknownStuffOffsets[] = { + MK16(UnknownStuff, unknownStuff_1_1[0]), + MK16(UnknownStuff, unknownStuff_1_1[1]), + MK16(UnknownStuff, unknownStuff_1_1[2]), + MK16(UnknownStuff, unknownStuff_1_1[3]), + MK32(UnknownStuff, unknownStuff_1_2[0]), + MK32(UnknownStuff, unknownStuff_1_2[1]), + MK32(UnknownStuff, unknownStuff_1_2[2]), + MK32(UnknownStuff, unknownStuff_1_2[3]), + MK32(UnknownStuff, unknownStuff_1_2[4]), + MK32(UnknownStuff, unknownStuff_1_2[5]), + MK32(UnknownStuff, unknownStuff_1_2[6]), + MK32(UnknownStuff, unknownStuff_1_2[7]), + MK32(UnknownStuff, unknownStuff_1_2[8]), + MK32(UnknownStuff, unknownStuff_1_2[9]), + MK32(UnknownStuff, unknownStuff_1_2[10]), + MK32(UnknownStuff, unknownStuff_1_2[11]), + MK32(UnknownStuff, unknownStuff_1_2[12]), + MK32(UnknownStuff, unknownStuff_1_2[13]), + MK32(UnknownStuff, unknownStuff_1_2[14]), + MK32(UnknownStuff, unknownStuff_1_2[15]), + MK32(UnknownStuff, unknownStuff_1_2[16]), + MK32(UnknownStuff, unknownStuff_1_2[17]), + MK32(UnknownStuff, unknownStuff_1_2[18]), + MK32(UnknownStuff, unknownStuff_1_2[19]), + MK32(UnknownStuff, unknownStuff_1_2[20]), + MK32(UnknownStuff, unknownStuff_1_2[21]), + MK32(UnknownStuff, unknownStuff_1_2[22]), + MK32(UnknownStuff, unknownStuff_1_2[23]), + MK32(UnknownStuff, unknownStuff_1_2[24]), + MK32(UnknownStuff, unknownStuff_1_2[25]), + MK32(UnknownStuff, unknownStuff_1_2[26]), + MK32(UnknownStuff, unknownStuff_1_2[27]), + MK32(UnknownStuff, unknownStuff_1_2[28]), + MK32(UnknownStuff, unknownStuff_1_2[29]), + MK32(UnknownStuff, unknownStuff_1_2[30]), + MK32(UnknownStuff, unknownStuff_1_2[31]), + MK32(UnknownStuff, unknownStuff_1_2[32]), + MK32(UnknownStuff, unknownStuff_1_2[33]), + MK16(UnknownStuff, unknownStuff_2_1[0]), + MK16(UnknownStuff, unknownStuff_2_1[1]), + MK16(UnknownStuff, unknownStuff_2_1[2]), + MK16(UnknownStuff, unknownStuff_2_1[3]), + MK32(UnknownStuff, unknownStuff_2_2[0]), + MK32(UnknownStuff, unknownStuff_2_2[1]), + MK32(UnknownStuff, unknownStuff_2_2[2]), + MK32(UnknownStuff, unknownStuff_2_2[3]), + MK32(UnknownStuff, unknownStuff_2_2[4]), + MK32(UnknownStuff, unknownStuff_2_2[5]), + MK32(UnknownStuff, unknownStuff_2_2[6]), + MK32(UnknownStuff, unknownStuff_2_2[7]), + MK32(UnknownStuff, unknownStuff_2_2[8]), + MK32(UnknownStuff, unknownStuff_2_2[9]), + MK32(UnknownStuff, unknownStuff_2_2[10]), + MK32(UnknownStuff, unknownStuff_2_2[11]), + MK32(UnknownStuff, unknownStuff_2_2[12]), + MK32(UnknownStuff, unknownStuff_2_2[13]), + MK32(UnknownStuff, unknownStuff_2_2[14]), + MK32(UnknownStuff, unknownStuff_2_2[15]), + MK32(UnknownStuff, unknownStuff_2_2[16]), + MK32(UnknownStuff, unknownStuff_2_2[17]), + MK32(UnknownStuff, unknownStuff_2_2[18]), + MK32(UnknownStuff, unknownStuff_2_2[19]), + MK32(UnknownStuff, unknownStuff_2_2[20]), + MK32(UnknownStuff, unknownStuff_2_2[21]), + MK32(UnknownStuff, unknownStuff_2_2[22]), + MK32(UnknownStuff, unknownStuff_2_2[23]), + MK32(UnknownStuff, unknownStuff_2_2[24]), + MK32(UnknownStuff, unknownStuff_2_2[25]), + MK32(UnknownStuff, unknownStuff_2_2[26]), + MK32(UnknownStuff, unknownStuff_2_2[27]), + MK32(UnknownStuff, unknownStuff_2_2[28]), + MK32(UnknownStuff, unknownStuff_2_2[29]), + MK32(UnknownStuff, unknownStuff_2_2[30]), + MK32(UnknownStuff, unknownStuff_2_2[31]), + MK32(UnknownStuff, unknownStuff_2_2[32]), + MK32(UnknownStuff, unknownStuff_2_2[33]), + MK16(UnknownStuff, unknownStuff_3_1[0]), + MK16(UnknownStuff, unknownStuff_3_1[1]), + MK16(UnknownStuff, unknownStuff_3_1[2]), + MK16(UnknownStuff, unknownStuff_3_1[3]), + MK32(UnknownStuff, unknownStuff_3_2[0]), + MK32(UnknownStuff, unknownStuff_3_2[1]), + MK32(UnknownStuff, unknownStuff_3_2[2]), + MK32(UnknownStuff, unknownStuff_3_2[3]), + MK32(UnknownStuff, unknownStuff_3_2[4]), + MK32(UnknownStuff, unknownStuff_3_2[5]), + MK32(UnknownStuff, unknownStuff_3_2[6]), + MK32(UnknownStuff, unknownStuff_3_2[7]), + MK32(UnknownStuff, unknownStuff_3_2[8]), + MK32(UnknownStuff, unknownStuff_3_2[9]), + MK32(UnknownStuff, unknownStuff_3_2[10]), + MK32(UnknownStuff, unknownStuff_3_2[11]), + MK32(UnknownStuff, unknownStuff_3_2[12]), + MK32(UnknownStuff, unknownStuff_3_2[13]), + MK32(UnknownStuff, unknownStuff_3_2[14]), + MK32(UnknownStuff, unknownStuff_3_2[15]), + MK32(UnknownStuff, unknownStuff_3_2[16]), + MK32(UnknownStuff, unknownStuff_3_2[17]), + MK32(UnknownStuff, unknownStuff_3_2[18]), + MK32(UnknownStuff, unknownStuff_3_2[19]), + MK32(UnknownStuff, unknownStuff_3_2[20]), + MK32(UnknownStuff, unknownStuff_3_2[21]), + MK32(UnknownStuff, unknownStuff_3_2[22]), + MK32(UnknownStuff, unknownStuff_3_2[23]), + MK32(UnknownStuff, unknownStuff_3_2[24]), + MK32(UnknownStuff, unknownStuff_3_2[25]), + MK32(UnknownStuff, unknownStuff_3_2[26]), + MK32(UnknownStuff, unknownStuff_3_2[27]), + MK32(UnknownStuff, unknownStuff_3_2[28]), + MK32(UnknownStuff, unknownStuff_3_2[29]), + MK32(UnknownStuff, unknownStuff_3_2[30]), + MK32(UnknownStuff, unknownStuff_3_2[31]), + MK32(UnknownStuff, unknownStuff_3_2[32]), + MK32(UnknownStuff, unknownStuff_3_2[33]), +}; + +void *getCompactElem(Compact *cpt, uint32 off) { + if (off < COMPACT_SIZE) + return((uint8 *)cpt + compactOffsets[off]); + + off -= COMPACT_SIZE; + if (off < EXTCOMPACT_SIZE) + return((uint8 *)(cpt->extCompact) + extCompactOffsets[off]); + + off -= EXTCOMPACT_SIZE; + if (off < 5*5*4) + return ((void **)(cpt->turnTable))[off/4]; + + off -= 5*5*4; + if (off < UNKNOWNSTUFF_SIZE) + return((uint8 *)(cpt->unknownStuff) + unknownStuffOffsets[off]); + + error("Offset %X out of bounds of compact", off + COMPACT_SIZE + EXTCOMPACT_SIZE + 5*5*4); +} +}; + diff --git a/sky/compact.h b/sky/compact.h new file mode 100644 index 0000000000..cfdfcc076f --- /dev/null +++ b/sky/compact.h @@ -0,0 +1,3238 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * $Header$ + * + */ + +#ifndef SKYCOMPACT_H +#define SKYCOMPACT_H + +#include "sky/sky.h" +#include "sky/struc.h" +#include "sky/skydefs.h" + +namespace SkyCompact { + void *getCompactElem(Compact *cpt, uint32 off); + + extern uint16 slide2_seq[]; + extern uint16 m_ss_st_up[]; + extern uint16 crouch_seq[]; + extern uint16 fost_open_cup[]; + extern Compact fan3; + extern uint16 ss_smokes_1[]; + extern Compact fan7; + extern uint16 slide_seq[]; + extern uint16 f_ss_st_right[]; + extern uint16 f_ss_left[]; + extern uint16 m_ss_down[]; + extern uint16 s2_pal[]; + extern uint16 foster_hanging[]; + extern Compact fan4; + extern uint16 rs_ss_to_1[]; + extern uint16 rs_foster_to_one[]; + extern uint16 m_ss_r_to_d[]; + extern uint16 f_ss_l_to_u[]; + extern Compact load_point; + extern uint16 rs_foster_5_0[]; + extern uint16 fost_pull_knob[]; + extern uint16 m_ss_r_to_u[]; + extern uint16 rs_foster_to_1[]; + extern uint16 monitor_seq[]; + extern uint16 joey_door_seq[]; + extern uint16 small_opens[]; + extern uint16 fost_knob_locked[]; + extern uint16 s4_pal[]; + extern uint16 alarm_seq[]; + extern uint16 reverse_seq[]; + extern Compact press; + extern uint16 furnace_seq[]; + extern uint16 load_point_seq[]; + extern uint16 m_ss_right[]; + extern uint16 use_bar2[]; + extern uint16 fost_cant_open[]; + extern uint16 f_ss_l_to_r[]; + extern uint16 f_ss_u_to_d[]; + extern uint16 push_small[]; + extern uint16 m_ss_l_to_d[]; + extern uint16 s0_pal[]; + extern uint16 foster_shot[]; + extern uint16 lazer_stop_seq[]; + extern uint16 rs_start_alarm[]; + extern Compact fan1; + extern uint16 f_ss_d_to_u[]; + extern uint16 ss_smokes_3[]; + extern uint16 lights1_seq[]; + extern uint16 eye_open[]; + extern uint16 press_seq[]; + extern uint16 cup_close_seq[]; + extern uint16 low_lift_down_seq1[]; + extern uint16 barrel_in_seq[]; + extern uint16 rs_big_foster[]; + extern uint16 screen0_low_logic[]; + extern uint16 rs_foster_2_0[]; + extern uint16 foster_g_d[]; + extern uint16 fost_but_seq[]; + extern uint16 jobs_look_scrn[]; + extern uint16 jobs_chuck_look[]; + extern uint16 eye_blink[]; + extern uint16 fan1_seq[]; + extern uint16 m_ss_st_right[]; + extern uint16 screen0_low_mouse[]; + extern uint16 fan7_seq[]; + extern uint16 f_ss_r_to_d[]; + extern uint16 r1_opens[]; + extern uint16 f_ss_u_to_l[]; + extern uint16 rs_mini_ss[]; + extern uint16 s3_pal[]; + extern uint16 ss_smokes_2[]; + extern uint16 m_ss_up[]; + extern uint16 m_ss_left[]; + extern uint16 m_ss_st_down[]; + extern uint16 m_ss_st_left[]; + extern uint16 m_ss_st_talk[]; + extern uint16 m_ss_u_to_d[]; + extern uint16 m_ss_u_to_l[]; + extern uint16 m_ss_u_to_r[]; + extern uint16 m_ss_d_to_u[]; + extern uint16 m_ss_d_to_l[]; + extern uint16 m_ss_d_to_r[]; + extern uint16 m_ss_l_to_u[]; + extern uint16 m_ss_l_to_r[]; + extern uint16 m_ss_r_to_l[]; + extern uint16 *mini_so_turnTable[5][5]; + extern ExtCompact mini_so_ext; + extern Compact mini_so; + extern uint16 unload_seq1[]; + extern uint16 open_r1[]; + extern uint16 get_bar_out[]; + extern uint16 fost_close_cup[]; + extern uint16 barrel_down_seq2[]; + extern uint16 ss_kick[]; + extern uint16 f_ss_up[]; + extern uint16 f_ss_down[]; + extern uint16 f_ss_right[]; + extern uint16 f_ss_st_up[]; + extern uint16 f_ss_st_down[]; + extern uint16 f_ss_st_left[]; + extern uint16 f_ss_u_to_r[]; + extern uint16 f_ss_d_to_l[]; + extern uint16 f_ss_d_to_r[]; + extern uint16 f_ss_l_to_d[]; + extern uint16 f_ss_r_to_u[]; + extern uint16 f_ss_r_to_l[]; + extern uint16 *full_so_turnTable[5][5]; + extern ExtCompact full_so_ext; + extern Compact full_so; + extern uint16 panel_seq[]; + extern uint16 chip_list_0[]; + extern uint16 use_the_bar[]; + extern uint16 small_closes[]; + extern uint16 jobs_buttons[]; + extern uint16 up_stairs[]; + extern uint16 chuck_seq[]; + extern uint16 rs_foster_to_0[]; + extern Compact fire_notice; + extern uint16 screen0_high_mouse[]; + extern uint16 foster_g_up[]; + extern uint16 rs_foster_s3[]; + extern uint16 rs_mini_foster[]; + extern uint16 bolt1_seq[]; + extern uint16 rs_foster_4_2[]; + extern uint16 screen0_high_logic[]; + extern uint16 fan6_seq[]; + extern uint16 fexit_opens[]; + extern uint16 fost_push_knob[]; + extern uint16 lazer_run_seq[]; + extern uint16 try_to_open_r0[]; + extern uint16 fast_list_cut2[]; + extern uint16 knob_down[]; + extern uint16 chip_list_sc0[]; + extern uint16 sc0_cut_logic[]; + extern Compact lazer_gun; + extern uint16 up_stairs2[]; + extern uint16 barrel_down_seq[]; + extern uint16 daft_seq[]; + extern uint16 down_stairs2[]; + extern uint16 joey_jump_seq[]; + extern uint16 fost_lean_seq[]; + extern uint16 joey_wake_seq[]; + extern uint16 low_lift_down_seq2[]; + extern uint16 lazer_start_seq[]; + extern uint16 get_the_bar[]; + extern uint16 fan4_seq[]; + extern uint16 tv_seq[]; + extern uint16 bolt2_seq[]; + extern Compact fan6; + extern uint16 jobs_pull_knob[]; + extern uint16 convey_seq[]; + extern uint16 fan5_seq[]; + extern uint16 guard_lean_out[]; + extern uint16 put_bar_away[]; + extern uint16 fan3_seq[]; + extern uint16 s1_pal[]; + extern uint16 eye_shoot[]; + extern uint16 furnace_door_open[]; + extern uint16 ss_smokes_4[]; + extern Compact fan5; + extern uint16 jobs_close[]; + extern uint16 cup_open_seq[]; + extern uint16 guard_lean_back[]; + extern uint16 ss_kick_2[]; + extern uint16 shot1_seq[]; + extern uint16 fexit_closes[]; + extern uint16 low_lift_down_seq3[]; + extern uint16 rs_restart_barrel[]; + extern uint16 open_r0[]; + extern uint16 rs_foster_2_4[]; + extern uint16 ss_shoot_seq[]; + extern uint16 shut_r1[]; + extern uint16 down_stairs[]; + extern uint16 barrel_seq[]; + extern uint16 jobs_scratch[]; + extern uint16 unload_seq2[]; + extern uint16 rs_foster_0_2[]; + extern uint16 r1_closes[]; + extern uint16 rs_convey[]; + extern uint16 jobs_push_knob[]; + extern uint16 knob_up[]; + extern uint16 crouch_talk[]; + extern uint16 shot2_seq[]; + extern uint16 joey_fly2[]; + extern uint16 jobs_key_seq[]; + extern uint16 rs_mega_2_0[]; + extern uint16 uncrouch_seq[]; + extern uint16 fost_must_close[]; + extern uint16 joey_fly1[]; + extern uint16 lazer_gun_seq[]; + extern uint16 rs_mega_0_2[]; + extern Compact fan2; + extern uint16 fan2_seq[]; + extern void *data_1[]; + extern Compact cancel_button; + extern Compact button_4; + extern Compact full_screen; + extern Compact button_5; + extern uint16 s101_logic[]; + extern Compact button_7; + extern uint16 s101_mouse[]; + extern Compact button_1; + extern uint16 s101_pal[]; + extern Compact button_0; + extern Compact button_9; + extern Compact button_8; + extern Compact retina_scan; + extern Compact button_6; + extern Compact button_3; + extern Compact button_2; + extern uint16 s101_chip_list[]; + extern uint16 restore_seq[]; + extern Compact restore_butt; + extern uint16 s102_logic[]; + extern uint16 exit_seq[]; + extern uint16 restart_seq[]; + extern uint16 s102_mouse[]; + extern Compact exit_butt; + extern uint16 s102_pal[]; + extern uint16 s102_chip_list[]; + extern Compact restart_butt; + extern uint16 liyt_4_seq[]; + extern uint16 litebank_seq[]; + extern uint16 rs_foster_from_linc[]; + extern uint16 stand_10_seq[]; + extern uint16 pod_up[]; + extern uint16 rs_foster_11_10[]; + extern uint16 lift_10_close[]; + extern uint16 s10_floor_table[]; + extern uint16 monitor_10_seq[]; + extern uint16 sit_10_seq[]; + extern Compact lift_slot_10; + extern uint16 scanline_seq[]; + extern Compact s10_floor; + extern uint16 rs_foster_10_11[]; + extern Compact terminal_10; + extern uint16 linc_card_seq[]; + extern uint16 liyt_1_seq[]; + extern uint16 fsit_talk_seq[]; + extern Compact scanner_10; + extern Compact pod_light; + extern Compact pod; + extern Compact fake_floor_10; + extern uint16 lift_10_open[]; + extern uint16 linc_10_table[]; + extern Compact linc_10; + extern uint16 s10_logic[]; + extern uint16 liyt_2_seq[]; + extern uint16 s10_chip_list[]; + extern uint16 pod_down[]; + extern Compact monitor_10; + extern uint16 liyt_3_seq[]; + extern Compact lift_10; + extern Compact litebank; + extern uint16 pod_light_seq[]; + extern uint16 card2_seq[]; + extern Compact liyt_3; + extern Compact liyt_2; + extern uint16 s10_pal[]; + extern uint16 s10_mouse[]; + extern Compact liyt_4; + extern Compact left_exit_10; + extern Compact liyt_1; + extern Compact slat_3; + extern uint16 fallin_seq[]; + extern uint16 s11_mouse[]; + extern uint16 s11_pal[]; + extern Compact locker_11; + extern uint16 locker_11_open[]; + extern uint16 bits2_seq[]; + extern Compact soccer_2; + extern uint16 usecard_11_seq[]; + extern Compact bits; + extern Compact cable_fall; + extern Compact soccer_4; + extern uint16 s11_floor_table[]; + extern Compact soccer_1; + extern uint16 rs_foster_1_11[]; + extern uint16 s11_logic[]; + extern uint16 close_11_locker[]; + extern uint16 s11_chip_list[]; + extern Compact slat_1; + extern uint16 locker_11_close[]; + extern Compact bits2; + extern Compact slot_11; + extern uint16 bits_seq[]; + extern Compact slat_4; + extern uint16 fallin2_seq[]; + extern uint16 smashed_window_seq[]; + extern Compact spy_11; + extern Compact soccer_3; + extern uint16 cable_fall1_seq[]; + extern Compact cable_fall2; + extern Compact right_exit_11; + extern Compact smashed_window; + extern Compact soccer_5; + extern uint16 open_11_locker[]; + extern Compact slat_2; + extern uint16 fallin3_seq[]; + extern Compact s11_floor; + extern uint16 get_cable_11[]; + extern uint16 cant_open_locker[]; + extern Compact slat_5; + extern uint16 cable_fall2_seq[]; + extern uint16 botbelt_seq[]; + extern uint16 s12_floor_table[]; + extern uint16 swap1_seq[]; + extern uint16 rs_joey_start_12[]; + extern uint16 rs_lamb_start_fact[]; + extern uint16 welder_seq[]; + extern uint16 rs_foster_7_12[]; + extern uint16 factory_spanner_seq[]; + extern uint16 pipes_seq[]; + extern uint16 swap3_seq[]; + extern Compact fact1_right_exit; + extern Compact pipes; + extern Compact botbelt; + extern uint16 joey_list_12[]; + extern Compact welder; + extern Compact factory_exit; + extern uint16 s12_pal[]; + extern uint16 cant_lift_seq[]; + extern Compact topbelt; + extern uint16 s12_fast_list[]; + extern uint16 s12_new_chip[]; + extern Compact console_12; + extern uint16 anita_walk_seq[]; + extern uint16 anita_work_seq[]; + extern uint16 anita_turn_seq[]; + extern uint16 anita_turn_back[]; + extern uint16 rs_foster_12_7[]; + extern uint16 s12_mouse[]; + extern uint16 s12_chip_list[]; + extern Compact stump; + extern uint16 swap2_seq[]; + extern Compact anita_spy; + extern Compact s12_floor; + extern uint16 s12_logic[]; + extern uint16 topbelt_seq[]; + extern uint16 foreman_l_to_r[]; + extern uint16 rs_foster[]; + extern uint16 gears_seq[]; + extern Compact fact2_exit_left; + extern Compact fact_console; + extern Compact pipe1; + extern uint16 lite1_table[]; + extern Compact sensor; + extern uint16 foreman_l_to_d[]; + extern uint16 foreman_st_up[]; + extern uint16 foreman_work_seq[]; + extern uint16 nu_s13_chip[]; + extern uint16 rs_storeman[]; + extern uint16 foreman_left[]; + extern uint16 closecoat[]; + extern uint16 pipe1_seq[]; + extern uint16 foreman_r_to_l[]; + extern Compact fact2_exit_right; + extern uint16 foreman_l_to_u[]; + extern Compact lite1; + extern uint16 s13_floor_table[]; + extern uint16 fsearch_seq[]; + extern Compact fact2_store_exit; + extern Compact pipe4; + extern uint16 foreman_u_to_d[]; + extern uint16 foreman_right[]; + extern uint16 belts2_seq[]; + extern uint16 forfrisk_seq[]; + extern uint16 rs_foreman[]; + extern uint16 pipe2_seq[]; + extern uint16 rs_foster_13_12[]; + extern Compact s13_floor; + extern Compact cogs; + extern uint16 foreman_r_to_u[]; + extern Compact belts2; + extern uint16 foreman_d_to_l[]; + extern uint16 s13_chip_list[]; + extern uint16 foreman_st_talk[]; + extern uint16 fact_console_dead[]; + extern uint16 foreman_st_down[]; + extern Compact lite2; + extern Compact gears; + extern uint16 fost_cog_seq[]; + extern uint16 cogs_seq[]; + extern Compact pipe3; + extern uint16 lite2_seq[]; + extern Compact belts1; + extern uint16 s13_logic[]; + extern uint16 s13_mouse[]; + extern Compact sensors; + extern uint16 fact_console_seq[]; + extern uint16 foreman_down[]; + extern uint16 foreman_up[]; + extern uint16 foreman_st_left[]; + extern uint16 foreman_st_right[]; + extern uint16 foreman_u_to_l[]; + extern uint16 foreman_u_to_r[]; + extern uint16 foreman_d_to_u[]; + extern uint16 foreman_d_to_r[]; + extern uint16 foreman_r_to_d[]; + extern uint16 *foreman_turnTable[5][5]; + extern ExtCompact foreman_ext; + extern Compact foreman; + extern uint16 lite1_seq[]; + extern uint16 pipe3_seq[]; + extern uint16 opencoat_seq[]; + extern uint16 sensor_seq[]; + extern Compact fact2_spy_and_window; + extern uint16 belts1_seq[]; + extern Compact pipe2; + extern uint16 s13_pal[]; + extern uint16 new_13_chip[]; + extern uint16 rs_foster_12_13[]; + extern uint16 s13_fast_list[]; + extern uint16 pipe4_seq[]; + extern uint16 armsup_seq[]; + extern uint16 rs_foster_14_13[]; + extern uint16 rs_foster_13_14[]; + extern uint16 radman_l_to_r[]; + extern uint16 radman_up[]; + extern uint16 radman_down[]; + extern uint16 radman_left[]; + extern uint16 radman_right[]; + extern uint16 radman_st_up[]; + extern uint16 radman_st_down[]; + extern uint16 radman_st_left[]; + extern uint16 radman_st_right[]; + extern uint16 radman_st_talk[]; + extern uint16 radman_u_to_d[]; + extern uint16 radman_u_to_l[]; + extern uint16 radman_u_to_r[]; + extern uint16 radman_d_to_u[]; + extern uint16 radman_d_to_l[]; + extern uint16 radman_d_to_r[]; + extern uint16 radman_l_to_u[]; + extern uint16 radman_l_to_d[]; + extern uint16 radman_r_to_u[]; + extern uint16 radman_r_to_d[]; + extern uint16 radman_r_to_l[]; + extern uint16 *radman_turnTable[5][5]; + extern ExtCompact radman_ext; + extern Compact radman; + extern Compact locker2; + extern uint16 start_joey_14[]; + extern Compact fact3_exit_left; + extern uint16 rs_anita_to_14[]; + extern uint16 s14_logic[]; + extern uint16 close_locker_seq[]; + extern uint16 locker_close_seq[]; + extern uint16 s14_floor_table[]; + extern Compact s14_floor; + extern uint16 rad_open_locker[]; + extern uint16 change_back6[]; + extern uint16 change1_seq[]; + extern uint16 change_back3[]; + extern uint16 rs_foster_16_14[]; + extern Compact console_14; + extern uint16 s14_pal[]; + extern uint16 change3_seq[]; + extern uint16 change_back4[]; + extern uint16 open_locker_seq[]; + extern uint16 change4_seq[]; + extern uint16 foster_give_seq[]; + extern Compact locker3; + extern Compact rad_screen; + extern uint16 change5_seq[]; + extern Compact locker1; + extern Compact coat; + extern uint16 change_back5[]; + extern Compact machine; + extern uint16 anita_give_seq[]; + extern uint16 s14_fast_list[]; + extern Compact fact3_exit_right; + extern uint16 joey_list_14[]; + extern uint16 rad_close_locker[]; + extern uint16 locker_open_seq[]; + extern uint16 s14_mouse[]; + extern uint16 s14_chip_list[]; + extern uint16 change_back2[]; + extern uint16 change2_seq[]; + extern uint16 change_back1[]; + extern uint16 change6_seq[]; + extern uint16 rs_foster_13_15[]; + extern Compact flap; + extern uint16 weld_seq[]; + extern uint16 rs_foster_15_13[]; + extern Compact whole_floor; + extern uint16 s15_logic[]; + extern uint16 flap_seq[]; + extern uint16 s15_floor_table[]; + extern Compact s15_flooor; + extern uint16 flip_seq[]; + extern Compact skey; + extern uint16 s15_pal[]; + extern Compact wd40; + extern Compact junction_box; + extern uint16 rs_joey_15_13[]; + extern Compact store_exit; + extern uint16 s15_fast_list[]; + extern Compact nu_floor; + extern Compact floor_putty; + extern uint16 s15_mouse[]; + extern uint16 joey_list_15[]; + extern uint16 get_putty_seq[]; + extern uint16 shelf_get_seq[]; + extern uint16 s15_fake_mouse[]; + extern uint16 s15_chip_list[]; + extern Compact reactor_lower; + extern uint16 foster2_die_seq[]; + extern Compact reactor_console; + extern uint16 s16_fast_list[]; + extern Compact entrance_exit; + extern uint16 console_16_seq[]; + extern uint16 s16_floor_table[]; + extern Compact s16_floor; + extern uint16 s16_pal[]; + extern uint16 s16_chip_list[]; + extern uint16 rad_con_look[]; + extern uint16 s16_logic[]; + extern uint16 foster_die_seq[]; + extern Compact reactor_door; + extern uint16 s16_mouse[]; + extern uint16 rs_foster_14_16[]; + extern uint16 fost_con_look[]; + extern uint16 pulseb_seq[]; + extern uint16 s17_floor_table[]; + extern Compact s17_floor; + extern uint16 get_card_seq[]; + extern Compact core_exit; + extern uint16 rs_foster_17_16[]; + extern uint16 s17_chip_list[]; + extern uint16 s17_pal[]; + extern uint16 s17_mouse[]; + extern Compact pulseb; + extern uint16 s17_fast_list[]; + extern uint16 pulse_seq[]; + extern Compact anita_card; + extern uint16 rs_foster_16_17[]; + extern uint16 s17_logic[]; + extern Compact pulse; + extern uint16 steam_alert_seq[]; + extern uint16 sleep_seq[]; + extern Compact power_door; + extern uint16 steam1_seq[]; + extern uint16 unpush_but_seq[]; + extern Compact right_lever; + extern uint16 steam2_seq[]; + extern uint16 blowoff_seq[]; + extern uint16 s18_mouse[]; + extern uint16 power_start_seq[]; + extern Compact power_switch; + extern uint16 power_stop_seq[]; + extern uint16 s18_floor_table[]; + extern Compact s18_floor; + extern uint16 joey_list_s18[]; + extern uint16 nu_chip_18[]; + extern Compact power_chair; + extern uint16 steam3_seq[]; + extern Compact left_skull; + extern uint16 rs_gordon_end[]; + extern Compact right_skull; + extern uint16 power_spin_seq[]; + extern uint16 s18_fast_list[]; + extern uint16 steam4_seq[]; + extern Compact steam; + extern Compact socket; + extern Compact power_motor; + extern uint16 joey_unpush_seq[]; + extern uint16 high_push_seq[]; + extern Compact left_lever; + extern uint16 s18_pal[]; + extern uint16 rs_foster_to_18[]; + extern uint16 power_bang_seq[]; + extern uint16 s18_logic[]; + extern uint16 high_unpush_seq[]; + extern uint16 s18_chip_list[]; + extern Compact power_bang; + extern uint16 push_but_seq[]; + extern uint16 door_blast_seq[]; + extern uint16 rs_gordon_start[]; + extern uint16 monhit_seq[]; + extern uint16 spanner_seq[]; + extern uint16 joey_push_seq[]; + extern Compact right_exit_s18; + extern uint16 rs_foster_19_28[]; + extern uint16 s19_mouse[]; + extern uint16 s19_floor_table[]; + extern Compact s19_floor; + extern uint16 rs_28_sml_19[]; + extern uint16 s19_logic[]; + extern Compact right_exit_19; + extern ExtCompact useless_char_ext; + extern Compact useless_char; + extern Compact left_exit_19; + extern uint16 joey_list_s19[]; + extern uint16 rs_foster_28_19[]; + extern Compact top_right_19; + extern uint16 s19_pal[]; + extern uint16 s19_chip_list[]; + extern uint16 s19_fast_list[]; + extern uint16 car_down_seq[]; + extern uint16 car_up_seq[]; + extern uint16 smoke1_seq[]; + extern uint16 screen1_logic[]; + extern uint16 fast_list_cut[]; + extern uint16 lfan2_seq[]; + extern Compact smoke2; + extern Compact lfan2; + extern uint16 lfan1_seq[]; + extern uint16 smoke2_seq[]; + extern Compact car_down; + extern uint16 fire2_seq[]; + extern Compact smoke1; + extern uint16 fast_list_sc1[]; + extern Compact fire_notice2; + extern Compact car_up; + extern Compact fire1; + extern Compact ss_sign; + extern Compact lfan1; + extern uint16 chip_list_1[]; + extern uint16 sc1_mouse[]; + extern Compact fire2; + extern uint16 fire1_seq[]; + extern uint16 gal_look_up[]; + extern uint16 rs_joey_start_20[]; + extern uint16 s20_pal[]; + extern Compact lamb_door_20; + extern Compact reich_window; + extern uint16 usecard_seq[]; + extern uint16 s20_chip_list[]; + extern Compact down_exit_20; + extern uint16 s20_fast_list[]; + extern uint16 rs_all_28_20[]; + extern uint16 s20_floor_table[]; + extern Compact s20_floor; + extern uint16 lamb_20_open[]; + extern Compact lamb_window; + extern uint16 gal_look_down[]; + extern Compact lamb_slot; + extern uint16 lamb_20_close[]; + extern Compact shrub_3; + extern uint16 reich_20_close[]; + extern Compact reich_slot; + extern Compact shrub_2; + extern uint16 joey_list_20[]; + extern uint16 reich_20_open[]; + extern Compact shrub_1; + extern uint16 s20_logic[]; + extern uint16 lamb_card_seq2[]; + extern Compact reich_door_20; + extern uint16 rs_foster_20_28[]; + extern ExtCompact gallager_bel_ext; + extern Compact gallager_bel; + extern uint16 s20_mouse[]; + extern uint16 lamb_sit_up[]; + extern uint16 s21_logic[]; + extern uint16 cat1_seq[]; + extern uint16 rs_foster_21_20[]; + extern uint16 inner_lamb_close[]; + extern uint16 push_dispensor[]; + extern uint16 s21_floor_table[]; + extern Compact s21_floor; + extern uint16 s21_chip_list[]; + extern uint16 lamb_sit_seq[]; + extern Compact cat_food; + extern Compact video; + extern Compact video_screen; + extern uint16 rs_foster_20_21[]; + extern uint16 cat4_seq[]; + extern uint16 video_out[]; + extern uint16 inner_lamb_open[]; + extern uint16 s21_mouse[]; + extern uint16 video_in[]; + extern Compact lambs_books; + extern uint16 cat_walk_seq[]; + extern Compact big_pict1; + extern Compact lambs_chair; + extern uint16 put_video_in[]; + extern uint16 watch_film[]; + extern Compact cat; + extern Compact big_pict3; + extern uint16 cat3_seq[]; + extern uint16 s21_fast_list[]; + extern uint16 bend_down[]; + extern uint16 take_video_out[]; + extern Compact big_pict2; + extern uint16 cat_food_seq[]; + extern Compact left_exit_21; + extern Compact inner_lamb_door; + extern Compact fake_floor_21; + extern uint16 cat_eat_seq[]; + extern uint16 more_cassette_seq[]; + extern Compact cassette; + extern uint16 s21_pal[]; + extern Compact dispensor; + extern uint16 cat2_seq[]; + extern uint16 take_cassette_seq[]; + extern uint16 fost_replace_pill[]; + extern uint16 rs_foster_20_22[]; + extern Compact reich_picture; + extern Compact inner_reich_door; + extern uint16 rs_foster_22_20[]; + extern uint16 fost_remove_pill[]; + extern uint16 inner_reich_open[]; + extern uint16 rs_magazine[]; + extern uint16 remove_pillow[]; + extern uint16 s22_floor_table[]; + extern Compact pillow; + extern uint16 inner_reich_close[]; + extern Compact lamb_bed; + extern uint16 replace_pillow[]; + extern uint16 get_magazine_seq[]; + extern uint16 tank3_seq[]; + extern uint16 tank2_seq[]; + extern Compact s22_floor; + extern Compact right_exit_22; + extern Compact reich_chair; + extern uint16 s22_mouse[]; + extern Compact fish_tank; + extern Compact fake_floor_22; + extern uint16 s22_fast_list[]; + extern uint16 s22_logic[]; + extern uint16 s22_chip_list[]; + extern Compact magazine; + extern uint16 fish_seq[]; + extern Compact cert; + extern uint16 s22_pal[]; + extern Compact cabinet; + extern Compact lamb_tv; + extern Compact fish_food; + extern Compact fish_poster; + extern Compact link_23; + extern uint16 s23_chip_list[]; + extern Compact sculpture; + extern Compact wreck_23; + extern Compact anchor_exit_23; + extern Compact bin_23; + extern uint16 s23_pal[]; + extern uint16 s23_logic[]; + extern uint16 s23_mouse[]; + extern Compact small_exit_23; + extern Compact travel_exit_23; + extern uint16 s23_fast_list[]; + extern Compact left_exit_23; + extern uint16 s23_floor_table[]; + extern Compact s23_floor; + extern uint16 rs_foster_29_23[]; + extern uint16 give_mag_seq[]; + extern uint16 trev_read_mag[]; + extern uint16 s24_floor_table[]; + extern Compact s24_floor; + extern uint16 mag_away[]; + extern Compact left_exit_24; + extern Compact mural; + extern uint16 trevor_relax[]; + extern uint16 rs_foster_23_24[]; + extern uint16 s24_mouse[]; + extern uint16 trevor_unrelax[]; + extern Compact pidgeons; + extern uint16 trev_get_mag[]; + extern uint16 s24_chip_list[]; + extern uint16 rs_foster_24_23[]; + extern uint16 mag_back_seq[]; + extern uint16 push_globe[]; + extern uint16 s24_pal[]; + extern uint16 joey_list_s24[]; + extern uint16 mag_out[]; + extern uint16 trev_turn_page[]; + extern ExtCompact trevor_ext; + extern Compact trevor; + extern Compact ticket; + extern Compact new_york_poster; + extern Compact london_poster; + extern uint16 get_ticket[]; + extern uint16 s24_logic[]; + extern uint16 globe_spin[]; + extern uint16 ticket_seq[]; + extern Compact globe; + extern uint16 trevor_scratch[]; + extern uint16 s24_fast_list[]; + extern Compact sales_chart; + extern uint16 hook_seq[]; + extern uint16 s25_pal[]; + extern Compact statue_25; + extern Compact anchor_exit_25; + extern uint16 spark_25_seq[]; + extern uint16 rs_foster_23_25[]; + extern ExtCompact anchor_ext; + extern Compact anchor; + extern uint16 s25_chip_list[]; + extern uint16 lazer_25_seq[]; + extern uint16 s25_fast_list[]; + extern uint16 anchor_leave_seq[]; + extern uint16 joey_list_s25[]; + extern uint16 rs_foster_25_23[]; + extern uint16 s25_mouse[]; + extern uint16 s25_logic[]; + extern uint16 anchor_seq[]; + extern uint16 anchor_return_seq[]; + extern Compact hook; + extern Compact spark_25; + extern Compact lazer_25; + extern uint16 s25_floor_table[]; + extern uint16 get_anchor_seq[]; + extern Compact s25_floor; + extern Compact bio_door; + extern Compact plant_26; + extern uint16 s26_floor_table[]; + extern uint16 s26_mouse[]; + extern uint16 s26_pal[]; + extern uint16 helga_awake[]; + extern Compact right_exit_26; + extern uint16 wobble2[]; + extern uint16 helga_byeee[]; + extern Compact left_exit_26; + extern uint16 rs_joey_start_26[]; + extern uint16 bio_door_open[]; + extern uint16 wobble1[]; + extern ExtCompact holo_ext; + extern Compact holo; + extern Compact poster2; + extern uint16 s26_fast_list[]; + extern uint16 joey_list_s26[]; + extern uint16 return_leaflet[]; + extern uint16 rs_foster_19_26[]; + extern uint16 get_leaflet[]; + extern Compact poster3; + extern Compact leaflet; + extern uint16 s26_chip_list[]; + extern uint16 rs_foster_26_19[]; + extern Compact poster4; + extern uint16 s26_logic[]; + extern Compact poster1; + extern Compact s26_floor; + extern uint16 s27_logic[]; + extern uint16 scan_27_seq[]; + extern uint16 body_table[]; + extern uint16 glass_scan[]; + extern uint16 put_glass_seq[]; + extern uint16 burke_u_to_d[]; + extern uint16 burke_l_to_u[]; + extern Compact helmet_cole; + extern uint16 rs_foster_27_26[]; + extern uint16 burke_d_to_u[]; + extern uint16 burke_st_talk[]; + extern uint16 out_chair_seq[]; + extern uint16 burke_st_right[]; + extern uint16 burke_u_to_l[]; + extern uint16 hand_op_seq[]; + extern uint16 helmet_up[]; + extern uint16 hand_in_seq[]; + extern uint16 burke_r_to_u[]; + extern uint16 burke_left[]; + extern uint16 burke_st_up[]; + extern uint16 burke_st_left[]; + extern uint16 chair_table[]; + extern Compact gas; + extern uint16 lung_seq[]; + extern uint16 burke_l_to_r[]; + extern uint16 glass_slot_open[]; + extern ExtCompact body_ext; + extern Compact body; + extern uint16 glove_off_seq[]; + extern uint16 rs_small_burke[]; + extern uint16 burke_d_to_l[]; + extern uint16 rs_foster_26_27[]; + extern uint16 burke_up[]; + extern uint16 operate_seq[]; + extern uint16 s27_floor_table[]; + extern uint16 helmet_down[]; + extern uint16 squirm_seq[]; + extern uint16 burke_r_to_d[]; + extern uint16 glove_on_seq[]; + extern Compact chart2; + extern uint16 burke_r_to_l[]; + extern Compact chart1; + extern uint16 rs_big_burke[]; + extern uint16 burke_down[]; + extern uint16 medi_comp_seq[]; + extern uint16 helmet_op_seq[]; + extern uint16 gas_seq[]; + extern uint16 burke_l_to_d[]; + extern uint16 glass_slot_close[]; + extern uint16 s27_mouse[]; + extern uint16 burke_right[]; + extern uint16 burke_st_down[]; + extern uint16 burke_u_to_r[]; + extern uint16 burke_d_to_r[]; + extern uint16 *burke_turnTable[5][5]; + extern ExtCompact burke_ext; + extern Compact burke; + extern uint16 shake_seq[]; + extern uint16 hands_out_seq[]; + extern uint16 s27_pal[]; + extern uint16 s27_fast_list[]; + extern Compact medi_comp; + extern Compact glass_slot; + extern uint16 in_chair_seq[]; + extern uint16 s27_chip_list[]; + extern uint16 kidney_seq[]; + extern Compact scanner_27; + extern Compact s27_floor; + extern uint16 fprint_seq[]; + extern Compact right_exit_27; + extern Compact chair_27; + extern uint16 s28_chip_list[]; + extern uint16 s28_floor_table[]; + extern uint16 s28_sml_table[]; + extern Compact s28_sml_floor; + extern uint16 slot_28_anim[]; + extern Compact left_exit_28; + extern uint16 rs_foster_28_29[]; + extern Compact s28_floor; + extern uint16 s28_logic[]; + extern Compact small_r_28; + extern uint16 s28_pal[]; + extern Compact up_exit_28; + extern Compact dustbin_28; + extern uint16 rs_31_28[]; + extern Compact slot_28; + extern uint16 s28_mouse[]; + extern uint16 lift_28_close[]; + extern uint16 lift_28_open[]; + extern Compact right_exit_28; + extern uint16 rs_lamb_28[]; + extern uint16 rs_foster_29_28[]; + extern uint16 s28_sml_mouse[]; + extern Compact lift_28; + extern Compact small_l_28; + extern uint16 rs_joey_7_29[]; + extern uint16 s29_floor_table[]; + extern Compact s29_floor; + extern uint16 card_slot_29_anim[]; + extern uint16 s29_lift_open[]; + extern uint16 rs_19_sml_28[]; + extern uint16 sml_joey_list_28[]; + extern Compact s29_card_slot; + extern uint16 s29_sml_mouse[]; + extern uint16 s29_logic[]; + extern uint16 s29_pal[]; + extern Compact small_l_29; + extern uint16 rs_foster_7_29[]; + extern uint16 rs_28_sml_29[]; + extern uint16 s29_chip_list[]; + extern uint16 s29_lift_close[]; + extern uint16 rs_29_sml_23[]; + extern uint16 rs_lamb_start_bel[]; + extern uint16 s29_mouse[]; + extern Compact lift_29; + extern Compact lift29_light; + extern uint16 joey_list_s29[]; + extern Compact right_exit_29; + extern uint16 rs_foster_23_29[]; + extern Compact left_exit_29; + extern uint16 lamb_card_29[]; + extern Compact cable_29; + extern uint16 get_cable_29_seq[]; + extern Compact small_r_29; + extern uint16 s29_sml_table[]; + extern Compact s29_sml_floor; + extern uint16 rs_23_sml_29[]; + extern uint16 rs_29_sml_28[]; + extern uint16 sml_joey_list_29[]; + extern void *data_3[]; + extern uint16 sml_loaderb_l_to_u[]; + extern uint16 joey_list_s2[]; + extern uint16 sml_loader_u_to_l[]; + extern uint16 loader_right[]; + extern uint16 loaderb_st_left[]; + extern uint16 loader_r_to_d[]; + extern uint16 loader_st_down[]; + extern uint16 sml_loaderb_l_to_r[]; + extern uint16 loaderb_st_down[]; + extern uint16 sml_loaderb_r_to_u[]; + extern uint16 sml_loaderb_st_up[]; + extern uint16 loaderb_d_to_l[]; + extern uint16 sml_loaderb_st_right[]; + extern uint16 sml_loader_r_to_l[]; + extern uint16 sml_loader_r_to_u[]; + extern uint16 sml_loader_st_down[]; + extern uint16 loader_l_to_r[]; + extern uint16 sml_loaderb_d_to_l[]; + extern uint16 loaderb_r_to_u[]; + extern uint16 loader_left[]; + extern uint16 loaderb_right[]; + extern uint16 loaderb_r_to_d[]; + extern uint16 loader_d_to_u[]; + extern uint16 sml_loaderb_st_down[]; + extern uint16 sml_loaderb_up[]; + extern uint16 sml_loader_d_to_r[]; + extern uint16 loader_st_up[]; + extern Compact right_exit_rm2; + extern uint16 sml_loaderb_right[]; + extern uint16 loader_u_to_l[]; + extern uint16 sml_loader_st_right[]; + extern Compact panel; + extern Compact alarm_flash; + extern uint16 loader_st_right[]; + extern uint16 sml_loader_l_to_u[]; + extern uint16 loaderb_u_to_r[]; + extern uint16 sml_loader_u_to_r[]; + extern uint16 loaderb_d_to_r[]; + extern uint16 loaderb_u_to_l[]; + extern uint16 sml_loaderb_d_to_u[]; + extern uint16 loaderb_left[]; + extern uint16 sml_loaderb_r_to_d[]; + extern uint16 loader_l_to_u[]; + extern uint16 sml_loader_up[]; + extern uint16 rs_test_jobs[]; + extern uint16 loaderb_l_to_d[]; + extern uint16 sc2_mouse[]; + extern uint16 loaderb_up[]; + extern uint16 loader_u_to_d[]; + extern uint16 sml_loader_u_to_d[]; + extern Compact hole; + extern uint16 loaderb_st_up[]; + extern uint16 sml_loader_down[]; + extern uint16 sml_loaderb_u_to_l[]; + extern uint16 loader_l_to_d[]; + extern uint16 sml_loaderb_u_to_d[]; + extern uint16 loader_u_to_r[]; + extern uint16 loaderb_l_to_r[]; + extern uint16 sml_loader_d_to_l[]; + extern uint16 loaderb_r_to_l[]; + extern uint16 top_lift_table[]; + extern Compact robot_shell; + extern Compact junk1; + extern uint16 loader_down[]; + extern uint16 loader_d_to_r[]; + extern uint16 top_lift_up[]; + extern uint16 sml_loader_st_up[]; + extern uint16 transporter_table[]; + extern uint16 sml_loader_r_to_d[]; + extern uint16 loaderb_st_right[]; + extern uint16 chip_list_s2[]; + extern uint16 sml_loaderb_r_to_l[]; + extern Compact dead_loader; + extern uint16 top_lift_2_up[]; + extern uint16 loaderb_l_to_u[]; + extern uint16 loaderb_down[]; + extern uint16 loader_r_to_u[]; + extern uint16 top_lift_2_down[]; + extern Compact left_exit_rm2; + extern uint16 loader_up[]; + extern uint16 loader_st_left[]; + extern uint16 loader_d_to_l[]; + extern uint16 loader_r_to_l[]; + extern uint16 loaderb_u_to_d[]; + extern uint16 loaderb_d_to_u[]; + extern uint16 sml_loader_left[]; + extern uint16 sml_loader_right[]; + extern uint16 sml_loader_st_left[]; + extern uint16 sml_loader_d_to_u[]; + extern uint16 sml_loader_l_to_d[]; + extern uint16 sml_loader_l_to_r[]; + extern uint16 sml_loaderb_down[]; + extern uint16 sml_loaderb_left[]; + extern uint16 sml_loaderb_st_left[]; + extern uint16 sml_loaderb_u_to_r[]; + extern uint16 sml_loaderb_d_to_r[]; + extern uint16 sml_loaderb_l_to_d[]; + extern UnknownStuff loader_unk; + extern uint16 *loader_turnTable[5][5]; + extern ExtCompact loader_ext; + extern Compact loader; + extern Compact junk2; + extern uint16 fast_list_sc2[]; + extern Compact light_one; + extern uint16 sc2_logic[]; + extern Compact top_lift_2; + extern Compact top_lift; + extern uint16 top_lift_down[]; + extern Compact top_barrel; + extern uint16 sc32_vinc_talk[]; + extern uint16 sc30_palette[]; + extern uint16 sc36_col_talk2[]; + extern uint16 sc42_judge_point[]; + extern uint16 sc30_floor_table[]; + extern Compact sc30_floor; + extern uint16 reset_33_30[]; + extern uint16 sc30_hen_step_b[]; + extern uint16 sc42_pros_talk[]; + extern uint16 sc36_col_talk1[]; + extern uint16 sc30_fast_list[]; + extern uint16 sc30_chip_list[]; + extern uint16 sc30_logic_list[]; + extern uint16 sc30_mouse_list[]; + extern Compact sc30_exit_31; + extern Compact sc30_exit_33; + extern uint16 reset_31_30[]; + extern Compact sc30_court_door; + extern Compact sc30_notice; + extern Compact sc30_statue_1; + extern Compact sc30_statue_2; + extern Compact sc30_exit_36; + extern ExtCompact sc30_henri_ext; + extern Compact sc30_henri; + extern uint16 sc30_henri_talk[]; + extern uint16 sc30_henri_tie[]; + extern uint16 sc30_hen_step_f[]; + extern uint16 sc30_hen_blink[]; + extern uint16 sc30_push_door[]; + extern uint16 reset_36_30[]; + extern uint16 sc30_joey_list[]; + extern uint16 dani_conv[]; + extern uint16 sc38_dani_sattlk[]; + extern uint16 sc31_guard_talk[]; + extern uint16 sc38_phone_talk[]; + extern uint16 sc32_garden_talk[]; + extern uint16 sc31_guard_talk2[]; + extern uint16 barman_talk[]; + extern uint16 sc36_gal_talk[]; + extern uint16 sc36_juke_talk[]; + extern uint16 sc36_babs_talk[]; + extern uint16 reset_42_30[]; + extern uint16 reset_court_open[]; + extern uint16 sc30_court_close[]; + extern uint16 sc42_judge_talk[]; + extern uint16 sc42_jobs_talk[]; + extern uint16 sc42_blunt_talk[]; + extern uint16 sc42_fos_talk_l[]; + extern uint16 sc42_fos_talk_r[]; + extern uint16 sc42_dani_talk[]; + extern uint16 sc42_clerk_talk[]; + extern uint16 sc42_jobs_point[]; + extern uint16 sc42_jdg_to_jobs[]; + extern void *data_4[]; + extern uint16 reset_start_31[]; + extern uint16 sc31_pull_rope[]; + extern uint16 sc31_guard_move[]; + extern Compact sc31_exit_39; + extern uint16 sc31_plank_flick[]; + extern uint16 sc31_fast_list[]; + extern uint16 sc31_dog_swim[]; + extern uint16 sc31_bisc_drop[]; + extern uint16 reset_39_31[]; + extern uint16 sc31_climb_plank[]; + extern uint16 sc31_bricks_up[]; + extern Compact sc31_plank; + extern uint16 sc31_lift_close[]; + extern uint16 sc31_get_bricks[]; + extern uint16 sc31_rope_pulled[]; + extern Compact sc31_rope; + extern uint16 sc31_palette[]; + extern Compact sc31_exit_30; + extern uint16 sc31_put_bisc[]; + extern uint16 sc31_bricks_fall[]; + extern uint16 sc31_plank_raise[]; + extern uint16 sc31_bisc_placed[]; + extern uint16 sc31_joey_fall[]; + extern uint16 sc31_plank_drop[]; + extern uint16 sc31_lift_open[]; + extern uint16 sc31_get_board[]; + extern uint16 sc31_rope_lower[]; + extern uint16 sc31_drop_rope[]; + extern uint16 sc31_guard_reach[]; + extern uint16 reset_32_31[]; + extern uint16 sc31_guard_blink[]; + extern uint16 sc31_use_card[]; + extern uint16 rs_guard_avail[]; + extern uint16 sc31_bricks_down[]; + extern uint16 sc31_rope_drop[]; + extern uint16 sc31_get_plank[]; + extern uint16 sc31_floor_table[]; + extern Compact sc31_floor; + extern Compact sc31_end_of_rope; + extern uint16 sc31_dog_fly[]; + extern Compact sc31_lift; + extern uint16 sc31_chip_list[]; + extern uint16 sc31_guard_chat[]; + extern Compact sc31_biscuits; + extern uint16 reset_30_31[]; + extern Compact sc31_bricks; + extern uint16 sc31_lower_rope[]; + extern uint16 sc31_bisc_raise[]; + extern Compact sc31_at_watcher; + extern uint16 sc31_dog_rise[]; + extern uint16 rs_guard_chat[]; + extern uint16 sc31_mouse_list[]; + extern Compact sc31_joey; + extern Compact sc31_lift_slot; + extern uint16 sc31_logic_list[]; + extern ExtCompact sc31_guard_ext; + extern Compact sc31_guard; + extern Compact sc31_exit_32; + extern uint16 sc31_joey_list[]; + extern uint16 sc32_gardening1[]; + extern uint16 reset_spunky_32[]; + extern uint16 sc32_vinc_anim[]; + extern uint16 reset_38_32[]; + extern Compact sc32_plant_2; + extern uint16 sc32_use_card[]; + extern ExtCompact sc32_vincent_ext; + extern Compact sc32_vincent; + extern uint16 sc32_gard_turn_d[]; + extern uint16 sc32_lift_open[]; + extern uint16 sc32_lift_close[]; + extern uint16 sc32_mouse_list[]; + extern Compact sc32_exit_31; + extern uint16 sc32_use_com[]; + extern uint16 sc32_gardener_dn[]; + extern ExtCompact sc32_buzzer_ext; + extern Compact sc32_buzzer; + extern uint16 sc32_floor_table[]; + extern Compact sc32_floor; + extern uint16 sc32_chip_list[]; + extern uint16 sc32_palette[]; + extern uint16 reset_33_32[]; + extern ExtCompact sc32_gardener_ext; + extern Compact sc32_gardener; + extern uint16 sc32_fast_list[]; + extern uint16 sc32_logic_list[]; + extern uint16 reset_dani_32[]; + extern Compact sc32_plant_3; + extern Compact sc32_terminal; + extern uint16 sc32_gardener_up[]; + extern Compact sc32_plant_1; + extern uint16 sc32_gard_turn_u[]; + extern uint16 sc32_joey_list[]; + extern uint16 sc32_gardening2[]; + extern uint16 reset_31_32[]; + extern Compact sc32_lift; + extern Compact sc32_exit_33; + extern Compact sc33_lock; + extern uint16 reset_32_33[]; + extern uint16 sc33_palette[]; + extern uint16 sc33_door_open[]; + extern uint16 reset_34_33[]; + extern Compact sc33_shed_door; + extern uint16 sc33_push_door2[]; + extern Compact sc33_exit_32; + extern uint16 sc33_logic_list[]; + extern uint16 sc33_floor_table[]; + extern Compact sc33_floor; + extern Compact sc33_exit_30; + extern uint16 sc33_joey_list[]; + extern uint16 sc33_push_door1[]; + extern uint16 sc33_chip_list[]; + extern uint16 sc33_fast_list[]; + extern uint16 sc33_mouse_list[]; + extern uint16 sc33_use_card[]; + extern uint16 reset_30_33[]; + extern uint16 sc34_fast_list[]; + extern uint16 sc34_mouse_list[]; + extern Compact sc34_secateurs; + extern uint16 sc34_logic_list[]; + extern uint16 sc34_get_secs[]; + extern uint16 sc34_chip_list[]; + extern uint16 reset_33_34[]; + extern uint16 sc34_stairs2[]; + extern uint16 sc34_floor_table[]; + extern Compact sc34_floor; + extern Compact sc34_bricks; + extern uint16 sc34_stairs1[]; + extern Compact sc34_tkt_machine; + extern Compact sc34_map; + extern uint16 sc34_palette[]; + extern Compact sc34_door; + extern uint16 sc36_get_glass[]; + extern uint16 sc36_mouse_list[]; + extern uint16 babs_d_to_u[]; + extern uint16 bar_drink[]; + extern uint16 babs_l_to_u[]; + extern uint16 bar_put_cloth[]; + extern uint16 babs_u_to_l[]; + extern uint16 sc36_col_down2[]; + extern uint16 babs_left[]; + extern uint16 babs_u_to_t[]; + extern uint16 sc36_col_up1[]; + extern uint16 sc36_fos_down2[]; + extern uint16 sc36_col_deal[]; + extern uint16 sc36_palette[]; + extern uint16 babs_up[]; + extern uint16 babs_down[]; + extern uint16 babs_right[]; + extern uint16 babs_st_up[]; + extern uint16 babs_st_down[]; + extern uint16 babs_st_left[]; + extern uint16 babs_st_right[]; + extern uint16 babs_st_talk[]; + extern uint16 babs_u_to_d[]; + extern uint16 babs_u_to_r[]; + extern uint16 babs_d_to_l[]; + extern uint16 babs_d_to_r[]; + extern uint16 babs_d_to_t[]; + extern uint16 babs_l_to_d[]; + extern uint16 babs_l_to_r[]; + extern uint16 babs_l_to_t[]; + extern uint16 babs_r_to_u[]; + extern uint16 babs_r_to_d[]; + extern uint16 babs_r_to_l[]; + extern uint16 babs_r_to_t[]; + extern uint16 babs_t_to_u[]; + extern uint16 babs_t_to_d[]; + extern uint16 babs_t_to_l[]; + extern uint16 babs_t_to_r[]; + extern uint16 *sc36_babs_turnTable[5][5]; + extern ExtCompact sc36_babs_ext; + extern Compact sc36_babs; + extern uint16 sc36_col_down4[]; + extern uint16 sc36_logic_list[]; + extern uint16 reset_30_36[]; + extern uint16 sc36_doorshut[]; + extern uint16 sc36_fos_up2[]; + extern uint16 bar_get_cloth[]; + extern Compact sc36_juke_light; + extern uint16 sc36_low_floor_table[]; + extern Compact sc36_low_floor; + extern uint16 sc36_floor_table[]; + extern uint16 sc36_jukebox_on[]; + extern Compact sc36_door; + extern uint16 sc36_col_down3[]; + extern ExtCompact sc36_jukebox_ext; + extern Compact sc36_jukebox; + extern uint16 sc36_juke_kicked[]; + extern uint16 sc36_fos_up1[]; + extern uint16 sc36_use_jukebox[]; + extern uint16 sc36_col_think[]; + extern uint16 bar_wipe2[]; + extern Compact sc36_gal_legs; + extern uint16 sc36_col_up2[]; + extern Compact sc36_cards; + extern uint16 sc36_reach_glass[]; + extern uint16 sc36_juke_break[]; + extern uint16 sc36_fos_down1[]; + extern uint16 reset_37_36[]; + extern Compact sc36_glass; + extern Compact sc36_col_feet; + extern uint16 sc36_col_blink2[]; + extern uint16 sc36_jukebox_off[]; + extern Compact sc36_band; + extern Compact sc36_sensor; + extern uint16 sc36_col_drink[]; + extern uint16 reset_juke_light[]; + extern uint16 sc36_gal_look1[]; + extern uint16 reset_colston[]; + extern uint16 sc36_chip_list[]; + extern uint16 sc36_juke_stuck[]; + extern uint16 sc36_col_blink1[]; + extern uint16 bar_wipe[]; + extern uint16 sc36_gal_look2[]; + extern uint16 sc36_juke_sing[]; + extern ExtCompact sc36_colston_ext; + extern Compact sc36_colston; + extern uint16 sc36_col_down1[]; + extern ExtCompact sc36_gallagher_ext; + extern Compact sc36_gallagher; + extern uint16 sc36_col_up3[]; + extern uint16 sc36_band_anim[]; + extern uint16 sc36_col_kick[]; + extern Compact sc36_floor; + extern uint16 sc36_dooropen[]; + extern uint16 bar_get_drink[]; + extern uint16 sc36_gal_deal[]; + extern uint16 bar_blink[]; + extern uint16 sc36_press_plate[]; + extern uint16 reset_jukebox[]; + extern uint16 sc36_fast_list[]; + extern uint16 sc36_col_up4[]; + extern ExtCompact sc36_barman_ext; + extern Compact sc36_barman; + extern Compact sc36_exit_30; + extern uint16 sc37_mouse_list[]; + extern uint16 sc37_chip_list[]; + extern uint16 sc37_grillopen[]; + extern uint16 sc37_floor_table[]; + extern uint16 sc37_stepdown[]; + extern Compact sc37_big_box; + extern uint16 sc37_footdrop[]; + extern uint16 sc37_putlid[]; + extern Compact sc37_sensor; + extern uint16 sc37_lidused[]; + extern uint16 sc37_getlid[]; + extern uint16 sc37_flimsy_box_table[]; + extern uint16 sc37_thumbsup[]; + extern Compact sc37_wine_rack; + extern uint16 sc37_fast_list[]; + extern uint16 sc37_holding_lid_table[]; + extern Compact sc37_holding_lid; + extern uint16 sc37_lidup[]; + extern uint16 sc37_usesec[]; + extern uint16 sc37_stepup[]; + extern Compact sc37_lid; + extern uint16 sc37_palette[]; + extern Compact sc37_floor; + extern uint16 sc37_climbout[]; + extern Compact sc37_grill; + extern uint16 sc37_uselid[]; + extern uint16 reset_36_37[]; + extern uint16 sc37_doorshut[]; + extern Compact sc37_door; + extern uint16 sc37_usebar[]; + extern Compact sc37_flimsy_box; + extern uint16 sc37_dooropen[]; + extern uint16 sc37_liddown[]; + extern uint16 sc37_logic_list[]; + extern uint16 sc37_crbarbox[]; + extern uint16 spu_left[]; + extern uint16 sc38_mouse_list[]; + extern uint16 sniff_left[]; + extern uint16 sc38_palette[]; + extern uint16 spu_u_to_l[]; + extern uint16 dan_d_to_r[]; + extern uint16 sex_t_to_r[]; + extern uint16 spu_u_to_d[]; + extern Compact sc38_dog_tray; + extern uint16 sex_up[]; + extern uint16 dan_u_to_r[]; + extern uint16 sex_l_to_r[]; + extern uint16 spu_t_to_l[]; + extern uint16 dan_u_to_t[]; + extern uint16 sc38_screen_2[]; + extern uint16 dan_l_to_u[]; + extern uint16 sc38_screen_3[]; + extern uint16 dan_r_to_t[]; + extern uint16 sex_u_to_t[]; + extern uint16 sc38_dani_get_up[]; + extern uint16 sex_r_to_d[]; + extern uint16 dan_r_to_l[]; + extern uint16 sc38_logic_list[]; + extern uint16 piss_left[]; + extern uint16 sex_d_to_u[]; + extern uint16 dan_l_to_d[]; + extern uint16 sex_u_to_r[]; + extern Compact sc38_hand_set; + extern uint16 spu_u_to_r[]; + extern uint16 dan_st_left[]; + extern uint16 piss_right[]; + extern uint16 sex_r_to_u[]; + extern uint16 sex_left[]; + extern uint16 sex_l_to_u[]; + extern uint16 spu_l_to_t[]; + extern uint16 sex_d_to_r[]; + extern uint16 sc38_floor_table[]; + extern uint16 sc38_get_food[]; + extern uint16 sex_right[]; + extern uint16 dan_st_talk[]; + extern uint16 reset_32_38[]; + extern Compact sc38_floor; + extern uint16 sex_d_to_l[]; + extern uint16 spu_r_to_u[]; + extern uint16 reset_dani_sit[]; + extern uint16 spu_u_to_t[]; + extern uint16 spu_l_to_u[]; + extern uint16 spu_d_to_u[]; + extern uint16 sex_u_to_d[]; + extern uint16 sc38_dani_anim_2[]; + extern uint16 dan_t_to_r[]; + extern uint16 dan_st_up[]; + extern uint16 bark[]; + extern uint16 dan_left[]; + extern uint16 spu_r_to_d[]; + extern uint16 spu_l_to_r[]; + extern uint16 sex_r_to_t[]; + extern uint16 sex_st_down[]; + extern uint16 sc38_scr_bark[]; + extern uint16 dan_st_right[]; + extern uint16 spu_st_left[]; + extern Compact sc38_sofa; + extern uint16 dan_d_to_l[]; + extern uint16 spu_r_to_l[]; + extern uint16 sc38_chip_list[]; + extern uint16 sc38_fast_list[]; + extern Compact sc38_video; + extern Compact dog_bark_thing; + extern uint16 sc38_screen_4[]; + extern uint16 dan_l_to_r[]; + extern uint16 sex_st_talk[]; + extern uint16 sex_st_right[]; + extern uint16 sc38_use_video[]; + extern Compact sc38_monitor; + extern uint16 spu_st_talk[]; + extern uint16 sex_t_to_u[]; + extern uint16 sex_r_to_l[]; + extern uint16 sc38_dani_anim_1[]; + extern uint16 sc38_get_phone[]; + extern Compact sc38_lift; + extern Compact sc38_biscuits; + extern uint16 dan_r_to_u[]; + extern uint16 spu_up[]; + extern uint16 sc38_dani_anim_3[]; + extern uint16 sc38_lift_up[]; + extern uint16 sniff_right[]; + extern uint16 dan_st_down[]; + extern uint16 sc38_ringer_anim[]; + extern uint16 spu_st_right[]; + extern uint16 spu_l_to_d[]; + extern uint16 sc38_reach_food[]; + extern Compact sc38_ringer; + extern uint16 spu_t_to_u[]; + extern Compact sc38_statue; + extern uint16 dan_d_to_u[]; + extern uint16 spu_d_to_l[]; + extern uint16 dan_u_to_l[]; + extern uint16 reset_spunky_38[]; + extern uint16 spu_right[]; + extern uint16 sex_l_to_d[]; + extern uint16 reset_dani_stand[]; + extern uint16 dan_r_to_d[]; + extern uint16 spu_st_down[]; + extern uint16 dan_up[]; + extern uint16 dan_u_to_d[]; + extern uint16 dan_down[]; + extern uint16 dan_right[]; + extern uint16 dan_t_to_u[]; + extern uint16 sex_down[]; + extern uint16 sex_st_up[]; + extern uint16 sex_st_left[]; + extern uint16 sex_u_to_l[]; + extern UnknownStuff danielle_unk; + extern uint16 *danielle_turnTable[5][5]; + extern ExtCompact danielle_ext; + extern Compact danielle; + extern uint16 spu_d_to_r[]; + extern uint16 spu_down[]; + extern uint16 spu_st_up[]; + extern uint16 *spunky_turnTable[5][5]; + extern ExtCompact spunky_ext; + extern Compact spunky; + extern uint16 sc38_video_anim[]; + extern uint16 sc38_screen_1[]; + extern uint16 sc38_lift_down[]; + extern Compact sc39_exit_31; + extern uint16 sc39_floor_table[]; + extern Compact sc39_floor; + extern Compact sc39_walters; + extern uint16 reset_41_39[]; + extern Compact sc39_exit_40; + extern uint16 sc39_ascend[]; + extern uint16 sc39_logic_list[]; + extern uint16 sc39_chip_list[]; + extern uint16 reset_31_39[]; + extern uint16 sc39_mouse_list[]; + extern Compact sc39_exit_41; + extern uint16 sc39_descend[]; + extern uint16 sc39_fast_list[]; + extern uint16 reset_40_39[]; + extern uint16 sc39_palette[]; + extern uint16 rs_low_lift2[]; + extern Compact low_lift_2; + extern uint16 rs_low_lift3[]; + extern uint16 liftc3_down[]; + extern uint16 joey_list_s3[]; + extern uint16 liftc1_down[]; + extern uint16 shades_l_to_r[]; + extern uint16 shades_st_talk[]; + extern uint16 shades_st_right[]; + extern Compact eye_bolt; + extern Compact lights1; + extern uint16 rs_low_barrel[]; + extern Compact convey; + extern uint16 search_seq[]; + extern ExtCompact eye_ball_ext; + extern Compact eye_ball; + extern uint16 liftc3_up[]; + extern uint16 shades_l_to_u[]; + extern uint16 shades_u_to_d[]; + extern uint16 s3_mouse[]; + extern uint16 shades_d_to_u[]; + extern ExtCompact smoulder_ext; + extern Compact smoulder; + extern Compact low_lift_3; + extern uint16 shades_u_to_r[]; + extern Compact furnace; + extern uint16 liftc1_up[]; + extern uint16 shades_r_to_d[]; + extern uint16 s3_logic[]; + extern uint16 shades_st_up[]; + extern uint16 smoulder_seq[]; + extern uint16 shades_up[]; + extern uint16 shades_down[]; + extern uint16 shades_left[]; + extern uint16 shades_right[]; + extern uint16 shades_st_down[]; + extern uint16 shades_st_left[]; + extern uint16 shades_u_to_l[]; + extern uint16 shades_d_to_l[]; + extern uint16 shades_d_to_r[]; + extern uint16 shades_l_to_d[]; + extern uint16 shades_r_to_u[]; + extern uint16 shades_r_to_l[]; + extern uint16 *shades_turnTable[5][5]; + extern ExtCompact shades_ext; + extern Compact shades; + extern uint16 liftc2_down[]; + extern uint16 rs_start_joey_fly[]; + extern Compact steve_watch; + extern uint16 liftc2_up[]; + extern Compact furnace_door; + extern Compact slot; + extern uint16 chip_list_sc3[]; + extern Compact low_lift; + extern Compact joey_fly; + extern uint16 rs_low_lift[]; + extern uint16 r3_floor_table[]; + extern Compact s3_floor; + extern uint16 rs_joey_to_furnace[]; + extern Compact low_barrel; + extern Compact sc40_body_2; + extern uint16 sc40_locker_shut[]; + extern uint16 reset_39_40[]; + extern Compact sc40_body_3; + extern Compact sc40_cabinet; + extern uint16 sc40_palette[]; + extern uint16 sc40_descend[]; + extern Compact sc40_locker_1; + extern uint16 sc40_floor_table[]; + extern Compact sc40_floor; + extern uint16 sc40_chip_list[]; + extern Compact sc40_body_5; + extern Compact sc40_locker_4; + extern uint16 sc40_close_door[]; + extern uint16 sc40_locker_open[]; + extern Compact sc40_locker_2; + extern Compact sc40_locker_3; + extern uint16 sc40_fast_list[]; + extern Compact sc40_exit_39; + extern Compact sc40_body_1; + extern uint16 sc40_open_door[]; + extern Compact sc40_trolley; + extern Compact sc40_locker_5; + extern uint16 sc40_mouse_list[]; + extern uint16 sc40_logic_list[]; + extern Compact sc40_body_4; + extern uint16 sc40_ascend[]; + extern uint16 sc41_mouse_list[]; + extern uint16 sc41_heat_2_anim[]; + extern Compact sc41_heat_1; + extern uint16 reset_39_41[]; + extern uint16 sc41_heat_1_anim[]; + extern uint16 sc41_fast_list[]; + extern Compact sc41_heat_2; + extern uint16 sc41_chip_list[]; + extern Compact sc41_heat_3; + extern Compact sc41_exit_39; + extern uint16 sc41_floor_table[]; + extern Compact sc41_floor; + extern uint16 sc41_heat_3_anim[]; + extern uint16 sc41_logic_list[]; + extern uint16 sc41_palette[]; + extern uint16 sc42_jdg_hammer[]; + extern uint16 reset_30_42[]; + extern uint16 sc42_mouse_list[]; + extern Compact sc42_sign; + extern uint16 sc42_fos_enter[]; + extern uint16 sc42_clerk_type[]; + extern ExtCompact sc42_judge_ext; + extern Compact sc42_judge; + extern uint16 sc42_logic_list[]; + extern uint16 sc42_jdg_turn[]; + extern uint16 sc42_fast_list[]; + extern ExtCompact sc42_prosecution_ext; + extern Compact sc42_prosecution; + extern uint16 sc42_fos_turn_lr[]; + extern uint16 sc42_chip_list[]; + extern ExtCompact sc42_clerk_ext; + extern Compact sc42_clerk; + extern uint16 reset_guard_42[]; + extern uint16 sc42_jdg_return[]; + extern uint16 sc42_fos_turn_rl[]; + extern ExtCompact sc42_jobsworth_ext; + extern Compact sc42_jobsworth; + extern uint16 reset_dani_42[]; + extern uint16 sc42_sign_anim[]; + extern uint16 sc42_blunt_enter[]; + extern uint16 sc42_blunt_leave[]; + extern uint16 sc42_jobs_enter[]; + extern uint16 sc42_palette[]; + extern uint16 sc42_fos_leave[]; + extern uint16 sc44_chip_list[]; + extern Compact sc44_rubble; + extern uint16 reset_45_44[]; + extern Compact sc44_grill; + extern uint16 sc44_floor_table[]; + extern uint16 sc44_drop_down[]; + extern Compact sc44_exit_45; + extern uint16 sc44_fast_list[]; + extern uint16 sc44_palette[]; + extern uint16 sc44_logic_list[]; + extern Compact sc44_floor; + extern uint16 sc44_mouse_list[]; + extern uint16 reset_37_44[]; + extern uint16 reset_44_45[]; + extern uint16 sc45_logic_list[]; + extern uint16 sc45_floor_table[]; + extern Compact sc45_floor; + extern Compact sc45_exit_47; + extern uint16 reset_46_45[]; + extern Compact sc45_exit_46; + extern uint16 sc45_palette[]; + extern uint16 sc45_fast_list[]; + extern uint16 reset_47_45[]; + extern Compact sc45_exit_44; + extern uint16 sc45_chip_list[]; + extern uint16 sc45_mouse_list[]; + extern uint16 sc46_floor_table[]; + extern uint16 sc46_palette[]; + extern uint16 sc46_chip_list[]; + extern Compact sc46_exit_45; + extern uint16 sc46_logic_list[]; + extern uint16 sc46_mouse_list[]; + extern uint16 sc46_fast_list[]; + extern Compact sc46_rubble; + extern uint16 reset_45_46[]; + extern Compact sc46_floor; + extern uint16 reset_48_47[]; + extern uint16 sc47_palette[]; + extern uint16 reset_45_47[]; + extern uint16 sc47_mouse_list[]; + extern Compact sc47_exit_48; + extern uint16 sc47_fast_list[]; + extern uint16 sc47_logic_list[]; + extern Compact sc47_exit_45; + extern uint16 sc47_chip_list[]; + extern uint16 sc47_floor_table[]; + extern Compact sc47_floor; + extern Compact sc48_eyes; + extern uint16 sc48_mouse_list[]; + extern uint16 sc48_chip_list[]; + extern uint16 sc48_floor_table[]; + extern Compact sc48_socket; + extern uint16 sc48_put_bulb[]; + extern uint16 sc48_palette[]; + extern uint16 sc48_fast_list[]; + extern Compact sc48_hole; + extern uint16 reset_47_48[]; + extern uint16 sc48_logic_list[]; + extern uint16 reset_65_48[]; + extern uint16 sc48_eyes_anim[]; + extern Compact sc48_exit_47; + extern Compact sc48_exit_65; + extern Compact sc48_floor; + extern uint16 sc48_light_pal[]; + extern uint16 jobs_u_to_l[]; + extern uint16 m_jobs_left[]; + extern uint16 jobs_l_to_u[]; + extern uint16 m_jobs_u_to_d[]; + extern Compact sarnie_s4; + extern uint16 m_jobs_l_to_d[]; + extern uint16 s4_talk_table[]; + extern uint16 chip_list_sc4[]; + extern Compact r_talk_s4; + extern Compact monitors_s4; + extern uint16 m_jobs_down[]; + extern Compact jobsworth; + extern uint16 jobs_st_down[]; + extern Compact notice4; + extern uint16 m_jobs_st_down[]; + extern uint16 m_jobs_st_talk[]; + extern uint16 m_jobs_up[]; + extern uint16 m_jobs_right[]; + extern uint16 m_jobs_st_up[]; + extern uint16 m_jobs_st_left[]; + extern uint16 m_jobs_st_right[]; + extern uint16 m_jobs_u_to_l[]; + extern uint16 m_jobs_u_to_r[]; + extern uint16 m_jobs_d_to_u[]; + extern uint16 m_jobs_d_to_l[]; + extern uint16 m_jobs_d_to_r[]; + extern uint16 m_jobs_l_to_u[]; + extern uint16 m_jobs_l_to_r[]; + extern uint16 m_jobs_r_to_u[]; + extern uint16 m_jobs_r_to_d[]; + extern uint16 m_jobs_r_to_l[]; + extern uint16 jobs_up[]; + extern uint16 jobs_down[]; + extern uint16 jobs_left[]; + extern uint16 jobs_right[]; + extern uint16 jobs_st_up[]; + extern uint16 jobs_st_left[]; + extern uint16 jobs_st_right[]; + extern uint16 jobs_st_talk[]; + extern uint16 jobs_u_to_d[]; + extern uint16 jobs_u_to_r[]; + extern uint16 jobs_d_to_u[]; + extern uint16 jobs_d_to_l[]; + extern uint16 jobs_d_to_r[]; + extern uint16 jobs_l_to_d[]; + extern uint16 jobs_l_to_r[]; + extern uint16 jobs_r_to_u[]; + extern uint16 jobs_r_to_d[]; + extern uint16 jobs_r_to_l[]; + extern Compact buttons_s4; + extern uint16 sc4_mouse_open[]; + extern Compact tv_screens_s4; + extern uint16 sc4_logic[]; + extern Compact postcard; + extern Compact knob_s4; + extern Compact lazer_s4; + extern uint16 fast_list_sc4[]; + extern Compact sc4_left_exit; + extern Compact spanner_s4; + extern uint16 joey_list_s4[]; + extern Compact chuck_s4; + extern uint16 r4_floor_table[]; + extern uint16 sc4_mouse[]; + extern Compact sc4_floor; + extern Compact cupboard_s4; + extern Compact copter; + extern uint16 rs_joey_29_7[]; + extern uint16 rs_joey_to_6[]; + extern Compact lift_notice; + extern uint16 mid_up_get[]; + extern uint16 jostair1_seq[]; + extern uint16 grd_watch_seq[]; + extern uint16 s7_floor_table[]; + extern uint16 lamb_card_seq[]; + extern uint16 joey_list_s6[]; + extern uint16 s6_chip_list[]; + extern uint16 s6_pal[]; + extern uint16 rs_foster_8_7[]; + extern Compact joey_fly_6; + extern uint16 s7_chip_list[]; + extern uint16 s8_logic[]; + extern uint16 s7_lift_open[]; + extern uint16 skorl_anim[]; + extern uint16 card_slot_anim[]; + extern uint16 dwn_stair1_seq[]; + extern Compact s7_floor; + extern uint16 rs_foster_9_6[]; + extern uint16 s6_mouse[]; + extern uint16 rs_foster_to_5[]; + extern uint16 s8_chip_list[]; + extern uint16 weld_7_seq[]; + extern uint16 grd_blink_seq[]; + extern Compact down_exit_s8; + extern uint16 jostair3_seq[]; + extern uint16 s5_chip_list[]; + extern Compact left_exit_s7; + extern uint16 rs_foster_18_5[]; + extern uint16 upstairs1_seq[]; + extern uint16 rs_foster_6_7[]; + extern Compact s7_card_slot; + extern uint16 rs_joey_fly[]; + extern uint16 s7_mouse[]; + extern uint16 s7_logic[]; + extern ExtCompact wreck_guard_ext; + extern Compact wreck_guard; + extern uint16 rs_foster_5_6[]; + extern uint16 rs_foster_7_8[]; + extern uint16 upstairs2_seq[]; + extern Compact security_exit; + extern uint16 s6_logic[]; + extern Compact right_exit_s5; + extern Compact cable_7; + extern uint16 rs_foster_29_7[]; + extern uint16 s8_mouse[]; + extern uint16 s8_pal[]; + extern Compact security_exit_s6; + extern uint16 jostair2_seq[]; + extern uint16 s6_floor_table[]; + extern Compact lift_s7; + extern uint16 s5_mouse[]; + extern uint16 s5_logic[]; + extern uint16 dwn_stair2_seq[]; + extern uint16 s8_fast_list[]; + extern Compact right_exit_s7; + extern uint16 s5_floor_table[]; + extern Compact s5_floor; + extern uint16 s8_floor_table[]; + extern uint16 lamblook_seq[]; + extern uint16 s5_pal[]; + extern Compact left_exit_s5; + extern Compact right_exit_s6; + extern Compact s6_floor; + extern uint16 rs_foster_to_6[]; + extern uint16 use_linc_anim[]; + extern Compact stairs6; + extern uint16 rs_foster_6_3[]; + extern Compact left_exit_s6; + extern uint16 s7_pal[]; + extern uint16 rs_foster_7_6[]; + extern ExtCompact skorl_guard_ext; + extern Compact skorl_guard; + extern Compact s8_floor; + extern Compact factory_entry; + extern uint16 s7_lift_close[]; + extern uint16 linc_table[]; + extern Compact linc_s7; + extern Compact lift7_light; + extern uint16 cable_cut_seq[]; + extern uint16 rs_foster_0_5[]; + extern uint16 lamb_talk_right[]; + extern void *data_2[]; + extern Compact sc65_exit_48; + extern uint16 sc65_floor_table[]; + extern Compact sc65_floor; + extern uint16 reset_48_65[]; + extern uint16 sc65_chip_list[]; + extern Compact sc65_exit_66; + extern uint16 sc65_mouse_list[]; + extern uint16 sc65_fast_list[]; + extern Compact sc65_poster2; + extern Compact sc65_poster1; + extern Compact sc65_sign; + extern uint16 sc65_logic_list[]; + extern uint16 sc65_palette[]; + extern uint16 sc66_hi_beam_an1[]; + extern uint16 sc66_door_close[]; + extern uint16 sc75_dead_tlk[]; + extern Compact sc66_rock3; + extern Compact sc66_lo_beam; + extern uint16 sc66_stones_anim[]; + extern uint16 walter_conv[]; + extern uint16 sc66_logic_list[]; + extern Compact sc66_stones; + extern Compact sc66_rock1; + extern uint16 sc81_ken_talk1[]; + extern Compact sc66_rock2; + extern uint16 sc66_hi_beam_an2[]; + extern uint16 stuck_talk[]; + extern uint16 sc66_chip_list[]; + extern uint16 medi_talk_up[]; + extern uint16 sc82_ken_sat_tlk[]; + extern uint16 sc81_ken_talk2[]; + extern uint16 android_babble[]; + extern uint16 sc66_rock2_anim[]; + extern uint16 sc82_jobs_talk[]; + extern uint16 ken_talk_left[]; + extern uint16 sc75_freeze_tlk[]; + extern uint16 fost_pipe_talk[]; + extern uint16 ken_talk_up[]; + extern uint16 sc66_mouse_list[]; + extern Compact sc66_hi_beam; + extern uint16 gall_talk_up[]; + extern uint16 walter_talk_up[]; + extern uint16 medi_talk_right[]; + extern uint16 sc66_rock3_anim[]; + extern uint16 gall_talk_left[]; + extern uint16 medi_talk_down[]; + extern uint16 sc66_lo_beam_anm[]; + extern uint16 sc81_dad_tlk[]; + extern uint16 reset_66[]; + extern uint16 sc66_fos_crushed[]; + extern uint16 fost_conv_left[]; + extern uint16 sc81_fos_sat_tlk[]; + extern uint16 walter_talk_dwn[]; + extern uint16 sc66_fos_walk_in[]; + extern uint16 medi_talk_left[]; + extern uint16 ken_talk_down[]; + extern uint16 sc81_dad_tlk2[]; + extern uint16 ken_talk_right[]; + extern uint16 walter_talk_lft[]; + extern uint16 sc81_ken_sat_tlk[]; + extern uint16 sc82_jobs_talk2[]; + extern Compact sc66_hole; + extern uint16 sc66_rock1_anim[]; + extern uint16 sc66_fast_list[]; + extern uint16 sc66_palette[]; + extern Compact sc66_door; + extern void *data_5[]; + extern uint16 sc67_logic_list[]; + extern Compact sc67_vein; + extern uint16 sc67_mouse_list[]; + extern uint16 sc67_rub_head[]; + extern uint16 sc67_try_stick[]; + extern uint16 sc67_plast_hit[]; + extern Compact sc67_door; + extern Compact sc67_mend; + extern uint16 sc67_mending[]; + extern Compact sc67_plaster; + extern uint16 sc67_door_open[]; + extern uint16 sc67_dustoff[]; + extern Compact sc67_rock; + extern Compact sc67_crowbar; + extern uint16 sc67_puss_leak[]; + extern uint16 sc67_pulse3_anim[]; + extern uint16 sc67_plast_fall[]; + extern Compact sc67_pulse4; + extern uint16 sc67_brick_fall[]; + extern uint16 sc67_bar_fall[]; + extern uint16 sc67_brick_hit[]; + extern uint16 sc67_pick_plast[]; + extern uint16 sc67_crawl[]; + extern uint16 sc67_medifix[]; + extern uint16 sc67_pulse1_anim[]; + extern uint16 sc67_pulse2_anim[]; + extern uint16 sc67_stick_in[]; + extern Compact sc67_pulse1; + extern uint16 sc67_rpocket[]; + extern Compact sc67_brickwork; + extern uint16 sc67_getbrick[]; + extern uint16 sc67_lpocket[]; + extern uint16 sc67_pull_out[]; + extern uint16 sc67_palette[]; + extern uint16 sc67_fast_list[]; + extern uint16 sc67_door_close[]; + extern uint16 sc67_rock_anim[]; + extern Compact sc67_pulse2; + extern Compact sc67_brick; + extern uint16 sc67_floor_table[]; + extern uint16 sc67_pick_brick[]; + extern uint16 reset_66_67[]; + extern Compact sc67_pulse3; + extern Compact sc67_floor; + extern uint16 sc67_pulse4_anim[]; + extern uint16 sc67_chip_list[]; + extern uint16 reset_68_67[]; + extern Compact sc67_clot; + extern Compact sc68_pulse5; + extern uint16 sc68_chip_list[]; + extern uint16 reset_69_68[]; + extern Compact sc68_pulse1; + extern Compact sc68_door; + extern Compact sc68_exit; + extern uint16 sc68_logic_list[]; + extern uint16 sc68_palette[]; + extern Compact sc68_pulse3; + extern uint16 sc68_pulse5_anim[]; + extern uint16 sc68_ascend[]; + extern uint16 sc68_pulse3_anim[]; + extern uint16 sc68_pulse2_anim[]; + extern Compact sc68_pulse4; + extern uint16 sc68_pulse6_anim[]; + extern Compact sc68_sensor; + extern uint16 sc68_pulse1_anim[]; + extern uint16 sc68_pulse4_anim[]; + extern Compact sc68_pulse2; + extern uint16 sc68_descend[]; + extern uint16 reset_70_68[]; + extern uint16 sc68_sensor_anim[]; + extern uint16 sc68_door_close[]; + extern uint16 sc68_floor_table[]; + extern Compact sc68_pulse6; + extern Compact sc68_grill; + extern Compact sc68_stairs; + extern uint16 sc68_fast_list[]; + extern uint16 reset_67_68[]; + extern uint16 sc68_mouse_list[]; + extern Compact sc68_floor; + extern uint16 sc68_joey_list[]; + extern uint16 sc69_logic_list[]; + extern uint16 sc69_pulse5_anim[]; + extern uint16 sc69_chip_list[]; + extern uint16 sc69_palette[]; + extern uint16 reset_71_69[]; + extern uint16 sc69_mouse_list[]; + extern Compact sc69_pulse2; + extern uint16 sc69_floor_table[]; + extern Compact sc69_pulse6; + extern uint16 sc69_joey_list[]; + extern Compact sc69_exit; + extern uint16 sc69_fast_list[]; + extern Compact sc69_door; + extern Compact sc69_pulse3; + extern Compact sc69_pulse5; + extern uint16 sc69_pulse6_anim[]; + extern Compact sc69_pulse4; + extern Compact sc69_pulse1; + extern uint16 sc69_pulse4_anim[]; + extern Compact sc69_grill; + extern uint16 sc69_pulse1_anim[]; + extern uint16 sc69_pulse3_anim[]; + extern uint16 reset_68_69[]; + extern uint16 sc69_pulse2_anim[]; + extern Compact sc69_floor; + extern Compact sc70_bar; + extern uint16 sc70_pull_bar[]; + extern uint16 sc70_step_down[]; + extern uint16 sc70_palette[]; + extern uint16 sc70_floor_table[]; + extern uint16 sc70_enter_anim[]; + extern uint16 sc70_step_up[]; + extern Compact sc70_floor; + extern uint16 reset_68_70[]; + extern uint16 sc70_exit_anim[]; + extern uint16 sc70_fast_list[]; + extern uint16 sc70_logic_list[]; + extern ExtCompact sc70_iris_ext; + extern Compact sc70_iris; + extern uint16 sc70_pit_table[]; + extern Compact sc70_door; + extern Compact sc70_pit; + extern uint16 sc70_chip_list[]; + extern uint16 sc70_bar_anim[]; + extern Compact sc70_control; + extern uint16 sc70_pit_anim[]; + extern Compact sc70_grill; + extern uint16 sc70_consol_anim[]; + extern uint16 sc70_mouse_list[]; + extern uint16 medi_d_to_u[]; + extern uint16 sc71_use_board[]; + extern Compact sc71_door72; + extern uint16 sc71_medi_charge[]; + extern uint16 medi_up[]; + extern uint16 medi_down[]; + extern uint16 medi_left[]; + extern uint16 medi_right[]; + extern uint16 medi_st_up[]; + extern uint16 medi_st_down[]; + extern uint16 medi_st_left[]; + extern uint16 medi_st_right[]; + extern uint16 medi_u_to_d[]; + extern uint16 medi_u_to_l[]; + extern uint16 medi_u_to_r[]; + extern uint16 medi_d_to_l[]; + extern uint16 medi_d_to_r[]; + extern uint16 medi_l_to_u[]; + extern uint16 medi_l_to_d[]; + extern uint16 medi_l_to_r[]; + extern uint16 medi_r_to_u[]; + extern uint16 medi_r_to_d[]; + extern uint16 medi_r_to_l[]; + extern uint16 *medi_turnTable[5][5]; + extern ExtCompact medi_ext; + extern Compact medi; + extern uint16 sc71_mouse_list[]; + extern uint16 sc71_light1_anim[]; + extern uint16 sc71_logic_list[]; + extern uint16 reset_69_71[]; + extern uint16 sc71_chip_list[]; + extern uint16 sc710_chip_list[]; + extern uint16 reset_72_71[]; + extern uint16 sc71_medi_get_up[]; + extern Compact sc71_chlite; + extern Compact sc71_controls; + extern uint16 sc71_panel_anim[]; + extern Compact sc71_panel2; + extern uint16 sc71_panel2_anim[]; + extern uint16 sc71_joey_list[]; + extern Compact sc71_light1; + extern uint16 sc71_palette[]; + extern uint16 sc71_fast_list[]; + extern uint16 sc71_mon_anim[]; + extern uint16 sc71_floor_table[]; + extern Compact sc71_floor; + extern Compact sc71_door69; + extern Compact sc71_fake_floor; + extern Compact sc71_medi_slot; + extern Compact sc71_monitor; + extern uint16 sc71_chlite_anim[]; + extern Compact sc71_locked_door; + extern Compact sc71_recharger; + extern uint16 sc71_light2_anim[]; + extern uint16 wit_st_right[]; + extern uint16 sc72_comp_flash[]; + extern Compact sc72_rot_light; + extern uint16 sc72_fast_list[]; + extern uint16 sc72_spill_anim[]; + extern uint16 wit_d_to_u[]; + extern Compact sc72_chamber2; + extern uint16 wit_l_to_r[]; + extern uint16 sc72_joey_tap[]; + extern uint16 sc72_comp2_flash[]; + extern Compact sc72_tank; + extern uint16 wit_r_to_d[]; + extern uint16 sc72_floor_table[]; + extern Compact sc72_floor; + extern uint16 sc72_drip_anim[]; + extern uint16 wit_u_to_d[]; + extern Compact sc72_cham2_light; + extern Compact sc72_computer2; + extern uint16 sc72_walter_die[]; + extern uint16 wit_r_to_l[]; + extern uint16 wit_up[]; + extern uint16 sc72_rotating[]; + extern uint16 sc72_walter_kill[]; + extern Compact sc72_exit; + extern uint16 wit_l_to_d[]; + extern uint16 sc72_cham3_anim[]; + extern uint16 sc72_chip_list[]; + extern uint16 sc72_foster_die[]; + extern uint16 sc72_cham1_anim[]; + extern uint16 sc72_cham2_anim[]; + extern uint16 reset_71_72[]; + extern uint16 wit_st_left[]; + extern Compact sc72_cham1_light; + extern uint16 sc72_palette[]; + extern uint16 sc72_joey_list[]; + extern uint16 sc72_cham2_flash[]; + extern uint16 wit_st_down[]; + extern uint16 sc72_mouse_list[]; + extern Compact sc72_fake_floor; + extern uint16 wit_st_up[]; + extern Compact sc72_tap; + extern uint16 wit_l_to_t[]; + extern uint16 wit_st_talk[]; + extern uint16 wit_d_to_l[]; + extern Compact sc72_spill; + extern Compact sc72_computer; + extern uint16 wit_l_to_u[]; + extern Compact sc72_door; + extern uint16 wit_u_to_l[]; + extern uint16 sc72_cham1_flash[]; + extern uint16 wit_d_to_r[]; + extern uint16 wit_left[]; + extern uint16 sc72_tank_anim[]; + extern uint16 wit_right[]; + extern uint16 wit_t_to_u[]; + extern uint16 wit_u_to_t[]; + extern Compact sc72_chamber3; + extern uint16 wit_down[]; + extern uint16 wit_u_to_r[]; + extern uint16 wit_r_to_u[]; + extern uint16 wit_t_to_l[]; + extern uint16 *witness_turnTable[5][5]; + extern ExtCompact witness_ext; + extern Compact witness; + extern uint16 sc72_logic_list[]; + extern uint16 reset_73_72[]; + extern uint16 sc720_chip_list[]; + extern Compact sc72_grill; + extern Compact sc72_chamber1; + extern uint16 gal_u_to_l[]; + extern Compact sc73_exit; + extern uint16 sc73_cham5_flash[]; + extern uint16 sc73_cham5_anim[]; + extern uint16 gal_up[]; + extern uint16 gal_down[]; + extern uint16 gal_left[]; + extern uint16 gal_right[]; + extern uint16 gal_st_up[]; + extern uint16 gal_st_down[]; + extern uint16 gal_st_left[]; + extern uint16 gal_st_right[]; + extern uint16 gal_u_to_d[]; + extern uint16 gal_u_to_r[]; + extern uint16 gal_d_to_u[]; + extern uint16 gal_d_to_l[]; + extern uint16 gal_d_to_r[]; + extern uint16 gal_l_to_u[]; + extern uint16 gal_l_to_d[]; + extern uint16 gal_l_to_r[]; + extern uint16 gal_r_to_u[]; + extern uint16 gal_r_to_d[]; + extern uint16 gal_r_to_l[]; + extern uint16 *gallagher_turnTable[5][5]; + extern ExtCompact gallagher_ext; + extern Compact gallagher; + extern uint16 sc73_joey_fight1[]; + extern uint16 sc73_gall_fight2[]; + extern uint16 reset_72_73[]; + extern uint16 sc73_joey_fight2[]; + extern uint16 sc73_floor_table[]; + extern Compact sc73_floor; + extern uint16 sc73_bits_anim[]; + extern uint16 sc73_gall_fight1[]; + extern Compact sc73_door; + extern uint16 sc73_cham4_anim[]; + extern Compact sc73_bits; + extern Compact sc73_locked_door; + extern uint16 sc73_mouse_list[]; + extern Compact sc73_sensor; + extern Compact sc73_cham5_light; + extern uint16 sc73_joey_lunge[]; + extern uint16 sc73_get_board[]; + extern uint16 sc73_chip_list[]; + extern Compact sc73_spray; + extern uint16 reset_74_73[]; + extern Compact sc73_bits2; + extern uint16 sc73_sensor_anim[]; + extern uint16 sc73_fast_list[]; + extern uint16 sc73_joey_list[]; + extern uint16 sc73_spray_anim[]; + extern Compact sc73_chamber4; + extern Compact sc73_chamber3; + extern uint16 sc73_palette[]; + extern Compact sc73_chamber5; + extern uint16 sc73_cham4_flash[]; + extern uint16 sc73_bits2_anim[]; + extern uint16 sc73_logic_list[]; + extern uint16 reset_75_73[]; + extern uint16 sc73_cham3_anim[]; + extern uint16 sc73_search[]; + extern Compact sc73_big_door; + extern Compact sc73_cham4_light; + extern Compact sc74_monitor3; + extern Compact sc74_pod; + extern Compact sc74_terminal; + extern uint16 sc74_int_table[]; + extern Compact sc74_interface; + extern uint16 sc74_mon4_anim[]; + extern uint16 sc74_rtv_anim[]; + extern uint16 sc74_pod_down[]; + extern uint16 sc74_lights_anim[]; + extern uint16 sc74_pod_up[]; + extern Compact sc74_int_slot; + extern uint16 sc74_mouse_list[]; + extern uint16 sc74_chip_list[]; + extern Compact sc74_monitor2; + extern uint16 sc74_floor_table[]; + extern Compact sc74_floor; + extern uint16 reset_73_74[]; + extern uint16 sc74_ltv_anim[]; + extern Compact sc74_left_tv; + extern uint16 sc74_usecard[]; + extern uint16 sc74_fost_sit[]; + extern Compact sc74_door; + extern Compact sc74_monitor4; + extern uint16 sc74_mon3_anim[]; + extern uint16 sc74_get_up[]; + extern Compact sc74_monitor1; + extern uint16 sc74_mon1_anim[]; + extern uint16 sc74_palette[]; + extern uint16 sc74_fast_list[]; + extern uint16 sc74_usecard2[]; + extern uint16 sc74_rpocket[]; + extern uint16 reset_linc_74[]; + extern Compact sc74_right_tv; + extern uint16 sc74_logic_list[]; + extern uint16 sc74_mon2_anim[]; + extern Compact sc74_lights; + extern uint16 sc74_slot_flash[]; + extern uint16 sc75_floor_table[]; + extern uint16 sc75_usecard[]; + extern Compact sc75_console; + extern uint16 sc75_get_tongs[]; + extern uint16 sc75_joey_list[]; + extern uint16 sc75_freeze_ded2[]; + extern uint16 sc75_hand_tank[]; + extern Compact sc75_door; + extern uint16 sc75_light2_anim[]; + extern Compact sc75_light1; + extern uint16 rs_tongs_dead[]; + extern uint16 sc75_tank_anim[]; + extern uint16 reset_73_75[]; + extern uint16 sc75_light1_anim[]; + extern uint16 sc75_fast_list[]; + extern Compact sc75_floor; + extern uint16 rs_tongs_empty[]; + extern Compact sc75_big_door; + extern uint16 sc75_mouse_list[]; + extern Compact sc75_live_tank; + extern uint16 sc75_freeze_it[]; + extern Compact sc75_tongs; + extern uint16 sc75_chip_list[]; + extern uint16 sc75_nitro_anim[]; + extern uint16 rs_tongs_frozen[]; + extern uint16 sc75_crash_anim[]; + extern Compact sc75_light2; + extern uint16 sc75_mon_anim[]; + extern uint16 sc75_freeze_it2[]; + extern Compact sc75_nitro_tank; + extern uint16 sc75_palette[]; + extern uint16 rs_tongs_live[]; + extern uint16 reset_76_75[]; + extern uint16 sc75_logic_list[]; + extern uint16 rs_tongs_timer[]; + extern uint16 sc75_freeze_ded[]; + extern uint16 sc75_rpocket[]; + extern uint16 sc75_get_tiss[]; + extern uint16 ken_u_to_r[]; + extern uint16 sc76_logic_list[]; + extern uint16 sc76_hatch_2[]; + extern uint16 sc76_cab2_close[]; + extern uint16 reset_75_76[]; + extern uint16 sc76_chip_list[]; + extern uint16 ken_right[]; + extern uint16 ken_st_up[]; + extern uint16 ken_d_to_l[]; + extern uint16 ken_up[]; + extern uint16 ken_down[]; + extern uint16 ken_left[]; + extern uint16 ken_st_down[]; + extern uint16 ken_st_left[]; + extern uint16 ken_st_right[]; + extern uint16 ken_u_to_d[]; + extern uint16 ken_u_to_l[]; + extern uint16 ken_d_to_u[]; + extern uint16 ken_d_to_r[]; + extern uint16 ken_l_to_u[]; + extern uint16 ken_l_to_d[]; + extern uint16 ken_l_to_r[]; + extern uint16 ken_r_to_u[]; + extern uint16 ken_r_to_d[]; + extern uint16 ken_r_to_l[]; + extern uint16 *ken_turnTable[5][5]; + extern ExtCompact ken_ext; + extern Compact ken; + extern uint16 sc76_floor_table[]; + extern Compact sc76_floor; + extern Compact sc76_light3; + extern Compact sc76_light9; + extern uint16 sc76_light1_anim[]; + extern uint16 sc76_light2_anim[]; + extern Compact sc76_light6; + extern Compact sc76_board_3; + extern uint16 sc76_shut_cab[]; + extern uint16 sc76_light3_anim[]; + extern Compact sc76_light1; + extern uint16 sc76_low_get[]; + extern uint16 sc76_fostfall[]; + extern Compact sc76_door77; + extern Compact sc76_board_1; + extern Compact sc76_light8; + extern Compact sc76_android_1; + extern uint16 sc76_cab1_open[]; + extern uint16 sc76_hatch_1[]; + extern Compact sc76_console_2; + extern ExtCompact sc76_android_3_ext; + extern Compact sc76_android_3; + extern Compact sc76_console_1; + extern uint16 sc76_fast_list[]; + extern ExtCompact sc76_android_2_ext; + extern Compact sc76_android_2; + extern uint16 sc76_cab1_close[]; + extern Compact sc76_light5; + extern Compact sc76_board_2; + extern uint16 sc76_light9_anim[]; + extern uint16 sc76_cab3_open[]; + extern Compact sc76_light7; + extern Compact sc76_light4; + extern uint16 sc76_mouse_list[]; + extern uint16 sc76_joey_list[]; + extern uint16 reset_77_76[]; + extern uint16 sc76_light5_anim[]; + extern uint16 sc76_light4_anim[]; + extern uint16 sc76_hatch_3[]; + extern Compact sc76_cabinet_1; + extern uint16 sc76_punch[]; + extern uint16 sc76_cab2_open[]; + extern uint16 sc76_light7_anim[]; + extern Compact sc76_cabinet_3; + extern Compact sc76_console_3; + extern uint16 sc76_open_cab[]; + extern uint16 sc76_palette[]; + extern Compact sc76_light2; + extern uint16 sc76_light8_anim[]; + extern uint16 sc76_cab3_close[]; + extern Compact sc76_cabinet_2; + extern uint16 sc76_light6_anim[]; + extern Compact sc76_door75; + extern uint16 sc77_fpushl_2[]; + extern uint16 sc77_palette[]; + extern Compact sc77_big_door; + extern uint16 sc77_fpushl_1[]; + extern uint16 sc77_fast_list[]; + extern uint16 sc77_logic_list[]; + extern uint16 sc77_door_open[]; + extern uint16 sc77_chip_list[]; + extern uint16 reset_78_77[]; + extern uint16 sc77_stretch[]; + extern uint16 sc77_joey_list[]; + extern uint16 sc77_mouse_list[]; + extern uint16 reset_76_77[]; + extern uint16 sc77_fpushr_2[]; + extern uint16 sc77_floor_table[]; + extern uint16 sc77_kpushr_2[]; + extern Compact sc77_tank_1; + extern uint16 sc77_fpushr_1[]; + extern Compact sc77_tank_2; + extern Compact sc77_floor; + extern Compact sc77_hand_2; + extern Compact sc77_hand_1; + extern uint16 sc77_kpushr_1[]; + extern Compact sc77_door76; + extern uint16 sc78_ledge_table[]; + extern Compact sc78_ledge; + extern Compact sc78_big_door; + extern uint16 sc78_climb_up[]; + extern uint16 sc78_logic_list[]; + extern uint16 reset_79_78[]; + extern uint16 sc78_mouse_list[]; + extern Compact sc78_support; + extern uint16 sc781_palette[]; + extern uint16 reset_77_78[]; + extern uint16 sc78_pipe_table[]; + extern uint16 sc78_chip_list[]; + extern Compact sc78_exit; + extern uint16 sc78_jump_down[]; + extern Compact sc78_pipe; + extern uint16 sc78_palette[]; + extern uint16 sc78_fast_list[]; + extern uint16 sc791_palette[]; + extern uint16 sc79_chip_list[]; + extern uint16 sc79_climb_up[]; + extern Compact sc79_exit; + extern Compact sc79_rope; + extern Compact sc79_support; + extern uint16 sc79_palette[]; + extern uint16 sc79_climb_down[]; + extern uint16 sc79_crouch_down[]; + extern uint16 sc79_pipe_table[]; + extern uint16 reset_78_79[]; + extern uint16 sc79_crouch_up[]; + extern uint16 sc79_rope_anim[]; + extern Compact sc79_knot; + extern uint16 sc79_fast_list[]; + extern uint16 reset_80_79[]; + extern Compact sc79_ladder; + extern uint16 sc79_toss_rope[]; + extern uint16 sc79_logic_list[]; + extern uint16 sc79_mouse_list[]; + extern uint16 sc79_tie_rope[]; + extern Compact sc79_pipe; + extern Compact sc80_bubble10; + extern uint16 sc80_logic_list[]; + extern uint16 sc802_palette[]; + extern Compact sc80_bubble1; + extern uint16 sc801_palette[]; + extern uint16 sc803_palette[]; + extern uint16 sc80_chip_list[]; + extern Compact sc80_bubble2; + extern uint16 sc80_pipe_shrug[]; + extern uint16 sc80_climb_down[]; + extern uint16 sc80_exit_open[]; + extern uint16 sc80_fast_list[]; + extern uint16 sc80_palette[]; + extern Compact sc80_bubble11; + extern uint16 sc80_clamber[]; + extern uint16 sc80_mouse_list[]; + extern uint16 sc80_climb_up[]; + extern Compact sc80_exit; + extern Compact sc80_orifice; + extern Compact sc80_sample; + extern uint16 sc80_get_rope[]; + extern uint16 sc80_bub1_anim[]; + extern uint16 sc80_swing[]; + extern Compact sc80_spout; + extern Compact sc80_bubble4; + extern uint16 sc80_goo_anim[]; + extern Compact sc80_bubble7; + extern Compact sc80_bubble9; + extern uint16 sc80_sample_fall[]; + extern Compact sc80_rope; + extern Compact sc80_bubble3; + extern Compact sc80_bubble8; + extern uint16 sc80_drop[]; + extern uint16 reset_79_80[]; + extern Compact sc80_ladder; + extern uint16 sc804_palette[]; + extern Compact sc80_bubble12; + extern Compact sc80_bubble6; + extern Compact sc80_bubble5; + extern Compact sc80_goo; + extern Compact sc81_big_tent3; + extern uint16 sc81_fos_squirm[]; + extern uint16 sc81_tentwig1[]; + extern uint16 sc81_ken_helm_dn[]; + extern uint16 sc81_tentwig2[]; + extern uint16 sc81_fast_list[]; + extern Compact sc81_tent5; + extern Compact sc81_helmet; + extern uint16 sc81_ken_sit[]; + extern uint16 sc81_palette[]; + extern uint16 sc81_dad_helm_up[]; + extern Compact sc81_tent2; + extern uint16 sc83_draw_list[]; + extern uint16 sc81_tentwig5[]; + extern Compact sc81_chair; + extern uint16 sc81_chip_list[]; + extern uint16 sc81_tentwig6[]; + extern Compact sc81_ken_sat; + extern uint16 sc81_tentdrop2[]; + extern uint16 sc81_ken_walk2[]; + extern Compact sc81_foster_sat; + extern uint16 sc81_tentdrop1[]; + extern Compact sc81_father_sat; + extern uint16 sc81_tentwig4[]; + extern uint16 sc81_ken_walk1[]; + extern uint16 reset_dad_spec[]; + extern uint16 sc81_mouse_list[]; + extern uint16 sc81_dad_breath1[]; + extern uint16 sc81_fos_helm_dn[]; + extern uint16 sc81_dad_fall2[]; + extern Compact sc81_door; + extern Compact sc81_big_tent1; + extern Compact sc81_tent1; + extern Compact sc81_tent4; + extern ExtCompact sc81_father_ext; + extern Compact sc81_father; + extern uint16 sc81_door_close[]; + extern uint16 sc81_dad_breath2[]; + extern uint16 sc81_tentwig3[]; + extern uint16 sc81_father_die[]; + extern uint16 reset_ken_81[]; + extern uint16 reset_80_81[]; + extern uint16 sc81_dad_fall1[]; + extern uint16 sc81_ken_jump_in[]; + extern uint16 sc81_logic_list[]; + extern Compact sc81_big_tent2; + extern Compact sc81_tent3; + extern uint16 sc81_tentdrop3[]; + extern Compact sc81_tent6; + extern uint16 sc83_palette[]; + extern uint16 reset_foster_spec[]; + extern uint16 sc81_foster_sit[]; + extern uint16 sc82_push_button[]; + extern ExtCompact sc82_jobsworth_ext; + extern Compact sc82_jobsworth; + extern uint16 reset_foster_82[]; + extern uint16 sc82_jobs_turn[]; + extern uint16 sc82_jobs_take[]; + extern uint16 sc82_logic_list[]; + extern uint16 sc82_fast_list[]; + extern uint16 sc82_mouse_list[]; + extern uint16 reset_ken_82[]; + extern uint16 sc82_chip_list[]; + extern uint16 sc82_palette[]; + extern uint16 sc82_foster_give[]; + extern uint16 sc82_jobs_return[]; + extern uint16 sc85_palette[]; + extern uint16 sc85_mouse_list[]; + extern uint16 sc85_chip_list[]; + extern uint16 sc85_fast_list[]; + extern uint16 sc85_logic_list[]; + extern Compact door_r90f; + extern Compact door_r90; + extern uint16 sc90_floor_table[]; + extern Compact sc90_floor; + extern uint16 sc90_smfloor_table[]; + extern uint16 eye90_zap_anim[]; + extern uint16 door_l90_anim[]; + extern Compact door_l90; + extern uint16 get_join[]; + extern uint16 sc90_mouse[]; + extern uint16 door_l90f_anim[]; + extern uint16 sc90_logic[]; + extern uint16 eye_90_table[]; + extern Compact eyeball_90; + extern Compact sc90_smfloor; + extern Compact join_object; + extern Compact door_l90f; + extern Compact oscillator; + extern uint16 rs_foster_90_91[]; + extern uint16 rs_foster_90_94[]; + extern uint16 door_r90_anim[]; + extern uint16 door_r90f_anim[]; + extern uint16 get_oscill[]; + extern uint16 blind_eye[]; + extern uint16 see_eye[]; + extern uint16 pal90[]; + extern uint16 pal90a[]; + extern uint16 pal90b[]; + extern uint16 chip_list_sc90[]; + extern uint16 get_eye[]; + extern uint16 fost_die90[]; + extern void *data_6[]; + extern Compact decomp_obj; + extern Compact door_r91; + extern uint16 sc91_mouse[]; + extern uint16 get_decomp[]; + extern uint16 eye_91_table[]; + extern Compact door_l91f; + extern uint16 door_r91f_anim[]; + extern Compact report_book; + extern uint16 get_report[]; + extern uint16 chip_list_sc91[]; + extern uint16 sc91_floor_table[]; + extern Compact sc91_floor; + extern Compact bag_91; + extern uint16 door_r91_anim[]; + extern uint16 rs_foster_91_95[]; + extern uint16 door_l91_anim[]; + extern uint16 pal91[]; + extern uint16 get_decrypt[]; + extern Compact door_t91; + extern Compact door_l91; + extern uint16 rs_foster_91_92[]; + extern uint16 fost_die91[]; + extern uint16 rs_foster_91_90[]; + extern uint16 sc91_logic[]; + extern Compact eyeball_91; + extern uint16 fast_list_sc91[]; + extern Compact door_t91r; + extern uint16 door_l91f_anim[]; + extern Compact decrypt_obj; + extern uint16 door_t91_anim[]; + extern uint16 door_t91r_anim[]; + extern uint16 eye91_zap_anim[]; + extern Compact door_r91f; + extern Compact bridge_e; + extern Compact door_l92; + extern uint16 slab8_table[]; + extern Compact slab8; + extern uint16 slab3_table[]; + extern uint16 slab2_table[]; + extern uint16 slab4_table[]; + extern Compact slab4; + extern uint16 door_l92_anim[]; + extern uint16 door_r92_anim[]; + extern uint16 slab6_table[]; + extern Compact slab6; + extern Compact door_r92; + extern Compact bridge_h; + extern Compact bridge_f; + extern uint16 slab7_table[]; + extern Compact bridge_a; + extern uint16 door_r92r_anim[]; + extern Compact bridge_g; + extern Compact door_l92f; + extern Compact bridge_b; + extern uint16 slab9_table[]; + extern uint16 slab1_table[]; + extern Compact slab1; + extern Compact red_circle; + extern Compact slab2; + extern uint16 sc92_logic[]; + extern uint16 chip_list_sc92[]; + extern uint16 pal92[]; + extern uint16 fast_list_sc92[]; + extern uint16 door_l92f_anim[]; + extern Compact slab9; + extern Compact door_r92r; + extern uint16 slab5_table[]; + extern Compact slab5; + extern Compact slab7; + extern uint16 sc92_mouse[]; + extern uint16 rs_foster_92_93[]; + extern Compact green_circle; + extern uint16 rs_foster_92_91[]; + extern Compact bridge_c; + extern Compact bridge_d; + extern Compact slab3; + extern uint16 get_adjust[]; + extern Compact door_l93; + extern uint16 sc93_mouse[]; + extern Compact adjust_book; + extern uint16 sc93_floor_table[]; + extern uint16 sc93_logic[]; + extern Compact door_l93f; + extern uint16 rs_foster_93_92[]; + extern Compact sc93_floor; + extern uint16 chip_list_sc93[]; + extern uint16 door_l93f_anim[]; + extern uint16 get_persona[]; + extern uint16 fast_list_sc93[]; + extern uint16 door_l93_anim[]; + extern Compact persona; + extern uint16 pal93[]; + extern uint16 door_l94_anim[]; + extern uint16 holo1_a_anim[]; + extern uint16 sc94_floor_table[]; + extern Compact sc94_floor; + extern uint16 fast_list_sc94[]; + extern uint16 holo3_anim[]; + extern Compact door_r94; + extern uint16 sc94_logic[]; + extern uint16 door_r94r_anim[]; + extern Compact door_r94r; + extern uint16 rs_foster_94_90[]; + extern Compact door_l94r; + extern uint16 rs_foster_94_95[]; + extern uint16 door_r94_anim[]; + extern uint16 chip_list_sc94[]; + extern ExtCompact hologram_b_ext; + extern Compact hologram_b; + extern uint16 holo1_b_anim[]; + extern Compact door_l94; + extern uint16 door_l94r_anim[]; + extern uint16 sc94_mouse[]; + extern uint16 anita_holo_talk[]; + extern Compact hologram_pad; + extern uint16 pal94[]; + extern Compact hologram_a; + extern uint16 fast_list_sc95[]; + extern uint16 weight_anim[]; + extern uint16 sc95_floor_table[]; + extern uint16 door_r95_anim[]; + extern uint16 rs_foster_95_96[]; + extern Compact door_r95f; + extern uint16 pal95[]; + extern uint16 chip_list_sc95[]; + extern uint16 door_l95f_anim[]; + extern uint16 sc95_logic[]; + extern Compact weight; + extern Compact guardian; + extern uint16 rs_foster_95_91[]; + extern uint16 sc95_mouse[]; + extern Compact door_r95; + extern uint16 rs_foster_95_94[]; + extern Compact door_t95; + extern uint16 door_r95f_anim[]; + extern Compact door_l95; + extern Compact door_l95f; + extern uint16 door_t95_anim[]; + extern uint16 door_t95r_anim[]; + extern uint16 guardian_down[]; + extern Compact sc95_floor; + extern uint16 guardian_up[]; + extern Compact door_t95r; + extern uint16 door_l95_anim[]; + extern uint16 sc96_mouse[]; + extern uint16 door_l96f_anim[]; + extern uint16 sc96_floor_table[]; + extern Compact sc96_floor; + extern uint16 sc96_logic[]; + extern Compact crystal; + extern uint16 rs_foster_96_95[]; + extern uint16 crystal_break[]; + extern uint16 pal96[]; + extern Compact door_l96f; + extern Compact virus; + extern uint16 crystal_spin[]; + extern uint16 virus_spin[]; + extern Compact door_l96; + extern uint16 chip_list_sc96[]; + extern uint16 get_virus[]; + extern uint16 door_l96_anim[]; + extern uint16 fast_list_sc96[]; + extern uint16 s9_floor_table[]; + extern Compact fake_floor_9; + extern uint16 son_work_seq[]; + extern ExtCompact son_ext; + extern Compact son; + extern uint16 scandie_seq[]; + extern uint16 lobby_down_seq[]; + extern uint16 s9_mouse[]; + extern uint16 scan_seq[]; + extern uint16 dad_work_seq[]; + extern Compact linc_s9; + extern uint16 dad_work3_seq[]; + extern ExtCompact dad_ext; + extern Compact dad; + extern uint16 dad_work2_seq[]; + extern Compact s9_floor; + extern Compact left_exit_s9; + extern uint16 fans_seq[]; + extern Compact fans; + extern Compact lobby_slot; + extern Compact scanner; + extern uint16 card_in_seq[]; + extern uint16 lobby_up_seq[]; + extern Compact lobby_door; + extern uint16 rs_foster_to_9[]; + extern uint16 rs_foster_10_9[]; + extern uint16 s9_logic[]; + extern uint16 s9_chip_list[]; + extern uint16 s9_pal[]; + extern uint16 window_mouse[]; + extern uint16 logon[]; + extern uint16 note_module[]; + extern uint16 window_logic[]; + extern uint16 crouch_right_b[]; + extern uint16 crouch_down[]; + extern uint16 auth_module[]; + extern Compact window_3; + extern Compact info_button; + extern uint16 size_module[]; + extern Compact window_2; + extern uint16 logoff[]; + extern uint16 enter_top[]; + extern uint16 crouch_right[]; + extern Compact window_1; + extern uint16 exit_top[]; + extern uint16 shrug[]; + extern uint16 head_module[]; + extern uint16 crouch_right_a[]; + extern uint16 file_module[]; + extern uint16 crouch_left[]; + extern Compact window_4; + extern uint16 rs_foster_s90[]; + extern Compact playbak_menu; + extern Compact persona_menu; + extern Compact info_menu; + extern Compact decrypt_menu; + extern uint16 linc_menu_mouse[]; + extern Compact kill_menu; + extern Compact read_menu; + extern Compact orders_menu; + extern Compact report_menu; + extern Compact virus_menu; + extern Compact adjust_menu; + extern Compact charon_menu; + extern Compact orders2_menu; + extern Compact report2_menu; + extern Compact oscill_menu; + extern Compact join_menu; + extern Compact green_menu; + extern uint16 linc_menu_logic[]; + extern Compact adjust2_menu; + extern Compact red_menu; + extern Compact open_menu; + extern Compact decomp_menu; + extern Compact blind_menu; + extern Compact blank5; + extern Compact tape_menu; + extern Compact right_arrow; + extern uint16 move_2[]; + extern Compact glass_menu; + extern Compact lightbulb_menu; + extern Compact blank3; + extern Compact wd40_menu; + extern Compact plaster_menu; + extern Compact new_cable_menu; + extern Compact blank8; + extern Compact joeyb_menu; + extern uint16 move_menu[]; + extern uint16 *move_list[]; + extern Compact blank6; + extern Compact shades_menu; + extern Compact citycard_menu; + extern Compact blank9; + extern Compact rope_menu; + extern Compact left_arrow; + extern Compact magazine_menu; + extern Compact gallcard_menu; + extern Compact dog_food_menu; + extern Compact blank7; + extern Compact blank2; + extern Compact blank11; + extern Compact anchor_menu; + extern Compact anita_card_menu; + extern Compact tongs_menu; + extern Compact blank4; + extern Compact crow_bar_menu; + extern Compact secateurs_menu; + extern Compact sarnie_menu; + extern Compact spanner_menu; + extern Compact blank10; + extern Compact skey_menu; + extern Compact blank1; + extern Compact ticket_menu; + extern Compact brick_menu; + extern Compact putty_menu; + extern Compact menu_bar; + extern uint16 fradman_up[]; + extern uint16 high_floor_table[]; + extern Compact floor; + extern uint16 wjoey_d_to_u[]; + extern uint16 wjoey_st_left[]; + extern uint16 ljoey_r_to_d[]; + extern uint16 s2_talk_table[]; + extern Compact r_talk_s2; + extern uint16 fradman_u_to_d[]; + extern uint16 door_table[]; + extern uint16 mfoster_st_right[]; + extern uint16 bfoster_st_right[]; + extern uint16 seq3_pal[]; + extern uint16 bfoster_u_to_r[]; + extern uint16 foster_l_to_t[]; + extern uint16 s9_fast_list[]; + extern uint16 wjoey_st_up[]; + extern uint16 bfoster_r_to_u[]; + extern uint16 monitor_left[]; + extern uint16 rs_lamb_to_three[]; + extern uint16 std_menu_logic[]; + extern uint16 but_7[]; + extern uint16 ljoey_up[]; + extern uint16 wjoey_r_to_d[]; + extern Compact small_door; + extern uint16 shrug_seq[]; + extern uint16 foster_up[]; + extern uint16 mfoster_d_to_l[]; + extern uint16 ljoey_down[]; + extern uint16 rs_blanks_linc[]; + extern uint16 mini_shrug_seq[]; + extern uint16 talk_table[]; + extern uint16 fradman_l_to_d[]; + extern uint16 low_floor_table[]; + extern Compact low_floor; + extern uint16 bfoster_d_to_u[]; + extern uint16 but_0[]; + extern uint16 but_4[]; + extern uint16 fradman_right[]; + extern uint16 bfoster_st_left[]; + extern uint16 sjoey_up[]; + extern uint16 s10_fast_list[]; + extern uint16 fradman_u_to_l[]; + extern uint16 ljoey_r_to_u[]; + extern uint16 foster_u_to_l[]; + extern uint16 lamb_up[]; + extern uint16 lamb_down[]; + extern uint16 lamb_left[]; + extern uint16 lamb_right[]; + extern uint16 lamb_st_up[]; + extern uint16 lamb_st_down[]; + extern uint16 lamb_st_left[]; + extern uint16 lamb_st_right[]; + extern uint16 lamb_st_talk[]; + extern uint16 lamb_u_to_d[]; + extern uint16 lamb_u_to_l[]; + extern uint16 lamb_u_to_r[]; + extern uint16 lamb_d_to_u[]; + extern uint16 lamb_d_to_l[]; + extern uint16 lamb_d_to_r[]; + extern uint16 lamb_l_to_u[]; + extern uint16 lamb_l_to_d[]; + extern uint16 lamb_l_to_r[]; + extern uint16 lamb_r_to_u[]; + extern uint16 lamb_r_to_d[]; + extern uint16 lamb_r_to_l[]; + extern uint16 *lamb_turnTable[5][5]; + extern ExtCompact lamb_ext; + extern Compact lamb; + extern uint16 bfoster_left[]; + extern uint16 fast_intro[]; + extern uint16 foster_st_right[]; + extern uint16 monitor_st_up[]; + extern uint16 sjoey_d_to_r[]; + extern uint16 foster_st_down[]; + extern uint16 mfoster_u_to_r[]; + extern uint16 sml_up_mid_get_seq[]; + extern uint16 mfoster_u_to_d[]; + extern uint16 wjoey_u_to_d[]; + extern uint16 chip_intro[]; + extern uint16 fast_list_0[]; + extern uint16 rs_right_arrow[]; + extern uint16 ljoey_st_left[]; + extern uint16 s28_fast_list[]; + extern uint16 monitor_right[]; + extern uint16 wjoey_st_down[]; + extern uint16 r2_floor_table[]; + extern Compact s2_floor; + extern uint16 fradman_down[]; + extern uint16 foster_u_to_d[]; + extern uint16 ljoey_d_to_r[]; + extern uint16 mfoster_r_to_u[]; + extern uint16 fast_list_sc3[]; + extern uint16 rs_left_arrow[]; + extern uint16 rs_l_arr_linc[]; + extern Compact text_8; + extern uint16 wjoey_l_to_d[]; + extern uint16 stair_table[]; + extern Compact stairs; + extern uint16 text_mouse[]; + extern uint16 monitor_d_to_r[]; + extern uint16 ljoey_l_to_d[]; + extern uint16 sjoey_st_right[]; + extern uint16 sjoey_st_down[]; + extern uint16 sjoey_st_left[]; + extern uint16 upstair_table[]; + extern uint16 sjoey_right[]; + extern uint16 ljoey_u_to_r[]; + extern uint16 mfoster_st_up[]; + extern uint16 mfoster_st_down[]; + extern uint16 foster_st_talk[]; + extern uint16 mfoster_l_to_r[]; + extern uint16 bar_table[]; + extern uint16 foster_d_to_l[]; + extern Compact text_1; + extern uint16 fradman_left[]; + extern uint16 s29_fast_list[]; + extern uint16 r1door_table[]; + extern Compact r1_door; + extern Compact upstairs; + extern uint16 ljoey_u_to_d[]; + extern uint16 monitor_u_to_l[]; + extern uint16 fradman_st_right[]; + extern uint16 sml_door_table[]; + extern uint16 bfoster_r_to_l[]; + extern uint16 mfoster_left[]; + extern uint16 wjoey_up[]; + extern uint16 foster_r_to_u[]; + extern uint16 mfoster_d_to_u[]; + extern uint16 but_8[]; + extern uint16 but_5[]; + extern uint16 monitor_l_to_u[]; + extern uint16 mfoster_l_to_u[]; + extern uint16 bfoster_d_to_r[]; + extern uint16 wjoey_down[]; + extern Compact text_10; + extern uint16 monitor_u_to_d[]; + extern Compact text_5; + extern uint16 forklift1_cdt[]; + extern uint16 bfoster_up[]; + extern uint16 s11_fast_list[]; + extern uint16 fradman_d_to_u[]; + extern uint16 monitor_r_to_u[]; + extern uint16 bfoster_down[]; + extern uint16 ledge_table[]; + extern uint16 ljoey_d_to_u[]; + extern uint16 foster_left[]; + extern uint16 sjoey_st_up[]; + extern uint16 fradman_l_to_r[]; + extern Compact outside_ledge; + extern uint16 fradman_st_up[]; + extern uint16 foster_l_to_u[]; + extern uint16 foster_u_to_t[]; + extern uint16 ljoey_d_to_l[]; + extern uint16 ljoey_left[]; + extern uint16 ljoey_right[]; + extern uint16 ljoey_st_up[]; + extern uint16 ljoey_st_down[]; + extern uint16 ljoey_st_right[]; + extern uint16 ljoey_u_to_l[]; + extern uint16 ljoey_l_to_u[]; + extern uint16 ljoey_l_to_r[]; + extern uint16 ljoey_r_to_l[]; + extern uint16 wjoey_left[]; + extern uint16 wjoey_right[]; + extern uint16 wjoey_st_right[]; + extern uint16 wjoey_u_to_l[]; + extern uint16 wjoey_u_to_r[]; + extern uint16 wjoey_d_to_l[]; + extern uint16 wjoey_d_to_r[]; + extern uint16 wjoey_l_to_u[]; + extern uint16 wjoey_l_to_r[]; + extern uint16 wjoey_r_to_u[]; + extern uint16 wjoey_r_to_l[]; + extern uint16 sjoey_down[]; + extern uint16 sjoey_left[]; + extern uint16 sjoey_u_to_d[]; + extern uint16 sjoey_u_to_l[]; + extern uint16 sjoey_u_to_r[]; + extern uint16 sjoey_d_to_u[]; + extern uint16 sjoey_d_to_l[]; + extern uint16 sjoey_l_to_u[]; + extern uint16 sjoey_l_to_d[]; + extern uint16 sjoey_l_to_r[]; + extern uint16 sjoey_r_to_u[]; + extern uint16 sjoey_r_to_d[]; + extern uint16 sjoey_r_to_l[]; + extern UnknownStuff joey_unk; + extern uint16 *joey_turnTable[5][5]; + extern ExtCompact joey_ext; + extern Compact joey; + extern uint16 baby_logic_list[]; + extern uint16 save_restore_mouse[]; + extern uint16 fradman_r_to_l[]; + extern uint16 foster_right[]; + extern uint16 seq2_pal[]; + extern uint16 seq1_pal[]; + extern uint16 bfoster_r_to_d[]; + extern uint16 low_get_seq[]; + extern uint16 fradman_u_to_r[]; + extern uint16 rs_mega_alive[]; + extern Compact whole_screen; + extern uint16 bfoster_u_to_l[]; + extern Compact bar; + extern uint16 foster_st_left[]; + extern uint16 monitor_l_to_r[]; + extern uint16 rs_lamb_start_3[]; + extern uint16 forklift2_cdt[]; + extern Compact talk2; + extern Compact text_4; + extern uint16 mfoster_d_to_r[]; + extern Compact door; + extern uint16 foster_d_to_u[]; + extern uint16 park_table[]; + extern uint16 mfoster_up[]; + extern uint16 mfoster_down[]; + extern uint16 mfoster_right[]; + extern uint16 mfoster_st_left[]; + extern uint16 mfoster_u_to_l[]; + extern uint16 mfoster_l_to_d[]; + extern uint16 mfoster_r_to_d[]; + extern uint16 mfoster_r_to_l[]; + extern uint16 foster_down[]; + extern uint16 foster_st_up[]; + extern uint16 foster_u_to_r[]; + extern uint16 foster_d_to_r[]; + extern uint16 foster_l_to_d[]; + extern uint16 foster_l_to_r[]; + extern uint16 foster_r_to_d[]; + extern uint16 foster_r_to_l[]; + extern uint16 foster_t_to_u[]; + extern uint16 foster_t_to_l[]; + extern uint16 fradman_st_down[]; + extern uint16 fradman_st_left[]; + extern uint16 fradman_st_talk[]; + extern uint16 fradman_d_to_l[]; + extern uint16 fradman_d_to_r[]; + extern uint16 fradman_l_to_u[]; + extern uint16 fradman_r_to_u[]; + extern uint16 fradman_r_to_d[]; + extern uint16 bfoster_right[]; + extern uint16 bfoster_st_up[]; + extern uint16 bfoster_st_down[]; + extern uint16 bfoster_u_to_d[]; + extern uint16 bfoster_d_to_l[]; + extern uint16 bfoster_l_to_u[]; + extern uint16 bfoster_l_to_d[]; + extern uint16 bfoster_l_to_r[]; + extern UnknownStuff foster_unk; + extern uint16 *foster_turnTable[5][5]; + extern ExtCompact foster_ext; + extern Compact foster; + extern uint16 monitor_up[]; + extern uint16 s0_fast_list[]; + extern uint16 s7_fast_list[]; + extern uint16 monitor_st_talk[]; + extern uint16 fast_list_sc90[]; + extern uint16 but_2[]; + extern uint16 but_3[]; + extern uint16 monitor_st_down[]; + extern uint16 but_9[]; + extern Compact text_11; + extern Compact joey_park; + extern Compact coordinate_test; + extern Compact text_2; + extern Compact text_3; + extern Compact text_6; + extern Compact text_7; + extern Compact text_9; + extern uint16 rad_shrug_seq[]; + extern uint16 rs_lamb_start_2[]; + extern uint16 s6_fast_list[]; + extern uint16 swing_list[]; + extern Compact right_exit0; + extern uint16 rs_blank[]; + extern uint16 monitor_down[]; + extern uint16 monitor_st_left[]; + extern uint16 monitor_st_right[]; + extern uint16 monitor_u_to_r[]; + extern uint16 monitor_d_to_u[]; + extern uint16 monitor_d_to_l[]; + extern uint16 monitor_l_to_d[]; + extern uint16 monitor_r_to_d[]; + extern uint16 monitor_r_to_l[]; + extern uint16 *monitor_turnTable[5][5]; + extern ExtCompact monitor_ext; + extern Compact monitor; + extern ExtCompact anita_ext; + extern Compact anita; + extern uint16 rs_r_arr_linc[]; + extern uint16 s5_fast_list[]; + extern uint16 but_e[]; + extern uint16 but_1[]; + extern uint16 but_6[]; + extern uint16 fast_intro_2[]; + extern uint16 fast_intro_3[]; + extern uint16 retina_scan_cdt[]; + extern Compact forklift_cpt; + extern void *data_0[]; +}; + +#endif diff --git a/sky/debug.cpp b/sky/debug.cpp new file mode 100644 index 0000000000..70b5951758 --- /dev/null +++ b/sky/debug.cpp @@ -0,0 +1,418 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * $Header$ + * + */ + +#include "sky/debug.h" + +static const char *section_0_compacts[] = { + "UNDEFINED", + "joey", + "joey_park", + "foster", + "std_menu_logic", + "text_mouse", + "gallcard_menu", + "rs_mega_alive", + "citycard_menu", + "shades_menu", + "putty_menu", + "lightbulb_menu", + "low_get_seq", + "mini_shrug_seq", + "sml_up_mid_get_seq", + "new_grid", + "lamb", + "floor", + "coordinate_test", + "save_restore_mouse", + "whole_screen", + "l_talk_s2", + "r_talk_s2", + "text_1", + "text_2", + "text_3", + "text_4", + "text_5", + "text_6", + "text_7", + "text_8", + "text_9", + "text_10", + "text_11", + "wd40_menu", + "skey_menu", + "secateurs_menu", + "rope_menu", + "plaster_menu", + "new_cable_menu", + "shrug_seq", + "rad_shrug_seq", + "brick_menu", + "tongs_menu", + "talk1", + "talk2", + "menu_bar", + "left_arrow", + "right_arrow", + "dog_food_menu", + "UNDEFINED", + "blank1", + "blank2", + "blank3", + "blank4", + "blank5", + "blank6", + "blank7", + "blank8", + "blank9", + "blank10", + "blank11", + "UNDEFINED", + "crow_bar_menu", + "sarnie_menu", + "spanner_menu", + "joeyb_menu", + "low_floor", + "UNDEFINED", + "stairs", + "upstairs", + "anita_card_menu", + "rs_lamb_to_three", + "rs_lamb_start_2", + "anchor_menu", + "magazine_menu", + "tape_menu", + "glass_menu", + "rs_lamb_start_3", + "ticket_menu", + "s29_fast_list", + "s6_fast_list", + "fast_list_sc3", + "s9_fast_list", + "s10_fast_list", + "bar", + "s11_fast_list", + "fast_list_0", + "s0_fast_list", + "s7_fast_list", + "door", + "s28_fast_list", + "swing_list", + "UNDEFINED", + "UNDEFINED", + "outside_ledge", + "UNDEFINED", + "r1_door", + "UNDEFINED", + "UNDEFINED", + "UNDEFINED", + "UNDEFINED", + "fast_list_sc90", + "UNDEFINED", + "UNDEFINED", + "small_door", + "sc85_fast_list", + "sc85_chip_list", + "sc85_logic_list", + "sc85_mouse_list", + "sc85_palette", + "right_exit0", + "UNDEFINED", + "UNDEFINED", + "UNDEFINED", + "s2_floor", + "UNDEFINED", + "s101_chip_list", + "s101_pal", + "s101_mouse", + "s101_logic", + "full_screen", + "cancel_button", + "button_0", + "button_1", + "button_2", + "button_3", + "button_4", + "button_5", + "button_6", + "button_7", + "button_8", + "button_9", + "rs_left_arrow", + "rs_right_arrow", + "rs_blank", + "monitor", + "anita", + "UNDEFINED", + "UNDEFINED", + "UNDEFINED", + "baby_logic_list", + "rs_l_arr_linc", + "rs_r_arr_linc", + "rs_blanks_linc", + "s5_fast_list", + "but_e", + "but_0", + "but_1", + "but_2", + "but_3", + "but_4", + "but_5", + "but_6", + "but_7", + "but_8", + "but_9", + "UNDEFINED", + "s102_chip_list", + "s102_pal", + "s102_logic", + "s102_mouse", + "restart_butt", + "restart_seq", + "restore_butt", + "restore_seq", + "seq1_pal", + "seq2_pal", + "seq3_pal", + "fast_intro", + "chip_intro", + "fast_intro_2", + "fast_intro_3", + "retina_scan", + "retina_scan_cdt", + "exit_butt", + "exit_seq", + "forklift_cpt", + "forklift1_cdt", + "forklift2_cdt", +}; + +static const char *logic_table_names[] = { + "return", + "SkyLogic::script", + "SkyLogic::auto_route", + "SkyLogic::ar_anim", + "SkyLogic::ar_turn", + "SkyLogic::alt", + "SkyLogic::anim", + "SkyLogic::turn", + "SkyLogic::cursor", + "SkyLogic::talk", + "SkyLogic::listen", + "SkyLogic::stopped", + "SkyLogic::choose", + "SkyLogic::frames", + "SkyLogic::pause", + "SkyLogic::wait_sync", + "SkyLogic::simple_anim", +}; + +static const char opcode_par[] = { + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, +}; + +static const char *opcodes[] = { + "push_variable", + "less_than", + "push_number", + "not_equal", + "if_and", + "skip_zero", + "pop_var", + "minus", + "plus", + "skip_always", + "if_or", + "call_mcode", + "more_than", + "script_exit", + "switch", + "push_offset", + "pop_offset", + "is_equal", + "skip_nz", + "script_exit", + "restart_script", +}; + +static const char *mcodes[] = { + "fn_cache_chip", + "fn_cache_fast", + "fn_draw_screen", + "fn_ar", + "fn_ar_animate", + "fn_idle", + "fn_interact", + "fn_start_sub", + "fn_they_start_sub", + "fn_assign_base", + "fn_disk_mouse", + "fn_normal_mouse", + "fn_blank_mouse", + "fn_cross_mouse", + "fn_cursor_right", + "fn_cursor_left", + "fn_cursor_down", + "fn_open_hand", + "fn_close_hand", + "fn_get_to", + "fn_set_to_stand", + "fn_turn_to", + "fn_arrived", + "fn_leaving", + "fn_set_alternate", + "fn_alt_set_alternate", + "fn_kill_id", + "fn_no_human", + "fn_add_human", + "fn_add_buttons", + "fn_no_buttons", + "fn_set_stop", + "fn_clear_stop", + "fn_pointer_text", + "fn_quit", + "fn_speak_me", + "fn_speak_me_dir", + "fn_speak_wait", + "fn_speak_wait_dir", + "fn_chooser", + "fn_highlight", + "fn_text_kill", + "fn_stop_mode", + "fn_we_wait", + "fn_send_sync", + "fn_send_fast_sync", + "fn_send_request", + "fn_clear_request", + "fn_check_request", + "fn_start_menu", + "fn_unhighlight", + "fn_face_id", + "fn_foreground", + "fn_background", + "fn_new_background", + "fn_sort", + "fn_no_sprite_engine", + "fn_no_sprites_a6", + "fn_reset_id", + "fn_toggle_grid", + "fn_pause", + "fn_run_anim_mod", + "fn_simple_mod", + "fn_run_frames", + "fn_await_sync", + "fn_inc_mega_set", + "fn_dec_mega_set", + "fn_set_mega_set", + "fn_move_items", + "fn_new_list", + "fn_ask_this", + "fn_random", + "fn_person_here", + "fn_toggle_mouse", + "fn_mouse_on", + "fn_mouse_off", + "fn_fetch_x", + "fn_fetch_y", + "fn_test_list", + "fn_fetch_place", + "fn_custom_joey", + "fn_set_palette", + "fn_text_module", + "fn_change_name", + "fn_mini_load", + "fn_flush_buffers", + "fn_flush_chip", + "fn_save_coods", + "fn_plot_grid", + "fn_remove_grid", + "fn_eyeball", + "fn_cursor_up", + "fn_leave_section", + "fn_enter_section", + "fn_restore_game", + "fn_restart_game", + "fn_new_swing_seq", + "fn_wait_swing_end", + "fn_skip_intro_code", + "fn_blank_screen", + "fn_print_credit", + "fn_look_at", + "fn_linc_text_module", + "fn_text_kill2", + "fn_set_font", + "fn_start_fx", + "fn_stop_fx", + "fn_start_music", + "fn_stop_music", + "fn_fade_down", + "fn_fade_up", + "fn_quit_to_dos", + "fn_pause_fx", + "fn_un_pause_fx", + "fn_printf", +}; + +void SkyDebug::fetchCompact(uint32 a) { + uint32 sectionNum = (a & 0xf000) >> 12; + uint32 compactNum = (a & 0x0fff); + + if (sectionNum == 0) + printf("Loading Compact %s from section %d\n", section_0_compacts[compactNum], sectionNum); + else + printf("Loading Compact %d from section %d\n", compactNum, sectionNum); +} + +void SkyDebug::logic(uint32 logic) { + printf("LOGIC: %s\n", logic_table_names[logic]); +} + +void SkyDebug::script(uint32 command, uint16 *scriptData) { + int i; + printf("SCRIPT: %s", opcodes[command]); + for (i = 0; i < opcode_par[command]; i++) + printf(" %d", *(scriptData + i)); + printf("\n"); +} + +void SkyDebug::mcode(uint32 mcode, uint32 a, uint32 b, uint32 c) { + printf("MCODE: %s(%d, %d, %d)\n", mcodes[mcode], a, b, c); +}; + diff --git a/sky/debug.h b/sky/debug.h new file mode 100644 index 0000000000..1e36e7c1b5 --- /dev/null +++ b/sky/debug.h @@ -0,0 +1,31 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * $Header$ + * + */ + +#include "sky/sky.h" + +class SkyDebug { +public: + static void fetchCompact(uint32 a); + static void logic(uint32 logic); + static void script(uint32 command, uint16 *scriptData); + static void mcode(uint32 mcode, uint32 a, uint32 b, uint32 c); +}; + diff --git a/sky/logic.cpp b/sky/logic.cpp new file mode 100644 index 0000000000..1c39929912 --- /dev/null +++ b/sky/logic.cpp @@ -0,0 +1,1099 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * $Header$ + * + */ + +#include "sky/logic.h" +#include "sky/debug.h" +#include "sky/compact.h" +#include "sky/skydefs.h" + + +typedef void (SkyLogic::*LogicTable) (); +static const LogicTable logicTable[] = { + &SkyLogic::lreturn, + &SkyLogic::logicScript, // 1 script processor + &SkyLogic::autoRoute, // 2 Make a route + &SkyLogic::arAnim, // 3 Follow a route + &SkyLogic::arTurn, // 4 Mega turns araound + &SkyLogic::alt, // 5 Set up new get-to script + &SkyLogic::anim, // 6 Follow a sequence + &SkyLogic::turn, // 7 Mega turning + &SkyLogic::cursor, // 8 id tracks the pointer + &SkyLogic::talk, // 9 count down and animate + &SkyLogic::listen, // 10 player waits for talking id + &SkyLogic::stopped, // 11 wait for id to move + &SkyLogic::choose, // 12 wait for player to click + &SkyLogic::frames, // 13 animate just frames + &SkyLogic::pause, // 14 Count down to 0 and go + &SkyLogic::waitSync, // 15 Set to l_script when sync!=0 + &SkyLogic::simpleAnim, // 16 Module anim without x,y's +}; + + +void SkyLogic::engine() { +#define logic_list_no 141 + Compact *compact2 = SkyState::fetchCompact(141); // logic list + + while (compact2->logic) { // 0 means end of list + if (compact2->logic == 0xffff) { + // Change logic data address + compact2 = SkyState::fetchCompact(compact2->status); + continue; + } + + // Process id eax + //cur_id = compact2->logic; + _compact = SkyState::fetchCompact(compact2->logic); + + // check the id actually wishes to be processed + if (!(_compact->status & (1 << 6))) + continue; + + // ok, here we process the logic bit system + + if (_compact->status & (1 << 7)) + warning("remove_object_from_walk unimplemented"); + // remove_object_from_walk(); + + SkyDebug::logic(_compact->logic); + (this->*logicTable[_compact->logic]) (); + + if (_compact->status & (1 << 7)) + warning("object_to_walk unimplemented"); + // object_to_walk(); + + // a sync sent to the compact is available for one cycle + // only. that cycle has just ended so remove the sync. + // presumably the mega has just reacted to it. + _compact->sync = 0; + } +} + +void SkyLogic::lreturn() { + error("lreturn: Is this really called?"); +} + +void SkyLogic::logicScript() { + // Process the current mega's script + // If the script finishes then drop back a level + + for (;;) { + uint16 mode = _compact->mode; // get pointer to current script + printf("compact mode: %d\n", mode); + // FIXME: not endian safe + uint32 *p = (uint32 *)SkyCompact::getCompactElem(_compact, C_BASE_SUB + mode); + uint32 scr = *p; // get script number and offset + + // FIXME: HACK ALERT!!!! + if (scr == 0x27) + scr = 0x9fa0027; + + printf("script: 0x%X\n", scr); + *p = script(_compact, scr); + + if (!(*p & 0xffff0000)) // script finished + _compact->mode -= 4; + else if (_compact->mode == mode) + return; + } +} + +void SkyLogic::autoRoute() { + error("autoRoute unimplented"); + uint16 *route; + route = 0; + + warning("autoRoute unimplemented"); + uint32 ret = 0; // = autoRoute(route); + + _compact->logic = L_SCRIPT; // continue the script + + if (ret != 1) // route failed + _compact->downFlag = 1; // return fail to script + else if (!route) // zero route + _compact->downFlag = 2; // return fail to script + else { + _compact->grafixProg = route; // put graphic prog in + _compact->downFlag = 0; // route ok + } + + logicScript(); + return; +} + +void SkyLogic::arAnim() { + error("Stub: SkyLogic::arAnim"); +} + +void SkyLogic::arTurn() { + _compact->frame = *(uint16 *)(_compact->extCompact->turnProg); + ((uint16 *)(_compact->extCompact->turnProg))++; + + if (!*(uint16 *)(_compact->extCompact->turnProg)) { // turn done? + // Back to ar mode + _compact->extCompact->arAnimIndex = 0; + _compact->logic = L_AR_ANIM; + } +} + +void SkyLogic::alt() { + // change the current script + + _compact->logic = L_SCRIPT; + // FIXME: not endian safe + uint32 *p = (uint32 *)SkyCompact::getCompactElem(_compact, C_BASE_SUB + _compact->mode); + *p = _compact->extCompact->alt; + + logicScript(); +} + +void SkyLogic::anim() { + error("Stub: SkyLogic::anim"); +} + +void SkyLogic::turn() { + if (*(uint16 *)(_compact->extCompact->turnProg)) { + _compact->frame = *(uint16 *)(_compact->extCompact->turnProg); + ((uint16 *)(_compact->extCompact->turnProg))++; + return; + } + + // turn_to_script: + + _compact->extCompact->arAnimIndex = 0; + _compact->logic = L_SCRIPT; + + logicScript(); +} + +void SkyLogic::cursor() { + error("Stub: SkyLogic::cursor"); +} + +void SkyLogic::talk() { + error("Stub: SkyLogic::talk"); +} + +void SkyLogic::listen() { + error("Stub: SkyLogic::listen"); +} + +void SkyLogic::stopped() { + error("Stub: SkyLogic::stopped"); +} + +void SkyLogic::choose() { + error("Stub: SkyLogic::choose"); +} + +void SkyLogic::frames() { + error("Stub: SkyLogic::frames"); +} + +void SkyLogic::pause() { + error("Stub: SkyLogic::pause"); +} + +void SkyLogic::waitSync() { + error("Stub: SkyLogic::waitSync"); +} + +void SkyLogic::simpleAnim() { + error("Stub: SkyLogic::simpleAnim"); +} + + + +static uint16 *_moduleList[16] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; +static uint32 _stack[20]; +static byte _stackPtr = 0; +#define f_module_0 60400 + +void SkyLogic::checkModuleLoaded(uint32 moduleNo) { + if (!_moduleList[moduleNo]) + _moduleList[moduleNo] = (uint16 *)_skyDisk->loadFile(moduleNo + f_module_0, NULL); +} + +void SkyLogic::push(uint32 a) { + assert(_stackPtr < 19); + _stack[_stackPtr] = a; + _stackPtr++; +} + +uint32 SkyLogic::pop() { + assert(_stackPtr > 0); + --_stackPtr; + return _stack[_stackPtr]; +} + +typedef uint32 (SkyLogic::*McodeTable) (uint32, uint32, uint32); +static McodeTable mcodeTable[] = { + &SkyLogic::fnCacheChip, + &SkyLogic::fnCacheFast, + &SkyLogic::fnDrawScreen, + &SkyLogic::fnAr, + &SkyLogic::fnArAnimate, + &SkyLogic::fnIdle, + &SkyLogic::fnInteract, + &SkyLogic::fnStartSub, + &SkyLogic::fnTheyStartSub, + &SkyLogic::fnAssignBase, + &SkyLogic::fnDiskMouse, + &SkyLogic::fnNormalMouse, + &SkyLogic::fnBlankMouse, + &SkyLogic::fnCrossMouse, + &SkyLogic::fnCursorRight, + &SkyLogic::fnCursorLeft, + &SkyLogic::fnCursorDown, + &SkyLogic::fnOpenHand, + &SkyLogic::fnCloseHand, + &SkyLogic::fnGetTo, + &SkyLogic::fnSetToStand, + &SkyLogic::fnTurnTo, + &SkyLogic::fnArrived, + &SkyLogic::fnLeaving, + &SkyLogic::fnSetAlternate, + &SkyLogic::fnAltSetAlternate, + &SkyLogic::fnKillId, + &SkyLogic::fnNoHuman, + &SkyLogic::fnAddHuman, + &SkyLogic::fnAddButtons, + &SkyLogic::fnNoButtons, + &SkyLogic::fnSetStop, + &SkyLogic::fnClearStop, + &SkyLogic::fnPointerText, + &SkyLogic::fnQuit, + &SkyLogic::fnSpeakMe, + &SkyLogic::fnSpeakMeDir, + &SkyLogic::fnSpeakWait, + &SkyLogic::fnSpeakWaitDir, + &SkyLogic::fnChooser, + &SkyLogic::fnHighlight, + &SkyLogic::fnTextKill, + &SkyLogic::fnStopMode, + &SkyLogic::fnWeWait, + &SkyLogic::fnSendSync, + &SkyLogic::fnSendFastSync, + &SkyLogic::fnSendRequest, + &SkyLogic::fnClearRequest, + &SkyLogic::fnCheckRequest, + &SkyLogic::fnStartMenu, + &SkyLogic::fnUnhighlight, + &SkyLogic::fnFaceId, + &SkyLogic::fnForeground, + &SkyLogic::fnBackground, + &SkyLogic::fnNewBackground, + &SkyLogic::fnSort, + &SkyLogic::fnNoSpriteEngine, + &SkyLogic::fnNoSpritesA6, + &SkyLogic::fnResetId, + &SkyLogic::fnToggleGrid, + &SkyLogic::fnPause, + &SkyLogic::fnRunAnimMod, + &SkyLogic::fnSimpleMod, + &SkyLogic::fnRunFrames, + &SkyLogic::fnAwaitSync, + &SkyLogic::fnIncMegaSet, + &SkyLogic::fnDecMegaSet, + &SkyLogic::fnSetMegaSet, + &SkyLogic::fnMoveItems, + &SkyLogic::fnNewList, + &SkyLogic::fnAskThis, + &SkyLogic::fnRandom, + &SkyLogic::fnPersonHere, + &SkyLogic::fnToggleMouse, + &SkyLogic::fnMouseOn, + &SkyLogic::fnMouseOff, + &SkyLogic::fnFetchX, + &SkyLogic::fnFetchY, + &SkyLogic::fnTestList, + &SkyLogic::fnFetchPlace, + &SkyLogic::fnCustomJoey, + &SkyLogic::fnSetPalette, + &SkyLogic::fnTextModule, + &SkyLogic::fnChangeName, + &SkyLogic::fnMiniLoad, + &SkyLogic::fnFlushBuffers, + &SkyLogic::fnFlushChip, + &SkyLogic::fnSaveCoods, + &SkyLogic::fnPlotGrid, + &SkyLogic::fnRemoveGrid, + &SkyLogic::fnEyeball, + &SkyLogic::fnCursorUp, + &SkyLogic::fnLeaveSection, + &SkyLogic::fnEnterSection, + &SkyLogic::fnRestoreGame, + &SkyLogic::fnRestartGame, + &SkyLogic::fnNewSwingSeq, + &SkyLogic::fnWaitSwingEnd, + &SkyLogic::fnSkipIntroCode, + &SkyLogic::fnBlankScreen, + &SkyLogic::fnPrintCredit, + &SkyLogic::fnLookAt, + &SkyLogic::fnLincTextModule, + &SkyLogic::fnTextKill2, + &SkyLogic::fnSetFont, + &SkyLogic::fnStartFx, + &SkyLogic::fnStopFx, + &SkyLogic::fnStartMusic, + &SkyLogic::fnStopMusic, + &SkyLogic::fnFadeDown, + &SkyLogic::fnFadeUp, + &SkyLogic::fnQuitToDos, + &SkyLogic::fnPauseFx, + &SkyLogic::fnUnPauseFx, + &SkyLogic::fnPrintf, +}; + +#define RESULT 1 +void SkyLogic::initScriptVariables() { + for (int i = 0; i < 838; i++) + _scriptVariables[i] = 0; + + _scriptVariables[3] = 141; + _scriptVariables[110] = 62; + _scriptVariables[146] = 1; + _scriptVariables[147] = 2; + _scriptVariables[451] = 8371; + _scriptVariables[641] = 1; + _scriptVariables[679] = 1; + _scriptVariables[694] = 3; + _scriptVariables[705] = 1; + _scriptVariables[710] = 1; + _scriptVariables[711] = 1; + _scriptVariables[712] = 1; + _scriptVariables[720] = 1; + _scriptVariables[721] = 1; + _scriptVariables[794] = 1; + _scriptVariables[798] = 1; + _scriptVariables[799] = 1; + _scriptVariables[805] = 1; + _scriptVariables[806] = 1; + _scriptVariables[807] = 16731; + _scriptVariables[808] = 1; + _scriptVariables[809] = 2; + _scriptVariables[818] = 1; + _scriptVariables[819] = 1; + _scriptVariables[820] = 1; + _scriptVariables[821] = 1; + _scriptVariables[822] = 1; +} + +uint32 SkyLogic::script(Compact *compact, uint32 script) { +script: + // process a script + // low level interface to interpreter + + // script: + // Bit 0-11 - Script number + // Bit 12-15 - Module number + // Bit 16-31 - Script offset (if any) + + uint16 scriptNo = script & 0xffff; + uint16 moduleNo = (script & 0xff00) >> 12; + printf("scriptNo: %d, moduleNo: %d\n", scriptNo, moduleNo); + uint16 *scriptData = _moduleList[moduleNo]; // get module address + + printf("File: %d\n", moduleNo + f_module_0); + if (!scriptData) { // The module has not been loaded + scriptData = (uint16 *)_skyDisk->loadFile(moduleNo + f_module_0, NULL); + _moduleList[moduleNo] = scriptData; // module has been loaded + } + + uint16 *moduleStart = scriptData; + + // Check whether we have an offset or what + if (script & 0xffff0000) + scriptData = moduleStart + (script >> 16); + else + scriptData += *(scriptData + (script & 0x0fff)); + + uint32 a, b, c; + uint16 command, mcode, s; + uint16 *tmp; + int16 t; + + for (;;) { + command = *scriptData++; // get a command + SkyDebug::script(command, scriptData); + + switch (command) { + case 0: // push_variable + s = *scriptData++; // get variable number + push( _scriptVariables[s/4] ); + break; + case 1: // less_than + a = pop(); + b = pop(); + if (a < b) + push(1); + else + push(0); + break; + case 2: // push_number + push(*scriptData++); + break; + case 3: // not_equal + a = pop(); + b = pop(); + if (a != b) + push(1); + else + push(0); + break; + case 4: // if_and + a = pop(); + b = pop(); + if (a && b) + push(1); + else + push(0); + break; + case 5: // skip_zero + s = *scriptData++; + + a = pop(); + if (!a) + scriptData += s/2; + break; + case 6: // pop_var + s = *scriptData++; + _scriptVariables[s/4] = pop(); + break; + case 7: // minus + a = pop(); + b = pop(); + push(b-a); + break; + case 8: // plus + a = pop(); + b = pop(); + push(b+a); + break; + case 9: // skip_always + s = *scriptData++; + scriptData += s/2; + break; + case 10: // if_or + a = pop(); + b = pop(); + if (a || b) + push(1); + else + push(0); + break; + case 11: // call_mcode + s = *scriptData++; + + a = s; + b = c = 0; + assert(s <= 3); + // No, I did not forget the "break"s + switch (s) { + case 3: + c = pop(); + case 2: + b = pop(); + case 1: + a = pop(); + } + + // TODO: save stuff (compare asm code) + mcode = *scriptData++/4; // get mcode number + SkyDebug::mcode(mcode, a, b, c); + + a = (this->*mcodeTable[mcode]) (a, b, c); + + if (!(a & 0xffff)) + return (((scriptData - moduleStart) << 15) | scriptNo); + break; + case 12: // more_than + a = pop(); + b = pop(); + if (a > b) + push(1); + else + push(0); + break; + case 14: // switch + s = *scriptData++; // get number of cases + + a = pop(); // and value to switch on + + do { + if (a == *scriptData) { + scriptData += *(scriptData + 1)/2; + scriptData++; + break; + } + scriptData += 2; + } while (--s); + + s = *scriptData++; + scriptData += s; // use the default + scriptData--; + break; + case 15: // push_offset + // Push a compact access + s = *scriptData++; + tmp = (uint16 *)SkyCompact::getCompactElem(compact, s); + printf("push_offset: %d\n", *tmp); + push(*tmp); + break; + case 16: // pop_offset + // pop a value into a compact + s = *scriptData++; + tmp = (uint16 *)SkyCompact::getCompactElem(compact, s); + *tmp = pop(); + break; + case 17: // is_equal + a = pop(); + b = pop(); + if (a == b) + push(1); + else + push(0); + break; + case 18: // skip_nz + t = *scriptData++; + a = pop(); + if (a) + scriptData += t/2; + break; + case 13: + case 19: // script_exit + return scriptNo; + case 20: // restart_script + goto script; + default: + error("Unknown script command: %d", command); + } + } +} + +#define C_ACTION_MODE 4 + +uint32 SkyLogic::fnCacheChip(uint32 a, uint32 b, uint32 c) { + error("Stub: fnCacheChip"); +} + +uint32 SkyLogic::fnCacheFast(uint32 a, uint32 b, uint32 c) { + error("Stub: fnCacheFast"); +} + +uint32 SkyLogic::fnDrawScreen(uint32 a, uint32 b, uint32 c) { + error("Stub: fnDrawScreen"); +} + +uint32 SkyLogic::fnAr(uint32 x, uint32 y, uint32 c) { + _compact->downFlag = 1; // assume failure in-case logic is interupted by speech (esp Joey) + + _compact->extCompact->arTargetX = x; + _compact->extCompact->arTargetY = y; + _compact->logic = L_AR; // Set to AR mode + + _compact->xcood &= 0xfff8; + _compact->ycood &= 0xfff8; + + return 0; // drop out of script +} + +uint32 SkyLogic::fnArAnimate(uint32 a, uint32 b, uint32 c) { + _compact->mood = 0; // high level 'not stood still' + _compact->logic = L_AR_ANIM; + return 0; // drop out of script +} + +uint32 SkyLogic::fnIdle(uint32 a, uint32 b, uint32 c) { + error("Stub: fnIdle"); +} + +uint32 SkyLogic::fnInteract(uint32 a, uint32 b, uint32 c) { + error("Stub: fnInteract"); +} + +uint32 SkyLogic::fnStartSub(uint32 a, uint32 b, uint32 c) { + error("Stub: fnStartSub"); +} + +uint32 SkyLogic::fnTheyStartSub(uint32 a, uint32 b, uint32 c) { + error("Stub: fnTheyStartSub"); +} + +uint32 SkyLogic::fnAssignBase(uint32 a, uint32 b, uint32 c) { + error("Stub: fnAssignBase"); +} + +uint32 SkyLogic::fnDiskMouse(uint32 a, uint32 b, uint32 c) { + error("Stub: fnDiskMouse"); +} + +uint32 SkyLogic::fnNormalMouse(uint32 a, uint32 b, uint32 c) { + error("Stub: fnNormalMouse"); +} + +uint32 SkyLogic::fnBlankMouse(uint32 a, uint32 b, uint32 c) { + warning("Stub: fnBlankMouse"); + return 1; +} + +uint32 SkyLogic::fnCrossMouse(uint32 a, uint32 b, uint32 c) { + error("Stub: fnCrossMouse"); +} + +uint32 SkyLogic::fnCursorRight(uint32 a, uint32 b, uint32 c) { + error("Stub: fnCursorRight"); +} + +uint32 SkyLogic::fnCursorLeft(uint32 a, uint32 b, uint32 c) { + error("Stub: fnCursorLeft"); +} + +uint32 SkyLogic::fnCursorDown(uint32 a, uint32 b, uint32 c) { + error("Stub: fnCursorDown"); +} + +uint32 SkyLogic::fnOpenHand(uint32 a, uint32 b, uint32 c) { + error("Stub: fnOpenHand"); +} + +uint32 SkyLogic::fnCloseHand(uint32 a, uint32 b, uint32 c) { + error("Stub: fnCloseHand"); +} + +uint32 SkyLogic::fnGetTo(uint32 targetPlaceId, uint32 mode, uint32 c) { + _compact->upFlag = mode; // save mode for action script + _compact->mode += 4; // next level up + Compact *compact2 = SkyState::fetchCompact(_compact->place); + uint16 *getToTable = compact2->getToTable; + + while (*getToTable != targetPlaceId) + getToTable += 2; + + // FIXME: not endian safe + uint32 *p = (uint32 *)SkyCompact::getCompactElem(_compact, C_BASE_SUB + _compact->mode); + *p = *(getToTable + 1); // get new script + + return 0; // drop out of script +} + +uint32 SkyLogic::fnSetToStand(uint32 a, uint32 b, uint32 c) { + error("Stub: fnSetToStand"); +} + +uint32 SkyLogic::fnTurnTo(uint32 direction, uint32 b, uint32 c) { + error("Stub: fnTurnTo"); +} + +uint32 SkyLogic::fnArrived(uint32 a, uint32 b, uint32 c) { + error("Stub: fnArrived"); +} + +uint32 SkyLogic::fnLeaving(uint32 a, uint32 b, uint32 c) { + _compact->extCompact->atWatch = 0; + + if (_compact->extCompact->leaving) { + _scriptVariables[_compact->extCompact->leaving/4] -= 1; // decrement the script variable + _compact->extCompact->leaving = 0; // I shall do this only once + } + + return 1; // keep going +} + +uint32 SkyLogic::fnSetAlternate(uint32 a, uint32 b, uint32 c) { + error("Stub: fnSetAlternate"); +} + +uint32 SkyLogic::fnAltSetAlternate(uint32 a, uint32 b, uint32 c) { + error("Stub: fnAltSetAlternate"); +} + +uint32 SkyLogic::fnKillId(uint32 a, uint32 b, uint32 c) { + error("Stub: fnKillId"); +} + +uint32 SkyLogic::fnNoHuman(uint32 a, uint32 b, uint32 c) { + error("Stub: fnNoHuman"); +} + +uint32 SkyLogic::fnAddHuman(uint32 a, uint32 b, uint32 c) { + error("Stub: fnAddHuman"); +} + +uint32 SkyLogic::fnAddButtons(uint32 a, uint32 b, uint32 c) { + error("Stub: fnAddButtons"); +} + +uint32 SkyLogic::fnNoButtons(uint32 a, uint32 b, uint32 c) { + error("Stub: fnNoButtons"); +} + +uint32 SkyLogic::fnSetStop(uint32 a, uint32 b, uint32 c) { + error("Stub: fnSetStop"); +} + +uint32 SkyLogic::fnClearStop(uint32 a, uint32 b, uint32 c) { + error("Stub: fnClearStop"); +} + +uint32 SkyLogic::fnPointerText(uint32 a, uint32 b, uint32 c) { + error("Stub: fnPointerText"); +} + +uint32 SkyLogic::fnQuit(uint32 a, uint32 b, uint32 c) { + error("Stub: fnQuit"); +} + +uint32 SkyLogic::fnSpeakMe(uint32 a, uint32 b, uint32 c) { + error("Stub: fnSpeakMe"); +} + +uint32 SkyLogic::fnSpeakMeDir(uint32 a, uint32 b, uint32 c) { + error("Stub: fnSpeakMeDir"); +} + +uint32 SkyLogic::fnSpeakWait(uint32 a, uint32 b, uint32 c) { + error("Stub: fnSpeakWait"); +} + +uint32 SkyLogic::fnSpeakWaitDir(uint32 a, uint32 b, uint32 c) { + error("Stub: fnSpeakWaitDir"); +} + +uint32 SkyLogic::fnChooser(uint32 a, uint32 b, uint32 c) { + error("Stub: fnChooser"); +} + +uint32 SkyLogic::fnHighlight(uint32 a, uint32 b, uint32 c) { + error("Stub: fnHighlight"); +} + +uint32 SkyLogic::fnTextKill(uint32 a, uint32 b, uint32 c) { + error("Stub: fnTextKill"); +} + +uint32 SkyLogic::fnStopMode(uint32 a, uint32 b, uint32 c) { + error("Stub: fnStopMode"); +} + +uint32 SkyLogic::fnWeWait(uint32 a, uint32 b, uint32 c) { + error("Stub: fnWeWait"); +} + +uint32 SkyLogic::fnSendSync(uint32 a, uint32 b, uint32 c) { + error("Stub: fnSendSync"); +} + +uint32 SkyLogic::fnSendFastSync(uint32 a, uint32 b, uint32 c) { + error("Stub: fnSendFastSync"); +} + +uint32 SkyLogic::fnSendRequest(uint32 a, uint32 b, uint32 c) { + error("Stub: fnSendRequest"); +} + +uint32 SkyLogic::fnClearRequest(uint32 a, uint32 b, uint32 c) { + error("Stub: fnClearRequest"); +} + +uint32 SkyLogic::fnCheckRequest(uint32 a, uint32 b, uint32 c) { + // check for interaction request + + a = (a & 0xffffff00) | 1; // assume script continue + + ExtCompact *ecpt = _compact->extCompact; + + if (!ecpt->request) + return a; + + _compact->mode = C_ACTION_MODE; // into action mode + + ecpt->actionSub = ecpt->request; + + ecpt->request = 0; // trash request + return 0; // drop from script +} + +uint32 SkyLogic::fnStartMenu(uint32 a, uint32 b, uint32 c) { + error("Stub: fnStartMenu"); +} + +uint32 SkyLogic::fnUnhighlight(uint32 a, uint32 b, uint32 c) { + error("Stub: fnUnhighlight"); +} + +uint32 SkyLogic::fnFaceId(uint32 a, uint32 b, uint32 c) { + error("Stub: fnFaceId"); +} + +uint32 SkyLogic::fnForeground(uint32 a, uint32 b, uint32 c) { + error("Stub: fnForeground"); +} + +uint32 SkyLogic::fnBackground(uint32 a, uint32 b, uint32 c) { + error("Stub: fnBackground"); +} + +uint32 SkyLogic::fnNewBackground(uint32 a, uint32 b, uint32 c) { + error("Stub: fnNewBackground"); +} + +uint32 SkyLogic::fnSort(uint32 a, uint32 b, uint32 c) { + error("Stub: fnSort"); +} + +uint32 SkyLogic::fnNoSpriteEngine(uint32 a, uint32 b, uint32 c) { + error("Stub: fnNoSpriteEngine"); +} + +uint32 SkyLogic::fnNoSpritesA6(uint32 a, uint32 b, uint32 c) { + error("Stub: fnNoSpritesA6"); +} + +uint32 SkyLogic::fnResetId(uint32 a, uint32 b, uint32 c) { + error("Stub: fnResetId"); +} + +uint32 SkyLogic::fnToggleGrid(uint32 a, uint32 b, uint32 c) { + error("Stub: fnToggleGrid"); +} + +uint32 SkyLogic::fnPause(uint32 a, uint32 b, uint32 c) { + error("Stub: fnPause"); +} + +uint32 SkyLogic::fnRunAnimMod(uint32 a, uint32 b, uint32 c) { + error("Stub: fnRunAnimMod"); +} + +uint32 SkyLogic::fnSimpleMod(uint32 a, uint32 b, uint32 c) { + error("Stub: fnSimpleMod"); +} + +uint32 SkyLogic::fnRunFrames(uint32 a, uint32 b, uint32 c) { + error("Stub: fnRunFrames"); +} + +uint32 SkyLogic::fnAwaitSync(uint32 a, uint32 b, uint32 c) { + error("Stub: fnAwaitSync"); +} + +uint32 SkyLogic::fnIncMegaSet(uint32 a, uint32 b, uint32 c) { + error("Stub: fnIncMegaSet"); +} + +uint32 SkyLogic::fnDecMegaSet(uint32 a, uint32 b, uint32 c) { + error("Stub: fnDecMegaSet"); +} + +uint32 SkyLogic::fnSetMegaSet(uint32 a, uint32 b, uint32 c) { + error("Stub: fnSetMegaSet"); +} + +uint32 SkyLogic::fnMoveItems(uint32 a, uint32 b, uint32 c) { + error("Stub: fnMoveItems"); +} + +uint32 SkyLogic::fnNewList(uint32 a, uint32 b, uint32 c) { + error("Stub: fnNewList"); +} + +uint32 SkyLogic::fnAskThis(uint32 a, uint32 b, uint32 c) { + error("Stub: fnAskThis"); +} + +uint32 SkyLogic::fnRandom(uint32 a, uint32 b, uint32 c) { + error("Stub: fnRandom"); +} + +uint32 SkyLogic::fnPersonHere(uint32 a, uint32 b, uint32 c) { + error("Stub: fnPersonHere"); +} + +uint32 SkyLogic::fnToggleMouse(uint32 a, uint32 b, uint32 c) { + error("Stub: fnToggleMouse"); +} + +uint32 SkyLogic::fnMouseOn(uint32 a, uint32 b, uint32 c) { + error("Stub: fnMouseOn"); +} + +uint32 SkyLogic::fnMouseOff(uint32 a, uint32 b, uint32 c) { + error("Stub: fnMouseOff"); +} + +uint32 SkyLogic::fnFetchX(uint32 a, uint32 b, uint32 c) { + Compact *cpt = SkyState::fetchCompact(a); + _scriptVariables[RESULT] = cpt->xcood; + return 1; +} + +uint32 SkyLogic::fnFetchY(uint32 a, uint32 b, uint32 c) { + error("Stub: fnFetchY"); +} + +uint32 SkyLogic::fnTestList(uint32 a, uint32 b, uint32 c) { + error("Stub: fnTestList"); +} + +uint32 SkyLogic::fnFetchPlace(uint32 a, uint32 b, uint32 c) { + error("Stub: fnFetchPlace"); +} + +uint32 SkyLogic::fnCustomJoey(uint32 a, uint32 b, uint32 c) { + error("Stub: fnCustomJoey"); +} + +uint32 SkyLogic::fnSetPalette(uint32 a, uint32 b, uint32 c) { + error("Stub: fnSetPalette"); +} + +uint32 SkyLogic::fnTextModule(uint32 a, uint32 b, uint32 c) { + error("Stub: fnTextModule"); +} + +uint32 SkyLogic::fnChangeName(uint32 a, uint32 b, uint32 c) { + error("Stub: fnChangeName"); +} + +uint32 SkyLogic::fnMiniLoad(uint32 a, uint32 b, uint32 c) { + error("Stub: fnMiniLoad"); +} + +uint32 SkyLogic::fnFlushBuffers(uint32 a, uint32 b, uint32 c) { + error("Stub: fnFlushBuffers"); +} + +uint32 SkyLogic::fnFlushChip(uint32 a, uint32 b, uint32 c) { + error("Stub: fnFlushChip"); +} + +uint32 SkyLogic::fnSaveCoods(uint32 a, uint32 b, uint32 c) { + error("Stub: fnSaveCoods"); +} + +uint32 SkyLogic::fnPlotGrid(uint32 a, uint32 b, uint32 c) { + error("Stub: fnPlotGrid"); +} + +uint32 SkyLogic::fnRemoveGrid(uint32 a, uint32 b, uint32 c) { + error("Stub: fnRemoveGrid"); +} + +uint32 SkyLogic::fnEyeball(uint32 a, uint32 b, uint32 c) { + error("Stub: fnEyeball"); +} + +uint32 SkyLogic::fnCursorUp(uint32 a, uint32 b, uint32 c) { + error("Stub: fnCursorUp"); +} + +uint32 SkyLogic::fnLeaveSection(uint32 a, uint32 b, uint32 c) { + error("Stub: fnLeaveSection"); +} + +uint32 SkyLogic::fnEnterSection(uint32 a, uint32 b, uint32 c) { + error("Stub: fnEnterSection"); +} + +uint32 SkyLogic::fnRestoreGame(uint32 a, uint32 b, uint32 c) { + error("Stub: fnRestoreGame"); +} + +uint32 SkyLogic::fnRestartGame(uint32 a, uint32 b, uint32 c) { + error("Stub: fnRestartGame"); +} + +uint32 SkyLogic::fnNewSwingSeq(uint32 a, uint32 b, uint32 c) { + error("Stub: fnNewSwingSeq"); +} + +uint32 SkyLogic::fnWaitSwingEnd(uint32 a, uint32 b, uint32 c) { + error("Stub: fnWaitSwingEnd"); +} + +uint32 SkyLogic::fnSkipIntroCode(uint32 a, uint32 b, uint32 c) { + error("Stub: fnSkipIntroCode"); +} + +uint32 SkyLogic::fnBlankScreen(uint32 a, uint32 b, uint32 c) { + error("Stub: fnBlankScreen"); +} + +uint32 SkyLogic::fnPrintCredit(uint32 a, uint32 b, uint32 c) { + error("Stub: fnPrintCredit"); +} + +uint32 SkyLogic::fnLookAt(uint32 a, uint32 b, uint32 c) { + error("Stub: fnLookAt"); +} + +uint32 SkyLogic::fnLincTextModule(uint32 a, uint32 b, uint32 c) { + error("Stub: fnLincTextModule"); +} + +uint32 SkyLogic::fnTextKill2(uint32 a, uint32 b, uint32 c) { + error("Stub: fnTextKill2"); +} + +uint32 SkyLogic::fnSetFont(uint32 a, uint32 b, uint32 c) { + error("Stub: fnSetFont"); +} + +uint32 SkyLogic::fnStartFx(uint32 a, uint32 b, uint32 c) { + error("Stub: fnStartFx"); +} + +uint32 SkyLogic::fnStopFx(uint32 a, uint32 b, uint32 c) { + error("Stub: fnStopFx"); +} + +uint32 SkyLogic::fnStartMusic(uint32 a, uint32 b, uint32 c) { + error("Stub: fnStartMusic"); +} + +uint32 SkyLogic::fnStopMusic(uint32 a, uint32 b, uint32 c) { + error("Stub: fnStopMusic"); +} + +uint32 SkyLogic::fnFadeDown(uint32 a, uint32 b, uint32 c) { + error("Stub: fnFadeDown"); +} + +uint32 SkyLogic::fnFadeUp(uint32 a, uint32 b, uint32 c) { + error("Stub: fnFadeUp"); +} + +uint32 SkyLogic::fnQuitToDos(uint32 a, uint32 b, uint32 c) { + error("Stub: fnQuitToDos"); +} + +uint32 SkyLogic::fnPauseFx(uint32 a, uint32 b, uint32 c) { + error("Stub: fnPauseFx"); +} + +uint32 SkyLogic::fnUnPauseFx(uint32 a, uint32 b, uint32 c) { + error("Stub: fnUnPauseFx"); +} + +uint32 SkyLogic::fnPrintf(uint32 a, uint32 b, uint32 c) { + error("Stub: fnPrintf"); +} + diff --git a/sky/logic.h b/sky/logic.h new file mode 100644 index 0000000000..7cdd96754a --- /dev/null +++ b/sky/logic.h @@ -0,0 +1,181 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * $Header$ + * + */ + +#ifndef SKYLOGIC_H +#define SKYLOGIC_H + +#include "sky/sky.h" +#include "sky/disk.h" + +class SkyLogic { +public: + SkyLogic(SkyDisk *skyDisk) : _skyDisk(skyDisk) { initScriptVariables(); }; + void engine(); + + void lreturn(); + void logicScript(); + void autoRoute(); + void arAnim(); + void arTurn(); + void alt(); + void anim(); + void turn(); + void cursor(); + void talk(); + void listen(); + void stopped(); + void choose(); + void frames(); + void pause(); + void waitSync(); + void simpleAnim(); + + + uint32 fnCacheChip(uint32 a, uint32 b, uint32 c); + uint32 fnCacheFast(uint32 a, uint32 b, uint32 c); + uint32 fnDrawScreen(uint32 a, uint32 b, uint32 c); + uint32 fnAr(uint32 a, uint32 b, uint32 c); + uint32 fnArAnimate(uint32 a, uint32 b, uint32 c); + uint32 fnIdle(uint32 a, uint32 b, uint32 c); + uint32 fnInteract(uint32 a, uint32 b, uint32 c); + uint32 fnStartSub(uint32 a, uint32 b, uint32 c); + uint32 fnTheyStartSub(uint32 a, uint32 b, uint32 c); + uint32 fnAssignBase(uint32 a, uint32 b, uint32 c); + uint32 fnDiskMouse(uint32 a, uint32 b, uint32 c); + uint32 fnNormalMouse(uint32 a, uint32 b, uint32 c); + uint32 fnBlankMouse(uint32 a, uint32 b, uint32 c); + uint32 fnCrossMouse(uint32 a, uint32 b, uint32 c); + uint32 fnCursorRight(uint32 a, uint32 b, uint32 c); + uint32 fnCursorLeft(uint32 a, uint32 b, uint32 c); + uint32 fnCursorDown(uint32 a, uint32 b, uint32 c); + uint32 fnOpenHand(uint32 a, uint32 b, uint32 c); + uint32 fnCloseHand(uint32 a, uint32 b, uint32 c); + uint32 fnGetTo(uint32 a, uint32 b, uint32 c); + uint32 fnSetToStand(uint32 a, uint32 b, uint32 c); + uint32 fnTurnTo(uint32 a, uint32 b, uint32 c); + uint32 fnArrived(uint32 a, uint32 b, uint32 c); + uint32 fnLeaving(uint32 a, uint32 b, uint32 c); + uint32 fnSetAlternate(uint32 a, uint32 b, uint32 c); + uint32 fnAltSetAlternate(uint32 a, uint32 b, uint32 c); + uint32 fnKillId(uint32 a, uint32 b, uint32 c); + uint32 fnNoHuman(uint32 a, uint32 b, uint32 c); + uint32 fnAddHuman(uint32 a, uint32 b, uint32 c); + uint32 fnAddButtons(uint32 a, uint32 b, uint32 c); + uint32 fnNoButtons(uint32 a, uint32 b, uint32 c); + uint32 fnSetStop(uint32 a, uint32 b, uint32 c); + uint32 fnClearStop(uint32 a, uint32 b, uint32 c); + uint32 fnPointerText(uint32 a, uint32 b, uint32 c); + uint32 fnQuit(uint32 a, uint32 b, uint32 c); + uint32 fnSpeakMe(uint32 a, uint32 b, uint32 c); + uint32 fnSpeakMeDir(uint32 a, uint32 b, uint32 c); + uint32 fnSpeakWait(uint32 a, uint32 b, uint32 c); + uint32 fnSpeakWaitDir(uint32 a, uint32 b, uint32 c); + uint32 fnChooser(uint32 a, uint32 b, uint32 c); + uint32 fnHighlight(uint32 a, uint32 b, uint32 c); + uint32 fnTextKill(uint32 a, uint32 b, uint32 c); + uint32 fnStopMode(uint32 a, uint32 b, uint32 c); + uint32 fnWeWait(uint32 a, uint32 b, uint32 c); + uint32 fnSendSync(uint32 a, uint32 b, uint32 c); + uint32 fnSendFastSync(uint32 a, uint32 b, uint32 c); + uint32 fnSendRequest(uint32 a, uint32 b, uint32 c); + uint32 fnClearRequest(uint32 a, uint32 b, uint32 c); + uint32 fnCheckRequest(uint32 a, uint32 b, uint32 c); + uint32 fnStartMenu(uint32 a, uint32 b, uint32 c); + uint32 fnUnhighlight(uint32 a, uint32 b, uint32 c); + uint32 fnFaceId(uint32 a, uint32 b, uint32 c); + uint32 fnForeground(uint32 a, uint32 b, uint32 c); + uint32 fnBackground(uint32 a, uint32 b, uint32 c); + uint32 fnNewBackground(uint32 a, uint32 b, uint32 c); + uint32 fnSort(uint32 a, uint32 b, uint32 c); + uint32 fnNoSpriteEngine(uint32 a, uint32 b, uint32 c); + uint32 fnNoSpritesA6(uint32 a, uint32 b, uint32 c); + uint32 fnResetId(uint32 a, uint32 b, uint32 c); + uint32 fnToggleGrid(uint32 a, uint32 b, uint32 c); + uint32 fnPause(uint32 a, uint32 b, uint32 c); + uint32 fnRunAnimMod(uint32 a, uint32 b, uint32 c); + uint32 fnSimpleMod(uint32 a, uint32 b, uint32 c); + uint32 fnRunFrames(uint32 a, uint32 b, uint32 c); + uint32 fnAwaitSync(uint32 a, uint32 b, uint32 c); + uint32 fnIncMegaSet(uint32 a, uint32 b, uint32 c); + uint32 fnDecMegaSet(uint32 a, uint32 b, uint32 c); + uint32 fnSetMegaSet(uint32 a, uint32 b, uint32 c); + uint32 fnMoveItems(uint32 a, uint32 b, uint32 c); + uint32 fnNewList(uint32 a, uint32 b, uint32 c); + uint32 fnAskThis(uint32 a, uint32 b, uint32 c); + uint32 fnRandom(uint32 a, uint32 b, uint32 c); + uint32 fnPersonHere(uint32 a, uint32 b, uint32 c); + uint32 fnToggleMouse(uint32 a, uint32 b, uint32 c); + uint32 fnMouseOn(uint32 a, uint32 b, uint32 c); + uint32 fnMouseOff(uint32 a, uint32 b, uint32 c); + uint32 fnFetchX(uint32 a, uint32 b, uint32 c); + uint32 fnFetchY(uint32 a, uint32 b, uint32 c); + uint32 fnTestList(uint32 a, uint32 b, uint32 c); + uint32 fnFetchPlace(uint32 a, uint32 b, uint32 c); + uint32 fnCustomJoey(uint32 a, uint32 b, uint32 c); + uint32 fnSetPalette(uint32 a, uint32 b, uint32 c); + uint32 fnTextModule(uint32 a, uint32 b, uint32 c); + uint32 fnChangeName(uint32 a, uint32 b, uint32 c); + uint32 fnMiniLoad(uint32 a, uint32 b, uint32 c); + uint32 fnFlushBuffers(uint32 a, uint32 b, uint32 c); + uint32 fnFlushChip(uint32 a, uint32 b, uint32 c); + uint32 fnSaveCoods(uint32 a, uint32 b, uint32 c); + uint32 fnPlotGrid(uint32 a, uint32 b, uint32 c); + uint32 fnRemoveGrid(uint32 a, uint32 b, uint32 c); + uint32 fnEyeball(uint32 a, uint32 b, uint32 c); + uint32 fnCursorUp(uint32 a, uint32 b, uint32 c); + uint32 fnLeaveSection(uint32 a, uint32 b, uint32 c); + uint32 fnEnterSection(uint32 a, uint32 b, uint32 c); + uint32 fnRestoreGame(uint32 a, uint32 b, uint32 c); + uint32 fnRestartGame(uint32 a, uint32 b, uint32 c); + uint32 fnNewSwingSeq(uint32 a, uint32 b, uint32 c); + uint32 fnWaitSwingEnd(uint32 a, uint32 b, uint32 c); + uint32 fnSkipIntroCode(uint32 a, uint32 b, uint32 c); + uint32 fnBlankScreen(uint32 a, uint32 b, uint32 c); + uint32 fnPrintCredit(uint32 a, uint32 b, uint32 c); + uint32 fnLookAt(uint32 a, uint32 b, uint32 c); + uint32 fnLincTextModule(uint32 a, uint32 b, uint32 c); + uint32 fnTextKill2(uint32 a, uint32 b, uint32 c); + uint32 fnSetFont(uint32 a, uint32 b, uint32 c); + uint32 fnStartFx(uint32 a, uint32 b, uint32 c); + uint32 fnStopFx(uint32 a, uint32 b, uint32 c); + uint32 fnStartMusic(uint32 a, uint32 b, uint32 c); + uint32 fnStopMusic(uint32 a, uint32 b, uint32 c); + uint32 fnFadeDown(uint32 a, uint32 b, uint32 c); + uint32 fnFadeUp(uint32 a, uint32 b, uint32 c); + uint32 fnQuitToDos(uint32 a, uint32 b, uint32 c); + uint32 fnPauseFx(uint32 a, uint32 b, uint32 c); + uint32 fnUnPauseFx(uint32 a, uint32 b, uint32 c); + uint32 fnPrintf(uint32 a, uint32 b, uint32 c); + +protected: + void push(unsigned int); + uint32 pop(); + void checkModuleLoaded(uint32 moduleNo); + uint32 script(Compact *compact, uint32 script); + void initScriptVariables(); + + Compact *_compact; + uint32 _scriptVariables[838]; + + SkyDisk *_skyDisk; +}; + +#endif diff --git a/sky/module.mk b/sky/module.mk index 99c9f06d99..8b1f717979 100644 --- a/sky/module.mk +++ b/sky/module.mk @@ -2,6 +2,9 @@ MODULE := sky MODULE_OBJS = \ sky/sky.o \ + sky/compact.o \ + sky/logic.o \ + sky/debug.o \ sky/disk.o \ sky/screen.o \ sky/timer.o \ diff --git a/sky/sky.cpp b/sky/sky.cpp index 0e9dc2239f..4c44fc6f8a 100644 --- a/sky/sky.cpp +++ b/sky/sky.cpp @@ -22,6 +22,9 @@ #include "stdafx.h" #include "sky/sky.h" #include "sky/skydefs.h" //game specific defines +#include "sky/compact.h" +#include "sky/logic.h" +#include "sky/debug.h" #include "common/file.h" #include "common/gameDetector.h" #include <errno.h> @@ -48,6 +51,8 @@ Engine *Engine_SKY_create(GameDetector *detector, OSystem *syst) { return new SkyState(detector, syst); } +void **SkyState::_itemList[300]; + SkyState::SkyState(GameDetector *detector, OSystem *syst) : Engine(detector, syst) { @@ -83,12 +88,13 @@ void SkyState::go() { _dump_file = stdout; initialise(); - - if (!isDemo(_gameVersion) || isCDVersion(_gameVersion)) - intro(); - + + //if (!isDemo(_gameVersion) || isCDVersion(_gameVersion)) + // intro(); + while (1) { delay(100); + _skyLogic->engine(); } } @@ -110,6 +116,8 @@ void SkyState::initialise(void) { //initScript(); initialiseGrids(); //initialiseRouter(); + _skyText = getSkyText(); + _skyLogic = new SkyLogic(_skyDisk); } void SkyState::initItemList() { @@ -117,23 +125,29 @@ void SkyState::initItemList() { //See List.asm for (cryptic) item # descriptions for (int i = 0; i < 300; i++) - _itemList[i] = (void*)NULL; + _itemList[i] = (void **)NULL; //init the non-null items - /* - _itemList[119] = (void*)data_0; // Compacts - Section 0 - _itemList[120] = (void*)data_1; // Compacts - Section 1 + _itemList[119] = (void **)SkyCompact::data_0; // Compacts - Section 0 + _itemList[120] = (void **)SkyCompact::data_1; // Compacts - Section 1 if (isDemo(_gameVersion)) { - _itemList[121] = _itemList[122] = _itemList[123] = _itemList[124] = _itemList[125] = (void*)data_0; + _itemList[121] = _itemList[122] = _itemList[123] = _itemList[124] = _itemList[125] = (void **)SkyCompact::data_0; } else { - _itemList[121] = (void*)data_2; // Compacts - Section 2 - _itemList[122] = (void*)data_3; // Compacts - Section 3 - _itemList[123] = (void*)data_4; // Compacts - Section 4 - _itemList[124] = (void*)data_5; // Compacts - Section 5 - _itemList[125] = (void*)data_6; // Compacts - Section 6 + _itemList[121] = (void **)SkyCompact::data_2; // Compacts - Section 2 + _itemList[122] = (void **)SkyCompact::data_3; // Compacts - Section 3 + _itemList[123] = (void **)SkyCompact::data_4; // Compacts - Section 4 + _itemList[124] = (void **)SkyCompact::data_5; // Compacts - Section 5 + _itemList[125] = (void **)SkyCompact::data_6; // Compacts - Section 6 } - */ +} + +Compact *SkyState::fetchCompact(uint32 a) { + SkyDebug::fetchCompact(a); + uint32 sectionNum = (a & 0xf000) >> 12; + uint32 compactNum = (a & 0x0fff); + + return (Compact *)(_itemList[119 + sectionNum][compactNum]); } void SkyState::delay(uint amount) { //copied and mutilated from Simon.cpp @@ -30,8 +30,11 @@ #include "sky/sound.h" #include "sky/text.h" #include "sky/disk.h" +#include "sky/struc.h" #include "sky/skymusic.h" +class SkyLogic; + class SkyState : public Engine { void errorString(const char *buf_input, char *buf_output); protected: @@ -43,8 +46,6 @@ protected: byte *_tseqData; uint32 _tseqCounter; - void *_itemList[300]; - uint16 _debugMode; uint16 _debugLevel; uint16 _language; @@ -68,6 +69,8 @@ protected: SkySound *_sound; SkyDisk *_skyDisk; + SkyText *_skyText; + SkyLogic *_skyLogic; SkyMusic *_music; byte *_workScreen; @@ -86,8 +89,13 @@ public: static bool isDemo(uint32 version); static bool isCDVersion(uint32 version); + + static Compact *fetchCompact(uint32 a); + static void **_itemList[300]; + protected: + void logic_engine(); void delay(uint amount); void pollMouseXY(); void go(); @@ -117,7 +125,6 @@ protected: void shutdown(); RandomSource _rnd; - SkyText *_skyText; }; #endif diff --git a/sky/skydefs.h b/sky/skydefs.h index df7ffcd5db..394256d9ed 100644 --- a/sky/skydefs.h +++ b/sky/skydefs.h @@ -51,40 +51,4174 @@ #define MAIN_CHAR_HEIGHT 12 -#define c_base_mode 0 -#define c_base_mode56 56 -#define c_action_mode 4 -#define c_sp_colour 90 -#define c_mega_set 112 -#define c_grid_width 114 +#define C_BASE_MODE 0 +#define C_BASE_MODE56 56 +#define C_ACTION_MODE 4 +#define C_SP_COLOUR 90 +#define C_MEGA_SET 112 +#define C_GRID_WIDTH 114 -//#define next_mega_set +#define SECTION_0_ITEM 119 //item number of first item section +#define NEXT_MEGA_SET (sizeof(Compact) + sizeof(ExtCompact) - C_GRID_WIDTH) -#define send_sync -1 -#define lf_start_fx -2 -#define safe_start_screen 0 +#define SEND_SYNC 0xFFFF +#define LF_START_FX 0xFFFE +#define SAFE_START_SCREEN 0 //autoroute defines -#define upy 0 -#define downy 1 -#define lefty 2 -#define righty 3 - -#define route_space 64 - -#define l_script 1 -#define l_ar 2 -#define l_ar_anim 3 -#define l_ar_turning 4 -#define l_alt 5 -#define l_mod_animate 6 -#define l_turning 7 -#define l_cursor 8 -#define l_talk 9 -#define l_listen 10 -#define l_stopped 11 -#define l_choose 12 -#define l_frames 13 -#define l_pause 14 -#define l_wait_synch 15 -#define l_simple_mod 16 +#define UPY 0 +#define DOWNY 1 +#define LEFTY 2 +#define RIGHTY 3 + +#define ROUTE_SPACE 64 + +#define PCONLY_F_R3_1 0 +#define PCONLY_F_R3_2 0 + +#define RESTART_BUTT_X 147 +#define RESTART_BUTT_Y 309 +#define RESTORE_BUTT_X 246 +#define RESTORE_BUTT_Y 309 +#define EXIT_BUTT_X 345 +#define EXIT_BUTT_Y 309 + +#define L_SCRIPT 1 +#define L_AR 2 +#define L_AR_ANIM 3 +#define L_AR_TURNING 4 +#define L_ALT 5 +#define L_MOD_ANIMATE 6 +#define L_TURNING 7 +#define L_CURSOR 8 +#define L_TALK 9 +#define L_LISTEN 10 +#define L_STOPPED 11 +#define L_CHOOSE 12 +#define L_FRAMES 13 +#define L_PAUSE 14 +#define L_WAIT_SYNC 15 +#define L_SIMPLE_MOD 16 + +// characters with own colour set +#define SP_COL_FOSTER 194 +#define SP_COL_JOEY 216 +#define SP_COL_JOBS 209 +#define SP_COL_SO 218 +#define SP_COL_HOLO 234 +#define SP_COL_LAMB 203 +#define SP_COL_FOREMAN 205 +#define SP_COL_SHADES 217 +#define SP_COL_MONITOR 224 +#define SP_COL_WRECK 219 //wreck guard +#define SP_COL_ANITA 73 +#define SP_COL_DAD 224 +#define SP_COL_SON 223 +#define SP_COL_GALAG 194 +#define SP_COL_ANCHOR 85 //194 +#define SP_COL_BURKE 192 +#define SP_COL_BODY 234 +#define SP_COL_MEDI 235 +#define SP_COL_SKORL 241 //skorl guard will probably go +#define SP_COL_ANDROID2 222 +#define SP_COL_ANDROID3 222 +#define SP_COL_KEN 222 +#define SP_COL_HENRI30 128 //207 +#define SP_COL_GUARD31 216 +#define SP_DAN_COL 228 +#define SP_COL_BUZZER32 228 //124 +#define SP_COL_VINCENT32 193 +#define SP_COL_GARDENER32 145 +#define SP_COL_WITNESS 195 +#define SP_COL_JOBS82 209 +#define SP_COL_KEN81 224 +#define SP_COL_FATHER81 177 +#define SP_COL_TREVOR 216 +#define SP_COL_RADMAN 193 +#define SP_COL_BARMAN36 144 +#define SP_COL_BABS36 202 +#define SP_COL_GALLAGHER36 145 +#define SP_COL_COLSTON36 146 +#define SP_COL_JUKEBOX36 176 +#define SP_COL_JUDGE42 193 +#define SP_COL_CLERK42 195 +#define SP_COL_PROS42 217 +#define SP_COL_JOBS42 209 + +#define SP_COL_HOLOGRAM_B 255 +#define SP_COL_BLUE 255 +#define SP_COL_LOADER 255 + +#define SP_COL_UCHAR 255 + +#define ST_NO_VMASK 0x200 + +// Files.asm +#define DISK_1 (2048) +#define DISK_2 (2048*2) +#define DISK_3 (2048*3) +#define DISK_4 (2048*4) +#define DISK_5 (2048*5) +#define DISK_6 (2048*6) +#define DISK_7 (2048*7) +#define DISK_8 (2048*8) +#define DISK_9 (2048*9) +#define DISK_10 (2048*10) +#define DISK_12 (2048*12) +#define DISK_13 (2048*13) +#define DISK_14 (2048*14) +#define DISK_15 (2048*15) +#define F_MODULE_0 60400 +#define F_MODULE_1 60401 +#define CHAR_SET_FILE 60150 + +// Script.equ +#define STD_BASE (0x0000+0x1) +#define ADVISOR_188 (0x0000+0x2) +#define JUST_INTERACT (0x0000+0x3) +#define MEGA_CLICK (0x0000+0x4) +#define STD_EXIT_RIGHT_ON (0x0000+0x5) +#define STD_EXIT_LEFT_ON (0x0000+0x6) +#define STD_EXIT_DOWN_ON (0x0000+0x7) +#define STD_EXIT_UP_ON (0x0000+0x8) +#define STD_ON (0x0000+0x9) +#define STD_OFF (0x0000+0xa) +#define TEXT_ON (0x0000+0xb) +#define TEXT_OFF (0x0000+0xc) +#define START_MENU (0x0000+0xd) +#define MENU_SELECT (0x0000+0xe) +#define CLICK_LEFT_ARROW (0x0000+0xf) +#define CLICK_RIGHT_ARROW (0x0000+0x10) +#define TOUCH_MENU (0x0000+0x11) +#define UNTOUCH_MENU (0x0000+0x12) +#define TOUCH_ARROW (0x0000+0x13) +#define UNTOUCH_ARROW (0x0000+0x14) +#define MENU_SCRIPT (0x0000+0x15) +#define TEXT_CLICK (0x0000+0x16) +#define RESET_MOUSE (0x0000+0x17) +#define CLICK_DEBUG (0x0000+0x18) +#define STD_MEGA_STOP (0x0000+0x19) +#define STD_PLAYER_STOP (0x0000+0x1a) +#define STD_MINI_BUMP (0x0000+0x1b) +#define RETURN_OK (0x0000+0x1c) +#define RETURN_FAIL (0x0000+0x1d) +#define STD_ADJOIN_FLOOR (0x0000+0x1e) +#define FLOOR_ACTION (0x0000+0x1f) +#define ANIMATE_LOGIC (0x0000+0x20) +#define STORE_188 (0x0000+0x21) +#define TEXT_EDIT (0x0000+0x22) +#define SHOUT_SSS (0x0000+0x23) +#define SHOUT_ACTION (0x0000+0x24) +#define MEGA_SSS (0x0000+0x25) +#define MEGA_ACTION (0x0000+0x26) +#define BASE_INTRO (0x0000+0x27) +#define FURNACE_D_ACTION (0x0000+0x28) +#define STAIR6_ACTION (0x0000+0x29) +#define GET_TO_JP2 (0x0000+0x2a) +#define JOEY_EXTRA (0x0000+0x2b) +#define JOEY_LOGIC (0x0000+0x2c) +#define SECURITY_EXIT_ACTION (0x0000+0x2d) +#define SMALL_DOOR_ACTION (0x0000+0x2e) +#define LINK_7_29 (0x0000+0x2f) +#define LINK_29_7 (0x0000+0x30) +#define LAMB_TO_3 (0x0000+0x31) +#define LAMB_TO_2 (0x0000+0x32) +#define SS_SIGN_ACTION (0x0000+0x33) +#define SCANNER_10_LOGIC (0x0000+0x34) +#define SLOT_10_ACTION (0x0000+0x35) +#define DAD_SCAN_SSS (0x0000+0x36) +#define LOBBY_SLOT_ACTION (0x0000+0x37) +#define LINK_28_31 (0x0000+0x38) +#define LINK_31_28 (0x0000+0x39) +#define LINK_65_66 (0x0000+0x3a) +#define DEATH_SCRIPT (0x0000+0x3b) +#define RESTART_BUTTON_LOGIC (0x0000+0x3c) +#define RESTORE_BUTTON_LOGIC (0x0000+0x3d) +#define EXIT_BUTTON_LOGIC (0x0000+0x3e) +#define DEATH_CLICK (0x0000+0x3f) +#define STD_GIVE_UP (0x1000+0x1) +#define GET_TO_TALK1 (0x1000+0x2) +#define GET_TO_TALK2 (0x1000+0x3) +#define STAIRS_FROM_LOW (0x1000+0x4) +#define STAIRS_FROM_HIGH (0x1000+0x5) +#define STAIR_ACTION (0x1000+0x6) +#define CLIMB_STAIRS (0x1000+0x7) +#define SS_SHOOTS (0x1000+0x8) +#define UPSTAIR_ACTION (0x1000+0x9) +#define DECEND (0x1000+0xa) +#define START_MINI_SS (0x1000+0xb) +#define ALERT_SS (0x1000+0xc) +#define MORE_SS (0x1000+0xd) +#define BAR_ACTION (0x1000+0xe) +#define GET_TO_BAR (0x1000+0xf) +#define FULL_SS_CUT (0x1000+0x10) +#define CUT_SEQ (0x1000+0x11) +#define FIRE_EXIT_ACTION (0x1000+0x12) +#define GET_TO_FEXIT (0x1000+0x13) +#define FEXIT_DOOR (0x1000+0x14) +#define FEXIT_ON (0x1000+0x15) +#define SMALL_DOOR_LOGIC (0x1000+0x16) +#define GET_TO_SMALL_DOOR (0x1000+0x17) +#define ER0_ACTION (0x1000+0x18) +#define ER0_ALT (0x1000+0x19) +#define GET_TO_ER0 (0x1000+0x1a) +#define FAN1_LOGIC (0x1000+0x1b) +#define FAN2_LOGIC (0x1000+0x1c) +#define FAN3_LOGIC (0x1000+0x1d) +#define FAN4_LOGIC (0x1000+0x1e) +#define FAN5_LOGIC (0x1000+0x1f) +#define FAN6_LOGIC (0x1000+0x20) +#define FAN7_LOGIC (0x1000+0x21) +#define UPLOAD_WAIT (0x1000+0x22) +#define GET_TO_UPLOAD (0x1000+0x23) +#define LAZER_GUN_LOGIC (0x1000+0x24) +#define LOAD_POINT_LOGIC (0x1000+0x25) +#define NOTICE_LOGIC (0x1000+0x26) +#define NOTICE_ACTION (0x1000+0x27) +#define GET_TO_NOTICE (0x1000+0x28) +#define PRESS_LOGIC (0x1000+0x29) +#define PRESS_ACTION (0x1000+0x2a) +#define GET_TO_PRESS (0x1000+0x2b) +#define LOAD_POINT_ACTION (0x1000+0x2c) +#define SMALL_DOOR_ON (0x1000+0x2d) +#define OUT_EXIT_ON (0x1000+0x2e) +#define R1EXIT_DOOR (0x1000+0x2f) +#define GET_TO_R1_DOOR (0x1000+0x30) +#define S1_DOOR_ACTION (0x1000+0x31) +#define GET_TO_NOTICE2 (0x1000+0x32) +#define NOTICE2_ACTION (0x1000+0x33) +#define GET_TO_SS_SIGN (0x1000+0x34) +#define LFAN1_LOGIC (0x1000+0x35) +#define LFAN2_LOGIC (0x1000+0x36) +#define SMOKE1_LOGIC (0x1000+0x37) +#define SMOKE2_LOGIC (0x1000+0x38) +#define FIRE1_LOGIC (0x1000+0x39) +#define FIRE2_LOGIC (0x1000+0x3a) +#define CAR_LOGIC (0x1000+0x3b) +#define ER0_WALK_ON (0x1000+0x3c) +#define S2_WALK_ON (0x1000+0x3d) +#define EL2_ACTION (0x1000+0x3e) +#define GET_TO_EL2 (0x1000+0x3f) +#define GET_TO_TALK21 (0x1000+0x40) +#define MEGA_FAILED_S2 (0x1000+0x41) +#define GET_TO_TALK22 (0x1000+0x42) +#define GET_TO_ER2 (0x1000+0x43) +#define FIRST_INTERACT (0x1000+0x44) +#define ER2_ACTION (0x1000+0x45) +#define TOP_LIFT_ACTION (0x1000+0x46) +#define LIFT_WAIT (0x1000+0x47) +#define GET_TO_LIFTER (0x1000+0x48) +#define LIFT_TO_FLOOR (0x1000+0x49) +#define TOP_BARREL_LOGIC (0x1000+0x4a) +#define LIGHT_LOGIC (0x1000+0x4b) +#define GET_TO_LIGHT1 (0x1000+0x4c) +#define PANEL_LOGIC (0x1000+0x4d) +#define ALARM_LOGIC (0x1000+0x4e) +#define GET_TO_HOLE (0x1000+0x4f) +#define HOLE_ACTION (0x1000+0x50) +#define DEAD_LOSS (0x1000+0x51) +#define GET_TO_TRANSPORTER (0x1000+0x52) +#define TRANSPORTER_ACTION (0x1000+0x53) +#define TRANS_ALIVE_ACTION (0x1000+0x54) +#define JOEY_START (0x1000+0x55) +#define JOEY_MISSION (0x1000+0x56) +#define TRANS_MISSION (0x1000+0x57) +#define SHELL_ACTION (0x1000+0x58) +#define GET_TO_SHELL (0x1000+0x59) +#define LIGHT1_ACTION (0x1000+0x5a) +#define GET_TO_LEDS (0x1000+0x5b) +#define GT_PANEL2 (0x1000+0x5c) +#define PANEL2_ACTION (0x1000+0x5d) +#define GT_JUNK1 (0x1000+0x5e) +#define JUNK1_ACTION (0x1000+0x5f) +#define GT_JUNK2 (0x1000+0x60) +#define JUNK2_ACTION (0x1000+0x61) +#define TOP_LIFT_LOGIC (0x1000+0x62) +#define TOP_LIFT_2_LOGIC (0x1000+0x63) +#define LOW_LIFT_LOGIC (0x1000+0x64) +#define LOW_LIFT2_LOGIC (0x1000+0x65) +#define LOW_LIFT3_LOGIC (0x1000+0x66) +#define STEVE_SPY_LOGIC (0x1000+0x67) +#define LOW_BARREL_LOGIC (0x1000+0x68) +#define CONVEY_LOGIC (0x1000+0x69) +#define FLY_LOGIC (0x1000+0x6a) +#define FURNACE_LOGIC (0x1000+0x6b) +#define LIGHTS1_LOGIC (0x1000+0x6c) +#define EYE_BALL_LOGIC (0x1000+0x6d) +#define NEW_EYE_BALL (0x1000+0x6e) +#define FURNACE_DOOR_LOGIC (0x1000+0x6f) +#define GET_TO_FURNACE_DOOR (0x1000+0x70) +#define GET_TO_SLOT (0x1000+0x71) +#define SLOT_ACTION (0x1000+0x72) +#define SLOT_MISSION (0x1000+0x73) +#define SHADES_LOGIC (0x1000+0x74) +#define CORNER_MISSION (0x1000+0x75) +#define EYE_BOLT_LOGIC (0x1000+0x76) +#define SMOULDER_LOGIC (0x1000+0x77) +#define GET_TO_BODY (0x1000+0x78) +#define SMOULDER_ACTION (0x1000+0x79) +#define GET_TO_EYE (0x1000+0x7a) +#define EYE_ACTION (0x1000+0x7b) +#define GET_TO_FURNACE (0x1000+0x7c) +#define FURNACE_ACTION (0x1000+0x7d) +#define FURNACE_EXIT_ON (0x1000+0x7e) +#define GET_TO_EL4 (0x1000+0x7f) +#define S4_WALK_ON (0x1000+0x80) +#define EL4_ACTION (0x1000+0x81) +#define PLAYER_FAIL_S4 (0x1000+0x82) +#define GET_TO_TALK41 (0x1000+0x83) +#define MEGA_FAILED_S4 (0x1000+0x84) +#define GET_TO_TALK42 (0x1000+0x85) +#define TV_LOGIC (0x1000+0x86) +#define KNOB_ACTION (0x1000+0x87) +#define KNOB_LOGIC (0x1000+0x88) +#define CHUCK_LOGIC (0x1000+0x89) +#define LAZER_LOGIC (0x1000+0x8a) +#define GT_LAZER (0x1000+0x8b) +#define LAZER_ACTION (0x1000+0x8c) +#define CUPBOARD_LOGIC (0x1000+0x8d) +#define CUPBOARD_ALERT (0x1000+0x8e) +#define CUPBOARD_ACTION (0x1000+0x8f) +#define GET_TO_CUPBOARD (0x1000+0x90) +#define GET_TO_SHELVES (0x1000+0x91) +#define GET_TO_KNOB (0x1000+0x92) +#define GET_TO_CHUCK (0x1000+0x93) +#define GET_TO_SCREENS (0x1000+0x94) +#define SPANNER_ACTION (0x1000+0x95) +#define SARNIE_ACTION (0x1000+0x96) +#define GET_TO_BUTTONS (0x1000+0x97) +#define MONITOR_LOGIC (0x1000+0x98) +#define BUTTON_ACTION (0x1000+0x99) +#define POSTCARD_ACTION (0x1000+0x9a) +#define GET_TO_POSTCARD (0x1000+0x9b) +#define NOTICE4_ACTION (0x1000+0x9c) +#define CHUCK_ACTION (0x1000+0x9d) +#define TV_1_ACTION (0x1000+0x9e) +#define TV_2_ACTION (0x1000+0x9f) +#define GET_TO_MONITOR (0x1000+0xa0) +#define JOBS_ALARMED (0x1000+0xa1) +#define JOBS_S4 (0x1000+0xa2) +#define MORE_JOBS (0x1000+0xa3) +#define BASIC_JOBS (0x1000+0xa4) +#define START_JOBS (0x1000+0xa5) +#define DEAD_LOGIC (0x1000+0xa6) +#define LOADER_LOGIC (0x1000+0xa7) +#define LOADER_START (0x1000+0xa8) +#define JOBS_SPEECH (0x1000+0xa9) +#define UNUSED (0x1000+0xaa) +#define GET_TO_STAIRS6 (0x2000+0x1) +#define GET_SECURITY_S6 (0x2000+0x2) +#define JOEY_FLY_TO_6 (0x2000+0x3) +#define GET_TO_L_EXIT_S6 (0x2000+0x4) +#define EL6_ACTION (0x2000+0x5) +#define S5_WALK_ON (0x2000+0x6) +#define S5_STROLL_ON (0x2000+0x7) +#define GET_TO_R_EXIT_S5 (0x2000+0x8) +#define ER5_ACTION (0x2000+0x9) +#define S6_WALK_ON (0x2000+0xa) +#define GET_TO_R_EXIT_S6 (0x2000+0xb) +#define S6_RWALK_ON (0x2000+0xc) +#define INTO_18_FAIL (0x2000+0xd) +#define GET_TO_L_EXIT_S5 (0x2000+0xe) +#define LDOOR_5_ACTION (0x2000+0xf) +#define S6_DOOR_ACTION (0x2000+0x10) +#define S6_SEC_WALK_ON (0x2000+0x11) +#define SKORL_LOGIC (0x2000+0x12) +#define SKORL_SSS (0x2000+0x13) +#define SKORL_ACTION (0x2000+0x14) +#define GET_TO_SKORL (0x2000+0x15) +#define GET_TO_SECURITY_EXIT (0x2000+0x16) +#define ER6_ACTION (0x2000+0x17) +#define EL7_ACTION (0x2000+0x18) +#define GET_TO_L_EXIT_S7 (0x2000+0x19) +#define S7_WALK_ON (0x2000+0x1a) +#define GET_TO_R_EXIT_S7 (0x2000+0x1b) +#define ER7_ACTION (0x2000+0x1c) +#define S8_WALK_ON (0x2000+0x1d) +#define ED8_ACTION (0x2000+0x1e) +#define GET_TO_EXIT_S8 (0x2000+0x1f) +#define S7_RIGHT_ON (0x2000+0x20) +#define GET_TO_WRECK (0x2000+0x21) +#define WRECK_ACTION (0x2000+0x22) +#define WRECK_LOGIC (0x2000+0x23) +#define FACT_FAIL (0x2000+0x24) +#define GET_TO_FACTORY (0x2000+0x25) +#define FACTORY_ENTRY_ACTION (0x2000+0x26) +#define S12_WALK_ON (0x2000+0x27) +#define GT_S7_LINC (0x2000+0x28) +#define GT_S7_SLOT (0x2000+0x29) +#define GT_LIFT_NOTICE (0x2000+0x2a) +#define LIFT_NOTICE_ACTION (0x2000+0x2b) +#define S7_SLOT_ACTION (0x2000+0x2c) +#define LINC_S7_ACTION (0x2000+0x2d) +#define LEFT_FAIL_7 (0x2000+0x2e) +#define GT_L_TALK_7 (0x2000+0x2f) +#define RIGHT_FAIL_7 (0x2000+0x30) +#define GT_R_TALK_7 (0x2000+0x31) +#define JOEY_OUT_OF_LIFT7 (0x2000+0x32) +#define CABLE_7_LOGIC (0x2000+0x33) +#define GT_CABLE_7 (0x2000+0x34) +#define CABLE_7_ACTION (0x2000+0x35) +#define CABLE_MISSION (0x2000+0x36) +#define GT_S7_LIFT (0x2000+0x37) +#define S7_LIFT_LOGIC (0x2000+0x38) +#define JOEY_TO_LIFT (0x2000+0x39) +#define LIFT_S7_ACTION (0x2000+0x3a) +#define COPTER_ACTION (0x2000+0x3b) +#define S9_WALK_ON (0x2000+0x3c) +#define FANS_LOGIC (0x2000+0x3d) +#define GET_TO_L_EXIT_S9 (0x2000+0x3e) +#define EL9_ACTION (0x2000+0x3f) +#define LOBBY_DOOR_LOGIC (0x2000+0x40) +#define LOBBY_DOOR_ON (0x2000+0x41) +#define GET_TO_LOBBY_DOOR (0x2000+0x42) +#define LOBBY_DOOR_ACTION (0x2000+0x43) +#define SCANNER_LOGIC (0x2000+0x44) +#define GET_TO_SCANNER (0x2000+0x45) +#define SCANNER_ACTION (0x2000+0x46) +#define DAD_LOGIC (0x2000+0x47) +#define DAD_SSS (0x2000+0x48) +#define DAD_ACTION (0x2000+0x49) +#define GET_TO_DAD (0x2000+0x4a) +#define GET_TO_SON (0x2000+0x4b) +#define SON_LOGIC (0x2000+0x4c) +#define SON_ACTION (0x2000+0x4d) +#define GT_LINC_S9 (0x2000+0x4e) +#define LINC_S9_ACTION (0x2000+0x4f) +#define GET_TO_R_EXIT_S18 (0x2000+0x50) +#define S18_WALK_ON (0x2000+0x51) +#define ER18_ACTION (0x2000+0x52) +#define MONITOR_SLEEP (0x2000+0x53) +#define SON_SSS (0x2000+0x54) +#define STEAM_FRIGHT (0x2000+0x55) +#define MONITOR_ALERT (0x2000+0x56) +#define STEAM_LOGIC (0x2000+0x57) +#define POWER_DOOR_LOGIC (0x2000+0x58) +#define POWER_MOTOR_LOGIC (0x2000+0x59) +#define POWER_PANEL_LOGIC (0x2000+0x5a) +#define GET_TO_POWER_PANEL (0x2000+0x5b) +#define SOCKET_ACTION (0x2000+0x5c) +#define POWER_SWITCH_LOGIC (0x2000+0x5d) +#define GET_TO_POWER_SWITCH (0x2000+0x5e) +#define SWITCH_ACTION (0x2000+0x5f) +#define CHAIR_FAIL (0x2000+0x60) +#define GET_TO_POWER_CHAIR (0x2000+0x61) +#define GET_TO_LEFT_SKULL (0x2000+0x62) +#define GET_TO_RIGHT_SKULL (0x2000+0x63) +#define LEFT_SKULL_ACTION (0x2000+0x64) +#define POWER_BANG_LOGIC (0x2000+0x65) +#define RIGHT_SKULL_ACTION (0x2000+0x66) +#define GET_TO_TALK (0x2000+0x67) +#define GORDON_SSS (0x2000+0x68) +#define SAT_GORDON_ACTION (0x2000+0x69) +#define GET_TO_POWER_DOOR (0x2000+0x6a) +#define POWER_DOOR_ACTION (0x2000+0x6b) +#define JOEY_BUTTON_MISSION (0x2000+0x6c) +#define LEFT_LEVER_LOGIC (0x2000+0x6d) +#define RIGHT_LEVER_LOGIC (0x2000+0x6e) +#define LEFT_LEVER_ACTION (0x2000+0x6f) +#define RIGHT_LEVER_ACTION (0x2000+0x70) +#define GET_TO_RIGHT_LEVER (0x2000+0x71) +#define GET_TO_LEFT_LEVER (0x2000+0x72) +#define CHAIR_ACTION (0x2000+0x73) +#define S12_LEFT_ON (0x2000+0x74) +#define GET_TO_FACTORY_EXIT (0x2000+0x75) +#define FACTORY_EXIT_ACTION (0x2000+0x76) +#define LAMB_LEAVE_FACTORY (0x2000+0x77) +#define LAMB_FACT_2 (0x2000+0x78) +#define LAMB_FACT_RETURN (0x2000+0x79) +#define LAMB_FACTORY_START (0x2000+0x7a) +#define LAMB_FORCE_START (0x2000+0x7b) +#define GT_FACT1_EXIT (0x2000+0x7c) +#define FACT1_EXIT_ACTION (0x2000+0x7d) +#define S12_RIGHT_ON (0x2000+0x7e) +#define ANITA_WORK (0x2000+0x7f) +#define ANITA_SSS (0x2000+0x80) +#define ANITA_ACTION (0x2000+0x81) +#define GT_ANITA (0x2000+0x82) +#define BOTBELT_LOGIC (0x2000+0x83) +#define STD_FACT_LOGIC (0x2000+0x84) +#define ANITA_ALERT (0x2000+0x85) +#define ANITA_SPY_ACTION (0x2000+0x86) +#define ANITA_SPY_LOGIC (0x2000+0x87) +#define TICK_OFF_II (0x2000+0x88) +#define GT_TICK_OFF (0x2000+0x89) +#define WELDER_LOGIC (0x2000+0x8a) +#define GT_WELDER (0x2000+0x8b) +#define WELDER_ACTION (0x2000+0x8c) +#define LEFT_FAIL_12 (0x2000+0x8d) +#define GT_L_TALK_12 (0x2000+0x8e) +#define RIGHT_FAIL_12 (0x2000+0x8f) +#define GT_R_TALK_12 (0x2000+0x90) +#define WELDER_MISSION (0x2000+0x91) +#define JOEY_WELD_MISSION (0x2000+0x92) +#define GT_STUMP (0x2000+0x93) +#define STUMP_ACTION (0x2000+0x94) +#define GT_CONSOLE_12 (0x2000+0x95) +#define CONSOLE_12_ACTION (0x2000+0x96) +#define GT_TOUR_1 (0x2000+0x97) +#define GT_TOUR_2 (0x2000+0x98) +#define FOREMAN_LAMB (0x2000+0x99) +#define FOSTER_TOUR (0x2000+0x9a) +#define LAMB_TOUR (0x2000+0x9b) +#define ON_FROM_S15 (0x2000+0x9c) +#define S13_LEFT_ON (0x2000+0x9d) +#define GT_FACT2_L_EXIT (0x2000+0x9e) +#define FACT2_ACTION (0x2000+0x9f) +#define FACT2_RIGHT_ACTION (0x2000+0xa0) +#define GT_FACT2_R_EXIT (0x2000+0xa1) +#define S13_RIGHT_ON (0x2000+0xa2) +#define GT_FACT2_STORE_EXIT (0x2000+0xa3) +#define FACT2_STORE_ACTION (0x2000+0xa4) +#define GT_COGS (0x2000+0xa5) +#define FOREMAN_LOGIC (0x2000+0xa6) +#define FOREMAN_ALERT (0x2000+0xa7) +#define COGS_ACTION (0x2000+0xa8) +#define GT_LITE1 (0x2000+0xa9) +#define STORE_ROOM_STOP (0x2000+0xaa) +#define SENSOR_LOGIC (0x2000+0xab) +#define RIGHT_FAIL_13 (0x2000+0xac) +#define GT_R_TALK_13 (0x2000+0xad) +#define LEFT_FAIL_13 (0x2000+0xae) +#define GT_L_TALK_13 (0x2000+0xaf) +#define GT_STORE_STOP (0x2000+0xb0) +#define FACT2_FOREMAN_ALERT (0x2000+0xb1) +#define FACT2_STOP (0x2000+0xb2) +#define FACT2_SPY_LOGIC (0x2000+0xb3) +#define GT_WINDOW (0x2000+0xb4) +#define WINDOW_ACTION (0x2000+0xb5) +#define FACT_CONSOLE_LOGIC (0x2000+0xb6) +#define FOREMAN_STORE_CHECK (0x2000+0xb7) +#define GT_SENSORS (0x2000+0xb8) +#define SENSORS_ACTION (0x2000+0xb9) +#define GT_FACT_CONSOLE (0x2000+0xba) +#define CONSOLE_13_ACTION (0x2000+0xbb) +#define RAD_BACK (0x2000+0xbc) +#define FACT3_ACTION (0x2000+0xbd) +#define S14_LEFT_ON (0x2000+0xbe) +#define GT_FACT3_L_EXIT (0x2000+0xbf) +#define ALT_NU_ANITA (0x2000+0xc0) +#define GT_NU_ANITA (0x2000+0xc1) +#define GT_FACT3_R_EXIT (0x2000+0xc2) +#define LOCKER3_LOGIC (0x2000+0xc3) +#define LOCKER2_LOGIC (0x2000+0xc4) +#define LOCKER1_LOGIC (0x2000+0xc5) +#define LOCKER3_ACTION (0x2000+0xc6) +#define GT_LOCKER3 (0x2000+0xc7) +#define LOCKER2_ACTION (0x2000+0xc8) +#define GT_LOCKER2 (0x2000+0xc9) +#define GT_LOCKER1 (0x2000+0xca) +#define LOCKER1_ACTION (0x2000+0xcb) +#define GT_MACHINE (0x2000+0xcc) +#define MACHINE_ACTION (0x2000+0xcd) +#define FACT3_R_ACTION (0x2000+0xce) +#define S14_RIGHT_ON (0x2000+0xcf) +#define NU_ANITA_SSS (0x2000+0xd0) +#define RADMAN_LOGIC (0x2000+0xd1) +#define LEFT_FAIL_14 (0x2000+0xd2) +#define GT_L_TALK_14 (0x2000+0xd3) +#define RIGHT_FAIL_14 (0x2000+0xd4) +#define GT_R_TALK_14 (0x2000+0xd5) +#define RAD_SCREEN_ACTION (0x2000+0xd6) +#define GT_RAD_SCREEN (0x2000+0xd7) +#define GT_14_CONSOLE (0x2000+0xd8) +#define CONSOLE_14_ACTION (0x2000+0xd9) +#define COAT_LOGIC (0x2000+0xda) +#define GT_COAT (0x2000+0xdb) +#define COAT_ACTION (0x2000+0xdc) +#define S15_WALK_ON (0x2000+0xdd) +#define GT_STORE_EXIT (0x2000+0xde) +#define STORE_EXIT_ACTION (0x2000+0xdf) +#define JOEY_42_MISS (0x2000+0xe0) +#define JOEY_JUNCTION_MISS (0x2000+0xe1) +#define GT_JUNCTION_BOX (0x2000+0xe2) +#define JUNCTION_ACTION (0x2000+0xe3) +#define FLAP_LOGIC (0x2000+0xe4) +#define GT_FLAP (0x2000+0xe5) +#define FLAP_ACTION (0x2000+0xe6) +#define GT_SKEY (0x2000+0xe7) +#define GT_WD40 (0x2000+0xe8) +#define SKEY_ACTION (0x2000+0xe9) +#define WD40_ACTION (0x2000+0xea) +#define SHELF_OBJECT_LOGIC (0x2000+0xeb) +#define FLOOR_PUTTY_ACTION (0x2000+0xec) +#define GT_PUTTY (0x2000+0xed) +#define FORKLIFT_LOGIC (0x2000+0xee) +#define S16_LEFT_ON (0x2000+0xef) +#define ENTRANCE_EXIT_ACTION (0x2000+0xf0) +#define GT_ENTRANCE_EXIT (0x2000+0xf1) +#define GT_ALT_CONSOLE (0x2000+0xf2) +#define GT_REACTOR_CONSOLE (0x2000+0xf3) +#define REACTOR_PC_ACTION (0x2000+0xf4) +#define REACTOR_DOOR_ACTION (0x2000+0xf5) +#define GT_REACTOR_DOOR (0x2000+0xf6) +#define LEFT_FAIL_16 (0x2000+0xf7) +#define GT_L_TALK_16 (0x2000+0xf8) +#define RIGHT_FAIL_16 (0x2000+0xf9) +#define GT_R_TALK_16 (0x2000+0xfa) +#define REACTOR_ON (0x2000+0xfb) +#define S17_LEFT_ON (0x2000+0xfc) +#define GT_CORE_EXIT (0x2000+0xfd) +#define CORE_EXIT_ACTION (0x2000+0xfe) +#define S16_CORE_ON (0x2000+0xff) +#define GT_ANITA_CARD (0x2000+0x100) +#define ANITA_CARD_ACTION (0x2000+0x101) +#define GT_RODS (0x2000+0x102) +#define RODS_ACTION (0x2000+0x103) +#define CONSOLE_16_LOGIC (0x2000+0x104) +#define S10_RIGHT_ON (0x3000+0x1) +#define GT_LEFT_EXIT_10 (0x3000+0x2) +#define EL10_ACTION (0x3000+0x3) +#define LIFT_10_LOGIC (0x3000+0x4) +#define GT_SLOT_10 (0x3000+0x5) +#define POD_LOGIC (0x3000+0x6) +#define POD_LIGHT_LOGIC (0x3000+0x7) +#define POD_LIGHT_ACTION (0x3000+0x8) +#define GT_POD_LIGHT (0x3000+0x9) +#define GT_LINC_10 (0x3000+0xa) +#define LINC_10_ACTION (0x3000+0xb) +#define GT_FLOOR_FROM_CHAIR10 (0x3000+0xc) +#define GT_TERMINAL_10 (0x3000+0xd) +#define TERMINAL_10_ACTION (0x3000+0xe) +#define GT_SCANNER_10 (0x3000+0xf) +#define SCANNER_10_ACTION (0x3000+0x10) +#define GT_DOOR_10 (0x3000+0x11) +#define DOOR_10_ACTION (0x3000+0x12) +#define GT_SLOT_11 (0x3000+0x13) +#define SLOT_11_ACTION (0x3000+0x14) +#define GT_SOCCER_1 (0x3000+0x15) +#define SOCCER_1_ACTION (0x3000+0x16) +#define GT_SOCCER_2 (0x3000+0x17) +#define GT_SOCCER_3 (0x3000+0x18) +#define GT_SOCCER_4 (0x3000+0x19) +#define GT_SOCCER_5 (0x3000+0x1a) +#define SLAT_ACTION (0x3000+0x1b) +#define GT_RIGHT_EXIT_11 (0x3000+0x1c) +#define ER11_ACTION (0x3000+0x1d) +#define S11_LEFT_ON (0x3000+0x1e) +#define GT_LEFT_EXIT_19 (0x3000+0x1f) +#define EL19_ACTION (0x3000+0x20) +#define GT_TOP_RIGHT_19 (0x3000+0x21) +#define TOP_R19_ACTION (0x3000+0x22) +#define UCHAR_SSS (0x3000+0x23) +#define UCHAR_ACTION (0x3000+0x24) +#define GET_TO_UCHAR (0x3000+0x25) +#define UCHAR_LOGIC (0x3000+0x26) +#define S20_START_ON (0x3000+0x27) +#define DOWN_20_FAIL (0x3000+0x28) +#define GT_DOWN_EXIT_20 (0x3000+0x29) +#define ED20_ACTION (0x3000+0x2a) +#define REICH_20_ON (0x3000+0x2b) +#define REICH_DOOR_FAIL (0x3000+0x2c) +#define GT_REICH_DOOR_20 (0x3000+0x2d) +#define REICH_DOOR_20_ACTION (0x3000+0x2e) +#define GT_REICH_SLOT (0x3000+0x2f) +#define REICH_SLOT_ACTION (0x3000+0x30) +#define S20_REICH_ON (0x3000+0x31) +#define REICH_DOOR_20_LOGIC (0x3000+0x32) +#define LAMB_DOOR_20_LOGIC (0x3000+0x33) +#define LAMB_SLOT_FAIL (0x3000+0x34) +#define GT_LAMB_SLOT (0x3000+0x35) +#define LAMB_SLOT_ACTION (0x3000+0x36) +#define LAMB_20_ON (0x3000+0x37) +#define LAMB_DOOR_FAIL (0x3000+0x38) +#define GT_LAMB_DOOR_20 (0x3000+0x39) +#define LAMB_DOOR_20_ACTION (0x3000+0x3a) +#define S20_LAMB_ON (0x3000+0x3b) +#define GT_SHRUB_1 (0x3000+0x3c) +#define SHRUB_1_ACTION (0x3000+0x3d) +#define GT_SHRUB_2 (0x3000+0x3e) +#define SHRUB_2_ACTION (0x3000+0x3f) +#define GT_SHRUB_3 (0x3000+0x40) +#define SHRUB_3_ACTION (0x3000+0x41) +#define START_20 (0x3000+0x42) +#define GAL_LOGIC (0x3000+0x43) +#define GT_GALLAGER_BEL (0x3000+0x44) +#define GAL_BEL_ACTION (0x3000+0x45) +#define GT_REICH_WINDOW (0x3000+0x46) +#define REICH_WINDOW_ACTION (0x3000+0x47) +#define GT_LAMB_WINDOW (0x3000+0x48) +#define LAMB_WINDOW_ACTION (0x3000+0x49) +#define LEFT_FAIL_20 (0x3000+0x4a) +#define GT_L_TALK_20 (0x3000+0x4b) +#define RIGHT_FAIL_20 (0x3000+0x4c) +#define GT_R_TALK_20 (0x3000+0x4d) +#define S21_START_ON (0x3000+0x4e) +#define GT_LEFT_EXIT_21 (0x3000+0x4f) +#define EL21_ACTION (0x3000+0x50) +#define GT_LAMBS_BOOKS (0x3000+0x51) +#define LAMBS_BOOKS_ACTION (0x3000+0x52) +#define GT_LAMBS_CHAIR (0x3000+0x53) +#define LAMBS_CHAIR_ACTION (0x3000+0x54) +#define GT_DISPENSOR (0x3000+0x55) +#define DISPENSOR_ACTION (0x3000+0x56) +#define CAT_FOOD_LOGIC (0x3000+0x57) +#define GT_CAT_FOOD (0x3000+0x58) +#define CAT_FOOD_ACTION (0x3000+0x59) +#define VIDEO_LOGIC (0x3000+0x5a) +#define GT_VIDEO (0x3000+0x5b) +#define VIDEO_ACTION (0x3000+0x5c) +#define GT_CASSETTE (0x3000+0x5d) +#define CASSETTE_ACTION (0x3000+0x5e) +#define GT_BIG_PICT1 (0x3000+0x5f) +#define BIG_PICT1_ACTION (0x3000+0x60) +#define GT_VIDEO_SCREEN (0x3000+0x61) +#define VIDEO_SCREEN_ACTION (0x3000+0x62) +#define VIDEO_SCREEN_LOGIC (0x3000+0x63) +#define GT_BIG_PICT2 (0x3000+0x64) +#define BIG_PICT2_ACTION (0x3000+0x65) +#define GT_BIG_PICT3 (0x3000+0x66) +#define BIG_PICT3_ACTION (0x3000+0x67) +#define CAT_LOGIC (0x3000+0x68) +#define GT_CAT (0x3000+0x69) +#define CAT_ACTION (0x3000+0x6a) +#define INNER_LAMB_DOOR_LOGIC (0x3000+0x6b) +#define S22_START_ON (0x3000+0x6c) +#define GT_RIGHT_EXIT_22 (0x3000+0x6d) +#define ER22_ACTION (0x3000+0x6e) +#define GT_LAMB_BED (0x3000+0x6f) +#define BED_ACTION (0x3000+0x70) +#define GT_LAMB_TV (0x3000+0x71) +#define LAMB_TV_ACTION (0x3000+0x72) +#define GT_FISH_TANK (0x3000+0x73) +#define FISH_TANK_ACTION (0x3000+0x74) +#define FISH_POSTER_ACTION (0x3000+0x75) +#define PILLOW_LOGIC (0x3000+0x76) +#define GT_PILLOW (0x3000+0x77) +#define PILLOW_ACTION (0x3000+0x78) +#define GT_MAGAZINE (0x3000+0x79) +#define MAGAZINE_ACTION (0x3000+0x7a) +#define FISH_LOGIC (0x3000+0x7b) +#define GT_REICH_CHAIR (0x3000+0x7c) +#define REICH_CHAIR_ACTION (0x3000+0x7d) +#define GT_CABINET (0x3000+0x7e) +#define CABINET_ACTION (0x3000+0x7f) +#define GT_CERT (0x3000+0x80) +#define CERT_ACTION (0x3000+0x81) +#define GT_REICH_PICTURE (0x3000+0x82) +#define REICH_PICTURE_ACTION (0x3000+0x83) +#define GT_FISH_FOOD (0x3000+0x84) +#define FISH_FOOD_ACTION (0x3000+0x85) +#define INNER_R_DOOR_LOGIC (0x3000+0x86) +#define S23_LEFT_ON (0x3000+0x87) +#define S23_ANCHOR_ON (0x3000+0x88) +#define S23_TRAVEL_ON (0x3000+0x89) +#define GT_LEFT_EXIT_23 (0x3000+0x8a) +#define EL23_ACTION (0x3000+0x8b) +#define GT_ANCHOR_EXIT_23 (0x3000+0x8c) +#define ANCHOR23_ACTION (0x3000+0x8d) +#define GT_TRAVEL_FAIL (0x3000+0x8e) +#define GT_TRAVEL_EXIT_23 (0x3000+0x8f) +#define TRAVEL_23_ACTION (0x3000+0x90) +#define GT_BIN_23 (0x3000+0x91) +#define BIN_23_ACTION (0x3000+0x92) +#define GT_SCULPTURE (0x3000+0x93) +#define SCULPTURE_ACTION (0x3000+0x94) +#define GT_LINK_23 (0x3000+0x95) +#define LINK_23_ACTION (0x3000+0x96) +#define GT_WRECK_23 (0x3000+0x97) +#define WRECK_23_ACTION (0x3000+0x98) +#define GT_SMALL_23 (0x3000+0x99) +#define SML_EXIT_S23_ACTION (0x3000+0x9a) +#define S24_LEFT_ON (0x3000+0x9b) +#define GT_LEFT_EXIT_24 (0x3000+0x9c) +#define EL24_ACTION (0x3000+0x9d) +#define GT_LONDON_POSTER (0x3000+0x9e) +#define LONDON_ACTION (0x3000+0x9f) +#define GT_NEW_YORK (0x3000+0xa0) +#define NEW_YORK_ACTION (0x3000+0xa1) +#define GT_MURAL (0x3000+0xa2) +#define MURAL_ACTION (0x3000+0xa3) +#define GT_PIDGEONS (0x3000+0xa4) +#define PIDGEONS_ACTION (0x3000+0xa5) +#define TREVOR_LOGIC (0x3000+0xa6) +#define TREVOR_SSS (0x3000+0xa7) +#define TREVOR_ACTION (0x3000+0xa8) +#define GT_TREVOR (0x3000+0xa9) +#define TICKET_LOGIC (0x3000+0xaa) +#define TICKET_ACTION (0x3000+0xab) +#define GT_TICKET (0x3000+0xac) +#define GT_GLOBE (0x3000+0xad) +#define GLOBE_ACTION (0x3000+0xae) +#define GLOBE_LOGIC (0x3000+0xaf) +#define S25_LEFT_ON (0x3000+0xb0) +#define GT_ANCHOR_EXIT_25 (0x3000+0xb1) +#define ANCHOR25_ACTION (0x3000+0xb2) +#define ANCHOR_LOGIC (0x3000+0xb3) +#define ANCHOR_SSS (0x3000+0xb4) +#define ANCHOR_ACTION (0x3000+0xb5) +#define GT_ANCHOR (0x3000+0xb6) +#define ANCHOR_MISSION (0x3000+0xb7) +#define JOEY_PC_MISSION (0x3000+0xb8) +#define GT_ANCHOR_PC (0x3000+0xb9) +#define HOOK_LOGIC (0x3000+0xba) +#define GT_STATUE_25 (0x3000+0xbb) +#define STATUE_25_ACTION (0x3000+0xbc) +#define HOOK_MISSION (0x3000+0xbd) +#define LAZER_25_LOGIC (0x3000+0xbe) +#define SPARK_25_LOGIC (0x3000+0xbf) +#define GT_HOOK (0x3000+0xc0) +#define HOOK_ACTION (0x3000+0xc1) +#define GT_SALES_CHART (0x3000+0xc2) +#define SALES_CHART_ACTION (0x3000+0xc3) +#define S26_LEFT_ON (0x3000+0xc4) +#define S26_RIGHT_ON (0x3000+0xc5) +#define GT_RIGHT_EXIT_26 (0x3000+0xc6) +#define ER26_ACTION (0x3000+0xc7) +#define START_26 (0x3000+0xc8) +#define GT_POSTER (0x3000+0xc9) +#define POSTER1_ACTION (0x3000+0xca) +#define POSTER2_ACTION (0x3000+0xcb) +#define POSTER3_ACTION (0x3000+0xcc) +#define POSTER4_ACTION (0x3000+0xcd) +#define GT_PLANT (0x3000+0xce) +#define PLANT_26_ACTION (0x3000+0xcf) +#define NU_GT_HOLO (0x3000+0xd0) +#define GT_HOLO (0x3000+0xd1) +#define HOLO_ACTION (0x3000+0xd2) +#define HELGA_LOGIC (0x3000+0xd3) +#define JOEY_HELGA_MISSION (0x3000+0xd4) +#define GT_LEFT_EXIT_26 (0x3000+0xd5) +#define EL26_ACTION (0x3000+0xd6) +#define HELGA_ACTION (0x3000+0xd7) +#define BIO_DOOR_LOGIC (0x3000+0xd8) +#define GT_BIO_DOOR (0x3000+0xd9) +#define BIO_DOOR_ACTION (0x3000+0xda) +#define GT_LEAFLET (0x3000+0xdb) +#define LEAFLET_LOGIC (0x3000+0xdc) +#define LEAFLET_ACTION (0x3000+0xdd) +#define S27_RIGHT_ON (0x3000+0xde) +#define GT_RIGHT_EXIT_27 (0x3000+0xdf) +#define ER27_ACTION (0x3000+0xe0) +#define GT_CHART1 (0x3000+0xe1) +#define CHART1_ACTION (0x3000+0xe2) +#define GT_CHART2 (0x3000+0xe3) +#define CHART2_ACTION (0x3000+0xe4) +#define GT_GAS (0x3000+0xe5) +#define GAS_ACTION (0x3000+0xe6) +#define GT_CHAIR_27 (0x3000+0xe7) +#define CHAIR_27_ACTION (0x3000+0xe8) +#define GT_FLOOR_FROM_CHAIR (0x3000+0xe9) +#define GT_SCANNER_27 (0x3000+0xea) +#define SCANNER_27_ACTION (0x3000+0xeb) +#define GT_L_TALK_27 (0x3000+0xec) +#define RIGHT_FAIL_27 (0x3000+0xed) +#define GT_R_TALK_27 (0x3000+0xee) +#define BURKE_LOGIC (0x3000+0xef) +#define GT_MEDI_COMP (0x3000+0xf0) +#define MEDI_COMP_ACTION (0x3000+0xf1) +#define BURKE_1 (0x3000+0xf2) +#define BURKE_2 (0x3000+0xf3) +#define DR_BURKE_1 (0x3000+0xf4) +#define SCANNER_27_LOGIC (0x3000+0xf5) +#define HELMET_LOGIC (0x3000+0xf6) +#define BODY_SSS (0x3000+0xf7) +#define BODY_ACTION (0x3000+0xf8) +#define BUSY_BODY (0x3000+0xf9) +#define GT_BODY (0x3000+0xfa) +#define GT_HELMET (0x3000+0xfb) +#define HELMET_ACTION (0x3000+0xfc) +#define GLASS_SLOT_LOGIC (0x3000+0xfd) +#define GLASS_MISSION (0x3000+0xfe) +#define MEDIC_LOGIC (0x3000+0xff) +#define S28_RIGHT_ON (0x3000+0x100) +#define GT_RIGHT_EXIT_28 (0x3000+0x101) +#define ER28_ACTION (0x3000+0x102) +#define GT_LEFT_EXIT_28 (0x3000+0x103) +#define EL28_ACTION (0x3000+0x104) +#define S28_LEFT_ON (0x3000+0x105) +#define GT_DUSTBIN_28 (0x3000+0x106) +#define DUSTBIN_ACTION (0x3000+0x107) +#define UP_28_FAIL (0x3000+0x108) +#define GT_UP_EXIT_28 (0x3000+0x109) +#define EU28_ACTION (0x3000+0x10a) +#define S28_UP_ON (0x3000+0x10b) +#define LEFT_FAIL_28 (0x3000+0x10c) +#define GT_L_TALK_28 (0x3000+0x10d) +#define RIGHT_FAIL_28 (0x3000+0x10e) +#define GT_R_TALK_28 (0x3000+0x10f) +#define GT_SML_R_28 (0x3000+0x110) +#define R_28_SML_ACTION (0x3000+0x111) +#define GT_SML_L_28 (0x3000+0x112) +#define L_28_SML_ACTION (0x3000+0x113) +#define SML_RIGHT_28 (0x3000+0x114) +#define SML_LEFT_28 (0x3000+0x115) +#define LIFT_28_LOGIC (0x3000+0x116) +#define GT_LIFT_28 (0x3000+0x117) +#define LIFT_28_ACTION (0x3000+0x118) +#define S28_SLOT_ACTION (0x3000+0x119) +#define GT_SLOT_28 (0x3000+0x11a) +#define S29_LIFT_LOGIC (0x3000+0x11b) +#define JOEY_TO_LIFT29 (0x3000+0x11c) +#define LIFT_29_ACTION (0x3000+0x11d) +#define GT_29_LIFT (0x3000+0x11e) +#define S29_SLOT_ACTION (0x3000+0x11f) +#define GT_29_CARD_SLOT (0x3000+0x120) +#define JOEY_OUT_OF_LIFT (0x3000+0x121) +#define GT_RIGHT_EXIT_29 (0x3000+0x122) +#define ER29_ACTION (0x3000+0x123) +#define S29_RIGHT_ON (0x3000+0x124) +#define GT_LEFT_EXIT_29 (0x3000+0x125) +#define EL29_ACTION (0x3000+0x126) +#define S29_LEFT_ON (0x3000+0x127) +#define OTHER_LIFT_WAIT (0x3000+0x128) +#define GT_LIFT_WAIT (0x3000+0x129) +#define LAMB_BELL_LOGIC (0x3000+0x12a) +#define LAMB_LEAVE_GARDEN (0x3000+0x12b) +#define LAMB_START_29 (0x3000+0x12c) +#define LEFT_FAIL_29 (0x3000+0x12d) +#define GT_L_TALK_29 (0x3000+0x12e) +#define RIGHT_FAIL_29 (0x3000+0x12f) +#define GT_R_TALK_29 (0x3000+0x130) +#define GT_CABLE_29 (0x3000+0x131) +#define CABLE_29_ACTION (0x3000+0x132) +#define GT_SML_R_29 (0x3000+0x133) +#define R_29_SML_ACTION (0x3000+0x134) +#define GT_SML_L_29 (0x3000+0x135) +#define L_29_SML_ACTION (0x3000+0x136) +#define SML_RIGHT_29 (0x3000+0x137) +#define SML_LEFT_29 (0x3000+0x138) +#define DANI_SPEECH (0x4000+0x1) +#define HENRI_SPEECH (0x4000+0x2) +#define BUZZER_SPEECH (0x4000+0x3) +#define JUKEBOX_SPEECH (0x4000+0x4) +#define VINCENT_SPEECH (0x0000+0x40) +#define EDDIE_SPEECH (0x0000+0x41) +#define BLUNT_SPEECH (0x0000+0x42) +#define BARRY_SPEECH (0x4000+0x5) +#define COLSTON_SPEECH (0x0000+0x43) +#define GALL_SPEECH (0x0000+0x44) +#define BABS_SPEECH (0x4000+0x6) +#define CHUTNEY_SPEECH (0x0000+0x45) +#define DOG_BARK_LOGIC (0x4000+0x7) +#define SPUNKY_SMELLS_FOOD (0x4000+0x8) +#define SPUNKY_EXTRA (0x4000+0x9) +#define SPUNKY_LOGIC (0x4000+0xa) +#define SPUNKY_EAT_FOOD (0x4000+0xb) +#define SPUNKY_BARK_AT_FOSTER (0x4000+0xc) +#define SPUNKY_GO_HOME (0x4000+0xd) +#define SPUNKY_SEE_VIDEO (0x4000+0xe) +#define DANIELLE_SSS (0x4000+0xf) +#define GT_SC31_DANIELLE (0x4000+0x10) +#define SC31_DANI_ACTION (0x4000+0x11) +#define DANI_CHAT_TO_GUARD (0x4000+0x12) +#define GT_DANI_WAIT (0x4000+0x13) +#define DANIELLE_EXTRA (0x4000+0x14) +#define DANIELLE_LOGIC (0x4000+0x15) +#define GT_SC32_DANIELLE_AT_LIFT (0x4000+0x16) +#define SC32_DANIELLE_AT_LIFT_ACTION (0x4000+0x17) +#define DANIELLE_GO_HOME (0x4000+0x18) +#define GT_SC38_DANIELLE (0x4000+0x19) +#define SC38_DANIELLE_ACTION (0x4000+0x1a) +#define GT_SC38_HAND_SET (0x4000+0x1b) +#define DANI_ANSWER_PHONE (0x4000+0x1c) +#define FOSTER_VISIT_DANI (0x4000+0x1d) +#define GN_SC30_LEFT_TALK (0x4000+0x1e) +#define GT_SC30_LEFT_TALK (0x4000+0x1f) +#define GN_SC30_RIGHT_TALK (0x4000+0x20) +#define GT_SC30_RIGHT_TALK (0x4000+0x21) +#define SC30_EXIT_31_WALK_ON (0x4000+0x22) +#define GT_SC30_EXIT_31 (0x4000+0x23) +#define SC30_EXIT_31_ACTION (0x4000+0x24) +#define SC30_EXIT_33_WALK_ON (0x4000+0x25) +#define GT_SC30_EXIT_33 (0x4000+0x26) +#define SC30_EXIT_33_ACTION (0x4000+0x27) +#define SC30_COURT_DOOR_MOUSE_ON (0x4000+0x28) +#define SC30_COURT_DOOR_WALK_ON (0x4000+0x29) +#define GT_SC30_COURT_DOOR (0x4000+0x2a) +#define SC30_COURT_DOOR_ACTION (0x4000+0x2b) +#define SC30_COURT_DOOR_LOGIC (0x4000+0x2c) +#define GT_SC30_NOTICE (0x4000+0x2d) +#define SC30_NOTICE_ACTION (0x4000+0x2e) +#define GT_SC30_STATUE_1 (0x4000+0x2f) +#define SC30_STATUE_1_ACTION (0x4000+0x30) +#define GT_SC30_STATUE_2 (0x4000+0x31) +#define SC30_STATUE_2_ACTION (0x4000+0x32) +#define SC30_HENRI_LOGIC (0x4000+0x33) +#define SC30_HENRI_SSS (0x4000+0x34) +#define GT_SC30_HENRI (0x4000+0x35) +#define SC30_HENRI_ACTION (0x4000+0x36) +#define SC30_EXIT_36_WALK_ON (0x4000+0x37) +#define GT_SC30_EXIT_36 (0x4000+0x38) +#define SC30_EXIT_36_ACTION (0x4000+0x39) +#define GN_SC31_LEFT_TALK (0x4000+0x3a) +#define GT_SC31_LEFT_TALK (0x4000+0x3b) +#define GN_SC31_RIGHT_TALK (0x4000+0x3c) +#define GT_SC31_RIGHT_TALK (0x4000+0x3d) +#define SC31_EXIT_30_WALK_ON (0x4000+0x3e) +#define GT_SC31_EXIT_30 (0x4000+0x3f) +#define SC31_EXIT_30_ACTION (0x4000+0x40) +#define SC31_EXIT_32_WALK_ON (0x4000+0x41) +#define GT_SC31_EXIT_32 (0x4000+0x42) +#define SC31_EXIT_32_ACTION (0x4000+0x43) +#define GT_SC31_LIFT_SLOT (0x4000+0x44) +#define SC31_LIFT_SLOT_ACTION (0x4000+0x45) +#define GT_SC31_LIFT (0x4000+0x46) +#define SC31_LIFT_ACTION (0x4000+0x47) +#define SC31_LIFT_LOGIC (0x4000+0x48) +#define SC31_GUARD_RESCUE_DOG (0x4000+0x49) +#define GT_SC31_END_OF_ROPE (0x4000+0x4a) +#define SC31_END_OF_ROPE_ACTION (0x4000+0x4b) +#define SC31_ROPE_LOGIC (0x4000+0x4c) +#define SC31_BRICKS_LOGIC (0x4000+0x4d) +#define SC31_PLANK_LOGIC (0x4000+0x4e) +#define SC31_BISCUITS_LOGIC (0x4000+0x4f) +#define GT_SC31_BRICKS (0x4000+0x50) +#define SC31_BRICKS_ACTION (0x4000+0x51) +#define GN_SC31_PLANK (0x4000+0x52) +#define GT_SC31_PLANK (0x4000+0x53) +#define SC31_PLANK_ACTION (0x4000+0x54) +#define SC31_GUARD_LOGIC (0x4000+0x55) +#define SC31_GUARD_CHATTING_LOGIC (0x4000+0x56) +#define SC31_GUARD_SSS (0x4000+0x57) +#define GN_SC31_GUARD (0x4000+0x58) +#define GT_SC31_GUARD (0x4000+0x59) +#define SC31_GUARD_ACTION (0x4000+0x5a) +#define SC31_GUARD_CHATTING_ACTION (0x4000+0x5b) +#define SC31_EXIT_39_WALK_ON (0x4000+0x5c) +#define GT_SC31_EXIT_39 (0x4000+0x5d) +#define SC31_EXIT_39_ACTION (0x4000+0x5e) +#define SC31_JOEY_LOGIC (0x4000+0x5f) +#define GT_SC31_JOEY (0x4000+0x60) +#define SC31_JOEY_ACTION (0x4000+0x61) +#define SC31_AT_WATCHER_LOGIC (0x4000+0x62) +#define GN_SC32_LEFT_TALK (0x4000+0x63) +#define GT_SC32_LEFT_TALK (0x4000+0x64) +#define GN_SC32_RIGHT_TALK (0x4000+0x65) +#define GT_SC32_RIGHT_TALK (0x4000+0x66) +#define SC32_EXIT_31_WALK_ON (0x4000+0x67) +#define GT_SC32_EXIT_31 (0x4000+0x68) +#define SC32_EXIT_31_ACTION (0x4000+0x69) +#define SC32_EXIT_33_WALK_ON (0x4000+0x6a) +#define GT_SC32_EXIT_33 (0x4000+0x6b) +#define SC32_EXIT_33_ACTION (0x4000+0x6c) +#define GT_SC32_TERMINAL (0x4000+0x6d) +#define SC32_TERMINAL_ACTION (0x4000+0x6e) +#define GT_SC32_PLANT_1 (0x4000+0x6f) +#define SC32_PLANT_1_ACTION (0x4000+0x70) +#define GT_SC32_PLANT_2 (0x4000+0x71) +#define SC32_PLANT_2_ACTION (0x4000+0x72) +#define GT_SC32_PLANT_3 (0x4000+0x73) +#define SC32_PLANT_3_ACTION (0x4000+0x74) +#define SC32_BUZZER_LOGIC (0x4000+0x75) +#define GT_SC32_BUZZER (0x4000+0x76) +#define SC32_BUZZER_ACTION (0x4000+0x77) +#define GT_SC32_LIFT (0x4000+0x78) +#define SC32_LIFT_ACTION (0x4000+0x79) +#define SC32_LIFT_LOGIC (0x4000+0x7a) +#define SC32_VINCENT_LOGIC (0x4000+0x7b) +#define SC32_VINCENT_SSS (0x4000+0x7c) +#define GT_SC32_VINCENT (0x4000+0x7d) +#define SC32_VINCENT_ACTION (0x4000+0x7e) +#define SC32_GARDENER_LOGIC (0x4000+0x7f) +#define SC32_GARDENER_SSS (0x4000+0x80) +#define GT_SC32_GARDENER (0x4000+0x81) +#define SC32_GARDENER_ACTION (0x4000+0x82) +#define GN_SC33_LEFT_TALK (0x4000+0x83) +#define GT_SC33_LEFT_TALK (0x4000+0x84) +#define GN_SC33_RIGHT_TALK (0x4000+0x85) +#define GT_SC33_RIGHT_TALK (0x4000+0x86) +#define SC33_EXIT_30_WALK_ON (0x4000+0x87) +#define GT_SC33_EXIT_30 (0x4000+0x88) +#define SC33_EXIT_30_ACTION (0x4000+0x89) +#define SC33_EXIT_32_WALK_ON (0x4000+0x8a) +#define GT_SC33_EXIT_32 (0x4000+0x8b) +#define SC33_EXIT_32_ACTION (0x4000+0x8c) +#define SC33_SHED_DOOR_LOGIC (0x4000+0x8d) +#define SC33_SHED_DOOR_MOUSE_ON (0x4000+0x8e) +#define SC33_SHED_DOOR_WALK_ON (0x4000+0x8f) +#define GT_SC33_SHED_DOOR (0x4000+0x90) +#define SC33_SHED_DOOR_ACTION (0x4000+0x91) +#define GT_SC33_LOCK (0x4000+0x92) +#define SC33_LOCK_ACTION (0x4000+0x93) +#define SC34_DOOR_WALK_ON (0x4000+0x94) +#define GT_SC34_DOOR (0x4000+0x95) +#define SC34_DOOR_ACTION (0x4000+0x96) +#define GT_SC34_SECATEURS (0x4000+0x97) +#define SC34_SECATEURS_ACTION (0x4000+0x98) +#define SC34_SECATEURS_LOGIC (0x4000+0x99) +#define GT_SC34_TKT_MACHINE (0x4000+0x9a) +#define SC34_TKT_MACHINE_ACTION (0x4000+0x9b) +#define GT_SC34_MAP (0x4000+0x9c) +#define SC34_MAP_ACTION (0x4000+0x9d) +#define GT_SC34_BRICKS (0x4000+0x9e) +#define SC34_BRICKS_ACTION (0x4000+0x9f) +#define GN_SC36_LEFT_TALK (0x4000+0xa0) +#define GT_SC36_LEFT_TALK (0x4000+0xa1) +#define GN_SC36_RIGHT_TALK (0x4000+0xa2) +#define GT_SC36_RIGHT_TALK (0x4000+0xa3) +#define GT_SC36_LOW_FLOOR (0x4000+0xa4) +#define GT_SC36_FLOOR (0x4000+0xa5) +#define SC36_EXIT_30_WALK_ON (0x4000+0xa6) +#define GT_SC36_EXIT_30 (0x4000+0xa7) +#define SC36_EXIT_30_ACTION (0x4000+0xa8) +#define GT_SC36_SENSOR (0x4000+0xa9) +#define SC36_SENSOR_ACTION (0x4000+0xaa) +#define SC36_DOOR_WALK_ON (0x4000+0xab) +#define GT_SC36_DOOR (0x4000+0xac) +#define SC36_DOOR_ACTION (0x4000+0xad) +#define SC36_DOOR_LOGIC (0x4000+0xae) +#define SC36_BAND_LOGIC (0x4000+0xaf) +#define GT_SC36_BAND (0x4000+0xb0) +#define SC36_BAND_ACTION (0x4000+0xb1) +#define SC36_JUKE_LIGHT_LOGIC (0x4000+0xb2) +#define SC36_COLSTON_FIX_JUKEBOX (0x4000+0xb3) +#define PLAY_TUNE_1 (0x4000+0xb4) +#define PLAY_TUNE_2 (0x4000+0xb5) +#define PLAY_TUNE_3 (0x4000+0xb6) +#define SC36_JUKEBOX_SSS (0x4000+0xb7) +#define SC36_JUKEBOX_LOGIC (0x4000+0xb8) +#define GT_SC36_JUKEBOX (0x4000+0xb9) +#define SC36_JUKEBOX_ACTION (0x4000+0xba) +#define SC36_BARMAN_LOGIC (0x4000+0xbb) +#define SC36_BARMAN_SSS (0x4000+0xbc) +#define GT_SC36_BARMAN (0x4000+0xbd) +#define SC36_BARMAN_ACTION (0x4000+0xbe) +#define SC36_COLSTON_LOGIC (0x4000+0xbf) +#define SC36_COLSTON_SSS (0x4000+0xc0) +#define GT_SC36_COLSTON (0x4000+0xc1) +#define SC36_COLSTON_ACTION (0x4000+0xc2) +#define SC36_GALLAGHER_LOGIC (0x4000+0xc3) +#define SC36_GALLAGHER_SSS (0x4000+0xc4) +#define GT_SC36_GALLAGHER (0x4000+0xc5) +#define SC36_GALLAGHER_ACTION (0x4000+0xc6) +#define SC36_CARDS_LOGIC (0x4000+0xc7) +#define GT_SC36_GLASS (0x4000+0xc8) +#define SC36_COLSTON_PROTEST (0x4000+0xc9) +#define SC36_GLASS_ACTION (0x4000+0xca) +#define MOVE_BABS (0x4000+0xcb) +#define SC36_BABS_LOGIC (0x4000+0xcc) +#define BABS_LOGIC_AMIGA (0x4000+0xcd) +#define GT_BABS_AMIGA (0x4000+0xce) +#define BABS_SSS_AMIGA (0x4000+0xcf) +#define BABS_ACTION_AMIGA (0x4000+0xd0) +#define GT_SC37_SENSOR (0x4000+0xd1) +#define SC37_SENSOR_ACTION (0x4000+0xd2) +#define SC37_DOOR_WALK_ON (0x4000+0xd3) +#define GT_SC37_DOOR (0x4000+0xd4) +#define SC37_DOOR_ACTION (0x4000+0xd5) +#define SC37_DOOR_LOGIC (0x4000+0xd6) +#define GT_SC37_GRILL (0x4000+0xd7) +#define SC37_GRILL_ACTION (0x4000+0xd8) +#define SC37_GRILL_LOGIC (0x4000+0xd9) +#define GT_SC37_FLIMSY_BOX (0x4000+0xda) +#define SC37_FLIMSY_BOX_ACTION (0x4000+0xdb) +#define STEP_OFF_BOX (0x4000+0xdc) +#define GT_SC37_BIG_BOX (0x4000+0xdd) +#define SC37_BIG_BOX_ACTION (0x4000+0xde) +#define GT_SC37_LID (0x4000+0xdf) +#define SC37_LID_ACTION (0x4000+0xe0) +#define PUT_LID_BACK (0x4000+0xe1) +#define USE_LID_ON_FLIMSY_BOX (0x4000+0xe2) +#define SC37_LID_LOGIC (0x4000+0xe3) +#define GT_SC37_WINE_RACK (0x4000+0xe4) +#define SC37_WINE_RACK_ACTION (0x4000+0xe5) +#define GN_SC38_LEFT_TALK (0x4000+0xe6) +#define GT_SC38_LEFT_TALK (0x4000+0xe7) +#define GN_SC38_RIGHT_TALK (0x4000+0xe8) +#define GT_SC38_RIGHT_TALK (0x4000+0xe9) +#define GT_SC38_LIFT (0x4000+0xea) +#define SC38_LIFT_ACTION (0x4000+0xeb) +#define SC38_LIFT_LOGIC (0x4000+0xec) +#define GT_SC38_STATUE (0x4000+0xed) +#define SC38_STATUE_ACTION (0x4000+0xee) +#define GT_SC38_VIDEO (0x4000+0xef) +#define SC38_VIDEO_ACTION (0x4000+0xf0) +#define SC38_VIDEO_LOGIC (0x4000+0xf1) +#define GT_SC38_MONITOR (0x4000+0xf2) +#define SC38_MONITOR_ACTION (0x4000+0xf3) +#define SC38_MONITOR_LOGIC (0x4000+0xf4) +#define GT_SC38_SOFA (0x4000+0xf5) +#define SC38_SOFA_ACTION (0x4000+0xf6) +#define GT_SC38_DOG_TRAY (0x4000+0xf7) +#define SC38_DOG_TRAY_ACTION (0x4000+0xf8) +#define GT_SC38_BISCUITS (0x4000+0xf9) +#define SC38_BISCUITS_ACTION (0x4000+0xfa) +#define SC38_RINGER_LOGIC (0x4000+0xfb) +#define SC39_EXIT_31_WALK_ON (0x4000+0xfc) +#define GT_SC39_EXIT_31 (0x4000+0xfd) +#define SC39_EXIT_31_ACTION (0x4000+0xfe) +#define GT_SC39_EXIT_40 (0x4000+0xff) +#define SC39_EXIT_40_ACTION (0x4000+0x100) +#define SC39_EXIT_41_WALK_ON (0x4000+0x101) +#define GT_SC39_EXIT_41 (0x4000+0x102) +#define SC39_EXIT_41_ACTION (0x4000+0x103) +#define GT_SC39_WALTERS (0x4000+0x104) +#define SC39_WALTERS_ACTION (0x4000+0x105) +#define GT_SC40_EXIT_39 (0x4000+0x106) +#define SC40_EXIT_39_ACTION (0x4000+0x107) +#define GT_SC40_CABINET (0x4000+0x108) +#define SC40_CABINET_ACTION (0x4000+0x109) +#define GT_SC40_TROLLEY (0x4000+0x10a) +#define SC40_TROLLEY_ACTION (0x4000+0x10b) +#define GT_SC40_LOCKER_1 (0x4000+0x10c) +#define SC40_LOCKER_1_ACTION (0x4000+0x10d) +#define GT_SC40_LOCKER_2 (0x4000+0x10e) +#define SC40_LOCKER_2_ACTION (0x4000+0x10f) +#define GT_SC40_LOCKER_3 (0x4000+0x110) +#define SC40_LOCKER_3_ACTION (0x4000+0x111) +#define GT_SC40_LOCKER_4 (0x4000+0x112) +#define SC40_LOCKER_4_ACTION (0x4000+0x113) +#define GT_SC40_LOCKER_5 (0x4000+0x114) +#define SC40_LOCKER_5_ACTION (0x4000+0x115) +#define GT_SC40_BODY_1 (0x4000+0x116) +#define SC40_BODY_1_ACTION (0x4000+0x117) +#define GT_SC40_BODY_2 (0x4000+0x118) +#define SC40_BODY_2_ACTION (0x4000+0x119) +#define GT_SC40_BODY_3 (0x4000+0x11a) +#define SC40_BODY_3_ACTION (0x4000+0x11b) +#define GT_SC40_BODY_4 (0x4000+0x11c) +#define SC40_BODY_4_ACTION (0x4000+0x11d) +#define GT_SC40_BODY_5 (0x4000+0x11e) +#define SC40_BODY_5_ACTION (0x4000+0x11f) +#define SC40_LOCKER_1_LOGIC (0x4000+0x120) +#define SC40_LOCKER_2_LOGIC (0x4000+0x121) +#define SC40_LOCKER_3_LOGIC (0x4000+0x122) +#define SC40_LOCKER_4_LOGIC (0x4000+0x123) +#define SC40_LOCKER_5_LOGIC (0x4000+0x124) +#define SC41_EXIT_39_WALK_ON (0x4000+0x125) +#define GT_SC41_EXIT_39 (0x4000+0x126) +#define SC41_EXIT_39_ACTION (0x4000+0x127) +#define SC41_HEAT_1_LOGIC (0x4000+0x128) +#define SC41_HEAT_2_LOGIC (0x4000+0x129) +#define SC41_HEAT_3_LOGIC (0x4000+0x12a) +#define FOSTER_ENTER_COURT (0x4000+0x12b) +#define SC42_JUDGE_LOGIC (0x4000+0x12c) +#define SC42_CLERK_LOGIC (0x4000+0x12d) +#define SC42_PROSECUTION_LOGIC (0x4000+0x12e) +#define SC42_JOBSWORTH_LOGIC (0x4000+0x12f) +#define SC42_BLUNT_LOGIC (0x4000+0x130) +#define SC42_DANI_LOGIC (0x4000+0x131) +#define SC42_SIGN_LOGIC (0x4000+0x132) +#define SC44_EXIT_45_WALK_ON (0x4000+0x133) +#define GT_SC44_EXIT_45 (0x4000+0x134) +#define SC44_EXIT_45_ACTION (0x4000+0x135) +#define GT_SC44_GRILL (0x4000+0x136) +#define SC44_GRILL_ACTION (0x4000+0x137) +#define GT_SC44_RUBBLE (0x4000+0x138) +#define SC44_RUBBLE_ACTION (0x4000+0x139) +#define SC45_EXIT_44_WALK_ON (0x4000+0x13a) +#define GT_SC45_EXIT_44 (0x4000+0x13b) +#define SC45_EXIT_44_ACTION (0x4000+0x13c) +#define SC45_EXIT_46_WALK_ON (0x4000+0x13d) +#define GT_SC45_EXIT_46 (0x4000+0x13e) +#define SC45_EXIT_46_ACTION (0x4000+0x13f) +#define SC45_EXIT_47_WALK_ON (0x4000+0x140) +#define GT_SC45_EXIT_47 (0x4000+0x141) +#define SC45_EXIT_47_ACTION (0x4000+0x142) +#define SC46_EXIT_45_WALK_ON (0x4000+0x143) +#define GT_SC46_EXIT_45 (0x4000+0x144) +#define SC46_EXIT_45_ACTION (0x4000+0x145) +#define GT_SC46_RUBBLE (0x4000+0x146) +#define SC46_RUBBLE_ACTION (0x4000+0x147) +#define SC47_EXIT_45_WALK_ON (0x4000+0x148) +#define GT_SC47_EXIT_45 (0x4000+0x149) +#define SC47_EXIT_45_ACTION (0x4000+0x14a) +#define SC47_EXIT_48_WALK_ON (0x4000+0x14b) +#define GT_SC47_EXIT_48 (0x4000+0x14c) +#define SC47_EXIT_48_ACTION (0x4000+0x14d) +#define SC48_EXIT_47_WALK_ON (0x4000+0x14e) +#define GT_SC48_EXIT_47 (0x4000+0x14f) +#define SC48_EXIT_47_ACTION (0x4000+0x150) +#define SC48_EXIT_65_WALK_ON (0x4000+0x151) +#define GT_SC48_EXIT_65 (0x4000+0x152) +#define SC48_EXIT_65_ACTION (0x4000+0x153) +#define GT_SC48_SOCKET (0x4000+0x154) +#define SC48_SOCKET_ACTION (0x4000+0x155) +#define SC48_SOCKET_LOGIC (0x4000+0x156) +#define GT_SC48_HOLE (0x4000+0x157) +#define SC48_HOLE_ACTION (0x4000+0x158) +#define FOSTER_SEES_EYES (0x4000+0x159) +#define SC48_HOLE_LOGIC (0x4000+0x15a) +#define SC48_EYES_LOGIC (0x4000+0x15b) +#define SC65_EXIT_48_WALK_ON (0x4000+0x15c) +#define GT_SC65_EXIT_48 (0x4000+0x15d) +#define SC65_EXIT_48_ACTION (0x4000+0x15e) +#define GT_SC65_EXIT_66 (0x4000+0x15f) +#define GT_SC65_POSTER1 (0x4000+0x160) +#define SC65_POSTER1_ACTION (0x4000+0x161) +#define GT_SC65_POSTER2 (0x4000+0x162) +#define SC65_POSTER2_ACTION (0x4000+0x163) +#define GT_SC65_SIGN (0x4000+0x164) +#define SC65_SIGN_ACTION (0x4000+0x165) +#define WALTER_SPEECH (0x5000+0x1) +#define JOEY_MEDIC (0x5000+0x2) +#define KEN_SPEECH (0x5000+0x3) +#define BORED_ROOM (0x5000+0x4) +#define HOBS_END (0x0000+0x46) +#define GT_JOEY_PARK (0x5000+0x5) +#define JOEY_MED_EXTRA (0x5000+0x6) +#define JOEY_MED_LOGIC (0x5000+0x7) +#define JOEY_MISSION72_EXTRA (0x5000+0x8) +#define JOEY_MED_MISSION72 (0x5000+0x9) +#define GT_RECHARGING_MEDI (0x5000+0xa) +#define RECHARGING_MEDI_ACTION (0x5000+0xb) +#define MEDI_LOGIC (0x5000+0xc) +#define SC67_MEND_LOGIC (0x5000+0xd) +#define MEDI_ACTION (0x5000+0xe) +#define GT_SC71_MEDI_SLOT (0x5000+0xf) +#define SC71_MEDI_SLOT_ACTION (0x5000+0x10) +#define SC66_FOSTER_GETS_CRUSHED (0x5000+0x11) +#define SC66_TIMER_LOGIC (0x5000+0x12) +#define SC66_DOOR_LOGIC (0x5000+0x13) +#define SC66_STONES_LOGIC (0x5000+0x14) +#define SC66_LO_BEAM_LOGIC (0x5000+0x15) +#define SC66_HI_BEAM_LOGIC (0x5000+0x16) +#define SC66_ROCK1_LOGIC (0x5000+0x17) +#define SC66_ROCK2_LOGIC (0x5000+0x18) +#define SC66_ROCK3_LOGIC (0x5000+0x19) +#define SC66_HOLE_ACTION (0x5000+0x1a) +#define SC67_PULSE1_LOGIC (0x5000+0x1b) +#define SC67_PULSE2_LOGIC (0x5000+0x1c) +#define SC67_PULSE3_LOGIC (0x5000+0x1d) +#define SC67_PULSE4_LOGIC (0x5000+0x1e) +#define SC67_ROCK_LOGIC (0x5000+0x1f) +#define GT_SC67_BRICKWORK (0x5000+0x20) +#define SC67_BRICKWORK_ACTION (0x5000+0x21) +#define SC67_CLOT_LOGIC (0x5000+0x22) +#define GN_SC67_CLOT (0x5000+0x23) +#define GT_SC67_CLOT (0x5000+0x24) +#define SC67_CLOT_ACTION (0x5000+0x25) +#define GT_SC67_VEIN (0x5000+0x26) +#define SC67_VEIN_ACTION (0x5000+0x27) +#define SC67_DOOR_MOUSE_ON (0x5000+0x28) +#define SC67_DOOR_LOGIC (0x5000+0x29) +#define SC67_DOOR_WALK_ON (0x5000+0x2a) +#define GN_SC67_DOOR (0x5000+0x2b) +#define GT_SC67_DOOR (0x5000+0x2c) +#define SC67_DOOR_ACTION (0x5000+0x2d) +#define SC67_PLASTER_LOGIC (0x5000+0x2e) +#define GT_SC67_PLASTER (0x5000+0x2f) +#define SC67_PLASTER_ACTION (0x5000+0x30) +#define SC67_BRICK_LOGIC (0x5000+0x31) +#define GT_SC67_BRICK (0x5000+0x32) +#define SC67_BRICK_ACTION (0x5000+0x33) +#define SC67_CROWBAR_LOGIC (0x5000+0x34) +#define GT_SC67_CROWBAR (0x5000+0x35) +#define SC67_CROWBAR_ACTION (0x5000+0x36) +#define GT_SC68_JOEY_WAIT (0x5000+0x37) +#define SC68_PULSE1_LOGIC (0x5000+0x38) +#define SC68_PULSE2_LOGIC (0x5000+0x39) +#define SC68_PULSE3_LOGIC (0x5000+0x3a) +#define SC68_PULSE4_LOGIC (0x5000+0x3b) +#define SC68_PULSE5_LOGIC (0x5000+0x3c) +#define SC68_PULSE6_LOGIC (0x5000+0x3d) +#define SC68_SENSOR_LOGIC (0x5000+0x3e) +#define SC68_DOOR_WALK_ON (0x5000+0x3f) +#define GN_SC68_DOOR (0x5000+0x40) +#define GT_SC68_DOOR (0x5000+0x41) +#define SC68_DOOR_ACTION (0x5000+0x42) +#define SC68_DOOR_MOUSE_ON (0x5000+0x43) +#define SC68_DOOR_LOGIC (0x5000+0x44) +#define GT_SC68_SENSOR (0x5000+0x45) +#define SC68_SENSOR_ACTION (0x5000+0x46) +#define GT_SC68_STAIRS (0x5000+0x47) +#define SC68_STAIRS_ACTION (0x5000+0x48) +#define SC68_EXIT_WALK_ON (0x5000+0x49) +#define GT2_SC68_EXIT (0x5000+0x4a) +#define GT_SC68_EXIT (0x5000+0x4b) +#define SC68_EXIT_ACTION (0x5000+0x4c) +#define GT_SC68_GRILL (0x5000+0x4d) +#define SC68_GRILL_ACTION (0x5000+0x4e) +#define SC69_PULSE1_LOGIC (0x5000+0x4f) +#define SC69_PULSE2_LOGIC (0x5000+0x50) +#define SC69_PULSE3_LOGIC (0x5000+0x51) +#define SC69_PULSE4_LOGIC (0x5000+0x52) +#define SC69_PULSE5_LOGIC (0x5000+0x53) +#define SC69_PULSE6_LOGIC (0x5000+0x54) +#define SC69_EXIT_WALK_ON (0x5000+0x55) +#define GT2_SC69_EXIT (0x5000+0x56) +#define GT_SC69_EXIT (0x5000+0x57) +#define SC69_EXIT_ACTION (0x5000+0x58) +#define SC69_DOOR_WALK_ON (0x5000+0x59) +#define GN_SC69_DOOR (0x5000+0x5a) +#define GT_SC69_DOOR (0x5000+0x5b) +#define SC69_DOOR_ACTION (0x5000+0x5c) +#define GT_SC69_GRILL (0x5000+0x5d) +#define SC69_GRILL_ACTION (0x5000+0x5e) +#define GT_SC70_DOOR (0x5000+0x5f) +#define SC70_DOOR_ACTION (0x5000+0x60) +#define SC70_IRIS_LOGIC (0x5000+0x61) +#define SC70_IRIS_OPENED (0x5000+0x62) +#define SC70_IRIS_CLOSED (0x5000+0x63) +#define GT_SC70_IRIS (0x5000+0x64) +#define SC70_IRIS_ACTION (0x5000+0x65) +#define SC70_BAR_LOGIC (0x5000+0x66) +#define GT_SC70_BAR (0x5000+0x67) +#define SC70_BAR_ACTION (0x5000+0x68) +#define GT_SC70_GRILL (0x5000+0x69) +#define SC70_GRILL_ACTION (0x5000+0x6a) +#define SC70_CONTROL_LOGIC (0x5000+0x6b) +#define GT_SC70_CONTROL (0x5000+0x6c) +#define SC70_CONTROL_ACTION (0x5000+0x6d) +#define SC70_PIT_LOGIC (0x5000+0x6e) +#define GT_SC70_PIT (0x5000+0x6f) +#define SC70_PIT_ACTION (0x5000+0x70) +#define GT_SC70_FLOOR (0x5000+0x71) +#define SC71_DOOR69_WALK_ON (0x5000+0x72) +#define GN_SC71_DOOR69 (0x5000+0x73) +#define GT_SC71_DOOR69 (0x5000+0x74) +#define SC71_DOOR69_ACTION (0x5000+0x75) +#define SC71_DOOR72_WALK_ON (0x5000+0x76) +#define GN_SC71_DOOR72 (0x5000+0x77) +#define GT_SC71_DOOR72 (0x5000+0x78) +#define SC71_DOOR72_ACTION (0x5000+0x79) +#define GN_INTO_RECHARGING_UNIT (0x5000+0x7a) +#define GET_INTO_RECHARGING_UNIT (0x5000+0x7b) +#define GT_SC71_RECHARGER (0x5000+0x7c) +#define SC71_RECHARGER_ACTION (0x5000+0x7d) +#define GT_SC71_MONITOR (0x5000+0x7e) +#define SC71_MONITOR_ACTION (0x5000+0x7f) +#define GT_SC71_CONTROLS (0x5000+0x80) +#define SC71_CONTROLS_ACTION (0x5000+0x81) +#define GT_SC71_LOCKED_DOOR (0x5000+0x82) +#define SC71_LOCKED_DOOR_ACTION (0x5000+0x83) +#define SC71_RECHARGER_LOGIC (0x5000+0x84) +#define SC71_PANEL2_LOGIC (0x5000+0x85) +#define SC71_LIGHT1_LOGIC (0x5000+0x86) +#define SC71_CHLITE_LOGIC (0x5000+0x87) +#define SC71_MONITOR_LOGIC (0x5000+0x88) +#define SC71_CONTROLS_LOGIC (0x5000+0x89) +#define WITNESS_LOGIC (0x5000+0x8a) +#define SC72_FOSTER_DEATH (0x5000+0x8b) +#define WITNESS_CATCHES_FOSTER (0x5000+0x8c) +#define SC72_DOOR_WALK_ON (0x5000+0x8d) +#define GN_SC72_DOOR (0x5000+0x8e) +#define GT_SC72_DOOR (0x5000+0x8f) +#define SC72_DOOR_ACTION (0x5000+0x90) +#define SC72_EXIT_WALK_ON (0x5000+0x91) +#define GN_SC72_EXIT (0x5000+0x92) +#define GT_SC72_EXIT (0x5000+0x93) +#define SC72_EXIT_ACTION (0x5000+0x94) +#define SC72_TANK_LOGIC (0x5000+0x95) +#define GT_SC72_TANK (0x5000+0x96) +#define SC72_TANK_ACTION (0x5000+0x97) +#define GT_SC72_TAP (0x5000+0x98) +#define SC72_TAP_ACTION (0x5000+0x99) +#define SC72_SPILL_LOGIC (0x5000+0x9a) +#define GT_SC72_SPILL (0x5000+0x9b) +#define SC72_SPILL_ACTION (0x5000+0x9c) +#define SC72_GRILL_LOGIC (0x5000+0x9d) +#define GT_SC72_GRILL (0x5000+0x9e) +#define SC72_GRILL_ACTION (0x5000+0x9f) +#define SC72_CHAMBER1_LOGIC (0x5000+0xa0) +#define SC72_CHAM1_LIGHT_LOGIC (0x5000+0xa1) +#define SC72_CHAMBER2_LOGIC (0x5000+0xa2) +#define SC72_CHAM2_LIGHT_LOGIC (0x5000+0xa3) +#define SC72_CHAMBER3_LOGIC (0x5000+0xa4) +#define GT_SC72_CHAMBER1 (0x5000+0xa5) +#define GT_SC72_CHAMBER2 (0x5000+0xa6) +#define GT_SC72_CHAMBER3 (0x5000+0xa7) +#define SC72_CHAMBERS_ACTION (0x5000+0xa8) +#define GT_SC72_LIGHT1 (0x5000+0xa9) +#define GT_SC72_LIGHT2 (0x5000+0xaa) +#define GT_SC72_LIGHT3 (0x5000+0xab) +#define SC72_ROT_LIGHT_LOGIC (0x5000+0xac) +#define SC72_COMPUTER_LOGIC (0x5000+0xad) +#define SC72_COMPUTER2_LOGIC (0x5000+0xae) +#define GT_SC72_COMPUTER (0x5000+0xaf) +#define SC72_COMPUTER_ACTION (0x5000+0xb0) +#define GN_SC72_WITNESS_TALK (0x5000+0xb1) +#define GT_SC72_WITNESS_TALK (0x5000+0xb2) +#define GN_SC72_FOSTER_TALK (0x5000+0xb3) +#define GT_SC72_FOSTER_TALK (0x5000+0xb4) +#define GT_SC72_WITNESS_KILL (0x5000+0xb5) +#define GT_SC73_CORPSE (0x5000+0xb6) +#define SC73_CORPSE_ACTION (0x5000+0xb7) +#define GALLAGHER_LOGIC73 (0x5000+0xb8) +#define GT_SC73_GALL_1 (0x5000+0xb9) +#define GT_SC73_GALL_2 (0x5000+0xba) +#define GT_SC73_JOEY_WAIT (0x5000+0xbb) +#define SC73_SENSOR_LOGIC (0x5000+0xbc) +#define SC73_EXIT_WALK_ON (0x5000+0xbd) +#define GT2_SC73_EXIT (0x5000+0xbe) +#define GT_SC73_EXIT (0x5000+0xbf) +#define SC73_EXIT_ACTION (0x5000+0xc0) +#define SC73_DOOR_WALK_ON (0x5000+0xc1) +#define GT_SC73_DOOR (0x5000+0xc2) +#define SC73_DOOR_ACTION (0x5000+0xc3) +#define SC73_CHAMBER3_LOGIC (0x5000+0xc4) +#define SC73_CHAMBER4_LOGIC (0x5000+0xc5) +#define SC73_CHAM4_LIGHT_LOGIC (0x5000+0xc6) +#define GT_SC73_CHAMBER4 (0x5000+0xc7) +#define SC73_CHAMBER4_ACTION (0x5000+0xc8) +#define SC73_CHAMBER5_LOGIC (0x5000+0xc9) +#define SC73_CHAM5_LIGHT_LOGIC (0x5000+0xca) +#define GT_SC73_CHAMBER5 (0x5000+0xcb) +#define SC73_CHAMBER5_ACTION (0x5000+0xcc) +#define SC73_BIG_DOOR_MOUSE_ON (0x5000+0xcd) +#define SC73_BIG_DOOR_WALK_ON (0x5000+0xce) +#define GT_SC73_BIG_DOOR (0x5000+0xcf) +#define SC73_BIG_DOOR_ACTION (0x5000+0xd0) +#define GT_SC73_SENSOR (0x5000+0xd1) +#define SC73_SENSOR_ACTION (0x5000+0xd2) +#define GT_SC73_LOCKED_DOOR (0x5000+0xd3) +#define SC73_LOCKED_DOOR_ACTION (0x5000+0xd4) +#define SC73_BITS_LOGIC (0x5000+0xd5) +#define SC73_BITS2_LOGIC (0x5000+0xd6) +#define SC73_SPRAY_LOGIC (0x5000+0xd7) +#define GT_SC73_WRECKED_DROID (0x5000+0xd8) +#define SC73_WRECKED_DROID_ACTION (0x5000+0xd9) +#define JOEY_MED_LOGIC73 (0x5000+0xda) +#define SC74_DOOR_WALK_ON (0x5000+0xdb) +#define GT_SC74_DOOR (0x5000+0xdc) +#define SC74_DOOR_ACTION (0x5000+0xdd) +#define SC74_MONITOR1_LOGIC (0x5000+0xde) +#define SC74_MONITOR2_LOGIC (0x5000+0xdf) +#define SC74_MONITOR3_LOGIC (0x5000+0xe0) +#define SC74_MONITOR4_LOGIC (0x5000+0xe1) +#define SC74_LEFT_TV_LOGIC (0x5000+0xe2) +#define SC74_RIGHT_TV_LOGIC (0x5000+0xe3) +#define SC74_LIGHTS_LOGIC (0x5000+0xe4) +#define GT_SC74_MONITOR1 (0x5000+0xe5) +#define GT_SC74_LEFT_TV (0x5000+0xe6) +#define GT_SC74_RIGHT_TV (0x5000+0xe7) +#define SC74_MONITORS_ACTION (0x5000+0xe8) +#define GT_SC74_INTERFACE (0x5000+0xe9) +#define SC74_INTERFACE_ACTION (0x5000+0xea) +#define GT_SC74_FLOOR (0x5000+0xeb) +#define GT_SC74_INT_SLOT (0x5000+0xec) +#define SC74_INT_SLOT_ACTION (0x5000+0xed) +#define SC74_INT_SLOT_LOGIC (0x5000+0xee) +#define GT_SC74_TERMINAL (0x5000+0xef) +#define SC74_TERMINAL_ACTION (0x5000+0xf0) +#define SC74_POD_LOGIC (0x5000+0xf1) +#define SC75_BIG_DOOR_WALK_ON (0x5000+0xf2) +#define GT_SC75_BIG_DOOR (0x5000+0xf3) +#define SC75_BIG_DOOR_ACTION (0x5000+0xf4) +#define SC75_DOOR_WALK_ON (0x5000+0xf5) +#define GT_SC75_DOOR (0x5000+0xf6) +#define SC75_DOOR_ACTION (0x5000+0xf7) +#define SC75_NITRO_TANK_LOGIC (0x5000+0xf8) +#define GT_SC75_NITRO_TANK (0x5000+0xf9) +#define SC75_NITRO_TANK_ACTION (0x5000+0xfa) +#define SC75_LIVE_TANK_LOGIC (0x5000+0xfb) +#define GT_SC75_LIVE_TANK (0x5000+0xfc) +#define SC75_TISSUE_LOGIC (0x5000+0xfd) +#define SC75_LIVE_TANK_ACTION (0x5000+0xfe) +#define SC75_CONSOLE_LOGIC (0x5000+0xff) +#define SC75_CRASH_LOGIC (0x5000+0x100) +#define GT_SC75_CONSOLE (0x5000+0x101) +#define SC75_CONSOLE_ACTION (0x5000+0x102) +#define SC75_TONGS_LOGIC (0x5000+0x103) +#define GT_SC75_TONGS (0x5000+0x104) +#define SC75_TONGS_ACTION (0x5000+0x105) +#define SC75_LIGHT1_LOGIC (0x5000+0x106) +#define SC75_LIGHT2_LOGIC (0x5000+0x107) +#define SC76_DOOR75_WALK_ON (0x5000+0x108) +#define GT_SC76_DOOR75 (0x5000+0x109) +#define SC76_DOOR75_ACTION (0x5000+0x10a) +#define SC76_DOOR77_WALK_ON (0x5000+0x10b) +#define GT_SC76_DOOR77 (0x5000+0x10c) +#define SC76_DOOR77_ACTION (0x5000+0x10d) +#define GT_SC76_ANYTHING (0x5000+0x10e) +#define SC76_ANDROID_ACTION (0x5000+0x10f) +#define SC76_CONSOLE_1_ACTION (0x5000+0x110) +#define SC76_CONSOLE_2_ACTION (0x5000+0x111) +#define SC76_CONSOLE_3_ACTION (0x5000+0x112) +#define SC76_BOARD_1_ACTION (0x5000+0x113) +#define SC76_BOARD_2_ACTION (0x5000+0x114) +#define SC76_BOARD_3_ACTION (0x5000+0x115) +#define SC76_BOARD_1_LOGIC (0x5000+0x116) +#define SC76_BOARD_2_LOGIC (0x5000+0x117) +#define SC76_BOARD_3_LOGIC (0x5000+0x118) +#define SC76_CABINET_1_ACTION (0x5000+0x119) +#define SC76_CABINET_2_ACTION (0x5000+0x11a) +#define SC76_CABINET_3_ACTION (0x5000+0x11b) +#define SC76_CABINET_1_LOGIC (0x5000+0x11c) +#define SC76_CABINET_2_LOGIC (0x5000+0x11d) +#define SC76_CABINET_3_LOGIC (0x5000+0x11e) +#define SC76_LIGHT1_LOGIC (0x5000+0x11f) +#define SC76_LIGHT2_LOGIC (0x5000+0x120) +#define SC76_LIGHT3_LOGIC (0x5000+0x121) +#define SC76_LIGHT4_LOGIC (0x5000+0x122) +#define SC76_LIGHT5_LOGIC (0x5000+0x123) +#define SC76_LIGHT6_LOGIC (0x5000+0x124) +#define SC76_LIGHT7_LOGIC (0x5000+0x125) +#define SC76_LIGHT8_LOGIC (0x5000+0x126) +#define SC76_LIGHT9_LOGIC (0x5000+0x127) +#define SC76_ANDROID_1_LOGIC (0x5000+0x128) +#define SC76_ANDROID_2_LOGIC (0x5000+0x129) +#define KEN_START_LOGIC (0x5000+0x12a) +#define SC76_ANDROID_3_LOGIC (0x5000+0x12b) +#define KEN_EXTRA (0x5000+0x12c) +#define KEN_LOGIC (0x5000+0x12d) +#define KEN_STUCK_LOGIC (0x5000+0x12e) +#define STUCK_SSS (0x5000+0x12f) +#define GT_SC77_STUCK_KEN (0x5000+0x130) +#define STUCK_KEN_ACTION (0x5000+0x131) +#define KEN_MISSION_HAND_EXTRA (0x5000+0x132) +#define KEN_MISSION_HAND (0x5000+0x133) +#define SC77_DOOR76_WALK_ON (0x5000+0x134) +#define GT_SC77_DOOR76 (0x5000+0x135) +#define SC77_DOOR76_ACTION (0x5000+0x136) +#define SC77_BIG_DOOR_MOUSE_ON (0x5000+0x137) +#define SC77_BIG_DOOR_LOGIC (0x5000+0x138) +#define SC77_BIG_DOOR_WALK_ON (0x5000+0x139) +#define GT_SC77_BIG_DOOR (0x5000+0x13a) +#define SC77_BIG_DOOR_ACTION (0x5000+0x13b) +#define GT_SC77_TANKS (0x5000+0x13c) +#define SC77_TANKS_ACTION (0x5000+0x13d) +#define GT_SC77_HAND_1 (0x5000+0x13e) +#define SC77_HAND_1_ACTION (0x5000+0x13f) +#define GN_SC77_HAND_2 (0x5000+0x140) +#define GT_SC77_HAND_2 (0x5000+0x141) +#define SC77_HAND_2_ACTION (0x5000+0x142) +#define GT_SC78_LEDGE (0x5000+0x143) +#define GT_SC78_PIPE (0x5000+0x144) +#define SC78_BIG_DOOR_WALK_ON (0x5000+0x145) +#define GT_SC78_BIG_DOOR (0x5000+0x146) +#define SC78_BIG_DOOR_ACTION (0x5000+0x147) +#define SC78_EXIT_WALK_ON (0x5000+0x148) +#define GT_SC78_EXIT (0x5000+0x149) +#define SC78_EXIT_ACTION (0x5000+0x14a) +#define GT_SC78_SUPPORT (0x5000+0x14b) +#define SC78_SUPPORT_ACTION (0x5000+0x14c) +#define SC79_EXIT_WALK_ON (0x5000+0x14d) +#define GT_SC79_EXIT (0x5000+0x14e) +#define SC79_EXIT_ACTION (0x5000+0x14f) +#define GT_SC79_SUPPORT (0x5000+0x150) +#define SC79_SUPPORT_ACTION (0x5000+0x151) +#define SC79_KNOT_LOGIC (0x5000+0x152) +#define GT_SC79_KNOT (0x5000+0x153) +#define SC79_KNOT_ACTION (0x5000+0x154) +#define SC79_ROPE_LOGIC (0x5000+0x155) +#define GT_SC79_ROPE (0x5000+0x156) +#define SC79_ROPE_ACTION (0x5000+0x157) +#define GT_SC79_LADDER (0x5000+0x158) +#define SC79_LADDER_ACTION (0x5000+0x159) +#define SC80_LADDER_ACTION (0x5000+0x15a) +#define SC80_ROPE_ACTION (0x5000+0x15b) +#define SC80_ROPE_LOGIC (0x5000+0x15c) +#define SC80_SPOUT_ACTION (0x5000+0x15d) +#define SC80_ORIFICE_ACTION (0x5000+0x15e) +#define SC80_SAMPLE_LOGIC (0x5000+0x15f) +#define SC80_EXIT_LOGIC (0x5000+0x160) +#define SC80_EXIT_ACTION (0x5000+0x161) +#define SC80_GOO_LOGIC (0x5000+0x162) +#define SC80_BUBBLE1_LOGIC (0x5000+0x163) +#define SC80_BUBBLE2_LOGIC (0x5000+0x164) +#define SC80_BUBBLE3_LOGIC (0x5000+0x165) +#define SC80_BUBBLE4_LOGIC (0x5000+0x166) +#define SC80_BUBBLE5_LOGIC (0x5000+0x167) +#define SC80_BUBBLE6_LOGIC (0x5000+0x168) +#define SC80_BUBBLE7_LOGIC (0x5000+0x169) +#define SC80_BUBBLE8_LOGIC (0x5000+0x16a) +#define SC80_BUBBLE9_LOGIC (0x5000+0x16b) +#define SC80_BUBBLE10_LOGIC (0x5000+0x16c) +#define SC80_BUBBLE11_LOGIC (0x5000+0x16d) +#define SC80_BUBBLE12_LOGIC (0x5000+0x16e) +#define SC81_PULSE_LOGIC (0x5000+0x16f) +#define SC81_FATHER_CHAIR_LOGIC (0x5000+0x170) +#define SC81_FATHER_FLOOR_LOGIC (0x5000+0x171) +#define SC81_FATHER_FINISHED (0x5000+0x172) +#define SC81_FATHER_SSS (0x5000+0x173) +#define SC81_FATHER_FALL (0x5000+0x174) +#define FOSTER_ENTER_BOARDROOM (0x5000+0x175) +#define SC81_FATHER_ACTION (0x5000+0x176) +#define LAST_WORDS_WITH_FATHER (0x5000+0x177) +#define SC81_KEN_SSS (0x5000+0x178) +#define SC81_KEN_ACTION (0x5000+0x179) +#define SC81_DOOR_LOGIC (0x5000+0x17a) +#define SC81_KEN_LOGIC (0x5000+0x17b) +#define SC81_FOSTER_ABSORBED (0x5000+0x17c) +#define SC81_FOSTER_GRABBED (0x5000+0x17d) +#define SC81_CHAIR_ACTION (0x5000+0x17e) +#define SC81_TENT1_LOGIC (0x5000+0x17f) +#define SC81_TENT2_LOGIC (0x5000+0x180) +#define SC81_TENT3_LOGIC (0x5000+0x181) +#define SC81_TENT4_LOGIC (0x5000+0x182) +#define SC81_TENT5_LOGIC (0x5000+0x183) +#define SC81_TENT6_LOGIC (0x5000+0x184) +#define SC81_BIG_TENT1_LOGIC (0x5000+0x185) +#define SC81_BIG_TENT2_LOGIC (0x5000+0x186) +#define SC81_BIG_TENT3_LOGIC (0x5000+0x187) +#define SC82_JOBS_SSS (0x0000+0x47) +#define SC82_JOBSWORTH_LOGIC (0x0000+0x48) +#define PRINT_CREDITS (0x0000+0x49) +#define END_SEQUENCE (0x0000+0x4a) +#define FOSTER_ENTER_NEW_BOARDROOM (0x0000+0x4b) +#define SC82_KEN_LOGIC (0x0000+0x4c) +#define S19_LEFT_ON (0x0000+0x4d) +#define S19_RIGHT_ON (0x0000+0x4e) +#define GT_RIGHT_EXIT_19 (0x0000+0x4f) +#define ER19_ACTION (0x0000+0x50) +#define CABLE2_LOGIC (0x0000+0x51) +#define CABLE_FALL_LOGIC (0x0000+0x52) +#define SMASHED_WINDOW_LOGIC (0x0000+0x53) +#define BITS_LOGIC (0x0000+0x54) +#define GT_CABLE_11 (0x0000+0x55) +#define CABLE_11_ACTION (0x0000+0x56) +#define SPY11_LOGIC (0x0000+0x57) +#define LOCKER_11_LOGIC (0x0000+0x58) +#define GT_LOCKER_11 (0x0000+0x59) +#define LOCKER_11_ACTION (0x0000+0x5a) +#define START90 (0x0000+0x5b) +#define EXIT_LINC (0x0000+0x5c) +#define LINC_MENU_SCRIPT (0x6000+0x1) +#define LINC_MENU_SELECT (0x6000+0x2) +#define INFO_MENU_SELECT (0x6000+0x3) +#define DIS_MENU_SELECT (0x6000+0x4) +#define JOIN_MENU_SELECT (0x6000+0x5) +#define DECOMP_MENU_SELECT (0x6000+0x6) +#define DECRYPT_MENU_SELECT (0x6000+0x7) +#define DOC_MENU_SELECT (0x6000+0x8) +#define SET_UP_INFO_WINDOW (0x6000+0x9) +#define INFO_WINDOW_LOGIC (0x6000+0xa) +#define INFO_BUTTON_LOGIC (0x6000+0xb) +#define CLOSE_WINDOW (0x6000+0xc) +#define NORMAL_MOUSE (0x6000+0xd) +#define BUTTON_MOUSE (0x6000+0xe) +#define DISCONNECT_FOSTER (0x6000+0xf) +#define DOOR_L90_LOGIC (0x6000+0x10) +#define DOOR_L90F_LOGIC (0x6000+0x11) +#define GET_TO_DOOR_L90 (0x6000+0x12) +#define DOOR_L90_ACTION (0x6000+0x13) +#define DOOR_R90_LOGIC (0x6000+0x14) +#define DOOR_R90F_LOGIC (0x6000+0x15) +#define GET_TO_DOOR_R90 (0x6000+0x16) +#define DOOR_R90_ACTION (0x6000+0x17) +#define GET_TO_JOIN_OBJECT (0x6000+0x18) +#define JOIN_OBJECT_ACTION (0x6000+0x19) +#define JOIN_OBJECT_LOGIC (0x6000+0x1a) +#define GET_TO_OSCILLATOR (0x6000+0x1b) +#define OSCILLATOR_ACTION (0x6000+0x1c) +#define OSCILLATOR_LOGIC (0x6000+0x1d) +#define GET_TO_EYEBALL_90 (0x6000+0x1e) +#define EYEBALL_90_ACTION (0x6000+0x1f) +#define EYEBALL_90_LOGIC (0x6000+0x20) +#define DOOR_L91_LOGIC (0x6000+0x21) +#define DOOR_L91F_LOGIC (0x6000+0x22) +#define GET_TO_DOOR_L91 (0x6000+0x23) +#define DOOR_L91_ACTION (0x6000+0x24) +#define DOOR_R91_LOGIC (0x6000+0x25) +#define DOOR_R91F_LOGIC (0x6000+0x26) +#define GET_TO_DOOR_R91 (0x6000+0x27) +#define DOOR_R91_ACTION (0x6000+0x28) +#define DOOR_T91_LOGIC (0x6000+0x29) +#define DOOR_T91R_LOGIC (0x6000+0x2a) +#define GET_TO_DOOR_T91 (0x6000+0x2b) +#define DOOR_T91_ACTION (0x6000+0x2c) +#define GET_TO_BAG_91 (0x6000+0x2d) +#define BAG_91_ACTION (0x6000+0x2e) +#define BAG_91_LOGIC (0x6000+0x2f) +#define GET_TO_DECOMP_OBJ (0x6000+0x30) +#define DECOMP_OBJ_ACTION (0x6000+0x31) +#define DECOMP_OBJ_LOGIC (0x6000+0x32) +#define GET_TO_DECRYPT_OBJ (0x6000+0x33) +#define DECRYPT_OBJ_ACTION (0x6000+0x34) +#define DECRYPT_OBJ_LOGIC (0x6000+0x35) +#define GET_TO_REPORT_BOOK (0x6000+0x36) +#define REPORT_BOOK_ACTION (0x6000+0x37) +#define REPORT_BOOK_LOGIC (0x6000+0x38) +#define GET_TO_EYEBALL_91 (0x6000+0x39) +#define EYEBALL_91_ACTION (0x6000+0x3a) +#define EYEBALL_91_LOGIC (0x6000+0x3b) +#define DOOR_L92_LOGIC (0x6000+0x3c) +#define DOOR_L92F_LOGIC (0x6000+0x3d) +#define GET_TO_DOOR_L92 (0x6000+0x3e) +#define DOOR_L92_ACTION (0x6000+0x3f) +#define DOOR_R92_LOGIC (0x6000+0x40) +#define DOOR_R92R_LOGIC (0x6000+0x41) +#define GET_TO_DOOR_R92 (0x6000+0x42) +#define DOOR_R92_ACTION (0x6000+0x43) +#define SLAB1_LOGIC (0x6000+0x44) +#define SLAB2_LOGIC (0x6000+0x45) +#define SLAB3_LOGIC (0x6000+0x46) +#define SLAB4_LOGIC (0x6000+0x47) +#define SLAB5_LOGIC (0x6000+0x48) +#define SLAB6_LOGIC (0x6000+0x49) +#define SLAB7_LOGIC (0x6000+0x4a) +#define SLAB8_LOGIC (0x6000+0x4b) +#define SLAB9_LOGIC (0x6000+0x4c) +#define GET_TO_SLAB (0x6000+0x4d) +#define SLAB_ACTION (0x6000+0x4e) +#define SLAB_6_9_ACTION (0x6000+0x4f) +#define BRIDGE_A_LOGIC (0x6000+0x50) +#define BRIDGE_B_LOGIC (0x6000+0x51) +#define BRIDGE_C_LOGIC (0x6000+0x52) +#define BRIDGE_D_LOGIC (0x6000+0x53) +#define BRIDGE_E_LOGIC (0x6000+0x54) +#define BRIDGE_F_LOGIC (0x6000+0x55) +#define BRIDGE_G_LOGIC (0x6000+0x56) +#define BRIDGE_H_LOGIC (0x6000+0x57) +#define GET_TO_CIRCLE (0x6000+0x58) +#define GREEN_CIRCLE_LOGIC (0x6000+0x59) +#define GREEN_CIRCLE_ACTION (0x6000+0x5a) +#define RED_CIRCLE_LOGIC (0x6000+0x5b) +#define RED_CIRCLE_ACTION (0x6000+0x5c) +#define SLAB_ON (0x6000+0x5d) +#define SLAB_OFF (0x6000+0x5e) +#define LEFT_MOUSE (0x6000+0x5f) +#define RIGHT_MOUSE (0x6000+0x60) +#define UP_MOUSE (0x6000+0x61) +#define DOWN_MOUSE (0x6000+0x62) +#define DOOR_L93_LOGIC (0x6000+0x63) +#define DOOR_L93F_LOGIC (0x6000+0x64) +#define GET_TO_DOOR_L93 (0x6000+0x65) +#define DOOR_L93_ACTION (0x6000+0x66) +#define GET_TO_PERSONA (0x6000+0x67) +#define PERSONA_ACTION (0x6000+0x68) +#define PERSONA_LOGIC (0x6000+0x69) +#define GET_TO_ADJUST_BOOK (0x6000+0x6a) +#define ADJUST_BOOK_ACTION (0x6000+0x6b) +#define ADJUST_BOOK_LOGIC (0x6000+0x6c) +#define DOOR_L94_LOGIC (0x6000+0x6d) +#define DOOR_L94R_LOGIC (0x6000+0x6e) +#define GET_TO_DOOR_L94 (0x6000+0x6f) +#define DOOR_L94_ACTION (0x6000+0x70) +#define DOOR_R94_LOGIC (0x6000+0x71) +#define DOOR_R94R_LOGIC (0x6000+0x72) +#define GET_TO_DOOR_R94 (0x6000+0x73) +#define DOOR_R94_ACTION (0x6000+0x74) +#define GET_TO_HOLOGRAM_PAD (0x6000+0x75) +#define HOLOGRAM_PAD_ACTION (0x6000+0x76) +#define HOLOGRAM_A_LOGIC (0x6000+0x77) +#define HOLOGRAM_B_LOGIC (0x6000+0x78) +#define DOOR_L95_LOGIC (0x6000+0x79) +#define DOOR_L95F_LOGIC (0x6000+0x7a) +#define GET_TO_DOOR_L95 (0x6000+0x7b) +#define DOOR_L95_ACTION (0x6000+0x7c) +#define DOOR_R95_LOGIC (0x6000+0x7d) +#define DOOR_R95F_LOGIC (0x6000+0x7e) +#define GET_TO_DOOR_R95 (0x6000+0x7f) +#define DOOR_R95_ACTION (0x6000+0x80) +#define DOOR_T95_LOGIC (0x6000+0x81) +#define DOOR_T95R_LOGIC (0x6000+0x82) +#define GET_TO_DOOR_T95 (0x6000+0x83) +#define DOOR_T95_ACTION (0x6000+0x84) +#define GET_TO_GUARDIAN (0x6000+0x85) +#define GUARDIAN_ACTION (0x6000+0x86) +#define GUARDIAN_LOGIC (0x6000+0x87) +#define WEIGHT_LOGIC (0x6000+0x88) +#define DOOR_L96_LOGIC (0x6000+0x89) +#define DOOR_L96F_LOGIC (0x6000+0x8a) +#define GET_TO_DOOR_L96 (0x6000+0x8b) +#define DOOR_L96_ACTION (0x6000+0x8c) +#define CRYSTAL_LOGIC (0x6000+0x8d) +#define GET_TO_CRYSTAL (0x6000+0x8e) +#define CRYSTAL_ACTION (0x6000+0x8f) +#define VIRUS_LOGIC (0x6000+0x90) +#define GET_TO_VIRUS (0x6000+0x91) +#define VIRUS_ACTION (0x6000+0x92) +#define ANITA_SPEECH (0x2000+0x105) +#define LAMB_FACTORY (0x2000+0x106) +#define LAMB_UNUSED (0x2000+0x107) +#define LAMB_BELLEVUE (0x0000+0x5d) +#define FORE_SPEECH (0x2000+0x108) +#define GORDON_SPEECH (0x2000+0x109) +#define GUARD_SPEECH (0x2000+0x10a) +#define WANK (0x2000+0x10b) +#define WRECK_SPEECH (0x2000+0x10c) +#define LOB_DAD_SPEECH (0x2000+0x10d) +#define LOB_SON_SPEECH (0x2000+0x10e) +#define RADMAN_SPEECH (0x2000+0x10f) +#define BURKE_SPEECH (0x3000+0x139) +#define JASON_SPEECH (0x3000+0x13a) +#define JOEY_RECYCLE (0x1000+0xab) +#define JOEY_UNUSED (0x1000+0xac) +#define JOEY_FACTORY (0x2000+0x110) +#define JOEY_BELLEVUE (0x3000+0x13b) +#define ANCHOR_SPEECH (0x3000+0x13c) +#define TREVOR_SPEECH (0x3000+0x13d) +#define HELGA_SPEECH (0x3000+0x13e) +#define GALL_BELLEVUE (0x3000+0x13f) +#define FULL_SCREEN_LOGIC (0x0000+0x5e) +#define CANCEL_ACTION_101 (0x0000+0x5f) +#define BUTTON_ACTION_101 (0x0000+0x60) +#define FS_BUTTON_LOGIC (0x0000+0x61) +#define FS_RETINA_SCAN_LOGIC (0x0000+0x62) +#define START_0 (0x0000+0x63) +#define START_S4 (0x0000+0x64) +#define START_S2 (0x0000+0x65) +#define START_S3 (0x0000+0x66) +#define START_S6 (0x0000+0x67) +#define START_29 (0x0000+0x68) +#define START_TEN (0x0000+0x69) +#define START_ONE (0x0000+0x6a) +#define START_IN_FACTORY (0x0000+0x6b) +#define START_14 (0x0000+0x6c) +#define START_SC31 (0x0000+0x6d) +#define START_SC37 (0x0000+0x6e) +#define START_SC42 (0x0000+0x6f) +#define START_SC48 (0x0000+0x70) +#define START_SC66 (0x0000+0x71) +#define START_SC73 (0x0000+0x72) +#define START_SC81 (0x0000+0x73) +#define START_SC82 (0x0000+0x74) +#define START_SC90 (0x0000+0x75) +#define MANTRACH_SPEECH (0x0000+0x76) +#define ID_GRID81 21010 +#define ID_SC81_DOOR 21011 +#define ID_SC81_CHAIR 21012 +#define ID_SC81_HELMET 21013 +#define ID_SC81_FATHER 21014 +#define ID_SC81_FATHER_SAT 21015 +#define ID_SC81_FOSTER_SAT 21016 +#define ID_SC81_KEN_SAT 21017 +#define ID_SC81_TENT1 21025 +#define ID_SC81_TENT2 21026 +#define ID_SC81_TENT3 21027 +#define ID_SC81_TENT4 21028 +#define ID_SC81_TENT5 21029 +#define ID_SC81_TENT6 21030 +#define ID_SC81_BIG_TENT1 21037 +#define ID_SC81_BIG_TENT2 21038 +#define ID_SC81_BIG_TENT3 21039 +#define ID_SC39_WALTERS 16809 +#define ID_SC31_JOEY 16851 +#define ID_SC82_JOBSWORTH 21069 +#define DISQ_1 2048 +#define DISQ_2 4096 +#define DISQ_3 6144 +#define DISQ_5 10240 +#define DISQ_6 12288 +#define DISQ_7 14336 +#define DISQ_8 16384 +#define DISQ_9 18432 +#define DISQ_10 20480 +#define DISQ_11 22528 +#define DISQ_12 24576 +#define DISQ_13 26624 +#define DISQ_14 28672 +#define DISQ_15 30720 +#define T0 0 +#define T1 4096 +#define T2 8192 +#define T3 12288 +#define T4 16384 +#define T5 20480 +#define T6 24576 +#define T7 28672 +#define UP 0 +#define DOWN 1 +#define LEFT 2 +#define RIGHT 3 +#define TALK 4 +#define ID_FOSTER 3 +#define ID_JOEY 1 +#define JOBS 4122 +#define ID_JOBS 4122 +#define MINI_SS 4100 +#define FULL_SS 4101 +#define ID_S2_FLOOR 115 +#define ID_L_EXIT_S2 4315 +#define FOSTER_BIG 4098 +#define ID_R_EXIT_S2 4103 +#define ID_S4_FLOOR 4104 +#define ID_S4_L_EXIT 4105 +#define ID_TV_SCREENS 4108 +#define ID_KNOB 4109 +#define ID_CHUCK 4110 +#define ID_LAZER 4111 +#define ID_CUPBOARD 4112 +#define ID_SARNIE 4113 +#define ID_SPANNER 4114 +#define ID_BUTTONS 4115 +#define ID_TOP_LIFT 4116 +#define ID_MONITORS 4117 +#define ID_HOLE 4119 +#define ID_TOP_BARREL 4120 +#define ID_LOADER 4121 +#define ID_UPLOAD 4125 +#define ID_LIGHT1 4126 +#define ID_PANEL 4127 +#define ID_ALARM 4128 +#define ID_S3_FLOOR 4130 +#define ID_ROBOT_SHELL 4131 +#define ID_JOEY_PARK 2 +#define ID_DEAD_LOADER 4133 +#define IDO_CROW_BAR 63 +#define IDO_SARNIE 64 +#define IDO_SPANNER 65 +#define IDO_JOEY_BOARD 66 +#define IDO_CITYCARD 8 +#define IDO_SHADES 9 +#define IDO_PUTTY 10 +#define IDO_LIGHTBULB 11 +#define IDO_ANITA_CARD 71 +#define IDO_ANCHOR 74 +#define IDO_MAGAZINE 75 +#define IDO_TAPE 76 +#define IDO_GLASS 77 +#define IDO_TICKET 79 +#define IDO_SECATEURS 36 +#define IDO_ROPE 37 +#define IDO_PLASTER 38 +#define IDO_NEW_CABLE 39 +#define IDO_BRICK 42 +#define IDO_TONGS 43 +#define IDO_GALLCARD 6 +#define ID_LOW_LIFT 4137 +#define ID_STEVE_SPY 4138 +#define ID_LOW_BARREL 4139 +#define ID_CONVEY 4140 +#define ID_JOEY_FLY 4141 +#define ID_FURNACE 4142 +#define ID_LIGHTS1 4143 +#define ID_EYE_BALL 4144 +#define ID_EYE_BOLT 4145 +#define ID_FURNACE_DOOR 4146 +#define ID_SLOT 4147 +#define ID_SHADES 4148 +#define ID_LAZER_GUN 4149 +#define ID_SMOULDER 4150 +#define ID_NOTICE 4151 +#define ID_NOTICE2 4152 +#define ID_SS_SIGN 4153 +#define ID_POSTCARD 4154 +#define ID_NOTICE4 4155 +#define ID_SHRUG_SEQ 40 +#define ID_SMALL_SHRUG 13 +#define ID_SML_UP_GET_SEQ 14 +#define ID_TEXT_MOUSE 5 +#define ID_S_AND_R 19 +#define ID_MENU_LOGIC 4 +#define ID_STD_MENU_LOGIC 4 +#define ID_ANIM 4186 +#define ID_RESET 4282 +#define ID_RESET_MEGA 7 +#define ID_FAN1 4102 +#define ID_FAN2 4303 +#define ID_FAN3 4305 +#define ID_FAN4 4307 +#define ID_FAN5 4309 +#define ID_FAN6 4311 +#define ID_FAN7 4313 +#define ID_S6_FLOOR 8200 +#define ID_S6_STAIRS 8210 +#define ID_S6_JOEY_FLY 8215 +#define ID_LEFT_EXIT_S6 8221 +#define ID_S5_FLOOR 8223 +#define ID_RIGHT_EXIT_S5 8224 +#define ID_RIGHT_EXIT_S6 8226 +#define ID_S7_FLOOR 8231 +#define ID_LEFT_EXIT_S7 8234 +#define ID_LEFT_EXIT_S5 8238 +#define ID_S18_FLOOR 8243 +#define ID_RIGHT_EXIT_S18 8246 +#define ID_SECURITY_EXIT 8248 +#define ID_S9_FLOOR 8253 +#define ID_LEFT_EXIT_S9 8256 +#define ID_STEAM 8259 +#define ID_POWER_DOOR 8264 +#define ID_POWER_MOTOR 8266 +#define ID_POWER_PANEL 8270 +#define PANEL_FRAME 4160 +#define SWITCH_FRAME 4032 +#define ID_POWER_SWITCH 8271 +#define ID_POWER_CHAIR 8272 +#define ID_LEFT_SKULL 8273 +#define ID_RIGHT_SKULL 8274 +#define ID_POWER_BANG 8275 +#define ID_MONITOR 136 +#define ID_LEFT_LEVER 8290 +#define ID_RIGHT_LEVER 8291 +#define LEFT_LEVER_FRAME 5760 +#define RIGHT_LEVER_FRAME 5824 +#define ID_FANS 8292 +#define ID_LOBBY_DOOR 8295 +#define ID_SCANNER 8298 +#define ID_LOBBY_SLOT 8299 +#define NO_TEXT_MESSAGE 28707 +#define ID_DAD 8301 +#define ID_SON 8211 +#define ID_LOW_GET_SEQ 12 +#define ID_PRESS 4321 +#define ID_LOW_FLOOR 67 +#define ID_SMALL_DOOR 105 +#define ID_LFAN1 4326 +#define ID_LFAN2 4328 +#define ID_SMOKE1 4330 +#define ID_SMOKE2 4332 +#define ID_SKORL_GUARD 8309 +#define S5_SECURITY_EXIT 8310 +#define ID_S8_FLOOR 8316 +#define ID_S7_RIGHT_EXIT 8317 +#define ID_DOWN_EXIT_S8 8320 +#define ID_WRECK_GUARD 8324 +#define ID_FACTORY_ENTRY 8331 +#define ID_S12_FLOOR 8336 +#define ID_FACTORY_EXIT 8341 +#define ID_FACT1_EXIT 8344 +#define ID_S13_FLOOR 8349 +#define ID_FACT2_L_EXIT 8353 +#define ID_FACT2_R_EXIT 8355 +#define ID_S14_FLOOR 8360 +#define ID_FACT3_L_EXIT 8364 +#define ID_F2_STORE_EXIT 8366 +#define ID_S15_FLOOR 8371 +#define ID_NU_FLOOR 8441 +#define ID_STORE_EXIT 8375 +#define ID_ANITA 137 +#define ID_TOP_BELT 8379 +#define ID_BOT_BELT 8381 +#define ID_PIPES 8383 +#define ID_ANITA_SPY 8385 +#define ID_WELDER 8388 +#define ID_LAMB 16 +#define ID_COGS 8393 +#define ID_GEARS 8395 +#define ID_BELT1 8397 +#define ID_BELT2 8399 +#define ID_PIPE1 8401 +#define ID_PIPE2 8403 +#define ID_PIPE3 8405 +#define ID_PIPE4 8407 +#define ID_STD_LEFT_TALK 23 +#define ID_STD_RIGHT_TALK 24 +#define ID_SENSOR 8410 +#define ID_LITE1 8412 +#define ID_LITE2 8414 +#define ID_FOREMAN 8544 +#define ID_FACT2_SPY 8418 +#define ID_S7_CARD_SLOT 8420 +#define ID_LIFT_NOTICE 8421 +#define ID_LIFT_S7 8422 +#define ID_LINC_S7 8425 +#define ID_JUNCTION_BOX 8426 +#define ID_FAKE_FLOOR 8427 +#define ID_FACT_CONSOLE 8435 +#define ID_FLAP 8438 +#define ID_SKEY 8442 +#define ID_WD40 8443 +#define IDO_WD40 34 +#define IDO_SKEY 35 +#define ID_FLOOR_PUTTY 8446 +#define ID_NEW_GRID 15 +#define ST_BACKGROUND 1 +#define ST_FOREGROUND 2 +#define ST_SORT 4 +#define ST_RECREATE 8 +#define ST_MOUSE 16 +#define ST_COLLISION 32 +#define ST_LOGIC 64 +#define ST_GRID_PLOT 128 +#define ST_AR_PRIORITY 256 +#define S62 3968 +#define S91 5824 +#define S94 6016 +#define S95 6080 +#define S96 6144 +#define S106 6784 +#define S108 6912 +#define S137 8768 +#define S152 9728 +#define S182 11648 +#define S191 12224 +#define HEAD_TEXT 24681 +#define PAL_90 24717 +#define PAL_90A 24718 +#define PAL_90B 24719 +#define PAL_91 24720 +#define PAL_92 24721 +#define PAL_93 24722 +#define PAL_94 24723 +#define PAL_95 24724 +#define PAL_96 24725 +#define RST_L_ARR_LINC 142 +#define RST_R_ARR_LINC 143 +#define RST_BLANKS_LINC 144 +#define RST_FOST_S90 24656 +#define RST_FOST_90_91 24657 +#define RST_FOST_90_94 24658 +#define RST_FOST_91_90 24659 +#define RST_FOST_91_92 24660 +#define RST_FOST_91_95 24661 +#define RST_FOST_92_91 24662 +#define RST_FOST_92_93 24663 +#define RST_FOST_93_92 24664 +#define RST_FOST_94_90 24665 +#define RST_FOST_94_95 24666 +#define RST_FOST_95_91 24667 +#define RST_FOST_95_94 24668 +#define RST_FOST_95_96 24669 +#define RST_FOST_96_95 24670 +#define AMT_ENTER_TOP 24814 +#define AMT_EXIT_TOP 24815 +#define AMT_LOGON 24824 +#define AMT_LOGOFF 24825 +#define AMT_CROUCH_LEFT 24759 +#define AMT_CROUCH_RIGHT 24760 +#define AMT_CROUCH_RIGHT_A 24805 +#define AMT_CROUCH_RIGHT_B 24806 +#define AMT_CROUCH_DOWN 24704 +#define AMT_SHRUG 24618 +#define AMT_LIGHT1 24671 +#define AMT_LIGHT2 24672 +#define AMT_LIGHT3A 24673 +#define AMT_LIGHT3B 24674 +#define AMT_LIGHT3C 24675 +#define AMT_LIGHT4 24676 +#define AMT_LIGHT5 24677 +#define AMT_LIGHT6 24678 +#define AMT_LIGHT7 24679 +#define AMT_LIGHT8 24680 +#define AMT_LIGHT9A 24681 +#define AMT_LIGHT9B 24682 +#define AMT_LIGHT9C 24683 +#define AMT_LIGHT10A 24684 +#define AMT_LIGHT10B 24685 +#define AMT_LIGHT10C 24686 +#define AMT_LIGHT10D 24687 +#define AMT_DOOR_L90 24688 +#define AMT_DOOR_L90F 24689 +#define AMT_DOOR_R90 24690 +#define AMT_DOOR_R90F 24691 +#define AMT_GET_JOIN 24692 +#define AMT_GET_OSCILL 24693 +#define AMT_BLIND_EYE 24694 +#define AMT_SEE_EYE 24695 +#define AMT_GET_EYE 24758 +#define AMT_EYE90_ZAP 24802 +#define AMT_FOST_DIE90 24793 +#define AMT_DOOR_L91 24696 +#define AMT_DOOR_L91F 24697 +#define AMT_DOOR_R91 24796 +#define AMT_DOOR_R91F 24797 +#define AMT_DOOR_T91 24698 +#define AMT_DOOR_T91R 24699 +#define AMT_GET_DECOMP 24702 +#define AMT_GET_DECRYPT 24703 +#define AMT_GET_REPORT 24733 +#define AMT_EYE91_ZAP 24800 +#define AMT_FOST_DIE91 24728 +#define AMT_DOOR_L92 24822 +#define AMT_DOOR_L92F 24823 +#define AMT_DOOR_R92 24808 +#define AMT_DOOR_R92R 24809 +#define AMT_DOOR_L93 24812 +#define AMT_DOOR_L93F 24813 +#define AMT_GET_PERSONA 24705 +#define AMT_GET_ADJUST 24706 +#define AMT_DOOR_L94 24707 +#define AMT_DOOR_L94R 24708 +#define AMT_DOOR_R94 24709 +#define AMT_DOOR_R94R 24710 +#define AMT_HOLO1_A 24726 +#define AMT_HOLO1_B 24727 +#define AMT_HOLO3 24768 +#define AMT_DOOR_L95 24711 +#define AMT_DOOR_L95F 24712 +#define AMT_DOOR_R95 24771 +#define AMT_DOOR_R95F 24772 +#define AMT_DOOR_T95 24713 +#define AMT_DOOR_T95R 24714 +#define AMT_GUARDIAN_UP 24791 +#define AMT_GUARDIAN_DOWN 24801 +#define AMT_WEIGHT_ANIM 24826 +#define AMT_DOOR_L96 24780 +#define AMT_DOOR_L96F 24781 +#define AMT_CRYSTAL_SPIN 24788 +#define AMT_CRYSTAL_BREAK 24789 +#define AMT_VIRUS_SPIN 24790 +#define AMT_GET_VIRUS 24794 +#define ID_LINC_MENU_LOGIC 24831 +#define ID_LINC_MENU_MOUSE 24832 +#define IT_BLUE_FOSTER 182 +#define IT_LOGOFF 117 +#define IT_LINK_ARROWS 190 +#define IT_LINK_OBJECTS 191 +#define IT_WINDOW 26 +#define IT_INFO_BUTTON 137 +#define IT_WINDOW_LOGIC 24765 +#define IT_WINDOW_MOUSE 24766 +#define IT_GET_EYE 18 +#define IT_CROUCH_LEFT 16 +#define IT_CROUCH_RIGHT 17 +#define IT_CROUCH_DOWN 20 +#define IT_ENTER_TOP 135 +#define IT_EXIT_TOP 136 +#define IT_LIGHT1 64 +#define IT_LIGHT2 65 +#define IT_LIGHT3A 66 +#define IT_LIGHT3B 67 +#define IT_LIGHT3C 68 +#define IT_LIGHT4 69 +#define IT_LIGHT5 70 +#define IT_LIGHT6 71 +#define IT_LIGHT7 72 +#define IT_LIGHT8 73 +#define IT_LIGHT9A 74 +#define IT_LIGHT9B 75 +#define IT_LIGHT9C 76 +#define IT_LIGHT10A 85 +#define IT_LIGHT10B 86 +#define IT_LIGHT10C 87 +#define IT_LIGHT10D 88 +#define IT_SC90_LAYER_0 175 +#define IT_SC90_LAYER_1 176 +#define IT_SC90_GRID_1 177 +#define IT_SC90_FAST 102 +#define IT_SC90_CHIP 24735 +#define IT_SC90_LOGIC 24736 +#define IT_SC90_MOUSE 24737 +#define IT_DOOR_L90 45 +#define IT_DOOR_L90F 46 +#define IT_DOOR_R90 258 +#define IT_DOOR_R90F 259 +#define IT_JOIN_OBJECT 22 +#define IT_OSCILLATOR 132 +#define IT_EYEBALL 91 +#define IT_BLIND_EYE 89 +#define IT_SEE_EYE 90 +#define IT_EYE90_ZAP 113 +#define IT_FOST_DIE90 115 +#define IT_SC91_LAYER_0 183 +#define IT_SC91_LAYER_1 184 +#define IT_SC91_GRID_1 185 +#define IT_SC91_FAST 24738 +#define IT_SC91_CHIP 24739 +#define IT_SC91_LOGIC 24740 +#define IT_SC91_MOUSE 24741 +#define IT_DOOR_L91 260 +#define IT_DOOR_L91F 261 +#define IT_DOOR_R91 111 +#define IT_DOOR_R91F 112 +#define IT_DOOR_T91 31 +#define IT_DOOR_T91R 32 +#define IT_BAG_91 47 +#define IT_DECOMP_OBJ 48 +#define IT_DECRYPT_OBJ 131 +#define IT_REPORT_BOOK 95 +#define IT_EYE91_ZAP 114 +#define IT_FOST_DIE91 116 +#define IT_SC92_LAYER_0 192 +#define IT_SC92_LAYER_1 193 +#define IT_SC92_GRID_1 194 +#define IT_SC92_FAST 24742 +#define IT_SC92_CHIP 24743 +#define IT_SC92_LOGIC 24744 +#define IT_SC92_MOUSE 24745 +#define IT_BRIDGES 44 +#define IT_CIRCLES 62 +#define IT_DOOR_L92 54 +#define IT_DOOR_L92F 55 +#define IT_DOOR_R92 129 +#define IT_DOOR_R92R 130 +#define IT_SC93_LAYER_0 199 +#define IT_SC93_LAYER_1 250 +#define IT_SC93_GRID_1 251 +#define IT_SC93_FAST 24746 +#define IT_SC93_CHIP 24747 +#define IT_SC93_LOGIC 24748 +#define IT_SC93_MOUSE 24749 +#define IT_DOOR_L93 133 +#define IT_DOOR_L93F 134 +#define IT_PERSONA 51 +#define IT_ADJUST_BOOK 63 +#define IT_SC94_LAYER_0 13 +#define IT_SC94_FAST 24750 +#define IT_SC94_CHIP 24751 +#define IT_SC94_LOGIC 24752 +#define IT_SC94_MOUSE 24753 +#define IT_DOOR_L94 58 +#define IT_DOOR_L94R 59 +#define IT_DOOR_R94 60 +#define IT_DOOR_R94R 61 +#define IT_HOLO1_A 92 +#define IT_HOLO1_B 93 +#define IT_HOLO2_A 94 +#define IT_HOLO2_B 96 +#define IT_HOLO3 97 +#define IT_SC95_LAYER_0 23 +#define IT_SC95_LAYER_1 24 +#define IT_SC95_GRID_1 25 +#define IT_SC95_FAST 24754 +#define IT_SC95_CHIP 24755 +#define IT_SC95_LOGIC 24756 +#define IT_SC95_MOUSE 24757 +#define IT_DOOR_L95 56 +#define IT_DOOR_L95F 57 +#define IT_DOOR_R95 100 +#define IT_DOOR_R95F 101 +#define IT_DOOR_T95 52 +#define IT_DOOR_T95R 53 +#define IT_GUARDIAN 102 +#define IT_WEIGHT 103 +#define IT_SC96_LAYER_0 27 +#define IT_SC96_LAYER_1 28 +#define IT_SC96_GRID_1 29 +#define IT_SC96_FAST 24773 +#define IT_SC96_CHIP 24774 +#define IT_SC96_LOGIC 24775 +#define IT_SC96_MOUSE 24776 +#define IT_DOOR_L96 98 +#define IT_DOOR_L96F 99 +#define IT_CRYSTAL_SPIN 106 +#define IT_CRYSTAL_BREAK 107 +#define IT_VIRUS_SPIN 108 +#define IT_GET_VIRUS 110 +#define ID_BLUE_FOSTER 3 +#define ID_WINDOW_1 24761 +#define ID_WINDOW_2 24762 +#define ID_WINDOW_3 24763 +#define ID_WINDOW_4 24764 +#define ID_INFO_BUTTON 24810 +#define ID_HEAD_MODULE 24816 +#define ID_FILE_MODULE 24817 +#define ID_SIZE_MODULE 24818 +#define ID_AUTH_MODULE 24819 +#define ID_NOTE_MODULE 24820 +#define ID_SKY 24640 +#define ID_LIGHTNING 24645 +#define ID_LIGHTNING1 24646 +#define ID_LIGHTNING2 24647 +#define ID_LIGHTNING3 24648 +#define ID_GRID90 24701 +#define ID_GRID91 24715 +#define ID_GRID92 24716 +#define ID_GRID93 24782 +#define ID_GRID94 24783 +#define ID_GRID95 24784 +#define ID_GRID96 24785 +#define ID_INFO_MENU 24581 +#define ID_READ_MENU 24582 +#define ID_OPEN_MENU 24583 +#define ID_ORDERS_MENU 24630 +#define ID_ORDERS2_MENU 24828 +#define ID_CHARON_MENU 24628 +#define ID_JOIN_MENU 24584 +#define ID_GREEN_MENU 24626 +#define ID_RED_MENU 24627 +#define ID_REPORT_MENU 24732 +#define ID_REPORT2_MENU 24829 +#define ID_DECOMP_MENU 24629 +#define ID_DECRYPT_MENU 24631 +#define ID_PERSONA_MENU 24632 +#define ID_ADJUST_MENU 24643 +#define ID_ADJUST2_MENU 24830 +#define ID_PLAYBAK_MENU 24650 +#define ID_BLIND_MENU 24625 +#define ID_OSCILL_MENU 24649 +#define ID_KILL_MENU 24827 +#define ID_VIRUS_MENU 24651 +#define ID_SC90_FLOOR 24577 +#define ID_SC90_SMFLOOR 24591 +#define ID_DOOR_L90 24635 +#define ID_DOOR_L90F 24636 +#define ID_DOOR_R90 24579 +#define ID_DOOR_R90F 24600 +#define ID_JOIN_OBJECT 24604 +#define ID_OSCILLATOR 24641 +#define ID_EYEBALL_90 24644 +#define ID_EYE_90_TABLE 24652 +#define ID_SC91_FLOOR 24578 +#define ID_DOOR_L91 24580 +#define ID_DOOR_L91F 24601 +#define ID_DOOR_R91 24585 +#define ID_DOOR_R91F 24795 +#define ID_DOOR_T91 24606 +#define ID_DOOR_T91R 24607 +#define ID_BAG_91 24637 +#define ID_DECOMP_OBJ 24638 +#define ID_DECRYPT_OBJ 24639 +#define ID_REPORT_BOOK 24731 +#define ID_EYEBALL_91 24798 +#define ID_EYE_91_TABLE 24799 +#define ID_SLAB1 24586 +#define ID_SLAB2 24592 +#define ID_SLAB3 24593 +#define ID_SLAB4 24594 +#define ID_SLAB5 24595 +#define ID_SLAB6 24596 +#define ID_SLAB7 24597 +#define ID_SLAB8 24598 +#define ID_SLAB9 24599 +#define ID_BRIDGE_A 24610 +#define ID_BRIDGE_B 24611 +#define ID_BRIDGE_C 24612 +#define ID_BRIDGE_D 24613 +#define ID_BRIDGE_E 24614 +#define ID_BRIDGE_F 24615 +#define ID_BRIDGE_G 24616 +#define ID_BRIDGE_H 24617 +#define ID_DOOR_L92 24587 +#define ID_DOOR_L92F 24821 +#define ID_DOOR_R92 24588 +#define ID_DOOR_R92R 24807 +#define ID_GREEN_CIRCLE 24633 +#define ID_RED_CIRCLE 24634 +#define ID_SC93_FLOOR 24589 +#define ID_DOOR_L93 24590 +#define ID_DOOR_L93F 24792 +#define ID_PERSONA 24602 +#define ID_ADJUST_BOOK 24642 +#define ID_SC94_FLOOR 24603 +#define ID_DOOR_L94 24623 +#define ID_DOOR_L94R 24624 +#define ID_DOOR_R94 24621 +#define ID_DOOR_R94R 24622 +#define ID_HOLOGRAM_A 24729 +#define ID_HOLOGRAM_B 24767 +#define ID_HOLOGRAM_PAD 24730 +#define ID_SC95_FLOOR 24605 +#define ID_DOOR_L95 24608 +#define ID_DOOR_L95F 24609 +#define ID_DOOR_R95 24769 +#define ID_DOOR_R95F 24770 +#define ID_DOOR_T95 24619 +#define ID_DOOR_T95R 24620 +#define ID_GUARDIAN 24804 +#define ID_WEIGHT 24811 +#define ID_SC96_FLOOR 24777 +#define ID_DOOR_L96 24778 +#define ID_DOOR_L96F 24779 +#define ID_CRYSTAL 24786 +#define ID_VIRUS 24787 +#define BEFORE_SHRUG 5 +#define OFF_LEFT 104 +#define OFF_RIGHT 472 +#define DOOR_SHUT 1 +#define DOOR_OPEN 2 +#define DOOR_MOVING 3 +#define AR_OK 0 +#define AR_FAIL 1 +#define AR_ZERO 2 +#define L_BUTTON 2 +#define R_BUTTON 1 +#define F_UP 9 +#define W_UP 86 +#define M_UP 104 +#define G_UP 114 +#define K_UP 134 +#define ID_PIPE_TALK 144 +#define ID_MEDI 20511 +#define ID_WITNESS 20754 +#define ID_GALLAGHER 20812 +#define ID_KEN 20911 +#define ID_WALTER_TALK_UP 20983 +#define ID_WALTER_TALK_DWN 20984 +#define ID_WALTER_TALK_LFT 20985 +#define ID_WALTER_CONV 20986 +#define ID_MEDI_TALK_UP 20987 +#define ID_MEDI_TALK_DOWN 20988 +#define ID_MEDI_TALK_LEFT 20989 +#define ID_MEDI_TALK_RIGHT 20990 +#define ID_FOST_CONV_LEFT 20991 +#define ID_GALL_TALK_UP 20992 +#define ID_GALL_TALK_LEFT 20993 +#define ID_SC75_FREEZE_TLK 20994 +#define ID_SC75_DEAD_TLK 20995 +#define ID_KEN_TALK_UP 20996 +#define ID_KEN_TALK_DOWN 20997 +#define ID_KEN_TALK_LEFT 20998 +#define ID_KEN_TALK_RIGHT 20999 +#define ID_ANDROID_BABBLE 21000 +#define ID_STUCK_TALK 21001 +#define ID_FOST_PIPE_TALK 21002 +#define ID_SC66_FAST_LIST 20481 +#define ID_SC66_CHIP_LIST 20482 +#define ID_SC66_LOGIC_LIST 20483 +#define ID_SC66_MOUSE_LIST 20484 +#define ID_SC66_PALETTE 20485 +#define ID_RESET_66 20486 +#define ID_SC66_DOOR 20977 +#define ID_SC66_DOOR_CLOSE 20978 +#define ID_SC66_HOLE 20487 +#define ID_SC66_FOS_WALK_IN 20982 +#define ID_SC66_FOS_CRUSHED 20981 +#define ID_SC66_LO_BEAM 20969 +#define ID_SC66_LO_BEAM_ANM 20970 +#define ID_SC66_HI_BEAM 20966 +#define ID_SC66_HI_BEAM_AN1 20967 +#define ID_SC66_HI_BEAM_AN2 20968 +#define ID_SC66_ROCK1 20971 +#define ID_SC66_ROCK1_ANIM 20972 +#define ID_SC66_ROCK2 20973 +#define ID_SC66_ROCK2_ANIM 20974 +#define ID_SC66_ROCK3 20975 +#define ID_SC66_ROCK3_ANIM 20976 +#define ID_SC66_STONES 20979 +#define ID_SC66_STONES_ANIM 20980 +#define ID_SC67_FAST_LIST 20488 +#define ID_SC67_CHIP_LIST 20489 +#define ID_SC67_LOGIC_LIST 20490 +#define ID_SC67_MOUSE_LIST 20491 +#define ID_SC67_PALETTE 20492 +#define ID_GRID67 20502 +#define ID_RESET_66_67 20523 +#define ID_RESET_68_67 20529 +#define ID_SC67_FLOOR 20501 +#define ID_SC67_DOOR 20506 +#define ID_SC67_DOOR_OPEN 20508 +#define ID_SC67_DOOR_CLOSE 20509 +#define ID_SC67_BRICKWORK 20503 +#define ID_SC67_VEIN 20510 +#define ID_SC67_CLOT 20507 +#define ID_SC67_CRAWL 20521 +#define ID_SC67_DUSTOFF 20522 +#define ID_SC67_GETBRICK 20524 +#define ID_SC67_PLASTER 20526 +#define ID_SC67_PLAST_FALL 20525 +#define ID_SC67_PICK_PLAST 20651 +#define ID_SC67_BRICK 20527 +#define ID_SC67_BRICK_FALL 20528 +#define ID_SC67_PICK_BRICK 20650 +#define ID_SC67_STICK_IN 20652 +#define ID_SC67_PULL_OUT 20653 +#define ID_SC67_BRICK_HIT 20654 +#define ID_SC67_PLAST_HIT 20655 +#define ID_SC67_LPOCKET 20661 +#define ID_SC67_RPOCKET 20662 +#define ID_SC67_RUB_HEAD 20663 +#define ID_SC67_TRY_STICK 20677 +#define ID_SC67_CROWBAR 20678 +#define ID_SC67_BAR_FALL 20679 +#define ID_SC67_PUSS_LEAK 20680 +#define ID_SC67_MEDIFIX 20681 +#define ID_SC67_MEND 20682 +#define ID_SC67_MENDING 20683 +#define ID_SC67_ROCK 20504 +#define ID_SC67_ROCK_ANIM 20505 +#define ID_SC67_PULSE1 20493 +#define ID_SC67_PULSE1_ANIM 20497 +#define ID_SC67_PULSE2 20494 +#define ID_SC67_PULSE2_ANIM 20498 +#define ID_SC67_PULSE3 20495 +#define ID_SC67_PULSE3_ANIM 20499 +#define ID_SC67_PULSE4 20496 +#define ID_SC67_PULSE4_ANIM 20500 +#define ID_SC68_FAST_LIST 20512 +#define ID_SC68_CHIP_LIST 20513 +#define ID_SC68_LOGIC_LIST 20514 +#define ID_SC68_MOUSE_LIST 20515 +#define ID_SC68_PALETTE 20516 +#define ID_GRID68 20520 +#define ID_SC68_JOEY_LIST 20784 +#define ID_RESET_67_68 20517 +#define ID_RESET_69_68 20561 +#define ID_RESET_70_68 20599 +#define ID_SC68_FLOOR 20519 +#define ID_SC68_DOOR 20518 +#define ID_SC68_DOOR_CLOSE 20533 +#define ID_SC68_STAIRS 20532 +#define ID_SC68_DESCEND 20684 +#define ID_SC68_ASCEND 20685 +#define ID_SC68_EXIT 20558 +#define ID_SC68_SENSOR 20531 +#define ID_SC68_SENSOR_ANIM 20656 +#define ID_SC68_GRILL 20530 +#define ID_SC68_PULSE1 20534 +#define ID_SC68_PULSE1_ANIM 20540 +#define ID_SC68_PULSE2 20535 +#define ID_SC68_PULSE2_ANIM 20541 +#define ID_SC68_PULSE3 20536 +#define ID_SC68_PULSE3_ANIM 20542 +#define ID_SC68_PULSE4 20537 +#define ID_SC68_PULSE4_ANIM 20543 +#define ID_SC68_PULSE5 20538 +#define ID_SC68_PULSE5_ANIM 20544 +#define ID_SC68_PULSE6 20539 +#define ID_SC68_PULSE6_ANIM 20545 +#define ID_SC69_FAST_LIST 20552 +#define ID_SC69_CHIP_LIST 20553 +#define ID_SC69_LOGIC_LIST 20554 +#define ID_SC69_MOUSE_LIST 20555 +#define ID_SC69_PALETTE 20556 +#define ID_GRID69 20563 +#define ID_SC69_JOEY_LIST 20813 +#define ID_RESET_68_69 20559 +#define ID_RESET_71_69 20574 +#define ID_SC69_FLOOR 20557 +#define ID_SC69_EXIT 20560 +#define ID_SC69_GRILL 20562 +#define ID_SC69_DOOR 20570 +#define ID_SC69_PULSE1 20635 +#define ID_SC69_PULSE1_ANIM 20641 +#define ID_SC69_PULSE2 20636 +#define ID_SC69_PULSE2_ANIM 20642 +#define ID_SC69_PULSE3 20637 +#define ID_SC69_PULSE3_ANIM 20643 +#define ID_SC69_PULSE4 20638 +#define ID_SC69_PULSE4_ANIM 20644 +#define ID_SC69_PULSE5 20639 +#define ID_SC69_PULSE5_ANIM 20645 +#define ID_SC69_PULSE6 20640 +#define ID_SC69_PULSE6_ANIM 20646 +#define ID_SC70_FAST_LIST 20589 +#define ID_SC70_CHIP_LIST 20590 +#define ID_SC70_LOGIC_LIST 20591 +#define ID_SC70_MOUSE_LIST 20592 +#define ID_SC70_PALETTE 20593 +#define ID_GRID70 20597 +#define ID_RESET_68_70 20594 +#define ID_SC70_FLOOR 20595 +#define ID_SC70_DOOR 20598 +#define ID_SC70_IRIS 20600 +#define ID_SC70_BAR 20601 +#define ID_SC70_CONTROL 20602 +#define ID_SC70_GRILL 20603 +#define ID_SC70_CONSOL_ANIM 20647 +#define ID_SC70_PIT 20648 +#define ID_SC70_PIT_ANIM 20649 +#define ID_SC70_STEP_UP 20756 +#define ID_SC70_STEP_DOWN 20757 +#define ID_SC70_BAR_ANIM 20758 +#define ID_SC70_PULL_BAR 20759 +#define ID_SC70_ENTER_ANIM 20778 +#define ID_SC70_EXIT_ANIM 20779 +#define ID_SC710_FAST_LIST 20687 +#define ID_SC71_FAST_LIST 20564 +#define ID_SC71_CHIP_LIST 20565 +#define ID_SC71_LOGIC_LIST 20566 +#define ID_SC71_MOUSE_LIST 20567 +#define ID_SC71_PALETTE 20568 +#define ID_GRID71 20575 +#define ID_SC71_JOEY_LIST 20814 +#define ID_RESET_69_71 20571 +#define ID_RESET_72_71 20582 +#define ID_SC71_FAKE_FLOOR 20569 +#define ID_SC71_FLOOR 20572 +#define ID_SC71_DOOR69 20573 +#define ID_SC71_DOOR72 20579 +#define ID_SC71_LOCKED_DOOR 20674 +#define ID_SC71_MONITOR 20576 +#define ID_SC71_RECHARGER 20577 +#define ID_SC71_PANEL_ANIM 20776 +#define ID_SC71_PANEL2 20775 +#define ID_SC71_PANEL2_ANIM 20777 +#define ID_SC71_CONTROLS 20578 +#define ID_SC71_LIGHT2_ANIM 20768 +#define ID_SC71_LIGHT1 20766 +#define ID_SC71_LIGHT1_ANIM 20767 +#define ID_SC71_CHLITE 20769 +#define ID_SC71_CHLITE_ANIM 20770 +#define ID_SC71_MON_ANIM 20771 +#define ID_SC71_MEDI_CHARGE 20772 +#define ID_SC71_MEDI_GET_UP 20774 +#define ID_SC71_MEDI_SLOT 20675 +#define ID_SC71_USE_BOARD 20773 +#define ID_SC720_FAST_LIST 20686 +#define ID_SC72_FAST_LIST 20546 +#define ID_SC72_CHIP_LIST 20547 +#define ID_SC72_LOGIC_LIST 20548 +#define ID_SC72_MOUSE_LIST 20549 +#define ID_SC72_PALETTE 20550 +#define ID_GRID72 20596 +#define ID_SC72_JOEY_LIST 20815 +#define ID_RESET_71_72 20581 +#define ID_RESET_73_72 20614 +#define ID_SC72_FAKE_FLOOR 20551 +#define ID_SC72_FLOOR 20580 +#define ID_SC72_DOOR 20583 +#define ID_SC72_EXIT 20604 +#define ID_SC72_TAP 20588 +#define ID_SC72_TANK 20584 +#define ID_SC72_TANK_ANIM 20785 +#define ID_SC72_ROT_LIGHT 20792 +#define ID_SC72_ROTATING 20793 +#define ID_SC72_CHAMBER1 20585 +#define ID_SC72_CHAM1_ANIM 20789 +#define ID_SC72_CHAM1_LIGHT 20780 +#define ID_SC72_CHAM1_FLASH 20781 +#define ID_SC72_CHAMBER2 20586 +#define ID_SC72_CHAM2_ANIM 20790 +#define ID_SC72_CHAM2_LIGHT 20782 +#define ID_SC72_CHAM2_FLASH 20783 +#define ID_SC72_CHAMBER3 20761 +#define ID_SC72_CHAM3_ANIM 20791 +#define ID_SC72_COMPUTER 20765 +#define ID_SC72_COMP_FLASH 20786 +#define ID_SC72_COMPUTER2 20787 +#define ID_SC72_COMP2_FLASH 20788 +#define ID_SC72_LIGHT1 20762 +#define ID_SC72_LIGHT2 20763 +#define ID_SC72_LIGHT3 20764 +#define ID_SC72_GRILL 20587 +#define ID_SC72_WALTER_KILL 20794 +#define ID_SC72_FOSTER_DIE 20795 +#define ID_SC72_WALTER_DIE 20800 +#define ID_SC72_JOEY_TAP 20796 +#define ID_SC72_SPILL 20798 +#define ID_SC72_SPILL_ANIM 20799 +#define ID_SC72_DRIP_ANIM 20797 +#define ID_SC73_FAST_LIST 20605 +#define ID_SC73_CHIP_LIST 20606 +#define ID_SC73_LOGIC_LIST 20607 +#define ID_SC73_MOUSE_LIST 20608 +#define ID_SC73_PALETTE 20609 +#define ID_GRID73 20612 +#define ID_SC73_JOEY_LIST 20816 +#define ID_RESET_72_73 20610 +#define ID_RESET_74_73 20629 +#define ID_RESET_75_73 20673 +#define ID_SC73_FLOOR 20611 +#define ID_SC73_EXIT 20613 +#define ID_SC73_BIG_DOOR 20617 +#define ID_SC73_SENSOR 20618 +#define ID_SC73_SENSOR_ANIM 20657 +#define ID_SC73_DOOR 20619 +#define ID_SC73_LOCKED_DOOR 20676 +#define ID_SC73_CHAMBER3 20817 +#define ID_SC73_CHAM3_ANIM 20818 +#define ID_SC73_CHAMBER4 20615 +#define ID_SC73_CHAM4_ANIM 20658 +#define ID_SC73_CHAM4_LIGHT 20819 +#define ID_SC73_CHAM4_FLASH 20820 +#define ID_SC73_CHAMBER5 20616 +#define ID_SC73_CHAM5_ANIM 20755 +#define ID_SC73_CHAM5_LIGHT 20821 +#define ID_SC73_CHAM5_FLASH 20822 +#define ID_SC73_JOEY_LUNGE 20846 +#define ID_SC73_JOEY_FIGHT1 20847 +#define ID_SC73_GALL_FIGHT1 20848 +#define ID_SC73_JOEY_FIGHT2 20849 +#define ID_SC73_GALL_FIGHT2 20850 +#define ID_SC73_GET_BOARD 20859 +#define ID_SC73_SEARCH 20860 +#define ID_SC73_BITS 20851 +#define ID_SC73_BITS_ANIM 20852 +#define ID_SC73_BITS2 20853 +#define ID_SC73_BITS2_ANIM 20854 +#define ID_SC73_SPRAY 20855 +#define ID_SC73_SPRAY_ANIM 20856 +#define ID_SC74_FAST_LIST 20620 +#define ID_SC74_CHIP_LIST 20621 +#define ID_SC74_LOGIC_LIST 20622 +#define ID_SC74_MOUSE_LIST 20623 +#define ID_SC74_PALETTE 20624 +#define ID_GRID74 20627 +#define ID_RESET_73_74 20625 +#define ID_SC74_FLOOR 20626 +#define ID_SC74_DOOR 20628 +#define ID_SC74_INTERFACE 20633 +#define ID_SC74_INT_SLOT 20659 +#define ID_SC74_TERMINAL 20634 +#define ID_SC74_POD 20823 +#define ID_SC74_POD_DOWN 20824 +#define ID_SC74_POD_UP 20825 +#define ID_SC74_FOST_SIT 20826 +#define ID_SC74_GET_UP 20827 +#define ID_SC74_USECARD 20702 +#define ID_SC74_USECARD2 20704 +#define ID_SC74_RPOCKET 20862 +#define ID_SC74_MONITOR1 20630 +#define ID_SC74_MON1_ANIM 20801 +#define ID_SC74_MONITOR2 20802 +#define ID_SC74_MON2_ANIM 20803 +#define ID_SC74_MONITOR3 20804 +#define ID_SC74_MON3_ANIM 20805 +#define ID_SC74_MONITOR4 20806 +#define ID_SC74_MON4_ANIM 20807 +#define ID_SC74_LEFT_TV 20631 +#define ID_SC74_LTV_ANIM 20808 +#define ID_SC74_RIGHT_TV 20632 +#define ID_SC74_RTV_ANIM 20809 +#define ID_SC74_LIGHTS 20810 +#define ID_SC74_LIGHTS_ANIM 20811 +#define ID_SC75_FAST_LIST 20664 +#define ID_SC75_CHIP_LIST 20665 +#define ID_SC75_LOGIC_LIST 20666 +#define ID_SC75_MOUSE_LIST 20667 +#define ID_SC75_PALETTE 20668 +#define ID_GRID75 20671 +#define ID_SC75_JOEY_LIST 20912 +#define ID_RESET_73_75 20669 +#define ID_RESET_76_75 20698 +#define ID_RS_TONGS_EMPTY 20868 +#define ID_RS_TONGS_LIVE 20869 +#define ID_RS_TONGS_FROZEN 20870 +#define ID_RS_TONGS_DEAD 20871 +#define ID_SC75_FLOOR 20670 +#define ID_SC75_BIG_DOOR 20672 +#define ID_SC75_DOOR 20696 +#define ID_SC75_TONGS 20660 +#define ID_SC75_GET_TONGS 20857 +#define ID_SC75_NITRO_TANK 20699 +#define ID_SC75_NITRO_ANIM 20828 +#define ID_SC75_LIVE_TANK 20700 +#define ID_SC75_TANK_ANIM 20872 +#define ID_SC75_CONSOLE 20703 +#define ID_SC75_MON_ANIM 20829 +#define ID_SC75_CRASH_ANIM 20701 +#define ID_SC75_LIGHT1 20830 +#define ID_SC75_LIGHT1_ANIM 20831 +#define ID_SC75_LIGHT2 20832 +#define ID_SC75_LIGHT2_ANIM 20833 +#define ID_SC75_USECARD 20858 +#define ID_SC75_RPOCKET 20861 +#define ID_SC75_HAND_TANK 20875 +#define ID_SC75_GET_TISS 20863 +#define ID_SC75_FREEZE_IT 20864 +#define ID_SC75_FREEZE_IT2 20865 +#define ID_SC75_FREEZE_DED 20866 +#define ID_SC75_FREEZE_DED2 20867 +#define ID_SC75_FREEZE_TALK 126 +#define ID_SC75_DEAD_TALK 128 +#define ID_SC76_FAST_LIST 20688 +#define ID_SC76_CHIP_LIST 20689 +#define ID_SC76_LOGIC_LIST 20690 +#define ID_SC76_MOUSE_LIST 20691 +#define ID_SC76_PALETTE 20692 +#define ID_GRID76 20695 +#define ID_SC76_JOEY_LIST 20913 +#define ID_RESET_75_76 20693 +#define ID_RESET_77_76 20727 +#define ID_SC76_FLOOR 20694 +#define ID_SC76_DOOR75 20697 +#define ID_SC76_DOOR77 20725 +#define ID_SC76_ANDROID_1 20705 +#define ID_SC76_HATCH_1 20909 +#define ID_SC76_ANDROID_2 20706 +#define ID_SC76_HATCH_2 20910 +#define ID_SC76_ANDROID_3 20707 +#define ID_SC76_HATCH_3 20908 +#define ID_SC76_PUNCH 20916 +#define ID_SC76_FOSTFALL 20917 +#define ID_SC76_CONSOLE_1 20711 +#define ID_SC76_CONSOLE_2 20712 +#define ID_SC76_CONSOLE_3 20713 +#define ID_SC76_CABINET_1 20714 +#define ID_SC76_CAB1_OPEN 20890 +#define ID_SC76_CAB1_CLOSE 20891 +#define ID_SC76_CABINET_2 20715 +#define ID_SC76_CAB2_OPEN 20892 +#define ID_SC76_CAB2_CLOSE 20893 +#define ID_SC76_CABINET_3 20716 +#define ID_SC76_CAB3_OPEN 20894 +#define ID_SC76_CAB3_CLOSE 20895 +#define ID_SC76_BOARD_1 20896 +#define ID_SC76_BOARD_2 20897 +#define ID_SC76_BOARD_3 20898 +#define ID_SC76_OPEN_CAB 20899 +#define ID_SC76_SHUT_CAB 20900 +#define ID_SC76_LOW_GET 20901 +#define ID_SC76_LIGHT1 20834 +#define ID_SC76_LIGHT1_ANIM 20835 +#define ID_SC76_LIGHT2 20836 +#define ID_SC76_LIGHT2_ANIM 20837 +#define ID_SC76_LIGHT3 20838 +#define ID_SC76_LIGHT3_ANIM 20839 +#define ID_SC76_LIGHT4 20840 +#define ID_SC76_LIGHT4_ANIM 20841 +#define ID_SC76_LIGHT5 20842 +#define ID_SC76_LIGHT5_ANIM 20843 +#define ID_SC76_LIGHT6 20844 +#define ID_SC76_LIGHT6_ANIM 20845 +#define ID_SC76_LIGHT7 20902 +#define ID_SC76_LIGHT7_ANIM 20903 +#define ID_SC76_LIGHT8 20904 +#define ID_SC76_LIGHT8_ANIM 20905 +#define ID_SC76_LIGHT9 20906 +#define ID_SC76_LIGHT9_ANIM 20907 +#define ID_SC76_AND2_BABBLE 142 +#define ID_SC77_FAST_LIST 20717 +#define ID_SC77_CHIP_LIST 20718 +#define ID_SC77_LOGIC_LIST 20719 +#define ID_SC77_MOUSE_LIST 20720 +#define ID_SC77_PALETTE 20721 +#define ID_GRID77 20724 +#define ID_SC77_JOEY_LIST 20914 +#define ID_RESET_76_77 20722 +#define ID_RESET_78_77 20742 +#define ID_SC77_FLOOR 20723 +#define ID_SC77_DOOR76 20726 +#define ID_SC77_BIG_DOOR 20728 +#define ID_SC77_TANK_1 20729 +#define ID_SC77_TANK_2 20730 +#define ID_SC77_HAND_1 20731 +#define ID_SC77_HAND_2 20732 +#define ID_SC77_DOOR_OPEN 20760 +#define ID_SC77_FPUSHL_1 20918 +#define ID_SC77_FPUSHL_2 20919 +#define ID_SC77_FPUSHR_1 20920 +#define ID_SC77_FPUSHR_2 20921 +#define ID_SC77_KPUSHR_1 20922 +#define ID_SC77_KPUSHR_2 20923 +#define ID_SC77_STRETCH 20924 +#define ID_SC78_FAST_LIST 20733 +#define ID_SC78_CHIP_LIST 20734 +#define ID_SC78_LOGIC_LIST 20735 +#define ID_SC78_MOUSE_LIST 20736 +#define ID_SC78_PALETTE 20737 +#define ID_SC781_PALETTE 20964 +#define ID_GRID78 20740 +#define ID_RESET_77_78 20738 +#define ID_RESET_79_78 20753 +#define ID_SC78_LEDGE 20739 +#define ID_SC78_PIPE 20915 +#define ID_SC78_BIG_DOOR 20741 +#define ID_SC78_EXIT 20743 +#define ID_SC78_SUPPORT 20874 +#define ID_SC78_JUMP_DOWN 20881 +#define ID_SC78_CLIMB_UP 20883 +#define ID_SC79_FAST_LIST 20744 +#define ID_SC79_CHIP_LIST 20745 +#define ID_SC79_LOGIC_LIST 20746 +#define ID_SC79_MOUSE_LIST 20747 +#define ID_SC79_PALETTE 20748 +#define ID_SC791_PALETTE 20963 +#define ID_GRID79 20751 +#define ID_RESET_78_79 20749 +#define ID_RESET_80_79 20889 +#define ID_SC79_PIPE 20750 +#define ID_SC79_EXIT 20752 +#define ID_SC79_SUPPORT 20873 +#define ID_SC79_LADDER 20940 +#define ID_SC79_CROUCH_DOWN 20941 +#define ID_SC79_CROUCH_UP 20942 +#define ID_SC79_CLIMB_DOWN 20943 +#define ID_SC79_CLIMB_UP 20944 +#define ID_SC79_TIE_ROPE 20951 +#define ID_SC79_TOSS_ROPE 20952 +#define ID_SC79_KNOT 20955 +#define ID_SC79_ROPE 20887 +#define ID_SC79_ROPE_ANIM 20953 +#define ID_SC80_FAST_LIST 20876 +#define ID_SC80_CHIP_LIST 20877 +#define ID_SC80_LOGIC_LIST 20878 +#define ID_SC80_MOUSE_LIST 20879 +#define ID_SC80_PALETTE 20880 +#define ID_SC801_PALETTE 20959 +#define ID_SC802_PALETTE 20960 +#define ID_SC803_PALETTE 20961 +#define ID_SC804_PALETTE 20962 +#define ID_RESET_79_80 20882 +#define ID_SC80_SPOUT 20884 +#define ID_SC80_LADDER 20950 +#define ID_SC80_ROPE 20888 +#define ID_SC80_ORIFICE 20885 +#define ID_SC80_EXIT 20886 +#define ID_SC80_EXIT_OPEN 20954 +#define ID_SC80_GOO 20925 +#define ID_SC80_GOO_ANIM 20926 +#define ID_SC80_BUBBLE1 20927 +#define ID_SC80_BUB1_ANIM 20928 +#define ID_SC80_BUBBLE2 20929 +#define ID_SC80_BUBBLE3 20930 +#define ID_SC80_BUBBLE4 20931 +#define ID_SC80_BUBBLE5 20932 +#define ID_SC80_BUBBLE6 20933 +#define ID_SC80_BUBBLE7 20934 +#define ID_SC80_BUBBLE8 20935 +#define ID_SC80_BUBBLE9 20936 +#define ID_SC80_BUBBLE10 20937 +#define ID_SC80_BUBBLE11 20938 +#define ID_SC80_BUBBLE12 20939 +#define ID_SC80_CLIMB_DOWN 20945 +#define ID_SC80_CLIMB_UP 20946 +#define ID_SC80_PIPE_SHRUG 20965 +#define ID_SC80_CLAMBER 20947 +#define ID_SC80_GET_ROPE 20948 +#define ID_SC80_SWING 20949 +#define ID_SC80_DROP 20956 +#define ID_SC80_SAMPLE 20957 +#define ID_SC80_SAMPLE_FALL 20958 +#define IT_MEDI 32 +#define IT_MEDI_TALK 180 +#define IT_WITNESS 159 +#define IT_GALLAGHER 90 +#define IT_GALL_TALK 91 +#define IT_SC66_LAYER_0 20 +#define IT_SC66_DOOR 105 +#define IT_SC66_HI_BEAM_AN1 98 +#define IT_SC66_HI_BEAM_AN2 99 +#define IT_SC66_LO_BEAM_ANM 22 +#define IT_SC66_ROCK1 100 +#define IT_SC66_ROCK2 101 +#define IT_SC66_ROCK3 102 +#define IT_SC66_STONES 103 +#define IT_SC66_FOS_CRUSHED 104 +#define IT_SC66_FOS_WALK_IN 21 +#define IT_SC67_LAYER_0 23 +#define IT_SC67_LAYER_1 24 +#define IT_SC67_GRID_1 25 +#define IT_SC67_PULSE1 26 +#define IT_SC67_PULSE2 27 +#define IT_SC67_PULSE3 28 +#define IT_SC67_PULSE4 29 +#define IT_SC67_DOOR 30 +#define IT_SC67_ROCK 31 +#define IT_SC67_CRAWL 46 +#define IT_SC67_DUSTOFF 47 +#define IT_SC67_GETBRICK 48 +#define IT_SC67_BRICK 55 +#define IT_SC67_PLASTER 56 +#define IT_SC67_PICK_BRICK 129 +#define IT_SC67_PICK_PLAST 130 +#define IT_SC67_STICK_IN 131 +#define IT_SC67_PULL_OUT 132 +#define IT_SC67_BRICK_HIT 133 +#define IT_SC67_PLAST_HIT 134 +#define IT_SC67_LPOCKET 141 +#define IT_SC67_RPOCKET 142 +#define IT_SC67_RUB_HEAD 143 +#define IT_SC67_PUSS 149 +#define IT_SC67_MEDIFIX 150 +#define IT_SC67_MENDING 151 +#define IT_SC67_CROWBAR 152 +#define IT_SC68_LAYER_0 43 +#define IT_SC68_LAYER_1 44 +#define IT_SC68_GRID_1 45 +#define IT_SC68_DOOR 57 +#define IT_SC68_PULSE1 58 +#define IT_SC68_PULSE2 59 +#define IT_SC68_PULSE3 60 +#define IT_SC68_PULSE4 61 +#define IT_SC68_PULSE5 62 +#define IT_SC68_PULSE6 63 +#define IT_SC68_SENSOR 137 +#define IT_SC68_DESCEND 153 +#define IT_SC68_ASCEND 154 +#define IT_SC69_LAYER_0 71 +#define IT_SC69_LAYER_1 72 +#define IT_SC69_LAYER_2 74 +#define IT_SC69_GRID_1 75 +#define IT_SC69_GRID_2 76 +#define IT_SC69_PULSE1 109 +#define IT_SC69_PULSE2 110 +#define IT_SC69_PULSE3 111 +#define IT_SC69_PULSE4 112 +#define IT_SC69_PULSE5 113 +#define IT_SC69_PULSE6 114 +#define IT_SC70_LAYER_0 90 +#define IT_SC70_LAYER_1 91 +#define IT_SC70_LAYER_2 92 +#define IT_SC70_GRID_1 93 +#define IT_SC70_GRID_2 94 +#define IT_SC70_IRIS 95 +#define IT_SC70_BAR 96 +#define IT_SC70_CONSOLE 115 +#define IT_SC70_GRILL 116 +#define IT_SC70_PIT 117 +#define IT_SC70_STEP_UP 14 +#define IT_SC70_STEP_DOWN 15 +#define IT_SC70_PULL_BAR 18 +#define IT_SC70_ENTER_ANIM 97 +#define IT_SC71_LAYER_0 85 +#define IT_SC71_LAYER_1 86 +#define IT_SC71_LAYER_2 87 +#define IT_SC71_GRID_1 88 +#define IT_SC71_GRID_2 89 +#define IT_SC710_LAYER_0 70 +#define IT_SC710_LAYER_1 16 +#define IT_SC710_LAYER_2 157 +#define IT_SC710_GRID_1 17 +#define IT_SC710_GRID_2 158 +#define IT_SC71_LIGHT1 162 +#define IT_SC71_LIGHT2 163 +#define IT_SC71_SCREEN 164 +#define IT_SC71_CHARGE_LIGHT 165 +#define IT_SC71_MEDI_CHARGE 166 +#define IT_SC71_USE_BOARD 148 +#define IT_SC71_PANEL 167 +#define IT_SC71_PANEL2 168 +#define IT_SC72_LAYER_0 64 +#define IT_SC72_LAYER_1 65 +#define IT_SC72_LAYER_2 66 +#define IT_SC72_GRID_1 68 +#define IT_SC72_GRID_2 69 +#define IT_SC720_LAYER_0 67 +#define IT_SC720_LAYER_1 160 +#define IT_SC720_LAYER_2 155 +#define IT_SC720_GRID_1 161 +#define IT_SC720_GRID_2 156 +#define IT_WALTER_CONVERSATION 129 +#define IT_WALTER_TALK_UP 130 +#define IT_WALTER_TALK_DOWN 131 +#define IT_WALTER_TALK_LEFT 132 +#define IT_SC72_CHAM1_LIGHT 171 +#define IT_SC72_CHAM2_LIGHT 172 +#define IT_SC72_TANK 173 +#define IT_SC72_ROT_LIGHT 177 +#define IT_SC72_COMPUTER 169 +#define IT_SC72_COMPUTER2 170 +#define IT_SC72_CHAMBER1 174 +#define IT_SC72_CHAMBER2 175 +#define IT_SC72_CHAMBER3 176 +#define IT_SC72_WALTER_KILL 178 +#define IT_SC72_FOSTER_DIE 179 +#define IT_SC72_WALTER_DIE 30 +#define IT_SC72_GRILL 28 +#define IT_SC72_JOEY_TAP 29 +#define IT_SC72_SPILL 31 +#define IT_SC73_LAYER_0 97 +#define IT_SC73_LAYER_1 98 +#define IT_SC73_LAYER_2 99 +#define IT_SC73_GRID_1 101 +#define IT_SC73_GRID_2 102 +#define IT_SC73_BIG_DOOR 138 +#define IT_SC73_SENSOR 139 +#define IT_SC73_CHAMBER3 142 +#define IT_SC73_CHAMBER4 140 +#define IT_SC73_CHAMBER5 141 +#define IT_SC73_CHAM4_LIGHT 95 +#define IT_SC73_CHAM5_LIGHT 96 +#define IT_SC73_JOEY_LUNGE 85 +#define IT_SC73_JOEY_FIGHT1 86 +#define IT_SC73_GALL_FIGHT1 87 +#define IT_SC73_JOEY_FIGHT2 88 +#define IT_SC73_GALL_FIGHT2 89 +#define IT_SC73_GET_BOARD 43 +#define IT_SC73_SEARCH 44 +#define IT_SC73_DEAD_GALL 72 +#define IT_SC73_BITS 74 +#define IT_SC73_BITS2 75 +#define IT_SC73_SPRAY 76 +#define IT_SC74_LAYER_0 104 +#define IT_SC74_LAYER_1 105 +#define IT_SC74_LAYER_2 106 +#define IT_SC74_GRID_1 107 +#define IT_SC74_GRID_2 108 +#define IT_SC74_POD_DOWN 109 +#define IT_SC74_POD_UP 110 +#define IT_SC74_FOST_SIT 92 +#define IT_SC74_GET_UP 93 +#define IT_SC74_USECARD 70 +#define IT_SC74_USECARD2 71 +#define IT_SC74_RPOCKET 62 +#define IT_SC74_MONITOR1 55 +#define IT_SC74_MONITOR2 56 +#define IT_SC74_MONITOR3 57 +#define IT_SC74_MONITOR4 58 +#define IT_SC74_LEFT_TV 59 +#define IT_SC74_RIGHT_TV 60 +#define IT_SC74_LIGHTS 61 +#define IT_SC75_LAYER_0 144 +#define IT_SC75_LAYER_1 145 +#define IT_SC75_LAYER_2 146 +#define IT_SC75_GRID_1 147 +#define IT_SC75_GRID_2 148 +#define IT_SC75_MONITOR 149 +#define IT_SC75_CRASH 164 +#define IT_SC75_TANK 165 +#define IT_SC75_STEAM 150 +#define IT_SC75_LIGHT1 151 +#define IT_SC75_LIGHT2 152 +#define IT_SC75_TONGS 153 +#define IT_SC75_GET_TONGS 154 +#define IT_SC75_USECARD 155 +#define IT_SC75_RPOCKET 156 +#define IT_SC75_HAND_TANK 166 +#define IT_SC75_GET_TISS 157 +#define IT_SC75_FREEZE_IT 158 +#define IT_SC75_FREEZE_TALK 159 +#define IT_SC75_FREEZE_IT2 160 +#define IT_SC75_FREEZE_DED 161 +#define IT_SC75_DEAD_TALK 162 +#define IT_SC75_FREEZE_DED2 163 +#define IT_SC76_LAYER_0 14 +#define IT_SC76_LAYER_1 15 +#define IT_SC76_LAYER_2 16 +#define IT_SC76_GRID_1 17 +#define IT_SC76_GRID_2 18 +#define IT_SC76_LIGHT1 29 +#define IT_SC76_LIGHT2 30 +#define IT_SC76_LIGHT3 31 +#define IT_SC76_LIGHT4 32 +#define IT_SC76_LIGHT5 43 +#define IT_SC76_LIGHT6 44 +#define IT_SC76_LIGHT7 45 +#define IT_SC76_LIGHT8 46 +#define IT_SC76_LIGHT9 47 +#define IT_SC76_CABINET_1 55 +#define IT_SC76_CABINET_2 56 +#define IT_SC76_CABINET_3 57 +#define IT_SC76_BOARD_1 58 +#define IT_SC76_BOARD_2 59 +#define IT_SC76_BOARD_3 60 +#define IT_SC76_OPEN_CAB 62 +#define IT_SC76_LOW_GET 63 +#define IT_KEN 61 +#define IT_SC76_HATCH_1 66 +#define IT_SC76_ANDROID_2 67 +#define IT_SC76_HATCH_2 68 +#define IT_SC76_ANDROID_3 64 +#define IT_SC76_HATCH_3 65 +#define IT_SC76_PUNCH 69 +#define IT_SC76_FOSTFALL 70 +#define IT_SC76_KEN_TALK 71 +#define IT_SC76_AND2_BABBLE 72 +#define IT_SC77_LAYER_0 20 +#define IT_SC77_LAYER_1 21 +#define IT_SC77_GRID_1 22 +#define IT_SC77_BIG_DOOR 28 +#define IT_SC77_FPUSHL 74 +#define IT_SC77_FPUSHR 75 +#define IT_SC77_KPUSHR 76 +#define IT_SC77_STRETCH 87 +#define IT_SC78_LAYER_0 23 +#define IT_SC78_LAYER_1 24 +#define IT_SC78_GRID_1 25 +#define IT_SC78_JUMP_DOWN 85 +#define IT_SC78_CLIMB_UP 86 +#define IT_SC79_LAYER_0 26 +#define IT_SC79_SUPPORT 48 +#define IT_SC79_CROUCH 91 +#define IT_SC79_CLIMB 92 +#define IT_SC79_TIE_ROPE 96 +#define IT_SC79_TOSS_ROPE 97 +#define IT_SC79_ROPE 98 +#define IT_SC79_KNOT 101 +#define IT_SC80_LAYER_0 27 +#define IT_SC80_EXIT 100 +#define IT_SC80_ROPE 99 +#define IT_SC80_GOO 88 +#define IT_SC80_BUBBLE 89 +#define IT_SC80_CLIMB 90 +#define IT_SC80_CLAMBER 93 +#define IT_SC80_GET_ROPE 94 +#define IT_SC80_SWING 95 +#define IT_SC80_DROP 103 +#define IT_SC80_SAMPLE 104 +#define IT_SC80_PIPE_TALK 105 +#define IT_SC80_PIPE_SHRUG 106 +#define IDO_DOG_FOOD 49 +#define ID_SC30_FAST_LIST 16385 +#define ID_SC30_CHIP_LIST 16386 +#define ID_SC30_LOGIC_LIST 16387 +#define ID_SC30_MOUSE_LIST 16388 +#define ID_SC30_PALETTE 16389 +#define ID_SC30_WALK_GRID 16390 +#define ID_SC30_JOEY_LIST 16547 +#define ID_RESET_31_30 16413 +#define ID_RESET_33_30 16414 +#define ID_RESET_36_30 16539 +#define ID_RESET_42_30 16811 +#define ID_RESET_COURT_OPEN 16813 +#define ID_SC30_FLOOR 16392 +#define ID_SC30_EXIT_31 16393 +#define ID_SC30_EXIT_33 16394 +#define ID_SC30_EXIT_36 16492 +#define ID_SC30_COURT_DOOR 16487 +#define ID_SC30_COURT_CLOSE 16814 +#define ID_SC30_NOTICE 16489 +#define ID_SC30_STATUE_1 16490 +#define ID_SC30_STATUE_2 16491 +#define ID_SC30_HENRI 16516 +#define ID_SC30_HENRI_TALK 16517 +#define ID_SC30_HENRI_TIE 16518 +#define ID_SC30_HEN_STEP_F 16519 +#define ID_SC30_HEN_STEP_B 16520 +#define ID_SC30_HEN_BLINK 16521 +#define ID_SC30_PUSH_DOOR 16522 +#define ID_SC31_FAST_LIST 16774 +#define ID_SC31_CHIP_LIST 16396 +#define ID_SC31_LOGIC_LIST 16397 +#define ID_SC31_MOUSE_LIST 16398 +#define ID_SC31_PALETTE 16399 +#define ID_SC31_WALK_GRID 16400 +#define ID_SC31_JOEY_LIST 16548 +#define ID_RESET_START_31 16391 +#define ID_RESET_30_31 16401 +#define ID_RESET_32_31 16425 +#define ID_RESET_39_31 16463 +#define ID_RS_GUARD_CHAT 16699 +#define ID_RS_GUARD_AVAIL 16700 +#define ID_SC31_FLOOR 16402 +#define ID_SC31_EXIT_30 16403 +#define ID_SC31_EXIT_32 16415 +#define ID_SC31_EXIT_39 16453 +#define ID_SC31_LIFT_SLOT 16493 +#define ID_SC31_LIFT 16513 +#define ID_SC31_LIFT_OPEN 16514 +#define ID_SC31_LIFT_CLOSE 16515 +#define ID_SC31_USE_CARD 16523 +#define ID_SC31_PULL_ROPE 16551 +#define ID_SC31_LOWER_ROPE 16552 +#define ID_SC31_DROP_ROPE 16553 +#define ID_SC31_END_OF_ROPE 16554 +#define ID_SC31_ROPE 16555 +#define ID_SC31_ROPE_PULLED 16556 +#define ID_SC31_ROPE_LOWER 16557 +#define ID_SC31_ROPE_DROP 16558 +#define ID_SC31_BRICKS 16559 +#define ID_SC31_BRICKS_UP 16560 +#define ID_SC31_BRICKS_DOWN 16561 +#define ID_SC31_BRICKS_FALL 16562 +#define ID_SC31_PLANK 16563 +#define ID_SC31_PLANK_DROP 16564 +#define ID_SC31_PLANK_RAISE 16565 +#define ID_SC31_PLANK_FLICK 16566 +#define ID_SC31_GUARD 16601 +#define ID_SC31_GUARD_TALK 16607 +#define ID_SC31_GUARD_BLINK 16693 +#define ID_SC31_GUARD_MOVE 16694 +#define ID_SC31_GUARD_REACH 16695 +#define ID_SC31_GUARD_TALK2 16696 +#define ID_SC31_GET_BRICKS 16683 +#define ID_SC31_GET_PLANK 16687 +#define ID_SC31_CLIMB_PLANK 16684 +#define ID_SC31_DOG_FLY 16685 +#define ID_SC31_DOG_RISE 16697 +#define ID_SC31_DOG_SWIM 16698 +#define ID_SC31_PUT_BISC 16688 +#define ID_SC31_BISCUITS 16692 +#define ID_SC31_BISC_PLACED 16689 +#define ID_SC31_BISC_DROP 16690 +#define ID_SC31_BISC_RAISE 16691 +#define ID_SC32_FAST_LIST 16416 +#define ID_SC32_CHIP_LIST 16417 +#define ID_SC32_LOGIC_LIST 16418 +#define ID_SC32_MOUSE_LIST 16419 +#define ID_SC32_PALETTE 16420 +#define ID_SC32_WALK_GRID 16421 +#define ID_SC32_JOEY_LIST 16549 +#define ID_RESET_31_32 16422 +#define ID_RESET_33_32 16429 +#define ID_RESET_38_32 16452 +#define ID_SC32_FLOOR 16423 +#define ID_SC32_EXIT_31 16424 +#define ID_SC32_EXIT_33 16426 +#define ID_SC32_LIFT 16442 +#define ID_SC32_LIFT_OPEN 16540 +#define ID_SC32_LIFT_CLOSE 16541 +#define ID_SC32_TERMINAL 16494 +#define ID_SC32_BUZZER 16495 +#define ID_SC32_PLANT_1 16496 +#define ID_SC32_PLANT_2 16497 +#define ID_SC32_PLANT_3 16498 +#define ID_SC32_USE_CARD 16524 +#define ID_SC32_USE_COM 16525 +#define ID_SC32_VINCENT 16599 +#define ID_SC32_VINC_ANIM 16602 +#define ID_SC32_GARDENER 16600 +#define ID_SC32_GARDENING1 16622 +#define ID_SC32_GARDENING2 16623 +#define ID_SC32_GARDENER_UP 16624 +#define ID_SC32_GARDENER_DN 16625 +#define ID_SC32_GARD_TURN_D 16626 +#define ID_SC32_GARD_TURN_U 16627 +#define ID_SC32_GARDEN_TALK 16628 +#define ID_SC33_FAST_LIST 16404 +#define ID_SC33_CHIP_LIST 16405 +#define ID_SC33_LOGIC_LIST 16406 +#define ID_SC33_MOUSE_LIST 16407 +#define ID_SC33_PALETTE 16408 +#define ID_SC33_WALK_GRID 16409 +#define ID_SC33_JOEY_LIST 16550 +#define ID_RESET_30_33 16410 +#define ID_RESET_32_33 16427 +#define ID_RESET_34_33 16440 +#define ID_SC33_FLOOR 16411 +#define ID_SC33_EXIT_30 16412 +#define ID_SC33_EXIT_32 16428 +#define ID_SC33_SHED_DOOR 16430 +#define ID_SC33_LOCK 16499 +#define ID_SC33_USE_CARD 16526 +#define ID_SC33_PUSH_DOOR1 16527 +#define ID_SC33_PUSH_DOOR2 16528 +#define ID_SC33_DOOR_OPEN 16529 +#define ID_SC34_FAST_LIST 16431 +#define ID_SC34_CHIP_LIST 16432 +#define ID_SC34_LOGIC_LIST 16433 +#define ID_SC34_MOUSE_LIST 16434 +#define ID_SC34_PALETTE 16435 +#define ID_SC34_WALK_GRID 16436 +#define ID_RESET_33_34 16437 +#define ID_SC34_FLOOR 16438 +#define ID_SC34_DOOR 16439 +#define ID_SC34_SECATEURS 16501 +#define ID_SC34_TKT_MACHINE 16502 +#define ID_SC34_MAP 16503 +#define ID_SC34_BRICKS 16504 +#define ID_SC34_GET_SECS 16544 +#define ID_SC34_STAIRS1 16545 +#define ID_SC34_STAIRS2 16546 +#define ID_SC36_FAST_LIST 16530 +#define ID_SC36_CHIP_LIST 16531 +#define ID_SC36_LOGIC_LIST 16532 +#define ID_SC36_MOUSE_LIST 16533 +#define ID_SC36_PALETTE 16534 +#define ID_SC36_WALK_GRID 16535 +#define ID_RESET_30_36 16536 +#define ID_RESET_37_36 16593 +#define ID_RESET_COLSTON 16812 +#define ID_SC36_FLOOR 16537 +#define ID_SC36_LOW_FLOOR 16596 +#define ID_SC36_EXIT_30 16538 +#define ID_SC36_DOOR 16583 +#define ID_SC36_DOOROPEN 16792 +#define ID_SC36_DOORSHUT 16793 +#define ID_SC36_FOS_DOWN1 16748 +#define ID_SC36_FOS_DOWN2 16749 +#define ID_SC36_FOS_UP1 16750 +#define ID_SC36_FOS_UP2 16751 +#define ID_SC36_PRESS_PLATE 16752 +#define ID_SC36_USE_JUKEBOX 16753 +#define ID_SC36_REACH_GLASS 16759 +#define ID_SC36_GET_GLASS 16760 +#define ID_SC36_JUKEBOX 16597 +#define ID_SC36_JUKE_TALK 16756 +#define ID_SC36_JUKE_STUCK 16770 +#define ID_SC36_JUKE_BREAK 16771 +#define ID_SC36_JUKE_LIGHT 16757 +#define ID_SC36_JUKEBOX_ON 16754 +#define ID_SC36_JUKEBOX_OFF 16755 +#define ID_SC36_JUKE_KICKED 16758 +#define ID_SC36_CARDS 16742 +#define ID_SC36_GLASS 16747 +#define ID_SC36_SENSOR 16594 +#define ID_SC36_BAND 16598 +#define ID_SC36_BAND_ANIM 16686 +#define ID_SC36_BARMAN 16701 +#define ID_BAR_BLINK 16702 +#define ID_BAR_GET_DRINK 16703 +#define ID_BAR_DRINK 16704 +#define ID_BAR_GET_CLOTH 16705 +#define ID_BAR_PUT_CLOTH 16706 +#define ID_BAR_WIPE 16707 +#define ID_BAR_WIPE2 16708 +#define ID_BARMAN_TALK 16709 +#define ID_SC36_BABS 16772 +#define ID_SC36_BABS_TALK 16773 +#define ID_SC36_COLSTON 16731 +#define ID_SC36_COL_FEET 16732 +#define ID_SC36_COL_TALK1 16743 +#define ID_SC36_COL_TALK2 16744 +#define ID_SC36_COL_DRINK 16746 +#define ID_SC36_COL_DEAL 16733 +#define ID_SC36_COL_THINK 16734 +#define ID_SC36_COL_BLINK1 16735 +#define ID_SC36_COL_BLINK2 16736 +#define ID_SC36_COL_DOWN1 16761 +#define ID_SC36_COL_DOWN2 16762 +#define ID_SC36_COL_DOWN3 16763 +#define ID_SC36_COL_DOWN4 16764 +#define ID_SC36_COL_UP1 16765 +#define ID_SC36_COL_UP2 16766 +#define ID_SC36_COL_UP3 16767 +#define ID_SC36_COL_UP4 16768 +#define ID_SC36_COL_KICK 16769 +#define ID_SC36_GALLAGHER 16737 +#define ID_SC36_GAL_TALK 16745 +#define ID_SC36_GAL_LEGS 16738 +#define ID_SC36_GAL_DEAL 16739 +#define ID_SC36_GAL_LOOK1 16740 +#define ID_SC36_GAL_LOOK2 16741 +#define ID_SC37_FAST_LIST 16584 +#define ID_SC37_CHIP_LIST 16585 +#define ID_SC37_LOGIC_LIST 16586 +#define ID_SC37_MOUSE_LIST 16587 +#define ID_SC37_PALETTE 16588 +#define ID_SC37_WALK_GRID 16589 +#define ID_RESET_36_37 16590 +#define ID_SC37_FLOOR 16591 +#define ID_SC37_HOLDING_LID 16794 +#define ID_SC37_DOOR 16592 +#define ID_SC37_DOOROPEN 16790 +#define ID_SC37_DOORSHUT 16791 +#define ID_SC37_SENSOR 16595 +#define ID_SC37_BIG_BOX 16620 +#define ID_SC37_FLIMSY_BOX 16619 +#define ID_SC37_WINE_RACK 16799 +#define ID_SC37_LID 16621 +#define ID_SC37_LIDUP 16786 +#define ID_SC37_LIDDOWN 16787 +#define ID_SC37_LIDUSED 16788 +#define ID_SC37_GRILL 16617 +#define ID_SC37_GRILLOPEN 16789 +#define ID_SC37_CRBARBOX 16775 +#define ID_SC37_GETLID 16776 +#define ID_SC37_PUTLID 16777 +#define ID_SC37_USELID 16778 +#define ID_SC37_STEPUP 16779 +#define ID_SC37_FOOTDROP 16780 +#define ID_SC37_STEPDOWN 16781 +#define ID_SC37_USEBAR 16782 +#define ID_SC37_USESEC 16783 +#define ID_SC37_CLIMBOUT 16784 +#define ID_SC37_THUMBSUP 16785 +#define ID_SC38_FAST_LIST 16443 +#define ID_SC38_CHIP_LIST 16444 +#define ID_SC38_LOGIC_LIST 16445 +#define ID_SC38_MOUSE_LIST 16446 +#define ID_SC38_PALETTE 16447 +#define ID_SC38_WALK_GRID 16448 +#define ID_RESET_32_38 16449 +#define ID_RESET_SPUNKY_38 16616 +#define ID_RESET_DANI_SIT 16608 +#define ID_RESET_DANI_STAND 16609 +#define ID_RESET_DANI_32 16629 +#define ID_RESET_SPUNKY_32 16630 +#define ID_SC38_FLOOR 16450 +#define ID_SC38_LIFT 16451 +#define ID_SC38_LIFT_UP 16542 +#define ID_SC38_LIFT_DOWN 16543 +#define ID_SC38_STATUE 16505 +#define ID_SC38_MONITOR 16506 +#define ID_SC38_VIDEO 16507 +#define ID_SC38_SOFA 16508 +#define ID_SC38_DOG_TRAY 16615 +#define ID_SC38_BISCUITS 16618 +#define ID_SC38_HAND_SET 16610 +#define ID_SC38_RINGER 16611 +#define ID_SC38_RINGER_ANIM 16612 +#define ID_DANIELLE 16441 +#define ID_DANI_CONV 16603 +#define ID_SC38_DANI_ANIM_1 16395 +#define ID_SC38_DANI_ANIM_2 16488 +#define ID_SC38_DANI_ANIM_3 16500 +#define ID_SC38_DANI_GET_UP 16605 +#define ID_SC38_DANI_SATTLK 16604 +#define ID_SC38_GET_PHONE 16613 +#define ID_SC38_PHONE_TALK 16614 +#define ID_SPUNKY 16486 +#define ID_SNIFF_LEFT 16509 +#define ID_SNIFF_RIGHT 16510 +#define ID_PISS_LEFT 16511 +#define ID_PISS_RIGHT 16512 +#define ID_BARK 16637 +#define ID_SC38_USE_VIDEO 16631 +#define ID_SC38_VIDEO_ANIM 16632 +#define ID_SC38_SCREEN_1 16633 +#define ID_SC38_SCREEN_2 16634 +#define ID_SC38_SCREEN_3 16635 +#define ID_SC38_SCREEN_4 16636 +#define ID_SC38_REACH_FOOD 16638 +#define ID_SC38_GET_FOOD 16639 +#define ID_SC39_FAST_LIST 16454 +#define ID_SC39_CHIP_LIST 16455 +#define ID_SC39_LOGIC_LIST 16456 +#define ID_SC39_MOUSE_LIST 16457 +#define ID_SC39_PALETTE 16458 +#define ID_SC39_WALK_GRID 16459 +#define ID_RESET_31_39 16460 +#define ID_RESET_40_39 16475 +#define ID_RESET_41_39 16485 +#define ID_SC39_FLOOR 16461 +#define ID_SC39_EXIT_31 16462 +#define ID_SC39_EXIT_40 16464 +#define ID_SC39_EXIT_41 16465 +#define ID_SC40_FAST_LIST 16466 +#define ID_SC40_CHIP_LIST 16467 +#define ID_SC40_LOGIC_LIST 16468 +#define ID_SC40_MOUSE_LIST 16469 +#define ID_SC40_PALETTE 16470 +#define ID_SC40_WALK_GRID 16471 +#define ID_RESET_39_40 16472 +#define ID_SC40_FLOOR 16473 +#define ID_SC40_EXIT_39 16474 +#define ID_SC40_CABINET 16567 +#define ID_SC40_TROLLEY 16568 +#define ID_SC40_LOCKER_1 16569 +#define ID_SC40_LOCKER_2 16570 +#define ID_SC40_LOCKER_3 16571 +#define ID_SC40_LOCKER_4 16572 +#define ID_SC40_LOCKER_5 16573 +#define ID_SC40_LOCKER_OPEN 16574 +#define ID_SC40_LOCKER_SHUT 16575 +#define ID_SC40_BODY_1 16576 +#define ID_SC40_BODY_2 16577 +#define ID_SC40_BODY_3 16578 +#define ID_SC40_BODY_4 16579 +#define ID_SC40_BODY_5 16580 +#define ID_SC40_OPEN_DOOR 16581 +#define ID_SC40_CLOSE_DOOR 16582 +#define ID_SC41_FAST_LIST 16476 +#define ID_SC41_CHIP_LIST 16477 +#define ID_SC41_LOGIC_LIST 16478 +#define ID_SC41_MOUSE_LIST 16479 +#define ID_SC41_PALETTE 16480 +#define ID_SC41_WALK_GRID 16481 +#define ID_RESET_39_41 16482 +#define ID_SC41_FLOOR 16483 +#define ID_SC41_EXIT_39 16484 +#define ID_SC42_FAST_LIST 16802 +#define ID_SC42_CHIP_LIST 16803 +#define ID_SC42_LOGIC_LIST 16804 +#define ID_SC42_MOUSE_LIST 16805 +#define ID_SC42_PALETTE 16806 +#define ID_SC42_WALK_GRID 16807 +#define ID_RESET_30_42 16808 +#define ID_SC44_FAST_LIST 16640 +#define ID_SC44_CHIP_LIST 16641 +#define ID_SC44_LOGIC_LIST 16642 +#define ID_SC44_MOUSE_LIST 16643 +#define ID_SC44_PALETTE 16644 +#define ID_SC44_WALK_GRID 16645 +#define ID_RESET_37_44 16646 +#define ID_RESET_45_44 16647 +#define ID_SC44_FLOOR 16648 +#define ID_SC44_EXIT_45 16649 +#define ID_SC44_GRILL 16795 +#define ID_SC44_RUBBLE 16800 +#define ID_SC45_FAST_LIST 16650 +#define ID_SC45_CHIP_LIST 16651 +#define ID_SC45_LOGIC_LIST 16652 +#define ID_SC45_MOUSE_LIST 16653 +#define ID_SC45_PALETTE 16654 +#define ID_SC45_WALK_GRID 16655 +#define ID_RESET_44_45 16656 +#define ID_RESET_46_45 16657 +#define ID_RESET_47_45 16658 +#define ID_SC45_FLOOR 16659 +#define ID_SC45_EXIT_44 16660 +#define ID_SC45_EXIT_46 16661 +#define ID_SC45_EXIT_47 16662 +#define ID_SC46_FAST_LIST 16663 +#define ID_SC46_CHIP_LIST 16664 +#define ID_SC46_LOGIC_LIST 16665 +#define ID_SC46_MOUSE_LIST 16666 +#define ID_SC46_PALETTE 16667 +#define ID_SC46_WALK_GRID 16668 +#define ID_RESET_45_46 16669 +#define ID_SC46_FLOOR 16670 +#define ID_SC46_EXIT_45 16671 +#define ID_SC46_RUBBLE 16801 +#define ID_SC47_FAST_LIST 16672 +#define ID_SC47_CHIP_LIST 16673 +#define ID_SC47_LOGIC_LIST 16674 +#define ID_SC47_MOUSE_LIST 16675 +#define ID_SC47_PALETTE 16676 +#define ID_SC47_WALK_GRID 16677 +#define ID_RESET_45_47 16678 +#define ID_RESET_48_47 16679 +#define ID_SC47_FLOOR 16680 +#define ID_SC47_EXIT_45 16681 +#define ID_SC47_EXIT_48 16682 +#define ID_SC48_FAST_LIST 16710 +#define ID_SC48_CHIP_LIST 16711 +#define ID_SC48_LOGIC_LIST 16712 +#define ID_SC48_MOUSE_LIST 16713 +#define ID_SC48_PALETTE 16714 +#define ID_SC48_WALK_GRID 16715 +#define ID_RESET_47_48 16716 +#define ID_RESET_65_48 16717 +#define ID_SC48_FLOOR 16718 +#define ID_SC48_EXIT_47 16719 +#define ID_SC48_EXIT_65 16720 +#define ID_SC65_FAST_LIST 16721 +#define ID_SC65_CHIP_LIST 16722 +#define ID_SC65_LOGIC_LIST 16723 +#define ID_SC65_MOUSE_LIST 16724 +#define ID_SC65_PALETTE 16725 +#define ID_SC65_WALK_GRID 16726 +#define ID_RESET_48_65 16727 +#define ID_SC65_FLOOR 16728 +#define ID_SC65_EXIT_48 16729 +#define ID_SC65_EXIT_66 16730 +#define ID_SC65_POSTER1 16796 +#define ID_SC65_POSTER2 16797 +#define ID_SC65_SIGN 16798 +#define IT_SC30_LAYER_0 14 +#define IT_SC30_LAYER_1 15 +#define IT_SC30_LAYER_2 16 +#define IT_SC30_GRID_1 17 +#define IT_SC30_GRID_2 18 +#define IT_SC30_HENRI_TALK 87 +#define IT_SC30_HENRI_TIE 88 +#define IT_SC30_HENRI_STEP 89 +#define IT_SC30_HENRI_BLINK 90 +#define IT_SC30_COURT_DOOR 134 +#define IT_SC30_PUSH_DOOR 91 +#define IT_SC31_LAYER_0 20 +#define IT_SC31_LAYER_1 21 +#define IT_SC31_GRID_1 22 +#define IT_SC31_LIFT 86 +#define IT_SC31_USE_CARD 92 +#define IT_SC31_PULL_ROPE 31 +#define IT_SC31_HOLD_ROPE 108 +#define IT_SC31_LOWER_ROPE 32 +#define IT_SC31_DROP_ROPE 43 +#define IT_SC31_PLANK 44 +#define IT_SC31_BRICK_UP 45 +#define IT_SC31_BRICK_FALL 46 +#define IT_SC31_END_OF_ROPE 61 +#define IT_SC31_ROPE_PULLED 62 +#define IT_SC31_ROPE_LOWER 63 +#define IT_SC31_ROPE_DROP 64 +#define IT_SC31_GUARD_TALK 101 +#define IT_SC31_GUARD_BLINK 110 +#define IT_SC31_GUARD_MOVE 129 +#define IT_SC31_GUARD_REACH 130 +#define IT_SC31_GUARD_TALK2 131 +#define IT_SC31_GET_BRICKS 102 +#define IT_SC31_GET_PLANK 106 +#define IT_SC31_CLIMB_PLANK 103 +#define IT_SC31_DOG_FLY 104 +#define IT_SC31_DOG_RISE 132 +#define IT_SC31_DOG_SWIM 133 +#define IT_SC31_PUT_BISC 109 +#define IT_SC31_HAND 107 +#define IT_SC31_BISCUITS 105 +#define IT_SC32_LAYER_0 23 +#define IT_SC32_LAYER_1 24 +#define IT_SC32_LAYER_2 98 +#define IT_SC32_GRID_1 25 +#define IT_SC32_GRID_2 99 +#define IT_SC32_USE_CARD 93 +#define IT_SC32_USE_COM 94 +#define IT_SC32_LIFT 100 +#define IT_SC32_VINCENT 56 +#define IT_SC32_VINC_TALK 57 +#define IT_SC32_GARDENER 58 +#define IT_SC32_GARD_TURN 59 +#define IT_SC32_GARDEN_TALK 60 +#define IT_SC33_LAYER_0 26 +#define IT_SC33_LAYER_1 27 +#define IT_SC33_LAYER_2 28 +#define IT_SC33_GRID_1 29 +#define IT_SC33_GRID_2 30 +#define IT_SC33_USE_CARD 95 +#define IT_SC33_PUSH_DOOR 96 +#define IT_SC33_SHED_DOOR 97 +#define IT_SC34_LAYER_0 31 +#define IT_SC34_LAYER_1 32 +#define IT_SC34_GRID_1 43 +#define IT_SC34_STAIRS1 102 +#define IT_SC34_STAIRS2 103 +#define IT_SC34_SECATEURS 104 +#define IT_SC34_GET_SECS 105 +#define IT_SC36_LAYER_0 20 +#define IT_SC36_LAYER_1 21 +#define IT_SC36_LAYER_2 22 +#define IT_SC36_LAYER_3 56 +#define IT_SC36_GRID_1 23 +#define IT_SC36_GRID_2 24 +#define IT_SC36_GRID_3 57 +#define IT_SC36_BABS 106 +#define IT_SC36_BABS_TALK 107 +#define IT_SC36_FOS_DOWN1 92 +#define IT_SC36_FOS_DOWN2 93 +#define IT_SC36_FOS_UP1 94 +#define IT_SC36_FOS_UP2 95 +#define IT_SC36_PRESS_PLATE 70 +#define IT_SC36_USE_JUKEBOX 67 +#define IT_SC36_GET_GLASS 96 +#define IT_SC36_JUKE_LIGHT 68 +#define IT_SC36_JUKEBOX 86 +#define IT_SC36_GLASS 66 +#define IT_SC36_BAND 31 +#define IT_SC36_BARMAN 32 +#define IT_BARMAN_TALK 61 +#define IT_SC36_COLSTON 47 +#define IT_SC36_COL_FEET 48 +#define IT_SC36_COL_TALK1 62 +#define IT_SC36_COL_TALK2 63 +#define IT_SC36_COL_DRINK 69 +#define IT_SC36_COL_DOWN1 97 +#define IT_SC36_COL_DOWN2 98 +#define IT_SC36_COL_DOWN3 99 +#define IT_SC36_COL_DOWN4 100 +#define IT_SC36_COL_UP1 101 +#define IT_SC36_COL_UP2 102 +#define IT_SC36_COL_UP3 103 +#define IT_SC36_COL_UP4 104 +#define IT_SC36_COL_KICK 105 +#define IT_SC36_GALLAGHER 58 +#define IT_SC36_GAL_LEGS 59 +#define IT_SC36_GAL_TALK 64 +#define IT_SC36_CARDS 60 +#define IT_SC36_DOOR 144 +#define IT_SC37_LAYER_0 14 +#define IT_SC37_LAYER_1 15 +#define IT_SC37_LAYER_2 16 +#define IT_SC37_GRID_1 17 +#define IT_SC37_GRID_2 18 +#define IT_SC37_CRBARBOX 108 +#define IT_SC37_GETLID 109 +#define IT_SC37_USELID 110 +#define IT_SC37_STEPUP 129 +#define IT_SC37_FOOTDROP 130 +#define IT_SC37_STEPDOWN 131 +#define IT_SC37_USEBAR 132 +#define IT_SC37_USESEC 133 +#define IT_SC37_CLIMBOUT 134 +#define IT_SC37_THUMBSUP 136 +#define IT_SC37_BOXLID 137 +#define IT_SC37_LIDUP 138 +#define IT_SC37_LIDUSED 139 +#define IT_SC37_LOOSEBIT 140 +#define IT_SC37_GRILL 141 +#define IT_SC37_GRILLOPEN 142 +#define IT_SC37_DOOR 143 +#define IT_SC38_LAYER_0 44 +#define IT_SC38_LAYER_1 45 +#define IT_SC38_LAYER_2 46 +#define IT_SC38_GRID_1 47 +#define IT_SC38_GRID_2 48 +#define IT_DANIELLE 55 +#define IT_DANI_CONV 85 +#define IT_SPUNKY 71 +#define IT_SC38_SEXY_DANI 106 +#define IT_SC38_DANI_ANIMS 107 +#define IT_SC38_DANI_SATTLK 108 +#define IT_SC38_DANI_GET_UP 109 +#define IT_SNIFF_LEFT 72 +#define IT_SNIFF_RIGHT 74 +#define IT_PISS_LEFT 75 +#define IT_PISS_RIGHT 76 +#define IT_BARK 65 +#define IT_SC38_FOSTER_LIFT 101 +#define IT_SC38_HAND_SET 110 +#define IT_SC38_RINGER 129 +#define IT_SC38_GET_PHONE 130 +#define IT_SC38_PHONE_TALK 131 +#define IT_SC38_USE_VIDEO 132 +#define IT_SC38_VIDEO_ANIM 133 +#define IT_SC38_SCREEN_1 134 +#define IT_SC38_SCREEN_2 136 +#define IT_SC38_SCREEN_3 137 +#define IT_SC38_SCREEN_4 138 +#define IT_SC38_GET_FOOD 139 +#define IT_SC39_LAYER_0 56 +#define IT_SC39_LAYER_1 57 +#define IT_SC39_LAYER_2 58 +#define IT_SC39_GRID_1 59 +#define IT_SC39_GRID_2 60 +#define IT_SC40_LAYER_0 61 +#define IT_SC40_LAYER_1 62 +#define IT_SC40_LAYER_2 63 +#define IT_SC40_GRID_1 64 +#define IT_SC40_GRID_2 65 +#define IT_SC40_LOCKER 14 +#define IT_SC40_OPEN_DOOR 15 +#define IT_SC40_CLOSE_DOOR 16 +#define IT_SC41_LAYER_0 66 +#define IT_SC41_LAYER_1 67 +#define IT_SC41_LAYER_2 68 +#define IT_SC41_GRID_1 69 +#define IT_SC41_GRID_2 70 +#define IT_SC42_LAYER_0 20 +#define IT_SC42_LAYER_1 21 +#define IT_SC42_GRID_1 23 +#define IT_SC44_LAYER_0 25 +#define IT_SC45_LAYER_0 26 +#define IT_SC45_LAYER_1 27 +#define IT_SC45_GRID_1 28 +#define IT_SC46_LAYER_0 29 +#define IT_SC47_LAYER_0 30 +#define IT_SC48_LAYER_0 43 +#define IT_SC65_LAYER_0 44 +#define IT_SC65_LAYER_1 45 +#define IT_SC65_GRID_1 46 +#define ID_RADMAN 8205 +#define ID_FACT3_R_EXIT 8459 +#define ID_LOCKER3 8460 +#define ID_LOCKER2 8463 +#define ID_LOCKER1 8464 +#define ID_MACHINE 8467 +#define ID_STUMP 8468 +#define ID_S16_FLOOR 8473 +#define ID_ENTRANCE_EXIT 8478 +#define ID_REACTOR_PC 8480 +#define ID_REACTOR_DOOR 8481 +#define ID_RAD_SCREEN 8482 +#define ID_14_CONSOLE 8483 +#define ID_COAT 8484 +#define ID_SENSORS 8500 +#define ID_REACTOR_LOWER 8502 +#define ID_S17_FLOOR 8507 +#define ID_CORE_EXIT 8511 +#define ID_PULSE 8513 +#define ID_PULSEB 8515 +#define ID_ANITA_CARD 8517 +#define ID_CONSOLE_12 8524 +#define ID_JUNK1 4339 +#define ID_JUNK2 4340 +#define ID_LIFT7_LIGHT 8529 +#define ID_S29_FLOOR 12292 +#define ID_LIFT_29 12296 +#define ID_S29_CARD_SLOT 12299 +#define ID_LIFT29_LIGHT 12301 +#define ID_RIGHT_EXIT_29 12304 +#define ID_S23_FLOOR 12309 +#define ID_LEFT_EXIT_23 12313 +#define ID_ANCHOR_EXIT_23 12315 +#define ID_S25_FLOOR 12320 +#define ID_ANCHOR_EXIT_25 12324 +#define ID_TRAVEL_EXIT_23 12327 +#define ID_S24_FLOOR 12332 +#define ID_LEFT_EXIT_24 12336 +#define ID_LEFT_EXIT_29 12338 +#define ID_S28_FLOOR 12343 +#define ID_RIGHT_EXIT_28 12347 +#define ID_LEFT_EXIT_28 12349 +#define ID_S19_FLOOR 12354 +#define ID_RIGHT_EXIT_19 12358 +#define ID_LEFT_EXIT_19 12361 +#define ID_S26_FLOOR 12366 +#define ID_RIGHT_EXIT_26 12370 +#define ID_DUSTBIN_28 12372 +#define ID_POSTER1 12375 +#define ID_POSTER2 12376 +#define ID_POSTER3 12377 +#define ID_POSTER4 12378 +#define ID_26_PLANT 12379 +#define ID_LEAFLET 12380 +#define ID_HOLO 12381 +#define ID_BIN_23 12382 +#define ID_SCULPTURE 12383 +#define ID_LINK_23 12384 +#define ID_WRECK_23 12385 +#define ID_LONDON_POSTER 12386 +#define ID_NEW_YORK 12387 +#define ID_MURAL 12388 +#define ID_PIDGEONS 12405 +#define ID_LEFT_EXIT_26 12390 +#define ID_S27_FLOOR 12395 +#define ID_RIGHT_EXIT_27 12399 +#define ID_CHART1 12401 +#define ID_CHART2 12402 +#define ID_GAS 12403 +#define ID_SCANNER_27 12404 +#define ID_BURKE 12407 +#define ID_MEDI_COMP 12425 +#define ID_CHAIR_27 12417 +#define ID_HELMET_COLE 12420 +#define ID_BODY 12429 +#define ID_ANCHOR 12430 +#define ID_ANCHOR_PC 3 +#define ID_HOOK 12434 +#define ID_STATUE_25 12435 +#define ID_LAZER_25 12437 +#define ID_SPARK_25 12439 +#define ID_TREVOR 12442 +#define ID_UP_EXIT_28 12447 +#define ID_S20_FLOOR 12452 +#define ID_DOWN_EXIT_20 12456 +#define ID_REICH_DOOR_20 12459 +#define ID_REICH_SLOT 12462 +#define ID_S22_FLOOR 12467 +#define ID_RIGHT_EXIT_22 12471 +#define ID_LAMB_DOOR_20 12474 +#define ID_LAMB_SLOT 12477 +#define ID_S21_FLOOR 12482 +#define ID_LEFT_EXIT_21 12486 +#define ID_SHRUB_1 12488 +#define ID_SHRUB_2 12489 +#define ID_SHRUB_3 12490 +#define ID_LAMB_BED 12492 +#define ID_LAMB_TV 12493 +#define ID_FISH_TANK 12494 +#define ID_FISH_POSTER 12495 +#define ID_PILLOW 12496 +#define ID_MAGAZINE 12501 +#define ID_REICH_CHAIR 12505 +#define ID_CABINET 12506 +#define ID_CERT 12507 +#define ID_REICH_PICTURE 12508 +#define ID_FISH_FOOD 12509 +#define ID_LAMBS_BOOKS 12510 +#define ID_LAMBS_CHAIR 12511 +#define ID_DISPENSOR 12512 +#define ID_CATFOOD 12514 +#define ID_VIDEO 12516 +#define ID_CASSETTE 12517 +#define ID_BIG_PICT1 12524 +#define ID_VIDEO_SCREEN 12525 +#define ID_BIG_PICT2 12526 +#define ID_BIG_PICT3 12527 +#define ID_CAT 12534 +#define ID_BIO_DOOR 12541 +#define ID_SALES_CHART 12545 +#define ID_GALLAGER_BEL 12546 +#define ID_FAKE_FLOOR_22 12554 +#define ID_REICH_WINDOW 12555 +#define ID_LAMB_WINDOW 12556 +#define ID_FAKE_FLOOR_21 12557 +#define ID_INNER_LAMB_DOOR 12558 +#define ID_TICKET 12565 +#define ID_GLOBE 12568 +#define ID_INNER_R_DOOR 12571 +#define ID_GLASS_SLOT 12574 +#define ID_LIFT_WAIT 42 +#define ID_CABLE_7 8204 +#define ID_CABLE_29 12588 +#define ID_S11_FLOOR 12594 +#define ID_CABLE_FALL 12601 +#define ID_CABLE_FALL2 12604 +#define ID_SMASHED_WINDOW 12605 +#define ID_BITS 12607 +#define ID_BITS2 12609 +#define ID_LOCKER_11 12613 +#define ID_SPY_11 12612 +#define ID_SLOT_11 12616 +#define ID_SOCCER_1 12620 +#define ID_SOCCER_2 12621 +#define ID_SOCCER_3 12622 +#define ID_SOCCER_4 12623 +#define ID_SOCCER_5 12624 +#define ID_SLAT_1 12626 +#define ID_SLAT_2 12627 +#define ID_SLAT_3 12628 +#define ID_SLAT_4 12629 +#define ID_SLAT_5 12630 +#define ID_RIGHT_EXIT_11 12631 +#define ID_S10_FLOOR 12636 +#define ID_LEFT_EXIT_10 12641 +#define ID_LIFT_10 12642 +#define ID_LIFT_SLOT_10 12644 +#define ID_SCANNER_10 12647 +#define ID_POD 12648 +#define ID_LINC_10 12651 +#define ID_POD_LIGHT 12652 +#define ID_MONITOR_10 12657 +#define ID_LIYT_1 12659 +#define ID_LIYT_2 12661 +#define ID_LIYT_3 12663 +#define ID_LIYT_4 12665 +#define ID_LITEBANK 12667 +#define ID_TERMINAL_10 12670 +#define ID_FAKE_FLOOR_9 8536 +#define ID_FAKE_FLOOR_10 12672 +#define ID_LINC_S9 8543 +#define ID_SMALL_23 12676 +#define ID_SMALL_R_29 12677 +#define ID_SMALL_L_29 12678 +#define ID_SMALL_R_28 12679 +#define ID_SMALL_L_28 12680 +#define ID_SMALL_19 12681 +#define ID_S29_SML_FLOOR 12682 +#define ID_S28_SML_FLOOR 12686 +#define ID_LIFT_28 12694 +#define ID_SLOT_28 12697 +#define ID_COPTER 8209 +#define ID_SC48_SOCKET 16815 +#define ID_SC48_HOLE 16816 +#define ID_SC48_EYES 16817 +#define ID_SC48_LIGHT_PAL 16820 +#define ID_SC42_JUDGE 16821 +#define ID_SC42_CLERK 16822 +#define ID_SC42_PROSECUTION 16823 +#define ID_SC42_JOBSWORTH 16824 +#define ID_SC42_SIGN 16849 +#define ID_DOG_BARK_THING 16855 +#define ID_SC41_HEAT_1 16856 +#define ID_SC41_HEAT_2 16857 +#define ID_SC41_HEAT_3 16858 +#define ID_FIRE1 4360 +#define ID_FIRE2 4362 +#define ID_CAR_UP 4364 +#define ID_CAR_DOWN 4366 +#define C_LOGIC 0 +#define C_STATUS 2 +#define C_SYNC 4 +#define C_SCREEN 6 +#define C_PLACE 8 +#define C_GET_TO_TABLE 10 +#define C_XCOOD 14 +#define C_YCOOD 16 +#define C_FRAME 18 +#define C_CURSOR_TEXT 20 +#define C_MOUSE_ON 22 +#define C_MOUSE_OFF 24 +#define C_MOUSE_CLICK 26 +#define C_MOUSE_REL_X 28 +#define C_MOUSE_REL_Y 30 +#define C_MOUSE_SIZE_X 32 +#define C_MOUSE_SIZE_Y 34 +#define C_ACTION_SCRIPT 36 +#define C_UP_FLAG 38 +#define C_DOWN_FLAG 40 +#define C_GET_TO_FLAG 42 +#define C_FLAG 44 +#define C_MOOD 46 +#define C_GRAFIX_PROG 48 +#define C_OFFSET 52 +#define C_MODE 54 +#define C_BASE_SUB 56 +#define C_ACTION_SUB 60 +#define C_GET_TO_SUB 64 +#define C_EXTRA_SUB 68 +#define C_DIR 72 +#define C_STOP_SCRIPT 74 +#define C_MINI_BUMP 76 +#define C_LEAVING 78 +#define C_AT_WATCH 80 +#define C_AT_WAS 82 +#define C_ALT 84 +#define C_REQUEST 86 + diff --git a/sky/struc.h b/sky/struc.h index 55c6b44828..06c43718f4 100644 --- a/sky/struc.h +++ b/sky/struc.h @@ -19,8 +19,10 @@ * */ -struct dataFileHeader -{ +#ifndef SKYSTRUC_H +#define SKYSTRUC_H + +struct dataFileHeader { uint16 flag; // bit 0: set for colour data, clear for not // bit 1: set for compressed, clear for uncompressed // bit 2: set for 32 colours, clear for 16 colours @@ -36,3 +38,118 @@ struct dataFileHeader uint16 s_compressed_size; }; +#if !defined(__GNUC__) +#pragma START_PACK_STRUCTS +#endif + +struct ExtCompact { + uint16 actionSub; + uint16 actionSub_off; + uint16 getToSub; + uint16 getToSub_off; + uint16 extraSub; + uint16 extraSub_off; + + uint16 dir; + + uint16 stopScript; + uint16 miniBump; + uint16 leaving; + uint16 atWatch; // pointer to script variable + uint16 atWas; // pointer to script variable + uint16 alt; // alternate script + uint16 request; + + uint16 spWidth_xx; + uint16 spColour; + uint16 spTextId; + uint16 spTime; + + uint16 arAnimIndex; + void *turnProg; + + uint16 waitingFor; + + uint16 arTargetX; + uint16 arTargetY; + + void *animScratch; // data area for AR + + uint16 megaSet; + + uint16 gridWidth; + uint16 colOffset; + uint16 colWidth; + uint16 lastChr; + + uint16 *animUp; + uint16 *animDown; + uint16 *animLeft; + uint16 *animRight; + + uint16 *standUp; + uint16 *standDown; + uint16 *standLeft; + uint16 *standRight; + uint16 *standTalk; +} GCC_PACK; + +struct UnknownStuff { + uint16 unknownStuff_1_1[4]; + uint16 *unknownStuff_1_2[34]; + uint16 unknownStuff_2_1[4]; + uint16 *unknownStuff_2_2[34]; + uint16 unknownStuff_3_1[4]; + uint16 *unknownStuff_3_2[34]; +} GCC_PACK; + +struct Compact { + uint16 logic; // Entry in logic table to run (byte as <256entries in logic table + uint16 status; + uint16 sync; // flag sent to compacts by other things + + uint16 screen; // current screen + uint16 place; // so's this one + uint16 *getToTable; // Address of how to get to things table + + uint16 xcood; + uint16 ycood; + + uint16 frame; + + uint16 cursorText; + uint16 mouseOn; + uint16 mouseOff; + uint16 mouseClick; // dword script + + uint16 mouseRelX; + uint16 mouseRelY; + uint16 mouseSizeX; + uint16 mouseSizeY; + + uint16 actionScript; + + uint16 upFlag; // usually holds the Action Mode + uint16 downFlag; // used for passing back + uint16 getToFlag; // used by action script for get to attempts, also frame store (hence word) + uint16 flag; // a use any time flag + + uint16 mood; // high level - stood or not + uint16 *grafixProg; + uint16 offset; + + uint16 mode; // which mcode block + + uint16 baseSub; // 1st mcode block relative to start of compact + uint16 baseSub_off; + + ExtCompact *extCompact; + void *turnTable; + UnknownStuff *unknownStuff; +} GCC_PACK; + +#if !defined(__GNUC__) +#pragma END_PACK_STRUCTS +#endif + +#endif diff --git a/sky/text.cpp b/sky/text.cpp index cdc6a10a00..222f6cb086 100644 --- a/sky/text.cpp +++ b/sky/text.cpp @@ -81,17 +81,17 @@ void SkyText::fnSetFont(uint32 fontNr) { _dtCharSpacing = newCharSet->charSpacing; } -void SkyText::getText(uint32 textNr, void **itemList, uint16 language) { //load text #"textNr" into textBuffer +void SkyText::getText(uint32 textNr, uint16 language) { //load text #"textNr" into textBuffer uint32 sectionNo = (textNr & 0x0F000) >> 10; - if (itemList[FIRST_TEXT_SEC + sectionNo] == (void*)NULL) { //check if already loaded + if (SkyState::_itemList[FIRST_TEXT_SEC + sectionNo] == (void **)NULL) { //check if already loaded debug(5, "Loading Text item(s) for Section %d", (sectionNo>>2)); uint32 fileNo = (sectionNo >> 2); fileNo += ((language * NO_OF_TEXT_SECTIONS) + 60600); - itemList[FIRST_TEXT_SEC + sectionNo] = (void *)_skyDisk->loadFile((uint16)fileNo, NULL); + SkyState::_itemList[FIRST_TEXT_SEC + sectionNo] = (void **)_skyDisk->loadFile((uint16)fileNo, NULL); } - _textItemPtr = (uint8 *)itemList[FIRST_TEXT_SEC + sectionNo]; + _textItemPtr = (uint8 *)SkyState::_itemList[FIRST_TEXT_SEC + sectionNo]; uint32 offset = 0; uint32 nr32MsgBlocks = (textNr & 0x0fe0); diff --git a/sky/text.h b/sky/text.h index 4d4860feb3..6b1abf37da 100644 --- a/sky/text.h +++ b/sky/text.h @@ -27,7 +27,7 @@ class SkyText { public: SkyText(SkyDisk *skyDisk, uint32 gameVersion); - void getText(uint32 textNr, void **itemList, uint16 language); + void getText(uint32 textNr, uint16 language); void displayText(uint8 *dest, bool centre, uint16 pixelWidth, uint8 color); void displayText(char *textPtr, uint8 *dest, bool centre, uint16 pixelWidth, uint8 color); void makeGameCharacter(char textChar, uint8 *charSetPtr, uint8 *&data, uint8 color); |