/* 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 already covered by ripley_said(LOOK) } else if (lookFl && player_said("urn")) { digi_play("com061", 1, 255, -1, 997); } else if (goFl && player_said("outside")) { digi_play("810r06", 1, 255, -1, 810); } else if (gearFl && player_said("large urn")) { digi_play("com072", 1, 255, -1, -1); } else if (gearFl && player_said("urn")) { digi_play("com073", 1, 255, -1, -1); } else if ((takeFl || gearFl) && player_said("IMPERIAL SEAL")) { switch (_G(kernel).trigger) { case -1: player_set_commands_allowed(false); interface_hide(); digi_play("810r07", 1, 255, 18, 810); kernel_timing_trigger(180, 10, nullptr); break; case 10: _ripLooksAroundAndNodsMach = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 415, 312, 46, 512, false, triggerMachineByHashCallback, "rip takes seal"); ws_hide_walker(_G(my_walker)); sendWSMessage_10000(1, _ripLooksAroundAndNodsMach, _ripTrekHandTalkPos3Series,1, 6, -1, _ripTrekHandTalkPos3Series, 7, 10, 4); _safariShadow3Mach = series_show("SAFARI SHADOW 3", 1280, 16, -1, -1, 0, 46, 415, 312); break; case 18: sendWSMessage_10000(1, _ripLooksAroundAndNodsMach, _ripTrekHandTalkPos3Series, 6, 1, -1, _ripTrekHandTalkPos3Series, 1, 1, 0); kernel_timing_trigger(15, 20, nullptr); break; case 20: digi_play("810r07A", 1, 255, 40, 810); kernel_timing_trigger(50, 22, nullptr); break; case 22: sendWSMessage_10000(1, _ripLooksAroundAndNodsMach, _ripTrekHandTalkPos3Series, 1, 6, -1, _ripTrekHandTalkPos3Series, 7, 10, 4); kernel_timing_trigger(540, 25, nullptr); break; case 24: sendWSMessage_10000(1, _ripLooksAroundAndNodsMach, _ripTrekHandTalkPos3Series, 6, 1, -1, _ripTrekHandTalkPos3Series, 1, 1, 0); break; case 40: terminateMachine(_ripLooksAroundAndNodsMach); terminateMachine(_safariShadow3Mach); terminateMachine(_810SealMach); _ripLooksAroundAndNodsMach = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 512, false, triggerMachineByHashCallback, "rip takes seal"); sendWSMessage_10000(1, _ripLooksAroundAndNodsMach, _ripleyTakesJadeSealFromTombSeries, 1, 38, 48, _ripleyTakesJadeSealFromTombSeries, 38, 38, 0); break; case 48: _blockSlidesOutMach = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 768, false, triggerMachineByHashCallback, "block slides out"); sendWSMessage_10000(1, _blockSlidesOutMach, _810BlockSlidesOutSeries, 1, 14, -1, _810BlockSlidesOutSeries, 14, 14, 0); sendWSMessage_190000(_blockSlidesOutMach, 12); digi_play("810_s01", 3, 255, 60, 810); kernel_timing_trigger(40, 50, nullptr); break; case 50: sendWSMessage_10000(1, _ripLooksAroundAndNodsMach, _ripleyTakesJadeSealFromTombSeries, 39, 45, 51, _ripleyTakesJadeSealFromTombSeries, 45, 45, 0); break; case 51: kernel_timing_trigger(45, 52, nullptr); break; case 52: digi_play("810r08", 1, 255, 53, 810); break; case 53: sendWSMessage_10000(1, _ripLooksAroundAndNodsMach, _ripleyTakesJadeSealFromTombSeries, 46, 52, 54, _ripleyTakesJadeSealFromTombSeries, 52, 52, 0); break; case 54: sendWSMessage_10000(1, _ripLooksAroundAndNodsMach, _ripleyTakesJadeSealFromTombSeries, 52, 46, 55, _ripleyTakesJadeSealFromTombSeries, 57, 57, 0); sendWSMessage_10000(1, _ripLooksAroundAndNodsMach, _ripleyTakesJadeSealFromTombSeries, 46, 52, 56, _ripleyTakesJadeSealFromTombSeries, 52, 52, 0); break; case 55: sendWSMessage_10000(1, _ripLooksAroundAndNodsMach, _ripleyTakesJadeSealFromTombSeries, 46, 52, 56, _ripleyTakesJadeSealFromTombSeries, 52, 52, 0); break; case 56: digi_play("810r09", 1, 255, 58, 810); break; case 58: sendWSMessage_10000(1, _ripLooksAroundAndNodsMach, _ripleyTakesJadeSealFromTombSeries, 52, 84, 110, _ripleyTakesJadeSealFromTombSeries, 84, 84, 0); kernel_timing_trigger(25, 70, nullptr); break; case 60: digi_stop(3); digi_unload("810_s01"); digi_play_loop("950_s45", 3, 128, -1, 950); break; case 70: series_play("810merc", 768, 0, 130, 12, 0, 100, 0, 0, 0, 35); break; case 110: terminateMachine(_ripLooksAroundAndNodsMach); ws_unhide_walker(_G(my_walker)); ws_demand_facing(_G(my_walker), 9); ws_demand_location(_G(my_walker), 404, 311); sendWSMessage_3860000(_G(my_walker), 2); ws_walk(_G(my_walker), 55, 318, nullptr, -1, 9, true); break; case 130: _810MercMach = series_play("810merc", 768, 16, -1, 12, 0, 100, 0, 0, 36, 41); disable_player_commands_and_fade_init(150); digi_stop(2); break; case 150: adv_kill_digi_between_rooms(false); digi_unload("950_s29"); _G(game).setRoom(860); break; default: break; } } else if (player_said("journal") && !takeFl && !lookFl && !gearFl) { digi_play("com042", 1, 255, -1, 950); } else if (!player_said("walk", "mausoleum")) return; _G(player).command_ready = false; } void Room810::daemon() { switch (_G(kernel).trigger) { case 1: _ripLooksAroundAndNodsMach = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 160, 318, 46, 768, false, triggerMachineByHashCallback, "rip looks around and nods"); ws_hide_walker(_G(my_walker)); sendWSMessage_10000(1, _ripLooksAroundAndNodsMach, _ripPos3LookAroundSeries, 1, 16, 51, _ripPos3LookAroundSeries, 17, 20, 4); _safariShadow3Mach = series_show("SAFARI SHADOW 3", 1280, 16, -1, -1, 0, 46, 160, 318); break; case 51: sendWSMessage_190000(_ripLooksAroundAndNodsMach, 20); digi_play("810r01", 1, 255, 52, 810); break; case 52: sendWSMessage_190000(_ripLooksAroundAndNodsMach, 12); sendWSMessage_10000(1, _ripLooksAroundAndNodsMach, _ripPos3LookAroundSeries, 16, 1, 53, _ripPos3LookAroundSeries, 1, 1, 0); break; case 53: terminateMachine(_ripLooksAroundAndNodsMach); terminateMachine(_safariShadow3Mach); ws_unhide_walker(_G(my_walker)); player_set_commands_allowed(true); break; default: break; } } } // namespace Rooms } // namespace Riddle } // namespace M4