[Scummvm-git-logs] scummvm master -> fd85df270fa8e3973f82bb565aba689d8b93fd7c
neuromancer
noreply at scummvm.org
Wed Mar 8 19:43:41 UTC 2023
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:
b61d503e9a FREESCAPE: color and ui fixes for driller cpc
fd85df270f FREESCAPE: correctly parse images in dos driller demo and removed extra files from freescape.dat
Commit: b61d503e9ac979796050ea0e64b665271af311a3
https://github.com/scummvm/scummvm/commit/b61d503e9ac979796050ea0e64b665271af311a3
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2023-03-08T20:45:02+01:00
Commit Message:
FREESCAPE: color and ui fixes for driller cpc
Changed paths:
engines/freescape/games/driller/cpc.cpp
engines/freescape/games/driller/driller.cpp
diff --git a/engines/freescape/games/driller/cpc.cpp b/engines/freescape/games/driller/cpc.cpp
index 25750cfb6b1..68c33eba2e4 100644
--- a/engines/freescape/games/driller/cpc.cpp
+++ b/engines/freescape/games/driller/cpc.cpp
@@ -123,11 +123,18 @@ void deobfuscateDrillerCPCVirtualWorlds(byte *memBuffer) {
}
}
-byte kCPCPalettePinkBlueWhiteData[4][3] = {
+byte kCPCPaletteTitleData[4][3] = {
{0x00, 0x00, 0x00},
- {0x55, 0xff, 0xff},
- {0xff, 0x55, 0xff},
- {0xff, 0xff, 0xff},
+ {0x00, 0x80, 0xff},
+ {0xff, 0x00, 0x00},
+ {0xff, 0xff, 0x00},
+};
+
+byte kCPCPaletteBorderData[4][3] = {
+ {0x00, 0x00, 0x00},
+ {0xff, 0x80, 0x00},
+ {0x80, 0xff, 0xff},
+ {0x00, 0x80, 0x00},
};
Graphics::ManagedSurface *readCPCImage(Common::SeekableReadStream *file) {
@@ -181,7 +188,7 @@ void DrillerEngine::loadAssetsCPCFullGame() {
error("Failed to open DSCN1.BIN");
_title = readCPCImage(&file);
- _title->setPalette((byte*)&kCPCPalettePinkBlueWhiteData, 0, 4);
+ _title->setPalette((byte*)&kCPCPaletteTitleData, 0, 4);
file.close();
file.open("DSCN2.BIN");
@@ -189,7 +196,7 @@ void DrillerEngine::loadAssetsCPCFullGame() {
error("Failed to open DSCN2.BIN");
_border = readCPCImage(&file);
- _border->setPalette((byte*)&kCPCPalettePinkBlueWhiteData, 0, 4);
+ _border->setPalette((byte*)&kCPCPaletteBorderData, 0, 4);
file.close();
file.open("DRILL.BIN");
@@ -220,9 +227,9 @@ void DrillerEngine::drawCPCUI(Graphics::Surface *surface) {
int score = _gameStateVars[k8bitVariableScore];
drawStringInSurface(_currentArea->_name, 200, 185, front, back, surface);
- drawStringInSurface(Common::String::format("%04d", int(2 * _position.x())), 149, 145, front, back, surface);
- drawStringInSurface(Common::String::format("%04d", int(2 * _position.z())), 149, 153, front, back, surface);
- drawStringInSurface(Common::String::format("%04d", int(2 * _position.y())), 149, 161, front, back, surface);
+ drawStringInSurface(Common::String::format("%04d", int(2 * _position.x())), 150, 145, front, back, surface);
+ drawStringInSurface(Common::String::format("%04d", int(2 * _position.z())), 150, 153, front, back, surface);
+ drawStringInSurface(Common::String::format("%04d", int(2 * _position.y())), 150, 161, front, back, surface);
if (_playerHeightNumber >= 0)
drawStringInSurface(Common::String::format("%d", _playerHeightNumber), 54, 161, front, back, surface);
else
diff --git a/engines/freescape/games/driller/driller.cpp b/engines/freescape/games/driller/driller.cpp
index 76bef52466b..62ff6f7d970 100644
--- a/engines/freescape/games/driller/driller.cpp
+++ b/engines/freescape/games/driller/driller.cpp
@@ -420,6 +420,9 @@ void DrillerEngine::drawInfoMenu() {
case Common::kRenderZX:
color = 6;
break;
+ case Common::kRenderCPC:
+ color = _gfx->_underFireBackgroundColor;
+ break;
default:
color = 14;
}
Commit: fd85df270fa8e3973f82bb565aba689d8b93fd7c
https://github.com/scummvm/scummvm/commit/fd85df270fa8e3973f82bb565aba689d8b93fd7c
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2023-03-08T20:45:02+01:00
Commit Message:
FREESCAPE: correctly parse images in dos driller demo and removed extra files from freescape.dat
Changed paths:
R devtools/create_freescape/driller_cga.bmp
R devtools/create_freescape/driller_cpc.bmp
dists/engine-data/freescape.dat
engines/freescape/freescape.h
engines/freescape/games/driller/dos.cpp
engines/freescape/games/driller/driller.cpp
diff --git a/devtools/create_freescape/driller_cga.bmp b/devtools/create_freescape/driller_cga.bmp
deleted file mode 100644
index 4234daf00ac..00000000000
Binary files a/devtools/create_freescape/driller_cga.bmp and /dev/null differ
diff --git a/devtools/create_freescape/driller_cpc.bmp b/devtools/create_freescape/driller_cpc.bmp
deleted file mode 100644
index 2b834a76adc..00000000000
Binary files a/devtools/create_freescape/driller_cpc.bmp and /dev/null differ
diff --git a/dists/engine-data/freescape.dat b/dists/engine-data/freescape.dat
index 322725f9b14..4bae5edd3a7 100644
Binary files a/dists/engine-data/freescape.dat and b/dists/engine-data/freescape.dat differ
diff --git a/engines/freescape/freescape.h b/engines/freescape/freescape.h
index 1b21c8edcc4..d2f8405437a 100644
--- a/engines/freescape/freescape.h
+++ b/engines/freescape/freescape.h
@@ -462,6 +462,8 @@ private:
void drawAmigaAtariSTUI(Graphics::Surface *surface);
Graphics::ManagedSurface *load8bitTitleImage(Common::SeekableReadStream *file, int offset);
+ Graphics::ManagedSurface *load8bitDemoImage(Common::SeekableReadStream *file, int offset);
+
uint32 getPixel8bitTitleImage(int index);
void renderPixels8bitTitleImage(Graphics::ManagedSurface *surface, int &i, int &j, int pixels);
};
diff --git a/engines/freescape/games/driller/dos.cpp b/engines/freescape/games/driller/dos.cpp
index ee38b0a6b13..4998673f6a7 100644
--- a/engines/freescape/games/driller/dos.cpp
+++ b/engines/freescape/games/driller/dos.cpp
@@ -196,6 +196,50 @@ byte kEGADefaultPaletteData[16][3] = {
{0x00, 0x00, 0x00}
};
+Graphics::ManagedSurface *DrillerEngine::load8bitDemoImage(Common::SeekableReadStream *file, int offset) {
+ Graphics::ManagedSurface *surface = new Graphics::ManagedSurface();
+ surface->create(320, 200, Graphics::PixelFormat::createFormatCLUT8());
+ surface->fillRect(Common::Rect(0, 0, 320, 200), 0);
+ file->seek(offset);
+ int i = 0;
+ int j = 0;
+ while (true) {
+ byte pixels = file->readByte();
+ for (int b = 0; b < 4; b++) {
+ int color = pixels & 3;
+ pixels = pixels >> 2;
+ surface->setPixel(i + (3 - b), 2 * j, color);
+ }
+ i = i + 4;
+ if (i == 320) {
+ i = 0;
+ j++;
+ }
+ if (j == 100)
+ break;
+ }
+ file->seek(0xc0, SEEK_CUR);
+
+ i = 0;
+ j = 0;
+ while (true) {
+ byte pixels = file->readByte();
+ for (int b = 0; b < 4; b++) {
+ int color = pixels & 3;
+ pixels = pixels >> 2;
+ surface->setPixel(i + (3 - b), 2 * j + 1, color);
+ }
+ i = i + 4;
+ if (i == 320) {
+ i = 0;
+ j++;
+ }
+ if (j == 100)
+ break;
+ }
+ return surface;
+}
+
void DrillerEngine::loadAssetsDOSFullGame() {
Common::File file;
if (_renderMode == Common::kRenderEGA) {
@@ -256,7 +300,6 @@ void DrillerEngine::loadAssetsDOSDemo() {
_renderMode = Common::kRenderCGA; // DOS demos is CGA only
_viewArea = Common::Rect(36, 16, 284, 117); // correct view area
_gfx->_renderMode = _renderMode;
- loadBundledImages();
file.open("d2");
if (!file.isOpen())
error("Failed to open 'd2' file");
@@ -265,6 +308,8 @@ void DrillerEngine::loadAssetsDOSDemo() {
loadMessagesFixedSize(&file, 0x636, 14, 20);
load8bitBinary(&file, 0x55b0, 4);
loadGlobalObjects(&file, 0x8c);
+ _border = load8bitDemoImage(&file, 0x6220);
+ _border->setPalette((byte*)&kCGAPalettePinkBlueWhiteData, 0, 4);
// Fixed for a corrupted area names in the demo data
_areaMap[2]->_name = "LAPIS LAZULI";
diff --git a/engines/freescape/games/driller/driller.cpp b/engines/freescape/games/driller/driller.cpp
index 62ff6f7d970..782506c5ea8 100644
--- a/engines/freescape/games/driller/driller.cpp
+++ b/engines/freescape/games/driller/driller.cpp
@@ -105,9 +105,6 @@ void DrillerEngine::titleScreen() {
}
}
void DrillerEngine::borderScreen() {
- if (isDOS() && isDemo()) // Demo will not show the border
- return;
-
if (isAmiga() || isAtariST()) // TODO: implement these with their own animations
return;
More information about the Scummvm-git-logs
mailing list