diff options
Diffstat (limited to 'engines/dreamweb/stubs.cpp')
-rw-r--r-- | engines/dreamweb/stubs.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp index 35f9df0a43..88e590f4a3 100644 --- a/engines/dreamweb/stubs.cpp +++ b/engines/dreamweb/stubs.cpp @@ -1188,6 +1188,22 @@ DynObject *DreamGenContext::geteitheradCPP() { return getfreead(data.byte(kItemframe)); } +void *DreamGenContext::getanyad(uint16 *value) { + if (data.byte(kObjecttype) == 4) { + DynObject *exObject = getexad(data.byte(kCommand)); + *value = exObject->w7(); + return exObject; + } else if (data.byte(kObjecttype) == 2) { + DynObject *freeObject = getfreead(data.byte(kCommand)); + *value = freeObject->w7(); + return freeObject; + } else { + SetObject *setObject = getsetad(data.byte(kCommand)); + *value = setObject->w4(); // Suspicious : conflicts with priority being a byte? + return setObject; + } +} + SetObject *DreamGenContext::getsetad(uint8 index) { return (SetObject *)segRef(data.word(kSetdat)).ptr(0, 0) + index; } |