[Scummvm-git-logs] scummvm master -> 9f344b99e6b07a167a58e5934347f79f75168aaa
sev-
sev at scummvm.org
Mon Aug 24 21:54:14 UTC 2020
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
886e3544e3 BBVS: Support for the Loogie demo
9f344b99e6 NEWS: Mention BBVS Loogie minigame demo support
Commit: 886e3544e36fa23f41c177059999dab2f02b5710
https://github.com/scummvm/scummvm/commit/886e3544e36fa23f41c177059999dab2f02b5710
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-24T23:52:38+02:00
Commit Message:
BBVS: Support for the Loogie demo
Changed paths:
engines/bbvs/bbvs.cpp
engines/bbvs/bbvs.h
engines/bbvs/detection.cpp
engines/bbvs/minigames/bbloogie.cpp
engines/bbvs/minigames/bbloogie.h
diff --git a/engines/bbvs/bbvs.cpp b/engines/bbvs/bbvs.cpp
index 8d65a54e47..e0d9f36787 100644
--- a/engines/bbvs/bbvs.cpp
+++ b/engines/bbvs/bbvs.cpp
@@ -177,6 +177,20 @@ Common::Error BbvsEngine::run() {
_spriteModule = new SpriteModule();
_sound = new SoundMan();
+ if (isLoogieDemo()) {
+ Minigame *minigame = new MinigameBbLoogie(this);
+
+ minigame->run(true);
+
+ delete minigame;
+ delete _sound;
+ delete _spriteModule;
+ delete _gameModule;
+ delete _screen;
+
+ return Common::kNoError;
+ }
+
allocSnapshot();
newGame();
diff --git a/engines/bbvs/bbvs.h b/engines/bbvs/bbvs.h
index 1d8cfa3c60..84dee3a2b9 100644
--- a/engines/bbvs/bbvs.h
+++ b/engines/bbvs/bbvs.h
@@ -229,6 +229,8 @@ public:
const Common::String getTargetName() { return _targetName; }
const ADGameDescription *_gameDescription;
+ bool isLoogieDemo() const;
+
private:
Graphics::PixelFormat _pixelFormat;
diff --git a/engines/bbvs/detection.cpp b/engines/bbvs/detection.cpp
index 4cae78e4cc..ddbf173384 100644
--- a/engines/bbvs/detection.cpp
+++ b/engines/bbvs/detection.cpp
@@ -34,8 +34,16 @@ static const PlainGameDescriptor bbvsGames[] = {
{ 0, 0 }
};
+enum BBVSGameFeatures {
+ GF_LOOGIE_DEMO = (1 << 0)
+};
+
namespace Bbvs {
+bool BbvsEngine::isLoogieDemo() const {
+ return _gameDescription->flags & GF_LOOGIE_DEMO;
+}
+
static const ADGameDescription gameDescriptions[] = {
{
"bbvs",
@@ -46,6 +54,7 @@ static const ADGameDescription gameDescriptions[] = {
ADGF_DROPPLATFORM,
GUIO1(GUIO_NOMIDI)
},
+
{
"bbvs",
"Demo",
@@ -55,6 +64,17 @@ static const ADGameDescription gameDescriptions[] = {
ADGF_DEMO | ADGF_DROPPLATFORM,
GUIO1(GUIO_NOMIDI)
},
+
+ {
+ "bbvs",
+ "Loogie Demo",
+ AD_ENTRY1s("BBLOOGIE.000", "607d3bf55ec6458dce484473b1eecb4d", 324416),
+ Common::EN_ANY,
+ Common::kPlatformWindows,
+ GF_LOOGIE_DEMO | ADGF_DEMO | ADGF_DROPPLATFORM,
+ GUIO1(GUIO_NOMIDI)
+ },
+
{
"bbvs",
0,
diff --git a/engines/bbvs/minigames/bbloogie.cpp b/engines/bbvs/minigames/bbloogie.cpp
index b7c5cd6eb4..6e45c16faf 100644
--- a/engines/bbvs/minigames/bbloogie.cpp
+++ b/engines/bbvs/minigames/bbloogie.cpp
@@ -1310,6 +1310,12 @@ void MinigameBbLoogie::playRndSound() {
bool MinigameBbLoogie::run(bool fromMainGame) {
+ if (!_vm->isLoogieDemo()) {
+ Common::strlcpy(_prefix, "bbloogie/", 20);
+ } else {
+ _prefix[0] = 0;
+ }
+
memset(_objects, 0, sizeof(_objects));
_numbersAnim = getAnimation(9);
@@ -1336,7 +1342,7 @@ bool MinigameBbLoogie::run(bool fromMainGame) {
initVars();
_spriteModule = new SpriteModule();
- _spriteModule->load("bbloogie/bbloogie.000");
+ _spriteModule->load(Common::String::format("%sbbloogie.000", _prefix).c_str());
Palette palette = _spriteModule->getPalette();
_vm->_screen->setPalette(palette);
@@ -1399,12 +1405,12 @@ void MinigameBbLoogie::update() {
void MinigameBbLoogie::loadSounds() {
if (_vm->_gameDescription->flags & ADGF_DEMO) {
for (uint i = 0; i < kDemoSoundFilenamesCount; ++i) {
- Common::String filename = Common::String::format("bbloogie/%s", kDemoSoundFilenames[i]);
+ Common::String filename = Common::String::format("%s%s", _prefix, 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]);
+ Common::String filename = Common::String::format("%s%s", _prefix, kSoundFilenames[i]);
_vm->_sound->loadSound(filename.c_str());
}
}
diff --git a/engines/bbvs/minigames/bbloogie.h b/engines/bbvs/minigames/bbloogie.h
index 3570d69929..4a275dcfe8 100644
--- a/engines/bbvs/minigames/bbloogie.h
+++ b/engines/bbvs/minigames/bbloogie.h
@@ -82,6 +82,8 @@ public:
int _principalCtr, _principalFirstFrameIndex, _principalLastFrameIndex;
bool _principalAngry;
+ char _prefix[20];
+
const ObjAnimation *getAnimation(int animIndex);
void buildDrawList(DrawList &drawList);
Commit: 9f344b99e6b07a167a58e5934347f79f75168aaa
https://github.com/scummvm/scummvm/commit/9f344b99e6b07a167a58e5934347f79f75168aaa
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-24T23:53:50+02:00
Commit Message:
NEWS: Mention BBVS Loogie minigame demo support
Changed paths:
NEWS.md
diff --git a/NEWS.md b/NEWS.md
index e3c0a638ce..afee65e5bc 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -29,6 +29,7 @@ For a more comprehensive changelog of the latest experimental code, see:
BBVS:
- Added support for the demo, available from our website.
+ - Added support for the Loogie minigame demo.
Dreamweb:
- Added support for Russian fan-translation.
More information about the Scummvm-git-logs
mailing list