- added detection of second demo version

- moved the resource entries tables to an external file (IGOR.TBL)
- added tool to build IGOR.TBL

svn-id: r29332
This commit is contained in:
Gregory Montoir 2007-10-30 22:35:10 +00:00
parent bb0bbdef57
commit 2a1c68b8a6
7 changed files with 523 additions and 17 deletions

View file

@ -31,12 +31,22 @@
#include "igor/igor.h"
static const PlainGameDescriptor igorGameDescriptor = {
"igor", "Igor: Objective Uikokahonia"
struct GameDetectVersion {
uint32 borlandOverlaySize;
const char *versionString;
};
static const GameDetectVersion igorDetectVersionsTable[] = {
{ 4086790, " 1.00s" },
{ 4094103, " 1.10s" },
{ 0, 0 }
};
static const char *igorDetectFileName = "IGOR.DAT";
static uint32 igorDetectFileSize = 4086790;
static const PlainGameDescriptor igorGameDescriptor = {
"igor", "Igor: Objective Uikokahonia"
};
GameList Engine_IGOR_gameIDList() {
GameList games;
@ -63,11 +73,18 @@ GameList Engine_IGOR_detectGames(const FSList &fslist) {
continue;
}
const uint32 sig = f.readUint32BE();
if (sig == MKID_BE('FBOV') && f.size() == igorDetectFileSize) {
GameDescriptor gd(igorGameDescriptor.gameid, igorGameDescriptor.description, Common::EN_ANY, Common::kPlatformPC);
gd.updateDesc("Demo");
detectedGames.push_back(gd);
break;
if (sig == MKID_BE('FBOV')) {
const uint32 fileSize = f.size();
for (int i = 0; igorDetectVersionsTable[i].borlandOverlaySize; ++i) {
if (igorDetectVersionsTable[i].borlandOverlaySize != fileSize) {
continue;
}
GameDescriptor gd(igorGameDescriptor.gameid, igorGameDescriptor.description, Common::EN_ANY, Common::kPlatformPC);
gd.description() += igorDetectVersionsTable[i].versionString;
gd.updateDesc("Demo");
detectedGames.push_back(gd);
break;
}
}
}
}