[Scummvm-cvs-logs] scummvm master -> 62546273ca7deaf03cb1cbad6d99cf34e81ed949
bluegr
bluegr at gmail.com
Sat Feb 20 14:31:47 CET 2016
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
5a99bef4f1 SCI: Document kernelSetZoomZone()
d0ef09d17a SCI: Add a more detailed explanation about kernelSetZoomZone
62546273ca SCI: Document and disable the unverified code used in GK1
Commit: 5a99bef4f175a5864bc7c10db4a03e01947638d5
https://github.com/scummvm/scummvm/commit/5a99bef4f175a5864bc7c10db4a03e01947638d5
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2016-02-20T15:30:39+02:00
Commit Message:
SCI: Document kernelSetZoomZone()
Changed paths:
engines/sci/graphics/cursor.h
diff --git a/engines/sci/graphics/cursor.h b/engines/sci/graphics/cursor.h
index c2d7998..8d125c4 100644
--- a/engines/sci/graphics/cursor.h
+++ b/engines/sci/graphics/cursor.h
@@ -77,8 +77,18 @@ public:
*/
void kernelSetMoveZone(Common::Rect zone);
- void kernelClearZoomZone();
+ /**
+ * Creates a dynamic zoom cursor, that is used to zoom on specific parts of the screen,
+ * using a separate larger picture. This was only used by two SCI1.1 games, Laura Bow 2
+ * (for examining the glyphs), and Freddy Pharkas (for examining the prescription with
+ * the whisky glass).
+ *
+ * In the Mac version of Freddy Pharkas, this was removed completely, and the scene has
+ * been redesigned to work without this functionality. There was no version of LB2 for
+ * the Macintosh platform.
+ */
void kernelSetZoomZone(byte multiplier, Common::Rect zone, GuiResourceId viewNum, int loopNum, int celNum, GuiResourceId picNum, byte zoomColor);
+ void kernelClearZoomZone();
void kernelSetPos(Common::Point pos);
void kernelMoveCursor(Common::Point pos);
Commit: d0ef09d17a8a4b9023e4b16751a81d5193115ee8
https://github.com/scummvm/scummvm/commit/d0ef09d17a8a4b9023e4b16751a81d5193115ee8
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2016-02-20T15:30:39+02:00
Commit Message:
SCI: Add a more detailed explanation about kernelSetZoomZone
Changed paths:
engines/sci/graphics/cursor.cpp
diff --git a/engines/sci/graphics/cursor.cpp b/engines/sci/graphics/cursor.cpp
index 4f08bc3..e8496b9 100644
--- a/engines/sci/graphics/cursor.cpp
+++ b/engines/sci/graphics/cursor.cpp
@@ -453,7 +453,12 @@ void GfxCursor::kernelClearZoomZone() {
void GfxCursor::kernelSetZoomZone(byte multiplier, Common::Rect zone, GuiResourceId viewNum, int loopNum, int celNum, GuiResourceId picNum, byte zoomColor) {
kernelClearZoomZone();
- // This function is a stub in Mac versions
+ // This function is a stub in the Mac version of Freddy Pharkas.
+ // This function was only used in two games (LB2 and Pharkas), but there
+ // was no version of LB2 for the Macintosh platform.
+ // CHECKME: This wasn't verified against disassembly, one might want
+ // to check against it, in case there's some leftover code in the stubbed
+ // function (although it does seem that this was completely removed).
if (g_sci->getPlatform() == Common::kPlatformMacintosh)
return;
Commit: 62546273ca7deaf03cb1cbad6d99cf34e81ed949
https://github.com/scummvm/scummvm/commit/62546273ca7deaf03cb1cbad6d99cf34e81ed949
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2016-02-20T15:30:40+02:00
Commit Message:
SCI: Document and disable the unverified code used in GK1
Changed paths:
engines/sci/graphics/screen_item32.cpp
diff --git a/engines/sci/graphics/screen_item32.cpp b/engines/sci/graphics/screen_item32.cpp
index 58e0a13..25a403a 100644
--- a/engines/sci/graphics/screen_item32.cpp
+++ b/engines/sci/graphics/screen_item32.cpp
@@ -202,17 +202,22 @@ void ScreenItem::setFromObject(SegManager *segMan, const reg_t object, const boo
writeSelectorValue(segMan, object, SELECTOR(priority), _position.y);
}
- // Check if the entry should be hidden (used in GK1, for the inventory items)
- // TODO/FIXME: Verify this against disassembly! Check if GK1 checks this selector
- // like we do here. The following bit of code is guesswork, but for now it fixes
- // the inventory in GK1, and it's really only used in that game (the "visible"
- // selector isn't present in any other SCI32 game)
+ // TODO: At this point (needs checking), GK1 seems to check for the "visible"
+ // selector of a plane object. If the object has such a selector, and it's set
+ // to 0, then the object should be hidden.
+ //
+ // This is needed for the inventory in GK1, and seemed to be used only for that
+ // game - the "visible" selector isn't present in any other SCI32 game.
+ // Possible disabled and unverified code that checks for this follows. This fixes
+ // the inventory in GK1. Verify against disassembly!
+#if 0
if (lookupSelector(segMan, object, SELECTOR(visible), NULL, NULL) != kSelectorNone) {
if (readSelectorValue(segMan, object, SELECTOR(visible)) == 0) {
_fixPriority = true;
_priority = -1;
}
}
+#endif
_z = readSelectorValue(segMan, object, SELECTOR(z));
_position.y -= _z;
More information about the Scummvm-git-logs
mailing list