[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