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.cpp30
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