[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