SHERLOCK: RT: Create pullNPCPaths to call each NPC's pullNPCPath method

This commit is contained in:
Paul Gilbert 2015-06-18 08:29:57 -04:00
parent 6238acff3c
commit f6c710e5b3
3 changed files with 21 additions and 1 deletions

View File

@ -202,7 +202,9 @@ void Talk::talkTo(const Common::String &filename) {
if (IS_SERRATED_SCALPEL) {
// Restore any pressed button
if (!ui._windowOpen && savedMode != STD_MODE)
((Scalpel::ScalpelUserInterface *)_vm->_ui)->restoreButton((int)(savedMode - 1));
static_cast<Scalpel::ScalpelUserInterface *>(_vm->_ui)->restoreButton((int)(savedMode - 1));
} else {
static_cast<Tattoo::TattooPeople *>(_vm->_people)->pullNPCPaths();
}
// Clear the ui counter so that anything displayed on the info line
@ -1118,6 +1120,9 @@ void Talk::doScript(const Common::String &script) {
pullSequence();
if (_speaker >= 0 && _speaker < SPEAKER_REMOVE)
people.clearTalking();
if (IS_ROSE_TATTOO)
static_cast<Tattoo::TattooPeople *>(_vm->_people)->pullNPCPaths();
}
}

View File

@ -1239,6 +1239,17 @@ bool TattooPeople::loadWalk() {
return result;
}
void TattooPeople::pullNPCPaths() {
for (int idx = 1; idx < MAX_CHARACTERS; ++idx) {
TattooPerson &p = (*this)[idx];
if (p._npcMoved) {
while (!p._pathStack.empty())
p.pullNPCPath();
}
}
}
} // End of namespace Tattoo
} // End of namespace Sherlock

View File

@ -222,6 +222,10 @@ public:
*/
void setListenSequence(int speaker, int sequenceNum);
/**
* Restore any saved NPC walk path data from any of the NPCs
*/
void pullNPCPaths();
/**
* Finds the scene background object corresponding to a specified speaker