aboutsummaryrefslogtreecommitdiff
path: root/engines/dreamweb/stubs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/dreamweb/stubs.cpp')
-rw-r--r--engines/dreamweb/stubs.cpp21
1 files changed, 17 insertions, 4 deletions
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index 88e590f4a3..e400a5bbf3 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -1188,18 +1188,21 @@ DynObject *DreamGenContext::geteitheradCPP() {
return getfreead(data.byte(kItemframe));
}
-void *DreamGenContext::getanyad(uint16 *value) {
+void *DreamGenContext::getanyad(uint8 *value1, uint8 *value2) {
if (data.byte(kObjecttype) == 4) {
DynObject *exObject = getexad(data.byte(kCommand));
- *value = exObject->w7();
+ *value1 = exObject->b7;
+ *value2 = exObject->b8;
return exObject;
} else if (data.byte(kObjecttype) == 2) {
DynObject *freeObject = getfreead(data.byte(kCommand));
- *value = freeObject->w7();
+ *value1 = freeObject->b7;
+ *value2 = freeObject->b8;
return freeObject;
} else {
SetObject *setObject = getsetad(data.byte(kCommand));
- *value = setObject->w4(); // Suspicious : conflicts with priority being a byte?
+ *value1 = setObject->b4;
+ *value2 = setObject->priority;
return setObject;
}
}
@@ -1695,6 +1698,16 @@ void DreamGenContext::obpicture() {
showframe(frames, 160, 68, frame, 0x80);
}
+void DreamGenContext::obicons() {
+ uint8 value1, value2;
+ getanyad(&value1, &value2);
+ if (value1 == 0xff) {
+ showframe((Frame *)segRef(data.word(kIcons2)).ptr(0, 0), 260, 1, 1, 0);
+ } else {
+ showframe((Frame *)segRef(data.word(kIcons2)).ptr(0, 0), 210, 1, 4, 0);
+ }
+}
+
bool DreamGenContext::isCD() {
// The original sources has two codepaths depending if the game is 'if cd' or not
// This is a hack to guess which version to use with the assumption that if we have a cd version