[Scummvm-cvs-logs] scummvm master -> 78464a42d78091ac1b54c6ae18c3a67d90fb59bf

bluegr bluegr at gmail.com
Mon Oct 8 23:40:18 CEST 2012


This automated email contains information about 5 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
864b4acdf1 PARALLACTION: Fix a script bug in the end of the multilingual DOS version of NS
a1969ae268 PARALLACTION: Add a missing return statement
17b42b5570 PARALLACTION: Add a workaround for the end credits of NS
a297ae6195 PARALLACTION: Add a workaround for the end credits of NS
78464a42d7 Merge pull request #282 from bluegr/nipponfix


Commit: 864b4acdf180dfc3025f30dcf7c11011239511ec
    https://github.com/scummvm/scummvm/commit/864b4acdf180dfc3025f30dcf7c11011239511ec
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2012-09-27T15:40:43-07:00

Commit Message:
PARALLACTION: Fix a script bug in the end of the multilingual DOS version of NS

The mouse cursor is incorrectly hidden outside the final cave in NS because of
a script bug. A workaround is added to fix that screen and the final screen in
order to make it playable. Part of fixes for bug #5866

Changed paths:
    engines/parallaction/parallaction_ns.cpp



diff --git a/engines/parallaction/parallaction_ns.cpp b/engines/parallaction/parallaction_ns.cpp
index 2a22e77..1226fd1 100644
--- a/engines/parallaction/parallaction_ns.cpp
+++ b/engines/parallaction/parallaction_ns.cpp
@@ -412,6 +412,11 @@ void Parallaction_ns::changeLocation() {
 
 	if (!_intro) {
 		_input->setMouseState(oldMouseState);
+		// WORKAROUND: Fix a script bug in the Multilingual DOS version of
+		// Nippon Safes: the mouse cursor is incorrectly hidden outside the
+		// cave at the end of the game. Fix it here.
+		if (!strcmp(_location._name, "ingressocav"))
+			_input->setMouseState(MOUSE_ENABLED_SHOW);
 	}
 
 	debugC(1, kDebugExec, "changeLocation() done");


Commit: a1969ae268bfcbe8300e27ca4505acd45d223854
    https://github.com/scummvm/scummvm/commit/a1969ae268bfcbe8300e27ca4505acd45d223854
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2012-09-27T15:44:06-07:00

Commit Message:
PARALLACTION: Add a missing return statement

The final credits screen has no background, it just reuses the background of the
final scene. Part of the fixes for bug #5866

Changed paths:
    engines/parallaction/parallaction_ns.cpp



diff --git a/engines/parallaction/parallaction_ns.cpp b/engines/parallaction/parallaction_ns.cpp
index 1226fd1..d33be0a 100644
--- a/engines/parallaction/parallaction_ns.cpp
+++ b/engines/parallaction/parallaction_ns.cpp
@@ -310,6 +310,7 @@ void Parallaction_ns::changeBackground(const char* background, const char* mask,
 		_system->delayMillis(20);
 		_gfx->setPalette(pal);
 		_gfx->updateScreen();
+		return;
 	}
 
 	if (path == 0) {


Commit: 17b42b557048baa876be0e7dfbf12de55edbff7a
    https://github.com/scummvm/scummvm/commit/17b42b557048baa876be0e7dfbf12de55edbff7a
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2012-09-27T15:47:38-07:00

Commit Message:
PARALLACTION: Add a workaround for the end credits of NS

The end credits reference a version of Dino called "Dinor", which makes the
engine look for a non-existing file. We set the name to "dino", as it should be
in this case, so that the engine loads the correct file. Part of the fixes for
bug #5866

Changed paths:
    engines/parallaction/disk_ns.cpp



diff --git a/engines/parallaction/disk_ns.cpp b/engines/parallaction/disk_ns.cpp
index 7182656..bad8545 100644
--- a/engines/parallaction/disk_ns.cpp
+++ b/engines/parallaction/disk_ns.cpp
@@ -262,8 +262,15 @@ Common::SeekableReadStream *DosDisk_ns::tryOpenFile(const char* name) {
 
 Script* Disk_ns::loadLocation(const char *name) {
 	char path[PATH_LEN];
+	const char *charName = _vm->_char.getBaseName();
 
-	sprintf(path, "%s%s/%s.loc", _vm->_char.getBaseName(), _language.c_str(), name);
+	// WORKAROUND: Special case for the Multilingual DOS version: during the ending
+	// sequence, it tries to load a non-existing file using "Dinor" as a character
+	// name. In this case, the character name should be just "dino".
+	if (!strcmp(charName, "Dinor"))
+		charName = "dino";
+
+	sprintf(path, "%s%s/%s.loc", charName, _language.c_str(), name);
 	debugC(3, kDebugDisk, "Disk_ns::loadLocation(%s): trying '%s'", name, path);
 	Common::SeekableReadStream *stream = tryOpenFile(path);
 


Commit: a297ae6195977530182c7e48b515f07e919348f0
    https://github.com/scummvm/scummvm/commit/a297ae6195977530182c7e48b515f07e919348f0
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2012-09-27T15:49:37-07:00

Commit Message:
PARALLACTION: Add a workaround for the end credits of NS

The game scripts try to show a non-existing frame. We set it to an existing one
here. Part of the fixes for bug #5866

Changed paths:
    engines/parallaction/gfxbase.cpp



diff --git a/engines/parallaction/gfxbase.cpp b/engines/parallaction/gfxbase.cpp
index 8ef3c0f..a9889cc 100644
--- a/engines/parallaction/gfxbase.cpp
+++ b/engines/parallaction/gfxbase.cpp
@@ -226,6 +226,11 @@ void Gfx::drawGfxObject(GfxObj *obj, Graphics::Surface &surf) {
 	rect.translate(x, y);
 	data = obj->getData(obj->frame);
 
+	// WORKAROUND: During the end credits, game scripts try to show a
+	// non-existing frame. We change it to an existing one here.
+	if (obj->frame == 14 && obj->getNum() == 9 && !strcmp(obj->getName(), "Dinor"))
+		obj->frame = 8;
+
 	if (obj->getSize(obj->frame) == obj->getRawSize(obj->frame)) {
 		blt(rect, data, &surf, obj->layer, obj->scale, obj->transparentKey);
 	} else {


Commit: 78464a42d78091ac1b54c6ae18c3a67d90fb59bf
    https://github.com/scummvm/scummvm/commit/78464a42d78091ac1b54c6ae18c3a67d90fb59bf
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2012-10-08T14:38:36-07:00

Commit Message:
Merge pull request #282 from bluegr/nipponfix

PARALLACTION: Fix the ending of Nippon Safes (bug #5866)

Changed paths:
    engines/parallaction/disk_ns.cpp
    engines/parallaction/gfxbase.cpp
    engines/parallaction/parallaction_ns.cpp









More information about the Scummvm-git-logs mailing list