[Scummvm-cvs-logs] scummvm master -> 5c5b19a77b10e5f9b5c476f02e74da2d33b8fd6f
clone2727
clone2727 at gmail.com
Wed Apr 17 04:01:23 CEST 2013
This automated email contains information about 8 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
5727b097b2 PEGASUS: Add the new demo theora videos
2ea09d1191 PEGASUS: Add detection for the new DVD Demo data file
bd6a8f37d5 PEGASUS: Add support for PICT cursors
06cd644a9e PEGASUS: Add new Prehistoric sounds for the DVD demo
8fb73dd2c3 PEGASUS: Clean up DVD demo Theora playback
c99f3213de PEGASUS: Let the DVD demo use the full Prehistoric AI video set
918920b47a PEGASUS: Add DVD raise/lower sounds for the inventory/biochip panels
5c5b19a77b PEGASUS: Add Windows demo support
Commit: 5727b097b2b22db9c05afbd701a35a5f4af66334
https://github.com/scummvm/scummvm/commit/5727b097b2b22db9c05afbd701a35a5f4af66334
Author: Matthew Hoops (clone2727 at gmail.com)
Date: 2013-04-16T18:53:13-07:00
Commit Message:
PEGASUS: Add the new demo theora videos
Changed paths:
engines/pegasus/pegasus.cpp
diff --git a/engines/pegasus/pegasus.cpp b/engines/pegasus/pegasus.cpp
index 2dae8f4..1441ff4 100644
--- a/engines/pegasus/pegasus.cpp
+++ b/engines/pegasus/pegasus.cpp
@@ -37,6 +37,7 @@
#include "base/plugins.h"
#include "base/version.h"
#include "gui/saveload.h"
+#include "video/theora_decoder.h"
#include "video/qt_decoder.h"
#include "pegasus/console.h"
@@ -1362,8 +1363,14 @@ bool PegasusEngine::playMovieScaled(Video::VideoDecoder *video, uint16 x, uint16
if (video->needsUpdate()) {
const Graphics::Surface *frame = video->decodeNextFrame();
- if (frame)
- drawScaledFrame(frame, x, y);
+ if (frame) {
+ if (frame->w <= 320 && frame->h <= 240) {
+ drawScaledFrame(frame, x, y);
+ } else {
+ _system->copyRectToScreen((byte *)frame->pixels, frame->pitch, x, y, frame->w, frame->h);
+ _system->updateScreen();
+ }
+ }
}
Input input;
@@ -1387,6 +1394,18 @@ void PegasusEngine::die(const DeathReason reason) {
}
void PegasusEngine::doDeath() {
+#ifdef USE_THEORADEC
+ // The updated demo has a new Theora video for the closing
+ if (isDemo() && _deathReason == kPlayerWonGame) {
+ Video::TheoraDecoder decoder;
+
+ if (decoder.loadFile("Images/Demo TSA/DemoClosing.ogg")) {
+ decoder.start();
+ playMovieScaled(&decoder, 0, 0);
+ }
+ }
+#endif
+
_gfx->doFadeOutSync();
throwAwayEverything();
useMenu(new DeathMenu(_deathReason));
@@ -1591,6 +1610,16 @@ void PegasusEngine::startNewGame() {
GameState.setPrehistoricSeenFlyer2(false);
GameState.setPrehistoricSeenBridgeZoom(false);
GameState.setPrehistoricBreakerThrown(false);
+
+#ifdef USE_THEORADEC
+ // The updated demo has a new Theora video for the closing
+ Video::TheoraDecoder decoder;
+
+ if (decoder.loadFile("Images/Demo TSA/DemoOpening.ogg")) {
+ decoder.start();
+ playMovieScaled(&decoder, 0, 0);
+ }
+#endif
} else {
jumpToNewEnvironment(kCaldoriaID, kCaldoria00, kEast);
}
Commit: 2ea09d1191463e471bd6dc5edcf0cb7fed30125d
https://github.com/scummvm/scummvm/commit/2ea09d1191463e471bd6dc5edcf0cb7fed30125d
Author: Matthew Hoops (clone2727 at gmail.com)
Date: 2013-04-16T18:53:18-07:00
Commit Message:
PEGASUS: Add detection for the new DVD Demo data file
Changed paths:
engines/pegasus/detection.cpp
engines/pegasus/pegasus.h
diff --git a/engines/pegasus/detection.cpp b/engines/pegasus/detection.cpp
index ba63114..8f0fa8e 100644
--- a/engines/pegasus/detection.cpp
+++ b/engines/pegasus/detection.cpp
@@ -35,6 +35,10 @@ struct PegasusGameDescription {
ADGameDescription desc;
};
+enum {
+ GF_DVD = (1 << 1)
+};
+
bool PegasusEngine::hasFeature(EngineFeature f) const {
return
(f == kSupportsRTL)
@@ -46,6 +50,14 @@ bool PegasusEngine::isDemo() const {
return (_gameDescription->desc.flags & ADGF_DEMO) != 0;
}
+bool PegasusEngine::isDVD() const {
+ return (_gameDescription->desc.flags & GF_DVD) != 0;
+}
+
+bool PegasusEngine::isDVDDemo() const {
+ return isDemo() && isDVD();
+}
+
} // End of namespace Pegasus
static const PlainGameDescriptor pegasusGames[] = {
@@ -76,7 +88,19 @@ static const PegasusGameDescription gameDescriptions[] = {
AD_ENTRY1s("JMP PP Resources", "d13a602d2498010d720a6534f097f88b", 360129),
Common::EN_ANY,
Common::kPlatformMacintosh,
- ADGF_MACRESFORK|ADGF_DEMO,
+ ADGF_MACRESFORK | ADGF_DEMO,
+ GUIO1(GUIO_NOLAUNCHLOAD)
+ },
+ },
+
+ {
+ {
+ "pegasus",
+ "DVD Demo",
+ AD_ENTRY1s("JMP PP Resources", "d0fcda50dc75c7a81ae314e6a813f4d2", 93495),
+ Common::EN_ANY,
+ Common::kPlatformMacintosh,
+ ADGF_MACRESFORK | ADGF_DEMO | GF_DVD,
GUIO1(GUIO_NOLAUNCHLOAD)
},
},
diff --git a/engines/pegasus/pegasus.h b/engines/pegasus/pegasus.h
index 246414a..e544517 100644
--- a/engines/pegasus/pegasus.h
+++ b/engines/pegasus/pegasus.h
@@ -95,6 +95,8 @@ public:
// Misc.
bool isDemo() const;
+ bool isDVD() const;
+ bool isDVDDemo() const;
void addIdler(Idler *idler);
void removeIdler(Idler *idler);
void addTimeBase(TimeBase *timeBase);
Commit: bd6a8f37d51cbd4bb406ee3cdc2577c9ac94adff
https://github.com/scummvm/scummvm/commit/bd6a8f37d51cbd4bb406ee3cdc2577c9ac94adff
Author: Matthew Hoops (clone2727 at gmail.com)
Date: 2013-04-16T18:53:25-07:00
Commit Message:
PEGASUS: Add support for PICT cursors
Changed paths:
engines/pegasus/cursor.cpp
diff --git a/engines/pegasus/cursor.cpp b/engines/pegasus/cursor.cpp
index 5babdf3..897d31d 100644
--- a/engines/pegasus/cursor.cpp
+++ b/engines/pegasus/cursor.cpp
@@ -82,8 +82,14 @@ void Cursor::setCurrentFrameIndex(int32 index) {
_index = index;
if (index != -1) {
loadCursorImage(_info[index]);
- CursorMan.replaceCursorPalette(_info[index].palette, 0, _info[index].colorCount);
- CursorMan.replaceCursor((byte *)_info[index].surface->pixels, _info[index].surface->w, _info[index].surface->h, _info[index].hotspot.x, _info[index].hotspot.y, 0);
+
+ if (_info[index].surface->format.bytesPerPixel == 1) {
+ CursorMan.replaceCursorPalette(_info[index].palette, 0, _info[index].colorCount);
+ CursorMan.replaceCursor(_info[index].surface->pixels, _info[index].surface->w, _info[index].surface->h, _info[index].hotspot.x, _info[index].hotspot.y, 0);
+ } else {
+ CursorMan.replaceCursor(_info[index].surface->pixels, _info[index].surface->w, _info[index].surface->h, _info[index].hotspot.x, _info[index].hotspot.y, _info[index].surface->format.RGBToColor(0xFF, 0xFF, 0xFF), false, &_info[index].surface->format);
+ }
+
((PegasusEngine *)g_engine)->_gfx->markCursorAsDirty();
}
}
@@ -135,9 +141,25 @@ void Cursor::loadCursorImage(CursorInfo &cursorInfo) {
if (cursorInfo.surface)
return;
+ PegasusEngine *vm = (PegasusEngine *)g_engine;
+
+ if (vm->isDVD()) {
+ // The DVD version has some higher color PICT images for its cursors
+ Common::SeekableReadStream *pictStream = vm->_resFork->getResource(MKTAG('P', 'I', 'C', 'T'), cursorInfo.tag + 1000);
+
+ if (pictStream) {
+ Graphics::PICTDecoder pict;
+ if (!pict.loadStream(*pictStream))
+ error("Failed to decode cursor PICT %d", cursorInfo.tag + 1000);
+
+ cursorInfo.surface = pict.getSurface()->convertTo(g_system->getScreenFormat());
+ delete pictStream;
+ return;
+ }
+ }
+
cursorInfo.surface = new Graphics::Surface();
- PegasusEngine *vm = (PegasusEngine *)g_engine;
Common::SeekableReadStream *cicnStream = vm->_resFork->getResource(MKTAG('c', 'i', 'c', 'n'), cursorInfo.tag);
if (!cicnStream)
Commit: 06cd644a9e1a697fb5ab36e80f53f8417aa35455
https://github.com/scummvm/scummvm/commit/06cd644a9e1a697fb5ab36e80f53f8417aa35455
Author: Matthew Hoops (clone2727 at gmail.com)
Date: 2013-04-16T18:53:29-07:00
Commit Message:
PEGASUS: Add new Prehistoric sounds for the DVD demo
Changed paths:
engines/pegasus/neighborhood/prehistoric/prehistoric.cpp
diff --git a/engines/pegasus/neighborhood/prehistoric/prehistoric.cpp b/engines/pegasus/neighborhood/prehistoric/prehistoric.cpp
index 814d771..5dbddb4 100644
--- a/engines/pegasus/neighborhood/prehistoric/prehistoric.cpp
+++ b/engines/pegasus/neighborhood/prehistoric/prehistoric.cpp
@@ -402,9 +402,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 +420,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 +433,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 +480,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;
}
}
Commit: 8fb73dd2c39396dcd1a5c1049011f277a83b177a
https://github.com/scummvm/scummvm/commit/8fb73dd2c39396dcd1a5c1049011f277a83b177a
Author: Matthew Hoops (clone2727 at gmail.com)
Date: 2013-04-16T18:53:34-07:00
Commit Message:
PEGASUS: Clean up DVD demo Theora playback
Changed paths:
engines/pegasus/pegasus.cpp
diff --git a/engines/pegasus/pegasus.cpp b/engines/pegasus/pegasus.cpp
index 1441ff4..463e81e 100644
--- a/engines/pegasus/pegasus.cpp
+++ b/engines/pegasus/pegasus.cpp
@@ -1396,10 +1396,11 @@ void PegasusEngine::die(const DeathReason reason) {
void PegasusEngine::doDeath() {
#ifdef USE_THEORADEC
// The updated demo has a new Theora video for the closing
- if (isDemo() && _deathReason == kPlayerWonGame) {
+ if (isDVDDemo() && _deathReason == kPlayerWonGame) {
Video::TheoraDecoder decoder;
if (decoder.loadFile("Images/Demo TSA/DemoClosing.ogg")) {
+ throwAwayEverything();
decoder.start();
playMovieScaled(&decoder, 0, 0);
}
@@ -1612,12 +1613,14 @@ void PegasusEngine::startNewGame() {
GameState.setPrehistoricBreakerThrown(false);
#ifdef USE_THEORADEC
- // The updated demo has a new Theora video for the closing
- Video::TheoraDecoder decoder;
+ if (isDVD()) {
+ // The updated demo has a new Theora video for the closing
+ Video::TheoraDecoder decoder;
- if (decoder.loadFile("Images/Demo TSA/DemoOpening.ogg")) {
- decoder.start();
- playMovieScaled(&decoder, 0, 0);
+ if (decoder.loadFile("Images/Demo TSA/DemoOpening.ogg")) {
+ decoder.start();
+ playMovieScaled(&decoder, 0, 0);
+ }
}
#endif
} else {
Commit: c99f3213deffe820d9e178a89629eae63cac3972
https://github.com/scummvm/scummvm/commit/c99f3213deffe820d9e178a89629eae63cac3972
Author: Matthew Hoops (clone2727 at gmail.com)
Date: 2013-04-16T18:53:39-07:00
Commit Message:
PEGASUS: Let the DVD demo use the full Prehistoric AI video set
Changed paths:
engines/pegasus/detection.cpp
engines/pegasus/neighborhood/prehistoric/prehistoric.cpp
engines/pegasus/pegasus.h
diff --git a/engines/pegasus/detection.cpp b/engines/pegasus/detection.cpp
index 8f0fa8e..071db4d 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 5dbddb4..d62b069 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 e544517..5a95350 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);
Commit: 918920b47a85934ef94b3b2409a121617af6ca2e
https://github.com/scummvm/scummvm/commit/918920b47a85934ef94b3b2409a121617af6ca2e
Author: Matthew Hoops (clone2727 at gmail.com)
Date: 2013-04-16T18:53:43-07:00
Commit Message:
PEGASUS: Add DVD raise/lower sounds for the inventory/biochip panels
Thanks to Keith Kaisershot (blitter)
Changed paths:
engines/pegasus/interface.cpp
engines/pegasus/interface.h
diff --git a/engines/pegasus/interface.cpp b/engines/pegasus/interface.cpp
index d9d3865..f2429bf 100644
--- a/engines/pegasus/interface.cpp
+++ b/engines/pegasus/interface.cpp
@@ -186,6 +186,11 @@ void Interface::validateInventoryPanel() {
_inventoryLid.setDisplayOrder(kInventoryLidOrder);
_inventoryLid.startDisplaying();
+ if (((PegasusEngine *)g_engine)->isDVD()) {
+ _inventoryOpenSound.initFromAIFFFile("Sounds/Items/Inventory Panel Open.aif");
+ _inventoryCloseSound.initFromAIFFFile("Sounds/Items/Inventory Panel Close.aif");
+ }
+
_inventoryPushCallBack.initCallBack(&_inventoryPush, kCallBackAtExtremes);
_inventoryLidCallBack.initCallBack(&_inventoryLid, kCallBackAtExtremes);
@@ -231,6 +236,11 @@ void Interface::validateBiochipPanel() {
_biochipLid.setDisplayOrder(kBiochipLidOrder);
_biochipLid.startDisplaying();
+ if (((PegasusEngine *)g_engine)->isDVD()) {
+ _biochipOpenSound.initFromAIFFFile("Sounds/Items/Biochip Panel Open.aif");
+ _biochipCloseSound.initFromAIFFFile("Sounds/Items/Biochip Panel Close.aif");
+ }
+
_biochipPushCallBack.initCallBack(&_biochipPush, kCallBackAtExtremes);
_biochipLidCallBack.initCallBack(&_biochipLid, kCallBackAtExtremes);
@@ -385,6 +395,11 @@ void Interface::raiseInventoryDrawer(const bool doCallBacks) {
_inventoryLid.show();
_inventoryPush.show();
_inventoryLid.start();
+
+ if (((PegasusEngine *)g_engine)->isDVD()) {
+ _inventoryCloseSound.stopSound();
+ _inventoryOpenSound.playSound();
+ }
}
void Interface::playEndMessage() {
@@ -446,6 +461,11 @@ void Interface::lowerInventoryDrawer(const bool doCallBacks) {
FaderMoveSpec moveSpec;
moveSpec.makeTwoKnotFaderSpec(60, 0, 1000, 15, 0);
_inventoryPush.startFader(moveSpec);
+
+ if (((PegasusEngine *)g_engine)->isDVD()) {
+ _inventoryOpenSound.stopSound();
+ _inventoryCloseSound.playSound();
+ }
}
}
@@ -487,6 +507,11 @@ void Interface::raiseBiochipDrawer(const bool doCallBacks) {
_biochipLid.show();
_biochipPush.show();
_biochipLid.start();
+
+ if (((PegasusEngine *)g_engine)->isDVD()) {
+ _biochipCloseSound.stopSound();
+ _biochipOpenSound.playSound();
+ }
}
void Interface::biochipLidOpen(const bool doCallBacks) {
@@ -521,6 +546,11 @@ void Interface::lowerBiochipDrawer(const bool doCallBacks) {
FaderMoveSpec moveSpec;
moveSpec.makeTwoKnotFaderSpec(60, 0, 1000, 9, 0);
_biochipPush.startFader(moveSpec);
+
+ if (((PegasusEngine *)g_engine)->isDVD()) {
+ _biochipOpenSound.stopSound();
+ _biochipCloseSound.playSound();
+ }
}
}
diff --git a/engines/pegasus/interface.h b/engines/pegasus/interface.h
index a65d9a5..5f04f98 100644
--- a/engines/pegasus/interface.h
+++ b/engines/pegasus/interface.h
@@ -29,6 +29,7 @@
#include "pegasus/hotspot.h"
#include "pegasus/input.h"
#include "pegasus/notification.h"
+#include "pegasus/sound.h"
#include "pegasus/surface.h"
#include "pegasus/transition.h"
#include "pegasus/items/inventorypicture.h"
@@ -125,6 +126,7 @@ protected:
NotificationCallBack _inventoryLidCallBack;
InventoryItemsPicture _inventoryPanel;
bool _inventoryUp, _inventoryRaised;
+ Sound _inventoryOpenSound, _inventoryCloseSound;
Push _biochipPush;
SpriteSequence _biochipLid;
@@ -132,6 +134,7 @@ protected:
NotificationCallBack _biochipLidCallBack;
BiochipPicture _biochipPanel;
bool _biochipUp, _biochipRaised;
+ Sound _biochipOpenSound, _biochipCloseSound;
Hotspot _currentItemSpot;
Hotspot _currentBiochipSpot;
Commit: 5c5b19a77b10e5f9b5c476f02e74da2d33b8fd6f
https://github.com/scummvm/scummvm/commit/5c5b19a77b10e5f9b5c476f02e74da2d33b8fd6f
Author: Matthew Hoops (clone2727 at gmail.com)
Date: 2013-04-16T18:53:51-07:00
Commit Message:
PEGASUS: Add Windows demo support
Changed paths:
engines/pegasus/detection.cpp
engines/pegasus/menu.cpp
engines/pegasus/pegasus.h
diff --git a/engines/pegasus/detection.cpp b/engines/pegasus/detection.cpp
index 071db4d..721c382 100644
--- a/engines/pegasus/detection.cpp
+++ b/engines/pegasus/detection.cpp
@@ -62,6 +62,10 @@ bool PegasusEngine::isOldDemo() const {
return isDemo() && !isDVD();
}
+bool PegasusEngine::isWindows() const {
+ return _gameDescription->desc.platform == Common::kPlatformWindows;
+}
+
} // End of namespace Pegasus
static const PlainGameDescriptor pegasusGames[] = {
@@ -109,6 +113,18 @@ static const PegasusGameDescription gameDescriptions[] = {
},
},
+ {
+ {
+ "pegasus",
+ "DVD Demo",
+ AD_ENTRY1s("JMP PP Resources", "d0fcda50dc75c7a81ae314e6a813f4d2", 93495),
+ Common::EN_ANY,
+ Common::kPlatformWindows,
+ ADGF_MACRESFORK | ADGF_DEMO | GF_DVD,
+ GUIO1(GUIO_NOLAUNCHLOAD)
+ },
+ },
+
{ AD_TABLE_END_MARKER }
};
diff --git a/engines/pegasus/menu.cpp b/engines/pegasus/menu.cpp
index deaa460..e55c006 100644
--- a/engines/pegasus/menu.cpp
+++ b/engines/pegasus/menu.cpp
@@ -149,10 +149,14 @@ MainMenu::MainMenu() : GameMenu(kMainMenuID), _menuBackground(0), _overviewButto
bool isDemo = ((PegasusEngine *)g_engine)->isDemo();
- if (isDemo)
- _menuBackground.initFromPICTFile("Images/Demo/DemoMenu.pict");
- else
+ if (isDemo) {
+ if (((PegasusEngine *)g_engine)->isWindows())
+ _menuBackground.initFromPICTFile("Images/Demo/DemoMenuPC.pict");
+ else
+ _menuBackground.initFromPICTFile("Images/Demo/DemoMenu.pict");
+ } else {
_menuBackground.initFromPICTFile("Images/Main Menu/MainMenu.mac");
+ }
_menuBackground.setDisplayOrder(0);
_menuBackground.startDisplaying();
_menuBackground.show();
diff --git a/engines/pegasus/pegasus.h b/engines/pegasus/pegasus.h
index 5a95350..07e6d8f 100644
--- a/engines/pegasus/pegasus.h
+++ b/engines/pegasus/pegasus.h
@@ -98,6 +98,7 @@ public:
bool isDVD() const;
bool isDVDDemo() const;
bool isOldDemo() const;
+ bool isWindows() const;
void addIdler(Idler *idler);
void removeIdler(Idler *idler);
void addTimeBase(TimeBase *timeBase);
More information about the Scummvm-git-logs
mailing list