aboutsummaryrefslogtreecommitdiff
path: root/engines/pegasus
diff options
context:
space:
mode:
Diffstat (limited to 'engines/pegasus')
-rw-r--r--engines/pegasus/detection.cpp4
-rw-r--r--engines/pegasus/neighborhood/prehistoric/prehistoric.cpp14
-rw-r--r--engines/pegasus/pegasus.h1
3 files changed, 13 insertions, 6 deletions
diff --git a/engines/pegasus/detection.cpp b/engines/pegasus/detection.cpp
index 8f0fa8eea5..071db4d6fe 100644
--- a/engines/pegasus/detection.cpp
+++ b/engines/pegasus/detection.cpp
@@ -58,6 +58,10 @@ bool PegasusEngine::isDVDDemo() const {
return isDemo() && isDVD();
}
+bool PegasusEngine::isOldDemo() const {
+ return isDemo() && !isDVD();
+}
+
} // End of namespace Pegasus
static const PlainGameDescriptor pegasusGames[] = {
diff --git a/engines/pegasus/neighborhood/prehistoric/prehistoric.cpp b/engines/pegasus/neighborhood/prehistoric/prehistoric.cpp
index 5dbddb4404..d62b069e46 100644
--- a/engines/pegasus/neighborhood/prehistoric/prehistoric.cpp
+++ b/engines/pegasus/neighborhood/prehistoric/prehistoric.cpp
@@ -125,6 +125,13 @@ void Prehistoric::setUpAIRules() {
AIRule *rule = new AIRule(hasLogCondition, doneAction);
g_AIArea->addAIRule(rule);
} else {
+ AIPlayMessageAction *messageAction = new AIPlayMessageAction("Images/AI/Prehistoric/XP25W", false);
+ AIHasItemCondition *hasLogCondition = new AIHasItemCondition(kHistoricalLog);
+ AIRule *rule = new AIRule(hasLogCondition, messageAction);
+ g_AIArea->addAIRule(rule);
+ }
+
+ if (!_vm->isOldDemo()) {
AIPlayMessageAction *messageAction = new AIPlayMessageAction("Images/AI/Prehistoric/XP1NB", false);
AILocationCondition *locCondition = new AILocationCondition(1);
locCondition->addLocation(MakeRoomView(kPrehistoric16, kNorth));
@@ -159,11 +166,6 @@ void Prehistoric::setUpAIRules() {
AITimerCondition *timerCondition = new AITimerCondition(kPrehistoricWarningTimeLimit, 1, true);
rule = new AIRule(timerCondition, messageAction);
g_AIArea->addAIRule(rule);
-
- messageAction = new AIPlayMessageAction("Images/AI/Prehistoric/XP25W", false);
- AIHasItemCondition *hasLogCondition = new AIHasItemCondition(kHistoricalLog);
- rule = new AIRule(hasLogCondition, messageAction);
- g_AIArea->addAIRule(rule);
}
}
}
@@ -595,7 +597,7 @@ Common::String Prehistoric::getEnvScanMovie() {
Common::String movieName = Neighborhood::getEnvScanMovie();
if (movieName.empty()) {
- if (!_vm->isDemo()) {
+ if (!_vm->isOldDemo()) {
switch (GameState.getCurrentRoom()) {
case kPrehistoric16:
case kPrehistoric23:
diff --git a/engines/pegasus/pegasus.h b/engines/pegasus/pegasus.h
index e544517d53..5a9535017a 100644
--- a/engines/pegasus/pegasus.h
+++ b/engines/pegasus/pegasus.h
@@ -97,6 +97,7 @@ public:
bool isDemo() const;
bool isDVD() const;
bool isDVDDemo() const;
+ bool isOldDemo() const;
void addIdler(Idler *idler);
void removeIdler(Idler *idler);
void addTimeBase(TimeBase *timeBase);