From c99f3213deffe820d9e178a89629eae63cac3972 Mon Sep 17 00:00:00 2001 From: Matthew Hoops Date: Mon, 18 Mar 2013 15:38:02 -0400 Subject: PEGASUS: Let the DVD demo use the full Prehistoric AI video set --- engines/pegasus/detection.cpp | 4 ++++ engines/pegasus/neighborhood/prehistoric/prehistoric.cpp | 14 ++++++++------ engines/pegasus/pegasus.h | 1 + 3 files changed, 13 insertions(+), 6 deletions(-) (limited to 'engines') 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); -- cgit v1.2.3