[Scummvm-git-logs] scummvm master -> 83f5c3d41db9e0ef6fb97dc5fd76df1f1a90e600
bluegr
noreply at scummvm.org
Mon Apr 6 20:40:59 UTC 2026
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
83f5c3d41d PLUMBERS: Return an error code if setting the pixel format fails
Commit: 83f5c3d41db9e0ef6fb97dc5fd76df1f1a90e600
https://github.com/scummvm/scummvm/commit/83f5c3d41db9e0ef6fb97dc5fd76df1f1a90e600
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2026-04-06T23:40:55+03:00
Commit Message:
PLUMBERS: Return an error code if setting the pixel format fails
Changed paths:
engines/plumbers/3do.cpp
engines/plumbers/metaengine.cpp
engines/plumbers/module.mk
engines/plumbers/plumbers.cpp
engines/plumbers/plumbers.h
engines/plumbers/windows.cpp
diff --git a/engines/plumbers/3do.cpp b/engines/plumbers/3do.cpp
index 2b4f7283846..4c1783999c7 100644
--- a/engines/plumbers/3do.cpp
+++ b/engines/plumbers/3do.cpp
@@ -483,14 +483,18 @@ void PlumbersGame3DO::postSceneBitmaps() {
_mouseHiLite = getMouseHiLite();
}
-void PlumbersGame3DO::startGraphics() {
+Common::Error PlumbersGame3DO::startGraphics() {
_image = new Image::Cel3DODecoder();
_ctrlHelpImage = new Image::Cel3DODecoder();
_screenW = 320;
_screenH = 240;
+ // TODO: Let the backend select the pixel format
_targetFormat = Graphics::PixelFormat(2, 5, 6, 5, 0, 11, 5, 0, 0);
initGraphics(_screenW, _screenH, &_targetFormat);
+ if (g_system->getScreenFormat() != _targetFormat)
+ return Common::kUnsupportedColorMode;
+ return Common::kNoError;
}
void PlumbersGame3DO::blitImage() {
diff --git a/engines/plumbers/metaengine.cpp b/engines/plumbers/metaengine.cpp
index 414d777f2a4..5bb96c8ed00 100644
--- a/engines/plumbers/metaengine.cpp
+++ b/engines/plumbers/metaengine.cpp
@@ -44,14 +44,7 @@ class PlumbersMetaEngine : public AdvancedMetaEngine<ADGameDescription> {
Common::Error PlumbersMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const {
if (desc->platform == Common::kPlatform3DO) {
-#ifdef USE_RGB_COLOR
*engine = new Plumbers::PlumbersGame3DO(syst, desc);
-#else
- // I18N: Plumbers is the title of the game. 3DO is the name of platform
- GUI::MessageDialog dialog(_("3DO Plumbers requires RGB support."));
- dialog.runModal();
- return Common::kUnsupportedColorMode;
-#endif
} else
*engine = new Plumbers::PlumbersGameWindows(syst, desc);
return Common::kNoError;
diff --git a/engines/plumbers/module.mk b/engines/plumbers/module.mk
index 11111cad180..48e505d949b 100644
--- a/engines/plumbers/module.mk
+++ b/engines/plumbers/module.mk
@@ -1,15 +1,12 @@
MODULE := engines/plumbers
MODULE_OBJS = \
- plumbers.o \
+ 3do.o \
console.o \
metaengine.o \
+ plumbers.o \
windows.o
-ifdef USE_RGB_COLOR
-MODULE_OBJS += 3do.o
-endif
-
# This module can be built as a plugin
ifeq ($(ENABLE_PLUMBERS), DYNAMIC_PLUGIN)
PLUGIN := 1
diff --git a/engines/plumbers/plumbers.cpp b/engines/plumbers/plumbers.cpp
index a71877ca657..fe53b69fbf7 100644
--- a/engines/plumbers/plumbers.cpp
+++ b/engines/plumbers/plumbers.cpp
@@ -134,7 +134,9 @@ void PlumbersGame::handleEvent(const Common::Event &event) {
}
Common::Error PlumbersGame::run() {
- startGraphics();
+ Common::Error err = startGraphics();
+ if (err.getCode() != Common::kNoError)
+ return err;
_console = new Console();
setDebugger(_console);
diff --git a/engines/plumbers/plumbers.h b/engines/plumbers/plumbers.h
index 4c5aec79a08..db6ff695413 100644
--- a/engines/plumbers/plumbers.h
+++ b/engines/plumbers/plumbers.h
@@ -92,7 +92,7 @@ protected:
virtual bool handlePlatformJoyButton(int button) { return false; }
virtual bool handlePlatformKeyDown(int button) { return false; }
virtual void loadImage(const Common::String &name);
- virtual void startGraphics() = 0;
+ virtual Common::Error startGraphics() = 0;
void blitImageSurface(const Graphics::Surface *surface);
virtual void blitImage();
virtual void handleEvent(const Common::Event &event);
@@ -164,7 +164,7 @@ public:
protected:
void readTables() override;
void postSceneBitmaps() override;
- void startGraphics() override;
+ Common::Error startGraphics() override;
void handleEvent(const Common::Event &event) override;
void blitImage() override;
int getSceneNumb(const Common::String &sName) override;
@@ -195,7 +195,7 @@ protected:
void readTables() override;
void postSceneBitmaps() override;
void loadImage(const Common::String &name) override;
- void startGraphics() override;
+ Common::Error startGraphics() override;
private:
bool _halfSize;
diff --git a/engines/plumbers/windows.cpp b/engines/plumbers/windows.cpp
index b01c7096b4b..702131319a0 100644
--- a/engines/plumbers/windows.cpp
+++ b/engines/plumbers/windows.cpp
@@ -59,7 +59,7 @@ void PlumbersGameWindows::loadImage(const Common::String &name) {
}
}
-void PlumbersGameWindows::startGraphics() {
+Common::Error PlumbersGameWindows::startGraphics() {
_image = new Image::BitmapDecoder();
Graphics::ModeWithFormatList modes = {
@@ -79,6 +79,8 @@ void PlumbersGameWindows::startGraphics() {
_screenW = 320;
_screenH = 240;
}
+
+ return Common::kNoError;
}
void PlumbersGameWindows::readTables() {
More information about the Scummvm-git-logs
mailing list