aboutsummaryrefslogtreecommitdiff
path: root/engines/simon
diff options
context:
space:
mode:
authorMax Horn2006-03-09 13:29:45 +0000
committerMax Horn2006-03-09 13:29:45 +0000
commit1d14d18893134ece3819a4c8ff92c10073c2d076 (patch)
tree5c319577cfc22fa1428a95a424cd2e2fedc38272 /engines/simon
parenta4a79dd9516a828a474ff0bfedd401511662739f (diff)
downloadscummvm-rg350-1d14d18893134ece3819a4c8ff92c10073c2d076.tar.gz
scummvm-rg350-1d14d18893134ece3819a4c8ff92c10073c2d076.tar.bz2
scummvm-rg350-1d14d18893134ece3819a4c8ff92c10073c2d076.zip
Modified SIMON engine to use DetectedGame::updateDesc
svn-id: r21176
Diffstat (limited to 'engines/simon')
-rw-r--r--engines/simon/game.cpp117
-rw-r--r--engines/simon/simon.h2
2 files changed, 63 insertions, 56 deletions
diff --git a/engines/simon/game.cpp b/engines/simon/game.cpp
index 748a502455..2c4b215dcc 100644
--- a/engines/simon/game.cpp
+++ b/engines/simon/game.cpp
@@ -382,7 +382,7 @@ static GameDescription gameDescriptions[] = {
"simon1",
GType_SIMON1,
GID_SIMON1ACORNDEMO,
- "Simon the Sorcerer 1 (English Acorn CD Demo)",
+ "CD Demo",
ARRAYSIZE(SIMON1ACORN_GameFiles),
SIMON1ACORN_GameFiles,
GF_TALKIE,
@@ -395,7 +395,7 @@ static GameDescription gameDescriptions[] = {
"simon1",
GType_SIMON1,
GID_SIMON1ACORN,
- "Simon the Sorcerer 1 (English Acorn CD)",
+ "CD",
ARRAYSIZE(SIMON1ACORN_GameFiles),
SIMON1ACORN_GameFiles,
GF_TALKIE,
@@ -408,7 +408,7 @@ static GameDescription gameDescriptions[] = {
"simon1",
GType_SIMON1,
GID_SIMON1AMIGA,
- "Simon the Sorcerer 1 (English Amiga AGA Floppy)",
+ "AGA Floppy",
ARRAYSIZE(SIMON1CD32_GameFiles),
SIMON1CD32_GameFiles,
GF_CRUNCHED | GF_OLD_BUNDLE,
@@ -421,7 +421,7 @@ static GameDescription gameDescriptions[] = {
"simon1",
GType_SIMON1,
GID_SIMON1AMIGA_FR,
- "Simon the Sorcerer 1 (French Amiga AGA Floppy)",
+ "AGA Floppy",
ARRAYSIZE(SIMON1CD32_GameFiles),
SIMON1CD32_GameFiles,
GF_CRUNCHED | GF_OLD_BUNDLE,
@@ -434,7 +434,7 @@ static GameDescription gameDescriptions[] = {
"simon1",
GType_SIMON1,
GID_SIMON1AMIGA_DE,
- "Simon the Sorcerer 1 (German Amiga AGA Floppy)",
+ "AGA Floppy",
ARRAYSIZE(SIMON1CD32_GameFiles),
SIMON1CD32_GameFiles,
GF_CRUNCHED | GF_OLD_BUNDLE,
@@ -447,7 +447,7 @@ static GameDescription gameDescriptions[] = {
"simon1",
GType_SIMON1,
GID_SIMON1AMIGADEMO,
- "Simon the Sorcerer 1 (English Amiga ECS Demo)",
+ "ECS Demo",
ARRAYSIZE(SIMON1CD32_GameFiles),
SIMON1CD32_GameFiles,
GF_CRUNCHED | GF_OLD_BUNDLE,
@@ -460,7 +460,7 @@ static GameDescription gameDescriptions[] = {
"simon1",
GType_SIMON1,
GID_SIMON1CD32,
- "Simon the Sorcerer 1 (English Amiga CD32)",
+ "CD32",
ARRAYSIZE(SIMON1CD32_GameFiles),
SIMON1CD32_GameFiles,
GF_TALKIE | GF_OLD_BUNDLE,
@@ -473,7 +473,7 @@ static GameDescription gameDescriptions[] = {
"simon1",
GType_SIMON1,
GID_SIMON1CD32_2,
- "Simon the Sorcerer 1 (English Amiga CD32)",
+ "CD32",
ARRAYSIZE(SIMON1CD32_GameFiles),
SIMON1CD32_GameFiles,
GF_TALKIE | GF_OLD_BUNDLE,
@@ -486,7 +486,7 @@ static GameDescription gameDescriptions[] = {
"simon1",
GType_SIMON1,
GID_SIMON1DEMO,
- "Simon the Sorcerer 1 (English DOS Floppy Demo)",
+ "Floppy Demo",
ARRAYSIZE(SIMON1DEMO_GameFiles),
SIMON1DEMO_GameFiles,
GF_OLD_BUNDLE,
@@ -499,7 +499,7 @@ static GameDescription gameDescriptions[] = {
"simon1",
GType_SIMON1,
GID_SIMON1DOS,
- "Simon the Sorcerer 1 (English DOS Floppy)",
+ "Floppy",
ARRAYSIZE(SIMON1DOS_GameFiles),
SIMON1DOS_GameFiles,
GF_OLD_BUNDLE,
@@ -512,7 +512,7 @@ static GameDescription gameDescriptions[] = {
"simon1",
GType_SIMON1,
GID_SIMON1DOS_RU,
- "Simon the Sorcerer 1 (Russian DOS Floppy)",
+ "Floppy",
ARRAYSIZE(SIMON1DOS_GameFiles),
SIMON1DOS_GameFiles,
GF_OLD_BUNDLE,
@@ -525,7 +525,7 @@ static GameDescription gameDescriptions[] = {
"simon1",
GType_SIMON1,
GID_SIMON1DOS_INF,
- "Simon the Sorcerer 1 (English DOS Floppy)",
+ "Floppy",
ARRAYSIZE(SIMON1DOS_GameFiles),
SIMON1DOS_GameFiles,
GF_OLD_BUNDLE,
@@ -538,7 +538,7 @@ static GameDescription gameDescriptions[] = {
"simon1",
GType_SIMON1,
GID_SIMON1DOS_INF_RU,
- "Simon the Sorcerer 1 (Russian DOS Floppy)",
+ "Floppy",
ARRAYSIZE(SIMON1DOS_GameFiles),
SIMON1DOS_GameFiles,
GF_OLD_BUNDLE,
@@ -551,7 +551,7 @@ static GameDescription gameDescriptions[] = {
"simon1",
GType_SIMON1,
GID_SIMON1DOS_FR,
- "Simon the Sorcerer 1 (French DOS Floppy)",
+ "Floppy",
ARRAYSIZE(SIMON1DOS_GameFiles),
SIMON1DOS_GameFiles,
GF_OLD_BUNDLE,
@@ -564,7 +564,7 @@ static GameDescription gameDescriptions[] = {
"simon1",
GType_SIMON1,
GID_SIMON1DOS_DE,
- "Simon the Sorcerer 1 (German DOS Floppy)",
+ "Floppy",
ARRAYSIZE(SIMON1DOS_GameFiles),
SIMON1DOS_GameFiles,
GF_OLD_BUNDLE,
@@ -577,7 +577,7 @@ static GameDescription gameDescriptions[] = {
"simon1",
GType_SIMON1,
GID_SIMON1DOS_IT,
- "Simon the Sorcerer 1 (Italian DOS Floppy)",
+ "Floppy",
ARRAYSIZE(SIMON1DOS_GameFiles),
SIMON1DOS_GameFiles,
GF_OLD_BUNDLE,
@@ -590,7 +590,7 @@ static GameDescription gameDescriptions[] = {
"simon1",
GType_SIMON1,
GID_SIMON1DOS_ES,
- "Simon the Sorcerer 1 (Spanish DOS Floppy)",
+ "Floppy",
ARRAYSIZE(SIMON1DOS_GameFiles),
SIMON1DOS_GameFiles,
GF_OLD_BUNDLE,
@@ -603,7 +603,7 @@ static GameDescription gameDescriptions[] = {
"simon1",
GType_SIMON1,
GID_SIMON1TALKIE,
- "Simon the Sorcerer 1 (English DOS CD)",
+ "CD",
ARRAYSIZE(SIMON1_GameFiles),
SIMON1_GameFiles,
GF_TALKIE,
@@ -616,7 +616,7 @@ static GameDescription gameDescriptions[] = {
"simon1",
GType_SIMON1,
GID_SIMON1TALKIE2,
- "Simon the Sorcerer 1 (English DOS CD)",
+ "CD",
ARRAYSIZE(SIMON1_GameFiles),
SIMON1_GameFiles,
GF_TALKIE,
@@ -629,7 +629,7 @@ static GameDescription gameDescriptions[] = {
"simon1",
GType_SIMON1,
GID_SIMON1TALKIE_FR,
- "Simon the Sorcerer 1 (French DOS CD)",
+ "CD",
ARRAYSIZE(SIMON1_GameFiles),
SIMON1_GameFiles,
GF_TALKIE,
@@ -642,7 +642,7 @@ static GameDescription gameDescriptions[] = {
"simon1",
GType_SIMON1,
GID_SIMON1TALKIE_DE,
- "Simon the Sorcerer 1 (German DOS CD)",
+ "CD",
ARRAYSIZE(SIMON1_GameFiles),
SIMON1_GameFiles,
GF_TALKIE,
@@ -655,7 +655,7 @@ static GameDescription gameDescriptions[] = {
"simon1",
GType_SIMON1,
GID_SIMON1TALKIE_HB,
- "Simon the Sorcerer 1 (Hebrew DOS CD)",
+ "CD",
ARRAYSIZE(SIMON1_GameFiles),
SIMON1_GameFiles,
GF_TALKIE,
@@ -668,7 +668,7 @@ static GameDescription gameDescriptions[] = {
"simon1",
GType_SIMON1,
GID_SIMON1TALKIE_IT,
- "Simon the Sorcerer 1 (Italian DOS CD)",
+ "CD",
ARRAYSIZE(SIMON1_GameFiles),
SIMON1_GameFiles,
GF_TALKIE,
@@ -681,7 +681,7 @@ static GameDescription gameDescriptions[] = {
"simon1",
GType_SIMON1,
GID_SIMON1TALKIE_ES,
- "Simon the Sorcerer 1 (Spanish DOS CD)",
+ "CD",
ARRAYSIZE(SIMON1_GameFiles),
SIMON1_GameFiles,
GF_TALKIE,
@@ -694,7 +694,7 @@ static GameDescription gameDescriptions[] = {
"simon1",
GType_SIMON1,
GID_SIMON1WIN,
- "Simon the Sorcerer 1 (English Windows CD)",
+ "CD",
ARRAYSIZE(SIMON1_GameFiles),
SIMON1_GameFiles,
GF_TALKIE,
@@ -707,7 +707,7 @@ static GameDescription gameDescriptions[] = {
"simon1",
GType_SIMON1,
GID_SIMON1WIN_DE,
- "Simon the Sorcerer 1 (German Windows CD)",
+ "CD",
ARRAYSIZE(SIMON1_GameFiles),
SIMON1_GameFiles,
GF_TALKIE,
@@ -720,7 +720,7 @@ static GameDescription gameDescriptions[] = {
"simon2",
GType_SIMON2,
GID_SIMON2DOS,
- "Simon the Sorcerer 2 (English DOS Floppy)",
+ "Floppy",
ARRAYSIZE(SIMON2DOS_GameFiles),
SIMON2DOS_GameFiles,
0,
@@ -733,7 +733,7 @@ static GameDescription gameDescriptions[] = {
"simon2",
GType_SIMON2,
GID_SIMON2DOS_RU,
- "Simon the Sorcerer 2 (Russian DOS Floppy)",
+ "Floppy",
ARRAYSIZE(SIMON2DOS_GameFiles),
SIMON2DOS_GameFiles,
0,
@@ -746,7 +746,7 @@ static GameDescription gameDescriptions[] = {
"simon2",
GType_SIMON2,
GID_SIMON2DOS2,
- "Simon the Sorcerer 2 (English DOS Floppy)",
+ "Floppy",
ARRAYSIZE(SIMON2DOS_GameFiles),
SIMON2DOS_GameFiles,
0,
@@ -759,7 +759,7 @@ static GameDescription gameDescriptions[] = {
"simon2",
GType_SIMON2,
GID_SIMON2DOS2_RU,
- "Simon the Sorcerer 2 (Russian DOS Floppy)",
+ "Floppy",
ARRAYSIZE(SIMON2DOS_GameFiles),
SIMON2DOS_GameFiles,
0,
@@ -772,7 +772,7 @@ static GameDescription gameDescriptions[] = {
"simon2",
GType_SIMON2,
GID_SIMON2DOS_DE,
- "Simon the Sorcerer 2 (German DOS Floppy)",
+ "Floppy",
ARRAYSIZE(SIMON2DOS_GameFiles),
SIMON2DOS_GameFiles,
0,
@@ -785,7 +785,7 @@ static GameDescription gameDescriptions[] = {
"simon2",
GType_SIMON2,
GID_SIMON2DOS_IT,
- "Simon the Sorcerer 2 (Italian DOS Floppy)",
+ "Floppy",
ARRAYSIZE(SIMON2DOS_GameFiles),
SIMON2DOS_GameFiles,
0,
@@ -798,7 +798,7 @@ static GameDescription gameDescriptions[] = {
"simon2",
GType_SIMON2,
GID_SIMON2DEMO,
- "Simon the Sorcerer 2 (English DOS CD Demo)",
+ "CD Demo",
ARRAYSIZE(SIMON2_GameFiles),
SIMON2_GameFiles,
GF_TALKIE,
@@ -811,7 +811,7 @@ static GameDescription gameDescriptions[] = {
"simon2",
GType_SIMON2,
GID_SIMON2TALKIE,
- "Simon the Sorcerer 2 (English DOS CD)",
+ "CD",
ARRAYSIZE(SIMON2_GameFiles),
SIMON2_GameFiles,
GF_TALKIE,
@@ -825,7 +825,7 @@ static GameDescription gameDescriptions[] = {
"simon2",
GType_SIMON2,
GID_SIMON2TALKIE2,
- "Simon the Sorcerer 2 (English DOS CD)",
+ "CD",
ARRAYSIZE(SIMON2_GameFiles),
SIMON2_GameFiles,
GF_TALKIE,
@@ -838,7 +838,7 @@ static GameDescription gameDescriptions[] = {
"simon2",
GType_SIMON2,
GID_SIMON2TALKIE_FR,
- "Simon the Sorcerer 2 (French DOS CD)",
+ "CD",
ARRAYSIZE(SIMON2_GameFiles),
SIMON2_GameFiles,
GF_TALKIE,
@@ -851,7 +851,7 @@ static GameDescription gameDescriptions[] = {
"simon2",
GType_SIMON2,
GID_SIMON2TALKIE_DE,
- "Simon the Sorcerer 2 (German DOS CD)",
+ "CD",
ARRAYSIZE(SIMON2_GameFiles),
SIMON2_GameFiles,
GF_TALKIE,
@@ -864,7 +864,7 @@ static GameDescription gameDescriptions[] = {
"simon2",
GType_SIMON2,
GID_SIMON2TALKIE_DE2,
- "Simon the Sorcerer 2 (German DOS CD)",
+ "CD",
ARRAYSIZE(SIMON2_GameFiles),
SIMON2_GameFiles,
GF_TALKIE,
@@ -877,7 +877,7 @@ static GameDescription gameDescriptions[] = {
"simon2",
GType_SIMON2,
GID_SIMON2TALKIE_HB,
- "Simon the Sorcerer 2 (Hebrew DOS CD)",
+ "CD",
ARRAYSIZE(SIMON2_GameFiles),
SIMON2_GameFiles,
GF_TALKIE,
@@ -890,7 +890,7 @@ static GameDescription gameDescriptions[] = {
"simon2",
GType_SIMON2,
GID_SIMON2TALKIE_IT,
- "Simon the Sorcerer 2 (Italian DOS CD)",
+ "CD",
ARRAYSIZE(SIMON2_GameFiles),
SIMON2_GameFiles,
GF_TALKIE,
@@ -904,7 +904,7 @@ static GameDescription gameDescriptions[] = {
"simon2",
GType_SIMON2,
GID_SIMON2TALKIE_ES,
- "Simon the Sorcerer 2 (Spanish DOS CD)",
+ "CD",
ARRAYSIZE(SIMON2_GameFiles),
SIMON2_GameFiles,
GF_TALKIE,
@@ -917,7 +917,7 @@ static GameDescription gameDescriptions[] = {
"simon2",
GType_SIMON2,
GID_SIMON2WIN,
- "Simon the Sorcerer 2 (English Windows CD)",
+ "CD",
ARRAYSIZE(SIMON2_GameFiles),
SIMON2_GameFiles,
GF_TALKIE,
@@ -930,7 +930,7 @@ static GameDescription gameDescriptions[] = {
"simon2",
GType_SIMON2,
GID_SIMON2WIN_DE,
- "Simon the Sorcerer 2 (German Windows CD)",
+ "CD",
ARRAYSIZE(SIMON2_GameFiles),
SIMON2_GameFiles,
GF_TALKIE,
@@ -943,7 +943,7 @@ static GameDescription gameDescriptions[] = {
"simon2",
GType_SIMON2,
GID_SIMON2WIN_DE2,
- "Simon the Sorcerer 2 (German Windows CD)",
+ "CD",
ARRAYSIZE(SIMON2_GameFiles),
SIMON2_GameFiles,
GF_TALKIE,
@@ -956,7 +956,7 @@ static GameDescription gameDescriptions[] = {
"simon2",
GType_SIMON2,
GID_SIMON2WIN_PL,
- "Simon the Sorcerer 2 (Polish Windows CD)",
+ "CD",
ARRAYSIZE(SIMON2_GameFiles),
SIMON2_GameFiles,
GF_TALKIE,
@@ -969,7 +969,7 @@ static GameDescription gameDescriptions[] = {
"feeble",
GType_FF,
GID_FEEBLEFILES_2CD,
- "The Feeble Files (English 2CD)",
+ "2CD",
ARRAYSIZE(FEEBLEFILES_GameFiles),
FEEBLEFILES_GameFiles,
GF_OLD_BUNDLE | GF_TALKIE,
@@ -982,7 +982,7 @@ static GameDescription gameDescriptions[] = {
"feeble",
GType_FF,
GID_FEEBLEFILES_4CD,
- "The Feeble Files (English 4CD)",
+ "4CD",
ARRAYSIZE(FEEBLEFILES_GameFiles),
FEEBLEFILES_GameFiles,
GF_OLD_BUNDLE | GF_TALKIE,
@@ -995,7 +995,7 @@ static GameDescription gameDescriptions[] = {
"feeble",
GType_FF,
GID_FEEBLEFILES_DE,
- "The Feeble Files (German 4CD)",
+ "4CD",
ARRAYSIZE(FEEBLEFILES_GameFiles),
FEEBLEFILES_GameFiles,
GF_OLD_BUNDLE | GF_TALKIE,
@@ -1013,7 +1013,7 @@ bool SimonEngine::initGame(void) {
return false;
}
- debug(0, "Running %s", gameDescriptions[gameNumber].title);
+ debug(0, "Running %d (%s)", gameNumber, gameDescriptions[gameNumber].extra);
_gameDescription = &gameDescriptions[gameNumber];
@@ -1060,7 +1060,7 @@ DetectedGameList GAME_ProbeGame(const FSList &fslist, int **retmatches) {
if (gameMD5[j].id == gameDescriptions[matches[i]].gameId)
count++;
if (count < maxcount) {
- debug(2, "Purged: %s", gameDescriptions[matches[i]].title);
+ debug(2, "Purged: %d (%s)", matches[i], gameDescriptions[matches[i]].extra);
matches[i] = -1;
}
}
@@ -1071,9 +1071,16 @@ DetectedGameList GAME_ProbeGame(const FSList &fslist, int **retmatches) {
for (i = 0; i < index; i++)
if (matches[i] != -1) {
GameDescription &g = gameDescriptions[matches[i]];
- detectedGames.push_back(DetectedGame(g.name, g.title,
- g.language,
- g.platform));
+ const char *title = 0;
+ if (g.gameType == GType_SIMON1)
+ title = "Simon the Sorcerer 1";
+ else if (g.gameType == GType_SIMON2)
+ title = "Simon the Sorcerer 2";
+ else if (g.gameType == GType_FF)
+ title = "The Feeble Files";
+ DetectedGame dg(g.name, title, g.language, g.platform);
+ dg.updateDesc(g.extra);
+ detectedGames.push_back(dg);
}
if (retmatches) {
@@ -1172,7 +1179,7 @@ int detectGame(const FSList &fslist, bool mode, int start) {
} else {
bool match = true;
- debug(0, "Probing game: %s", gameDescriptions[game_n].title);
+ debug(0, "Probing game: %d (%s)", game_n, gameDescriptions[game_n].extra);
for (int i = 0; i < ARRAYSIZE(gameMD5); i++) {
if (gameMD5[i].id == gameDescriptions[game_n].gameId) {
@@ -1187,7 +1194,7 @@ int detectGame(const FSList &fslist, bool mode, int start) {
if (!match)
continue;
- debug(0, "Found game: %s", gameDescriptions[game_n].title);
+ debug(0, "Found game: %d (%s)", game_n, gameDescriptions[game_n].extra);
return game_n;
}
diff --git a/engines/simon/simon.h b/engines/simon/simon.h
index 02199e037f..cc2df2a3b3 100644
--- a/engines/simon/simon.h
+++ b/engines/simon/simon.h
@@ -120,7 +120,7 @@ struct GameDescription {
const char *name;
SimonTypes gameType;
GameIds gameId;
- const char *title;
+ const char *extra;
int filesCount;
GameFileDescription *filesDescriptions;
uint32 features;