aboutsummaryrefslogtreecommitdiff
path: root/engines/mads/user_interface.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2014-04-19 17:43:44 -0400
committerPaul Gilbert2014-04-19 17:43:44 -0400
commitc4669dd2f2ec850f3a42794dbbc134febed229e2 (patch)
tree33ef69d67e43e3f34245057eb281fa43aa15d7d6 /engines/mads/user_interface.cpp
parent34d0bc72b571e5e6e0b4b4f3ee1a627cbf470d72 (diff)
downloadscummvm-rg350-c4669dd2f2ec850f3a42794dbbc134febed229e2.tar.gz
scummvm-rg350-c4669dd2f2ec850f3a42794dbbc134febed229e2.tar.bz2
scummvm-rg350-c4669dd2f2ec850f3a42794dbbc134febed229e2.zip
MADS: Fix refresh of inventory list after scrolling
Diffstat (limited to 'engines/mads/user_interface.cpp')
-rw-r--r--engines/mads/user_interface.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/engines/mads/user_interface.cpp b/engines/mads/user_interface.cpp
index 594d549f87..7b12ef4941 100644
--- a/engines/mads/user_interface.cpp
+++ b/engines/mads/user_interface.cpp
@@ -98,7 +98,7 @@ void UISlots::draw(bool updateFlag, bool delFlag) {
if (dirtyAreaPtr)
dirtyAreaPtr->_active = true;
- // Copy parts of the user interface background that are going to have sprites drawn
+ // Copy parts of the user interface background that need to be erased
for (uint idx = 0; idx < size(); ++idx) {
DirtyArea &dirtyArea = userInterface._dirtyAreas[idx];
UISlot &slot = (*this)[idx];
@@ -106,11 +106,13 @@ void UISlots::draw(bool updateFlag, bool delFlag) {
if (dirtyArea._active && dirtyArea._bounds.width() > 0
&& dirtyArea._bounds.height() > 0 && slot._flags >= -20) {
- // TODO: Figure out the difference between two copy methods used
if (slot._flags >= IMG_ERASE) {
+ // Merge area
+ error("TODO: Create a sprite merge method");
userInterface._surface.copyTo(&userInterface, dirtyArea._bounds,
Common::Point(dirtyArea._bounds.left, dirtyArea._bounds.top));
} else {
+ // Copy area
userInterface._surface.copyTo(&userInterface, dirtyArea._bounds,
Common::Point(dirtyArea._bounds.left, dirtyArea._bounds.top));
}
@@ -183,7 +185,7 @@ void UISlots::draw(bool updateFlag, bool delFlag) {
if (slot._flags < IMG_STATIC) {
if (delFlag || updateFlag)
remove_at(idx);
- else if (slot._flags >= -20)
+ else if (slot._flags > -20)
slot._flags -= 20;
} else {
if (updateFlag)
@@ -721,7 +723,7 @@ void UserInterface::inventoryAnim() {
// Loop through the slots list for inventory animation entry
for (uint i = 0; i < _uiSlots.size(); ++i) {
if (_uiSlots[i]._segmentId == IMG_SPINNING_OBJECT)
- _uiSlots[i]._flags = -5;
+ _uiSlots[i]._flags = IMG_UPDATE_ONLY;
}
// Add a new slot entry for the inventory animation