[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