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

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Mon Aug 30 16:36:38 CEST 2010


Revision: 52454
          http://scummvm.svn.sourceforge.net/scummvm/?rev=52454&view=rev
Author:   m_kiewitz
Date:     2010-08-30 14:36:37 +0000 (Mon, 30 Aug 2010)

Log Message:
-----------
SCI: ability to ignore movecount for new DoBresen

fixes later sci games, when using new kDoBresen/kInitBresen

Modified Paths:
--------------
    scummvm/trunk/engines/sci/engine/kmovement.cpp

Modified: scummvm/trunk/engines/sci/engine/kmovement.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kmovement.cpp	2010-08-30 14:06:18 UTC (rev 52453)
+++ scummvm/trunk/engines/sci/engine/kmovement.cpp	2010-08-30 14:36:37 UTC (rev 52454)
@@ -333,16 +333,21 @@
 	reg_t mover = argv[0];
 	reg_t client = readSelector(segMan, mover, SELECTOR(client));
 	bool completed = false;
+	bool handleMoveCount = g_sci->_features->handleMoveCount();
 
 	if (getSciVersion() >= SCI_VERSION_1_EGA) {
 		uint client_signal = readSelectorValue(segMan, client, SELECTOR(signal));
 		writeSelectorValue(segMan, client, SELECTOR(signal), client_signal & ~kSignalHitObstacle);
 	}
 
-	int16 mover_moveCnt = readSelectorValue(segMan, mover, SELECTOR(b_movCnt));
-	int16 client_moveSpeed = readSelectorValue(segMan, client, SELECTOR(moveSpeed));
+	int16 mover_moveCnt = 1;
+	int16 client_moveSpeed = 0;
+	if (handleMoveCount) {
+		mover_moveCnt = readSelectorValue(segMan, mover, SELECTOR(b_movCnt));
+		client_moveSpeed = readSelectorValue(segMan, client, SELECTOR(moveSpeed));
+		mover_moveCnt++;
+	}
 
-	mover_moveCnt++;
 	if (client_moveSpeed < mover_moveCnt) {
 		mover_moveCnt = 0;
 		int16 client_x = readSelectorValue(segMan, client, SELECTOR(x));
@@ -429,7 +434,9 @@
 		writeSelectorValue(segMan, mover, SELECTOR(b_i2), mover_i2);
 		writeSelectorValue(segMan, mover, SELECTOR(b_di), mover_di);
 	}
-	writeSelectorValue(segMan, mover, SELECTOR(b_movCnt), mover_moveCnt);
+	if (handleMoveCount)
+		writeSelectorValue(segMan, mover, SELECTOR(b_movCnt), mover_moveCnt);
+
 	if ((getSciVersion() >= SCI_VERSION_1_EGA)) {
 		// Sierra SCI compared client_x&mover_x and client_y&mover_y
 		//  those variables were not initialized in case the moveSpeed


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