[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