[Scummvm-cvs-logs] SF.net SVN: scummvm:[50669] scummvm/trunk/engines/m4
dreammaster at users.sourceforge.net
dreammaster at users.sourceforge.net
Mon Jul 5 11:53:10 CEST 2010
Revision: 50669
http://scummvm.svn.sourceforge.net/scummvm/?rev=50669&view=rev
Author: dreammaster
Date: 2010-07-05 09:53:10 +0000 (Mon, 05 Jul 2010)
Log Message:
-----------
Bugfixes for new player code - Rex is now correctly positioned when the player manager takes over from the wakeup animation sequence
Modified Paths:
--------------
scummvm/trunk/engines/m4/mads_player.cpp
scummvm/trunk/engines/m4/mads_player.h
scummvm/trunk/engines/m4/mads_scene.cpp
scummvm/trunk/engines/m4/mads_views.cpp
Modified: scummvm/trunk/engines/m4/mads_player.cpp
===================================================================
--- scummvm/trunk/engines/m4/mads_player.cpp 2010-07-05 03:21:48 UTC (rev 50668)
+++ scummvm/trunk/engines/m4/mads_player.cpp 2010-07-05 09:53:10 UTC (rev 50669)
@@ -49,7 +49,7 @@
_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 @@
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 @@
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 @@
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;
}
Modified: scummvm/trunk/engines/m4/mads_player.h
===================================================================
--- scummvm/trunk/engines/m4/mads_player.h 2010-07-05 03:21:48 UTC (rev 50668)
+++ scummvm/trunk/engines/m4/mads_player.h 2010-07-05 09:53:10 UTC (rev 50669)
@@ -42,7 +42,7 @@
public:
char _spritesPrefix[16];
int _spriteSetCount;
- int _spriteSetIndexes[8];
+ bool _spriteSetsPresent[8];
Common::Point _playerPos;
Common::Point _destPos;
int16 _direction, _direction2;
Modified: scummvm/trunk/engines/m4/mads_scene.cpp
===================================================================
--- scummvm/trunk/engines/m4/mads_scene.cpp 2010-07-05 03:21:48 UTC (rev 50668)
+++ scummvm/trunk/engines/m4/mads_scene.cpp 2010-07-05 09:53:10 UTC (rev 50669)
@@ -166,6 +166,7 @@
// Miscellaneous player setup
_madsVm->_player._destPos = _madsVm->_player._destPos;
_madsVm->_player._direction2 = _madsVm->_player._direction;
+ _madsVm->_player.setupFrame();
_madsVm->_player.idle();
// Purge resources
Modified: scummvm/trunk/engines/m4/mads_views.cpp
===================================================================
--- scummvm/trunk/engines/m4/mads_views.cpp 2010-07-05 03:21:48 UTC (rev 50668)
+++ scummvm/trunk/engines/m4/mads_views.cpp 2010-07-05 09:53:10 UTC (rev 50669)
@@ -95,7 +95,7 @@
// Get the sprite set
Common::SeekableReadStream *data = _vm->res()->get(resName);
- SpriteAsset *spriteSet = new SpriteAsset(_vm, data, data->size(), resName, flags);
+ SpriteAsset *spriteSet = new SpriteAsset(_vm, data, data->size(), resName, false, flags);
spriteSet->translate(_madsVm->_palette);
assert(spriteSet != NULL);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list