[Scummvm-git-logs] scummvm master -> fd55d27f6d561a110258dc2661436a3fdd3fb84e

sev- sev at scummvm.org
Sun Aug 23 20:18:33 UTC 2020


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
fd55d27f6d BBVS: Add support for the demo version


Commit: fd55d27f6d561a110258dc2661436a3fdd3fb84e
    https://github.com/scummvm/scummvm/commit/fd55d27f6d561a110258dc2661436a3fdd3fb84e
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2020-08-23T22:18:30+02:00

Commit Message:
BBVS: Add support for the demo version

Changed paths:
    engines/bbvs/detection.cpp
    engines/bbvs/minigames/bbloogie.cpp
    engines/bbvs/scene.cpp


diff --git a/engines/bbvs/detection.cpp b/engines/bbvs/detection.cpp
index ae0b499c25..aadbe7394c 100644
--- a/engines/bbvs/detection.cpp
+++ b/engines/bbvs/detection.cpp
@@ -46,6 +46,15 @@ static const ADGameDescription gameDescriptions[] = {
 		ADGF_NO_FLAGS,
 		GUIO1(GUIO_NOMIDI)
 	},
+	{
+		"bbvs",
+		0,
+		AD_ENTRY1s("vspr0007.vnm", "5db44940fa93fdd5becb5c2a5ded7478", 242376),
+		Common::EN_ANY,
+		Common::kPlatformWindows,
+		ADGF_DEMO,
+		GUIO1(GUIO_NOMIDI)
+	},
 	{
 		"bbvs",
 		0,
diff --git a/engines/bbvs/minigames/bbloogie.cpp b/engines/bbvs/minigames/bbloogie.cpp
index c437608f1a..b7c5cd6eb4 100644
--- a/engines/bbvs/minigames/bbloogie.cpp
+++ b/engines/bbvs/minigames/bbloogie.cpp
@@ -22,6 +22,8 @@
 
 #include "bbvs/minigames/bbloogie.h"
 
+#include "engines/advancedDetector.h"
+
 namespace Bbvs {
 
 static const int kLoogieOffY[16] = {
@@ -88,6 +90,18 @@ static const char * const kSoundFilenames[] = {
 
 static const uint kSoundFilenamesCount = ARRAYSIZE(kSoundFilenames);
 
+static const char * const kDemoSoundFilenames[] = {
+	"loog1.aif", "loog2.aif", "loog3.aif", "loog4.aif", "loog5.aif",
+	"loog6.aif", "loog7.aif", "loog8.aif", "loog9.aif", "loog10.aif",
+	"loog11.aif", "loog12.aif", "loog13.aif", "loog14.aif", "loog15.aif",
+	"loog16.aif", "loog17.aif", "loog18.aif", "loog19.aif", "loog20.aif",
+	"loog21.aif", "loog22.aif", "loog23.aif", "loog24.aif", "loog25.aif",
+	"loog26.aif", "loog27.aif", "meghoker.aif", "spit1.aif", "megaloog.aif",
+	"megaspit.aif", "rocktune.aif", "bing.aif"
+};
+
+static const uint kDemoSoundFilenamesCount = ARRAYSIZE(kDemoSoundFilenames);
+
 void MinigameBbLoogie::buildDrawList(DrawList &drawList) {
 	switch (_gameState) {
 	case kGSTitleScreen:
@@ -454,6 +468,10 @@ bool MinigameBbLoogie::updateStatus0(int mouseX, int mouseY, uint mouseButtons)
 		_objects[2].kind = 1;
 	}
 
+	if (_vm->_gameDescription->flags & ADGF_DEMO) {
+		_objects[0].frameIndex = 0;
+	}
+
 	for (int i = 0; i < kMaxObjectsCount; ++i) {
 		Obj *obj = &_objects[i];
 		if (obj->kind == 11) {
@@ -558,7 +576,9 @@ bool MinigameBbLoogie::updateStatus2(int mouseX, int mouseY, uint mouseButtons)
 	} else if (_bonusDisplayDelay2 > 0) {
 		if (--_bonusDisplayDelay2 == 0) {
 			_bonusDisplayDelay3 = 150;
-			playSound(38);
+			if (!(_vm->_gameDescription->flags & ADGF_DEMO)) {
+				playSound(38);
+			}
 		} else if (_timeBonusCtr > 0) {
 			++_bonusDisplayDelay2;
 			++_levelTimeLeft;
@@ -870,7 +890,9 @@ void MinigameBbLoogie::updateCar(int objIndex) {
 				loogieObj->ticks = getAnimation(5)->frameTicks[12];
 				obj->frameIndex = 4;
 				obj->ticks = getAnimation(2)->frameTicks[4];
-				playSound(34);
+				if (!(_vm->_gameDescription->flags & ADGF_DEMO)) {
+					playSound(34);
+				}
 				playRndSound();
 			}
 			loogieObj = findLoogieObj(loogieObjIndex++);
@@ -905,7 +927,9 @@ void MinigameBbLoogie::updateBike(int objIndex) {
 				loogieObj->ticks = getAnimation(5)->frameTicks[12];
 				obj->frameIndex = 4;
 				obj->ticks = getAnimation(3)->frameTicks[4];
-				playSound(35);
+				if (!(_vm->_gameDescription->flags & ADGF_DEMO)) {
+					playSound(35);
+				}
 				playRndSound();
 			}
 			loogieObj = findLoogieObj(loogieObjIndex++);
@@ -940,7 +964,9 @@ void MinigameBbLoogie::updateSquirrel(int objIndex) {
 				obj->x += kSquirrelOffX[obj->frameIndex];
 				obj->frameIndex = obj->frameIndex < 29 ? 54 : 58;
 				obj->ticks = getAnimation(7)->frameTicks[obj->frameIndex];
-				playSound(36);
+				if (!(_vm->_gameDescription->flags & ADGF_DEMO)) {
+					playSound(36);
+				}
 				playRndSound();
 			}
 			loogieObj = findLoogieObj(loogieObjIndex++);
@@ -973,7 +999,9 @@ void MinigameBbLoogie::updatePaperPlane(int objIndex) {
 				obj->frameIndex = (obj->frameIndex + 1) % 8;
 				obj->xIncr = kPlaneOffX[obj->frameIndex];
 				obj->yIncr = kPlaneOffY[obj->frameIndex];
-				playSound(37);
+				if (!(_vm->_gameDescription->flags & ADGF_DEMO)) {
+					playSound(37);
+				}
 				playRndSound();
 			}
 			loogieObj = findLoogieObj(loogieObjIndex++);
@@ -1286,8 +1314,13 @@ bool MinigameBbLoogie::run(bool fromMainGame) {
 
 	_numbersAnim = getAnimation(9);
 
-	_backgroundSpriteIndex = 210;
-	_titleScreenSpriteIndex = 211;
+	if (_vm->_gameDescription->flags & ADGF_DEMO) {
+		_backgroundSpriteIndex = 209;
+		_titleScreenSpriteIndex = 210;
+	} else {
+		_backgroundSpriteIndex = 210;
+		_titleScreenSpriteIndex = 211;
+	}
 
 	_fromMainGame = fromMainGame;
 
@@ -1364,9 +1397,16 @@ void MinigameBbLoogie::update() {
 }
 
 void MinigameBbLoogie::loadSounds() {
-	for (uint i = 0; i < kSoundFilenamesCount; ++i) {
-		Common::String filename = Common::String::format("bbloogie/%s", kSoundFilenames[i]);
-		_vm->_sound->loadSound(filename.c_str());
+	if (_vm->_gameDescription->flags & ADGF_DEMO) {
+		for (uint i = 0; i < kDemoSoundFilenamesCount; ++i) {
+			Common::String filename = Common::String::format("bbloogie/%s", kDemoSoundFilenames[i]);
+			_vm->_sound->loadSound(filename.c_str());
+		}
+	} else {
+		for (uint i = 0; i < kSoundFilenamesCount; ++i) {
+			Common::String filename = Common::String::format("bbloogie/%s", kSoundFilenames[i]);
+			_vm->_sound->loadSound(filename.c_str());
+		}
 	}
 }
 
diff --git a/engines/bbvs/scene.cpp b/engines/bbvs/scene.cpp
index 74bbe0618d..fd4ee136e9 100644
--- a/engines/bbvs/scene.cpp
+++ b/engines/bbvs/scene.cpp
@@ -25,6 +25,8 @@
 #include "bbvs/graphics.h"
 #include "bbvs/sound.h"
 
+#include "engines/advancedDetector.h"
+
 namespace Bbvs {
 
 static const int kAfterVideoSceneNum[] = {
@@ -32,6 +34,11 @@ static const int kAfterVideoSceneNum[] = {
 	16,  4,  4,  4, 44, 12, 44
 };
 
+static const int kAfterVideoSceneNumDemo[] = {
+	 0, 32, 33, 23,  0,  0,  0,
+	 0,  0,  0,  0,  0,  0,  0
+};
+
 void BbvsEngine::loadScene(int sceneNum) {
 	debug(0, "BbvsEngine::loadScene() sceneNum: %d", sceneNum);
 
@@ -208,7 +215,10 @@ bool BbvsEngine::changeScene() {
 		_sceneVisited[_currSceneNum] = 1;
 		_playVideoNumber = _newSceneNum - 30;
 		_currSceneNum = _newSceneNum;
-		_newSceneNum = kAfterVideoSceneNum[_playVideoNumber];
+		if (_gameDescription->flags & ADGF_DEMO)
+			_newSceneNum = kAfterVideoSceneNumDemo[_playVideoNumber];
+		else
+			_newSceneNum = kAfterVideoSceneNum[_playVideoNumber];
 	} else if (_newSceneNum >= 100 && _currSceneNum == kCredits) {
 		// Play secret video
 		stopSounds();




More information about the Scummvm-git-logs mailing list