diff options
author | Paul Gilbert | 2010-07-05 09:53:10 +0000 |
---|---|---|
committer | Paul Gilbert | 2010-07-05 09:53:10 +0000 |
commit | 660ffc194d217bdeb61479e5b101e7642319ecb5 (patch) | |
tree | 022940dd431dedd9953392f694dfdebe5cc7dde5 /engines/m4/mads_player.cpp | |
parent | 830c7611dc76ea94a0869b4943b541035ee28d1c (diff) | |
download | scummvm-rg350-660ffc194d217bdeb61479e5b101e7642319ecb5.tar.gz scummvm-rg350-660ffc194d217bdeb61479e5b101e7642319ecb5.tar.bz2 scummvm-rg350-660ffc194d217bdeb61479e5b101e7642319ecb5.zip |
Bugfixes for new player code - Rex is now correctly positioned when the player manager takes over from the wakeup animation sequence
svn-id: r50669
Diffstat (limited to 'engines/m4/mads_player.cpp')
-rw-r--r-- | engines/m4/mads_player.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/engines/m4/mads_player.cpp b/engines/m4/mads_player.cpp index 2ba009459e..57cb9eefd3 100644 --- a/engines/m4/mads_player.cpp +++ b/engines/m4/mads_player.cpp @@ -49,7 +49,7 @@ MadsPlayer::MadsPlayer() { _currentScale = 0; strcpy(_spritesPrefix, ""); for (int idx = 0; idx < 8; ++idx) - _spriteSetIndexes[idx] = 0; + _spriteSetsPresent[idx] = false; _frameNum = 0; _frameOffset = 0; _unk1 = 0; @@ -76,7 +76,7 @@ bool MadsPlayer::loadSprites(const char *prefix) { if (prefixLen == 0) { // No player sprites at at all for (int idx = 0; idx < 8; ++idx) - _spriteSetIndexes[idx] = 0; + _spriteSetsPresent[idx] = false; } else { strcpy(setName, "*"); strcat(setName, _spritesPrefix); @@ -86,13 +86,13 @@ bool MadsPlayer::loadSprites(const char *prefix) { for (int idx = 0; idx < 8; ++idx) { *digitP = suffixList[idx]; - _spriteSetIndexes[idx] = -1; + _spriteSetsPresent[idx] = true; int setIndex = _madsVm->scene()->_spriteSlots.addSprites(setName, true, SPRITE_SET_CHAR_INFO); if (setIndex < 0) { if (idx < 7) break; - _spriteSetIndexes[idx] = 0; + _spriteSetsPresent[idx] = false; } else { ++_spriteSetCount; } @@ -212,8 +212,9 @@ void MadsPlayer::setupFrame() { resetActionList(); _frameOffset = 0; _spriteListIdx2 = _directionListIndexes[_direction]; - if (_spriteSetIndexes[_spriteListIdx2] == 0) { - _spriteListIdx2 = 4; + if (!_spriteSetsPresent[_spriteListIdx2]) { + // Direction isn't present, so use alternate direction, with entries flipped + _spriteListIdx2 -= 4; _frameOffset = 0x8000; } |