aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/scumm.h3
-rw-r--r--scumm/scummvm.cpp18
2 files changed, 20 insertions, 1 deletions
diff --git a/scumm/scumm.h b/scumm/scumm.h
index 50f1627fa8..f7140b26f7 100644
--- a/scumm/scumm.h
+++ b/scumm/scumm.h
@@ -61,7 +61,8 @@ enum {
NUM_LOCALSCRIPT = 60,
NUM_SENTENCE = 6,
NUM_SHADOW_PALETTE = 8,
- KEY_SET_OPTIONS = 3456 // WinCE
+ KEY_SET_OPTIONS = 3456, // WinCE
+ KEY_ALL_SKIP = 3457 // WinCE
};
/** SCUMM feature flags. */
diff --git a/scumm/scummvm.cpp b/scumm/scummvm.cpp
index f50c4e4ee0..d82c813266 100644
--- a/scumm/scummvm.cpp
+++ b/scumm/scummvm.cpp
@@ -1997,6 +1997,24 @@ void Scumm::processKbd() {
return;
}
+ if (_lastKeyHit == KEY_ALL_SKIP) {
+ // Skip cutscene
+ if (_insaneState) {
+ _videoFinished = true;
+ return;
+ }
+ else
+ if (vm.cutScenePtr[vm.cutSceneStackPointer])
+ _lastKeyHit = (uint16)VAR(VAR_CUTSCENEEXIT_KEY);
+ else
+ // Skip talk
+ if (_talkDelay > 0)
+ _lastKeyHit = (uint16)VAR(VAR_TALKSTOP_KEY);
+ else
+ // Escape
+ _lastKeyHit = 27;
+ }
+
if (VAR_RESTART_KEY != 0xFF && _lastKeyHit == VAR(VAR_RESTART_KEY)) {
warning("Restart not implemented");
//restart();