[Scummvm-cvs-logs] scummvm master -> b26bc296194c3a745fa9d222862ce1ad12a13e3e

dreammaster dreammaster at scummvm.org
Sun Jun 14 16:58:05 CEST 2015


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
b26bc29619 SHERLOCK: RT: Fix player animation when enterng scene


Commit: b26bc296194c3a745fa9d222862ce1ad12a13e3e
    https://github.com/scummvm/scummvm/commit/b26bc296194c3a745fa9d222862ce1ad12a13e3e
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2015-06-14T10:57:05-04:00

Commit Message:
SHERLOCK: RT: Fix player animation when enterng scene

Changed paths:
    engines/sherlock/objects.cpp
    engines/sherlock/people.cpp
    engines/sherlock/talk.cpp
    engines/sherlock/tattoo/tattoo_people.cpp
    engines/sherlock/tattoo/tattoo_user_interface.cpp



diff --git a/engines/sherlock/objects.cpp b/engines/sherlock/objects.cpp
index 270ddc8..0d33037 100644
--- a/engines/sherlock/objects.cpp
+++ b/engines/sherlock/objects.cpp
@@ -290,26 +290,39 @@ void BaseObject::checkObject() {
 			} else {
 				v -= 128;
 
-				// 68-99 is a squence code
+				// 68-99 is a sequence code
 				if (v > SEQ_TO_CODE) {
-					byte *p = &_sequences[_frameNumber];
-					v -= SEQ_TO_CODE;	// # from 1-32
-					_seqTo = v;
-					*p = *(p - 1);
-
-					if (*p > 128)
-						// If the high bit is set, convert to a real frame
-						*p -= (byte)(SEQ_TO_CODE - 128);
-
-					if (*p > _seqTo)
-						*p -= 1;
-					else
-						*p += 1;
-
-					// Will be incremented below to return back to original value
-					--_frameNumber;
-					v = 0;
-
+					if (IS_ROSE_TATTOO) {
+						++_frameNumber;
+						byte *p = &_sequences[_frameNumber];
+						_seqTo = *p;
+						*p = *(p - 2);
+
+						if (*p > _seqTo)
+							*p -= 1;
+						else
+							*p += 1;
+
+						--_frameNumber;
+					} else {
+						byte *p = &_sequences[_frameNumber];
+						v -= SEQ_TO_CODE;	// # from 1-32
+						_seqTo = v;
+						*p = *(p - 1);
+
+						if (*p > 128)
+							// If the high bit is set, convert to a real frame
+							*p -= (byte)(SEQ_TO_CODE - 128);
+
+						if (*p > _seqTo)
+							*p -= 1;
+						else
+							*p += 1;
+
+						// Will be incremented below to return back to original value
+						--_frameNumber;
+						v = 0;
+					}
 				} else if (IS_ROSE_TATTOO && v == 10) {
 					// Set delta for objects
 					_delta = Common::Point(READ_LE_UINT16(&_sequences[_frameNumber + 1]), 
diff --git a/engines/sherlock/people.cpp b/engines/sherlock/people.cpp
index 7cdaab7..0db687c 100644
--- a/engines/sherlock/people.cpp
+++ b/engines/sherlock/people.cpp
@@ -197,7 +197,7 @@ People *People::init(SherlockEngine *vm) {
 
 People::People(SherlockEngine *vm) : _vm(vm) {
 	_holmesOn = true;
-	_allowWalkAbort = false;
+	_allowWalkAbort = true;
 	_portraitLoaded = false;
 	_portraitsOn = true;
 	_clearingThePortrait = false;
diff --git a/engines/sherlock/talk.cpp b/engines/sherlock/talk.cpp
index c800881..a349d71 100644
--- a/engines/sherlock/talk.cpp
+++ b/engines/sherlock/talk.cpp
@@ -170,9 +170,9 @@ void Talk::talkTo(const Common::String &filename) {
 	// Turn on the Exit option
 	ui._endKeyActive = true;
 
-	if (people[HOLMES]._walkCount || people[HOLMES]._walkTo.size() > 0) {
-		// Only interrupt if an action if trying to do an action, and not just
-		// if the player is walking around the scene
+	if (people[HOLMES]._walkCount || (people[HOLMES]._walkTo.size() > 0 && 
+			(IS_SERRATED_SCALPEL || people._allowWalkAbort))) {
+		// Only interrupt if trying to do an action, and not just if player is walking around the scene
 		if (people._allowWalkAbort)
 			abortFlag = true;
 
diff --git a/engines/sherlock/tattoo/tattoo_people.cpp b/engines/sherlock/tattoo/tattoo_people.cpp
index 2bdf116..a8c906a 100644
--- a/engines/sherlock/tattoo/tattoo_people.cpp
+++ b/engines/sherlock/tattoo/tattoo_people.cpp
@@ -461,8 +461,6 @@ TattooPeople::TattooPeople(SherlockEngine *vm) : People(vm) {
 		_data.push_back(new TattooPerson());
 }
 
-
-
 void TattooPeople::setListenSequence(int speaker, int sequenceNum) {
 	Scene &scene = *_vm->_scene;
 
diff --git a/engines/sherlock/tattoo/tattoo_user_interface.cpp b/engines/sherlock/tattoo/tattoo_user_interface.cpp
index e6a6430..915acde 100644
--- a/engines/sherlock/tattoo/tattoo_user_interface.cpp
+++ b/engines/sherlock/tattoo/tattoo_user_interface.cpp
@@ -403,12 +403,6 @@ void TattooUserInterface::doStandardControl() {
 			}
 		}
 	}
-	static bool flag = false;
-	if (!flag) {
-		flag = true;
-		people._walkDest = Common::Point(235, 370);
-		people[HOLMES].goAllTheWay();
-	}
 }
 
 void TattooUserInterface::doLookControl() {






More information about the Scummvm-git-logs mailing list