aboutsummaryrefslogtreecommitdiff
path: root/engines/pegasus/neighborhood/prehistoric/prehistoric.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/pegasus/neighborhood/prehistoric/prehistoric.cpp')
-rw-r--r--engines/pegasus/neighborhood/prehistoric/prehistoric.cpp56
1 files changed, 39 insertions, 17 deletions
diff --git a/engines/pegasus/neighborhood/prehistoric/prehistoric.cpp b/engines/pegasus/neighborhood/prehistoric/prehistoric.cpp
index 814d7717de..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);
}
}
}
@@ -402,9 +404,10 @@ void Prehistoric::loadAmbientLoops() {
switch (room) {
case kPrehistoric02:
// 1/4 volume.
- if (GameState.getPrehistoricSeenTimeStream())
- loadLoopSound1("Sounds/Prehistoric/P02SAL00.22k.AIFF", 64);
- break;
+ if (!GameState.getPrehistoricSeenTimeStream())
+ break;
+
+ // Fall through
case kPrehistoric01:
case kPrehistoric03:
case kPrehistoric04:
@@ -419,7 +422,10 @@ void Prehistoric::loadAmbientLoops() {
case kPrehistoric19:
case kPrehistoric20:
// 1/4 volume.
- loadLoopSound1("Sounds/Prehistoric/P02SAL00.22k.AIFF", 64);
+ if (_vm->isDVD()) // Updated sound for the DVD version
+ loadLoopSound1("Sounds/Prehistoric/P02SAL00.32k.AIFF", 64);
+ else
+ loadLoopSound1("Sounds/Prehistoric/P02SAL00.22k.AIFF", 64);
break;
case kPrehistoric08:
case kPrehistoric10:
@@ -429,11 +435,17 @@ void Prehistoric::loadAmbientLoops() {
case kPrehistoric18:
case kPrehistoric21:
// 3/16 volume.
- loadLoopSound1("Sounds/Prehistoric/P02SAL00.22k.AIFF", 48);
+ if (_vm->isDVD()) // Updated sound for the DVD version
+ loadLoopSound1("Sounds/Prehistoric/P02SAL00.32k.AIFF", 48);
+ else
+ loadLoopSound1("Sounds/Prehistoric/P02SAL00.22k.AIFF", 48);
break;
case kPrehistoric25:
// 1/8 volume.
- loadLoopSound1("Sounds/Prehistoric/P02SAL00.22k.AIFF", 32);
+ if (_vm->isDVD()) // Updated sound for the DVD version
+ loadLoopSound1("Sounds/Prehistoric/P02SAL00.32k.AIFF", 32);
+ else
+ loadLoopSound1("Sounds/Prehistoric/P02SAL00.22k.AIFF", 32);
break;
case kPrehistoric22:
case kPrehistoric22North:
@@ -470,19 +482,29 @@ void Prehistoric::loadAmbientLoops() {
break;
case kPrehistoric01:
case kPrehistoric25:
- loadLoopSound2("Sounds/Prehistoric/VolcLoop.22K.AIFF", 64);
+ if (_vm->isDVD())
+ loadLoopSound2("Sounds/Prehistoric/VolcLoop.32K.AIFF", 64);
+ else
+ loadLoopSound2("Sounds/Prehistoric/VolcLoop.22K.AIFF", 64);
break;
case kPrehistoric18:
- if (_privateFlags.getFlag(kPrehistoricPrivateExtendedBridgeFlag))
- loadLoopSound2("Sounds/Prehistoric/P18EAL00.22k.AIFF", 0x100, 0, 0);
- else
+ if (_privateFlags.getFlag(kPrehistoricPrivateExtendedBridgeFlag)) {
+ if (_vm->isDVD()) // Updated sound for the DVD version
+ loadLoopSound2("Sounds/Prehistoric/P18EAL00.44K.aiff", 0x100, 0, 0);
+ else
+ loadLoopSound2("Sounds/Prehistoric/P18EAL00.22k.AIFF", 0x100, 0, 0);
+ } else {
loadLoopSound2("");
+ }
break;
case kPrehistoric23:
case kPrehistoric24:
case kPrehistoric22:
case kPrehistoric22North:
- loadLoopSound2("Sounds/Prehistoric/P24NAL00.22k.AIFF", 64);
+ if (_vm->isDVD()) // Updated sound for the DVD version
+ loadLoopSound2("Sounds/Prehistoric/P24NAL00.32k.AIFF", 64);
+ else
+ loadLoopSound2("Sounds/Prehistoric/P24NAL00.22k.AIFF", 64);
break;
}
}
@@ -575,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: