aboutsummaryrefslogtreecommitdiff
path: root/engines/pegasus/items
diff options
context:
space:
mode:
authorMatthew Hoops2012-04-11 09:33:43 -0400
committerMatthew Hoops2012-04-11 09:33:43 -0400
commitf087f20fa247ef780cb5172319064dec51f2cac5 (patch)
tree3f589977eadb1531bd2d3ae976e6aa3fbcde038d /engines/pegasus/items
parent6ae0ff377894ea3188fc1f2c9ffc5c75a12907dd (diff)
downloadscummvm-rg350-f087f20fa247ef780cb5172319064dec51f2cac5.tar.gz
scummvm-rg350-f087f20fa247ef780cb5172319064dec51f2cac5.tar.bz2
scummvm-rg350-f087f20fa247ef780cb5172319064dec51f2cac5.zip
PEGASUS: Fix the pegasus biochip recall button highlight
Diffstat (limited to 'engines/pegasus/items')
-rw-r--r--engines/pegasus/items/biochips/pegasuschip.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/engines/pegasus/items/biochips/pegasuschip.cpp b/engines/pegasus/items/biochips/pegasuschip.cpp
index 1e3e0d7a88..320662af06 100644
--- a/engines/pegasus/items/biochips/pegasuschip.cpp
+++ b/engines/pegasus/items/biochips/pegasuschip.cpp
@@ -155,7 +155,17 @@ void PegasusChip::clickInPegasusHotspot() {
break;
}
- setItemState(hiliteState);
+ // WORKAROUND: The original called setItemState() here. However,
+ // since we're overriding select() to call setUpPegasusChip(),
+ // the highlighted frame is never displayed! So, we're manually
+ // setting the state and selecting the item. Also of note is that
+ // setItemState() for this class is effectively useless since it
+ // always gets overriden in the select() function. The only reason
+ // that this doesn't end in infinite recursion is because setItemState()
+ // has a check against the current state to make sure you don't call
+ // select() again. </rant>
+ _itemState = hiliteState;
+ BiochipItem::select();
uint32 time = g_system->getMillis();
while (g_system->getMillis() < time + 500) {