[Scummvm-git-logs] scummvm master -> d0fd267dd369a5432a03240de40da20a2d394181
neuromancer
noreply at scummvm.org
Mon Oct 14 10:45:16 UTC 2024
This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
1b5df20e1e FREESCAPE: convert menu strings to uppercase
74c21e6796 FREESCAPE: load font for castle demo for amiga
11b40ecf99 FREESCAPE: correctly load title screen for driller amiga
d0fd267dd3 FREESCAPE: correctly load title screen for driller atari
Commit: 1b5df20e1e2c721b1f3b9cdeaeefb3e0054f10ff
https://github.com/scummvm/scummvm/commit/1b5df20e1e2c721b1f3b9cdeaeefb3e0054f10ff
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2024-10-14T12:31:11+02:00
Commit Message:
FREESCAPE: convert menu strings to uppercase
Changed paths:
engines/freescape/ui.cpp
diff --git a/engines/freescape/ui.cpp b/engines/freescape/ui.cpp
index 7c93ab131da..c7dcb6cc69e 100644
--- a/engines/freescape/ui.cpp
+++ b/engines/freescape/ui.cpp
@@ -197,9 +197,9 @@ void FreescapeEngine::borderScreen() {
pad = 30;
if (isDOS())
- lines.push_back(centerAndPadString("Configuration Menu", pad));
+ lines.push_back(centerAndPadString("CONFIGURATION MENU", pad));
else
- lines.push_back(centerAndPadString("Control Options", pad));
+ lines.push_back(centerAndPadString("CONTROL OPTIONS", pad));
lines.push_back("");
lines.push_back(centerAndPadString("1: KEYBOARD ONLY ", pad));
lines.push_back(centerAndPadString("2: IBM JOYSTICK ", pad));
@@ -209,12 +209,12 @@ void FreescapeEngine::borderScreen() {
if (isDOS())
lines.push_back(centerAndPadString("SPACEBAR: BEGIN MISSION", pad));
else
- lines.push_back(centerAndPadString("Enter: Begin Mission", pad));
+ lines.push_back(centerAndPadString("ENTER: BEGIN MISSION", pad));
lines.push_back("");
if (isDOS())
lines.push_back(centerAndPadString("COPYRIGHT 1988 INCENTIVE", pad));
else
- lines.push_back(centerAndPadString("(c) 1988 Incentive", pad));
+ lines.push_back(centerAndPadString("(c) 1988 INCENTIVE", pad));
lines.push_back("");
Commit: 74c21e67963494fa3ce282d4dd81a22ba1940dc5
https://github.com/scummvm/scummvm/commit/74c21e67963494fa3ce282d4dd81a22ba1940dc5
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2024-10-14T12:31:11+02:00
Commit Message:
FREESCAPE: load font for castle demo for amiga
Changed paths:
engines/freescape/games/castle/amiga.cpp
engines/freescape/games/castle/castle.cpp
engines/freescape/loaders/8bitBinaryLoader.cpp
diff --git a/engines/freescape/games/castle/amiga.cpp b/engines/freescape/games/castle/amiga.cpp
index ace70465087..59b29ab5f75 100644
--- a/engines/freescape/games/castle/amiga.cpp
+++ b/engines/freescape/games/castle/amiga.cpp
@@ -68,15 +68,33 @@ void CastleEngine::loadAssetsAmigaDemo() {
_viewArea = Common::Rect(40, 29, 280, 154);
loadMessagesVariableSize(&file, 0x8bb2, 178);
- loadRiddles(&file, 0x96c8, 19);
+ loadRiddles(&file, 0x96c8 - 2 - 19 * 2, 19);
+
+ file.seek(0x3c6d0);
+ byte *borderPalete = loadPalette(&file);
+
+ file.seek(0x11eec);
+ Common::Array<Graphics::ManagedSurface *> chars;
+ for (int i = 0; i < 90; i++) {
+ Graphics::ManagedSurface *img = loadFrameFromPlanes(&file, 8, 8);
+ //Graphics::ManagedSurface *imgRiddle = new Graphics::ManagedSurface();
+ //imgRiddle->copyFrom(*img);
+
+ chars.push_back(img);
+ chars[i]->convertToInPlace(_gfx->_texturePixelFormat, borderPalete, 16);
+
+ //charsRiddle.push_back(imgRiddle);
+ //charsRiddle[i]->convertToInPlace(_gfx->_texturePixelFormat, (byte *)&kEGARiddleFontPalette, 16);
+ }
+ _font = Font(chars);
+ _font.setCharWidth(9);
+
load8bitBinary(&file, 0x162a6, 16);
loadPalettes(&file, 0x151a6);
file.seek(0x2be96); // Area 255
_areaMap[255] = load8bitArea(&file, 16);
- file.seek(0x3c6d0);
- byte *borderPalete = loadPalette(&file);
file.seek(0x2cf28 + 0x28 - 0x2 + 0x28);
_border = loadFrameFromPlanesVertical(&file, 160, 200);
@@ -93,6 +111,7 @@ void CastleEngine::loadAssetsAmigaDemo() {
}
void CastleEngine::drawAmigaAtariSTUI(Graphics::Surface *surface) {
+ drawStringInSurface(_currentArea->_name, 97, 182, 0, 0, surface);
}
} // End of namespace Freescape
\ No newline at end of file
diff --git a/engines/freescape/games/castle/castle.cpp b/engines/freescape/games/castle/castle.cpp
index bb8eba2c541..e0bbed1f0da 100644
--- a/engines/freescape/games/castle/castle.cpp
+++ b/engines/freescape/games/castle/castle.cpp
@@ -739,10 +739,8 @@ void CastleEngine::loadRiddles(Common::SeekableReadStream *file, int offset, int
message = message + c;
}
- /*if (isAmiga() || isAtariST())
+ if (isAmiga() || isAtariST())
debug("extra byte: %x", file->readByte());
- debugC(1, kFreescapeDebugParser, "extra byte: %x", file->readByte());
- debugC(1, kFreescapeDebugParser, "extra byte: %x", file->readByte());*/
debugC(1, kFreescapeDebugParser, "'%s' with offset: %d, %d", message.c_str(), x, y);
riddle._lines.push_back(RiddleText(x, y, message));
@@ -1056,6 +1054,8 @@ void CastleEngine::updateTimeVariables() {
}
void CastleEngine::borderScreen() {
+ if (isAmiga() && isDemo())
+ return; // Skip character selection
if (isSpectrum())
FreescapeEngine::borderScreen();
@@ -1080,11 +1080,7 @@ void CastleEngine::borderScreen() {
surface->free();
delete surface;
}
-
- if (isAmiga() && isDemo()) {
- // Skip character selection
- } else
- selectCharacterScreen();
+ selectCharacterScreen();
}
void CastleEngine::drawOption() {
diff --git a/engines/freescape/loaders/8bitBinaryLoader.cpp b/engines/freescape/loaders/8bitBinaryLoader.cpp
index d70ba705196..9bd84806bc9 100644
--- a/engines/freescape/loaders/8bitBinaryLoader.cpp
+++ b/engines/freescape/loaders/8bitBinaryLoader.cpp
@@ -655,7 +655,7 @@ Area *FreescapeEngine::load8bitArea(Common::SeekableReadStream *file, uint16 nco
byte idx = readField(file, 8);
if (isAmiga())
name = _messagesList[idx + 51];
- if (isSpectrum())
+ else if (isSpectrum())
name = areaNumber == 255 ? "GLOBAL" : _messagesList[idx + 16];
else
name = _messagesList[idx + 41];
@@ -765,6 +765,8 @@ Area *FreescapeEngine::load8bitArea(Common::SeekableReadStream *file, uint16 nco
void FreescapeEngine::load8bitBinary(Common::SeekableReadStream *file, int offset, int ncolors) {
file->seek(offset);
uint8 numberOfAreas = readField(file, 8);
+ if (isAmiga() && isCastle() && isDemo())
+ numberOfAreas = 87;
debugC(1, kFreescapeDebugParser, "Number of areas: %d", numberOfAreas);
uint32 dbSize = readPtr(file);
Commit: 11b40ecf991d1705a1af2a4a23a7e1750a08b72f
https://github.com/scummvm/scummvm/commit/11b40ecf991d1705a1af2a4a23a7e1750a08b72f
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2024-10-14T12:31:11+02:00
Commit Message:
FREESCAPE: correctly load title screen for driller amiga
Changed paths:
engines/freescape/games/driller/amiga.cpp
diff --git a/engines/freescape/games/driller/amiga.cpp b/engines/freescape/games/driller/amiga.cpp
index 413870979d1..638c09b401d 100644
--- a/engines/freescape/games/driller/amiga.cpp
+++ b/engines/freescape/games/driller/amiga.cpp
@@ -35,13 +35,7 @@ void DrillerEngine::loadAssetsAmigaFullGame() {
error("Failed to open 'driller' executable for Amiga");
_border = loadAndConvertNeoImage(&file, 0x137f4);
- byte *palette = (byte *)malloc(16 * 3);
- for (int i = 0; i < 16; i++) { // gray scale palette
- palette[i * 3 + 0] = i * (255 / 16);
- palette[i * 3 + 1] = i * (255 / 16);
- palette[i * 3 + 2] = i * (255 / 16);
- }
- _title = loadAndConvertNeoImage(&file, 0x10, palette);
+ _title = loadAndConvertNeoImage(&file, 0xce);
loadFonts(&file, 0x8940);
loadMessagesFixedSize(&file, 0xc66e, 14, 20);
Commit: d0fd267dd369a5432a03240de40da20a2d394181
https://github.com/scummvm/scummvm/commit/d0fd267dd369a5432a03240de40da20a2d394181
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2024-10-14T12:31:11+02:00
Commit Message:
FREESCAPE: correctly load title screen for driller atari
Changed paths:
engines/freescape/games/driller/amiga.cpp
engines/freescape/games/driller/atari.cpp
engines/freescape/games/driller/driller.cpp
engines/freescape/games/driller/driller.h
diff --git a/engines/freescape/games/driller/amiga.cpp b/engines/freescape/games/driller/amiga.cpp
index 638c09b401d..14daf539e1b 100644
--- a/engines/freescape/games/driller/amiga.cpp
+++ b/engines/freescape/games/driller/amiga.cpp
@@ -235,6 +235,9 @@ void DrillerEngine::initAmigaAtari() {
_infoScreenArea = Common::Rect(125, 172, 152, 197);
_saveGameArea = Common::Rect(9, 145, 39, 154);
_loadGameArea = Common::Rect(9, 156, 39, 164);
+
+ _borderExtra = nullptr;
+ _borderExtraTexture = nullptr;
}
} // End of namespace Freescape
\ No newline at end of file
diff --git a/engines/freescape/games/driller/atari.cpp b/engines/freescape/games/driller/atari.cpp
index c4bad291d8d..611b5e94370 100644
--- a/engines/freescape/games/driller/atari.cpp
+++ b/engines/freescape/games/driller/atari.cpp
@@ -66,7 +66,8 @@ void DrillerEngine::loadAssetsAtariFullGame() {
Common::SeekableReadStream *stream = decryptFileAtari("x.prg");
_border = loadAndConvertNeoImage(stream, 0x14b96);
- _title = loadAndConvertNeoImage(stream, 0x1c916);
+ _borderExtra = loadAndConvertNeoImage(stream, 0x1c916);
+ _title = loadAndConvertNeoImage(stream, 0x3f6);
loadFonts(stream, 0x8a92);
loadMessagesFixedSize(stream, 0xda22, 14, 20);
@@ -99,13 +100,7 @@ void DrillerEngine::loadAssetsAtariFullGame() {
loadSoundsFx(&file, 0x30da6 - 0x1d6, 25);
} else {
_border = loadAndConvertNeoImage(&file, 0x1371a);
- byte *palette = (byte *)malloc(16 * 3);
- for (int i = 0; i < 16; i++) { // gray scale palette
- palette[i * 3 + 0] = i * (255 / 16);
- palette[i * 3 + 1] = i * (255 / 16);
- palette[i * 3 + 2] = i * (255 / 16);
- }
- _title = loadAndConvertNeoImage(&file, 0x10, palette);
+ _title = loadAndConvertNeoImage(&file, 0x396);
loadFonts(&file, 0x8a32);
loadMessagesFixedSize(&file, 0xc5d8, 14, 20);
diff --git a/engines/freescape/games/driller/driller.cpp b/engines/freescape/games/driller/driller.cpp
index 9928eac2e37..62baeaa9346 100644
--- a/engines/freescape/games/driller/driller.cpp
+++ b/engines/freescape/games/driller/driller.cpp
@@ -111,6 +111,14 @@ DrillerEngine::DrillerEngine(OSystem *syst, const ADGameDescription *gd) : Frees
DrillerEngine::~DrillerEngine() {
delete _drillBase;
+
+ if (_borderExtra) {
+ delete _borderExtra;
+ _borderExtra = nullptr;
+ }
+
+ if (_borderExtraTexture)
+ _gfx->freeTexture(_borderExtraTexture);
}
void DrillerEngine::initKeymaps(Common::Keymap *engineKeyMap, Common::Keymap *infoScreenKeyMap, const char *target) {
diff --git a/engines/freescape/games/driller/driller.h b/engines/freescape/games/driller/driller.h
index 5e5d87ef498..149346cbfe9 100644
--- a/engines/freescape/games/driller/driller.h
+++ b/engines/freescape/games/driller/driller.h
@@ -103,6 +103,8 @@ private:
uint32 getPixel8bitTitleImage(int index);
void renderPixels8bitTitleImage(Graphics::ManagedSurface *surface, int &i, int &j, int pixels);
+ Graphics::ManagedSurface *_borderExtra;
+ Texture *_borderExtraTexture;
Common::SeekableReadStream *decryptFileAtari(const Common::Path &filename);
};
More information about the Scummvm-git-logs
mailing list