[Scummvm-git-logs] scummvm master -> f01c5321c4d553153a60160d06489000acf29936
aquadran
noreply at scummvm.org
Mon Dec 20 22:18:40 UTC 2021
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:
f01c5321c4 STARK: Don't exit immediately if modded assets are enabled but not supported
Commit: f01c5321c4d553153a60160d06489000acf29936
https://github.com/scummvm/scummvm/commit/f01c5321c4d553153a60160d06489000acf29936
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2021-12-20T23:18:36+01:00
Commit Message:
STARK: Don't exit immediately if modded assets are enabled but not supported
Changed paths:
engines/stark/gfx/driver.cpp
engines/stark/gfx/driver.h
engines/stark/gfx/tinygl.h
engines/stark/resources/anim.cpp
engines/stark/resources/image.cpp
engines/stark/resources/textureset.cpp
engines/stark/stark.cpp
diff --git a/engines/stark/gfx/driver.cpp b/engines/stark/gfx/driver.cpp
index 6ed48d54fc..96c0c29ada 100644
--- a/engines/stark/gfx/driver.cpp
+++ b/engines/stark/gfx/driver.cpp
@@ -80,10 +80,6 @@ Driver *Driver::create() {
#endif
#if defined(USE_TINYGL)
if (matchingRendererType == Graphics::kRendererTypeTinyGL) {
- if (StarkSettings->isAssetsModEnabled()) {
- GUI::displayErrorDialog(Common::U32String::format(_("Software renderer does not support modded assets")));
- return nullptr;
- }
driver = new TinyGLDriver();
}
#endif
diff --git a/engines/stark/gfx/driver.h b/engines/stark/gfx/driver.h
index 6f68b188ef..1407b254fd 100644
--- a/engines/stark/gfx/driver.h
+++ b/engines/stark/gfx/driver.h
@@ -141,6 +141,8 @@ public:
virtual void set3DMode() = 0;
virtual bool computeLightsEnabled() = 0;
+ virtual bool supportsModdedAssets() const { return true; }
+
static const int32 kOriginalWidth = 640;
static const int32 kOriginalHeight = 480;
diff --git a/engines/stark/gfx/tinygl.h b/engines/stark/gfx/tinygl.h
index 6384c571aa..1bc59bb79d 100644
--- a/engines/stark/gfx/tinygl.h
+++ b/engines/stark/gfx/tinygl.h
@@ -66,6 +66,8 @@ public:
Graphics::Surface *getViewportScreenshot() const override;
+ bool supportsModdedAssets() const override { return false; }
+
private:
Common::Rect _viewport;
Common::Rect _unscaledViewport;
diff --git a/engines/stark/resources/anim.cpp b/engines/stark/resources/anim.cpp
index 0b65db1102..21e1d18470 100644
--- a/engines/stark/resources/anim.cpp
+++ b/engines/stark/resources/anim.cpp
@@ -328,7 +328,7 @@ void AnimVideo::onAllLoaded() {
Common::SeekableReadStream *overrideStreamBink = nullptr;
Common::SeekableReadStream *overrideStreamSmacker = nullptr;
- if (StarkSettings->isAssetsModEnabled()) {
+ if (StarkSettings->isAssetsModEnabled() && StarkGfx->supportsModdedAssets()) {
overrideStreamBink = openOverrideFile(".bik");
if (!overrideStreamBink) {
overrideStreamSmacker = openOverrideFile(".smk");
diff --git a/engines/stark/resources/image.cpp b/engines/stark/resources/image.cpp
index db4e70ca09..d95675f8b1 100644
--- a/engines/stark/resources/image.cpp
+++ b/engines/stark/resources/image.cpp
@@ -27,6 +27,7 @@
#include "engines/stark/debug.h"
#include "engines/stark/formats/xrc.h"
+#include "engines/stark/gfx/driver.h"
#include "engines/stark/resources/location.h"
#include "engines/stark/services/archiveloader.h"
#include "engines/stark/services/settings.h"
@@ -216,7 +217,7 @@ void ImageStill::initVisual() {
VisualImageXMG *visual = new VisualImageXMG(StarkGfx);
- if (StarkSettings->isAssetsModEnabled() && loadPNGOverride(visual)) {
+ if (StarkSettings->isAssetsModEnabled() && StarkGfx->supportsModdedAssets() && loadPNGOverride(visual)) {
visual->readOriginalSize(xmgStream);
} else {
visual->load(xmgStream);
diff --git a/engines/stark/resources/textureset.cpp b/engines/stark/resources/textureset.cpp
index f5f91d4189..65cb0ebf03 100644
--- a/engines/stark/resources/textureset.cpp
+++ b/engines/stark/resources/textureset.cpp
@@ -62,7 +62,7 @@ void TextureSet::readData(Formats::XRCReadStream *stream) {
}
void TextureSet::onPostRead() {
- if (StarkSettings->isAssetsModEnabled()) {
+ if (StarkSettings->isAssetsModEnabled() && StarkGfx->supportsModdedAssets()) {
_textureSet = readOverrideDdsArchive();
}
diff --git a/engines/stark/stark.cpp b/engines/stark/stark.cpp
index 684cead78b..8cd8bc0ea9 100644
--- a/engines/stark/stark.cpp
+++ b/engines/stark/stark.cpp
@@ -56,6 +56,7 @@
#include "engines/advancedDetector.h"
#include "graphics/renderer.h"
#include "graphics/framelimiter.h"
+#include "gui/error.h"
#include "gui/message.h"
namespace Stark {
@@ -102,6 +103,10 @@ Common::Error StarkEngine::run() {
return Common::kNoError;
gfx->init();
+ if (StarkSettings->isAssetsModEnabled() && !gfx->supportsModdedAssets()) {
+ GUI::displayErrorDialog(_("Software renderer does not support modded assets"));
+ }
+
checkRecommendedDatafiles();
// Setup the public services
More information about the Scummvm-git-logs
mailing list