[Scummvm-cvs-logs] scummvm master -> df5742eee41abe7e74a2b47a0ddcc183bf52fe09

dreammaster dreammaster at scummvm.org
Sat Feb 21 21:53:33 CET 2015


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
df5742eee4 MADS: Fix player animation when getting blown up by mine


Commit: df5742eee41abe7e74a2b47a0ddcc183bf52fe09
    https://github.com/scummvm/scummvm/commit/df5742eee41abe7e74a2b47a0ddcc183bf52fe09
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2015-02-21T15:52:01-05:00

Commit Message:
MADS: Fix player animation when getting blown up by mine

Changed paths:
    engines/mads/player.cpp
    engines/mads/sprites.cpp



diff --git a/engines/mads/player.cpp b/engines/mads/player.cpp
index 1622031..8720aee 100644
--- a/engines/mads/player.cpp
+++ b/engines/mads/player.cpp
@@ -240,8 +240,13 @@ void Player::updateFrame() {
 		return;
 
 	Scene &scene = _vm->_game->_scene;
+	assert(scene._sprites[idx] != nullptr);
 	SpriteAsset &spriteSet = *scene._sprites[idx];
-	assert(spriteSet._charInfo);
+	
+	// WORKAROUND: Certain cutscenes set up player sprites that don't have any 
+	// character info. In such cases, simply ignore player updates
+	if (!spriteSet._charInfo)
+		return;
 
 	if (!spriteSet._charInfo->_numEntries) {
 		_frameNumber = 1;
@@ -515,8 +520,7 @@ void Player::idle() {
 		return;
 
 	SpriteAsset &spriteSet = *scene._sprites[idx];
-	assert(spriteSet._charInfo);
-	if (spriteSet._charInfo->_numEntries == 0)
+	if (spriteSet._charInfo == nullptr || spriteSet._charInfo->_numEntries == 0)
 		// No entries, so exit immediately
 		return;
 
diff --git a/engines/mads/sprites.cpp b/engines/mads/sprites.cpp
index fd73930..f74edaf 100644
--- a/engines/mads/sprites.cpp
+++ b/engines/mads/sprites.cpp
@@ -371,16 +371,13 @@ int SpriteSets::add(SpriteAsset *asset, int idx) {
 	if (idx)
 		idx = idx + 49;
 	else
-		idx = size();
+		idx = _assetCount++;
 
 	if (idx >= (int)size())
 		resize(idx + 1);
 
-	if ((*this)[idx]) {
+	if ((*this)[idx])
 		delete (*this)[idx];
-	} else {
-		++_assetCount;
-	}
 
 	(*this)[idx] = asset;
 	return idx;






More information about the Scummvm-git-logs mailing list