Skip to content

Commit

Permalink
GOB: Reorganize the detection tables
Browse files Browse the repository at this point in the history
The big table with it's 330 entries grew far too messy and
unwieldy, so I'm splitting it into several files.

One file for each game, with some exceptions:
- The Playtoons series
- The ADI / Addy 2 series
- The ADI / Addy 4 series
- The Adibou / Addy Junior series
  • Loading branch information
DrMcCoy committed Jun 22, 2012
1 parent ac7fbc4 commit 07b17f7
Show file tree
Hide file tree
Showing 23 changed files with 6,209 additions and 5,337 deletions.
62 changes: 2 additions & 60 deletions engines/gob/detection.cpp → engines/gob/detection/detection.cpp
Expand Up @@ -26,66 +26,7 @@

#include "gob/gob.h"

namespace Gob {

struct GOBGameDescription {
ADGameDescription desc;

GameType gameType;
int32 features;
const char *startStkBase;
const char *startTotBase;
uint32 demoIndex;
};

}

using namespace Common;

static const PlainGameDescriptor gobGames[] = {
{"gob", "Gob engine game"},
{"gob1", "Gobliiins"},
{"gob1cd", "Gobliiins CD"},
{"gob2", "Gobliins 2"},
{"gob2cd", "Gobliins 2 CD"},
{"ween", "Ween: The Prophecy"},
{"bargon", "Bargon Attack"},
{"littlered", "Once Upon A Time: Little Red Riding Hood"},
{"ajworld", "A.J.'s World of Discovery"},
{"gob3", "Goblins Quest 3"},
{"gob3cd", "Goblins Quest 3 CD"},
{"lit1", "Lost in Time Part 1"},
{"lit2", "Lost in Time Part 2"},
{"lit", "Lost in Time"},
{"inca2", "Inca II: Wiracocha"},
{"woodruff", "The Bizarre Adventures of Woodruff and the Schnibble"},
{"dynasty", "The Last Dynasty"},
{"urban", "Urban Runner"},
{"playtoons1", "Playtoons 1 - Uncle Archibald"},
{"playtoons2", "Playtoons 2 - The Case of the Counterfeit Collaborator"},
{"playtoons3", "Playtoons 3 - The Secret of the Castle"},
{"playtoons4", "Playtoons 4 - The Mandarine Prince"},
{"playtoons5", "Playtoons 5 - The Stone of Wakan"},
{"playtnck1", "Playtoons Construction Kit 1 - Monsters"},
{"playtnck2", "Playtoons Construction Kit 2 - Knights"},
{"playtnck3", "Playtoons Construction Kit 3 - Far West"},
{"bambou", "Playtoons Limited Edition - Bambou le sauveur de la jungle"},
{"fascination", "Fascination"},
{"geisha", "Geisha"},
{"adi2", "ADI 2"},
{"adi4", "ADI 4"},
{"adibou2", "Adibou 2"},
{"adibou1", "Adibou 1"},
{0, 0}
};

static const Engines::ObsoleteGameID obsoleteGameIDsTable[] = {
{"gob1", "gob", kPlatformUnknown},
{"gob2", "gob", kPlatformUnknown},
{0, 0, kPlatformUnknown}
};

#include "gob/detection_tables.h"
#include "gob/detection/tables.h"

class GobMetaEngine : public AdvancedMetaEngine {
public:
Expand Down Expand Up @@ -162,4 +103,5 @@ void GobEngine::initGame(const GOBGameDescription *gd) {
_language = gd->desc.language;
_platform = gd->desc.platform;
}

} // End of namespace Gob
117 changes: 117 additions & 0 deletions engines/gob/detection/tables.h
@@ -0,0 +1,117 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/

#ifndef GOB_DETECTION_TABLES_H
#define GOB_DETECTION_TABLES_H

namespace Gob {

struct GOBGameDescription {
ADGameDescription desc;

GameType gameType;
int32 features;
const char *startStkBase;
const char *startTotBase;
uint32 demoIndex;
};

}

using namespace Common;

