[Scummvm-git-logs] scummvm master -> 322431d3578f1b0a7892b4ce1f3612b0ed6f45b3
sdelamarre
noreply at scummvm.org
Thu Feb 19 20:04:06 UTC 2026
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
d099693396 GOB: Remove unused "dataVar" parameter in some save sprite handlers
322431d357 GOB: Add printing support for Adibou2/Adi4
Commit: d09969339678e08172fc4b856481d9e3f263261b
https://github.com/scummvm/scummvm/commit/d09969339678e08172fc4b856481d9e3f263261b
Author: Simon Delamarre (simon.delamarre14 at gmail.com)
Date: 2026-02-19T21:00:52+01:00
Commit Message:
GOB: Remove unused "dataVar" parameter in some save sprite handlers
Changed paths:
engines/gob/save/savehandler.cpp
engines/gob/save/savehandler.h
engines/gob/save/saveload_adibou1.cpp
engines/gob/save/saveload_inca2.cpp
engines/gob/save/saveload_v3.cpp
engines/gob/save/saveload_v7.cpp
diff --git a/engines/gob/save/savehandler.cpp b/engines/gob/save/savehandler.cpp
index 368e3cc7b7e..f75fbc371e8 100644
--- a/engines/gob/save/savehandler.cpp
+++ b/engines/gob/save/savehandler.cpp
@@ -255,8 +255,8 @@ int32 TempSpriteHandler::getSize() {
return _sprite->getSize();
}
-bool TempSpriteHandler::load(int16 dataVar, int32 size, int32 offset) {
- if (isDummy(size))
+bool TempSpriteHandler::load(int16 dataVar, int32 index_as_size, int32 offset) {
+ if (isDummy(index_as_size))
return true;
// Sprite available?
@@ -264,11 +264,11 @@ bool TempSpriteHandler::load(int16 dataVar, int32 size, int32 offset) {
return false;
// Sprite requested?
- if (!isSprite(size))
+ if (!isSprite(index_as_size))
return false;
// Index sane?
- int index = getIndex(size);
+ int index = getIndex(index_as_size);
if ((index < 0) || (index >= Draw::kSpriteCount))
return false;
@@ -283,7 +283,7 @@ bool TempSpriteHandler::load(int16 dataVar, int32 size, int32 offset) {
return false;
// Handle palette
- if (usesPalette(size)) {
+ if (usesPalette(index_as_size)) {
if (!_sprite->writePalette((byte *)_vm->_global->_pPaletteDesc->vgaPal))
return false;
@@ -301,11 +301,11 @@ bool TempSpriteHandler::load(int16 dataVar, int32 size, int32 offset) {
return true;
}
-bool TempSpriteHandler::save(int16 dataVar, int32 size, int32 offset) {
- if (isDummy(size))
+bool TempSpriteHandler::save(int16 dataVar, int32 index_as_size, int32 offset) {
+ if (isDummy(index_as_size))
return true;
- SurfacePtr sprite = createSprite(dataVar, size, offset);
+ SurfacePtr sprite = createSprite(index_as_size, offset);
if (!sprite)
return false;
@@ -314,7 +314,7 @@ bool TempSpriteHandler::save(int16 dataVar, int32 size, int32 offset) {
return false;
// Handle palette
- if (usesPalette(size))
+ if (usesPalette(index_as_size))
if (!_sprite->readPalette((const byte *)_vm->_global->_pPaletteDesc->vgaPal))
return false;
@@ -359,19 +359,19 @@ bool TempSpriteHandler::saveFromRaw(const byte *ptr, int32 size, int32 offset) {
return true;
}
-bool TempSpriteHandler::createFromSprite(int16 dataVar, int32 size, int32 offset) {
- return createSprite(dataVar, size, offset) != nullptr;
+bool TempSpriteHandler::createFromSprite(int32 index_as_size, int32 offset) {
+ return createSprite(index_as_size, offset) != nullptr;
}
-SurfacePtr TempSpriteHandler::createSprite(int16 dataVar, int32 size, int32 offset) {
+SurfacePtr TempSpriteHandler::createSprite(int32 index_as_size, int32 offset) {
SurfacePtr sprt;
// Sprite requested?
- if (!isSprite(size))
+ if (!isSprite(index_as_size))
return sprt;
// Index sane?
- int index = getIndex(size);
+ int index = getIndex(index_as_size);
if ((index < 0) || (index >= Draw::kSpriteCount))
return sprt;
diff --git a/engines/gob/save/savehandler.h b/engines/gob/save/savehandler.h
index 4ae1194dd69..b19a0fa1b6e 100644
--- a/engines/gob/save/savehandler.h
+++ b/engines/gob/save/savehandler.h
@@ -144,14 +144,14 @@ public:
~TempSpriteHandler() override;
int32 getSize() override;
- bool load(int16 dataVar, int32 size, int32 offset) override;
- bool save(int16 dataVar, int32 size, int32 offset) override;
+ bool load(int16 dataVar, int32 index_as_size, int32 offset) override;
+ bool save(int16 dataVar, int32 index_as_size, int32 offset) override;
bool loadToRaw(byte *ptr, int32 size, int32 offset) override;
bool saveFromRaw(const byte *ptr, int32 size, int32 offset) override;
bool create(uint32 width, uint32 height, bool trueColor);
- bool createFromSprite(int16 dataVar, int32 size, int32 offset);
+ bool createFromSprite(int32 index_as_size, int32 offset);
protected:
SavePartSprite *_sprite;
@@ -165,7 +165,7 @@ protected:
/** Determine whether the palette should be used too. */
static bool usesPalette(int32 size);
- SurfacePtr createSprite(int16 dataVar, int32 size, int32 offset);
+ SurfacePtr createSprite(int32 index_as_size, int32 offset);
};
/** A handler for notes. */
diff --git a/engines/gob/save/saveload_adibou1.cpp b/engines/gob/save/saveload_adibou1.cpp
index 69fa1eb5b92..27b912e2961 100644
--- a/engines/gob/save/saveload_adibou1.cpp
+++ b/engines/gob/save/saveload_adibou1.cpp
@@ -109,7 +109,7 @@ int32 SaveLoad_Adibou1::SpriteHandler::getSize() {
}
bool SaveLoad_Adibou1::SpriteHandler::load(int16 dataVar, int32 size, int32 offset) {
- if (!TempSpriteHandler::createFromSprite(dataVar, size, offset))
+ if (!TempSpriteHandler::createFromSprite(size, offset))
return false;
Common::String fileName = _file.build();
@@ -177,8 +177,8 @@ int32 SaveLoad_Adibou1::DrawingWithThumbnailHandler::getSize() {
return header1.getSize() + header2.getSize();
}
-bool SaveLoad_Adibou1::DrawingWithThumbnailHandler::load(int16 dataVar, int32 size, int32 offset) {
- if (!TempSpriteHandler::createFromSprite(dataVar, size, offset))
+bool SaveLoad_Adibou1::DrawingWithThumbnailHandler::load(int16 dataVar, int32 index_as_size, int32 offset) {
+ if (!TempSpriteHandler::createFromSprite(index_as_size, offset))
return false;
Common::String fileName = _file.build();
@@ -192,11 +192,11 @@ bool SaveLoad_Adibou1::DrawingWithThumbnailHandler::load(int16 dataVar, int32 si
if (!_reader->readPart(part, _sprite))
return false;
- return TempSpriteHandler::load(dataVar, size, offset);
+ return TempSpriteHandler::load(dataVar, index_as_size, offset);
}
-bool SaveLoad_Adibou1::DrawingWithThumbnailHandler::save(int16 dataVar, int32 size, int32 offset) {
- if (!TempSpriteHandler::save(dataVar, size, offset))
+bool SaveLoad_Adibou1::DrawingWithThumbnailHandler::save(int16 dataVar, int32 index_as_size, int32 offset) {
+ if (!TempSpriteHandler::save(dataVar, index_as_size, offset))
return false;
Common::String fileName = _file.build();
diff --git a/engines/gob/save/saveload_inca2.cpp b/engines/gob/save/saveload_inca2.cpp
index f54d40ca685..6c6d9d2c5c6 100644
--- a/engines/gob/save/saveload_inca2.cpp
+++ b/engines/gob/save/saveload_inca2.cpp
@@ -324,7 +324,7 @@ bool SaveLoad_Inca2::ScreenshotHandler::load(int16 dataVar, int32 size, int32 of
return false;
}
- if (!TempSpriteHandler::createFromSprite(dataVar, size, offset))
+ if (!TempSpriteHandler::createFromSprite(size, offset))
return false;
if (!_gameHandler->loadScreenshot(slot, _sprite))
diff --git a/engines/gob/save/saveload_v3.cpp b/engines/gob/save/saveload_v3.cpp
index 3e5752f8c49..e593f31115c 100644
--- a/engines/gob/save/saveload_v3.cpp
+++ b/engines/gob/save/saveload_v3.cpp
@@ -441,7 +441,7 @@ bool SaveLoad_v3::ScreenshotHandler::load(int16 dataVar, int32 size, int32 offse
if ((slot >= kSlotCount) || (slotRem != 0))
return false;
- if (!TempSpriteHandler::createFromSprite(dataVar, size, offset))
+ if (!TempSpriteHandler::createFromSprite(size, offset))
return false;
if (!_gameHandler->loadScreenshot(slot, _sprite))
diff --git a/engines/gob/save/saveload_v7.cpp b/engines/gob/save/saveload_v7.cpp
index d50059ab699..5d0c70d14d3 100644
--- a/engines/gob/save/saveload_v7.cpp
+++ b/engines/gob/save/saveload_v7.cpp
@@ -1612,7 +1612,7 @@ int32 SaveLoad_v7::SpriteHandler::getSize() {
}
bool SaveLoad_v7::SpriteHandler::load(int16 dataVar, int32 size, int32 offset) {
- if (!TempSpriteHandler::createFromSprite(dataVar, size, offset))
+ if (!TempSpriteHandler::createFromSprite(size, offset))
return false;
Common::String fileName = _file.build();
@@ -1726,8 +1726,8 @@ int32 SaveLoad_v7::DrawingOnFloppyDiskHandler::getSize() {
}
}
-bool SaveLoad_v7::DrawingOnFloppyDiskHandler::load(int16 dataVar, int32 size, int32 offset) {
- if (!TempSpriteHandler::createFromSprite(dataVar, size, offset))
+bool SaveLoad_v7::DrawingOnFloppyDiskHandler::load(int16 dataVar, int32 index_as_size, int32 offset) {
+ if (!TempSpriteHandler::createFromSprite(index_as_size, offset))
return false;
if (!_reader->load())
@@ -1741,7 +1741,7 @@ bool SaveLoad_v7::DrawingOnFloppyDiskHandler::load(int16 dataVar, int32 size, in
if (!_reader->readPart(part, _sprite))
return false;
- return TempSpriteHandler::load(dataVar, size, offset);
+ return TempSpriteHandler::load(dataVar, index_as_size, offset);
}
bool SaveLoad_v7::DrawingOnFloppyDiskHandler::save(int16 dataVar, int32 size, int32 offset) {
Commit: 322431d3578f1b0a7892b4ce1f3612b0ed6f45b3
https://github.com/scummvm/scummvm/commit/322431d3578f1b0a7892b4ce1f3612b0ed6f45b3
Author: Simon Delamarre (simon.delamarre14 at gmail.com)
Date: 2026-02-19T21:00:52+01:00
Commit Message:
GOB: Add printing support for Adibou2/Adi4
Changed paths:
engines/gob/inter_v7.cpp
diff --git a/engines/gob/inter_v7.cpp b/engines/gob/inter_v7.cpp
index 3ab24c46c6f..9e3fe41c333 100644
--- a/engines/gob/inter_v7.cpp
+++ b/engines/gob/inter_v7.cpp
@@ -35,6 +35,7 @@
#include "graphics/cursorman.h"
#include "graphics/wincursor.h"
+#include "gui/gui-manager.h"
#include "gui/message.h"
#include "image/iff.h"
@@ -1957,6 +1958,55 @@ void Inter_v7::o7_writeData(OpFuncParams ¶ms) {
WRITE_VAR(1, 1);
+ if (file.compareToIgnoreCase("PRINTER") == 0) {
+ // Send a sprite to the printer.
+ int32 spriteIndex = -size - 1;
+ if (spriteIndex < 0 || spriteIndex >= Draw::kSpriteCount) {
+ warning("o7_writeData: Invalid sprite index %d for printing", spriteIndex);
+ return;
+ }
+
+ SurfacePtr sprite = _vm->_draw->_spritesArray[spriteIndex];
+ if (!sprite) {
+ warning("o7_writeData: no sprite at index %d for printing", spriteIndex);
+ return;
+ }
+
+ Graphics::ManagedSurface surf(sprite->getWidth(),
+ sprite->getHeight(),
+ sprite->getBPP() > 1 ? _vm->getPixelFormat()
+ : Graphics::PixelFormat::createFormatCLUT8());
+
+ if (sprite->getBPP() > 1) {
+ // Fill the background with white color, and ensure 0 is treated as the transparent color key
+ surf.fillRect(Common::Rect(0, 0, surf.w, surf.h),
+ surf.format.RGBToColor(255, 255, 255));
+ surf.copyRectToSurfaceWithKey(sprite->getData(),
+ sprite->getWidth() * sprite->getBPP(),
+ 0,
+ 0,
+ sprite->getWidth(),
+ sprite->getHeight(),
+ 0);
+ } else {
+ byte pal[768];
+ int16 numcolors = _vm->_global->_setAllPalette ? 256 : 16;
+ for (int i = 0; i < numcolors; i++) {
+ _vm->_video->setPalColor(pal + i * 3, _vm->_global->_pPaletteDesc->vgaPal[i]);
+ }
+ surf.setPalette(pal, 0, numcolors);
+ surf.copyRectToSurface(sprite->getData(),
+ sprite->getWidth() * sprite->getBPP(),
+ 0,
+ 0,
+ sprite->getWidth(),
+ sprite->getHeight());
+ }
+
+ g_gui.printImage(surf);
+ return;
+ }
+
if (size == 0) {
dataVar = 0;
size = _vm->_game->_script->getVariablesCount() * 4;
More information about the Scummvm-git-logs
mailing list