aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorEugene Sandulenko2007-01-20 21:27:57 +0000
committerEugene Sandulenko2007-01-20 21:27:57 +0000
commitcd8a5f3a98287fe7366db100c2fb45ff986e2d1b (patch)
treec3acca9454ff39fc71da8444eb98494683a6261f /engines
parent47b1321d1520eabcfa4d971bd945f4461eeada49 (diff)
downloadscummvm-rg350-cd8a5f3a98287fe7366db100c2fb45ff986e2d1b.tar.gz
scummvm-rg350-cd8a5f3a98287fe7366db100c2fb45ff986e2d1b.tar.bz2
scummvm-rg350-cd8a5f3a98287fe7366db100c2fb45ff986e2d1b.zip
First phase of detection-related plugins interface improvements. Now plugins
return StringMap instead of fixed list of parameters. This adds great flexibility. Current patch should not alter any functionality, i.e. if there are regressions, submit a report. Phase 2 will benefit from these changes and will come later. svn-id: r25134
Diffstat (limited to 'engines')
-rw-r--r--engines/agi/detection.cpp4
-rw-r--r--engines/agos/game.cpp4
-rw-r--r--engines/cine/detection.cpp4
-rw-r--r--engines/gob/gob.cpp8
-rw-r--r--engines/kyra/plugin.cpp2
-rw-r--r--engines/lure/lure.cpp8
-rw-r--r--engines/parallaction/detection.cpp4
-rw-r--r--engines/queen/queen.cpp6
-rw-r--r--engines/saga/game.cpp4
-rw-r--r--engines/scumm/plugin.cpp10
-rw-r--r--engines/sky/sky.cpp6
-rw-r--r--engines/sword1/sword1.cpp4
-rw-r--r--engines/sword2/sword2.cpp14
-rw-r--r--engines/touche/plugin.cpp10
14 files changed, 44 insertions, 44 deletions
diff --git a/engines/agi/detection.cpp b/engines/agi/detection.cpp
index d32e49e330..1b4e35fea4 100644
--- a/engines/agi/detection.cpp
+++ b/engines/agi/detection.cpp
@@ -31,7 +31,7 @@
namespace Agi {
-static DetectedGameList GAME_detectGames(const FSList &fslist);
+static GameList GAME_detectGames(const FSList &fslist);
}
static const PlainGameDescriptor agiGames[] = {
@@ -958,7 +958,7 @@ bool AgiEngine::initGame() {
return true;
}
-DetectedGameList GAME_detectGames(const FSList &fslist) {
+GameList GAME_detectGames(const FSList &fslist) {
return Common::ADVANCED_DETECTOR_DETECT_GAMES_FUNCTION(
fslist,
(const byte *)gameDescriptions,
diff --git a/engines/agos/game.cpp b/engines/agos/game.cpp
index 671457665a..545b1800d3 100644
--- a/engines/agos/game.cpp
+++ b/engines/agos/game.cpp
@@ -32,7 +32,7 @@
#include "agos/agos.h"
namespace AGOS {
-static DetectedGameList GAME_detectGames(const FSList &fslist);
+static GameList GAME_detectGames(const FSList &fslist);
}
/**
@@ -88,7 +88,7 @@ bool AGOSEngine::initGame() {
return true;
}
-DetectedGameList GAME_detectGames(const FSList &fslist) {
+GameList GAME_detectGames(const FSList &fslist) {
return Common::ADVANCED_DETECTOR_DETECT_GAMES_FUNCTION(
fslist,
(const byte *)gameDescriptions,
diff --git a/engines/cine/detection.cpp b/engines/cine/detection.cpp
index c21a66d91c..1a4df5ce00 100644
--- a/engines/cine/detection.cpp
+++ b/engines/cine/detection.cpp
@@ -32,7 +32,7 @@
#include "cine/cine.h"
namespace Cine {
-static DetectedGameList GAME_detectGames(const FSList &fslist);
+static GameList GAME_detectGames(const FSList &fslist);
}
static const PlainGameDescriptor cineGames[] = {
@@ -433,7 +433,7 @@ bool CineEngine::initGame() {
return true;
}
-DetectedGameList GAME_detectGames(const FSList &fslist) {
+GameList GAME_detectGames(const FSList &fslist) {
return Common::ADVANCED_DETECTOR_DETECT_GAMES_FUNCTION(
fslist,
(const byte *)gameDescriptions,
diff --git a/engines/gob/gob.cpp b/engines/gob/gob.cpp
index dc6cd2cfef..2dbcfb0db7 100644
--- a/engines/gob/gob.cpp
+++ b/engines/gob/gob.cpp
@@ -813,11 +813,11 @@ GameDescriptor Engine_GOB_findGameID(const char *gameid) {
break;
g++;
}
- return *g;
+ return GameDescriptor(g->gameid, g->description);
}
-DetectedGameList Engine_GOB_detectGames(const FSList &fslist) {
- DetectedGameList detectedGames;
+GameList Engine_GOB_detectGames(const FSList &fslist) {
+ GameList detectedGames;
const GameSettings *g;
FSList::const_iterator file;
@@ -843,7 +843,7 @@ DetectedGameList Engine_GOB_detectGames(const FSList &fslist) {
}
for (g = gob_games; g->gameid; g++) {
if (strcmp(g->md5sum, (char *)md5str) == 0) {
- detectedGames.push_back(DetectedGame(g->gameid, g->description));
+ detectedGames.push_back(GameDescriptor(g->gameid, g->description));
}
}
if (detectedGames.empty()) {
diff --git a/engines/kyra/plugin.cpp b/engines/kyra/plugin.cpp
index 0a7568b966..0f48af6f75 100644
--- a/engines/kyra/plugin.cpp
+++ b/engines/kyra/plugin.cpp
@@ -140,7 +140,7 @@ GameDescriptor Engine_KYRA_findGameID(const char *gameid) {
return Common::ADVANCED_DETECTOR_FIND_GAMEID(gameid, gameList, 0);
}
-DetectedGameList Engine_KYRA_detectGames(const FSList &fslist) {
+GameList Engine_KYRA_detectGames(const FSList &fslist) {
return Common::ADVANCED_DETECTOR_DETECT_GAMES_FUNCTION(
fslist,
(const byte *)adGameDescs,
diff --git a/engines/lure/lure.cpp b/engines/lure/lure.cpp
index 8a65861e0f..5d2bb06b7a 100644
--- a/engines/lure/lure.cpp
+++ b/engines/lure/lure.cpp
@@ -103,11 +103,11 @@ GameDescriptor Engine_LURE_findGameID(const char *gameid) {
break;
g++;
}
- return *g;
+ return GameDescriptor(g->gameid, g->description);
}
-DetectedGameList Engine_LURE_detectGames(const FSList &fslist) {
- DetectedGameList detectedGames;
+GameList Engine_LURE_detectGames(const FSList &fslist) {
+ GameList detectedGames;
const GameSettings *g;
FSList::const_iterator file;
@@ -137,7 +137,7 @@ DetectedGameList Engine_LURE_detectGames(const FSList &fslist) {
}
for (g = lure_games; g->gameid; g++) {
if (strcmp(g->md5sum, (char *)md5str) == 0) {
- DetectedGame dg(*g, g->language);
+ GameDescriptor dg(g->gameid, g->description, g->language);
dg.updateDesc((g->features & GF_FLOPPY) ? "Floppy" : 0);
detectedGames.push_back(dg);
}
diff --git a/engines/parallaction/detection.cpp b/engines/parallaction/detection.cpp
index b0b9b2f1ad..3f51f7c834 100644
--- a/engines/parallaction/detection.cpp
+++ b/engines/parallaction/detection.cpp
@@ -30,7 +30,7 @@
#include "parallaction/parallaction.h"
namespace Parallaction {
-static DetectedGameList GAME_detectGames(const FSList &fslist);
+static GameList GAME_detectGames(const FSList &fslist);
}
static const PlainGameDescriptor parallactionGames[] = {
@@ -84,7 +84,7 @@ bool Parallaction::detectGame() {
return true;
}
-DetectedGameList GAME_detectGames(const FSList &fslist) {
+GameList GAME_detectGames(const FSList &fslist) {
return Common::ADVANCED_DETECTOR_DETECT_GAMES_FUNCTION(
fslist,
(const byte *)gameDescriptions,
diff --git a/engines/queen/queen.cpp b/engines/queen/queen.cpp
index 72ae09cffe..134f24fe29 100644
--- a/engines/queen/queen.cpp
+++ b/engines/queen/queen.cpp
@@ -65,8 +65,8 @@ GameDescriptor Engine_QUEEN_findGameID(const char *gameid) {
return GameDescriptor();
}
-DetectedGameList Engine_QUEEN_detectGames(const FSList &fslist) {
- DetectedGameList detectedGames;
+GameList Engine_QUEEN_detectGames(const FSList &fslist) {
+ GameList detectedGames;
// Iterate over all files in the given directory
for (FSList::const_iterator file = fslist.begin(); file != fslist.end(); ++file) {
@@ -80,7 +80,7 @@ DetectedGameList Engine_QUEEN_detectGames(const FSList &fslist) {
}
Queen::DetectedGameVersion version;
if (Queen::Resource::detectVersion(&version, &dataFile)) {
- DetectedGame dg(queenGameDescriptor, version.language, Common::kPlatformPC);
+ GameDescriptor dg(queenGameDescriptor.gameid, queenGameDescriptor.description, version.language, Common::kPlatformPC);
if (version.features & Queen::GF_DEMO) {
dg.updateDesc("Demo");
} else if (version.features & Queen::GF_INTERVIEW) {
diff --git a/engines/saga/game.cpp b/engines/saga/game.cpp
index ff1b7d4ab5..1ecaa09bbf 100644
--- a/engines/saga/game.cpp
+++ b/engines/saga/game.cpp
@@ -39,7 +39,7 @@
namespace Saga {
-static DetectedGameList GAME_detectGames(const FSList &fslist);
+static GameList GAME_detectGames(const FSList &fslist);
}
static const PlainGameDescriptor saga_games[] = {
@@ -73,7 +73,7 @@ bool SagaEngine::initGame() {
return _resource->createContexts();
}
-DetectedGameList GAME_detectGames(const FSList &fslist) {
+GameList GAME_detectGames(const FSList &fslist) {
return Common::ADVANCED_DETECTOR_DETECT_GAMES_FUNCTION(
fslist,
(const byte *)gameDescriptions,
diff --git a/engines/scumm/plugin.cpp b/engines/scumm/plugin.cpp
index 722336ed7c..9422e6982c 100644
--- a/engines/scumm/plugin.cpp
+++ b/engines/scumm/plugin.cpp
@@ -1360,8 +1360,8 @@ GameDescriptor Engine_SCUMM_findGameID(const char *gameid) {
const ObsoleteGameID *o = obsoleteGameIDsTable;
while (o->from) {
if (0 == scumm_stricmp(gameid, o->from)) {
- gs.gameid = gameid;
- gs.description = "Obsolete game ID";
+ gs["gameid"] = gameid;
+ gs["description"] = "Obsolete game ID";
return gs;
}
o++;
@@ -1370,15 +1370,15 @@ GameDescriptor Engine_SCUMM_findGameID(const char *gameid) {
}
-DetectedGameList Engine_SCUMM_detectGames(const FSList &fslist) {
- DetectedGameList detectedGames;
+GameList Engine_SCUMM_detectGames(const FSList &fslist) {
+ GameList detectedGames;
Common::List<DetectorResult> results;
detectGames(fslist, results, 0);
for (Common::List<DetectorResult>::iterator x = results.begin(); x != results.end(); ++x) {
- DetectedGame dg(x->game.gameid, findDescriptionFromGameID(x->game.gameid),
+ GameDescriptor dg(x->game.gameid, findDescriptionFromGameID(x->game.gameid),
x->language, x->game.platform);
dg.updateDesc(x->extra); // Append additional information, if set, to the description.
detectedGames.push_back(dg);
diff --git a/engines/sky/sky.cpp b/engines/sky/sky.cpp
index 5aa752e3b0..dd8c800c29 100644
--- a/engines/sky/sky.cpp
+++ b/engines/sky/sky.cpp
@@ -110,8 +110,8 @@ static const SkyVersion skyVersions[] = {
{ 0, 0, 0, 0 }
};
-DetectedGameList Engine_SKY_detectGames(const FSList &fslist) {
- DetectedGameList detectedGames;
+GameList Engine_SKY_detectGames(const FSList &fslist) {
+ GameList detectedGames;
bool hasSkyDsk = false;
bool hasSkyDnr = false;
int dinnerTableEntries = -1;
@@ -144,7 +144,7 @@ DetectedGameList Engine_SKY_detectGames(const FSList &fslist) {
// Match found, add to list of candidates, then abort inner loop.
// The game detector uses US English by default. We want British
// English to match the recorded voices better.
- DetectedGame dg(skySetting, Common::UNK_LANG, Common::kPlatformUnknown);
+ GameDescriptor dg(skySetting.gameid, skySetting.description, Common::UNK_LANG, Common::kPlatformUnknown);
const SkyVersion *sv = skyVersions;
while (sv->dinnerTableEntries) {
if (dinnerTableEntries == sv->dinnerTableEntries &&
diff --git a/engines/sword1/sword1.cpp b/engines/sword1/sword1.cpp
index 32ccd85439..e830f7fd98 100644
--- a/engines/sword1/sword1.cpp
+++ b/engines/sword1/sword1.cpp
@@ -118,9 +118,9 @@ void Sword1CheckDirectory(const FSList &fslist, bool *filesFound) {
}
}
-DetectedGameList Engine_SWORD1_detectGames(const FSList &fslist) {
+GameList Engine_SWORD1_detectGames(const FSList &fslist) {
int i, j;
- DetectedGameList detectedGames;
+ GameList detectedGames;
bool filesFound[NUM_FILES_TO_CHECK];
for (i = 0; i < NUM_FILES_TO_CHECK; i++)
filesFound[i] = false;
diff --git a/engines/sword2/sword2.cpp b/engines/sword2/sword2.cpp
index adaeef1ba5..f0f87cc370 100644
--- a/engines/sword2/sword2.cpp
+++ b/engines/sword2/sword2.cpp
@@ -65,7 +65,7 @@ GameList Engine_SWORD2_gameIDList() {
const Sword2::GameSettings *g = Sword2::sword2_settings;
GameList games;
while (g->gameid) {
- games.push_back(*g);
+ games.push_back(GameDescriptor(g->gameid, g->description));
g++;
}
return games;
@@ -78,11 +78,11 @@ GameDescriptor Engine_SWORD2_findGameID(const char *gameid) {
break;
g++;
}
- return *g;
+ return GameDescriptor(g->gameid, g->description);
}
-DetectedGameList Engine_SWORD2_detectGames(const FSList &fslist) {
- DetectedGameList detectedGames;
+GameList Engine_SWORD2_detectGames(const FSList &fslist) {
+ GameList detectedGames;
const Sword2::GameSettings *g;
// TODO: It would be nice if we had code here which distinguishes
@@ -97,7 +97,7 @@ DetectedGameList Engine_SWORD2_detectGames(const FSList &fslist) {
if (0 == scumm_stricmp(g->detectname, fileName)) {
// Match found, add to list of candidates, then abort inner loop.
- detectedGames.push_back(*g);
+ detectedGames.push_back(GameDescriptor(g->gameid, g->description));
break;
}
}
@@ -118,10 +118,10 @@ PluginError Engine_SWORD2_create(OSystem *syst, Engine **engine) {
// Invoke the detector
Common::String gameid = ConfMan.get("gameid");
- DetectedGameList detectedGames = Engine_SWORD2_detectGames(fslist);
+ GameList detectedGames = Engine_SWORD2_detectGames(fslist);
for (uint i = 0; i < detectedGames.size(); i++) {
- if (detectedGames[i].gameid == gameid) {
+ if (detectedGames[i].gameid() == gameid) {
*engine = new Sword2::Sword2Engine(syst);
return kNoError;
}
diff --git a/engines/touche/plugin.cpp b/engines/touche/plugin.cpp
index 168223b6f3..08c2a49bd9 100644
--- a/engines/touche/plugin.cpp
+++ b/engines/touche/plugin.cpp
@@ -123,7 +123,7 @@ GameDescriptor Engine_TOUCHE_findGameID(const char *gameid) {
return GameDescriptor();
}
-DetectedGameList Engine_TOUCHE_detectGames(const FSList &fslist) {
+GameList Engine_TOUCHE_detectGames(const FSList &fslist) {
bool foundFile = false;
FSList::const_iterator file;
for (file = fslist.begin(); file != fslist.end(); ++file) {
@@ -140,7 +140,7 @@ DetectedGameList Engine_TOUCHE_detectGames(const FSList &fslist) {
break;
}
}
- DetectedGameList detectedGames;
+ GameList detectedGames;
if (foundFile) {
// Currently, the detection code is based on a MD5 checksum. If all known versions
// have a different file size for TOUCHE.DAT, we may consider using this to do the
@@ -150,7 +150,7 @@ DetectedGameList Engine_TOUCHE_detectGames(const FSList &fslist) {
for (int i = 0; i < ARRAYSIZE(toucheGameVersionsTable); ++i) {
const GameVersion *gv = &toucheGameVersionsTable[i];
if (md5digest.equalsIgnoreCase(gv->md5digest)) {
- DetectedGame dg(toucheGameDescriptor.gameid, gv->description, gv->language, gv->platform);
+ GameDescriptor dg(toucheGameDescriptor.gameid, gv->description, gv->language, gv->platform);
detectedGames.push_back(dg);
break;
}
@@ -172,12 +172,12 @@ PluginError Engine_TOUCHE_create(OSystem *system, Engine **engine) {
if (!dir.listDir(fslist, FilesystemNode::kListFilesOnly)) {
return kInvalidPathError;
}
- DetectedGameList game = Engine_TOUCHE_detectGames(fslist);
+ GameList game = Engine_TOUCHE_detectGames(fslist);
if (game.size() != 1) {
return kNoGameDataFoundError;
}
assert(engine);
- *engine = new Touche::ToucheEngine(system, game[0].language);
+ *engine = new Touche::ToucheEngine(system, game[0].language());
return kNoError;
}