aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorRobert Crossfield2012-01-28 01:25:13 +1100
committerTobias Gunkel2012-02-11 08:29:40 +0100
commit9ba01d020b8a48bed57977a430c532a3237dedd0 (patch)
tree558a7178c394dae65f510ee2d5515ea8f32f927a /engines
parent1ca0b84b018657d3980b167cc2d8b56d94b4f26a (diff)
downloadscummvm-rg350-9ba01d020b8a48bed57977a430c532a3237dedd0.tar.gz
scummvm-rg350-9ba01d020b8a48bed57977a430c532a3237dedd0.tar.bz2
scummvm-rg350-9ba01d020b8a48bed57977a430c532a3237dedd0.zip
SCUMM: Fix V0 Sound, and a direction issue (affected walking down the ladder)
Diffstat (limited to 'engines')
-rw-r--r--engines/scumm/actor.cpp25
1 files changed, 12 insertions, 13 deletions
diff --git a/engines/scumm/actor.cpp b/engines/scumm/actor.cpp
index e95b3555eb..0191439612 100644
--- a/engines/scumm/actor.cpp
+++ b/engines/scumm/actor.cpp
@@ -1557,8 +1557,18 @@ void ScummEngine::processActors() {
// 0x22B5
if (A->_miscflags & kActorMiscFlagHide)
continue;
- }
+ // Sound
+ if (A->_moving && _currentRoom != 1 && _currentRoom != 44) {
+ if (A->_cost.soundPos == 0)
+ A->_cost.soundCounter++;
+
+ // Is this the correct location?
+ // 0x073C
+ if (v0ActorTalkArray[A->_number] & 0x3F)
+ A->_cost.soundPos = (A->_cost.soundPos + 1) % 3;
+ }
+ }
// Draw and animate the actors, except those w/o a costume.
// Note: We could 'optimize' this a little bit by only putting
// actors with a costume into the _sortedActors array in the
@@ -1871,7 +1881,7 @@ void ActorC64::startAnimActor(int f) {
if( f == _standFrame )
setDirection( _facing );
else
- animateActor( newDirToOldDir(_targetFacing) );
+ animateActor( newDirToOldDir(_facing) );
}
void Actor::animateActor(int anim) {
@@ -2766,17 +2776,6 @@ void ScummEngine_v71he::queueAuxEntry(int actorNum, int subIndex) {
void ActorC64::animateActor(int anim) {
int dir = -1;
-
- // Sound
- if (_moving && _vm->_currentRoom != 1 && _vm->_currentRoom != 44) {
- if (_cost.soundPos == 0)
- _cost.soundCounter++;
-
- // Is this the correct location?
- // 0x073C
- if (v0ActorTalkArray[_number] & 0x3F)
- _cost.soundPos = (_cost.soundPos + 1) % 3;
- }
switch( anim ) {
case 0x00: