aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorMatthew Hoops2014-04-27 21:18:45 -0400
committerMatthew Hoops2014-04-27 21:19:08 -0400
commit277a712f0b6835a54c2ee9373b06ff6db42eb7f9 (patch)
treea83ffdeb886dc9efcc56099f14487a78c55c3934 /engines
parentcfcd3fd780254b60abe1eea43f1de18494d65582 (diff)
downloadscummvm-rg350-277a712f0b6835a54c2ee9373b06ff6db42eb7f9.tar.gz
scummvm-rg350-277a712f0b6835a54c2ee9373b06ff6db42eb7f9.tar.bz2
scummvm-rg350-277a712f0b6835a54c2ee9373b06ff6db42eb7f9.zip
PEGASUS: Fix a Norad Delta door locked sound
Based on a patch by Keith Kaisershot
Diffstat (limited to 'engines')
-rw-r--r--engines/pegasus/neighborhood/norad/delta/noraddelta.cpp11
-rw-r--r--engines/pegasus/neighborhood/norad/delta/noraddelta.h1
2 files changed, 12 insertions, 0 deletions
diff --git a/engines/pegasus/neighborhood/norad/delta/noraddelta.cpp b/engines/pegasus/neighborhood/norad/delta/noraddelta.cpp
index b6ce700132..ee047d72b2 100644
--- a/engines/pegasus/neighborhood/norad/delta/noraddelta.cpp
+++ b/engines/pegasus/neighborhood/norad/delta/noraddelta.cpp
@@ -514,6 +514,17 @@ void NoradDelta::openDoor() {
}
}
+void NoradDelta::cantMoveThatWay(CanOpenDoorReason reason) {
+ // WORKAROUND: The door outside the launch console room isn't treated as a door,
+ // so play the correct sound.
+ if (reason == kCantMoveBlocked && GameState.getCurrentRoomAndView() == MakeRoomView(kNorad67, kNorth)) {
+ cantOpenDoor(kCantOpenLocked);
+ return;
+ }
+
+ Neighborhood::cantMoveThatWay(reason);
+}
+
void NoradDelta::activateHotspots() {
Norad::activateHotspots();
diff --git a/engines/pegasus/neighborhood/norad/delta/noraddelta.h b/engines/pegasus/neighborhood/norad/delta/noraddelta.h
index 2f276a8a7d..591fd691a2 100644
--- a/engines/pegasus/neighborhood/norad/delta/noraddelta.h
+++ b/engines/pegasus/neighborhood/norad/delta/noraddelta.h
@@ -92,6 +92,7 @@ protected:
void arriveAtNorad79West();
TimeValue getViewTime(const RoomID, const DirectionConstant);
void openDoor();
+ void cantMoveThatWay(CanMoveForwardReason);
void activateHotspots();
void clickInHotspot(const Input &, const Hotspot *);
void receiveNotification(Notification *, const NotificationFlags);