Initial commit
This commit is contained in:
2236
engines/m4/riddle/rooms/section6/room603.cpp
Normal file
2236
engines/m4/riddle/rooms/section6/room603.cpp
Normal file
File diff suppressed because it is too large
Load Diff
99
engines/m4/riddle/rooms/section6/room603.h
Normal file
99
engines/m4/riddle/rooms/section6/room603.h
Normal file
@@ -0,0 +1,99 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM603_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM603_H
|
||||
|
||||
#include "m4/riddle/rooms/room.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room603 : public Room {
|
||||
private:
|
||||
int _val2 = 0;
|
||||
int _val3 = 0;
|
||||
int _val4 = 0;
|
||||
int _val5 = 0;
|
||||
int _val9 = 0;
|
||||
int _val10 = 0;
|
||||
bool _showingNoteCloseup = false;
|
||||
int _ripleyMode = 0;
|
||||
int _ripleyShould = 0;
|
||||
int _ttMode = 0;
|
||||
int _ttShould = 0;
|
||||
int _trigger1 = 0;
|
||||
machine *_shed = nullptr;
|
||||
machine *_shenWalker = nullptr;
|
||||
machine *_kuangWalker = nullptr;
|
||||
machine *_note = nullptr;
|
||||
machine *_pole = nullptr;
|
||||
machine *_shirt = nullptr;
|
||||
machine *_sleeve = nullptr;
|
||||
machine *_door = nullptr;
|
||||
machine *_tt = nullptr;
|
||||
machine *_ttShadow = nullptr;
|
||||
machine *_pu01 = nullptr;
|
||||
machine *_ripley = nullptr;
|
||||
machine *_shadow = nullptr;
|
||||
machine *_ttNote = nullptr;
|
||||
machine *_explosion = nullptr;
|
||||
int _rp01 = 0;
|
||||
int _rp02 = 0;
|
||||
int _ttDigShirtOff = 0;
|
||||
int _ttDigShirtOn = 0;
|
||||
int _tt03 = 0;
|
||||
int _ttD01 = 0;
|
||||
int _rp04 = 0;
|
||||
int _ripHandsBehindBack = 0;
|
||||
int _ripTalk = 0;
|
||||
int _ripHandsHips = 0;
|
||||
int _ripHandChin = 0;
|
||||
int _ripTwoHandTalk = 0;
|
||||
int _ripAction = 0;
|
||||
|
||||
void conv603a();
|
||||
void conv603b();
|
||||
void unloadSeries();
|
||||
bool takeSleeve();
|
||||
bool takeNote();
|
||||
bool takePole();
|
||||
void enter();
|
||||
void playRandomDigi(int max);
|
||||
|
||||
public:
|
||||
Room603() : Room() {}
|
||||
~Room603() override {}
|
||||
|
||||
void preload() override;
|
||||
void init() override;
|
||||
void daemon() override;
|
||||
void pre_parser() override;
|
||||
void parser() override;
|
||||
void syncGame(Common::Serializer &s) override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
1188
engines/m4/riddle/rooms/section6/room604.cpp
Normal file
1188
engines/m4/riddle/rooms/section6/room604.cpp
Normal file
File diff suppressed because it is too large
Load Diff
90
engines/m4/riddle/rooms/section6/room604.h
Normal file
90
engines/m4/riddle/rooms/section6/room604.h
Normal file
@@ -0,0 +1,90 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM604_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM604_H
|
||||
|
||||
#include "m4/riddle/rooms/room.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room604 : public Room {
|
||||
private:
|
||||
int _val1 = 0;
|
||||
int _val2 = 0;
|
||||
int _val3 = 0;
|
||||
int _val4 = 0;
|
||||
bool _suppressChatter = false;
|
||||
int _ripLowReach1 = 0;
|
||||
int _ripLowReach2 = 0;
|
||||
int _ripMedReach1 = 0;
|
||||
int _ripMedReach2 = 0;
|
||||
int _ripAction = 0;
|
||||
machine *_ripley = nullptr;
|
||||
machine *_sparkPlugTool = nullptr;
|
||||
machine *_sparkPlugWire = nullptr;
|
||||
machine *_flame = nullptr;
|
||||
machine *_shedDoor = nullptr;
|
||||
machine *_pullCord1 = nullptr;
|
||||
machine *_pullCord2 = nullptr;
|
||||
machine *_doorWireGone = nullptr;
|
||||
machine *_cord = nullptr;
|
||||
machine *_tiedWires = nullptr;
|
||||
machine *_generatorCord = nullptr;
|
||||
machine *_shadow = nullptr;
|
||||
|
||||
void daemon1();
|
||||
bool useWhaleBoneHorn();
|
||||
void takePullCord();
|
||||
void takeSparkPlugTool();
|
||||
void takeLighter();
|
||||
void pullCordPlug();
|
||||
|
||||
/**
|
||||
* This Ripley is no more! It has ceased to be! It's expired
|
||||
* and gone to meet its maker! This is a late Ripley!
|
||||
* It's a stiff! Bereft of life, it rests in peace!
|
||||
* If you hadn't nailed it to the perch, it would be
|
||||
* pushing up the daisies! It's rung down the curtain
|
||||
* and joined the choir invisible. This is an ex-Ripley!
|
||||
*/
|
||||
void killRipley();
|
||||
|
||||
void takeWire();
|
||||
|
||||
public:
|
||||
Room604() : Room() {}
|
||||
~Room604() override {}
|
||||
|
||||
void preload() override;
|
||||
void init() override;
|
||||
void daemon() override;
|
||||
void pre_parser() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
871
engines/m4/riddle/rooms/section6/room605.cpp
Normal file
871
engines/m4/riddle/rooms/section6/room605.cpp
Normal file
@@ -0,0 +1,871 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room605.h"
|
||||
#include "m4/riddle/rooms/section6/section6.h"
|
||||
#include "m4/graphics/gr_series.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
#include "m4/adv_r/adv_file.h"
|
||||
#include "m4/riddle/riddle.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room605::init() {
|
||||
if (_G(game).previous_room != KERNEL_RESTORING_GAME) {
|
||||
_trigger1 = -1;
|
||||
_walkerHidden = false;
|
||||
_val3 = 0;
|
||||
_val4 = 2;
|
||||
_val5 = 2;
|
||||
}
|
||||
|
||||
if (inv_object_is_here("OBSIDIAN DISK")) {
|
||||
_pupil = series_show("605eye", 0x600, 16);
|
||||
} else {
|
||||
hotspot_set_active("PUPIL", false);
|
||||
hotspot_set_active("OBSIDIAN DISK", false);
|
||||
}
|
||||
|
||||
if (_G(flags)[V203] == 2) {
|
||||
kernel_load_variant("605lock1");
|
||||
_ripHandsHips = series_load("RIP TREK HANDS HIPS POS2");
|
||||
_ripHandOnChin = series_load("RIP TREK HAND ON CHIN POS2");
|
||||
_ripTwoHandTalk = series_load("RIP TREK TWO HAND TALK POS2");
|
||||
_ripTalk = series_load("RIP TREK TALK");
|
||||
_605tt = series_load("605 TT");
|
||||
|
||||
} else {
|
||||
hotspot_set_active("samantha", false);
|
||||
}
|
||||
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
if (_G(flags)[V203] == 2) {
|
||||
_G(player).disable_hyperwalk = true;
|
||||
ws_walk_load_walker_series(TT_NORMAL_DIRS, TT_NORMAL_NAMES);
|
||||
ws_walk_load_shadow_series(TT_SHADOW_DIRS, TT_SHADOW_NAMES);
|
||||
_tt = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x700, false,
|
||||
triggerMachineByHashCallback, "tt");
|
||||
sendWSMessage_10000(1, _tt, _605tt, 1, 1, 200, _605tt, 1, 1, 0);
|
||||
_ttShadow = series_show("tt walker shadow 5", 0x701, 16, -1, -1, 0, 68, 476, 290);
|
||||
}
|
||||
|
||||
digi_preload("950_s28");
|
||||
break;
|
||||
|
||||
case 603:
|
||||
case 610:
|
||||
digi_preload("950_s28");
|
||||
digi_stop(3);
|
||||
digi_unload("950_s28a");
|
||||
|
||||
if (_G(flags)[V203] == 2) {
|
||||
player_set_commands_allowed(false);
|
||||
_G(player).disable_hyperwalk = true;
|
||||
ws_demand_location(_G(my_walker), 451, 368, 1);
|
||||
ws_walk(_G(my_walker), 513, 316, nullptr, -1, 10);
|
||||
|
||||
ws_walk_load_walker_series(TT_NORMAL_DIRS, TT_NORMAL_NAMES);
|
||||
ws_walk_load_shadow_series(TT_SHADOW_DIRS, TT_SHADOW_NAMES);
|
||||
_tt = triggerMachineByHash_3000(8, 9, *TT_NORMAL_DIRS, *TT_SHADOW_DIRS,
|
||||
450, 339, 1, triggerMachineByHashCallback3000, "tt walker");
|
||||
sendWSMessage_10000(_tt, 476, 290, 5, 10, 1);
|
||||
|
||||
} else {
|
||||
ws_demand_location(_G(my_walker), 451, 353, 10);
|
||||
}
|
||||
break;
|
||||
|
||||
case 608:
|
||||
digi_preload("950_s28");
|
||||
digi_stop(3);
|
||||
digi_unload("950_s28b");
|
||||
ws_demand_location(_G(my_walker), 534, 219, 7);
|
||||
ws_walk(_G(my_walker), 520, 263, nullptr, -1, 7);
|
||||
break;
|
||||
|
||||
case 623:
|
||||
ws_demand_location(_G(my_walker), -30, 272, 3);
|
||||
ws_walk(_G(my_walker), 34, 272, nullptr, 1, 3);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28");
|
||||
ws_demand_location(_G(my_walker), 451, 353, 10);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28", 3, 90);
|
||||
}
|
||||
|
||||
void Room605::daemon() {
|
||||
switch (_G(kernel).trigger) {
|
||||
case 1:
|
||||
player_set_commands_allowed(true);
|
||||
break;
|
||||
|
||||
case 10:
|
||||
sendWSMessage_60000(_tt);
|
||||
_tt = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x700, false,
|
||||
triggerMachineByHashCallback, "tt");
|
||||
sendWSMessage_10000(1, _tt, _605tt, 222, 234, 11, _605tt, 1, 1, 0);
|
||||
_ttShadow = series_show("tt walker shadow 5", 0x701, 16, -1,
|
||||
-1, 0, 68, 476, 290);
|
||||
break;
|
||||
|
||||
case 11:
|
||||
kernel_timing_trigger(1, 200);
|
||||
_ttMode = 0;
|
||||
_ttShould = 1;
|
||||
digi_play("605t01", 1, 255, 12);
|
||||
break;
|
||||
|
||||
case 12:
|
||||
setGlobals1(_ripHandOnChin, 1, 16, 16, 16);
|
||||
sendWSMessage_110000(-1);
|
||||
digi_play("605r01", 1, 255, 15);
|
||||
break;
|
||||
|
||||
case 15:
|
||||
_ttShould = 3;
|
||||
digi_play("605t02", 1, 255, 17);
|
||||
break;
|
||||
|
||||
case 17:
|
||||
_ttShould = 0;
|
||||
kernel_timing_trigger(1, 200);
|
||||
sendWSMessage_140000(18);
|
||||
break;
|
||||
|
||||
case 18:
|
||||
_G(player).disable_hyperwalk = false;
|
||||
player_set_commands_allowed(true);
|
||||
break;
|
||||
|
||||
case 200:
|
||||
if (!_ttMode && !_ttShould && _trigger1 != -1) {
|
||||
kernel_trigger_dispatchx(_trigger1);
|
||||
_trigger1 = -1;
|
||||
|
||||
if (_walkerHidden) {
|
||||
ws_unhide_walker();
|
||||
_walkerHidden = false;
|
||||
}
|
||||
}
|
||||
|
||||
kernel_trigger_dispatchx(kernel_trigger_create(201));
|
||||
break;
|
||||
|
||||
case 201:
|
||||
switch (_ttMode) {
|
||||
case 0:
|
||||
switch (_ttShould) {
|
||||
case 0:
|
||||
sendWSMessage_10000(1, _tt, _605tt, 1, 1, 200, _605tt, 1, 1, 0);
|
||||
_ttShould = 0;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
sendWSMessage_10000(1, _tt, _605tt, 2, 12, 202, _605tt, 12, 12, 0);
|
||||
sendWSMessage_190000(_tt, 7);
|
||||
_ttShould = 0;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
sendWSMessage_10000(1, _tt, _605tt, 13, 13, -1, _605tt, 13, 30, 4);
|
||||
break;
|
||||
|
||||
case 5:
|
||||
sendWSMessage_10000(1, _tt, _605tt, 31, 37, 200, _605tt, 38, 38, 0);
|
||||
_ttMode = 4;
|
||||
break;
|
||||
|
||||
case 6:
|
||||
case 7:
|
||||
sendWSMessage_10000(1, _tt, _605tt, 58, 66, 200, _605tt, 67, 67, 0);
|
||||
break;
|
||||
|
||||
case 8:
|
||||
sendWSMessage_10000(1, _tt, _605tt, 134, 221, 207, _605tt, 221, 221, 0);
|
||||
_ttShould = 3;
|
||||
break;
|
||||
|
||||
case 9:
|
||||
sendWSMessage_10000(1, _tt, _605tt, 85, 93, 200, _605tt, 93, 93, 0);
|
||||
_ttMode = 9;
|
||||
break;
|
||||
|
||||
case 10:
|
||||
sendWSMessage_10000(1, _tt, _605tt, 234, 222, 203, _605tt, 222, 222, 0);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 4:
|
||||
switch (_ttShould) {
|
||||
case 4:
|
||||
sendWSMessage_10000(1, _tt, _605tt, 38, 38, -1, _605tt, 38, 43, 4);
|
||||
sendWSMessage_1a0000(_tt, 13);
|
||||
break;
|
||||
|
||||
case 5:
|
||||
sendWSMessage_10000(1, _tt, _605tt, 38, 38, 200, _605tt, 38, 38, 0);
|
||||
break;
|
||||
|
||||
default:
|
||||
sendWSMessage_10000(1, _tt, _605tt, 44, 49, 200, _605tt, 1, 1, 0);
|
||||
_ttMode = 0;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 6:
|
||||
switch (_ttShould) {
|
||||
case 6:
|
||||
sendWSMessage_10000(1, _tt, _605tt, 67, 67, -1, _605tt, 67, 76, 4);
|
||||
sendWSMessage_1a0000(_tt, 13);
|
||||
break;
|
||||
|
||||
case 7:
|
||||
sendWSMessage_10000(1, _tt, _605tt, 67, 67, 200, _605tt, 67, 67, 0);
|
||||
break;
|
||||
|
||||
default:
|
||||
sendWSMessage_10000(1, _tt, _605tt, 77, 86, 200, _605tt, 1, 1, 0);
|
||||
_ttMode = 0;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 9:
|
||||
if (_ttShould == 9) {
|
||||
sendWSMessage_10000(1, _tt, _605tt, 93, 93, 200, _605tt, 93, 93, 0);
|
||||
} else {
|
||||
sendWSMessage_10000(1, _tt, _605tt, 93, 85, 200, _605tt, 1, 1, 0);
|
||||
_ttMode = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 202:
|
||||
sendWSMessage_10000(1, _tt, _605tt, 12, 1, 200, _605tt, 1, 1, 0);
|
||||
sendWSMessage_190000(_tt, 7);
|
||||
break;
|
||||
|
||||
case 203:
|
||||
terminateMachineAndNull(_tt);
|
||||
terminateMachineAndNull(_ttShadow);
|
||||
_tt = triggerMachineByHash_3000(8, 9, *TT_NORMAL_DIRS, *TT_SHADOW_DIRS,
|
||||
476, 290, 5, triggerMachineByHashCallback3000, "tt walker");
|
||||
sendWSMessage_10000(_tt, 485, 199, 2, 208, 0);
|
||||
digi_play("19_07n04", 1, 255, 206);
|
||||
kernel_timing_trigger(420, 205);
|
||||
kernel_timing_trigger(20, 204);
|
||||
break;
|
||||
|
||||
case 204:
|
||||
_G(player).disable_hyperwalk = true;
|
||||
sendWSMessage_10000(_G(my_walker), 490, 187, 2, 210, 0);
|
||||
break;
|
||||
|
||||
case 205:
|
||||
disable_player_commands_and_fade_init(-1);
|
||||
break;
|
||||
|
||||
case 206:
|
||||
adv_kill_digi_between_rooms(false);
|
||||
digi_play_loop("950_s28", 3, 90);
|
||||
_G(game).setRoom(608);
|
||||
break;
|
||||
|
||||
case 207:
|
||||
sendWSMessage_10000(1, _tt, _605tt, 222, 234, 200, _605tt, 1, 1, 0);
|
||||
break;
|
||||
|
||||
case 208:
|
||||
sendWSMessage_10000(_tt, 498, 189, 3, 209, 0);
|
||||
break;
|
||||
|
||||
case 209:
|
||||
sendWSMessage_10000(_tt, 670, 183, 3, -1, 1);
|
||||
break;
|
||||
|
||||
case 210:
|
||||
sendWSMessage_10000(_G(my_walker), 639, 171, 3, 211, 0);
|
||||
break;
|
||||
|
||||
case 211:
|
||||
ws_walk(_G(my_walker), 680, 183, nullptr, -1, 3);
|
||||
break;
|
||||
|
||||
case 300:
|
||||
if (!_ripleyMode && !_ripleyShould && _trigger1 != -1) {
|
||||
kernel_trigger_dispatchx(_trigger1);
|
||||
_trigger1 = -1;
|
||||
|
||||
if (_walkerHidden) {
|
||||
ws_unhide_walker();
|
||||
_walkerHidden = false;
|
||||
}
|
||||
}
|
||||
|
||||
kernel_trigger_dispatchx(kernel_trigger_create(301));
|
||||
break;
|
||||
|
||||
case 301:
|
||||
switch (_ripleyMode) {
|
||||
case 0:
|
||||
switch (_ripleyShould) {
|
||||
case 0:
|
||||
sendWSMessage_10000(1, _ripley, 1, 1, 1, 300, 1, 1, 1, 0);
|
||||
break;
|
||||
case 1:
|
||||
sendWSMessage_10000(1, _ripley, _ripTwoHandTalk, 1, 6, 300,
|
||||
_ripTwoHandTalk, 6, 6, 0);
|
||||
_ripleyMode = 1;
|
||||
break;
|
||||
case 2:
|
||||
sendWSMessage_10000(1, _ripley, _ripHandOnChin, 1, 16, 300,
|
||||
_ripHandOnChin, 16, 16, 0);
|
||||
_ripleyMode = 2;
|
||||
break;
|
||||
case 3:
|
||||
sendWSMessage_10000(1, _ripley, _ripHandsHips, 1, 12, 300,
|
||||
_ripHandsHips, 12, 12, 0);
|
||||
_ripleyMode = 3;
|
||||
break;
|
||||
case 5:
|
||||
terminateMachineAndNull(_ripley);
|
||||
ws_unhide_walker();
|
||||
terminateMachineAndNull(_shadow);
|
||||
break;
|
||||
case 6:
|
||||
sendWSMessage_10000(1, _ripley, _ripTalk, 1, 1, -1, _ripTalk, 1, 7, 4);
|
||||
sendWSMessage_1a0000(_ripley, 11);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 1:
|
||||
if (_ripleyShould == 1) {
|
||||
sendWSMessage_10000(1, _ripley, _ripTwoHandTalk, 6, 6, 300,
|
||||
_ripTwoHandTalk, 6, 6, 0);
|
||||
} else {
|
||||
sendWSMessage_10000(1, _ripley, _ripTwoHandTalk, 6, 1, 300, 1, 1, 1, 0);
|
||||
_ripleyMode = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if (_ripleyShould == 2) {
|
||||
sendWSMessage_10000(1, _ripley, _ripHandOnChin, 16, 16, 300,
|
||||
_ripHandOnChin, 16, 16, 0);
|
||||
} else {
|
||||
sendWSMessage_10000(1, _ripley, _ripHandOnChin, 16, 1, 300, 1, 1, 1, 0);
|
||||
_ripleyMode = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case 3:
|
||||
if (_ripleyShould == 3) {
|
||||
sendWSMessage_10000(1, _ripley, _ripHandsHips, 12, 12, 300,
|
||||
_ripHandsHips, 12, 12, 0);
|
||||
} else {
|
||||
sendWSMessage_10000(1, _ripley, _ripHandsHips, 12, 1, 300, 1, 1, 1, 0);
|
||||
_ripleyMode = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void Room605::pre_parser() {
|
||||
if (player_said_any("down", "left", "right") && _G(flags)[V203] == 2) {
|
||||
player_set_commands_allowed(false);
|
||||
intr_cancel_sentence();
|
||||
|
||||
conv_load("conv605a", 10, 10, 747);
|
||||
conv_set_text_colour(12, 16);
|
||||
conv_set_shading(75);
|
||||
|
||||
conv_export_value_curr(_G(flags)[V195] ? 1 : 0, 0);
|
||||
conv_export_value_curr(2, 1);
|
||||
conv_play();
|
||||
_ttShould = 3;
|
||||
}
|
||||
}
|
||||
|
||||
void Room605::parser() {
|
||||
const bool lookFlag = player_said_any("look", "look at");
|
||||
const bool talkFlag = player_said_any("talk", "talk to");
|
||||
const bool takeFlag = player_said("take");
|
||||
|
||||
if (player_said("conv605a")) {
|
||||
conv605a();
|
||||
} else if (talkFlag && player_said("samantha")) {
|
||||
player_set_commands_allowed(false);
|
||||
player_update_info();
|
||||
ws_hide_walker();
|
||||
_ripley = TriggerMachineByHash(1, 1, 0, 0, 0, 0,
|
||||
_G(player_info).x, _G(player_info).y, _G(player_info).scale + 1,
|
||||
0x100, true, triggerMachineByHashCallback, "rip");
|
||||
|
||||
_G(kernel).trigger_mode = KT_DAEMON;
|
||||
sendWSMessage_10000(1, _ripley, 1, 1, 1, 300, 1, 1, 1, 0);
|
||||
_G(kernel).trigger_mode = KT_PARSE;
|
||||
|
||||
_ripleyMode = 0;
|
||||
_ripleyShould = 0;
|
||||
_shadow = series_show("safari shadow 2", 0xd00, 16, -1, -1, 0,
|
||||
-_G(player_info).scale, _G(player_info).x, _G(player_info).y);
|
||||
conv_load("conv605a", 10, 10, 747);
|
||||
conv_play();
|
||||
|
||||
} else if (_G(kernel).trigger == 747) {
|
||||
// No implementation
|
||||
} else if (takeFlag && player_said_any("pupil", "obsidian disk") &&
|
||||
_G(flags)[V203] != 2 && takePupilDisk()) {
|
||||
// No implementation
|
||||
} else if (player_said("SLEEVE") && player_said_any("pupil", "OBSIDIAN DISK") &&
|
||||
_G(flags)[V203] == 2 && sleeveDisk1()) {
|
||||
// No implementation
|
||||
} else if (player_said("SLEEVE") && player_said_any("pupil", "OBSIDIAN DISK") &&
|
||||
_G(flags)[V203] != 2 && sleeveDisk2()) {
|
||||
// No implementation
|
||||
} else if (player_said("journal", "glyphs")) {
|
||||
if (_G(flags)[V196]) {
|
||||
digi_play("203r54", 1);
|
||||
} else {
|
||||
if (_G(kernel).trigger == 6)
|
||||
_G(flags)[V196] = 1;
|
||||
sketchInJournal(nullptr);
|
||||
}
|
||||
} else if (lookFlag && player_said("head")) {
|
||||
digi_play("605r03", 1);
|
||||
} else if (lookFlag && player_said("glyphs")) {
|
||||
digi_play("605r35", 1);
|
||||
} else if (lookFlag && player_said("SAMANTHA")) {
|
||||
static const char *DIGI[4] = { "605r05", "605r06", "605r07", "605r08" };
|
||||
digi_play(DIGI[imath_ranged_rand(0, 3)], 1);
|
||||
} else if (lookFlag && player_said("topknot")) {
|
||||
if (_G(flags)[V203] == 2) {
|
||||
switch (_G(kernel).trigger) {
|
||||
case -1:
|
||||
player_set_commands_allowed(false);
|
||||
_ttShould = 5;
|
||||
digi_play("605r04", 1, 255, 1);
|
||||
break;
|
||||
case 1:
|
||||
_ttShould = 4;
|
||||
digi_play("605t03", 1, 255, 2);
|
||||
break;
|
||||
case 2:
|
||||
_ttShould = 0;
|
||||
kernel_timing_trigger(1, 200, KT_DAEMON, KT_PARSE);
|
||||
player_set_commands_allowed(true);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
digi_play("605r26", 1);
|
||||
}
|
||||
} else if (lookFlag && player_said("LEFT")) {
|
||||
if (_G(flags)[V000]) {
|
||||
if (_G(flags)[V186])
|
||||
digi_play("305r53", 1);
|
||||
else
|
||||
_G(flags)[V185] = 1;
|
||||
} else {
|
||||
digi_play("305r53", 1);
|
||||
}
|
||||
} else if (lookFlag && player_said("up")) {
|
||||
if (_G(flags)[V000]) {
|
||||
if (_G(flags)[V184])
|
||||
digi_play("305r53", 1);
|
||||
else
|
||||
_G(flags)[V184] = 1;
|
||||
} else {
|
||||
digi_play("305r53", 1);
|
||||
}
|
||||
} else if (lookFlag && player_said_any("pupil", "OBSIDIAN DISK") &&
|
||||
inv_object_is_here("OBSIDIAN DISK")) {
|
||||
digi_play(_G(flags)[V203] == 2 ? "605r09" : "605r27", 1);
|
||||
|
||||
} else if (parserMisc()) {
|
||||
// No implementation
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
_G(player).command_ready = false;
|
||||
}
|
||||
|
||||
void Room605::conv605a() {
|
||||
const char *sound = conv_sound_to_play();
|
||||
const int who = conv_whos_talking();
|
||||
const int node = conv_current_node();
|
||||
const int entry = conv_current_entry();
|
||||
|
||||
switch (_G(kernel).trigger) {
|
||||
case 1:
|
||||
if (who <= 0) {
|
||||
if (node == 1 && entry == 0)
|
||||
_ripleyShould = 0;
|
||||
if (node == 2 && entry == 0) {
|
||||
kernel_timing_trigger(60, 4);
|
||||
return;
|
||||
}
|
||||
if (_ttShould == 3)
|
||||
kernel_timing_trigger(1, 200, KT_DAEMON, KT_PARSE);
|
||||
|
||||
_ttShould = 0;
|
||||
|
||||
} else if (who == 1) {
|
||||
if (!(node == 6 && entry == 2) &&
|
||||
!(node == 1 && entry == 0) &&
|
||||
!(node == 2 && entry == 3)) {
|
||||
if (_ripleyShould == 6)
|
||||
kernel_timing_trigger(1, 300, KT_DAEMON, KT_PARSE);
|
||||
_ripleyShould = 0;
|
||||
}
|
||||
}
|
||||
|
||||
conv_resume();
|
||||
break;
|
||||
|
||||
case 2:
|
||||
ws_walk(_G(my_walker), 513, 316, nullptr, 3, 10);
|
||||
return;
|
||||
|
||||
case 3:
|
||||
player_update_info();
|
||||
ws_hide_walker();
|
||||
_ripley = TriggerMachineByHash(1, 1, 0, 0, 0, 0,
|
||||
_G(player_info).x, _G(player_info).y, _G(player_info).scale + 1,
|
||||
0x100, true, triggerMachineByHashCallback, "rip");
|
||||
|
||||
_G(kernel).trigger_mode = KT_DAEMON;
|
||||
sendWSMessage_10000(1, _ripley, 1, 1, 1, 300, 1, 1, 1, 0);
|
||||
_G(kernel).trigger_mode = KT_PARSE;
|
||||
|
||||
_ripleyMode = 0;
|
||||
_ripleyShould = 0;
|
||||
_shadow = series_show("safari shadow 2", 0xd00, 16, -1, -1, 0,
|
||||
-_G(player_info).scale, _G(player_info).x, _G(player_info).y);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
conv_resume();
|
||||
_ttShould = 0;
|
||||
break;
|
||||
|
||||
case 5:
|
||||
_ripleyShould = 0;
|
||||
break;
|
||||
|
||||
default:
|
||||
if (sound) {
|
||||
if (who <= 0) {
|
||||
if (node == 6 && entry == 3) {
|
||||
_ttShould = 8;
|
||||
} else if (node == 6 && entry == 4) {
|
||||
_ttShould = 10;
|
||||
_ripleyShould = 5;
|
||||
return;
|
||||
} else if (node == 3 && entry == 0) {
|
||||
kernel_timing_trigger(120, 2);
|
||||
} else if (node == 2 && entry == 0) {
|
||||
_ttShould = 9;
|
||||
} else {
|
||||
_ttShould = 3;
|
||||
}
|
||||
} else if (who == 1) {
|
||||
if (node == 6 && entry == 2) {
|
||||
_ripleyShould = 3;
|
||||
} else if (node == 6 && entry == 1) {
|
||||
_ripleyShould = 1;
|
||||
} else if ((node == 1 && entry == 0) ||
|
||||
(node == 2 && entry == 3)) {
|
||||
_ripleyShould = 2;
|
||||
} else if (node == 2 && entry == 1) {
|
||||
_ripleyShould = 1;
|
||||
kernel_timing_trigger(60, 5);
|
||||
} else {
|
||||
_ripleyShould = 6;
|
||||
}
|
||||
}
|
||||
|
||||
digi_play(sound, 1, 255, 1);
|
||||
|
||||
} else {
|
||||
conv_resume();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool Room605::takePupilDisk() {
|
||||
switch (_G(kernel).trigger) {
|
||||
case -1:
|
||||
if (inv_object_is_here("OBSIDIAN DISK")) {
|
||||
player_set_commands_allowed(false);
|
||||
_ripHandOnIris = series_load("RIP BURNS HAND ON IRIS");
|
||||
ws_hide_walker();
|
||||
_ripley = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, false,
|
||||
triggerMachineByHashCallback, "take pupil");
|
||||
sendWSMessage_10000(1, _ripley, _ripHandOnIris, 1, 26, 2,
|
||||
_ripHandOnIris, 26, 26, 1);
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
|
||||
case 2:
|
||||
sendWSMessage_10000(1, _ripley, _ripHandOnIris, 27, 41, 6,
|
||||
_ripHandOnIris, 41, 41, 1);
|
||||
digi_play("605r15", 1, 255, 3);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
digi_play(_G(flags)[V197] ? "605r33" : "605r32", 1);
|
||||
break;
|
||||
|
||||
case 6:
|
||||
terminateMachineAndNull(_ripley);
|
||||
series_unload(_ripHandOnIris);
|
||||
ws_unhide_walker();
|
||||
player_set_commands_allowed(true);
|
||||
break;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Room605::sleeveDisk1() {
|
||||
switch (_G(kernel).trigger) {
|
||||
case -1:
|
||||
if (inv_object_is_here("OBSIDIAN DISK")) {
|
||||
player_set_commands_allowed(false);
|
||||
ws_hide_walker();
|
||||
_ripGetsIrisWithCloth = series_load("RIP GETS IRIS WITH CLOTH");
|
||||
digi_preload("605_s01");
|
||||
digi_preload("605_s02");
|
||||
_ripley = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, false,
|
||||
triggerMachineByHashCallback, "take pupil");
|
||||
sendWSMessage_10000(1, _ripley, _ripGetsIrisWithCloth, 1, 41, 1,
|
||||
_ripGetsIrisWithCloth, 41, 41, 1);
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
|
||||
case 1:
|
||||
sendWSMessage_10000(1, _ripley, _ripGetsIrisWithCloth, 42, 43, 3,
|
||||
_ripGetsIrisWithCloth, 43, 43, 1);
|
||||
_ttShould = 7;
|
||||
digi_play("605_S01", 2);
|
||||
return true;
|
||||
|
||||
case 3:
|
||||
terminateMachineAndNull(_pupil);
|
||||
inv_give_to_player("OBSIDIAN DISK");
|
||||
hotspot_set_active("PUPIL", false);
|
||||
hotspot_set_active("OBSIDIAN DISK", false);
|
||||
sendWSMessage_10000(1, _ripley, _ripGetsIrisWithCloth, 44, 75, 6,
|
||||
_ripGetsIrisWithCloth, 75, 75, 1);
|
||||
return true;
|
||||
|
||||
case 6:
|
||||
terminateMachineAndNull(_ripley);
|
||||
ws_unhide_walker();
|
||||
digi_play("605r16", 1, 255, 8);
|
||||
return true;
|
||||
|
||||
case 8:
|
||||
_ttShould = 6;
|
||||
digi_play("605t07", 1, 255, 9);
|
||||
return true;
|
||||
|
||||
case 9:
|
||||
_ttShould = 7;
|
||||
kernel_timing_trigger(1, 200, KT_DAEMON, KT_PARSE);
|
||||
_ripley = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, false,
|
||||
triggerMachineByHashCallback, "take pupil");
|
||||
sendWSMessage_10000(1, _ripley, _ripGetsIrisWithCloth, 1, 41, 10,
|
||||
_ripGetsIrisWithCloth, 41, 41, 1);
|
||||
return true;
|
||||
|
||||
case 10:
|
||||
sendWSMessage_10000(1, _ripley, _ripGetsIrisWithCloth, 42, 43, 11,
|
||||
_ripGetsIrisWithCloth, 43, 43, 1);
|
||||
digi_play("605_S02", 2);
|
||||
return true;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Room605::sleeveDisk2() {
|
||||
switch (_G(kernel).trigger) {
|
||||
case -1:
|
||||
if (inv_object_is_here("OBSIDIAN DISK")) {
|
||||
player_set_commands_allowed(false);
|
||||
ws_hide_walker();
|
||||
_ripGetsIrisWithCloth = series_load("RIP GETS IRIS WITH CLOTH");
|
||||
digi_preload("605_s01");
|
||||
_ripley = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, false,
|
||||
triggerMachineByHashCallback, "take pupil");
|
||||
sendWSMessage_10000(1, _ripley, _ripGetsIrisWithCloth, 1, 41, 1,
|
||||
_ripGetsIrisWithCloth, 41, 41, 1);
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
|
||||
case 1:
|
||||
sendWSMessage_10000(1, _ripley, _ripGetsIrisWithCloth, 42, 43, 2,
|
||||
_ripGetsIrisWithCloth, 43, 43, 1);
|
||||
digi_play("605_S01", 2);
|
||||
return true;
|
||||
|
||||
case 2:
|
||||
hotspot_set_active("PUPIL", false);
|
||||
hotspot_set_active("OBSIDIAN DISK", false);
|
||||
inv_give_to_player("OBSIDIAN DISK");
|
||||
kernel_examine_inventory_object("PING OBSIDIAN DISK", 5, 1, 260, 190, 3);
|
||||
terminateMachineAndNull(_pupil);
|
||||
return true;
|
||||
|
||||
case 3:
|
||||
sendWSMessage_10000(1, _ripley, _ripGetsIrisWithCloth, 44, 75, 6,
|
||||
_ripGetsIrisWithCloth, 75, 75, 1);
|
||||
return true;
|
||||
|
||||
case 6:
|
||||
digi_unload("605_s01");
|
||||
terminateMachineAndNull(_ripley);
|
||||
series_unload(_ripGetsIrisWithCloth);
|
||||
ws_unhide_walker();
|
||||
player_set_commands_allowed(true);
|
||||
return true;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Room605::parserMisc() {
|
||||
switch (_G(kernel).trigger) {
|
||||
case 555:
|
||||
digi_stop(1);
|
||||
midi_play("tensions", 255, true, -1, 949);
|
||||
adv_kill_digi_between_rooms(false);
|
||||
digi_play_loop("950_s28", 3, 90);
|
||||
_G(game).setRoom(610);
|
||||
break;
|
||||
|
||||
case 556:
|
||||
digi_stop(1);
|
||||
adv_kill_digi_between_rooms(false);
|
||||
digi_play_loop("950_s28", 3, 90);
|
||||
_G(game).setRoom(603);
|
||||
break;
|
||||
|
||||
case 557:
|
||||
digi_stop(1);
|
||||
adv_kill_digi_between_rooms(false);
|
||||
digi_play_loop("950_s28", 3, 90);
|
||||
_G(game).setRoom(608);
|
||||
break;
|
||||
|
||||
case 558:
|
||||
digi_stop(1);
|
||||
adv_kill_digi_between_rooms(false);
|
||||
digi_play_loop("950_s28", 3, 90);
|
||||
_G(game).setRoom(623);
|
||||
break;
|
||||
|
||||
default:
|
||||
if (player_said_any("down", "left", "right")) {
|
||||
if (_G(flags)[V203] != 2) {
|
||||
if (player_said("down")) {
|
||||
player_set_commands_allowed(false);
|
||||
disable_player_commands_and_fade_init(
|
||||
_G(flags)[V203] == 8 ? 555 : 556);
|
||||
}
|
||||
|
||||
if (player_said("right")) {
|
||||
player_set_commands_allowed(false);
|
||||
disable_player_commands_and_fade_init(557);
|
||||
}
|
||||
|
||||
if (player_said("left")) {
|
||||
player_set_commands_allowed(false);
|
||||
disable_player_commands_and_fade_init(558);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void Room605::syncGame(Common::Serializer &s) {
|
||||
s.syncAsSint32LE(_ripleyMode);
|
||||
s.syncAsSint32LE(_ripleyShould);
|
||||
s.syncAsSint32LE(_ttMode);
|
||||
s.syncAsSint32LE(_ttShould);
|
||||
s.syncAsSint32LE(_val3);
|
||||
s.syncAsSint32LE(_val4);
|
||||
s.syncAsSint32LE(_val5);
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
76
engines/m4/riddle/rooms/section6/room605.h
Normal file
76
engines/m4/riddle/rooms/section6/room605.h
Normal file
@@ -0,0 +1,76 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM605_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM605_H
|
||||
|
||||
#include "m4/riddle/rooms/room.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room605 : public Room {
|
||||
private:
|
||||
int _trigger1 = 0;
|
||||
bool _walkerHidden = false;
|
||||
int _ripleyMode = 0;
|
||||
int _ripleyShould = 0;
|
||||
int _val3 = 0;
|
||||
int _val4 = 0;
|
||||
int _val5 = 0;
|
||||
int _ttShould = 0;
|
||||
int _ttMode = 0;
|
||||
int _ripHandsHips = 0;
|
||||
int _ripHandOnChin = 0;
|
||||
int _ripTwoHandTalk = 0;
|
||||
int _ripTalk = 0;
|
||||
int _ripGetsIrisWithCloth = 0;
|
||||
int _ripHandOnIris = 0;
|
||||
int _605tt = 0;
|
||||
machine *_pupil = nullptr;
|
||||
machine *_ripley = nullptr;
|
||||
machine *_tt = nullptr;
|
||||
machine *_ttShadow = nullptr;
|
||||
machine *_shadow = nullptr;
|
||||
|
||||
void conv605a();
|
||||
bool takePupilDisk();
|
||||
bool sleeveDisk1();
|
||||
bool sleeveDisk2();
|
||||
bool parserMisc();
|
||||
|
||||
public:
|
||||
Room605() : Room() {}
|
||||
~Room605() override {}
|
||||
|
||||
void init() override;
|
||||
void daemon() override;
|
||||
void pre_parser() override;
|
||||
void parser() override;
|
||||
void syncGame(Common::Serializer &s) override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
394
engines/m4/riddle/rooms/section6/room607.cpp
Normal file
394
engines/m4/riddle/rooms/section6/room607.cpp
Normal file
@@ -0,0 +1,394 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room607.h"
|
||||
#include "m4/graphics/gr_series.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room607::preload() {
|
||||
_G(player).walker_type = 1;
|
||||
_G(player).shadow_type = 1;
|
||||
}
|
||||
|
||||
void Room607::init() {
|
||||
_ripKicksRock = series_load("RIPLEY KICKS ROCK");
|
||||
_ripMakesMud = series_load("RIPLEY MAKES MUD");
|
||||
_ripLowReach = series_load("RIP LOW REACH POS1");
|
||||
digi_preload("950_s37a");
|
||||
digi_preload("607_s02");
|
||||
digi_preload("607_s01");
|
||||
|
||||
if (inv_object_is_here("RONGORONGO TABLET"))
|
||||
_tablet = series_show("607tab", 0x800, 16);
|
||||
|
||||
if (_G(flags)[V193]) {
|
||||
_mud = series_show("CLAY MUD", 0x700, 16);
|
||||
_rock = series_show("ROCK BOTTOM", 0x700, 16);
|
||||
hotspot_set_active("GREY ROCK", false);
|
||||
|
||||
if (!_G(flags)[V194] || !inv_object_is_here("RONGORONGO TABLET"))
|
||||
hotspot_set_active("RONGORONGO TABLET", true);
|
||||
|
||||
} else {
|
||||
_rock = series_show("ROCK TOP", 0x700, 16);
|
||||
|
||||
if (_G(flags)[V198] > 0)
|
||||
_mud = series_show("CLAY MUD", 0x700, 16);
|
||||
|
||||
hotspot_set_active("GREY ROCK ", false);
|
||||
hotspot_set_active("RONGORONGO TABLET", false);
|
||||
hotspot_set_active("FISSURE", false);
|
||||
}
|
||||
|
||||
switch (_G(kernel).trigger) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28C");
|
||||
break;
|
||||
|
||||
case 633:
|
||||
ws_demand_location(_G(my_walker), 316, 358, 1);
|
||||
break;
|
||||
|
||||
case 638:
|
||||
ws_demand_location(_G(my_walker), -30, 334, 3);
|
||||
ws_walk(_G(my_walker), 32, 334, nullptr, 1, 3);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 640:
|
||||
ws_demand_location(_G(my_walker), 670, 288, 9);
|
||||
ws_walk(_G(my_walker), 604, 288, nullptr, 1, 9);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 645:
|
||||
ws_demand_location(_G(my_walker), 124, 308, 5);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28C");
|
||||
ws_demand_location(_G(my_walker), 316, 358, 1);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28C", 3, 90);
|
||||
}
|
||||
|
||||
void Room607::daemon() {
|
||||
switch (_G(kernel).trigger) {
|
||||
case 1:
|
||||
player_set_commands_allowed(true);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void Room607::pre_parser() {
|
||||
const bool lookFlag = player_said_any("look", "look at");
|
||||
const bool takeFlag = player_said("take");
|
||||
const bool useFlag = player_said_any("push", "pull", "gear", "open", "close");
|
||||
|
||||
if (useFlag && player_said("GREY ROCK") && !_G(flags)[V193])
|
||||
_G(player).resetWalk();
|
||||
if (player_said("HORN/PULL CORD/WATER", "CLAY") && !_G(flags)[V193])
|
||||
_G(player).resetWalk();
|
||||
if ((lookFlag || useFlag || takeFlag) && player_said(" "))
|
||||
_G(player).resetWalk();
|
||||
}
|
||||
|
||||
void Room607::parser() {
|
||||
const bool lookFlag = player_said_any("look", "look at");
|
||||
const bool takeFlag = player_said("take");
|
||||
const bool useFlag = player_said_any("push", "pull", "gear", "open", "close");
|
||||
|
||||
if (lookFlag && player_said("FISSURE") && inv_object_is_here("RONGORONGO TABLET")) {
|
||||
hotspot_set_active("RONGORONGO TABLET", true);
|
||||
_G(flags)[V194] = 1;
|
||||
digi_play("607r05", 1);
|
||||
} else if (lookFlag && player_said("FISSURE") && !inv_object_is_here("RONGORONGO TABLET")) {
|
||||
hotspot_set_active("RONGORONGO TABLET", true);
|
||||
_G(flags)[V194] = 1;
|
||||
digi_play("607r05a", 1);
|
||||
} else if (lookFlag && player_said("CLAY")) {
|
||||
switch (_G(flags)[V198]) {
|
||||
case 0:
|
||||
digi_play("607r04", 1);
|
||||
break;
|
||||
case 1:
|
||||
digi_play("607r11", 1);
|
||||
break;
|
||||
case 2:
|
||||
digi_play("607r12", 1);
|
||||
break;
|
||||
case 3:
|
||||
digi_play("607r13", 1);
|
||||
break;
|
||||
default:
|
||||
digi_play("607r14", 1);
|
||||
break;
|
||||
}
|
||||
} else if (lookFlag && player_said(" ")) {
|
||||
digi_play("607r01", 1);
|
||||
} else if (lookFlag && player_said("RED BOULDER")) {
|
||||
digi_play("607r02", 1);
|
||||
} else if (lookFlag && player_said_any("GREY ROCK", "GREY ROCK ")) {
|
||||
digi_play("607r03", 1);
|
||||
} else if (lookFlag && player_said("RONGORONGO TABLET") &&
|
||||
inv_object_is_here("RONGORONGO TABLET")) {\
|
||||
_val1 = 1;
|
||||
digi_play("607r09", 1);
|
||||
} else if (takeFlag && player_said("CLAY")) {
|
||||
digi_play(_G(flags)[V198] ? "607r15" : "607r08", 1);
|
||||
} else if (takeFlag && player_said("RED BOULDER")) {
|
||||
digi_play("607r06", 1);
|
||||
} else if (takeFlag && player_said_any("GREY ROCK", "GREY ROCK ")) {
|
||||
digi_play("607r07", 1);
|
||||
} else if (takeFlag && player_said("RONGORONGO TABLET") &&
|
||||
inv_object_is_here("RONGORONGO TABLET")) {
|
||||
switch (_G(kernel).trigger) {
|
||||
case -1:
|
||||
player_set_commands_allowed(false);
|
||||
terminateMachineAndNull(_rock);
|
||||
_rock = series_show("ROCK BOTTOM", 0x400, 16);
|
||||
ws_walk(_G(my_walker), 360, 315, nullptr, 1, 1);
|
||||
break;
|
||||
case 1:
|
||||
ws_hide_walker();
|
||||
player_update_info();
|
||||
series_play("RIP LOW REACH POS1", 0x700, 0, 3, 5, 0,
|
||||
_G(player_info).scale, _G(player_info).x, _G(player_info).y, 0, 15);
|
||||
break;
|
||||
case 3:
|
||||
_ripReach = series_show("RIP LOW REACH POS1", 0x700, 16, -1, -1, 15,
|
||||
_G(player_info).scale, _G(player_info).x, _G(player_info).y);
|
||||
hotspot_set_active("RONGORONGO TABLET", false);
|
||||
terminateMachineAndNull(_tablet);
|
||||
kernel_examine_inventory_object("ping rongorongo tablet", 5, 1, 212, 150, 5,
|
||||
_val1 ? "607r09" : nullptr);
|
||||
_G(flags)[V203] = 8;
|
||||
break;
|
||||
case 5:
|
||||
terminateMachineAndNull(_ripReach);
|
||||
series_play("RIP LOW REACH POS1", 0x700, 2, 7, 5, 0,
|
||||
_G(player_info).scale, _G(player_info).x, _G(player_info).y, 0, 15);
|
||||
break;
|
||||
case 7:
|
||||
ws_unhide_walker();
|
||||
ws_walk(_G(my_walker), 383, 319, nullptr, 9, 0);
|
||||
break;
|
||||
case 9:
|
||||
terminateMachineAndNull(_rock);
|
||||
_rock = series_show("ROCK BOTTOM", 0x700, 16);
|
||||
inv_give_to_player("RONGORONGO TABLET");
|
||||
player_set_commands_allowed(true);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
} else if (useFlag && player_said("GREY ROCK") && !_G(flags)[V193]) {
|
||||
switch (_G(kernel).trigger) {
|
||||
case -1:
|
||||
ws_walk(_G(my_walker), 431, 311, nullptr, 2, 9);
|
||||
break;
|
||||
case 2:
|
||||
player_set_commands_allowed(false);
|
||||
ws_hide_walker();
|
||||
terminateMachineAndNull(_rock);
|
||||
|
||||
if (_G(flags)[V198] > 3) {
|
||||
series_play("RIPLEY KICKS ROCK", 0x200, 0, 6, 5, 0, 100, 0, 0, 0, 20);
|
||||
} else {
|
||||
if (!_G(flags)[V198])
|
||||
_mud = series_show("607 NOMUD", 0x100, 16);
|
||||
series_play("RIPLEY KICKS ROCK", 0x200, 0, 3, 5, 0, 100, 0, 0, 0, 20);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
series_play("RIPLEY KICKS ROCK", 0x200, 0, 4, 5, 0, 100, 0, 0, 21, 24);
|
||||
digi_play("950_s37", 1);
|
||||
break;
|
||||
case 4:
|
||||
series_play("RIPLEY KICKS ROCK", 0x200, 2, 5, 5, 0, 100, 0, 0, 0, 24);
|
||||
break;
|
||||
case 5:
|
||||
digi_unload("950_s37");
|
||||
_rock = series_show("ROCK TOP", 0x700, 16);
|
||||
|
||||
if (!_G(flags)[V198])
|
||||
terminateMachineAndNull(_mud);
|
||||
|
||||
ws_unhide_walker();
|
||||
player_set_commands_allowed(true);
|
||||
break;
|
||||
case 6:
|
||||
series_play("RIPLEY KICKS ROCK", 0x200, 0, 8, 5, 0, 100, 0, 0, 21, 26);
|
||||
digi_play("950_s37a", 1);
|
||||
break;
|
||||
case 7:
|
||||
_rock = series_show("ROCK BOTTOM", 0x700, 16);
|
||||
digi_stop(1);
|
||||
digi_stop(2);
|
||||
digi_unload("950_s37a");
|
||||
digi_unload("607_s02");
|
||||
hotspot_set_active("GREY ROCK", false);
|
||||
hotspot_set_active("GREY ROCK ", true);
|
||||
hotspot_set_active("FISSURE", true);
|
||||
_G(flags)[V193] = 1;
|
||||
ws_unhide_walker();
|
||||
player_set_commands_allowed(true);
|
||||
break;
|
||||
case 8:
|
||||
series_play("RIPLEY KICKS ROCK", 0x200, 0, 7, 5, 0, 100, 0, 0, 27, 42);
|
||||
digi_play("607_s02", 2);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
} else if (player_said("HORN/PULL CORD/WATER", "CLAY") && !_G(flags)[V193]) {
|
||||
switch (_G(kernel).trigger) {
|
||||
case -1:
|
||||
ws_walk(_G(my_walker), 311, 349, nullptr, 1, 1);
|
||||
break;
|
||||
case 1:
|
||||
player_set_commands_allowed(false);
|
||||
ws_hide_walker();
|
||||
player_update_info();
|
||||
_ripReach = series_show("SAFARI SHADOW 1", 0x700, 16, -1, -1, 0,
|
||||
_G(player_info).scale + 1, _G(player_info).x, _G(player_info).y);
|
||||
series_play("RIPLEY MAKES MUD", 0x100, 0, 2, 5, 0, 100, 0, 0, 0, 12);
|
||||
break;
|
||||
case 2:
|
||||
series_play("RIPLEY MAKES MUD", 0x100, 0, 7, 5, 0, 100, 0, 0, 13, 42);
|
||||
digi_play("607_s01", 2);
|
||||
break;
|
||||
case 7:
|
||||
_G(flags)[V198] = 4;
|
||||
_mud = series_show("CLAY MUD", 0x700, 16);
|
||||
|
||||
switch (_G(flags)[V198]) {
|
||||
case 1:
|
||||
digi_play("607r11", 1);
|
||||
break;
|
||||
case 2:
|
||||
digi_play("607r12", 1);
|
||||
break;
|
||||
case 3:
|
||||
digi_play("607r13", 1);
|
||||
break;
|
||||
default:
|
||||
inv_move_object("HORN/PULL CORD/WATER", 997);
|
||||
inv_give_to_player("HORN/PULL CORD");
|
||||
digi_play("607r14", 1);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_stop(2);
|
||||
digi_unload("607_s01");
|
||||
terminateMachineAndNull(_ripReach);
|
||||
ws_unhide_walker();
|
||||
player_set_commands_allowed(true);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
} else if (useFlag && player_said("RED BOULDER")) {
|
||||
digi_play("607r10", 1);
|
||||
} else if (player_said("left") && left()) {
|
||||
// No implementation
|
||||
} else if (player_said("right") && right()) {
|
||||
// No implementation
|
||||
} else if (player_said("down") && down()) {
|
||||
// No implementation
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
_G(player).command_ready = false;
|
||||
}
|
||||
|
||||
bool Room607::left() {
|
||||
switch (_G(kernel).trigger) {
|
||||
case -1:
|
||||
player_set_commands_allowed(false);
|
||||
disable_player_commands_and_fade_init(1);
|
||||
return true;
|
||||
case 1:
|
||||
digi_stop(1);
|
||||
digi_stop(2);
|
||||
adv_kill_digi_between_rooms(false);
|
||||
digi_play_loop("950_s28C", 3, 90);
|
||||
_G(game).setRoom(638);
|
||||
return true;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Room607::right() {
|
||||
switch (_G(kernel).trigger) {
|
||||
case -1:
|
||||
player_set_commands_allowed(false);
|
||||
disable_player_commands_and_fade_init(1);
|
||||
return true;
|
||||
case 1:
|
||||
digi_stop(1);
|
||||
digi_stop(2);
|
||||
adv_kill_digi_between_rooms(false);
|
||||
digi_play_loop("950_s28C", 3, 90);
|
||||
_G(game).setRoom(640);
|
||||
return true;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Room607::down() {
|
||||
switch (_G(kernel).trigger) {
|
||||
case -1:
|
||||
player_set_commands_allowed(false);
|
||||
disable_player_commands_and_fade_init(1);
|
||||
return true;
|
||||
case 1:
|
||||
digi_stop(1);
|
||||
digi_stop(2);
|
||||
adv_kill_digi_between_rooms(false);
|
||||
digi_play_loop("950_s28C", 3, 90);
|
||||
_G(game).setRoom(633);
|
||||
return true;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
61
engines/m4/riddle/rooms/section6/room607.h
Normal file
61
engines/m4/riddle/rooms/section6/room607.h
Normal file
@@ -0,0 +1,61 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM607_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM607_H
|
||||
|
||||
#include "m4/riddle/rooms/room.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room607 : public Room {
|
||||
private:
|
||||
int _ripKicksRock = 0;
|
||||
int _ripMakesMud = 0;
|
||||
int _ripLowReach = 0;
|
||||
machine *_tablet = nullptr;
|
||||
machine *_mud = nullptr;
|
||||
machine *_rock = nullptr;
|
||||
machine *_ripReach = nullptr;
|
||||
int _val1 = 0;
|
||||
|
||||
bool left();
|
||||
bool right();
|
||||
bool down();
|
||||
|
||||
public:
|
||||
Room607() : Room() {}
|
||||
~Room607() override {}
|
||||
|
||||
void preload() override;
|
||||
void init() override;
|
||||
void daemon() override;
|
||||
void pre_parser() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
2207
engines/m4/riddle/rooms/section6/room608.cpp
Normal file
2207
engines/m4/riddle/rooms/section6/room608.cpp
Normal file
File diff suppressed because it is too large
Load Diff
103
engines/m4/riddle/rooms/section6/room608.h
Normal file
103
engines/m4/riddle/rooms/section6/room608.h
Normal file
@@ -0,0 +1,103 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM608_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM608_H
|
||||
|
||||
#include "m4/riddle/rooms/room.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room608 : public Room {
|
||||
private:
|
||||
int _rp01 = 0;
|
||||
int _rp09 = 0;
|
||||
int _ripHandChin = 0;
|
||||
int _ripLowReach = 0;
|
||||
int _ripLowReach2 = 0;
|
||||
int _ripTalker = 0;
|
||||
int _ripLHandTalk = 0;
|
||||
int _ripHandTalk3 = 0;
|
||||
int _tt01 = 0;
|
||||
int _tt02 = 0;
|
||||
int _tt03 = 0;
|
||||
int _tt05 = 0;
|
||||
int _old1 = 0;
|
||||
int _old2 = 0;
|
||||
int _old5 = 0;
|
||||
int _old8 = 0;
|
||||
int _old5a = 0;
|
||||
int _old5b = 0;
|
||||
int _old5c = 0;
|
||||
int _old5d = 0;
|
||||
int _old5f = 0;
|
||||
int _all5a = 0;
|
||||
int _loop0 = 0;
|
||||
int _loop1 = 0;
|
||||
int _horn = 0;
|
||||
machine *_ripley = nullptr;
|
||||
machine *_shadow = nullptr;
|
||||
machine *_shadow5 = nullptr;
|
||||
machine *_tt = nullptr;
|
||||
machine *_ttShadow = nullptr;
|
||||
machine *_ttTalker = nullptr;
|
||||
machine *_ol = nullptr;
|
||||
machine *_ol2 = nullptr;
|
||||
machine *_stump = nullptr;
|
||||
machine *_lighter = nullptr;
|
||||
machine *_pole = nullptr;
|
||||
machine *_puffin = nullptr;
|
||||
machine *_end1 = nullptr;
|
||||
machine *_end2 = nullptr;
|
||||
int _ripleyShould = 0;
|
||||
int _ripleyMode = 0;
|
||||
int _oldMode = 0;
|
||||
int _oldShould = 0;
|
||||
int _ctr1 = 0;
|
||||
|
||||
void conv608a();
|
||||
bool takeStump1();
|
||||
bool takePuffin();
|
||||
bool stumpHole();
|
||||
bool takeStump2();
|
||||
bool takeLighter();
|
||||
bool hornCordWater();
|
||||
bool lookPuffin();
|
||||
void usePole();
|
||||
|
||||
public:
|
||||
Room608() : Room() {}
|
||||
~Room608() override {}
|
||||
|
||||
void init() override;
|
||||
void daemon() override;
|
||||
void pre_parser() override;
|
||||
void parser() override;
|
||||
void syncGame(Common::Serializer &s) override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
759
engines/m4/riddle/rooms/section6/room610.cpp
Normal file
759
engines/m4/riddle/rooms/section6/room610.cpp
Normal file
@@ -0,0 +1,759 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room610.h"
|
||||
#include "m4/graphics/gr_series.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
#include "m4/adv_r/other.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room610::init() {
|
||||
if (_G(game).previous_room != KERNEL_RESTORING_GAME) {
|
||||
_sgMode = 1;
|
||||
_sgShould = 1;
|
||||
_val3 = 0;
|
||||
_kShould = 1;
|
||||
_val5 = 1;
|
||||
_val6 = 0;
|
||||
}
|
||||
|
||||
_val7 = 0;
|
||||
_val8 = 0;
|
||||
_G(kernel).call_daemon_every_loop = true;
|
||||
|
||||
digi_preload("610s01");
|
||||
digi_preload("610_s02");
|
||||
digi_preload("610_s02a");
|
||||
digi_preload("610_s03");
|
||||
digi_preload("610_s03a");
|
||||
digi_preload("610_s03b");
|
||||
digi_preload("610k07");
|
||||
digi_preload("610k08");
|
||||
digi_preload("610k09");
|
||||
digi_preload("610k10");
|
||||
digi_preload("610k11");
|
||||
digi_preload("610k12");
|
||||
digi_preload("610k13");
|
||||
|
||||
_ripPeerAroundHut = series_load("RIP PEERS AROUND THE HUT");
|
||||
_rp04 = series_load("610RP04");
|
||||
_k00 = series_load("610K00");
|
||||
_k01 = series_load("610K01");
|
||||
_sgSlapsTt1 = series_load("SG SLAPS TT");
|
||||
_sgSlapsTt2 = series_load("SG SLAPS TT AGAIN");
|
||||
_sgPullsGun = series_load("SG PULLS A GUN");
|
||||
|
||||
if (_G(flags)[V012]) {
|
||||
hotspot_set_active("window", false);
|
||||
series_show("610 shed window open", 0xf00, 16);
|
||||
} else {
|
||||
hotspot_set_active("window ", false);
|
||||
}
|
||||
|
||||
_k = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0xa00, false,
|
||||
triggerMachineByHashCallback610, "k");
|
||||
_sgTt = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0xb00, false,
|
||||
triggerMachineByHashCallback610, "sg and tt");
|
||||
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
midi_play("tensions", 255, true, -1, 949);
|
||||
|
||||
if (_flag1)
|
||||
ws_demand_location(_G(my_walker), 615, 364, 10);
|
||||
|
||||
setup();
|
||||
kernel_timing_trigger(300, 135);
|
||||
digi_preload("950_s28a");
|
||||
break;
|
||||
|
||||
case 604:
|
||||
digi_preload("950_s28a");
|
||||
setup();
|
||||
kernel_timing_trigger(300, 135);
|
||||
ws_demand_location(_G(my_walker), 472, 262, 3);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28a");
|
||||
digi_stop(3);
|
||||
digi_unload("950_s28");
|
||||
|
||||
if (player_been_here(610)) {
|
||||
setup();
|
||||
player_set_commands_allowed(false);
|
||||
ws_demand_location(_G(my_walker), 665, 364, 9);
|
||||
ws_walk(_G(my_walker), 615, 364, nullptr, 1, 10);
|
||||
} else {
|
||||
sendWSMessage_10000(1, _k, _k00, 1, 50, -1, _k00, 50, 60, 4);
|
||||
sendWSMessage_10000(1, _sgTt, _sgSlapsTt1, 1, 1, -1,
|
||||
_sgSlapsTt1, 1, 1, 4);
|
||||
|
||||
player_set_commands_allowed(false);
|
||||
ws_demand_location(_G(my_walker), 665, 364, 9);
|
||||
ws_walk(_G(my_walker), 240, 272, nullptr, 10, 10);
|
||||
kernel_timing_trigger(1, 100);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
_flag2 = true;
|
||||
_flag1 = false;
|
||||
digi_play_loop("950_s28a", 3, 110);
|
||||
}
|
||||
|
||||
void Room610::daemon() {
|
||||
daemonPreprocess();
|
||||
|
||||
switch (_G(kernel).trigger) {
|
||||
case 1:
|
||||
player_set_commands_allowed(true);
|
||||
break;
|
||||
|
||||
case 10:
|
||||
_pu01 = series_stream("610pu01", 5, 0, 103);
|
||||
series_stream_break_on_frame(_pu01, 6, 102);
|
||||
ws_demand_location(_G(my_walker), 272, 273, 7);
|
||||
ws_hide_walker();
|
||||
|
||||
_ripAction = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, false,
|
||||
triggerMachineByHashCallback610, "spleen");
|
||||
sendWSMessage_10000(1, _ripAction, _ripPeerAroundHut, 1, 65, -1,
|
||||
_ripPeerAroundHut, 65, 65, 1);
|
||||
break;
|
||||
|
||||
case 102:
|
||||
digi_play("610k01", 1);
|
||||
break;
|
||||
|
||||
case 103:
|
||||
digi_play("610k02", 1, 255, 104);
|
||||
break;
|
||||
|
||||
case 104:
|
||||
digi_play("610k03", 1, 255, 107);
|
||||
break;
|
||||
|
||||
case 107:
|
||||
sendWSMessage_10000(1, _sgTt, _sgSlapsTt1, 1, 36, 108,
|
||||
_sgSlapsTt1, 36, 36, 1);
|
||||
break;
|
||||
|
||||
case 108:
|
||||
digi_play("610k04", 1, 255, 112);
|
||||
sendWSMessage_10000(1, _ripAction, _ripPeerAroundHut, 65, 53, 109,
|
||||
_ripPeerAroundHut, 53, 53, 1);
|
||||
sendWSMessage_190000(_ripAction, 10);
|
||||
break;
|
||||
|
||||
case 109:
|
||||
kernel_timing_trigger(200, 110);
|
||||
break;
|
||||
|
||||
case 110:
|
||||
sendWSMessage_10000(1, _ripAction, _ripPeerAroundHut, 53, 65, -1,
|
||||
_ripPeerAroundHut, 65, 65, 1);
|
||||
break;
|
||||
|
||||
case 112:
|
||||
sendWSMessage_10000(1, _sgTt, _sgSlapsTt1, 37, 68, 115,
|
||||
_sgSlapsTt1, 68, 68, 1);
|
||||
digi_play("610t01", 1);
|
||||
break;
|
||||
|
||||
case 115:
|
||||
sendWSMessage_10000(1, _sgTt, _sgSlapsTt1, 69, 81, 117,
|
||||
_sgSlapsTt1, 81, 81, 1);
|
||||
digi_play("610s01", 1, 255, 116);
|
||||
break;
|
||||
|
||||
case 116:
|
||||
_val7 = 1;
|
||||
break;
|
||||
|
||||
case 117:
|
||||
if (_val7)
|
||||
kernel_timing_trigger(1, 120);
|
||||
else
|
||||
kernel_timing_trigger(30, 117);
|
||||
break;
|
||||
|
||||
case 120:
|
||||
sendWSMessage_10000(1, _k, _k00, 59, 60, -1, _k00, 60, 60, 1);
|
||||
sendWSMessage_10000(1, _ripAction, _ripPeerAroundHut, 65, 53, 122,
|
||||
_ripPeerAroundHut, 53, 53, 1);
|
||||
sendWSMessage_190000(_ripAction, 10);
|
||||
digi_play("610k05", 1, 255, 124);
|
||||
break;
|
||||
|
||||
case 121:
|
||||
kernel_timing_trigger(50, 122);
|
||||
break;
|
||||
|
||||
case 122:
|
||||
sendWSMessage_10000(1, _ripAction, _ripPeerAroundHut, 53, 65, 123,
|
||||
_ripPeerAroundHut, 65, 65, 1);
|
||||
break;
|
||||
|
||||
case 123:
|
||||
terminateMachineAndNull(_ripAction);
|
||||
ws_unhide_walker();
|
||||
break;
|
||||
|
||||
case 124:
|
||||
sendWSMessage_10000(1, _sgTt, _sgSlapsTt1, 82, 90, 125,
|
||||
_sgSlapsTt1, 90, 90, 1);
|
||||
break;
|
||||
|
||||
case 125:
|
||||
sendWSMessage_10000(1, _sgTt, _sgSlapsTt1, 91, 110, 128,
|
||||
_sgSlapsTt1, 110, 110, 1);
|
||||
digi_play(imath_ranged_rand(1, 2) == 1 ? "610_s02" : "610_s02a", 2);
|
||||
break;
|
||||
|
||||
case 126:
|
||||
switch (imath_ranged_rand(1, 3)) {
|
||||
case 1:
|
||||
digi_play("610_s03", 2);
|
||||
break;
|
||||
case 2:
|
||||
digi_play("610_s03a", 2);
|
||||
break;
|
||||
case 3:
|
||||
digi_play("610_s03b", 2);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 128:
|
||||
sendWSMessage_10000(1, _k, _k00, 50, 60, -1, _k00, 50, 60, 4);
|
||||
sendWSMessage_190000(_k, 11);
|
||||
sendWSMessage_1a0000(_k, 11);
|
||||
sendWSMessage_10000(1, _sgTt, _sgSlapsTt2, 1, 1, -1,
|
||||
_sgSlapsTt2, 1, 1, 1);
|
||||
digi_play("610k06", 1, 255, 130);
|
||||
break;
|
||||
|
||||
case 130:
|
||||
sendWSMessage_10000(1, _sgTt, _sgSlapsTt2, 1, 1, 200,
|
||||
_sgSlapsTt2, 1, 1, 1);
|
||||
_sgMode = 1;
|
||||
_sgShould = 0;
|
||||
_val3 = 0;
|
||||
sendWSMessage_10000(1, _k, _k00, 50, 50, 400, _k00, 50, 60, 4);
|
||||
sendWSMessage_190000(_k, 11);
|
||||
sendWSMessage_1a0000(_k, 11);
|
||||
_kShould = 0;
|
||||
_val5 = 1;
|
||||
_val6 = 0;
|
||||
_flag2 = true;
|
||||
player_set_commands_allowed(true);
|
||||
kernel_timing_trigger(300, 135);
|
||||
break;
|
||||
|
||||
case 200:
|
||||
kernel_trigger_dispatchx(kernel_trigger_create(201));
|
||||
break;
|
||||
|
||||
case 201:
|
||||
switch (_sgMode) {
|
||||
case 1:
|
||||
switch (_sgShould) {
|
||||
case 0:
|
||||
if (imath_ranged_rand(1, 40) == 1) {
|
||||
sendWSMessage_10000(1, _sgTt, _sgSlapsTt2, 1, 46, 200,
|
||||
_sgSlapsTt2, 46, 46, 0);
|
||||
_sgMode = 2;
|
||||
} else {
|
||||
sendWSMessage_10000(1, _sgTt, _sgSlapsTt2, 1, 1, 200,
|
||||
_sgSlapsTt2, 1, 1, 0);
|
||||
}
|
||||
break;
|
||||
|
||||
case 1:
|
||||
sendWSMessage_10000(1, _sgTt, _sgSlapsTt2, 1, 1, 200,
|
||||
_sgSlapsTt2, 1, 1, 0);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
sendWSMessage_10000(1, _sgTt, _sgSlapsTt2, 1, 46, 200,
|
||||
_sgSlapsTt2, 46, 46, 0);
|
||||
_sgMode = 2;
|
||||
break;
|
||||
|
||||
case 4:
|
||||
sendWSMessage_10000(1, _sgTt, _sgPullsGun, 1, 36, -1,
|
||||
_sgPullsGun, 36, 36, 0);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
switch (_sgShould) {
|
||||
case 0:
|
||||
if (imath_ranged_rand(1, 40) == 1) {
|
||||
sendWSMessage_10000(1, _sgTt, _sgSlapsTt2, 46, 1, 200,
|
||||
_sgSlapsTt2, 1, 1, 0);
|
||||
_sgMode = 1;
|
||||
} else {
|
||||
sendWSMessage_10000(1, _sgTt, _sgSlapsTt2, 46, 46, 200,
|
||||
_sgSlapsTt2, 46, 46, 0);
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
sendWSMessage_10000(1, _sgTt, _sgSlapsTt2, 46, 46, 200,
|
||||
_sgSlapsTt2, 46, 46, 0);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
sendWSMessage_10000(1, _sgTt, _sgSlapsTt2, 47, 48, 202,
|
||||
_sgSlapsTt2, 48, 48, 0);
|
||||
_sgMode = 1;
|
||||
_sgShould = 0;
|
||||
break;
|
||||
|
||||
default:
|
||||
sendWSMessage_10000(1, _sgTt, _sgSlapsTt2, 47, 48, 202,
|
||||
_sgSlapsTt2, 48, 48, 0);
|
||||
_sgMode = 1;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 202:
|
||||
sendWSMessage_10000(1, _sgTt, _sgSlapsTt2, 49, 62, 200,
|
||||
_sgSlapsTt2, 1, 1, 0);
|
||||
|
||||
digi_play(imath_ranged_rand(1, 2) == 1 ? "610_s02" : "610_s02a", 2);
|
||||
kernel_timing_trigger(20, 126);
|
||||
break;
|
||||
|
||||
case 400:
|
||||
kernel_trigger_dispatchx(kernel_trigger_create(401));
|
||||
break;
|
||||
|
||||
case 401:
|
||||
if (_kShould)
|
||||
break;
|
||||
|
||||
switch (_val5) {
|
||||
case 0:
|
||||
sendWSMessage_10000(1, _k, _k00, 54, 54, 400, _k00, 54, 54, 0);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
if (imath_ranged_rand(5, 10) < ++_val6) {
|
||||
_val6 = 0;
|
||||
|
||||
if (imath_ranged_rand(1, 2) == 1) {
|
||||
kernel_timing_trigger(50, 400);
|
||||
} else {
|
||||
sendWSMessage_10000(1, _k, _k00, 1, 53, 400, _k00, 54, 60, 4);
|
||||
sendWSMessage_1a0000(_k, 11);
|
||||
}
|
||||
} else {
|
||||
kernel_timing_trigger(50, 400);
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
digi_stop(2);
|
||||
sendWSMessage_10000(1, _k, _k01, 1, 29, 665, _k01, 29, 29, 0);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 665:
|
||||
if (!player_said("talk to", "KUANG") &&
|
||||
!player_said("talk to", "SHEN GUO") &&
|
||||
!player_said("talk to", "SAMANTHA")) {
|
||||
if (player_said("gear", "WHALE BONE HORN")) {
|
||||
disable_player_commands_and_fade_init(700);
|
||||
interface_hide();
|
||||
} else {
|
||||
digi_play("610K14", 1, 255, 667);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 666:
|
||||
ws_hide_walker();
|
||||
_ripAction = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, false,
|
||||
triggerMachineByHashCallback610, "spleen");
|
||||
sendWSMessage_10000(1, _ripAction, _rp04, 1, 21, -1, _rp04, 21, 11, 4);
|
||||
sendWSMessage_1a0000(_ripAction, 50);
|
||||
break;
|
||||
|
||||
case 667:
|
||||
digi_play("610R10", 1, 255, 668);
|
||||
break;
|
||||
|
||||
case 668:
|
||||
disable_player_commands_and_fade_init(669);
|
||||
interface_hide();
|
||||
break;
|
||||
|
||||
case 669:
|
||||
kernel_timing_trigger(30, 670);
|
||||
break;
|
||||
|
||||
case 670:
|
||||
digi_play("950_s14", 1, 255, 671);
|
||||
break;
|
||||
|
||||
case 671:
|
||||
_flag1 = true;
|
||||
other_save_game_for_resurrection();
|
||||
_G(game).setRoom(413);
|
||||
break;
|
||||
|
||||
case 700:
|
||||
digi_play("610R11", 1, 255, 669);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
daemonPostprocess();
|
||||
}
|
||||
|
||||
void Room610::pre_parser() {
|
||||
const bool lookFlag = player_said_any("look", "look at");
|
||||
|
||||
if (lookFlag && player_said_any("HUT", "PIT", "SAMANTHA", "KUANG", "SHEN GUO"))
|
||||
_G(player).resetWalk();
|
||||
}
|
||||
|
||||
void Room610::parser() {
|
||||
const bool lookFlag = player_said_any("look", "look at");
|
||||
const bool talkFlag = player_said_any("talk", "talk to");
|
||||
const bool useFlag = player_said_any("push", "pull", "gear", "open", "close");
|
||||
|
||||
if (talkFlag && player_said_any("KUANG", "SHEN GUO")) {
|
||||
talkKuangShenGuo();
|
||||
} else if (talkFlag && player_said("SAMANTHA")) {
|
||||
talkSamantha();
|
||||
} else if (useFlag && player_said("WHALE BONE HORN") && useHorn()) {
|
||||
// No implementation
|
||||
} else if (lookFlag && player_said("SAMANTHA")) {
|
||||
digi_play("610r01", 1);
|
||||
} else if (lookFlag && player_said("KUANG")) {
|
||||
digi_play("610r02", 1);
|
||||
} else if (lookFlag && player_said("SHEN GUO")) {
|
||||
digi_play("610r03", 1);
|
||||
} else if (lookFlag && player_said("HUT")) {
|
||||
digi_play("610r04", 1);
|
||||
} else if (lookFlag && player_said("PIT")) {
|
||||
digi_play("610r05", 1);
|
||||
} else if (lookFlag && player_said("SHED")) {
|
||||
digi_play("610r06", 1);
|
||||
} else if (lookFlag && player_said("WINDOW")) {
|
||||
digi_play("610r07", 1);
|
||||
} else if (lookFlag && player_said("WINDOW ")) {
|
||||
digi_play("604r47", 1);
|
||||
} else if (lookFlag && player_said("POWER LINE")) {
|
||||
digi_play("610r08", 1);
|
||||
} else if ((useFlag && player_said_any("WINDOW", "WINDOW ")) ||
|
||||
player_said("enter")) {
|
||||
useWindow();
|
||||
} else if (_G(kernel).trigger == 555) {
|
||||
midi_stop();
|
||||
|
||||
static const char *DIGI[] = {
|
||||
"610_s02", "610_s02a", "610_s03", "610_s03a",
|
||||
"610_s03b", "610k07", "610k08", "610k09",
|
||||
"610k10", "610k11", "610k12", "610k13", nullptr
|
||||
};
|
||||
for (const char **name = DIGI; *name; ++name)
|
||||
digi_unload(*name);
|
||||
|
||||
adv_kill_digi_between_rooms(false);
|
||||
digi_play_loop("950_s28a", 3, 110);
|
||||
_G(game).setRoom(605);
|
||||
} else if (player_said("exit")) {
|
||||
player_set_commands_allowed(false);
|
||||
disable_player_commands_and_fade_init(-1);
|
||||
midi_fade_volume(0, 120);
|
||||
kernel_timing_trigger(120, 555);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
_G(player).command_ready = false;
|
||||
}
|
||||
|
||||
void Room610::triggerMachineByHashCallback610(frac16 myMessage, machine *sender) {
|
||||
const int trigger = myMessage >> 16;
|
||||
|
||||
if (trigger >= 0)
|
||||
kernel_trigger_dispatchx(myMessage);
|
||||
}
|
||||
|
||||
void Room610::setup() {
|
||||
sendWSMessage_10000(1, _sgTt, _sgSlapsTt2, 1, 1, 200,
|
||||
_sgSlapsTt2, 1, 1, 1);
|
||||
sendWSMessage_10000(1, _k, _k00, 50, 50, 400, _k00, 50, 60, 4);
|
||||
sendWSMessage_190000(_k, 11);
|
||||
sendWSMessage_1a0000(_k, 11);
|
||||
_sgMode = 1;
|
||||
_sgShould = 0;
|
||||
_val3 = 0;
|
||||
_kShould = 0;
|
||||
_val5 = 1;
|
||||
_val6 = 0;
|
||||
}
|
||||
|
||||
void Room610::talkKuangShenGuo() {
|
||||
switch (_G(kernel).trigger) {
|
||||
case -1:
|
||||
_flag1 = true;
|
||||
digi_stop(2);
|
||||
player_set_commands_allowed(false);
|
||||
_val5 = 2;
|
||||
_sgShould = 4;
|
||||
digi_play("610r12", 1, 255, 1);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
ws_hide_walker();
|
||||
_ripAction = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, false,
|
||||
triggerMachineByHashCallback610, "spleen");
|
||||
sendWSMessage_10000(1, _ripAction, _rp04, 1, 21, 2, _rp04, 21, 11, 4);
|
||||
sendWSMessage_1a0000(_ripAction, 50);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
digi_play("610r13", 1, 255, 3);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
disable_player_commands_and_fade_init(4);
|
||||
interface_hide();
|
||||
break;
|
||||
|
||||
case 4:
|
||||
kernel_timing_trigger(30, 5);
|
||||
break;
|
||||
|
||||
case 5:
|
||||
digi_play("950_s14", 1, 255, 6);
|
||||
break;
|
||||
|
||||
case 6:
|
||||
other_save_game_for_resurrection();
|
||||
_G(game).setRoom(413);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void Room610::talkSamantha() {
|
||||
switch (_G(kernel).trigger) {
|
||||
case -1:
|
||||
_flag1 = true;
|
||||
digi_stop(2);
|
||||
player_set_commands_allowed(false);
|
||||
_val5 = 2;
|
||||
_sgShould = 4;
|
||||
digi_play("610r14", 1, 255, 1);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
ws_hide_walker();
|
||||
_ripAction = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, false,
|
||||
triggerMachineByHashCallback610, "spleen");
|
||||
sendWSMessage_10000(1, _ripAction, _rp04, 1, 21, 2, _rp04, 21, 11, 4);
|
||||
sendWSMessage_1a0000(_ripAction, 50);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
digi_play("610r15", 1, 255, 3);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
disable_player_commands_and_fade_init(4);
|
||||
interface_hide();
|
||||
break;
|
||||
|
||||
case 4:
|
||||
kernel_timing_trigger(30, 5);
|
||||
break;
|
||||
|
||||
case 5:
|
||||
digi_play("950_s14", 1, 255, 6);
|
||||
break;
|
||||
|
||||
case 6:
|
||||
other_save_game_for_resurrection();
|
||||
_G(game).setRoom(413);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool Room610::useHorn() {
|
||||
_flag1 = true;
|
||||
|
||||
if (_G(kernel).trigger == 5) {
|
||||
_val5 = 2;
|
||||
_sgShould = 4;
|
||||
}
|
||||
|
||||
// Original never exits parser even when this code is called
|
||||
return false;
|
||||
}
|
||||
|
||||
void Room610::useWindow() {
|
||||
switch (_G(kernel).trigger) {
|
||||
case -1:
|
||||
player_set_commands_allowed(false);
|
||||
|
||||
if (_G(flags)[V012]) {
|
||||
kernel_timing_trigger(1, 1);
|
||||
} else {
|
||||
ws_hide_walker();
|
||||
_ripAction = series_play("610rp02", 0, 0, 3, 5, 0, 100, 0, 0, 0, 32);
|
||||
}
|
||||
break;
|
||||
|
||||
case 1:
|
||||
disable_player_commands_and_fade_init(2);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
_G(game).setRoom(604);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
_ripAction = series_play("610rp02", 0, 0, 4, 5, 0, 100, 0, 0, 33, 64);
|
||||
digi_play("610_s01", 2);
|
||||
hotspot_set_active("window", false);
|
||||
hotspot_set_active("window ", true);
|
||||
_G(flags)[V012] = 1;
|
||||
break;
|
||||
|
||||
case 4:
|
||||
series_show("610 shed window open", 0xf00, 16);
|
||||
ws_unhide_walker();
|
||||
player_set_commands_allowed(true);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void Room610::daemonPreprocess() {
|
||||
switch (_G(kernel).trigger) {
|
||||
case 135:
|
||||
if (!_flag1) {
|
||||
if (++_val8 >= 8)
|
||||
_val8 = 1;
|
||||
|
||||
switch (_val8) {
|
||||
case 1:
|
||||
digi_play("610k07", 2, 150);
|
||||
kernel_timing_trigger(400, 135);
|
||||
break;
|
||||
case 2:
|
||||
digi_play("610k08", 2, 150);
|
||||
kernel_timing_trigger(400, 135);
|
||||
break;
|
||||
case 3:
|
||||
digi_play("610k09", 2, 150);
|
||||
kernel_timing_trigger(400, 135);
|
||||
break;
|
||||
case 4:
|
||||
digi_play("610k10", 2, 150);
|
||||
kernel_timing_trigger(400, 135);
|
||||
break;
|
||||
case 5:
|
||||
digi_play("610k11", 2, 150);
|
||||
kernel_timing_trigger(400, 135);
|
||||
break;
|
||||
case 6:
|
||||
digi_play("610k12", 2, 150, 137);
|
||||
kernel_timing_trigger(400, 135);
|
||||
break;
|
||||
case 7:
|
||||
digi_play("610k13", 2, 150);
|
||||
kernel_timing_trigger(500, 135);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 137:
|
||||
_sgShould = 3;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void Room610::daemonPostprocess() {
|
||||
if (!_flag1 && _flag2) {
|
||||
player_update_info();
|
||||
|
||||
if (_G(player_info).x <= 222)
|
||||
player_set_commands_allowed(false);
|
||||
|
||||
if (!player_said("talk to", "KUANG") &&
|
||||
!player_said("talk to", "SHEN GUO") &&
|
||||
!player_said("talk to", "SAMANTHA") &&
|
||||
_G(player_info).x <= 222) {
|
||||
intr_cancel_sentence();
|
||||
ws_walk(_G(my_walker), 202, 244, nullptr, 666, 11, true);
|
||||
_flag1 = true;
|
||||
_val5 = 2;
|
||||
_sgShould = 4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
78
engines/m4/riddle/rooms/section6/room610.h
Normal file
78
engines/m4/riddle/rooms/section6/room610.h
Normal file
@@ -0,0 +1,78 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM610_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM610_H
|
||||
|
||||
#include "m4/riddle/rooms/room.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room610 : public Room {
|
||||
private:
|
||||
int _ripPeerAroundHut = 0;
|
||||
int _rp04 = 0;
|
||||
int _k00 = 0;
|
||||
int _k01 = 0;
|
||||
int _sgSlapsTt1 = 0;
|
||||
int _sgSlapsTt2 = 0;
|
||||
int _sgPullsGun = 0;
|
||||
machine *_ripAction = nullptr;
|
||||
machine *_k = nullptr;
|
||||
machine *_sgTt = nullptr;
|
||||
machine *_pu01 = nullptr;
|
||||
int _sgMode = 0;
|
||||
int _sgShould = 0;
|
||||
int _val3 = 0;
|
||||
int _kShould = 0;
|
||||
int _val5 = 0;
|
||||
int _val6 = 0;
|
||||
int _val7 = 0;
|
||||
int _val8 = 0;
|
||||
bool _flag1 = false;
|
||||
bool _flag2 = false;
|
||||
|
||||
static void triggerMachineByHashCallback610(frac16 myMessage, machine *sender);
|
||||
void setup();
|
||||
void talkKuangShenGuo();
|
||||
void talkSamantha();
|
||||
bool useHorn();
|
||||
void useWindow();
|
||||
void daemonPreprocess();
|
||||
void daemonPostprocess();
|
||||
|
||||
public:
|
||||
Room610() : Room() {}
|
||||
~Room610() override {}
|
||||
|
||||
void init() override;
|
||||
void daemon() override;
|
||||
void pre_parser() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
524
engines/m4/riddle/rooms/section6/room615.cpp
Normal file
524
engines/m4/riddle/rooms/section6/room615.cpp
Normal file
@@ -0,0 +1,524 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room615.h"
|
||||
#include "m4/graphics/gr_series.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room615::preload() {
|
||||
Room::preload();
|
||||
_G(flags)[V000] = 1;
|
||||
}
|
||||
|
||||
void Room615::init() {
|
||||
player_set_commands_allowed(false);
|
||||
_val1 = 0;
|
||||
_val2 = 0;
|
||||
_val3 = 90;
|
||||
|
||||
static const char *DIGI[] = {
|
||||
"615r01", "615t01", "615r02", "615r02a",
|
||||
"615t02", "615t03", "615r03", "615t04",
|
||||
"615r04", "615t05", "615r05", "615t06",
|
||||
"615r06", "615r08", "615r12", "615r13",
|
||||
"615t10", "615t10a", "615r15", nullptr
|
||||
};
|
||||
for (static const char **name = DIGI; *name; ++name)
|
||||
digi_preload(*name);
|
||||
|
||||
_ripTalking = series_load("615 RIP TALKING");
|
||||
_ripTalk = series_load("RIP TREK TALK");
|
||||
_loop0 = series_load("615LOOP0");
|
||||
_loop1 = series_load("615LOOP1");
|
||||
_loop2 = series_load("615LOOP2");
|
||||
_loop3 = series_load("615LOOP3");
|
||||
_loop4 = series_load("615LOOP4");
|
||||
_loop5 = series_load("615LOOP5");
|
||||
_loop6 = series_load("615LOOP6");
|
||||
_loop7 = series_load("615LOOP7");
|
||||
_ear2 = series_load("615ear2");
|
||||
|
||||
_untie = series_stream("615 UNTIE", 7, 0xf00, 46);
|
||||
series_stream_break_on_frame(_untie, 25, 10);
|
||||
kernel_timing_trigger(1, 9);
|
||||
|
||||
digi_preload("950_s28a");
|
||||
sendWSMessage_60000(_G(my_walker));
|
||||
_G(player).walker_in_this_scene = false;
|
||||
|
||||
series_unload(0);
|
||||
series_unload(1);
|
||||
series_unload(2);
|
||||
series_unload(3);
|
||||
series_unload(4);
|
||||
series_unload(10);
|
||||
series_unload(11);
|
||||
series_unload(12);
|
||||
series_unload(13);
|
||||
series_unload(14);
|
||||
|
||||
digi_play_loop("950_s28a", 3, 50);
|
||||
kernel_timing_trigger(1, 1);
|
||||
}
|
||||
|
||||
void Room615::daemon() {
|
||||
switch (_G(kernel).trigger) {
|
||||
case 9:
|
||||
digi_play("615r01", 1, 255, 10);
|
||||
break;
|
||||
|
||||
case 10:
|
||||
if (_flag1) {
|
||||
_flag1 = false;
|
||||
series_stream_break_on_frame(_untie, 79, 11);
|
||||
digi_play("615t01", 1, 255, 11);
|
||||
} else {
|
||||
_flag1 = true;
|
||||
}
|
||||
break;
|
||||
|
||||
case 11:
|
||||
if (_flag1) {
|
||||
_flag1 = false;
|
||||
series_set_frame_rate(_untie, 30000);
|
||||
digi_play("615r02", 1, 255, 15);
|
||||
} else {
|
||||
_flag1 = true;
|
||||
}
|
||||
break;
|
||||
|
||||
case 15:
|
||||
_pu = series_stream("615PU01", 6, 0, 21);
|
||||
series_stream_break_on_frame(_pu, 6, 17);
|
||||
break;
|
||||
|
||||
case 17:
|
||||
digi_play("615r02a", 1, 255, 21);
|
||||
break;
|
||||
|
||||
case 21:
|
||||
if (_flag1) {
|
||||
_flag1 = false;
|
||||
_pu = series_stream("615PU02", 6, 0x100, 24);
|
||||
series_stream_break_on_frame(_pu, 5, 22);
|
||||
series_set_frame_rate(_pu, 4);
|
||||
} else {
|
||||
_flag1 = true;
|
||||
}
|
||||
break;
|
||||
|
||||
case 22:
|
||||
digi_play("615t02", 1, 255, 24);
|
||||
break;
|
||||
|
||||
case 24:
|
||||
if (_flag1) {
|
||||
_flag1 = false;
|
||||
series_set_frame_rate(_untie, 7);
|
||||
ws_OverrideCrunchTime(_untie);
|
||||
series_stream_break_on_frame(_untie, 144, 26);
|
||||
digi_play("615t03", 1, 255, 25);
|
||||
} else {
|
||||
_flag1 = true;
|
||||
}
|
||||
break;
|
||||
|
||||
case 25:
|
||||
_flag1 = false;
|
||||
_ripTalker = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 393, 361, 97, 256, true,
|
||||
triggerMachineByHashCallback, "rip talker");
|
||||
sendWSMessage_10000(1, _ripTalker, _ripTalk, 1, 1, 40, _ripTalk, 1, 7, 4);
|
||||
sendWSMessage_1a0000(_ripTalker, 11);
|
||||
digi_play("615r03", 1, 255, 40);
|
||||
break;
|
||||
|
||||
case 26:
|
||||
if (!_val1)
|
||||
series_set_frame_rate(_untie, 3000);
|
||||
break;
|
||||
|
||||
case 40:
|
||||
if (_flag1) {
|
||||
_flag1 = false;
|
||||
digi_unload("615r01");
|
||||
digi_unload("615t01");
|
||||
digi_unload("615r02");
|
||||
digi_unload("615r02a");
|
||||
digi_unload("615t02");
|
||||
digi_unload("615t03");
|
||||
digi_unload("615r03");
|
||||
|
||||
_val1 = 1;
|
||||
terminateMachineAndNull(_ripTalker);
|
||||
series_set_frame_rate(_untie, 7);
|
||||
ws_OverrideCrunchTime(_untie);
|
||||
|
||||
} else {
|
||||
_flag1 = true;
|
||||
}
|
||||
break;
|
||||
|
||||
case 46:
|
||||
if (_ripTalker) {
|
||||
kernel_timing_trigger(10, 46);
|
||||
} else {
|
||||
_ctr1 = 0;
|
||||
series_load("RIP SAFARI WALKER POSITION 1");
|
||||
series_load("RIP SAFARI WALKER POSITION 2", 1);
|
||||
series_load("RIP SAFARI WALKER POSITION 3", 2);
|
||||
series_load("SAFARI SHADOW 1", 10);
|
||||
series_load("SAFARI SHADOW 1", 11);
|
||||
series_load("SAFARI SHADOW 1", 12);
|
||||
|
||||
_pu = triggerMachineByHash_3000(8, 0, *RIPLEY_SERIES_DIRS, *RIPLEY_SHADOWS_DIRS,
|
||||
392, 361, 10, triggerMachineByHashCallback3000, "rip");
|
||||
sendWSMessage_10000(_pu, 426, 347, 9, 50, 1);
|
||||
|
||||
_tt = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x400, false,
|
||||
triggerMachineByHashCallback, "untie tt");
|
||||
sendWSMessage_10000(1, _tt, _loop7, 1, 1, 50, _loop7, 1, 5, 1);
|
||||
sendWSMessage_1a0000(_tt, 15);
|
||||
digi_play("615t04", 1, 255, 50);
|
||||
}
|
||||
break;
|
||||
|
||||
case 50:
|
||||
if (_ctr1 >= 2) {
|
||||
_ctr1 = 0;
|
||||
player_update_info(_pu, &_G(player_info));
|
||||
ws_hide_walker(_pu);
|
||||
|
||||
series_play("SAFARI SHADOW 3", 0xf00, 128, -1, 600, -1,
|
||||
_G(player_info).scale, _G(player_info).x, _G(player_info).y, 0, 0);
|
||||
terminateMachineAndNull(_tt);
|
||||
|
||||
_untie = series_stream("615ALL1", 6, 0x100, 57);
|
||||
series_stream_break_on_frame(_untie, 47, 55);
|
||||
digi_play("615r04", 1);
|
||||
} else {
|
||||
++_ctr1;
|
||||
}
|
||||
break;
|
||||
|
||||
case 55:
|
||||
digi_play("615t05", 1, 255, 60);
|
||||
break;
|
||||
|
||||
case 57:
|
||||
_tt = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x400, false,
|
||||
triggerMachineByHashCallback, "x");
|
||||
sendWSMessage_10000(1, _tt, _loop0, 1, 1, 60, _loop0, 1, 5, 1);
|
||||
sendWSMessage_1a0000(_tt, 13);
|
||||
break;
|
||||
|
||||
case 60:
|
||||
if (_ctr1 >= 1) {
|
||||
_ctr1 = 0;
|
||||
terminateMachineAndNull(_tt);
|
||||
_untie = series_stream("615ALL1a", 6, 0x100, 65);
|
||||
digi_play("615r05", 1, 255, 62);
|
||||
} else {
|
||||
++_ctr1;
|
||||
}
|
||||
break;
|
||||
|
||||
case 62:
|
||||
digi_play("615t06", 1, 255, 75);
|
||||
break;
|
||||
|
||||
case 65:
|
||||
_tt = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x400, false,
|
||||
triggerMachineByHashCallback, "spleen");
|
||||
sendWSMessage_10000(1, _tt, _loop1, 1, 1, 75, _loop1, 1, 7, 1);
|
||||
sendWSMessage_1a0000(_tt, 13);
|
||||
break;
|
||||
|
||||
case 75:
|
||||
if (_ctr1 >= 1) {
|
||||
_ctr1 = 0;
|
||||
terminateMachineAndNull(_tt);
|
||||
_untie = series_stream("615ALL2", 6, 0x100, 80);
|
||||
digi_play("615r06", 1, 255, 80);
|
||||
} else {
|
||||
++_ctr1;
|
||||
}
|
||||
break;
|
||||
|
||||
case 80:
|
||||
if (_ctr1 >= 1) {
|
||||
_ctr1 = 0;
|
||||
_tt = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x400, false,
|
||||
triggerMachineByHashCallback, "spleen");
|
||||
sendWSMessage_10000(1, _tt, _loop2, 1, 1, 85, _loop2, 1, 9, 1);
|
||||
sendWSMessage_1a0000(_tt, 13);
|
||||
digi_play("615t07", 1, 255, 85);
|
||||
} else {
|
||||
++_ctr1;
|
||||
}
|
||||
break;
|
||||
|
||||
case 85:
|
||||
if (_ctr1 >= 1) {
|
||||
_ctr1 = 0;
|
||||
sendWSMessage_10000(1, _tt, _loop3, 1, 17, 87, _loop3, 18, 18, 1);
|
||||
} else {
|
||||
++_ctr1;
|
||||
}
|
||||
break;
|
||||
|
||||
case 87:
|
||||
sendWSMessage_10000(1, _tt, _loop3, 19, 19, 90, _loop3, 19, 23, 1);
|
||||
sendWSMessage_1a0000(_tt, 13);
|
||||
digi_play("615r07", 1, 255, 90);
|
||||
break;
|
||||
|
||||
case 90:
|
||||
if (_ctr1 >= 1) {
|
||||
_ctr1 = 0;
|
||||
sendWSMessage_10000(1, _tt, _loop4, 1, 13, 93, _loop4, 14, 14, 1);
|
||||
} else {
|
||||
++_ctr1;
|
||||
}
|
||||
break;
|
||||
|
||||
case 93:
|
||||
sendWSMessage_10000(1, _tt, _loop4, 15, 15, 96, _loop4, 15, 20, 1);
|
||||
sendWSMessage_1a0000(_tt, 13);
|
||||
digi_play("615t08", 1, 255, 96);
|
||||
break;
|
||||
|
||||
case 96:
|
||||
if (_ctr1 >= 1) {
|
||||
_ctr1 = 0;
|
||||
sendWSMessage_10000(1, _tt, _loop4, 21, 50, 98, _loop4, 50, 50, 1);
|
||||
sendWSMessage_190000(_tt, 7);
|
||||
digi_play("615t08a", 1, 255, 98);
|
||||
} else {
|
||||
++_ctr1;
|
||||
}
|
||||
break;
|
||||
|
||||
case 98:
|
||||
if (_ctr1 >= 1) {
|
||||
_ctr1 = 0;
|
||||
terminateMachineAndNull(_tt);
|
||||
_untie = series_stream("615all3", 6, 0x100, 102);
|
||||
digi_play("615r08", 1, 255, 102);
|
||||
} else {
|
||||
++_ctr1;
|
||||
}
|
||||
break;
|
||||
|
||||
case 102:
|
||||
if (_ctr1 >= 1) {
|
||||
_ctr1 = 0;
|
||||
_untie = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x400, false,
|
||||
triggerMachineByHashCallback, "spleen");
|
||||
sendWSMessage_10000(1, _untie, _loop5, 1, 1, 105, _loop5, 1, 5, 1);
|
||||
sendWSMessage_1a0000(_untie, 15);
|
||||
|
||||
_tt = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x400, false,
|
||||
triggerMachineByHashCallback, "spleen");
|
||||
sendWSMessage_10000(1, _tt, _loop6, 1, 1, 105, _loop6, 1, 1, 1);
|
||||
digi_play("615r09", 1, 255, 105);
|
||||
} else {
|
||||
++_ctr1;
|
||||
}
|
||||
break;
|
||||
|
||||
case 105:
|
||||
if (_ctr1 >= 2) {
|
||||
_ctr1 = 0;
|
||||
sendWSMessage_10000(1, _untie, _loop5, 1, 1, 108, _loop5, 1, 1, 1);
|
||||
sendWSMessage_10000(1, _tt, _loop6, 1, 1, 108, _loop6, 1, 5, 1);
|
||||
sendWSMessage_1a0000(_tt, 13);
|
||||
digi_play("615t09", 1, 255, 108);
|
||||
} else {
|
||||
++_ctr1;
|
||||
}
|
||||
break;
|
||||
|
||||
case 108:
|
||||
if (_ctr1 >= 2) {
|
||||
_ctr1 = 0;
|
||||
sendWSMessage_10000(1, _untie, _loop5, 1, 1, 112, _loop5, 1, 5, 1);
|
||||
sendWSMessage_1a0000(_untie, 13);
|
||||
sendWSMessage_10000(1, _tt, _loop6, 1, 1, 112, _loop6, 1, 1, 1);
|
||||
digi_play("615r10", 1, 255, 112);
|
||||
} else {
|
||||
++_ctr1;
|
||||
}
|
||||
break;
|
||||
|
||||
case 112:
|
||||
if (_ctr1 >= 2) {
|
||||
_ctr1 = 0;
|
||||
inv_move_object("RONGORONGO TABLET", 615);
|
||||
terminateMachineAndNull(_untie);
|
||||
terminateMachineAndNull(_tt);
|
||||
_G(flags)[V089] = 1;
|
||||
_untie = series_stream("615ALL4", 6, 0x100, 115);
|
||||
|
||||
digi_play(_G(flags)[V288] ? "615r11" : "615r12", 1, 255, 115);
|
||||
_G(flags)[V288] = 1;
|
||||
} else {
|
||||
++_ctr1;
|
||||
}
|
||||
break;
|
||||
|
||||
case 115:
|
||||
if (_ctr1 >= 1) {
|
||||
_ctr1 = 0;
|
||||
_untie = series_stream("615ALL5", 6, 0x100, 120);
|
||||
series_stream_break_on_frame(_untie, 30, 116);
|
||||
digi_play("615r13", 1, 255, 118);
|
||||
} else {
|
||||
++_ctr1;
|
||||
}
|
||||
break;
|
||||
|
||||
case 116:
|
||||
series_stream_break_on_frame(_untie, 58, 150);
|
||||
series_set_frame_rate(_untie, 30000);
|
||||
break;
|
||||
|
||||
case 118:
|
||||
series_set_frame_rate(_untie, 6);
|
||||
ws_OverrideCrunchTime(_untie);
|
||||
digi_play("615t10", 1, 255, 119);
|
||||
break;
|
||||
|
||||
case 119:
|
||||
_val2 = 1;
|
||||
|
||||
if (_val2) {
|
||||
series_set_frame_rate(_untie, 6);
|
||||
ws_OverrideCrunchTime(_untie);
|
||||
} else {
|
||||
kernel_timing_trigger(10, 151);
|
||||
}
|
||||
break;
|
||||
|
||||
case 120:
|
||||
midi_play("love", 255, false, -1, 949);
|
||||
_untie = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x400, false,
|
||||
triggerMachineByHashCallback, "spleen");
|
||||
sendWSMessage_10000(1, _untie, _loop5, 1, 1, 125, _loop5, 1, 1, 1);
|
||||
sendWSMessage_190000(_untie, 15);
|
||||
sendWSMessage_1a0000(_untie, 15);
|
||||
|
||||
_tt = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x400, false,
|
||||
triggerMachineByHashCallback, "spleen");
|
||||
sendWSMessage_10000(1, _tt, _loop7, 1, 1, 125, _loop7, 1, 5, 1);
|
||||
sendWSMessage_1a0000(_tt, 13);
|
||||
digi_play("615t10a", 1, 255, 125);
|
||||
break;
|
||||
|
||||
case 125:
|
||||
if (_ctr1 >= 2) {
|
||||
_ctr1 = 0;
|
||||
sendWSMessage_10000(1, _untie, _loop5, 1, 1, 127, _loop5, 1, 5, 1);
|
||||
sendWSMessage_1a0000(_untie, 13);
|
||||
sendWSMessage_10000(1, _tt, _loop7, 1, 1, 127, _loop7, 1, 1, 1);
|
||||
digi_play("615r14", 1, 255, 127);
|
||||
} else {
|
||||
++_ctr1;
|
||||
}
|
||||
break;
|
||||
|
||||
case 127:
|
||||
if (_ctr1 >= 2) {
|
||||
_ctr1 = 0;
|
||||
sendWSMessage_10000(1, _untie, _loop5, 1, 1, 130, _loop5, 1, 1, 1);
|
||||
sendWSMessage_10000(1, _tt, _loop7, 1, 1, 130, _loop7, 1, 5, 1);
|
||||
sendWSMessage_1a0000(_tt, 13);
|
||||
digi_play("615t11", 1, 255, 130);
|
||||
} else {
|
||||
++_ctr1;
|
||||
}
|
||||
break;
|
||||
|
||||
case 130:
|
||||
if (_ctr1 >= 2) {
|
||||
_ctr1 = 0;
|
||||
sendWSMessage_10000(1, _tt, _loop7, 1, 1, 133, _loop7, 1, 1, 1);
|
||||
_untie = series_stream("615PU03", 6, 256, -1);
|
||||
series_stream_break_on_frame(_untie, 5, 133);
|
||||
} else {
|
||||
++_ctr1;
|
||||
}
|
||||
break;
|
||||
|
||||
case 133:
|
||||
if (_ctr1 >= 1) {
|
||||
_ctr1 = 0;
|
||||
series_stream_break_on_frame(_untie, 94, 135);
|
||||
digi_play("615r15", 1);
|
||||
} else {
|
||||
++_ctr1;
|
||||
}
|
||||
break;
|
||||
|
||||
case 135:
|
||||
series_set_frame_rate(_untie, 400);
|
||||
kernel_timing_trigger(60, 140);
|
||||
break;
|
||||
|
||||
case 140:
|
||||
disable_player_commands_and_fade_init(141);
|
||||
break;
|
||||
|
||||
case 141:
|
||||
inv_move_object("SPARK PLUG TOOL", NOWHERE);
|
||||
_G(flags)[V203] = 9;
|
||||
_G(flags)[V191] = 0;
|
||||
_G(flags)[kTravelDest] = 4;
|
||||
_G(game).setRoom(495);
|
||||
break;
|
||||
|
||||
case 150:
|
||||
if (!_val2) {
|
||||
series_set_frame_rate(_untie, 30000);
|
||||
kernel_timing_trigger(10, 151);
|
||||
}
|
||||
break;
|
||||
|
||||
case 151:
|
||||
if (_val2) {
|
||||
series_set_frame_rate(_untie, 6);
|
||||
ws_OverrideCrunchTime(_untie);
|
||||
} else {
|
||||
kernel_timing_trigger(10, 151);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
68
engines/m4/riddle/rooms/section6/room615.h
Normal file
68
engines/m4/riddle/rooms/section6/room615.h
Normal file
@@ -0,0 +1,68 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM615_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM615_H
|
||||
|
||||
#include "m4/riddle/rooms/room.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room615 : public Room {
|
||||
private:
|
||||
int _ripTalking = 0;
|
||||
int _ripTalk = 0;
|
||||
int _loop0 = 0;
|
||||
int _loop1 = 0;
|
||||
int _loop2 = 0;
|
||||
int _loop3 = 0;
|
||||
int _loop4 = 0;
|
||||
int _loop5 = 0;
|
||||
int _loop6 = 0;
|
||||
int _loop7 = 0;
|
||||
int _ear2 = 0;
|
||||
machine *_untie = nullptr;
|
||||
machine *_pu = nullptr;
|
||||
machine *_tt = nullptr;
|
||||
machine *_ripTalker = nullptr;
|
||||
int _val1 = 0;
|
||||
int _val2 = 0;
|
||||
int _val3 = 90;
|
||||
|
||||
bool _flag1 = false;
|
||||
int _ctr1 = 0;
|
||||
|
||||
public:
|
||||
Room615() : Room() {}
|
||||
~Room615() override {}
|
||||
|
||||
void preload() override;
|
||||
void init() override;
|
||||
void daemon() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
62
engines/m4/riddle/rooms/section6/room620.cpp
Normal file
62
engines/m4/riddle/rooms/section6/room620.cpp
Normal file
@@ -0,0 +1,62 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room620.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room620::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 621:
|
||||
ws_demand_location(_G(my_walker), 670, 322, 9);
|
||||
ws_walk(_G(my_walker), 605, 322, nullptr, 1, 9);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 626:
|
||||
ws_demand_location(_G(my_walker), 418, 285, 5);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28c");
|
||||
ws_demand_location(_G(my_walker), 418, 285, 5);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room620::parser() {
|
||||
Maze::parser();
|
||||
checkExitRight(621);
|
||||
checkExitUp(626);
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room620.h
Normal file
44
engines/m4/riddle/rooms/section6/room620.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM620_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM620_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room620 : public Maze {
|
||||
public:
|
||||
Room620() : Maze() {}
|
||||
~Room620() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
69
engines/m4/riddle/rooms/section6/room621.cpp
Normal file
69
engines/m4/riddle/rooms/section6/room621.cpp
Normal file
@@ -0,0 +1,69 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room621.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room621::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 620:
|
||||
ws_demand_location(_G(my_walker), -30, 310, 3);
|
||||
ws_walk(_G(my_walker), 30, 310, nullptr, 1, 3);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 622:
|
||||
ws_demand_location(_G(my_walker), 670, 290, 9);
|
||||
ws_walk(_G(my_walker), 605, 290, nullptr, 1, 9);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 627:
|
||||
ws_demand_location(_G(my_walker), 384, 293, 5);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28c");
|
||||
ws_demand_location(_G(my_walker), 384, 293, 5);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room621::parser() {
|
||||
Maze::parser();
|
||||
checkExitLeft(620);
|
||||
checkExitRight(622);
|
||||
checkExitUp(627);
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room621.h
Normal file
44
engines/m4/riddle/rooms/section6/room621.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM621_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM621_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room621 : public Maze {
|
||||
public:
|
||||
Room621() : Maze() {}
|
||||
~Room621() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
69
engines/m4/riddle/rooms/section6/room622.cpp
Normal file
69
engines/m4/riddle/rooms/section6/room622.cpp
Normal file
@@ -0,0 +1,69 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room622.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room622::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 621:
|
||||
ws_demand_location(_G(my_walker), -30, 362, 3);
|
||||
ws_walk(_G(my_walker), 30, 362, nullptr, 1, 3);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 623:
|
||||
ws_demand_location(_G(my_walker), 670, 290, 9);
|
||||
ws_walk(_G(my_walker), 605, 290, nullptr, 1, 9);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 628:
|
||||
ws_demand_location(_G(my_walker), 313, 290, 5);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("650_s28c");
|
||||
ws_demand_location(_G(my_walker), 313, 290, 5);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room622::parser() {
|
||||
Maze::parser();
|
||||
checkExitLeft(621);
|
||||
checkExitRight(623);
|
||||
checkExitUp(628);
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room622.h
Normal file
44
engines/m4/riddle/rooms/section6/room622.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM622_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM622_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room622 : public Maze {
|
||||
public:
|
||||
Room622() : Maze() {}
|
||||
~Room622() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
77
engines/m4/riddle/rooms/section6/room623.cpp
Normal file
77
engines/m4/riddle/rooms/section6/room623.cpp
Normal file
@@ -0,0 +1,77 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room623.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room623::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 605:
|
||||
digi_preload("950_s28c");
|
||||
digi_stop(3);
|
||||
digi_unload("950_s28");
|
||||
ws_demand_location(_G(my_walker), 303, 352, 1);
|
||||
break;
|
||||
|
||||
case 622:
|
||||
ws_demand_location(_G(my_walker), -30, 362, 3);
|
||||
ws_walk(_G(my_walker), 30, 310, nullptr, 1, 3);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 624:
|
||||
ws_demand_location(_G(my_walker), 670, 290, 9);
|
||||
ws_walk(_G(my_walker), 605, 290, nullptr, 1, 9);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 629:
|
||||
ws_demand_location(_G(my_walker), 381, 283, 5);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28c");
|
||||
ws_demand_location(_G(my_walker), 313, 283, 5);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room623::parser() {
|
||||
Maze::parser();
|
||||
checkExitLeft(622);
|
||||
checkExitRight(624);
|
||||
checkExitUp(629);
|
||||
checkExitDown(605);
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room623.h
Normal file
44
engines/m4/riddle/rooms/section6/room623.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM623_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM623_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room623 : public Maze {
|
||||
public:
|
||||
Room623() : Maze() {}
|
||||
~Room623() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
69
engines/m4/riddle/rooms/section6/room624.cpp
Normal file
69
engines/m4/riddle/rooms/section6/room624.cpp
Normal file
@@ -0,0 +1,69 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room624.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room624::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 623:
|
||||
ws_demand_location(_G(my_walker), -30, 310, 3);
|
||||
ws_walk(_G(my_walker), 30, 310, nullptr, 1, 3);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 625:
|
||||
ws_demand_location(_G(my_walker), 670, 290, 9);
|
||||
ws_walk(_G(my_walker), 605, 290, nullptr, 1, 9);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 630:
|
||||
ws_demand_location(_G(my_walker), 367, 296, 5);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28c");
|
||||
ws_demand_location(_G(my_walker), 367, 296, 5);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room624::parser() {
|
||||
Maze::parser();
|
||||
checkExitLeft(623);
|
||||
checkExitRight(625);
|
||||
checkExitUp(630);
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room624.h
Normal file
44
engines/m4/riddle/rooms/section6/room624.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM624_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM624_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room624 : public Maze {
|
||||
public:
|
||||
Room624() : Maze() {}
|
||||
~Room624() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
73
engines/m4/riddle/rooms/section6/room625.cpp
Normal file
73
engines/m4/riddle/rooms/section6/room625.cpp
Normal file
@@ -0,0 +1,73 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room625.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
#include "m4/riddle/riddle.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room625::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 624:
|
||||
ws_demand_location(_G(my_walker), -30, 310, 3);
|
||||
ws_walk(_G(my_walker), 30, 310, nullptr, 1, 3);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_28c");
|
||||
ws_demand_location(_G(my_walker), -30, 310, 3);
|
||||
ws_walk(_G(my_walker), 30, 310, nullptr, 1, 3);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room625::parser() {
|
||||
Maze::parser();
|
||||
|
||||
if (player_said("journal", "STARFISH")) {
|
||||
if (_G(flags)[V208]) {
|
||||
digi_play("203r54", 1);
|
||||
} else {
|
||||
if (_G(kernel).trigger == 6)
|
||||
_G(flags)[V208] = 1;
|
||||
sketchInJournal(nullptr);
|
||||
}
|
||||
|
||||
_G(player).command_ready = false;
|
||||
} else {
|
||||
checkExitLeft(624);
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room625.h
Normal file
44
engines/m4/riddle/rooms/section6/room625.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM625_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM625_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room625 : public Maze {
|
||||
public:
|
||||
Room625() : Maze() {}
|
||||
~Room625() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
81
engines/m4/riddle/rooms/section6/room626.cpp
Normal file
81
engines/m4/riddle/rooms/section6/room626.cpp
Normal file
@@ -0,0 +1,81 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room626.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
#include "m4/riddle/riddle.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room626::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 620:
|
||||
ws_demand_location(_G(my_walker), 340, 500, 1);
|
||||
break;
|
||||
|
||||
case 627:
|
||||
ws_demand_location(_G(my_walker), 670, 290, 9);
|
||||
ws_walk(_G(my_walker), 605, 290, nullptr, 1, 9);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 631:
|
||||
ws_demand_location(_G(my_walker), 341, 290, 5);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28c");
|
||||
ws_demand_location(_G(my_walker), 340, 500, 1);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room626::parser() {
|
||||
Maze::parser();
|
||||
|
||||
if (player_said("journal", "SEAHORSE")) {
|
||||
if (_G(flags)[V209]) {
|
||||
digi_play("203r54", 1);
|
||||
} else {
|
||||
if (_G(kernel).trigger == 6)
|
||||
_G(flags)[V209] = 1;
|
||||
sketchInJournal(nullptr);
|
||||
}
|
||||
|
||||
_G(player).command_ready = false;
|
||||
} else {
|
||||
checkExitRight(627);
|
||||
checkExitUp(631);
|
||||
checkExitDown(620);
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room626.h
Normal file
44
engines/m4/riddle/rooms/section6/room626.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM626_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM626_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room626 : public Maze {
|
||||
public:
|
||||
Room626() : Maze() {}
|
||||
~Room626() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
75
engines/m4/riddle/rooms/section6/room627.cpp
Normal file
75
engines/m4/riddle/rooms/section6/room627.cpp
Normal file
@@ -0,0 +1,75 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room627.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room627::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 621:
|
||||
ws_demand_location(_G(my_walker), 429, 337, 1);
|
||||
break;
|
||||
|
||||
case 626:
|
||||
ws_demand_location(_G(my_walker), -30, 328, 3);
|
||||
ws_walk(_G(my_walker), 30, 328, nullptr, 1, 3);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 628:
|
||||
ws_demand_location(_G(my_walker), 670, 290, 9);
|
||||
ws_walk(_G(my_walker), 605, 290, nullptr, 1, 9);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 632:
|
||||
ws_demand_location(_G(my_walker), 426, 283, 5);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28c");
|
||||
ws_demand_location(_G(my_walker), 429, 337, 1);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room627::parser() {
|
||||
Maze::parser();
|
||||
|
||||
checkExitLeft(626);
|
||||
checkExitRight(628);
|
||||
checkExitUp(632);
|
||||
checkExitDown(621);
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room627.h
Normal file
44
engines/m4/riddle/rooms/section6/room627.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM627_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM627_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room627 : public Maze {
|
||||
public:
|
||||
Room627() : Maze() {}
|
||||
~Room627() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
75
engines/m4/riddle/rooms/section6/room628.cpp
Normal file
75
engines/m4/riddle/rooms/section6/room628.cpp
Normal file
@@ -0,0 +1,75 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room628.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room628::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 622:
|
||||
ws_demand_location(_G(my_walker), 341, 344, 1);
|
||||
break;
|
||||
|
||||
case 627:
|
||||
ws_demand_location(_G(my_walker), -30, 292, 3);
|
||||
ws_walk(_G(my_walker), 30, 292, nullptr, 1, 3);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 629:
|
||||
ws_demand_location(_G(my_walker), 670, 330, 9);
|
||||
ws_walk(_G(my_walker), 605, 330, nullptr, 1, 9);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 633:
|
||||
ws_demand_location(_G(my_walker), 199, 277, 5);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28c");
|
||||
ws_demand_location(_G(my_walker), 341, 344, 1);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room628::parser() {
|
||||
Maze::parser();
|
||||
|
||||
checkExitLeft(627);
|
||||
checkExitRight(629);
|
||||
checkExitUp(633);
|
||||
checkExitDown(622);
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room628.h
Normal file
44
engines/m4/riddle/rooms/section6/room628.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM628_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM628_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room628 : public Maze {
|
||||
public:
|
||||
Room628() : Maze() {}
|
||||
~Room628() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
75
engines/m4/riddle/rooms/section6/room629.cpp
Normal file
75
engines/m4/riddle/rooms/section6/room629.cpp
Normal file
@@ -0,0 +1,75 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room629.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room629::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 623:
|
||||
ws_demand_location(_G(my_walker), 299, 339, 1);
|
||||
break;
|
||||
|
||||
case 628:
|
||||
ws_demand_location(_G(my_walker), -30, 310, 3);
|
||||
ws_walk(_G(my_walker), 30, 310, nullptr, 1, 3);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 630:
|
||||
ws_demand_location(_G(my_walker), 670, 290, 9);
|
||||
ws_walk(_G(my_walker), 605, 290, nullptr, 1, 9);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 634:
|
||||
ws_demand_location(_G(my_walker), 404, 273, 5);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28c");
|
||||
ws_demand_location(_G(my_walker), 299, 339, 1);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room629::parser() {
|
||||
Maze::parser();
|
||||
|
||||
checkExitLeft(628);
|
||||
checkExitRight(630);
|
||||
checkExitUp(634);
|
||||
checkExitDown(623);
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room629.h
Normal file
44
engines/m4/riddle/rooms/section6/room629.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM629_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM629_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room629 : public Maze {
|
||||
public:
|
||||
Room629() : Maze() {}
|
||||
~Room629() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
68
engines/m4/riddle/rooms/section6/room630.cpp
Normal file
68
engines/m4/riddle/rooms/section6/room630.cpp
Normal file
@@ -0,0 +1,68 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room630.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room630::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 624:
|
||||
ws_demand_location(_G(my_walker), 382, 326, 1);
|
||||
break;
|
||||
|
||||
case 629:
|
||||
ws_demand_location(_G(my_walker), -30, 333, 3);
|
||||
ws_walk(_G(my_walker), 30, 333, nullptr, 1, 3);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 635:
|
||||
ws_demand_location(_G(my_walker), 410, 276, 5);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28c");
|
||||
ws_demand_location(_G(my_walker), 382, 326, 1);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room630::parser() {
|
||||
Maze::parser();
|
||||
|
||||
checkExitLeft(629);
|
||||
checkExitUp(635);
|
||||
checkExitDown(624);
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room630.h
Normal file
44
engines/m4/riddle/rooms/section6/room630.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM630_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM630_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room630 : public Maze {
|
||||
public:
|
||||
Room630() : Maze() {}
|
||||
~Room630() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
68
engines/m4/riddle/rooms/section6/room631.cpp
Normal file
68
engines/m4/riddle/rooms/section6/room631.cpp
Normal file
@@ -0,0 +1,68 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room631.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room631::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 626:
|
||||
ws_demand_location(_G(my_walker), 255, 341, 1);
|
||||
break;
|
||||
|
||||
case 632:
|
||||
ws_demand_location(_G(my_walker), 670, 290, 9);
|
||||
ws_walk(_G(my_walker), 605, 290, nullptr, 1, 9);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 637:
|
||||
ws_demand_location(_G(my_walker), 403, 271, 5);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28c");
|
||||
ws_demand_location(_G(my_walker), 255, 341, 1);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room631::parser() {
|
||||
Maze::parser();
|
||||
|
||||
checkExitRight(632);
|
||||
checkExitUp(637);
|
||||
checkExitDown(626);
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room631.h
Normal file
44
engines/m4/riddle/rooms/section6/room631.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM631_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM631_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room631 : public Maze {
|
||||
public:
|
||||
Room631() : Maze() {}
|
||||
~Room631() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
75
engines/m4/riddle/rooms/section6/room632.cpp
Normal file
75
engines/m4/riddle/rooms/section6/room632.cpp
Normal file
@@ -0,0 +1,75 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room632.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room632::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 627:
|
||||
ws_demand_location(_G(my_walker), 248, 343, 1);
|
||||
break;
|
||||
|
||||
case 631:
|
||||
ws_demand_location(_G(my_walker), -30, 310, 3);
|
||||
ws_walk(_G(my_walker), 30, 310, nullptr, 1, 3);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 633:
|
||||
ws_demand_location(_G(my_walker), 670, 290, 9);
|
||||
ws_walk(_G(my_walker), 605, 290, nullptr, 1, 9);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 638:
|
||||
ws_demand_location(_G(my_walker), 230, 291, 5);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28c");
|
||||
ws_demand_location(_G(my_walker), 248, 343, 1);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room632::parser() {
|
||||
Maze::parser();
|
||||
|
||||
checkExitLeft(631);
|
||||
checkExitRight(633);
|
||||
checkExitUp(638);
|
||||
checkExitDown(627);
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room632.h
Normal file
44
engines/m4/riddle/rooms/section6/room632.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM632_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM632_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room632 : public Maze {
|
||||
public:
|
||||
Room632() : Maze() {}
|
||||
~Room632() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
75
engines/m4/riddle/rooms/section6/room633.cpp
Normal file
75
engines/m4/riddle/rooms/section6/room633.cpp
Normal file
@@ -0,0 +1,75 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room633.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room633::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 607:
|
||||
ws_demand_location(_G(my_walker), 259, 277, 5);
|
||||
break;
|
||||
|
||||
case 628:
|
||||
ws_demand_location(_G(my_walker), 200, 345, 1);
|
||||
break;
|
||||
|
||||
case 632:
|
||||
ws_demand_location(_G(my_walker), -30, 310, 3);
|
||||
ws_walk(_G(my_walker), 30, 310, nullptr, 1, 3);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 634:
|
||||
ws_demand_location(_G(my_walker), 670, 290, 9);
|
||||
ws_walk(_G(my_walker), 605, 290, nullptr, 1, 9);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28c");
|
||||
ws_demand_location(_G(my_walker), 200, 345, 1);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room633::parser() {
|
||||
Maze::parser();
|
||||
|
||||
checkExitLeft(632);
|
||||
checkExitRight(634);
|
||||
checkExitUp(607);
|
||||
checkExitDown(628);
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room633.h
Normal file
44
engines/m4/riddle/rooms/section6/room633.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM633_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM633_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room633 : public Maze {
|
||||
public:
|
||||
Room633() : Maze() {}
|
||||
~Room633() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
75
engines/m4/riddle/rooms/section6/room634.cpp
Normal file
75
engines/m4/riddle/rooms/section6/room634.cpp
Normal file
@@ -0,0 +1,75 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room634.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room634::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 629:
|
||||
ws_demand_location(_G(my_walker), 372, 342, 1);
|
||||
break;
|
||||
|
||||
case 633:
|
||||
ws_demand_location(_G(my_walker), -30, 310, 3);
|
||||
ws_walk(_G(my_walker), 30, 310, nullptr, 1, 3);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 635:
|
||||
ws_demand_location(_G(my_walker), 670, 310, 9);
|
||||
ws_walk(_G(my_walker), 605, 310, nullptr, 1, 9);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 640:
|
||||
ws_demand_location(_G(my_walker), 365, 267, 5);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28c");
|
||||
ws_demand_location(_G(my_walker), 372, 342, 1);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room634::parser() {
|
||||
Maze::parser();
|
||||
|
||||
checkExitLeft(633);
|
||||
checkExitRight(635);
|
||||
checkExitUp(640);
|
||||
checkExitDown(629);
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room634.h
Normal file
44
engines/m4/riddle/rooms/section6/room634.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM634_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM634_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room634 : public Maze {
|
||||
public:
|
||||
Room634() : Maze() {}
|
||||
~Room634() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
75
engines/m4/riddle/rooms/section6/room635.cpp
Normal file
75
engines/m4/riddle/rooms/section6/room635.cpp
Normal file
@@ -0,0 +1,75 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room635.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room635::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 630:
|
||||
ws_demand_location(_G(my_walker), 308, 340, 1);
|
||||
break;
|
||||
|
||||
case 634:
|
||||
ws_demand_location(_G(my_walker), -30, 321, 3);
|
||||
ws_walk(_G(my_walker), 30, 321, nullptr, 1, 3);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 636:
|
||||
ws_demand_location(_G(my_walker), 670, 316, 9);
|
||||
ws_walk(_G(my_walker), 605, 316, nullptr, 1, 9);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 641:
|
||||
ws_demand_location(_G(my_walker), 90, 250, 5);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28c");
|
||||
ws_demand_location(_G(my_walker), 308, 340, 1);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room635::parser() {
|
||||
Maze::parser();
|
||||
|
||||
checkExitLeft(634);
|
||||
checkExitRight(636);
|
||||
checkExitUp(641);
|
||||
checkExitDown(630);
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room635.h
Normal file
44
engines/m4/riddle/rooms/section6/room635.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM635_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM635_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room635 : public Maze {
|
||||
public:
|
||||
Room635() : Maze() {}
|
||||
~Room635() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
63
engines/m4/riddle/rooms/section6/room636.cpp
Normal file
63
engines/m4/riddle/rooms/section6/room636.cpp
Normal file
@@ -0,0 +1,63 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room636.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room636::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 635:
|
||||
ws_demand_location(_G(my_walker), -30, 346, 3);
|
||||
ws_walk(_G(my_walker), 30, 346, nullptr, 1, 3);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 642:
|
||||
ws_demand_location(_G(my_walker), 268, 234, 5);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28c");
|
||||
ws_demand_location(_G(my_walker), 268, 234, 5);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room636::parser() {
|
||||
Maze::parser();
|
||||
|
||||
checkExitLeft(635);
|
||||
checkExitUp(642);
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room636.h
Normal file
44
engines/m4/riddle/rooms/section6/room636.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM636_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM636_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room636 : public Maze {
|
||||
public:
|
||||
Room636() : Maze() {}
|
||||
~Room636() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
68
engines/m4/riddle/rooms/section6/room637.cpp
Normal file
68
engines/m4/riddle/rooms/section6/room637.cpp
Normal file
@@ -0,0 +1,68 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room637.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room637::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 631:
|
||||
ws_demand_location(_G(my_walker), 298, 352, 1);
|
||||
break;
|
||||
|
||||
case 638:
|
||||
ws_demand_location(_G(my_walker), 670, 336, 9);
|
||||
ws_walk(_G(my_walker), 621, 336, nullptr, 1, 9);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 643:
|
||||
ws_demand_location(_G(my_walker), 300, 290, 5);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28c");
|
||||
ws_demand_location(_G(my_walker), 298, 352, 1);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room637::parser() {
|
||||
Maze::parser();
|
||||
|
||||
checkExitRight(638);
|
||||
checkExitUp(643);
|
||||
checkExitDown(631);
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room637.h
Normal file
44
engines/m4/riddle/rooms/section6/room637.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM637_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM637_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room637 : public Maze {
|
||||
public:
|
||||
Room637() : Maze() {}
|
||||
~Room637() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
75
engines/m4/riddle/rooms/section6/room638.cpp
Normal file
75
engines/m4/riddle/rooms/section6/room638.cpp
Normal file
@@ -0,0 +1,75 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room638.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room638::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 607:
|
||||
ws_demand_location(_G(my_walker), 670, 300, 9);
|
||||
ws_walk(_G(my_walker), 615, 300, nullptr, 1, 9);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 632:
|
||||
ws_demand_location(_G(my_walker), 360, 3550, 11);
|
||||
break;
|
||||
|
||||
case 637:
|
||||
ws_demand_location(_G(my_walker), -30, 319, 3);
|
||||
ws_walk(_G(my_walker), 20, 319, nullptr, 1, 3);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 644:
|
||||
ws_demand_location(_G(my_walker), 360, 300, 5);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28c");
|
||||
ws_demand_location(_G(my_walker), 360, 3550, 11);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room638::parser() {
|
||||
Maze::parser();
|
||||
|
||||
checkExitLeft(637);
|
||||
checkExitRight(607);
|
||||
checkExitUp(644);
|
||||
checkExitDown(632);
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room638.h
Normal file
44
engines/m4/riddle/rooms/section6/room638.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM638_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM638_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room638 : public Maze {
|
||||
public:
|
||||
Room638() : Maze() {}
|
||||
~Room638() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
75
engines/m4/riddle/rooms/section6/room640.cpp
Normal file
75
engines/m4/riddle/rooms/section6/room640.cpp
Normal file
@@ -0,0 +1,75 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room640.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room640::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 607:
|
||||
ws_demand_location(_G(my_walker), -30, 295, 3);
|
||||
ws_walk(_G(my_walker), 32, 295, nullptr, 1, 3);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 634:
|
||||
ws_demand_location(_G(my_walker), 303, 347, 1);
|
||||
break;
|
||||
|
||||
case 641:
|
||||
ws_demand_location(_G(my_walker), 670, 335, 9);
|
||||
ws_walk(_G(my_walker), 591, 335, nullptr, 1, 9);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 646:
|
||||
ws_demand_location(_G(my_walker), 290, 277, 5);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28c");
|
||||
ws_demand_location(_G(my_walker), 303, 347, 1);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room640::parser() {
|
||||
Maze::parser();
|
||||
|
||||
checkExitLeft(607);
|
||||
checkExitRight(641);
|
||||
checkExitUp(646);
|
||||
checkExitDown(634);
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room640.h
Normal file
44
engines/m4/riddle/rooms/section6/room640.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM640_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM640_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room640 : public Maze {
|
||||
public:
|
||||
Room640() : Maze() {}
|
||||
~Room640() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
75
engines/m4/riddle/rooms/section6/room641.cpp
Normal file
75
engines/m4/riddle/rooms/section6/room641.cpp
Normal file
@@ -0,0 +1,75 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room641.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room641::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 635:
|
||||
ws_demand_location(_G(my_walker), 305, 342, 1);
|
||||
break;
|
||||
|
||||
case 640:
|
||||
ws_demand_location(_G(my_walker), -30, 326, 3);
|
||||
ws_walk(_G(my_walker), 24, 326, nullptr, 1, 3);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 642:
|
||||
ws_demand_location(_G(my_walker), 670, 319, 9);
|
||||
ws_walk(_G(my_walker), 614, 319, nullptr, 1, 9);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 647:
|
||||
ws_demand_location(_G(my_walker), 315, 282, 5);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28c");
|
||||
ws_demand_location(_G(my_walker), 305, 342, 1);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room641::parser() {
|
||||
Maze::parser();
|
||||
|
||||
checkExitLeft(640);
|
||||
checkExitRight(642);
|
||||
checkExitUp(647);
|
||||
checkExitDown(635);
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room641.h
Normal file
44
engines/m4/riddle/rooms/section6/room641.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM641_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM641_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room641 : public Maze {
|
||||
public:
|
||||
Room641() : Maze() {}
|
||||
~Room641() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
68
engines/m4/riddle/rooms/section6/room642.cpp
Normal file
68
engines/m4/riddle/rooms/section6/room642.cpp
Normal file
@@ -0,0 +1,68 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room642.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room642::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 636:
|
||||
ws_demand_location(_G(my_walker), 307, 347, 11);
|
||||
break;
|
||||
|
||||
case 641:
|
||||
ws_demand_location(_G(my_walker), -30, 328, 3);
|
||||
ws_walk(_G(my_walker), 32, 328, nullptr, 1, 3);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 648:
|
||||
ws_demand_location(_G(my_walker), 280, 270, 5);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28c");
|
||||
ws_demand_location(_G(my_walker), 307, 347, 11);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room642::parser() {
|
||||
Maze::parser();
|
||||
|
||||
checkExitLeft(641);
|
||||
checkExitUp(648);
|
||||
checkExitDown(636);
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room642.h
Normal file
44
engines/m4/riddle/rooms/section6/room642.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM642_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM642_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room642 : public Maze {
|
||||
public:
|
||||
Room642() : Maze() {}
|
||||
~Room642() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
68
engines/m4/riddle/rooms/section6/room643.cpp
Normal file
68
engines/m4/riddle/rooms/section6/room643.cpp
Normal file
@@ -0,0 +1,68 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room643.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room643::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 637:
|
||||
ws_demand_location(_G(my_walker), 337, 347, 11);
|
||||
break;
|
||||
|
||||
case 644:
|
||||
ws_demand_location(_G(my_walker), 670, 301, 9);
|
||||
ws_walk(_G(my_walker), 615, 301, nullptr, 1, 9);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 649:
|
||||
ws_demand_location(_G(my_walker), 298, 296, 5);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28c");
|
||||
ws_demand_location(_G(my_walker), 337, 347, 11);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room643::parser() {
|
||||
Maze::parser();
|
||||
|
||||
checkExitRight(644);
|
||||
checkExitUp(649);
|
||||
checkExitDown(637);
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room643.h
Normal file
44
engines/m4/riddle/rooms/section6/room643.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM643_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM643_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room643 : public Maze {
|
||||
public:
|
||||
Room643() : Maze() {}
|
||||
~Room643() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
83
engines/m4/riddle/rooms/section6/room644.cpp
Normal file
83
engines/m4/riddle/rooms/section6/room644.cpp
Normal file
@@ -0,0 +1,83 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room644.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
#include "m4/riddle/riddle.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room644::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 638:
|
||||
ws_demand_location(_G(my_walker), 343, 351, 1);
|
||||
break;
|
||||
|
||||
case 643:
|
||||
ws_demand_location(_G(my_walker), -30, 313, 3);
|
||||
ws_walk(_G(my_walker), 25, 313, nullptr, 1, 3);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 645:
|
||||
ws_demand_location(_G(my_walker), 670, 346, 9);
|
||||
ws_walk(_G(my_walker), 613, 346, nullptr, 1, 9);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28c");
|
||||
ws_demand_location(_G(my_walker), 343, 351, 1);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room644::parser() {
|
||||
Maze::parser();
|
||||
|
||||
if (player_said("journal", "SCALLOP")) {
|
||||
if (_G(flags)[V207]) {
|
||||
digi_play("203r54", 1);
|
||||
} else {
|
||||
if (_G(kernel).trigger == 6)
|
||||
_G(flags)[V207] = 1;
|
||||
sketchInJournal(nullptr);
|
||||
}
|
||||
|
||||
_G(player).command_ready = false;
|
||||
} else {
|
||||
checkExitLeft(643);
|
||||
checkExitRight(645);
|
||||
checkExitDown(638);
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room644.h
Normal file
44
engines/m4/riddle/rooms/section6/room644.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM644_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM644_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room644 : public Maze {
|
||||
public:
|
||||
Room644() : Maze() {}
|
||||
~Room644() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
70
engines/m4/riddle/rooms/section6/room645.cpp
Normal file
70
engines/m4/riddle/rooms/section6/room645.cpp
Normal file
@@ -0,0 +1,70 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room645.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room645::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 607:
|
||||
ws_demand_location(_G(my_walker), 313, 348, 1);
|
||||
break;
|
||||
|
||||
case 644:
|
||||
ws_demand_location(_G(my_walker), -30, 323, 3);
|
||||
ws_walk(_G(my_walker), 25, 323, nullptr, 1, 3);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 646:
|
||||
ws_demand_location(_G(my_walker), 670, 298, 3);
|
||||
ws_walk(_G(my_walker), 608, 298, nullptr, 1, 9);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28c");
|
||||
ws_demand_location(_G(my_walker), 313, 348, 1);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room645::parser() {
|
||||
Maze::parser();
|
||||
|
||||
checkExitLeft(644);
|
||||
checkExitRight(646);
|
||||
checkExitDown(607);
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room645.h
Normal file
44
engines/m4/riddle/rooms/section6/room645.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM645_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM645_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room645 : public Maze {
|
||||
public:
|
||||
Room645() : Maze() {}
|
||||
~Room645() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
75
engines/m4/riddle/rooms/section6/room646.cpp
Normal file
75
engines/m4/riddle/rooms/section6/room646.cpp
Normal file
@@ -0,0 +1,75 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room646.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room646::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 640:
|
||||
ws_demand_location(_G(my_walker), 320, 353, 11);
|
||||
break;
|
||||
|
||||
case 645:
|
||||
ws_demand_location(_G(my_walker), -30, 330, 9);
|
||||
ws_walk(_G(my_walker), 30, 330, nullptr, 1, 9);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 647:
|
||||
ws_demand_location(_G(my_walker), 670, 292, 9);
|
||||
ws_walk(_G(my_walker), 610, 292, nullptr, 1, 9);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 650:
|
||||
ws_demand_location(_G(my_walker), 262, 274, 5);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28c");
|
||||
ws_demand_location(_G(my_walker), 320, 353, 11);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room646::parser() {
|
||||
Maze::parser();
|
||||
|
||||
checkExitLeft(645);
|
||||
checkExitRight(647);
|
||||
checkExitUp(650);
|
||||
checkExitDown(640);
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room646.h
Normal file
44
engines/m4/riddle/rooms/section6/room646.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM646_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM646_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room646 : public Maze {
|
||||
public:
|
||||
Room646() : Maze() {}
|
||||
~Room646() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
100
engines/m4/riddle/rooms/section6/room647.cpp
Normal file
100
engines/m4/riddle/rooms/section6/room647.cpp
Normal file
@@ -0,0 +1,100 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room647.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room647::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 641:
|
||||
ws_demand_location(_G(my_walker), 320, 353, 1);
|
||||
break;
|
||||
|
||||
case 646:
|
||||
ws_demand_location(_G(my_walker), -30, 330, 3);
|
||||
ws_walk(_G(my_walker), 30, 330, nullptr, 1, 3);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 648:
|
||||
ws_demand_location(_G(my_walker), 670, 307, 9);
|
||||
ws_walk(_G(my_walker), 610, 307, nullptr, 1, 9);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
case 651:
|
||||
ws_demand_location(_G(my_walker), 0, 292, 5);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28c");
|
||||
ws_demand_location(_G(my_walker), 320, 353, 1);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room647::parser() {
|
||||
Maze::parser();
|
||||
checkExitLeft(646);
|
||||
checkExitRight(648);
|
||||
checkExitUp(651);
|
||||
|
||||
if (player_said("up2")) {
|
||||
_G(flags)[V206] = 1;
|
||||
|
||||
switch (_G(kernel).trigger) {
|
||||
case -1:
|
||||
player_set_commands_allowed(false);
|
||||
disable_player_commands_and_fade_init(1);
|
||||
_G(player).command_ready = false;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
digi_stop(1);
|
||||
digi_stop(2);
|
||||
adv_kill_digi_between_rooms(false);
|
||||
digi_play_loop("950_s28", 3);
|
||||
_G(game).setRoom(651);
|
||||
_G(player).command_ready = false;
|
||||
break;
|
||||
|
||||
default:
|
||||
checkExitDown(641);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
checkExitDown(641);
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room647.h
Normal file
44
engines/m4/riddle/rooms/section6/room647.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM647_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM647_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room647 : public Maze {
|
||||
public:
|
||||
Room647() : Maze() {}
|
||||
~Room647() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
62
engines/m4/riddle/rooms/section6/room648.cpp
Normal file
62
engines/m4/riddle/rooms/section6/room648.cpp
Normal file
@@ -0,0 +1,62 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room648.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room648::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 642:
|
||||
ws_demand_location(_G(my_walker), 320, 346, 11);
|
||||
break;
|
||||
|
||||
case 647:
|
||||
ws_demand_location(_G(my_walker), -30, 306, 3);
|
||||
ws_walk(_G(my_walker), 30, 306, nullptr, 1, 3);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28c");
|
||||
ws_demand_location(_G(my_walker), 320, 346, 11);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room648::parser() {
|
||||
Maze::parser();
|
||||
checkExitLeft(647);
|
||||
checkExitDown(642);
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room648.h
Normal file
44
engines/m4/riddle/rooms/section6/room648.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM648_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM648_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room648 : public Maze {
|
||||
public:
|
||||
Room648() : Maze() {}
|
||||
~Room648() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
55
engines/m4/riddle/rooms/section6/room649.cpp
Normal file
55
engines/m4/riddle/rooms/section6/room649.cpp
Normal file
@@ -0,0 +1,55 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room649.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room649::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 643:
|
||||
ws_demand_location(_G(my_walker), 334, 347, 11);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28c");
|
||||
ws_demand_location(_G(my_walker), 334, 347, 11);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room649::parser() {
|
||||
Maze::parser();
|
||||
checkExitDown(643);
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room649.h
Normal file
44
engines/m4/riddle/rooms/section6/room649.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM649_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM649_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room649 : public Maze {
|
||||
public:
|
||||
Room649() : Maze() {}
|
||||
~Room649() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
62
engines/m4/riddle/rooms/section6/room650.cpp
Normal file
62
engines/m4/riddle/rooms/section6/room650.cpp
Normal file
@@ -0,0 +1,62 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room650.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room650::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 646:
|
||||
ws_demand_location(_G(my_walker), 320, 350, 11);
|
||||
break;
|
||||
|
||||
case 651:
|
||||
ws_demand_location(_G(my_walker), 670, 304, 9);
|
||||
ws_walk(_G(my_walker), 615, 304, nullptr, 1, 9);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28c");
|
||||
ws_demand_location(_G(my_walker), 320, 350, 11);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room650::parser() {
|
||||
Maze::parser();
|
||||
checkExitRight(651);
|
||||
checkExitDown(646);
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room650.h
Normal file
44
engines/m4/riddle/rooms/section6/room650.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM650_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM650_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room650 : public Maze {
|
||||
public:
|
||||
Room650() : Maze() {}
|
||||
~Room650() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
79
engines/m4/riddle/rooms/section6/room651.cpp
Normal file
79
engines/m4/riddle/rooms/section6/room651.cpp
Normal file
@@ -0,0 +1,79 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/room651.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
#include "m4/riddle/riddle.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Room651::init() {
|
||||
switch (_G(game).previous_room) {
|
||||
case KERNEL_RESTORING_GAME:
|
||||
digi_preload("950_s28c");
|
||||
break;
|
||||
|
||||
case 647:
|
||||
if (_G(flags)[V206])
|
||||
ws_demand_location(_G(my_walker), 548, 372, 11);
|
||||
else
|
||||
ws_demand_location(_G(my_walker), 277, 353, 11);
|
||||
break;
|
||||
|
||||
case 650:
|
||||
ws_demand_location(_G(my_walker), -30, 310, 3);
|
||||
ws_walk(_G(my_walker), 20, 310, nullptr, 1, 3);
|
||||
player_set_commands_allowed(false);
|
||||
break;
|
||||
|
||||
default:
|
||||
digi_preload("950_s28c");
|
||||
ws_demand_location(_G(my_walker), 277, 353, 11);
|
||||
break;
|
||||
}
|
||||
|
||||
digi_play_loop("950_s28c", 3);
|
||||
}
|
||||
|
||||
void Room651::parser() {
|
||||
Maze::parser();
|
||||
|
||||
if (player_said("journal", "SHARK'S TOOTH")) {
|
||||
if (_G(flags)[V201]) {
|
||||
digi_play("203r54", 1);
|
||||
} else {
|
||||
if (_G(kernel).trigger == 6)
|
||||
_G(flags)[V201] = 1;
|
||||
sketchInJournal(nullptr);
|
||||
}
|
||||
|
||||
_G(player).command_ready = false;
|
||||
} else {
|
||||
checkExitLeft(650);
|
||||
checkExitDown(647);
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section6/room651.h
Normal file
44
engines/m4/riddle/rooms/section6/room651.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM651_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_ROOM651_H
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room651 : public Maze {
|
||||
public:
|
||||
Room651() : Maze() {}
|
||||
~Room651() override {}
|
||||
|
||||
void init() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
89
engines/m4/riddle/rooms/section6/section6.cpp
Normal file
89
engines/m4/riddle/rooms/section6/section6.cpp
Normal file
@@ -0,0 +1,89 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
const int16 TT_NORMAL_DIRS[] = { 200, 201, 202, 203, 204, -1 };
|
||||
const char *TT_NORMAL_NAMES[] = {
|
||||
"tt walker 1", "tt walker 2", "tt walker 3",
|
||||
"tt walker 4", "tt walker 5"
|
||||
};
|
||||
const int16 TT_SHADOW_DIRS[] = { 210, 211, 212, 213, 214, -1 };
|
||||
const char *TT_SHADOW_NAMES[] = {
|
||||
"tt walker shadow 1", "tt walker shadow 2",
|
||||
"tt walker shadow 3", "tt walker shadow 4",
|
||||
"tt walker shadow 5"
|
||||
};
|
||||
|
||||
|
||||
Section6::Section6() : Rooms::Section() {
|
||||
add(603, &_room603);
|
||||
add(604, &_room604);
|
||||
add(605, &_room605);
|
||||
add(607, &_room607);
|
||||
add(608, &_room608);
|
||||
add(610, &_room610);
|
||||
add(615, &_room615);
|
||||
add(620, &_room620);
|
||||
add(621, &_room621);
|
||||
add(622, &_room622);
|
||||
add(623, &_room623);
|
||||
add(624, &_room624);
|
||||
add(625, &_room625);
|
||||
add(626, &_room626);
|
||||
add(627, &_room627);
|
||||
add(628, &_room628);
|
||||
add(629, &_room629);
|
||||
add(630, &_room630);
|
||||
add(631, &_room631);
|
||||
add(632, &_room632);
|
||||
add(633, &_room633);
|
||||
add(634, &_room634);
|
||||
add(635, &_room635);
|
||||
add(636, &_room636);
|
||||
add(637, &_room637);
|
||||
add(638, &_room638);
|
||||
add(640, &_room640);
|
||||
add(641, &_room641);
|
||||
add(642, &_room642);
|
||||
add(643, &_room643);
|
||||
add(644, &_room644);
|
||||
add(645, &_room645);
|
||||
add(646, &_room646);
|
||||
add(647, &_room647);
|
||||
add(648, &_room648);
|
||||
add(649, &_room649);
|
||||
add(650, &_room650);
|
||||
add(651, &_room651);
|
||||
}
|
||||
|
||||
void Section6::daemon() {
|
||||
_G(kernel).continue_handling_trigger = true;
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
126
engines/m4/riddle/rooms/section6/section6.h
Normal file
126
engines/m4/riddle/rooms/section6/section6.h
Normal file
@@ -0,0 +1,126 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_H
|
||||
|
||||
#include "m4/riddle/rooms/section.h"
|
||||
#include "m4/riddle/rooms/section6/room603.h"
|
||||
#include "m4/riddle/rooms/section6/room604.h"
|
||||
#include "m4/riddle/rooms/section6/room605.h"
|
||||
#include "m4/riddle/rooms/section6/room607.h"
|
||||
#include "m4/riddle/rooms/section6/room608.h"
|
||||
#include "m4/riddle/rooms/section6/room610.h"
|
||||
#include "m4/riddle/rooms/section6/room615.h"
|
||||
#include "m4/riddle/rooms/section6/room620.h"
|
||||
#include "m4/riddle/rooms/section6/room621.h"
|
||||
#include "m4/riddle/rooms/section6/room622.h"
|
||||
#include "m4/riddle/rooms/section6/room623.h"
|
||||
#include "m4/riddle/rooms/section6/room624.h"
|
||||
#include "m4/riddle/rooms/section6/room625.h"
|
||||
#include "m4/riddle/rooms/section6/room626.h"
|
||||
#include "m4/riddle/rooms/section6/room627.h"
|
||||
#include "m4/riddle/rooms/section6/room628.h"
|
||||
#include "m4/riddle/rooms/section6/room629.h"
|
||||
#include "m4/riddle/rooms/section6/room630.h"
|
||||
#include "m4/riddle/rooms/section6/room631.h"
|
||||
#include "m4/riddle/rooms/section6/room632.h"
|
||||
#include "m4/riddle/rooms/section6/room633.h"
|
||||
#include "m4/riddle/rooms/section6/room634.h"
|
||||
#include "m4/riddle/rooms/section6/room635.h"
|
||||
#include "m4/riddle/rooms/section6/room636.h"
|
||||
#include "m4/riddle/rooms/section6/room637.h"
|
||||
#include "m4/riddle/rooms/section6/room638.h"
|
||||
#include "m4/riddle/rooms/section6/room640.h"
|
||||
#include "m4/riddle/rooms/section6/room641.h"
|
||||
#include "m4/riddle/rooms/section6/room642.h"
|
||||
#include "m4/riddle/rooms/section6/room643.h"
|
||||
#include "m4/riddle/rooms/section6/room644.h"
|
||||
#include "m4/riddle/rooms/section6/room645.h"
|
||||
#include "m4/riddle/rooms/section6/room646.h"
|
||||
#include "m4/riddle/rooms/section6/room647.h"
|
||||
#include "m4/riddle/rooms/section6/room648.h"
|
||||
#include "m4/riddle/rooms/section6/room649.h"
|
||||
#include "m4/riddle/rooms/section6/room650.h"
|
||||
#include "m4/riddle/rooms/section6/room651.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
extern const int16 TT_NORMAL_DIRS[];
|
||||
extern const char *TT_NORMAL_NAMES[];
|
||||
extern const int16 TT_SHADOW_DIRS[];
|
||||
extern const char *TT_SHADOW_NAMES[];
|
||||
|
||||
class Section6 : public Section {
|
||||
private:
|
||||
Room603 _room603;
|
||||
Room604 _room604;
|
||||
Room605 _room605;
|
||||
Room607 _room607;
|
||||
Room608 _room608;
|
||||
Room610 _room610;
|
||||
Room615 _room615;
|
||||
Room620 _room620;
|
||||
Room621 _room621;
|
||||
Room622 _room622;
|
||||
Room623 _room623;
|
||||
Room624 _room624;
|
||||
Room625 _room625;
|
||||
Room626 _room626;
|
||||
Room627 _room627;
|
||||
Room628 _room628;
|
||||
Room629 _room629;
|
||||
Room630 _room630;
|
||||
Room631 _room631;
|
||||
Room632 _room632;
|
||||
Room633 _room633;
|
||||
Room634 _room634;
|
||||
Room635 _room635;
|
||||
Room636 _room636;
|
||||
Room637 _room637;
|
||||
Room638 _room638;
|
||||
Room640 _room640;
|
||||
Room641 _room641;
|
||||
Room642 _room642;
|
||||
Room643 _room643;
|
||||
Room644 _room644;
|
||||
Room645 _room645;
|
||||
Room646 _room646;
|
||||
Room647 _room647;
|
||||
Room648 _room648;
|
||||
Room649 _room649;
|
||||
Room650 _room650;
|
||||
Room651 _room651;
|
||||
|
||||
public:
|
||||
Section6();
|
||||
virtual ~Section6() {}
|
||||
|
||||
void daemon() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
99
engines/m4/riddle/rooms/section6/section6_maze.cpp
Normal file
99
engines/m4/riddle/rooms/section6/section6_maze.cpp
Normal file
@@ -0,0 +1,99 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section6/section6_maze.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
void Maze::preload() {
|
||||
_G(player).walker_type = 1;
|
||||
_G(player).shadow_type = 1;
|
||||
}
|
||||
|
||||
void Maze::daemon() {
|
||||
if (_G(kernel).trigger == 1) {
|
||||
player_set_commands_allowed(true);
|
||||
}
|
||||
}
|
||||
|
||||
void Maze::parser() {
|
||||
const bool lookFlag = player_said_any("look", "look at");
|
||||
const bool takeFlag = player_said("take");
|
||||
|
||||
if ((player_said("gear") || lookFlag) && player_said("STATUE")) {
|
||||
digi_play("623R02", 1, 255, -1, 623);
|
||||
} else if (lookFlag && player_said("RED BOULDER")) {
|
||||
digi_play("623R01", 1, 255, -1, 623);
|
||||
} else if (lookFlag && player_said_any("GREY ROCK", "STONE")) {
|
||||
digi_play("623R03", 1);
|
||||
} else if (lookFlag && player_said("CLAY")) {
|
||||
digi_play("623R04", 1);
|
||||
} else if (lookFlag && player_said(" ")) {
|
||||
digi_play("623R05", 1);
|
||||
} else if (lookFlag && player_said("STARFISH")) {
|
||||
digi_play("625R01", 1);
|
||||
} else if (lookFlag && player_said("SEAHORSE")) {
|
||||
digi_play("626R01", 1);
|
||||
} else if (lookFlag && player_said("SCALLOP")) {
|
||||
digi_play("644R01", 1);
|
||||
} else if (lookFlag && player_said("SHARK'S TOOTH")) {
|
||||
digi_play("651R01", 1);
|
||||
} else if (takeFlag && player_said("clay")) {
|
||||
digi_play("607r08", 1);
|
||||
} else if (player_said("HORN/PULL CORD/WATER", "CLAY")) {
|
||||
digi_play("com136", 1, 255, -1, 997);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
_G(player).command_ready = false;
|
||||
}
|
||||
|
||||
void Maze::checkExit(const char *action, int newRoom) {
|
||||
if (player_said(action)) {
|
||||
switch (_G(kernel).trigger) {
|
||||
case -1:
|
||||
player_set_commands_allowed(false);
|
||||
disable_player_commands_and_fade_init(1);
|
||||
_G(player).command_ready = false;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
digi_stop(1);
|
||||
digi_stop(2);
|
||||
adv_kill_digi_between_rooms(false);
|
||||
digi_play_loop("950_s28C", 3, 90);
|
||||
_G(game).setRoom(newRoom);
|
||||
_G(player).command_ready = false;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
62
engines/m4/riddle/rooms/section6/section6_maze.h
Normal file
62
engines/m4/riddle/rooms/section6/section6_maze.h
Normal file
@@ -0,0 +1,62 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef M4_RIDDLE_ROOMS_SECTION6_MAZE_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION6_MAZE_H
|
||||
|
||||
#include "m4/riddle/rooms/room.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Maze : public Room {
|
||||
private:
|
||||
void checkExit(const char *action, int newRoom);
|
||||
|
||||
protected:
|
||||
void checkExitLeft(int newRoom) {
|
||||
checkExit("exit left", newRoom);
|
||||
}
|
||||
void checkExitRight(int newRoom) {
|
||||
checkExit("exit right", newRoom);
|
||||
}
|
||||
void checkExitUp(int newRoom) {
|
||||
checkExit("exit up", newRoom);
|
||||
}
|
||||
void checkExitDown(int newRoom) {
|
||||
checkExit("exit down", newRoom);
|
||||
}
|
||||
|
||||
public:
|
||||
Maze() : Room() {}
|
||||
~Maze() override {}
|
||||
|
||||
void preload() override;
|
||||
void daemon() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user