diff options
Diffstat (limited to 'engines/dreamweb/stubs.cpp')
-rw-r--r-- | engines/dreamweb/stubs.cpp | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp index 6989a57a93..c755b93dec 100644 --- a/engines/dreamweb/stubs.cpp +++ b/engines/dreamweb/stubs.cpp @@ -3784,7 +3784,7 @@ void DreamGenContext::afterNewRoom() { zoom(); workToScreenM(); walkIntoRoom(); - reminders(); + edensFlatReminders(); atmospheres(); } @@ -4616,4 +4616,32 @@ void DreamGenContext::lookAtPlace() { workToScreenM(); } +void DreamGenContext::edensFlatReminders() { + if (data.byte(kReallocation) != 24 || data.byte(kMapx) != 44) + return; // not in Eden's lift + + if (data.byte(kProgresspoints)) + return; // not the first time in Eden's apartment + + uint16 exObjextIndex = findExObject("CSHR"); + if (!isRyanHolding("DKEY") || exObjextIndex == kNumexobjects) { + DreamBase::setupTimedUse(50, 48, 8, 54, 70); // forgot something + return; + } + + DynObject *object = getExAd(exObjextIndex); + + if (object->mapad[0] != 4) { + DreamBase::setupTimedUse(50, 48, 8, 54, 70); // forgot something + return; + } else if (object->mapad[1] != 255) { + if (!compare(object->mapad[1], object->mapad[0], "PURS")) { + DreamBase::setupTimedUse(50, 48, 8, 54, 70); // forgot something + return; + } + } + + data.byte(kProgresspoints)++; // got card +} + } // End of namespace DreamGen |