[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