aboutsummaryrefslogtreecommitdiff
path: root/sword1/staticres.cpp
diff options
context:
space:
mode:
authorRobert Göffringmann2004-12-08 04:38:39 +0000
committerRobert Göffringmann2004-12-08 04:38:39 +0000
commit58bf9028b16a1a6d125baa79b223de5e2a5aa0e0 (patch)
tree047a19cd93a1f447c508bc43328f65f7987e6dae /sword1/staticres.cpp
parentece69c12e8ccd6428c0bb2bb028aa357cf7f3884 (diff)
downloadscummvm-rg350-58bf9028b16a1a6d125baa79b223de5e2a5aa0e0.tar.gz
scummvm-rg350-58bf9028b16a1a6d125baa79b223de5e2a5aa0e0.tar.bz2
scummvm-rg350-58bf9028b16a1a6d125baa79b223de5e2a5aa0e0.zip
moved the bootparam code out of sword1.cpp
svn-id: r16001
Diffstat (limited to 'sword1/staticres.cpp')
-rw-r--r--sword1/staticres.cpp583
1 files changed, 583 insertions, 0 deletions
diff --git a/sword1/staticres.cpp b/sword1/staticres.cpp
index 2294ece0fa..59ea806fbf 100644
--- a/sword1/staticres.cpp
+++ b/sword1/staticres.cpp
@@ -29,6 +29,7 @@
#include "sword1/music.h"
#include "sword1/sound.h"
#include "sword1/sword1.h"
+#include "sword1/logic.h"
namespace Sword1 {
@@ -6568,6 +6569,588 @@ const uint16 Sound::_roomsFixedFx[TOTAL_ROOMS][TOTAL_FX_PER_ROOM] =
{0}, // 99
};
+#define ENCODE8(VAL) \
+ (uint8)(VAL & 0xFF)
+#define ENCODE16(VAL) \
+ (uint8)(VAL & 0xFF), (uint8)(VAL >> 8)
+#define ENCODE24(VAL) \
+ (uint8)(VAL & 0xFF), (uint8)((VAL >> 8) & 0xFF), (uint8)(VAL >> 16)
+#define ENCODE32(VAL) \
+ (uint8)(VAL & 0xFF), (uint8)((VAL >> 8) & 0xFF), (uint8)((VAL >> 16) & 0xFF), (uint8)(VAL >> 24)
+
+#define LOGIC_CALL_FN(FN_ID, PARAM) \
+ opcCallFn, ENCODE8(FN_ID), ENCODE8(PARAM)
+#define LOGIC_CALL_FN_LONG(FN_ID, PARAM1, PARAM2, PARAM3) \
+ opcCallFnLong, ENCODE8(FN_ID), ENCODE32(PARAM1), ENCODE32(PARAM2), ENCODE32(PARAM3)
+#define LOGIC_SET_VAR8(VAR_ID, VAL) \
+ opcSetVar8, ENCODE16(VAR_ID), ENCODE8(VAL)
+#define LOGIC_SET_VAR16(VAR_ID, VAL) \
+ opcSetVar16, ENCODE16(VAR_ID), ENCODE16(VAL)
+#define LOGIC_SET_VAR32(VAR_ID, VAL) \
+ opcSetVar32, ENCODE16(VAR_ID), ENCODE32(VAL)
+#define GEORGE_POS(POS_X, POS_Y, DIR, PLACE) \
+ opcGeorge, ENCODE16(POS_X), ENCODE16(POS_Y), DIR, ENCODE24(PLACE)
+
+#define INIT_SEQ_END \
+ opcSeqEnd
+#define RUN_START_SCRIPT(SCR_ID) \
+ opcRunStart, ENCODE8(SCR_ID)
+#define RUN_HELPER_SCRIPT(SCR_ID) \
+ opcRunHelper, ENCODE8(SCR_ID)
+
+const uint8 g_startPos0[] = { // Intro with sequence
+ LOGIC_CALL_FN(opcPlaySequence, 4),
+ GEORGE_POS(481, 413, DOWN, FLOOR_1),
+ INIT_SEQ_END
+};
+
+const uint8 g_startPos1[] = { // Intro without sequence
+ GEORGE_POS(481, 413, DOWN, FLOOR_1),
+ INIT_SEQ_END
+};
+
+const uint8 g_startPos2[] = { // blind alley
+ GEORGE_POS(480, 388, DOWN_LEFT, FLOOR_2),
+ LOGIC_CALL_FN(opcAddObject, LIFTING_KEYS),
+ LOGIC_CALL_FN(opcAddObject, ROSSO_CARD),
+ INIT_SEQ_END
+};
+
+const uint8 g_startPos3[] = { // cafe
+ GEORGE_POS(660, 368, DOWN_LEFT, FLOOR_3),
+ INIT_SEQ_END
+};
+
+const uint8 g_startPos4[] = { // ready to use the phone
+ GEORGE_POS(463, 391, DOWN, FLOOR_4),
+ LOGIC_SET_VAR8(MOUE_TEXT, 1),
+ LOGIC_SET_VAR8(MOUE_NICO_FLAG, 1),
+ LOGIC_SET_VAR8(PARIS_FLAG, 5),
+ LOGIC_SET_VAR8(NICO_PHONE_FLAG, 1),
+ LOGIC_SET_VAR8(TAILOR_PHONE_FLAG, 1),
+ LOGIC_SET_VAR8(WORKMAN_GONE_FLAG, 1),
+ LOGIC_SET_VAR8(ALBERT_INFO_FLAG, 1),
+ LOGIC_SET_VAR8(SEEN_SEWERS_FLAG, 1),
+ // item stuff missing
+ INIT_SEQ_END
+};
+
+const uint8 g_startPos5[] = { // court yard
+ GEORGE_POS(400, 400, DOWN_LEFT, FLOOR_5),
+ INIT_SEQ_END
+};
+
+const uint8 g_startPos7[] = { // sewer two
+ GEORGE_POS(520, 310, DOWN_LEFT, FLOOR_7),
+ INIT_SEQ_END
+};
+
+const uint8 g_startPos8[] = { // cafe repaired
+ GEORGE_POS(481, 413, DOWN, FLOOR_8),
+ INIT_SEQ_END
+};
+
+const uint8 g_startPos11[] = { // costumier
+ GEORGE_POS(264, 436, DOWN_RIGHT, FLOOR_11),
+ LOGIC_CALL_FN(opcAddObject, TISSUE),
+ LOGIC_CALL_FN(opcAddObject, PHOTOGRAPH),
+ INIT_SEQ_END
+};
+
+const uint8 g_startPos12[] = { // hotel street
+ GEORGE_POS(730, 460, LEFT, FLOOR_12),
+ LOGIC_SET_VAR8(NICO_ADDRESS_FLAG, 1),
+ LOGIC_SET_VAR8(NICO_PHONE_FLAG, 1),
+ LOGIC_SET_VAR8(COSTUMES_ADDRESS_FLAG, 1),
+ LOGIC_SET_VAR8(HOTEL_ADDRESS_FLAG, 1),
+ LOGIC_SET_VAR8(AEROPORT_ADDRESS_FLAG, 1),
+ LOGIC_SET_VAR8(TAILOR_PHONE_FLAG, 1),
+ INIT_SEQ_END
+};
+
+const uint8 g_startPos14[] = { // hotel corridor
+ GEORGE_POS(528, 484, UP, FLOOR_14),
+ LOGIC_CALL_FN(opcAddObject, HOTEL_KEY),
+ LOGIC_CALL_FN(opcAddObject, MANUSCRIPT),
+ INIT_SEQ_END
+};
+
+const uint8 g_startPos17[] = { // hotel assassin
+ GEORGE_POS(714, 484, LEFT, FLOOR_17),
+ INIT_SEQ_END
+};
+
+const uint8 g_startPos18[] = { // gendarmerie
+ GEORGE_POS(446, 408, DOWN_LEFT, FLOOR_18),
+ LOGIC_SET_VAR8(PARIS_FLAG, 5),
+ INIT_SEQ_END
+};
+
+const uint8 g_startPos19[] = { // ireland street
+ GEORGE_POS(256, 966, UP_RIGHT, FLOOR_19),
+ RUN_HELPER_SCRIPT(HELP_IRELAND)
+};
+
+const uint8 g_startPos20[] = { // macdevitts
+ GEORGE_POS(194, 417, DOWN_RIGHT, FLOOR_20),
+ LOGIC_SET_VAR8(FARMER_MOVED_FLAG, 1),
+ LOGIC_SET_VAR8(FARMER_SEAN_FLAG, 5),
+ LOGIC_SET_VAR8(PUB_FLAP_FLAG, 1),
+ LOGIC_SET_VAR8(PUB_TRAP_DOOR, 2),
+ LOGIC_SET_VAR8(KNOWS_PEAGRAM_FLAG, 1),
+ RUN_HELPER_SCRIPT(HELP_IRELAND)
+};
+
+const uint8 g_startPos21[] = { // pub cellar
+ GEORGE_POS(291, 444, DOWN_RIGHT, FLOOR_21),
+ LOGIC_CALL_FN(opcAddObject, BEER_TOWEL),
+ LOGIC_SET_VAR8(FARMER_MOVED_FLAG, 1),
+ LOGIC_SET_VAR8(FLEECY_STUCK, 1),
+ LOGIC_SET_VAR8(LIFTING_KEYS_IN_HOLE_23, 1),
+ RUN_HELPER_SCRIPT(HELP_IRELAND)
+};
+
+const uint8 g_startPos22[] = { // castle gate
+ GEORGE_POS(547, 500, UP_LEFT, FLOOR_22),
+ LOGIC_SET_VAR8(IRELAND_FLAG, 4),
+ RUN_HELPER_SCRIPT(HELP_IRELAND)
+};
+
+const uint8 g_startPos23[] = { // castle hay top
+ GEORGE_POS(535, 510, UP, FLOOR_23),
+ RUN_HELPER_SCRIPT(HELP_IRELAND)
+};
+
+const uint8 g_startPos24[] = { // castle yard
+ GEORGE_POS(815, 446, DOWN_LEFT, FLOOR_24),
+ RUN_HELPER_SCRIPT(HELP_IRELAND)
+};
+
+const uint8 g_startPos25[] = { // castle dig
+ GEORGE_POS(369, 492, LEFT, FLOOR_25),
+ LOGIC_CALL_FN(opcAddObject, BEER_TOWEL),
+ LOGIC_SET_VAR8(BEER_TOWEL_BEEN_WET, 1),
+ LOGIC_SET_VAR16(WET_BEER_TOWEL_TIMER, 1000),
+ RUN_HELPER_SCRIPT(HELP_IRELAND)
+};
+
+const uint8 g_startPos26[] = { // cellar dark
+ GEORGE_POS(291, 444, DOWN_RIGHT, FLOOR_26),
+ RUN_HELPER_SCRIPT(HELP_IRELAND)
+};
+
+const uint8 g_startPos27[] = { // museum street
+ GEORGE_POS(300, 510, UP_RIGHT, FLOOR_27),
+ LOGIC_SET_VAR8(PARIS_FLAG, 12),
+ LOGIC_SET_VAR8(MANUSCRIPT_ON_TABLE_10_FLAG, 1),
+ INIT_SEQ_END
+};
+
+const uint8 g_startPos31[] = { // hospital street
+ GEORGE_POS(400, 500, UP_RIGHT, FLOOR_31),
+ LOGIC_SET_VAR8(PARIS_FLAG, 11),
+ LOGIC_CALL_FN(opcAddObject, PHOTOGRAPH),
+ LOGIC_CALL_FN(opcAddObject, LAB_PASS),
+ INIT_SEQ_END
+};
+
+const uint8 g_startPos32[] = { // hospital desk (after we've found out where Marquet is)
+ GEORGE_POS(405, 446, UP_RIGHT, FLOOR_32),
+ LOGIC_SET_VAR8(GOT_BENOIR_FLAG, 1),
+ LOGIC_CALL_FN(opcAddObject, PHOTOGRAPH),
+ LOGIC_CALL_FN(opcAddObject, LAB_PASS),
+ RUN_HELPER_SCRIPT(HELP_WHITECOAT)
+};
+
+const uint8 g_startPos35[] = { // hospital jacques
+ GEORGE_POS(640, 500, LEFT, FLOOR_35),
+ LOGIC_SET_VAR8(DOOR_34_OPEN, 1),
+ LOGIC_SET_VAR8(GOT_BENOIR_FLAG, 2),
+ LOGIC_SET_VAR8(HOS_POS_FLAG, 26),
+ LOGIC_SET_VAR8(BENOIR_FLAG, 24),
+ RUN_HELPER_SCRIPT(HELP_WHITECOAT)
+};
+
+const uint8 g_startPos36[] = { // montfaucon
+ GEORGE_POS(300, 480, RIGHT, FLOOR_36),
+ LOGIC_CALL_FN(opcAddObject, LENS),
+ LOGIC_CALL_FN(opcAddObject, RED_NOSE),
+ LOGIC_CALL_FN(opcAddObject, LIFTING_KEYS),
+ LOGIC_SET_VAR8(MONTFAUCON_CONTROL_FLAG, 1),
+ INIT_SEQ_END
+};
+
+const uint8 g_startPos37[] = { // catacomb sewer
+ GEORGE_POS(592, 386, RIGHT, FLOOR_37),
+ LOGIC_CALL_FN(opcAddObject, LIFTING_KEYS),
+ LOGIC_CALL_FN(opcAddObject, TRIPOD),
+ LOGIC_CALL_FN(opcAddObject, GEM),
+ INIT_SEQ_END
+};
+
+const uint8 g_startPos38[] = { // catacomb room
+ GEORGE_POS(200, 390, RIGHT, FLOOR_38),
+ LOGIC_CALL_FN(opcAddObject, TRIPOD),
+ LOGIC_CALL_FN(opcAddObject, GEM),
+ INIT_SEQ_END
+};
+
+const uint8 g_startPos39[] = { // catacomb meeting
+ GEORGE_POS(636, 413, DOWN_LEFT, FLOOR_39),
+ LOGIC_SET_VAR8(MEETING_FLAG, 3), // meeting finished
+ LOGIC_CALL_FN(opcAddObject, TRIPOD),
+ LOGIC_CALL_FN(opcAddObject, GEM),
+ INIT_SEQ_END
+};
+
+const uint8 g_startPos40[] = { // excavation exterior
+ GEORGE_POS(648, 492, LEFT, FLOOR_40),
+ LOGIC_SET_VAR8(NICO_PHONE_FLAG, 1),
+ LOGIC_SET_VAR8(PARIS_FLAG, 16),
+ LOGIC_CALL_FN(opcAddObject, PLASTER),
+ LOGIC_CALL_FN(opcAddObject, POLISHED_CHALICE),
+ INIT_SEQ_END
+};
+
+const uint8 g_startPos45[] = { // syria stall
+ GEORGE_POS(410, 490, DOWN_RIGHT, FLOOR_45),
+ RUN_HELPER_SCRIPT(HELP_SYRIA)
+};
+
+const uint8 g_startPos47[] = { // syria carpet
+ GEORGE_POS(225, 775, RIGHT, FLOOR_47),
+ RUN_HELPER_SCRIPT(HELP_SYRIA)
+};
+
+const uint8 g_startPos48[] = { // templar church
+ GEORGE_POS(315, 392, DOWN, FLOOR_48),
+ LOGIC_SET_VAR8(CHALICE_FLAG, 2),
+ LOGIC_SET_VAR8(NEJO_TEXT, 1),
+ LOGIC_CALL_FN(opcAddObject, CHALICE),
+ LOGIC_CALL_FN(opcAddObject, LENS),
+ INIT_SEQ_END
+};
+
+const uint8 g_startPos49[] = { // syria club
+ GEORGE_POS(438, 400, DOWN_RIGHT, FLOOR_49),
+ LOGIC_CALL_FN(opcAddObject, TOILET_BRUSH),
+ RUN_HELPER_SCRIPT(HELP_SYRIA)
+};
+
+const uint8 g_startPos50[] = { // syria toilet
+ GEORGE_POS(313, 440, DOWN_RIGHT, FLOOR_50),
+ LOGIC_CALL_FN(opcAddObject, TOILET_KEY),
+ RUN_HELPER_SCRIPT(HELP_SYRIA)
+};
+
+const uint8 g_startPos53[] = { // bull's head pan
+ LOGIC_SET_VAR32(CHANGE_PLACE, FLOOR_53),
+ LOGIC_CALL_FN(opcAddObject, TOWEL_CUT),
+ RUN_HELPER_SCRIPT(HELP_SYRIA)
+};
+
+const uint8 g_startPos54[] = { // bull's head
+ GEORGE_POS(680, 425, DOWN_LEFT, FLOOR_54),
+ LOGIC_CALL_FN(opcAddObject, TOWEL_CUT),
+ RUN_HELPER_SCRIPT(HELP_SYRIA)
+};
+
+const uint8 g_startPos55[] = { // bull secret
+ GEORGE_POS(825, 373, DOWN_LEFT, FLOOR_55),
+ RUN_HELPER_SCRIPT(HELP_SYRIA)
+};
+
+const uint8 g_startPos56[] = { // contess' room
+ GEORGE_POS(572, 443, LEFT, FLOOR_56),
+ RUN_HELPER_SCRIPT(HELP_SPAIN)
+};
+
+const uint8 g_startPos57[] = { // Spain drive
+ GEORGE_POS(1630, 460, DOWN_LEFT, FLOOR_57),
+ RUN_HELPER_SCRIPT(HELP_SPAIN)
+};
+
+const uint8 g_startPos58[] = { // Mausoleum Exterior
+ GEORGE_POS(SC58_PATH_X, SC58_PATH_Y, UP_RIGHT, FLOOR_58),
+ RUN_HELPER_SCRIPT(HELP_SPAIN)
+};
+
+const uint8 g_startPos59[] = { // Mausoleum interior
+ GEORGE_POS(750, 455, LEFT, FLOOR_59),
+ RUN_HELPER_SCRIPT(HELP_SPAIN)
+};
+
+const uint8 g_startPos60[] = { // Spain reception
+ GEORGE_POS(750, 475, DOWN_LEFT, FLOOR_60),
+ RUN_HELPER_SCRIPT(HELP_SPAIN)
+};
+
+const uint8 g_startPos61[] = { // Spain well
+ GEORGE_POS(400, 345, DOWN, LEFT_FLOOR_61),
+ LOGIC_CALL_FN(opcAddObject, STONE_KEY),
+ LOGIC_CALL_FN(opcAddObject, MIRROR),
+ RUN_HELPER_SCRIPT(HELP_SPAIN)
+};
+
+const uint8 g_startPos62[] = { // chess puzzle
+ LOGIC_SET_VAR32(CHANGE_PLACE, FLOOR_62),
+ LOGIC_SET_VAR8(TOP_MENU_DISABLED, 1),
+ LOGIC_SET_VAR8(GEORGE_ALLOWED_REST_ANIMS, 0),
+ LOGIC_CALL_FN_LONG(opcNoSprite, PLAYER, 0, 0),
+ RUN_HELPER_SCRIPT(HELP_SPAIN)
+};
+
+const uint8 g_startPos63[] = { // train one
+ GEORGE_POS(710, 450, LEFT, FLOOR_63),
+ LOGIC_SET_VAR8(DOOR_SC65_FLAG, 2),
+ LOGIC_SET_VAR8(DOOR_ONE_63_OPEN, 0),
+ LOGIC_SET_VAR8(DOOR_65_OPEN, 1),
+ LOGIC_SET_VAR8(VAIL_TEXT, 1),
+ RUN_HELPER_SCRIPT(HELP_NIGHTTRAIN)
+};
+
+const uint8 g_startPos65[] = { // compt one
+ GEORGE_POS(460, 430, DOWN, FLOOR_65),
+ RUN_HELPER_SCRIPT(HELP_NIGHTTRAIN)
+};
+
+const uint8 g_startPos66[] = { // compt two
+ GEORGE_POS(460, 430, DOWN, FLOOR_66),
+ RUN_HELPER_SCRIPT(HELP_NIGHTTRAIN)
+};
+
+const uint8 g_startPos67[] = { // compt three
+ GEORGE_POS(460, 430, DOWN, FLOOR_67),
+ RUN_HELPER_SCRIPT(HELP_NIGHTTRAIN)
+};
+
+const uint8 g_startPos69[] = { // train_guard
+ GEORGE_POS(310, 430, DOWN, FLOOR_69),
+ RUN_HELPER_SCRIPT(HELP_NIGHTTRAIN)
+};
+
+const uint8 g_startPos71[] = { // churchyard
+ GEORGE_POS(1638, 444, LEFT, RIGHT_FLOOR_71),
+ LOGIC_SET_VAR8(NICO_SCOT_SCREEN, 71),
+ LOGIC_SET_VAR8(NICO_POSITION_71, 1),
+ RUN_HELPER_SCRIPT(HELP_SCOTLAND)
+};
+
+const uint8 g_startPos72[] = { // church tower
+ GEORGE_POS(150, 503, RIGHT, FLOOR_72),
+ LOGIC_SET_VAR8(NICO_SCOT_SCREEN, 72),
+ RUN_HELPER_SCRIPT(HELP_SCOTLAND)
+};
+
+const uint8 g_startPos73[] = { // crypt
+ GEORGE_POS(250, 390, DOWN_RIGHT, FLOOR_73),
+ LOGIC_SET_VAR8(NICO_SCOT_SCREEN, 73),
+ LOGIC_SET_VAR8(NICO_POSITION_73, 1)
+};
+
+const uint8 g_startPos80[] = { // Paris map
+ GEORGE_POS(645, 160, DOWN, FLOOR_80),
+ LOGIC_SET_VAR8(PARIS_FLAG, 3),
+ LOGIC_SET_VAR8(NICO_CLOWN_FLAG, 3),
+ LOGIC_SET_VAR8(NICO_DOOR_FLAG, 2),
+
+ LOGIC_CALL_FN(opcAddObject, RED_NOSE),
+ LOGIC_CALL_FN(opcAddObject, PHOTOGRAPH),
+ LOGIC_CALL_FN(opcAddObject, PLASTER),
+ LOGIC_CALL_FN(opcAddObject, LAB_PASS),
+
+ LOGIC_SET_VAR8(MANUSCRIPT_FLAG, 1),
+ LOGIC_SET_VAR8(NICO_ADDRESS_FLAG, 1),
+ LOGIC_SET_VAR8(NICO_PHONE_FLAG, 1),
+ LOGIC_SET_VAR8(COSTUMES_ADDRESS_FLAG, 1),
+ LOGIC_SET_VAR8(HOTEL_ADDRESS_FLAG, 1),
+ LOGIC_SET_VAR8(MUSEUM_ADDRESS_FLAG, 1),
+ LOGIC_SET_VAR8(HOSPITAL_ADDRESS_FLAG, 1),
+ LOGIC_SET_VAR8(MONTFACN_ADDRESS_FLAG, 1),
+ LOGIC_SET_VAR8(AEROPORT_ADDRESS_FLAG, 1),
+ LOGIC_SET_VAR8(NERVAL_ADDRESS_FLAG, 1),
+
+ LOGIC_SET_VAR8(IRELAND_MAP_FLAG, 1),
+ LOGIC_SET_VAR8(SPAIN_MAP_FLAG, 1),
+ LOGIC_SET_VAR8(SYRIA_FLAG, 2),
+
+ LOGIC_SET_VAR8(TAILOR_PHONE_FLAG, 1),
+ INIT_SEQ_END
+};
+
+const uint8 g_genIreland[] = {
+ LOGIC_SET_VAR8(PARIS_FLAG, 9),
+ LOGIC_CALL_FN(opcAddObject, RED_NOSE),
+ LOGIC_CALL_FN(opcAddObject, PHOTOGRAPH),
+ LOGIC_CALL_FN(opcAddObject, LAB_PASS),
+ LOGIC_CALL_FN(opcAddObject, LIFTING_KEYS),
+ LOGIC_CALL_FN(opcAddObject, MATCHBOOK),
+ LOGIC_CALL_FN(opcAddObject, BUZZER),
+ LOGIC_CALL_FN(opcAddObject, TISSUE),
+ INIT_SEQ_END
+};
+
+const uint8 g_genSyria[] = {
+ LOGIC_SET_VAR8(PARIS_FLAG, 1),
+ LOGIC_CALL_FN(opcAddObject, BALL),
+ LOGIC_CALL_FN(opcAddObject, RED_NOSE),
+ LOGIC_CALL_FN(opcAddObject, PHOTOGRAPH),
+ LOGIC_CALL_FN(opcAddObject, LIFTING_KEYS),
+ LOGIC_CALL_FN(opcAddObject, MATCHBOOK),
+ LOGIC_CALL_FN(opcAddObject, BUZZER),
+ LOGIC_CALL_FN(opcAddObject, TISSUE),
+ LOGIC_SET_VAR8(CHANGE_STANCE, STAND),
+ INIT_SEQ_END
+};
+
+const uint8 g_genSpain[] = {
+ LOGIC_SET_VAR8(PARIS_FLAG, 1),
+ LOGIC_SET_VAR8(SPAIN_VISIT, 1), // default to 1st spain visit, may get overwritten later
+ LOGIC_CALL_FN(opcAddObject, RED_NOSE),
+ LOGIC_CALL_FN(opcAddObject, PHOTOGRAPH),
+ LOGIC_CALL_FN(opcAddObject, LAB_PASS),
+ LOGIC_CALL_FN(opcAddObject, LIFTING_KEYS),
+ LOGIC_CALL_FN(opcAddObject, BUZZER),
+ LOGIC_CALL_FN(opcAddObject, TISSUE),
+ LOGIC_CALL_FN(opcAddObject, BALL),
+ LOGIC_CALL_FN(opcAddObject, MATCHBOOK),
+ LOGIC_CALL_FN(opcAddObject, PRESSURE_GAUGE),
+ INIT_SEQ_END
+};
+
+const uint8 g_genSpain2[] = { // 2nd spain visit
+ LOGIC_SET_VAR8(SPAIN_VISIT, 2),
+ LOGIC_CALL_FN(opcRemoveObject, PRESSURE_GAUGE),
+ LOGIC_CALL_FN(opcAddObject, POLISHED_CHALICE),
+ INIT_SEQ_END
+};
+
+const uint8 g_genNightTrain[] = {
+ LOGIC_SET_VAR8(PARIS_FLAG, 18),
+ INIT_SEQ_END
+};
+
+const uint8 g_genScotland[] = {
+ LOGIC_SET_VAR8(PARIS_FLAG, 1),
+ LOGIC_CALL_FN(opcAddObject, RED_NOSE),
+ LOGIC_CALL_FN(opcAddObject, PHOTOGRAPH),
+ LOGIC_CALL_FN(opcAddObject, LAB_PASS),
+ LOGIC_CALL_FN(opcAddObject, LIFTING_KEYS),
+ LOGIC_CALL_FN(opcAddObject, BUZZER),
+ INIT_SEQ_END
+};
+
+const uint8 g_genWhiteCoat[] = {
+ LOGIC_SET_VAR8(PARIS_FLAG, 11),
+ LOGIC_SET_VAR8(EVA_TEXT, 1),
+ LOGIC_SET_VAR8(EVA_MARQUET_FLAG, 2),
+ LOGIC_SET_VAR8(EVA_NURSE_FLAG, 4),
+ LOGIC_SET_VAR8(FOUND_WARD_FLAG, 1),
+ LOGIC_SET_VAR8(CONSULTANT_HERE, 1),
+
+ LOGIC_CALL_FN_LONG(opcMegaSet, PLAYER, GEORGE_WLK, MEGA_WHITE),
+
+ LOGIC_SET_VAR32(GEORGE_CDT_FLAG, WHT_TLK_TABLE),
+ LOGIC_SET_VAR8(GEORGE_TALK_FLAG, 0),
+ LOGIC_SET_VAR8(WHITE_COAT_FLAG, 1),
+ LOGIC_SET_VAR8(GEORGE_ALLOWED_REST_ANIMS, 0),
+ INIT_SEQ_END
+};
+
+const uint8 *Logic::_startData[] = {
+ g_startPos0,
+ g_startPos1,
+ g_startPos2,
+ g_startPos3,
+ g_startPos4,
+ g_startPos5,
+ NULL, //g_startPos6,
+ g_startPos7,
+ g_startPos8,
+ NULL, //g_startPos9,
+ NULL, //g_startPos10,
+ g_startPos11,
+ g_startPos12,
+ NULL, //g_startPos13,
+ g_startPos14,
+ NULL, //g_startPos15,
+ NULL, //g_startPos16,
+ g_startPos17,
+ g_startPos18,
+ g_startPos19,
+ g_startPos20,
+ g_startPos21,
+ g_startPos22,
+ g_startPos23,
+ g_startPos24,
+ g_startPos25,
+ g_startPos26,
+ g_startPos27,
+ NULL, //g_startPos28,
+ NULL, //g_startPos29,
+ NULL, //g_startPos30,
+ g_startPos31,
+ g_startPos32,
+ NULL, //g_startPos33,
+ NULL, //g_startPos34,
+ g_startPos35,
+ g_startPos36,
+ g_startPos37,
+ g_startPos38,
+ g_startPos39,
+ g_startPos40,
+ NULL, //g_startPos41,
+ NULL, //g_startPos42,
+ NULL, //g_startPos43,
+ NULL, //g_startPos44,
+ g_startPos45,
+ NULL, //g_startPos46,
+ g_startPos47,
+ g_startPos48,
+ g_startPos49,
+ g_startPos50,
+ NULL, //g_startPos51,
+ NULL, //g_startPos52,
+ g_startPos53,
+ g_startPos54,
+ g_startPos55,
+ g_startPos56,
+ g_startPos57,
+ g_startPos58,
+ g_startPos59,
+ g_startPos60,
+ g_startPos61,
+ g_startPos62,
+ g_startPos63,
+ NULL, //g_startPos64,
+ g_startPos65,
+ g_startPos66,
+ g_startPos67,
+ NULL, //g_startPos68,
+ g_startPos69,
+ NULL, //g_startPos70,
+ g_startPos71,
+ g_startPos72,
+ g_startPos73,
+ NULL, //g_startPos74,
+ NULL, //g_startPos75,
+ NULL, //g_startPos76
+ NULL, //g_startPos77
+ NULL, //g_startPos78
+ NULL, //g_startPos79
+ g_startPos80
+};
+
+const uint8 *Logic::_helperData[] = {
+ g_genIreland,
+ g_genSyria,
+ g_genSpain,
+ g_genNightTrain,
+ g_genScotland,
+ g_genWhiteCoat,
+ g_genSpain2
+};
+
} // End of namespace Sword1
#ifdef __PALM_OS__