[Scummvm-cvs-logs] scummvm master -> e7f023883eaeed0bd1bb82a0ccb12472785d6ed5

bluegr bluegr at gmail.com
Fri Aug 8 01:12:52 CEST 2014


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

Summary:
1cbfe02bcf SCI: Allow invalid references to kUnload() - bug #6600
e13cc80348 SCI: Show the address segment when trying to free hunks from an invalid
43f57f274a SCI: Add the French version of Phantasmagoria - bug #6574
e7f023883e SCI: Extend hack to fix regression in GK1


Commit: 1cbfe02bcfbb947aaa8b016087095734c603d9f5
    https://github.com/scummvm/scummvm/commit/1cbfe02bcfbb947aaa8b016087095734c603d9f5
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2014-08-08T02:11:49+03:00

Commit Message:
SCI: Allow invalid references to kUnload() - bug #6600

Since the reference will be invalidated anyway by kUnload itself,
there's no real reason to check for its validity. We do the same with
kGraph() and kDisplay().

Changed paths:
    engines/sci/engine/kernel_tables.h



diff --git a/engines/sci/engine/kernel_tables.h b/engines/sci/engine/kernel_tables.h
index fc46d16..0c2fd4e 100644
--- a/engines/sci/engine/kernel_tables.h
+++ b/engines/sci/engine/kernel_tables.h
@@ -468,7 +468,8 @@ static SciKernelMapEntry s_kernelMap[] = {
 	{ MAP_CALL(TimesSin),          SIG_EVERYWHERE,           "ii",                    NULL,            NULL },
 	{ "SinMult", kTimesSin,        SIG_EVERYWHERE,           "ii",                    NULL,            NULL },
 	{ MAP_CALL(TimesTan),          SIG_EVERYWHERE,           "ii",                    NULL,            NULL },
-	{ MAP_CALL(UnLoad),            SIG_EVERYWHERE,           "i[ri]",                 NULL,            kUnLoad_workarounds },
+	{ MAP_CALL(UnLoad),            SIG_EVERYWHERE,           "i[ir!]",                NULL,            kUnLoad_workarounds },
+	// ^ We allow invalid references here (e.g. bug #6600), since they will be invalidated anyway by the call itself
 	{ MAP_CALL(ValidPath),         SIG_EVERYWHERE,           "r",                     NULL,            NULL },
 	{ MAP_CALL(Wait),              SIG_EVERYWHERE,           "i",                     NULL,            NULL },
 


Commit: e13cc803487a602064b3941c47c3f816efb8e867
    https://github.com/scummvm/scummvm/commit/e13cc803487a602064b3941c47c3f816efb8e867
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2014-08-08T02:11:49+03:00

Commit Message:
SCI: Show the address segment when trying to free hunks from an invalid
address

Changed paths:
    engines/sci/engine/seg_manager.cpp



diff --git a/engines/sci/engine/seg_manager.cpp b/engines/sci/engine/seg_manager.cpp
index 3738fd3..58c2b8d 100644
--- a/engines/sci/engine/seg_manager.cpp
+++ b/engines/sci/engine/seg_manager.cpp
@@ -371,7 +371,7 @@ void SegManager::freeHunkEntry(reg_t addr) {
 	HunkTable *ht = (HunkTable *)getSegment(addr.getSegment(), SEG_TYPE_HUNK);
 
 	if (!ht) {
-		warning("Attempt to free Hunk from address %04x:%04x: Invalid segment type", PRINT_REG(addr));
+		warning("Attempt to free Hunk from address %04x:%04x: Invalid segment type %d", PRINT_REG(addr), getSegmentType(addr.getSegment()));
 		return;
 	}
 


Commit: 43f57f274aa401040e0861c9690b6ef89c9eb921
    https://github.com/scummvm/scummvm/commit/43f57f274aa401040e0861c9690b6ef89c9eb921
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2014-08-08T02:11:49+03:00

Commit Message:
SCI: Add the French version of Phantasmagoria - bug #6574

Changed paths:
    engines/sci/detection_tables.h



diff --git a/engines/sci/detection_tables.h b/engines/sci/detection_tables.h
index 344298c..91b3c45 100644
--- a/engines/sci/detection_tables.h
+++ b/engines/sci/detection_tables.h
@@ -2607,6 +2607,25 @@ static const struct ADGameDescription SciGameDescriptions[] = {
 		AD_LISTEND},
 		Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)	},
 
