[Scummvm-git-logs] scummvm master -> 40a6b9acd408b31bd4c4b8ae0acdf75082263c28
bluegr
noreply at scummvm.org
Tue Feb 17 18:53:41 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:
40a6b9acd4 AGOS: Simon 1 Acorn - Implement Acorn cursor for Simon 1
Commit: 40a6b9acd408b31bd4c4b8ae0acdf75082263c28
https://github.com/scummvm/scummvm/commit/40a6b9acd408b31bd4c4b8ae0acdf75082263c28
Author: Robert Megone (robert.megone at gmail.com)
Date: 2026-02-17T20:53:37+02:00
Commit Message:
AGOS: Simon 1 Acorn - Implement Acorn cursor for Simon 1
Changed paths:
engines/agos/cursor.cpp
engines/agos/detection.h
engines/agos/detection_tables.h
engines/agos/dialogs.cpp
diff --git a/engines/agos/cursor.cpp b/engines/agos/cursor.cpp
index 3cb73123079..33ba34310d6 100644
--- a/engines/agos/cursor.cpp
+++ b/engines/agos/cursor.cpp
@@ -127,6 +127,31 @@ static const uint16 _common_moveLeft[32] = {
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
};
+static const byte _simon1_acorn_cursor[11 * 22] = {
+ 0xE6, 0xE6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xE6, 0xE6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xE6, 0xE5, 0xE6, 0xE6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xE6, 0xE5, 0xE6, 0xE6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xE6, 0xE5, 0xE5, 0xE5, 0xE6, 0xE6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xE6, 0xE5, 0xE5, 0xE5, 0xE6, 0xE6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xE6, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE6, 0xE6, 0xE6, 0xFF, 0xFF,
+ 0xE6, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE6, 0xE6, 0xE6, 0xFF, 0xFF,
+ 0xE6, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE6, 0xE6,
+ 0xE6, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE6, 0xE6,
+ 0xE6, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6,
+ 0xE6, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6,
+ 0xE6, 0xE5, 0xE6, 0xE6, 0xE6, 0xE5, 0xE5, 0xE6, 0xFF, 0xFF, 0xFF,
+ 0xE6, 0xFF, 0xE6, 0xE6, 0xE6, 0xE5, 0xE5, 0xE6, 0xFF, 0xFF, 0xFF,
+ 0xE6, 0xE6, 0xE6, 0xFF, 0xFF, 0xE6, 0xE5, 0xE5, 0xE6, 0xFF, 0xFF,
+ 0xE6, 0xE6, 0xE6, 0xFF, 0xFF, 0xE6, 0xE5, 0xE5, 0xE6, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE6, 0xE5, 0xE5, 0xE6, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE6, 0xE5, 0xE5, 0xE6, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE6, 0xE5, 0xE5, 0xE6,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE6, 0xE5, 0xE5, 0xE6,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE6, 0xE6, 0xE6,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE6, 0xE6, 0xE6,
+};
+
static const byte _simon2_cursors[10][256] = {
// cross hair
{ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xec,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
@@ -762,6 +787,23 @@ void AGOSEngine_Feeble::drawMousePointer() {
void AGOSEngine_Simon1::initMouse() {
AGOSEngine::initMouse();
+ if (getPlatform() == Common::kPlatformAcorn && ConfMan.getBool("use_system_cursor")) {
+ byte pal[256 * 3];
+ memset(pal, 0, sizeof(pal));
+
+ pal[0xE5 * 3 + 0] = 0x00;
+ pal[0xE5 * 3 + 1] = 0x00;
+ pal[0xE5 * 3 + 2] = 0x99;
+
+ pal[0xE6 * 3 + 0] = 0x00;
+ pal[0xE6 * 3 + 1] = 0xFF;
+ pal[0xE6 * 3 + 2] = 0xFF;
+
+ CursorMan.replaceCursorPalette(pal, 0, 256);
+ CursorMan.replaceCursor(_simon1_acorn_cursor, 11, 22, 5, 1, 0xFF);
+ return;
+ }
+
const uint16 *src = _common_mouseInfo;
for (int i = 0; i < 16; i++) {
for (int j = 0; j < 16; j++) {
diff --git a/engines/agos/detection.h b/engines/agos/detection.h
index c5cdffe5296..091db05abe0 100644
--- a/engines/agos/detection.h
+++ b/engines/agos/detection.h
@@ -53,6 +53,7 @@ struct AGOSGameDescription {
#define GAMEOPTION_DISABLE_FADE_EFFECTS GUIO_GAMEOPTIONS4
#define GAMEOPTION_COPY_PROTECTION GUIO_GAMEOPTIONS5
#define GAMEOPTION_MIDI_MODE GUIO_GAMEOPTIONS6
+#define GAMEOPTION_USE_SYSTEM_CURSOR GUIO_GAMEOPTIONS7
/** MIDI devices */
enum kMidiMode {
diff --git a/engines/agos/detection_tables.h b/engines/agos/detection_tables.h
index 679264a39b5..d94a826abfc 100644
--- a/engines/agos/detection_tables.h
+++ b/engines/agos/detection_tables.h
@@ -1083,7 +1083,7 @@ static const AGOSGameDescription gameDescriptions[] = {
Common::EN_ANY,
Common::kPlatformAcorn,
ADGF_DEMO,
- GUIO3(GUIO_NOSPEECH, GUIO_NOMIDI, GAMEOPTION_DISABLE_FADE_EFFECTS)
+ GUIO4(GUIO_NOSPEECH, GUIO_NOMIDI, GAMEOPTION_DISABLE_FADE_EFFECTS, GAMEOPTION_USE_SYSTEM_CURSOR)
},
GType_SIMON1,
@@ -1107,7 +1107,7 @@ static const AGOSGameDescription gameDescriptions[] = {
Common::EN_ANY,
Common::kPlatformAcorn,
ADGF_NO_FLAGS,
- GUIO4(GUIO_NOSPEECH, GUIO_NOMIDI, GAMEOPTION_DISABLE_FADE_EFFECTS, GAMEOPTION_COPY_PROTECTION)
+ GUIO5(GUIO_NOSPEECH, GUIO_NOMIDI, GAMEOPTION_DISABLE_FADE_EFFECTS, GAMEOPTION_COPY_PROTECTION, GAMEOPTION_USE_SYSTEM_CURSOR)
},
GType_SIMON1,
@@ -1132,7 +1132,7 @@ static const AGOSGameDescription gameDescriptions[] = {
Common::EN_ANY,
Common::kPlatformAcorn,
ADGF_DEMO,
- GUIO3(GUIO_NOSUBTITLES, GAMEOPTION_DOS_TEMPOS, GAMEOPTION_DISABLE_FADE_EFFECTS)
+ GUIO4(GUIO_NOSUBTITLES, GAMEOPTION_DOS_TEMPOS, GAMEOPTION_DISABLE_FADE_EFFECTS, GAMEOPTION_USE_SYSTEM_CURSOR)
},
GType_SIMON1,
@@ -1157,7 +1157,7 @@ static const AGOSGameDescription gameDescriptions[] = {
Common::EN_ANY,
Common::kPlatformAcorn,
ADGF_CD,
- GUIO3(GUIO_NOSUBTITLES, GAMEOPTION_DOS_TEMPOS, GAMEOPTION_DISABLE_FADE_EFFECTS)
+ GUIO4(GUIO_NOSUBTITLES, GAMEOPTION_DOS_TEMPOS, GAMEOPTION_DISABLE_FADE_EFFECTS, GAMEOPTION_USE_SYSTEM_CURSOR)
},
GType_SIMON1,
diff --git a/engines/agos/dialogs.cpp b/engines/agos/dialogs.cpp
index 63c88636229..903c41863fc 100644
--- a/engines/agos/dialogs.cpp
+++ b/engines/agos/dialogs.cpp
@@ -87,6 +87,17 @@ const ADExtraGuiOptionsMap optionsList[] = {
0
}
},
+ {
+ GAMEOPTION_USE_SYSTEM_CURSOR,
+ {
+ _s("Use original Acorn system cursor"),
+ _s("Toggle between the system cursor and the default cursor."),
+ "use_system_cursor",
+ true,
+ 0,
+ 0
+ }
+ },
AD_EXTRA_GUI_OPTIONS_TERMINATOR
};
More information about the Scummvm-git-logs
mailing list