[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