[Scummvm-git-logs] scummvm branch-2-5 -> 19cfc6195635fdd83952447b3dd90803ce955e5e

aquadran noreply at scummvm.org
Mon Dec 20 22:58:21 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:
19cfc61956 STARK: Don't exit immediately if modded assets are enabled but not supported


Commit: 19cfc6195635fdd83952447b3dd90803ce955e5e
    https://github.com/scummvm/scummvm/commit/19cfc6195635fdd83952447b3dd90803ce955e5e
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2021-12-20T23:58:14+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 f7b2cf9785..52b1c7eea4 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 13cdea042d..2826cf3ef0 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 34a01d197c..7936af7b25 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 18ded26727..770d1e3f56 100644
--- a/engines/stark/stark.cpp
+++ b/engines/stark/stark.cpp
@@ -56,6 +56,7 @@
 #include "common/translation.h"
 #include "engines/advancedDetector.h"
 #include "graphics/renderer.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