[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