[Scummvm-cvs-logs] SF.net SVN: scummvm:[48202] scummvm/trunk/engines/sci/engine

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Mon Mar 8 22:54:07 CET 2010


Revision: 48202
          http://scummvm.svn.sourceforge.net/scummvm/?rev=48202&view=rev
Author:   fingolfin
Date:     2010-03-08 21:54:07 +0000 (Mon, 08 Mar 2010)

Log Message:
-----------
SCI: Make EngineState parameter to INV_SEL explicit

Modified Paths:
--------------
    scummvm/trunk/engines/sci/engine/klists.cpp
    scummvm/trunk/engines/sci/engine/kmovement.cpp
    scummvm/trunk/engines/sci/engine/kparse.cpp
    scummvm/trunk/engines/sci/engine/selector.h

Modified: scummvm/trunk/engines/sci/engine/klists.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/klists.cpp	2010-03-08 21:33:23 UTC (rev 48201)
+++ scummvm/trunk/engines/sci/engine/klists.cpp	2010-03-08 21:54:07 UTC (rev 48202)
@@ -442,7 +442,7 @@
 
 	i = 0;
 	while (node) {
-		invoke_selector(INV_SEL(order_func, doit, kStopOnInvalidSelector), 1, node->value);
+		invoke_selector(INV_SEL(s, order_func, doit, kStopOnInvalidSelector), 1, node->value);
 		temp_array[i].key = node->key;
 		temp_array[i].value = node->value;
 		temp_array[i].order = s->r_acc;

Modified: scummvm/trunk/engines/sci/engine/kmovement.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kmovement.cpp	2010-03-08 21:33:23 UTC (rev 48201)
+++ scummvm/trunk/engines/sci/engine/kmovement.cpp	2010-03-08 21:54:07 UTC (rev 48202)
@@ -316,10 +316,10 @@
 	debugC(2, kDebugLevelBresen, "New data: (x,y)=(%d,%d), di=%d", x, y, bdi);
 
 	if (g_sci->getKernel()->_selectorCache.cantBeHere != -1) {
-		invoke_selector(INV_SEL(client, cantBeHere, kStopOnInvalidSelector), 0);
+		invoke_selector(INV_SEL(s, client, cantBeHere, kStopOnInvalidSelector), 0);
 		s->r_acc = make_reg(0, !s->r_acc.offset);
 	} else {
-		invoke_selector(INV_SEL(client, canBeHere, kStopOnInvalidSelector), 0);
+		invoke_selector(INV_SEL(s, client, canBeHere, kStopOnInvalidSelector), 0);
 	}
 
 	if (!s->r_acc.offset) { // Contains the return value
@@ -336,7 +336,7 @@
 	// FIXME: find out why iceman needs this and we ask for version > SCI01
 	if ((getSciVersion() > SCI_VERSION_01) || (s->_gameId == "iceman"))
 		if (completed)
-			invoke_selector(INV_SEL(mover, moveDone, kStopOnInvalidSelector), 0);
+			invoke_selector(INV_SEL(s, mover, moveDone, kStopOnInvalidSelector), 0);
 
 	return make_reg(0, completed);
 }
@@ -400,7 +400,7 @@
 
 	debugC(2, kDebugLevelBresen, "Doing avoider %04x:%04x (dest=%d,%d)", PRINT_REG(avoider), destx, desty);
 
-	if (invoke_selector(INV_SEL(mover, doit, kContinueOnInvalidSelector) , 0)) {
+	if (invoke_selector(INV_SEL(s, mover, doit, kContinueOnInvalidSelector) , 0)) {
 		error("Mover %04x:%04x of avoider %04x:%04x doesn't have a doit() funcselector", PRINT_REG(mover), PRINT_REG(avoider));
 		return NULL_REG;
 	}
@@ -409,7 +409,7 @@
 	if (!mover.segment) // Mover has been disposed?
 		return s->r_acc; // Return gracefully.
 
-	if (invoke_selector(INV_SEL(client, isBlocked, kContinueOnInvalidSelector) , 0)) {
+	if (invoke_selector(INV_SEL(s, client, isBlocked, kContinueOnInvalidSelector) , 0)) {
 		error("Client %04x:%04x of avoider %04x:%04x doesn't"
 		         " have an isBlocked() funcselector", PRINT_REG(client), PRINT_REG(avoider));
 		return NULL_REG;
@@ -440,7 +440,7 @@
 
 			debugC(2, kDebugLevelBresen, "Pos (%d,%d): Trying angle %d; delta=(%d,%d)", oldx, oldy, angle, move_x, move_y);
 
-			if (invoke_selector(INV_SEL(client, canBeHere, kContinueOnInvalidSelector) , 0)) {
+			if (invoke_selector(INV_SEL(s, client, canBeHere, kContinueOnInvalidSelector) , 0)) {
 				error("Client %04x:%04x of avoider %04x:%04x doesn't"
 				         " have a canBeHere() funcselector", PRINT_REG(client), PRINT_REG(avoider));
 				return NULL_REG;
@@ -474,7 +474,7 @@
 		s->r_acc = make_reg(0, angle);
 
 		if (looper.segment) {
-			if (invoke_selector(INV_SEL(looper, doit, kContinueOnInvalidSelector), 2, angle, client)) {
+			if (invoke_selector(INV_SEL(s, looper, doit, kContinueOnInvalidSelector), 2, angle, client)) {
 				error("Looper %04x:%04x of avoider %04x:%04x doesn't"
 				         " have a doit() funcselector", PRINT_REG(looper), PRINT_REG(avoider));
 			} else

Modified: scummvm/trunk/engines/sci/engine/kparse.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kparse.cpp	2010-03-08 21:33:23 UTC (rev 48201)
+++ scummvm/trunk/engines/sci/engine/kparse.cpp	2010-03-08 21:54:07 UTC (rev 48202)
@@ -117,7 +117,7 @@
 			s->r_acc = make_reg(0, 1);
 			PUT_SEL32V(segMan, event, SELECTOR(claimed), 1);
 
-			invoke_selector(INV_SEL(s->_gameObj, syntaxFail, kStopOnInvalidSelector), 2, s->_voc->parser_base, stringpos);
+			invoke_selector(INV_SEL(s, s->_gameObj, syntaxFail, kStopOnInvalidSelector), 2, s->_voc->parser_base, stringpos);
 			/* Issue warning */
 
 			debugC(2, kDebugLevelParser, "Tree building failed");
@@ -140,7 +140,7 @@
 			debugC(2, kDebugLevelParser, "Word unknown: %s", error);
 			/* Issue warning: */
 
-			invoke_selector(INV_SEL(s->_gameObj, wordFail, kStopOnInvalidSelector), 2, s->_voc->parser_base, stringpos);
+			invoke_selector(INV_SEL(s, s->_gameObj, wordFail, kStopOnInvalidSelector), 2, s->_voc->parser_base, stringpos);
 			free(error);
 			return make_reg(0, 1); /* Tell them that it didn't work */
 		}

Modified: scummvm/trunk/engines/sci/engine/selector.h
===================================================================
--- scummvm/trunk/engines/sci/engine/selector.h	2010-03-08 21:33:23 UTC (rev 48201)
+++ scummvm/trunk/engines/sci/engine/selector.h	2010-03-08 21:54:07 UTC (rev 48202)
@@ -78,7 +78,7 @@
  * Kludge for use with invoke_selector(). Used for compatibility with compilers
  * that cannot handle vararg macros.
  */
-#define INV_SEL(_object_, _selector_, _noinvalid_) \
+#define INV_SEL(s, _object_, _selector_, _noinvalid_) \
 	s, _object_,  g_sci->getKernel()->_selectorCache._selector_, _noinvalid_, argc, argv
 
 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list