[Scummvm-cvs-logs] scummvm master -> 41b3d9ff46dacb4cd1d7edff57f719af9b35113c

csnover csnover at users.noreply.github.com
Fri Mar 11 01:28:59 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:
8dea740086 SCI32: Implement kMovePlaneItems
ac403ac746 SCI32: Clean up debug messages in GfxFrameout
41b3d9ff46 SCI32: Use separate function for SCI32 version of kCantBeHere


Commit: 8dea7400860270b23df210486a2eadb31194f898
    https://github.com/scummvm/scummvm/commit/8dea7400860270b23df210486a2eadb31194f898
Author: Colin Snover (github.com at zetafleet.com)
Date: 2016-03-10T18:28:53-06:00

Commit Message:
SCI32: Implement kMovePlaneItems

Changed paths:
    engines/sci/engine/kernel.h
    engines/sci/engine/kernel_tables.h
    engines/sci/engine/kgraphics32.cpp
    engines/sci/graphics/frameout.cpp
    engines/sci/graphics/frameout.h
    engines/sci/graphics/plane32.cpp
    engines/sci/graphics/plane32.h



diff --git a/engines/sci/engine/kernel.h b/engines/sci/engine/kernel.h
index 6feaeb8..b992e97 100644
--- a/engines/sci/engine/kernel.h
+++ b/engines/sci/engine/kernel.h
@@ -479,6 +479,7 @@ reg_t kBitmapCreateFromUnknown(EngineState *s, int argc, reg_t *argv);
 reg_t kAddPlane(EngineState *s, int argc, reg_t *argv);
 reg_t kDeletePlane(EngineState *s, int argc, reg_t *argv);
 reg_t kUpdatePlane(EngineState *s, int argc, reg_t *argv);
+reg_t kMovePlaneItems(EngineState *s, int argc, reg_t *argv);
 reg_t kSetShowStyle(EngineState *s, int argc, reg_t *argv);
 reg_t kSetPalStyleRange(EngineState *s, int argc, reg_t *argv);
 reg_t kGetHighPlanePri(EngineState *s, int argc, reg_t *argv);
