[Scummvm-cvs-logs] scummvm master -> d4bbf4d2503f7d89094db64e85e6bd5c4c2b38e8
dreammaster
dreammaster at scummvm.org
Sat Dec 12 04:42:51 CET 2015
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
d4bbf4d250 ACCESS: Fix differences in floppy chapter changes
Commit: d4bbf4d2503f7d89094db64e85e6bd5c4c2b38e8
https://github.com/scummvm/scummvm/commit/d4bbf4d2503f7d89094db64e85e6bd5c4c2b38e8
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2015-12-11T22:42:18-05:00
Commit Message:
ACCESS: Fix differences in floppy chapter changes
Changed paths:
engines/access/amazon/amazon_game.cpp
engines/access/amazon/amazon_scripts.cpp
engines/access/scripts.h
diff --git a/engines/access/amazon/amazon_game.cpp b/engines/access/amazon/amazon_game.cpp
index cf90bea..3bb1967 100644
--- a/engines/access/amazon/amazon_game.cpp
+++ b/engines/access/amazon/amazon_game.cpp
@@ -640,25 +640,27 @@ void AmazonEngine::startChapter(int chapter) {
_room->init4Quads();
}
- if (chapter == 14) {
- _conversation = 31;
- _char->loadChar(_conversation);
- _events->setCursor(CURSOR_ARROW);
-
- _images.clear();
- _oldRects.clear();
- _scripts->_sequence = 0;
- _scripts->searchForSequence();
+ if (isCD()) {
+ if (chapter == 14) {
+ _conversation = 31;
+ _char->loadChar(_conversation);
+ _events->setCursor(CURSOR_ARROW);
+
+ _images.clear();
+ _oldRects.clear();
+ _scripts->_sequence = 0;
+ _scripts->searchForSequence();
+
+ if (_screen->_vesaMode) {
+ _converseMode = 1;
+ }
+ } else if (chapter != 1) {
+ _player->_roomNumber = CHAPTER_JUMP[_chapter - 1];
+ _room->_function = FN_CLEAR1;
+ _converseMode = 0;
- if (_screen->_vesaMode) {
- _converseMode = 1;
+ _scripts->cmdRetPos();
}
- } else if (chapter != 1) {
- _player->_roomNumber = CHAPTER_JUMP[_chapter - 1];
- _room->_function = FN_CLEAR1;
- _converseMode = 0;
-
- _scripts->cmdRetPos();
}
}
diff --git a/engines/access/amazon/amazon_scripts.cpp b/engines/access/amazon/amazon_scripts.cpp
index 9ff6a29..48438e9 100644
--- a/engines/access/amazon/amazon_scripts.cpp
+++ b/engines/access/amazon/amazon_scripts.cpp
@@ -473,12 +473,29 @@ void AmazonScripts::cmdCycleBack() {
if (_vm->_startup == -1)
_vm->_screen->cyclePaletteBackwards();
}
+
void AmazonScripts::cmdChapter() {
+ Resource *activeScript = nullptr;
+
if (_vm->isDemo()) {
cmdSetHelp();
} else {
int chapter = _data->readByte();
+
+ if (!_vm->isCD()) {
+ // For floppy version, the current script remains active even
+ // after the end of the chapter start, so we need to save it
+ activeScript = _resource;
+ _resource = nullptr;
+ _data = nullptr;
+ }
+
_game->startChapter(chapter);
+
+ if (!_vm->isCD()) {
+ assert(!_resource);
+ setScript(activeScript, false);
+ }
}
}
diff --git a/engines/access/scripts.h b/engines/access/scripts.h
index 07fd6ac..4cfedf3 100644
--- a/engines/access/scripts.h
+++ b/engines/access/scripts.h
@@ -39,13 +39,13 @@ typedef void(Scripts::*ScriptMethodPtr)();
class Scripts : public Manager {
private:
- Resource *_resource;
int _specialFunction;
void clearWatch();
void printWatch();
protected:
+ Resource *_resource;
Common::SeekableReadStream *_data;
ScriptMethodPtr COMMAND_LIST[100];
More information about the Scummvm-git-logs
mailing list