/* 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 272 && _G(player).click_y < 300 && player_said("FLOOR")) { ws_walk(_G(player).click_x, 301, nullptr, -1, 1); } else if (hotspot->feet_x > 272 && hotspot->feet_y < 300) { player_hotspot_walk_override(hotspot->feet_x, 301, 1); } } if (player_said("PARLOUR") && !player_said_any("ENTER", "LOOK AT", "GEAR")) player_set_facing_hotspot(); if (player_said("BASEMENT") && !player_said_any("ENTER", "LOOK AT", "GEAR")) player_set_facing_hotspot(); return; } _G(player).command_ready = false; } void Room503::parser() { _G(kernel).trigger_mode = KT_DAEMON; const bool borkFlag = player_said("BORK") && _G(flags)[kBORK_STATE] == 12; const bool microwaveFlag = player_said("MICROWAVE"); const bool ovenFlag = player_said("OVEN") && _G(flags)[kBORK_STATE] == 16; const bool prunesFlag = player_said("PRUNES") && _G(flags)[kBORK_STATE] == 16; if (borkFlag && player_said("LOOK AT")) { wilbur_speech("503w005"); } else if (borkFlag && player_said("GEAR")) { wilbur_speech("503w006"); } else if (player_said("RUBBER DUCKY") && player_said("BORK")) { wilbur_speech("500w031"); } else if (player_said("RUBBER DUCKY") && player_said("SINK")) { wilbur_speech("500w034"); } else if (player_said("SOAPY WATER", "SINK")) { wilbur_speech("500w049"); } else if (microwaveFlag && player_said("LOOK AT") && _G(flags)[kBORK_STATE] == 16) { wilbur_speech("503w011"); } else if (microwaveFlag && player_said("LOOK AT") && _G(flags)[kBORK_STATE] == 13) { wilbur_speech("503w010"); } else if (microwaveFlag && player_said("TAKE") && _G(flags)[kBORK_STATE] == 16) { wilbur_speech("503w013"); } else if (microwaveFlag && player_said("TAKE") && _flag2) { wilbur_speech("503w013"); } else if (microwaveFlag && player_said("GEAR") && _G(flags)[kBORK_STATE] == 16) { wilbur_speech("503w013"); } else if (microwaveFlag && player_said("GEAR") && _flag2 && _G(flags)[kBORK_STATE] != 13) { wilbur_speech("503w012"); } else if (player_said("RUBBER GLOVES ") && player_said("TAKE") && _G(flags)[kBORK_STATE] != 16 && _G(flags)[kBORK_STATE] != 13 && _flag3) { wilbur_speech("503w012"); } else if (player_said("RUBBER GLOVES ") && player_said("GEAR")) { wilbur_speech("503w015"); } else if (ovenFlag && player_said("LOOK AT")) { wilbur_speech("503w021"); } else if (ovenFlag && player_said("GEAR")) { wilbur_speech("503w023"); } else if (player_said("GEAR", "OVEN") && _G(flags)[kBORK_STATE] == 16 && _G(flags)[kBORK_STATE] != 13) { wilbur_speech("503w022"); } else if (player_said("LOOK AT", "CUPBOARD ") && inv_player_has("RUBBER GLOVES")) { wilbur_speech("503w027"); } else if (prunesFlag && player_said("LOOK AT")) { wilbur_speech("503w030"); } else if (prunesFlag && (player_said("TAKE") || player_said("GEAR"))) { wilbur_speech("503w032"); } else if (player_said("GEAR", "WINDOW") && _G(flags)[V207] != 0) { wilbur_speech("503w033"); } else if (_G(walker).wilbur_said(SAID)) { // Already handled } else if (player_said("TAKE", "ROLLING PIN ")) { _G(wilbur_should) = 3; kernel_trigger_dispatch_now(kCHANGE_WILBUR_ANIMATION); } else if (player_said("TAKE", "RUBBER GLOVES ") && (_G(flags)[kBORK_STATE] == 16 || _G(flags)[kBORK_STATE] == 13)) { _G(wilbur_should) = 7; kernel_trigger_dispatch_now(kCHANGE_WILBUR_ANIMATION); } else if (player_said("BORK") && player_said("LOOK AT") && (_G(flags)[kBORK_STATE] == 0 || _G(flags)[kBORK_STATE] == 1) && !player_said_any("GIZMO", "ROLLING PIN", "SOCK", "SOAPY WATER", "RUBBER_GLOVES") && !player_said("LAXATIVE")) { player_set_commands_allowed(false); _G(wilbur_should) = 2; kernel_trigger_dispatch_now(kCHANGE_WILBUR_ANIMATION); } else if (player_said("GEAR", "MICROWAVE") && _G(flags)[kBORK_STATE] == 13) { _G(wilbur_should) = 5; kernel_trigger_dispatch_now(kCHANGE_WILBUR_ANIMATION); } else if (player_said("GEAR", "OVEN") && (_G(flags)[kBORK_STATE] == 16 || _G(flags)[kBORK_STATE] == 13)) { _G(wilbur_should) = 8; kernel_trigger_dispatch_now(kCHANGE_WILBUR_ANIMATION); } else if (player_said("PARLOUR") && player_said_any("ENTER", "LOOK AT", "GEAR")) { term_message("Going into 502!"); _val5 = 5006; kernel_trigger_dispatch_now(4); } else if (player_said("BASEMENT") && player_said_any("ENTER", "LOOK AT", "GEAR")) { term_message("Going into 504!"); _val5 = 5008; kernel_trigger_dispatch_now(4); } else { return; } _G(player).command_ready = false; } void Room503::loadSeries1() { static const char *NAMES[] = { "503bk01", "503bk01s", "503bk02", "503bk02s", "503bk17", "503bk17s", "503bk06", "503bk06s", "503bk07", "503bk07s", "503bk06", "503bk06s", "503bk09", "503bk09s", "503bk10", "503bk11", "503bk11s", "503bk12", "503bk13", "503bk13s" }; for (int i = 0; i < 20; ++i) series_load(NAMES[i]); if (!_G(flags)[V207]) { series_load("503bk08"); series_load("503bk08s"); series_load("503windo"); } } } // namespace Rooms } // namespace Burger } // namespace M4