1 /* ScummVM - Graphic Adventure Engine
2  *
3  * ScummVM is the legal property of its developers, whose names
4  * are too numerous to list here. Please refer to the COPYRIGHT
5  * file distributed with this source distribution.
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 2
10  * of the License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20  *
21  */
22 
23 #include "base/plugins.h"
24 #include "engines/advancedDetector.h"
25 #include "common/translation.h"
26 
27 #include "hopkins/detection.h"
28 #include "hopkins/hopkins.h"
29 
30 static const DebugChannelDef debugFlagList[] = {
31 	{Hopkins::kDebugPath, "Path", "Pathfinding debug level"},
32 	{Hopkins::kDebugGraphics, "Graphics", "Graphics debug level"},
33 	DEBUG_CHANNEL_END
34 };
35 
36 static const PlainGameDescriptor hopkinsGames[] = {
37 	{"hopkins", "Hopkins FBI"},
38 	{0, 0}
39 };
40 
41 #include "hopkins/detection_tables.h"
42 
43 static const ADExtraGuiOptionsMap optionsList[] = {
44 	{
45 		GAMEOPTION_GORE_DEFAULT_OFF,
46 		{
47 			_s("Gore Mode"),
48 			_s("Enable Gore Mode when available"),
49 			"enable_gore",
50 			false
51 		}
52 	},
53 
54 	{
55 		GAMEOPTION_GORE_DEFAULT_ON,
56 		{
57 			_s("Gore Mode"),
58 			_s("Enable Gore Mode when available"),
59 			"enable_gore",
60 			true
61 		}
62 	},
63 
64 	AD_EXTRA_GUI_OPTIONS_TERMINATOR
65 };
66 
67 const static char *directoryGlobs[] = {
68 	"voice",
69 	"link",
70 	0
71 };
72 
73 class HopkinsMetaEngineDetection : public AdvancedMetaEngineDetection {
74 public:
HopkinsMetaEngineDetection()75 	HopkinsMetaEngineDetection() : AdvancedMetaEngineDetection(Hopkins::gameDescriptions, sizeof(Hopkins::HopkinsGameDescription), hopkinsGames, optionsList) {
76 		_maxScanDepth = 3;
77 		_directoryGlobs = directoryGlobs;
78 	}
79 
getEngineId() const80 	const char *getEngineId() const override {
81 		return "hopkins";
82 	}
83 
getName() const84 	const char *getName() const override {
85 		return "Hopkins FBI";
86 	}
87 
getOriginalCopyright() const88 	const char *getOriginalCopyright() const override {
89 		return "Hopkins FBI (C) 1997-2003 MP Entertainment";
90 	}
91 
getDebugChannels() const92 	const DebugChannelDef *getDebugChannels() const override {
93 		return debugFlagList;
94 	}
95 };
96 
97 
98 REGISTER_PLUGIN_STATIC(HOPKINS_DETECTION, PLUGIN_TYPE_ENGINE_DETECTION, HopkinsMetaEngineDetection);
99