[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