diff --git a/engines/sci/engine/kernel_tables.h b/engines/sci/engine/kernel_tables.h
index a0ae627..e49c6b4 100644
--- a/engines/sci/engine/kernel_tables.h
+++ b/engines/sci/engine/kernel_tables.h
@@ -772,9 +772,9 @@ static SciKernelMapEntry s_kernelMap[] = {
 	//     <lskovlun> The idea, if I understand correctly, is that the engine generates events
 	//     of a special HotRect type continuously when the mouse is on that rectangle
 
-	// MovePlaneItems - used by SQ6 to scroll through the inventory via the up/down buttons
-	// SetPalStyleRange - 2 integer parameters, start and end. All styles from start-end
-	//   (inclusive) are set to 0
+	// Used by SQ6 to scroll through the inventory via the up/down buttons
+	{ MAP_CALL(MovePlaneItems),     SIG_SINCE_SCI21, SIGFOR_ALL, "oii(i)",            NULL,            NULL },
+
 	{ MAP_CALL(SetPalStyleRange),   SIG_EVERYWHERE,           "ii",                   NULL,            NULL },
 
 	{ MAP_CALL(MorphOn),            SIG_EVERYWHERE,           "",                     NULL,            NULL },
diff --git a/engines/sci/engine/kgraphics32.cpp b/engines/sci/engine/kgraphics32.cpp
index 06a3336..93d5ca5 100644
--- a/engines/sci/engine/kgraphics32.cpp
+++ b/engines/sci/engine/kgraphics32.cpp
@@ -106,6 +106,16 @@ reg_t kDeletePlane(EngineState *s, int argc, reg_t *argv) {
 	return s->r_acc;
 }
 
+reg_t kMovePlaneItems(EngineState *s, int argc, reg_t *argv) {
+	const reg_t plane = argv[0];
+	const int16 deltaX = argv[1].toSint16();
+	const int16 deltaY = argv[2].toSint16();
+	const bool scrollPics = argc > 3 ? argv[3].toUint16() : false;
+
+	g_sci->_gfxFrameout->kernelMovePlaneItems(plane, deltaX, deltaY, scrollPics);
+	return NULL_REG;
+}
+
 reg_t kAddPicAt(EngineState *s, int argc, reg_t *argv) {
 	reg_t planeObj = argv[0];
 	GuiResourceId pictureId = argv[1].toUint16();
diff --git a/engines/sci/graphics/frameout.cpp b/engines/sci/graphics/frameout.cpp
index 78e61b9..cf4000d 100644
--- a/engines/sci/graphics/frameout.cpp
+++ b/engines/sci/graphics/frameout.cpp
@@ -381,6 +381,33 @@ void GfxFrameout::deletePlane(Plane &planeToFind) {
 	}
 }
 
+void GfxFrameout::kernelMovePlaneItems(const reg_t object, const int16 deltaX, const int16 deltaY, const bool scrollPics) {
+	Plane *plane = _planes.findByObject(object);
+	if (plane == nullptr) {
+		error("Invalid plane %04x:%04x", PRINT_REG(object));
+	}
+
+	plane->scrollScreenItems(deltaX, deltaY, scrollPics);
+
+	for (ScreenItemList::iterator it = plane->_screenItemList.begin(); it != plane->_screenItemList.end(); ++it) {
+		ScreenItem &screenItem = **it;
+
+		// If object is a number, the screen item from the
+		// engine, not a script, and should be ignored
+		if (screenItem._object.isNumber()) {
+			continue;
+		}
+
+		if (deltaX != 0) {
+			writeSelectorValue(_segMan, screenItem._object, SELECTOR(x), readSelectorValue(_segMan, screenItem._object, SELECTOR(x)) + deltaX);
+		}
+
+		if (deltaY != 0) {
+			writeSelectorValue(_segMan, screenItem._object, SELECTOR(y), readSelectorValue(_segMan, screenItem._object, SELECTOR(y)) + deltaY);
+		}
+	}
+}
+
 int16 GfxFrameout::kernelGetHighPlanePri() {
 	return _planes.getTopSciPlanePriority();
 }
diff --git a/engines/sci/graphics/frameout.h b/engines/sci/graphics/frameout.h
index 969123f..22c0e14 100644
--- a/engines/sci/graphics/frameout.h
+++ b/engines/sci/graphics/frameout.h
@@ -294,6 +294,7 @@ public:
 	void kernelAddPlane(const reg_t object);
 	void kernelUpdatePlane(const reg_t object);
 	void kernelDeletePlane(const reg_t object);
+	void kernelMovePlaneItems(const reg_t object, const int16 deltaX, const int16 deltaY, const bool scrollPics);
 	int16 kernelGetHighPlanePri();
 
 #pragma mark -
diff --git a/engines/sci/graphics/plane32.cpp b/engines/sci/graphics/plane32.cpp
index 04cfa5a..099d4dd 100644
--- a/engines/sci/graphics/plane32.cpp
+++ b/engines/sci/graphics/plane32.cpp
@@ -798,6 +798,20 @@ void Plane::update(const reg_t object) {
 	_back = readSelectorValue(segMan, object, SELECTOR(back));
 }
 
+void Plane::scrollScreenItems(const int16 deltaX, const int16 deltaY, const bool scrollPics) {
+	_redrawAllCount = g_sci->_gfxFrameout->getScreenCount();
+
+	for (ScreenItemList::iterator it = _screenItemList.begin(); it != _screenItemList.end(); ++it) {
+		if (*it != nullptr) {
+			ScreenItem &screenItem = **it;
+			if (!screenItem._deleted && (screenItem._celInfo.type != kCelTypePic || scrollPics)) {
+				screenItem._position.x += deltaX;
+				screenItem._position.y += deltaY;
+			}
+		}
+	}
+}
+
 #pragma mark -
 #pragma mark PlaneList
 void PlaneList::add(Plane *plane) {
diff --git a/engines/sci/graphics/plane32.h b/engines/sci/graphics/plane32.h
index d844919..51d93b7 100644
--- a/engines/sci/graphics/plane32.h
+++ b/engines/sci/graphics/plane32.h
@@ -303,6 +303,13 @@ public:
 	 */
 	void update(const reg_t object);
 
+	/**
+	 * Modifies the position of all non-pic screen items
+	 * by the given delta. If `scrollPics` is true, pic
+	 * items are also repositioned.
+	 */
+	void scrollScreenItems(const int16 deltaX, const int16 deltaY, const bool scrollPics);
+
 #pragma mark -
 #pragma mark Plane - Pic
 private:


Commit: ac403ac746760409ccea33da51e1c51566e67e21
    https://github.com/scummvm/scummvm/commit/ac403ac746760409ccea33da51e1c51566e67e21
Author: Colin Snover (github.com at zetafleet.com)
Date: 2016-03-10T18:28:53-06:00

Commit Message:
SCI32: Clean up debug messages in GfxFrameout

Error messages now contain the name of the failed function and
plane/screen item information that can be used to look up the
plane/screen item in a debugger, if the games ever crash in a
release in this code, per suggestion by @m-kiewitz.

Commented out messages that were used during the rearchitecture of
the main graphics engine are also removed, since that code is stable
now.

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



diff --git a/engines/sci/graphics/frameout.cpp b/engines/sci/graphics/frameout.cpp
index cf4000d..2477574 100644
--- a/engines/sci/graphics/frameout.cpp
+++ b/engines/sci/graphics/frameout.cpp
@@ -246,16 +246,11 @@ void GfxFrameout::syncWithScripts(bool addElements) {
 void GfxFrameout::kernelAddScreenItem(const reg_t object) {
 	const reg_t planeObject = readSelector(_segMan, object, SELECTOR(plane));
 
-// TODO: Remove
-//	debug("Adding screen item %04x:%04x to plane %04x:%04x", PRINT_REG(object), PRINT_REG(planeObject));
-
 	_segMan->getObject(object)->setInfoSelectorFlag(kInfoFlagViewInserted);
 
 	Plane *plane = _planes.findByObject(planeObject);
 	if (plane == nullptr) {
-		warning("screen item %x:%x (%s)", object.getSegment(), object.getOffset(), g_sci->getEngineState()->_segMan->getObjectName(object));
-		warning("plane %x:%x (%s)", planeObject.getSegment(), planeObject.getOffset(), g_sci->getEngineState()->_segMan->getObjectName(planeObject));
-		error("Invalid plane selector passed to kAddScreenItem");
+		error("kAddScreenItem: Plane %04x:%04x not found for screen item %04x:%04x", PRINT_REG(planeObject), PRINT_REG(object));
 	}
 
 	ScreenItem *screenItem = plane->_screenItemList.findByObject(object);
@@ -273,16 +268,12 @@ void GfxFrameout::kernelUpdateScreenItem(const reg_t object) {
 		const reg_t planeObject = readSelector(_segMan, object, SELECTOR(plane));
 		Plane *plane = _planes.findByObject(planeObject);
 		if (plane == nullptr) {
-			warning("screen item %x:%x (%s)", object.getSegment(), object.getOffset(), g_sci->getEngineState()->_segMan->getObjectName(object));
-			warning("plane %x:%x (%s)", planeObject.getSegment(), planeObject.getOffset(), g_sci->getEngineState()->_segMan->getObjectName(planeObject));
-			error("Invalid plane selector passed to kUpdateScreenItem");
+			error("kUpdateScreenItem: Plane %04x:%04x not found for screen item %04x:%04x", PRINT_REG(planeObject), PRINT_REG(object));
 		}
 
 		ScreenItem *screenItem = plane->_screenItemList.findByObject(object);
 		if (screenItem == nullptr) {
-			warning("screen item %x:%x (%s)", object.getSegment(), object.getOffset(), g_sci->getEngineState()->_segMan->getObjectName(object));
-			warning("plane %x:%x (%s)", planeObject.getSegment(), planeObject.getOffset(), g_sci->getEngineState()->_segMan->getObjectName(planeObject));
-			error("Invalid screen item passed to kUpdateScreenItem");
+			error("kUpdateScreenItem: Screen item %04x:%04x not found in plane %04x:%04x", PRINT_REG(object), PRINT_REG(planeObject));
 		}
 
 		screenItem->update(object);
@@ -297,18 +288,11 @@ void GfxFrameout::kernelDeleteScreenItem(const reg_t object) {
 	const reg_t planeObject = readSelector(_segMan, object, SELECTOR(plane));
 	Plane *plane = _planes.findByObject(planeObject);
 	if (plane == nullptr) {
-	// TODO: Remove
-//		warning("Invalid plane selector %04x:%04x passed to kDeleteScreenItem (real engine ignores this)", PRINT_REG(object));
 		return;
 	}
 
-// TODO: Remove
-//	debug("Deleting screen item %04x:%04x from plane %04x:%04x", PRINT_REG(object), PRINT_REG(planeObject));
-
 	ScreenItem *screenItem = plane->_screenItemList.findByObject(object);
 	if (screenItem == nullptr) {
-// TODO: Remove
-//		warning("Invalid screen item %04x:%04x passed to kDeleteScreenItem (real engine ignores this)", PRINT_REG(object));
 		return;
 	}
 
@@ -339,8 +323,7 @@ void GfxFrameout::kernelAddPlane(const reg_t object) {
 void GfxFrameout::kernelUpdatePlane(const reg_t object) {
 	Plane *plane = _planes.findByObject(object);
 	if (plane == nullptr) {
-		warning("plane %x:%x (%s)", object.getSegment(), object.getOffset(), g_sci->getEngineState()->_segMan->getObjectName(object));
-		error("Invalid plane selector passed to kUpdatePlane");
+		error("kUpdatePlane: Plane %04x:%04x not found", PRINT_REG(object));
 	}
 
 	plane->update(object);
@@ -350,8 +333,7 @@ void GfxFrameout::kernelUpdatePlane(const reg_t object) {
 void GfxFrameout::kernelDeletePlane(const reg_t object) {
 	Plane *plane = _planes.findByObject(object);
 	if (plane == nullptr) {
-		warning("plane %x:%x (%s)", object.getSegment(), object.getOffset(), g_sci->getEngineState()->_segMan->getObjectName(object));
-		error("Invalid plane selector passed to kDeletePlane");
+		error("kDeletePlane: Plane %04x:%04x not found", PRINT_REG(object));
 	}
 
 	if (plane->_created) {
@@ -359,8 +341,6 @@ void GfxFrameout::kernelDeletePlane(const reg_t object) {
 		// just ends up doing this anyway so we skip the extra indirection
 		_planes.erase(plane);
 	} else {
-		// TODO: Remove
-//		debug("Deleting plane %04x:%04x", PRINT_REG(object));
 		plane->_created = 0;
 		plane->_deleted = g_sci->_gfxFrameout->getScreenCount();
 	}
@@ -369,7 +349,7 @@ void GfxFrameout::kernelDeletePlane(const reg_t object) {
 void GfxFrameout::deletePlane(Plane &planeToFind) {
 	Plane *plane = _planes.findByObject(planeToFind._object);
 	if (plane == nullptr) {
-		error("Invalid plane passed to deletePlane");
+		error("deletePlane: Plane %04x:%04x not found", PRINT_REG(planeToFind._object));
 	}
 
 	if (plane->_created) {
@@ -384,7 +364,7 @@ void GfxFrameout::deletePlane(Plane &planeToFind) {
 void GfxFrameout::kernelMovePlaneItems(const reg_t object, const int16 deltaX, const int16 deltaY, const bool scrollPics) {
 	Plane *plane = _planes.findByObject(object);
 	if (plane == nullptr) {
-		error("Invalid plane %04x:%04x", PRINT_REG(object));
+		error("kMovePlaneItems: Plane %04x:%04x not found", PRINT_REG(object));
 	}
 
 	plane->scrollScreenItems(deltaX, deltaY, scrollPics);
@@ -444,8 +424,7 @@ void GfxFrameout::updatePlane(Plane &plane) {
 void GfxFrameout::kernelAddPicAt(const reg_t planeObject, const GuiResourceId pictureId, const int16 x, const int16 y, const bool mirrorX) {
 	Plane *plane = _planes.findByObject(planeObject);
 	if (plane == nullptr) {
-		warning("plane %x:%x (%s)", planeObject.getSegment(), planeObject.getOffset(), g_sci->getEngineState()->_segMan->getObjectName(planeObject));
-		error("Invalid plane selector passed to kAddPicAt");
+		error("kAddPicAt: Plane %04x:%04x not found", PRINT_REG(planeObject));
 	}
 	plane->addPic(pictureId, Common::Point(x, y), mirrorX);
 }
@@ -2060,12 +2039,12 @@ void GfxFrameout::kernelSetNowSeen(const reg_t screenItemObject) const {
 
 	Plane *plane = _planes.findByObject(planeObject);
 	if (plane == nullptr) {
-		error("Plane %04x:%04x not found", PRINT_REG(planeObject));
+		error("kSetNowSeen: Plane %04x:%04x not found for screen item %04x:%04x", PRINT_REG(planeObject), PRINT_REG(screenItemObject));
 	}
 
 	ScreenItem *screenItem = plane->_screenItemList.findByObject(screenItemObject);
 	if (screenItem == nullptr) {
-		error("Screen item %04x:%04x not found", PRINT_REG(screenItemObject));
+		error("kSetNowSeen: Screen item %04x:%04x not found in plane %04x:%04x", PRINT_REG(screenItemObject), PRINT_REG(planeObject));
 	}
 
 	Common::Rect result = screenItem->getNowSeenRect(*plane);


Commit: 41b3d9ff46dacb4cd1d7edff57f719af9b35113c
    https://github.com/scummvm/scummvm/commit/41b3d9ff46dacb4cd1d7edff57f719af9b35113c
Author: Colin Snover (github.com at zetafleet.com)
Date: 2016-03-10T18:28:53-06:00

Commit Message:
SCI32: Use separate function for SCI32 version of kCantBeHere

Requested by @m-kiewitz.

Changed paths:
    engines/sci/engine/kgraphics.cpp
    engines/sci/graphics/compare.cpp
    engines/sci/graphics/compare.h



diff --git a/engines/sci/engine/kgraphics.cpp b/engines/sci/engine/kgraphics.cpp
index c79ffa9..f18d264 100644
--- a/engines/sci/engine/kgraphics.cpp
+++ b/engines/sci/engine/kgraphics.cpp
@@ -441,8 +441,15 @@ reg_t kCantBeHere(EngineState *s, int argc, reg_t *argv) {
 	reg_t curObject = argv[0];
 	reg_t listReference = (argc > 1) ? argv[1] : NULL_REG;
 
-	reg_t canBeHere = g_sci->_gfxCompare->kernelCanBeHere(curObject, listReference);
-	return canBeHere;
+#ifdef ENABLE_SCI32
+	if (getSciVersion() >= SCI_VERSION_2) {
+		return g_sci->_gfxCompare->kernelCanBeHere32(curObject, listReference);
+	} else {
+#endif
+		return g_sci->_gfxCompare->kernelCanBeHere(curObject, listReference);
+#ifdef ENABLE_SCI32
+	}
+#endif
 }
 
 reg_t kIsItSkip(EngineState *s, int argc, reg_t *argv) {
diff --git a/engines/sci/graphics/compare.cpp b/engines/sci/graphics/compare.cpp
index 2f830179..04cf859 100644
--- a/engines/sci/graphics/compare.cpp
+++ b/engines/sci/graphics/compare.cpp
@@ -67,29 +67,18 @@ uint16 GfxCompare::isOnControl(uint16 screenMask, const Common::Rect &rect) {
 	return result;
 }
 
-reg_t GfxCompare::canBeHereCheckRectList(reg_t checkObject, const Common::Rect &checkRect, List *list) {
+reg_t GfxCompare::canBeHereCheckRectList(const reg_t checkObject, const Common::Rect &checkRect, const List *list, const uint16 signalFlags) const {
 	reg_t curAddress = list->first;
 	Node *curNode = _segMan->lookupNode(curAddress);
 	reg_t curObject;
 	uint16 signal;
 	Common::Rect curRect;
 
-	uint16 flags;
-#ifdef ENABLE_SCI32
-	if (getSciVersion() >= SCI_VERSION_2) {
-		flags = kSignalIgnoreActor | kSignalHidden;
-	} else {
-#endif
-		flags = kSignalIgnoreActor | kSignalRemoveView | kSignalNoUpdate;
-#ifdef ENABLE_SCI32
-	}
-#endif
-
 	while (curNode) {
 		curObject = curNode->value;
 		if (curObject != checkObject) {
 			signal = readSelectorValue(_segMan, curObject, SELECTOR(signal));
-			if (!(signal & flags)) {
+			if (!(signal & signalFlags)) {
 				curRect.left = readSelectorValue(_segMan, curObject, SELECTOR(brLeft));
 				curRect.top = readSelectorValue(_segMan, curObject, SELECTOR(brTop));
 				curRect.right = readSelectorValue(_segMan, curObject, SELECTOR(brRight));
@@ -149,36 +138,44 @@ reg_t GfxCompare::kernelCanBeHere(reg_t curObject, reg_t listReference) {
 	checkRect.bottom = readSelectorValue(_segMan, curObject, SELECTOR(brBottom));
 	uint16 signal = readSelectorValue(_segMan, curObject, SELECTOR(signal));
 
-#ifdef ENABLE_SCI32
-	if (getSciVersion() >= SCI_VERSION_2) {
-		result = 0;
-		if ((signal & (kSignalIgnoreActor | kSignalHidden)) == 0) {
-			List *list = _segMan->lookupList(listReference);
-			if (!list) {
-				error("kCanBeHere called with non-list as parameter");
-			}
-			result = !canBeHereCheckRectList(curObject, checkRect, list).isNull();
-		}
-	} else {
-#endif
-		if (!checkRect.isValidRect()) {	// can occur in Iceman and Mother Goose - HACK? TODO: is this really occuring in sierra sci? check this
-			warning("kCan(t)BeHere - invalid rect %d, %d -> %d, %d", checkRect.left, checkRect.top, checkRect.right, checkRect.bottom);
-			return NULL_REG; // this means "can be here"
-		}
+	if (!checkRect.isValidRect()) {	// can occur in Iceman and Mother Goose - HACK? TODO: is this really occuring in sierra sci? check this
+		warning("kCan(t)BeHere - invalid rect %d, %d -> %d, %d", checkRect.left, checkRect.top, checkRect.right, checkRect.bottom);
+		return NULL_REG; // this means "can be here"
+	}
+
+	Common::Rect adjustedRect = _coordAdjuster->onControl(checkRect);
+	uint16 controlMask = readSelectorValue(_segMan, curObject, SELECTOR(illegalBits));
+	result = isOnControl(GFX_SCREEN_MASK_CONTROL, adjustedRect) & controlMask;
+	if ((!result) && (signal & (kSignalIgnoreActor | kSignalRemoveView)) == 0) {
+		List *list = _segMan->lookupList(listReference);
+		if (!list)
+			error("kCanBeHere called with non-list as parameter");
 
-		Common::Rect adjustedRect = _coordAdjuster->onControl(checkRect);
-		uint16 controlMask = readSelectorValue(_segMan, curObject, SELECTOR(illegalBits));
-		result = isOnControl(GFX_SCREEN_MASK_CONTROL, adjustedRect) & controlMask;
-		if ((!result) && (signal & (kSignalIgnoreActor | kSignalRemoveView)) == 0) {
-			List *list = _segMan->lookupList(listReference);
-			if (!list)
-				error("kCanBeHere called with non-list as parameter");
+		return canBeHereCheckRectList(curObject, checkRect, list, kSignalIgnoreActor | kSignalRemoveView | kSignalNoUpdate);
+	}
+
+	return make_reg(0, result);
+}
+
+reg_t GfxCompare::kernelCanBeHere32(const reg_t curObject, const reg_t listReference) const {
+	Common::Rect checkRect(
+		readSelectorValue(_segMan, curObject, SELECTOR(brLeft)),
+		readSelectorValue(_segMan, curObject, SELECTOR(brTop)),
+		readSelectorValue(_segMan, curObject, SELECTOR(brRight)),
+		readSelectorValue(_segMan, curObject, SELECTOR(brBottom))
+	);
+
+	uint16 result = 0;
+	uint16 signal = readSelectorValue(_segMan, curObject, SELECTOR(signal));
+	const uint16 signalFlags = kSignalIgnoreActor | kSignalHidden;
 
-			return canBeHereCheckRectList(curObject, checkRect, list);
+	if ((signal & signalFlags) == 0) {
+		List *list = _segMan->lookupList(listReference);
+		if (!list) {
+			error("kCanBeHere called with non-list as parameter");
 		}
-#ifdef ENABLE_SCI32
+		result = !canBeHereCheckRectList(curObject, checkRect, list, signalFlags).isNull();
 	}
-#endif
 
 	return make_reg(0, result);
 }
diff --git a/engines/sci/graphics/compare.h b/engines/sci/graphics/compare.h
index 88b44ae..94aacbf 100644
--- a/engines/sci/graphics/compare.h
+++ b/engines/sci/graphics/compare.h
@@ -40,6 +40,7 @@ public:
 	uint16 kernelOnControl(byte screenMask, const Common::Rect &rect);
 	void kernelSetNowSeen(reg_t objectReference);
 	reg_t kernelCanBeHere(reg_t curObject, reg_t listReference);
+	reg_t kernelCanBeHere32(const reg_t curObject, const reg_t listReference) const;
 	bool kernelIsItSkip(GuiResourceId viewId, int16 loopNo, int16 celNo, Common::Point position);
 	void kernelBaseSetter(reg_t object);
 	Common::Rect getNSRect(reg_t object);
@@ -58,7 +59,7 @@ private:
 	 * *different* from checkObject, has a brRect which is contained inside
 	 * checkRect.
 	 */
-	reg_t canBeHereCheckRectList(reg_t checkObject, const Common::Rect &checkRect, List *list);
+	reg_t canBeHereCheckRectList(const reg_t checkObject, const Common::Rect &checkRect, const List *list, const uint16 signalFlags) const;
 };
 
 } // End of namespace Sci






More information about the Scummvm-git-logs mailing list