[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