diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/dreamweb/object.cpp | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/engines/dreamweb/object.cpp b/engines/dreamweb/object.cpp index 283e44b583..d376f915e5 100644 --- a/engines/dreamweb/object.cpp +++ b/engines/dreamweb/object.cpp @@ -284,7 +284,26 @@ void DreamBase::getBackFromOb() { } void DreamGenContext::getOpenedSize() { - ax = getOpenedSizeCPP(); + //ax = getOpenedSizeCPP(); + + // We need to call the ASM-style versions of get*Ad, as these also set + // bx and es + + al = data.byte(kOpenedob); + + switch (data.byte(kOpenedtype)) { + case 4: + getExAd(); + break; + case 2: + getFreeAd(); + break; + default: + getSetAd(); + break; + } + + ax = es.word(bx+7); } byte DreamGenContext::getOpenedSizeCPP() { |