// Game IDs and proper names
static const PlainGameDescriptor gobGames[] = {
{"gob", "Gob engine game"},
{"gob1", "Gobliiins"},
{"gob1cd", "Gobliiins CD"},
{"gob2", "Gobliins 2"},
{"gob2cd", "Gobliins 2 CD"},
{"ween", "Ween: The Prophecy"},
{"bargon", "Bargon Attack"},
{"littlered", "Once Upon A Time: Little Red Riding Hood"},
{"ajworld", "A.J.'s World of Discovery"},
{"gob3", "Goblins Quest 3"},
{"gob3cd", "Goblins Quest 3 CD"},
{"lit1", "Lost in Time Part 1"},
{"lit2", "Lost in Time Part 2"},
{"lit", "Lost in Time"},
{"inca2", "Inca II: Wiracocha"},
{"woodruff", "The Bizarre Adventures of Woodruff and the Schnibble"},
{"dynasty", "The Last Dynasty"},
{"urban", "Urban Runner"},
{"playtoons1", "Playtoons 1 - Uncle Archibald"},
{"playtoons2", "Playtoons 2 - The Case of the Counterfeit Collaborator"},
{"playtoons3", "Playtoons 3 - The Secret of the Castle"},
{"playtoons4", "Playtoons 4 - The Mandarine Prince"},
{"playtoons5", "Playtoons 5 - The Stone of Wakan"},
{"playtnck1", "Playtoons Construction Kit 1 - Monsters"},
{"playtnck2", "Playtoons Construction Kit 2 - Knights"},
{"playtnck3", "Playtoons Construction Kit 3 - Far West"},
{"bambou", "Playtoons Limited Edition - Bambou le sauveur de la jungle"},
{"fascination", "Fascination"},
{"geisha", "Geisha"},
{"adi2", "ADI 2"},
{"adi4", "ADI 4"},
{"adibou2", "Adibou 2"},
{"adibou1", "Adibou 1"},
{0, 0}
};

// Obsolete IDs we don't want anymore
static const Engines::ObsoleteGameID obsoleteGameIDsTable[] = {
{"gob1", "gob", kPlatformUnknown},
{"gob2", "gob", kPlatformUnknown},
{0, 0, kPlatformUnknown}
};

namespace Gob {

// Detection tables
static const GOBGameDescription gameDescriptions[] = {
#include "gob/detection/tables_gob1.h" // Gobliiins
#include "gob/detection/tables_gob2.h" // Gobliins 2: The Prince Buffoon
#include "gob/detection/tables_gob3.h" // Goblins 3 / Goblins Quest 3
#include "gob/detection/tables_ween.h" // Ween: The Prophecy
#include "gob/detection/tables_bargon.h" // Bargon Attack
#include "gob/detection/tables_littlered.h" // Once Upon A Time: Little Red Riding Hood
#include "gob/detection/tables_lit.h" // Lost in Time
#include "gob/detection/tables_fascin.h" // Fascination
#include "gob/detection/tables_geisha.h" // Geisha
#include "gob/detection/tables_inca2.h" // Inca II: Wiracocha
#include "gob/detection/tables_woodruff.h" // (The Bizarre Adventures of) Woodruff and the Schnibble (of Azimuth)
#include "gob/detection/tables_dynasty.h" // The Last Dynasty
#include "gob/detection/tables_urban.h" // Urban Runner
#include "gob/detection/tables_playtoons.h" // The Playtoons series
#include "gob/detection/tables_adi2.h" // The ADI / Addy 2 series
#include "gob/detection/tables_adi4.h" // The ADI / Addy 4 series
#include "gob/detection/tables_adibou.h" // The Adibou / Addy Junior series
#include "gob/detection/tables_ajworld.h" // A.J.'s World of Discovery / ADI Jr.

{ AD_TABLE_END_MARKER, kGameTypeNone, kFeaturesNone, 0, 0, 0}
};

// File-based fallback tables
#include "gob/detection/tables_fallback.h"
}

#endif // GOB_DETECTION_TABLES_H
203 changes: 203 additions & 0 deletions engines/gob/detection/tables_adi2.h
@@ -0,0 +1,203 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/

/* Detection tables for the ADI / Addy 2 series. */

#ifndef GOB_DETECTION_TABLES_ADI2_H
#define GOB_DETECTION_TABLES_ADI2_H

// -- French: Adi --

