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 
26 #include "cruise/detection.h"
27 #include "cruise/cruise.h"
28 
29 static const PlainGameDescriptor cruiseGames[] = {
30 	{"cruise", "Cruise for a Corpse"},
31 	{0, 0}
32 };
33 
34 static const DebugChannelDef debugFlagList[] = {
35 	{Cruise::kCruiseDebugScript, "scripts", "Scripts debug level"},
36 	{Cruise::kCruiseDebugSound, "sound", "Sound debug level"},
37 	DEBUG_CHANNEL_END
38 };
39 
40 namespace Cruise {
41 
42 static const CRUISEGameDescription gameDescriptions[] = {
43 	{
44 		{
45 			"cruise",
46 			"16 colors",
47 			AD_ENTRY1("D1", "cd29a4cd9162076e9a18495fe56a48f3"),
48 			Common::EN_GRB,
49 			Common::kPlatformDOS,
50 			ADGF_NO_FLAGS,
51 			GUIO0()
52 		},
53 	},
54 	{
55 		{
56 			"cruise",
57 			"16 colors",
58 			AD_ENTRY1("D1", "41a7a4d426dbd048eb369cfee4bb2717"),
59 			Common::FR_FRA,
60 			Common::kPlatformDOS,
61 			ADGF_NO_FLAGS,
62 			GUIO0()
63 		},
64 	},
65 	{
66 		{
67 			"cruise",
68 			"256 colors",
69 			AD_ENTRY1("D1", "a90d2b9ead6b4d812cd14268672cf178"),
70 			Common::EN_ANY,
71 			Common::kPlatformDOS,
72 			ADGF_NO_FLAGS,
73 			GUIO0()
74 		},
75 	},
76 	{
77 		{
78 			"cruise",
79 			"256 colors",
80 			AD_ENTRY1("D1", "e258865807ea31b2d523340e6f0a606b"),
81 			Common::FR_FRA,
82 			Common::kPlatformDOS,
83 			ADGF_NO_FLAGS,
84 			GUIO0()
85 		},
86 	},
87 	{
88 		{
89 			"cruise",
90 			"16 colors",
91 			AD_ENTRY1("D1", "287d2ec1799e2f881dee23c70be96e81"),
92 			Common::DE_DEU,
93 			Common::kPlatformDOS,
94 			ADGF_NO_FLAGS,
95 			GUIO0()
96 		},
97 	},
98 	{
99 		{
100 			"cruise",
101 			"256 colors",
102 			AD_ENTRY1("D1", "f2a26522d49983c4ae32bcccbb801b02"),
103 			Common::DE_DEU,
104 			Common::kPlatformDOS,
105 			ADGF_NO_FLAGS,
106 			GUIO0()
107 		},
108 	},
109 	{
110 		{
111 			"cruise",
112 			0,
113 			AD_ENTRY1("D1", "70f42a21cc257b01d58667853335f4f1"),
114 			Common::DE_DEU,
115 			Common::kPlatformAmiga,
116 			ADGF_NO_FLAGS,
117 			GUIO0()
118 		},
119 	},
120 	{ // Amiga English US GOLD edition.
121 		{
122 			"cruise",
123 			0,
124 			AD_ENTRY1("D1", "de084e9d2c6e4b2cc14803bf849eda3e"),
125 			Common::EN_ANY,
126 			Common::kPlatformAmiga,
127 			ADGF_NO_FLAGS,
128 			GUIO0()
129 		},
130 	},
131 	{ // Amiga Italian US GOLD edition.
132 		{
133 			"cruise",
134 			0,
135 			AD_ENTRY1("D1", "a0011075413b7335e003e8e3c9cf51b9"),
136 			Common::IT_ITA,
137 			Common::kPlatformAmiga,
138 			ADGF_NO_FLAGS,
139 			GUIO0()
140 		},
141 	},
142 	{ // Amiga Spanish edition.
143 		{
144 			"cruise",
145 			0,
146 			AD_ENTRY1s("D1", "b600d0892a2605b9ead63e1c86a8a0a3", 700576),
147 			Common::ES_ESP,
148 			Common::kPlatformAmiga,
149 			ADGF_NO_FLAGS,
150 			GUIO0()
151 		},
152 	},
153 	{ // AtariST English KixxXL edition.
154 		{
155 			"cruise",
156 			0,
157 			AD_ENTRY1("D1", "be78614d5fa34bdb68bb03a2a6130280"),
158 			Common::EN_ANY,
159 			Common::kPlatformAtariST,
160 			ADGF_NO_FLAGS,
161 			GUIO0()
162 		},
163 	},
164 	{ // AtariST French edition. Bugreport #12824
165 		{
166 			"cruise",
167 			0,
168 			AD_ENTRY1s("D1", "485ff850b7035316621f632e33f56468", 537311),
169 			Common::FR_FRA,
170 			Common::kPlatformAtariST,
171 			ADGF_NO_FLAGS,
172 			GUIO0()
173 		},
174 	},
175 	{
176 		{
177 			"cruise",
178 			"256 colors",
179 			AD_ENTRY1("D1", "e19a4ab2e24a69087e4ea994a5506231"),
180 			Common::IT_ITA,
181 			Common::kPlatformDOS,
182 			ADGF_NO_FLAGS,
183 			GUIO0()
184 		},
185 	},
186 	{
187 		{
188 			"cruise",
189 			"256 colors",
190 			AD_ENTRY1("D1", "9a302ada55600d96061fda1d63a6ccda"),
191 			Common::ES_ESP,
192 			Common::kPlatformDOS,
193 			ADGF_NO_FLAGS,
194 			GUIO0()
195 		},
196 	},
197 	{AD_TABLE_END_MARKER}
198 };
199 
200 }
201 
202 class CruiseMetaEngineDetection : public AdvancedMetaEngineDetection {
203 public:
CruiseMetaEngineDetection()204 	CruiseMetaEngineDetection() : AdvancedMetaEngineDetection(Cruise::gameDescriptions, sizeof(Cruise::CRUISEGameDescription), cruiseGames) {
205 		_guiOptions = GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI);
206 	}
207 
getEngineId() const208 	const char *getEngineId() const override {
209 		return "cruise";
210 	}
211 
getName() const212 	const char *getName() const override {
213 		return "Cinematique evo 2";
214 	}
215 
getOriginalCopyright() const216 	const char *getOriginalCopyright() const override {
217 		return "Cinematique evo 2 (C) Delphine Software";
218 	}
219 
getDebugChannels() const220 	const DebugChannelDef *getDebugChannels() const override {
221 		return debugFlagList;
222 	}
223 };
224 
225 REGISTER_PLUGIN_STATIC(CRUISE_DETECTION, PLUGIN_TYPE_ENGINE_DETECTION, CruiseMetaEngineDetection);
226