Ticket #2698: 1508935.diff
File 1508935.diff, 1.8 KB (added by , 17 years ago) |
---|
-
scumm/actor.cpp
420 420 } 421 421 422 422 _pos = _actorPos; 423 424 if (_pos == _walkdata.next) { 425 _moving &= ~MF_IN_LEG; 426 return 0; 427 } 423 428 return 1; 424 429 } 425 430 … … 776 781 if (newdir == -1 || _ignoreTurns) 777 782 return; 778 783 779 _moving &= ~MF_TURN;780 781 if (newdir != _facing) {782 if (_vm->_game.version <= 6)783 _moving =MF_TURN;784 else784 if (_vm->_game.version <= 6) { 785 _moving = MF_TURN; 786 _targetFacing = newdir; 787 } else { 788 _moving &= ~MF_TURN; 789 if (newdir != _facing) { 785 790 _moving |= MF_TURN; 786 _targetFacing = newdir; 791 _targetFacing = newdir; 792 } 787 793 } 788 794 } 789 795 … … 817 823 startAnimActor(_talkStopFrame); 818 824 } else { 819 825 if (_costumeNeedsInit) { 820 826 startAnimActor(_initFrame); 821 827 _costumeNeedsInit = false; 822 828 } 823 829 } … … 1335 1341 for (i = 1; i < _numActors; i++) { 1336 1342 if (testGfxUsageBit(x / 8, i) && !getClass(i, kObjectClassUntouchable) 1337 1343 && y >= _actors[i]._top && y <= _actors[i]._bottom 1338 && (_actors[i]._pos.y > _actors[curActor]._pos.y || curActor == 0)) 1344 && (_actors[i]._pos.y > _actors[curActor]._pos.y || curActor == 0)) 1339 1345 curActor = i; 1340 1346 } 1341 1347 … … 1596 1602 if (!isInCurrentRoom() && _vm->_game.version <= 6) { 1597 1603 _pos.x = abr.x; 1598 1604 _pos.y = abr.y; 1599 if ( _ignoreTurns == false&& dir != -1)1605 if (!_ignoreTurns && dir != -1) 1600 1606 _facing = dir; 1601 1607 return; 1602 1608 } … … 1688 1694 _moving = 0; 1689 1695 setBox(_walkdata.destbox); 1690 1696 startWalkAnim(3, _walkdata.destdir); 1697 if (_vm->_game.version <= 6) { 1698 if (!_ignoreTurns && _walkdata.destdir != -1 && _targetFacing != _walkdata.destdir) { 1699 _targetFacing = _walkdata.destdir; 1700 _moving = MF_TURN; 1701 } 1702 } 1691 1703 return; 1692 1704 } 1693 1705