[Scummvm-cvs-logs] scummvm master -> 5b7d2cd65a90a9ac5851a7bad6976d063f700ef1

fuzzie fuzzie at fuzzie.org
Fri Nov 4 12:29:03 CET 2011


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

Summary:
bee2e69e11 COMPOSER: Factor out button activation code.
5b7d2cd65a COMPOSER: Improve check for invalid CTBLs.


Commit: bee2e69e117af5205e96083cb7b0b128dd891e0c
    https://github.com/scummvm/scummvm/commit/bee2e69e117af5205e96083cb7b0b128dd891e0c
Author: Alyssa Milburn (fuzzie at fuzzie.org)
Date: 2011-11-04T04:25:37-07:00

Commit Message:
COMPOSER: Factor out button activation code.

Changed paths:
    engines/composer/composer.cpp
    engines/composer/composer.h
    engines/composer/scripting.cpp



diff --git a/engines/composer/composer.cpp b/engines/composer/composer.cpp
index 595c2ec..c2ebed3 100644
--- a/engines/composer/composer.cpp
+++ b/engines/composer/composer.cpp
@@ -571,4 +571,16 @@ const Button *ComposerEngine::getButtonFor(const Sprite *sprite, const Common::P
 	return NULL;
 }
 
+void ComposerEngine::setButtonActive(uint16 id, bool active) {
+	for (Common::List<Library>::iterator l = _libraries.begin(); l != _libraries.end(); l++) {
+		for (Common::List<Button>::iterator i = l->_buttons.begin(); i != l->_buttons.end(); i++) {
+			if (i->_id != id)
+				continue;
+			i->_active = active;
+		}
+	}
+
+	onMouseMove(_lastMousePos);
+}
+
 } // End of namespace Composer
diff --git a/engines/composer/composer.h b/engines/composer/composer.h
index 1816d89..da14622 100644
--- a/engines/composer/composer.h
+++ b/engines/composer/composer.h
@@ -216,6 +216,7 @@ private:
 	void removeSprite(uint16 id, uint16 animId);
 	const Sprite *getSpriteAtPos(const Common::Point &pos);
 	const Button *getButtonFor(const Sprite *sprite, const Common::Point &pos);
+	void setButtonActive(uint16 id, bool active);
 
 	void dirtySprite(const Sprite &sprite);
 	void redraw();
diff --git a/engines/composer/scripting.cpp b/engines/composer/scripting.cpp
index 41e9151..3f692c5 100644
--- a/engines/composer/scripting.cpp
+++ b/engines/composer/scripting.cpp
@@ -570,25 +570,11 @@ int16 ComposerEngine::scriptFuncCall(uint16 id, int16 param1, int16 param2, int1
 		return 0;
 	case kFuncActivateButton:
 		debug(3, "kFuncActivateButton(%d)", param1);
-		for (Common::List<Library>::iterator l = _libraries.begin(); l != _libraries.end(); l++) {
-			for (Common::List<Button>::iterator i = l->_buttons.begin(); i != l->_buttons.end(); i++) {
-				if (i->_id != param1)
-					continue;
-				i->_active = true;
-			}
-		}
-		onMouseMove(_lastMousePos);
+		setButtonActive(param1, true);
 		return 1;
 	case kFuncDeactivateButton:
 		debug(3, "kFuncDeactivateButton(%d)", param1);
-		for (Common::List<Library>::iterator l = _libraries.begin(); l != _libraries.end(); l++) {
-			for (Common::List<Button>::iterator i = l->_buttons.begin(); i != l->_buttons.end(); i++) {
-				if (i->_id != param1)
-					continue;
-				i->_active = false;
-			}
-		}
-		onMouseMove(_lastMousePos);
+		setButtonActive(param1, false);
 		return 1;
 	case kFuncNewPage:
 		debug(3, "kFuncNewPage(%d, %d)", param1, param2);


Commit: 5b7d2cd65a90a9ac5851a7bad6976d063f700ef1
    https://github.com/scummvm/scummvm/commit/5b7d2cd65a90a9ac5851a7bad6976d063f700ef1
Author: Alyssa Milburn (fuzzie at fuzzie.org)
Date: 2011-11-04T04:27:10-07:00

Commit Message:
COMPOSER: Improve check for invalid CTBLs.

Changed paths:
    engines/composer/graphics.cpp



diff --git a/engines/composer/graphics.cpp b/engines/composer/graphics.cpp
index f253d85..ced7073 100644
--- a/engines/composer/graphics.cpp
+++ b/engines/composer/graphics.cpp
@@ -499,8 +499,8 @@ void ComposerEngine::loadCTBL(uint16 id, uint fadePercent) {
 	uint16 numEntries = stream->readUint16LE();
 	debug(1, "CTBL: %d entries", numEntries);
 
-	assert(numEntries <= 256);
-	assert(stream->size() == 2 + (numEntries * 3));
+	if ((numEntries > 256) || (stream->size() < 2 + (numEntries * 3)))
+		error("CTBL %d was invalid (%d entries, size %d)", id, numEntries, stream->size());
 
 	byte buffer[256 * 3];
 	stream->read(buffer, numEntries * 3);






More information about the Scummvm-git-logs mailing list