aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWillem Jan Palenstijn2011-12-18 13:18:24 +0100
committerWillem Jan Palenstijn2011-12-18 13:22:12 +0100
commitcf73ee9939fae986db922a2551544277d8d48449 (patch)
tree8d57c1bf4ca1f095070b10f99fb7c0791c7b1cb3
parentfeaf297c7500aaff8a68da0a47466e537f25db4b (diff)
downloadscummvm-rg350-cf73ee9939fae986db922a2551544277d8d48449.tar.gz
scummvm-rg350-cf73ee9939fae986db922a2551544277d8d48449.tar.bz2
scummvm-rg350-cf73ee9939fae986db922a2551544277d8d48449.zip
DREAMWEB: Fix multiple regressions in checkInside and loadCart
-rw-r--r--engines/dreamweb/monitor.cpp5
-rw-r--r--engines/dreamweb/stubs.cpp2
2 files changed, 5 insertions, 2 deletions
diff --git a/engines/dreamweb/monitor.cpp b/engines/dreamweb/monitor.cpp
index 577d5701ee..0b126ee250 100644
--- a/engines/dreamweb/monitor.cpp
+++ b/engines/dreamweb/monitor.cpp
@@ -405,8 +405,9 @@ void DreamGenContext::loadNews() {
void DreamGenContext::loadCart() {
byte cartridgeId = 0;
uint16 objectIndex = findSetObject("INTF");
- if (checkInside(objectIndex, 1) != kNumexobjects)
- cartridgeId = getSetAd(objectIndex)->name[0] + 1;
+ uint16 cartridgeIndex = checkInside(objectIndex, 1);
+ if (cartridgeIndex != kNumexobjects)
+ cartridgeId = getExAd(cartridgeIndex)->id[3] + 1;
if (cartridgeId == 0)
data.word(kTextfile3) = standardLoad("DREAMWEB.T20"); // monitor file 20
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index bf29cd05ea..1c87a05dea 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -1801,6 +1801,8 @@ bool DreamBase::isRyanHolding(const char *id) {
void DreamGenContext::checkInside() {
cl = checkInside(al, ah);
+ es = data.word(kExtras);
+ bx = kExdata + cl * sizeof(DynObject);
}
uint16 DreamGenContext::checkInside(uint16 command, uint16 type) {