{
{
"adi2",
"Adi 2.0 for Teachers",
AD_ENTRY1s("adi2.stk", "da6f1fb68bff32260c5eecdf9286a2f5", 1533168),
FR_FRA,
kPlatformPC,
ADGF_NO_FLAGS,
GUIO0()
},
kGameTypeAdi2,
kFeaturesNone,
"adi2.stk", "ediintro.tot", 0
},
{ // Found in french ADI 2 Francais-Maths CM1. Exact version not specified.
{
"adi2",
"Adi 2",
AD_ENTRY1s("adi2.stk", "23f279615c736dc38320f1348e70c36e", 10817668),
FR_FRA,
kPlatformPC,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
kGameTypeAdi2,
kFeatures640x480,
"adi2.stk", "ediintro.tot", 0
},
{ // Found in french ADI 2 Francais-Maths CE2. Exact version not specified.
{
"adi2",
"Adi 2",
AD_ENTRY1s("adi2.stk", "d4162c4298f9423ecc1fb04965557e90", 11531214),
FR_FRA,
kPlatformPC,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
kGameTypeAdi2,
kFeatures640x480,
"adi2.stk", "ediintro.tot", 0
},
{
{
"adi2",
"Adi 2.5",
AD_ENTRY1s("adi2.stk", "fcac60e6627f37aee219575b60859de9", 16944268),
FR_FRA,
kPlatformPC,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
kGameTypeAdi2,
kFeatures640x480,
"adi2.stk", "ediintro.tot", 0
},
{
{
"adi2",
"Adi 2.5",
AD_ENTRY1s("adi2.stk", "072d5e2d7826a7c055865568ebf918bb", 16934596),
FR_FRA,
kPlatformPC,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
kGameTypeAdi2,
kFeatures640x480,
"adi2.stk", "ediintro.tot", 0
},
{
{
"adi2",
"Adi 2.6",
AD_ENTRY1s("adi2.stk", "2fb940eb8105b12871f6b88c8c4d1615", 16780058),
FR_FRA,
kPlatformPC,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
kGameTypeAdi2,
kFeatures640x480,
"adi2.stk", "ediintro.tot", 0
},

// -- German: Addy --

{
{
"adi2",
"Adi 2.6",
AD_ENTRY1s("adi2.stk", "fde7d98a67dbf859423b6473796e932a", 18044780),
DE_DEU,
kPlatformPC,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
kGameTypeAdi2,
kFeatures640x480,
"adi2.stk", "ediintro.tot", 0
},
{
{
"adi2",
"Adi 2.7.1",
AD_ENTRY1s("adi2.stk", "6fa5dffebf5c7243c6af6b8c188ee00a", 19278008),
FR_FRA,
kPlatformPC,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
kGameTypeAdi2,
kFeatures640x480,
"adi2.stk", "ediintro.tot", 0
},

// -- Spanish: Adi --

{
{
"adi2",
"Adi 2",
AD_ENTRY1s("adi2.stk", "2a40bb48ccbd4e6fb3f7f0fc2f069d80", 17720132),
ES_ESP,
kPlatformPC,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
kGameTypeAdi2,
kFeatures640x480,
"adi2.stk", "ediintro.tot", 0
},

// -- English: ADI (Amiga) --

{
{
"adi2",
"Adi 2",
AD_ENTRY1s("adi2.stk", "29694c5a649298a42f87ae731d6d6f6d", 311132),
EN_ANY,
kPlatformAmiga,
ADGF_NO_FLAGS,
GUIO0()
},
kGameTypeAdi2,
kFeaturesNone,
"adi2.stk", "ediintro.tot", 0
},

// -- Demos --

{
{
"adi2",
"Non-Interactive Demo",
{
{"demo.scn", 0, "8b5ba359fd87d586ad39c1754bf6ea35", 168},
{"demadi2t.vmd", 0, "08a1b18cfe2015d3b43270da35cc813d", 7250723},
{"demarch.vmd", 0, "4c4a4616585d40ef3df209e3c3911062", 5622731},
{"demobou.vmd", 0, "2208b9855775564d15c4a5a559da0aec", 3550511},
{0, 0, 0, 0}
},
EN_ANY,
kPlatformPC,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
kGameTypeAdi2,
kFeatures640x480 | kFeaturesSCNDemo,
0, 0, 1
},

#endif // GOB_DETECTION_TABLES_ADI2_H

0 comments on commit 07b17f7

Please sign in to comment.