+	// Phantasmagoria - French DOS
+	// Supplied by Kervala in bug #6574
+	{"phantasmagoria", "", {
+		{"resmap.001", 0, "4da82dd336d4b9cd8c16f3cc11f0c615", 11524},
+		{"ressci.001", 0, "3aae6559aa1df273bc542d5ac6330d75", 69963685},
+		{"resmap.002", 0, "4f40f43f2b60bf765864433069752bb9", 12064},
+		{"ressci.002", 0, "3aae6559aa1df273bc542d5ac6330d75", 78362841},
+		{"resmap.003", 0, "6a392a86f14b6ddb4422978ee71e54ac", 12340},
+		{"ressci.003", 0, "3aae6559aa1df273bc542d5ac6330d75", 80431189},
+		{"resmap.004", 0, "df2e9462c41202de5f3843908c95a715", 12562},
+		{"ressci.004", 0, "3aae6559aa1df273bc542d5ac6330d75", 82542844},
+		{"resmap.005", 0, "43efd3fe834286c70a2c8b4cd747c1e2", 12616},
+		{"ressci.005", 0, "3aae6559aa1df273bc542d5ac6330d75", 83790486},
+		{"resmap.006", 0, "b3065e54a00190752a06dacd201b5058", 12538},
+		{"ressci.006", 0, "3aae6559aa1df273bc542d5ac6330d75", 85415107},
+		{"resmap.007", 0, "5633960bc106c39ca91d2d8fce18fd2d", 7984},
+		AD_LISTEND},
+		Common::FR_FRA, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)	},
+
 	// Phantasmagoria - English DOS Demo
 	// Executable scanning reports "2.100.002"
 	{"phantasmagoria", "Demo", {


Commit: e7f023883eaeed0bd1bb82a0ccb12472785d6ed5
    https://github.com/scummvm/scummvm/commit/e7f023883eaeed0bd1bb82a0ccb12472785d6ed5
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2014-08-08T02:11:49+03:00

Commit Message:
SCI: Extend hack to fix regression in GK1

Changed paths:
    engines/sci/graphics/frameout.cpp



diff --git a/engines/sci/graphics/frameout.cpp b/engines/sci/graphics/frameout.cpp
index a322eb8..91b5b25 100644
--- a/engines/sci/graphics/frameout.cpp
+++ b/engines/sci/graphics/frameout.cpp
@@ -782,9 +782,13 @@ void GfxFrameout::kernelFrameout() {
 
 					// TODO: For some reason, the top left nsRect coordinates get
 					// swapped in the GK1 inventory screen, investigate why.
+					// This is also needed for GK1 rooms 710 and 720 (catacombs, inner and
+					// outer circle), for handling the tiles and talking to Wolfgang.
 					// HACK: Fix the coordinates by explicitly setting them here.
 					Common::Rect objNSRect = g_sci->_gfxCompare->getNSRect(itemEntry->object);
-					if (objNSRect.top == nsRect.left && objNSRect.left == nsRect.top && nsRect.top != 0 && nsRect.left != 0) {
+					uint16 roomNumber = g_sci->getEngineState()->currentRoomNumber();
+					if (objNSRect.top == nsRect.left && objNSRect.left == nsRect.top && nsRect.top != 0 && nsRect.left != 0 ||
+						(g_sci->getGameId() == GID_GK1 && (roomNumber == 710 || roomNumber == 720))) {
 						g_sci->_gfxCompare->setNSRect(itemEntry->object, nsRect);
 					}
 				}






More information about the Scummvm-git-logs mailing list